Merge "Fix the target URL of HTMLForm"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Fri, 26 Jul 2013 01:11:48 +0000 (01:11 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Fri, 26 Jul 2013 01:11:48 +0000 (01:11 +0000)
693 files changed:
.jshintignore
CREDITS
RELEASE-NOTES-1.21 [deleted file]
RELEASE-NOTES-1.22
docs/hooks.txt
includes/AjaxDispatcher.php
includes/Article.php
includes/AuthPlugin.php
includes/AutoLoader.php
includes/Block.php
includes/ChangeTags.php
includes/ChangesList.php
includes/Collation.php
includes/DefaultSettings.php
includes/EditPage.php
includes/Export.php
includes/FileDeleteForm.php
includes/GitInfo.php
includes/GlobalFunctions.php
includes/HTMLForm.php
includes/Hooks.php
includes/Html.php
includes/HttpFunctions.php
includes/IP.php
includes/ImageGallery.php
includes/ImagePage.php
includes/Linker.php
includes/LinksUpdate.php
includes/MWFunction.php
includes/MagicWord.php
includes/MappedIterator.php
includes/Metadata.php
includes/Namespace.php
includes/OutputHandler.php
includes/OutputPage.php
includes/Pager.php
includes/Preferences.php
includes/ProtectionForm.php
includes/QueryPage.php
includes/RecentChange.php
includes/Revision.php
includes/Sanitizer.php
includes/ScopedCallback.php
includes/SeleniumWebSettings.php [deleted file]
includes/Setup.php
includes/Skin.php
includes/SkinTemplate.php
includes/SpecialPage.php
includes/SpecialPageFactory.php
includes/Timestamp.php
includes/Title.php
includes/User.php
includes/UserMailer.php
includes/WatchedItem.php
includes/WebRequest.php
includes/WebResponse.php
includes/WebStart.php
includes/Wiki.php
includes/WikiMap.php
includes/WikiPage.php
includes/Xml.php
includes/XmlTypeCheck.php
includes/actions/HistoryAction.php
includes/actions/InfoAction.php
includes/actions/WatchAction.php
includes/api/ApiBase.php
includes/api/ApiCreateAccount.php
includes/api/ApiDelete.php
includes/api/ApiEditPage.php
includes/api/ApiFeedWatchlist.php
includes/api/ApiImport.php
includes/api/ApiMain.php
includes/api/ApiOptions.php
includes/api/ApiPageSet.php
includes/api/ApiParse.php
includes/api/ApiPatrol.php
includes/api/ApiProtect.php
includes/api/ApiPurge.php
includes/api/ApiQueryAllLinks.php
includes/api/ApiQueryBlocks.php
includes/api/ApiQueryExtLinksUsage.php
includes/api/ApiQueryExternalLinks.php
includes/api/ApiQueryImageInfo.php
includes/api/ApiQueryInfo.php
includes/api/ApiQueryLogEvents.php
includes/api/ApiQueryQueryPage.php
includes/api/ApiQueryRecentChanges.php
includes/api/ApiQueryRevisions.php
includes/api/ApiQuerySiteinfo.php
includes/api/ApiQueryUserContributions.php
includes/api/ApiQueryUserInfo.php
includes/api/ApiQueryUsers.php
includes/api/ApiSetNotificationTimestamp.php
includes/api/ApiUpload.php
includes/api/ApiUserrights.php
includes/api/ApiWatch.php
includes/cache/LinkCache.php
includes/cache/LocalisationCache.php
includes/cache/MessageCache.php
includes/cache/SquidUpdate.php
includes/cache/UserCache.php
includes/clientpool/RedisConnectionPool.php
includes/content/WikitextContentHandler.php
includes/context/RequestContext.php
includes/db/Database.php
includes/db/DatabaseMysql.php
includes/db/DatabaseMysqlBase.php [new file with mode: 0644]
includes/db/DatabaseOracle.php
includes/db/IORMRow.php
includes/db/LoadBalancer.php
includes/db/LoadMonitor.php
includes/db/ORMRow.php
includes/db/ORMTable.php
includes/debug/Debug.php
includes/diff/DifferenceEngine.php
includes/filebackend/FSFile.php
includes/filebackend/FSFileBackend.php
includes/filebackend/FileBackend.php
includes/filebackend/FileBackendGroup.php
includes/filebackend/FileBackendMultiWrite.php
includes/filebackend/FileBackendStore.php
includes/filebackend/FileOp.php
includes/filebackend/FileOpBatch.php
includes/filebackend/README
includes/filebackend/SwiftFileBackend.php
includes/filebackend/TempFSFile.php
includes/filebackend/lockmanager/LockManager.php
includes/filebackend/lockmanager/ScopedLock.php
includes/filerepo/FileRepo.php
includes/filerepo/file/ArchivedFile.php
includes/filerepo/file/File.php
includes/filerepo/file/LocalFile.php
includes/installer/Installer.i18n.php
includes/installer/Installer.php
includes/installer/LocalSettingsGenerator.php
includes/installer/OracleInstaller.php
includes/installer/OracleUpdater.php
includes/installer/WebInstallerPage.php
includes/job/JobQueue.php
includes/job/JobQueueRedis.php
includes/job/jobs/AssembleUploadChunksJob.php
includes/job/jobs/PublishStashedFileJob.php
includes/json/FormatJson.php
includes/libs/CSSJanus.php
includes/libs/HttpStatus.php
includes/logging/DeleteLogFormatter.php
includes/logging/LogEntry.php
includes/logging/LogPage.php
includes/logging/MoveLogFormatter.php
includes/logging/NewUsersLogFormatter.php
includes/logging/PatrolLog.php
includes/logging/PatrolLogFormatter.php
includes/logging/RightsLogFormatter.php
includes/media/MediaHandler.php
includes/media/MediaTransformOutput.php
includes/media/SVG.php
includes/normal/README
includes/objectcache/MemcachedPeclBagOStuff.php
includes/objectcache/ObjectCache.php
includes/parser/CoreParserFunctions.php
includes/parser/Parser.php
includes/parser/ParserOutput.php
includes/profiler/Profiler.php
includes/profiler/ProfilerSimple.php
includes/profiler/ProfilerSimpleTrace.php
includes/profiler/ProfilerStub.php
includes/resourceloader/ResourceLoader.php
includes/resourceloader/ResourceLoaderUserCSSPrefsModule.php
includes/revisiondelete/RevisionDelete.php
includes/search/SearchEngine.php
includes/search/SearchMySQL.php
includes/search/SearchUpdate.php
includes/specials/SpecialActiveusers.php
includes/specials/SpecialBlock.php
includes/specials/SpecialBooksources.php
includes/specials/SpecialChangeEmail.php
includes/specials/SpecialChangePassword.php
includes/specials/SpecialConfirmemail.php
includes/specials/SpecialContributions.php
includes/specials/SpecialEditWatchlist.php
includes/specials/SpecialFilepath.php
includes/specials/SpecialListfiles.php
includes/specials/SpecialListgrouprights.php
includes/specials/SpecialLog.php
includes/specials/SpecialMIMEsearch.php
includes/specials/SpecialMovepage.php
includes/specials/SpecialNewpages.php
includes/specials/SpecialPagesWithProp.php
includes/specials/SpecialPasswordReset.php
includes/specials/SpecialPreferences.php
includes/specials/SpecialPrefixindex.php
includes/specials/SpecialRecentchanges.php
includes/specials/SpecialRecentchangeslinked.php
includes/specials/SpecialResetTokens.php [new file with mode: 0644]
includes/specials/SpecialRevisiondelete.php
includes/specials/SpecialSearch.php
includes/specials/SpecialTags.php
includes/specials/SpecialUndelete.php
includes/specials/SpecialUserlogin.php
includes/specials/SpecialUserrights.php
includes/specials/SpecialVersion.php
includes/specials/SpecialWatchlist.php
includes/templates/Usercreate.php
includes/templates/UsercreateVForm.php [deleted file]
includes/templates/Userlogin.php
includes/templates/UserloginVForm.php [deleted file]
includes/upload/UploadBase.php
includes/upload/UploadFromUrl.php
includes/upload/UploadStash.php
languages/Language.php
languages/LanguageConverter.php
languages/Names.php
languages/messages/MessagesAce.php
languages/messages/MessagesAeb.php
languages/messages/MessagesAf.php
languages/messages/MessagesAln.php
languages/messages/MessagesAm.php
languages/messages/MessagesAn.php
languages/messages/MessagesAng.php
languages/messages/MessagesAr.php
languages/messages/MessagesArc.php
languages/messages/MessagesArn.php
languages/messages/MessagesAry.php
languages/messages/MessagesArz.php
languages/messages/MessagesAs.php
languages/messages/MessagesAst.php
languages/messages/MessagesAvk.php
languages/messages/MessagesAz.php
languages/messages/MessagesAzb.php
languages/messages/MessagesBa.php
languages/messages/MessagesBar.php
languages/messages/MessagesBbc.php [new file with mode: 0644]
languages/messages/MessagesBbc_latn.php [new file with mode: 0644]
languages/messages/MessagesBcc.php
languages/messages/MessagesBcl.php
languages/messages/MessagesBe.php
languages/messages/MessagesBe_tarask.php
languages/messages/MessagesBg.php
languages/messages/MessagesBho.php
languages/messages/MessagesBjn.php
languages/messages/MessagesBn.php
languages/messages/MessagesBo.php
languages/messages/MessagesBpy.php
languages/messages/MessagesBr.php
languages/messages/MessagesBs.php
languages/messages/MessagesBxr.php
languages/messages/MessagesCa.php
languages/messages/MessagesCdo.php
languages/messages/MessagesCe.php
languages/messages/MessagesCeb.php
languages/messages/MessagesCh.php
languages/messages/MessagesCkb.php
languages/messages/MessagesCps.php
languages/messages/MessagesCrh_cyrl.php
languages/messages/MessagesCrh_latn.php
languages/messages/MessagesCs.php
languages/messages/MessagesCsb.php
languages/messages/MessagesCu.php
languages/messages/MessagesCv.php
languages/messages/MessagesCy.php
languages/messages/MessagesDa.php
languages/messages/MessagesDe.php
languages/messages/MessagesDiq.php
languages/messages/MessagesDsb.php
languages/messages/MessagesDtp.php
languages/messages/MessagesDv.php
languages/messages/MessagesEl.php
languages/messages/MessagesEn.php
languages/messages/MessagesEo.php
languages/messages/MessagesEs.php
languages/messages/MessagesEt.php
languages/messages/MessagesEu.php
languages/messages/MessagesExt.php
languages/messages/MessagesFa.php
languages/messages/MessagesFi.php
languages/messages/MessagesFo.php
languages/messages/MessagesFr.php
languages/messages/MessagesFrp.php
languages/messages/MessagesFrr.php
languages/messages/MessagesFur.php
languages/messages/MessagesFy.php
languages/messages/MessagesGa.php
languages/messages/MessagesGag.php
languages/messages/MessagesGan_hans.php
languages/messages/MessagesGan_hant.php
languages/messages/MessagesGd.php
languages/messages/MessagesGl.php
languages/messages/MessagesGrc.php
languages/messages/MessagesGsw.php
languages/messages/MessagesGu.php
languages/messages/MessagesGv.php
languages/messages/MessagesHak.php
languages/messages/MessagesHaw.php
languages/messages/MessagesHe.php
languages/messages/MessagesHi.php
languages/messages/MessagesHif_latn.php
languages/messages/MessagesHil.php
languages/messages/MessagesHr.php
languages/messages/MessagesHsb.php
languages/messages/MessagesHt.php
languages/messages/MessagesHu.php
languages/messages/MessagesHy.php
languages/messages/MessagesIa.php
languages/messages/MessagesId.php
languages/messages/MessagesIe.php
languages/messages/MessagesIg.php
languages/messages/MessagesIlo.php
languages/messages/MessagesInh.php
languages/messages/MessagesIo.php
languages/messages/MessagesIs.php
languages/messages/MessagesIt.php
languages/messages/MessagesJa.php
languages/messages/MessagesJam.php
languages/messages/MessagesJut.php
languages/messages/MessagesJv.php
languages/messages/MessagesKa.php
languages/messages/MessagesKaa.php
languages/messages/MessagesKab.php
languages/messages/MessagesKbd_cyrl.php
languages/messages/MessagesKg.php
languages/messages/MessagesKhw.php
languages/messages/MessagesKiu.php
languages/messages/MessagesKk_arab.php
languages/messages/MessagesKk_cyrl.php
languages/messages/MessagesKk_latn.php
languages/messages/MessagesKm.php
languages/messages/MessagesKn.php
languages/messages/MessagesKo.php
languages/messages/MessagesKoi.php
languages/messages/MessagesKrc.php
languages/messages/MessagesKsh.php
languages/messages/MessagesKu_latn.php
languages/messages/MessagesKw.php
languages/messages/MessagesKy.php
languages/messages/MessagesLa.php
languages/messages/MessagesLad.php
languages/messages/MessagesLb.php
languages/messages/MessagesLez.php
languages/messages/MessagesLfn.php
languages/messages/MessagesLg.php
languages/messages/MessagesLi.php
languages/messages/MessagesLij.php
languages/messages/MessagesLiv.php
languages/messages/MessagesLmo.php
languages/messages/MessagesLo.php
languages/messages/MessagesLoz.php
languages/messages/MessagesLt.php
languages/messages/MessagesLtg.php
languages/messages/MessagesLus.php
languages/messages/MessagesLv.php
languages/messages/MessagesLzh.php
languages/messages/MessagesMai.php
languages/messages/MessagesMap_bms.php
languages/messages/MessagesMdf.php
languages/messages/MessagesMg.php
languages/messages/MessagesMhr.php
languages/messages/MessagesMin.php
languages/messages/MessagesMk.php
languages/messages/MessagesMl.php
languages/messages/MessagesMn.php
languages/messages/MessagesMr.php
languages/messages/MessagesMs.php
languages/messages/MessagesMt.php
languages/messages/MessagesMwl.php
languages/messages/MessagesMy.php
languages/messages/MessagesMyv.php
languages/messages/MessagesMzn.php
languages/messages/MessagesNah.php
languages/messages/MessagesNan.php
languages/messages/MessagesNap.php
languages/messages/MessagesNb.php
languages/messages/MessagesNds.php
languages/messages/MessagesNds_nl.php
languages/messages/MessagesNe.php
languages/messages/MessagesNl.php
languages/messages/MessagesNn.php
languages/messages/MessagesNso.php
languages/messages/MessagesOc.php
languages/messages/MessagesOr.php
languages/messages/MessagesOs.php
languages/messages/MessagesPa.php
languages/messages/MessagesPam.php
languages/messages/MessagesPcd.php
languages/messages/MessagesPdc.php
languages/messages/MessagesPfl.php
languages/messages/MessagesPl.php
languages/messages/MessagesPms.php
languages/messages/MessagesPnb.php
languages/messages/MessagesPnt.php
languages/messages/MessagesPrg.php
languages/messages/MessagesPs.php
languages/messages/MessagesPt.php
languages/messages/MessagesPt_br.php
languages/messages/MessagesQqq.php
languages/messages/MessagesQu.php
languages/messages/MessagesQug.php
languages/messages/MessagesRm.php
languages/messages/MessagesRo.php
languages/messages/MessagesRoa_tara.php
languages/messages/MessagesRu.php
languages/messages/MessagesRue.php
languages/messages/MessagesSa.php
languages/messages/MessagesSah.php
languages/messages/MessagesSat.php
languages/messages/MessagesSc.php
languages/messages/MessagesScn.php
languages/messages/MessagesSco.php
languages/messages/MessagesSd.php
languages/messages/MessagesSdc.php
languages/messages/MessagesSe.php
languages/messages/MessagesSei.php
languages/messages/MessagesSgs.php
languages/messages/MessagesSh.php
languages/messages/MessagesShi.php
languages/messages/MessagesSi.php
languages/messages/MessagesSk.php
languages/messages/MessagesSl.php
languages/messages/MessagesSli.php
languages/messages/MessagesSo.php
languages/messages/MessagesSq.php
languages/messages/MessagesSr_ec.php
languages/messages/MessagesSr_el.php
languages/messages/MessagesSrn.php
languages/messages/MessagesStq.php
languages/messages/MessagesSu.php
languages/messages/MessagesSv.php
languages/messages/MessagesSw.php
languages/messages/MessagesSzl.php
languages/messages/MessagesTa.php
languages/messages/MessagesTcy.php
languages/messages/MessagesTe.php
languages/messages/MessagesTet.php
languages/messages/MessagesTg_cyrl.php
languages/messages/MessagesTg_latn.php
languages/messages/MessagesTh.php
languages/messages/MessagesTk.php
languages/messages/MessagesTl.php
languages/messages/MessagesTly.php
languages/messages/MessagesTo.php
languages/messages/MessagesTpi.php
languages/messages/MessagesTr.php
languages/messages/MessagesTru.php
languages/messages/MessagesTs.php
languages/messages/MessagesTt_cyrl.php
languages/messages/MessagesTt_latn.php
languages/messages/MessagesTyv.php
languages/messages/MessagesUdm.php
languages/messages/MessagesUg_arab.php
languages/messages/MessagesUk.php
languages/messages/MessagesUr.php
languages/messages/MessagesUz.php
languages/messages/MessagesVec.php
languages/messages/MessagesVep.php
languages/messages/MessagesVi.php
languages/messages/MessagesVmf.php
languages/messages/MessagesVo.php
languages/messages/MessagesVot.php
languages/messages/MessagesVro.php
languages/messages/MessagesWa.php
languages/messages/MessagesWar.php
languages/messages/MessagesWo.php
languages/messages/MessagesWuu.php
languages/messages/MessagesXal.php
languages/messages/MessagesXmf.php
languages/messages/MessagesYi.php
languages/messages/MessagesYo.php
languages/messages/MessagesYue.php
languages/messages/MessagesZea.php
languages/messages/MessagesZh_hans.php
languages/messages/MessagesZh_hant.php
maintenance/Doxyfile
maintenance/Maintenance.php
maintenance/backupTextPass.inc
maintenance/benchmarks/README [new file with mode: 0644]
maintenance/copyFileBackend.php
maintenance/dictionary/mediawiki.dic
maintenance/doMaintenance.php
maintenance/edit.php
maintenance/eraseArchivedFile.php [new file with mode: 0644]
maintenance/jsduck/categories.json
maintenance/jsduck/config.json
maintenance/jsduck/eg-iframe.html
maintenance/language/checkLanguage.inc
maintenance/language/messageTypes.inc
maintenance/language/messages.inc
maintenance/mergeMessageFileList.php
maintenance/mwdocgen.php
maintenance/mwjsduck-gen
maintenance/purgeDeletedFiles.php
maintenance/rebuildall.php
maintenance/rebuildtextindex.php
maintenance/removeUnusedAccounts.php
maintenance/runJobs.php
maintenance/showJobs.php
maintenance/sql.php
maintenance/tables.sql
maintenance/updateCollation.php
resources/Resources.php
resources/jquery.tipsy/images/tipsy.png
resources/jquery.ui/themes/default/images/ui-bg_flat_0_aaaaaa_40x100.png
resources/jquery.ui/themes/default/images/ui-bg_flat_75_ffffff_40x100.png
resources/jquery.ui/themes/default/images/ui-icons_222222_256x240.png
resources/jquery.ui/themes/default/images/ui-icons_2e83ff_256x240.png
resources/jquery.ui/themes/default/images/ui-icons_454545_256x240.png
resources/jquery.ui/themes/default/images/ui-icons_888888_256x240.png
resources/jquery.ui/themes/default/images/ui-icons_cd0a0a_256x240.png
resources/jquery.ui/themes/vector/jquery.ui.button.css [changed mode: 0755->0644]
resources/jquery/jquery.checkboxShiftClick.js
resources/jquery/jquery.client.js
resources/jquery/jquery.makeCollapsible.js
resources/jquery/jquery.tablesorter.js
resources/mediawiki.action/images/green-checkmark.png [new file with mode: 0644]
resources/mediawiki.action/mediawiki.action.edit.editWarning.js
resources/mediawiki.action/mediawiki.action.edit.js
resources/mediawiki.action/mediawiki.action.edit.preview.js
resources/mediawiki.action/mediawiki.action.history.js
resources/mediawiki.action/mediawiki.action.view.postEdit.css [new file with mode: 0644]
resources/mediawiki.action/mediawiki.action.view.postEdit.js
resources/mediawiki.action/mediawiki.action.view.rightClickEdit.js
resources/mediawiki.api/mediawiki.api.edit.js
resources/mediawiki.api/mediawiki.api.login.js [new file with mode: 0644]
resources/mediawiki.api/mediawiki.api.parse.js
resources/mediawiki.language/mediawiki.language.js
resources/mediawiki.page/mediawiki.page.patrol.ajax.js
resources/mediawiki.page/mediawiki.page.ready.js
resources/mediawiki.page/mediawiki.page.startup.js
resources/mediawiki.page/mediawiki.page.watch.ajax.js
resources/mediawiki.special/images/arrow-collapsed-ltr.png [deleted file]
resources/mediawiki.special/images/arrow-collapsed-rtl.png [deleted file]
resources/mediawiki.special/images/arrow-expanded.png [deleted file]
resources/mediawiki.special/images/glyph-people-large.png
resources/mediawiki.special/images/icon-contributors.png
resources/mediawiki.special/images/icon-edits.png
resources/mediawiki.special/images/icon-lock.png
resources/mediawiki.special/images/icon-pages.png
resources/mediawiki.special/mediawiki.special.block.js
resources/mediawiki.special/mediawiki.special.changeemail.js
resources/mediawiki.special/mediawiki.special.changeslist.css
resources/mediawiki.special/mediawiki.special.changeslist.enhanced.css [new file with mode: 0644]
resources/mediawiki.special/mediawiki.special.createAccount.css [new file with mode: 0644]
resources/mediawiki.special/mediawiki.special.createAccount.js [new file with mode: 0644]
resources/mediawiki.special/mediawiki.special.createAccount.vform.css [deleted file]
resources/mediawiki.special/mediawiki.special.createAccount.vform.js [deleted file]
resources/mediawiki.special/mediawiki.special.movePage.js
resources/mediawiki.special/mediawiki.special.preferences.js
resources/mediawiki.special/mediawiki.special.recentchanges.js
resources/mediawiki.special/mediawiki.special.search.js
resources/mediawiki.special/mediawiki.special.undelete.js
resources/mediawiki.special/mediawiki.special.upload.js
resources/mediawiki.special/mediawiki.special.userLogin.css [new file with mode: 0644]
resources/mediawiki.special/mediawiki.special.userLogin.signup.js [deleted file]
resources/mediawiki.special/mediawiki.special.userLogin.vform.css [deleted file]
resources/mediawiki.ui/mediawiki.ui.default.css
resources/mediawiki.ui/mediawiki.ui.vector.css
resources/mediawiki.ui/sourcefiles/scss/components/default/_forms.scss
resources/mediawiki.ui/sourcefiles/scss/mixins/_effects.scss
resources/mediawiki.ui/sourcefiles/scss/mixins/_forms.scss
resources/mediawiki/images/arrow-collapsed-ltr.png [new file with mode: 0644]
resources/mediawiki/images/arrow-collapsed-rtl.png [new file with mode: 0644]
resources/mediawiki/images/arrow-expanded.png [new file with mode: 0644]
resources/mediawiki/mediawiki.htmlform.js
resources/mediawiki/mediawiki.icon.css [new file with mode: 0644]
resources/mediawiki/mediawiki.js
resources/mediawiki/mediawiki.notification.css
resources/mediawiki/mediawiki.notification.js
resources/mediawiki/mediawiki.searchSuggest.js
resources/mediawiki/mediawiki.user.js
resources/mediawiki/mediawiki.util.js
skins/CologneBlue.php
skins/Vector.php
skins/cologneblue/screen.css
skins/common/ajax.js
skins/common/commonContent.css
skins/common/commonElements.css
skins/common/commonPrint.css
skins/common/config.js
skins/common/images/icons/fileicon-psd.png
skins/common/images/question-small.png [new file with mode: 0644]
skins/common/images/question.svg [new file with mode: 0644]
skins/common/oldshared.css
skins/common/shared.css
skins/common/upload.js
skins/common/wikibits.js
skins/common/wikiprintable.css
skins/modern/main.css
skins/modern/print.css
skins/monobook/wiki-indexed.png
skins/vector/collapsibleTabs.js [new file with mode: 0644]
skins/vector/images/arrow-down-focus-icon.svg [new file with mode: 0644]
skins/vector/images/arrow-down-icon.svg [new file with mode: 0644]
skins/vector/screen.css
skins/vector/vector.js
tests/RunSeleniumTests.php [deleted file]
tests/TestsAutoLoader.php
tests/parser/parserTest.inc
tests/parser/parserTests.txt
tests/phpunit/AutoLoaderTest.php [deleted file]
tests/phpunit/StructureTest.php [deleted file]
tests/phpunit/includes/EditPageTest.php
tests/phpunit/includes/FauxRequestTest.php [new file with mode: 0644]
tests/phpunit/includes/FauxResponseTest.php
tests/phpunit/includes/GlobalFunctions/GlobalTest.php
tests/phpunit/includes/GlobalFunctions/wfBCP47Test.php
tests/phpunit/includes/IPTest.php
tests/phpunit/includes/MWFunctionTest.php
tests/phpunit/includes/MWNamespaceTest.php
tests/phpunit/includes/OutputPageTest.php
tests/phpunit/includes/SeleniumConfigurationTest.php [deleted file]
tests/phpunit/includes/TitlePermissionTest.php
tests/phpunit/includes/UserTest.php
tests/phpunit/includes/WebRequestTest.php
tests/phpunit/includes/XmlTypeCheckTest.php [new file with mode: 0644]
tests/phpunit/includes/api/ApiOptionsTest.php
tests/phpunit/includes/api/query/ApiQueryBasicTest.php
tests/phpunit/includes/content/WikitextContentHandlerTest.php
tests/phpunit/includes/db/DatabaseSQLTest.php
tests/phpunit/includes/installer/OracleInstallerTest.php [new file with mode: 0644]
tests/phpunit/includes/libs/CSSJanusTest.php
tests/phpunit/includes/parser/MediaWikiParserTest.php
tests/phpunit/includes/parser/NewParserTest.php
tests/phpunit/includes/search/SearchUpdateTest.php
tests/phpunit/includes/upload/UploadBaseTest.php [new file with mode: 0644]
tests/phpunit/includes/upload/UploadTest.php [deleted file]
tests/phpunit/languages/LanguageTest.php
tests/phpunit/mocks/filebackend/MockFSFile.php
tests/phpunit/mocks/media/MockBitmapHandler.php
tests/phpunit/phpunit.php
tests/phpunit/resources/ResourcesTest.php [deleted file]
tests/phpunit/structure/AutoLoaderTest.php [new file with mode: 0644]
tests/phpunit/structure/ResourcesTest.php [new file with mode: 0644]
tests/phpunit/structure/StructureTest.php [new file with mode: 0644]
tests/phpunit/suite.xml
tests/phpunit/suites/ExtensionsParserTestSuite.php [new file with mode: 0644]
tests/qunit/suites/resources/jquery/jquery.client.test.js
tests/qunit/suites/resources/jquery/jquery.tablesorter.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.util.test.js
tests/selenium/Selenium.php [deleted file]
tests/selenium/SeleniumConfig.php [deleted file]
tests/selenium/SeleniumLoader.php [deleted file]
tests/selenium/SeleniumServerManager.php [deleted file]
tests/selenium/SeleniumTestCase.php [deleted file]
tests/selenium/SeleniumTestConsoleLogger.php [deleted file]
tests/selenium/SeleniumTestConstants.php [deleted file]
tests/selenium/SeleniumTestHTMLLogger.php [deleted file]
tests/selenium/SeleniumTestListener.php [deleted file]
tests/selenium/SeleniumTestSuite.php [deleted file]
tests/selenium/data/SimpleSeleniumTestDB.sql [deleted file]
tests/selenium/data/SimpleSeleniumTestImages.zip [deleted file]
tests/selenium/data/Wikipedia-logo-v2-de.png [deleted file]
tests/selenium/data/mediawiki118_fresh_installation.sql [deleted file]
tests/selenium/installer/MediaWikiButtonsAvailabilityTestCase.php [deleted file]
tests/selenium/installer/MediaWikiDifferentDatabaseAccountTestCase.php [deleted file]
tests/selenium/installer/MediaWikiDifferntDatabasePrefixTestCase.php [deleted file]
tests/selenium/installer/MediaWikiErrorsConnectToDatabasePageTestCase.php [deleted file]
tests/selenium/installer/MediaWikiErrorsNamepageTestCase.php [deleted file]
tests/selenium/installer/MediaWikiHelpFieldHintTestCase.php [deleted file]
tests/selenium/installer/MediaWikiInstallationCommonFunction.php [deleted file]
tests/selenium/installer/MediaWikiInstallationConfig.php [deleted file]
tests/selenium/installer/MediaWikiInstallationMessage.php [deleted file]
tests/selenium/installer/MediaWikiInstallationVariables.php [deleted file]
tests/selenium/installer/MediaWikiInstallerTestSuite.php [deleted file]
tests/selenium/installer/MediaWikiMySQLDataBaseTestCase.php [deleted file]
tests/selenium/installer/MediaWikiMySQLiteDataBaseTestCase.php [deleted file]
tests/selenium/installer/MediaWikiOnAlreadyInstalledTestCase.php [deleted file]
tests/selenium/installer/MediaWikiRestartInstallationTestCase.php [deleted file]
tests/selenium/installer/MediaWikiRightFrameworkLinksTestCase.php [deleted file]
tests/selenium/installer/MediaWikiUpgradeExistingDatabaseTestCase.php [deleted file]
tests/selenium/installer/MediaWikiUserInterfaceTestCase.php [deleted file]
tests/selenium/installer/README.txt [deleted file]
tests/selenium/selenium_settings.ini.sample [deleted file]
tests/selenium/selenium_settings_grid.ini.sample [deleted file]
tests/selenium/suites/AddContentToNewPageTestCase.php [deleted file]
tests/selenium/suites/AddNewPageTestCase.php [deleted file]
tests/selenium/suites/CreateAccountTestCase.php [deleted file]
tests/selenium/suites/DeletePageAdminTestCase.php [deleted file]
tests/selenium/suites/EmailPasswordTestCase.php [deleted file]
tests/selenium/suites/MediaWikiEditorConfig.php [deleted file]
tests/selenium/suites/MediaWikiEditorTestSuite.php [deleted file]
tests/selenium/suites/MediaWikiExtraTestSuite.php [deleted file]
tests/selenium/suites/MediawikiCoreSmokeTestCase.php [deleted file]
tests/selenium/suites/MediawikiCoreSmokeTestSuite.php [deleted file]
tests/selenium/suites/MovePageTestCase.php [deleted file]
tests/selenium/suites/MyContributionsTestCase.php [deleted file]
tests/selenium/suites/MyWatchListTestCase.php [deleted file]
tests/selenium/suites/PageDeleteTestSuite.php [deleted file]
tests/selenium/suites/PageSearchTestCase.php [deleted file]
tests/selenium/suites/PreviewPageTestCase.php [deleted file]
tests/selenium/suites/SavePageTestCase.php [deleted file]
tests/selenium/suites/SimpleSeleniumConfig.php [deleted file]
tests/selenium/suites/SimpleSeleniumTestCase.php [deleted file]
tests/selenium/suites/SimpleSeleniumTestSuite.php [deleted file]
tests/selenium/suites/UserPreferencesTestCase.php [deleted file]

index 2f3f2f8..ad5e959 100644 (file)
@@ -27,7 +27,6 @@ resources/jquery.chosen/chosen.jquery.js
 
 # legacy scripts
 skins/common/IEFixes.js
-skins/common/ajax.js
 skins/common/config.js
 skins/common/protect.js
 skins/common/upload.js
diff --git a/CREDITS b/CREDITS
index 417bec3..3c05bf1 100644 (file)
--- a/CREDITS
+++ b/CREDITS
@@ -122,6 +122,7 @@ following names for their contribution to the product.
 * David Baumgarten
 * Denny Vrandecic
 * Dévai Tamás
+* Ebrahim Byagowi
 * Edward Z. Yang
 * Elvis Stansvik
 * Erwin Dokter
diff --git a/RELEASE-NOTES-1.21 b/RELEASE-NOTES-1.21
deleted file mode 100644 (file)
index 717906a..0000000
+++ /dev/null
@@ -1,414 +0,0 @@
-Security reminder: MediaWiki does not require PHP's register_globals. If you
-have it on, turn it '''off''' if you can.
-
-== MediaWiki 1.21 ==
-
-THIS IS NOT A RELEASE YET
-
-MediaWiki 1.21 is an alpha-quality branch and is not recommended for use in
-production.
-
-=== Configuration changes in 1.21 ===
-* (bug 29374) $wgVectorUseSimpleSearch is now enabled by default.
-* Deprecated $wgAllowRealName is removed. Use $wgHiddenPrefs[] = 'realname'
-  instead.
-* (bug 39957) Added $wgUnwatchedPageThreshold, specifying minimum count
-  of page watchers required for the number to be accessible to users
-  without the unwatchedpages permission.
-* $wgBug34832TransitionalRollback has been removed.
-* (bug 29472) $wgUseDynamicDates has been removed and its functionality
-  disabled.
-
-=== New features in 1.21 ===
-* (bug 38110) Schema changes (adding or dropping tables, indices and
-  fields) can be now be done separately from from other changes that
-  update.php makes.  This is useful in environments that use database
-  permissions to restrict schema changes but allow the DB user that
-  MediaWiki normally runs as to perform other changes that update.php
-  makes.  Schema changes can be run separately.  See the file UPGRADE
-  for more information.
-* (bug 34876) jquery.makeCollapsible has been improved in performance.
-* Added ContentHandler facility to allow extensions to support other content
-  than wikitext. See docs/contenthandler.txt for details.
-* New feature was developed for showing high-DPI thumbnails for high-DPI mobile
-  and desktop displays (configurable with $wgResponsiveImages).
-* Added new backend to represent and store information about sites and site
-  specific configuration.
-* jQuery upgraded from 1.8.2 to 1.8.3.
-* jQuery UI upgraded from 1.8.23 to 1.8.24.
-* Added separate fa_sha1 field to filearchive table. This allows sha1
-  searches with the api in miser mode for deleted files.
-* Add initial and programmatic sorting for tablesorter.
-* Add the event "sortEnd.tablesorter", triggered after sorting has completed.
-* The Job system was refactored to allow for different backing stores for
-  queues as well as cross-wiki access to queues, among other things. The schema
-  for the DB queue was changed to support better concurrency and reduce
-  deadlock errors.
-* Added ApiQueryORM class to facilitate creation of query API modules based on
-  tables that have a corresponding ORMTable class.
-* (bug 40876) Icon for PSD (Adobe Photoshop) file types.
-* (bug 40641) Implemented Special:Version/Credits with a list of contributors.
-* (bug 7851) Implemented one-click AJAX patrolling.
-* The <data>, <time>, <meta>, and <link> elements are allowed within WikiText
-  for use with Microdata.
-* The HTML5 <mark> tag has been whitelisted.
-* Added ParserCloned hook for when the Parser object is cloned.
-* Added AlternateEditPreview hook to allow extensions to replace the page
-  preview from the edit page.
-* Added EditPage::showStandardInputs:options hook to allow extensions to add
-  new fields to the "editOptions" area of the edit form.
-* Upload stash DB schema altered to improve upload performance.
-* The following global functions are now reporting deprecated warnings in
-  debug mode: wfMsg, wfMsgNoTrans, wfMsgForContent, wfMsgForContentNoTrans,
-  wfMsgReal, wfMsgGetKey, wfMsgHtml, wfMsgWikiHtml, wfMsgExt, wfEmptyMsg. Use
-  the Message class, or the global method wfMessage.
-* Added $wgEnableCanonicalServerLink, off by default. If enabled, a
-  <link rel=canonical> tag is added to every page indicating the correct server
-  to use.
-* Debug message emitted by wfDebugLog() will now be prefixed with the group
-  name when its logged to the default log file. That is the case whenever the
-  group has no key in wgDebugLogGroups, that will help triage the default log.
-* (bug 24620) Add types to LogFormatter.
-* jQuery JSON upgraded from 2.3 to 2.4.0.
-* Added GetDoubleUnderscoreIDs hook, for modifying the list of magic words.
-* DatabaseUpdater class has two new methods to ease extensions schema changes:
-  dropExtensionIndex and renameExtensionIndex.
-* New preference type - 'api'. Preferences of this type are not shown on
-  Special:Preferences, but are still available via the action=options API.
-* (bug 39397) Hide rollback link if a user is the only contributor of the page.
-* $wgPageInfoTransclusionLimit limits the list size of transcluded articles
-  on the info action. Default is 50.
-* Added action=createaccount to allow user account creation.
-* (bug 40124) action=options API also allows for setting of arbitrary
-  preferences, provided that their names are prefixed with 'userjs-'. This
-  officially reenables the feature that was undocumented and defective
-  in MW 1.20 (saving preferences using Special:Preferences cleared any
-  additional fields) and which has been disabled in 1.20.1 as a part of
-  a security fix (bug 42202).
-* Added option to specify "others" as author in extension credits using
-  "..." as author name.
-* Added the ability to limit the wall clock time used by shell processes,
-  as well as the CPU time. Configurable with $wgMaxShellWallClockTime.
-* Allow memory of shell subprocesses to be limited using Linux cgroups
-  instead of ulimit -v, which tends to cause deadlocks in recent versions
-  of ImageMagick. Configurable with $wgShellCgroup.
-* Added $wgWhitelistReadRegexp for regex whitelisting.
-* (bug 5346) Categories that are redirects will be displayed italic in
-  the category links section at the bottom of a page.
-* (bug 43915) New maintenance script deleteEqualMessages.php.
-* You can now create checkbox option matrices through the HTMLCheckMatrix
-  subclass in HTMLForm.
-* WikiText now permits the use of WAI-ARIA's role="presentation" inside of
-  html elements and tables. This allows presentational markup, especially
-  tables. To be marked up as such.
-* maintenance/sql.php learned the --cluster option. Let you run the script
-  on some external cluster instead of the primary cluster for a given wiki.
-* (bug 20281) test the parsing of inline URLs.
-* Added Special:PagesWithProp, which lists pages using a particular page property.
-* Implemented language-specific collations for category sorting for 67 languages
-  based in latin, greek and cyrillic alphabets. This allows one to *finally* get
-  articles to be correctly sorted on category pages. They are named
-  'uca-<langcode>', where <langcode> is one of: af, ast, az, be, bg, br, bs, ca,
-  co, cs, cy, da, de, dsb, el, en, eo, es, et, eu, fi, fo, fr, fur, fy, ga, gd,
-  gl, hr, hsb, hu, is, it, kk, kl, ku, ky, la, lb, lt, lv, mk, mo, mt, nl, no,
-  oc, pl, pt, rm, ro, ru, rup, sco, sk, sl, smn, sq, sr, sv, tk, tl, tr, tt, uk,
-  uz, vi.
-* Added 'CategoryAfterPageAdded' and 'CategoryAfterPageRemoved' hooks.
-* Added 'HistoryRevisionTools' and 'DiffRevisionTools' hooks.
-* Added 'SpecialSearchResultsPrepend' and 'SpecialSearchResultsAppend' hooks.
-* (bug 33186) Add image rotation api "imagerotate"
-* (bug 34040) Add "User rights management" link on user page toolbox.
-* (bug 45526) Add QUnit assertion helper "QUnit.assert.htmlEqual" for asserting
-  structual equality of HTML (ignoring insignificant differences like
-  quotmarks, order and whitespace in the attribute list).
-
-=== Bug fixes in 1.21 ===
-* (bug 42649) PHP Fatal error: Call to a member function isLocal() on a
-  non-object in Title.php
-* (bug 46493) Special:ProtectedPages results in whitepage when a bad title is protected
-* (bug 40617) Installer can now customize the logo in LocalSettings.php
-* (bug 40353) SpecialDoubleRedirect should support interwiki redirects.
-* (bug 40352) fixDoubleRedirects.php should support interwiki redirects.
-* (bug 9237) SpecialBrokenRedirect should not list interwiki redirects.
-* (bug 34960) Drop unused fields rc_moved_to_ns and rc_moved_to_title from
-  recentchanges table.
-* (bug 32951) Do not register internal externals with absolute protocol,
-  when server has relative protocol.
-* (bug 39005) When purging proxies listed in $wgSquidServers using HTTP PURGE
-  method requests, we now send a Host header by default, for Varnish
-  compatibility. This also works with Squid in reverse-proxy mode. If you wish
-  to support Squid configured in forward-proxy mode, set
-  $wgSquidPurgeUseHostHeader to false.
-* (bug 37020) sql.php with readline eats semicolon.
-* (bug 11748) Properly handle optionally-closed HTML tags when Tidy is
-  disabled, and don't wrap HTML-syntax definition lists in paragraphs.
-* (bug 41409) Diffs while editing an old revision should again diff against the
-  current revision.
-* (bug 41494) Honor $wgLogExceptionBacktrace when logging non-API exceptions
-  caught during API execution.
-* (bug 37963) Fixed loading process for user options.
-* (bug 26995) Update filename field on Upload page after having sanitized it.
-* (bug 41793) Contribution links to users with 0 edits on Special:ListUsers
-  didn't show up red.
-* (bug 41899) A PHP notice no longer occurs when using the "rvcontinue" API
-  parameter.
-* (bug 42036) Account creation emails now contain canonical (not
-  protocol-relative) URLs.
-* (bug 41990) Fix regression: API edit with redirect=true and lacking
-  starttimestamp and basetimestamp should not cause an edit conflict.
-* (bug 41706) EditPage: Preloaded page should be converted if possible and
-  needed.
-* (bug 41886) Rowspans are no longer exploded by tablesorter until the table is
-  actually sorted.
-* (bug 2865)  User interface HTML elements don't use lang attribute.
-  (completed the fix by adding the lang attribute to firstHeading).
-* (bug 42173) Removed namespace prefixes on Special:UncategorizedCategories.
-* (bug 36053) Log in "returnto" feature forgets query parameters if no
-  title parameter was specified.
-* (bug 42410) API action=edit now returns correct timestamp for the new edit.
-* (bug 14901) Email notification mistakes log action for new page creation.
-  Enotif no longer sends "page has been created" notifications for some log
-  actions. The following events now have a correct message: page creation,
-  deletion, move, restore (undeletion), change (edit). Parameter
-  $CHANGEDORCREATED is deprecated in 'enotif_body' and scheduled for removal in
-  MediaWiki 1.23.
-* (bug 457) In the sidebar of Vector, CologneBlue, Monobook, and Monobook-based
-  skins, the heading levels have been changed from (variously per skin)
-  <h4>, <h5> or <h6> to only <h3>s, with a <h2> hidden heading above them.
-  If you are styling or scripting the headings in a custom way, this change
-  will require updates to your site's CSS or JS.
-* (bug 41342) jquery.suggestions should cancel any active (async) fetches
-  before it triggers another fetch.
-* (bug 42184) $wgUploadSizeWarning missing second variable.
-* (bug 34581) removeUnusedAccounts.php maintenance script now ignores newuser
-  log when determining whether an account is used.
-* (bug 43379) Gracefully fail if rev_len is unavailable for a revision on the
-  History page.
-* (bug 42949) API no longer assumes all exceptions are MWException.
-* (bug 41733) Hide "New user message" (.usermessage) element from printable view.
-* (bug 39062) Special:Contributions will display changes that don't have
-  a parent id instead of just an empty bullet item.
-* (bug 37209) "LinkCache doesn't currently know about this title" error fixed.
-* wfMerge() now works if $wgDiff3 contains spaces
-* (bug 43052) mediawiki.action.view.dblClickEdit.dblClickEdit should trigger
-  ca-edit click instead opening URL directly.
-* (bug 43964) Invalid value of "link" parameter in <gallery> no longer produces
-  a fatal error.
-* (bug 44775) The username field is not pre-filled when creating an account.
-* (bug 45069) wfParseUrl() no longer produces a PHP notice if passed a "mailto:"
-  URL without address
-* (bug 45012) Creating an account by e-mail can no longer show a
-  "password mismatch" error.
-* (bug 44599) On Special:Version, HEADs for submodule checkouts (e.g. for
-  extensions) performed using Git 1.7.8+ should now appear.
-* (bug 42184) $wgUploadSizeWarning missing second variable
-* (bug 40326) Check if files exist with a different extension during uploading
-* (bug 34798) Updated CSS for Atom/RSS recent changes feeds to match on-wiki diffs.
-* (bug 42430) Calling numRows on MySQL no longer propagates unrelated errors.
-* (bug 44719) Removed mention of non-existing maintenance/migrateCurStubs.php
-  script in includes/DefaultSettings.php
-* (bug 45143) jquery.badge: Treat non-Latin variants of zero as zero as well.
-* (bug 46151) mwdocgen.php should not ignore exit code of doxygen command.
-* (bug 41889) Fix $.tablesorter rowspan exploding for complex cases.
-* (bug 47489) Installer now automatically selects the next-best database type if
-  the PHP mysql extension is not loaded, preventing fatal errors in some cases.
-* (bug 47202) wikibits: FF2Fixes.css should not be loaded in Firefox 20.
-
-=== API changes in 1.21 ===
-* prop=revisions can now report the contentmodel and contentformat.
-  See docs/contenthandler.txt.
-* action=edit and action=parse now support contentmodel and contentformat
-  parameters to control the interpretation of page content.
-  See docs/contenthandler.txt for details.
-* (bug 35693) ApiQueryImageInfo now suppresses errors when unserializing metadata.
-* (bug 40111) Disable minor edit for page/section creation by API.
-* (bug 41042) Revert change to action=parse&page=... behavior when the page
-  does not exist.
-* (bug 27202) Add timestamp sort to list=allimages.
-* (bug 43137) Don't return the sha1 of revisions through the API if the content is
-  revision-deleted.
-* ApiQueryImageInfo now also returns imageinfo for redirects.
-* list=alltransclusions added to enumerate every instance of page embedding
-* list=alllinks & alltransclusions now allow both 'from' and 'continue' in
-  the same query. When both are present, 'from' is simply ignored.
-* list=alllinks & alltransclusions now allow 'unique' in generators, to yield
-  a list of all link/template target pages instead of source pages.
-* BREAKING CHANGE: list=logevents output format changed for details of some log
-  types. Specifically, details that were formerly reported under a key like
-  "4::foo" will now be reported under a key of simply "foo".
-* BREAKING CHANGE: '??_badcontinue' error code was changed to '??badcontinue'
-  for all query modules.
-* ApiQueryBase adds 'badcontinue' error code if module has 'continue' parameter.
-* (bug 35885) Removed version parameter and all getVersion() methods.
-* action=options now takes a "resetkinds" option, which allows only resetting
-  certain types of preferences when the "reset" option is set.
-* (bug 36751) ApiQueryImageInfo now returns imageinfo for the redirect target
-  when queried with &redirects=.
-* (bug 31849) ApiQueryImageInfo no longer gets confused when asked for info on
-  a redirect and its target.
-* (bug 43849) ApiQueryImageInfo no longer throws exceptions with ForeignDBRepo
-  redirects.
-* On error, any warnings generated before that error will be shown in the result.
-* action=help supports generalized submodules (modules=query+value), querymodules obsolete
-* ApiQueryImageInfo continuation is more reliable. The only major change is
-  that the imagerepository property will no longer be set on page objects not
-  processed in the current query (i.e. non-images or those skipped due to
-  iicontinue).
-* Add supports for all pageset capabilities - generators, redirects, converttitles to
-  action=purge and action=setnotificationtimestamp.
-* (bug 43251) prop=pageprops&ppprop= now accepts multiple props to query.
-* ApiQueryImageInfo will now limit the number of calls to File::transform made
-  in any one query. If there are too many, iicontinue will be returned.
-* action=query&meta=siteinfo&siprop=general will now return the regexes used for
-  link trails and link prefixes. Added for Parsoid support.
-* Added an API query module list=pageswithprop, which lists pages using a
-  particular page property.
-* Added an API query module list=pagepropnames, which lists all page prop names
-  currently in use on the wiki.
-* (bug 44921) ApiMain::execute() will now return after the CORS check for an
-  HTTP OPTIONS request.
-* (bug 44923) action=upload works correctly if the entire file is uploaded in
-  the first chunk.
-* Added 'continue=' parameter to streamline client iteration over complex query results
-* (bug 44909) API parameters may now be marked as type "upload", which is now
-  used for action=upload's 'file' and 'chunk' parameters. This type will raise
-  an error during parameter validation if the parameter is given but not
-  recognized as an uploaded file.
-* (bug 44244) prop=info may now return the number of people watching each page.
-* (bug 33304) list=allpages will no longer return duplicate entries when
-  querying protection.
-* (bug 33304) list=allpages will now find really old indefinite protections.
-* (bug 45937) meta=allmessages will report a syntactically invalid lang as a
-  proper error instead of as an uncaught exception.
-* The JSON output formatter now leaves forward slashes unescaped to improve human
-  readability of URLs and similar strings. Also, a "utf8" option is now provided
-  to use UTF-8 encoding instead of hex escape codes for most non-ASCII characters.
-
-=== API internal changes in 1.21 ===
-* For debugging only, a new global $wgDebugAPI removes many API restrictions when true.
-  Never use on the production servers, as this flag introduces security holes.
-  Whenever enabled, a warning will also be added to all output.
-* ApiModuleManager now handles all submodules (actions,props,lists) and instantiation
-* Query stores prop/list/meta as submodules
-* ApiPageSet can now be used in any action to process titles/pageids/revids or any generator.
-* BREAKING CHANGE: ApiPageSet constructor now has two params instead of three, with only the
-  first one keeping its meaning. ApiPageSet is now derived from ApiBase.
-* BREAKING CHANGE: ApiQuery::newGenerator() and executeGeneratorModule() were deleted.
-* ApiQueryGeneratorBase::setGeneratorMode() now requires a pageset param.
-* $wgAPIGeneratorModules is now obsolete and will be ignored.
-* Added flags ApiResult::OVERRIDE and ADD_ON_TOP to setElement() and addValue()
-* Internal API calls will now include <warnings> in case of unused parameters
-
-=== Languages updated in 1.21 ===
-
-MediaWiki supports over 350 languages. Many localisations are updated
-regularly. Below only new and removed languages are listed, as well as
-changes to languages because of Bugzilla reports.
-
-* South Azerbaijani (azb) added.
-* (bug 30040) Autonym for nds-nl is now 'Nedersaksies' (was 'Nedersaksisch').
-* (bug 45436) Autonym for pi (Pali) is now 'पालि' (was ''पाळि').
-* (bug 34977) Now formatted numbers in Spanish use space as separator
-  for thousands, as mandated by the Real Academia Española.
-* (bug 35031) Kurdish formatted numbers now use period and comma
-  as separators for thousands and decimals respectively.
-
-=== Other changes in 1.21 ===
-* BREAKING CHANGE: (bug 44385) Removed the jquery.collapsibleTabs module and
-  moved it to the Vector extension. It was entirely Vector-extension-specific,
-  deeply interconnected with the extension, and this functionality really
-  belongs to the extension instead of the skin anyway. In the unlikely case you
-  were using it, you have to either copy it to your extension, or install the
-  Vector extension (and possibly disable its features using config settings if
-  you don't want them).
-* Experimental IBM DB2 support was removed due to lack of interest and maintainership.
-* BREAKING CHANGE: Filenames of maintenance scripts were standardized into
-  lowerCamelCase format, and made more explicit:
-  - clear_stats.php -> clearCacheStats.php
-  - clear_interwiki_cache.php -> clearInterwikiCache.php
-  - initStats.php -> initSiteStats.php
-  - proxy_check.php -> proxyCheck.php
-  - stats.php -> showCacheStats.php
-  - showStats.php -> showSiteStats.php.
-  Class names were renamed accordingly:
-  - clear_stats -> ClearCacheStats
-  - InitStats -> InitSiteStats
-  - CacheStats -> ShowCacheStats
-  - ShowStats -> ShowSiteStats.
-* BREAKING CHANGE: (bug 38244) Removed the mediawiki.api.titleblacklist module
-  and moved it to the TitleBlacklist extension.
-* BREAKING CHANGE: Implementation of MediaWiki's JS and JSON value encoding
-  has changed:
-** MediaWiki no longer supports PHP installations in which the native JSON
-   extension is missing or disabled.
-** XmlJsCode objects can no longer be nested inside objects or arrays.
-   (For Xml::encodeJsCall(), this individually applies to each argument.)
-** The sets of characters escaped by default, along with the precise escape
-   sequences used, have changed (except for the Xml::escapeJsString()
-   function, which is now deprecated).
-* BREAKING CHANGE: The Services_JSON class has been removed. If necessary,
-  be sure to upgrade affected extensions at the same time (e.g. Collection).
-
-== Compatibility ==
-
-MediaWiki 1.21 requires PHP 5.3.2 or later.
-
-MySQL is the recommended DBMS. PostgreSQL or SQLite can also be used, but
-support for them is somewhat less mature. There is experimental support for
-Oracle.
-
-The supported versions are:
-
-* MySQL 5.0.2 or later
-* PostgreSQL 8.3 or later
-* SQLite 3.3.7 or later
-* Oracle 9.0.1 or later
-
-== Upgrading ==
-
-1.21 has several database changes since 1.20, and will not work without schema
-updates. Note that due to changes to some very large tables like the revision
-table, the schema update may take quite long (minutes on a medium sized site,
-many hours on a large site).
-
-If upgrading from before 1.11, and you are using a wiki as a commons
-repository, make sure that it is updated as well. Otherwise, errors may arise
-due to database schema changes.
-
-If upgrading from before 1.7, you may want to run refreshLinks.php to ensure
-new database fields are filled with data.
-
-If you are upgrading from MediaWiki 1.4.x or earlier, you should upgrade to
-1.5 first. The upgrade script maintenance/upgrade1_5.php has been removed
-with MediaWiki 1.21.
-
-Don't forget to always back up your database before upgrading!
-
-See the file UPGRADE for more detailed upgrade instructions.
-
-For notes on 1.19.x and older releases, see HISTORY.
-
-== Online documentation ==
-
-Documentation for both end-users and site administrators is available on
-MediaWiki.org, and is covered under the GNU Free Documentation License (except
-for pages that explicitly state that their contents are in the public domain):
-
-       https://www.mediawiki.org/wiki/Documentation
-
-== Mailing list ==
-
-A mailing list is available for MediaWiki user support and discussion:
-
-       https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
-
-A low-traffic announcements-only list is also available:
-
-       https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce
-
-It's highly recommended that you sign up for one of these lists if you're
-going to run a public MediaWiki, so you can be notified of security fixes.
-
-== IRC help ==
-
-There's usually someone online in #mediawiki on irc.freenode.net.
index a26c7d8..1d5ccae 100644 (file)
@@ -11,9 +11,6 @@ production.
 === Configuration changes in 1.22 ===
 * $wgRedirectScript was removed. It was unused.
 * Removed $wgLocalMessageCacheSerialized, it is now always true.
-* When $wgUseVFormUserLogin is true, the redesign of Special:UserLogin is
-  activated; when $wgUseVFormCreateAccount is true, the redesign of
-  Special:UserLogin/signup is activated.
 * $wgVectorUseIconWatch is now enabled by default.
 * $wgCascadingRestrictionLevels was added.
 * ftps, ssh, sftp, xmpp, sip, sips, tel, sms, bitcoin, magnet, urn, and geo
@@ -24,8 +21,24 @@ production.
 * $wgXhtmlDefaultNamespace is no longer used by core. Setting it will no longer change the
   xmlns used by MediaWiki. Reliance on this variable by extensions is deprecated.
 * $wgHandheldStyle was removed.
+* $wgHandheldForIPhone was removed.
 * $wgJsMimeType is no longer used by core. Most usage has been removed since
   HTML output is now exclusively HTML5.
+* $wgDBOracleDRCP added. True enables persistent connection with DRCP on Oracle.
+* $wgLogAutopatrol added to allow disabling logging of autopatrol edits in the logging table.
+  default for $wgLogAutopatrol is true.
+* The 'edit' right no longer allows for editing a user's own CSS and JS.
+* New rights 'editmyusercss', 'editmyuserjs', 'viewmywatchlist',
+  'editmywatchlist', 'viewmyprivateinfo', 'editmyprivateinfo', and
+  'editmyoptions' restrict actions that were formerly allowed by default. They
+  have been added to the default for $wgGroupPermissions['*'].
+* The 'editprotected' right no longer allows bypassing of all page protection
+  restrictions. Any group using it for this purpose will now need to have all
+  the individual rights listed in $wgRestrictionTypes for the same effect.
+* The 'protect' and 'autoconfirmed' rights are no longer used for the default
+  page protection levels. The rights 'editprotected' and 'editsemiprotected'
+  are now used for this purpose instead.
+* (bug 40866) wgOldChangeTagsIndex removed.
 
 === New features in 1.22 ===
 * (bug 44525) mediawiki.jqueryMsg can now parse (whitelisted) HTML elements and attributes.
@@ -39,9 +52,11 @@ production.
 * New 'mediawiki.ui' CSS module providing mw-ui-* styles for buttons and a
   compact vertical form layout.
 * New versions of login (Special:UserLogin) and create account
-  (Special:UserLogin/signup) forms. They are opt-in for now, controlled by
-  the $wgUseVFormUserLogin and $wgUseVFormCreateAccount settings or a 'useNew'
-  URL parameter trigger.
+  (Special:UserLogin/signup) forms using the "vform" compact vertical form layout.
+  These forms use new messages that assume a "Help logging in" link, see
+  https://www.mediawiki.org/wiki/Manual:Page_customizations;
+  https://www.mediawiki.org/wiki/Account_creation_user_experience/Strings lists the
+  message key changes.
 * (bug 23343) Implemented ability to apply IP blocks to the contents of X-Forwarded-For headers
   by adding a new configuration variable $wgApplyIpBlocksToXff (disabled by default).
 * The new hook 'APIGetPossibleErrors' to modify the list of possible errors was
@@ -86,6 +101,65 @@ production.
   HTTP caches when a page is changed.
 * Changed the patrolling system to always show the link for patrolling in case the
   current revision is patrollable. This also removed the usage of the rcid URI parameters.
+* Oracle DB backend now supports Database Resident Connection Pooling (DRCP).
+  Can be enabled by setting $wgDBOracleDRCP=true.
+  Requires Oracle DB 11gR1 or above, enabled DRCP inside the DB itself and a
+  propper connect string.
+  More about DRCP can be found at:
+  http://www.oracle-base.com/articles/11g/database-resident-connection-pool-11gr1.php
+* Add a new parameter $patrolFooterShown to hook ArticleViewFooter so the hook
+  handlers can take further action based on the status of the patrol footer
+* A new hook TitleQuickPermissions was added to allow overriding of quick
+  permissions in the Title class.
+* LinkCache singleton can now be altered or cleared, letting one to specify
+  another instance that does not rely on a database backend.
+* MediaWiki's PHPUnit tests can now use PHPUnit installed using composer --dev.
+* New user rights have been added to increase granularity in rights management
+  for extensions such as OAuth:
+** editmyusercss controls whether a user may edit their own CSS subpages.
+** editmyuserjs controls whether a user may edit their own JS subpages.
+** viewmywatchlist controls whether a user may view their watchlist.
+** editmywatchlist controls whether a user may edit their watchlist.
+** viewmyprivateinfo controls whether a user may access their private
+   information (e.g. registered email address, real name).
+** editmyprivateinfo controls whether a user may change their private
+   information.
+** editmyoptions controls whether a user may change their preferences.
+* Add new hook AbortTalkPageEmailNotification, this will be used to determine
+  whether to send the regular talk page email notification
+* (bug 46513) Vector: Add the collapsibleTabs script from the Vector extension.
+* Added $wgRecentChangesFlags for defining new flags for RecentChanges and
+  watchlists.
+* (bug 40518) mw.toolbar: Implemented mw.toolbar.addButtons for adding multiple
+ button objects in one call.
+* Rights used for the default protection levels ('sysop' and 'autoconfirmed')
+  are now used just for that purpose, instead of overloading other rights. This
+  allows easy granting of the ability to edit sysop-protected pages without
+  also granting the ability to protect and unprotect.
+* (bug 48256) Make brackets in section edit links accessible to CSS.
+  They are now wrapped in <span class="mw-editsection-bracket" />.
+* (bug 8480) Allow handler specific parameters in galleries (like page number)
+* jquery.client: Add detection for Opera 15 and Internet Explorer 11.
+* Change tags (used by the AbuseFilter extension) are now shown on diff pages.
+* Change tag lists (shown on recent changes, watchlist, user contributions,
+  history pages, diff pages) now include a link to Special:Tags to distinguish
+  them from edit summaries.
+* Added a new method and hook, User::isEveryoneAllowed() and
+  UserIsEveryoneAllowed, for use in situations where a "does everyone have this
+  right?" check is used to avoid more expensive checks.
+* Display "(No difference)" instead of an empty diff (when comparing revisions
+  in the history or when previewing changes while editing).
+* New hook 'IsUploadAllowedFromUrl' is added which can be used to intercept uploads by
+  URL, useful for blacklisting specific URLs
+* (bug 21912) Watchlist token implementation has been refactored and
+  Special:ResetTokens was added to allow users to reset their tokens
+  instead of presenting them in Preferences.
+* Special:PrefixIndex now lets you strip the searched prefix from the displayed
+  titles. Given a list of articles named Bug1, Bug2, you can now transclude the
+  list of bug numbers using: {{Special:PrefixIndex/Bug|stripprefix=1}}.
+  The special page form received a new checkbox matching that option.
+* (bug 23580) Implement javascript callback interface "mw.hook".
+* (bug 30713) New mw.hook "wikipage.content".
 
 === Bug fixes in 1.22 ===
 * Disable Special:PasswordReset when $wgEnableEmail is false. Previously one
@@ -115,8 +189,45 @@ production.
 * (bug 30213) JavaScript for search suggestions is now disabled when the API
   is disabled, and AJAX patrolling and watching are now disabled when use of
   the write API is not allowed.
+* (bug 48294) API: Fix chunk upload async mode.
+* (bug 46749) Broken files tracking category removed from pages if an image
+  with that name is uploaded.
+* (bug 14176) System messages that are empty were previously incorrectly treated
+  as non-existent, causing a fallback to the default. This stopped users from
+  overriding system messages to make them blank.
+* (bug 48319) action=parse no longer returns an error if passed none of 'oldid',
+  'pageid', 'page', 'title', and 'text' (e.g. if only passed 'summary'). A
+  warning will instead be issued if 'title' is non-default, unless no props are
+  requested.
+* Special:Recentchangeslinked will now include upload log entries
+* (bug 41281) Fixed ugly output if file size could not be extracted for multi-page media.
+* (bug 50315) list=logevents API module will now output log entries by anonymous users.
+* (bug 38911) Handle headers with rowspan in jquery.tablesorter
+* (bug 658) Converted the table of contents on wiki pages from <table> to <div>
+  and adjusted skin CSS accordingly. The CSS was carefully crafted to be
+  backwards-compatible in all reasonable cases (uses of the __TOC__ magic word,
+  the #toc CSS id and the .toc CSS class). However, particularly bad abuse of
+  the id or the class can possibly break.
+* CSSJanus now supports rgb, hsl, rgba, and hsla color syntaxes.
+* Special:Listfiles can no longer be sorted by image name when filtering
+  by user in miser mode.
+* (bug 49074) CSSJanus: Handle values of border-radius correctly.
+* Handle relative inclusions ({{../name}}) in main namespace with subpages
+  enabled correctly (previously MediaWiki tried to include Template:Parent/name
+  instead of just Parent/name).
+* Added $wgAPIUselessQueryPages to allow extensions to flag their query pages
+  for non-inclusion in ApiQueryQueryPages.
+* (bug 50870) mediawiki.notification: Notification area should remain visible
+  when scrolled down.
+* (bug 13438) Special:MIMESearch no longer an expensive special page.
+* (bug 48342) Fixed a fatal error when $wgValidateAllHtml is set to true and
+  the function apache_request_headers() function is not available.
 
 === API changes in 1.22 ===
+* (bug 25553) The JSON output formatter now leaves forward slashes unescaped
+  to improve human readability of URLs and similar strings. Also, a "utf8"
+  option is now provided to use UTF-8 encoding instead of hex escape codes
+  for most non-ASCII characters.
 * (bug 46626) xmldoublequote parameter was removed. Because of a bug, the
   parameter has had no effect since MediaWiki 1.16, and so its removal is
   unlikely to impact existing clients.
@@ -139,8 +250,27 @@ production.
 * (bug 47219) Allow specifying change type of Wikipedia feed items
 * prop=imageinfo now allows setting iiurlheight without setting iiurlwidth
 * prop=info now adds the content model and page language of the title.
-* New upload log entries will now contain information on the relavent
+* New upload log entries will now contain information on the relevant
   image (sha1 and timestamp).
+* (bug 49239) action=parse now can parse in preview and section preview modes.
+* (bug 49259) action=patrol now accepts revision ids.
+* (bug 48129) list=blocks&bkip= now correctly handles IPv6 CIDR ranges and
+  honors $wgBlockCIDRLimit. Note any clients passing invalid values to bkip
+  will now receive an error, rather than the previous behavior listing all
+  user blocks.
+* (bug 48201) action=parse&text=foo now assumes wikitext if no title is given,
+  rather than using the content model of the page "API".
+* action=watch may now return errors.
+* (bug 50785) action=purge with forcelinkupdate=1 no longer queues refreshLinks
+  jobs in the job queue for link table updates of pages that use the given page
+  as a template. Instead, forcerecursivelinkupdate=1 is introduced and should
+  be used if that behaviour is desirable.
+* The 'debugLog' property (enabled by $wgDebugToolbar) no longer sets the log
+  entry values through ApiResult::content but directly. This changes the JSON
+  output from an array of objects with content in '*' to an array of strings
+  with the content.
+* (bug 51342) prop=imageinfo iicontinue now contains the dbkey, not the text
+  version of the title.
 
 === Languages updated in 1.22===
 
@@ -148,9 +278,21 @@ MediaWiki supports over 350 languages. Many localisations are updated
 regularly. Below only new and removed languages are listed, as well as
 changes to languages because of Bugzilla reports.
 
+* Batak Toba (bbc-latn) added.
 * (bug 46751) Made Buryat (Russia) (буряад) (bxr) fallback to Russian.
 
 === Other changes in 1.22 ===
+* BREAKING CHANGE: Implementation of MediaWiki's JS and JSON value encoding
+  has changed:
+** MediaWiki no longer supports PHP installations in which the native JSON
+   extension is missing or disabled.
+** XmlJsCode objects can no longer be nested inside objects or arrays.
+   (For Xml::encodeJsCall(), this individually applies to each argument.)
+** The sets of characters escaped by default, along with the precise escape
+   sequences used, have changed (except for the Xml::escapeJsString()
+   function, which is now deprecated).
+* BREAKING CHANGE: The Services_JSON class has been removed. If necessary,
+  be sure to upgrade affected extensions at the same time (e.g. Collection).
 * redirect.php was removed. It was unused.
 * ClickTracking integration was dropped from the mediaWiki.user.bucket
   JavaScript function. The 'tracked' option is now ignored.
@@ -184,6 +326,29 @@ changes to languages because of Bugzilla reports.
   is_chrome, webkit_version, is_safari_win, is_safari, webkit_match, is_ff2,
   ff2_bugs, is_ff2_win, is_ff2_x11, opera95_bugs, opera7_bugs, opera6_bugs,
   is_opera_95, is_opera_preseven, is_opera, and ie6_bugs.
+* (bug 48276) MediaWiki will now flash a confirmation message upon successfully
+  editing a page.
+* (bug 40785) mediawiki.legacy.ajax has been marked as deprecated. The following
+  properties now emit mw.log.warn when accessed: sajax_debug, sajax_init_object,
+  sajax_do_call and wfSupportsAjax.
+* BREAKING CHANGE: meta keywords are no longer supported. A <meta name="keywords"
+  will no longer be output and OutputPage::addKeyword no longer exists.
+* Methods Title::userCanEditCssSubpage and Title::userCanEditJsSubpage,
+  deprecated since 1.19, have been removed.
+* (bug 50134) Hook functions are no longer required to return a value. When a
+  hook function does not return a value (or when it returns an explicit null),
+  processing continues. To abort the hook, a hook function must return an
+  explicit, boolean false or a string error message. Other falsey values are
+  tantamount to a 'return true' in earlier versions of MediaWiki.
+* BREAKING CHANGE: The EditSectionLink hook was removed after being
+  deprecated since MediaWiki 1.14. Use DoEditSectionLink instead.
+* (bug 48256) The 'editsection-brackets' optional message was removed.
+  Section edit links' brackets can now be customized using CSS by
+  styling span.mw-editsection-bracket.
+* The usePatrol function in ChangesList has been marked as deprecated.
+* (bug 50785) A "null edit", that is, a save action in which no changes to the
+  page text are made and no revision recorded, will no longer send refreshLinks
+  jobs to the job table to update pages which use the edited page as a template.
 
 == Compatibility ==
 
index 640d642..0137f5b 100644 (file)
@@ -270,6 +270,10 @@ $reason: the reason for the move (added in 1.13)
 $user: the User object about to be created (read-only, incomplete)
 &$msg: out parameter: HTML to display on abort
 
+'AbortTalkPageEmailNotification': Return false to cancel talk page email notification
+$targetUser: the user whom to send talk page email notification
+$title: the page title
+
 'AbortChangePassword': Return false to cancel password change.
 $user: the User object to which the password change is occuring
 $mOldpass: the old password provided by the user
@@ -615,6 +619,7 @@ the user is redirected back to the page.
 
 'ArticleViewFooter': After showing the footer section of an ordinary page view
 $article: Article object
+$patrolFooterShown: boolean whether patrol footer is shown
 
 'ArticleViewHeader': Before the parser cache is about to be tried for article
 viewing.
@@ -1014,14 +1019,6 @@ notice.
 $title: title of page being edited
 &$msg: localization message name, overridable. Default is 'editpage-tos-summary'
 
-'EditSectionLink': Do not use, use DoEditSectionLink instead.
-$skin: Skin rendering the UI
-$title: Title being linked to
-$section: Section to link to
-$link: Default link
-&$result: Result (alter this to override the generated links)
-$lang: The language code to use for the link in the wfMessage function
-
 'EmailConfirmed': When checking that the user's email address is "confirmed".
 $user: User being checked
 $confirmed: Whether or not the email address is confirmed
@@ -1363,6 +1360,10 @@ $article: article (object) being checked
 $ip: IP being check
 $result: Change this value to override the result of wfIsTrustedProxy()
 
+'IsUploadAllowedFromUrl': Override the result of UploadFromUrl::isAllowedUrl()
+$url: URL used to upload from
+&$allowed: Boolean indicating if uploading is allowed for given URL
+
 'isValidEmailAddr': Override the result of User::isValidEmailAddr(), for
 instance to return false if the domain name doesn't match your organization.
 $addr: The e-mail address entered by the user
@@ -1944,11 +1945,12 @@ $data: the data stored in old_text.  The meaning depends on $flags: if external
 $flags: a comma-delimited list of strings representing the options used.  May
   include: utf8 (this will always be set for new revisions); gzip; external.
 
-'SearchUpdate': Prior to search update completion.
+'SearchUpdate': Prior to search update completion. Return false to stop any
+further text/content processing
 $id : Page id
-$namespace : Page namespace
-$title : Page title
+$title : Title object
 $text : Current text being indexed
+$content : Content object for text being indexed.
 
 'SearchGetNearMatchBefore': Perform exact-title-matches in "go" searches before
 the normal operations.
@@ -1985,8 +1987,6 @@ $title : Current Title object being displayed in search results.
 'SearchableNamespaces': An option to modify which namespaces are searchable.
 &$arr : Array of namespaces ($nsId => $name) which will be used.
 
-'SeleniumSettings': TODO
-
 'SetupAfterCache': Called in Setup.php, after cache objects are set
 
 'ShowMissingArticle': Called when generating the output for a non-existent page.
@@ -2222,6 +2222,11 @@ $opts: FormOptions for this request
 &$query_options: array of options for the database request
 &$select: Array of columns to select
 
+'SpecialResetTokensTokens': Called when building token list for
+SpecialResetTokens.
+&$tokens: array of token information arrays in the format of
+  array( 'preference' => '<preference-name>', 'label-message' => '<message-key>' )
+
 'SpecialSearchCreateLink': Called when making the message to create a page or
 go to the existing page.
 $t: title object searched for
@@ -2330,6 +2335,20 @@ database result.
 &$titleArray: set this to an object to override the default object returned
 $res: database result used to create the object
 
+'TitleQuickPermissions': Called from Title::checkQuickPermissions to add to
+or override the quick permissions check.
+$title: The Title object being accessed
+$user: The User performing the action
+$action: Action being performed
+&$errors: Array of errors
+$doExpensiveQueries: Whether to do expensive DB queries
+$short: Whether to return immediately on first error
+
+'TitleGetEditNotices': Allows extensions to add edit notices
+$title: The Title object for the page the edit notices are for
+$oldid: Revision ID that the edit notices are for (or 0 for latest)
+&$notices: Array of notices. Keys are i18n message keys, values are parseAsBlock()ed messages.
+
 'TitleGetRestrictionTypes': Allows extensions to modify the types of protection
 that can be applied.
 $title: The title in question.
@@ -2413,6 +2432,7 @@ $article: article "acted on"
 'UnwatchArticle': Before a watch is removed from an article.
 $user: user watching
 $page: WikiPage object to be removed
+&$status: Status object to be returned if the hook returns false
 
 'UnwatchArticleComplete': After a watch is removed from an article.
 $user: user that watched
@@ -2573,6 +2593,10 @@ $title: Title of the page in question
 $ip: User's IP address
 &$blocked: Whether the user is blocked, to be modified by the hook
 
+'UserIsEveryoneAllowed': Check if all users are allowed some user right; return
+false if a UserGetRights hook might remove the named right.
+$right: The user right being checked
+
 'UserLoadAfterLoadFromSession': Called to authenticate users on external or
 environmental means; occurs after session is loaded.
 $user: user object being loaded
@@ -2662,6 +2686,7 @@ used to alter the SQL query which gets the list of wanted pages.
 'WatchArticle': Before a watch is added to an article.
 $user: user that will watch
 $page: WikiPage object to be watched
+&$status: Status object to be returned if the hook returns false
 
 'WatchArticleComplete': After a watch is added to an article.
 $user: user that watched
index e22fe20..bddbeb3 100644 (file)
@@ -113,13 +113,11 @@ class AjaxDispatcher {
                                'Bad Request',
                                "unknown function " . (string) $this->func_name
                        );
-               } elseif ( !in_array( 'read', User::getGroupPermissions( array( '*' ) ), true )
-                       && !$wgUser->isAllowed( 'read' ) )
-               {
+               } elseif ( !User::isEveryoneAllowed( 'read' ) && !$wgUser->isAllowed( 'read' ) ) {
                        wfHttpError(
                                403,
                                'Forbidden',
-                               'You must log in to view pages.' );
+                               'You are not allowed to view pages.' );
                } else {
                        wfDebug( __METHOD__ . ' dispatching ' . $this->func_name . "\n" );
 
index da24a98..732b1c2 100644 (file)
@@ -1038,9 +1038,9 @@ class Article implements Page {
                }
 
                // Show a footer allowing the user to patrol the shown revision or page if possible
-               $this->showPatrolFooter();
+               $patrolFooterShown = $this->showPatrolFooter();
 
-               wfRunHooks( 'ArticleViewFooter', array( $this ) );
+               wfRunHooks( 'ArticleViewFooter', array( $this, $patrolFooterShown ) );
 
        }
 
@@ -1050,89 +1050,53 @@ class Article implements Page {
         * desired, does nothing.
         * Side effect: When the patrol link is build, this method will call
         * OutputPage::preventClickjacking() and load mediawiki.page.patrol.ajax.
+        *
+        * @return bool
         */
        public function showPatrolFooter() {
-               global $wgUseRCPatrol, $wgUseNPPatrol, $wgRCMaxAge, $wgEnableAPI, $wgEnableWriteAPI;
+               global $wgUseNPPatrol, $wgUseRCPatrol, $wgEnableAPI, $wgEnableWriteAPI;
 
-               $request = $this->getContext()->getRequest();
                $outputPage = $this->getContext()->getOutput();
                $user = $this->getContext()->getUser();
                $cache = wfGetMainCache();
+               $rc = false;
 
-               // Conditions to potentially patrol the current revision
-               // patrolPage is set in case we want to patrol the first
-               // revision and not the current one (set in Special:NewPages)
-               $useRCPatrol = $wgUseRCPatrol && !$request->getBool( 'patrolpage' );
-
-               if ( !$this->getTitle()->quickUserCan( 'patrol', $user ) || ( !$wgUseNPPatrol && !$wgUseRCPatrol ) ) {
-                       // Patrolling is fully disabled or the user isn't allowed to
-                       return;
+               if ( !$this->getTitle()->quickUserCan( 'patrol', $user ) || !( $wgUseRCPatrol || $wgUseNPPatrol ) ) {
+                       // Patrolling is disabled or the user isn't allowed to
+                       return false;
                }
 
                wfProfileIn( __METHOD__ );
 
-               if ( $useRCPatrol ) {
-                       // Check for cached results
-                       if ( $cache->get( wfMemcKey( 'NotPatrollableRevId', $this->getRevIdFetched() ) ) ) {
-                               wfProfileOut( __METHOD__ );
-                               return;
-                       }
-
-                       // We make use of a little index trick over here:
-                       // First we get the timestamp of the last revision and then
-                       // we look up the RC row by that as the timestamp is indexed
-                       // and usually very few rows exist for one timestamp
-                       // (While several thousand can exists for a single page)
-                       if ( !$this->mRevision ) {
-                               $this->mRevision = Revision::newFromId( $this->getRevIdFetched() );
-                       }
+               // New page patrol: Get the timestamp of the oldest revison which
+               // the revision table holds for the given page. Then we look
+               // whether it's within the RC lifespan and if it is, we try
+               // to get the recentchanges row belonging to that entry
+               // (with rc_new = 1).
 
-                       if ( !$this->mRevision || !RecentChange::isInRCLifespan( $this->mRevision->getTimestamp(), 21600 )  ) {
-                               // The revision is more than 6 hours older than the Max RC age
-                               // no need to torture the DB any further (6h because the RC might not be cleaned out regularly)
-                               wfProfileOut( __METHOD__ );
-                               return;
-                       }
-                       $rc = RecentChange::newFromConds(
-                               array(
-                                       'rc_this_oldid' => $this->getRevIdFetched(),
-                                       'rc_timestamp' => $this->mRevision->getTimestamp(),
-                                       'rc_cur_id' => $this->getTitle()->getArticleID(),
-                                       'rc_patrolled' => 0
-                               ),
-                               __METHOD__,
-                               array( 'USE INDEX' => 'rc_timestamp' )
-                       );
-               } else {
-                       // RC patrol is disabled so we have to patrol the first
-                       // revision (new page patrol) in case it's in the RC table.
-                       // To achieve this we get the timestamp of the oldest revison
-                       // the revision table holds for the given page. Then we look
-                       // whether it's within the RC lifespan and if it is, we try
-                       // 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() ) ) ) {
-                               wfProfileOut( __METHOD__ );
-                               return;
-                       }
+               // Check for cached results
+               if ( $cache->get( wfMemcKey( 'NotPatrollablePage', $this->getTitle()->getArticleID() ) ) ) {
+                       wfProfileOut( __METHOD__ );
+                       return false;
+               }
 
-                       $dbr = wfGetDB( DB_SLAVE );
-                       $oldestRevisionTimestamp = $dbr->selectField(
-                               'revision',
-                               'MIN( rev_timestamp )',
-                               array( 'rev_page' => $this->getTitle()->getArticleID() ),
-                               __METHOD__
-                       );
+               if ( $this->mRevision && !RecentChange::isInRCLifespan( $this->mRevision->getTimestamp(), 21600 ) ) {
+                       // The current revision is already older than what could be in the RC table
+                       // 6h tolerance because the RC might not be cleaned out regularly
+                       wfProfileOut( __METHOD__ );
+                       return false;
+               }
 
-                       if ( !$oldestRevisionTimestamp || !RecentChange::isInRCLifespan( $oldestRevisionTimestamp, 21600 ) ) {
-                               // We either didn't find the oldest revision for the given page
-                               // or it's to old for the RC table (with 6h tolerance)
-                               wfProfileOut( __METHOD__ );
-                               return;
-                       }
+               $dbr = wfGetDB( DB_SLAVE );
+               $oldestRevisionTimestamp = $dbr->selectField(
+                       'revision',
+                       'MIN( rev_timestamp )',
+                       array( 'rev_page' => $this->getTitle()->getArticleID() ),
+                       __METHOD__
+               );
 
+               if ( $oldestRevisionTimestamp && RecentChange::isInRCLifespan( $oldestRevisionTimestamp, 21600 ) ) {
+                       // 6h tolerance because the RC might not be cleaned out regularly
                        $rc = RecentChange::newFromConds(
                                array(
                                        'rc_new' => 1,
@@ -1146,20 +1110,15 @@ class Article implements Page {
                        );
                }
 
-               wfProfileOut( __METHOD__ );
-
                if ( !$rc ) {
                        // No 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
-                       if( $useRCPatrol ) {
-                               $cache->set( wfMemcKey( 'NotPatrollableRevId', $this->getRevIdFetched() ), '1', $wgRCMaxAge );
-                       } else {
-                               $cache->set( wfMemcKey( 'NotPatrollablePage', $this->getTitle()->getArticleID() ), '1', $wgRCMaxAge );
-                       }
+                       $cache->set( wfMemcKey( 'NotPatrollablePage', $this->getTitle()->getArticleID() ), '1' );
 
-                       return;
+                       wfProfileOut( __METHOD__ );
+                       return false;
                }
 
                $rcid = $rc->getAttribute( 'rc_id' );
@@ -1187,6 +1146,9 @@ class Article implements Page {
                                wfMessage( 'markaspatrolledlink' )->rawParams( $link )->escaped() .
                        '</div>'
                );
+
+               wfProfileOut( __METHOD__ );
+               return true;
        }
 
        /**
@@ -1584,13 +1546,7 @@ class Article implements Page {
 
                        $this->doDelete( $reason, $suppress );
 
-                       if ( $user->isLoggedIn() && $request->getCheck( 'wpWatch' ) != $user->isWatched( $title ) ) {
-                               if ( $request->getCheck( 'wpWatch' ) ) {
-                                       WatchAction::doWatch( $title, $user );
-                               } else {
-                                       WatchAction::doUnwatch( $title, $user );
-                               }
-                       }
+                       WatchAction::doWatchOrUnwatch( $request->getCheck( 'wpWatch' ), $title, $user );
 
                        return;
                }
index a465817..84cf3d5 100644 (file)
@@ -212,6 +212,19 @@ class AuthPlugin {
                return true;
        }
 
+       /**
+        * Update user groups in the external authentication database.
+        * Return true if successful.
+        *
+        * @param $user User object.
+        * @param $addgroups Groups to add.
+        * @param $delgroups Groups to remove.
+        * @return Boolean
+        */
+       public function updateExternalDBGroups( $user, $addgroups, $delgroups = array() ) {
+               return true;
+       }
+
        /**
         * Check to see if external accounts can be created.
         * Return true if external accounts can be created.
index e92b67d..bb8c272 100644 (file)
@@ -475,6 +475,7 @@ $wgAutoloadLocalClasses = array(
        'DatabaseBase' => 'includes/db/Database.php',
        'DatabaseMssql' => 'includes/db/DatabaseMssql.php',
        'DatabaseMysql' => 'includes/db/DatabaseMysql.php',
+       'DatabaseMysqlBase' => 'includes/db/DatabaseMysqlBase.php',
        'DatabaseOracle' => 'includes/db/DatabaseOracle.php',
        'DatabasePostgres' => 'includes/db/DatabasePostgres.php',
        'DatabaseSqlite' => 'includes/db/DatabaseSqlite.php',
@@ -482,8 +483,10 @@ $wgAutoloadLocalClasses = array(
        'DatabaseType' => 'includes/db/Database.php',
        'DBAccessError' => 'includes/db/LBFactory.php',
        'DBConnectionError' => 'includes/db/DatabaseError.php',
+       'DBConnRef' => 'includes/db/LoadBalancer.php',
        'DBError' => 'includes/db/DatabaseError.php',
        'DBObject' => 'includes/db/DatabaseUtility.php',
+       'IDatabase'  => 'includes/db/Database.php',
        'IORMRow' => 'includes/db/IORMRow.php',
        'IORMTable' => 'includes/db/IORMTable.php',
        'DBMasterPos' => 'includes/db/DatabaseUtility.php',
@@ -504,8 +507,8 @@ $wgAutoloadLocalClasses = array(
        'LoadMonitor_Null' => 'includes/db/LoadMonitor.php',
        'MssqlField' => 'includes/db/DatabaseMssql.php',
        'MssqlResult' => 'includes/db/DatabaseMssql.php',
-       'MySQLField' => 'includes/db/DatabaseMysql.php',
-       'MySQLMasterPos' => 'includes/db/DatabaseMysql.php',
+       'MySQLField' => 'includes/db/DatabaseMysqlBase.php',
+       'MySQLMasterPos' => 'includes/db/DatabaseMysqlBase.php',
        'ORAField' => 'includes/db/DatabaseOracle.php',
        'ORAResult' => 'includes/db/DatabaseOracle.php',
        'ORMIterator' => 'includes/db/ORMIterator.php',
@@ -550,6 +553,7 @@ $wgAutoloadLocalClasses = array(
        # includes/filebackend
        'FileBackendGroup' => 'includes/filebackend/FileBackendGroup.php',
        'FileBackend' => 'includes/filebackend/FileBackend.php',
+       'FileBackendError' => 'includes/filebackend/FileBackend.php',
        'FileBackendStore' => 'includes/filebackend/FileBackendStore.php',
        'FileBackendStoreShardListIterator' => 'includes/filebackend/FileBackendStore.php',
        'FileBackendStoreShardDirIterator' => 'includes/filebackend/FileBackendStore.php',
@@ -872,7 +876,6 @@ $wgAutoloadLocalClasses = array(
        'SearchResultTooMany' => 'includes/search/SearchEngine.php',
        'SearchSqlite' => 'includes/search/SearchSqlite.php',
        'SearchUpdate' => 'includes/search/SearchUpdate.php',
-       'SearchUpdateMyISAM' => 'includes/search/SearchUpdate.php',
        'SqliteSearchResultSet' => 'includes/search/SearchSqlite.php',
        'SqlSearchResultSet' => 'includes/search/SearchEngine.php',
 
@@ -971,6 +974,7 @@ $wgAutoloadLocalClasses = array(
        'SpecialRecentChanges' => 'includes/specials/SpecialRecentchanges.php',
        'SpecialRecentchangeslinked' => 'includes/specials/SpecialRecentchangeslinked.php',
        'SpecialRedirect' => 'includes/specials/SpecialRedirect.php',
+       'SpecialResetTokens' => 'includes/specials/SpecialResetTokens.php',
        'SpecialRevisionDelete' => 'includes/specials/SpecialRevisiondelete.php',
        'SpecialSearch' => 'includes/specials/SpecialSearch.php',
        'SpecialSpecialpages' => 'includes/specials/SpecialSpecialpages.php',
@@ -1010,9 +1014,7 @@ $wgAutoloadLocalClasses = array(
 
        # includes/templates
        'UserloginTemplate' => 'includes/templates/Userlogin.php',
-       'UserloginTemplateVForm' => 'includes/templates/UserloginVForm.php',
        'UsercreateTemplate' => 'includes/templates/Usercreate.php',
-       'UsercreateTemplateVForm' => 'includes/templates/UsercreateVForm.php',
 
        # includes/upload
        'UploadBase' => 'includes/upload/UploadBase.php',
@@ -1022,6 +1024,7 @@ $wgAutoloadLocalClasses = array(
        'UploadFromUrl' => 'includes/upload/UploadFromUrl.php',
        'UploadStash' => 'includes/upload/UploadStash.php',
        'UploadStashBadPathException' => 'includes/upload/UploadStash.php',
+       'UploadStashException' => 'includes/upload/UploadStash.php',
        'UploadStashFile' => 'includes/upload/UploadStash.php',
        'UploadStashFileException' => 'includes/upload/UploadStash.php',
        'UploadStashFileNotFoundException' => 'includes/upload/UploadStash.php',
@@ -1169,12 +1172,4 @@ class AutoLoader {
        }
 }
 
-if ( function_exists( 'spl_autoload_register' ) ) {
-       spl_autoload_register( array( 'AutoLoader', 'autoload' ) );
-} else {
-       function __autoload( $class ) {
-               AutoLoader::autoload( $class );
-       }
-
-       ini_set( 'unserialize_callback_func', '__autoload' );
-}
+spl_autoload_register( array( 'AutoLoader', 'autoload' ) );
index d2f430e..34b89e7 100644 (file)
@@ -809,7 +809,7 @@ class Block {
        }
 
        /**
-        * Get the IP address at the start of the range in Hex form
+        * Get the IP address at the end of the range in Hex form
         * @throws MWException
         * @return String IP in Hex form
         */
@@ -1092,7 +1092,7 @@ class Block {
         * @param Bool $isAnon Exclude anonymous-only blocks if false
         * @param Bool $fromMaster Whether to query the master or slave database
         * @return Array of Blocks
-        * @since 1.21
+        * @since 1.22
         */
        public static function getBlocksForIPList( array $ipChain, $isAnon, $fromMaster = false ) {
                if ( !count( $ipChain ) ) {
index 5478396..e94143a 100644 (file)
@@ -54,7 +54,10 @@ class ChangeTags {
                        );
                        $classes[] = Sanitizer::escapeClass( "mw-tag-$tag" );
                }
-               $markers = wfMessage( 'parentheses' )->rawParams( $wgLang->commaList( $displayTags ) )->text();
+               $markers = wfMessage( 'tag-list-wrapper' )
+                       ->numParams( count( $displayTags ) )
+                       ->rawParams( $wgLang->commaList( $displayTags ) )
+                       ->parse();
                $markers = Xml::tags( 'span', array( 'class' => 'mw-tag-markers' ), $markers );
 
                return array( $markers, $classes );
@@ -199,9 +202,7 @@ class ChangeTags {
                        // Add an INNER JOIN on change_tag
 
                        // FORCE INDEX -- change_tags will almost ALWAYS be the correct query plan.
-                       global $wgOldChangeTagsIndex;
-                       $index = $wgOldChangeTagsIndex ? 'ct_tag' : 'change_tag_tag_id';
-                       $options['USE INDEX'] = array( 'change_tag' => $index );
+                       $options['USE INDEX'] = array( 'change_tag' => 'change_tag_tag_id' );
                        unset( $options['FORCE INDEX'] );
                        $tables[] = 'change_tag';
                        $join_conds['change_tag'] = array( 'INNER JOIN', "ct_$join_cond=$join_cond" );
index 796b92a..f3dcf67 100644 (file)
@@ -136,9 +136,10 @@ class ChangesList extends ContextSource {
         * @param string $nothing to use for empty space
         * @return String
         */
-       protected function recentChangesFlags( $flags, $nothing = '&#160;' ) {
+       public function recentChangesFlags( $flags, $nothing = '&#160;' ) {
+               global $wgRecentChangesFlags;
                $f = '';
-               foreach ( array( 'newpage', 'minor', 'bot', 'unpatrolled' ) as $flag ) {
+               foreach ( array_keys( $wgRecentChangesFlags ) as $flag ) {
                        $f .= isset( $flags[$flag] ) && $flags[$flag]
                                ? self::flag( $flag )
                                : $nothing;
@@ -152,36 +153,35 @@ class ChangesList extends ContextSource {
         * unpatrolled edit.  By default in English it will contain "N", "m", "b",
         * "!" respectively, plus it will have an appropriate title and class.
         *
-        * @param string $flag 'newpage', 'unpatrolled', 'minor', or 'bot'
+        * @param string $flag One key of $wgRecentChangesFlags
         * @return String: Raw HTML
         */
        public static function flag( $flag ) {
-               static $messages = null;
-               if ( is_null( $messages ) ) {
-                       $messages = array(
-                               'newpage' => array( 'newpageletter', 'recentchanges-label-newpage' ),
-                               'minoredit' => array( 'minoreditletter', 'recentchanges-label-minor' ),
-                               'botedit' => array( 'boteditletter', 'recentchanges-label-bot' ),
-                               'unpatrolled' => array( 'unpatrolledletter', 'recentchanges-label-unpatrolled' ),
-                       );
-                       foreach ( $messages as &$value ) {
-                               $value[0] = wfMessage( $value[0] )->escaped();
-                               $value[1] = wfMessage( $value[1] )->escaped();
+               static $flagInfos = null;
+               if ( is_null( $flagInfos ) ) {
+                       global $wgRecentChangesFlags;
+                       $flagInfos = array();
+                       foreach ( $wgRecentChangesFlags as $key => $value ) {
+                               $flagInfos[$key]['letter'] = wfMessage( $value['letter'] )->escaped();
+                               $flagInfos[$key]['title'] = wfMessage( $value['title'] )->escaped();
+                               // Allow customized class name, fall back to flag name
+                               $flagInfos[$key]['class'] = Sanitizer::escapeClass(
+                                       isset( $value['class'] ) ? $value['class'] : $key );
                        }
                }
 
-               # Inconsistent naming, bleh
+               // Inconsistent naming, bleh, kepted for b/c
                $map = array(
-                       'newpage' => 'newpage',
-                       'minor' => 'minoredit',
-                       'bot' => 'botedit',
-                       'unpatrolled' => 'unpatrolled',
-                       'minoredit' => 'minoredit',
-                       'botedit' => 'botedit',
+                       'minoredit' => 'minor',
+                       'botedit' => 'bot',
                );
-               $flag = $map[$flag];
+               if ( isset( $map[$flag] ) ) {
+                       $flag = $map[$flag];
+               }
 
-               return "<abbr class='$flag' title='" . $messages[$flag][1] . "'>" . $messages[$flag][0] . '</abbr>';
+               return "<abbr class='" . $flagInfos[$flag]['class'] . "' title='" . $flagInfos[$flag]['title'] . "'>" .
+                       $flagInfos[$flag]['letter'] .
+                       '</abbr>';
        }
 
        /**
@@ -362,8 +362,6 @@ class ChangesList extends ContextSource {
         * @param $watched
         */
        public function insertArticleLink( &$s, &$rc, $unpatrolled, $watched ) {
-               # If it's a new article, there is no diff link, but if it hasn't been
-               # patrolled yet, we need to give users a way to do so
                $params = array();
 
                $articlelink = Linker::linkKnown(
@@ -456,10 +454,15 @@ class ChangesList extends ContextSource {
 
        /**
         * Check whether to enable recent changes patrol features
+        *
+        * @deprecated since 1.22
         * @return Boolean
         */
        public static function usePatrol() {
                global $wgUser;
+
+               wfDeprecated( __METHOD__, '1.22' );
+
                return $wgUser->useRCPatrol();
        }
 
@@ -524,7 +527,7 @@ class ChangesList extends ContextSource {
         * @param $rc RecentChange
         */
        public function insertRollback( &$s, &$rc ) {
-               if ( $rc->mAttribs['rc_type'] != RC_NEW && $rc->mAttribs['rc_this_oldid'] && $rc->mAttribs['rc_cur_id'] ) {
+               if ( $rc->mAttribs['rc_type'] == RC_EDIT && $rc->mAttribs['rc_this_oldid'] && $rc->mAttribs['rc_cur_id'] ) {
                        $page = $rc->getTitle();
                        /** Check for rollback and edit permissions, disallow special pages, and only
                          * show a link on the top-most revision */
@@ -703,7 +706,14 @@ class EnhancedChangesList extends ChangesList {
                $this->rcCacheIndex = 0;
                $this->lastdate = '';
                $this->rclistOpen = false;
-               $this->getOutput()->addModuleStyles( 'mediawiki.special.changeslist' );
+               $this->getOutput()->addModuleStyles( array(
+                       'mediawiki.special.changeslist',
+                       'mediawiki.special.changeslist.enhanced',
+               ) );
+               $this->getOutput()->addModules( array(
+                       'jquery.makeCollapsible',
+                       'mediawiki.icon',
+               ) );
                return '';
        }
        /**
@@ -940,7 +950,7 @@ class EnhancedChangesList extends ChangesList {
                                implode( $this->message['semicolon-separator'], $users )
                        )->escaped() . '</span>';
 
-               $tl = '<span class="mw-collapsible-toggle mw-enhancedchanges-arrow mw-enhancedchanges-arrow-space"></span>';
+               $tl = '<span class="mw-collapsible-toggle mw-collapsible-arrow mw-enhancedchanges-arrow mw-enhancedchanges-arrow-space"></span>';
                $r .= "<td>$tl</td>";
 
                # Main line
@@ -1198,7 +1208,7 @@ class EnhancedChangesList extends ChangesList {
                $r .= '<td class="mw-enhanced-rc"><span class="mw-enhancedchanges-arrow-space"></span>';
                # Flag and Timestamp
                if ( $type == RC_MOVE || $type == RC_MOVE_OVER_REDIRECT ) {
-                       $r .= '&#160;&#160;&#160;&#160;'; // 4 flags -> 4 spaces
+                       $r .= $this->recentChangesFlags( array() ); // no flags, but need the placeholders
                } else {
                        $r .= $this->recentChangesFlags( array(
                                'newpage' => $type == RC_NEW,
index ed8a031..b0252c7 100644 (file)
@@ -49,7 +49,7 @@ abstract class Collation {
                                return new IcuCollation( 'root' );
                        default:
                                $match = array();
-                               if ( preg_match( '/^uca-([a-z-]+)$/', $collationName, $match ) ) {
+                               if ( preg_match( '/^uca-([a-z@=-]+)$/', $collationName, $match ) ) {
                                        return new IcuCollation( $match[1] );
                                }
 
@@ -214,6 +214,7 @@ class IcuCollation extends Collation {
                'pt' => array(),
                'ru' => array(),
                'sv' => array( "Å", "Ä", "Ö" ),
+               'sv@collation=standard' => array( "Å", "Ä", "Ö" ),
                'uk' => array( "Ґ", "Ь" ),
                'vi' => array( "Ă", "Â", "Đ", "Ê", "Ô", "Ơ", "Ư" ),
                // Not verified, but likely correct
@@ -235,6 +236,7 @@ class IcuCollation extends Collation {
                'es' => array( "Ñ" ),
                'et' => array( "Š", "Ž", "Õ", "Ä", "Ö", "Ü" ),
                'eu' => array( "Ñ" ),
+               'fa' => array( "آ", "ء", "ه" ),
                'fo' => array( "Á", "Ð", "Í", "Ó", "Ú", "Ý", "Æ", "Ø", "Å" ),
                'fr' => array(),
                'fur' => array( "À", "Á", "Â", "È", "Ì", "Ò", "Ù" ),
index 173605c..15f6987 100644 (file)
@@ -323,6 +323,9 @@ $wgAllowImageMoving = true;
  * Enable deferred upload tasks that use the job queue.
  * Only enable this if job runners are set up for both the
  * 'AssembleUploadChunks' and 'PublishStashedFile' job types.
+ *
+ * @note If you use suhosin, this setting is incompatible with
+ *   suhosin.session.encrypt.
  */
 $wgEnableAsyncUploads = false;
 
@@ -1589,6 +1592,35 @@ $wgDBAvgStatusPoll = 2000;
  */
 $wgDBmysql5 = false;
 
+/**
+ * Set true to enable Oracle DCRP (supported from 11gR1 onward)
+ *
+ * To use this feature set to true and use a datasource defined as
+ * POOLED (i.e. in tnsnames definition set server=pooled in connect_data
+ * block).
+ *
+ * Starting from 11gR1 you can use DCRP (Database Resident Connection
+ * Pool) that maintains established sessions and reuses them on new
+ * connections.
+ *
+ * Not completely tested, but it should fall back on normal connection
+ * in case the pool is full or the datasource is not configured as
+ * pooled.
+ * And the other way around; using oci_pconnect on a non pooled
+ * datasource should produce a normal connection.
+ *
+ * When it comes to frequent shortlived DB connections like with MW
+ * Oracle tends to s***. The problem is the driver connects to the
+ * database reasonably fast, but establishing a session takes time and
+ * resources. MW does not rely on session state (as it does not use
+ * features such as package variables) so establishing a valid session
+ * is in this case an unwanted overhead that just slows things down.
+ *
+ * @warning EXPERIMENTAL!
+ *
+ */
+$wgDBOracleDRCP = false;
+
 /**
  * Other wikis on this site, can be administered from a single developer
  * account.
@@ -1605,11 +1637,6 @@ $wgSlaveLagWarning = 10;
 /** @see $wgSlaveLagWarning */
 $wgSlaveLagCritical = 30;
 
-/**
- * Use old names for change_tags indices.
- */
-$wgOldChangeTagsIndex = false;
-
 /**@}*/ # End of DB settings }
 
 /************************************************************************//**
@@ -2647,18 +2674,6 @@ $wgSkipSkin = '';
 /** Array for more like $wgSkipSkin. */
 $wgSkipSkins = array();
 
-/**
- * If set, 'screen' and 'handheld' media specifiers for stylesheets are
- * transformed such that they apply to the iPhone/iPod Touch Mobile Safari,
- * which doesn't recognize 'handheld' but does support media queries on its
- * screen size.
- *
- * Consider only using this if you have a *really good* handheld stylesheet,
- * as iPhone users won't have any way to disable it and use the "grown-up"
- * styles instead.
- */
-$wgHandheldForIPhone = false;
-
 /**
  * Allow user Javascript page?
  * This enables a lot of neat customizations, but may
@@ -2803,23 +2818,6 @@ $wgVectorUseSimpleSearch = true;
  */
 $wgVectorUseIconWatch = true;
 
-/**
- * Use compact vertical form ("VForm") design for Special:Userlogin.  This can
- * be overridden by a useNew bool in the query string.  For instance, if it is
- * globally false, you can try it with useNew=1.
- *
- * @since 1.22
- */
-$wgUseVFormUserLogin = false;
-
-/**
- * Use compact vertical form ("VForm") design for account creation
- * (Special:Userlogin?type=signup).
- *
- * @since 1.22
- */
-$wgUseVFormCreateAccount = false;
-
 /**
  * Display user edit counts in various prominent places.
  */
@@ -3019,8 +3017,10 @@ $wgLegacyJavaScriptGlobals = true;
  *
  * If set to a negative number, ResourceLoader will assume there is no query
  * string length limit.
+ *
+ * Defaults to a value based on php configuration.
  */
-$wgResourceLoaderMaxQueryLength = -1;
+$wgResourceLoaderMaxQueryLength = false;
 
 /**
  * If set to true, JavaScript modules loaded from wiki pages will be parsed
@@ -3871,6 +3871,13 @@ $wgGroupPermissions['*']['edit'] = true;
 $wgGroupPermissions['*']['createpage'] = true;
 $wgGroupPermissions['*']['createtalk'] = true;
 $wgGroupPermissions['*']['writeapi'] = true;
+$wgGroupPermissions['*']['editmyusercss'] = true;
+$wgGroupPermissions['*']['editmyuserjs'] = true;
+$wgGroupPermissions['*']['viewmywatchlist'] = true;
+$wgGroupPermissions['*']['editmywatchlist'] = true;
+$wgGroupPermissions['*']['viewmyprivateinfo'] = true;
+$wgGroupPermissions['*']['editmyprivateinfo'] = true;
+$wgGroupPermissions['*']['editmyoptions'] = true;
 #$wgGroupPermissions['*']['patrolmarks'] = false; // let anons see what was patrolled
 
 // Implicit group for all logged-in accounts
@@ -3892,17 +3899,18 @@ $wgGroupPermissions['user']['sendemail'] = true;
 
 // Implicit group for accounts that pass $wgAutoConfirmAge
 $wgGroupPermissions['autoconfirmed']['autoconfirmed'] = true;
+$wgGroupPermissions['autoconfirmed']['editsemiprotected'] = true;
 
 // Users with bot privilege can have their edits hidden
 // from various log pages by default
 $wgGroupPermissions['bot']['bot'] = true;
 $wgGroupPermissions['bot']['autoconfirmed'] = true;
+$wgGroupPermissions['bot']['editsemiprotected'] = true;
 $wgGroupPermissions['bot']['nominornewtalk'] = true;
 $wgGroupPermissions['bot']['autopatrol'] = true;
 $wgGroupPermissions['bot']['suppressredirect'] = true;
 $wgGroupPermissions['bot']['apihighlimits'] = true;
 $wgGroupPermissions['bot']['writeapi'] = true;
-#$wgGroupPermissions['bot']['editprotected'] = true; // can edit all protected pages without cascade protection enabled
 
 // Most extra permission abilities go to this group
 $wgGroupPermissions['sysop']['block'] = true;
@@ -3923,6 +3931,7 @@ $wgGroupPermissions['sysop']['move-rootuserpages'] = true;
 $wgGroupPermissions['sysop']['patrol'] = true;
 $wgGroupPermissions['sysop']['autopatrol'] = true;
 $wgGroupPermissions['sysop']['protect'] = true;
+$wgGroupPermissions['sysop']['editprotected'] = true;
 $wgGroupPermissions['sysop']['proxyunbannable'] = true;
 $wgGroupPermissions['sysop']['rollback'] = true;
 $wgGroupPermissions['sysop']['upload'] = true;
@@ -3930,6 +3939,7 @@ $wgGroupPermissions['sysop']['reupload'] = true;
 $wgGroupPermissions['sysop']['reupload-shared'] = true;
 $wgGroupPermissions['sysop']['unwatchedpages'] = true;
 $wgGroupPermissions['sysop']['autoconfirmed'] = true;
+$wgGroupPermissions['sysop']['editsemiprotected'] = true;
 $wgGroupPermissions['sysop']['ipblock-exempt'] = true;
 $wgGroupPermissions['sysop']['blockemail'] = true;
 $wgGroupPermissions['sysop']['markbotedits'] = true;
@@ -4028,7 +4038,8 @@ $wgRestrictionTypes = array( 'create', 'edit', 'move', 'upload' );
  * dictates the order on the protection form's lists.
  *
  *   - '' will be ignored (i.e. unprotected)
- *   - 'sysop' is quietly rewritten to 'protect' for backwards compatibility
+ *   - 'autoconfirmed' is quietly rewritten to 'editsemiprotected' for backwards compatibility
+ *   - 'sysop' is quietly rewritten to 'editprotected' for backwards compatibility
  */
 $wgRestrictionLevels = array( '', 'autoconfirmed', 'sysop' );
 
@@ -4038,12 +4049,8 @@ $wgRestrictionLevels = array( '', 'autoconfirmed', 'sysop' );
  * A page can only be protected with cascading protection if the
  * requested restriction level is included in this array.
  *
- * This is intended to prevent abuse - if any protection could be
- * cascading, users could who cannot normally protect pages could
- * "protect" them by transcluding them on protected pages they are
- * allowed to edit.
- *
- * 'sysop' is quietly rewritten to 'protect' for backwards compatibility.
+ * 'autoconfirmed' is quietly rewritten to 'editsemiprotected' for backwards compatibility.
+ * 'sysop' is quietly rewritten to 'editprotected' for backwards compatibility.
  */
 $wgCascadingRestrictionLevels = array( 'sysop' );
 
@@ -4304,7 +4311,7 @@ $wgRateLimits = array(
                'user' => null, // for each logged-in user
                'newbie' => null, // for each recent (autoconfirmed) account; overrides 'user'
                'ip' => null, // for each anon and recent account
-               'subnet' => null, // ... with final octet removed
+               'subnet' => null, // ... within a /24 subnet in IPv4 or /64 in IPv6
        ),
        'move' => array(
                'user' => null,
@@ -5036,12 +5043,13 @@ $wgGitBin = '/usr/bin/git';
  * The value is the replacement for the key (it can contain $1, etc.)
  * %h will be replaced by the short SHA-1 (7 first chars) and %H by the
  * full SHA-1 of the HEAD revision.
+ * %r will be replaced with a URL-encoded version of $1.
  *
  * @since 1.20
  */
 $wgGitRepositoryViewers = array(
-       'https://gerrit.wikimedia.org/r/p/(.*)' => 'https://gerrit.wikimedia.org/r/gitweb?p=$1;h=%H',
-       'ssh://(?:[a-z0-9_]+@)?gerrit.wikimedia.org:29418/(.*)' => 'https://gerrit.wikimedia.org/r/gitweb?p=$1;h=%H',
+       'https://gerrit.wikimedia.org/r/p/(.*)' => 'https://git.wikimedia.org/commit/%r/%H',
+       'ssh://(?:[a-z0-9_]+@)?gerrit.wikimedia.org:29418/(.*)' => 'https://git.wikimedia.org/commit/%r/%H',
 );
 
 /** @} */ # End of maintenance }
@@ -5118,6 +5126,9 @@ $wgUseRCPatrol = true;
 /** Use new page patrolling to check new pages on Special:Newpages */
 $wgUseNPPatrol = true;
 
+/** Log autopatrol actions to the log table */
+$wgLogAutopatrol = true;
+
 /** Provide syndication feeds (RSS, Atom) for, e.g., Recentchanges, Newpages */
 $wgFeed = true;
 
@@ -5212,6 +5223,26 @@ $wgUseTagFilter = true;
  */
 $wgUnwatchedPageThreshold = false;
 
+/**
+ * Recent changes flag, shown in Recentchanges and watchlist
+ *
+ * Adding a new one:
+ *   $wgRecentChangesFlags['flag'] => array( 'letter-msg', 'tooltip-msg' );
+ * 'class' allows to set a css class different than the flag name
+ *
+ * @since 1.22
+ */
+$wgRecentChangesFlags = array(
+       'newpage' => array( 'letter' => 'newpageletter',
+               'title' => 'recentchanges-label-newpage' ),
+       'minor' => array( 'letter' => 'minoreditletter',
+               'title' => 'recentchanges-label-minor', 'class' => 'minoredit' ),
+       'bot' => array( 'letter' => 'boteditletter',
+               'title' => 'recentchanges-label-bot', 'class' => 'botedit' ),
+       'unpatrolled' => array( 'letter' => 'unpatrolledletter',
+               'title' => 'recentchanges-label-unpatrolled' ),
+);
+
 /** @} */ # end RC/watchlist }
 
 /************************************************************************//**
@@ -6003,6 +6034,16 @@ $wgAPIRequestLog = false;
  */
 $wgAPICacheHelpTimeout = 60 * 60;
 
+/**
+ * The ApiQueryQueryPages module should skip pages that are redundant to true
+ * API queries.
+ */
+$wgAPIUselessQueryPages = array(
+       'MIMEsearch', // aiprop=mime
+       'LinkSearch', // list=exturlusage
+       'FileDuplicateSearch', // prop=duplicatefiles
+);
+
 /**
  * Enable AJAX framework
  */
@@ -6147,6 +6188,12 @@ $wgAsyncHTTPTimeout = 25;
  */
 $wgHTTPProxy = false;
 
+/**
+ * Timeout for connections done internally (in seconds)
+ * Only works for curl
+ */
+$wgHTTPConnectTimeout = 5e0;
+
 /** @} */ # End HTTP client }
 
 /************************************************************************//**
@@ -6258,15 +6305,6 @@ $wgPoolCounterConf = null;
  */
 $wgUploadMaintenance = false;
 
-/**
- * Allows running of selenium tests via maintenance/tests/RunSeleniumTests.php
- */
-$wgEnableSelenium = false;
-$wgSeleniumTestConfigs = array();
-$wgSeleniumConfigFile = null;
-$wgDBtestuser = ''; //db user that has permission to create and drop the test databases only
-$wgDBtestpassword = '';
-
 /**
  * Associative array mapping namespace IDs to the name of the content model pages in that namespace should have by
  * default (use the CONTENT_MODEL_XXX constants). If no special content type is defined for a given namespace,
index 27f4556..c41d9a1 100644 (file)
@@ -935,7 +935,19 @@ class EditPage {
                                                        # If we just undid one rev, use an autosummary
                                                        $firstrev = $oldrev->getNext();
                                                        if ( $firstrev && $firstrev->getId() == $undo ) {
-                                                               $undoSummary = wfMessage( 'undo-summary', $undo, $undorev->getUserText() )->inContentLanguage()->text();
+                                                               $userText = $undorev->getUserText();
+                                                               if ( $userText === '' ) {
+                                                                       $undoSummary = wfMessage(
+                                                                               'undo-summary-username-hidden',
+                                                                               $undo
+                                                                       )->inContentLanguage()->text();
+                                                               } else {
+                                                                       $undoSummary = wfMessage(
+                                                                               'undo-summary',
+                                                                               $undo,
+                                                                               $userText
+                                                                       )->inContentLanguage()->text();
+                                                               }
                                                                if ( $this->summary === '' ) {
                                                                        $this->summary = $undoSummary;
                                                                } else {
@@ -1495,8 +1507,17 @@ class EditPage {
                                return $status;
                        }
 
-                       # Don't save a new article if it's blank.
-                       if ( $this->textbox1 == '' ) {
+                       // Don't save a new page if it's blank or if it's a MediaWiki:
+                       // message with content equivalent to default (allow empty pages
+                       // in this case to disable messages, see bug 50124)
+                       $defaultMessageText = $this->mTitle->getDefaultMessageText();
+                       if( $this->mTitle->getNamespace() === NS_MEDIAWIKI && $defaultMessageText !== false ) {
+                               $defaultText = $defaultMessageText;
+                       } else {
+                               $defaultText = '';
+                       }
+
+                       if ( $this->textbox1 === $defaultText ) {
                                $status->setResult( false, self::AS_BLANK_ARTICLE );
                                wfProfileOut( __METHOD__ );
                                return $status;
@@ -1743,7 +1764,9 @@ class EditPage {
        protected function updateWatchlist() {
                global $wgUser;
 
-               if ( $wgUser->isLoggedIn() && $this->watchthis != $wgUser->isWatched( $this->mTitle ) ) {
+               if ( $wgUser->isLoggedIn()
+                       && $this->watchthis != $wgUser->isWatched( $this->mTitle, WatchedItem::IGNORE_USER_RIGHTS )
+               ) {
                        $fname = __METHOD__;
                        $title = $this->mTitle;
                        $watch = $this->watchthis;
@@ -1752,11 +1775,7 @@ class EditPage {
                        $dbw = wfGetDB( DB_MASTER );
                        $dbw->onTransactionIdle( function() use ( $dbw, $title, $watch, $wgUser, $fname ) {
                                $dbw->begin( $fname );
-                               if ( $watch ) {
-                                       WatchAction::doWatch( $title, $wgUser );
-                               } else {
-                                       WatchAction::doUnwatch( $title, $wgUser );
-                               }
+                               WatchAction::doWatchOrUnwatch( $watch, $title, $wgUser );
                                $dbw->commit( $fname );
                        } );
                }
@@ -2294,7 +2313,7 @@ class EditPage {
                }
 
                // Add edit notices
-               $wgOut->addHTML( implode( "\n", $this->mTitle->getEditNotices() ) );
+               $wgOut->addHTML( implode( "\n", $this->mTitle->getEditNotices( $this->oldid ) ) );
 
                if ( $this->isConflict ) {
                        $wgOut->wrapWikiMsg( "<div class='mw-explainconflict'>\n$1\n</div>", 'explainconflict' );
index a26e853..98de4c0 100644 (file)
@@ -824,10 +824,13 @@ class XmlDumpWriter {
                        $archiveName = '';
                }
                if ( $dumpContents ) {
+                       $be = $file->getRepo()->getBackend();
                        # Dump file as base64
                        # Uses only XML-safe characters, so does not need escaping
+                       # @TODO: too bad this loads the contents into memory (script might swap)
                        $contents = '      <contents encoding="base64">' .
-                               chunk_split( base64_encode( file_get_contents( $file->getPath() ) ) ) .
+                               chunk_split( base64_encode(
+                                       $be->getFileContents( array( 'src' => $file->getPath() ) ) ) ) .
                                "      </contents>\n";
                } else {
                        $contents = '';
index 9fc70eb..65d82b8 100644 (file)
@@ -120,13 +120,7 @@ class FileDeleteForm {
                                // file, otherwise go back to the description page
                                $wgOut->addReturnTo( $this->oldimage ? $this->title : Title::newMainPage() );
 
-                               if ( $wgUser->isLoggedIn() && $wgRequest->getCheck( 'wpWatch' ) != $wgUser->isWatched( $this->title ) ) {
-                                       if ( $wgRequest->getCheck( 'wpWatch' ) ) {
-                                               WatchAction::doWatch( $this->title, $wgUser );
-                                       } else {
-                                               WatchAction::doUnwatch( $this->title, $wgUser );
-                                       }
-                               }
+                               WatchAction::doWatchOrUnwatch( $wgRequest->getCheck( 'wpWatch' ), $this->title, $wgUser );
                        }
                        return;
                }
index a54b807..407b3cb 100644 (file)
@@ -194,12 +194,13 @@ class GitInfo {
                }
                foreach ( self::getViewers() as $repo => $viewer ) {
                        $pattern = '#^' . $repo . '$#';
-                       if ( preg_match( $pattern, $url ) ) {
+                       if ( preg_match( $pattern, $url, $matches ) ) {
                                $viewerUrl = preg_replace( $pattern, $viewer, $url );
                                $headSHA1 = $this->getHeadSHA1();
                                $replacements = array(
                                        '%h' => substr( $headSHA1, 0, 7 ),
-                                       '%H' => $headSHA1
+                                       '%H' => $headSHA1,
+                                       '%r' => urlencode( $matches[1] ),
                                );
                                return strtr( $viewerUrl, $replacements );
                        }
index 78fcb8b..17835e4 100644 (file)
@@ -130,14 +130,16 @@ function wfArrayDiff2_cmp( $a, $b ) {
 
 /**
  * Array lookup
- * Returns an array where the values in the first array are replaced by the
- * values in the second array with the corresponding keys
+ * Returns an array where the values in array $b are replaced by the
+ * values in array $a with the corresponding keys
  *
+ * @deprecated since 1.22; use array_intersect_key()
  * @param $a Array
  * @param $b Array
  * @return array
  */
 function wfArrayLookup( $a, $b ) {
+       wfDeprecated( __FUNCTION__, '1.22' );
        return array_flip( array_intersect( array_flip( $a ), array_keys( $b ) ) );
 }
 
@@ -163,11 +165,13 @@ function wfAppendToArrayIfNotDefault( $key, $value, $default, &$changed ) {
  * Backwards array plus for people who haven't bothered to read the PHP manual
  * XXX: will not darn your socks for you.
  *
+ * @deprecated since 1.22; use array_replace()
  * @param $array1 Array
  * @param [$array2, [...]] Arrays
  * @return Array
  */
 function wfArrayMerge( $array1/* ... */ ) {
+       wfDeprecated( __FUNCTION__, '1.22' );
        $args = func_get_args();
        $args = array_reverse( $args, true );
        $out = array();
@@ -1001,7 +1005,7 @@ function wfDebugLog( $logGroup, $text, $public = true ) {
                        wfErrorLog( "$time $host $wiki: $text", $wgDebugLogGroups[$logGroup] );
                }
        } elseif ( $public === true ) {
-               wfDebug( "[$logGroup] $text", true );
+               wfDebug( "[$logGroup] $text", false );
        }
 }
 
@@ -1347,7 +1351,7 @@ function wfMessage( $key /*...*/) {
  */
 function wfMessageFallback( /*...*/ ) {
        $args = func_get_args();
-       return MWFunction::callArray( 'Message::newFallbackSequence', $args );
+       return call_user_func_array( 'Message::newFallbackSequence', $args );
 }
 
 /**
@@ -2024,9 +2028,11 @@ function wfEscapeWikiText( $text ) {
 
 /**
  * Get the current unix timestamp with microseconds.  Useful for profiling
+ * @deprecated since 1.22; call microtime() directly
  * @return Float
  */
 function wfTime() {
+       wfDeprecated( __FUNCTION__, '1.22' );
        return microtime( true );
 }
 
@@ -2593,11 +2599,11 @@ function in_string( $needle, $str, $insensitive = false ) {
  * @return Bool
  */
 function wfIniGetBool( $setting ) {
-       $val = ini_get( $setting );
+       $val = strtolower( ini_get( $setting ) );
        // 'on' and 'true' can't have whitespace around them, but '1' can.
-       return strtolower( $val ) == 'on'
-               || strtolower( $val ) == 'true'
-               || strtolower( $val ) == 'yes'
+       return $val == 'on'
+               || $val == 'true'
+               || $val == 'yes'
                || preg_match( "/^\s*[+-]?0*[1-9]/", $val ); // approx C atoi() function
 }
 
@@ -3750,22 +3756,17 @@ function wfBCP47( $code ) {
        $codeSegment = explode( '-', $code );
        $codeBCP = array();
        foreach ( $codeSegment as $segNo => $seg ) {
-               if ( count( $codeSegment ) > 0 ) {
-                       // when previous segment is x, it is a private segment and should be lc
-                       if ( $segNo > 0 && strtolower( $codeSegment[( $segNo - 1 )] ) == 'x' ) {
-                               $codeBCP[$segNo] = strtolower( $seg );
-                       // ISO 3166 country code
-                       } elseif ( ( strlen( $seg ) == 2 ) && ( $segNo > 0 ) ) {
-                               $codeBCP[$segNo] = strtoupper( $seg );
-                       // ISO 15924 script code
-                       } elseif ( ( strlen( $seg ) == 4 ) && ( $segNo > 0 ) ) {
-                               $codeBCP[$segNo] = ucfirst( strtolower( $seg ) );
-                       // Use lowercase for other cases
-                       } else {
-                               $codeBCP[$segNo] = strtolower( $seg );
-                       }
+               // when previous segment is x, it is a private segment and should be lc
+               if ( $segNo > 0 && strtolower( $codeSegment[( $segNo - 1 )] ) == 'x' ) {
+                       $codeBCP[$segNo] = strtolower( $seg );
+               // ISO 3166 country code
+               } elseif ( ( strlen( $seg ) == 2 ) && ( $segNo > 0 ) ) {
+                       $codeBCP[$segNo] = strtoupper( $seg );
+               // ISO 15924 script code
+               } elseif ( ( strlen( $seg ) == 4 ) && ( $segNo > 0 ) ) {
+                       $codeBCP[$segNo] = ucfirst( strtolower( $seg ) );
+               // Use lowercase for other cases
                } else {
-               // Use lowercase for single segment
                        $codeBCP[$segNo] = strtolower( $seg );
                }
        }
index aeba22b..e06a934 100644 (file)
@@ -588,8 +588,8 @@ class HTMLForm extends ContextSource {
        }
 
        /**
-        * Display the form (sending to $wgOut), with an appropriate error
-        * message or stack of messages, and any validation errors, etc.
+        * Display the form (sending to the context's OutputPage object), with an
+        * appropriate error message or stack of messages, and any validation errors, etc.
         *
         * @attention You should call prepareForm() before calling this function.
         * Moreover, when doing method chaining this should be the very last method
@@ -1889,12 +1889,18 @@ class HTMLCheckField extends HTMLFormField {
  * are of the form "columnName-rowName"
  *
  * Options:
- *   columns:           Required list of columns in the matrix.
- *   rows:              Required list of rows in the matrix.
- *   force-options-on:  Accepts array of column-row tags to be displayed as enabled
- *                      but unavailable to change
- *   force-options-off: Accepts array of column-row tags to be displayed as disabled
- *                      but unavailable to change.
+ *   - columns
+ *     - Required list of columns in the matrix.
+ *   - rows
+ *     - Required list of rows in the matrix.
+ *   - force-options-on
+ *     - Accepts array of column-row tags to be displayed as enabled but unavailable to change
+ *   - force-options-off
+ *     - Accepts array of column-row tags to be displayed as disabled but unavailable to change.
+ *   - tooltips
+ *     - Optional array mapping row label to tooltip content
+ *   - tooltip-class
+ *     - Optional CSS class used on tooltip container span. Defaults to mw-icon-question.
  */
 class HTMLCheckMatrix extends HTMLFormField implements HTMLNestedFilterable {
 
@@ -1908,7 +1914,7 @@ class HTMLCheckMatrix extends HTMLFormField implements HTMLNestedFilterable {
        public function __construct( $params ) {
                $missing = array_diff( self::$requiredParams, array_keys( $params ) );
                if ( $missing ) {
-                       throw HTMLFormFieldRequiredOptionsException::create( $this, $missing );
+                       throw new HTMLFormFieldRequiredOptionsException( $this, $missing );
                }
                parent::__construct( $params );
        }
@@ -1971,8 +1977,21 @@ class HTMLCheckMatrix extends HTMLFormField implements HTMLNestedFilterable {
                }
                $tableContents .= Html::rawElement( 'tr', array(), "\n$headerContents\n" );
 
+               $tooltipClass = 'mw-icon-question';
+               if ( isset( $this->mParams['tooltip-class'] ) ) {
+                       $tooltipClass = $this->mParams['tooltip-class'];
+               }
+
                // Build the options matrix
                foreach ( $rows as $rowLabel => $rowTag ) {
+                       // Append tooltip if configured
+                       if ( isset( $this->mParams['tooltips'][$rowLabel] ) ) {
+                               $tooltipAttribs = array(
+                                       'class' => "mw-htmlform-tooltip $tooltipClass",
+                                       'title' =>  $this->mParams['tooltips'][$rowLabel],
+                               );
+                               $rowLabel .= ' ' . Html::element( 'span', $tooltipAttribs, '' );
+                       }
                        $rowContents = Html::rawElement( 'td', array(), $rowLabel );
                        foreach ( $columns as $columnTag ) {
                                $thisTag = "$columnTag-$rowTag";
@@ -2811,8 +2830,8 @@ interface HTMLNestedFilterable {
 }
 
 class HTMLFormFieldRequiredOptionsException extends MWException {
-       static public function create( HTMLFormField $field, array $missing ) {
-               return new self( sprintf(
+       public function __construct( HTMLFormField $field, array $missing ) {
+               parent::__construct( sprintf(
                        "Form type `%s` expected the following parameters to be set: %s",
                        get_class( $field ),
                        implode( ', ', $missing )
index ed8b3ed..396e360 100644 (file)
@@ -126,6 +126,9 @@ class Hooks {
         * @param array $args  Array of parameters passed to hook functions
         * @return bool True if no handler aborted the hook
         *
+        * @since 1.22 A hook function is not required to return a value for
+        *   processing to continue. Not returning a value (or explicitly
+        *   returning null) is equivalent to returning true.
         * @throws MWException
         * @throws FatalError
         */
@@ -210,14 +213,7 @@ class Hooks {
                                        'Detected bug in an extension! ' .
                                        "Hook $func has invalid call signature; " . $badhookmsg
                                );
-                       } elseif ( $retval === null ) {
-                               // Null was returned. Error.
-                               throw new MWException(
-                                       'Detected bug in an extension! ' .
-                                       "Hook $func failed to return a value; " .
-                                       'should return true to continue hook processing or false to abort.'
-                               );
-                       } elseif ( !$retval ) {
+                       } elseif ( $retval === false ) {
                                wfProfileOut( 'hook: ' . $event );
                                // False was returned. Stop processing, but no error.
                                return false;
index e7455b7..1d45e6a 100644 (file)
@@ -172,7 +172,7 @@ class Html {
 
                // In text/html, initial <html> and <head> tags can be omitted under
                // pretty much any sane circumstances, if they have no attributes.  See:
-               // <http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html#optional-tags>
+               // <http://www.whatwg.org/html/syntax.html#optional-tags>
                if ( !$wgWellFormedXml && !$attribs
                && in_array( $element, array( 'html', 'head' ) ) ) {
                        return '';
@@ -238,7 +238,7 @@ class Html {
                $element = strtolower( $element );
 
                // Reference:
-               // http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html#optional-tags
+               // http://www.whatwg.org/html/syntax.html#optional-tags
                if ( !$wgWellFormedXml && in_array( $element, array(
                        'html',
                        'head',
@@ -842,7 +842,7 @@ class Html {
         * @return Boolean
         */
        public static function isXmlMimeType( $mimetype ) {
-               # http://www.whatwg.org/specs/web-apps/current-work/multipage/infrastructure.html#xml-mime-type
+               # http://www.whatwg.org/html/infrastructure.html#xml-mime-type
                # * text/xml
                # * application/xml
                # * Any mimetype with a subtype ending in +xml (this implicitly includes application/xhtml+xml)
@@ -902,7 +902,7 @@ class Html {
                $candidates = array();
                foreach ( $urls as $density => $url ) {
                        // Image candidate syntax per current whatwg live spec, 2012-09-23:
-                       // http://www.whatwg.org/specs/web-apps/current-work/multipage/embedded-content-1.html#attr-img-srcset
+                       // http://www.whatwg.org/html/embedded-content-1.html#attr-img-srcset
                        $candidates[] = "{$url} {$density}x";
                }
                return implode( ", ", $candidates );
index 2da368c..444857a 100644 (file)
@@ -40,14 +40,15 @@ class Http {
         * @param array $options options to pass to MWHttpRequest object.
         *      Possible keys for the array:
         *    - timeout             Timeout length in seconds
+        *    - connectTimeout      Timeout for connection, in seconds (curl only)
         *    - postData            An array of key-value pairs or a url-encoded form data
         *    - proxy               The proxy to use.
         *                          Otherwise it will use $wgHTTPProxy (if set)
         *                          Otherwise it will use the environment variable "http_proxy" (if set)
         *    - noProxy             Don't use any proxy at all. Takes precedence over proxy value(s).
-        *    - sslVerifyHost       (curl only) Verify hostname against certificate
-        *    - sslVerifyCert       (curl only) Verify SSL certificate
-        *    - caInfo              (curl only) Provide CA information
+        *    - sslVerifyHost       Verify hostname against certificate
+        *    - sslVerifyCert       Verify SSL certificate
+        *    - caInfo              Provide CA information
         *    - maxRedirects        Maximum number of redirects to follow (defaults to 5)
         *    - followRedirects     Whether to follow redirects (defaults to false).
         *                                  Note: this should only be used when the target URL is trusted,
@@ -65,6 +66,9 @@ class Http {
                if ( !isset( $options['timeout'] ) ) {
                        $options['timeout'] = 'default';
                }
+               if( !isset( $options['connectTimeout'] ) ) {
+                       $options['connectTimeout'] = 'default';
+               }
 
                $req = MWHttpRequest::factory( $url, $options );
                $status = $req->execute();
@@ -216,7 +220,7 @@ class MWHttpRequest {
         * @param array $options (optional) extra params to pass (see Http::request())
         */
        protected function __construct( $url, $options = array() ) {
-               global $wgHTTPTimeout;
+               global $wgHTTPTimeout, $wgHTTPConnectTimeout;
 
                $this->url = wfExpandUrl( $url, PROTO_HTTP );
                $this->parsedUrl = wfParseUrl( $this->url );
@@ -232,6 +236,11 @@ class MWHttpRequest {
                } else {
                        $this->timeout = $wgHTTPTimeout;
                }
+               if ( isset( $options['connectTimeout'] ) && $options['connectTimeout'] != 'default' ) {
+                       $this->connectTimeout = $options['connectTimeout'];
+               } else {
+                       $this->connectTimeout = $wgHTTPConnectTimeout;
+               }
                if ( isset( $options['userAgent'] ) ) {
                        $this->setUserAgent( $options['userAgent'] );
                }
@@ -721,6 +730,7 @@ class CurlHttpRequest extends MWHttpRequest {
 
                $this->curlOptions[CURLOPT_PROXY] = $this->proxy;
                $this->curlOptions[CURLOPT_TIMEOUT] = $this->timeout;
+               $this->curlOptions[CURLOPT_CONNECTTIMEOUT_MS] = $this->connectTimeout * 1000;
                $this->curlOptions[CURLOPT_HTTP_VERSION] = CURL_HTTP_VERSION_1_0;
                $this->curlOptions[CURLOPT_WRITEFUNCTION] = $this->callback;
                $this->curlOptions[CURLOPT_HEADERFUNCTION] = array( $this, "readHeader" );
@@ -875,7 +885,23 @@ class PhpHttpRequest extends MWHttpRequest {
 
                $options['timeout'] = $this->timeout;
 
-               $context = stream_context_create( array( 'http' => $options ) );
+               if ( $this->sslVerifyHost ) {
+                       $options['CN_match'] = $this->parsedUrl['host'];
+               }
+               if ( $this->sslVerifyCert ) {
+                       $options['verify_peer'] = true;
+               }
+
+               if ( is_dir( $this->caInfo ) ) {
+                       $options['capath'] = $this->caInfo;
+               } elseif ( is_file( $this->caInfo ) ) {
+                       $options['cafile'] = $this->caInfo;
+               } elseif ( $this->caInfo ) {
+                       throw new MWException( "Invalid CA info passed: {$this->caInfo}" );
+               }
+
+               $scheme = $this->parsedUrl['scheme'];
+               $context = stream_context_create( array( "$scheme" => $options ) );
 
                $this->headerList = array();
                $reqCount = 0;
index 1e0a4f9..0943606 100644 (file)
@@ -492,6 +492,11 @@ class IP {
                        $n = ip2long( $ip );
                        if ( $n < 0 ) {
                                $n += pow( 2, 32 );
+                               # On 32-bit platforms (and on Windows), 2^32 does not fit into an int,
+                               # so $n becomes a float. We convert it to string instead.
+                               if ( is_float ( $n ) ) {
+                                       $n = (string) $n;
+                               }
                        }
                }
                return $n;
index 43cf7f6..b4ef904 100644 (file)
@@ -160,13 +160,14 @@ class ImageGallery {
         * @param $html  String: Additional HTML text to be shown. The name and size of the image are always shown.
         * @param $alt   String: Alt text for the image
         * @param $link  String: Override image link (optional)
+        * @param $handlerOpts Array: Array of options for image handler (aka page number)
         */
-       function add( $title, $html = '', $alt = '', $link = '' ) {
+       function add( $title, $html = '', $alt = '', $link = '', $handlerOpts = array() ) {
                if ( $title instanceof File ) {
                        // Old calling convention
                        $title = $title->getTitle();
                }
-               $this->mImages[] = array( $title, $html, $alt, $link );
+               $this->mImages[] = array( $title, $html, $alt, $link, $handlerOpts );
                wfDebug( 'ImageGallery::add ' . $title->getText() . "\n" );
        }
 
@@ -176,13 +177,15 @@ class ImageGallery {
         * @param $title Title object of the image that is added to the gallery
         * @param $html  String: Additional HTML text to be shown. The name and size of the image are always shown.
         * @param $alt   String: Alt text for the image
+        * @param $link  String: Override image link (optional)
+        * @param $handlerOpts Array: Array of options for image handler (aka page number)
         */
-       function insert( $title, $html = '', $alt = '' ) {
+       function insert( $title, $html = '', $alt = '', $link = '', $handlerOpts = array() ) {
                if ( $title instanceof File ) {
                        // Old calling convention
                        $title = $title->getTitle();
                }
-               array_unshift( $this->mImages, array( &$title, $html, $alt ) );
+               array_unshift( $this->mImages, array( &$title, $html, $alt, $link, $handlerOpts ) );
        }
 
        /**
@@ -264,6 +267,8 @@ class ImageGallery {
                        $text = $pair[1]; # "text" means "caption" here
                        $alt = $pair[2];
                        $link = $pair[3];
+                       // $pair[4] is per image handler options
+                       $transformOptions = $params + $pair[4];
 
                        $descQuery = false;
                        if ( $nt->getNamespace() == NS_FILE ) {
@@ -286,6 +291,10 @@ class ImageGallery {
                                # We're dealing with a non-image, spit out the name and be done with it.
                                $thumbhtml = "\n\t\t\t" . '<div style="height: ' . ( self::THUMB_PADDING + $this->mHeights ) . 'px;">'
                                        . htmlspecialchars( $nt->getText() ) . '</div>';
+
+                               if ( $this->mParser instanceof Parser ) {
+                                       $this->mParser->addTrackingCategory( 'broken-file-category' );
+                               }
                        } elseif ( $this->mHideBadImages && wfIsBadImage( $nt->getDBkey(), $this->getContextTitle() ) ) {
                                # The image is blacklisted, just show it as a text link.
                                $thumbhtml = "\n\t\t\t" . '<div style="height: ' . ( self::THUMB_PADDING + $this->mHeights ) . 'px;">' .
@@ -297,7 +306,7 @@ class ImageGallery {
                                                array( 'known', 'noclasses' )
                                        ) .
                                        '</div>';
-                       } elseif ( !( $thumb = $img->transform( $params ) ) ) {
+                       } elseif ( !( $thumb = $img->transform( $transformOptions ) ) ) {
                                # Error generating thumbnail.
                                $thumbhtml = "\n\t\t\t" . '<div style="height: ' . ( self::THUMB_PADDING + $this->mHeights ) . 'px;">'
                                        . htmlspecialchars( $img->getLastError() ) . '</div>';
index a5beb5d..8cfbc73 100644 (file)
@@ -311,6 +311,12 @@ class ImagePage extends Article {
                        } else {
                                $params = array( 'page' => $page );
                        }
+
+                       $renderLang = $request->getVal( 'lang' );
+                       if ( !is_null( $renderLang ) ) {
+                               $params['lang'] = $renderLang;
+                       }
+
                        $width_orig = $this->displayImg->getWidth( $page );
                        $width = $width_orig;
                        $height_orig = $this->displayImg->getHeight( $page );
index 3529d28..5bb9230 100644 (file)
@@ -1688,10 +1688,10 @@ class Linker {
                $lang = wfGetLangObj( $lang );
                $title = wfMessage( 'toc' )->inLanguage( $lang )->escaped();
 
-               return '<table id="toc" class="toc"><tr><td>'
+               return '<div id="toc" class="toc">'
                        . '<div id="toctitle"><h2>' . $title . "</h2></div>\n"
                        . $toc
-                       . "</ul>\n</td></tr></table>\n";
+                       . "</ul>\n</div>\n";
        }
 
        /**
index 4b1b5b8..0b7393a 100644 (file)
@@ -237,22 +237,36 @@ class LinksUpdate extends SqlDataUpdate {
                wfProfileOut( __METHOD__ );
        }
 
+       /**
+        * Queue recursive jobs for this page
+        *
+        * Which means do LinksUpdate on all templates
+        * that include the current page, using the job queue.
+        */
        function queueRecursiveJobs() {
-               wfProfileIn( __METHOD__ );
+               self::queueRecursiveJobsForTable( $this->mTitle, 'templatelinks' );
+       }
 
-               if ( $this->mTitle->getBacklinkCache()->hasLinks( 'templatelinks' ) ) {
+       /**
+        * Queue a RefreshLinks job for any table.
+        *
+        * @param Title $title Title to do job for
+        * @param String $table Table to use (e.g. 'templatelinks')
+        */
+       public static function queueRecursiveJobsForTable( Title $title, $table ) {
+               wfProfileIn( __METHOD__ );
+               if ( $title->getBacklinkCache()->hasLinks( $table ) ) {
                        $job = new RefreshLinksJob2(
-                               $this->mTitle,
+                               $title,
                                array(
-                                       'table' => 'templatelinks',
+                                       'table' => $table,
                                ) + Job::newRootJobParams( // "overall" refresh links job info
-                                       "refreshlinks:templatelinks:{$this->mTitle->getPrefixedText()}"
+                                       "refreshlinks:{$table}:{$title->getPrefixedText()}"
                                )
                        );
                        JobQueueGroup::singleton()->push( $job );
                        JobQueueGroup::singleton()->deduplicateRootJob( $job );
                }
-
                wfProfileOut( __METHOD__ );
        }
 
index 3eaa8fe..6d11d17 100644 (file)
 class MWFunction {
 
        /**
-        * @param $callback
-        * @return array
-        * @throws MWException
-        */
-       protected static function cleanCallback( $callback ) {
-               if ( is_string( $callback ) ) {
-                       if ( strpos( $callback, '::' ) !== false ) {
-                               // PHP 5.1 cannot use call_user_func( 'Class::Method' )
-                               // It can only handle only call_user_func( array( 'Class', 'Method' ) )
-                               $callback = explode( '::', $callback, 2 );
-                       }
-               }
-
-               if ( count( $callback ) == 2 && $callback[0] == 'self' || $callback[0] == 'parent' ) {
-                       throw new MWException( 'MWFunction cannot call self::method() or parent::method()' );
-               }
-
-               // Run autoloader (workaround for call_user_func_array bug: http://bugs.php.net/bug.php?id=51329)
-               is_callable( $callback );
-
-               return $callback;
-       }
-
-       /**
+        * @deprecated since 1.22; use call_user_func()
         * @param $callback
         * @return mixed
         */
        public static function call( $callback ) {
-               $callback = self::cleanCallback( $callback );
-
+               wfDeprecated( __METHOD__, '1.22' );
                $args = func_get_args();
-
                return call_user_func_array( 'call_user_func', $args );
        }
 
        /**
+        * @deprecated since 1.22; use call_user_func_array()
         * @param $callback
         * @param $argsarams
         * @return mixed
         */
        public static function callArray( $callback, $argsarams ) {
-               $callback = self::cleanCallback( $callback );
+               wfDeprecated( __METHOD__, '1.22' );
                return call_user_func_array( $callback, $argsarams );
        }
 
index ae7f8fe..adb2ab7 100644 (file)
@@ -310,10 +310,9 @@ class MagicWord {
                $this->mId = $id;
                $wgContLang->getMagic( $this );
                if ( !$this->mSynonyms ) {
-                       $this->mSynonyms = array( 'dkjsagfjsgashfajsh' );
+                       $this->mSynonyms = array( 'brionmademeputthishere' );
                        wfProfileOut( __METHOD__ );
                        throw new MWException( "Error: invalid magic word '$id'" );
-                       #wfDebugLog( 'exception', "Error: invalid magic word '$id'\n" );
                }
                wfProfileOut( __METHOD__ );
        }
index 14495f2..70d2032 100644 (file)
  *
  * @since 1.21
  */
-class MappedIterator implements Iterator {
-       /** @var Iterator */
-       protected $baseIterator;
+class MappedIterator extends FilterIterator {
        /** @var callable */
        protected $vCallback;
+       /** @var callable */
+       protected $aCallback;
+       /** @var array */
+       protected $cache = array();
+
+       protected $rewound = false; // boolean; whether rewind() has been called
 
        /**
         * Build an new iterator from a base iterator by having the former wrap the
@@ -38,59 +42,73 @@ class MappedIterator implements Iterator {
         * The callback takes the result of current() on the base iterator as an argument.
         * The keys of the base iterator are reused verbatim.
         *
+        * An "accept" callback can also be provided which will be called for each value in
+        * the base iterator (post-callback) and will return true if that value should be
+        * included in iteration of the MappedIterator (otherwise it will be filtered out).
+        *
         * @param Iterator|Array $iter
-        * @param callable $vCallback
+        * @param callable $vCallback Value transformation callback
+        * @param array $options Options map (includes "accept") (since 1.22)
         * @throws MWException
         */
-       public function __construct( $iter, $vCallback ) {
+       public function __construct( $iter, $vCallback, array $options = array() ) {
                if ( is_array( $iter ) ) {
-                       $this->baseIterator = new ArrayIterator( $iter );
+                       $baseIterator = new ArrayIterator( $iter );
                } elseif ( $iter instanceof Iterator ) {
-                       $this->baseIterator = $iter;
+                       $baseIterator = $iter;
                } else {
                        throw new MWException( "Invalid base iterator provided." );
                }
+               parent::__construct( $baseIterator );
                $this->vCallback = $vCallback;
+               $this->aCallback = isset( $options['accept'] ) ? $options['accept'] : null;
+       }
+
+       public function next() {
+               $this->cache = array();
+               parent::next();
        }
 
-       /**
-        * @return void
-        */
        public function rewind() {
-               $this->baseIterator->rewind();
+               $this->rewound = true;
+               $this->cache = array();
+               parent::rewind();
        }
 
-       /**
-        * @return Mixed|null Returns null if out of range
-        */
-       public function current() {
-               if ( !$this->baseIterator->valid() ) {
-                       return null; // out of range
+       public function accept() {
+               $value = call_user_func( $this->vCallback, $this->getInnerIterator()->current() );
+               $ok = ( $this->aCallback ) ? call_user_func( $this->aCallback, $value ) : true;
+               if ( $ok ) {
+                       $this->cache['current'] = $value;
                }
-               return call_user_func_array( $this->vCallback, array( $this->baseIterator->current() ) );
+               return $ok;
        }
 
-       /**
-        * @return Mixed|null Returns null if out of range
-        */
        public function key() {
-               if ( !$this->baseIterator->valid() ) {
-                       return null; // out of range
-               }
-               return $this->baseIterator->key();
+               $this->init();
+               return parent::key();
        }
 
-       /**
-        * @return void
-        */
-       public function next() {
-               $this->baseIterator->next();
+       public function valid() {
+               $this->init();
+               return parent::valid();
+       }
+
+       public function current() {
+               $this->init();
+               if ( parent::valid() ) {
+                       return $this->cache['current'];
+               } else {
+                       return null; // out of range
+               }
        }
 
        /**
-        * @return bool
+        * Obviate the usual need for rewind() before using a FilterIterator in a manual loop
         */
-       public function valid() {
-               return $this->baseIterator->valid();
+       protected function init() {
+               if ( !$this->rewound ) {
+                       $this->rewind();
+               }
        }
 }
index cd77ef8..37df489 100644 (file)
@@ -116,11 +116,13 @@ abstract class RdfMetaData {
        }
 
        protected function person( $name, User $user ) {
+               global $wgHiddenPrefs;
+
                if ( $user->isAnon() ) {
                        $this->element( $name, wfMessage( 'anonymous' )->numParams( 1 )->text() );
                } else {
                        $real = $user->getRealName();
-                       if ( $real ) {
+                       if ( $real && !in_array( 'realname', $wgHiddenPrefs ) ) {
                                $this->element( $name, $real );
                        } else {
                                $userName = $user->getName();
index 8001b41..5c8e63b 100644 (file)
@@ -334,7 +334,7 @@ class MWNamespace {
        public static function getContentNamespaces() {
                global $wgContentNamespaces;
                if ( !is_array( $wgContentNamespaces ) || $wgContentNamespaces === array() ) {
-                       return NS_MAIN;
+                       return array( NS_MAIN );
                } elseif ( !in_array( NS_MAIN, $wgContentNamespaces ) ) {
                        // always force NS_MAIN to be part of array (to match the algorithm used by isContent)
                        return array_merge( array( NS_MAIN ), $wgContentNamespaces );
index 5104a1a..3860b8e 100644 (file)
@@ -31,11 +31,19 @@ function wfOutputHandler( $s ) {
        global $wgDisableOutputCompression, $wgValidateAllHtml;
        $s = wfMangleFlashPolicy( $s );
        if ( $wgValidateAllHtml ) {
-               $headers = apache_response_headers();
-               $isHTML = true;
-               foreach ( $headers as $name => $value ) {
-                       if ( strtolower( $name ) == 'content-type' && strpos( $value, 'text/html' ) === false && strpos( $value, 'application/xhtml+xml' ) === false ) {
-                               $isHTML = false;
+               $headers = headers_list();
+               $isHTML = false;
+               foreach ( $headers as $header ) {
+                       $parts = explode( ':', $header, 2 );
+                       if ( count( $parts ) !== 2 ) {
+                               continue;
+                       }
+                       $name = strtolower( trim( $parts[0] ) );
+                       $value = trim( $parts[1] );
+                       if ( $name == 'content-type' && ( strpos( $value, 'text/html' ) === 0
+                               || strpos( $value, 'application/xhtml+xml' ) === 0 )
+                       ) {
+                               $isHTML = true;
                                break;
                        }
                }
index 6bb29d2..83a7d3f 100644 (file)
@@ -39,9 +39,6 @@ class OutputPage extends ContextSource {
        /// Should be private. Used with addMeta() which adds "<meta>"
        var $mMetatags = array();
 
-       /// "<meta keywords='stuff'>" most of the time the first 10 links to an article
-       var $mKeywords = array();
-
        var $mLinktags = array();
        var $mCanonicalUrl = false;
 
@@ -313,19 +310,6 @@ class OutputPage extends ContextSource {
                array_push( $this->mMetatags, array( $name, $val ) );
        }
 
-       /**
-        * Add a keyword or a list of keywords in the page header
-        *
-        * @param string $text or array of strings
-        */
-       function addKeyword( $text ) {
-               if ( is_array( $text ) ) {
-                       $this->mKeywords = array_merge( $this->mKeywords, $text );
-               } else {
-                       array_push( $this->mKeywords, $text );
-               }
-       }
-
        /**
         * Add a new \<link\> tag to the page header.
         *
@@ -2102,7 +2086,7 @@ class OutputPage extends ContextSource {
         * Actually output something with print.
         *
         * @param string $ins the string to output
-        * @deprecated since 1.20 Use echo yourself.
+        * @deprecated since 1.22 Use echo yourself.
         */
        public function out( $ins ) {
                wfDeprecated( __METHOD__, '1.22' );
@@ -2528,8 +2512,8 @@ $templates
                        // The spec recommends defining XHTML5's charset using the XML declaration
                        // instead of meta.
                        // Our XML declaration is output by Html::htmlHeader.
-                       // http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#attr-meta-http-equiv-content-type
-                       // http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#charset
+                       // http://www.whatwg.org/html/semantics.html#attr-meta-http-equiv-content-type
+                       // http://www.whatwg.org/html/semantics.html#charset
                        $ret .= Html::element( 'meta', array( 'charset' => 'UTF-8' ) );
                }
 
@@ -3040,6 +3024,7 @@ $templates
                        'wgCurRevisionId' => $latestRevID,
                        'wgArticleId' => $pageID,
                        'wgIsArticle' => $this->isArticle(),
+                       'wgIsRedirect' => $title->isRedirect(),
                        'wgAction' => Action::getActionName( $this->getContext() ),
                        'wgUserName' => $user->isAnon() ? null : $user->getName(),
                        'wgUserGroups' => $user->getEffectiveGroups(),
@@ -3067,6 +3052,8 @@ $templates
                if ( $wgContLang->hasVariants() ) {
                        $vars['wgUserVariant'] = $wgContLang->getPreferredVariant();
                }
+               // Same test as SkinTemplate
+               $vars['wgIsProbablyEditable'] = $title->quickUserCan( 'edit', $user ) && ( $title->exists() || $title->quickUserCan( 'create', $user ) );
                foreach ( $title->getRestrictionTypes() as $type ) {
                        $vars['wgRestriction' . ucfirst( $type )] = $title->getRestrictions( $type );
                }
@@ -3140,21 +3127,6 @@ $templates
                        ) );
                }
 
-               if ( count( $this->mKeywords ) > 0 ) {
-                       $strip = array(
-                               "/<.*?" . ">/" => '',
-                               "/_/" => ' '
-                       );
-                       $tags['meta-keywords'] = Html::element( 'meta', array(
-                               'name' => 'keywords',
-                               'content' => preg_replace(
-                                       array_keys( $strip ),
-                                       array_values( $strip ),
-                                       implode( ',', $this->mKeywords )
-                               )
-                       ) );
-               }
-
                foreach ( $this->mMetatags as $tag ) {
                        if ( 0 == strcasecmp( 'http:', substr( $tag[0], 0, 5 ) ) ) {
                                $a = 'http-equiv';
@@ -3246,7 +3218,7 @@ $templates
                                        foreach ( $variants as $_v ) {
                                                $tags["variant-$_v"] = Html::element( 'link', array(
                                                        'rel' => 'alternate',
-                                                       'hreflang' => $_v,
+                                                       'hreflang' => wfBCP47( $_v ),
                                                        'href' => $this->getTitle()->getLocalURL( array( 'variant' => $_v ) ) )
                                                );
                                        }
@@ -3566,7 +3538,7 @@ $templates
         * this stylesheet
         */
        public static function transformCssMedia( $media ) {
-               global $wgRequest, $wgHandheldForIPhone;
+               global $wgRequest;
 
                // http://www.w3.org/TR/css3-mediaqueries/#syntax
                $screenMediaQueryRegex = '/^(?:only\s+)?screen\b/i';
@@ -3598,18 +3570,6 @@ $templates
                        }
                }
 
-               // Expand longer media queries as iPhone doesn't grok 'handheld'
-               if ( $wgHandheldForIPhone ) {
-                       $mediaAliases = array(
-                               'screen' => 'screen and (min-device-width: 481px)',
-                               'handheld' => 'handheld, only screen and (max-device-width: 480px)',
-                       );
-
-                       if ( isset( $mediaAliases[$media] ) ) {
-                               $media = $mediaAliases[$media];
-                       }
-               }
-
                return $media;
        }
 
index c2bd364..3ada0e2 100644 (file)
@@ -150,7 +150,8 @@ abstract class IndexPager extends ContextSource implements Pager {
                }
 
                $this->mIsBackwards = ( $this->mRequest->getVal( 'dir' ) == 'prev' );
-               $this->mDb = wfGetDB( DB_SLAVE );
+               # Let the subclass set the DB here; otherwise use a slave DB for the current wiki
+               $this->mDb = $this->mDb ?: wfGetDB( DB_SLAVE );
 
                $index = $this->getIndexField(); // column to sort on
                $extraSort = $this->getExtraSortFields(); // extra columns to sort on for query planning
@@ -872,9 +873,10 @@ abstract class ReverseChronologicalPager extends IndexPager {
                        $year = $this->mYear;
                } else {
                        // If no year given, assume the current one
-                       $year = gmdate( 'Y' );
+                       $timestamp = MWTimestamp::getInstance();
+                       $year = $timestamp->format( 'Y' );
                        // If this month hasn't happened yet this year, go back to last year's month
-                       if ( $this->mMonth > gmdate( 'n' ) ) {
+                       if ( $this->mMonth > $timestamp->format( 'n' ) ) {
                                $year--;
                        }
                }
@@ -1172,11 +1174,15 @@ abstract class TablePager extends IndexPager {
        /**
         * Get a "<select>" element which has options for each of the allowed limits
         *
+        * @param $attribs String: Extra attributes to set
         * @return String: HTML fragment
         */
-       public function getLimitSelect() {
+       public function getLimitSelect( $attribs = array() ) {
                $select = new XmlSelect( 'limit', false, $this->mLimit );
                $select->addOptions( $this->getLimitSelectList() );
+               foreach ( $attribs as $name => $value ) {
+                       $select->setAttribute( $name, $value );
+               }
                return $select->getHTML();
        }
 
index 848cd32..6f4f327 100644 (file)
@@ -56,6 +56,12 @@ class Preferences {
                        'searchlimit' => array( 'Preferences', 'filterIntval' ),
        );
 
+       // Stuff that shouldn't be saved as a preference.
+       private static $saveBlacklist = array(
+               'realname',
+               'emailaddress',
+       );
+
        /**
         * @throws MWException
         * @param $user User
@@ -93,9 +99,14 @@ class Preferences {
                ## Make sure that form fields have their parent set. See bug 41337.
                $dummyForm = new HTMLForm( array(), $context );
 
+               $disable = !$user->isAllowed( 'editmyoptions' );
+
                ## Prod in defaults from the user
                foreach ( $defaultPreferences as $name => &$info ) {
                        $prefFromUser = self::getOptionFromUser( $name, $info, $user );
+                       if ( $disable && !in_array( $name, self::$saveBlacklist ) ) {
+                               $info['disabled'] = 'disabled';
+                       }
                        $field = HTMLForm::loadInputFromParameters( $name, $info ); // For validation
                        $field->mParent = $dummyForm;
                        $defaultOptions = User::getDefaultOptions();
@@ -256,9 +267,13 @@ class Preferences {
                        );
                }
 
+               $canViewPrivateInfo = $user->isAllowed( 'viewmyprivateinfo' );
+               $canEditPrivateInfo = $user->isAllowed( 'editmyprivateinfo' );
+
                // Actually changeable stuff
                $defaultPreferences['realname'] = array(
-                       'type' => $wgAuth->allowPropChange( 'realname' ) ? 'text' : 'info',
+                       // (not really "private", but still shouldn't be edited without permission)
+                       'type' => $canEditPrivateInfo && $wgAuth->allowPropChange( 'realname' ) ? 'text' : 'info',
                        'default' => $user->getRealName(),
                        'section' => 'personal/info',
                        'label-message' => 'yourrealname',
@@ -277,7 +292,7 @@ class Preferences {
                        'help-message' => 'prefs-help-gender',
                );
 
-               if ( $wgAuth->allowPasswordChange() ) {
+               if ( $canEditPrivateInfo && $wgAuth->allowPasswordChange() ) {
                        $link = Linker::link( SpecialPage::getTitleFor( 'ChangePassword' ),
                                $context->msg( 'prefs-resetpass' )->escaped(), array(),
                                array( 'returnto' => SpecialPage::getTitleFor( 'Preferences' )->getPrefixedText() ) );
@@ -382,39 +397,41 @@ class Preferences {
                ## Email stuff
 
                if ( $wgEnableEmail ) {
-                       $helpMessages[] = $wgEmailConfirmToEdit
-                                       ? 'prefs-help-email-required'
-                                       : 'prefs-help-email';
-
-                       if ( $wgEnableUserEmail ) {
-                               // additional messages when users can send email to each other
-                               $helpMessages[] = 'prefs-help-email-others';
-                       }
+                       if ( $canViewPrivateInfo ) {
+                               $helpMessages[] = $wgEmailConfirmToEdit
+                                               ? 'prefs-help-email-required'
+                                               : 'prefs-help-email';
+
+                               if ( $wgEnableUserEmail ) {
+                                       // additional messages when users can send email to each other
+                                       $helpMessages[] = 'prefs-help-email-others';
+                               }
 
-                       $link = Linker::link(
-                               SpecialPage::getTitleFor( 'ChangeEmail' ),
-                               $context->msg( $user->getEmail() ? 'prefs-changeemail' : 'prefs-setemail' )->escaped(),
-                               array(),
-                               array( 'returnto' => SpecialPage::getTitleFor( 'Preferences' )->getPrefixedText() ) );
+                               $emailAddress = $user->getEmail() ? htmlspecialchars( $user->getEmail() ) : '';
+                               if ( $canEditPrivateInfo && $wgAuth->allowPropChange( 'emailaddress' ) ) {
+                                       $link = Linker::link(
+                                               SpecialPage::getTitleFor( 'ChangeEmail' ),
+                                               $context->msg( $user->getEmail() ? 'prefs-changeemail' : 'prefs-setemail' )->escaped(),
+                                               array(),
+                                               array( 'returnto' => SpecialPage::getTitleFor( 'Preferences' )->getPrefixedText() ) );
+
+                                       $emailAddress .= $emailAddress == '' ? $link : (
+                                               $context->msg( 'word-separator' )->plain()
+                                               . $context->msg( 'parentheses' )->rawParams( $link )->plain()
+                                       );
+                               }
 
-                       $emailAddress = $user->getEmail() ? htmlspecialchars( $user->getEmail() ) : '';
-                       if ( $wgAuth->allowPropChange( 'emailaddress' ) ) {
-                               $emailAddress .= $emailAddress == '' ? $link : (
-                                       $context->msg( 'word-separator' )->plain()
-                                       . $context->msg( 'parentheses' )->rawParams( $link )->plain()
+                               $defaultPreferences['emailaddress'] = array(
+                                       'type' => 'info',
+                                       'raw' => true,
+                                       'default' => $emailAddress,
+                                       'label-message' => 'youremail',
+                                       'section' => 'personal/email',
+                                       'help-messages' => $helpMessages,
+                                       # 'cssclass' chosen below
                                );
                        }
 
-                       $defaultPreferences['emailaddress'] = array(
-                               'type' => 'info',
-                               'raw' => true,
-                               'default' => $emailAddress,
-                               'label-message' => 'youremail',
-                               'section' => 'personal/email',
-                               'help-messages' => $helpMessages,
-                               # 'cssclass' chosen below
-                       );
-
                        $disableEmailPrefs = false;
 
                        if ( $wgEmailAuthentication ) {
@@ -448,16 +465,18 @@ class Preferences {
                                        $emailauthenticationclass = 'mw-email-none';
                                }
 
-                               $defaultPreferences['emailauthentication'] = array(
-                                       'type' => 'info',
-                                       'raw' => true,
-                                       'section' => 'personal/email',
-                                       'label-message' => 'prefs-emailconfirm-label',
-                                       'default' => $emailauthenticated,
-                                       # Apply the same CSS class used on the input to the message:
-                                       'cssclass' => $emailauthenticationclass,
-                               );
-                               $defaultPreferences['emailaddress']['cssclass'] = $emailauthenticationclass;
+                               if ( $canViewPrivateInfo ) {
+                                       $defaultPreferences['emailauthentication'] = array(
+                                               'type' => 'info',
+                                               'raw' => true,
+                                               'section' => 'personal/email',
+                                               'label-message' => 'prefs-emailconfirm-label',
+                                               'default' => $emailauthenticated,
+                                               # Apply the same CSS class used on the input to the message:
+                                               'cssclass' => $emailauthenticationclass,
+                                       );
+                                       $defaultPreferences['emailaddress']['cssclass'] = $emailauthenticationclass;
+                               }
                        }
 
                        if ( $wgEnableUserEmail && $user->isAllowed( 'sendemail' ) ) {
@@ -732,25 +751,28 @@ class Preferences {
                global $wgAllowUserCssPrefs;
 
                ## Editing #####################################
-               $defaultPreferences['cols'] = array(
-                       'type' => 'int',
-                       'label-message' => 'columns',
-                       'section' => 'editing/textboxsize',
-                       'min' => 4,
-                       'max' => 1000,
+               if ( $wgAllowUserCssPrefs ) {
+                       $defaultPreferences['editsection'] = array(
+                               'type' => 'toggle',
+                               'section' => 'editing/advancedediting',
+                               'label-message' => 'tog-editsection',
+                       );
+               }
+               $defaultPreferences['editsectiononrightclick'] = array(
+                       'type' => 'toggle',
+                       'section' => 'editing/advancedediting',
+                       'label-message' => 'tog-editsectiononrightclick',
                );
-               $defaultPreferences['rows'] = array(
-                       'type' => 'int',
-                       'label-message' => 'rows',
-                       'section' => 'editing/textboxsize',
-                       'min' => 4,
-                       'max' => 1000,
+               $defaultPreferences['editondblclick'] = array(
+                       'type' => 'toggle',
+                       'section' => 'editing/advancedediting',
+                       'label-message' => 'tog-editondblclick',
                );
 
                if ( $wgAllowUserCssPrefs ) {
                        $defaultPreferences['editfont'] = array(
                                'type' => 'select',
-                               'section' => 'editing/advancedediting',
+                               'section' => 'editing/editor',
                                'label-message' => 'editfont-style',
                                'options' => array(
                                        $context->msg( 'editfont-default' )->text() => 'default',
@@ -760,64 +782,57 @@ class Preferences {
                                )
                        );
                }
-               $defaultPreferences['previewontop'] = array(
-                       'type' => 'toggle',
-                       'section' => 'editing/advancedediting',
-                       'label-message' => 'tog-previewontop',
+               $defaultPreferences['cols'] = array(
+                       'type' => 'int',
+                       'label-message' => 'columns',
+                       'section' => 'editing/editor',
+                       'min' => 4,
+                       'max' => 1000,
                );
-               $defaultPreferences['previewonfirst'] = array(
-                       'type' => 'toggle',
-                       'section' => 'editing/advancedediting',
-                       'label-message' => 'tog-previewonfirst',
+               $defaultPreferences['rows'] = array(
+                       'type' => 'int',
+                       'label-message' => 'rows',
+                       'section' => 'editing/editor',
+                       'min' => 4,
+                       'max' => 1000,
                );
-
-               if ( $wgAllowUserCssPrefs ) {
-                       $defaultPreferences['editsection'] = array(
+               if ( $user->isAllowed( 'minoredit' ) ) {
+                       $defaultPreferences['minordefault'] = array(
                                'type' => 'toggle',
-                               'section' => 'editing/advancedediting',
-                               'label-message' => 'tog-editsection',
+                               'section' => 'editing/editor',
+                               'label-message' => 'tog-minordefault',
                        );
                }
-               $defaultPreferences['editsectiononrightclick'] = array(
+               $defaultPreferences['forceeditsummary'] = array(
                        'type' => 'toggle',
-                       'section' => 'editing/advancedediting',
-                       'label-message' => 'tog-editsectiononrightclick',
+                       'section' => 'editing/editor',
+                       'label-message' => 'tog-forceeditsummary',
                );
-               $defaultPreferences['editondblclick'] = array(
+               $defaultPreferences['useeditwarning'] = array(
                        'type' => 'toggle',
-                       'section' => 'editing/advancedediting',
-                       'label-message' => 'tog-editondblclick',
+                       'section' => 'editing/editor',
+                       'label-message' => 'tog-useeditwarning',
                );
                $defaultPreferences['showtoolbar'] = array(
                        'type' => 'toggle',
-                       'section' => 'editing/advancedediting',
+                       'section' => 'editing/editor',
                        'label-message' => 'tog-showtoolbar',
                );
 
-               if ( $user->isAllowed( 'minoredit' ) ) {
-                       $defaultPreferences['minordefault'] = array(
-                               'type' => 'toggle',
-                               'section' => 'editing/advancedediting',
-                               'label-message' => 'tog-minordefault',
-                       );
-               }
-
-               $defaultPreferences['forceeditsummary'] = array(
+               $defaultPreferences['previewonfirst'] = array(
                        'type' => 'toggle',
-                       'section' => 'editing/advancedediting',
-                       'label-message' => 'tog-forceeditsummary',
+                       'section' => 'editing/preview',
+                       'label-message' => 'tog-previewonfirst',
                );
-
-               $defaultPreferences['uselivepreview'] = array(
+               $defaultPreferences['previewontop'] = array(
                        'type' => 'toggle',
-                       'section' => 'editing/advancedediting',
-                       'label-message' => 'tog-uselivepreview',
+                       'section' => 'editing/preview',
+                       'label-message' => 'tog-previewontop',
                );
-
-               $defaultPreferences['useeditwarning'] = array(
+               $defaultPreferences['uselivepreview'] = array(
                        'type' => 'toggle',
-                       'section' => 'editing/advancedediting',
-                       'label-message' => 'tog-useeditwarning',
+                       'section' => 'editing/preview',
+                       'label-message' => 'tog-uselivepreview',
                );
 
        }
@@ -946,19 +961,6 @@ class Preferences {
                        );
                }
 
-               if ( $wgEnableAPI ) {
-                       # Some random gibberish as a proposed default
-                       // @todo Fixme: this should use CryptRand but we may not want to read urandom on every view
-                       $hash = sha1( mt_rand() . microtime( true ) );
-
-                       $defaultPreferences['watchlisttoken'] = array(
-                               'type' => 'text',
-                               'section' => 'watchlist/advancedwatchlist',
-                               'label-message' => 'prefs-watchlist-token',
-                               'help' => $context->msg( 'prefs-help-watchlist-token', $hash )->escaped()
-                       );
-               }
-
                $watchTypes = array(
                        'edit' => 'watchdefault',
                        'move' => 'watchmoves',
@@ -979,6 +981,19 @@ class Preferences {
                                );
                        }
                }
+
+               if ( $wgEnableAPI ) {
+                       $defaultPreferences['watchlisttoken'] = array(
+                               'type' => 'api',
+                       );
+                       $defaultPreferences['watchlisttoken-info'] = array(
+                               'type' => 'info',
+                               'section' => 'watchlist/tokenwatchlist',
+                               'label-message' => 'prefs-watchlist-token',
+                               'default' => $user->getTokenFromOption( 'watchlisttoken' ),
+                               'help-message' => 'prefs-help-watchlist-token2',
+                       );
+               }
        }
 
        /**
@@ -1275,10 +1290,11 @@ class Preferences {
        static function getTimezoneOptions( IContextSource $context ) {
                $opt = array();
 
-               global $wgLocalTZoffset, $wgLocaltimezone;
-               // Check that $wgLocalTZoffset is the same as $wgLocaltimezone
-               if ( $wgLocalTZoffset == date( 'Z' ) / 60 ) {
-                       $server_tz_msg = $context->msg( 'timezoneuseserverdefault', $wgLocaltimezone )->text();
+               global $wgLocalTZoffset;
+               $timestamp = MWTimestamp::getLocalInstance();
+               // Check that $wgLocalTZoffset is the same as the local time zone offset
+               if ( $wgLocalTZoffset == $timestamp->format( 'Z' ) / 60 ) {
+                       $server_tz_msg = $context->msg( 'timezoneuseserverdefault', $timestamp->getTimezone()->getName() )->text();
                } else {
                        $tzstring = sprintf( '%+03d:%02d', floor( $wgLocalTZoffset / 60 ), abs( $wgLocalTZoffset ) % 60 );
                        $server_tz_msg = $context->msg( 'timezoneuseserverdefault', $tzstring )->text();
@@ -1389,6 +1405,10 @@ class Preferences {
                $user = $form->getModifiedUser();
                $result = true;
 
+               if ( !$user->isAllowedAny( 'editmyprivateinfo', 'editmyoptions' ) ) {
+                       return Status::newFatal( 'mypreferencesprotected' );
+               }
+
                // Filter input
                foreach ( array_keys( $formData ) as $name ) {
                        if ( isset( self::$saveFilters[$name] ) ) {
@@ -1397,40 +1417,37 @@ class Preferences {
                        }
                }
 
-               // Stuff that shouldn't be saved as a preference.
-               $saveBlacklist = array(
-                       'realname',
-                       'emailaddress',
-               );
-
                // Fortunately, the realname field is MUCH simpler
-               if ( !in_array( 'realname', $wgHiddenPrefs ) ) {
+               // (not really "private", but still shouldn't be edited without permission)
+               if ( !in_array( 'realname', $wgHiddenPrefs ) && $user->isAllowed( 'editmyprivateinfo' ) ) {
                        $realName = $formData['realname'];
                        $user->setRealName( $realName );
                }
 
-               foreach ( $saveBlacklist as $b ) {
-                       unset( $formData[$b] );
-               }
+               if ( $user->isAllowed( 'editmyoptions' ) ) {
+                       foreach ( self::$saveBlacklist as $b ) {
+                               unset( $formData[$b] );
+                       }
 
-               # If users have saved a value for a preference which has subsequently been disabled
-               # via $wgHiddenPrefs, we don't want to destroy that setting in case the preference
-               # is subsequently re-enabled
-               # TODO: maintenance script to actually delete these
-               foreach ( $wgHiddenPrefs as $pref ) {
-                       # If the user has not set a non-default value here, the default will be returned
-                       # and subsequently discarded
-                       $formData[$pref] = $user->getOption( $pref, null, true );
-               }
+                       # If users have saved a value for a preference which has subsequently been disabled
+                       # via $wgHiddenPrefs, we don't want to destroy that setting in case the preference
+                       # is subsequently re-enabled
+                       # TODO: maintenance script to actually delete these
+                       foreach ( $wgHiddenPrefs as $pref ) {
+                               # If the user has not set a non-default value here, the default will be returned
+                               # and subsequently discarded
+                               $formData[$pref] = $user->getOption( $pref, null, true );
+                       }
 
-               // Keep old preferences from interfering due to back-compat code, etc.
-               $user->resetOptions( 'unused', $form->getContext() );
+                       // Keep old preferences from interfering due to back-compat code, etc.
+                       $user->resetOptions( 'unused', $form->getContext() );
 
-               foreach ( $formData as $key => $value ) {
-                       $user->setOption( $key, $value );
-               }
+                       foreach ( $formData as $key => $value ) {
+                               $user->setOption( $key, $value );
+                       }
 
-               $user->saveSettings();
+                       $user->saveSettings();
+               }
 
                $wgAuth->updateExternalDB( $user );
 
@@ -1465,7 +1482,8 @@ class Preferences {
        /**
         * Try to set a user's email address.
         * This does *not* try to validate the address.
-        * Caller is responsible for checking $wgAuth.
+        * Caller is responsible for checking $wgAuth and 'editmyprivateinfo'
+        * right.
         *
         * @deprecated in 1.20; use User::setEmailWithConfirmation() instead.
         * @param $user User
@@ -1554,13 +1572,19 @@ class PreferencesForm extends HTMLForm {
         * @return String
         */
        function getButtons() {
+               if ( !$this->getModifiedUser()->isAllowedAny( 'editmyprivateinfo', 'editmyoptions' ) ) {
+                       return '';
+               }
+
                $html = parent::getButtons();
 
-               $t = SpecialPage::getTitleFor( 'Preferences', 'reset' );
+               if ( $this->getModifiedUser()->isAllowed( 'editmyoptions' ) ) {
+                       $t = SpecialPage::getTitleFor( 'Preferences', 'reset' );
 
-               $html .= "\n" . Linker::link( $t, $this->msg( 'restoreprefs' )->escaped() );
+                       $html .= "\n" . Linker::link( $t, $this->msg( 'restoreprefs' )->escaped() );
 
-               $html = Xml::tags( 'div', array( 'class' => 'mw-prefs-buttons' ), $html );
+                       $html = Xml::tags( 'div', array( 'class' => 'mw-prefs-buttons' ), $html );
+               }
 
                return $html;
        }
index 6f444ee..4d41d9e 100644 (file)
@@ -135,8 +135,13 @@ class ProtectionForm {
                        if ( isset( $val ) && in_array( $val, $wgRestrictionLevels ) ) {
                                // Prevent users from setting levels that they cannot later unset
                                if ( $val == 'sysop' ) {
-                                       // Special case, rewrite sysop to either protect and editprotected
-                                       if ( !$wgUser->isAllowedAny( 'protect', 'editprotected' ) ) {
+                                       // Special case, rewrite sysop to editprotected
+                                       if ( !$wgUser->isAllowed( 'editprotected' ) ) {
+                                               continue;
+                                       }
+                               } elseif ( $val == 'autoconfirmed' ) {
+                                       // Special case, rewrite autoconfirmed to editsemiprotected
+                                       if ( !$wgUser->isAllowed( 'editsemiprotected' ) ) {
                                                continue;
                                        }
                                } elseif ( !$wgUser->isAllowed( $val ) ) {
@@ -297,14 +302,7 @@ class ProtectionForm {
                        }
                }
 
-               # They shouldn't be able to do this anyway, but just to make sure, ensure that cascading restrictions aren't being applied
-               #  to a semi-protected page.
-               $edit_restriction = isset( $this->mRestrictions['edit'] ) ? $this->mRestrictions['edit'] : '';
                $this->mCascade = $wgRequest->getBool( 'mwProtect-cascade' );
-               if ( $this->mCascade && ( $edit_restriction != 'protect' ) &&
-                       !User::groupHasPermission( $edit_restriction, 'protect' ) ) {
-                       $this->mCascade = false;
-               }
 
                $status = $this->mArticle->doUpdateRestrictions( $this->mRestrictions, $expiry, $this->mCascade, $reasonstr, $wgUser );
 
@@ -330,13 +328,8 @@ class ProtectionForm {
                        return false;
                }
 
-               if ( $wgUser->isLoggedIn() && $wgRequest->getCheck( 'mwProtectWatch' ) != $wgUser->isWatched( $this->mTitle ) ) {
-                       if ( $wgRequest->getCheck( 'mwProtectWatch' ) ) {
-                               WatchAction::doWatch( $this->mTitle, $wgUser );
-                       } else {
-                               WatchAction::doUnwatch( $this->mTitle, $wgUser );
-                       }
-               }
+               WatchAction::doWatchOrUnwatch( $wgRequest->getCheck( 'mwProtectWatch' ), $this->mTitle, $wgUser );
+
                return true;
        }
 
@@ -567,8 +560,13 @@ class ProtectionForm {
                foreach ( $wgRestrictionLevels as $key ) {
                        //don't let them choose levels above their own (aka so they can still unprotect and edit the page). but only when the form isn't disabled
                        if ( $key == 'sysop' ) {
-                               //special case, rewrite sysop to protect and editprotected
-                               if ( !$wgUser->isAllowedAny( 'protect', 'editprotected' ) && !$this->disabled ) {
+                               //special case, rewrite sysop to editprotected
+                               if ( !$wgUser->isAllowed( 'editprotected' ) && !$this->disabled ) {
+                                       continue;
+                               }
+                       } elseif ( $key == 'autoconfirmed' ) {
+                               //special case, rewrite autoconfirmed to editsemiprotected
+                               if ( !$wgUser->isAllowed( 'editsemiprotected' ) && !$this->disabled ) {
                                        continue;
                                }
                        } else {
index a93639a..699c843 100644 (file)
@@ -588,7 +588,7 @@ abstract class QueryPage extends SpecialPage {
 
                        # $res might contain the whole 1,000 rows, so we read up to
                        # $num [should update this to use a Pager]
-                       for ( $i = 0; $i < $num && $row = $dbr->fetchObject( $res ); $i++ ) {
+                       for ( $i = 0; $i < $num && $row = $res->fetchObject(); $i++ ) {
                                $line = $this->formatResult( $skin, $row );
                                if ( $line ) {
                                        $attr = ( isset( $row->usepatrol ) && $row->usepatrol && $row->patrolled == 0 )
@@ -655,17 +655,14 @@ abstract class QueryPage extends SpecialPage {
         * @return bool
         */
        function doFeed( $class = '', $limit = 50 ) {
-               global $wgFeed, $wgFeedClasses;
+               global $wgFeed, $wgFeedClasses, $wgFeedLimit;
 
                if ( !$wgFeed ) {
                        $this->getOutput()->addWikiMsg( 'feed-unavailable' );
                        return false;
                }
 
-               global $wgFeedLimit;
-               if ( $limit > $wgFeedLimit ) {
-                       $limit = $wgFeedLimit;
-               }
+               $limit = min( $limit, $wgFeedLimit );
 
                if ( isset( $wgFeedClasses[$class] ) ) {
                        $feed = new $wgFeedClasses[$class](
index 953d9e9..24db569 100644 (file)
@@ -96,10 +96,12 @@ class RecentChange {
        }
 
        /**
+        * @deprecated in 1.22
         * @param $row
         * @return RecentChange
         */
        public static function newFromCurRow( $row ) {
+               wfDeprecated( __METHOD__, '1.22' );
                $rc = new RecentChange;
                $rc->loadFromCurRow( $row );
                $rc->notificationtimestamp = false;
@@ -329,7 +331,7 @@ class RecentChange {
         * @return String
         */
        public static function cleanupForIRC( $text ) {
-               return Sanitizer::decodeCharReferences( str_replace( array( "\n", "\r" ), array( "", "" ), $text ) );
+               return Sanitizer::decodeCharReferences( str_replace( array( "\n", "\r" ), array( " ", "" ), $text ) );
        }
 
        /**
@@ -657,9 +659,11 @@ class RecentChange {
        /**
         * Makes a pseudo-RC entry from a cur row
         *
+        * @deprected in 1.22
         * @param $row
         */
        public function loadFromCurRow( $row ) {
+               wfDeprecated( __METHOD__, '1.22' );
                $this->mAttribs = array(
                        'rc_timestamp' => wfTimestamp( TS_MW, $row->rev_timestamp ),
                        'rc_cur_time' => $row->rev_timestamp,
index 47626a2..b3b971b 100644 (file)
@@ -867,24 +867,37 @@ class Revision implements IDBAccessObject {
        }
 
        /**
-        * @return Integer rcid of the unpatrolled row, zero if there isn't one
+        * @return integer rcid of the unpatrolled row, zero if there isn't one
         */
        public function isUnpatrolled() {
                if ( $this->mUnpatrolled !== null ) {
                        return $this->mUnpatrolled;
                }
+               $rc = $this->getRecentChange();
+               if ( $rc && $rc->getAttribute( 'rc_patrolled' ) == 0 ) {
+                       $this->mUnpatrolled = $rc->getAttribute( 'rc_id' );
+               } else {
+                       $this->mUnpatrolled = 0;
+               }
+               return $this->mUnpatrolled;
+       }
+
+       /**
+        * Get the RC object belonging to the current revision, if there's one
+        *
+        * @since 1.22
+        * @return RecentChange|null
+        */
+       public function getRecentChange() {
                $dbr = wfGetDB( DB_SLAVE );
-               $this->mUnpatrolled = $dbr->selectField( 'recentchanges',
-                       'rc_id',
-                       array( // Add redundant user,timestamp condition so we can use the existing index
+               return RecentChange::newFromConds(
+                       array(
                                'rc_user_text' => $this->getRawUserText(),
                                'rc_timestamp' => $dbr->timestamp( $this->getTimestamp() ),
-                               'rc_this_oldid' => $this->getId(),
-                               'rc_patrolled' => 0
+                               'rc_this_oldid' => $this->getId()
                        ),
                        __METHOD__
                );
-               return (int)$this->mUnpatrolled;
        }
 
        /**
index b4a1c62..fa883fc 100644 (file)
@@ -397,7 +397,7 @@ class Sanitizer {
                        $htmlnest = array( # Tags that can be nested--??
                                'table', 'tr', 'td', 'th', 'div', 'blockquote', 'ol', 'ul',
                                'li', 'dl', 'dt', 'dd', 'font', 'big', 'small', 'sub', 'sup', 'span',
-                               'var', 'kbd', 'samp'
+                               'var', 'kbd', 'samp', 'em', 'strong', 'q', 'ruby', 'bdo'
                        );
                        $tabletags = array( # Can only appear inside table, we will close them
                                'td', 'th', 'tr',
@@ -740,7 +740,7 @@ class Sanitizer {
 
                        # WAI-ARIA
                        # http://www.w3.org/TR/wai-aria/
-                       # http://www.whatwg.org/specs/web-apps/current-work/multipage/elements.html#wai-aria
+                       # http://www.whatwg.org/html/elements.html#wai-aria
                        # For now we only support role="presentation" until we work out what roles should be
                        # usable by content and we ensure that our code explicitly rejects patterns that
                        # violate HTML5's ARIA restrictions.
@@ -1011,7 +1011,7 @@ class Sanitizer {
         *                                                          in the id and
         *                                                          name attributes
         * @see http://www.w3.org/TR/html401/struct/links.html#h-12.2.3 Anchors with the id attribute
-        * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/elements.html#the-id-attribute
+        * @see http://www.whatwg.org/html/elements.html#the-id-attribute
         *   HTML5 definition of id attribute
         *
         * @param string $id id to escape
@@ -1467,7 +1467,7 @@ class Sanitizer {
                }
 
                if ( $wgAllowMicrodataAttributes ) {
-                       # add HTML5 microdata tags as specified by http://www.whatwg.org/specs/web-apps/current-work/multipage/microdata.html#the-microdata-model
+                       # add HTML5 microdata tags as specified by http://www.whatwg.org/html/microdata.html#the-microdata-model
                        $common = array_merge( $common, array(
                                'itemid', 'itemprop', 'itemref', 'itemscope', 'itemtype'
                        ) );
@@ -1606,7 +1606,7 @@ class Sanitizer {
                        'hr'         => array_merge( $common, array( 'noshade', 'size', 'width' ) ),
 
                        # HTML Ruby annotation text module, simple ruby only.
-                       # http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-ruby-element
+                       # http://www.whatwg.org/html/text-level-semantics.html#the-ruby-element
                        'ruby'       => $common,
                        # rbc
                        # rtc
@@ -1623,7 +1623,7 @@ class Sanitizer {
                        'bdi' => $common,
 
                        # HTML5 elements, defined by:
-                       # http://www.whatwg.org/specs/web-apps/current-work/multipage/
+                       # http://www.whatwg.org/html/
                        'data' => array_merge( $common, array( 'value' ) ),
                        'time' => array_merge( $common, array( 'datetime' ) ),
                        'mark' => $common,
@@ -1740,7 +1740,7 @@ class Sanitizer {
         * Does a string look like an e-mail address?
         *
         * This validates an email address using an HTML5 specification found at:
-        * http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address
+        * http://www.whatwg.org/html/states-of-the-type-attribute.html#valid-e-mail-address
         * Which as of 2011-01-24 says:
         *
         *   A valid e-mail address is a string that matches the ABNF production
index fa88c0e..ef22e0a 100644 (file)
@@ -31,8 +31,12 @@ class ScopedCallback {
 
        /**
         * @param callable $callback
+        * @throws MWException
         */
        public function __construct( $callback ) {
+               if ( !is_callable( $callback ) ) {
+                       throw new MWException( "Provided callback is not valid." );
+               }
                $this->callback = $callback;
        }
 
diff --git a/includes/SeleniumWebSettings.php b/includes/SeleniumWebSettings.php
deleted file mode 100644 (file)
index 2fcbe65..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-<?php
-/**
- * Dynamically change configuration variables based on the test suite name and a cookie value.
- *
- * For details on how to configure a wiki for a Selenium test, see:
- * http://www.mediawiki.org/wiki/SeleniumFramework#Test_Wiki_configuration
- *
- * 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
- */
-
-if ( !defined( 'MEDIAWIKI' ) ) {
-       die( 1 );
-}
-
-require_once "$IP/includes/GlobalFunctions.php";
-
-$fname = 'SeleniumWebSettings.php';
-wfProfileIn( $fname );
-
-$cookiePrefix = $wgSitename . '-';
-$cookieName = $cookiePrefix . 'Selenium';
-
-// this is a fallback SQL file
-$testSqlFile = false;
-$testImageZip = false;
-
-// if we find a request parameter containing the test name, set a cookie with the test name
-if ( isset( $_GET['setupTestSuite'] ) ) {
-       $setupTestSuiteName = $_GET['setupTestSuite'];
-
-       if (
-               preg_match( '/[^a-zA-Z0-9_-]/', $setupTestSuiteName ) ||
-               !isset( $wgSeleniumTestConfigs[$setupTestSuiteName] )
-       )
-       {
-               return;
-       }
-       if ( strlen( $setupTestSuiteName ) > 0 ) {
-               $expire = time() + 600;
-               setcookie(
-                       $cookieName,
-                       $setupTestSuiteName,
-                       $expire,
-                       $wgCookiePath,
-                       $wgCookieDomain,
-                       $wgCookieSecure,
-                       true
-               );
-       }
-
-       $testIncludes = array(); // array containing all the includes needed for this test
-       $testGlobalConfigs = array(); // an array containing all the global configs needed for this test
-       $testResourceFiles = array(); // an array containing all the resource files needed for this test
-       $callback = $wgSeleniumTestConfigs[$setupTestSuiteName];
-       call_user_func_array( $callback, array( &$testIncludes, &$testGlobalConfigs, &$testResourceFiles ) );
-
-       if ( isset( $testResourceFiles['images'] ) ) {
-               $testImageZip = $testResourceFiles['images'];
-       }
-
-       if ( isset( $testResourceFiles['db'] ) ) {
-               $testSqlFile = $testResourceFiles['db'];
-               $testResourceName = getTestResourceNameFromTestSuiteName( $setupTestSuiteName );
-
-               switchToTestResources( $testResourceName, false ); // false means do not switch database yet
-               setupTestResources( $testResourceName, $testSqlFile, $testImageZip );
-       }
-}
-
-// clear the cookie based on a request param
-if ( isset( $_GET['clearTestSuite'] ) ) {
-       $testSuiteName = getTestSuiteNameFromCookie( $cookieName );
-
-       $expire = time() - 600;
-       setcookie(
-               $cookieName,
-               '',
-               $expire,
-               $wgCookiePath,
-               $wgCookieDomain,
-               $wgCookieSecure,
-               true
-       );
-
-       $testResourceName = getTestResourceNameFromTestSuiteName( $testSuiteName );
-       teardownTestResources( $testResourceName );
-}
-
-// if a cookie is found, run the appropriate callback to get the config params.
-if ( isset( $_COOKIE[$cookieName] ) ) {
-       $testSuiteName = getTestSuiteNameFromCookie( $cookieName );
-       if ( !isset( $wgSeleniumTestConfigs[$testSuiteName] ) ) {
-               return;
-       }
-
-       $testIncludes = array(); // array containing all the includes needed for this test
-       $testGlobalConfigs = array(); // an array containing all the global configs needed for this test
-       $testResourceFiles = array(); // an array containing all the resource files needed for this test
-       $callback = $wgSeleniumTestConfigs[$testSuiteName];
-       call_user_func_array( $callback, array( &$testIncludes, &$testGlobalConfigs, &$testResourceFiles ) );
-
-       if ( isset( $testResourceFiles['db'] ) ) {
-               $testResourceName = getTestResourceNameFromTestSuiteName( $testSuiteName );
-               switchToTestResources( $testResourceName );
-       }
-       foreach ( $testIncludes as $includeFile ) {
-               $file = $IP . '/' . $includeFile;
-               require_once $file;
-       }
-       foreach ( $testGlobalConfigs as $key => $value ) {
-               if ( is_array( $value ) ) {
-                       $GLOBALS[$key] = array_merge( $GLOBALS[$key], $value );
-               } else {
-                       $GLOBALS[$key] = $value;
-               }
-       }
-}
-
-wfProfileOut( $fname );
-
-function getTestSuiteNameFromCookie( $cookieName ) {
-       $testSuiteName = null;
-       if ( isset( $_COOKIE[$cookieName] ) ) {
-               $testSuiteName = $_COOKIE[$cookieName];
-       }
-       return $testSuiteName;
-}
-
-function getTestResourceNameFromTestSuiteName( $testSuiteName ) {
-       $testResourceName = null;
-       if ( isset( $testSuiteName ) ) {
-               $testResourceName = $testSuiteName;
-       }
-       return $testResourceName;
-}
-
-function getTestUploadPathFromResourceName( $testResourceName ) {
-       global $IP;
-       $testUploadPath = "$IP/images/$testResourceName";
-       return $testUploadPath;
-}
-
-function setupTestResources( $testResourceName, $testSqlFile, $testImageZip ) {
-       global $wgDBname;
-
-       // Basic security. Do not allow to drop productive database.
-       if ( $testResourceName == $wgDBname ) {
-               die( 'Cannot override productive database.' );
-       }
-       if ( $testResourceName == '' ) {
-               die( 'Cannot identify a test the resources should be installed for.' );
-       }
-
-       // create tables
-       $dbw = wfGetDB( DB_MASTER );
-       $dbw->query( 'DROP DATABASE IF EXISTS ' . $testResourceName );
-       $dbw->query( 'CREATE DATABASE ' . $testResourceName );
-
-       // do not set the new DB name before database is setup
-       $wgDBname = $testResourceName;
-       $dbw->selectDB( $testResourceName );
-       // populate from SQL file
-       if ( $testSqlFile ) {
-               $dbw->sourceFile( $testSqlFile );
-       }
-
-       // create test image dir
-       $testUploadPath = getTestUploadPathFromResourceName( $testResourceName );
-       if ( !file_exists( $testUploadPath ) ) {
-               mkdir( $testUploadPath );
-       }
-
-       if ( $testImageZip ) {
-               $zip = new ZipArchive();
-               $zip->open( $testImageZip );
-               $zip->extractTo( $testUploadPath );
-               $zip->close();
-       }
-}
-
-function teardownTestResources( $testResourceName ) {
-       // remove test database
-       $dbw = wfGetDB( DB_MASTER );
-       $dbw->query( 'DROP DATABASE IF EXISTS ' . $testResourceName );
-
-       $testUploadPath = getTestUploadPathFromResourceName( $testResourceName );
-       // remove test image dir
-       if ( file_exists( $testUploadPath ) ) {
-               wfRecursiveRemoveDir( $testUploadPath );
-       }
-}
-
-function switchToTestResources( $testResourceName, $switchDB = true ) {
-       global $wgDBuser, $wgDBpassword, $wgDBname;
-       global $wgDBtestuser, $wgDBtestpassword;
-       global $wgUploadPath;
-
-       if ( $switchDB ) {
-               $wgDBname = $testResourceName;
-       }
-       $wgDBuser = $wgDBtestuser;
-       $wgDBpassword = $wgDBtestpassword;
-
-       $testUploadPath = getTestUploadPathFromResourceName( $testResourceName );
-       $wgUploadPath = $testUploadPath;
-}
index d8c9180..028758f 100644 (file)
@@ -293,6 +293,13 @@ if ( $wgMetaNamespace === false ) {
        $wgMetaNamespace = str_replace( ' ', '_', $wgSitename );
 }
 
+
+// Default value is either the suhosin limit or -1 for unlimited
+if ( $wgResourceLoaderMaxQueryLength === false ) {
+       $maxValueLength = ini_get( 'suhosin.get.max_value_length' );
+       $wgResourceLoaderMaxQueryLength = $maxValueLength > 0 ? $maxValueLength : -1;
+}
+
 /**
  * Definitions of the NS_ constants are in Defines.php
  * @private
index 53003c6..de9c9dc 100644 (file)
@@ -1583,31 +1583,12 @@ abstract class Skin extends ContextSource {
                        array( 'noclasses', 'known' )
                );
 
-               # Run the old hook.  This takes up half of the function . . . hopefully
-               # we can rid of it someday.
-               $attribs = '';
-               if ( $tooltip ) {
-                       $attribs = wfMessage( 'editsectionhint' )->rawParams( $tooltip )
-                               ->inLanguage( $lang )->escaped();
-                       $attribs = " title=\"$attribs\"";
-               }
-               $result = null;
-               wfRunHooks( 'EditSectionLink', array( &$this, $nt, $section, $attribs, $link, &$result, $lang ) );
-               if ( !is_null( $result ) ) {
-                       # For reverse compatibility, add the brackets *after* the hook is
-                       # run, and even add them to hook-provided text.  (This is the main
-                       # reason that the EditSectionLink hook is deprecated in favor of
-                       # DoEditSectionLink: it can't change the brackets or the span.)
-                       $result = wfMessage( 'editsection-brackets' )->rawParams( $result )
-                               ->inLanguage( $lang )->escaped();
-                       return "<span class=\"mw-editsection\">$result</span>";
-               }
-
-               # Add the brackets and the span, and *then* run the nice new hook, with
-               # clean and non-redundant arguments.
-               $result = wfMessage( 'editsection-brackets' )->rawParams( $link )
-                       ->inLanguage( $lang )->escaped();
-               $result = "<span class=\"mw-editsection\">$result</span>";
+               # Add the brackets and the span and run the hook.
+               $result = '<span class="mw-editsection">'
+                       . '<span class="mw-editsection-bracket">[</span>'
+                       . $link
+                       . '<span class="mw-editsection-bracket">]</span>'
+                       . '</span>';
 
                wfRunHooks( 'DoEditSectionLink', array( $this, $nt, $section, $tooltip, &$result, $lang ) );
                return $result;
index fa90954..a2ffb8e 100644 (file)
@@ -156,8 +156,8 @@ class SkinTemplate extends Skin {
                                                'text' => $ilLangName,
                                                'title' => $languageLinkTitle->getText(),
                                                'class' => $class,
-                                               'lang' => $ilInterwikiCode,
-                                               'hreflang' => $ilInterwikiCode
+                                               'lang' => wfBCP47( $ilInterwikiCode ),
+                                               'hreflang' => wfBCP47( $ilInterwikiCode ),
                                        );
                                }
                        }
@@ -165,39 +165,14 @@ class SkinTemplate extends Skin {
                return $language_urls;
        }
 
-       /**
-        * initialize various variables and generate the template
-        *
-        * @param $out OutputPage
-        */
-       function outputPage( OutputPage $out = null ) {
-               global $wgContLang;
-               global $wgScript, $wgStylePath;
-               global $wgMimeType, $wgJsMimeType;
-               global $wgXhtmlNamespaces, $wgHtml5Version;
-               global $wgDisableCounters, $wgSitename, $wgLogo;
-               global $wgMaxCredits, $wgShowCreditsIfMax;
-               global $wgPageShowWatchingUsers;
-               global $wgArticlePath, $wgScriptPath, $wgServer;
-
+       protected function setupTemplateForOutput() {
                wfProfileIn( __METHOD__ );
-               Profiler::instance()->setTemplated( true );
-
-               $oldContext = null;
-               if ( $out !== null ) {
-                       // @todo Add wfDeprecated in 1.20
-                       $oldContext = $this->getContext();
-                       $this->setContext( $out->getContext() );
-               }
 
-               $out = $this->getOutput();
                $request = $this->getRequest();
                $user = $this->getUser();
                $title = $this->getTitle();
 
                wfProfileIn( __METHOD__ . '-init' );
-               $this->initPage( $out );
-
                $tpl = $this->setupTemplate( $this->template, 'skins' );
                wfProfileOut( __METHOD__ . '-init' );
 
@@ -226,6 +201,47 @@ class SkinTemplate extends Skin {
 
                wfProfileOut( __METHOD__ . '-stuff' );
 
+               wfProfileOut( __METHOD__ );
+
+               return $tpl;
+       }
+
+       /**
+        * initialize various variables and generate the template
+        *
+        * @param $out OutputPage
+        */
+       function outputPage( OutputPage $out = null ) {
+               global $wgContLang;
+               global $wgScript, $wgStylePath;
+               global $wgMimeType, $wgJsMimeType;
+               global $wgXhtmlNamespaces, $wgHtml5Version;
+               global $wgDisableCounters, $wgSitename, $wgLogo;
+               global $wgMaxCredits, $wgShowCreditsIfMax;
+               global $wgPageShowWatchingUsers;
+               global $wgArticlePath, $wgScriptPath, $wgServer;
+
+               wfProfileIn( __METHOD__ );
+               Profiler::instance()->setTemplated( true );
+
+               $oldContext = null;
+               if ( $out !== null ) {
+                       // @todo Add wfDeprecated in 1.20
+                       $oldContext = $this->getContext();
+                       $this->setContext( $out->getContext() );
+               }
+
+               $out = $this->getOutput();
+               $request = $this->getRequest();
+               $user = $this->getUser();
+               $title = $this->getTitle();
+
+               wfProfileIn( __METHOD__ . '-init' );
+               $this->initPage( $out );
+               wfProfileOut( __METHOD__ . '-init' );
+
+               $tpl = $this->setupTemplateForOutput();
+
                wfProfileIn( __METHOD__ . '-stuff-head' );
                if ( !$this->useHeadElement ) {
                        $tpl->set( 'pagecss', false );
@@ -515,6 +531,20 @@ class SkinTemplate extends Skin {
                wfProfileOut( __METHOD__ );
        }
 
+       /**
+        * Get the HTML for the p-personal list
+        * @return string
+        */
+       public function getPersonalToolsList() {
+               $tpl = $this->setupTemplateForOutput();
+               $tpl->set( 'personal_urls', $this->buildPersonalUrls() );
+               $html = '';
+               foreach ( $tpl->getPersonalTools() as $key => $item ) {
+                       $html .= $tpl->makeListItem( $key, $item );
+               }
+               return $html;
+       }
+
        /**
         * Format language name for use in sidebar interlanguage links list.
         * By default it is capitalized.
@@ -613,12 +643,15 @@ class SkinTemplate extends Skin {
                                'href' => $href,
                                'active' => ( $href == $pageurl )
                        );
-                       $href = self::makeSpecialUrl( 'Watchlist' );
-                       $personal_urls['watchlist'] = array(
-                               'text' => $this->msg( 'mywatchlist' )->text(),
-                               'href' => $href,
-                               'active' => ( $href == $pageurl )
-                       );
+
+                       if ( $this->getUser()->isAllowed( 'viewmywatchlist' ) ) {
+                               $href = self::makeSpecialUrl( 'Watchlist' );
+                               $personal_urls['watchlist'] = array(
+                                       'text' => $this->msg( 'mywatchlist' )->text(),
+                                       'href' => $href,
+                                       'active' => ( $href == $pageurl )
+                               );
+                       }
 
                        # We need to do an explicit check for Special:Contributions, as we
                        # have to match both the title, and the target, which could come
@@ -992,7 +1025,7 @@ class SkinTemplate extends Skin {
                                wfProfileOut( __METHOD__ . '-live' );
 
                                // Checks if the user is logged in
-                               if ( $this->loggedin ) {
+                               if ( $this->loggedin && $user->isAllowedAll( 'viewmywatchlist', 'editmywatchlist' ) ) {
                                        /**
                                         * The following actions use messages which, if made particular to
                                         * the any specific skins, would break the Ajax code which makes this
@@ -1040,8 +1073,8 @@ class SkinTemplate extends Skin {
                                                        'class' => ( $code == $preferred ) ? 'selected' : false,
                                                        'text' => $varname,
                                                        'href' => $title->getLocalURL( array( 'variant' => $code ) + $params ),
-                                                       'lang' => $code,
-                                                       'hreflang' => $code
+                                                       'lang' => wfBCP47( $code ),
+                                                       'hreflang' => wfBCP47( $code ),
                                                );
                                        }
                                }
@@ -1187,15 +1220,15 @@ class SkinTemplate extends Skin {
 
                // A print stylesheet is attached to all pages, but nobody ever
                // figures that out. :)  Add a link...
-               if ( $out->isArticle() ) {
-                       if ( !$out->isPrintable() ) {
-                               $nav_urls['print'] = array(
-                                       'text' => $this->msg( 'printableversion' )->text(),
-                                       'href' => $this->getTitle()->getLocalURL(
-                                               $request->appendQueryValue( 'printable', 'yes', true ) )
-                               );
-                       }
+               if ( !$out->isPrintable() && ( $out->isArticle() || $this->getTitle()->isSpecialPage() ) ) {
+                       $nav_urls['print'] = array(
+                               'text' => $this->msg( 'printableversion' )->text(),
+                               'href' => $this->getTitle()->getLocalURL(
+                                       $request->appendQueryValue( 'printable', 'yes', true ) )
+                       );
+               }
 
+               if ( $out->isArticle() ) {
                        // Also add a "permalink" while we're at it
                        $revid = $this->getRevisionId();
                        if ( $revid ) {
@@ -1302,6 +1335,21 @@ abstract class QuickTemplate {
                $this->data[$name] = $value;
        }
 
+       /**
+        * Gets the template data requested
+        * @since 1.22
+        * @param string $name Key for the data
+        * @param mixed $default Optional default (or null)
+        * @return mixed The value of the data requested or the deafult
+        */
+       public function get( $name, $default = null ) {
+               if ( isset( $this->data[$name] ) ) {
+                       return $this->data[$name];
+               } else {
+                       return $default;
+               }
+       }
+
        /**
         * @param $name
         * @param $value
@@ -1504,7 +1552,7 @@ abstract class BaseTemplate extends QuickTemplate {
         */
        function getPersonalTools() {
                $personal_tools = array();
-               foreach ( $this->data['personal_urls'] as $key => $plink ) {
+               foreach ( $this->get( 'personal_urls' ) as $key => $plink ) {
                        # The class on a personal_urls item is meant to go on the <a> instead
                        # of the <li> so we have to use a single item "links" array instead
                        # of using most of the personal_url's keys directly.
@@ -1821,7 +1869,7 @@ abstract class BaseTemplate extends QuickTemplate {
                        'type' => 'search',
                        'name' => 'search',
                        'placeholder' => wfMessage( 'searchsuggest-search' )->text(),
-                       'value' => isset( $this->data['search'] ) ? $this->data['search'] : '',
+                       'value' => $this->get( 'search', '' ),
                );
                $realAttrs = array_merge( $realAttrs, Linker::tooltipAndAccesskeyAttribs( 'search' ), $attrs );
                return Html::element( 'input', $realAttrs );
@@ -1880,7 +1928,7 @@ abstract class BaseTemplate extends QuickTemplate {
         * @return array|mixed
         */
        function getFooterLinks( $option = null ) {
-               $footerlinks = $this->data['footerlinks'];
+               $footerlinks = $this->get( 'footerlinks' );
 
                // Reduce footer links down to only those which are being used
                $validFooterLinks = array();
@@ -1920,7 +1968,7 @@ abstract class BaseTemplate extends QuickTemplate {
         */
        function getFooterIcons( $option = null ) {
                // Generate additional footer icons
-               $footericons = $this->data['footericons'];
+               $footericons = $this->get( 'footericons' );
 
                if ( $option == 'icononly' ) {
                        // Unset any icons which don't have an image
index ac838a5..ad9618f 100644 (file)
@@ -553,8 +553,8 @@ class SpecialPage {
         *   pages?
         */
        public function isRestricted() {
-               // DWIM: If all anons can do something, then it is not restricted
-               return $this->mRestriction != '' && !User::groupHasPermission( '*', $this->mRestriction );
+               // DWIM: If everyone can do something, then it is not restricted
+               return $this->mRestriction != '' && !User::isEveryoneAllowed( $this->mRestriction );
        }
 
        /**
index 4d63553..02bd9e8 100644 (file)
@@ -94,6 +94,7 @@ class SpecialPageFactory {
                'PasswordReset'             => 'SpecialPasswordReset',
                'DeletedContributions'      => 'DeletedContributionsPage',
                'Preferences'               => 'SpecialPreferences',
+               'ResetTokens'               => 'SpecialResetTokens',
                'Contributions'             => 'SpecialContributions',
                'Listgrouprights'           => 'SpecialListGroupRights',
                'Listusers'                 => 'SpecialListUsers',
index 5296122..94ff2f8 100644 (file)
@@ -114,7 +114,7 @@ class MWTimestamp {
                        # asctime
                        $strtime = $ts;
                } else {
-                       throw new TimestampException( __METHOD__ . " : Invalid timestamp - $ts" );
+                       throw new TimestampException( __METHOD__ . ": Invalid timestamp - $ts" );
                }
 
                if ( !$strtime ) {
@@ -126,11 +126,11 @@ class MWTimestamp {
                try {
                        $final = new DateTime( $strtime, new DateTimeZone( 'GMT' ) );
                } catch ( Exception $e ) {
-                       throw new TimestampException( __METHOD__ . ' Invalid timestamp format.' );
+                       throw new TimestampException( __METHOD__ . ': Invalid timestamp format.', $e->getCode(), $e );
                }
 
                if ( $final === false ) {
-                       throw new TimestampException( __METHOD__ . ' Invalid timestamp format.' );
+                       throw new TimestampException( __METHOD__ . ': Invalid timestamp format.' );
                }
                $this->timestamp = $final;
        }
@@ -149,7 +149,7 @@ class MWTimestamp {
         */
        public function getTimestamp( $style = TS_UNIX ) {
                if ( !isset( self::$formats[$style] ) ) {
-                       throw new TimestampException( __METHOD__ . ' : Illegal timestamp output type.' );
+                       throw new TimestampException( __METHOD__ . ': Illegal timestamp output type.' );
                }
 
                $output = $this->timestamp->format( self::$formats[$style] );
@@ -289,6 +289,67 @@ class MWTimestamp {
        public function diff( MWTimestamp $relativeTo ) {
                return $this->timestamp->diff( $relativeTo->timestamp );
        }
+
+       /**
+        * Set the timezone of this timestamp to the specified timezone.
+        *
+        * @since 1.22
+        * @param String $timezone Timezone to set
+        * @throws TimestampException
+        */
+       public function setTimezone( $timezone ) {
+               try {
+                       $this->timestamp->setTimezone( new DateTimeZone( $timezone ) );
+               } catch ( Exception $e ) {
+                       throw new TimestampException( __METHOD__ . ': Invalid timezone.', $e->getCode(), $e );
+               }
+       }
+
+       /**
+        * Get the timezone of this timestamp.
+        *
+        * @since 1.22
+        * @return DateTimeZone The timezone
+        */
+       public function getTimezone() {
+               return $this->timestamp->getTimezone();
+       }
+
+       /**
+        * Format the timestamp in a given format.
+        *
+        * @since 1.22
+        * @param string $format Pattern to format in
+        * @return string The formatted timestamp
+        */
+       public function format( $format ) {
+               return $this->timestamp->format( $format );
+       }
+
+       /**
+        * Get a timestamp instance in the server local timezone ($wgLocaltimezone)
+        *
+        * @since 1.22
+        * @param bool|string $ts Timestamp to set, or false for current time
+        * @return MWTimestamp the local instance
+        */
+       public static function getLocalInstance( $ts = false ) {
+               global $wgLocaltimezone;
+               $timestamp = new self( $ts );
+               $timestamp->setTimezone( $wgLocaltimezone );
+               return $timestamp;
+       }
+
+       /**
+        * Get a timestamp instance in GMT
+        *
+        * @since 1.22
+        * @param bool|string $ts Timestamp to set, or false for current time
+        * @return MWTimestamp the instance
+        */
+       public static function getInstance( $ts = false ) {
+               return new self( $ts );
+       }
 }
 
 /**
index 66a6ce5..7818742 100644 (file)
@@ -1739,6 +1739,10 @@ class Title {
         * @return Array list of errors
         */
        private function checkQuickPermissions( $action, $user, $errors, $doExpensiveQueries, $short ) {
+               if ( !wfRunHooks( 'TitleQuickPermissions', array( $this, $user, $action, &$errors, $doExpensiveQueries, $short ) ) ) {
+                       return $errors;
+               }
+
                if ( $action == 'create' ) {
                        if (
                                ( $this->isTalkPage() && !$user->isAllowed( 'createtalk' ) ) ||
@@ -1887,12 +1891,19 @@ class Title {
                # Protect css/js subpages of user pages
                # XXX: this might be better using restrictions
                # XXX: right 'editusercssjs' is deprecated, for backward compatibility only
-               if ( $action != 'patrol' && !$user->isAllowed( 'editusercssjs' )
-                               && !preg_match( '/^' . preg_quote( $user->getName(), '/' ) . '\//', $this->mTextform ) ) {
-                       if ( $this->isCssSubpage() && !$user->isAllowed( 'editusercss' ) ) {
-                               $errors[] = array( 'customcssprotected' );
-                       } elseif ( $this->isJsSubpage() && !$user->isAllowed( 'edituserjs' ) ) {
-                               $errors[] = array( 'customjsprotected' );
+               if ( $action != 'patrol' && !$user->isAllowed( 'editusercssjs' ) ) {
+                       if ( preg_match( '/^' . preg_quote( $user->getName(), '/' ) . '\//', $this->mTextform ) ) {
+                               if ( $this->isCssSubpage() && !$user->isAllowedAny( 'editmyusercss', 'editusercss' ) ) {
+                                       $errors[] = array( 'mycustomcssprotected' );
+                               } elseif ( $this->isJsSubpage() && !$user->isAllowedAny( 'editmyuserjs', 'edituserjs' ) ) {
+                                       $errors[] = array( 'mycustomjsprotected' );
+                               }
+                       } else {
+                               if ( $this->isCssSubpage() && !$user->isAllowed( 'editusercss' ) ) {
+                                       $errors[] = array( 'customcssprotected' );
+                               } elseif ( $this->isJsSubpage() && !$user->isAllowed( 'edituserjs' ) ) {
+                                       $errors[] = array( 'customjsprotected' );
+                               }
                        }
                }
 
@@ -1914,18 +1925,21 @@ class Title {
         */
        private function checkPageRestrictions( $action, $user, $errors, $doExpensiveQueries, $short ) {
                foreach ( $this->getRestrictions( $action ) as $right ) {
-                       // Backwards compatibility, rewrite sysop -> protect
+                       // Backwards compatibility, rewrite sysop -> editprotected
                        if ( $right == 'sysop' ) {
-                               $right = 'protect';
+                               $right = 'editprotected';
                        }
-                       if ( $right != '' && !$user->isAllowed( $right ) ) {
-                               // Users with 'editprotected' permission can edit protected pages
-                               // without cascading option turned on.
-                               if ( $action != 'edit' || !$user->isAllowed( 'editprotected' )
-                                       || $this->mCascadeRestriction )
-                               {
-                                       $errors[] = array( 'protectedpagetext', $right );
-                               }
+                       // Backwards compatibility, rewrite autoconfirmed -> editsemiprotected
+                       if ( $right == 'autoconfirmed' ) {
+                               $right = 'editsemiprotected';
+                       }
+                       if ( $right == '' ) {
+                               continue;
+                       }
+                       if ( !$user->isAllowed( $right ) ) {
+                               $errors[] = array( 'protectedpagetext', $right );
+                       } elseif ( $this->mCascadeRestriction && !$user->isAllowed( 'protect' ) ) {
+                               $errors[] = array( 'protectedpagetext', 'protect' );
                        }
                }
 
@@ -1957,8 +1971,15 @@ class Title {
                        # This is only for protection restrictions, not for all actions
                        if ( isset( $restrictions[$action] ) ) {
                                foreach ( $restrictions[$action] as $right ) {
-                                       $right = ( $right == 'sysop' ) ? 'protect' : $right;
-                                       if ( $right != '' && !$user->isAllowed( $right ) ) {
+                                       // Backwards compatibility, rewrite sysop -> editprotected
+                                       if ( $right == 'sysop' ) {
+                                               $right = 'editprotected';
+                                       }
+                                       // Backwards compatibility, rewrite autoconfirmed -> editsemiprotected
+                                       if ( $right == 'autoconfirmed' ) {
+                                               $right = 'editsemiprotected';
+                                       }
+                                       if ( $right != '' && !$user->isAllowedAll( 'protect', $right ) ) {
                                                $pages = '';
                                                foreach ( $cascadingSources as $page ) {
                                                        $pages .= '* [[:' . $page->getPrefixedText() . "]]\n";
@@ -1995,7 +2016,10 @@ class Title {
                        $title_protection = $this->getTitleProtection();
                        if ( $title_protection ) {
                                if ( $title_protection['pt_create_perm'] == 'sysop' ) {
-                                       $title_protection['pt_create_perm'] = 'protect'; // B/C
+                                       $title_protection['pt_create_perm'] = 'editprotected'; // B/C
+                               }
+                               if ( $title_protection['pt_create_perm'] == 'autoconfirmed' ) {
+                                       $title_protection['pt_create_perm'] = 'editsemiprotected'; // B/C
                                }
                                if ( $title_protection['pt_create_perm'] == '' ||
                                        !$user->isAllowed( $title_protection['pt_create_perm'] ) )
@@ -2075,34 +2099,10 @@ class Title {
         * @return Array list of errors
         */
        private function checkReadPermissions( $action, $user, $errors, $doExpensiveQueries, $short ) {
-               global $wgWhitelistRead, $wgWhitelistReadRegexp, $wgRevokePermissions;
-               static $useShortcut = null;
-
-               # Initialize the $useShortcut boolean, to determine if we can skip quite a bit of code below
-               if ( is_null( $useShortcut ) ) {
-                       $useShortcut = true;
-                       if ( !User::groupHasPermission( '*', 'read' ) ) {
-                               # Not a public wiki, so no shortcut
-                               $useShortcut = false;
-                       } elseif ( !empty( $wgRevokePermissions ) ) {
-                               /**
-                                * Iterate through each group with permissions being revoked (key not included since we don't care
-                                * what the group name is), then check if the read permission is being revoked. If it is, then
-                                * we don't use the shortcut below since the user might not be able to read, even though anon
-                                * reading is allowed.
-                                */
-                               foreach ( $wgRevokePermissions as $perms ) {
-                                       if ( !empty( $perms['read'] ) ) {
-                                               # We might be removing the read right from the user, so no shortcut
-                                               $useShortcut = false;
-                                               break;
-                                       }
-                               }
-                       }
-               }
+               global $wgWhitelistRead, $wgWhitelistReadRegexp;
 
                $whitelisted = false;
-               if ( $useShortcut ) {
+               if ( User::isEveryoneAllowed( 'read' ) ) {
                        # Shortcut for public wikis, allows skipping quite a bit of code
                        $whitelisted = true;
                } elseif ( $user->isAllowed( 'read' ) ) {
@@ -2238,36 +2238,6 @@ class Title {
                return $errors;
        }
 
-       /**
-        * Protect css subpages of user pages: can $wgUser edit
-        * this page?
-        *
-        * @deprecated in 1.19; use getUserPermissionsErrors() instead.
-        * @return Bool
-        */
-       public function userCanEditCssSubpage() {
-               global $wgUser;
-               wfDeprecated( __METHOD__, '1.19' );
-               return ( ( $wgUser->isAllowedAll( 'editusercssjs', 'editusercss' ) )
-                       || preg_match( '/^' . preg_quote( $wgUser->getName(), '/' ) . '\//', $this->mTextform ) );
-       }
-
-       /**
-        * Protect js subpages of user pages: can $wgUser edit
-        * this page?
-        *
-        * @deprecated in 1.19; use getUserPermissionsErrors() instead.
-        * @return Bool
-        */
-       public function userCanEditJsSubpage() {
-               global $wgUser;
-               wfDeprecated( __METHOD__, '1.19' );
-               return (
-                       ( $wgUser->isAllowedAll( 'editusercssjs', 'edituserjs' ) )
-                       || preg_match( '/^' . preg_quote( $wgUser->getName(), '/' ) . '\//', $this->mTextform )
-               );
-       }
-
        /**
         * Get a filtered list of all restriction types supported by this wiki.
         * @param bool $exists True to get all restriction types that apply to
@@ -2395,7 +2365,9 @@ class Title {
                        $restrictions = $this->getRestrictions( $action );
                        if ( count( $restrictions ) > 0 ) {
                                foreach ( $restrictions as $restriction ) {
-                                       if ( strtolower( $restriction ) != 'autoconfirmed' ) {
+                                       if ( strtolower( $restriction ) != 'editsemiprotected' &&
+                                               strtolower( $restriction ) != 'autoconfirmed' // BC
+                                       ) {
                                                return false;
                                        }
                                }
@@ -2941,11 +2913,13 @@ class Title {
                $linkCache = LinkCache::singleton();
                $cached = $linkCache->getGoodLinkFieldObj( $this, 'redirect' );
                if ( $cached === null ) {
-                       // TODO: check the assumption that the cache actually knows about this title
-                       // and handle this, such as get the title from the database.
-                       // See https://bugzilla.wikimedia.org/show_bug.cgi?id=37209
-                       wfDebug( "LinkCache doesn't currently know about this title: " . $this->getPrefixedDBkey() );
-                       wfDebug( wfBacktrace() );
+                       # Trust LinkCache's state over our own
+                       # LinkCache is telling us that the page doesn't exist, despite there being cached
+                       # data relating to an existing page in $this->mArticleID. Updaters should clear
+                       # LinkCache as appropriate, or use $flags = Title::GAID_FOR_UPDATE. If that flag is
+                       # set, then LinkCache will definitely be up to date here, since getArticleID() forces
+                       # LinkCache to refresh its data from the master.
+                       return $this->mRedirect = false;
                }
 
                $this->mRedirect = (bool)$cached;
@@ -2970,11 +2944,9 @@ class Title {
                }
                $linkCache = LinkCache::singleton();
                $cached = $linkCache->getGoodLinkFieldObj( $this, 'length' );
-               if ( $cached === null ) { # check the assumption that the cache actually knows about this title
-                       # XXX: this does apparently happen, see https://bugzilla.wikimedia.org/show_bug.cgi?id=37209
-                       #      as a stop gap, perhaps log this, but don't throw an exception?
-                       wfDebug( "LinkCache doesn't currently know about this title: " . $this->getPrefixedDBkey() );
-                       wfDebug( wfBacktrace() );
+               if ( $cached === null ) {
+                       # Trust LinkCache's state over our own, as for isRedirect()
+                       return $this->mLength = 0;
                }
 
                $this->mLength = intval( $cached );
@@ -2986,7 +2958,6 @@ class Title {
         * What is the page_latest field for this page?
         *
         * @param int $flags a bit field; may be Title::GAID_FOR_UPDATE to select for update
-        * @throws MWException
         * @return Int or 0 if the page doesn't exist
         */
        public function getLatestRevID( $flags = 0 ) {
@@ -3000,10 +2971,9 @@ class Title {
                $linkCache = LinkCache::singleton();
                $linkCache->addLinkObj( $this );
                $cached = $linkCache->getGoodLinkFieldObj( $this, 'revision' );
-               if ( $cached === null ) { # check the assumption that the cache actually knows about this title
-                       # XXX: this does apparently happen, see https://bugzilla.wikimedia.org/show_bug.cgi?id=37209
-                       #      as a stop gap, perhaps log this, but don't throw an exception?
-                       throw new MWException( "LinkCache doesn't currently know about this title: " . $this->getPrefixedDBkey() );
+               if ( $cached === null ) {
+                       # Trust LinkCache's state over our own, as for isRedirect()
+                       return $this->mLatestID = 0;
                }
 
                $this->mLatestID = intval( $cached );
@@ -3569,7 +3539,13 @@ class Title {
                        }
                } else {
                        $tp = $nt->getTitleProtection();
-                       $right = ( $tp['pt_create_perm'] == 'sysop' ) ? 'protect' : $tp['pt_create_perm'];
+                       $right = $tp['pt_create_perm'];
+                       if ( $right == 'sysop' ) {
+                               $right = 'editprotected'; // B/C
+                       }
+                       if ( $right == 'autoconfirmed' ) {
+                               $right = 'editsemiprotected'; // B/C
+                       }
                        if ( $tp and !$wgUser->isAllowed( $right ) ) {
                                $errors[] = array( 'cantmove-titleprotected' );
                        }
@@ -4488,8 +4464,6 @@ class Title {
         * @return Bool true if the update succeeded
         */
        public function invalidateCache() {
-               global $wgMemc;
-
                if ( wfReadOnly() ) {
                        return false;
                }
@@ -4554,7 +4528,7 @@ class Title {
                if ( array_key_exists( $uid, $this->mNotificationTimestamp ) ) {
                        return $this->mNotificationTimestamp[$uid];
                }
-               if ( !$uid || !$wgShowUpdatedMarker ) {
+               if ( !$uid || !$wgShowUpdatedMarker || !$user->isAllowed( 'viewmywatchlist' ) ) {
                        return $this->mNotificationTimestamp[$uid] = false;
                }
                // Don't cache too much!
@@ -4777,9 +4751,10 @@ class Title {
         * they will already be wrapped in paragraphs.
         *
         * @since 1.21
+        * @param int oldid Revision ID that's being edited
         * @return Array
         */
-       public function getEditNotices() {
+       public function getEditNotices( $oldid = 0 ) {
                $notices = array();
 
                # Optional notices on a per-namespace and per-page basis
@@ -4806,6 +4781,8 @@ class Title {
                                $notices[$editnoticeText] = $editnoticeMsg->parseAsBlock();
                        }
                }
+
+               wfRunHooks( 'TitleGetEditNotices', array( $this, $oldid, &$notices ) );
                return $notices;
        }
 }
index 8c88c17..1d66503 100644 (file)
@@ -124,6 +124,12 @@ class User {
                'edit',
                'editinterface',
                'editprotected',
+               'editmyoptions',
+               'editmyprivateinfo',
+               'editmyusercss',
+               'editmyuserjs',
+               'editmywatchlist',
+               'editsemiprotected',
                'editusercssjs', #deprecated
                'editusercss',
                'edituserjs',
@@ -164,6 +170,8 @@ class User {
                'upload_by_url',
                'userrights',
                'userrights-interwiki',
+               'viewmyprivateinfo',
+               'viewmywatchlist',
                'writeapi',
        );
        /**
@@ -251,7 +259,7 @@ class User {
        }
 
        /**
-        * @return String
+        * @return string
         */
        function __toString() {
                return $this->getName();
@@ -266,7 +274,7 @@ class User {
                }
                wfProfileIn( __METHOD__ );
 
-               # Set it now to avoid infinite recursion in accessors
+               // Set it now to avoid infinite recursion in accessors
                $this->mLoadedItems = true;
 
                switch ( $this->mFrom ) {
@@ -276,7 +284,7 @@ class User {
                        case 'name':
                                $this->mId = self::idFromName( $this->mName );
                                if ( !$this->mId ) {
-                                       # Nonexistent user placeholder object
+                                       // Nonexistent user placeholder object
                                        $this->loadDefaults( $this->mName );
                                } else {
                                        $this->loadFromId();
@@ -301,7 +309,7 @@ class User {
 
        /**
         * Load user table data, given mId has already been set.
-        * @return Bool false if the ID does not exist, true otherwise
+        * @return bool false if the ID does not exist, true otherwise
         */
        public function loadFromId() {
                global $wgMemc;
@@ -310,25 +318,25 @@ class User {
                        return false;
                }
 
-               # Try cache
+               // Try cache
                $key = wfMemcKey( 'user', 'id', $this->mId );
                $data = $wgMemc->get( $key );
                if ( !is_array( $data ) || $data['mVersion'] < MW_USER_VERSION ) {
-                       # Object is expired, load from DB
+                       // Object is expired, load from DB
                        $data = false;
                }
 
                if ( !$data ) {
                        wfDebug( "User: cache miss for user {$this->mId}\n" );
-                       # Load from DB
+                       // Load from DB
                        if ( !$this->loadFromDatabase() ) {
-                               # Can't load from ID, user is anonymous
+                               // Can't load from ID, user is anonymous
                                return false;
                        }
                        $this->saveToCache();
                } else {
                        wfDebug( "User: got user {$this->mId} from cache\n" );
-                       # Restore from cache
+                       // Restore from cache
                        foreach ( self::$mCacheVars as $name ) {
                                $this->$name = $data[$name];
                        }
@@ -370,14 +378,14 @@ class User {
         * you have both an ID and a name handy.
         *
         * @param string $name Username, validated by Title::newFromText()
-        * @param string|Bool $validate Validate username. Takes the same parameters as
-        *    User::getCanonicalName(), except that true is accepted as an alias
-        *    for 'valid', for BC.
+        * @param string|bool $validate Validate username. Takes the same parameters as
+        *  User::getCanonicalName(), except that true is accepted as an alias
+        *  for 'valid', for BC.
         *
         * @return User|bool User object, or false if the username is invalid
-        *    (e.g. if it contains illegal characters or is an IP address). If the
-        *    username is not present in the database, the result will be a user object
-        *    with a name, zero user ID and default settings.
+        *  (e.g. if it contains illegal characters or is an IP address). If the
+        *  username is not present in the database, the result will be a user object
+        *  with a name, zero user ID and default settings.
         */
        public static function newFromName( $name, $validate = 'valid' ) {
                if ( $validate === true ) {
@@ -387,7 +395,7 @@ class User {
                if ( $name === false ) {
                        return false;
                } else {
-                       # Create unloaded user object
+                       // Create unloaded user object
                        $u = new User;
                        $u->mName = $name;
                        $u->mFrom = 'name';
@@ -418,7 +426,7 @@ class User {
         * If the code is invalid or has expired, returns NULL.
         *
         * @param string $code Confirmation code
-        * @return User object, or null
+        * @return User|null
         */
        public static function newFromConfirmationCode( $code ) {
                $dbr = wfGetDB( DB_SLAVE );
@@ -437,7 +445,7 @@ class User {
         * Create a new user object using data from session or cookies. If the
         * login credentials are invalid, the result is an anonymous user.
         *
-        * @param $request WebRequest object to use; $wgRequest will be used if omitted.
+        * @param WebRequest $request Object to use; $wgRequest will be used if omitted.
         * @return User object
         */
        public static function newFromSession( WebRequest $request = null ) {
@@ -472,7 +480,7 @@ class User {
        /**
         * Get the username corresponding to a given user ID
         * @param int $id User ID
-        * @return String|bool The corresponding username
+        * @return string|bool The corresponding username
         */
        public static function whoIs( $id ) {
                return UserCache::singleton()->getProp( $id, 'name' );
@@ -482,7 +490,7 @@ class User {
         * Get the real name of a user given their user ID
         *
         * @param int $id User ID
-        * @return String|bool The corresponding user's real name
+        * @return string|bool The corresponding user's real name
         */
        public static function whoIsReal( $id ) {
                return UserCache::singleton()->getProp( $id, 'real_name' );
@@ -491,12 +499,12 @@ class User {
        /**
         * Get database id given a user name
         * @param string $name Username
-        * @return Int|Null The corresponding user's ID, or null if user is nonexistent
+        * @return int|null The corresponding user's ID, or null if user is nonexistent
         */
        public static function idFromName( $name ) {
                $nt = Title::makeTitleSafe( NS_USER, $name );
                if ( is_null( $nt ) ) {
-                       # Illegal name
+                       // Illegal name
                        return null;
                }
 
@@ -542,8 +550,8 @@ class User {
         * addresses like this, if we allowed accounts like this to be created
         * new users could get the old edits of these anonymous users.
         *
-        * @param string $name to match
-        * @return Bool
+        * @param string $name Name to match
+        * @return bool
         */
        public static function isIP( $name ) {
                return preg_match( '/^\d{1,3}\.\d{1,3}\.\d{1,3}\.(?:xxx|\d{1,3})$/', $name ) || IP::isIPv6( $name );
@@ -557,8 +565,8 @@ class User {
         * is longer than the maximum allowed username size or doesn't begin with
         * a capital letter.
         *
-        * @param string $name to match
-        * @return Bool
+        * @param string $name Name to match
+        * @return bool
         */
        public static function isValidUserName( $name ) {
                global $wgContLang, $wgMaxNameChars;
@@ -611,8 +619,8 @@ class User {
         * If an account already exists in this form, login will be blocked
         * by a failure to pass this function.
         *
-        * @param string $name to match
-        * @return Bool
+        * @param string $name Name to match
+        * @return bool
         */
        public static function isUsableName( $name ) {
                global $wgReservedUsernames;
@@ -649,7 +657,7 @@ class User {
         * isValidUserName() to avoid disrupting existing accounts.
         *
         * @param string $name to match
-        * @return Bool
+        * @return bool
         */
        public static function isCreatableName( $name ) {
                global $wgInvalidUsernameCharacters;
@@ -679,7 +687,7 @@ class User {
         * Is the input a valid password for this user?
         *
         * @param string $password Desired password
-        * @return Bool
+        * @return bool
         */
        public function isValidPassword( $password ) {
                //simple boolean wrapper for getPasswordValidity
@@ -731,7 +739,7 @@ class User {
         * Does a string look like an e-mail address?
         *
         * This validates an email address using an HTML5 specification found at:
-        * http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address
+        * http://www.whatwg.org/html/states-of-the-type-attribute.html#valid-e-mail-address
         * Which as of 2011-01-24 says:
         *
         *     A valid e-mail address is a string that matches the ABNF production
@@ -751,7 +759,7 @@ class User {
         * pass validation here.
         *
         * @param string $addr E-mail address
-        * @return Bool
+        * @return bool
         * @deprecated since 1.18 call Sanitizer::isValidEmail() directly
         */
        public static function isValidEmailAddr( $addr ) {
@@ -763,7 +771,7 @@ class User {
         * Given unvalidated user input, return a canonical username, or false if
         * the username is invalid.
         * @param string $name User input
-        * @param string|Bool $validate type of validation to use:
+        * @param string|bool $validate type of validation to use:
         *                - false        No validation
         *                - 'valid'      Valid for batch processes
         *                - 'usable'     Valid for batch processes and login
@@ -773,7 +781,7 @@ class User {
         * @return bool|string
         */
        public static function getCanonicalName( $name, $validate = 'valid' ) {
-               # Force usernames to capital
+               // Force usernames to capital
                global $wgContLang;
                $name = $wgContLang->ucfirst( $name );
 
@@ -784,15 +792,15 @@ class User {
                        return false;
                }
 
-               # Clean up name according to title rules
+               // Clean up name according to title rules
                $t = ( $validate === 'valid' ) ?
                        Title::newFromText( $name ) : Title::makeTitle( NS_USER, $name );
-               # Check for invalid titles
+               // Check for invalid titles
                if ( is_null( $t ) ) {
                        return false;
                }
 
-               # Reject various classes of invalid names
+               // Reject various classes of invalid names
                global $wgAuth;
                $name = $wgAuth->getCanonicalName( $t->getText() );
 
@@ -824,7 +832,7 @@ class User {
         * Count the number of edits of a user
         *
         * @param int $uid User ID to check
-        * @return Int the user's edit count
+        * @return int The user's edit count
         *
         * @deprecated since 1.21 in favour of User::getEditCount
         */
@@ -837,7 +845,7 @@ class User {
        /**
         * Return a random password.
         *
-        * @return String new random password
+        * @return string New random password
         */
        public static function randomPassword() {
                global $wgMinimalPasswordLength;
@@ -900,7 +908,7 @@ class User {
         * @param string $all 'all' to check if the whole object has been loaded
         *        or any other string to check if only the item is available (e.g.
         *        for optimisation)
-        * @return Boolean
+        * @return boolean
         */
        public function isItemLoaded( $item, $all = 'all' ) {
                return ( $this->mLoadedItems === true && $all === 'all' ) ||
@@ -910,7 +918,7 @@ class User {
        /**
         * Set that an item has been loaded
         *
-        * @param $item String
+        * @param string $item
         */
        protected function setItemLoaded( $item ) {
                if ( is_array( $this->mLoadedItems ) ) {
@@ -920,7 +928,7 @@ class User {
 
        /**
         * Load user data from the session or login cookie.
-        * @return Bool True if the user is logged in, false otherwise.
+        * @return bool True if the user is logged in, false otherwise.
         */
        private function loadFromSession() {
                $result = null;
@@ -959,13 +967,13 @@ class User {
 
                $proposedUser = User::newFromId( $sId );
                if ( !$proposedUser->isLoggedIn() ) {
-                       # Not a valid ID
+                       // Not a valid ID
                        return false;
                }
 
                global $wgBlockDisablesLogin;
                if ( $wgBlockDisablesLogin && $proposedUser->isBlocked() ) {
-                       # User blocked and we've disabled blocked user logins
+                       // User blocked and we've disabled blocked user logins
                        return false;
                }
 
@@ -979,7 +987,7 @@ class User {
                        $passwordCorrect = ( strlen( $token ) && $token === $request->getCookie( 'Token' ) );
                        $from = 'cookie';
                } else {
-                       # No session or persistent login cookie
+                       // No session or persistent login cookie
                        return false;
                }
 
@@ -989,7 +997,7 @@ class User {
                        wfDebug( "User: logged in from $from\n" );
                        return true;
                } else {
-                       # Invalid credentials
+                       // Invalid credentials
                        wfDebug( "User: can't log in from $from, invalid credentials\n" );
                        return false;
                }
@@ -999,13 +1007,13 @@ class User {
         * Load user and user_group data from the database.
         * $this->mId must be set, this is how the user is identified.
         *
-        * @return Bool True if the user exists, false if the user is anonymous
+        * @return bool True if the user exists, false if the user is anonymous
         */
        public function loadFromDatabase() {
-               # Paranoia
+               // Paranoia
                $this->mId = intval( $this->mId );
 
-               /** Anonymous user */
+               // Anonymous user
                if ( !$this->mId ) {
                        $this->loadDefaults();
                        return false;
@@ -1017,13 +1025,13 @@ class User {
                wfRunHooks( 'UserLoadFromDatabase', array( $this, &$s ) );
 
                if ( $s !== false ) {
-                       # Initialise user table data
+                       // Initialise user table data
                        $this->loadFromRow( $s );
                        $this->mGroups = null; // deferred
                        $this->getEditCount(); // revalidation for nulls
                        return true;
                } else {
-                       # Invalid user_id
+                       // Invalid user_id
                        $this->mId = 0;
                        $this->loadDefaults();
                        return false;
@@ -1154,16 +1162,20 @@ class User {
         * @see $wgAutopromoteOnce
         */
        public function addAutopromoteOnceGroups( $event ) {
-               global $wgAutopromoteOnceLogInRC;
+               global $wgAutopromoteOnceLogInRC, $wgAuth;
 
                $toPromote = array();
                if ( $this->getId() ) {
                        $toPromote = Autopromote::getAutopromoteOnceGroups( $this, $event );
                        if ( count( $toPromote ) ) {
                                $oldGroups = $this->getGroups(); // previous groups
+
                                foreach ( $toPromote as $group ) {
                                        $this->addGroup( $group );
                                }
+                               // update groups in external authentication database
+                               $wgAuth->updateExternalDBGroups( $this, $toPromote );
+
                                $newGroups = array_merge( $oldGroups, $toPromote ); // all groups
 
                                $logEntry = new ManualLogEntry( 'rights', 'autopromote' );
@@ -1186,7 +1198,7 @@ class User {
         * Clear various cached data stored in this object. The cache of the user table
         * data (i.e. self::$mCacheVars) is not cleared unless $reloadFrom is given.
         *
-        * @param bool|String $reloadFrom Reload user and user_groups table data from a
+        * @param bool|string $reloadFrom Reload user and user_groups table data from a
         *   given source. May be "name", "id", "defaults", "session", or false for
         *   no reload.
         */
@@ -1227,7 +1239,7 @@ class User {
                }
 
                $defOpt = $wgDefaultUserOptions;
-               # default language setting
+               // Default language setting
                $defOpt['language'] = $defOpt['variant'] = $wgContLang->getCode();
                foreach ( SearchEngine::searchableNamespaces() as $nsnum => $nsname ) {
                        $defOpt['searchNs' . $nsnum] = !empty( $wgNamespacesToBeSearchedDefault[$nsnum] );
@@ -1243,7 +1255,7 @@ class User {
         * Get a given default option value.
         *
         * @param string $opt Name of option to retrieve
-        * @return String Default option value
+        * @return string Default option value
         */
        public static function getDefaultOption( $opt ) {
                $defOpts = self::getDefaultOptions();
@@ -1287,14 +1299,14 @@ class User {
                        $ip = null;
                }
 
-               # User/IP blocking
+               // User/IP blocking
                $block = Block::newFromTarget( $this, $ip, !$bFromSlave );
 
-               # Proxy blocking
+               // Proxy blocking
                if ( !$block instanceof Block && $ip !== null && !$this->isAllowed( 'proxyunbannable' )
                        && !in_array( $ip, $wgProxyWhitelist ) )
                {
-                       # Local list
+                       // Local list
                        if ( self::isLocallyBlockedProxy( $ip ) ) {
                                $block = new Block;
                                $block->setBlocker( wfMessage( 'proxyblocker' )->text() );
@@ -1308,7 +1320,7 @@ class User {
                        }
                }
 
-               # (bug 23343) Apply IP blocks to the contents of XFF headers, if enabled
+               // (bug 23343) Apply IP blocks to the contents of XFF headers, if enabled
                if ( !$block instanceof Block
                        && $wgApplyIpBlocksToXff
                        && $ip !== null
@@ -1351,7 +1363,7 @@ class User {
         *
         * @param string $ip IP to check
         * @param bool $checkWhitelist whether to check the whitelist first
-        * @return Bool True if blacklisted.
+        * @return bool True if blacklisted.
         */
        public function isDnsBlacklisted( $ip, $checkWhitelist = false ) {
                global $wgEnableSorbs, $wgEnableDnsBlacklist,
@@ -1374,7 +1386,7 @@ class User {
         *
         * @param string $ip IP to check
         * @param string|array $bases of Strings: URL of the DNS blacklist
-        * @return Bool True if blacklisted.
+        * @return bool True if blacklisted.
         */
        public function inDnsBlacklist( $ip, $bases ) {
                wfProfileIn( __METHOD__ );
@@ -1382,15 +1394,15 @@ class User {
                $found = false;
                // @todo FIXME: IPv6 ???  (http://bugs.php.net/bug.php?id=33170)
                if ( IP::isIPv4( $ip ) ) {
-                       # Reverse IP, bug 21255
+                       // Reverse IP, bug 21255
                        $ipReversed = implode( '.', array_reverse( explode( '.', $ip ) ) );
 
                        foreach ( (array)$bases as $base ) {
-                               # Make hostname
-                               # If we have an access key, use that too (ProjectHoneypot, etc.)
+                               // Make hostname
+                               // If we have an access key, use that too (ProjectHoneypot, etc.)
                                if ( is_array( $base ) ) {
                                        if ( count( $base ) >= 2 ) {
-                                               # Access key is 1, base URL is 0
+                                               // Access key is 1, base URL is 0
                                                $host = "{$base[1]}.$ipReversed.{$base[0]}";
                                        } else {
                                                $host = "$ipReversed.{$base[0]}";
@@ -1399,7 +1411,7 @@ class User {
                                        $host = "$ipReversed.$base";
                                }
 
-                               # Send query
+                               // Send query
                                $ipList = gethostbynamel( $host );
 
                                if ( $ipList ) {
@@ -1432,7 +1444,7 @@ class User {
                wfProfileIn( __METHOD__ );
 
                if ( !is_array( $wgProxyList ) ) {
-                       # Load from the specified file
+                       // Load from the specified file
                        $wgProxyList = array_map( 'trim', file( $wgProxyList ) );
                }
 
@@ -1441,7 +1453,7 @@ class User {
                } elseif ( array_search( $ip, $wgProxyList ) !== false ) {
                        $ret = true;
                } elseif ( array_key_exists( $ip, $wgProxyList ) ) {
-                       # Old-style flipped proxy list
+                       // Old-style flipped proxy list
                        $ret = true;
                } else {
                        $ret = false;
@@ -1453,7 +1465,7 @@ class User {
        /**
         * Is this user subject to rate limiting?
         *
-        * @return Bool True if rate limited
+        * @return bool True if rate limited
         */
        public function isPingLimitable() {
                global $wgRateLimitsExcludedIPs;
@@ -1474,10 +1486,10 @@ class User {
         * last-hit counters will be shared across wikis.
         *
         * @param string $action Action to enforce; 'edit' if unspecified
-        * @return Bool True if a rate limiter was tripped
+        * @return bool True if a rate limiter was tripped
         */
        public function pingLimiter( $action = 'edit' ) {
-               # Call the 'PingLimiter' hook
+               // Call the 'PingLimiter' hook
                $result = false;
                if ( !wfRunHooks( 'PingLimiter', array( &$this, $action, &$result ) ) ) {
                        return $result;
@@ -1488,7 +1500,7 @@ class User {
                        return false;
                }
 
-               # Some groups shouldn't trigger the ping limiter, ever
+               // Some groups shouldn't trigger the ping limiter, ever
                if ( !$this->isPingLimitable() ) {
                        return false;
                }
@@ -1499,7 +1511,6 @@ class User {
                $limits = $wgRateLimits[$action];
                $keys = array();
                $id = $this->getId();
-               $ip = $this->getRequest()->getIP();
                $userLimit = false;
 
                if ( isset( $limits['anon'] ) && $id == 0 ) {
@@ -1514,12 +1525,23 @@ class User {
                                $keys[wfMemcKey( 'limiter', $action, 'user', $id )] = $limits['newbie'];
                        }
                        if ( isset( $limits['ip'] ) ) {
+                               $ip = $this->getRequest()->getIP();
                                $keys["mediawiki:limiter:$action:ip:$ip"] = $limits['ip'];
                        }
-                       $matches = array();
-                       if ( isset( $limits['subnet'] ) && preg_match( '/^(\d+\.\d+\.\d+)\.\d+$/', $ip, $matches ) ) {
-                               $subnet = $matches[1];
-                               $keys["mediawiki:limiter:$action:subnet:$subnet"] = $limits['subnet'];
+                       if ( isset( $limits['subnet'] ) ) {
+                               $ip = $this->getRequest()->getIP();
+                               $matches = array();
+                               $subnet = false;
+                               if ( IP::isIPv6( $ip ) ) {
+                                       $parts = IP::parseRange( "$ip/64" );
+                                       $subnet = $parts[0];
+                               } elseif ( preg_match( '/^(\d+\.\d+\.\d+)\.\d+$/', $ip, $matches ) ) {
+                                       // IPv4
+                                       $subnet = $matches[1];
+                               }
+                               if ( $subnet !== false ) {
+                                       $keys["mediawiki:limiter:$action:subnet:$subnet"] = $limits['subnet'];
+                               }
                        }
                }
                // Check for group-specific permissions
@@ -1571,7 +1593,7 @@ class User {
         * Check if user is blocked
         *
         * @param bool $bFromSlave Whether to check the slave database instead of the master
-        * @return Bool True if blocked, false otherwise
+        * @return bool True if blocked, false otherwise
         */
        public function isBlocked( $bFromSlave = true ) { // hacked from false due to horrible probs on site
                return $this->getBlock( $bFromSlave ) instanceof Block && $this->getBlock()->prevents( 'edit' );
@@ -1591,9 +1613,9 @@ class User {
        /**
         * Check if user is blocked from editing a particular article
         *
-        * @param $title Title to check
+        * @param Title $title Title to check
         * @param bool $bFromSlave whether to check the slave database instead of the master
-        * @return Bool
+        * @return bool
         */
        function isBlockedFrom( $title, $bFromSlave = false ) {
                global $wgBlockAllowsUTEdit;
@@ -1601,7 +1623,7 @@ class User {
 
                $blocked = $this->isBlocked( $bFromSlave );
                $allowUsertalk = ( $wgBlockAllowsUTEdit ? $this->mAllowUsertalk : false );
-               # If a user's name is suppressed, they cannot make edits anywhere
+               // If a user's name is suppressed, they cannot make edits anywhere
                if ( !$this->mHideName && $allowUsertalk && $title->getText() === $this->getName() &&
                  $title->getNamespace() == NS_USER_TALK ) {
                        $blocked = false;
@@ -1616,7 +1638,7 @@ class User {
 
        /**
         * If user is blocked, return the name of the user who placed the block
-        * @return String name of blocker
+        * @return string Name of blocker
         */
        public function blockedBy() {
                $this->getBlockedStatus();
@@ -1625,7 +1647,7 @@ class User {
 
        /**
         * If user is blocked, return the specified reason for the block
-        * @return String Blocking reason
+        * @return string Blocking reason
         */
        public function blockedFor() {
                $this->getBlockedStatus();
@@ -1634,7 +1656,7 @@ class User {
 
        /**
         * If user is blocked, return the ID for the block
-        * @return Int Block ID
+        * @return int Block ID
         */
        public function getBlockId() {
                $this->getBlockedStatus();
@@ -1647,7 +1669,7 @@ class User {
         * This is intended for quick UI checks.
         *
         * @param string $ip IP address, uses current client if none given
-        * @return Bool True if blocked, false otherwise
+        * @return bool True if blocked, false otherwise
         */
        public function isBlockedGlobally( $ip = '' ) {
                if ( $this->mBlockedGlobally !== null ) {
@@ -1668,7 +1690,7 @@ class User {
        /**
         * Check if user account is locked
         *
-        * @return Bool True if locked, false otherwise
+        * @return bool True if locked, false otherwise
         */
        public function isLocked() {
                if ( $this->mLocked !== null ) {
@@ -1683,7 +1705,7 @@ class User {
        /**
         * Check if user account is hidden
         *
-        * @return Bool True if hidden, false otherwise
+        * @return bool True if hidden, false otherwise
         */
        public function isHidden() {
                if ( $this->mHideName !== null ) {
@@ -1700,7 +1722,7 @@ class User {
 
        /**
         * Get the user's ID.
-        * @return Int The user's ID; 0 if the user is anonymous or nonexistent
+        * @return int The user's ID; 0 if the user is anonymous or nonexistent
         */
        public function getId() {
                if ( $this->mId === null && $this->mName !== null && User::isIP( $this->mName ) ) {
@@ -1724,16 +1746,16 @@ class User {
 
        /**
         * Get the user name, or the IP of an anonymous user
-        * @return String User's name or IP address
+        * @return string User's name or IP address
         */
        public function getName() {
                if ( $this->isItemLoaded( 'name', 'only' ) ) {
-                       # Special case optimisation
+                       // Special case optimisation
                        return $this->mName;
                } else {
                        $this->load();
                        if ( $this->mName === false ) {
-                               # Clean up IPs
+                               // Clean up IPs
                                $this->mName = IP::sanitizeIP( $this->getRequest()->getIP() );
                        }
                        return $this->mName;
@@ -1760,7 +1782,7 @@ class User {
 
        /**
         * Get the user's name escaped by underscores.
-        * @return String Username escaped by underscores.
+        * @return string Username escaped by underscores.
         */
        public function getTitleKey() {
                return str_replace( ' ', '_', $this->getName() );
@@ -1768,17 +1790,17 @@ class User {
 
        /**
         * Check if the user has new messages.
-        * @return Bool True if the user has new messages
+        * @return bool True if the user has new messages
         */
        public function getNewtalk() {
                $this->load();
 
-               # Load the newtalk status if it is unloaded (mNewtalk=-1)
+               // Load the newtalk status if it is unloaded (mNewtalk=-1)
                if ( $this->mNewtalk === -1 ) {
                        $this->mNewtalk = false; # reset talk page status
 
-                       # Check memcached separately for anons, who have no
-                       # entire User object stored in there.
+                       // Check memcached separately for anons, who have no
+                       // entire User object stored in there.
                        if ( !$this->mId ) {
                                global $wgDisableAnonTalk;
                                if ( $wgDisableAnonTalk ) {
@@ -1808,7 +1830,7 @@ class User {
        /**
         * Return the revision and link for the oldest new talk page message for
         * this user.
-        * Note: This function was designed to accomodate multiple talk pages, but
+        * @note This function was designed to accomodate multiple talk pages, but
         * currently only returns a single link and revision.
         * @return Array
         */
@@ -1832,7 +1854,7 @@ class User {
 
        /**
         * Get the revision ID for the oldest new talk page message for this user
-        * @return Integer or null if there are no new messages
+        * @return int|null Revision id or null if there are no new messages
         */
        public function getNewMessageRevisionId() {
                $newMessageRevisionId = null;
@@ -1857,9 +1879,9 @@ class User {
         *
         * @see getNewtalk()
         * @param string $field 'user_ip' for anonymous users, 'user_id' otherwise
-        * @param string|Int $id User's IP address for anonymous users, User ID otherwise
+        * @param string|int $id User's IP address for anonymous users, User ID otherwise
         * @param bool $fromMaster true to fetch from the master, false for a slave
-        * @return Bool True if the user has new messages
+        * @return bool True if the user has new messages
         */
        protected function checkNewtalk( $field, $id, $fromMaster = false ) {
                if ( $fromMaster ) {
@@ -1875,9 +1897,9 @@ class User {
        /**
         * Add or update the new messages flag
         * @param string $field 'user_ip' for anonymous users, 'user_id' otherwise
-        * @param string|Int $id User's IP address for anonymous users, User ID otherwise
+        * @param string|int $id User's IP address for anonymous users, User ID otherwise
         * @param $curRev Revision new, as yet unseen revision of the user talk page. Ignored if null.
-        * @return Bool True if successful, false otherwise
+        * @return bool True if successful, false otherwise
         */
        protected function updateNewtalk( $field, $id, $curRev = null ) {
                // Get timestamp of the talk page revision prior to the current one
@@ -1901,8 +1923,8 @@ class User {
        /**
         * Clear the new messages flag for the given user
         * @param string $field 'user_ip' for anonymous users, 'user_id' otherwise
-        * @param string|Int $id User's IP address for anonymous users, User ID otherwise
-        * @return Bool True if successful, false otherwise
+        * @param string|int $id User's IP address for anonymous users, User ID otherwise
+        * @return bool True if successful, false otherwise
         */
        protected function deleteNewtalk( $field, $id ) {
                $dbw = wfGetDB( DB_MASTER );
@@ -1960,7 +1982,7 @@ class User {
        /**
         * Generate a current or new-future timestamp to be stored in the
         * user_touched field when we update things.
-        * @return String Timestamp in TS_MW format
+        * @return string Timestamp in TS_MW format
         */
        private static function newTouchedTimestamp() {
                global $wgClockSkewFudge;
@@ -2019,7 +2041,6 @@ class User {
        /**
         * Validate the cache for this account.
         * @param string $timestamp A timestamp in TS_MW format
-        *
         * @return bool
         */
        public function validateCache( $timestamp ) {
@@ -2029,7 +2050,7 @@ class User {
 
        /**
         * Get the user touched timestamp
-        * @return String timestamp
+        * @return string timestamp
         */
        public function getTouched() {
                $this->load();
@@ -2087,8 +2108,8 @@ class User {
         * Set the password and reset the random token unconditionally.
         *
         * @param string|null $str New password to set or null to set an invalid
-        *        password hash meaning that the user will not be able to log in
-        *        through the web interface.
+        *  password hash meaning that the user will not be able to log in
+        *  through the web interface.
         */
        public function setInternalPassword( $str ) {
                $this->load();
@@ -2107,7 +2128,7 @@ class User {
        /**
         * Get the user's current token.
         * @param bool $forceCreation Force the generation of a new token if the user doesn't have one (default=true for backwards compatibility)
-        * @return String Token
+        * @return string Token
         */
        public function getToken( $forceCreation = true ) {
                $this->load();
@@ -2149,7 +2170,7 @@ class User {
        /**
         * Has password reminder email been sent within the last
         * $wgPasswordReminderResendTime hours?
-        * @return Bool
+        * @return bool
         */
        public function isPasswordReminderThrottled() {
                global $wgPasswordReminderResendTime;
@@ -2163,7 +2184,7 @@ class User {
 
        /**
         * Get the user's e-mail address
-        * @return String User's email address
+        * @return string User's email address
         */
        public function getEmail() {
                $this->load();
@@ -2173,7 +2194,7 @@ class User {
 
        /**
         * Get the timestamp of the user's e-mail authentication
-        * @return String TS_MW timestamp
+        * @return string TS_MW timestamp
         */
        public function getEmailAuthenticationTimestamp() {
                $this->load();
@@ -2217,11 +2238,11 @@ class User {
                $this->setEmail( $str );
 
                if ( $str !== '' && $wgEmailAuthentication ) {
-                       # Send a confirmation request to the new address if needed
+                       // Send a confirmation request to the new address if needed
                        $type = $oldaddr != '' ? 'changed' : 'set';
                        $result = $this->sendConfirmationMail( $type );
                        if ( $result->isGood() ) {
-                               # Say the the caller that a confirmation mail has been sent
+                               // Say the the caller that a confirmation mail has been sent
                                $result->value = 'eauth';
                        }
                } else {
@@ -2233,7 +2254,7 @@ class User {
 
        /**
         * Get the user's real name
-        * @return String User's real name
+        * @return string User's real name
         */
        public function getRealName() {
                if ( !$this->isItemLoaded( 'realname' ) ) {
@@ -2257,8 +2278,8 @@ class User {
         *
         * @param string $oname The option to check
         * @param string $defaultOverride A default value returned if the option does not exist
-        * @param bool $ignoreHidden = whether to ignore the effects of $wgHiddenPrefs
-        * @return String User's current value for the option
+        * @param bool $ignoreHidden Whether to ignore the effects of $wgHiddenPrefs
+        * @return string User's current value for the option
         * @see getBoolOption()
         * @see getIntOption()
         */
@@ -2271,7 +2292,7 @@ class User {
                # set it, and then it was disabled removing their ability to change it).  But
                # we don't want to erase the preferences in the database in case the preference
                # is re-enabled again.  So don't touch $mOptions, just override the returned value
-               if ( in_array( $oname, $wgHiddenPrefs ) && !$ignoreHidden ) {
+               if ( !$ignoreHidden && in_array( $oname, $wgHiddenPrefs ) ) {
                        return self::getDefaultOption( $oname );
                }
 
@@ -2311,7 +2332,7 @@ class User {
         * Get the user's current setting for a given option, as a boolean value.
         *
         * @param string $oname The option to check
-        * @return Bool User's current value for the option
+        * @return bool User's current value for the option
         * @see getOption()
         */
        public function getBoolOption( $oname ) {
@@ -2323,7 +2344,7 @@ class User {
         *
         * @param string $oname The option to check
         * @param int $defaultOverride A default value returned if the option does not exist
-        * @return Int User's current value for the option
+        * @return int User's current value for the option
         * @see getOption()
         */
        public function getIntOption( $oname, $defaultOverride = 0 ) {
@@ -2338,7 +2359,7 @@ class User {
         * Set the given option for a user.
         *
         * @param string $oname The option to set
-        * @param $val mixed New value to set
+        * @param mixed $val New value to set
         */
        public function setOption( $oname, $val ) {
                $this->loadOptions();
@@ -2351,6 +2372,49 @@ class User {
                $this->mOptions[$oname] = $val;
        }
 
+       /**
+        * Get a token stored in the preferences (like the watchlist one),
+        * resetting it if it's empty (and saving changes).
+        *
+        * @param string $oname The option name to retrieve the token from
+        * @return string|bool User's current value for the option, or false if this option is disabled.
+        * @see resetTokenFromOption()
+        * @see getOption()
+        */
+       public function getTokenFromOption( $oname ) {
+               global $wgHiddenPrefs;
+               if ( in_array( $oname, $wgHiddenPrefs ) ) {
+                       return false;
+               }
+
+               $token = $this->getOption( $oname );
+               if ( !$token ) {
+                       $token = $this->resetTokenFromOption( $oname );
+                       $this->saveSettings();
+               }
+               return $token;
+       }
+
+       /**
+        * Reset a token stored in the preferences (like the watchlist one).
+        * *Does not* save user's preferences (similarly to setOption()).
+        *
+        * @param string $oname The option name to reset the token in
+        * @return string|bool New token value, or false if this option is disabled.
+        * @see getTokenFromOption()
+        * @see setOption()
+        */
+       public function resetTokenFromOption( $oname ) {
+               global $wgHiddenPrefs;
+               if ( in_array( $oname, $wgHiddenPrefs ) ) {
+                       return false;
+               }
+
+               $token = MWCryptRand::generateHex( 40 );
+               $this->setOption( $oname, $token );
+               return $token;
+       }
+
        /**
         * Return a list of the types of user options currently returned by
         * User::getOptionKinds().
@@ -2462,11 +2526,11 @@ class User {
         * and 'all', which forces a reset of *all* preferences and overrides everything else.
         *
         * @param array|string $resetKinds which kinds of preferences to reset. Defaults to
-        *             array( 'registered', 'registered-multiselect', 'registered-checkmatrix', 'unused' )
-        *             for backwards-compatibility.
+        *  array( 'registered', 'registered-multiselect', 'registered-checkmatrix', 'unused' )
+        *  for backwards-compatibility.
         * @param $context IContextSource|null context source used when $resetKinds
-        *             does not contain 'all', passed to getOptionKinds().
-        *             Defaults to RequestContext::getMain() when null.
+        *  does not contain 'all', passed to getOptionKinds().
+        *  Defaults to RequestContext::getMain() when null.
         */
        public function resetOptions(
                $resetKinds = array( 'registered', 'registered-multiselect', 'registered-checkmatrix', 'unused' ),
@@ -2509,7 +2573,7 @@ class User {
 
        /**
         * Get the user's preferred date format.
-        * @return String User's preferred date format
+        * @return string User's preferred date format
         */
        public function getDatePreference() {
                // Important migration for old data rows
@@ -2534,8 +2598,8 @@ class User {
                global $wgMaxArticleSize; # Maximum article size, in Kb
                $threshold = $this->getIntOption( 'stubthreshold' );
                if ( $threshold > $wgMaxArticleSize * 1024 ) {
-                       # If they have set an impossible value, disable the preference
-                       # so we can use the parser cache again.
+                       // If they have set an impossible value, disable the preference
+                       // so we can use the parser cache again.
                        $threshold = 0;
                }
                return $threshold;
@@ -2580,7 +2644,7 @@ class User {
                                $this->getGroups(), // explicit groups
                                $this->getAutomaticGroups( $recache ) // implicit groups
                        ) );
-                       # Hook for additional groups
+                       // Hook for additional groups
                        wfRunHooks( 'UserEffectiveGroups', array( &$this, &$this->mEffectiveGroups ) );
                        // Force reindexation of groups when a hook has unset one of them
                        $this->mEffectiveGroups = array_values( array_unique( $this->mEffectiveGroups ) );
@@ -2609,8 +2673,8 @@ class User {
                                ) );
                        }
                        if ( $recache ) {
-                               # Assure data consistency with rights/groups,
-                               # as getEffectiveGroups() depends on this function
+                               // Assure data consistency with rights/groups,
+                               // as getEffectiveGroups() depends on this function
                                $this->mEffectiveGroups = null;
                        }
                        wfProfileOut( __METHOD__ );
@@ -2644,7 +2708,7 @@ class User {
 
        /**
         * Get the user's edit count.
-        * @return Int
+        * @return int, null for anonymous users
         */
        public function getEditCount() {
                if ( !$this->getId() ) {
@@ -2666,10 +2730,10 @@ class User {
                                // it has not been initialized. do so.
                                $count = $this->initEditCount();
                        }
-                       $this->mEditCount = intval( $count );
+                       $this->mEditCount = $count;
                        wfProfileOut( __METHOD__ );
                }
-               return $this->mEditCount;
+               return (int) $this->mEditCount;
        }
 
        /**
@@ -2695,7 +2759,11 @@ class User {
                // In case loadGroups was not called before, we now have the right twice.
                // Get rid of the duplicate.
                $this->mGroups = array_unique( $this->mGroups );
-               $this->mRights = User::getGroupPermissions( $this->getEffectiveGroups( true ) );
+
+               // Refresh the groups caches, and clear the rights cache so it will be
+               // refreshed on the next call to $this->getRights().
+               $this->getEffectiveGroups( true );
+               $this->mRights = null;
 
                $this->invalidateCache();
        }
@@ -2725,14 +2793,18 @@ class User {
                }
                $this->loadGroups();
                $this->mGroups = array_diff( $this->mGroups, array( $group ) );
-               $this->mRights = User::getGroupPermissions( $this->getEffectiveGroups( true ) );
+
+               // Refresh the groups caches, and clear the rights cache so it will be
+               // refreshed on the next call to $this->getRights().
+               $this->getEffectiveGroups( true );
+               $this->mRights = null;
 
                $this->invalidateCache();
        }
 
        /**
         * Get whether the user is logged in
-        * @return Bool
+        * @return bool
         */
        public function isLoggedIn() {
                return $this->getID() != 0;
@@ -2740,7 +2812,7 @@ class User {
 
        /**
         * Get whether the user is anonymous
-        * @return Bool
+        * @return bool
         */
        public function isAnon() {
                return !$this->isLoggedIn();
@@ -2750,7 +2822,7 @@ class User {
         * Check if user is allowed to access a feature / make an action
         *
         * @internal param \String $varargs permissions to test
-        * @return Boolean: True if user is allowed to perform *any* of the given actions
+        * @return boolean: True if user is allowed to perform *any* of the given actions
         *
         * @return bool
         */
@@ -2781,28 +2853,28 @@ class User {
 
        /**
         * Internal mechanics of testing a permission
-        * @param $action String
+        * @param string $action
         * @return bool
         */
        public function isAllowed( $action = '' ) {
                if ( $action === '' ) {
                        return true; // In the spirit of DWIM
                }
-               # Patrolling may not be enabled
+               // Patrolling may not be enabled
                if ( $action === 'patrol' || $action === 'autopatrol' ) {
                        global $wgUseRCPatrol, $wgUseNPPatrol;
                        if ( !$wgUseRCPatrol && !$wgUseNPPatrol ) {
                                return false;
                        }
                }
-               # Use strict parameter to avoid matching numeric 0 accidentally inserted
-               # by misconfiguration: 0 == 'foo'
+               // Use strict parameter to avoid matching numeric 0 accidentally inserted
+               // by misconfiguration: 0 == 'foo'
                return in_array( $action, $this->getRights(), true );
        }
 
        /**
         * Check whether to enable recent changes patrol features for this user
-        * @return Boolean: True or false
+        * @return boolean: True or false
         */
        public function useRCPatrol() {
                global $wgUseRCPatrol;
@@ -2811,11 +2883,14 @@ class User {
 
        /**
         * Check whether to enable new pages patrol features for this user
-        * @return Bool True or false
+        * @return bool True or false
         */
        public function useNPPatrol() {
                global $wgUseRCPatrol, $wgUseNPPatrol;
-               return ( ( $wgUseRCPatrol || $wgUseNPPatrol ) && ( $this->isAllowedAny( 'patrol', 'patrolmarks' ) ) );
+               return (
+                       ( $wgUseRCPatrol || $wgUseNPPatrol )
+                               && ( $this->isAllowedAny( 'patrol', 'patrolmarks' ) )
+               );
        }
 
        /**
@@ -2846,11 +2921,14 @@ class User {
        /**
         * Get a WatchedItem for this user and $title.
         *
+        * @since 1.22 $checkRights parameter added
         * @param $title Title
+        * @param $checkRights int Whether to check 'viewmywatchlist'/'editmywatchlist' rights.
+        *     Pass WatchedItem::CHECK_USER_RIGHTS or WatchedItem::IGNORE_USER_RIGHTS.
         * @return WatchedItem
         */
-       public function getWatchedItem( $title ) {
-               $key = $title->getNamespace() . ':' . $title->getDBkey();
+       public function getWatchedItem( $title, $checkRights = WatchedItem::CHECK_USER_RIGHTS ) {
+               $key = $checkRights . ':' . $title->getNamespace() . ':' . $title->getDBkey();
 
                if ( isset( $this->mWatchedItems[$key] ) ) {
                        return $this->mWatchedItems[$key];
@@ -2860,34 +2938,43 @@ class User {
                        $this->mWatchedItems = array();
                }
 
-               $this->mWatchedItems[$key] = WatchedItem::fromUserTitle( $this, $title );
+               $this->mWatchedItems[$key] = WatchedItem::fromUserTitle( $this, $title, $checkRights );
                return $this->mWatchedItems[$key];
        }
 
        /**
         * Check the watched status of an article.
+        * @since 1.22 $checkRights parameter added
         * @param $title Title of the article to look at
-        * @return Bool
+        * @param $checkRights int Whether to check 'viewmywatchlist'/'editmywatchlist' rights.
+        *     Pass WatchedItem::CHECK_USER_RIGHTS or WatchedItem::IGNORE_USER_RIGHTS.
+        * @return bool
         */
-       public function isWatched( $title ) {
-               return $this->getWatchedItem( $title )->isWatched();
+       public function isWatched( $title, $checkRights = WatchedItem::CHECK_USER_RIGHTS ) {
+               return $this->getWatchedItem( $title, $checkRights )->isWatched();
        }
 
        /**
         * Watch an article.
+        * @since 1.22 $checkRights parameter added
         * @param $title Title of the article to look at
+        * @param $checkRights int Whether to check 'viewmywatchlist'/'editmywatchlist' rights.
+        *     Pass WatchedItem::CHECK_USER_RIGHTS or WatchedItem::IGNORE_USER_RIGHTS.
         */
-       public function addWatch( $title ) {
-               $this->getWatchedItem( $title )->addWatch();
+       public function addWatch( $title, $checkRights = WatchedItem::CHECK_USER_RIGHTS ) {
+               $this->getWatchedItem( $title, $checkRights )->addWatch();
                $this->invalidateCache();
        }
 
        /**
         * Stop watching an article.
+        * @since 1.22 $checkRights parameter added
         * @param $title Title of the article to look at
+        * @param $checkRights int Whether to check 'viewmywatchlist'/'editmywatchlist' rights.
+        *     Pass WatchedItem::CHECK_USER_RIGHTS or WatchedItem::IGNORE_USER_RIGHTS.
         */
-       public function removeWatch( $title ) {
-               $this->getWatchedItem( $title )->removeWatch();
+       public function removeWatch( $title, $checkRights = WatchedItem::CHECK_USER_RIGHTS ) {
+               $this->getWatchedItem( $title, $checkRights )->removeWatch();
                $this->invalidateCache();
        }
 
@@ -2895,16 +2982,22 @@ class User {
         * Clear the user's notification timestamp for the given title.
         * If e-notif e-mails are on, they will receive notification mails on
         * the next change of the page if it's watched etc.
+        * @note If the user doesn't have 'editmywatchlist', this will do nothing.
         * @param $title Title of the article to look at
         */
        public function clearNotification( &$title ) {
                global $wgUseEnotif, $wgShowUpdatedMarker;
 
-               # Do nothing if the database is locked to writes
+               // Do nothing if the database is locked to writes
                if ( wfReadOnly() ) {
                        return;
                }
 
+               // Do nothing if not allowed to edit the watchlist
+               if ( !$this->isAllowed( 'editmywatchlist' ) ) {
+                       return;
+               }
+
                if ( $title->getNamespace() == NS_USER_TALK &&
                        $title->getText() == $this->getName() ) {
                        if ( !wfRunHooks( 'UserClearNewTalkNotification', array( &$this ) ) ) {
@@ -2940,12 +3033,18 @@ class User {
         * Resets all of the given user's page-change notification timestamps.
         * If e-notif e-mails are on, they will receive notification mails on
         * the next change of any watched page.
+        * @note If the user doesn't have 'editmywatchlist', this will do nothing.
         */
        public function clearAllNotifications() {
                if ( wfReadOnly() ) {
                        return;
                }
 
+               // Do nothing if not allowed to edit the watchlist
+               if ( !$this->isAllowed( 'editmywatchlist' ) ) {
+                       return;
+               }
+
                global $wgUseEnotif, $wgShowUpdatedMarker;
                if ( !$wgUseEnotif && !$wgShowUpdatedMarker ) {
                        $this->setNewtalk( false );
@@ -3001,7 +3100,7 @@ class User {
         * @param string $value Value to set
         * @param int $exp Expiration time, as a UNIX time value;
         *                   if 0 or not specified, use the default $wgCookieExpiration
-        * @param $secure Bool
+        * @param bool $secure
         *  true: Force setting the secure attribute when setting the cookie
         *  false: Force NOT setting the secure attribute when setting the cookie
         *  null (default): Use the default ($wgCookieSecure) to set the secure attribute
@@ -3102,8 +3201,8 @@ class User {
                $this->clearCookie( 'Token' );
                $this->clearCookie( 'forceHTTPS' );
 
-               # Remember when user logged out, to prevent seeing cached pages
-               $this->setCookie( 'LoggedOut', wfTimestampNow(), time() + 86400 );
+               // Remember when user logged out, to prevent seeing cached pages
+               $this->setCookie( 'LoggedOut', time(), time() + 86400 );
        }
 
        /**
@@ -3154,7 +3253,7 @@ class User {
 
        /**
         * If only this user's username is known, and it exists, return the user ID.
-        * @return Int
+        * @return int
         */
        public function idForName() {
                $s = trim( $this->getName() );
@@ -3258,6 +3357,7 @@ class User {
                $this->mTouched = self::newTouchedTimestamp();
 
                $dbw = wfGetDB( DB_MASTER );
+               $inWrite = $dbw->writesOrCallbacksPending();
                $seqVal = $dbw->nextSequenceValue( 'user_user_id_seq' );
                $dbw->insert( 'user',
                        array(
@@ -3277,6 +3377,12 @@ class User {
                        array( 'IGNORE' )
                );
                if ( !$dbw->affectedRows() ) {
+                       if ( !$inWrite ) {
+                               // XXX: Get out of REPEATABLE-READ so the SELECT below works.
+                               // Often this case happens early in views before any writes.
+                               // This shows up at least with CentralAuth.
+                               $dbw->commit( __METHOD__, 'flush' );
+                       }
                        $this->mId = $dbw->selectField( 'user', 'user_id',
                                array( 'user_name' => $this->mName ), __METHOD__ );
                        $loaded = false;
@@ -3344,7 +3450,7 @@ class User {
         * settings.
         *
         * @deprecated since 1.17 use the ParserOptions object to get the relevant options
-        * @return String Page rendering hash
+        * @return string Page rendering hash
         */
        public function getPageRenderingHash() {
                wfDeprecated( __METHOD__, '1.17' );
@@ -3384,7 +3490,7 @@ class User {
 
        /**
         * Get whether the user is explicitly blocked from account creation.
-        * @return Bool|Block
+        * @return bool|Block
         */
        public function isBlockedFromCreateAccount() {
                $this->getBlockedStatus();
@@ -3405,7 +3511,7 @@ class User {
 
        /**
         * Get whether the user is blocked from using Special:Emailuser.
-        * @return Bool
+        * @return bool
         */
        public function isBlockedFromEmailuser() {
                $this->getBlockedStatus();
@@ -3414,7 +3520,7 @@ class User {
 
        /**
         * Get whether the user is allowed to create an account.
-        * @return Bool
+        * @return bool
         */
        function isAllowedToCreateAccount() {
                return $this->isAllowed( 'createaccount' ) && !$this->isBlockedFromCreateAccount();
@@ -3442,7 +3548,7 @@ class User {
        /**
         * Determine whether the user is a newbie. Newbies are either
         * anonymous IPs, or the most recently created accounts.
-        * @return Bool
+        * @return bool
         */
        public function isNewbie() {
                return !$this->isAllowed( 'autoconfirmed' );
@@ -3451,7 +3557,7 @@ class User {
        /**
         * Check to see if the given clear-text password is one of the accepted passwords
         * @param string $password user password.
-        * @return Boolean: True if the given password is correct, otherwise False.
+        * @return boolean: True if the given password is correct, otherwise False.
         */
        public function checkPassword( $password ) {
                global $wgAuth, $wgLegacyEncoding;
@@ -3469,17 +3575,17 @@ class User {
                if ( $wgAuth->authenticate( $this->getName(), $password ) ) {
                        return true;
                } elseif ( $wgAuth->strict() ) {
-                       /* Auth plugin doesn't allow local authentication */
+                       // Auth plugin doesn't allow local authentication
                        return false;
                } elseif ( $wgAuth->strictUserAuth( $this->getName() ) ) {
-                       /* Auth plugin doesn't allow local authentication for this user name */
+                       // Auth plugin doesn't allow local authentication for this user name
                        return false;
                }
                if ( self::comparePasswords( $this->mPassword, $password, $this->mId ) ) {
                        return true;
                } elseif ( $wgLegacyEncoding ) {
-                       # Some wikis were converted from ISO 8859-1 to UTF-8, the passwords can't be converted
-                       # Check for this with iconv
+                       // Some wikis were converted from ISO 8859-1 to UTF-8, the passwords can't be converted
+                       // Check for this with iconv
                        $cp1252Password = iconv( 'UTF-8', 'WINDOWS-1252//TRANSLIT', $password );
                        if ( $cp1252Password != $password &&
                                self::comparePasswords( $this->mPassword, $cp1252Password, $this->mId ) )
@@ -3496,7 +3602,7 @@ class User {
         *
         * @param $plaintext string
         *
-        * @return Boolean: True if matches, false otherwise
+        * @return boolean: True if matches, false otherwise
         */
        public function checkTemporaryPassword( $plaintext ) {
                global $wgNewPasswordExpiry;
@@ -3519,7 +3625,7 @@ class User {
         *
         * @param string|array $salt of Strings Optional function-specific data for hashing
         * @param $request WebRequest object to use or null to use $wgRequest
-        * @return String The new edit token
+        * @return string The new edit token
         */
        public function editToken( $salt = '', $request = null ) {
                wfDeprecated( __METHOD__, '1.19' );
@@ -3536,7 +3642,7 @@ class User {
         *
         * @param string|array $salt of Strings Optional function-specific data for hashing
         * @param $request WebRequest object to use or null to use $wgRequest
-        * @return String The new edit token
+        * @return string The new edit token
         */
        public function getEditToken( $salt = '', $request = null ) {
                if ( $request == null ) {
@@ -3561,8 +3667,8 @@ class User {
        /**
         * Generate a looking random token for various uses.
         *
-        * @return String The new random token
-        * @deprecated since 1.20; Use MWCryptRand for secure purposes or wfRandomString for pseudo-randomness
+        * @return string The new random token
+        * @deprecated since 1.20: Use MWCryptRand for secure purposes or wfRandomString for pseudo-randomness
         */
        public static function generateToken() {
                return MWCryptRand::generateHex( 32 );
@@ -3576,8 +3682,8 @@ class User {
         *
         * @param string $val Input value to compare
         * @param string $salt Optional function-specific data for hashing
-        * @param $request WebRequest object to use or null to use $wgRequest
-        * @return Boolean: Whether the token matches
+        * @param WebRequest $request Object to use or null to use $wgRequest
+        * @return boolean: Whether the token matches
         */
        public function matchEditToken( $val, $salt = '', $request = null ) {
                $sessionToken = $this->getEditToken( $salt, $request );
@@ -3593,8 +3699,8 @@ class User {
         *
         * @param string $val Input value to compare
         * @param string $salt Optional function-specific data for hashing
-        * @param $request WebRequest object to use or null to use $wgRequest
-        * @return Boolean: Whether the token matches
+        * @param WebRequest $request object to use or null to use $wgRequest
+        * @return boolean: Whether the token matches
         */
        public function matchEditTokenNoSuffix( $val, $salt = '', $request = null ) {
                $sessionToken = $this->getEditToken( $salt, $request );
@@ -3665,7 +3771,7 @@ class User {
         * this change to the database.
         *
         * @param &$expiration \mixed Accepts the expiration time
-        * @return String New token
+        * @return string New token
         */
        protected function confirmationToken( &$expiration ) {
                global $wgUserEmailConfirmationTokenExpiry;
@@ -3683,7 +3789,7 @@ class User {
        /**
         * Return a URL the user can use to confirm their email address.
         * @param string $token Accepts the email confirmation token
-        * @return String New token URL
+        * @return string New token URL
         */
        protected function confirmationTokenUrl( $token ) {
                return $this->getTokenUrl( 'ConfirmEmail', $token );
@@ -3692,7 +3798,7 @@ class User {
        /**
         * Return a URL the user can use to invalidate their email address.
         * @param string $token Accepts the email confirmation token
-        * @return String New token URL
+        * @return string New token URL
         */
        protected function invalidationTokenUrl( $token ) {
                return $this->getTokenUrl( 'InvalidateEmail', $token );
@@ -3710,7 +3816,7 @@ class User {
         *
         * @param string $page Special page
         * @param string $token Token
-        * @return String Formatted URL
+        * @return string Formatted URL
         */
        protected function getTokenUrl( $page, $token ) {
                // Hack to bypass localization of 'Special:'
@@ -3764,7 +3870,7 @@ class User {
        /**
         * Is this user allowed to send e-mails within limits of current
         * site configuration?
-        * @return Bool
+        * @return bool
         */
        public function canSendEmail() {
                global $wgEnableEmail, $wgEnableUserEmail;
@@ -3779,7 +3885,7 @@ class User {
        /**
         * Is this user allowed to receive e-mails within limits of current
         * site configuration?
-        * @return Bool
+        * @return bool
         */
        public function canReceiveEmail() {
                return $this->isEmailConfirmed() && !$this->getOption( 'disablemail' );
@@ -3793,7 +3899,7 @@ class User {
         * confirmed their address by returning a code or using a password
         * sent to the address from the wiki.
         *
-        * @return Bool
+        * @return bool
         */
        public function isEmailConfirmed() {
                global $wgEmailAuthentication;
@@ -3817,7 +3923,7 @@ class User {
 
        /**
         * Check whether there is an outstanding request for e-mail confirmation.
-        * @return Bool
+        * @return bool
         */
        public function isEmailConfirmationPending() {
                global $wgEmailAuthentication;
@@ -3830,9 +3936,9 @@ class User {
        /**
         * Get the timestamp of account creation.
         *
-        * @return String|Bool|Null Timestamp of account creation, false for
-        *     non-existent/anonymous user accounts, or null if existing account
-        *     but information is not in database.
+        * @return string|bool|null Timestamp of account creation, false for
+        *  non-existent/anonymous user accounts, or null if existing account
+        *  but information is not in database.
         */
        public function getRegistration() {
                if ( $this->isAnon() ) {
@@ -3845,8 +3951,8 @@ class User {
        /**
         * Get the timestamp of the first edit
         *
-        * @return String|Bool Timestamp of first edit, or false for
-        *     non-existent/anonymous user accounts.
+        * @return string|bool Timestamp of first edit, or false for
+        *  non-existent/anonymous user accounts.
         */
        public function getFirstEditTimestamp() {
                if ( $this->getId() == 0 ) {
@@ -3911,6 +4017,10 @@ class User {
        /**
         * Check, if the given group has the given permission
         *
+        * If you're wanting to check whether all users have a permission, use
+        * User::isEveryoneAllowed() instead. That properly checks if it's revoked
+        * from anyone.
+        *
         * @since 1.21
         * @param string $group Group to check
         * @param string $role Role to check
@@ -3922,11 +4032,51 @@ class User {
                        && !( isset( $wgRevokePermissions[$group][$role] ) && $wgRevokePermissions[$group][$role] );
        }
 
+       /**
+        * Check if all users have the given permission
+        *
+        * @since 1.22
+        * @param string $right Right to check
+        * @return bool
+        */
+       public static function isEveryoneAllowed( $right ) {
+               global $wgGroupPermissions, $wgRevokePermissions;
+               static $cache = array();
+
+               // Use the cached results, except in unit tests which rely on
+               // being able change the permission mid-request
+               if ( isset( $cache[$right] ) && !defined( 'MW_PHPUNIT_TEST' ) ) {
+                       return $cache[$right];
+               }
+
+               if ( !isset( $wgGroupPermissions['*'][$right] ) || !$wgGroupPermissions['*'][$right] ) {
+                       $cache[$right] = false;
+                       return false;
+               }
+
+               // If it's revoked anywhere, then everyone doesn't have it
+               foreach ( $wgRevokePermissions as $rights ) {
+                       if ( isset( $rights[$right] ) && $rights[$right] ) {
+                               $cache[$right] = false;
+                               return false;
+                       }
+               }
+
+               // Allow extensions (e.g. OAuth) to say false
+               if ( !wfRunHooks( 'UserIsEveryoneAllowed', array( $right ) ) ) {
+                       $cache[$right] = false;
+                       return false;
+               }
+
+               $cache[$right] = true;
+               return true;
+       }
+
        /**
         * Get the localized descriptive name for a group, if it exists
         *
         * @param string $group Internal group name
-        * @return String Localized descriptive group name
+        * @return string Localized descriptive group name
         */
        public static function getGroupName( $group ) {
                $msg = wfMessage( "group-$group" );
@@ -3938,7 +4088,7 @@ class User {
         *
         * @param string $group Internal group name
         * @param string $username Username for gender (since 1.19)
-        * @return String Localized name for group member
+        * @return string Localized name for group member
         */
        public static function getGroupMember( $group, $username = '#' ) {
                $msg = wfMessage( "group-$group-member", $username );
@@ -3991,7 +4141,7 @@ class User {
         * Get the title of a page describing a particular group
         *
         * @param string $group Internal group name
-        * @return Title|Bool Title of the page if it exists, false otherwise
+        * @return Title|bool Title of the page if it exists, false otherwise
         */
        public static function getGroupPage( $group ) {
                $msg = wfMessage( 'grouppage-' . $group )->inContentLanguage();
@@ -4010,7 +4160,7 @@ class User {
         *
         * @param string $group Internal name of the group
         * @param string $text The text of the link
-        * @return String HTML link to the group
+        * @return string HTML link to the group
         */
        public static function makeGroupLinkHTML( $group, $text = '' ) {
                if ( $text == '' ) {
@@ -4030,7 +4180,7 @@ class User {
         *
         * @param string $group Internal name of the group
         * @param string $text The text of the link
-        * @return String Wikilink to the group
+        * @return string Wikilink to the group
         */
        public static function makeGroupLinkWiki( $group, $text = '' ) {
                if ( $text == '' ) {
@@ -4193,7 +4343,7 @@ class User {
         * Initialize user_editcount from data out of the revision table
         *
         * @param $add Integer Edits to add to the count from the revision table
-        * @return Integer Number of edits
+        * @return integer Number of edits
         */
        protected function initEditCount( $add = 0 ) {
                // Pull from a slave to be less cruel to servers
@@ -4222,7 +4372,7 @@ class User {
         * Get the description of a given right
         *
         * @param string $right Right to query
-        * @return String Localized description of the right
+        * @return string Localized description of the right
         */
        public static function getRightDescription( $right ) {
                $key = "right-$right";
@@ -4235,7 +4385,7 @@ class User {
         *
         * @param string $password Plain-text password
         * @param string $userId User ID
-        * @return String Password hash
+        * @return string Password hash
         */
        public static function oldCrypt( $password, $userId ) {
                global $wgPasswordSalt;
@@ -4251,9 +4401,8 @@ class User {
         *
         * @param string $password Plain-text password
         * @param bool|string $salt Optional salt, may be random or the user ID.
-
-        *                     If unspecified or false, will generate one automatically
-        * @return String Password hash
+        *  If unspecified or false, will generate one automatically
+        * @return string Password hash
         */
        public static function crypt( $password, $salt = false ) {
                global $wgPasswordSalt;
@@ -4281,7 +4430,7 @@ class User {
         * @param string $password Plain-text password to compare
         * @param string|bool $userId User ID for old-style password salt
         *
-        * @return Boolean
+        * @return boolean
         */
        public static function comparePasswords( $hash, $password, $userId = false ) {
                $type = substr( $hash, 0, 3 );
@@ -4292,14 +4441,14 @@ class User {
                }
 
                if ( $type == ':A:' ) {
-                       # Unsalted
+                       // Unsalted
                        return md5( $password ) === substr( $hash, 3 );
                } elseif ( $type == ':B:' ) {
-                       # Salted
+                       // Salted
                        list( $salt, $realHash ) = explode( ':', substr( $hash, 3 ), 2 );
                        return md5( $salt . '-' . md5( $password ) ) === $realHash;
                } else {
-                       # Old-style
+                       // Old-style
                        return self::oldCrypt( $password, $userId ) === $hash;
                }
        }
@@ -4458,7 +4607,7 @@ class User {
                $userId = $this->getId();
                $insert_rows = array();
                foreach ( $saveOptions as $key => $value ) {
-                       # Don't bother storing default values
+                       // Don't bother storing default values
                        $defaultOption = self::getDefaultOption( $key );
                        if ( ( is_null( $defaultOption ) &&
                                        !( $value === false || is_null( $value ) ) ) ||
@@ -4567,4 +4716,26 @@ class User {
                        'user_editcount',
                );
        }
+
+       /**
+        * Factory function for fatal permission-denied errors
+        *
+        * @since 1.22
+        * @param string $permission User right required
+        * @return Status
+        */
+       static function newFatalPermissionDeniedStatus( $permission ) {
+               global $wgLang;
+
+               $groups = array_map(
+                       array( 'User', 'makeGroupLinkWiki' ),
+                       User::getGroupsWithPermission( $permission )
+               );
+
+               if ( $groups ) {
+                       return Status::newFatal( 'badaccess-groups', $wgLang->commaList( $groups ), count( $groups ) );
+               } else {
+                       return Status::newFatal( 'badaccess-group0' );
+               }
+       }
 }
index e48070a..0d77159 100644 (file)
@@ -241,7 +241,7 @@ class UserMailer {
                        $headers['Reply-To'] = $replyto->toString();
                }
 
-               $headers['Date'] = date( 'r' );
+               $headers['Date'] = MWTimestamp::getLocalInstance()->format( 'r' );
                $headers['Message-ID'] = self::makeMsgId();
                $headers['X-Mailer'] = 'MediaWiki mailer';
 
@@ -258,6 +258,8 @@ class UserMailer {
                        wfDebug( "Assembling multipart mime email\n" );
                        if ( !stream_resolve_include_path( 'Mail/mime.php' ) ) {
                                wfDebug( "PEAR Mail_Mime package is not installed. Falling back to text email.\n" );
+                               // remove the html body for text email fall back
+                               $body = $body['text'];
                        }
                        else {
                                require_once 'Mail/mime.php';
@@ -265,7 +267,7 @@ class UserMailer {
                                        $body['text'] = str_replace( "\n", "\r\n", $body['text'] );
                                        $body['html'] = str_replace( "\n", "\r\n", $body['html'] );
                                }
-                               $mime = new Mail_mime( array( 'eol' => $endl ) );
+                               $mime = new Mail_mime( array( 'eol' => $endl, 'text_charset' => 'UTF-8', 'html_charset' => 'UTF-8' ) );
                                $mime->setTXTBody( $body['text'] );
                                $mime->setHTMLBody( $body['html'] );
                                $body = $mime->get(); // must call get() before headers()
@@ -668,11 +670,13 @@ class EmailNotification {
                        } elseif ( $targetUser->getOption( 'enotifusertalkpages' ) &&
                                ( !$minorEdit || $targetUser->getOption( 'enotifminoredits' ) ) )
                        {
-                               if ( $targetUser->isEmailConfirmed() ) {
+                               if ( !$targetUser->isEmailConfirmed() ) {
+                                       wfDebug( __METHOD__ . ": talk page owner doesn't have validated email\n" );
+                               } elseif ( !wfRunHooks( 'AbortTalkPageEmailNotification', array( $targetUser, $title ) ) ) {
+                                       wfDebug( __METHOD__ . ": talk page update notification is aborted for this user\n" );
+                               } else {
                                        wfDebug( __METHOD__ . ": sending talk page update notification\n" );
                                        return true;
-                               } else {
-                                       wfDebug( __METHOD__ . ": talk page owner doesn't have validated email\n" );
                                }
                        } else {
                                wfDebug( __METHOD__ . ": talk page owner doesn't want notifications\n" );
index 45aa822..1e07e7c 100644 (file)
  * @ingroup Watchlist
  */
 class WatchedItem {
-       var $mTitle, $mUser;
+       /**
+        * Constant to specify that user rights 'editmywatchlist' and
+        * 'viewmywatchlist' should not be checked.
+        * @since 1.22
+        */
+       const IGNORE_USER_RIGHTS = 0;
+
+       /**
+        * Constant to specify that user rights 'editmywatchlist' and
+        * 'viewmywatchlist' should be checked.
+        * @since 1.22
+        */
+       const CHECK_USER_RIGHTS = 1;
+
+       var $mTitle, $mUser, $mCheckRights;
        private $loaded = false, $watched, $timestamp;
 
        /**
         * Create a WatchedItem object with the given user and title
+        * @since 1.22 $checkRights parameter added
         * @param $user User: the user to use for (un)watching
         * @param $title Title: the title we're going to (un)watch
+        * @param $checkRights int: Whether to check the 'viewmywatchlist' and 'editmywatchlist' rights.
+        *     Pass either WatchedItem::IGNORE_USER_RIGHTS or WatchedItem::CHECK_USER_RIGHTS.
         * @return WatchedItem object
         */
-       public static function fromUserTitle( $user, $title ) {
+       public static function fromUserTitle( $user, $title, $checkRights = WatchedItem::CHECK_USER_RIGHTS ) {
                $wl = new WatchedItem;
                $wl->mUser = $user;
                $wl->mTitle = $title;
+               $wl->mCheckRights = $checkRights;
 
                return $wl;
        }
@@ -110,11 +128,23 @@ class WatchedItem {
                }
        }
 
+       /**
+        * Check permissions
+        * @param $what string: 'viewmywatchlist' or 'editmywatchlist'
+        */
+       private function isAllowed( $what ) {
+               return !$this->mCheckRights || $this->mUser->isAllowed( $what );
+       }
+
        /**
         * Is mTitle being watched by mUser?
         * @return bool
         */
        public function isWatched() {
+               if ( !$this->isAllowed( 'viewmywatchlist' ) ) {
+                       return false;
+               }
+
                $this->load();
                return $this->watched;
        }
@@ -126,6 +156,10 @@ class WatchedItem {
         *         the wl_notificationtimestamp field otherwise
         */
        public function getNotificationTimestamp() {
+               if ( !$this->isAllowed( 'viewmywatchlist' ) ) {
+                       return false;
+               }
+
                $this->load();
                if ( $this->watched ) {
                        return $this->timestamp;
@@ -142,7 +176,7 @@ class WatchedItem {
         */
        public function resetNotificationTimestamp( $force = '' ) {
                // Only loggedin user can have a watchlist
-               if ( wfReadOnly() || $this->mUser->isAnon() ) {
+               if ( wfReadOnly() || $this->mUser->isAnon() || !$this->isAllowed( 'editmywatchlist' ) ) {
                        return;
                }
 
@@ -170,7 +204,7 @@ class WatchedItem {
                wfProfileIn( __METHOD__ );
 
                // Only loggedin user can have a watchlist
-               if ( wfReadOnly() || $this->mUser->isAnon() ) {
+               if ( wfReadOnly() || $this->mUser->isAnon() || !$this->isAllowed( 'editmywatchlist' ) ) {
                        wfProfileOut( __METHOD__ );
                        return false;
                }
@@ -210,7 +244,7 @@ class WatchedItem {
                wfProfileIn( __METHOD__ );
 
                // Only loggedin user can have a watchlist
-               if ( wfReadOnly() || $this->mUser->isAnon() ) {
+               if ( wfReadOnly() || $this->mUser->isAnon() || !$this->isAllowed( 'editmywatchlist' ) ) {
                        wfProfileOut( __METHOD__ );
                        return false;
                }
index 20ee5e5..dbd0740 100644 (file)
@@ -1098,19 +1098,21 @@ HTML;
                                array_unshift( $ipchain, $ip );
                        }
 
-                       # Step through XFF list and find the last address in the list which is a trusted server
-                       # Set $ip to the IP address given by that trusted server, unless the address is not sensible (e.g. private)
+                       # Step through XFF list and find the last address in the list which is a
+                       # trusted server. Set $ip to the IP address given by that trusted server,
+                       # unless the address is not sensible (e.g. private). However, prefer private
+                       # IP addresses over proxy servers controlled by this site (more sensible).
                        foreach ( $ipchain as $i => $curIP ) {
                                $curIP = IP::canonicalize( $curIP );
-                               if ( wfIsTrustedProxy( $curIP ) ) {
-                                       if ( isset( $ipchain[$i + 1] ) ) {
-                                               if ( $wgUsePrivateIPs || IP::isPublic( $ipchain[$i + 1] ) ) {
-                                                       $ip = $ipchain[$i + 1];
-                                               }
+                               if ( wfIsTrustedProxy( $curIP ) && isset( $ipchain[$i + 1] ) ) {
+                                       if ( wfIsConfiguredProxy( $curIP ) || // bug 48919
+                                               ( IP::isPublic( $ipchain[$i + 1] ) || $wgUsePrivateIPs )
+                                       ) {
+                                               $ip = IP::canonicalize( $ipchain[$i + 1] );
+                                               continue;
                                        }
-                               } else {
-                                       break;
                                }
+                               break;
                        }
                }
 
@@ -1338,10 +1340,11 @@ class FauxRequest extends WebRequest {
        }
 
        /**
-        * @param $name
+        * @param string $name The name of the header to get (case insensitive).
         * @return bool|string
         */
        public function getHeader( $name ) {
+               $name = strtoupper( $name );
                return isset( $this->headers[$name] ) ? $this->headers[$name] : false;
        }
 
@@ -1350,6 +1353,7 @@ class FauxRequest extends WebRequest {
         * @param $val string
         */
        public function setHeader( $name, $val ) {
+               $name = strtoupper( $name );
                $this->headers[$name] = $val;
        }
 
index d1f645c..c2193fb 100644 (file)
@@ -54,7 +54,7 @@ class WebResponse {
        public function setcookie( $name, $value, $expire = 0, $prefix = null, $domain = null, $forceSecure = null ) {
                global $wgCookiePath, $wgCookiePrefix, $wgCookieDomain;
                global $wgCookieSecure, $wgCookieExpiration, $wgCookieHttpOnly;
-               if ( $expire == 0 ) {
+               if ( $expire == 0 && $wgCookieExpiration != 0 ) {
                        $expire = time() + $wgCookieExpiration;
                }
                if ( $prefix === null ) {
@@ -116,6 +116,8 @@ class FauxResponse extends WebResponse {
                } else {
                        list( $key, $val ) = array_map( 'trim', explode( ":", $string, 2 ) );
 
+                       $key = strtoupper( $key );
+
                        if ( $replace || !isset( $this->headers[$key] ) ) {
                                $this->headers[$key] = $val;
                        }
@@ -127,10 +129,12 @@ class FauxResponse extends WebResponse {
        }
 
        /**
-        * @param $key string
+        * @param string $key The name of the header to get (case insensitive).
         * @return string
         */
        public function getheader( $key ) {
+               $key = strtoupper( $key );
+
                if ( isset( $this->headers[$key] ) ) {
                        return $this->headers[$key];
                }
index ead6d77..f840a5e 100644 (file)
@@ -114,9 +114,14 @@ wfProfileIn( 'WebStart.php-conf' );
 # Load default settings
 require_once "$IP/includes/DefaultSettings.php";
 
+# Load composer's autoloader if present
+if ( is_readable( "$IP/vendor/autoload.php" ) ) {
+       require_once "$IP/vendor/autoload.php";
+}
+
 if ( defined( 'MW_CONFIG_CALLBACK' ) ) {
        # Use a callback function to configure MediaWiki
-       MWFunction::call( MW_CONFIG_CALLBACK );
+       call_user_func( MW_CONFIG_CALLBACK );
 } else {
        if ( !defined( 'MW_CONFIG_FILE' ) ) {
                define( 'MW_CONFIG_FILE', "$IP/LocalSettings.php" );
@@ -134,10 +139,6 @@ if ( defined( 'MW_CONFIG_CALLBACK' ) ) {
        require_once MW_CONFIG_FILE;
 }
 
-if ( $wgEnableSelenium ) {
-       require_once "$IP/includes/SeleniumWebSettings.php";
-}
-
 wfProfileOut( 'WebStart.php-conf' );
 
 wfProfileIn( 'WebStart.php-ob_start' );
index 3f7e19c..cb0f60a 100644 (file)
@@ -624,27 +624,34 @@ class MediaWiki {
                        wfShellExec( "$cmd &", $retVal );
                        wfProfileOut( __METHOD__ . '-exec' );
                } else {
-                       // Fallback to running the jobs here while the user waits
-                       $group = JobQueueGroup::singleton();
-                       do {
-                               $job = $group->pop( JobQueueGroup::USE_CACHE ); // job from any queue
-                               if ( $job ) {
-                                       $output = $job->toString() . "\n";
-                                       $t = - microtime( true );
-                                       wfProfileIn( __METHOD__ . '-' . get_class( $job ) );
-                                       $success = $job->run();
-                                       wfProfileOut( __METHOD__ . '-' . get_class( $job ) );
-                                       $group->ack( $job ); // done
-                                       $t += microtime( true );
-                                       $t = round( $t * 1000 );
-                                       if ( $success === false ) {
-                                               $output .= "Error: " . $job->getLastError() . ", Time: $t ms\n";
-                                       } else {
-                                               $output .= "Success, Time: $t ms\n";
+                       try {
+                               // Fallback to running the jobs here while the user waits
+                               $group = JobQueueGroup::singleton();
+                               do {
+                                       $job = $group->pop( JobQueueGroup::USE_CACHE ); // job from any queue
+                                       if ( $job ) {
+                                               $output = $job->toString() . "\n";
+                                               $t = - microtime( true );
+                                               wfProfileIn( __METHOD__ . '-' . get_class( $job ) );
+                                               $success = $job->run();
+                                               wfProfileOut( __METHOD__ . '-' . get_class( $job ) );
+                                               $group->ack( $job ); // done
+                                               $t += microtime( true );
+                                               $t = round( $t * 1000 );
+                                               if ( $success === false ) {
+                                                       $output .= "Error: " . $job->getLastError() . ", Time: $t ms\n";
+                                               } else {
+                                                       $output .= "Success, Time: $t ms\n";
+                                               }
+                                               wfDebugLog( 'jobqueue', $output );
                                        }
-                                       wfDebugLog( 'jobqueue', $output );
-                               }
-                       } while ( --$n && $job );
+                               } while ( --$n && $job );
+                       } catch ( MWException $e ) {
+                               // We don't want exceptions thrown during job execution to
+                               // be reported to the user since the output is already sent.
+                               // Instead we just log them.
+                               wfDebugLog( 'exception', $e->getLogMessage() );
+                       }
                }
        }
 }
index 5d90b12..da4416d 100644 (file)
@@ -40,10 +40,15 @@ class WikiMap {
                if ( $major === null ) {
                        return null;
                }
-               $canonicalServer = $wgConf->get( 'wgCanonicalServer', $wikiID, $major,
-                       array( 'lang' => $minor, 'site' => $major ) );
                $server = $wgConf->get( 'wgServer', $wikiID, $major,
                        array( 'lang' => $minor, 'site' => $major ) );
+
+               $canonicalServer = $wgConf->get( 'wgCanonicalServer', $wikiID, $major,
+                       array( 'lang' => $minor, 'site' => $major ) );
+               if ( $canonicalServer === false || $canonicalServer === null ) {
+                       $canonicalServer = $server;
+               }
+
                $path = $wgConf->get( 'wgArticlePath', $wikiID, $major,
                        array( 'lang' => $minor, 'site' => $major ) );
                return new WikiReference( $major, $minor, $canonicalServer, $path, $server );
index a3cb4b5..8cf98ed 100644 (file)
@@ -2071,7 +2071,9 @@ class WikiPage implements Page, IDBAccessObject {
 
                // Update the links tables and other secondary data
                if ( $content ) {
-                       $updates = $content->getSecondaryDataUpdates( $this->getTitle(), null, true, $editInfo->output );
+                       $recursive = $options['changed']; // bug 50785
+                       $updates = $content->getSecondaryDataUpdates(
+                               $this->getTitle(), null, $recursive, $editInfo->output );
                        DataUpdate::runUpdates( $updates );
                }
 
@@ -2109,8 +2111,7 @@ class WikiPage implements Page, IDBAccessObject {
                }
 
                DeferredUpdates::addUpdate( new SiteStatsUpdate( 0, 1, $good, $total ) );
-               DeferredUpdates::addUpdate( new SearchUpdate( $id, $title, $content->getTextForSearchIndex() ) );
-               // @todo let the search engine decide what to do with the content object
+               DeferredUpdates::addUpdate( new SearchUpdate( $id, $title, $content ) );
 
                // If this is another user's talk page, update newtalk.
                // Don't do this if $options['changed'] = false (null-edits) nor if
@@ -2344,13 +2345,21 @@ class WikiPage implements Page, IDBAccessObject {
                                return Status::newGood();
                        }
 
-                       // Only certain restrictions can cascade... Otherwise, users who cannot normally protect pages
-                       // could "protect" them by transcluding them on protected pages they are allowed to edit.
+                       // Only certain restrictions can cascade...
                        $editrestriction = isset( $limit['edit'] ) ? array( $limit['edit'] ) : $this->mTitle->getRestrictions( 'edit' );
+                       foreach ( array_keys( $editrestriction, 'sysop' ) as $key ) {
+                               $editrestriction[$key] = 'editprotected'; // backwards compatibility
+                       }
+                       foreach ( array_keys( $editrestriction, 'autoconfirmed' ) as $key ) {
+                               $editrestriction[$key] = 'editsemiprotected'; // backwards compatibility
+                       }
 
                        $cascadingRestrictionLevels = $wgCascadingRestrictionLevels;
-                       if ( in_array( 'sysop', $cascadingRestrictionLevels ) ) {
-                               $cascadingRestrictionLevels[] = 'protect'; // backwards compatibility
+                       foreach ( array_keys( $cascadingRestrictionLevels, 'sysop' ) as $key ) {
+                               $cascadingRestrictionLevels[$key] = 'editprotected'; // backwards compatibility
+                       }
+                       foreach ( array_keys( $cascadingRestrictionLevels, 'autoconfirmed' ) as $key ) {
+                               $cascadingRestrictionLevels[$key] = 'editsemiprotected'; // backwards compatibility
                        }
 
                        // The schema allows multiple restrictions
@@ -2648,7 +2657,7 @@ class WikiPage implements Page, IDBAccessObject {
        /**
         * Do some database updates after deletion
         *
-        * @param int $id page_id value of the page being deleted (B/C, currently unused)
+        * @param int $id page_id value of the page being deleted
         * @param $content Content: optional page content to be used when determining the required updates.
         *        This may be needed because $this->getContent() may already return null when the page proper was deleted.
         */
@@ -2665,6 +2674,9 @@ class WikiPage implements Page, IDBAccessObject {
 
                // Reset this object and the Title object
                $this->loadFromRow( false, self::READ_LATEST );
+
+               // Search engine
+               DeferredUpdates::addUpdate( new SearchUpdate( $id, $this->mTitle ) );
        }
 
        /**
@@ -3041,30 +3053,8 @@ class WikiPage implements Page, IDBAccessObject {
                        function() use ( $dbw, $that, $method, $added, $deleted ) {
                                $ns = $that->getTitle()->getNamespace();
 
-                               // First make sure the rows exist.  If one of the "deleted" ones didn't
-                               // exist, we might legitimately not create it, but it's simpler to just
-                               // create it and then give it a negative value, since the value is bogus
-                               // anyway.
-                               //
-                               // Sometimes I wish we had INSERT ... ON DUPLICATE KEY UPDATE.
-                               $insertCats = array_merge( $added, $deleted );
-                               if ( !$insertCats ) {
-                                       // Okay, nothing to do
-                                       return;
-                               }
-
-                               $insertRows = array();
-                               foreach ( $insertCats as $cat ) {
-                                       $insertRows[] = array(
-                                               'cat_id' => $dbw->nextSequenceValue( 'category_cat_id_seq' ),
-                                               'cat_title' => $cat
-                                       );
-                               }
-                               $dbw->insert( 'category', $insertRows, $method, 'IGNORE' );
-
                                $addFields = array( 'cat_pages = cat_pages + 1' );
                                $removeFields = array( 'cat_pages = cat_pages - 1' );
-
                                if ( $ns == NS_CATEGORY ) {
                                        $addFields[] = 'cat_subcats = cat_subcats + 1';
                                        $removeFields[] = 'cat_subcats = cat_subcats - 1';
@@ -3073,16 +3063,26 @@ class WikiPage implements Page, IDBAccessObject {
                                        $removeFields[] = 'cat_files = cat_files - 1';
                                }
 
-                               if ( $added ) {
-                                       $dbw->update(
+                               if ( count( $added ) ) {
+                                       $insertRows = array();
+                                       foreach ( $added as $cat ) {
+                                               $insertRows[] = array(
+                                                       'cat_title'   => $cat,
+                                                       'cat_pages'   => 1,
+                                                       'cat_subcats' => ( $ns == NS_CATEGORY ) ? 1 : 0,
+                                                       'cat_files'   => ( $ns == NS_FILE ) ? 1 : 0,
+                                               );
+                                       }
+                                       $dbw->upsert(
                                                'category',
+                                               $insertRows,
+                                               array( 'cat_title' ),
                                                $addFields,
-                                               array( 'cat_title' => $added ),
                                                $method
                                        );
                                }
 
-                               if ( $deleted ) {
+                               if ( count( $deleted ) ) {
                                        $dbw->update(
                                                'category',
                                                $removeFields,
@@ -3095,6 +3095,7 @@ class WikiPage implements Page, IDBAccessObject {
                                        $cat = Category::newFromName( $catName );
                                        wfRunHooks( 'CategoryAfterPageAdded', array( $cat, $that ) );
                                }
+
                                foreach ( $deleted as $catName ) {
                                        $cat = Category::newFromName( $catName );
                                        wfRunHooks( 'CategoryAfterPageRemoved', array( $cat, $that ) );
index 223061a..ac0539d 100644 (file)
@@ -195,8 +195,9 @@ class Xml {
                if ( $year ) {
                        $encYear = intval( $year );
                } elseif ( $encMonth ) {
-                       $thisMonth = intval( gmdate( 'n' ) );
-                       $thisYear = intval( gmdate( 'Y' ) );
+                       $timestamp = MWTimestamp::getInstance();
+                       $thisMonth = intval( $timestamp->format( 'n' ) );
+                       $thisYear = intval( $timestamp->format( 'Y' ) );
                        if ( intval( $encMonth ) > $thisMonth ) {
                                $thisYear--;
                        }
@@ -741,9 +742,10 @@ class Xml {
         * Output optionally includes a submit button.
         * @param array $fields Associative array, key is the name of a message that contains a description for the field, value is an HTML string containing the appropriate input.
         * @param string $submitLabel The name of a message containing a label for the submit button.
+        * @param array $submitAttribs The attributes to add to the submit button
         * @return string HTML form.
         */
-       public static function buildForm( $fields, $submitLabel = null ) {
+       public static function buildForm( $fields, $submitLabel = null, $submitAttribs = array() ) {
                $form = '';
                $form .= "<table><tbody>";
 
@@ -763,7 +765,7 @@ class Xml {
                if ( $submitLabel ) {
                        $form .= Xml::openElement( 'tr' );
                        $form .= Xml::tags( 'td', array(), '' );
-                       $form .= Xml::openElement( 'td', array( 'class' => 'mw-submit' ) ) . Xml::submitButton( wfMessage( $submitLabel )->text() ) . Xml::closeElement( 'td' );
+                       $form .= Xml::openElement( 'td', array( 'class' => 'mw-submit' ) ) . Xml::submitButton( wfMessage( $submitLabel )->text(), $submitAttribs ) . Xml::closeElement( 'td' );
                        $form .= Xml::closeElement( 'tr' );
                }
 
index 25dde7d..92ca7d8 100644 (file)
@@ -40,16 +40,52 @@ class XmlTypeCheck {
        public $rootElement = '';
 
        /**
-        * @param string $file filename
-        * @param $filterCallback callable (optional)
+        * @param string $input a filename or string containing the XML element
+        * @param callable $filterCallback (optional)
         *        Function to call to do additional custom validity checks from the
         *        SAX element handler event. This gives you access to the element
         *        namespace, name, and attributes, but not to text contents.
         *        Filter should return 'true' to toggle on $this->filterMatch
+        * @param boolean $isFile (optional) indicates if the first parameter is a
+        *        filename (default, true) or if it is a string (false)
         */
-       function __construct( $file, $filterCallback = null ) {
+       function __construct( $input, $filterCallback = null, $isFile = true ) {
                $this->filterCallback = $filterCallback;
-               $this->run( $file );
+               if ( $isFile ) {
+                       $this->validateFromFile( $input );
+               } else {
+                       $this->validateFromString( $input );
+               }
+       }
+
+       /**
+        * Alternative constructor: from filename
+        *
+        * @param string $fname the filename of an XML document
+        * @param callable $filterCallback (optional)
+        *        Function to call to do additional custom validity checks from the
+        *        SAX element handler event. This gives you access to the element
+        *        namespace, name, and attributes, but not to text contents.
+        *        Filter should return 'true' to toggle on $this->filterMatch
+        * @return XmlTypeCheck
+        */
+       public static function newFromFilename( $fname, $filterCallback = null ) {
+               return new self( $fname, $filterCallback, true );
+       }
+
+       /**
+        * Alternative constructor: from string
+        *
+        * @param string $string a string containing an XML element
+        * @param callable $filterCallback (optional)
+        *        Function to call to do additional custom validity checks from the
+        *        SAX element handler event. This gives you access to the element
+        *        namespace, name, and attributes, but not to text contents.
+        *        Filter should return 'true' to toggle on $this->filterMatch
+        * @return XmlTypeCheck
+        */
+       public static function newFromString( $string, $filterCallback = null ) {
+               return new self( $string, $filterCallback, false );
        }
 
        /**
@@ -62,15 +98,23 @@ class XmlTypeCheck {
        }
 
        /**
-        * @param $fname
+        * Get an XML parser with the root element handler.
+        * @see XmlTypeCheck::rootElementOpen()
+        * @return resource a resource handle for the XML parser
         */
-       private function run( $fname ) {
+       private function getParser() {
                $parser = xml_parser_create_ns( 'UTF-8' );
-
                // case folding violates XML standard, turn it off
                xml_parser_set_option( $parser, XML_OPTION_CASE_FOLDING, false );
-
                xml_set_element_handler( $parser, array( $this, 'rootElementOpen' ), false );
+               return $parser;
+       }
+
+       /**
+        * @param string $fname the filename
+        */
+       private function validateFromFile( $fname ) {
+               $parser = $this->getParser();
 
                if ( file_exists( $fname ) ) {
                        $file = fopen( $fname, "rb" );
@@ -79,7 +123,7 @@ class XmlTypeCheck {
                                        $chunk = fread( $file, 32768 );
                                        $ret = xml_parse( $parser, $chunk, feof( $file ) );
                                        if ( $ret == 0 ) {
-                                               // XML isn't well-formed!
+                                               $this->wellFormed = false;
                                                fclose( $file );
                                                xml_parser_free( $parser );
                                                return;
@@ -89,12 +133,26 @@ class XmlTypeCheck {
                                fclose( $file );
                        }
                }
-
                $this->wellFormed = true;
 
                xml_parser_free( $parser );
        }
 
+       /**
+        *
+        * @param string $string the XML-input-string to be checked.
+        */
+       private function validateFromString( $string ) {
+               $parser = $this->getParser();
+               $ret = xml_parse( $parser, $string, true );
+               xml_parser_free( $parser );
+               if ( $ret == 0 ) {
+                       $this->wellFormed = false;
+                       return;
+               }
+               $this->wellFormed = true;
+       }
+
        /**
         * @param $parser
         * @param $name
index f43736b..6a1edd6 100644 (file)
@@ -178,7 +178,7 @@ class HistoryAction extends FormlessAction {
                        ) .
                        Html::hidden( 'title', $this->getTitle()->getPrefixedDBkey() ) . "\n" .
                        Html::hidden( 'action', 'history' ) . "\n" .
-                       Xml::dateMenu( ( $year == null ? date( "Y" ) : $year ), $month ) . '&#160;' .
+                       Xml::dateMenu( ( $year == null ? MWTimestamp::getLocalInstance()->format( 'Y' ) : $year ), $month ) . '&#160;' .
                        ( $tagSelector ? ( implode( '&#160;', $tagSelector ) . '&#160;' ) : '' ) .
                        $checkDeleted .
                        Xml::submitButton( $this->msg( 'allpagessubmit' )->text() ) . "\n" .
@@ -262,9 +262,8 @@ class HistoryAction extends FormlessAction {
                // Get a limit on number of feed entries. Provide a sane default
                // of 10 if none is defined (but limit to $wgFeedLimit max)
                $limit = $request->getInt( 'limit', 10 );
-               if ( $limit > $wgFeedLimit || $limit < 1 ) {
-                       $limit = 10;
-               }
+               $limit = min( max( $limit, 1 ), $wgFeedLimit );
+
                $items = $this->fetchRevisions( $limit, 0, HistoryPage::DIR_NEXT );
 
                // Generate feed elements enclosed between header and footer.
@@ -373,9 +372,7 @@ class HistoryPager extends ReverseChronologicalPager {
                                array( 'rev_page' => $this->getWikiPage()->getId() ),
                                $this->conds ),
                        'options' => array( 'USE INDEX' => array( 'revision' => 'page_timestamp' ) ),
-                       'join_conds' => array(
-                               'user' => Revision::userJoinCond(),
-                               'tag_summary' => array( 'LEFT JOIN', 'ts_rev_id=rev_id' ) ),
+                       'join_conds' => array( 'user' => Revision::userJoinCond() ),
                );
                ChangeTags::modifyDisplayQuery(
                        $queryInfo['tables'],
index 7cd1f72..012a655 100644 (file)
@@ -66,8 +66,8 @@ class InfoAction extends FormlessAction {
                // Clear page info.
                $revision = WikiPage::factory( $title )->getRevision();
                if ( $revision !== null ) {
-                       $memcKey = wfMemcKey( 'infoaction', $title->getPrefixedText(), $revision->getId() );
-                       $wgMemc->delete( $memcKey );
+                       $key = wfMemcKey( 'infoaction', sha1( $title->getPrefixedText() ), $revision->getId() );
+                       $wgMemc->delete( $key );
                }
        }
 
@@ -121,7 +121,8 @@ class InfoAction extends FormlessAction {
                        foreach ( $infoTable as $infoRow ) {
                                $name = ( $infoRow[0] instanceof Message ) ? $infoRow[0]->escaped() : $infoRow[0];
                                $value = ( $infoRow[1] instanceof Message ) ? $infoRow[1]->escaped() : $infoRow[1];
-                               $table = $this->addRow( $table, $name, $value ) . "\n";
+                               $id = ( $infoRow[0] instanceof Message ) ? $infoRow[0]->getKey() : null;
+                               $table = $this->addRow( $table, $name, $value, $id ) . "\n";
                        }
                        $content = $this->addTable( $content, $table ) . "\n";
                }
@@ -156,10 +157,11 @@ class InfoAction extends FormlessAction {
         * @param string $table The table that will be added to the content
         * @param string $name The name of the row
         * @param string $value The value of the row
+        * @param string $id The ID to use for the 'tr' element
         * @return string The table with the row added
         */
-       protected function addRow( $table, $name, $value ) {
-               return $table . Html::rawElement( 'tr', array(),
+       protected function addRow( $table, $name, $value, $id ) {
+               return $table . Html::rawElement( 'tr', $id === null ? array() : array( 'id' => 'mw-' . $id ),
                        Html::rawElement( 'td', array( 'style' => 'vertical-align: top;' ), $name ) .
                        Html::rawElement( 'td', array(), $value )
                );
@@ -185,14 +187,16 @@ class InfoAction extends FormlessAction {
         * @return array
         */
        protected function pageInfo() {
-               global $wgContLang, $wgRCMaxAge, $wgMemc, $wgUnwatchedPageThreshold, $wgPageInfoTransclusionLimit;
+               global $wgContLang, $wgRCMaxAge, $wgMemc,
+                       $wgUnwatchedPageThreshold, $wgPageInfoTransclusionLimit;
 
                $user = $this->getUser();
                $lang = $this->getLanguage();
                $title = $this->getTitle();
                $id = $title->getArticleID();
 
-               $memcKey = wfMemcKey( 'infoaction', sha1( $title->getPrefixedText() ), $this->page->getLatest() );
+               $memcKey = wfMemcKey( 'infoaction',
+                       sha1( $title->getPrefixedText() ), $this->page->getLatest() );
                $pageCounts = $wgMemc->get( $memcKey );
                if ( $pageCounts === false ) {
                        // Get page information that would be too "expensive" to retrieve by normal means
index de9e1d6..929c1b5 100644 (file)
@@ -87,24 +87,72 @@ class WatchAction extends FormAction {
                return parent::checkCanExecute( $user );
        }
 
-       public static function doWatch( Title $title, User $user ) {
+       /**
+        * Watch or unwatch a page
+        * @since 1.22
+        * @param bool $watch Whether to watch or unwatch the page
+        * @param Title $title Page to watch/unwatch
+        * @param User $user User who is watching/unwatching
+        * @return Status
+        */
+       public static function doWatchOrUnwatch( $watch, Title $title, User $user ) {
+               if ( $user->isLoggedIn() && $user->isWatched( $title, WatchedItem::IGNORE_USER_RIGHTS ) != $watch ) {
+                       // If the user doesn't have 'editmywatchlist', we still want to
+                       // allow them to add but not remove items via edits and such.
+                       if ( $watch ) {
+                               return self::doWatch( $title, $user, WatchedItem::IGNORE_USER_RIGHTS );
+                       } else {
+                               return self::doUnwatch( $title, $user );
+                       }
+               }
+               return Status::newGood();
+       }
+
+       /**
+        * Watch a page
+        * @since 1.22 Returns Status, $checkRights parameter added
+        * @param Title $title Page to watch/unwatch
+        * @param User $user User who is watching/unwatching
+        * @param int $checkRights Passed through to $user->addWatch()
+        * @return Status
+        */
+       public static function doWatch( Title $title, User $user, $checkRights = WatchedItem::CHECK_USER_RIGHTS ) {
+               if ( $checkRights !== WatchedItem::IGNORE_USER_RIGHTS && !$user->isAllowed( 'editmywatchlist' ) ) {
+                       return User::newFatalPermissionDeniedStatus( 'editmywatchlist' );
+               }
+
                $page = WikiPage::factory( $title );
 
-               if ( wfRunHooks( 'WatchArticle', array( &$user, &$page ) ) ) {
-                       $user->addWatch( $title );
+               $status = Status::newFatal( 'hookaborted' );
+               if ( wfRunHooks( 'WatchArticle', array( &$user, &$page, &$status ) ) ) {
+                       $status = Status::newGood();
+                       $user->addWatch( $title, $checkRights );
                        wfRunHooks( 'WatchArticleComplete', array( &$user, &$page ) );
                }
-               return true;
+               return $status;
        }
 
+       /**
+        * Unwatch a page
+        * @since 1.22 Returns Status
+        * @param Title $title Page to watch/unwatch
+        * @param User $user User who is watching/unwatching
+        * @return Status
+        */
        public static function doUnwatch( Title $title, User $user ) {
+               if ( !$user->isAllowed( 'editmywatchlist' ) ) {
+                       return User::newFatalPermissionDeniedStatus( 'editmywatchlist' );
+               }
+
                $page = WikiPage::factory( $title );
 
-               if ( wfRunHooks( 'UnwatchArticle', array( &$user, &$page ) ) ) {
+               $status = Status::newFatal( 'hookaborted' );
+               if ( wfRunHooks( 'UnwatchArticle', array( &$user, &$page, &$status ) ) ) {
+                       $status = Status::newGood();
                        $user->removeWatch( $title );
                        wfRunHooks( 'UnwatchArticleComplete', array( &$user, &$page ) );
                }
-               return true;
+               return $status;
        }
 
        /**
index c8b05e8..2e6846d 100644 (file)
@@ -688,9 +688,9 @@ abstract class ApiBase extends ContextSource {
                        array( $this, "parameterNotEmpty" ) ) ), $required );
 
                if ( count( $intersection ) > 1 ) {
-                       $this->dieUsage( "The parameters {$p}" . implode( ", {$p}", $intersection ) . ' can not be used together', "{$p}invalidparammix" );
+                       $this->dieUsage( "The parameters {$p}" . implode( ", {$p}", $intersection ) . ' can not be used together', 'invalidparammix' );
                } elseif ( count( $intersection ) == 0 ) {
-                       $this->dieUsage( "One of the parameters {$p}" . implode( ", {$p}", $required ) . ' is required', "{$p}missingparam" );
+                       $this->dieUsage( "One of the parameters {$p}" . implode( ", {$p}", $required ) . ' is required', 'missingparam' );
                }
        }
 
@@ -724,7 +724,7 @@ abstract class ApiBase extends ContextSource {
                        array( $this, "parameterNotEmpty" ) ) ), $required );
 
                if ( count( $intersection ) > 1 ) {
-                       $this->dieUsage( "The parameters {$p}" . implode( ", {$p}", $intersection ) . ' can not be used together', "{$p}invalidparammix" );
+                       $this->dieUsage( "The parameters {$p}" . implode( ", {$p}", $intersection ) . ' can not be used together', 'invalidparammix' );
                }
        }
 
@@ -823,7 +823,7 @@ abstract class ApiBase extends ContextSource {
         */
        protected function getWatchlistValue( $watchlist, $titleObj, $userOption = null ) {
 
-               $userWatching = $this->getUser()->isWatched( $titleObj );
+               $userWatching = $this->getUser()->isWatched( $titleObj, WatchedItem::IGNORE_USER_RIGHTS );
 
                switch ( $watchlist ) {
                        case 'watch':
@@ -865,12 +865,7 @@ abstract class ApiBase extends ContextSource {
                        return;
                }
 
-               $user = $this->getUser();
-               if ( $value ) {
-                       WatchAction::doWatch( $titleObj, $user );
-               } else {
-                       WatchAction::doUnwatch( $titleObj, $user );
-               }
+               WatchAction::doWatchOrUnwatch( $value, $titleObj, $this->getUser() );
        }
 
        /**
@@ -1221,6 +1216,44 @@ abstract class ApiBase extends ContextSource {
                throw new UsageException( $description, $this->encodeParamName( $errorCode ), $httpRespCode, $extradata );
        }
 
+       /**
+        * Throw a UsageException based on the errors in the Status object.
+        *
+        * @since 1.22
+        * @param Status $status Status object
+        * @throws UsageException
+        */
+       public function dieStatus( $status ) {
+               if ( $status->isGood() ) {
+                       throw new MWException( 'Successful status passed to ApiBase::dieStatus' );
+               }
+
+               $errors = $status->getErrorsArray();
+               if ( !$errors ) {
+                       // No errors? Assume the warnings should be treated as errors
+                       $errors = $status->getWarningsArray();
+               }
+               if ( !$errors ) {
+                       // Still no errors? Punt
+                       $errors = array( array( 'unknownerror-nocode' ) );
+               }
+
+               // Cannot use dieUsageMsg() because extensions might return custom
+               // error messages.
+               if ( $errors[0] instanceof Message ) {
+                       $msg = $errors[0];
+                       $code = $msg->getKey();
+               } else {
+                       $code = array_shift( $errors[0] );
+                       $msg = wfMessage( $code, $errors[0] );
+               }
+               if ( isset( ApiBase::$messageMap[$code] ) ) {
+                       // Translate message to code, for backwards compatability
+                       $code = ApiBase::$messageMap[$code]['code'];
+               }
+               $this->dieUsage( $msg->inLanguage( 'en' )->useDatabase( false )->plain(), $code );
+       }
+
        /**
         * Array that maps message keys to error messages. $1 and friends are replaced.
         */
@@ -1371,6 +1404,7 @@ abstract class ApiBase extends ContextSource {
                'uploaddisabled' => array( 'code' => 'uploaddisabled', 'info' => 'Uploads are not enabled. Make sure $wgEnableUploads is set to true in LocalSettings.php and the PHP ini setting file_uploads is true' ),
                'copyuploaddisabled' => array( 'code' => 'copyuploaddisabled', 'info' => 'Uploads by URL is not enabled. Make sure $wgAllowCopyUploads is set to true in LocalSettings.php.' ),
                'copyuploadbaddomain' => array( 'code' => 'copyuploadbaddomain', 'info' => 'Uploads by URL are not allowed from this domain.' ),
+               'copyuploadbadurl' => array( 'code' => 'copyuploadbadurl', 'info' => 'Upload not allowed from this URL.' ),
 
                'filename-tooshort' => array( 'code' => 'filename-tooshort', 'info' => 'The filename is too short' ),
                'filename-toolong' => array( 'code' => 'filename-toolong', 'info' => 'The filename is too long' ),
@@ -1545,6 +1579,9 @@ abstract class ApiBase extends ContextSource {
                        if ( !$this->getUser()->isLoggedIn() ) {
                                $this->dieUsage( 'You must be logged-in to have a watchlist', 'notloggedin' );
                        }
+                       if ( !$this->getUser()->isAllowed( 'viewmywatchlist' ) ) {
+                               $this->dieUsage( 'You don\'t have permission to view your watchlist', 'permissiondenied' );
+                       }
                        $user = $this->getUser();
                }
                return $user;
@@ -1597,7 +1634,12 @@ abstract class ApiBase extends ContextSource {
                }
 
                if ( $this->needsToken() ) {
-                       $ret[] = array( 'missingparam', 'token' );
+                       if ( !isset( $params['token'][ApiBase::PARAM_REQUIRED] )
+                               || !$params['token'][ApiBase::PARAM_REQUIRED]
+                       ) {
+                               // Add token as possible missing parameter, if not already done
+                               $ret[] = array( 'missingparam', 'token' );
+                       }
                        $ret[] = array( 'sessionfailure' );
                }
 
index 59ff324..201634d 100644 (file)
@@ -128,17 +128,7 @@ class ApiCreateAccount extends ApiBase {
                        $result['result'] = 'needtoken';
                } elseif ( !$status->isOK() ) {
                        // There was an error. Die now.
-                       // Cannot use dieUsageMsg() directly because extensions
-                       // might return custom error messages.
-                       $errors = $status->getErrorsArray();
-                       if ( $errors[0] instanceof Message ) {
-                               $code = 'aborted';
-                               $desc = $errors[0];
-                       } else {
-                               $code = array_shift( $errors[0] );
-                               $desc = wfMessage( $code, $errors[0] );
-                       }
-                       $this->dieUsage( $desc, $code );
+                       $this->dieStatus( $status );
                } elseif ( !$status->isGood() ) {
                        // Status is not good, but OK. This means warnings.
                        $result['result'] = 'warning';
@@ -260,7 +250,7 @@ class ApiCreateAccount extends ApiBase {
                $errors = parent::getPossibleErrors();
                // All local errors are from LoginForm, which means they're actually message keys.
                foreach ( $localErrors as $error ) {
-                       $errors[] = array( 'code' => $error, 'info' => wfMessage( $error )->parse() );
+                       $errors[] = array( 'code' => $error, 'info' => wfMessage( $error )->inLanguage( 'en' )->useDatabase( false )->parse() );
                }
 
                $errors[] = array(
@@ -284,7 +274,7 @@ class ApiCreateAccount extends ApiBase {
                global $wgMinimalPasswordLength;
                $errors[] = array(
                        'code' => 'passwordtooshort',
-                       'info' => wfMessage( 'passwordtooshort', $wgMinimalPasswordLength )->parse()
+                       'info' => wfMessage( 'passwordtooshort', $wgMinimalPasswordLength )->inLanguage( 'en' )->useDatabase( false )->parse()
                );
                return $errors;
        }
index d1f0806..aea1048 100644 (file)
@@ -61,8 +61,7 @@ class ApiDelete extends ApiBase {
                        $this->dieUsageMsg( $status[0] );
                }
                if ( !$status->isGood() ) {
-                       $errors = $status->getErrorsArray();
-                       $this->dieUsageMsg( $errors[0] ); // We don't care about multiple errors, just report one of them
+                       $this->dieStatus( $status );
                }
 
                // Deprecated parameters
index 3d0b425..5b29ea6 100644 (file)
@@ -293,6 +293,10 @@ class ApiEditPage extends ApiBase {
                        $requestArray['wpWatchthis'] = '';
                }
 
+               // Pass through anything else we might have been given, to support extensions
+               // This is kind of a hack but it's the best we can do to make extensions work
+               $requestArray += $this->getRequest()->getValues();
+
                global $wgTitle, $wgRequest;
 
                $req = new DerivativeRequest( $this->getRequest(), $requestArray, true );
index 9f6b8b4..fbb70fb 100644 (file)
@@ -76,7 +76,7 @@ class ApiFeedWatchlist extends ApiBase {
                                'wlprop' => 'title|user|comment|timestamp',
                                'wldir' => 'older', // reverse order - from newest to oldest
                                'wlend' => $endTime, // stop at this time
-                               'wllimit' => ( 50 > $wgFeedLimit ) ? $wgFeedLimit : 50
+                               'wllimit' => min( 50, $wgFeedLimit )
                        );
 
                        if ( $params['wlowner'] !== null ) {
index 56af76f..f48a822 100644 (file)
@@ -57,7 +57,7 @@ class ApiImport extends ApiBase {
                        $source = ImportStreamSource::newFromUpload( 'xml' );
                }
                if ( !$source->isOK() ) {
-                       $this->dieUsageMsg( $source->getErrorsArray() );
+                       $this->dieStatus( $source );
                }
 
                $importer = new WikiImporter( $source->value );
@@ -67,7 +67,7 @@ class ApiImport extends ApiBase {
                if ( isset( $params['rootpage'] ) ) {
                        $statusRootPage = $importer->setTargetRootPage( $params['rootpage'] );
                        if ( !$statusRootPage->isGood() ) {
-                               $this->dieUsageMsg( $statusRootPage->getErrorsArray() );
+                               $this->dieStatus( $statusRootPage );
                        }
                }
                $reporter = new ApiImportReporter(
index 5ddb3ab..49a0b3c 100644 (file)
@@ -769,7 +769,7 @@ class ApiMain extends ApiBase {
         */
        protected function checkExecutePermissions( $module ) {
                $user = $this->getUser();
-               if ( $module->isReadMode() && !User::groupHasPermission( '*', 'read' ) &&
+               if ( $module->isReadMode() && !User::isEveryoneAllowed( 'read' ) &&
                        !$user->isAllowed( 'read' ) )
                {
                        $this->dieUsageMsg( 'readrequired' );
index 8c996a2..720025f 100644 (file)
@@ -42,6 +42,10 @@ class ApiOptions extends ApiBase {
                        $this->dieUsage( 'Anonymous users cannot change preferences', 'notloggedin' );
                }
 
+               if ( !$user->isAllowed( 'editmyoptions' ) ) {
+                       $this->dieUsage( 'You don\'t have permission to edit your options', 'permissiondenied' );
+               }
+
                $params = $this->extractRequestParams();
                $changed = false;
 
index 9fdad2b..b05cb2b 100644 (file)
@@ -152,7 +152,6 @@ class ApiPageSet extends ApiBase {
                        if ( !$isDryRun ) {
                                $generator->executeGenerator( $this );
                                wfRunHooks( 'APIQueryGeneratorAfterExecute', array( &$generator, &$this ) );
-                               $this->resolvePendingRedirects();
                        } else {
                                // Prevent warnings from being reported on these parameters
                                $main = $this->getMain();
@@ -163,6 +162,10 @@ class ApiPageSet extends ApiBase {
                        $generator->profileOut();
                        $this->profileIn();
 
+                       if ( !$isDryRun ) {
+                               $this->resolvePendingRedirects();
+                       }
+
                        if ( !$isQuery ) {
                                // If this pageset is not part of the query, we called profileIn() above
                                $dbSource->profileOut();
index bde1d99..a369994 100644 (file)
@@ -44,6 +44,14 @@ class ApiParse extends ApiBase {
                $params = $this->extractRequestParams();
                $text = $params['text'];
                $title = $params['title'];
+               if ( $title === null ) {
+                       $titleProvided = false;
+                       // A title is needed for parsing, so arbitrarily choose one
+                       $title = 'API';
+               } else {
+                       $titleProvided = true;
+               }
+
                $page = $params['page'];
                $pageid = $params['pageid'];
                $oldid = $params['oldid'];
@@ -51,7 +59,7 @@ class ApiParse extends ApiBase {
                $model = $params['contentmodel'];
                $format = $params['contentformat'];
 
-               if ( !is_null( $page ) && ( !is_null( $text ) || $title != 'API' ) ) {
+               if ( !is_null( $page ) && ( !is_null( $text ) || $titleProvided ) ) {
                        $this->dieUsage( 'The page parameter cannot be used together with the text and title parameters', 'params' );
                }
 
@@ -94,8 +102,7 @@ class ApiParse extends ApiBase {
                                $titleObj = $rev->getTitle();
                                $wgTitle = $titleObj;
                                $pageObj = WikiPage::factory( $titleObj );
-                               $popts = $pageObj->makeParserOptions( $this->getContext() );
-                               $popts->enableLimitReport( !$params['disablepp'] );
+                               $popts = $this->makeParserOptions( $pageObj, $params );
 
                                // If for some reason the "oldid" is actually the current revision, it may be cached
                                if ( $rev->isCurrent() ) {
@@ -152,8 +159,7 @@ class ApiParse extends ApiBase {
                                        $oldid = $pageObj->getLatest();
                                }
 
-                               $popts = $pageObj->makeParserOptions( $this->getContext() );
-                               $popts->enableLimitReport( !$params['disablepp'] );
+                               $popts = $this->makeParserOptions( $pageObj, $params );
 
                                // Potentially cached
                                $p_result = $this->getParsedContent( $pageObj, $popts, $pageid,
@@ -170,11 +176,24 @@ class ApiParse extends ApiBase {
                        $wgTitle = $titleObj;
                        $pageObj = WikiPage::factory( $titleObj );
 
-                       $popts = $pageObj->makeParserOptions( $this->getContext() );
-                       $popts->enableLimitReport( !$params['disablepp'] );
+                       $popts = $this->makeParserOptions( $pageObj, $params );
 
                        if ( is_null( $text ) ) {
-                               $this->dieUsage( 'The text parameter should be passed with the title parameter. Should you be using the "page" parameter instead?', 'params' );
+                               if ( $titleProvided && ( $prop || $params['generatexml'] ) ) {
+                                       $this->setWarning(
+                                               "'title' used without 'text', and parsed page properties were requested " .
+                                               "(did you mean to use 'page' instead of 'title'?)"
+                                       );
+                               }
+                               // Prevent warning from ContentHandler::makeContent()
+                               $text = '';
+                       }
+
+                       // If we are parsing text, do not use the content model of the default
+                       // API title, but default to wikitext to keep BC.
+                       if ( !$titleProvided && is_null( $model ) ) {
+                               $model = CONTENT_MODEL_WIKITEXT;
+                               $this->setWarning( "No 'title' or 'contentmodel' was given, assuming $model." );
                        }
 
                        try {
@@ -359,6 +378,26 @@ class ApiParse extends ApiBase {
                }
        }
 
+       /**
+        * Constructs a ParserOptions object
+        *
+        * @param WikiPage $pageObj
+        * @param array $params
+        *
+        * @return ParserOptions
+        */
+       protected function makeParserOptions( WikiPage $pageObj, array $params ) {
+               wfProfileIn( __METHOD__ );
+
+               $popts = $pageObj->makeParserOptions( $this->getContext() );
+               $popts->enableLimitReport( !$params['disablepp'] );
+               $popts->setIsPreview( $params['preview'] || $params['sectionpreview'] );
+               $popts->setIsSectionPreview( $params['sectionpreview'] );
+
+               wfProfileOut( __METHOD__ );
+               return $popts;
+       }
+
        /**
         * @param $page WikiPage
         * @param $popts ParserOptions
@@ -551,9 +590,7 @@ class ApiParse extends ApiBase {
 
        public function getAllowedParams() {
                return array(
-                       'title' => array(
-                               ApiBase::PARAM_DFLT => 'API',
-                       ),
+                       'title' => null,
                        'text' => null,
                        'summary' => null,
                        'page' => null,
@@ -594,6 +631,8 @@ class ApiParse extends ApiBase {
                        'section' => null,
                        'disablepp' => false,
                        'generatexml' => false,
+                       'preview' => false,
+                       'sectionpreview' => false,
                        'contentformat' => array(
                                ApiBase::PARAM_TYPE => ContentHandler::getAllContentFormats(),
                        ),
@@ -605,11 +644,13 @@ class ApiParse extends ApiBase {
 
        public function getParamDescription() {
                $p = $this->getModulePrefix();
+               $wikitext = CONTENT_MODEL_WIKITEXT;
                return array(
-                       'text' => 'Wikitext to parse',
+                       'text' => "Text to parse. Use {$p}title or {$p}contentmodel to control the content model",
                        'summary' => 'Summary to parse',
                        'redirects' => "If the {$p}page or the {$p}pageid parameter is set to a redirect, resolve it",
-                       'title' => 'Title of page the text belongs to',
+                       'title' => "Title of page the text belongs to. " .
+                               "If omitted, \"API\" is used as the title with content model $wikitext",
                        'page' => "Parse the content of this page. Cannot be used together with {$p}text and {$p}title",
                        'pageid' => "Parse the content of this page. Overrides {$p}page",
                        'oldid' => "Parse the content of this revision. Overrides {$p}page and {$p}pageid",
@@ -639,32 +680,46 @@ class ApiParse extends ApiBase {
                        ),
                        'pst' => array(
                                'Do a pre-save transform on the input before parsing it',
-                               'Ignored if page, pageid or oldid is used'
+                               "Only valid when used with {$p}text",
                        ),
                        'onlypst' => array(
                                'Do a pre-save transform (PST) on the input, but don\'t parse it',
-                               'Returns the same wikitext, after a PST has been applied. Ignored if page, pageid or oldid is used'
+                               'Returns the same wikitext, after a PST has been applied.',
+                               "Only valid when used with {$p}text",
                        ),
                        'uselang' => 'Which language to parse the request in',
                        'section' => 'Only retrieve the content of this section number',
                        'disablepp' => 'Disable the PP Report from the parser output',
-                       'generatexml' => 'Generate XML parse tree (requires prop=wikitext)',
-                       'contentformat' => 'Content serialization format used for the input text',
-                       'contentmodel' => 'Content model of the new content',
+                       'generatexml' => "Generate XML parse tree (requires contentmodel=$wikitext)",
+                       'preview' => 'Parse in preview mode',
+                       'sectionpreview' => 'Parse in section preview mode (enables preview mode too)',
+                       'contentformat' => array(
+                               'Content serialization format used for the input text',
+                               "Only valid when used with {$p}text",
+                       ),
+                       'contentmodel' => array(
+                               "Content model of the input text. Default is the model of the " .
+                               "specified ${p}title, or $wikitext if ${p}title is not specified",
+                               "Only valid when used with {$p}text",
+                       ),
                );
        }
 
        public function getDescription() {
+               $p = $this->getModulePrefix();
                return array(
-                       'Parses wikitext and returns parser output',
+                       'Parses content and returns parser output',
                        'See the various prop-Modules of action=query to get information from the current version of a page',
+                       'There are several ways to specify the text to parse:',
+                       "1) Specify a page or revision, using {$p}page, {$p}pageid, or {$p}oldid.",
+                       "2) Specify content explicitly, using {$p}text, {$p}title, and {$p}contentmodel.",
+                       "3) Specify only a summary to parse. {$p}prop should be given an empty value.",
                );
        }
 
        public function getPossibleErrors() {
                return array_merge( parent::getPossibleErrors(), array(
                        array( 'code' => 'params', 'info' => 'The page parameter cannot be used together with the text and title parameters' ),
-                       array( 'code' => 'params', 'info' => 'The text parameter should be passed with the title parameter. Should you be using the "page" parameter instead?' ),
                        array( 'code' => 'missingrev', 'info' => 'There is no revision ID oldid' ),
                        array( 'code' => 'permissiondenied', 'info' => 'You don\'t have permission to view deleted revisions' ),
                        array( 'code' => 'missingtitle', 'info' => 'The page you specified doesn\'t exist' ),
@@ -679,7 +734,10 @@ class ApiParse extends ApiBase {
 
        public function getExamples() {
                return array(
-                       'api.php?action=parse&text={{Project:Sandbox}}'
+                       'api.php?action=parse&page=Project:Sandbox' => 'Parse a page',
+                       'api.php?action=parse&text={{Project:Sandbox}}' => 'Parse wikitext',
+                       'api.php?action=parse&text={{PAGENAME}}&title=Test' => 'Parse wikitext, specifying the page title',
+                       'api.php?action=parse&summary=Some+[[link]]&prop=' => 'Parse a summary',
                );
        }
 
index 4d4fbba..bd2fde2 100644 (file)
@@ -35,11 +35,27 @@ class ApiPatrol extends ApiBase {
         */
        public function execute() {
                $params = $this->extractRequestParams();
-
-               $rc = RecentChange::newFromID( $params['rcid'] );
-               if ( !$rc instanceof RecentChange ) {
-                       $this->dieUsageMsg( array( 'nosuchrcid', $params['rcid'] ) );
+               $this->requireOnlyOneParameter( $params, 'rcid', 'revid' );
+
+               if ( isset( $params['rcid'] ) ) {
+                       $rc = RecentChange::newFromID( $params['rcid'] );
+                       if ( !$rc ) {
+                               $this->dieUsageMsg( array( 'nosuchrcid', $params['rcid'] ) );
+                       }
+               } else {
+                       $rev = Revision::newFromId( $params['revid'] );
+                       if ( !$rev ) {
+                               $this->dieUsageMsg( array( 'nosuchrevid', $params['revid'] ) );
+                       }
+                       $rc = $rev->getRecentChange();
+                       if ( !$rc ) {
+                               $this->dieUsage(
+                                       'The revision ' . $params['revid'] . " can't be patrolled as it's too old",
+                                       'notpatrollable'
+                               );
+                       }
                }
+
                $retval = $rc->doMarkPatrolled( $this->getUser() );
 
                if ( $retval ) {
@@ -66,8 +82,10 @@ class ApiPatrol extends ApiBase {
                                ApiBase::PARAM_REQUIRED => true
                        ),
                        'rcid' => array(
-                               ApiBase::PARAM_TYPE => 'integer',
-                               ApiBase::PARAM_REQUIRED => true
+                               ApiBase::PARAM_TYPE => 'integer'
+                       ),
+                       'revid' => array(
+                               ApiBase::PARAM_TYPE => 'integer'
                        ),
                );
        }
@@ -76,6 +94,7 @@ class ApiPatrol extends ApiBase {
                return array(
                        'token' => 'Patrol token obtained from list=recentchanges',
                        'rcid' => 'Recentchanges ID to patrol',
+                       'revid' => 'Revision ID to patrol',
                );
        }
 
@@ -94,8 +113,16 @@ class ApiPatrol extends ApiBase {
        }
 
        public function getPossibleErrors() {
-               return array_merge( parent::getPossibleErrors(), array(
-                       array( 'nosuchrcid', 'rcid' ),
+               return array_merge(
+                       parent::getPossibleErrors(),
+                       parent::getRequireOnlyOneParameterErrorMessages( array( 'rcid', 'revid' ) ),
+                       array(
+                               array( 'nosuchrcid', 'rcid' ),
+                               array( 'nosuchrevid', 'revid' ),
+                               array(
+                                       'code' => 'notpatrollable',
+                                       'info' => "The revision can't be patrolled as it's too old"
+                               )
                ) );
        }
 
@@ -109,7 +136,8 @@ class ApiPatrol extends ApiBase {
 
        public function getExamples() {
                return array(
-                       'api.php?action=patrol&token=123abc&rcid=230672766'
+                       'api.php?action=patrol&token=123abc&rcid=230672766',
+                       'api.php?action=patrol&token=123abc&revid=230672766'
                );
        }
 
index 503c692..7830c8b 100644 (file)
@@ -103,8 +103,7 @@ class ApiProtect extends ApiBase {
                $status = $pageObj->doUpdateRestrictions( $protections, $expiryarray, $cascade, $params['reason'], $this->getUser() );
 
                if ( !$status->isOK() ) {
-                       $errors = $status->getErrorsArray();
-                       $this->dieUsageMsg( $errors[0] );
+                       $this->dieStatus( $status );
                }
                $res = array(
                        'title' => $titleObj->getPrefixedText(),
index b68dc5c..e2eae61 100644 (file)
@@ -64,6 +64,7 @@ class ApiPurge extends ApiBase {
                $params = $this->extractRequestParams();
 
                $forceLinkUpdate = $params['forcelinkupdate'];
+               $forceRecursiveLinkUpdate = $params['forcerecursivelinkupdate'];
                $pageSet = $this->getPageSet();
                $pageSet->execute();
 
@@ -82,7 +83,7 @@ class ApiPurge extends ApiBase {
                        $page->doPurge(); // Directly purge and skip the UI part of purge().
                        $r['purged'] = '';
 
-                       if ( $forceLinkUpdate ) {
+                       if ( $forceLinkUpdate || $forceRecursiveLinkUpdate ) {
                                if ( !$this->getUser()->pingLimiter() ) {
                                        global $wgEnableParserCache;
 
@@ -93,7 +94,8 @@ class ApiPurge extends ApiBase {
                                        $p_result = $content->getParserOutput( $title, $page->getLatest(), $popts, $wgEnableParserCache );
 
                                        # Update the links tables
-                                       $updates = $content->getSecondaryDataUpdates( $title, null, true, $p_result );
+                                       $updates = $content->getSecondaryDataUpdates(
+                                               $title, null, $forceRecursiveLinkUpdate, $p_result );
                                        DataUpdate::runUpdates( $updates );
 
                                        $r['linkupdate'] = '';
@@ -150,7 +152,10 @@ class ApiPurge extends ApiBase {
        }
 
        public function getAllowedParams( $flags = 0 ) {
-               $result = array( 'forcelinkupdate' => false );
+               $result = array(
+                       'forcelinkupdate' => false,
+                       'forcerecursivelinkupdate' => false
+               );
                if ( $flags ) {
                        $result += $this->getPageSet()->getFinalParams( $flags );
                }
@@ -159,7 +164,11 @@ class ApiPurge extends ApiBase {
 
        public function getParamDescription() {
                return $this->getPageSet()->getFinalParamDescription()
-                       + array( 'forcelinkupdate' => 'Update the links tables' );
+                       + array(
+                               'forcelinkupdate' => 'Update the links tables',
+                               'forcerecursivelinkupdate' => 'Update the links table, and update ' .
+                                       'the links tables for any page that uses this page as a template',
+                       );
        }
 
        public function getResultProperties() {
index e355f8b..3744e3c 100644 (file)
@@ -40,8 +40,8 @@ class ApiQueryAllLinks extends ApiQueryGeneratorBase {
                                $this->dfltNamespace = NS_MAIN;
                                $this->indexTag = 'l';
                                $this->description = 'Enumerate all links that point to a given namespace';
-                               $this->descriptionLink = 'link';
-                               $this->descriptionLinked = 'linked';
+                               $this->descriptionWhat = 'link';
+                               $this->descriptionTargets = 'linked titles';
                                $this->descriptionLinking = 'linking';
                                break;
                        case 'alltransclusions':
@@ -51,8 +51,8 @@ class ApiQueryAllLinks extends ApiQueryGeneratorBase {
                                $this->dfltNamespace = NS_TEMPLATE;
                                $this->indexTag = 't';
                                $this->description = 'List all transclusions (pages embedded using {{x}}), including non-existing';
-                               $this->descriptionLink = 'transclusion';
-                               $this->descriptionLinked = 'transcluded';
+                               $this->descriptionWhat = 'transclusion';
+                               $this->descriptionTargets = 'transcluded titles';
                                $this->descriptionLinking = 'transcluding';
                                break;
                        default:
@@ -90,7 +90,7 @@ class ApiQueryAllLinks extends ApiQueryGeneratorBase {
                if ( $params['unique'] ) {
                        if ( $fld_ids ) {
                                $this->dieUsage(
-                                       "{$this->getModuleName()} cannot return corresponding page ids in unique {$this->descriptionLink}s mode",
+                                       "{$this->getModuleName()} cannot return corresponding page ids in unique {$this->descriptionWhat}s mode",
                                        'params' );
                        }
                        $this->addOption( 'DISTINCT' );
@@ -232,23 +232,24 @@ class ApiQueryAllLinks extends ApiQueryGeneratorBase {
 
        public function getParamDescription() {
                $p = $this->getModulePrefix();
-               $link = $this->descriptionLink;
+               $what = $this->descriptionWhat;
+               $targets = $this->descriptionTargets;
                $linking = $this->descriptionLinking;
                return array(
-                       'from' => "The title of the $link to start enumerating from",
-                       'to' => "The title of the $link to stop enumerating at",
-                       'prefix' => "Search for all $link titles that begin with this value",
+                       'from' => "The title of the $what to start enumerating from",
+                       'to' => "The title of the $what to stop enumerating at",
+                       'prefix' => "Search for all $targets that begin with this value",
                        'unique' => array(
-                                       "Only show distinct $link titles. Cannot be used with {$p}prop=ids.",
-                                       'When used as a generator, yields target pages instead of source pages.',
+                               "Only show distinct $targets. Cannot be used with {$p}prop=ids.",
+                               'When used as a generator, yields target pages instead of source pages.',
                        ),
                        'prop' => array(
                                'What pieces of information to include',
                                " ids    - Adds the pageid of the $linking page (Cannot be used with {$p}unique)",
-                               " title  - Adds the title of the $link",
+                               " title  - Adds the title of the $what",
                        ),
                        'namespace' => 'The namespace to enumerate',
-                       'limit' => "How many total items to return",
+                       'limit' => 'How many total items to return',
                        'continue' => 'When more results are available, use this to continue',
                        'dir' => 'The direction in which to list',
                );
@@ -272,29 +273,31 @@ class ApiQueryAllLinks extends ApiQueryGeneratorBase {
 
        public function getPossibleErrors() {
                $m = $this->getModuleName();
-               $link = $this->descriptionLink;
+               $what = $this->descriptionWhat;
                return array_merge( parent::getPossibleErrors(), array(
-                       array( 'code' => 'params', 'info' => "{$m} cannot return corresponding page ids in unique {$link}s mode" ),
+                       array( 'code' => 'params', 'info' => "{$m} cannot return corresponding page ids in unique {$what}s mode" ),
                ) );
        }
 
        public function getExamples() {
                $p = $this->getModulePrefix();
-               $link = $this->descriptionLink;
-               $linked = $this->descriptionLinked;
+               $name = $this->getModuleName();
+               $what = $this->descriptionWhat;
+               $targets = $this->descriptionTargets;
                return array(
-                       "api.php?action=query&list=all{$link}s&{$p}from=B&{$p}prop=ids|title"
-                                       => "List $linked titles with page ids they are from, including missing ones. Start at B",
-                       "api.php?action=query&list=all{$link}s&{$p}unique=&{$p}from=B"
-                                       => "List unique $linked titles",
-                       "api.php?action=query&generator=all{$link}s&g{$p}unique=&g{$p}from=B"
-                                       => "Gets all $link targets, marking the missing ones",
-                       "api.php?action=query&generator=all{$link}s&g{$p}from=B"
-                                       => "Gets pages containing the {$link}s",
+                       "api.php?action=query&list={$name}&{$p}from=B&{$p}prop=ids|title"
+                                       => "List $targets with page ids they are from, including missing ones. Start at B",
+                       "api.php?action=query&list={$name}&{$p}unique=&{$p}from=B"
+                                       => "List unique $targets",
+                       "api.php?action=query&generator={$name}&g{$p}unique=&g{$p}from=B"
+                                       => "Gets all $targets, marking the missing ones",
+                       "api.php?action=query&generator={$name}&g{$p}from=B"
+                                       => "Gets pages containing the {$what}s",
                );
        }
 
        public function getHelpUrls() {
-               return "https://www.mediawiki.org/wiki/API:All{$this->descriptionLink}s";
+               $name = ucfirst( $this->getModuleName() );
+               return "https://www.mediawiki.org/wiki/API:{$name}";
        }
 }
index 881269f..e3c27f5 100644 (file)
@@ -91,18 +91,30 @@ class ApiQueryBlocks extends ApiQueryBase {
                        $this->addWhereFld( 'ipb_auto', 0 );
                }
                if ( isset( $params['ip'] ) ) {
-                       list( $ip, $range ) = IP::parseCIDR( $params['ip'] );
-                       if ( $ip && $range ) {
-                               // We got a CIDR range
-                               if ( $range < 16 ) {
-                                       $this->dieUsage( 'CIDR ranges broader than /16 are not accepted', 'cidrtoobroad' );
-                               }
-                               $lower = wfBaseConvert( $ip, 10, 16, 8, false );
-                               $upper = wfBaseConvert( $ip + pow( 2, 32 - $range ) - 1, 10, 16, 8, false );
+                       global $wgBlockCIDRLimit;
+                       if ( IP::isIPv4( $params['ip'] ) ) {
+                               $type = 'IPv4';
+                               $cidrLimit = $wgBlockCIDRLimit['IPv4'];
+                               $prefixLen = 0;
+                       } elseif ( IP::isIPv6( $params['ip'] ) ) {
+                               $type = 'IPv6';
+                               $cidrLimit = $wgBlockCIDRLimit['IPv6'];
+                               $prefixLen = 3; // IP::toHex output is prefixed with "v6-"
                        } else {
-                               $lower = $upper = IP::toHex( $params['ip'] );
+                               $this->dieUsage( 'IP parameter is not valid', 'param_ip' );
+                       }
+
+                       # Check range validity, if it's a CIDR
+                       list( $ip, $range ) = IP::parseCIDR( $params['ip'] );
+                       if ( $ip !== false && $range !== false && $range < $cidrLimit ) {
+                               $this->dieUsage( "$type CIDR ranges broader than /$cidrLimit are not accepted", 'cidrtoobroad' );
                        }
-                       $prefix = substr( $lower, 0, 4 );
+
+                       # Let IP::parseRange handle calculating $upper, instead of duplicating the logic here.
+                       list( $lower, $upper ) = IP::parseRange( $params['ip'] );
+
+                       # Extract the common prefix to any rangeblock affecting this IP/CIDR
+                       $prefix = substr( $lower, 0, $prefixLen + floor( $cidrLimit / 4 ) );
 
                        # Fairly hard to make a malicious SQL statement out of hex characters,
                        # but it is good practice to add quotes
@@ -295,6 +307,7 @@ class ApiQueryBlocks extends ApiQueryBase {
        }
 
        public function getParamDescription() {
+               global $wgBlockCIDRLimit;
                $p = $this->getModulePrefix();
                return array(
                        'start' => 'The timestamp to start enumerating from',
@@ -302,8 +315,12 @@ class ApiQueryBlocks extends ApiQueryBase {
                        'dir' => $this->getDirectionDescription( $p ),
                        'ids' => 'List of block IDs to list (optional)',
                        'users' => 'List of users to search for (optional)',
-                       'ip' => array( 'Get all blocks applying to this IP or CIDR range, including range blocks.',
-                                       'Cannot be used together with bkusers. CIDR ranges broader than /16 are not accepted' ),
+                       'ip' => array(
+                               'Get all blocks applying to this IP or CIDR range, including range blocks.',
+                               "Cannot be used together with bkusers. CIDR ranges broader than " .
+                                       "IPv4/{$wgBlockCIDRLimit['IPv4']} or IPv6/{$wgBlockCIDRLimit['IPv6']} " .
+                                       "are not accepted"
+                       ),
                        'limit' => 'The maximum amount of blocks to list',
                        'prop' => array(
                                'Which properties to get',
@@ -384,10 +401,19 @@ class ApiQueryBlocks extends ApiQueryBase {
        }
 
        public function getPossibleErrors() {
+               global $wgBlockCIDRLimit;
                return array_merge( parent::getPossibleErrors(),
                        $this->getRequireOnlyOneParameterErrorMessages( array( 'users', 'ip' ) ),
                        array(
-                               array( 'code' => 'cidrtoobroad', 'info' => 'CIDR ranges broader than /16 are not accepted' ),
+                               array(
+                                       'code' => 'cidrtoobroad',
+                                       'info' => "IPv4 CIDR ranges broader than /{$wgBlockCIDRLimit['IPv4']} are not accepted"
+                               ),
+                               array(
+                                       'code' => 'cidrtoobroad',
+                                       'info' => "IPv6 CIDR ranges broader than /{$wgBlockCIDRLimit['IPv6']} are not accepted"
+                               ),
+                               array( 'code' => 'param_ip', 'info' => 'IP parameter is not valid' ),
                                array( 'code' => 'param_user', 'info' => 'User parameter may not be empty' ),
                                array( 'code' => 'param_user', 'info' => 'User name user is not valid' ),
                                array( 'show' ),
index 124d273..456e87b 100644 (file)
@@ -218,13 +218,13 @@ class ApiQueryExtLinksUsage extends ApiQueryGeneratorBase {
                        ),
                        'offset' => 'Used for paging. Use the value returned for "continue"',
                        'protocol' => array(
-                               "Protocol of the url. If empty and {$p}query set, the protocol is http.",
+                               "Protocol of the URL. If empty and {$p}query set, the protocol is http.",
                                "Leave both this and {$p}query empty to list all external links"
                        ),
                        'query' => 'Search string without protocol. See [[Special:LinkSearch]]. Leave empty to list all external links',
                        'namespace' => 'The page namespace(s) to enumerate.',
                        'limit' => 'How many pages to return.',
-                       'expandurl' => 'Expand protocol-relative urls with the canonical protocol',
+                       'expandurl' => 'Expand protocol-relative URLs with the canonical protocol',
                );
 
                if ( $wgMiserMode ) {
index 56ee268..583ef69 100644 (file)
@@ -131,11 +131,11 @@ class ApiQueryExternalLinks extends ApiQueryBase {
                        'limit' => 'How many links to return',
                        'offset' => 'When more results are available, use this to continue',
                        'protocol' => array(
-                               "Protocol of the url. If empty and {$p}query set, the protocol is http.",
+                               "Protocol of the URL. If empty and {$p}query set, the protocol is http.",
                                "Leave both this and {$p}query empty to list all external links"
                        ),
                        'query' => 'Search string without protocol. Useful for checking whether a certain page contains a certain external url',
-                       'expandurl' => 'Expand protocol-relative urls with the canonical protocol',
+                       'expandurl' => 'Expand protocol-relative URLs with the canonical protocol',
                );
        }
 
@@ -148,7 +148,7 @@ class ApiQueryExternalLinks extends ApiQueryBase {
        }
 
        public function getDescription() {
-               return 'Returns all external urls (not interwikis) from the given page(s)';
+               return 'Returns all external URLs (not interwikis) from the given page(s)';
        }
 
        public function getPossibleErrors() {
index 4849f40..40041d8 100644 (file)
@@ -231,10 +231,18 @@ class ApiQueryImageInfo extends ApiQueryBase {
         * @return Array of parameters for transform.
         */
        protected function mergeThumbParams( $image, $thumbParams, $otherParams ) {
+               global $wgThumbLimits;
 
                if ( !isset( $thumbParams['width'] ) && isset( $thumbParams['height'] ) ) {
-                       // Populate the width with the image's width, so only the height restriction applies
-                       $thumbParams['width'] = $image->getWidth();
+                       // We want to limit only by height in this situation, so pass the
+                       // image's full width as the limiting width. But some file types
+                       // don't have a width of their own, so pick something arbitrary so
+                       // thumbnailing the default icon works.
+                       if ( $image->getWidth() <= 0 ) {
+                               $thumbParams['width'] = max( $wgThumbLimits );
+                       } else {
+                               $thumbParams['width'] = $image->getWidth();
+                       }
                }
 
                if ( !$otherParams ) {
@@ -469,7 +477,7 @@ class ApiQueryImageInfo extends ApiQueryBase {
                if ( $start === null ) {
                        $start = $img->getTimestamp();
                }
-               return $img->getOriginalTitle()->getText() . '|' . $start;
+               return $img->getOriginalTitle()->getDBkey() . '|' . $start;
        }
 
        public function getAllowedParams() {
index 5f8c497..017684e 100644 (file)
@@ -669,7 +669,9 @@ class ApiQueryInfo extends ApiQueryBase {
        private function getWatchedInfo() {
                $user = $this->getUser();
 
-               if ( $user->isAnon() || count( $this->everything ) == 0 ) {
+               if ( $user->isAnon() || count( $this->everything ) == 0
+                       || !$user->isAllowed( 'viewmywatchlist' )
+               ) {
                        return;
                }
 
index 2aa5c28..1a2719e 100644 (file)
@@ -67,7 +67,7 @@ class ApiQueryLogEvents extends ApiQueryBase {
                $this->addTables( array( 'logging', 'user', 'page' ) );
                $this->addOption( 'STRAIGHT_JOIN' );
                $this->addJoinConds( array(
-                       'user' => array( 'JOIN',
+                       'user' => array( 'LEFT JOIN',
                                'user_id=log_user' ),
                        'page' => array( 'LEFT JOIN',
                                array( 'log_namespace=page_namespace',
@@ -82,8 +82,8 @@ class ApiQueryLogEvents extends ApiQueryBase {
                ) );
 
                $this->addFieldsIf( array( 'log_id', 'page_id' ), $this->fld_ids );
-               $this->addFieldsIf( array( 'log_user', 'user_name' ), $this->fld_user );
-               $this->addFieldsIf( 'user_id', $this->fld_userid );
+               $this->addFieldsIf( array( 'log_user', 'log_user_text', 'user_name' ), $this->fld_user );
+               $this->addFieldsIf( 'log_user', $this->fld_userid );
                $this->addFieldsIf( array( 'log_namespace', 'log_title' ), $this->fld_title || $this->fld_parsedcomment );
                $this->addFieldsIf( 'log_comment', $this->fld_comment || $this->fld_parsedcomment );
                $this->addFieldsIf( 'log_params', $this->fld_details );
@@ -98,8 +98,7 @@ class ApiQueryLogEvents extends ApiQueryBase {
                        $this->addTables( 'change_tag' );
                        $this->addJoinConds( array( 'change_tag' => array( 'INNER JOIN', array( 'log_id=ct_log_id' ) ) ) );
                        $this->addWhereFld( 'ct_tag', $params['tag'] );
-                       global $wgOldChangeTagsIndex;
-                       $index['change_tag'] = $wgOldChangeTagsIndex ? 'ct_tag' : 'change_tag_tag_id';
+                       $index['change_tag'] = 'change_tag_tag_id';
                }
 
                if ( !is_null( $params['action'] ) ) {
@@ -336,10 +335,10 @@ class ApiQueryLogEvents extends ApiQueryBase {
                                $vals['userhidden'] = '';
                        } else {
                                if ( $this->fld_user ) {
-                                       $vals['user'] = $row->user_name;
+                                       $vals['user'] = $row->user_name === null ? $row->log_user_text : $row->user_name;
                                }
                                if ( $this->fld_userid ) {
-                                       $vals['userid'] = $row->user_id;
+                                       $vals['userid'] = $row->log_user;
                                }
 
                                if ( !$row->log_user ) {
index c15da1a..79fe049 100644 (file)
 class ApiQueryQueryPage extends ApiQueryGeneratorBase {
        private $qpMap;
 
-       /**
-        * Some query pages are useless because they're available elsewhere in the API
-        */
-       private $uselessQueryPages = array(
-               'MIMEsearch', // aiprop=mime
-               'LinkSearch', // list=exturlusage
-               'FileDuplicateSearch', // prop=duplicatefiles
-       );
-
        public function __construct( $query, $moduleName ) {
                parent::__construct( $query, $moduleName, 'qp' );
                // We need to do this to make sure $wgQueryPages is set up
@@ -49,10 +40,10 @@ class ApiQueryQueryPage extends ApiQueryGeneratorBase {
                require_once "$IP/includes/QueryPage.php";
 
                // Build mapping from special page names to QueryPage classes
-               global $wgQueryPages;
+               global $wgQueryPages, $wgAPIUselessQueryPages;
                $this->qpMap = array();
                foreach ( $wgQueryPages as $page ) {
-                       if ( !in_array( $page[1], $this->uselessQueryPages ) ) {
+                       if ( !in_array( $page[1], $wgAPIUselessQueryPages ) ) {
                                $this->qpMap[$page[1]] = $page[0];
                        }
                }
index 7cb445d..6b10bdc 100644 (file)
@@ -39,7 +39,7 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
        private $fld_comment = false, $fld_parsedcomment = false, $fld_user = false, $fld_userid = false,
                        $fld_flags = false, $fld_timestamp = false, $fld_title = false, $fld_ids = false,
                        $fld_sizes = false, $fld_redirect = false, $fld_patrolled = false, $fld_loginfo = false,
-                       $fld_tags = false, $token = array();
+                       $fld_tags = false, $fld_sha1 = false, $token = array();
 
        private $tokenFunctions;
 
@@ -121,6 +121,7 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
                $this->fld_patrolled = isset( $prop['patrolled'] );
                $this->fld_loginfo = isset( $prop['loginfo'] );
                $this->fld_tags = isset( $prop['tags'] );
+               $this->fld_sha1 = isset( $prop['sha1'] );
        }
 
        public function execute() {
@@ -273,6 +274,12 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
                        $this->addFields( 'ts_tags' );
                }
 
+               if ( $this->fld_sha1 ) {
+                       $this->addTables( 'revision' );
+                       $this->addJoinConds( array( 'revision' => array( 'LEFT JOIN', array( 'rc_this_oldid=rev_id' ) ) ) );
+                       $this->addFields( array( 'rev_sha1', 'rev_deleted' ) );
+               }
+
                if ( $params['toponly'] || $showRedirects ) {
                        $this->addTables( 'page' );
                        $this->addJoinConds( array( 'page' => array( 'LEFT JOIN', array( 'rc_namespace=page_namespace', 'rc_title=page_title' ) ) ) );
@@ -287,8 +294,7 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
                        $this->addTables( 'change_tag' );
                        $this->addJoinConds( array( 'change_tag' => array( 'INNER JOIN', array( 'rc_id=ct_rc_id' ) ) ) );
                        $this->addWhereFld( 'ct_tag', $params['tag'] );
-                       global $wgOldChangeTagsIndex;
-                       $index['change_tag'] = $wgOldChangeTagsIndex ? 'ct_tag' : 'change_tag_tag_id';
+                       $index['change_tag'] = 'change_tag_tag_id';
                }
 
                $this->token = $params['token'];
@@ -475,6 +481,19 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
                        }
                }
 
+               if ( $this->fld_sha1 && $row->rev_sha1 !== null ) {
+                       // The RevDel check should currently never pass due to the
+                       // rc_deleted = 0 condition in the WHERE clause, but in case that
+                       // ever changes we check it here too.
+                       if ( $row->rev_deleted & Revision::DELETED_TEXT ) {
+                               $vals['sha1hidden'] = '';
+                       } elseif ( $row->rev_sha1 !== '' ) {
+                               $vals['sha1'] = wfBaseConvert( $row->rev_sha1, 36, 16, 40 );
+                       } else {
+                               $vals['sha1'] = '';
+                       }
+               }
+
                if ( !is_null( $this->token ) ) {
                        $tokenFunctions = $this->getTokenFunctions();
                        foreach ( $this->token as $t ) {
@@ -571,7 +590,8 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
                                        'redirect',
                                        'patrolled',
                                        'loginfo',
-                                       'tags'
+                                       'tags',
+                                       'sha1',
                                )
                        ),
                        'token' => array(
@@ -638,6 +658,7 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
                                ' patrolled      - Tags edits that have been patrolled',
                                ' loginfo        - Adds log information (logid, logtype, etc) to log entries',
                                ' tags           - Lists tags for the entry',
+                               ' sha1           - Adds the content checksum for entries associated with a revision',
                        ),
                        'token' => 'Which tokens to obtain for each change',
                        'show' => array(
@@ -735,7 +756,17 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
                                        ApiBase::PROP_TYPE => 'string',
                                        ApiBase::PROP_NULLABLE => true
                                )
-                       )
+                       ),
+                       'sha1' => array(
+                               'sha1' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'sha1hidden' => array(
+                                       ApiBase::PROP_TYPE => 'boolean',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                       ),
                );
 
                self::addTokenProperties( $props, $this->getTokenFunctions() );
index 1d86c97..415288e 100644 (file)
@@ -189,8 +189,7 @@ class ApiQueryRevisions extends ApiQueryBase {
                        $this->addTables( 'change_tag' );
                        $this->addJoinConds( array( 'change_tag' => array( 'INNER JOIN', array( 'rev_id=ct_rev_id' ) ) ) );
                        $this->addWhereFld( 'ct_tag', $params['tag'] );
-                       global $wgOldChangeTagsIndex;
-                       $index['change_tag'] = $wgOldChangeTagsIndex ? 'ct_tag' : 'change_tag_tag_id';
+                       $index['change_tag'] = 'change_tag_tag_id';
                }
 
                if ( isset( $prop['content'] ) || !is_null( $this->difftotext ) ) {
@@ -520,7 +519,7 @@ class ApiQueryRevisions extends ApiQueryBase {
                                } else {
                                        $this->setWarning( "Conversion to XML is supported for wikitext only, " .
                                                                                $title->getPrefixedDBkey() .
-                                                                               " uses content model " . $content->getModel() . ")" );
+                                                                               " uses content model " . $content->getModel() );
                                }
                        }
 
@@ -533,7 +532,7 @@ class ApiQueryRevisions extends ApiQueryBase {
                                } else {
                                        $this->setWarning( "Template expansion is supported for wikitext only, " .
                                                $title->getPrefixedDBkey() .
-                                               " uses content model " . $content->getModel() . ")" );
+                                               " uses content model " . $content->getModel() );
 
                                        $text = false;
                                }
index 09a0f3d..7bb7e38 100644 (file)
@@ -129,6 +129,20 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                $data['dbtype'] = $GLOBALS['wgDBtype'];
                $data['dbversion'] = $this->getDB()->getServerVersion();
 
+               $allowFrom = array( '' );
+               $allowException = true;
+               if ( !$GLOBALS['wgAllowExternalImages'] ) {
+                       if ( $GLOBALS['wgEnableImageWhitelist'] ) {
+                               $data['imagewhitelistenabled'] = '';
+                       }
+                       $allowFrom = $GLOBALS['wgAllowExternalImagesFrom'];
+                       $allowException = !empty( $allowFrom );
+               }
+               if ( $allowException ) {
+                       $data['externalimages'] = (array) $allowFrom;
+                       $this->getResult()->setIndexedTagName( $data['externalimages'], 'prefix' );
+               }
+
                if ( !$wgDisableLangConversion ) {
                        $data['langconversion'] = '';
                }
@@ -408,7 +422,8 @@ class ApiQuerySiteinfo extends ApiQueryBase {
        }
 
        protected function appendUserGroups( $property, $numberInGroup ) {
-               global $wgGroupPermissions, $wgAddGroups, $wgRemoveGroups, $wgGroupsAddToSelf, $wgGroupsRemoveFromSelf;
+               global $wgGroupPermissions, $wgAddGroups, $wgRemoveGroups;
+               global $wgGroupsAddToSelf, $wgGroupsRemoveFromSelf;
 
                $data = array();
                $result = $this->getResult();
@@ -669,13 +684,15 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                                ' specialpagealiases    - List of special page aliases',
                                ' magicwords            - List of magic words and their aliases',
                                ' statistics            - Returns site statistics',
-                               " interwikimap          - Returns interwiki map (optionally filtered, (optionally localised by using {$p}inlanguagecode))",
+                               " interwikimap          - Returns interwiki map " .
+                                       "(optionally filtered, (optionally localised by using {$p}inlanguagecode))",
                                ' dbrepllag             - Returns database server with the highest replication lag',
                                ' usergroups            - Returns user groups and the associated permissions',
                                ' extensions            - Returns extensions installed on the wiki',
                                ' fileextensions        - Returns list of file extensions allowed to be uploaded',
                                ' rightsinfo            - Returns wiki rights (license) information if available',
-                               " languages             - Returns a list of languages MediaWiki supports (optionally localised by using {$p}inlanguagecode)",
+                               " languages             - Returns a list of languages MediaWiki supports".
+                                       "(optionally localised by using {$p}inlanguagecode)",
                                ' skins                 - Returns a list of all enabled skins',
                                ' extensiontags         - Returns a list of parser extension tags',
                                ' functionhooks         - Returns a list of parser function hooks',
@@ -695,9 +712,10 @@ class ApiQuerySiteinfo extends ApiQueryBase {
        }
 
        public function getPossibleErrors() {
-               return array_merge( parent::getPossibleErrors(), array(
-                       array( 'code' => 'includeAllDenied', 'info' => 'Cannot view all servers info unless $wgShowHostnames is true' ),
-               ) );
+               return array_merge( parent::getPossibleErrors(), array( array(
+                       'code' => 'includeAllDenied',
+                       'info' => 'Cannot view all servers info unless $wgShowHostnames is true'
+               ), ) );
        }
 
        public function getExamples() {
index 1e013eb..9a9be7b 100644 (file)
@@ -268,8 +268,7 @@ class ApiQueryContributions extends ApiQueryBase {
                        $this->addTables( 'change_tag' );
                        $this->addJoinConds( array( 'change_tag' => array( 'INNER JOIN', array( 'rev_id=ct_rev_id' ) ) ) );
                        $this->addWhereFld( 'ct_tag', $this->params['tag'] );
-                       global $wgOldChangeTagsIndex;
-                       $index['change_tag'] = $wgOldChangeTagsIndex ? 'ct_tag' : 'change_tag_tag_id';
+                       $index['change_tag'] = 'change_tag_tag_id';
                }
 
                if ( $this->params['toponly'] ) {
index 8e65b40..3c85ea6 100644 (file)
@@ -104,12 +104,15 @@ class ApiQueryUserInfo extends ApiQueryBase {
                }
 
                if ( isset( $this->prop['preferencestoken'] ) &&
-                       is_null( $this->getMain()->getRequest()->getVal( 'callback' ) )
+                       is_null( $this->getMain()->getRequest()->getVal( 'callback' ) ) &&
+                       $user->isAllowed( 'editmyoptions' )
                ) {
                        $vals['preferencestoken'] = $user->getEditToken( '', $this->getMain()->getRequest() );
                }
 
                if ( isset( $this->prop['editcount'] ) ) {
+                       // use intval to prevent null if a non-logged-in user calls
+                       // api.php?format=jsonfm&action=query&meta=userinfo&uiprop=editcount
                        $vals['editcount'] = intval( $user->getEditCount() );
                }
 
@@ -121,11 +124,13 @@ class ApiQueryUserInfo extends ApiQueryBase {
                        $vals['realname'] = $user->getRealName();
                }
 
-               if ( isset( $this->prop['email'] ) ) {
-                       $vals['email'] = $user->getEmail();
-                       $auth = $user->getEmailAuthenticationTimestamp();
-                       if ( !is_null( $auth ) ) {
-                               $vals['emailauthenticated'] = wfTimestamp( TS_ISO_8601, $auth );
+               if ( $user->isAllowed( 'viewmyprivateinfo' ) ) {
+                       if ( isset( $this->prop['email'] ) ) {
+                               $vals['email'] = $user->getEmail();
+                               $auth = $user->getEmailAuthenticationTimestamp();
+                               if ( !is_null( $auth ) ) {
+                                       $vals['emailauthenticated'] = wfTimestamp( TS_ISO_8601, $auth );
+                               }
                        }
                }
 
index aec57a0..dccfee6 100644 (file)
@@ -149,7 +149,7 @@ class ApiQueryUsers extends ApiQueryBase {
                                $data[$name]['name'] = $name;
 
                                if ( isset( $this->prop['editcount'] ) ) {
-                                       $data[$name]['editcount'] = intval( $user->getEditCount() );
+                                       $data[$name]['editcount'] = $user->getEditCount();
                                }
 
                                if ( isset( $this->prop['registration'] ) ) {
index 53affbd..53a68fd 100644 (file)
@@ -39,6 +39,9 @@ class ApiSetNotificationTimestamp extends ApiBase {
                if ( $user->isAnon() ) {
                        $this->dieUsage( 'Anonymous users cannot use watchlist change notifications', 'notloggedin' );
                }
+               if ( !$user->isAllowed( 'editmywatchlist' ) ) {
+                       $this->dieUsage( 'You don\'t have permission to edit your watchlist', 'permissiondenied' );
+               }
 
                $params = $this->extractRequestParams();
                $this->requireMaxOneParameter( $params, 'timestamp', 'torevid', 'newerthanrevid' );
index e04c762..b903a62 100644 (file)
@@ -61,10 +61,14 @@ class ApiUpload extends ApiBase {
                }
 
                // Select an upload module
-               if ( !$this->selectUploadModule() ) {
-                       return; // not a true upload, but a status request or similar
-               } elseif ( !isset( $this->mUpload ) ) {
-                       $this->dieUsage( 'No upload module set', 'nomodule' );
+               try {
+                       if ( !$this->selectUploadModule() ) {
+                               return; // not a true upload, but a status request or similar
+                       } elseif ( !isset( $this->mUpload ) ) {
+                               $this->dieUsage( 'No upload module set', 'nomodule' );
+                       }
+               } catch ( UploadStashException $e ) { // XXX: don't spam exception log
+                       $this->dieUsage( get_class( $e ) . ": " . $e->getMessage(), 'stasherror' );
                }
 
                // First check permission to upload
@@ -106,9 +110,13 @@ class ApiUpload extends ApiBase {
                }
 
                // Get the result based on the current upload context:
-               $result = $this->getContextResult();
-               if ( $result['result'] === 'Success' ) {
-                       $result['imageinfo'] = $this->mUpload->getImageInfo( $this->getResult() );
+               try {
+                       $result = $this->getContextResult();
+                       if ( $result['result'] === 'Success' ) {
+                               $result['imageinfo'] = $this->mUpload->getImageInfo( $this->getResult() );
+                       }
+               } catch ( UploadStashException $e ) { // XXX: don't spam exception log
+                       $this->dieUsage( get_class( $e ) . ": " . $e->getMessage(), 'stasherror' );
                }
 
                $this->getResult()->addValue( null, $this->getModuleName(), $result );
@@ -216,27 +224,27 @@ class ApiUpload extends ApiBase {
                // Check we added the last chunk:
                if ( $this->mParams['offset'] + $chunkSize == $this->mParams['filesize'] ) {
                        if ( $this->mParams['async'] ) {
-                               $progress = UploadBase::getSessionStatus( $this->mParams['filekey'] );
+                               $progress = UploadBase::getSessionStatus( $filekey );
                                if ( $progress && $progress['result'] === 'Poll' ) {
                                        $this->dieUsage( "Chunk assembly already in progress.", 'stashfailed' );
                                }
                                UploadBase::setSessionStatus(
-                                       $this->mParams['filekey'],
+                                       $filekey,
                                        array( 'result' => 'Poll',
                                                'stage' => 'queued', 'status' => Status::newGood() )
                                );
                                $ok = JobQueueGroup::singleton()->push( new AssembleUploadChunksJob(
-                                       Title::makeTitle( NS_FILE, $this->mParams['filekey'] ),
+                                       Title::makeTitle( NS_FILE, $filekey ),
                                        array(
                                                'filename' => $this->mParams['filename'],
-                                               'filekey' => $this->mParams['filekey'],
+                                               'filekey' => $filekey,
                                                'session' => $this->getContext()->exportSession()
                                        )
                                ) );
                                if ( $ok ) {
                                        $result['result'] = 'Poll';
                                } else {
-                                       UploadBase::setSessionStatus( $this->mParams['filekey'], false );
+                                       UploadBase::setSessionStatus( $filekey, false );
                                        $this->dieUsage(
                                                "Failed to start AssembleUploadChunks.php", 'stashfailed' );
                                }
@@ -402,6 +410,10 @@ class ApiUpload extends ApiBase {
                                $this->dieUsageMsg( 'copyuploadbaddomain' );
                        }
 
+                       if ( !UploadFromUrl::isAllowedUrl( $this->mParams['url'] ) ) {
+                               $this->dieUsageMsg( 'copyuploadbadurl' );
+                       }
+
                        $async = false;
                        if ( $this->mParams['asyncdownload'] ) {
                                $this->checkAsyncDownloadEnabled();
@@ -807,6 +819,7 @@ class ApiUpload extends ApiBase {
                                array( 'code' => 'publishfailed', 'info' => 'Publishing of stashed file failed' ),
                                array( 'code' => 'internal-error', 'info' => 'An internal error occurred' ),
                                array( 'code' => 'asynccopyuploaddisabled', 'info' => 'Asynchronous copy uploads disabled' ),
+                               array( 'code' => 'stasherror', 'info' => 'An upload stash error occurred' ),
                                array( 'fileexists-forbidden' ),
                                array( 'fileexists-shared-forbidden' ),
                        )
index 870201e..7d30828 100644 (file)
@@ -66,8 +66,7 @@ class ApiUserrights extends ApiBase {
                $form->setContext( $this->getContext() );
                $status = $form->fetchUser( $params['user'] );
                if ( !$status->isOK() ) {
-                       $errors = $status->getErrorsArray();
-                       $this->dieUsageMsg( $errors[0] );
+                       $this->dieStatus( $status );
                } else {
                        $user = $status->value;
                }
index 3e51299..c7d636a 100644 (file)
@@ -36,6 +36,9 @@ class ApiWatch extends ApiBase {
                if ( !$user->isLoggedIn() ) {
                        $this->dieUsage( 'You must be logged-in to have a watchlist', 'notloggedin' );
                }
+               if ( !$user->isAllowed( 'editmywatchlist' ) ) {
+                       $this->dieUsage( 'You don\'t have permission to edit your watchlist', 'permissiondenied' );
+               }
 
                $params = $this->extractRequestParams();
                $title = Title::newFromText( $params['title'] );
@@ -57,19 +60,19 @@ class ApiWatch extends ApiBase {
                if ( $params['unwatch'] ) {
                        $res['unwatched'] = '';
                        $res['message'] = $this->msg( 'removedwatchtext', $title->getPrefixedText() )->title( $title )->parseAsBlock();
-                       $success = UnwatchAction::doUnwatch( $title, $user );
+                       $status = UnwatchAction::doUnwatch( $title, $user );
                } else {
                        $res['watched'] = '';
                        $res['message'] = $this->msg( 'addedwatchtext', $title->getPrefixedText() )->title( $title )->parseAsBlock();
-                       $success = WatchAction::doWatch( $title, $user );
+                       $status = WatchAction::doWatch( $title, $user );
                }
 
                if ( !is_null( $oldLang ) ) {
                        $this->getContext()->setLanguage( $oldLang ); // Reset language to $oldLang
                }
 
-               if ( !$success ) {
-                       $this->dieUsageMsg( 'hookaborted' );
+               if ( !$status->isOK() ) {
+                       $this->dieStatus( $status );
                }
                $this->getResult()->addValue( null, $this->getModuleName(), $res );
        }
index 31982e0..6ac7e7a 100644 (file)
@@ -37,16 +37,41 @@ class LinkCache {
        private $mForUpdate = false;
 
        /**
-        * Get an instance of this class
+        * @var LinkCache
+        */
+       protected static $instance;
+
+       /**
+        * Get an instance of this class.
         *
         * @return LinkCache
         */
        static function &singleton() {
-               static $instance;
-               if ( !isset( $instance ) ) {
-                       $instance = new LinkCache;
+               if ( self::$instance ) {
+                       return self::$instance;
                }
-               return $instance;
+               self::$instance = new LinkCache;
+               return self::$instance;
+       }
+
+       /**
+        * Destroy the singleton instance, a new one will be created next time
+        * singleton() is called.
+        * @since 1.22
+        */
+       static function destroySingleton() {
+               self::$instance = null;
+       }
+
+       /**
+        * Set the singleton instance to a given object.
+        * Since we do not have an interface for LinkCache, you have to be sure the
+        * given object implements all the LinkCache public methods.
+        * @param LinkCache $instance
+        * @since 1.22
+        */
+       static function setSingleton( LinkCache $instance ) {
+               self::$instance = $instance;
        }
 
        /**
index 0f229f9..1bfd17b 100644 (file)
@@ -551,7 +551,7 @@ class LocalisationCache {
        /**
         * Get the plural rule types for a given language from the XML files.
         * Cached.
-        * @since 1.21
+        * @since 1.22
         */
        public function getPluralRuleTypes( $code ) {
                if ( $this->pluralRuleTypes === null ) {
@@ -928,6 +928,7 @@ class LocalisationCache {
                unset( $this->loadedItems[$code] );
                unset( $this->loadedSubitems[$code] );
                unset( $this->initialisedLangs[$code] );
+               unset( $this->shallowFallbacks[$code] );
 
                foreach ( $this->shallowFallbacks as $shallowCode => $fbCode ) {
                        if ( $fbCode === $code ) {
index 307d301..fcefc06 100644 (file)
  */
 
 /**
- *
+ * MediaWiki message cache structure version.
+ * Bump this whenever the message cache format has changed.
+ */
+define( 'MSG_CACHE_VERSION', 1 );
+
+/**
+ * Memcached timeout when loading a key.
+ * See MessageCache::load()
  */
 define( 'MSG_LOAD_TIMEOUT', 60 );
+
+/**
+ * Memcached timeout when locking a key for a writing operation.
+ * See MessageCache::lock()
+ */
 define( 'MSG_LOCK_TIMEOUT', 30 );
+/**
+ * Number of times we will try to acquire a lock from Memcached.
+ * This comes in addition to MSG_LOCK_TIMEOUT.
+ */
 define( 'MSG_WAIT_TIMEOUT', 30 );
-define( 'MSG_CACHE_VERSION', 1 );
 
 /**
  * Message cache
@@ -44,10 +59,16 @@ class MessageCache {
         */
        protected $mCache;
 
-       // Should  mean that database cannot be used, but check
+       /**
+        * Should  mean that database cannot be used, but check
+        * @var bool $mDisable
+        */
        protected $mDisable;
 
-       /// Lifetime for cache, used by object caching
+       /**
+        * Lifetime for cache, used by object caching.
+        * Set on construction, see __construct().
+        */
        protected $mExpiry;
 
        /**
@@ -56,18 +77,21 @@ class MessageCache {
         */
        protected $mParserOptions, $mParser;
 
-       /// Variable for tracking which variables are already loaded
+       /**
+        * Variable for tracking which variables are already loaded
+        * @var array $mLoadedLanguages
+        */
        protected $mLoadedLanguages = array();
 
        /**
         * Singleton instance
         *
-        * @var MessageCache
+        * @var MessageCache $instance
         */
        private static $instance;
 
        /**
-        * @var bool
+        * @var bool $mInParser
         */
        protected $mInParser = false;
 
@@ -98,6 +122,11 @@ class MessageCache {
                self::$instance = null;
        }
 
+       /**
+        * @param ObjectCache $memCached A cache instance. If none, fall back to CACHE_NONE.
+        * @param bool $useDB
+        * @param int $expiry Lifetime for cache. @see $mExpiry.
+        */
        function __construct( $memCached, $useDB, $expiry ) {
                if ( !$memCached ) {
                        $memCached = wfGetCache( CACHE_NONE );
@@ -592,7 +621,10 @@ class MessageCache {
        }
 
        /**
-        * Represents a write lock on the messages key
+        * Represents a write lock on the messages key.
+        *
+        * Will retry MessageCache::MSG_WAIT_TIMEOUT times, each operations having
+        * a timeout of MessageCache::MSG_LOCK_TIMEOUT.
         *
         * @param string $key
         * @return Boolean: success
@@ -833,14 +865,16 @@ class MessageCache {
         *
         * @param string $title Message cache key with initial uppercase letter.
         * @param string $code Code denoting the language to try.
-        * @return string|bool False on failure
+        * @return string|bool The message, or false iff it does not exist or on error
         */
        function getMsgFromNamespace( $title, $code ) {
                $this->load( $code );
                if ( isset( $this->mCache[$code][$title] ) ) {
                        $entry = $this->mCache[$code][$title];
                        if ( substr( $entry, 0, 1 ) === ' ' ) {
-                               return substr( $entry, 1 );
+                               // The message exists, so make sure a string
+                               // is returned.
+                               return (string)substr( $entry, 1 );
                        } elseif ( $entry === '!NONEXISTENT' ) {
                                return false;
                        } elseif ( $entry === '!TOO BIG' ) {
@@ -863,7 +897,9 @@ class MessageCache {
                if ( $entry ) {
                        if ( substr( $entry, 0, 1 ) === ' ' ) {
                                $this->mCache[$code][$title] = $entry;
-                               return substr( $entry, 1 );
+                               // The message exists, so make sure a string
+                               // is returned.
+                               return (string)substr( $entry, 1 );
                        } elseif ( $entry === '!NONEXISTENT' ) {
                                $this->mCache[$code][$title] = '!NONEXISTENT';
                                return false;
index dd71801..6cc59b7 100644 (file)
@@ -129,7 +129,7 @@ class SquidUpdate {
                        return;
                }
 
-               wfDebug( "Squid purge: " . implode( ' ', $urlArr ) . "\n" );
+               wfDebugLog( 'squid', __METHOD__ . ': ' . implode( ' ', $urlArr ) . "\n" );
 
                if ( $wgHTCPMulticastRouting ) {
                        SquidUpdate::HTCPPurge( $urlArr );
@@ -180,58 +180,63 @@ class SquidUpdate {
 
                // pfsockopen doesn't work because we need set_sock_opt
                $conn = socket_create( AF_INET, SOCK_DGRAM, SOL_UDP );
-               if ( $conn ) {
-                       // Set socket options
-                       socket_set_option( $conn, IPPROTO_IP, IP_MULTICAST_LOOP, 0 );
-                       if ( $wgHTCPMulticastTTL != 1 ) {
-                               socket_set_option( $conn, IPPROTO_IP, IP_MULTICAST_TTL,
-                                       $wgHTCPMulticastTTL );
-                       }
+               if ( $conn ) {
+                       $errstr = socket_strerror( socket_last_error() );
+                       wfDebugLog( 'squid', __METHOD__ .
+                               ": Error opening UDP socket: $errstr\n" );
+                       wfProfileOut( __METHOD__ );
+                       return;
+               }
 
-                       $urlArr = array_unique( $urlArr ); // Remove duplicates
-                       foreach ( $urlArr as $url ) {
-                               if ( !is_string( $url ) ) {
-                                       wfProfileOut( __METHOD__ );
-                                       throw new MWException( 'Bad purge URL' );
-                               }
-                               $url = SquidUpdate::expand( $url );
-                               $conf = self::getRuleForURL( $url, $wgHTCPMulticastRouting );
-                               if ( !$conf ) {
-                                       wfDebug( "No HTCP rule configured for URL $url , skipping\n" );
-                                       continue;
-                               }
-                               if ( !isset( $conf['host'] ) || !isset( $conf['port'] ) ) {
-                                       wfProfileOut( __METHOD__ );
-                                       throw new MWException( "Invalid HTCP rule for URL $url\n" );
-                               }
+               // Set socket options
+               socket_set_option( $conn, IPPROTO_IP, IP_MULTICAST_LOOP, 0 );
+               if ( $wgHTCPMulticastTTL != 1 ) {
+                       socket_set_option( $conn, IPPROTO_IP, IP_MULTICAST_TTL,
+                               $wgHTCPMulticastTTL );
+               }
 
-                               // Construct a minimal HTCP request diagram
-                               // as per RFC 2756
-                               // Opcode 'CLR', no response desired, no auth
-                               $htcpTransID = rand();
+               $urlArr = array_unique( $urlArr ); // Remove duplicates
+               foreach ( $urlArr as $url ) {
+                       if ( !is_string( $url ) ) {
+                               wfProfileOut( __METHOD__ );
+                               throw new MWException( 'Bad purge URL' );
+                       }
+                       $url = SquidUpdate::expand( $url );
+                       $conf = self::getRuleForURL( $url, $wgHTCPMulticastRouting );
+                       if ( !$conf ) {
+                               wfDebugLog( 'squid', __METHOD__ .
+                                       "No HTCP rule configured for URL $url , skipping\n" );
+                               continue;
+                       }
+                       if ( !isset( $conf['host'] ) || !isset( $conf['port'] ) ) {
+                               wfProfileOut( __METHOD__ );
+                               throw new MWException( "Invalid HTCP rule for URL $url\n" );
+                       }
 
-                               $htcpSpecifier = pack( 'na4na*na8n',
-                                       4, 'HEAD', strlen( $url ), $url,
-                                       8, 'HTTP/1.0', 0 );
+                       // Construct a minimal HTCP request diagram
+                       // as per RFC 2756
+                       // Opcode 'CLR', no response desired, no auth
+                       $htcpTransID = rand();
 
-                               $htcpDataLen = 8 + 2 + strlen( $htcpSpecifier );
-                               $htcpLen = 4 + $htcpDataLen + 2;
+                       $htcpSpecifier = pack( 'na4na*na8n',
+                               4, 'HEAD', strlen( $url ), $url,
+                               8, 'HTTP/1.0', 0 );
 
-                               // Note! Squid gets the bit order of the first
-                               // word wrong, wrt the RFC. Apparently no other
-                               // implementation exists, so adapt to Squid
-                               $htcpPacket = pack( 'nxxnCxNxxa*n',
-                                       $htcpLen, $htcpDataLen, $htcpOpCLR,
-                                       $htcpTransID, $htcpSpecifier, 2 );
+                       $htcpDataLen = 8 + 2 + strlen( $htcpSpecifier );
+                       $htcpLen = 4 + $htcpDataLen + 2;
 
-                               // Send out
-                               wfDebug( "Purging URL $url via HTCP\n" );
-                               socket_sendto( $conn, $htcpPacket, $htcpLen, 0,
-                                       $conf['host'], $conf['port'] );
-                       }
-               } else {
-                       $errstr = socket_strerror( socket_last_error() );
-                       wfDebug( __METHOD__ . "(): Error opening UDP socket: $errstr\n" );
+                       // Note! Squid gets the bit order of the first
+                       // word wrong, wrt the RFC. Apparently no other
+                       // implementation exists, so adapt to Squid
+                       $htcpPacket = pack( 'nxxnCxNxxa*n',
+                               $htcpLen, $htcpDataLen, $htcpOpCLR,
+                               $htcpTransID, $htcpSpecifier, 2 );
+
+                       // Send out
+                       wfDebugLog( 'squid', __METHOD__ .
+                               "Purging URL $url via HTCP\n" );
+                       socket_sendto( $conn, $htcpPacket, $htcpLen, 0,
+                               $conf['host'], $conf['port'] );
                }
                wfProfileOut( __METHOD__ );
        }
index 63d4141..6085f58 100644 (file)
@@ -63,7 +63,7 @@ class UserCache {
         *
         * @param integer $userId
         * @param string $ip
-        * @since 1.21
+        * @since 1.22
         */
        public function getUserName( $userId, $ip ) {
                return $userId > 0 ? $this->getProp( $userId, 'name' ) : $ip;
index 65fe58f..da4621a 100644 (file)
  * @since 1.21
  */
 class RedisConnectionPool {
-       // Settings for all connections in this pool
-       protected $connectTimeout; // string; connection timeout
-       protected $persistent; // bool; whether connections persist
-       protected $password; // string; plaintext auth password
-       protected $serializer; // integer; the serializer to use (Redis::SERIALIZER_*)
+       /**
+        * @name Pool settings.
+        * Settings there are shared for any connection made in this pool.
+        * See the singleton() method documentation for more details.
+        * @{
+        */
+       /** @var string Connection timeout in seconds */
+       protected $connectTimeout;
+       /** @var string Plaintext auth password */
+       protected $password;
+       /** @var bool Whether connections persist */
+       protected $persistent;
+       /** @var integer Serializer to use (Redis::SERIALIZER_*) */
+       protected $serializer;
+       /** @} */
 
-       protected $idlePoolSize = 0; // integer; current idle pool size
+       /** @var integer Current idle pool size */
+       protected $idlePoolSize = 0;
 
        /** @var Array (server name => ((connection info array),...) */
        protected $connections = array();
        /** @var Array (server name => UNIX timestamp) */
        protected $downServers = array();
 
-       /** @var Array */
-       protected static $instances = array(); // (pool ID => RedisConnectionPool)
+       /** @var Array (pool ID => RedisConnectionPool) */
+       protected static $instances = array();
 
-       const SERVER_DOWN_TTL = 30; // integer; seconds to cache servers as "down"
+       /** integer; seconds to cache servers as "down". */
+       const SERVER_DOWN_TTL = 30;
 
        /**
         * @param array $options
index e1dcc66..8be85bc 100644 (file)
@@ -59,8 +59,19 @@ class WikitextContentHandler extends TextContentHandler {
         * @return Content
         */
        public function makeRedirectContent( Title $destination ) {
+               $optionalColon = '';
+
+               if ( $destination->getNamespace() == NS_CATEGORY ) {
+                       $optionalColon = ':';
+               } else {
+                       $iw = $destination->getInterwiki();
+                       if ( $iw && Language::fetchLanguageName( $iw, null, 'mw' ) ) {
+                               $optionalColon = ':';
+                       }
+               }
+
                $mwRedir = MagicWord::get( 'redirect' );
-               $redirectText = $mwRedir->getSynonym( 0 ) . ' [[' . $destination->getPrefixedText() . ']]';
+               $redirectText = $mwRedir->getSynonym( 0 ) . ' [[' . $optionalColon . $destination->getFullText() . ']]';
 
                return new WikitextContent( $redirectText );
        }
index cb26dcf..b9dbe77 100644 (file)
@@ -417,7 +417,9 @@ class RequestContext implements IContextSource {
         * This will setup the session from the given ID. This is useful when
         * background scripts inherit context when acting on behalf of a user.
         *
-        * $param array $params Result of RequestContext::exportSession()
+        * @note suhosin.session.encrypt may interfere with this method.
+        *
+        * @param array $params Result of RequestContext::exportSession()
         * @return ScopedCallback
         * @throws MWException
         * @since 1.21
index 799e168..f9f4d5d 100644 (file)
@@ -204,11 +204,17 @@ interface DatabaseType {
        function getServerInfo();
 }
 
+/**
+ * Interface for classes that implement or wrap DatabaseBase
+ * @ingroup Database
+ */
+interface IDatabase {}
+
 /**
  * Database abstraction object
  * @ingroup Database
  */
-abstract class DatabaseBase implements DatabaseType {
+abstract class DatabaseBase implements IDatabase, DatabaseType {
        /** Number of times to re-try an operation in case of deadlock */
        const DEADLOCK_TRIES = 4;
        /** Minimum time to wait before retry, in microseconds */
@@ -932,6 +938,7 @@ abstract class DatabaseBase implements DatabaseType {
                # Keep track of whether the transaction has write queries pending
                if ( $this->mTrxLevel && !$this->mTrxDoneWrites && $this->isWriteQuery( $sql ) ) {
                        $this->mTrxDoneWrites = true;
+                       Profiler::instance()->transactionWritingIn( $this->mServer, $this->mDBname );
                }
 
                if ( $this->debug() ) {
@@ -1239,7 +1246,7 @@ abstract class DatabaseBase implements DatabaseType {
                        $startOpts .= ' SQL_NO_CACHE';
                }
 
-               if ( isset( $options['USE INDEX'] ) && ! is_array( $options['USE INDEX'] ) ) {
+               if ( isset( $options['USE INDEX'] ) && is_string( $options['USE INDEX'] ) ) {
                        $useIndex = $this->useIndexClause( $options['USE INDEX'] );
                } else {
                        $useIndex = '';
@@ -1461,28 +1468,26 @@ abstract class DatabaseBase implements DatabaseType {
                }
 
                $options = (array)$options;
+               $useIndexes = ( isset( $options['USE INDEX'] ) && is_array( $options['USE INDEX'] ) )
+                       ? $options['USE INDEX']
+                       : array();
 
                if ( is_array( $table ) ) {
-                       $useIndex = ( isset( $options['USE INDEX'] ) && is_array( $options['USE INDEX'] ) )
-                               ? $options['USE INDEX']
-                               : array();
-                       if ( count( $join_conds ) || count( $useIndex ) ) {
-                               $from = ' FROM ' .
-                                       $this->tableNamesWithUseIndexOrJOIN( $table, $useIndex, $join_conds );
-                       } else {
-                               $from = ' FROM ' . implode( ',', $this->tableNamesWithAlias( $table ) );
-                       }
+                       $from = ' FROM ' .
+                               $this->tableNamesWithUseIndexOrJOIN( $table, $useIndexes, $join_conds );
                } elseif ( $table != '' ) {
                        if ( $table[0] == ' ' ) {
                                $from = ' FROM ' . $table;
                        } else {
-                               $from = ' FROM ' . $this->tableName( $table );
+                               $from = ' FROM ' .
+                                       $this->tableNamesWithUseIndexOrJOIN( array( $table ), $useIndexes, array() );
                        }
                } else {
                        $from = '';
                }
 
-               list( $startOpts, $useIndex, $preLimitTail, $postLimitTail ) = $this->makeSelectOptions( $options );
+               list( $startOpts, $useIndex, $preLimitTail, $postLimitTail ) =
+                       $this->makeSelectOptions( $options );
 
                if ( !empty( $conds ) ) {
                        if ( is_array( $conds ) ) {
@@ -2260,11 +2265,11 @@ abstract class DatabaseBase implements DatabaseType {
                }
 
                // We can't separate explicit JOIN clauses with ',', use ' ' for those
-               $straightJoins = !empty( $ret ) ? implode( ',', $ret ) : "";
-               $otherJoins = !empty( $retJOIN ) ? implode( ' ', $retJOIN ) : "";
+               $implicitJoins = !empty( $ret ) ? implode( ',', $ret ) : "";
+               $explicitJoins = !empty( $retJOIN ) ? implode( ' ', $retJOIN ) : "";
 
                // Compile our final table clause
-               return implode( ' ', array( $straightJoins, $otherJoins ) );
+               return implode( ' ', array( $implicitJoins, $explicitJoins ) );
        }
 
        /**
@@ -2529,6 +2534,92 @@ abstract class DatabaseBase implements DatabaseType {
                return $this->query( $sql, $fname );
        }
 
+       /**
+        * INSERT ON DUPLICATE KEY UPDATE wrapper, upserts an array into a table.
+        *
+        * This updates any conflicting rows (according to the unique indexes) using
+        * the provided SET clause and inserts any remaining (non-conflicted) rows.
+        *
+        * $rows may be either:
+        *   - A single associative array. The array keys are the field names, and
+        *     the values are the values to insert. The values are treated as data
+        *     and will be quoted appropriately. If NULL is inserted, this will be
+        *     converted to a database NULL.
+        *   - An array with numeric keys, holding a list of associative arrays.
+        *     This causes a multi-row INSERT on DBMSs that support it. The keys in
+        *     each subarray must be identical to each other, and in the same order.
+        *
+        * It may be more efficient to leave off unique indexes which are unlikely
+        * to collide. However if you do this, you run the risk of encountering
+        * errors which wouldn't have occurred in MySQL.
+        *
+        * Usually throws a DBQueryError on failure. If errors are explicitly ignored,
+        * returns success.
+        *
+        * @param string $table Table name. This will be passed through DatabaseBase::tableName().
+        * @param array $rows A single row or list of rows to insert
+        * @param array $uniqueIndexes List of single field names or field name tuples
+        * @param array $set An array of values to SET. For each array element,
+        *                the key gives the field name, and the value gives the data
+        *                to set that field to. The data will be quoted by
+        *                DatabaseBase::addQuotes().
+        * @param string $fname Calling function name (use __METHOD__) for logs/profiling
+        * @param array $options of options
+        *
+        * @return bool
+        * @since 1.22
+        */
+       public function upsert(
+               $table, array $rows, array $uniqueIndexes, array $set, $fname = __METHOD__
+       ) {
+               if ( !count( $rows ) ) {
+                       return true; // nothing to do
+               }
+               $rows = is_array( reset( $rows ) ) ? $rows : array( $rows );
+
+               if ( count( $uniqueIndexes ) ) {
+                       $clauses = array(); // list WHERE clauses that each identify a single row
+                       foreach ( $rows as $row ) {
+                               foreach ( $uniqueIndexes as $index ) {
+                                       $index = is_array( $index ) ? $index : array( $index ); // columns
+                                       $rowKey = array(); // unique key to this row
+                                       foreach ( $index as $column ) {
+                                               $rowKey[$column] = $row[$column];
+                                       }
+                                       $clauses[] = $this->makeList( $rowKey, LIST_AND );
+                               }
+                       }
+                       $where = array( $this->makeList( $clauses, LIST_OR ) );
+               } else {
+                       $where = false;
+               }
+
+               $useTrx = !$this->mTrxLevel;
+               if ( $useTrx ) {
+                       $this->begin( $fname );
+               }
+               try {
+                       # Update any existing conflicting row(s)
+                       if ( $where !== false ) {
+                               $ok = $this->update( $table, $set, $where, $fname );
+                       } else {
+                               $ok = true;
+                       }
+                       # Now insert any non-conflicting row(s)
+                       $ok = $this->insert( $table, $rows, $fname, array( 'IGNORE' ) ) && $ok;
+               } catch ( Exception $e ) {
+                       if ( $useTrx ) {
+                               $this->rollback( $fname );
+                       }
+                       throw $e;
+               }
+               if ( $useTrx ) {
+                       $this->commit( $fname );
+               }
+
+               return $ok;
+       }
+
        /**
         * DELETE where the condition is a join.
         *
@@ -2626,7 +2717,10 @@ abstract class DatabaseBase implements DatabaseType {
                $sql = "DELETE FROM $table";
 
                if ( $conds != '*' ) {
-                       $sql .= ' WHERE ' . $this->makeList( $conds, LIST_AND );
+                       if ( is_array( $conds ) ) {
+                               $conds = $this->makeList( $conds, LIST_AND );
+                       }
+                       $sql .= ' WHERE ' . $conds;
                }
 
                return $this->query( $sql, $fname );
@@ -3079,6 +3173,9 @@ abstract class DatabaseBase implements DatabaseType {
 
                        $this->runOnTransactionPreCommitCallbacks();
                        $this->doCommit( $fname );
+                       if ( $this->mTrxDoneWrites ) {
+                               Profiler::instance()->transactionWritingOut( $this->mServer, $this->mDBname );
+                       }
                        $this->runOnTransactionIdleCallbacks();
                }
 
@@ -3128,6 +3225,9 @@ abstract class DatabaseBase implements DatabaseType {
 
                $this->runOnTransactionPreCommitCallbacks();
                $this->doCommit( $fname );
+               if ( $this->mTrxDoneWrites ) {
+                       Profiler::instance()->transactionWritingOut( $this->mServer, $this->mDBname );
+               }
                $this->runOnTransactionIdleCallbacks();
        }
 
@@ -3159,6 +3259,9 @@ abstract class DatabaseBase implements DatabaseType {
                $this->doRollback( $fname );
                $this->mTrxIdleCallbacks = array(); // cancel
                $this->mTrxPreCommitCallbacks = array(); // cancel
+               if ( $this->mTrxDoneWrites ) {
+                       Profiler::instance()->transactionWritingOut( $this->mServer, $this->mDBname );
+               }
        }
 
        /**
index ca5a2b4..b75d615 100644 (file)
  */
 
 /**
- * Database abstraction object for mySQL
- * Inherit all methods and properties of Database::Database()
+ * Database abstraction object for PHP extension mysql.
  *
  * @ingroup Database
  * @see Database
  */
-class DatabaseMysql extends DatabaseBase {
-
-       /**
-        * @return string
-        */
-       function getType() {
-               return 'mysql';
-       }
+class DatabaseMysql extends DatabaseMysqlBase {
 
        /**
         * @param $sql string
@@ -50,40 +42,16 @@ class DatabaseMysql extends DatabaseBase {
                return $ret;
        }
 
-       /**
-        * @param $server string
-        * @param $user string
-        * @param $password string
-        * @param $dbName string
-        * @return bool
-        * @throws DBConnectionError
-        */
-       function open( $server, $user, $password, $dbName ) {
-               global $wgAllDBsAreLocalhost, $wgDBmysql5, $wgSQLMode;
-               wfProfileIn( __METHOD__ );
-
+       protected function mysqlConnect( $realServer ) {
                # Load mysql.so if we don't have it
                wfDl( 'mysql' );
 
                # Fail now
                # Otherwise we get a suppressed fatal error, which is very hard to track down
                if ( !function_exists( 'mysql_connect' ) ) {
-                       wfProfileOut( __METHOD__ );
                        throw new DBConnectionError( $this, "MySQL functions missing, have you compiled PHP with the --with-mysql option?\n" );
                }
 
-               # Debugging hack -- fake cluster
-               if ( $wgAllDBsAreLocalhost ) {
-                       $realServer = 'localhost';
-               } else {
-                       $realServer = $server;
-               }
-               $this->close();
-               $this->mServer = $server;
-               $this->mUser = $user;
-               $this->mPassword = $password;
-               $this->mDBname = $dbName;
-
                $connFlags = 0;
                if ( $this->mFlags & DBO_SSL ) {
                        $connFlags |= MYSQL_CLIENT_SSL;
@@ -92,81 +60,27 @@ class DatabaseMysql extends DatabaseBase {
                        $connFlags |= MYSQL_CLIENT_COMPRESS;
                }
 
-               wfProfileIn( "dbconnect-$server" );
-
-               # The kernel's default SYN retransmission period is far too slow for us,
-               # so we use a short timeout plus a manual retry. Retrying means that a small
-               # but finite rate of SYN packet loss won't cause user-visible errors.
-               $this->mConn = false;
                if ( ini_get( 'mysql.connect_timeout' ) <= 3 ) {
                        $numAttempts = 2;
                } else {
                        $numAttempts = 1;
                }
-               $this->installErrorHandler();
-               for ( $i = 0; $i < $numAttempts && !$this->mConn; $i++ ) {
+
+               $conn = false;
+
+               for ( $i = 0; $i < $numAttempts && !$conn; $i++ ) {
                        if ( $i > 1 ) {
                                usleep( 1000 );
                        }
                        if ( $this->mFlags & DBO_PERSISTENT ) {
-                               $this->mConn = mysql_pconnect( $realServer, $user, $password, $connFlags );
+                               $conn = mysql_pconnect( $realServer, $this->mUser, $this->mPassword, $connFlags );
                        } else {
                                # Create a new connection...
-                               $this->mConn = mysql_connect( $realServer, $user, $password, true, $connFlags );
-                       }
-                       #if ( $this->mConn === false ) {
-                               #$iplus = $i + 1;
-                               #wfLogDBError("Connect loop error $iplus of $max ($server): " . mysql_errno() . " - " . mysql_error()."\n");
-                       #}
-               }
-               $error = $this->restoreErrorHandler();
-
-               wfProfileOut( "dbconnect-$server" );
-
-               # Always log connection errors
-               if ( !$this->mConn ) {
-                       if ( !$error ) {
-                               $error = $this->lastError();
-                       }
-                       wfLogDBError( "Error connecting to {$this->mServer}: $error\n" );
-                       wfDebug( "DB connection error\n" .
-                               "Server: $server, User: $user, Password: " .
-                               substr( $password, 0, 3 ) . "..., error: " . $error . "\n" );
-
-                       wfProfileOut( __METHOD__ );
-                       return $this->reportConnectionError( $error );
-               }
-
-               if ( $dbName != '' ) {
-                       wfSuppressWarnings();
-                       $success = mysql_select_db( $dbName, $this->mConn );
-                       wfRestoreWarnings();
-                       if ( !$success ) {
-                               wfLogDBError( "Error selecting database $dbName on server {$this->mServer}\n" );
-                               wfDebug( "Error selecting database $dbName on server {$this->mServer} " .
-                                       "from client host " . wfHostname() . "\n" );
-
-                               wfProfileOut( __METHOD__ );
-                               return $this->reportConnectionError( "Error selecting database $dbName" );
+                               $conn = mysql_connect( $realServer, $this->mUser, $this->mPassword, true, $connFlags );
                        }
                }
 
-               // Tell the server we're communicating with it in UTF-8.
-               // This may engage various charset conversions.
-               if ( $wgDBmysql5 ) {
-                       $this->query( 'SET NAMES utf8', __METHOD__ );
-               } else {
-                       $this->query( 'SET NAMES binary', __METHOD__ );
-               }
-               // Set SQL mode, default is turning them all off, can be overridden or skipped with null
-               if ( is_string( $wgSQLMode ) ) {
-                       $mode = $this->addQuotes( $wgSQLMode );
-                       $this->query( "SET sql_mode = $mode", __METHOD__ );
-               }
-
-               $this->mOpened = true;
-               wfProfileOut( __METHOD__ );
-               return true;
+               return $conn;
        }
 
        /**
@@ -176,113 +90,6 @@ class DatabaseMysql extends DatabaseBase {
                return mysql_close( $this->mConn );
        }
 
-       /**
-        * @param $res ResultWrapper
-        * @throws DBUnexpectedError
-        */
-       function freeResult( $res ) {
-               if ( $res instanceof ResultWrapper ) {
-                       $res = $res->result;
-               }
-               wfSuppressWarnings();
-               $ok = mysql_free_result( $res );
-               wfRestoreWarnings();
-               if ( !$ok ) {
-                       throw new DBUnexpectedError( $this, "Unable to free MySQL result" );
-               }
-       }
-
-       /**
-        * @param $res ResultWrapper
-        * @return object|bool
-        * @throws DBUnexpectedError
-        */
-       function fetchObject( $res ) {
-               if ( $res instanceof ResultWrapper ) {
-                       $res = $res->result;
-               }
-               wfSuppressWarnings();
-               $row = mysql_fetch_object( $res );
-               wfRestoreWarnings();
-
-               $errno = $this->lastErrno();
-               // Unfortunately, mysql_fetch_object does not reset the last errno.
-               // Only check for CR_SERVER_LOST and CR_UNKNOWN_ERROR, as
-               // these are the only errors mysql_fetch_object can cause.
-               // See http://dev.mysql.com/doc/refman/5.0/en/mysql-fetch-row.html.
-               if ( $errno == 2000 || $errno == 2013 ) {
-                       throw new DBUnexpectedError( $this, 'Error in fetchObject(): ' . htmlspecialchars( $this->lastError() ) );
-               }
-               return $row;
-       }
-
-       /**
-        * @param $res ResultWrapper
-        * @return array|bool
-        * @throws DBUnexpectedError
-        */
-       function fetchRow( $res ) {
-               if ( $res instanceof ResultWrapper ) {
-                       $res = $res->result;
-               }
-               wfSuppressWarnings();
-               $row = mysql_fetch_array( $res );
-               wfRestoreWarnings();
-
-               $errno = $this->lastErrno();
-               // Unfortunately, mysql_fetch_array does not reset the last errno.
-               // Only check for CR_SERVER_LOST and CR_UNKNOWN_ERROR, as
-               // these are the only errors mysql_fetch_object can cause.
-               // See http://dev.mysql.com/doc/refman/5.0/en/mysql-fetch-row.html.
-               if ( $errno == 2000 || $errno == 2013 ) {
-                       throw new DBUnexpectedError( $this, 'Error in fetchRow(): ' . htmlspecialchars( $this->lastError() ) );
-               }
-               return $row;
-       }
-
-       /**
-        * @throws DBUnexpectedError
-        * @param $res ResultWrapper
-        * @return int
-        */
-       function numRows( $res ) {
-               if ( $res instanceof ResultWrapper ) {
-                       $res = $res->result;
-               }
-               wfSuppressWarnings();
-               $n = mysql_num_rows( $res );
-               wfRestoreWarnings();
-               // Unfortunately, mysql_num_rows does not reset the last errno.
-               // We are not checking for any errors here, since
-               // these are no errors mysql_num_rows can cause.
-               // See http://dev.mysql.com/doc/refman/5.0/en/mysql-fetch-row.html.
-               // See https://bugzilla.wikimedia.org/42430
-               return $n;
-       }
-
-       /**
-        * @param $res ResultWrapper
-        * @return int
-        */
-       function numFields( $res ) {
-               if ( $res instanceof ResultWrapper ) {
-                       $res = $res->result;
-               }
-               return mysql_num_fields( $res );
-       }
-
-       /**
-        * @param $res ResultWrapper
-        * @param $n string
-        * @return string
-        */
-       function fieldName( $res, $n ) {
-               if ( $res instanceof ResultWrapper ) {
-                       $res = $res->result;
-               }
-               return mysql_field_name( $res, $n );
-       }
-
        /**
         * @return int
         */
@@ -290,18 +97,6 @@ class DatabaseMysql extends DatabaseBase {
                return mysql_insert_id( $this->mConn );
        }
 
-       /**
-        * @param $res ResultWrapper
-        * @param $row
-        * @return bool
-        */
-       function dataSeek( $res, $row ) {
-               if ( $res instanceof ResultWrapper ) {
-                       $res = $res->result;
-               }
-               return mysql_data_seek( $res, $row );
-       }
-
        /**
         * @return int
         */
@@ -313,27 +108,6 @@ class DatabaseMysql extends DatabaseBase {
                }
        }
 
-       /**
-        * @return string
-        */
-       function lastError() {
-               if ( $this->mConn ) {
-                       # Even if it's non-zero, it can still be invalid
-                       wfSuppressWarnings();
-                       $error = mysql_error( $this->mConn );
-                       if ( !$error ) {
-                               $error = mysql_error();
-                       }
-                       wfRestoreWarnings();
-               } else {
-                       $error = mysql_error();
-               }
-               if ( $error ) {
-                       $error .= ' (' . $this->mServer . ')';
-               }
-               return $error;
-       }
-
        /**
         * @return int
         */
@@ -341,100 +115,6 @@ class DatabaseMysql extends DatabaseBase {
                return mysql_affected_rows( $this->mConn );
        }
 
-       /**
-        * @param $table string
-        * @param $uniqueIndexes
-        * @param $rows array
-        * @param $fname string
-        * @return ResultWrapper
-        */
-       function replace( $table, $uniqueIndexes, $rows, $fname = __METHOD__ ) {
-               return $this->nativeReplace( $table, $rows, $fname );
-       }
-
-       /**
-        * Estimate rows in dataset
-        * Returns estimated count, based on EXPLAIN output
-        * Takes same arguments as Database::select()
-        *
-        * @param $table string|array
-        * @param $vars string|array
-        * @param $conds string|array
-        * @param $fname string
-        * @param $options string|array
-        * @return int
-        */
-       public function estimateRowCount( $table, $vars = '*', $conds = '', $fname = __METHOD__, $options = array() ) {
-               $options['EXPLAIN'] = true;
-               $res = $this->select( $table, $vars, $conds, $fname, $options );
-               if ( $res === false ) {
-                       return false;
-               }
-               if ( !$this->numRows( $res ) ) {
-                       return 0;
-               }
-
-               $rows = 1;
-               foreach ( $res as $plan ) {
-                       $rows *= $plan->rows > 0 ? $plan->rows : 1; // avoid resetting to zero
-               }
-               return $rows;
-       }
-
-       /**
-        * @param $table string
-        * @param $field string
-        * @return bool|MySQLField
-        */
-       function fieldInfo( $table, $field ) {
-               $table = $this->tableName( $table );
-               $res = $this->query( "SELECT * FROM $table LIMIT 1", __METHOD__, true );
-               if ( !$res ) {
-                       return false;
-               }
-               $n = mysql_num_fields( $res->result );
-               for ( $i = 0; $i < $n; $i++ ) {
-                       $meta = mysql_fetch_field( $res->result, $i );
-                       if ( $field == $meta->name ) {
-                               return new MySQLField( $meta );
-                       }
-               }
-               return false;
-       }
-
-       /**
-        * Get information about an index into an object
-        * Returns false if the index does not exist
-        *
-        * @param $table string
-        * @param $index string
-        * @param $fname string
-        * @return bool|array|null False or null on failure
-        */
-       function indexInfo( $table, $index, $fname = __METHOD__ ) {
-               # SHOW INDEX works in MySQL 3.23.58, but SHOW INDEXES does not.
-               # SHOW INDEX should work for 3.x and up:
-               # http://dev.mysql.com/doc/mysql/en/SHOW_INDEX.html
-               $table = $this->tableName( $table );
-               $index = $this->indexName( $index );
-
-               $sql = 'SHOW INDEX FROM ' . $table;
-               $res = $this->query( $sql, $fname );
-
-               if ( !$res ) {
-                       return null;
-               }
-
-               $result = array();
-
-               foreach ( $res as $row ) {
-                       if ( $row->Key_name == $index ) {
-                               $result[] = $row;
-                       }
-               }
-               return empty( $result ) ? false : $result;
-       }
-
        /**
         * @param $db
         * @return bool
@@ -444,208 +124,6 @@ class DatabaseMysql extends DatabaseBase {
                return mysql_select_db( $db, $this->mConn );
        }
 
-       /**
-        * @param $s string
-        *
-        * @return string
-        */
-       function strencode( $s ) {
-               $sQuoted = mysql_real_escape_string( $s, $this->mConn );
-
-               if ( $sQuoted === false ) {
-                       $this->ping();
-                       $sQuoted = mysql_real_escape_string( $s, $this->mConn );
-               }
-               return $sQuoted;
-       }
-
-       /**
-        * MySQL uses `backticks` for identifier quoting instead of the sql standard "double quotes".
-        *
-        * @param $s string
-        *
-        * @return string
-        */
-       public function addIdentifierQuotes( $s ) {
-               return "`" . $this->strencode( $s ) . "`";
-       }
-
-       /**
-        * @param $name string
-        * @return bool
-        */
-       public function isQuotedIdentifier( $name ) {
-               return strlen( $name ) && $name[0] == '`' && substr( $name, -1, 1 ) == '`';
-       }
-
-       /**
-        * @return bool
-        */
-       function ping() {
-               $ping = mysql_ping( $this->mConn );
-               if ( $ping ) {
-                       return true;
-               }
-
-               mysql_close( $this->mConn );
-               $this->mOpened = false;
-               $this->mConn = false;
-               $this->open( $this->mServer, $this->mUser, $this->mPassword, $this->mDBname );
-               return true;
-       }
-
-       /**
-        * Returns slave lag.
-        *
-        * This will do a SHOW SLAVE STATUS
-        *
-        * @return int
-        */
-       function getLag() {
-               if ( !is_null( $this->mFakeSlaveLag ) ) {
-                       wfDebug( "getLag: fake slave lagged {$this->mFakeSlaveLag} seconds\n" );
-                       return $this->mFakeSlaveLag;
-               }
-
-               return $this->getLagFromSlaveStatus();
-       }
-
-       /**
-        * @return bool|int
-        */
-       function getLagFromSlaveStatus() {
-               $res = $this->query( 'SHOW SLAVE STATUS', __METHOD__ );
-               if ( !$res ) {
-                       return false;
-               }
-               $row = $res->fetchObject();
-               if ( !$row ) {
-                       return false;
-               }
-               if ( strval( $row->Seconds_Behind_Master ) === '' ) {
-                       return false;
-               } else {
-                       return intval( $row->Seconds_Behind_Master );
-               }
-       }
-
-       /**
-        * @deprecated in 1.19, use getLagFromSlaveStatus
-        *
-        * @return bool|int
-        */
-       function getLagFromProcesslist() {
-               wfDeprecated( __METHOD__, '1.19' );
-               $res = $this->query( 'SHOW PROCESSLIST', __METHOD__ );
-               if ( !$res ) {
-                       return false;
-               }
-               # Find slave SQL thread
-               foreach ( $res as $row ) {
-                       /* This should work for most situations - when default db
-                        * for thread is not specified, it had no events executed,
-                        * and therefore it doesn't know yet how lagged it is.
-                        *
-                        * Relay log I/O thread does not select databases.
-                        */
-                       if ( $row->User == 'system user' &&
-                               $row->State != 'Waiting for master to send event' &&
-                               $row->State != 'Connecting to master' &&
-                               $row->State != 'Queueing master event to the relay log' &&
-                               $row->State != 'Waiting for master update' &&
-                               $row->State != 'Requesting binlog dump' &&
-                               $row->State != 'Waiting to reconnect after a failed master event read' &&
-                               $row->State != 'Reconnecting after a failed master event read' &&
-                               $row->State != 'Registering slave on master'
-                               ) {
-                               # This is it, return the time (except -ve)
-                               if ( $row->Time > 0x7fffffff ) {
-                                       return false;
-                               } else {
-                                       return $row->Time;
-                               }
-                       }
-               }
-               return false;
-       }
-
-       /**
-        * Wait for the slave to catch up to a given master position.
-        *
-        * @param $pos DBMasterPos object
-        * @param $timeout Integer: the maximum number of seconds to wait for synchronisation
-        * @return bool|string
-        */
-       function masterPosWait( DBMasterPos $pos, $timeout ) {
-               $fname = __METHOD__;
-               wfProfileIn( $fname );
-
-               # Commit any open transactions
-               if ( $this->mTrxLevel ) {
-                       $this->commit( $fname );
-               }
-
-               if ( !is_null( $this->mFakeSlaveLag ) ) {
-                       $status = parent::masterPosWait( $pos, $timeout );
-                       wfProfileOut( $fname );
-                       return $status;
-               }
-
-               # Call doQuery() directly, to avoid opening a transaction if DBO_TRX is set
-               $encFile = $this->addQuotes( $pos->file );
-               $encPos = intval( $pos->pos );
-               $sql = "SELECT MASTER_POS_WAIT($encFile, $encPos, $timeout)";
-               $res = $this->doQuery( $sql );
-
-               if ( $res && $row = $this->fetchRow( $res ) ) {
-                       wfProfileOut( $fname );
-                       return $row[0];
-               }
-               wfProfileOut( $fname );
-               return false;
-       }
-
-       /**
-        * Get the position of the master from SHOW SLAVE STATUS
-        *
-        * @return MySQLMasterPos|bool
-        */
-       function getSlavePos() {
-               if ( !is_null( $this->mFakeSlaveLag ) ) {
-                       return parent::getSlavePos();
-               }
-
-               $res = $this->query( 'SHOW SLAVE STATUS', 'DatabaseBase::getSlavePos' );
-               $row = $this->fetchObject( $res );
-
-               if ( $row ) {
-                       $pos = isset( $row->Exec_master_log_pos ) ? $row->Exec_master_log_pos : $row->Exec_Master_Log_Pos;
-                       return new MySQLMasterPos( $row->Relay_Master_Log_File, $pos );
-               } else {
-                       return false;
-               }
-       }
-
-       /**
-        * Get the position of the master from SHOW MASTER STATUS
-        *
-        * @return MySQLMasterPos|bool
-        */
-       function getMasterPos() {
-               if ( $this->mFakeMaster ) {
-                       return parent::getMasterPos();
-               }
-
-               $res = $this->query( 'SHOW MASTER STATUS', 'DatabaseBase::getMasterPos' );
-               $row = $this->fetchObject( $res );
-
-               if ( $row ) {
-                       return new MySQLMasterPos( $row->File, $row->Position );
-               } else {
-                       return false;
-               }
-       }
-
        /**
         * @return string
         */
@@ -653,388 +131,47 @@ class DatabaseMysql extends DatabaseBase {
                return mysql_get_server_info( $this->mConn );
        }
 
-       /**
-        * @param $index
-        * @return string
-        */
-       function useIndexClause( $index ) {
-               return "FORCE INDEX (" . $this->indexName( $index ) . ")";
-       }
-
-       /**
-        * @return string
-        */
-       function lowPriorityOption() {
-               return 'LOW_PRIORITY';
+       protected function mysqlFreeResult( $res ) {
+               return mysql_free_result( $res );
        }
 
-       /**
-        * @return string
-        */
-       public function getSoftwareLink() {
-               return '[http://www.mysql.com/ MySQL]';
-       }
-
-       /**
-        * @param $options array
-        */
-       public function setSessionOptions( array $options ) {
-               if ( isset( $options['connTimeout'] ) ) {
-                       $timeout = (int)$options['connTimeout'];
-                       $this->query( "SET net_read_timeout=$timeout" );
-                       $this->query( "SET net_write_timeout=$timeout" );
-               }
+       protected function mysqlFetchObject( $res ) {
+               return mysql_fetch_object( $res );
        }
 
-       public function streamStatementEnd( &$sql, &$newLine ) {
-               if ( strtoupper( substr( $newLine, 0, 9 ) ) == 'DELIMITER' ) {
-                       preg_match( '/^DELIMITER\s+(\S+)/', $newLine, $m );
-                       $this->delimiter = $m[1];
-                       $newLine = '';
-               }
-               return parent::streamStatementEnd( $sql, $newLine );
+       protected function mysqlFetchArray( $res ) {
+               return mysql_fetch_array( $res );
        }
 
-       /**
-        * Check to see if a named lock is available. This is non-blocking.
-        *
-        * @param string $lockName name of lock to poll
-        * @param string $method name of method calling us
-        * @return Boolean
-        * @since 1.20
-        */
-       public function lockIsFree( $lockName, $method ) {
-               $lockName = $this->addQuotes( $lockName );
-               $result = $this->query( "SELECT IS_FREE_LOCK($lockName) AS lockstatus", $method );
-               $row = $this->fetchObject( $result );
-               return ( $row->lockstatus == 1 );
+       protected function mysqlNumRows( $res ) {
+               return mysql_num_rows( $res );
        }
 
-       /**
-        * @param $lockName string
-        * @param $method string
-        * @param $timeout int
-        * @return bool
-        */
-       public function lock( $lockName, $method, $timeout = 5 ) {
-               $lockName = $this->addQuotes( $lockName );
-               $result = $this->query( "SELECT GET_LOCK($lockName, $timeout) AS lockstatus", $method );
-               $row = $this->fetchObject( $result );
-
-               if ( $row->lockstatus == 1 ) {
-                       return true;
-               } else {
-                       wfDebug( __METHOD__ . " failed to acquire lock\n" );
-                       return false;
-               }
-       }
-
-       /**
-        * FROM MYSQL DOCS: http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html#function_release-lock
-        * @param $lockName string
-        * @param $method string
-        * @return bool
-        */
-       public function unlock( $lockName, $method ) {
-               $lockName = $this->addQuotes( $lockName );
-               $result = $this->query( "SELECT RELEASE_LOCK($lockName) as lockstatus", $method );
-               $row = $this->fetchObject( $result );
-               return ( $row->lockstatus == 1 );
-       }
-
-       /**
-        * @param $read array
-        * @param $write array
-        * @param $method string
-        * @param $lowPriority bool
-        * @return bool
-        */
-       public function lockTables( $read, $write, $method, $lowPriority = true ) {
-               $items = array();
-
-               foreach ( $write as $table ) {
-                       $tbl = $this->tableName( $table ) .
-                                       ( $lowPriority ? ' LOW_PRIORITY' : '' ) .
-                                       ' WRITE';
-                       $items[] = $tbl;
-               }
-               foreach ( $read as $table ) {
-                       $items[] = $this->tableName( $table ) . ' READ';
-               }
-               $sql = "LOCK TABLES " . implode( ',', $items );
-               $this->query( $sql, $method );
-               return true;
-       }
-
-       /**
-        * @param $method string
-        * @return bool
-        */
-       public function unlockTables( $method ) {
-               $this->query( "UNLOCK TABLES", $method );
-               return true;
-       }
-
-       /**
-        * Get search engine class. All subclasses of this
-        * need to implement this if they wish to use searching.
-        *
-        * @return String
-        */
-       public function getSearchEngine() {
-               return 'SearchMySQL';
-       }
-
-       /**
-        * @param bool $value
-        * @return mixed
-        */
-       public function setBigSelects( $value = true ) {
-               if ( $value === 'default' ) {
-                       if ( $this->mDefaultBigSelects === null ) {
-                               # Function hasn't been called before so it must already be set to the default
-                               return;
-                       } else {
-                               $value = $this->mDefaultBigSelects;
-                       }
-               } elseif ( $this->mDefaultBigSelects === null ) {
-                       $this->mDefaultBigSelects = (bool)$this->selectField( false, '@@sql_big_selects' );
-               }
-               $encValue = $value ? '1' : '0';
-               $this->query( "SET sql_big_selects=$encValue", __METHOD__ );
-       }
-
-       /**
-        * DELETE where the condition is a join. MySql uses multi-table deletes.
-        * @param $delTable string
-        * @param $joinTable string
-        * @param $delVar string
-        * @param $joinVar string
-        * @param $conds array|string
-        * @param bool|string $fname bool
-        * @throws DBUnexpectedError
-        * @return bool|ResultWrapper
-        */
-       function deleteJoin( $delTable, $joinTable, $delVar, $joinVar, $conds, $fname = __METHOD__ ) {
-               if ( !$conds ) {
-                       throw new DBUnexpectedError( $this, 'DatabaseBase::deleteJoin() called with empty $conds' );
-               }
-
-               $delTable = $this->tableName( $delTable );
-               $joinTable = $this->tableName( $joinTable );
-               $sql = "DELETE $delTable FROM $delTable, $joinTable WHERE $delVar=$joinVar ";
-
-               if ( $conds != '*' ) {
-                       $sql .= ' AND ' . $this->makeList( $conds, LIST_AND );
-               }
-
-               return $this->query( $sql, $fname );
-       }
-
-       /**
-        * Determines how long the server has been up
-        *
-        * @return int
-        */
-       function getServerUptime() {
-               $vars = $this->getMysqlStatus( 'Uptime' );
-               return (int)$vars['Uptime'];
-       }
-
-       /**
-        * Determines if the last failure was due to a deadlock
-        *
-        * @return bool
-        */
-       function wasDeadlock() {
-               return $this->lastErrno() == 1213;
-       }
-
-       /**
-        * Determines if the last failure was due to a lock timeout
-        *
-        * @return bool
-        */
-       function wasLockTimeout() {
-               return $this->lastErrno() == 1205;
-       }
-
-       /**
-        * Determines if the last query error was something that should be dealt
-        * with by pinging the connection and reissuing the query
-        *
-        * @return bool
-        */
-       function wasErrorReissuable() {
-               return $this->lastErrno() == 2013 || $this->lastErrno() == 2006;
-       }
-
-       /**
-        * Determines if the last failure was due to the database being read-only.
-        *
-        * @return bool
-        */
-       function wasReadOnlyError() {
-               return $this->lastErrno() == 1223 ||
-                       ( $this->lastErrno() == 1290 && strpos( $this->lastError(), '--read-only' ) !== false );
-       }
-
-       /**
-        * @param $oldName
-        * @param $newName
-        * @param $temporary bool
-        * @param $fname string
-        */
-       function duplicateTableStructure( $oldName, $newName, $temporary = false, $fname = __METHOD__ ) {
-               $tmp = $temporary ? 'TEMPORARY ' : '';
-               $newName = $this->addIdentifierQuotes( $newName );
-               $oldName = $this->addIdentifierQuotes( $oldName );
-               $query = "CREATE $tmp TABLE $newName (LIKE $oldName)";
-               $this->query( $query, $fname );
-       }
-
-       /**
-        * List all tables on the database
-        *
-        * @param string $prefix Only show tables with this prefix, e.g. mw_
-        * @param string $fname calling function name
-        * @return array
-        */
-       function listTables( $prefix = null, $fname = __METHOD__ ) {
-               $result = $this->query( "SHOW TABLES", $fname );
-
-               $endArray = array();
-
-               foreach ( $result as $table ) {
-                       $vars = get_object_vars( $table );
-                       $table = array_pop( $vars );
-
-                       if ( !$prefix || strpos( $table, $prefix ) === 0 ) {
-                               $endArray[] = $table;
-                       }
-               }
-
-               return $endArray;
-       }
-
-       /**
-        * @param $tableName
-        * @param $fName string
-        * @return bool|ResultWrapper
-        */
-       public function dropTable( $tableName, $fName = __METHOD__ ) {
-               if ( !$this->tableExists( $tableName, $fName ) ) {
-                       return false;
-               }
-               return $this->query( "DROP TABLE IF EXISTS " . $this->tableName( $tableName ), $fName );
-       }
-
-       /**
-        * @return array
-        */
-       protected function getDefaultSchemaVars() {
-               $vars = parent::getDefaultSchemaVars();
-               $vars['wgDBTableOptions'] = str_replace( 'TYPE', 'ENGINE', $GLOBALS['wgDBTableOptions'] );
-               $vars['wgDBTableOptions'] = str_replace( 'CHARSET=mysql4', 'CHARSET=binary', $vars['wgDBTableOptions'] );
-               return $vars;
-       }
-
-       /**
-        * Get status information from SHOW STATUS in an associative array
-        *
-        * @param $which string
-        * @return array
-        */
-       function getMysqlStatus( $which = "%" ) {
-               $res = $this->query( "SHOW STATUS LIKE '{$which}'" );
-               $status = array();
-
-               foreach ( $res as $row ) {
-                       $status[$row->Variable_name] = $row->Value;
-               }
-
-               return $status;
-       }
-
-}
-
-/**
- * Utility class.
- * @ingroup Database
- */
-class MySQLField implements Field {
-       private $name, $tablename, $default, $max_length, $nullable,
-               $is_pk, $is_unique, $is_multiple, $is_key, $type;
-
-       function __construct( $info ) {
-               $this->name = $info->name;
-               $this->tablename = $info->table;
-               $this->default = $info->def;
-               $this->max_length = $info->max_length;
-               $this->nullable = !$info->not_null;
-               $this->is_pk = $info->primary_key;
-               $this->is_unique = $info->unique_key;
-               $this->is_multiple = $info->multiple_key;
-               $this->is_key = ( $this->is_pk || $this->is_unique || $this->is_multiple );
-               $this->type = $info->type;
-       }
-
-       /**
-        * @return string
-        */
-       function name() {
-               return $this->name;
-       }
-
-       /**
-        * @return string
-        */
-       function tableName() {
-               return $this->tableName;
-       }
-
-       /**
-        * @return string
-        */
-       function type() {
-               return $this->type;
+       protected function mysqlNumFields( $res ) {
+               return mysql_num_fields( $res );
        }
 
-       /**
-        * @return bool
-        */
-       function isNullable() {
-               return $this->nullable;
+       protected function mysqlFetchField( $res, $n ) {
+               return mysql_fetch_field( $res, $n );
        }
 
-       function defaultValue() {
-               return $this->default;
+       protected function mysqlFieldName( $res, $n ) {
+               return mysql_field_name( $res, $n );
        }
 
-       /**
-        * @return bool
-        */
-       function isKey() {
-               return $this->is_key;
+       protected function mysqlDataSeek( $res, $row ) {
+               return mysql_data_seek( $res, $row );
        }
 
-       /**
-        * @return bool
-        */
-       function isMultipleKey() {
-               return $this->is_multiple;
+       protected function mysqlError( $conn = null ) {
+               return ( $conn !== null ) ? mysql_error( $conn ) : mysql_error(); // avoid warning
        }
-}
-
-class MySQLMasterPos implements DBMasterPos {
-       var $file, $pos;
 
-       function __construct( $file, $pos ) {
-               $this->file = $file;
-               $this->pos = $pos;
+       protected function mysqlRealEscapeString( $s ) {
+               return mysql_real_escape_string( $s, $this->mConn );
        }
 
-       function __toString() {
-               return "{$this->file}/{$this->pos}";
+       protected function mysqlPing() {
+               return mysql_ping( $this->mConn );
        }
 }
diff --git a/includes/db/DatabaseMysqlBase.php b/includes/db/DatabaseMysqlBase.php
new file mode 100644 (file)
index 0000000..cae133b
--- /dev/null
@@ -0,0 +1,1098 @@
+<?php
+/**
+ * This is the MySQL database abstraction layer.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Database
+ */
+
+/**
+ * Database abstraction object for MySQL.
+ * Defines methods independent on used MySQL extension.
+ *
+ * @ingroup Database
+ * @since 1.22
+ * @see Database
+ */
+abstract class DatabaseMysqlBase extends DatabaseBase {
+       /** @var MysqlMasterPos */
+       protected $lastKnownSlavePos;
+
+       /**
+        * @return string
+        */
+       function getType() {
+               return 'mysql';
+       }
+
+       /**
+        * @param $server string
+        * @param $user string
+        * @param $password string
+        * @param $dbName string
+        * @return bool
+        * @throws DBConnectionError
+        */
+       function open( $server, $user, $password, $dbName ) {
+               global $wgAllDBsAreLocalhost, $wgDBmysql5, $wgSQLMode;
+               wfProfileIn( __METHOD__ );
+
+               # Debugging hack -- fake cluster
+               if ( $wgAllDBsAreLocalhost ) {
+                       $realServer = 'localhost';
+               } else {
+                       $realServer = $server;
+               }
+               $this->close();
+               $this->mServer = $server;
+               $this->mUser = $user;
+               $this->mPassword = $password;
+               $this->mDBname = $dbName;
+
+               wfProfileIn( "dbconnect-$server" );
+
+               # The kernel's default SYN retransmission period is far too slow for us,
+               # so we use a short timeout plus a manual retry. Retrying means that a small
+               # but finite rate of SYN packet loss won't cause user-visible errors.
+               $this->mConn = false;
+               $this->installErrorHandler();
+               try {
+                       $this->mConn = $this->mysqlConnect( $realServer );
+               } catch (Exception $ex) {
+                       wfProfileOut( "dbconnect-$server" );
+                       wfProfileOut( __METHOD__ );
+                       throw $ex;
+               }
+               $error = $this->restoreErrorHandler();
+
+               wfProfileOut( "dbconnect-$server" );
+
+               # Always log connection errors
+               if ( !$this->mConn ) {
+                       if ( !$error ) {
+                               $error = $this->lastError();
+                       }
+                       wfLogDBError( "Error connecting to {$this->mServer}: $error\n" );
+                       wfDebug( "DB connection error\n" .
+                               "Server: $server, User: $user, Password: " .
+                               substr( $password, 0, 3 ) . "..., error: " . $error . "\n" );
+
+                       wfProfileOut( __METHOD__ );
+                       return $this->reportConnectionError( $error );
+               }
+
+               if ( $dbName != '' ) {
+                       wfSuppressWarnings();
+                       $success = $this->selectDB( $dbName );
+                       wfRestoreWarnings();
+                       if ( !$success ) {
+                               wfLogDBError( "Error selecting database $dbName on server {$this->mServer}\n" );
+                               wfDebug( "Error selecting database $dbName on server {$this->mServer} " .
+                                       "from client host " . wfHostname() . "\n" );
+
+                               wfProfileOut( __METHOD__ );
+                               return $this->reportConnectionError( "Error selecting database $dbName" );
+                       }
+               }
+
+               // Tell the server we're communicating with it in UTF-8.
+               // This may engage various charset conversions.
+               if ( $wgDBmysql5 ) {
+                       $this->query( 'SET NAMES utf8', __METHOD__ );
+               } else {
+                       $this->query( 'SET NAMES binary', __METHOD__ );
+               }
+               // Set SQL mode, default is turning them all off, can be overridden or skipped with null
+               if ( is_string( $wgSQLMode ) ) {
+                       $mode = $this->addQuotes( $wgSQLMode );
+                       $this->query( "SET sql_mode = $mode", __METHOD__ );
+               }
+
+               $this->mOpened = true;
+               wfProfileOut( __METHOD__ );
+               return true;
+       }
+
+       /**
+        * Open a connection to a MySQL server
+        *
+        * @param $realServer string
+        * @return mixed Raw connection
+        * @throws DBConnectionError
+        */
+       abstract protected function mysqlConnect( $realServer );
+
+       /**
+        * @param $res ResultWrapper
+        * @throws DBUnexpectedError
+        */
+       function freeResult( $res ) {
+               if ( $res instanceof ResultWrapper ) {
+                       $res = $res->result;
+               }
+               wfSuppressWarnings();
+               $ok = $this->mysqlFreeResult( $res );
+               wfRestoreWarnings();
+               if ( !$ok ) {
+                       throw new DBUnexpectedError( $this, "Unable to free MySQL result" );
+               }
+       }
+
+       /**
+        * Free result memory
+        *
+        * @param $res Raw result
+        * @return bool
+        */
+       abstract protected function mysqlFreeResult( $res );
+
+       /**
+        * @param $res ResultWrapper
+        * @return object|bool
+        * @throws DBUnexpectedError
+        */
+       function fetchObject( $res ) {
+               if ( $res instanceof ResultWrapper ) {
+                       $res = $res->result;
+               }
+               wfSuppressWarnings();
+               $row = $this->mysqlFetchObject( $res );
+               wfRestoreWarnings();
+
+               $errno = $this->lastErrno();
+               // Unfortunately, mysql_fetch_object does not reset the last errno.
+               // Only check for CR_SERVER_LOST and CR_UNKNOWN_ERROR, as
+               // these are the only errors mysql_fetch_object can cause.
+               // See http://dev.mysql.com/doc/refman/5.0/en/mysql-fetch-row.html.
+               if ( $errno == 2000 || $errno == 2013 ) {
+                       throw new DBUnexpectedError( $this, 'Error in fetchObject(): ' . htmlspecialchars( $this->lastError() ) );
+               }
+               return $row;
+       }
+
+       /**
+        * Fetch a result row as an object
+        *
+        * @param $res Raw result
+        * @return stdClass
+        */
+       abstract protected function mysqlFetchObject( $res );
+
+       /**
+        * @param $res ResultWrapper
+        * @return array|bool
+        * @throws DBUnexpectedError
+        */
+       function fetchRow( $res ) {
+               if ( $res instanceof ResultWrapper ) {
+                       $res = $res->result;
+               }
+               wfSuppressWarnings();
+               $row = $this->mysqlFetchArray( $res );
+               wfRestoreWarnings();
+
+               $errno = $this->lastErrno();
+               // Unfortunately, mysql_fetch_array does not reset the last errno.
+               // Only check for CR_SERVER_LOST and CR_UNKNOWN_ERROR, as
+               // these are the only errors mysql_fetch_array can cause.
+               // See http://dev.mysql.com/doc/refman/5.0/en/mysql-fetch-row.html.
+               if ( $errno == 2000 || $errno == 2013 ) {
+                       throw new DBUnexpectedError( $this, 'Error in fetchRow(): ' . htmlspecialchars( $this->lastError() ) );
+               }
+               return $row;
+       }
+
+       /**
+        * Fetch a result row as an associative and numeric array
+        *
+        * @param $res Raw result
+        * @return array
+        */
+       abstract protected function mysqlFetchArray( $res );
+
+       /**
+        * @throws DBUnexpectedError
+        * @param $res ResultWrapper
+        * @return int
+        */
+       function numRows( $res ) {
+               if ( $res instanceof ResultWrapper ) {
+                       $res = $res->result;
+               }
+               wfSuppressWarnings();
+               $n = $this->mysqlNumRows( $res );
+               wfRestoreWarnings();
+               // Unfortunately, mysql_num_rows does not reset the last errno.
+               // We are not checking for any errors here, since
+               // these are no errors mysql_num_rows can cause.
+               // See http://dev.mysql.com/doc/refman/5.0/en/mysql-fetch-row.html.
+               // See https://bugzilla.wikimedia.org/42430
+               return $n;
+       }
+
+       /**
+        * Get number of rows in result
+        *
+        * @param $res Raw result
+        * @return int
+        */
+       abstract protected function mysqlNumRows( $res );
+
+       /**
+        * @param $res ResultWrapper
+        * @return int
+        */
+       function numFields( $res ) {
+               if ( $res instanceof ResultWrapper ) {
+                       $res = $res->result;
+               }
+               return $this->mysqlNumFields( $res );
+       }
+
+       /**
+        * Get number of fields in result
+        *
+        * @param $res Raw result
+        * @return int
+        */
+       abstract protected function mysqlNumFields( $res );
+
+       /**
+        * @param $res ResultWrapper
+        * @param $n string
+        * @return string
+        */
+       function fieldName( $res, $n ) {
+               if ( $res instanceof ResultWrapper ) {
+                       $res = $res->result;
+               }
+               return $this->mysqlFieldName( $res, $n );
+       }
+
+       /**
+        * Get the name of the specified field in a result
+        *
+        * @param $res Raw result
+        * @param $n int
+        * @return string
+        */
+       abstract protected function mysqlFieldName( $res, $n );
+
+       /**
+        * @param $res ResultWrapper
+        * @param $row
+        * @return bool
+        */
+       function dataSeek( $res, $row ) {
+               if ( $res instanceof ResultWrapper ) {
+                       $res = $res->result;
+               }
+               return $this->mysqlDataSeek( $res, $row );
+       }
+
+       /**
+        * Move internal result pointer
+        *
+        * @param $res Raw result
+        * @param $row int
+        * @return bool
+        */
+       abstract protected function mysqlDataSeek( $res, $row );
+
+       /**
+        * @return string
+        */
+       function lastError() {
+               if ( $this->mConn ) {
+                       # Even if it's non-zero, it can still be invalid
+                       wfSuppressWarnings();
+                       $error = $this->mysqlError( $this->mConn );
+                       if ( !$error ) {
+                               $error = $this->mysqlError();
+                       }
+                       wfRestoreWarnings();
+               } else {
+                       $error = $this->mysqlError();
+               }
+               if ( $error ) {
+                       $error .= ' (' . $this->mServer . ')';
+               }
+               return $error;
+       }
+
+       /**
+        * Returns the text of the error message from previous MySQL operation
+        *
+        * @param $conn Raw connection
+        * @return string
+        */
+       abstract protected function mysqlError( $conn = null );
+
+       /**
+        * @param $table string
+        * @param $uniqueIndexes
+        * @param $rows array
+        * @param $fname string
+        * @return ResultWrapper
+        */
+       function replace( $table, $uniqueIndexes, $rows, $fname = __METHOD__ ) {
+               return $this->nativeReplace( $table, $rows, $fname );
+       }
+
+       /**
+        * Estimate rows in dataset
+        * Returns estimated count, based on EXPLAIN output
+        * Takes same arguments as Database::select()
+        *
+        * @param $table string|array
+        * @param $vars string|array
+        * @param $conds string|array
+        * @param $fname string
+        * @param $options string|array
+        * @return int
+        */
+       public function estimateRowCount( $table, $vars = '*', $conds = '', $fname = __METHOD__, $options = array() ) {
+               $options['EXPLAIN'] = true;
+               $res = $this->select( $table, $vars, $conds, $fname, $options );
+               if ( $res === false ) {
+                       return false;
+               }
+               if ( !$this->numRows( $res ) ) {
+                       return 0;
+               }
+
+               $rows = 1;
+               foreach ( $res as $plan ) {
+                       $rows *= $plan->rows > 0 ? $plan->rows : 1; // avoid resetting to zero
+               }
+               return $rows;
+       }
+
+       /**
+        * @param $table string
+        * @param $field string
+        * @return bool|MySQLField
+        */
+       function fieldInfo( $table, $field ) {
+               $table = $this->tableName( $table );
+               $res = $this->query( "SELECT * FROM $table LIMIT 1", __METHOD__, true );
+               if ( !$res ) {
+                       return false;
+               }
+               $n = $this->mysqlNumFields( $res->result );
+               for ( $i = 0; $i < $n; $i++ ) {
+                       $meta = $this->mysqlFetchField( $res->result, $i );
+                       if ( $field == $meta->name ) {
+                               return new MySQLField( $meta );
+                       }
+               }
+               return false;
+       }
+
+       /**
+        * Get column information from a result
+        *
+        * @param $res Raw result
+        * @param $n int
+        * @return stdClass
+        */
+       abstract protected function mysqlFetchField( $res, $n );
+
+       /**
+        * Get information about an index into an object
+        * Returns false if the index does not exist
+        *
+        * @param $table string
+        * @param $index string
+        * @param $fname string
+        * @return bool|array|null False or null on failure
+        */
+       function indexInfo( $table, $index, $fname = __METHOD__ ) {
+               # SHOW INDEX works in MySQL 3.23.58, but SHOW INDEXES does not.
+               # SHOW INDEX should work for 3.x and up:
+               # http://dev.mysql.com/doc/mysql/en/SHOW_INDEX.html
+               $table = $this->tableName( $table );
+               $index = $this->indexName( $index );
+
+               $sql = 'SHOW INDEX FROM ' . $table;
+               $res = $this->query( $sql, $fname );
+
+               if ( !$res ) {
+                       return null;
+               }
+
+               $result = array();
+
+               foreach ( $res as $row ) {
+                       if ( $row->Key_name == $index ) {
+                               $result[] = $row;
+                       }
+               }
+               return empty( $result ) ? false : $result;
+       }
+
+       /**
+        * @param $s string
+        *
+        * @return string
+        */
+       function strencode( $s ) {
+               $sQuoted = $this->mysqlRealEscapeString( $s );
+
+               if ( $sQuoted === false ) {
+                       $this->ping();
+                       $sQuoted = $this->mysqlRealEscapeString( $s );
+               }
+               return $sQuoted;
+       }
+
+       /**
+        * MySQL uses `backticks` for identifier quoting instead of the sql standard "double quotes".
+        *
+        * @param $s string
+        *
+        * @return string
+        */
+       public function addIdentifierQuotes( $s ) {
+               return "`" . $this->strencode( $s ) . "`";
+       }
+
+       /**
+        * @param $name string
+        * @return bool
+        */
+       public function isQuotedIdentifier( $name ) {
+               return strlen( $name ) && $name[0] == '`' && substr( $name, -1, 1 ) == '`';
+       }
+
+       /**
+        * @return bool
+        */
+       function ping() {
+               $ping = $this->mysqlPing();
+               if ( $ping ) {
+                       return true;
+               }
+
+               $this->closeConnection();
+               $this->mOpened = false;
+               $this->mConn = false;
+               $this->open( $this->mServer, $this->mUser, $this->mPassword, $this->mDBname );
+               return true;
+       }
+
+       /**
+        * Ping a server connection or reconnect if there is no connection
+        *
+        * @return bool
+        */
+       abstract protected function mysqlPing();
+
+       /**
+        * Returns slave lag.
+        *
+        * This will do a SHOW SLAVE STATUS
+        *
+        * @return int
+        */
+       function getLag() {
+               if ( !is_null( $this->mFakeSlaveLag ) ) {
+                       wfDebug( "getLag: fake slave lagged {$this->mFakeSlaveLag} seconds\n" );
+                       return $this->mFakeSlaveLag;
+               }
+
+               return $this->getLagFromSlaveStatus();
+       }
+
+       /**
+        * @return bool|int
+        */
+       function getLagFromSlaveStatus() {
+               $res = $this->query( 'SHOW SLAVE STATUS', __METHOD__ );
+               if ( !$res ) {
+                       return false;
+               }
+               $row = $res->fetchObject();
+               if ( !$row ) {
+                       return false;
+               }
+               if ( strval( $row->Seconds_Behind_Master ) === '' ) {
+                       return false;
+               } else {
+                       return intval( $row->Seconds_Behind_Master );
+               }
+       }
+
+       /**
+        * @deprecated in 1.19, use getLagFromSlaveStatus
+        *
+        * @return bool|int
+        */
+       function getLagFromProcesslist() {
+               wfDeprecated( __METHOD__, '1.19' );
+               $res = $this->query( 'SHOW PROCESSLIST', __METHOD__ );
+               if ( !$res ) {
+                       return false;
+               }
+               # Find slave SQL thread
+               foreach ( $res as $row ) {
+                       /* This should work for most situations - when default db
+                        * for thread is not specified, it had no events executed,
+                        * and therefore it doesn't know yet how lagged it is.
+                        *
+                        * Relay log I/O thread does not select databases.
+                        */
+                       if ( $row->User == 'system user' &&
+                               $row->State != 'Waiting for master to send event' &&
+                               $row->State != 'Connecting to master' &&
+                               $row->State != 'Queueing master event to the relay log' &&
+                               $row->State != 'Waiting for master update' &&
+                               $row->State != 'Requesting binlog dump' &&
+                               $row->State != 'Waiting to reconnect after a failed master event read' &&
+                               $row->State != 'Reconnecting after a failed master event read' &&
+                               $row->State != 'Registering slave on master'
+                               ) {
+                               # This is it, return the time (except -ve)
+                               if ( $row->Time > 0x7fffffff ) {
+                                       return false;
+                               } else {
+                                       return $row->Time;
+                               }
+                       }
+               }
+               return false;
+       }
+
+       /**
+        * Wait for the slave to catch up to a given master position.
+        * @TODO: return values for this and base class are rubbish
+        *
+        * @param $pos DBMasterPos object
+        * @param $timeout Integer: the maximum number of seconds to wait for synchronisation
+        * @return bool|string
+        */
+       function masterPosWait( DBMasterPos $pos, $timeout ) {
+               if ( $this->lastKnownSlavePos && $this->lastKnownSlavePos->hasReached( $pos ) ) {
+                       return '0'; // http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html
+               }
+
+               wfProfileIn( __METHOD__ );
+               # Commit any open transactions
+               $this->commit( __METHOD__, 'flush' );
+
+               if ( !is_null( $this->mFakeSlaveLag ) ) {
+                       $status = parent::masterPosWait( $pos, $timeout );
+                       wfProfileOut( __METHOD__ );
+                       return $status;
+               }
+
+               # Call doQuery() directly, to avoid opening a transaction if DBO_TRX is set
+               $encFile = $this->addQuotes( $pos->file );
+               $encPos = intval( $pos->pos );
+               $sql = "SELECT MASTER_POS_WAIT($encFile, $encPos, $timeout)";
+               $res = $this->doQuery( $sql );
+
+               $status = false;
+               if ( $res && $row = $this->fetchRow( $res ) ) {
+                       $status = $row[0]; // can be NULL, -1, or 0+ per the MySQL manual
+                       if ( ctype_digit( $status ) ) { // success
+                               $this->lastKnownSlavePos = $pos;
+                       }
+               }
+
+               wfProfileOut( __METHOD__ );
+               return $status;
+       }
+
+       /**
+        * Get the position of the master from SHOW SLAVE STATUS
+        *
+        * @return MySQLMasterPos|bool
+        */
+       function getSlavePos() {
+               if ( !is_null( $this->mFakeSlaveLag ) ) {
+                       return parent::getSlavePos();
+               }
+
+               $res = $this->query( 'SHOW SLAVE STATUS', 'DatabaseBase::getSlavePos' );
+               $row = $this->fetchObject( $res );
+
+               if ( $row ) {
+                       $pos = isset( $row->Exec_master_log_pos ) ? $row->Exec_master_log_pos : $row->Exec_Master_Log_Pos;
+                       return new MySQLMasterPos( $row->Relay_Master_Log_File, $pos );
+               } else {
+                       return false;
+               }
+       }
+
+       /**
+        * Get the position of the master from SHOW MASTER STATUS
+        *
+        * @return MySQLMasterPos|bool
+        */
+       function getMasterPos() {
+               if ( $this->mFakeMaster ) {
+                       return parent::getMasterPos();
+               }
+
+               $res = $this->query( 'SHOW MASTER STATUS', 'DatabaseBase::getMasterPos' );
+               $row = $this->fetchObject( $res );
+
+               if ( $row ) {
+                       return new MySQLMasterPos( $row->File, $row->Position );
+               } else {
+                       return false;
+               }
+       }
+
+       /**
+        * @param $index
+        * @return string
+        */
+       function useIndexClause( $index ) {
+               return "FORCE INDEX (" . $this->indexName( $index ) . ")";
+       }
+
+       /**
+        * @return string
+        */
+       function lowPriorityOption() {
+               return 'LOW_PRIORITY';
+       }
+
+       /**
+        * @return string
+        */
+       public function getSoftwareLink() {
+               return '[http://www.mysql.com/ MySQL]';
+       }
+
+       /**
+        * @param $options array
+        */
+       public function setSessionOptions( array $options ) {
+               if ( isset( $options['connTimeout'] ) ) {
+                       $timeout = (int)$options['connTimeout'];
+                       $this->query( "SET net_read_timeout=$timeout" );
+                       $this->query( "SET net_write_timeout=$timeout" );
+               }
+       }
+
+       public function streamStatementEnd( &$sql, &$newLine ) {
+               if ( strtoupper( substr( $newLine, 0, 9 ) ) == 'DELIMITER' ) {
+                       preg_match( '/^DELIMITER\s+(\S+)/', $newLine, $m );
+                       $this->delimiter = $m[1];
+                       $newLine = '';
+               }
+               return parent::streamStatementEnd( $sql, $newLine );
+       }
+
+       /**
+        * Check to see if a named lock is available. This is non-blocking.
+        *
+        * @param string $lockName name of lock to poll
+        * @param string $method name of method calling us
+        * @return Boolean
+        * @since 1.20
+        */
+       public function lockIsFree( $lockName, $method ) {
+               $lockName = $this->addQuotes( $lockName );
+               $result = $this->query( "SELECT IS_FREE_LOCK($lockName) AS lockstatus", $method );
+               $row = $this->fetchObject( $result );
+               return ( $row->lockstatus == 1 );
+       }
+
+       /**
+        * @param $lockName string
+        * @param $method string
+        * @param $timeout int
+        * @return bool
+        */
+       public function lock( $lockName, $method, $timeout = 5 ) {
+               $lockName = $this->addQuotes( $lockName );
+               $result = $this->query( "SELECT GET_LOCK($lockName, $timeout) AS lockstatus", $method );
+               $row = $this->fetchObject( $result );
+
+               if ( $row->lockstatus == 1 ) {
+                       return true;
+               } else {
+                       wfDebug( __METHOD__ . " failed to acquire lock\n" );
+                       return false;
+               }
+       }
+
+       /**
+        * FROM MYSQL DOCS: http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html#function_release-lock
+        * @param $lockName string
+        * @param $method string
+        * @return bool
+        */
+       public function unlock( $lockName, $method ) {
+               $lockName = $this->addQuotes( $lockName );
+               $result = $this->query( "SELECT RELEASE_LOCK($lockName) as lockstatus", $method );
+               $row = $this->fetchObject( $result );
+               return ( $row->lockstatus == 1 );
+       }
+
+       /**
+        * @param $read array
+        * @param $write array
+        * @param $method string
+        * @param $lowPriority bool
+        * @return bool
+        */
+       public function lockTables( $read, $write, $method, $lowPriority = true ) {
+               $items = array();
+
+               foreach ( $write as $table ) {
+                       $tbl = $this->tableName( $table ) .
+                                       ( $lowPriority ? ' LOW_PRIORITY' : '' ) .
+                                       ' WRITE';
+                       $items[] = $tbl;
+               }
+               foreach ( $read as $table ) {
+                       $items[] = $this->tableName( $table ) . ' READ';
+               }
+               $sql = "LOCK TABLES " . implode( ',', $items );
+               $this->query( $sql, $method );
+               return true;
+       }
+
+       /**
+        * @param $method string
+        * @return bool
+        */
+       public function unlockTables( $method ) {
+               $this->query( "UNLOCK TABLES", $method );
+               return true;
+       }
+
+       /**
+        * Get search engine class. All subclasses of this
+        * need to implement this if they wish to use searching.
+        *
+        * @return String
+        */
+       public function getSearchEngine() {
+               return 'SearchMySQL';
+       }
+
+       /**
+        * @param bool $value
+        * @return mixed
+        */
+       public function setBigSelects( $value = true ) {
+               if ( $value === 'default' ) {
+                       if ( $this->mDefaultBigSelects === null ) {
+                               # Function hasn't been called before so it must already be set to the default
+                               return;
+                       } else {
+                               $value = $this->mDefaultBigSelects;
+                       }
+               } elseif ( $this->mDefaultBigSelects === null ) {
+                       $this->mDefaultBigSelects = (bool)$this->selectField( false, '@@sql_big_selects' );
+               }
+               $encValue = $value ? '1' : '0';
+               $this->query( "SET sql_big_selects=$encValue", __METHOD__ );
+       }
+
+       /**
+        * DELETE where the condition is a join. MySql uses multi-table deletes.
+        * @param $delTable string
+        * @param $joinTable string
+        * @param $delVar string
+        * @param $joinVar string
+        * @param $conds array|string
+        * @param bool|string $fname bool
+        * @throws DBUnexpectedError
+        * @return bool|ResultWrapper
+        */
+       function deleteJoin( $delTable, $joinTable, $delVar, $joinVar, $conds, $fname = __METHOD__ ) {
+               if ( !$conds ) {
+                       throw new DBUnexpectedError( $this, 'DatabaseBase::deleteJoin() called with empty $conds' );
+               }
+
+               $delTable = $this->tableName( $delTable );
+               $joinTable = $this->tableName( $joinTable );
+               $sql = "DELETE $delTable FROM $delTable, $joinTable WHERE $delVar=$joinVar ";
+
+               if ( $conds != '*' ) {
+                       $sql .= ' AND ' . $this->makeList( $conds, LIST_AND );
+               }
+
+               return $this->query( $sql, $fname );
+       }
+
+       /**
+        * @param string $table
+        * @param array $rows
+        * @param array $uniqueIndexes
+        * @param array $set
+        * @param string $fname
+        * @param array $options
+        * @return bool
+        */
+       public function upsert(
+               $table, array $rows, array $uniqueIndexes, array $set, $fname = __METHOD__
+       ) {
+               if ( !count( $rows ) ) {
+                       return true; // nothing to do
+               }
+               $rows = is_array( reset( $rows ) ) ? $rows : array( $rows );
+
+               $table = $this->tableName( $table );
+               $columns = array_keys( $rows[0] );
+
+               $sql = "INSERT INTO $table (" . implode( ',', $columns ) . ') VALUES ';
+               $rowTuples = array();
+               foreach ( $rows as $row ) {
+                       $rowTuples[] = '(' . $this->makeList( $row ) . ')';
+               }
+               $sql .= implode( ',', $rowTuples );
+               $sql .= " ON DUPLICATE KEY UPDATE " . $this->makeList( $set, LIST_SET );
+
+               return (bool)$this->query( $sql, $fname );
+       }
+
+       /**
+        * Determines how long the server has been up
+        *
+        * @return int
+        */
+       function getServerUptime() {
+               $vars = $this->getMysqlStatus( 'Uptime' );
+               return (int)$vars['Uptime'];
+       }
+
+       /**
+        * Determines if the last failure was due to a deadlock
+        *
+        * @return bool
+        */
+       function wasDeadlock() {
+               return $this->lastErrno() == 1213;
+       }
+
+       /**
+        * Determines if the last failure was due to a lock timeout
+        *
+        * @return bool
+        */
+       function wasLockTimeout() {
+               return $this->lastErrno() == 1205;
+       }
+
+       /**
+        * Determines if the last query error was something that should be dealt
+        * with by pinging the connection and reissuing the query
+        *
+        * @return bool
+        */
+       function wasErrorReissuable() {
+               return $this->lastErrno() == 2013 || $this->lastErrno() == 2006;
+       }
+
+       /**
+        * Determines if the last failure was due to the database being read-only.
+        *
+        * @return bool
+        */
+       function wasReadOnlyError() {
+               return $this->lastErrno() == 1223 ||
+                       ( $this->lastErrno() == 1290 && strpos( $this->lastError(), '--read-only' ) !== false );
+       }
+
+       /**
+        * @param $oldName
+        * @param $newName
+        * @param $temporary bool
+        * @param $fname string
+        */
+       function duplicateTableStructure( $oldName, $newName, $temporary = false, $fname = __METHOD__ ) {
+               $tmp = $temporary ? 'TEMPORARY ' : '';
+               $newName = $this->addIdentifierQuotes( $newName );
+               $oldName = $this->addIdentifierQuotes( $oldName );
+               $query = "CREATE $tmp TABLE $newName (LIKE $oldName)";
+               $this->query( $query, $fname );
+       }
+
+       /**
+        * List all tables on the database
+        *
+        * @param string $prefix Only show tables with this prefix, e.g. mw_
+        * @param string $fname calling function name
+        * @return array
+        */
+       function listTables( $prefix = null, $fname = __METHOD__ ) {
+               $result = $this->query( "SHOW TABLES", $fname );
+
+               $endArray = array();
+
+               foreach ( $result as $table ) {
+                       $vars = get_object_vars( $table );
+                       $table = array_pop( $vars );
+
+                       if ( !$prefix || strpos( $table, $prefix ) === 0 ) {
+                               $endArray[] = $table;
+                       }
+               }
+
+               return $endArray;
+       }
+
+       /**
+        * @param $tableName
+        * @param $fName string
+        * @return bool|ResultWrapper
+        */
+       public function dropTable( $tableName, $fName = __METHOD__ ) {
+               if ( !$this->tableExists( $tableName, $fName ) ) {
+                       return false;
+               }
+               return $this->query( "DROP TABLE IF EXISTS " . $this->tableName( $tableName ), $fName );
+       }
+
+       /**
+        * @return array
+        */
+       protected function getDefaultSchemaVars() {
+               $vars = parent::getDefaultSchemaVars();
+               $vars['wgDBTableOptions'] = str_replace( 'TYPE', 'ENGINE', $GLOBALS['wgDBTableOptions'] );
+               $vars['wgDBTableOptions'] = str_replace( 'CHARSET=mysql4', 'CHARSET=binary', $vars['wgDBTableOptions'] );
+               return $vars;
+       }
+
+       /**
+        * Get status information from SHOW STATUS in an associative array
+        *
+        * @param $which string
+        * @return array
+        */
+       function getMysqlStatus( $which = "%" ) {
+               $res = $this->query( "SHOW STATUS LIKE '{$which}'" );
+               $status = array();
+
+               foreach ( $res as $row ) {
+                       $status[$row->Variable_name] = $row->Value;
+               }
+
+               return $status;
+       }
+
+}
+
+
+
+/**
+ * Utility class.
+ * @ingroup Database
+ */
+class MySQLField implements Field {
+       private $name, $tablename, $default, $max_length, $nullable,
+               $is_pk, $is_unique, $is_multiple, $is_key, $type;
+
+       function __construct( $info ) {
+               $this->name = $info->name;
+               $this->tablename = $info->table;
+               $this->default = $info->def;
+               $this->max_length = $info->max_length;
+               $this->nullable = !$info->not_null;
+               $this->is_pk = $info->primary_key;
+               $this->is_unique = $info->unique_key;
+               $this->is_multiple = $info->multiple_key;
+               $this->is_key = ( $this->is_pk || $this->is_unique || $this->is_multiple );
+               $this->type = $info->type;
+       }
+
+       /**
+        * @return string
+        */
+       function name() {
+               return $this->name;
+       }
+
+       /**
+        * @return string
+        */
+       function tableName() {
+               return $this->tableName;
+       }
+
+       /**
+        * @return string
+        */
+       function type() {
+               return $this->type;
+       }
+
+       /**
+        * @return bool
+        */
+       function isNullable() {
+               return $this->nullable;
+       }
+
+       function defaultValue() {
+               return $this->default;
+       }
+
+       /**
+        * @return bool
+        */
+       function isKey() {
+               return $this->is_key;
+       }
+
+       /**
+        * @return bool
+        */
+       function isMultipleKey() {
+               return $this->is_multiple;
+       }
+}
+
+class MySQLMasterPos implements DBMasterPos {
+       var $file, $pos;
+
+       function __construct( $file, $pos ) {
+               $this->file = $file;
+               $this->pos = $pos;
+       }
+
+       function __toString() {
+               // e.g db1034-bin.000976/843431247
+               return "{$this->file}/{$this->pos}";
+       }
+
+       /**
+        * @return array|false (int, int)
+        */
+       protected function getCoordinates() {
+               $m = array();
+               if ( preg_match( '!\.(\d+)/(\d+)$!', (string)$this, $m ) ) {
+                       return array( (int)$m[1], (int)$m[2] );
+               }
+               return false;
+       }
+
+       function hasReached( MySQLMasterPos $pos ) {
+               $thisPos = $this->getCoordinates();
+               $thatPos = $pos->getCoordinates();
+               return ( $thisPos && $thatPos && $thisPos >= $thatPos );
+       }
+}
index 4fa2397..2ccc056 100644 (file)
@@ -249,6 +249,7 @@ class DatabaseOracle extends DatabaseBase {
         * @return DatabaseBase|null
         */
        function open( $server, $user, $password, $dbName ) {
+               global $wgDBOracleDRCP;
                if ( !function_exists( 'oci_connect' ) ) {
                        throw new DBConnectionError( $this, "Oracle functions missing, have you compiled PHP with the --with-oci8 option?\n (Note: if you recently installed PHP, you may need to restart your webserver and database)\n" );
                }
@@ -276,9 +277,16 @@ class DatabaseOracle extends DatabaseBase {
                        return;
                }
 
+               if ( $wgDBOracleDRCP ) {
+                       $this->setFlag( DBO_PERSISTENT );
+               }
+
                $session_mode = $this->mFlags & DBO_SYSDBA ? OCI_SYSDBA : OCI_DEFAULT;
+
                wfSuppressWarnings();
-               if ( $this->mFlags & DBO_DEFAULT ) {
+               if ( $this->mFlags & DBO_PERSISTENT ) {
+                       $this->mConn = oci_pconnect( $this->mUser, $this->mPassword, $this->mServer, $this->defaultCharset, $session_mode );
+               } else if ( $this->mFlags & DBO_DEFAULT ) {
                        $this->mConn = oci_new_connect( $this->mUser, $this->mPassword, $this->mServer, $this->defaultCharset, $session_mode );
                } else {
                        $this->mConn = oci_connect( $this->mUser, $this->mPassword, $this->mServer, $this->defaultCharset, $session_mode );
@@ -333,7 +341,7 @@ class DatabaseOracle extends DatabaseBase {
                $union_unique = ( preg_match( '/\/\* UNION_UNIQUE \*\/ /', $sql ) != 0 );
                // EXPLAIN syntax in Oracle is EXPLAIN PLAN FOR and it return nothing
                // you have to select data from plan table after explain
-               $explain_id = date( 'dmYHis' );
+               $explain_id = MWTimestamp::getLocalInstance()->format( 'dmYHis' );
 
                $sql = preg_replace( '/^EXPLAIN /', 'EXPLAIN PLAN SET STATEMENT_ID = \'' . $explain_id . '\' FOR', $sql, 1, $explain_count );
 
index f8833f5..3941179 100644 (file)
@@ -37,7 +37,7 @@ interface IORMRow {
         * Load the specified fields from the database.
         *
         * @since 1.20
-        * @deprecated since 1.21
+        * @deprecated since 1.22
         *
         * @param array|null $fields
         * @param boolean $override
@@ -64,9 +64,9 @@ interface IORMRow {
         * Gets the value of a field but first loads it if not done so already.
         *
         * @since 1.20
-        * @deprecated since 1.21
+        * @deprecated since 1.22
         *
-        * @param string$name
+        * @param string $name
         *
         * @return mixed
         */
@@ -146,7 +146,7 @@ interface IORMRow {
         * Load the default values, via getDefaults.
         *
         * @since 1.20
-        * @deprecated since 1.21
+        * @deprecated since 1.22
         *
         * @param boolean $override
         */
@@ -159,7 +159,7 @@ interface IORMRow {
         * @since 1.20
         *
         * @param string|null $functionName
-        * @deprecated since 1.21
+        * @deprecated since 1.22
         *
         * @return boolean Success indicator
         */
@@ -169,7 +169,7 @@ interface IORMRow {
         * Removes the object from the database.
         *
         * @since 1.20
-        * @deprecated since 1.21
+        * @deprecated since 1.22
         *
         * @return boolean Success indicator
         */
@@ -211,7 +211,7 @@ interface IORMRow {
         * Add an amount (can be negative) to the specified field (needs to be numeric).
         *
         * @since 1.20
-        * @deprecated since 1.21
+        * @deprecated since 1.22
         *
         * @param string $field
         * @param integer $amount
@@ -233,7 +233,7 @@ interface IORMRow {
         * Computes and updates the values of the summary fields.
         *
         * @since 1.20
-        * @deprecated since 1.21
+        * @deprecated since 1.22
         *
         * @param array|string|null $summaryFields
         */
@@ -243,7 +243,7 @@ interface IORMRow {
         * Sets the value for the @see $updateSummaries field.
         *
         * @since 1.20
-        * @deprecated since 1.21
+        * @deprecated since 1.22
         *
         * @param boolean $update
         */
@@ -253,7 +253,7 @@ interface IORMRow {
         * Sets the value for the @see $inSummaryMode field.
         *
         * @since 1.20
-        * @deprecated since 1.21
+        * @deprecated since 1.22
         *
         * @param boolean $summaryMode
         */
@@ -263,7 +263,7 @@ interface IORMRow {
         * Returns the table this IORMRow is a row in.
         *
         * @since 1.20
-        * @deprecated since 1.21
+        * @deprecated since 1.22
         *
         * @return IORMTable
         */
index db709b5..5c4443d 100644 (file)
@@ -545,6 +545,22 @@ class LoadBalancer {
                }
        }
 
+       /**
+        * Get a database connection handle reference
+        *
+        * The handle's methods wrap simply wrap those of a DatabaseBase handle
+        *
+        * @see LoadBalancer::getConnection() for parameter information
+        *
+        * @param integer $db
+        * @param mixed $groups
+        * @param string $wiki
+        * @return DBConnRef
+        */
+       public function getConnectionRef( $db, $groups = array(), $wiki = false ) {
+               return new DBConnRef( $this, $this->getConnection( $db, $groups, $wiki ) );
+       }
+
        /**
         * Open a connection to the server given by the specified index
         * Index must be an actual index into the array.
@@ -1068,3 +1084,33 @@ class LoadBalancer {
                $this->mLagTimes = null;
        }
 }
+
+/**
+ * Helper class to handle automatically marking connectons as reusable (via RAII pattern)
+ *
+ * @ingroup Database
+ * @since 1.22
+ */
+class DBConnRef implements IDatabase {
+       /** @var LoadBalancer */
+       protected $lb;
+       /** @var DatabaseBase */
+       protected $conn;
+
+       /**
+        * @param $lb LoadBalancer
+        * @param $conn DatabaseBase
+        */
+       public function __construct( LoadBalancer $lb, DatabaseBase $conn ) {
+               $this->lb = $lb;
+               $this->conn = $conn;
+       }
+
+       public function __call( $name, $arguments ) {
+               return call_user_func_array( array( $this->conn, $name ), $arguments );
+       }
+
+       function __destruct() {
+               $this->lb->reuseConnection( $this->conn );
+       }
+}
index 4b9ecce..519e2df 100644 (file)
@@ -142,12 +142,12 @@ class LoadMonitor_MySQL implements LoadMonitor {
                $masterName = $this->parent->getServerName( 0 );
                $memcKey = wfMemcKey( 'lag_times', $masterName );
                $times = $wgMemc->get( $memcKey );
-               if ( $times ) {
+               if ( is_array( $times ) ) {
                        # Randomly recache with probability rising over $expiry
                        $elapsed = time() - $times['timestamp'];
                        $chance = max( 0, ( $expiry - $elapsed ) * $requestRate );
                        if ( mt_rand( 0, $chance ) != 0 ) {
-                               unset( $times['timestamp'] );
+                               unset( $times['timestamp'] ); // hide from caller
                                wfProfileOut( __METHOD__ );
                                return $times;
                        }
@@ -157,6 +157,17 @@ class LoadMonitor_MySQL implements LoadMonitor {
                }
 
                # Cache key missing or expired
+               if ( $wgMemc->add( "$memcKey:lock", 1, 10 ) ) {
+                       # Let this process alone update the cache value
+                       $unlocker = new ScopedCallback( function() use ( $wgMemc, $memcKey ) {
+                               $wgMemc->delete( $memcKey );
+                       } );
+               } elseif ( is_array( $times ) ) {
+                       # Could not acquire lock but an old cache exists, so use it
+                       unset( $times['timestamp'] ); // hide from caller
+                       wfProfileOut( __METHOD__ );
+                       return $times;
+               }
 
                $times = array();
                foreach ( $serverIndexes as $i ) {
@@ -171,14 +182,11 @@ class LoadMonitor_MySQL implements LoadMonitor {
 
                # Add a timestamp key so we know when it was cached
                $times['timestamp'] = time();
-               $wgMemc->set( $memcKey, $times, $expiry );
-
-               # But don't give the timestamp to the caller
-               unset( $times['timestamp'] );
-               $lagTimes = $times;
+               $wgMemc->set( $memcKey, $times, $expiry + 10 );
+               unset( $times['timestamp'] ); // hide from caller
 
                wfProfileOut( __METHOD__ );
-               return $lagTimes;
+               return $times;
        }
 
        /**
index ea6ff63..5ce3794 100644 (file)
@@ -48,7 +48,7 @@ class ORMRow implements IORMRow {
         * Settings this to false can prevent needless updating work in situations
         * such as deleting a university, which will then delete all it's courses.
         *
-        * @deprecated since 1.21
+        * @deprecated since 1.22
         * @since 1.20
         * @var bool
         */
@@ -59,14 +59,14 @@ class ORMRow implements IORMRow {
         * This mode indicates that only summary fields got updated,
         * which allows for optimizations.
         *
-        * @deprecated since 1.21
+        * @deprecated since 1.22
         * @since 1.20
         * @var bool
         */
        protected $inSummaryMode = false;
 
        /**
-        * @deprecated since 1.21
+        * @deprecated since 1.22
         * @since 1.20
         * @var ORMTable|null
         */
@@ -77,9 +77,9 @@ class ORMRow implements IORMRow {
         *
         * @since 1.20
         *
-        * @param IORMTable|null $table Deprecated since 1.21
+        * @param IORMTable|null $table Deprecated since 1.22
         * @param array|null $fields
-        * @param boolean $loadDefaults Deprecated since 1.21
+        * @param boolean $loadDefaults Deprecated since 1.22
         */
        public function __construct( IORMTable $table = null, $fields = null, $loadDefaults = false ) {
                $this->table = $table;
@@ -99,7 +99,7 @@ class ORMRow implements IORMRow {
         * Load the specified fields from the database.
         *
         * @since 1.20
-        * @deprecated since 1.21
+        * @deprecated since 1.22
         *
         * @param array|null $fields
         * @param boolean $override
@@ -164,7 +164,7 @@ class ORMRow implements IORMRow {
         * Gets the value of a field but first loads it if not done so already.
         *
         * @since 1.20
-        * @deprecated since 1.21
+        * @deprecated since 1.22
         *
         * @param $name string
         *
@@ -240,7 +240,7 @@ class ORMRow implements IORMRow {
         * Gets the fields => values to write to the table.
         *
         * @since 1.20
-        * @deprecated since 1.21
+        * @deprecated since 1.22
         *
         * @return array
         */
@@ -326,7 +326,7 @@ class ORMRow implements IORMRow {
         * Load the default values, via getDefaults.
         *
         * @since 1.20
-        * @deprecated since 1.21
+        * @deprecated since 1.22
         *
         * @param boolean $override
         */
@@ -339,7 +339,7 @@ class ORMRow implements IORMRow {
         * when it already exists, or inserting it when it doesn't.
         *
         * @since 1.20
-        * @deprecated since 1.21 Use IORMTable->updateRow or ->insertRow
+        * @deprecated since 1.22 Use IORMTable->updateRow or ->insertRow
         *
         * @param string|null $functionName
         *
@@ -357,7 +357,7 @@ class ORMRow implements IORMRow {
         * Updates the object in the database.
         *
         * @since 1.20
-        * @deprecated since 1.21
+        * @deprecated since 1.22
         *
         * @param string|null $functionName
         *
@@ -369,7 +369,7 @@ class ORMRow implements IORMRow {
                $success = $dbw->update(
                        $this->table->getName(),
                        $this->getWriteValues(),
-                       $this->table->getPrefixedValues( $this->getWriteValues() ),
+                       $this->table->getPrefixedValues( $this->getUpdateConditions() ),
                        is_null( $functionName ) ? __METHOD__ : $functionName
                );
 
@@ -395,7 +395,7 @@ class ORMRow implements IORMRow {
         * Inserts the object into the database.
         *
         * @since 1.20
-        * @deprecated since 1.21
+        * @deprecated since 1.22
         *
         * @param string|null $functionName
         * @param array|null $options
@@ -428,7 +428,7 @@ class ORMRow implements IORMRow {
         * Removes the object from the database.
         *
         * @since 1.20
-        * @deprecated since 1.21, use IROMtable->removeRow
+        * @deprecated since 1.22, use IORMTable->removeRow
         *
         * @return boolean Success indicator
         */
@@ -448,7 +448,7 @@ class ORMRow implements IORMRow {
         * Gets called before an object is removed from the database.
         *
         * @since 1.20
-        * @deprecated since 1.21
+        * @deprecated since 1.22
         */
        protected function beforeRemove() {
                $this->loadFields( $this->getBeforeRemoveFields(), false, true );
@@ -472,7 +472,7 @@ class ORMRow implements IORMRow {
         * Can be overridden to get rid of linked data.
         *
         * @since 1.20
-        * @deprecated since 1.21
+        * @deprecated since 1.22
         */
        protected function onRemoved() {
                $this->setField( 'id', null );
@@ -520,7 +520,7 @@ class ORMRow implements IORMRow {
         * Add an amount (can be negative) to the specified field (needs to be numeric).
         *
         * @since 1.20
-        * @deprecated since 1.21, use IORMTable->addToField
+        * @deprecated since 1.22, use IORMTable->addToField
         *
         * @param string $field
         * @param integer $amount
@@ -535,7 +535,7 @@ class ORMRow implements IORMRow {
         * Return the names of the fields.
         *
         * @since 1.20
-        * @deprecated since 1.21
+        * @deprecated since 1.22
         *
         * @return array
         */
@@ -547,7 +547,7 @@ class ORMRow implements IORMRow {
         * Computes and updates the values of the summary fields.
         *
         * @since 1.20
-        * @deprecated since 1.21
+        * @deprecated since 1.22
         *
         * @param array|string|null $summaryFields
         */
@@ -559,7 +559,7 @@ class ORMRow implements IORMRow {
         * Sets the value for the @see $updateSummaries field.
         *
         * @since 1.20
-        * @deprecated since 1.21
+        * @deprecated since 1.22
         *
         * @param boolean $update
         */
@@ -571,7 +571,7 @@ class ORMRow implements IORMRow {
         * Sets the value for the @see $inSummaryMode field.
         *
         * @since 1.20
-        * @deprecated since 1.21
+        * @deprecated since 1.22
         *
         * @param boolean $summaryMode
         */
@@ -583,7 +583,7 @@ class ORMRow implements IORMRow {
         * Returns the table this IORMRow is a row in.
         *
         * @since 1.20
-        * @deprecated since 1.21
+        * @deprecated since 1.22
         *
         * @return IORMTable
         */
index 3a432cd..5f6723b 100644 (file)
@@ -952,9 +952,9 @@ class ORMTable extends DBAccessBase implements IORMTable {
        }
 
        /**
-        * Updated the provided row in the database.
+        * Updates the provided row in the database.
         *
-        * @since 1.21
+        * @since 1.22
         *
         * @param IORMRow $row The row to save
         * @param string|null $functionName
@@ -980,7 +980,7 @@ class ORMTable extends DBAccessBase implements IORMTable {
        /**
         * Inserts the provided row into the database.
         *
-        * @since 1.21
+        * @since 1.22
         *
         * @param IORMRow $row
         * @param string|null $functionName
@@ -1013,7 +1013,7 @@ class ORMTable extends DBAccessBase implements IORMTable {
        /**
         * Gets the fields => values to write to the table.
         *
-        * @since 1.20
+        * @since 1.22
         *
         * @param IORMRow $row
         *
@@ -1047,7 +1047,7 @@ class ORMTable extends DBAccessBase implements IORMTable {
        /**
         * Removes the provided row from the database.
         *
-        * @since 1.21
+        * @since 1.22
         *
         * @param IORMRow $row
         * @param string|null $functionName
@@ -1067,7 +1067,7 @@ class ORMTable extends DBAccessBase implements IORMTable {
        /**
         * Add an amount (can be negative) to the specified field (needs to be numeric).
         *
-        * @since 1.21
+        * @since 1.22
         *
         * @param array $conditions
         * @param string $field
index d75a126..9f692c8 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Debug toolbar related code
+ * Debug toolbar related code.
  *
  * 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
@@ -21,7 +21,7 @@
  */
 
 /**
- * New debugger system that outputs a toolbar on page view
+ * New debugger system that outputs a toolbar on page view.
  *
  * By default, most methods do nothing ( self::$enabled = false ). You have
  * to explicitly call MWDebug::init() to enabled them.
@@ -35,28 +35,28 @@ class MWDebug {
        /**
         * Log lines
         *
-        * @var array
+        * @var array $log
         */
        protected static $log = array();
 
        /**
-        * Debug messages from wfDebug()
+        * Debug messages from wfDebug().
         *
-        * @var array
+        * @var array $debug
         */
        protected static $debug = array();
 
        /**
-        * Queries
+        * SQL statements of the databses queries.
         *
-        * @var array
+        * @var array $query
         */
        protected static $query = array();
 
        /**
         * Is the debugger enabled?
         *
-        * @var bool
+        * @var bool $enabled
         */
        protected static $enabled = false;
 
@@ -64,7 +64,7 @@ class MWDebug {
         * Array of functions that have already been warned, formatted
         * function-caller to prevent a buttload of warnings
         *
-        * @var array
+        * @var array $deprecationWarnings
         */
        protected static $deprecationWarnings = array();
 
@@ -310,7 +310,7 @@ class MWDebug {
                global $wgDebugComments, $wgShowDebug;
 
                if ( self::$enabled || $wgDebugComments || $wgShowDebug ) {
-                       self::$debug[] = rtrim( $str );
+                       self::$debug[] = rtrim( UtfNormal::cleanUp( $str ) );
                }
        }
 
@@ -498,15 +498,10 @@ class MWDebug {
 
                $result->setIndexedTagName( $debugInfo, 'debuginfo' );
                $result->setIndexedTagName( $debugInfo['log'], 'line' );
-               foreach ( $debugInfo['debugLog'] as $index => $debugLogText ) {
-                       $vals = array();
-                       ApiResult::setContent( $vals, $debugLogText );
-                       $debugInfo['debugLog'][$index] = $vals; //replace
-               }
                $result->setIndexedTagName( $debugInfo['debugLog'], 'msg' );
                $result->setIndexedTagName( $debugInfo['queries'], 'query' );
                $result->setIndexedTagName( $debugInfo['includes'], 'queries' );
-               $result->addValue( array(), 'debuginfo', $debugInfo );
+               $result->addValue( null, 'debuginfo', $debugInfo );
        }
 
        /**
index 5cdc0b6..b102bfc 100644 (file)
@@ -38,6 +38,7 @@ class DifferenceEngine extends ContextSource {
         * @private
         */
        var $mOldid, $mNewid;
+       var $mOldTags, $mNewTags;
        /**
         * @var Content
         */
@@ -302,12 +303,14 @@ class DifferenceEngine extends ContextSource {
 
                        $ldel = $this->revisionDeleteLink( $this->mOldRev );
                        $oldRevisionHeader = $this->getRevisionHeader( $this->mOldRev, 'complete' );
+                       $oldChangeTags = ChangeTags::formatSummaryRow( $this->mOldTags, 'diff' );
 
                        $oldHeader = '<div id="mw-diff-otitle1"><strong>' . $oldRevisionHeader . '</strong></div>' .
                                '<div id="mw-diff-otitle2">' .
                                        Linker::revUserTools( $this->mOldRev, !$this->unhide ) . '</div>' .
                                '<div id="mw-diff-otitle3">' . $oldminor .
                                        Linker::revComment( $this->mOldRev, !$diffOnly, !$this->unhide ) . $ldel . '</div>' .
+                               '<div id="mw-diff-otitle5">' . $oldChangeTags[0] . '</div>' .
                                '<div id="mw-diff-otitle4">' . $prevlink . '</div>';
 
                        if ( $this->mOldRev->isDeleted( Revision::DELETED_TEXT ) ) {
@@ -353,12 +356,14 @@ class DifferenceEngine extends ContextSource {
                        $formattedRevisionTools[] = $this->msg( 'parentheses' )->rawParams( $tool )->escaped();
                }
                $newRevisionHeader = $this->getRevisionHeader( $this->mNewRev, 'complete' ) . ' ' . implode( ' ', $formattedRevisionTools );
+               $newChangeTags = ChangeTags::formatSummaryRow( $this->mNewTags, 'diff' );
 
                $newHeader = '<div id="mw-diff-ntitle1"><strong>' . $newRevisionHeader . '</strong></div>' .
                        '<div id="mw-diff-ntitle2">' . Linker::revUserTools( $this->mNewRev, !$this->unhide ) .
                                " $rollback</div>" .
                        '<div id="mw-diff-ntitle3">' . $newminor .
                                Linker::revComment( $this->mNewRev, !$diffOnly, !$this->unhide ) . $rdel . '</div>' .
+                       '<div id="mw-diff-ntitle5">' . $newChangeTags[0] . '</div>' .
                        '<div id="mw-diff-ntitle4">' . $nextlink . $this->markPatrolledLink() . '</div>';
 
                if ( $this->mNewRev->isDeleted( Revision::DELETED_TEXT ) ) {
@@ -410,8 +415,7 @@ class DifferenceEngine extends ContextSource {
         * @return String
         */
        protected function markPatrolledLink() {
-               global $wgUseRCPatrol, $wgRCMaxAge, $wgEnableAPI, $wgEnableWriteAPI;
-               $cache = wfGetMainCache();
+               global $wgUseRCPatrol, $wgEnableAPI, $wgEnableWriteAPI;
 
                if ( $this->mMarkPatrolledLink === null ) {
                        // Prepare a change patrol link, if applicable
@@ -420,9 +424,7 @@ class DifferenceEngine extends ContextSource {
                                $wgUseRCPatrol && $this->mNewPage->quickUserCan( 'patrol', $this->getUser() ) &&
                                // Only do this if the revision isn't more than 6 hours older
                                // than the Max RC age (6h because the RC might not be cleaned out regularly)
-                               RecentChange::isInRCLifespan( $this->mNewRev->getTimestamp(), 21600 ) &&
-                               // Maybe the result is cached
-                               !$cache->get( wfMemcKey( 'NotPatrollableRevId', $this->mNewid ) )
+                               RecentChange::isInRCLifespan( $this->mNewRev->getTimestamp(), 21600 )
                        ) {
                                // Look for an unpatrolled change corresponding to this diff
 
@@ -431,7 +433,6 @@ class DifferenceEngine extends ContextSource {
                                        array(
                                                'rc_timestamp' => $db->timestamp( $this->mNewRev->getTimestamp() ),
                                                'rc_this_oldid' => $this->mNewid,
-                                               'rc_last_oldid' => $this->mOldid,
                                                'rc_patrolled' => 0
                                        ),
                                        __METHOD__,
@@ -465,7 +466,6 @@ class DifferenceEngine extends ContextSource {
                                                )
                                        ) . ']</span>';
                                } else {
-                                       $cache->set( wfMemcKey( 'NotPatrollableRevId', $this->mNewid ), '1', $wgRCMaxAge );
                                        $this->mMarkPatrolledLink = '';
                                }
                        } else {
@@ -610,6 +610,13 @@ class DifferenceEngine extends ContextSource {
                        return false;
                } else {
                        $multi = $this->getMultiNotice();
+                       // Display a message when the diff is empty
+                       if ( $body === '' ) {
+                               if ( $multi !== '' ) {
+                                       $multi .= '<br />';
+                               }
+                               $multi .= $this->msg( 'diff-empty' )->parse();
+                       }
                        return $this->addHeader( $body, $otitle, $ntitle, $multi, $notice );
                }
        }
@@ -635,7 +642,6 @@ class DifferenceEngine extends ContextSource {
                        return false;
                }
                // Short-circuit
-               // If mOldRev is false, it means that the
                if ( $this->mOldRev === false || ( $this->mOldRev && $this->mNewRev
                        && $this->mOldRev->getID() == $this->mNewRev->getID() ) )
                {
@@ -999,11 +1005,13 @@ class DifferenceEngine extends ContextSource {
                                $colspan = 1;
                                $multiColspan = 2;
                        }
-                       $header .= "
-                       <tr style='vertical-align: top;'>
-                       <td colspan='$colspan' class='diff-otitle'>{$otitle}</td>
-                       <td colspan='$colspan' class='diff-ntitle'>{$ntitle}</td>
-                       </tr>";
+                       if ( $otitle || $ntitle ) {
+                               $header .= "
+                               <tr style='vertical-align: top;'>
+                               <td colspan='$colspan' class='diff-otitle'>{$otitle}</td>
+                               <td colspan='$colspan' class='diff-ntitle'>{$ntitle}</td>
+                               </tr>";
+                       }
                }
 
                if ( $multi != '' ) {
@@ -1144,6 +1152,25 @@ class DifferenceEngine extends ContextSource {
                        $this->mOldPage = $this->mOldRev->getTitle();
                }
 
+               // Load tags information for both revisions
+               $dbr = wfGetDB( DB_SLAVE );
+               if ( $this->mOldid !== false ) {
+                       $this->mOldTags = $dbr->selectField(
+                               'tag_summary',
+                               'ts_tags',
+                               array( 'ts_rev_id' => $this->mOldid ),
+                               __METHOD__
+                       );
+               } else {
+                       $this->mOldTags = false;
+               }
+               $this->mNewTags = $dbr->selectField(
+                       'tag_summary',
+                       'ts_tags',
+                       array( 'ts_rev_id' => $this->mNewid ),
+                       __METHOD__
+               );
+
                return true;
        }
 
index 7d0dbd5..8f0a133 100644 (file)
@@ -28,7 +28,7 @@
  */
 class FSFile {
        protected $path; // path to file
-       private $sha1Base36 = null; // File Sha1Base36
+       protected $sha1Base36; // file SHA-1 in base 36
 
        /**
         * Sets up the file object
@@ -98,7 +98,7 @@ class FSFile {
         * Get an associative array containing information about
         * a file with the given storage path.
         *
-        * @param $ext Mixed: the file extension, or true to extract it from the filename.
+        * @param Mixed $ext: the file extension, or true to extract it from the filename.
         *             Set it to false to ignore the extension.
         *
         * @return array
@@ -171,7 +171,7 @@ class FSFile {
        /**
         * Exract image size information
         *
-        * @param $gis array
+        * @param array $gis
         * @return Array
         */
        protected function extractImageSizeInfo( array $gis ) {
@@ -194,7 +194,7 @@ class FSFile {
         * 160 log 2 / log 36 = 30.95, so the 160-bit hash fills 31 digits in base 36
         * fairly neatly.
         *
-        * @param $recache bool
+        * @param bool $recache
         * @return bool|string False on failure
         */
        public function getSha1Base36( $recache = false ) {
@@ -220,7 +220,7 @@ class FSFile {
        /**
         * Get the final file extension from a file system path
         *
-        * @param $path string
+        * @param string $path
         * @return string
         */
        public static function extensionFromPath( $path ) {
@@ -232,9 +232,8 @@ class FSFile {
         * Get an associative array containing information about a file in the local filesystem.
         *
         * @param string $path absolute local filesystem path
-        * @param $ext Mixed: the file extension, or true to extract it from the filename.
+        * @param Mixed $ext: the file extension, or true to extract it from the filename.
         *             Set it to false to ignore the extension.
-        *
         * @return array
         */
        public static function getPropsFromPath( $path, $ext = true ) {
@@ -249,19 +248,11 @@ class FSFile {
         * 160 log 2 / log 36 = 30.95, so the 160-bit hash fills 31 digits in base 36
         * fairly neatly.
         *
-        * @param $path string
-        * @param $recache bool
-        *
+        * @param string $path
         * @return bool|string False on failure
         */
-       public static function getSha1Base36FromPath( $path, $recache = false ) {
-               static $sha1Base36 = array();
-
-               if ( !isset( $sha1Base36[$path] ) || $recache ) {
-                       $fsFile = new self( $path );
-                       $sha1Base36[$path] = $fsFile->getSha1Base36();
-               }
-
-               return $sha1Base36[$path];
+       public static function getSha1Base36FromPath( $path ) {
+               $fsFile = new self( $path );
+               return $fsFile->getSha1Base36();
        }
 }
index 11a5ac9..6d64216 100644 (file)
@@ -82,12 +82,6 @@ class FSFileBackend extends FileBackendStore {
                }
        }
 
-       /**
-        * @see FileBackendStore::resolveContainerPath()
-        * @param $container string
-        * @param $relStoragePath string
-        * @return null|string
-        */
        protected function resolveContainerPath( $container, $relStoragePath ) {
                // Check that container has a root directory
                if ( isset( $this->containerPaths[$container] ) || isset( $this->basePath ) ) {
@@ -121,8 +115,8 @@ class FSFileBackend extends FileBackendStore {
         * Given the short (unresolved) and full (resolved) name of
         * a container, return the file system path of the container.
         *
-        * @param $shortCont string
-        * @param $fullCont string
+        * @param string $shortCont
+        * @param string $fullCont
         * @return string|null
         */
        protected function containerFSRoot( $shortCont, $fullCont ) {
@@ -153,10 +147,6 @@ class FSFileBackend extends FileBackendStore {
                return $fsPath;
        }
 
-       /**
-        * @see FileBackendStore::isPathUsableInternal()
-        * @return bool
-        */
        public function isPathUsableInternal( $storagePath ) {
                $fsPath = $this->resolveToFSPath( $storagePath );
                if ( $fsPath === null ) {
@@ -178,10 +168,6 @@ class FSFileBackend extends FileBackendStore {
                return $ok;
        }
 
-       /**
-        * @see FileBackendStore::doCreateInternal()
-        * @return Status
-        */
        protected function doCreateInternal( array $params ) {
                $status = Status::newGood();
 
@@ -235,10 +221,6 @@ class FSFileBackend extends FileBackendStore {
                }
        }
 
-       /**
-        * @see FileBackendStore::doStoreInternal()
-        * @return Status
-        */
        protected function doStoreInternal( array $params ) {
                $status = Status::newGood();
 
@@ -284,10 +266,6 @@ class FSFileBackend extends FileBackendStore {
                }
        }
 
-       /**
-        * @see FileBackendStore::doCopyInternal()
-        * @return Status
-        */
        protected function doCopyInternal( array $params ) {
                $status = Status::newGood();
 
@@ -348,10 +326,6 @@ class FSFileBackend extends FileBackendStore {
                }
        }
 
-       /**
-        * @see FileBackendStore::doMoveInternal()
-        * @return Status
-        */
        protected function doMoveInternal( array $params ) {
                $status = Status::newGood();
 
@@ -405,10 +379,6 @@ class FSFileBackend extends FileBackendStore {
                }
        }
 
-       /**
-        * @see FileBackendStore::doDeleteInternal()
-        * @return Status
-        */
        protected function doDeleteInternal( array $params ) {
                $status = Status::newGood();
 
@@ -454,10 +424,6 @@ class FSFileBackend extends FileBackendStore {
                }
        }
 
-       /**
-        * @see FileBackendStore::doPrepareInternal()
-        * @return Status
-        */
        protected function doPrepareInternal( $fullCont, $dirRel, array $params ) {
                $status = Status::newGood();
                list( , $shortCont, ) = FileBackend::splitStoragePath( $params['dir'] );
@@ -481,10 +447,6 @@ class FSFileBackend extends FileBackendStore {
                return $status;
        }
 
-       /**
-        * @see FileBackendStore::doSecureInternal()
-        * @return Status
-        */
        protected function doSecureInternal( $fullCont, $dirRel, array $params ) {
                $status = Status::newGood();
                list( , $shortCont, ) = FileBackend::splitStoragePath( $params['dir'] );
@@ -512,10 +474,6 @@ class FSFileBackend extends FileBackendStore {
                return $status;
        }
 
-       /**
-        * @see FileBackendStore::doPublishInternal()
-        * @return Status
-        */
        protected function doPublishInternal( $fullCont, $dirRel, array $params ) {
                $status = Status::newGood();
                list( , $shortCont, ) = FileBackend::splitStoragePath( $params['dir'] );
@@ -543,10 +501,6 @@ class FSFileBackend extends FileBackendStore {
                return $status;
        }
 
-       /**
-        * @see FileBackendStore::doCleanInternal()
-        * @return Status
-        */
        protected function doCleanInternal( $fullCont, $dirRel, array $params ) {
                $status = Status::newGood();
                list( , $shortCont, ) = FileBackend::splitStoragePath( $params['dir'] );
@@ -560,10 +514,6 @@ class FSFileBackend extends FileBackendStore {
                return $status;
        }
 
-       /**
-        * @see FileBackendStore::doFileExists()
-        * @return array|bool|null
-        */
        protected function doGetFileStat( array $params ) {
                $source = $this->resolveToFSPath( $params['src'] );
                if ( $source === null ) {
@@ -593,10 +543,6 @@ class FSFileBackend extends FileBackendStore {
                clearstatcache(); // clear the PHP file stat cache
        }
 
-       /**
-        * @see FileBackendStore::doDirectoryExists()
-        * @return bool|null
-        */
        protected function doDirectoryExists( $fullCont, $dirRel, array $params ) {
                list( , $shortCont, ) = FileBackend::splitStoragePath( $params['dir'] );
                $contRoot = $this->containerFSRoot( $shortCont, $fullCont ); // must be valid
@@ -647,10 +593,6 @@ class FSFileBackend extends FileBackendStore {
                return new FSFileBackendFileList( $dir, $params );
        }
 
-       /**
-        * @see FileBackendStore::doGetLocalReferenceMulti()
-        * @return Array
-        */
        protected function doGetLocalReferenceMulti( array $params ) {
                $fsFiles = array(); // (path => FSFile)
 
@@ -666,10 +608,6 @@ class FSFileBackend extends FileBackendStore {
                return $fsFiles;
        }
 
-       /**
-        * @see FileBackendStore::doGetLocalCopyMulti()
-        * @return Array
-        */
        protected function doGetLocalCopyMulti( array $params ) {
                $tmpFiles = array(); // (path => TempFSFile)
 
@@ -702,18 +640,10 @@ class FSFileBackend extends FileBackendStore {
                return $tmpFiles;
        }
 
-       /**
-        * @see FileBackendStore::directoriesAreVirtual()
-        * @return bool
-        */
        protected function directoriesAreVirtual() {
                return false;
        }
 
-       /**
-        * @see FileBackendStore::doExecuteOpHandlesInternal()
-        * @return Array List of corresponding Status objects
-        */
        protected function doExecuteOpHandlesInternal( array $fileOpHandles ) {
                $statuses = array();
 
@@ -807,8 +737,8 @@ class FSFileBackend extends FileBackendStore {
        }
 
        /**
-        * @param $errno integer
-        * @param $errstr string
+        * @param integer $errno
+        * @param string $errstr
         * @return bool
         * @access private
         */
@@ -827,13 +757,15 @@ class FSFileOpHandle extends FileBackendStoreOpHandle {
        public $chmodPath; // string; file to chmod
 
        /**
-        * @param $backend
-        * @param $params array
-        * @param $call
-        * @param $cmd
-        * @param $chmodPath null
+        * @param FSFileBackend $backend
+        * @param array $params
+        * @param string $call
+        * @param string $cmd
+        * @param integer|null $chmodPath
         */
-       public function __construct( $backend, array $params, $call, $cmd, $chmodPath = null ) {
+       public function __construct(
+               FSFileBackend $backend, array $params, $call, $cmd, $chmodPath = null
+       ) {
                $this->backend = $backend;
                $this->params = $params;
                $this->call = $call;
@@ -859,7 +791,7 @@ abstract class FSFileBackendList implements Iterator {
 
        /**
         * @param string $dir file system directory
-        * @param $params array
+        * @param array $params
         */
        public function __construct( $dir, array $params ) {
                $path = realpath( $dir ); // normalize
@@ -922,8 +854,8 @@ abstract class FSFileBackendList implements Iterator {
                try {
                        $this->iter->next();
                        $this->filterViaNext();
-               } catch ( UnexpectedValueException $e ) {
-                       $this->iter = null;
+               } catch ( UnexpectedValueException $e ) { // bad permissions? deleted?
+                       throw new FileBackendError( "File iterator gave UnexpectedValueException." );
                }
                ++$this->pos;
        }
@@ -937,8 +869,8 @@ abstract class FSFileBackendList implements Iterator {
                try {
                        $this->iter->rewind();
                        $this->filterViaNext();
-               } catch ( UnexpectedValueException $e ) {
-                       $this->iter = null;
+               } catch ( UnexpectedValueException $e ) { // bad permissions? deleted?
+                       throw new FileBackendError( "File iterator gave UnexpectedValueException." );
                }
        }
 
@@ -959,7 +891,7 @@ abstract class FSFileBackendList implements Iterator {
         * Return only the relative path and normalize slashes to FileBackend-style.
         * Uses the "real path" since the suffix is based upon that.
         *
-        * @param $path string
+        * @param string $path
         * @return string
         */
        protected function getRelPath( $dir ) {
index ab30d30..bdeb578 100644 (file)
@@ -94,7 +94,7 @@ abstract class FileBackend {
         *                   Allowed values are "implicit", "explicit" and "off".
         *   - concurrency : How many file operations can be done in parallel.
         *
-        * @param $config Array
+        * @param array $config
         * @throws MWException
         */
        public function __construct( array $config ) {
@@ -1043,7 +1043,7 @@ abstract class FileBackend {
         *
         * Storage backends with eventual consistency might return stale data.
         *
-        * @param $params array
+        * @param array $params
         * $params include:
         *   - dir : storage directory
         * @return bool|null Returns null on failure
@@ -1061,7 +1061,9 @@ abstract class FileBackend {
         *
         * Storage backends with eventual consistency might return stale data.
         *
-        * @param $params array
+        * Failures during iteration can result in FileBackendError exceptions (since 1.22).
+        *
+        * @param array $params
         * $params include:
         *   - dir     : storage directory
         *   - topOnly : only return direct child dirs of the directory
@@ -1076,7 +1078,9 @@ abstract class FileBackend {
         *
         * Storage backends with eventual consistency might return stale data.
         *
-        * @param $params array
+        * Failures during iteration can result in FileBackendError exceptions (since 1.22).
+        *
+        * @param array $params
         * $params include:
         *   - dir : storage directory
         * @return Traversable|Array|null Returns null on failure
@@ -1096,7 +1100,9 @@ abstract class FileBackend {
         *
         * Storage backends with eventual consistency might return stale data.
         *
-        * @param $params array
+        * Failures during iteration can result in FileBackendError exceptions (since 1.22).
+        *
+        * @param array $params
         * $params include:
         *   - dir        : storage directory
         *   - topOnly    : only return direct child files of the directory (since 1.20)
@@ -1111,7 +1117,9 @@ abstract class FileBackend {
         *
         * Storage backends with eventual consistency might return stale data.
         *
-        * @param $params array
+        * Failures during iteration can result in FileBackendError exceptions (since 1.22).
+        *
+        * @param array $params
         * $params include:
         *   - dir        : storage directory
         *   - adviseStat : set to true if stat requests will be made on the files (since 1.22)
@@ -1147,10 +1155,11 @@ abstract class FileBackend {
         * Callers should consider using getScopedFileLocks() instead.
         *
         * @param array $paths Storage paths
-        * @param $type integer LockManager::LOCK_* constant
+        * @param integer $type LockManager::LOCK_* constant
         * @return Status
         */
        final public function lockFiles( array $paths, $type ) {
+               $paths = array_map( 'FileBackend::normalizeStoragePath', $paths );
                return $this->lockManager->lock( $paths, $type );
        }
 
@@ -1158,10 +1167,11 @@ abstract class FileBackend {
         * Unlock the files at the given storage paths in the backend.
         *
         * @param array $paths Storage paths
-        * @param $type integer LockManager::LOCK_* constant
+        * @param integer $type LockManager::LOCK_* constant
         * @return Status
         */
        final public function unlockFiles( array $paths, $type ) {
+               $paths = array_map( 'FileBackend::normalizeStoragePath', $paths );
                return $this->lockManager->unlock( $paths, $type );
        }
 
@@ -1174,11 +1184,18 @@ abstract class FileBackend {
         * the status updated. Unlock fatals will not change the status "OK" value.
         *
         * @param array $paths Storage paths
-        * @param $type integer LockManager::LOCK_* constant
-        * @param $status Status Status to update on lock/unlock
+        * @param integer $type LockManager::LOCK_* constant
+        * @param Status $status Status to update on lock/unlock
         * @return ScopedLock|null Returns null on failure
         */
        final public function getScopedFileLocks( array $paths, $type, Status $status ) {
+               if ( $type === 'mixed' ) {
+                       foreach ( $paths as &$typePaths ) {
+                               $typePaths = array_map( 'FileBackend::normalizeStoragePath', $typePaths );
+                       }
+               } else {
+                       $paths = array_map( 'FileBackend::normalizeStoragePath', $paths );
+               }
                return ScopedLock::factory( $this->lockManager, $paths, $type, $status );
        }
 
@@ -1194,7 +1211,7 @@ abstract class FileBackend {
         * @see FileBackend::doOperations()
         *
         * @param array $ops List of file operations to FileBackend::doOperations()
-        * @param $status Status Status to update on lock/unlock
+        * @param Status $status Status to update on lock/unlock
         * @return Array List of ScopedFileLocks or null values
         * @since 1.20
         */
@@ -1235,7 +1252,7 @@ abstract class FileBackend {
         * Check if a given path is a "mwstore://" path.
         * This does not do any further validation or any existence checks.
         *
-        * @param $path string
+        * @param string $path
         * @return bool
         */
        final public static function isStoragePath( $path ) {
@@ -1247,7 +1264,7 @@ abstract class FileBackend {
         * and a relative file path. The relative path may be the empty string.
         * This does not do any path normalization or traversal checks.
         *
-        * @param $storagePath string
+        * @param string $storagePath
         * @return Array (backend, container, rel object) or (null, null, null)
         */
        final public static function splitStoragePath( $storagePath ) {
@@ -1269,7 +1286,7 @@ abstract class FileBackend {
         * Normalize a storage path by cleaning up directory separators.
         * Returns null if the path is not of the format of a valid storage path.
         *
-        * @param $storagePath string
+        * @param string $storagePath
         * @return string|null
         */
        final public static function normalizeStoragePath( $storagePath ) {
@@ -1290,7 +1307,7 @@ abstract class FileBackend {
         * This returns a path like "mwstore://backend/container",
         * "mwstore://backend/container/...", or null if there is no parent.
         *
-        * @param $storagePath string
+        * @param string $storagePath
         * @return string|null
         */
        final public static function parentStoragePath( $storagePath ) {
@@ -1302,7 +1319,7 @@ abstract class FileBackend {
        /**
         * Get the final extension from a storage or FS path
         *
-        * @param $path string
+        * @param string $path
         * @return string
         */
        final public static function extensionFromPath( $path ) {
@@ -1313,7 +1330,7 @@ abstract class FileBackend {
        /**
         * Check if a relative path has no directory traversals
         *
-        * @param $path string
+        * @param string $path
         * @return bool
         * @since 1.20
         */
@@ -1379,3 +1396,9 @@ abstract class FileBackend {
                return $path;
        }
 }
+
+/**
+ * @ingroup FileBackend
+ * @since 1.22
+ */
+class FileBackendError extends MWException {}
index 672e437..be8a207 100644 (file)
@@ -116,7 +116,7 @@ class FileBackendGroup {
        /**
         * Register an array of file backend configurations
         *
-        * @param $configs Array
+        * @param Array $configs
         * @return void
         * @throws MWException
         */
@@ -145,7 +145,7 @@ class FileBackendGroup {
        /**
         * Get the backend object with a given name
         *
-        * @param $name string
+        * @param string $name
         * @return FileBackend
         * @throws MWException
         */
@@ -165,7 +165,7 @@ class FileBackendGroup {
        /**
         * Get the config array for a backend object with a given name
         *
-        * @param $name string
+        * @param string $name
         * @return Array
         * @throws MWException
         */
@@ -180,7 +180,7 @@ class FileBackendGroup {
        /**
         * Get an appropriate backend object from a storage path
         *
-        * @param $storagePath string
+        * @param string $storagePath
         * @return FileBackend|null Backend or null on failure
         */
        public function backendFromPath( $storagePath ) {
index 60c813b..7d35487 100644 (file)
@@ -81,7 +81,7 @@ class FileBackendMultiWrite extends FileBackend {
         *   - noPushQuickOps : (hack) Only apply doQuickOperations() to the master backend.
         *   - noPushDirConts : (hack) Only apply directory functions to the master backend.
         *
-        * @param $config Array
+        * @param Array $config
         * @throws MWException
         */
        public function __construct( array $config ) {
@@ -136,10 +136,6 @@ class FileBackendMultiWrite extends FileBackend {
                }
        }
 
-       /**
-        * @see FileBackend::doOperationsInternal()
-        * @return Status
-        */
        final protected function doOperationsInternal( array $ops, array $opts ) {
                $status = Status::newGood();
 
@@ -387,7 +383,7 @@ class FileBackendMultiWrite extends FileBackend {
         * for a set of operations with that of a given internal backend.
         *
         * @param array $ops List of file operation arrays
-        * @param $backend FileBackendStore
+        * @param FileBackendStore $backend
         * @return Array
         */
        protected function substOpBatchPaths( array $ops, FileBackendStore $backend ) {
@@ -408,7 +404,7 @@ class FileBackendMultiWrite extends FileBackend {
         * Same as substOpBatchPaths() but for a single operation
         *
         * @param array $ops File operation array
-        * @param $backend FileBackendStore
+        * @param FileBackendStore $backend
         * @return Array
         */
        protected function substOpPaths( array $ops, FileBackendStore $backend ) {
@@ -420,7 +416,7 @@ class FileBackendMultiWrite extends FileBackend {
         * Substitute the backend of storage paths with an internal backend's name
         *
         * @param array|string $paths List of paths or single string path
-        * @param $backend FileBackendStore
+        * @param FileBackendStore $backend
         * @return Array|string
         */
        protected function substPaths( $paths, FileBackendStore $backend ) {
@@ -445,10 +441,6 @@ class FileBackendMultiWrite extends FileBackend {
                );
        }
 
-       /**
-        * @see FileBackend::doQuickOperationsInternal()
-        * @return Status
-        */
        protected function doQuickOperationsInternal( array $ops ) {
                $status = Status::newGood();
                // Do the operations on the master backend; setting Status fields...
@@ -482,10 +474,6 @@ class FileBackendMultiWrite extends FileBackend {
                return !in_array( $shortCont, $this->noPushDirConts );
        }
 
-       /**
-        * @see FileBackend::doPrepare()
-        * @return Status
-        */
        protected function doPrepare( array $params ) {
                $status = Status::newGood();
                $replicate = $this->replicateContainerDirChanges( $params['dir'] );
@@ -498,11 +486,6 @@ class FileBackendMultiWrite extends FileBackend {
                return $status;
        }
 
-       /**
-        * @see FileBackend::doSecure()
-        * @param $params array
-        * @return Status
-        */
        protected function doSecure( array $params ) {
                $status = Status::newGood();
                $replicate = $this->replicateContainerDirChanges( $params['dir'] );
@@ -515,11 +498,6 @@ class FileBackendMultiWrite extends FileBackend {
                return $status;
        }
 
-       /**
-        * @see FileBackend::doPublish()
-        * @param $params array
-        * @return Status
-        */
        protected function doPublish( array $params ) {
                $status = Status::newGood();
                $replicate = $this->replicateContainerDirChanges( $params['dir'] );
@@ -532,11 +510,6 @@ class FileBackendMultiWrite extends FileBackend {
                return $status;
        }
 
-       /**
-        * @see FileBackend::doClean()
-        * @param $params array
-        * @return Status
-        */
        protected function doClean( array $params ) {
                $status = Status::newGood();
                $replicate = $this->replicateContainerDirChanges( $params['dir'] );
@@ -549,62 +522,32 @@ class FileBackendMultiWrite extends FileBackend {
                return $status;
        }
 
-       /**
-        * @see FileBackend::concatenate()
-        * @param $params array
-        * @return Status
-        */
        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] );
                return $this->backends[$this->masterIndex]->concatenate( $realParams );
        }
 
-       /**
-        * @see FileBackend::fileExists()
-        * @param $params array
-        * @return bool|null
-        */
        public function fileExists( array $params ) {
                $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
                return $this->backends[$this->masterIndex]->fileExists( $realParams );
        }
 
-       /**
-        * @see FileBackend::getFileTimestamp()
-        * @param $params array
-        * @return bool|string
-        */
        public function getFileTimestamp( array $params ) {
                $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
                return $this->backends[$this->masterIndex]->getFileTimestamp( $realParams );
        }
 
-       /**
-        * @see FileBackend::getFileSize()
-        * @param $params array
-        * @return bool|int
-        */
        public function getFileSize( array $params ) {
                $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
                return $this->backends[$this->masterIndex]->getFileSize( $realParams );
        }
 
-       /**
-        * @see FileBackend::getFileStat()
-        * @param $params array
-        * @return Array|bool|null
-        */
        public function getFileStat( array $params ) {
                $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
                return $this->backends[$this->masterIndex]->getFileStat( $realParams );
        }
 
-       /**
-        * @see FileBackend::getFileContentsMulti()
-        * @param $params array
-        * @return bool|string
-        */
        public function getFileContentsMulti( array $params ) {
                $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
                $contentsM = $this->backends[$this->masterIndex]->getFileContentsMulti( $realParams );
@@ -616,41 +559,21 @@ class FileBackendMultiWrite extends FileBackend {
                return $contents;
        }
 
-       /**
-        * @see FileBackend::getFileSha1Base36()
-        * @param $params array
-        * @return bool|string
-        */
        public function getFileSha1Base36( array $params ) {
                $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
                return $this->backends[$this->masterIndex]->getFileSha1Base36( $realParams );
        }
 
-       /**
-        * @see FileBackend::getFileProps()
-        * @param $params array
-        * @return Array
-        */
        public function getFileProps( array $params ) {
                $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
                return $this->backends[$this->masterIndex]->getFileProps( $realParams );
        }
 
-       /**
-        * @see FileBackend::streamFile()
-        * @param $params array
-        * @return \Status
-        */
        public function streamFile( array $params ) {
                $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
                return $this->backends[$this->masterIndex]->streamFile( $realParams );
        }
 
-       /**
-        * @see FileBackend::getLocalReferenceMulti()
-        * @param $params array
-        * @return FSFile|null
-        */
        public function getLocalReferenceMulti( array $params ) {
                $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
                $fsFilesM = $this->backends[$this->masterIndex]->getLocalReferenceMulti( $realParams );
@@ -662,11 +585,6 @@ class FileBackendMultiWrite extends FileBackend {
                return $fsFiles;
        }
 
-       /**
-        * @see FileBackend::getLocalCopyMulti()
-        * @param $params array
-        * @return null|TempFSFile
-        */
        public function getLocalCopyMulti( array $params ) {
                $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
                $tempFilesM = $this->backends[$this->masterIndex]->getLocalCopyMulti( $realParams );
@@ -678,48 +596,26 @@ class FileBackendMultiWrite extends FileBackend {
                return $tempFiles;
        }
 
-       /**
-        * @see FileBackend::getFileHttpUrl()
-        * @return string|null
-        */
        public function getFileHttpUrl( array $params ) {
                $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
                return $this->backends[$this->masterIndex]->getFileHttpUrl( $realParams );
        }
 
-       /**
-        * @see FileBackend::directoryExists()
-        * @param $params array
-        * @return bool|null
-        */
        public function directoryExists( array $params ) {
                $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
                return $this->backends[$this->masterIndex]->directoryExists( $realParams );
        }
 
-       /**
-        * @see FileBackend::getSubdirectoryList()
-        * @param $params array
-        * @return Array|null|Traversable
-        */
        public function getDirectoryList( array $params ) {
                $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
                return $this->backends[$this->masterIndex]->getDirectoryList( $realParams );
        }
 
-       /**
-        * @see FileBackend::getFileList()
-        * @param $params array
-        * @return Array|null|\Traversable
-        */
        public function getFileList( array $params ) {
                $realParams = $this->substOpPaths( $params, $this->backends[$this->masterIndex] );
                return $this->backends[$this->masterIndex]->getFileList( $realParams );
        }
 
-       /**
-        * @see FileBackend::clearCache()
-        */
        public function clearCache( array $paths = null ) {
                foreach ( $this->backends as $backend ) {
                        $realPaths = is_array( $paths ) ? $this->substPaths( $paths, $backend ) : null;
@@ -727,9 +623,6 @@ class FileBackendMultiWrite extends FileBackend {
                }
        }
 
-       /**
-        * @see FileBackend::getScopedLocksForOps()
-        */
        public function getScopedLocksForOps( array $ops, Status $status ) {
                $fileOps = $this->backends[$this->masterIndex]->getOperationsInternal( $ops );
                // Get the paths to lock from the master backend
index 8b365b5..e976a7a 100644 (file)
@@ -55,7 +55,7 @@ abstract class FileBackendStore extends FileBackend {
        /**
         * @see FileBackend::__construct()
         *
-        * @param $config Array
+        * @param array $config
         */
        public function __construct( array $config ) {
                parent::__construct( $config );
@@ -81,7 +81,7 @@ abstract class FileBackendStore extends FileBackend {
         * written under it, and that any file already there is writable.
         * Backends using key/value stores should check if the container exists.
         *
-        * @param $storagePath string
+        * @param string $storagePath
         * @return bool
         */
        abstract public function isPathUsableInternal( $storagePath );
@@ -105,8 +105,7 @@ abstract class FileBackendStore extends FileBackend {
         * @return Status
         */
        final public function createInternal( array $params ) {
-               wfProfileIn( __METHOD__ );
-               wfProfileIn( __METHOD__ . '-' . $this->name );
+               $section = new ProfileSection( __METHOD__ . "-{$this->name}" );
                if ( strlen( $params['content'] ) > $this->maxFileSizeInternal() ) {
                        $status = Status::newFatal( 'backend-fail-maxsize',
                                $params['dst'], $this->maxFileSizeInternal() );
@@ -117,8 +116,6 @@ abstract class FileBackendStore extends FileBackend {
                                $this->deleteFileCache( $params['dst'] ); // persistent cache
                        }
                }
-               wfProfileOut( __METHOD__ . '-' . $this->name );
-               wfProfileOut( __METHOD__ );
                return $status;
        }
 
@@ -147,8 +144,7 @@ abstract class FileBackendStore extends FileBackend {
         * @return Status
         */
        final public function storeInternal( array $params ) {
-               wfProfileIn( __METHOD__ );
-               wfProfileIn( __METHOD__ . '-' . $this->name );
+               $section = new ProfileSection( __METHOD__ . "-{$this->name}" );
                if ( filesize( $params['src'] ) > $this->maxFileSizeInternal() ) {
                        $status = Status::newFatal( 'backend-fail-maxsize',
                                $params['dst'], $this->maxFileSizeInternal() );
@@ -159,8 +155,6 @@ abstract class FileBackendStore extends FileBackend {
                                $this->deleteFileCache( $params['dst'] ); // persistent cache
                        }
                }
-               wfProfileOut( __METHOD__ . '-' . $this->name );
-               wfProfileOut( __METHOD__ );
                return $status;
        }
 
@@ -190,15 +184,12 @@ abstract class FileBackendStore extends FileBackend {
         * @return Status
         */
        final public function copyInternal( array $params ) {
-               wfProfileIn( __METHOD__ );
-               wfProfileIn( __METHOD__ . '-' . $this->name );
+               $section = new ProfileSection( __METHOD__ . "-{$this->name}" );
                $status = $this->doCopyInternal( $params );
                $this->clearCache( array( $params['dst'] ) );
                if ( !isset( $params['dstExists'] ) || $params['dstExists'] ) {
                        $this->deleteFileCache( $params['dst'] ); // persistent cache
                }
-               wfProfileOut( __METHOD__ . '-' . $this->name );
-               wfProfileOut( __METHOD__ );
                return $status;
        }
 
@@ -223,13 +214,10 @@ abstract class FileBackendStore extends FileBackend {
         * @return Status
         */
        final public function deleteInternal( array $params ) {
-               wfProfileIn( __METHOD__ );
-               wfProfileIn( __METHOD__ . '-' . $this->name );
+               $section = new ProfileSection( __METHOD__ . "-{$this->name}" );
                $status = $this->doDeleteInternal( $params );
                $this->clearCache( array( $params['src'] ) );
                $this->deleteFileCache( $params['src'] ); // persistent cache
-               wfProfileOut( __METHOD__ . '-' . $this->name );
-               wfProfileOut( __METHOD__ );
                return $status;
        }
 
@@ -259,16 +247,13 @@ abstract class FileBackendStore extends FileBackend {
         * @return Status
         */
        final public function moveInternal( array $params ) {
-               wfProfileIn( __METHOD__ );
-               wfProfileIn( __METHOD__ . '-' . $this->name );
+               $section = new ProfileSection( __METHOD__ . "-{$this->name}" );
                $status = $this->doMoveInternal( $params );
                $this->clearCache( array( $params['src'], $params['dst'] ) );
                $this->deleteFileCache( $params['src'] ); // persistent cache
                if ( !isset( $params['dstExists'] ) || $params['dstExists'] ) {
                        $this->deleteFileCache( $params['dst'] ); // persistent cache
                }
-               wfProfileOut( __METHOD__ . '-' . $this->name );
-               wfProfileOut( __METHOD__ );
                return $status;
        }
 
@@ -305,8 +290,7 @@ abstract class FileBackendStore extends FileBackend {
         * @return Status
         */
        final public function describeInternal( array $params ) {
-               wfProfileIn( __METHOD__ );
-               wfProfileIn( __METHOD__ . '-' . $this->name );
+               $section = new ProfileSection( __METHOD__ . "-{$this->name}" );
                if ( count( $params['headers'] ) ) {
                        $status = $this->doDescribeInternal( $params );
                        $this->clearCache( array( $params['src'] ) );
@@ -314,8 +298,6 @@ abstract class FileBackendStore extends FileBackend {
                } else {
                        $status = Status::newGood(); // nothing to do
                }
-               wfProfileOut( __METHOD__ . '-' . $this->name );
-               wfProfileOut( __METHOD__ );
                return $status;
        }
 
@@ -338,13 +320,8 @@ abstract class FileBackendStore extends FileBackend {
                return Status::newGood();
        }
 
-       /**
-        * @see FileBackend::concatenate()
-        * @return Status
-        */
        final public function concatenate( array $params ) {
-               wfProfileIn( __METHOD__ );
-               wfProfileIn( __METHOD__ . '-' . $this->name );
+               $section = new ProfileSection( __METHOD__ . "-{$this->name}" );
                $status = Status::newGood();
 
                // Try to lock the source files for the scope of this function
@@ -360,8 +337,6 @@ abstract class FileBackendStore extends FileBackend {
                        }
                }
 
-               wfProfileOut( __METHOD__ . '-' . $this->name );
-               wfProfileOut( __METHOD__ );
                return $status;
        }
 
@@ -431,20 +406,13 @@ abstract class FileBackendStore extends FileBackend {
                return $status;
        }
 
-       /**
-        * @see FileBackend::doPrepare()
-        * @return Status
-        */
        final protected function doPrepare( array $params ) {
-               wfProfileIn( __METHOD__ );
-               wfProfileIn( __METHOD__ . '-' . $this->name );
-
+               $section = new ProfileSection( __METHOD__ . "-{$this->name}" );
                $status = Status::newGood();
+
                list( $fullCont, $dir, $shard ) = $this->resolveStoragePath( $params['dir'] );
                if ( $dir === null ) {
                        $status->fatal( 'backend-fail-invalidpath', $params['dir'] );
-                       wfProfileOut( __METHOD__ . '-' . $this->name );
-                       wfProfileOut( __METHOD__ );
                        return $status; // invalid storage path
                }
 
@@ -458,8 +426,6 @@ abstract class FileBackendStore extends FileBackend {
                        }
                }
 
-               wfProfileOut( __METHOD__ . '-' . $this->name );
-               wfProfileOut( __METHOD__ );
                return $status;
        }
 
@@ -471,20 +437,13 @@ abstract class FileBackendStore extends FileBackend {
                return Status::newGood();
        }
 
-       /**
-        * @see FileBackend::doSecure()
-        * @return Status
-        */
        final protected function doSecure( array $params ) {
-               wfProfileIn( __METHOD__ );
-               wfProfileIn( __METHOD__ . '-' . $this->name );
+               $section = new ProfileSection( __METHOD__ . "-{$this->name}" );
                $status = Status::newGood();
 
                list( $fullCont, $dir, $shard ) = $this->resolveStoragePath( $params['dir'] );
                if ( $dir === null ) {
                        $status->fatal( 'backend-fail-invalidpath', $params['dir'] );
-                       wfProfileOut( __METHOD__ . '-' . $this->name );
-                       wfProfileOut( __METHOD__ );
                        return $status; // invalid storage path
                }
 
@@ -498,8 +457,6 @@ abstract class FileBackendStore extends FileBackend {
                        }
                }
 
-               wfProfileOut( __METHOD__ . '-' . $this->name );
-               wfProfileOut( __METHOD__ );
                return $status;
        }
 
@@ -511,20 +468,13 @@ abstract class FileBackendStore extends FileBackend {
                return Status::newGood();
        }
 
-       /**
-        * @see FileBackend::doPublish()
-        * @return Status
-        */
        final protected function doPublish( array $params ) {
-               wfProfileIn( __METHOD__ );
-               wfProfileIn( __METHOD__ . '-' . $this->name );
+               $section = new ProfileSection( __METHOD__ . "-{$this->name}" );
                $status = Status::newGood();
 
                list( $fullCont, $dir, $shard ) = $this->resolveStoragePath( $params['dir'] );
                if ( $dir === null ) {
                        $status->fatal( 'backend-fail-invalidpath', $params['dir'] );
-                       wfProfileOut( __METHOD__ . '-' . $this->name );
-                       wfProfileOut( __METHOD__ );
                        return $status; // invalid storage path
                }
 
@@ -538,8 +488,6 @@ abstract class FileBackendStore extends FileBackend {
                        }
                }
 
-               wfProfileOut( __METHOD__ . '-' . $this->name );
-               wfProfileOut( __METHOD__ );
                return $status;
        }
 
@@ -551,13 +499,8 @@ abstract class FileBackendStore extends FileBackend {
                return Status::newGood();
        }
 
-       /**
-        * @see FileBackend::doClean()
-        * @return Status
-        */
        final protected function doClean( array $params ) {
-               wfProfileIn( __METHOD__ );
-               wfProfileIn( __METHOD__ . '-' . $this->name );
+               $section = new ProfileSection( __METHOD__ . "-{$this->name}" );
                $status = Status::newGood();
 
                // Recursive: first delete all empty subdirs recursively
@@ -575,8 +518,6 @@ abstract class FileBackendStore extends FileBackend {
                list( $fullCont, $dir, $shard ) = $this->resolveStoragePath( $params['dir'] );
                if ( $dir === null ) {
                        $status->fatal( 'backend-fail-invalidpath', $params['dir'] );
-                       wfProfileOut( __METHOD__ . '-' . $this->name );
-                       wfProfileOut( __METHOD__ );
                        return $status; // invalid storage path
                }
 
@@ -584,8 +525,6 @@ abstract class FileBackendStore extends FileBackend {
                $filesLockEx = array( $params['dir'] );
                $scopedLockE = $this->getScopedFileLocks( $filesLockEx, LockManager::LOCK_EX, $status );
                if ( !$status->isOK() ) {
-                       wfProfileOut( __METHOD__ . '-' . $this->name );
-                       wfProfileOut( __METHOD__ );
                        return $status; // abort
                }
 
@@ -601,8 +540,6 @@ abstract class FileBackendStore extends FileBackend {
                        }
                }
 
-               wfProfileOut( __METHOD__ . '-' . $this->name );
-               wfProfileOut( __METHOD__ );
                return $status;
        }
 
@@ -614,56 +551,30 @@ abstract class FileBackendStore extends FileBackend {
                return Status::newGood();
        }
 
-       /**
-        * @see FileBackend::fileExists()
-        * @return bool|null
-        */
        final public function fileExists( array $params ) {
-               wfProfileIn( __METHOD__ );
-               wfProfileIn( __METHOD__ . '-' . $this->name );
+               $section = new ProfileSection( __METHOD__ . "-{$this->name}" );
                $stat = $this->getFileStat( $params );
-               wfProfileOut( __METHOD__ . '-' . $this->name );
-               wfProfileOut( __METHOD__ );
                return ( $stat === null ) ? null : (bool)$stat; // null => failure
        }
 
-       /**
-        * @see FileBackend::getFileTimestamp()
-        * @return bool
-        */
        final public function getFileTimestamp( array $params ) {
-               wfProfileIn( __METHOD__ );
-               wfProfileIn( __METHOD__ . '-' . $this->name );
+               $section = new ProfileSection( __METHOD__ . "-{$this->name}" );
                $stat = $this->getFileStat( $params );
-               wfProfileOut( __METHOD__ . '-' . $this->name );
-               wfProfileOut( __METHOD__ );
                return $stat ? $stat['mtime'] : false;
        }
 
-       /**
-        * @see FileBackend::getFileSize()
-        * @return bool
-        */
        final public function getFileSize( array $params ) {
-               wfProfileIn( __METHOD__ );
-               wfProfileIn( __METHOD__ . '-' . $this->name );
+               $section = new ProfileSection( __METHOD__ . "-{$this->name}" );
                $stat = $this->getFileStat( $params );
-               wfProfileOut( __METHOD__ . '-' . $this->name );
-               wfProfileOut( __METHOD__ );
                return $stat ? $stat['size'] : false;
        }
 
-       /**
-        * @see FileBackend::getFileStat()
-        * @return bool
-        */
        final public function getFileStat( array $params ) {
                $path = self::normalizeStoragePath( $params['src'] );
                if ( $path === null ) {
                        return false; // invalid storage path
                }
-               wfProfileIn( __METHOD__ );
-               wfProfileIn( __METHOD__ . '-' . $this->name );
+               $section = new ProfileSection( __METHOD__ . "-{$this->name}" );
                $latest = !empty( $params['latest'] ); // use latest data?
                if ( !$this->cheapCache->has( $path, 'stat', self::CACHE_TTL ) ) {
                        $this->primeFileCache( array( $path ) ); // check persistent cache
@@ -674,14 +585,10 @@ abstract class FileBackendStore extends FileBackend {
                        // value was in fact fetched with the latest available data.
                        if ( is_array( $stat ) ) {
                                if ( !$latest || $stat['latest'] ) {
-                                       wfProfileOut( __METHOD__ . '-' . $this->name );
-                                       wfProfileOut( __METHOD__ );
                                        return $stat;
                                }
                        } elseif ( in_array( $stat, array( 'NOT_EXIST', 'NOT_EXIST_LATEST' ) ) ) {
                                if ( !$latest || $stat === 'NOT_EXIST_LATEST' ) {
-                                       wfProfileOut( __METHOD__ . '-' . $this->name );
-                                       wfProfileOut( __METHOD__ );
                                        return false;
                                }
                        }
@@ -707,8 +614,6 @@ abstract class FileBackendStore extends FileBackend {
                } else { // an error occurred
                        wfDebug( __METHOD__ . ": Could not stat file $path.\n" );
                }
-               wfProfileOut( __METHOD__ . '-' . $this->name );
-               wfProfileOut( __METHOD__ );
                return $stat;
        }
 
@@ -717,19 +622,12 @@ abstract class FileBackendStore extends FileBackend {
         */
        abstract protected function doGetFileStat( array $params );
 
-       /**
-        * @see FileBackend::getFileContentsMulti()
-        * @return Array
-        */
        public function getFileContentsMulti( array $params ) {
-               wfProfileIn( __METHOD__ );
-               wfProfileIn( __METHOD__ . '-' . $this->name );
+               $section = new ProfileSection( __METHOD__ . "-{$this->name}" );
 
                $params = $this->setConcurrencyFlags( $params );
                $contents = $this->doGetFileContentsMulti( $params );
 
-               wfProfileOut( __METHOD__ . '-' . $this->name );
-               wfProfileOut( __METHOD__ );
                return $contents;
        }
 
@@ -747,25 +645,18 @@ abstract class FileBackendStore extends FileBackend {
                return $contents;
        }
 
-       /**
-        * @see FileBackend::getFileSha1Base36()
-        * @return bool|string
-        */
        final public function getFileSha1Base36( array $params ) {
                $path = self::normalizeStoragePath( $params['src'] );
                if ( $path === null ) {
                        return false; // invalid storage path
                }
-               wfProfileIn( __METHOD__ );
-               wfProfileIn( __METHOD__ . '-' . $this->name );
+               $section = new ProfileSection( __METHOD__ . "-{$this->name}" );
                $latest = !empty( $params['latest'] ); // use latest data?
                if ( $this->cheapCache->has( $path, 'sha1', self::CACHE_TTL ) ) {
                        $stat = $this->cheapCache->get( $path, 'sha1' );
                        // If we want the latest data, check that this cached
                        // value was in fact fetched with the latest available data.
                        if ( !$latest || $stat['latest'] ) {
-                               wfProfileOut( __METHOD__ . '-' . $this->name );
-                               wfProfileOut( __METHOD__ );
                                return $stat['hash'];
                        }
                }
@@ -775,8 +666,6 @@ abstract class FileBackendStore extends FileBackend {
                wfProfileOut( __METHOD__ . '-miss-' . $this->name );
                wfProfileOut( __METHOD__ . '-miss' );
                $this->cheapCache->set( $path, 'sha1', array( 'hash' => $hash, 'latest' => $latest ) );
-               wfProfileOut( __METHOD__ . '-' . $this->name );
-               wfProfileOut( __METHOD__ );
                return $hash;
        }
 
@@ -793,27 +682,15 @@ abstract class FileBackendStore extends FileBackend {
                }
        }
 
-       /**
-        * @see FileBackend::getFileProps()
-        * @return Array
-        */
        final public function getFileProps( array $params ) {
-               wfProfileIn( __METHOD__ );
-               wfProfileIn( __METHOD__ . '-' . $this->name );
+               $section = new ProfileSection( __METHOD__ . "-{$this->name}" );
                $fsFile = $this->getLocalReference( $params );
                $props = $fsFile ? $fsFile->getProps() : FSFile::placeholderProps();
-               wfProfileOut( __METHOD__ . '-' . $this->name );
-               wfProfileOut( __METHOD__ );
                return $props;
        }
 
-       /**
-        * @see FileBackend::getLocalReferenceMulti()
-        * @return Array
-        */
        final public function getLocalReferenceMulti( array $params ) {
-               wfProfileIn( __METHOD__ );
-               wfProfileIn( __METHOD__ . '-' . $this->name );
+               $section = new ProfileSection( __METHOD__ . "-{$this->name}" );
 
                $params = $this->setConcurrencyFlags( $params );
 
@@ -843,8 +720,6 @@ abstract class FileBackendStore extends FileBackend {
                        }
                }
 
-               wfProfileOut( __METHOD__ . '-' . $this->name );
-               wfProfileOut( __METHOD__ );
                return $fsFiles;
        }
 
@@ -856,19 +731,12 @@ abstract class FileBackendStore extends FileBackend {
                return $this->doGetLocalCopyMulti( $params );
        }
 
-       /**
-        * @see FileBackend::getLocalCopyMulti()
-        * @return Array
-        */
        final public function getLocalCopyMulti( array $params ) {
-               wfProfileIn( __METHOD__ );
-               wfProfileIn( __METHOD__ . '-' . $this->name );
+               $section = new ProfileSection( __METHOD__ . "-{$this->name}" );
 
                $params = $this->setConcurrencyFlags( $params );
                $tmpFiles = $this->doGetLocalCopyMulti( $params );
 
-               wfProfileOut( __METHOD__ . '-' . $this->name );
-               wfProfileOut( __METHOD__ );
                return $tmpFiles;
        }
 
@@ -886,13 +754,8 @@ abstract class FileBackendStore extends FileBackend {
                return null; // not supported
        }
 
-       /**
-        * @see FileBackend::streamFile()
-        * @return Status
-        */
        final public function streamFile( array $params ) {
-               wfProfileIn( __METHOD__ );
-               wfProfileIn( __METHOD__ . '-' . $this->name );
+               $section = new ProfileSection( __METHOD__ . "-{$this->name}" );
                $status = Status::newGood();
 
                $info = $this->getFileStat( $params );
@@ -923,8 +786,6 @@ abstract class FileBackendStore extends FileBackend {
                        $status->fatal( 'backend-fail-stream', $params['src'] );
                }
 
-               wfProfileOut( __METHOD__ . '-' . $this->name );
-               wfProfileOut( __METHOD__ );
                return $status;
        }
 
@@ -945,10 +806,6 @@ abstract class FileBackendStore extends FileBackend {
                return $status;
        }
 
-       /**
-        * @see FileBackend::directoryExists()
-        * @return bool|null
-        */
        final public function directoryExists( array $params ) {
                list( $fullCont, $dir, $shard ) = $this->resolveStoragePath( $params['dir'] );
                if ( $dir === null ) {
@@ -983,10 +840,6 @@ abstract class FileBackendStore extends FileBackend {
         */
        abstract protected function doDirectoryExists( $container, $dir, array $params );
 
-       /**
-        * @see FileBackend::getDirectoryList()
-        * @return Traversable|Array|null Returns null on failure
-        */
        final public function getDirectoryList( array $params ) {
                list( $fullCont, $dir, $shard ) = $this->resolveStoragePath( $params['dir'] );
                if ( $dir === null ) { // invalid storage path
@@ -1016,10 +869,6 @@ abstract class FileBackendStore extends FileBackend {
         */
        abstract public function getDirectoryListInternal( $container, $dir, array $params );
 
-       /**
-        * @see FileBackend::getFileList()
-        * @return Traversable|Array|null Returns null on failure
-        */
        final public function getFileList( array $params ) {
                list( $fullCont, $dir, $shard ) = $this->resolveStoragePath( $params['dir'] );
                if ( $dir === null ) { // invalid storage path
@@ -1113,10 +962,6 @@ abstract class FileBackendStore extends FileBackend {
                return $paths;
        }
 
-       /**
-        * @see FileBackend::getScopedLocksForOps()
-        * @return Array
-        */
        public function getScopedLocksForOps( array $ops, Status $status ) {
                $paths = $this->getPathsToLockForOpsInternal( $this->getOperationsInternal( $ops ) );
                return array(
@@ -1125,13 +970,8 @@ abstract class FileBackendStore extends FileBackend {
                );
        }
 
-       /**
-        * @see FileBackend::doOperationsInternal()
-        * @return Status
-        */
        final protected function doOperationsInternal( array $ops, array $opts ) {
-               wfProfileIn( __METHOD__ );
-               wfProfileIn( __METHOD__ . '-' . $this->name );
+               $section = new ProfileSection( __METHOD__ . "-{$this->name}" );
                $status = Status::newGood();
 
                // Fix up custom header name/value pairs...
@@ -1148,8 +988,6 @@ abstract class FileBackendStore extends FileBackend {
                        $scopeLockS = $this->getScopedFileLocks( $paths['sh'], LockManager::LOCK_UW, $status );
                        $scopeLockE = $this->getScopedFileLocks( $paths['ex'], LockManager::LOCK_EX, $status );
                        if ( !$status->isOK() ) {
-                               wfProfileOut( __METHOD__ . '-' . $this->name );
-                               wfProfileOut( __METHOD__ );
                                return $status; // abort
                        }
                }
@@ -1171,19 +1009,11 @@ abstract class FileBackendStore extends FileBackend {
                $status->merge( $subStatus );
                $status->success = $subStatus->success; // not done in merge()
 
-               wfProfileOut( __METHOD__ . '-' . $this->name );
-               wfProfileOut( __METHOD__ );
                return $status;
        }
 
-       /**
-        * @see FileBackend::doQuickOperationsInternal()
-        * @return Status
-        * @throws MWException
-        */
        final protected function doQuickOperationsInternal( array $ops ) {
-               wfProfileIn( __METHOD__ );
-               wfProfileIn( __METHOD__ . '-' . $this->name );
+               $section = new ProfileSection( __METHOD__ . "-{$this->name}" );
                $status = Status::newGood();
 
                // Fix up custom header name/value pairs...
@@ -1202,8 +1032,6 @@ abstract class FileBackendStore extends FileBackend {
                // Perform the sync-only ops and build up op handles for the async ops...
                foreach ( $ops as $index => $params ) {
                        if ( !in_array( $params['op'], $supportedOps ) ) {
-                               wfProfileOut( __METHOD__ . '-' . $this->name );
-                               wfProfileOut( __METHOD__ );
                                throw new MWException( "Operation '{$params['op']}' is not supported." );
                        }
                        $method = $params['op'] . 'Internal'; // e.g. "storeInternal"
@@ -1237,8 +1065,6 @@ abstract class FileBackendStore extends FileBackend {
                        }
                }
 
-               wfProfileOut( __METHOD__ . '-' . $this->name );
-               wfProfileOut( __METHOD__ );
                return $status;
        }
 
@@ -1252,16 +1078,11 @@ abstract class FileBackendStore extends FileBackend {
         * @throws MWException
         */
        final public function executeOpHandlesInternal( array $fileOpHandles ) {
-               wfProfileIn( __METHOD__ );
-               wfProfileIn( __METHOD__ . '-' . $this->name );
+               $section = new ProfileSection( __METHOD__ . "-{$this->name}" );
                foreach ( $fileOpHandles as $fileOpHandle ) {
                        if ( !( $fileOpHandle instanceof FileBackendStoreOpHandle ) ) {
-                               wfProfileOut( __METHOD__ . '-' . $this->name );
-                               wfProfileOut( __METHOD__ );
                                throw new MWException( "Given a non-FileBackendStoreOpHandle object." );
                        } elseif ( $fileOpHandle->backend->getName() !== $this->getName() ) {
-                               wfProfileOut( __METHOD__ . '-' . $this->name );
-                               wfProfileOut( __METHOD__ );
                                throw new MWException( "Given a FileBackendStoreOpHandle for the wrong backend." );
                        }
                }
@@ -1269,8 +1090,6 @@ abstract class FileBackendStore extends FileBackend {
                foreach ( $fileOpHandles as $fileOpHandle ) {
                        $fileOpHandle->closeResources();
                }
-               wfProfileOut( __METHOD__ . '-' . $this->name );
-               wfProfileOut( __METHOD__ );
                return $res;
        }
 
@@ -1312,9 +1131,6 @@ abstract class FileBackendStore extends FileBackend {
                return $op;
        }
 
-       /**
-        * @see FileBackend::preloadCache()
-        */
        final public function preloadCache( array $paths ) {
                $fullConts = array(); // full container names
                foreach ( $paths as $path ) {
@@ -1326,9 +1142,6 @@ abstract class FileBackendStore extends FileBackend {
                $this->primeFileCache( $paths );
        }
 
-       /**
-        * @see FileBackend::clearCache()
-        */
        final public function clearCache( array $paths = null ) {
                if ( is_array( $paths ) ) {
                        $paths = array_map( 'FileBackend::normalizeStoragePath', $paths );
@@ -1369,7 +1182,7 @@ abstract class FileBackendStore extends FileBackend {
         * Check if a container name is valid.
         * This checks for for length and illegal characters.
         *
-        * @param $container string
+        * @param string $container
         * @return bool
         */
        final protected static function isValidContainerName( $container ) {
@@ -1391,7 +1204,7 @@ abstract class FileBackendStore extends FileBackend {
         * this means that the path can only refer to a directory and can only
         * be scanned by looking in all the container shards.
         *
-        * @param $storagePath string
+        * @param string $storagePath
         * @return Array (container, path, container suffix) or (null, null, null) if invalid
         */
        final protected function resolveStoragePath( $storagePath ) {
@@ -1431,7 +1244,7 @@ abstract class FileBackendStore extends FileBackend {
         *
         * @see FileBackendStore::resolveStoragePath()
         *
-        * @param $storagePath string
+        * @param string $storagePath
         * @return Array (container, path) or (null, null) if invalid
         */
        final protected function resolveStoragePathReal( $storagePath ) {
@@ -1496,7 +1309,7 @@ abstract class FileBackendStore extends FileBackend {
         * If greater than 0, then all file storage paths within
         * the container are required to be hashed accordingly.
         *
-        * @param $container string
+        * @param string $container
         * @return Array (integer levels, integer base, repeat flag) or (0, 0, false)
         */
        final protected function getContainerHashLevels( $container ) {
@@ -1516,7 +1329,7 @@ abstract class FileBackendStore extends FileBackend {
        /**
         * Get a list of full container shard suffixes for a container
         *
-        * @param $container string
+        * @param string $container
         * @return Array
         */
        final protected function getContainerSuffixes( $container ) {
@@ -1534,7 +1347,7 @@ abstract class FileBackendStore extends FileBackend {
        /**
         * Get the full container name, including the wiki ID prefix
         *
-        * @param $container string
+        * @param string $container
         * @return string
         */
        final protected function fullContainerName( $container ) {
@@ -1550,7 +1363,7 @@ abstract class FileBackendStore extends FileBackend {
         * This is intended for internal use, such as encoding illegal chars.
         * Subclasses can override this to be more restrictive.
         *
-        * @param $container string
+        * @param string $container
         * @return string|null
         */
        protected function resolveContainerName( $container ) {
@@ -1610,12 +1423,11 @@ abstract class FileBackendStore extends FileBackend {
         * used in a list of container names, storage paths, or FileOp objects.
         * This loads the persistent cache values into the process cache.
         *
-        * @param $items Array
+        * @param Array $items
         * @return void
         */
        final protected function primeContainerCache( array $items ) {
-               wfProfileIn( __METHOD__ );
-               wfProfileIn( __METHOD__ . '-' . $this->name );
+               $section = new ProfileSection( __METHOD__ . "-{$this->name}" );
 
                $paths = array(); // list of storage paths
                $contNames = array(); // (cache key => resolved container name)
@@ -1647,9 +1459,6 @@ abstract class FileBackendStore extends FileBackend {
 
                // Populate the container process cache for the backend...
                $this->doPrimeContainerCache( array_filter( $contInfo, 'is_array' ) );
-
-               wfProfileOut( __METHOD__ . '-' . $this->name );
-               wfProfileOut( __METHOD__ );
        }
 
        /**
@@ -1719,8 +1528,7 @@ abstract class FileBackendStore extends FileBackend {
         * @return void
         */
        final protected function primeFileCache( array $items ) {
-               wfProfileIn( __METHOD__ );
-               wfProfileIn( __METHOD__ . '-' . $this->name );
+               $section = new ProfileSection( __METHOD__ . "-{$this->name}" );
 
                $paths = array(); // list of storage paths
                $pathNames = array(); // (cache key => storage path)
@@ -1754,9 +1562,6 @@ abstract class FileBackendStore extends FileBackend {
                                }
                        }
                }
-
-               wfProfileOut( __METHOD__ . '-' . $this->name );
-               wfProfileOut( __METHOD__ );
        }
 
        /**
@@ -1827,7 +1632,7 @@ abstract class FileBackendStoreShardListIterator extends FilterIterator {
        protected $multiShardPaths = array(); // (rel path => 1)
 
        /**
-        * @param $backend FileBackendStore
+        * @param FileBackendStore $backend
         * @param string $container Full storage container name
         * @param string $dir Storage directory relative to container
         * @param array $suffixes List of container shard suffixes
index e4059d7..33a5c9e 100644 (file)
@@ -57,8 +57,8 @@ abstract class FileOp {
        /**
         * Build a new batch file operation transaction
         *
-        * @param $backend FileBackendStore
-        * @param $params Array
+        * @param FileBackendStore $backend
+        * @param Array $params
         * @throws MWException
         */
        final public function __construct( FileBackendStore $backend, array $params ) {
@@ -85,7 +85,7 @@ abstract class FileOp {
        /**
         * Normalize $item or anything in $item that is a valid storage path
         *
-        * @param $item string|array
+        * @param string $item|array
         * @return string|Array
         */
        protected function normalizeAnyStoragePaths( $item ) {
@@ -105,7 +105,7 @@ abstract class FileOp {
        /**
         * Normalize a string if it is a valid storage path
         *
-        * @param $path string
+        * @param string $path
         * @return string
         */
        protected static function normalizeIfValidStoragePath( $path ) {
@@ -119,7 +119,7 @@ abstract class FileOp {
        /**
         * Set the batch UUID this operation belongs to
         *
-        * @param $batchId string
+        * @param string $batchId
         * @return void
         */
        final public function setBatchId( $batchId ) {
@@ -129,7 +129,7 @@ abstract class FileOp {
        /**
         * Get the value of the parameter with the given name
         *
-        * @param $name string
+        * @param string $name
         * @return mixed Returns null if the parameter is not set
         */
        final public function getParam( $name ) {
@@ -240,7 +240,7 @@ abstract class FileOp {
         * This must update $predicates for each path that the op can change
         * except when a failing status object is returned.
         *
-        * @param $predicates Array
+        * @param Array $predicates
         * @return Status
         */
        final public function precheck( array &$predicates ) {
@@ -317,7 +317,7 @@ abstract class FileOp {
        /**
         * Adjust params to FileBackendStore internal file calls
         *
-        * @param $params Array
+        * @param Array $params
         * @return Array (required params list, optional params list)
         */
        protected function setFlags( array $params ) {
@@ -347,7 +347,7 @@ abstract class FileOp {
         * Also set the destExists, overwriteSameCase and sourceSha1 member variables.
         * A bad status will be returned if there is no chance it can be overwritten.
         *
-        * @param $predicates Array
+        * @param Array $predicates
         * @return Status
         */
        protected function precheckDestExistence( array $predicates ) {
@@ -396,7 +396,7 @@ abstract class FileOp {
         * Check if a file will exist in storage when this operation is attempted
         *
         * @param string $source Storage path
-        * @param $predicates Array
+        * @param Array $predicates
         * @return bool
         */
        final protected function fileExists( $source, array $predicates ) {
@@ -412,7 +412,7 @@ abstract class FileOp {
         * Get the SHA-1 of a file in storage when this operation is attempted
         *
         * @param string $source Storage path
-        * @param $predicates Array
+        * @param Array $predicates
         * @return string|bool False on failure
         */
        final protected function fileSha1( $source, array $predicates ) {
@@ -438,7 +438,7 @@ abstract class FileOp {
        /**
         * Log a file operation failure and preserve any temp files
         *
-        * @param $action string
+        * @param string $action
         * @return void
         */
        final public function logFailure( $action ) {
@@ -488,9 +488,6 @@ class CreateFileOp extends FileOp {
                return $status; // safe to call attempt()
        }
 
-       /**
-        * @return Status
-        */
        protected function doAttempt() {
                if ( !$this->overwriteSameCase ) {
                        // Create the file at the destination
@@ -499,16 +496,10 @@ class CreateFileOp extends FileOp {
                return Status::newGood();
        }
 
-       /**
-        * @return bool|String
-        */
        protected function getSourceSha1Base36() {
                return wfBaseConvert( sha1( $this->params['content'] ), 16, 36, 31 );
        }
 
-       /**
-        * @return array
-        */
        public function storagePathsChanged() {
                return array( $this->params['dst'] );
        }
@@ -519,18 +510,11 @@ class CreateFileOp extends FileOp {
  * Parameters for this operation are outlined in FileBackend::doOperations().
  */
 class StoreFileOp extends FileOp {
-       /**
-        * @return array
-        */
        protected function allowedParams() {
                return array( array( 'src', 'dst' ),
                        array( 'overwrite', 'overwriteSame', 'headers' ) );
        }
 
-       /**
-        * @param $predicates array
-        * @return Status
-        */
        protected function doPrecheck( array &$predicates ) {
                $status = Status::newGood();
                // Check if the source file exists on the file system
@@ -560,9 +544,6 @@ class StoreFileOp extends FileOp {
                return $status; // safe to call attempt()
        }
 
-       /**
-        * @return Status
-        */
        protected function doAttempt() {
                if ( !$this->overwriteSameCase ) {
                        // Store the file at the destination
@@ -571,9 +552,6 @@ class StoreFileOp extends FileOp {
                return Status::newGood();
        }
 
-       /**
-        * @return bool|string
-        */
        protected function getSourceSha1Base36() {
                wfSuppressWarnings();
                $hash = sha1_file( $this->params['src'] );
@@ -594,18 +572,11 @@ class StoreFileOp extends FileOp {
  * Parameters for this operation are outlined in FileBackend::doOperations().
  */
 class CopyFileOp extends FileOp {
-       /**
-        * @return array
-        */
        protected function allowedParams() {
                return array( array( 'src', 'dst' ),
                        array( 'overwrite', 'overwriteSame', 'ignoreMissingSource', 'headers' ) );
        }
 
-       /**
-        * @param $predicates array
-        * @return Status
-        */
        protected function doPrecheck( array &$predicates ) {
                $status = Status::newGood();
                // Check if the source file exists
@@ -637,9 +608,6 @@ class CopyFileOp extends FileOp {
                return $status; // safe to call attempt()
        }
 
-       /**
-        * @return Status
-        */
        protected function doAttempt() {
                if ( $this->overwriteSameCase ) {
                        $status = Status::newGood(); // nothing to do
@@ -656,16 +624,10 @@ class CopyFileOp extends FileOp {
                return $status;
        }
 
-       /**
-        * @return array
-        */
        public function storagePathsRead() {
                return array( $this->params['src'] );
        }
 
-       /**
-        * @return array
-        */
        public function storagePathsChanged() {
                return array( $this->params['dst'] );
        }
@@ -676,18 +638,11 @@ class CopyFileOp extends FileOp {
  * Parameters for this operation are outlined in FileBackend::doOperations().
  */
 class MoveFileOp extends FileOp {
-       /**
-        * @return array
-        */
        protected function allowedParams() {
                return array( array( 'src', 'dst' ),
                        array( 'overwrite', 'overwriteSame', 'ignoreMissingSource', 'headers' ) );
        }
 
-       /**
-        * @param $predicates array
-        * @return Status
-        */
        protected function doPrecheck( array &$predicates ) {
                $status = Status::newGood();
                // Check if the source file exists
@@ -721,9 +676,6 @@ class MoveFileOp extends FileOp {
                return $status; // safe to call attempt()
        }
 
-       /**
-        * @return Status
-        */
        protected function doAttempt() {
                if ( $this->overwriteSameCase ) {
                        if ( $this->params['src'] === $this->params['dst'] ) {
@@ -748,16 +700,10 @@ class MoveFileOp extends FileOp {
                return $status;
        }
 
-       /**
-        * @return array
-        */
        public function storagePathsRead() {
                return array( $this->params['src'] );
        }
 
-       /**
-        * @return array
-        */
        public function storagePathsChanged() {
                return array( $this->params['src'], $this->params['dst'] );
        }
@@ -768,17 +714,10 @@ class MoveFileOp extends FileOp {
  * Parameters for this operation are outlined in FileBackend::doOperations().
  */
 class DeleteFileOp extends FileOp {
-       /**
-        * @return array
-        */
        protected function allowedParams() {
                return array( array( 'src' ), array( 'ignoreMissingSource' ) );
        }
 
-       /**
-        * @param $predicates array
-        * @return Status
-        */
        protected function doPrecheck( array &$predicates ) {
                $status = Status::newGood();
                // Check if the source file exists
@@ -805,17 +744,11 @@ class DeleteFileOp extends FileOp {
                return $status; // safe to call attempt()
        }
 
-       /**
-        * @return Status
-        */
        protected function doAttempt() {
                // Delete the source file
                return $this->backend->deleteInternal( $this->setFlags( $this->params ) );
        }
 
-       /**
-        * @return array
-        */
        public function storagePathsChanged() {
                return array( $this->params['src'] );
        }
@@ -826,17 +759,10 @@ class DeleteFileOp extends FileOp {
  * Parameters for this operation are outlined in FileBackend::doOperations().
  */
 class DescribeFileOp extends FileOp {
-       /**
-        * @return array
-        */
        protected function allowedParams() {
                return array( array( 'src' ), array( 'headers' ) );
        }
 
-       /**
-        * @param $predicates array
-        * @return Status
-        */
        protected function doPrecheck( array &$predicates ) {
                $status = Status::newGood();
                // Check if the source file exists
@@ -857,17 +783,11 @@ class DescribeFileOp extends FileOp {
                return $status; // safe to call attempt()
        }
 
-       /**
-        * @return Status
-        */
        protected function doAttempt() {
                // Update the source file's metadata
                return $this->backend->describeInternal( $this->setFlags( $this->params ) );
        }
 
-       /**
-        * @return array
-        */
        public function storagePathsChanged() {
                return array( $this->params['src'] );
        }
index fc51d78..785c0bc 100644 (file)
@@ -51,7 +51,7 @@ class FileOpBatch {
         *
         * @param array $performOps List of FileOp operations
         * @param array $opts Batch operation options
-        * @param $journal FileJournal Journal to log operations to
+        * @param FileJournal $journal Journal to log operations to
         * @return Status
         */
        public static function attempt( array $performOps, array $opts, FileJournal $journal ) {
@@ -145,8 +145,8 @@ class FileOpBatch {
         * within any given sub-batch do not depend on each other.
         * This will abort remaining ops on failure.
         *
-        * @param $pPerformOps Array
-        * @param $status Status
+        * @param Array $pPerformOps
+        * @param Status $status
         * @return bool Success
         */
        protected static function runParallelBatches( array $pPerformOps, Status $status ) {
index 6ab5481..569f337 100644 (file)
@@ -47,7 +47,7 @@ directories. See FileBackend.php for full documentation for each function.
 The following basic operations are supported for reading from a backend:
 
 On files:
-* state a file for basic information (timestamp, size)
+* stat a file for basic information (timestamp, size)
 * read a file into a string or  several files into a map of path names to strings
 * download a file or set of files to a temporary file (on a mounted file system)
 * get the SHA1 hash of a file
index f9e2ce4..f3aa145 100644 (file)
@@ -172,10 +172,6 @@ class SwiftFileBackend extends FileBackendStore {
                return $relStoragePath;
        }
 
-       /**
-        * @see FileBackendStore::isPathUsableInternal()
-        * @return bool
-        */
        public function isPathUsableInternal( $storagePath ) {
                list( $container, $rel ) = $this->resolveStoragePathReal( $storagePath );
                if ( $rel === null ) {
@@ -194,7 +190,7 @@ class SwiftFileBackend extends FileBackendStore {
        }
 
        /**
-        * @param $headers array
+        * @param array $headers
         * @return array
         */
        protected function sanitizeHdrs( array $headers ) {
@@ -206,7 +202,7 @@ class SwiftFileBackend extends FileBackendStore {
        }
 
        /**
-        * @param $disposition string Content-Disposition header value
+        * @param string $disposition Content-Disposition header value
         * @return string Truncated Content-Disposition header value to meet Swift limits
         */
        protected function truncDisp( $disposition ) {
@@ -223,10 +219,6 @@ class SwiftFileBackend extends FileBackendStore {
                return $res;
        }
 
-       /**
-        * @see FileBackendStore::doCreateInternal()
-        * @return Status
-        */
        protected function doCreateInternal( array $params ) {
                $status = Status::newGood();
 
@@ -298,10 +290,6 @@ class SwiftFileBackend extends FileBackendStore {
                }
        }
 
-       /**
-        * @see FileBackendStore::doStoreInternal()
-        * @return Status
-        */
        protected function doStoreInternal( array $params ) {
                $status = Status::newGood();
 
@@ -391,10 +379,6 @@ class SwiftFileBackend extends FileBackendStore {
                }
        }
 
-       /**
-        * @see FileBackendStore::doCopyInternal()
-        * @return Status
-        */
        protected function doCopyInternal( array $params ) {
                $status = Status::newGood();
 
@@ -464,10 +448,6 @@ class SwiftFileBackend extends FileBackendStore {
                }
        }
 
-       /**
-        * @see FileBackendStore::doMoveInternal()
-        * @return Status
-        */
        protected function doMoveInternal( array $params ) {
                $status = Status::newGood();
 
@@ -540,10 +520,6 @@ class SwiftFileBackend extends FileBackendStore {
                }
        }
 
-       /**
-        * @see FileBackendStore::doDeleteInternal()
-        * @return Status
-        */
        protected function doDeleteInternal( array $params ) {
                $status = Status::newGood();
 
@@ -596,10 +572,6 @@ class SwiftFileBackend extends FileBackendStore {
                }
        }
 
-       /**
-        * @see FileBackendStore::doDescribeInternal()
-        * @return Status
-        */
        protected function doDescribeInternal( array $params ) {
                $status = Status::newGood();
 
@@ -633,10 +605,6 @@ class SwiftFileBackend extends FileBackendStore {
                return $status;
        }
 
-       /**
-        * @see FileBackendStore::doPrepareInternal()
-        * @return Status
-        */
        protected function doPrepareInternal( $fullCont, $dir, array $params ) {
                $status = Status::newGood();
 
@@ -750,10 +718,6 @@ class SwiftFileBackend extends FileBackendStore {
                return $status;
        }
 
-       /**
-        * @see FileBackendStore::doCleanInternal()
-        * @return Status
-        */
        protected function doCleanInternal( $fullCont, $dir, array $params ) {
                $status = Status::newGood();
 
@@ -789,10 +753,6 @@ class SwiftFileBackend extends FileBackendStore {
                return $status;
        }
 
-       /**
-        * @see FileBackendStore::doFileExists()
-        * @return array|bool|null
-        */
        protected function doGetFileStat( array $params ) {
                list( $srcCont, $srcRel ) = $this->resolveStoragePathReal( $params['src'] );
                if ( $srcRel === null ) {
@@ -823,7 +783,7 @@ class SwiftFileBackend extends FileBackendStore {
        /**
         * Fill in any missing object metadata and save it to Swift
         *
-        * @param $obj CF_Object
+        * @param CF_Object $obj
         * @param string $path Storage path to object
         * @return bool Success
         * @throws Exception cloudfiles exceptions
@@ -854,10 +814,6 @@ class SwiftFileBackend extends FileBackendStore {
                return false; // failed
        }
 
-       /**
-        * @see FileBackendStore::doGetFileContentsMulti()
-        * @return Array
-        */
        protected function doGetFileContentsMulti( array $params ) {
                $contents = array();
 
@@ -967,9 +923,10 @@ class SwiftFileBackend extends FileBackendStore {
         * @param string $fullCont Resolved container name
         * @param string $dir Resolved storage directory with no trailing slash
         * @param string|null $after Storage path of file to list items after
-        * @param $limit integer Max number of items to list
+        * @param integer $limit Max number of items to list
         * @param array $params Parameters for getDirectoryList()
         * @return Array List of resolved paths of directories directly under $dir
+        * @throws FileBackendError
         */
        public function getDirListPageInternal( $fullCont, $dir, &$after, $limit, array $params ) {
                $dirs = array();
@@ -977,7 +934,7 @@ class SwiftFileBackend extends FileBackendStore {
                        return $dirs; // nothing more
                }
 
-               wfProfileIn( __METHOD__ . '-' . $this->name );
+               $section = new ProfileSection( __METHOD__ . '-' . $this->name );
                try {
                        $container = $this->getContainer( $fullCont );
                        $prefix = ( $dir == '' ) ? null : "{$dir}/";
@@ -1025,8 +982,8 @@ class SwiftFileBackend extends FileBackendStore {
                } catch ( CloudFilesException $e ) { // some other exception?
                        $this->handleException( $e, null, __METHOD__,
                                array( 'cont' => $fullCont, 'dir' => $dir ) );
+                       throw new FileBackendError( "Got " . get_class( $e ) . " exception." );
                }
-               wfProfileOut( __METHOD__ . '-' . $this->name );
 
                return $dirs;
        }
@@ -1041,9 +998,10 @@ class SwiftFileBackend extends FileBackendStore {
         * @param string $fullCont Resolved container name
         * @param string $dir Resolved storage directory with no trailing slash
         * @param string|null $after Storage path of file to list items after
-        * @param $limit integer Max number of items to list
+        * @param integer $limit Max number of items to list
         * @param array $params Parameters for getDirectoryList()
         * @return Array List of resolved paths of files under $dir
+        * @throws FileBackendError
         */
        public function getFileListPageInternal( $fullCont, $dir, &$after, $limit, array $params ) {
                $files = array();
@@ -1051,7 +1009,7 @@ class SwiftFileBackend extends FileBackendStore {
                        return $files; // nothing more
                }
 
-               wfProfileIn( __METHOD__ . '-' . $this->name );
+               $section = new ProfileSection( __METHOD__ . '-' . $this->name );
                try {
                        $container = $this->getContainer( $fullCont );
                        $prefix = ( $dir == '' ) ? null : "{$dir}/";
@@ -1092,8 +1050,8 @@ class SwiftFileBackend extends FileBackendStore {
                } catch ( CloudFilesException $e ) { // some other exception?
                        $this->handleException( $e, null, __METHOD__,
                                array( 'cont' => $fullCont, 'dir' => $dir ) );
+                       throw new FileBackendError( "Got " . get_class( $e ) . " exception." );
                }
-               wfProfileOut( __METHOD__ . '-' . $this->name );
 
                return $files;
        }
@@ -1111,7 +1069,11 @@ class SwiftFileBackend extends FileBackendStore {
                $names = array();
                $storageDir = rtrim( $params['dir'], '/' );
                $suffixStart = ( $dir === '' ) ? 0 : strlen( $dir ) + 1; // size of "path/to/dir/"
-               foreach ( $cfObjects as $object ) {
+               // Iterate over the list *backwards* as this primes the stat cache, which is LRU.
+               // If this fills the cache and the caller stats an uncached file before stating
+               // the ones on the listing, there would be zero cache hits if this went forwards.
+               for ( end( $cfObjects ); key( $cfObjects ) !== null; prev( $cfObjects ) ) {
+                       $object = current( $cfObjects );
                        $path = "{$storageDir}/" . substr( $object->name, $suffixStart );
                        $val = array(
                                // Convert dates like "Tue, 03 Jan 2012 22:01:04 GMT" to TS_MW
@@ -1122,13 +1084,9 @@ class SwiftFileBackend extends FileBackendStore {
                        $this->cheapCache->set( $path, 'stat', $val );
                        $names[] = $object->name;
                }
-               return $names;
+               return array_reverse( $names ); // keep the paths in original order
        }
 
-       /**
-        * @see FileBackendStore::doGetFileSha1base36()
-        * @return bool
-        */
        protected function doGetFileSha1base36( array $params ) {
                $stat = $this->getFileStat( $params );
                if ( $stat ) {
@@ -1143,10 +1101,6 @@ class SwiftFileBackend extends FileBackendStore {
                }
        }
 
-       /**
-        * @see FileBackendStore::doStreamFile()
-        * @return Status
-        */
        protected function doStreamFile( array $params ) {
                $status = Status::newGood();
 
@@ -1178,10 +1132,6 @@ class SwiftFileBackend extends FileBackendStore {
                return $status;
        }
 
-       /**
-        * @see FileBackendStore::doGetLocalCopyMulti()
-        * @return null|TempFSFile
-        */
        protected function doGetLocalCopyMulti( array $params ) {
                $tmpFiles = array();
 
@@ -1251,10 +1201,6 @@ class SwiftFileBackend extends FileBackendStore {
                return $tmpFiles;
        }
 
-       /**
-        * @see FileBackendStore::getFileHttpUrl()
-        * @return string|null
-        */
        public function getFileHttpUrl( array $params ) {
                if ( $this->swiftTempUrlKey != '' ||
                        ( $this->rgwS3AccessKey != '' && $this->rgwS3SecretKey != '' ) )
@@ -1300,10 +1246,6 @@ class SwiftFileBackend extends FileBackendStore {
                return null;
        }
 
-       /**
-        * @see FileBackendStore::directoriesAreVirtual()
-        * @return bool
-        */
        protected function directoriesAreVirtual() {
                return true;
        }
@@ -1324,10 +1266,6 @@ class SwiftFileBackend extends FileBackendStore {
                return $hdrs;
        }
 
-       /**
-        * @see FileBackendStore::doExecuteOpHandlesInternal()
-        * @return Array List of corresponding Status objects
-        */
        protected function doExecuteOpHandlesInternal( array $fileOpHandles ) {
                $statuses = array();
 
@@ -1375,7 +1313,7 @@ class SwiftFileBackend extends FileBackendStore {
         * In general, we don't allow listings to end-users. It's not useful, isn't well-defined
         * (lists are truncated to 10000 item with no way to page), and is just a performance risk.
         *
-        * @param $contObj CF_Container Swift container
+        * @param CF_Container $contObj Swift container
         * @param array $readGrps List of read access routes
         * @param array $writeGrps List of write access routes
         * @return Status
@@ -1483,7 +1421,7 @@ class SwiftFileBackend extends FileBackendStore {
        /**
         * Get the cache key for a container
         *
-        * @param $username string
+        * @param string $username
         * @return string
         */
        private function getCredsCacheKey( $username ) {
@@ -1546,10 +1484,6 @@ class SwiftFileBackend extends FileBackendStore {
                $conn->delete_container( $container );
        }
 
-       /**
-        * @see FileBackendStore::doPrimeContainerCache()
-        * @return void
-        */
        protected function doPrimeContainerCache( array $containerInfo ) {
                try {
                        $conn = $this->getConnection(); // Swift proxy connection
@@ -1567,9 +1501,9 @@ class SwiftFileBackend extends FileBackendStore {
         * Log an unexpected exception for this backend.
         * This also sets the Status object to have a fatal error.
         *
-        * @param $e Exception
-        * @param $status Status|null
-        * @param $func string
+        * @param Exception $e
+        * @param Status $status|null
+        * @param string $func
         * @param array $params
         * @return void
         */
@@ -1604,7 +1538,15 @@ class SwiftFileOpHandle extends FileBackendStoreOpHandle {
        /** @var Array */
        public $affectedObjects = array();
 
-       public function __construct( $backend, array $params, $call, CF_Async_Op $cfOp ) {
+       /**
+        * @param SwiftFileBackend $backend
+        * @param array $params
+        * @param string $call
+        * @param CF_Async_Op $cfOp
+        */
+       public function __construct(
+               SwiftFileBackend $backend, array $params, $call, CF_Async_Op $cfOp
+       ) {
                $this->backend = $backend;
                $this->params = $params;
                $this->call = $call;
@@ -1636,7 +1578,7 @@ abstract class SwiftFileBackendList implements Iterator {
        const PAGE_SIZE = 9000; // file listing buffer size
 
        /**
-        * @param $backend SwiftFileBackend
+        * @param SwiftFileBackend $backend
         * @param string $fullCont Resolved container name
         * @param string $dir Resolved directory relative to container
         * @param array $params
@@ -1710,10 +1652,10 @@ abstract class SwiftFileBackendList implements Iterator {
         *
         * @param string $container Resolved container name
         * @param string $dir Resolved path relative to container
-        * @param $after string|null
-        * @param $limit integer
+        * @param string $after|null
+        * @param integer $limit
         * @param array $params
-        * @return Traversable|Array|null Returns null on failure
+        * @return Traversable|Array
         */
        abstract protected function pageFromList( $container, $dir, &$after, $limit, array $params );
 }
@@ -1732,7 +1674,7 @@ class SwiftFileBackendDirList extends SwiftFileBackendList {
 
        /**
         * @see SwiftFileBackendList::pageFromList()
-        * @return Array|null
+        * @return Array
         */
        protected function pageFromList( $container, $dir, &$after, $limit, array $params ) {
                return $this->backend->getDirListPageInternal( $container, $dir, $after, $limit, $params );
@@ -1753,7 +1695,7 @@ class SwiftFileBackendFileList extends SwiftFileBackendList {
 
        /**
         * @see SwiftFileBackendList::pageFromList()
-        * @return Array|null
+        * @return Array
         */
        protected function pageFromList( $container, $dir, &$after, $limit, array $params ) {
                return $this->backend->getFileListPageInternal( $container, $dir, $after, $limit, $params );
index 11e125c..8266e42 100644 (file)
@@ -37,8 +37,8 @@ class TempFSFile extends FSFile {
         * Make a new temporary file on the file system.
         * Temporary files may be purged when the file object falls out of scope.
         *
-        * @param $prefix string
-        * @param $extension string
+        * @param string $prefix
+        * @param string $extension
         * @return TempFSFile|null
         */
        public static function factory( $prefix, $extension = '' ) {
@@ -81,7 +81,7 @@ class TempFSFile extends FSFile {
        /**
         * Clean up the temporary file only after an object goes out of scope
         *
-        * @param $object Object
+        * @param Object $object
         * @return TempFSFile This object
         */
        public function bind( $object ) {
index 9c778c7..f0e54ec 100644 (file)
@@ -56,7 +56,7 @@ abstract class LockManager {
        protected $domain; // string; domain (usually wiki ID)
        protected $lockTTL; // integer; maximum time locks can be held
 
-       /* Lock types; stronger locks have higher values */
+       /** Lock types; stronger locks have higher values */
        const LOCK_SH = 1; // shared lock (for reads)
        const LOCK_UW = 2; // shared lock (for reads used to write elsewhere)
        const LOCK_EX = 3; // exclusive lock (for writes)
@@ -92,11 +92,25 @@ abstract class LockManager {
         * @return Status
         */
        final public function lock( array $paths, $type = self::LOCK_EX, $timeout = 0 ) {
+               return $this->lockByType( array( $type => $paths ), $timeout );
+       }
+
+       /**
+        * Lock the resources at the given abstract paths
+        *
+        * @param array $paths Map of LockManager::LOCK_* constants to lists of storage paths
+        * @param integer $timeout Timeout in seconds (0 means non-blocking) (since 1.21)
+        * @return Status
+        * @since 1.22
+        */
+       final public function lockByType( array $pathsByType, $timeout = 0 ) {
                wfProfileIn( __METHOD__ );
+               $status = Status::newGood();
+               $pathsByType = $this->normalizePathsByType( $pathsByType );
                $msleep = array( 0, 50, 100, 300, 500 ); // retry backoff times
                $start = microtime( true );
                do {
-                       $status = $this->doLock( array_unique( $paths ), $this->lockTypeMap[$type] );
+                       $status = $this->doLockByType( $pathsByType );
                        $elapsed = microtime( true ) - $start;
                        if ( $status->isOK() || $elapsed >= $timeout || $elapsed < 0 ) {
                                break; // success, timeout, or clock set back
@@ -116,8 +130,20 @@ abstract class LockManager {
         * @return Status
         */
        final public function unlock( array $paths, $type = self::LOCK_EX ) {
+               return $this->unlockByType( array( $type => $paths ) );
+       }
+
+       /**
+        * Unlock the resources at the given abstract paths
+        *
+        * @param array $paths Map of LockManager::LOCK_* constants to lists of storage paths
+        * @return Status
+        * @since 1.22
+        */
+       final public function unlockByType( array $pathsByType ) {
                wfProfileIn( __METHOD__ );
-               $status = $this->doUnlock( array_unique( $paths ), $this->lockTypeMap[$type] );
+               $pathsByType = $this->normalizePathsByType( $pathsByType );
+               $status = $this->doUnlockByType( $pathsByType );
                wfProfileOut( __METHOD__ );
                return $status;
        }
@@ -146,6 +172,46 @@ abstract class LockManager {
                return sha1( "{$this->domain}:{$path}" );
        }
 
+       /**
+        * Normalize the $paths array by converting LOCK_UW locks into the
+        * appropriate type and removing any duplicated paths for each lock type.
+        *
+        * @param array $paths Map of LockManager::LOCK_* constants to lists of storage paths
+        * @return Array
+        * @since 1.22
+        */
+       final protected function normalizePathsByType( array $pathsByType ) {
+               $res = array();
+               foreach ( $pathsByType as $type => $paths ) {
+                       $res[$this->lockTypeMap[$type]] = array_unique( $paths );
+               }
+               return $res;
+       }
+
+       /**
+        * @see LockManager::lockByType()
+        * @param array $paths Map of LockManager::LOCK_* constants to lists of storage paths
+        * @return Status
+        * @since 1.22
+        */
+       protected function doLockByType( array $pathsByType ) {
+               $status = Status::newGood();
+               $lockedByType = array(); // map of (type => paths)
+               foreach ( $pathsByType as $type => $paths ) {
+                       $status->merge( $this->doLock( $paths, $type ) );
+                       if ( $status->isOK() ) {
+                               $lockedByType[$type] = $paths;
+                       } else {
+                               // Release the subset of locks that were acquired
+                               foreach ( $lockedByType as $type => $paths ) {
+                                       $status->merge( $this->doUnlock( $paths, $type ) );
+                               }
+                               break;
+                       }
+               }
+               return $status;
+       }
+
        /**
         * Lock resources with the given keys and lock type
         *
@@ -155,6 +221,20 @@ abstract class LockManager {
         */
        abstract protected function doLock( array $paths, $type );
 
+       /**
+        * @see LockManager::unlockByType()
+        * @param array $paths Map of LockManager::LOCK_* constants to lists of storage paths
+        * @return Status
+        * @since 1.22
+        */
+       protected function doUnlockByType( array $pathsByType ) {
+               $status = Status::newGood();
+               foreach ( $pathsByType as $type => $paths ) {
+                       $status->merge( $this->doUnlock( $paths, $type ) );
+               }
+               return $status;
+       }
+
        /**
         * Unlock resources with the given keys and lock type
         *
index edcb1d6..5faad4a 100644 (file)
@@ -36,24 +36,18 @@ class ScopedLock {
        protected $manager;
        /** @var Status */
        protected $status;
-       /** @var Array List of resource paths*/
-       protected $paths;
-
-       protected $type; // integer lock type
+       /** @var Array Map of lock types to resource paths */
+       protected $pathsByType;
 
        /**
-        * @param $manager LockManager
-        * @param array $paths List of storage paths
-        * @param $type integer LockManager::LOCK_* constant
-        * @param $status Status
+        * @param LockManager $manager
+        * @param array $pathsByType Map of lock types to path lists
+        * @param Status $status
         */
-       protected function __construct(
-               LockManager $manager, array $paths, $type, Status $status
-       ) {
+       protected function __construct( LockManager $manager, array $pathsByType, Status $status ) {
                $this->manager = $manager;
-               $this->paths = $paths;
+               $this->pathsByType = $pathsByType;
                $this->status = $status;
-               $this->type = $type;
        }
 
        /**
@@ -61,19 +55,24 @@ class ScopedLock {
         * Any locks are released once this object goes out of scope.
         * The status object is updated with any errors or warnings.
         *
-        * @param $manager LockManager
-        * @param array $paths List of storage paths
-        * @param $type integer LockManager::LOCK_* constant
-        * @param $status Status
+        * $type can be "mixed" and $paths can be a map of types to paths (since 1.22).
+        * Otherwise $type should be an integer and $paths should be a list of paths.
+        *
+        * @param LockManager $manager
+        * @param array $paths List of storage paths or map of lock types to path lists
+        * @param integer|string $type LockManager::LOCK_* constant or "mixed"
+        * @param Status $status
+        * @param integer $timeout Timeout in seconds (0 means non-blocking) (since 1.22)
         * @return ScopedLock|null Returns null on failure
         */
        public static function factory(
-               LockManager $manager, array $paths, $type, Status $status
+               LockManager $manager, array $paths, $type, Status $status, $timeout = 0
        ) {
-               $lockStatus = $manager->lock( $paths, $type );
+               $pathsByType = is_integer( $type ) ? array( $type => $paths ) : $paths;
+               $lockStatus = $manager->lockByType( $pathsByType, $timeout );
                $status->merge( $lockStatus );
                if ( $lockStatus->isOK() ) {
-                       return new self( $manager, $paths, $type, $status );
+                       return new self( $manager, $pathsByType, $status );
                }
                return null;
        }
@@ -91,9 +90,12 @@ class ScopedLock {
                $lock = null;
        }
 
+       /**
+        * Release the locks when this goes out of scope
+        */
        function __destruct() {
                $wasOk = $this->status->isOK();
-               $this->status->merge( $this->manager->unlock( $this->paths, $this->type ) );
+               $this->status->merge( $this->manager->unlockByType( $this->pathsByType ) );
                if ( $wasOk ) {
                        // Make sure status is OK, despite any unlockFiles() fatals
                        $this->status->setResult( true, $this->status->value );
index b82a0b8..bc1ad91 100644 (file)
@@ -965,7 +965,7 @@ class FileRepo {
        public function storeTemp( $originalName, $srcPath ) {
                $this->assertWritableRepo(); // fail out if read-only
 
-               $date = gmdate( "YmdHis" );
+               $date = MWTimestamp::getInstance()->format( 'YmdHis' );
                $hashPath = $this->getHashPath( $originalName );
                $dstUrlRel = $hashPath . $date . '!' . rawurlencode( $originalName );
                $virtualUrl = $this->getVirtualUrl( 'temp' ) . '/' . $dstUrlRel;
index 6c4bf8a..749f11a 100644 (file)
@@ -196,6 +196,7 @@ class ArchivedFile {
                        'fa_user_text',
                        'fa_timestamp',
                        'fa_deleted',
+                       'fa_deleted_timestamp', /* Used by LocalFileRestoreBatch */
                        'fa_sha1',
                );
        }
index 0da4036..9060731 100644 (file)
@@ -48,6 +48,7 @@
  * @ingroup FileAbstraction
  */
 abstract class File {
+       // Bitfield values akin to the Revision deletion constants
        const DELETED_FILE = 1;
        const DELETED_COMMENT = 2;
        const DELETED_USER = 4;
@@ -1499,7 +1500,7 @@ abstract class File {
         * Is this file a "deleted" file in a private archive?
         * STUB
         *
-        * @param $field
+        * @param integer $field one of DELETED_* bitfield constants
         *
         * @return bool
         */
index 3cb1f41..6e0769e 100644 (file)
@@ -604,7 +604,7 @@ class LocalFile extends File {
         * Return the width of the image
         *
         * @param $page int
-        * @return bool|int Returns false on error
+        * @return int
         */
        public function getWidth( $page = 1 ) {
                $this->load();
@@ -614,7 +614,9 @@ class LocalFile extends File {
                        if ( $dim ) {
                                return $dim['width'];
                        } else {
-                               return false;
+                               // For non-paged media, the false goes through an
+                               // intval, turning failure into 0, so do same here.
+                               return 0;
                        }
                } else {
                        return $this->width;
@@ -625,7 +627,7 @@ class LocalFile extends File {
         * Return the height of the image
         *
         * @param $page int
-        * @return bool|int Returns false on error
+        * @return int
         */
        public function getHeight( $page = 1 ) {
                $this->load();
@@ -635,7 +637,9 @@ class LocalFile extends File {
                        if ( $dim ) {
                                return $dim['height'];
                        } else {
-                               return false;
+                               // For non-paged media, the false goes through an
+                               // intval, turning failure into 0, so do same here.
+                               return 0;
                        }
                } else {
                        return $this->height;
@@ -794,7 +798,9 @@ class LocalFile extends File {
        }
 
        /**
-        * Purge the shared history (OldLocalFile) cache
+        * Purge the shared history (OldLocalFile) cache.
+        *
+        * @note This used to purge old thumbnails as well.
         */
        function purgeHistory() {
                global $wgMemc;
@@ -802,20 +808,20 @@ class LocalFile extends File {
                $hashedName = md5( $this->getName() );
                $oldKey = $this->repo->getSharedCacheKey( 'oldfile', $hashedName );
 
-               // Must purge thumbnails for old versions too! bug 30192
-               foreach ( $this->getHistory() as $oldFile ) {
-                       $oldFile->purgeThumbnails();
-               }
-
                if ( $oldKey ) {
                        $wgMemc->delete( $oldKey );
                }
        }
 
        /**
-        * Delete all previously generated thumbnails, refresh metadata in memcached and purge the squid
+        * Delete all previously generated thumbnails, refresh metadata in memcached and purge the squid.
+        *
+        * @param Array $options An array potentially with the key forThumbRefresh.
+        *
+        * @note This used to purge old thumbnails by default as well, but doesn't anymore.
         */
        function purgeCache( $options = array() ) {
+               wfProfileIn( __METHOD__ );
                // Refresh metadata cache
                $this->purgeMetadataCache();
 
@@ -824,6 +830,7 @@ class LocalFile extends File {
 
                // Purge squid cache for this file
                SquidUpdate::purge( array( $this->getURL() ) );
+               wfProfileOut( __METHOD__ );
        }
 
        /**
@@ -1294,11 +1301,16 @@ class LocalFile extends File {
                // creation, page doesn't exist yet, so log_page = 0
                // but we want it to point to the page we're making,
                // so we later modify the log entry.
+               // For a similar reason, we avoid making an RC entry
+               // now and wait until the page exists.
                $logId = $logEntry->insert();
-               $logEntry->publish( $logId );
 
-               wfProfileIn( __METHOD__ . '-edit' );
                $exists = $descTitle->exists();
+               if ( $exists ) {
+                       // Page exists, do RC entry now (otherwise we wait for later).
+                       $logEntry->publish( $logId );
+               }
+               wfProfileIn( __METHOD__ . '-edit' );
 
                if ( $exists ) {
                        # Create a null revision
@@ -1336,16 +1348,20 @@ class LocalFile extends File {
                        $content = ContentHandler::makeContent( $pageText, $descTitle );
                        $status = $wikiPage->doEditContent( $content, $comment, EDIT_NEW | EDIT_SUPPRESS_RC, false, $user );
 
-                       if ( isset( $status->value['revision'] ) ) { // XXX; doEdit() uses a transaction
-                               $dbw->begin( __METHOD__ );
+                       $dbw->begin( __METHOD__ ); // XXX; doEdit() uses a transaction
+                       // Now that the page exists, make an RC entry.
+                       $logEntry->publish( $logId );
+                       if ( isset( $status->value['revision'] ) ) {
                                $dbw->update( 'logging',
                                        array( 'log_page' => $status->value['revision']->getPage() ),
                                        array( 'log_id' => $logId ),
                                        __METHOD__
                                );
-                               $dbw->commit( __METHOD__ ); // commit before anything bad can happen
                        }
+                       $dbw->commit( __METHOD__ ); // commit before anything bad can happen
                }
+
+
                wfProfileOut( __METHOD__ . '-edit' );
 
                # Save to cache and purge the squid
@@ -1372,11 +1388,17 @@ class LocalFile extends File {
                # Invalidate cache for all pages using this file
                $update = new HTMLCacheUpdate( $this->getTitle(), 'imagelinks' );
                $update->doUpdate();
+               if ( !$reupload ) {
+                       LinksUpdate::queueRecursiveJobsForTable( $this->getTitle(), 'imagelinks' );
+               }
 
                # Invalidate cache for all pages that redirects on this page
                $redirs = $this->getTitle()->getRedirectsHere();
 
                foreach ( $redirs as $redir ) {
+                       if ( !$reupload && $redir->getNamespace() === NS_FILE ) {
+                               LinksUpdate::queueRecursiveJobsForTable( $redir, 'imagelinks' );
+                       }
                        $update = new HTMLCacheUpdate( $redir, 'imagelinks' );
                        $update->doUpdate();
                }
index d5b1ea5..9767252 100644 (file)
@@ -261,7 +261,7 @@ If you do not see the database system you are trying to use listed below, then f
        'config-missing-db-host'          => 'You must enter a value for "Database host"',
        'config-missing-db-server-oracle' => 'You must enter a value for "Database TNS"',
        'config-invalid-db-server-oracle' => 'Invalid database TNS "$1".
-Use only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_) and dots (.).',
+Use either "TNS Name" or an "Easy Connect" string ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Oracle Naming Methods])',
        'config-invalid-db-name'          => 'Invalid database name "$1".
 Use only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_) and hyphens (-).',
        'config-invalid-db-prefix'        => 'Invalid database prefix "$1".
@@ -616,6 +616,7 @@ Used as error message.',
        'config-page-name' => '{{Identical|Name}}',
        'config-page-options' => '{{Identical|Options}}',
        'config-page-install' => '{{Identical|Install}}',
+       'config-page-complete' => '{{Identical|Complete}}',
        'config-page-releasenotes' => '{{Identical|Release notes}}',
        'config-page-copying' => 'This is a link to the full GPL text',
        'config-restart' => 'Button text to confirm the installation procedure has to be restarted.',
@@ -768,6 +769,7 @@ See also:
        'config-db-web-account-same' => 'checkbox label',
        'config-db-web-create' => 'checkbox label',
        'config-mysql-only-myisam-dep' => 'Used as warning message when mysql does not support the minimum suggested feature set.',
+       'config-mysql-binary' => '{{Identical|Binary}}',
        'config-ns-generic' => 'Used as label for "namespace type" radio button.
 
 See also:
@@ -1216,7 +1218,7 @@ $messages['an'] = array(
  * @author Gott wisst
  */
 $messages['ang'] = array(
-       'mainpagetext' => "'''MediaǷiki hafaþ ȝeƿorden spēdiȝe inseted.'''",
+       'mainpagetext' => "'''MediaWiki hafaþ geworden spēdige inseted.'''",
        'mainpagedocfooter' => 'Þeahta þone [//meta.wikimedia.org/wiki/Help:Contents Brūcenda Lǣdend]  on helpe mid þǣre nytte of ƿikisōftƿare.
 
 == Beȝinnunȝ ==
@@ -1620,6 +1622,8 @@ MediaWiki патрабуе падтрымкі UTF-8 для слушнай пра
        'config-mod-security' => "'''Папярэджаньне''': на Вашым ўэб-сэрверы ўключаны [http://modsecurity.org/ mod_security]. У выпадку няслушнай наладцы, ён можа стаць прычынай праблемаў для MediaWiki ці іншага праграмнага забесьпячэньня, якое дазваляе ўдзельнікам дасылаць на сэрвэр любы зьмест.
 Глядзіце [http://modsecurity.org/documentation/ дакумэнтацыю mod_security] ці зьвярніцеся ў падтрымку Вашага хосту, калі ў Вас узьнікаюць выпадковыя праблемы.",
        'config-diff3-bad' => 'GNU diff3 ня знойдзены.',
+       'config-git' => 'Знойдзеная сыстэма канстролю вэрсіяў Git: <code>$1</code>',
+       'config-git-bad' => 'Сыстэма кантролю вэрсіяў Git ня знойдзеная.',
        'config-imagemagick' => 'Знойдзены ImageMagick: <code>$1</code>.
 Пасьля ўключэньня загрузак будзе ўключанае маштабаваньне выяваў.',
        'config-gd' => 'GD падтрымліваецца ўбудавана.
@@ -1735,7 +1739,7 @@ $1
        'config-missing-db-host' => 'Вы павінны ўвесьці значэньне парамэтру «Хост базы зьвестак»',
        'config-missing-db-server-oracle' => 'Вы павінны ўвесьці значэньне парамэтру «TNS базы зьвестак»',
        'config-invalid-db-server-oracle' => 'Няслушнае TNS базы зьвестак «$1».
-Назва можа ўтрымліваць толькі ASCII-літары (a-z, A-Z), лічбы (0-9), сымбалі падкрэсьліваньня(_) і кропкі (.).',
+Назва можа ўтрымліваць толькі ASCII-літары (a-z, A-Z), лічбы (0-9), сымбалі падкрэсьліваньня(_) і кропкі (.).', # Fuzzy
        'config-invalid-db-name' => 'Няслушная назва базы зьвестак «$1».
 Назва можа ўтрымліваць толькі ASCII-літары (a-z, A-Z), лічбы (0-9), сымбалі падкрэсьліваньня(_) і працяжнікі (-).',
        'config-invalid-db-prefix' => 'Няслушны прэфікс базы зьвестак «$1».
@@ -3199,9 +3203,18 @@ $messages['ca'] = array(
 
 /** Chechen (нохчийн)
  * @author Sasan700
+ * @author Умар
  */
 $messages['ce'] = array(
+       'config-your-language' => 'Хьан мотт:',
+       'config-page-language' => 'Мотт',
+       'config-page-name' => 'ЦӀе',
        'config-no-fts3' => "'''Тергам бе''': SQLite гулйина хуттург йоцуш [//sqlite.org/fts3.html FTS3] — лахар болхбеш хир дац оцу бухца.",
+       'config-site-name' => 'Викин цӀе:',
+       'config-site-name-blank' => 'Язъе сайтан цӀе.',
+       'config-license' => 'Авторан бакъонаш а лицензи а:',
+       'config-license-pd' => 'Юкъараллин хьал',
+       'config-help' => 'гӀо',
        'mainpagetext' => "'''Вики-белха гlирс «MediaWiki» кхочуш дика дlахlоттийна.'''",
        'mainpagedocfooter' => 'Викийца болх бан хаамаш карор бу хlокху чохь [//meta.wikimedia.org/wiki/%D0%9F%D0%BE%D0%BC%D0%BE%D1%89%D1%8C:%D0%A1%D0%BE%D0%B4%D0%B5%D1%80%D0%B6%D0%B0%D0%BD%D0%B8%D0%B5 нисвохааман куьйгаллица].
 
@@ -3839,6 +3852,15 @@ $messages['csb'] = array(
        'mainpagetext' => "'''MediaWiki òsta zainstalowónô.'''",
 );
 
+/** Church Slavic (словѣ́ньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ)
+ * @author ОйЛ
+ */
+$messages['cu'] = array(
+       'config-page-language' => 'ѩꙁꙑкъ',
+       'config-page-name' => 'имѧ',
+       'config-help' => 'помощь',
+);
+
 /** Chuvash (Чӑвашла)
  */
 $messages['cv'] = array(
@@ -3852,17 +3874,19 @@ $messages['cv'] = array(
 );
 
 /** Welsh (Cymraeg)
+ * @author Lloffiwr
  * @author Xxglennxx
  */
 $messages['cy'] = array(
        'mainpagetext' => "'''Wedi llwyddo gosod meddalwedd MediaWiki yma'''",
-       'mainpagedocfooter' => 'Ceir cymorth (yn Saesneg) ar ddefnyddio meddalwedd wici yn y [//meta.wikimedia.org/wiki/Help:Contents Canllaw Defnyddwyr] ar wefan Wikimedia.
+       'mainpagedocfooter' => "Ceir cymorth (yn Saesneg) ar ddefnyddio meddalwedd wici yn y [//meta.wikimedia.org/wiki/Help:Contents Canllaw Defnyddwyr] ar wefan Wikimedia.
 
 ==Cychwyn arni==
 
 * [//www.mediawiki.org/wiki/Manual:Configuration_settings Rhestr osodiadau wrth gyflunio]
 * [//www.mediawiki.org/wiki/Manual:FAQ Cwestiynau poblogaidd ar MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Rhestr postio datganiadau MediaWiki]', # Fuzzy
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Rhestr postio datganiadau MediaWiki]
+* [//www.mediawiki.org/wiki/Localisation#Translation_resources Cyfieithu MediaWici i'ch iaith chi]",
 );
 
 /** Danish (dansk)
@@ -4136,7 +4160,7 @@ Sofern nicht das Datenbanksystem angezeigt wird, das verwendet werden soll, gibt
        'config-missing-db-host' => 'Bei „Datenbankhost“ muss ein Wert angegeben werden.',
        'config-missing-db-server-oracle' => 'Für das „Datenbank-TNS“ muss ein Wert eingegeben werden',
        'config-invalid-db-server-oracle' => 'Ungültiges Datenbank-TNS „$1“.
-Es dürfen nur ASCII-codierte Buchstaben (a-z, A-Z), Zahlen (0-9) und Unterstriche (_) und Punkte (.) verwendet werden.',
+Entweder „TNS Name“ oder eine „Easy Connect“-Zeichenfolge verwenden ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Oracle-Benennungsmethoden])',
        'config-invalid-db-name' => 'Ungültiger Datenbankname „$1“.
 Es dürfen nur ASCII-codierte Buchstaben (a-z, A-Z), Zahlen (0-9), Unter- (_) sowie Bindestriche (-) verwendet werden.',
        'config-invalid-db-prefix' => 'Ungültiger Datenbanktabellenpräfix „$1“.
@@ -5944,7 +5968,7 @@ Si vous ne voyez pas le système de base de données que vous essayez d'utiliser
        'config-missing-db-host' => "Vous devez entrer une valeur pour « l'hôte de la base de données »",
        'config-missing-db-server-oracle' => 'Vous devez saisir une valeur pour le « Nom TNS de la base de données »',
        'config-invalid-db-server-oracle' => 'Le nom TNS de la base de données (« $1 ») est invalide.
-Il ne peut contenir que des lettres latines de base (a-z, A-Z), des chiffres (0-9), des caractères de soulignement (_) et des points (.).',
+Utilisez uniquement la chaîne "TNS Name" ou "Easy Connect" ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Méthodes de nommage Oracle])',
        'config-invalid-db-name' => 'Nom de la base de données invalide (« $1 »).
 Il ne peut contenir que des lettres latines (a-z, A-Z), des chiffres (0-9), des caractères de soulignement (_) et des tirets (-).',
        'config-invalid-db-prefix' => 'Préfixe de la base de données non valide « $1 ».
@@ -6769,7 +6793,7 @@ Se non ve listado a continuación o sistema de base de datos que intenta usar, s
        'config-missing-db-host' => 'Debe escribir un valor "Servidor da base de datos"',
        'config-missing-db-server-oracle' => 'Debe escribir un valor "TNS da base de datos"',
        'config-invalid-db-server-oracle' => 'O TNS da base de datos, "$1", é incorrecto.
-Só pode conter letras ASCII (a-z, A-Z), números (0-9), guións baixos (_) e puntos (.).',
+Utilice só "TNS Name" ou unha cadea de texto "Easy Connect" ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm métodos de nomeamento de Oracle])',
        'config-invalid-db-name' => 'O nome da base de datos, "$1", é incorrecto.
 Só pode conter letras ASCII (a-z, A-Z), números (0-9), guións baixos (_) e guións (-).',
        'config-invalid-db-prefix' => 'O prefixo da base de datos, "$1", é incorrecto.
@@ -10031,6 +10055,8 @@ L'installazione potrebbe non riuscire!",
        'config-no-cache' => "'''Attenzione:''' [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] o [http://www.iis.net/download/WinCacheForPhp WinCache] non sono stati trovati.
 La caching degli oggetti non è attivata.",
        'config-diff3-bad' => 'GNU diff3 non trovato.',
+       'config-git' => 'Trovato software di controllo della versione Git: <code>$1</code>.',
+       'config-git-bad' => 'Software di controllo della versione Git non trovato.',
        'config-imagemagick' => 'Trovato ImageMagick: <code>$1</code>.
 Le miniature delle immagini saranno presenti se gli upload vengono abilitati.',
        'config-gd' => 'Trovata la GD Graphics Library built-in.
@@ -10043,13 +10069,25 @@ Installazione interrotta.",
        'config-using-server' => 'Nome server in uso "<nowiki>$1</nowiki>".',
        'config-using-uri' => 'URL del server in uso "<nowiki>$1$2</nowiki>".',
        'config-db-type' => 'Tipo di database:',
+       'config-db-host' => 'Host del database:',
+       'config-db-host-oracle' => 'TNS del database:',
        'config-db-wiki-settings' => 'Identifica questo wiki',
        'config-db-name' => 'Nome del database:',
        'config-db-name-oracle' => 'Schema del database:',
+       'config-db-install-account' => "Account utente per l'installazione",
        'config-db-username' => 'Nome utente del database:',
+       'config-db-password' => 'Password del database:',
        'config-db-password-empty' => 'Inserire una password per il nuovo utente del database: $1.
 Anche se può essere possibile creare utenti senza password, questo non è sicuro.',
+       'config-db-install-username' => "Inserisci il nome utente che verrà utilizzato per connettersi al database durante il processo di installazione.
+Questo non è il nome utente dell'account MediaWiki; ma quello per il tuo database.",
+       'config-db-install-password' => "Inserisci la password che verrà utilizzato per connettersi al database durante il processo di installazione.
+Questa non è la password dell'account MediaWiki; ma quella per il tuo database.",
        'config-db-install-help' => "Inserire il nome utente e la password che verranno usate per la connessione al database durante il processo d'installazione.",
+       'config-db-account-lock' => 'Utilizza lo stesso nome utente e password durante il normale funzionamento',
+       'config-db-wiki-account' => 'Account utente per il normale funzionamento',
+       'config-db-wiki-help' => "Inserisci il nome utente e la password che verrà utilizzato per connettersi al database durante il normale funzionamento del wiki.
+Se l'account non esiste, e l'account di installazione dispone di privilegi sufficienti, verrà creato con privilegi minimi necessari per operare sul wiki.",
        'config-db-prefix' => 'Prefisso tabella del database:',
        'config-db-charset' => 'Set di caratteri del database',
        'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
@@ -10061,22 +10099,51 @@ Anche se può essere possibile creare utenti senza password, questo non è sicur
 Da cambiare solamente se si è sicuri di averne bisogno.',
        'config-pg-test-error' => "Impossibile connettersi al database '''$1''': $2",
        'config-sqlite-dir' => 'Directory data di SQLite:',
+       'config-oracle-def-ts' => 'Tablespace di default:',
+       'config-oracle-temp-ts' => 'Tablespace temporaneo:',
        'config-header-mysql' => 'Impostazioni MySQL',
        'config-header-postgres' => 'Impostazioni PostgreSQL',
        'config-header-sqlite' => 'Impostazioni SQLite',
        'config-header-oracle' => 'Impostazioni Oracle',
        'config-invalid-db-type' => 'Tipo di database non valido',
        'config-missing-db-name' => 'È necessario immettere un valore per "Nome del database"',
+       'config-missing-db-host' => 'È necessario immettere un valore per "Host del database"',
+       'config-missing-db-server-oracle' => 'È necessario immettere un valore per "TNS del database"',
+       'config-connection-error' => '$1.
+
+Controlla host, nome utente e password e prova ancora.',
+       'config-postgres-old' => 'PostgreSQL $1 o una versione successiva è necessaria, rilevata la $2.',
+       'config-sqlite-cant-create-db' => 'Impossibile creare il file di database <code>$1</code> .',
+       'config-can-upgrade' => "Ci sono tabelle di MediaWiki in questo database.
+Per aggiornarle a MediaWiki $1, fai clic su '''continua'''.",
+       'config-upgrade-done' => "Aggiornamento completo.
+
+Puoi [$1 iniziare ad usare il tuo wiki].
+
+Se vuoi rigenerare il tuo file <code>LocalSettings.php</code>, clicca sul pulsante sotto. Questa operazione '''non è raccomandata''', a meno che non hai problemi con il tuo wiki.",
+       'config-upgrade-done-no-regenerate' => 'Aggiornamento completo.
+
+Puoi [$1 iniziare ad usare il tuo wiki].',
+       'config-regenerate' => 'Rigenera LocalSettings.php →',
        'config-db-web-account' => "Account del database per l'accesso web",
+       'config-db-web-help' => 'Seleziona il nome utente e la password che il server web utilizzerà per connettersi al server di database, durante il normale funzionamento del wiki.',
+       'config-db-web-account-same' => "Utilizza lo stesso account dell'installazione",
        'config-db-web-create' => "Crea l'account se non esiste già",
+       'config-db-web-no-create-privs' => "L'account usato per l'installazione non dispone dei privilegi necessari per creare un altro account.
+L'account indicato qui deve già esistere.",
        'config-mysql-engine' => 'Storage engine:',
        'config-mysql-innodb' => 'InnoDB',
        'config-mysql-myisam' => 'MyISAM',
        'config-mysql-charset' => 'Set di caratteri del database:',
        'config-mysql-binary' => 'Binario',
        'config-mysql-utf8' => 'UTF-8',
+       'config-site-name' => 'Nome del wiki:',
+       'config-site-name-help' => 'Questo verrà visualizzato nella barra del titolo del browser e in vari altri posti.',
+       'config-site-name-blank' => 'Inserisci il nome del sito.',
+       'config-project-namespace' => 'Namespace del progetto:',
        'config-ns-generic' => 'Progetto',
-       'config-ns-site-name' => 'Stesso nome wiki: $1',
+       'config-ns-site-name' => 'Stesso nome del wiki: $1',
+       'config-ns-other' => 'Altro (specificare)',
        'config-ns-other-default' => 'MyWiki',
        'config-admin-box' => 'Account amministratore',
        'config-admin-name' => 'Tuo nome:',
@@ -10099,6 +10166,8 @@ Inserire un indirizzo email se si desidera effettuare l'iscrizione alla mailing
        'config-almost-done' => 'Hai quasi finito!
 Adesso puoi saltare la rimanente parte della configurazione e semplicemente installare la wiki.',
        'config-optional-continue' => 'Fammi altre domande.',
+       'config-optional-skip' => 'Sono già stanco, installa solo il wiki.',
+       'config-profile' => 'Profilo dei diritti utente:',
        'config-profile-wiki' => 'Wiki aperto',
        'config-profile-no-anon' => 'Creazione utenza obbligatoria',
        'config-profile-fishbowl' => 'Solo editori autorizzati',
@@ -10118,8 +10187,13 @@ Se vuoi usare testi da Wikipedia, o desideri che Wikipedia possa essere in grado
 
 In precedenza Wikipedia ha utilizzato la GNU Free Documentation License. La GFDL è una licenza valida, ma è di difficile comprensione e complica il riutilizzo dei contenuti.",
        'config-email-settings' => 'Impostazioni email',
+       'config-enable-email' => 'Abilita la posta elettronica in uscita',
        'config-email-user' => 'Abilita invio email fra utenti',
+       'config-email-usertalk' => 'Abilita le notifiche per le pagine di discussione utente',
+       'config-email-watchlist' => 'Abilita le notifiche per gli osservati speciali',
        'config-email-auth' => 'Abilita autenticazione via email',
+       'config-email-sender' => 'Indirizzo email di ritorno:',
+       'config-upload-settings' => 'Caricamenti di immagini e file',
        'config-upload-enable' => 'Consentire il caricamento di file',
        'config-upload-deleted' => 'Directory per i file cancellati:',
        'config-logo' => 'URL del logo:',
@@ -10127,16 +10201,20 @@ In precedenza Wikipedia ha utilizzato la GNU Free Documentation License. La GFDL
        'config-cc-again' => 'Seleziona di nuovo...',
        'config-cc-not-chosen' => 'Scegliere quale licenza Creative Commons si desidera e cliccare su "procedi".',
        'config-advanced-settings' => 'Configurazione avanzata',
+       'config-memcached-servers' => 'Server di memcached:',
        'config-memcache-needservers' => 'È stato selezionato il tipo di caching Memcached, ma non è stato impostato alcun server.',
        'config-memcache-badip' => 'È stato inserito un indirizzo IP non valido per Memcached: $1.',
+       'config-memcache-badport' => 'I numeri di porta per memcached dovrebbero essere tra $1 e $2.',
        'config-extensions' => 'Estensioni',
        'config-install-step-done' => 'fatto',
        'config-install-step-failed' => 'non riuscito',
+       'config-install-database' => 'Configurazione database',
        'config-install-schema' => 'Creazione dello schema',
        'config-install-user' => 'Creazione di utente del database',
        'config-install-user-alreadyexists' => 'L\'utente "$1" è già presente',
        'config-install-user-create-failed' => 'Creazione dell\'utente "$1" non riuscita: $2',
        'config-install-user-missing' => 'L\'utente indicato "$1" non esiste.',
+       'config-install-tables' => 'Creazione tabelle',
        'config-install-tables-failed' => "'''Errore''': La creazione della tabella non è riuscita: $1",
        'config-install-interwiki' => 'Riempimento della tabella interwiki predefinita',
        'config-install-interwiki-list' => 'Impossibile leggere il file <code>interwiki.list</code>.',
@@ -10146,6 +10224,7 @@ In precedenza Wikipedia ha utilizzato la GNU Free Documentation License. La GFDL
        'config-install-subscribe-fail' => 'Impossibile sottoscrivere mediawiki-announce: $1',
        'config-install-subscribe-notpossible' => 'cURL non è installato e allow_url_fopen non è disponibile.',
        'config-install-mainpage' => 'Creazione della pagina principale con contenuto predefinito',
+       'config-install-extension-tables' => 'Creazione delle tabelle per le estensioni attivate',
        'config-install-mainpage-failed' => 'Impossibile inserire la pagina principale: $1',
        'config-download-localsettings' => 'Scarica <code>LocalSettings.php</code>',
        'config-help' => 'aiuto',
@@ -10164,6 +10243,7 @@ I seguenti collegamenti sono in lingua inglese:
 
 /** Japanese (日本語)
  * @author Aphaia
+ * @author Fryed-peach
  * @author Iwai.masaharu
  * @author Mizusumashi
  * @author Ninomy
@@ -10265,6 +10345,7 @@ Unicode を少しでも利用する可能性がある場合は、[//www.mediawik
 共有サーバーを使用している場合は、適切なデータベース ドライバーのインストールを、サーバーの管理者に依頼してください。
 PHP を自分でコンパイルした場合は、例えば <code>./configure --with-mysql</code> を実行して、データベース クライアントを使用できるように再設定してください。
 Debian または Ubuntu のパッケージから PHP をインストールした場合は、php5-mysql モジュールもインストールする必要があります。',
+       'config-outdated-sqlite' => "'''警告:''' あなたは SQLite $1 を使用していますが、最低限必要なバージョン $2 より古いバージョンです。SQLite は利用できません。",
        'config-no-fts3' => "'''警告:''' SQLite は [//sqlite.org/fts3.html FTS3] モジュールなしでコンパイルされており、このバックエンドでは検索機能は利用できなくなります。",
        'config-register-globals' => "'''警告: PHP の <code>[http://php.net/register_globals register_globals]</code> オプションが有効になっています。'''
 '''可能なら無効化してください。'''
        'config-missing-db-host' => '「データベースのホスト」を入力してください',
        'config-missing-db-server-oracle' => '「データベース TNS」の値を入力してください',
        'config-invalid-db-server-oracle' => '「$1」は無効なデータベース TNS です。
\82¢ã\82¹ã\82­ã\83¼è\8b±å­\97(a-zã\80\81A-Z)ã\80\81æ\95°å­\97(0-9)ã\80\81ã\82¢ã\83³ã\83\80ã\83¼ã\83\90ã\83¼(_)ã\80\81ã\83\89ã\83\83ã\83\88(.)ã\81®ã\81¿ã\82\92使ç\94¨ã\81\97ã\81¦ã\81\8fã\81 ã\81\95ã\81\84ã\80\82',
\80\8cTNS å\90\8dã\80\8dã\80\8cEasy Connectã\80\8dæ\96\87å­\97å\88\97ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\82\92使ç\94¨ã\81\97ã\81¦ã\81\8fã\81 ã\81\95ã\81\84 ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Oracle Naming Methods])',
        'config-invalid-db-name' => '「$1」は無効なデータベース名です。
-アスキー英字(a-z、A-Z)、数字(0-9)、アンダーバー(_)、ハイフン(-)のみを使用してください。',
-       'config-invalid-db-prefix' => 'ã\80\8c$1ã\80\8dã\81¯ç\84¡å\8a¹ã\81ªã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹æ\8e¥é ­èª\9eã\81§ã\81\99ã\80\82
-アスキー英字(a-z, A-Z)、数字(0-9)、下線(_)、ハイフン(-)のみを使用してください。',
+半角の英数字 (a-z、A-Z、0-9)、アンダースコア (_)、ハイフン (-) のみを使用してください。',
+       'config-invalid-db-prefix' => 'ã\80\8c$1ã\80\8dã\81¯ç\84¡å\8a¹ã\81ªã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹æ\8e¥é ­è¾\9eã\81§ã\81\99ã\80\82
+半角の英数字 (a-z、A-Z、0-9)、アンダースコア (_)、ハイフン (-) のみを使用してください。',
        'config-connection-error' => '$1。
 
 以下のホスト名、ユーザー名、パスワードを確認してから再度試してください。',
        'config-invalid-schema' => '「$1」は MediaWiki のスキーマとして無効です。
-ASCII の英数字 (a-z、A-Z、0-9)、下線 (_) のみを使用してください。',
+半角の英数字 (a-z、A-Z、0-9)、アンダースコア (_) のみを使用してください。',
        'config-postgres-old' => 'PostgreSQL $1 以降が必要です。ご使用中の PostgreSQL は $2 です。',
        'config-sqlite-name-help' => 'あなたのウェキと同一性のある名前を選んでください。
 空白およびハイフンは使用しないでください。
@@ -10528,7 +10609,7 @@ chmod a+w $3</pre>',
        'config-optional-continue' => '私にもっと質問してください。',
        'config-optional-skip' => 'もう飽きてしまったので、とにかくウィキをインストールしてください。',
        'config-profile' => '利用者権限のプロファイル:',
-       'config-profile-wiki' => '伝統的なウィキ', # Fuzzy
+       'config-profile-wiki' => '公開ウィキ',
        'config-profile-no-anon' => 'アカウントの作成が必要',
        'config-profile-fishbowl' => '承認された編集者のみ',
        'config-profile-private' => '非公開ウィキ',
@@ -11169,7 +11250,7 @@ MySQL의 UTF-8 모드를 보다 더 효율적이고 유니코드 문자의 전
 예를 들어 <code>/var/lib/mediawiki/yourwiki</code>와 같이 다른 곳에 데이터베이스를 넣는 것이 좋습니다.",
        'config-oracle-def-ts' => '기본 테이블공간:',
        'config-oracle-temp-ts' => '임시 테이블공간:',
-       'config-type-oracle' => '오라클',
+       'config-type-oracle' => 'Oracle',
        'config-support-info' => '미디어위키는 다음의 데이터베이스 시스템을 지원합니다:
 
 $1
        'config-header-mysql' => 'MySQL 설정',
        'config-header-postgres' => 'PostgreSQL 설정',
        'config-header-sqlite' => 'SQLite 설정',
-       'config-header-oracle' => '오라클 설정',
+       'config-header-oracle' => 'Oracle 설정',
        'config-invalid-db-type' => '잘못된 데이터베이스 종류',
        'config-missing-db-name' => '"데이터베이스 이름"에 대한 값을 입력해야 합니다',
        'config-missing-db-host' => '"데이터베이스 호스트"에 대한 값을 입력해야 합니다',
        'config-missing-db-server-oracle' => '"데이터베이스 TNS"에 대한 값을 입력해야 합니다',
        'config-invalid-db-server-oracle' => '"$1" 데이터베이스 TNS가 잘못됐습니다.
-ASCII 글자 (a-z, A-Z), 숫자 (0-9), 밑줄 (_)과 하이픈 (-)만 사용하세요.',
+ASCII 글자 (a-z, A-Z), 숫자 (0-9), 밑줄 (_)과 하이픈 (-)만 사용하세요.', # Fuzzy
        'config-invalid-db-name' => '"$1" 데이터베이스 이름이 잘못되었습니다.
 ASCII 글자 (a-z, A-Z), 숫자 (0-9), 밑줄 (_)과 하이픈 (-)만 사용하세요.',
        'config-invalid-db-prefix' => '"$1" 데이터베이스 접두어가 잘못됐습니다.
@@ -12120,6 +12201,8 @@ $messages['lb'] = array(
        'config-localsettings-upgrade' => "'''Opgepasst''': E Fichier <code>LocalSettings.php</code> gouf fonnt.
 Är Software kann aktualiséiert ginn, setzt w.e.g. de Wäert vum <code>\$wgUpgradeKey</code> an d'Këscht.
 Dir fannt en am <code>LocalSettings.php</code>.",
+       'config-localsettings-cli-upgrade' => "E Fichier <code>LocalSettings.php</code> gouf fonnt.
+Fir dës Installatioun z'aktuaéliséieren start w.e.g. <code>update.php</code>",
        'config-localsettings-key' => 'Aktualisatiounsschlëssel:',
        'config-localsettings-badkey' => 'De Schlëssel deen Dir aginn hutt ass net korrekt',
        'config-localsettings-incomplete' => 'De Fichier <code>LocalSettings.php</code> schéngt net komplett ze sinn.
@@ -12310,6 +12393,7 @@ Dir kënnt elo déi Astellungen déi nach iwwreg sinn iwwersprangen an d'Wiki el
        'config-install-stats' => 'Initialisatioun vun de Statistiken',
        'config-install-keys' => 'Generéiere vum Geheimschlëssel',
        'config-install-sysop' => 'Administrateur Benotzerkont gëtt ugeluecht',
+       'config-install-mainpage' => 'Haaptsäit mat Standard-Inhalt gëtt ugeluecht',
        'config-install-extension-tables' => "D'Tabelle fir déi aktivéiert Erweiderunge ginn ugeluecht",
        'config-install-mainpage-failed' => "D'Haaptsäit konnt net dragesat ginn: $1",
        'config-download-localsettings' => '<code>LocalSettings.php</code> eroflueden',
@@ -12844,8 +12928,8 @@ $1
        'config-missing-db-name' => 'Мора да внесете значење за параметарот „Име на базата“',
        'config-missing-db-host' => 'Мора да внесете вредност за „Домаќин на базата на податоци“',
        'config-missing-db-server-oracle' => 'Мора да внесете вредност за „TNS на базата“',
-       'config-invalid-db-server-oracle' => 'Неважечки TNS „$1“ за базата.
-Користете само знаци по ASCII - букви (a-z, A-Z), бројки (0-9), долни црти (_) и точки (.).',
+       'config-invalid-db-server-oracle' => 'Неважечки TNS „$1“.
+Користете или „TNS Name“ или низата „Easy Connect“ ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Методи на именување за Oracle])',
        'config-invalid-db-name' => 'Неважечко име на базата „$1“.
 Користете само ASCII-букви (a-z, A-Z), бројки (0-9), долни црти (_) и цртички (-).',
        'config-invalid-db-prefix' => 'Неважечки префикс за базата „$1“.
@@ -13346,7 +13430,7 @@ $messages['ms'] = array(
        'config-localsettings-key' => 'Kunci naik taraf:',
        'config-localsettings-badkey' => 'Kunci yang anda berikan tidak betul.',
        'config-session-error' => 'Ralat ketika memulakan sesi: $1',
-       'config-your-language' => 'Bahasa kamu:',
+       'config-your-language' => 'Bahasa anda:',
        'config-your-language-help' => 'Pilihkan bahasa untuk digunakan dalam proses pemasangan ini.',
        'config-wiki-language' => 'Bahasa wiki:',
        'config-wiki-language-help' => 'Pilih bahasa utama wiki yang bakal dicipta ini.',
@@ -13418,11 +13502,12 @@ Bagaimanapun, MediaWiki memerlukan PHP $2 ke atas.',
        'mainpagetext' => "'''MediaWiki telah berjaya dipasang.'''",
        'mainpagedocfooter' => 'Sila rujuk [//meta.wikimedia.org/wiki/Help:Contents Panduan Penggunaan] untuk maklumat mengenai penggunaan perisian wiki ini.
 
-== Untuk bermula ==
+== Permulaan ==
 
 * [//www.mediawiki.org/wiki/Manual:Configuration_settings Senarai tetapan konfigurasi]
 * [//www.mediawiki.org/wiki/Manual:FAQ Soalan Lazim MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Senarai mel bagi keluaran MediaWiki]', # Fuzzy
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Senarai surat keluaran MediaWiki]
+* [//www.mediawiki.org/wiki/Localisation#Translation_resources Terjemahkan MediaWiki ke dalam bahasa anda]',
 );
 
 /** Maltese (Malti)
@@ -14054,7 +14139,8 @@ $messages['nds-nl'] = array(
 == Meer hulpe ==
 * [//www.mediawiki.org/wiki/Help:Configuration_settings Lieste mit instellingen]
 * [//www.mediawiki.org/wiki/Help:FAQ MediaWiki-vragen die vake esteld wörden]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-postlieste veur nieje versies]', # Fuzzy
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-postlieste veur nieje versies]
+* [//www.mediawiki.org/wiki/Localisation#Translation_resources Maak MediaWiki beschikbaor in joew taal]',
 );
 
 /** Nepali (नेपाली)
@@ -14329,8 +14415,8 @@ Als u het databasesysteem dat u wilt gebruiken niet in de lijst terugvindt, volg
        'config-missing-db-name' => 'U moet een waarde opgeven voor "Databasenaam"',
        'config-missing-db-host' => 'U moet een waarde invoeren voor "Databaseserver"',
        'config-missing-db-server-oracle' => 'U moet een waarde opgeven voor "Database-TNS"',
-       'config-invalid-db-server-oracle' => 'Ongeldige database-TMS "$1".
-Gebruik alleen letters (a-z, A-Z), cijfers (0-9) en liggende streepjes (_).',
+       'config-invalid-db-server-oracle' => 'Ongeldige database-TNS "$1".
+Gebruik "TNS Names" of een "Easy Connect" tekst ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Oracle naamgevingsmethoden])',
        'config-invalid-db-name' => 'Ongeldige databasenaam "$1".
 Gebruik alleen letters (a-z, A-Z), cijfers (0-9) en liggende streepjes (_) en streepjes (-).',
        'config-invalid-db-prefix' => 'Ongeldig databasevoorvoegsel "$1".
@@ -15025,6 +15111,8 @@ $messages['pdc'] = array(
  * @author BeginaFelicysym
  * @author Chrumps
  * @author Holek
+ * @author Matma Rex
+ * @author Michał Roszka
  * @author Saper
  * @author Sp5uhe
  * @author Woytecr
@@ -15161,8 +15249,10 @@ Instalacja może się nie udać!",
        'config-mod-security' => "''' Ostrzeżenie ''': Serwer sieci web ma włączone [http://modsecurity.org/ mod_security]. Jeśli niepoprawnie skonfigurowane, może być przyczyną problemów MediaWiki lub innego oprogramowania, które pozwala użytkownikom na wysyłanie dowolnej zawartości.
 Sprawdź w [http://modsecurity.org/documentation/ dokumentacji mod_security] lub skontaktuj się z obsługa hosta, jeśli wystąpią losowe błędy.",
        'config-diff3-bad' => 'Nie znaleziono GNU diff3.',
+       'config-git' => 'Znaleziono oprogramowanie kontroli wersji Git: <code>$1</code>.',
+       'config-git-bad' => 'Oprogramowanie systemu kontroli wersji Git nie zostało znalezione.',
        'config-imagemagick' => 'Mamy zainstalowany ImageMagick <code>$1</code>, dzięki czemu będzie można pomniejszać załadowane grafiki.',
-       'config-gd' => 'Mamy wbudowaną bibliotekę graficzną GD, dzięki ceymu będzie można pomniejszać załadowane grafiki.',
+       'config-gd' => 'Mamy wbudowaną bibliotekę graficzną GD, dzięki czemu będzie można pomniejszać załadowane grafiki.',
        'config-no-scaling' => 'Nie można odnaleźć biblioteki GD lub ImageMagick. Nie będzie działać pomniejszanie załadowane grafiki.',
        'config-no-uri' => "'''Błąd.''' Nie można określić aktualnego URI.
 Instalacja została przerwana.",
@@ -15179,7 +15269,8 @@ Instalacja została przerwana.',
        'config-using531' => 'MediaWiki nie może być używane z PHP $1 z powodu błędu dotyczącego referencyjnych argumentów funkcji <code>__call()</code>.
 Uaktualnij do PHP 5.3.2 lub nowszego. Możesz również cofnąć wersję do PHP 5.3.0, aby naprawić ten błąd.
 Instalacja została przerwana.',
-       'config-suhosin-max-value-length' => 'Jest zainstalowany Suhosin i ogranicza długość parametru GET do $1  bajtów. Komponent ResourceLoader w MediaWiki  wykona obejście tego ograniczenia, ale kosztem wydajności. Jeśli to możliwe należy ustawić <code>suhosin.get.max_value_length</code> na 1024 lub wyższej w <code>php.ini</code> oraz ustawić <code>$wgResourceLoaderMaxQueryLength</code> w LocalSettings.php na tę samą wartość.', # Fuzzy
+       'config-suhosin-max-value-length' => 'Jest zainstalowany Suhosin i ogranicza długość parametru GET <code>length</code> do $1 bajtów. Komponent ResourceLoader w MediaWiki wykona obejście tego ograniczenia, ale kosztem wydajności.
+Jeśli to możliwe, należy ustawić <code>suhosin.get.max_value_length</code> na 1024 lub wyżej w <code>php.ini</code> oraz ustawić <code>$wgResourceLoaderMaxQueryLength</code> w <code>LocalSettings.php</code> na tę samą wartość.',
        'config-db-type' => 'Typ bazy danych',
        'config-db-host' => 'Adres serwera bazy danych',
        'config-db-host-help' => 'Jeśli serwer bazy danych jest na innej maszynie, wprowadź jej nazwę domenową lub adres IP.
@@ -15269,7 +15360,7 @@ Poniżej wyświetlone są systemy baz danych gotowe do użycia. Jeżeli poniżej
        'config-missing-db-host' => 'Musisz wpisać wartość w polu „Serwer bazy danych”',
        'config-missing-db-server-oracle' => 'Należy wpisać wartość w polu „Nazwa instancji bazy danych (TNS)”',
        'config-invalid-db-server-oracle' => 'Nieprawidłowa nazwa instancji bazy danych (TNS) „$1”.
-W nazwie można użyć wyłącznie liter ASCII (a-z, A-Z), cyfr (0-9), podkreślenia (_) i kropek (.).',
+Użyj "TNS Name" lub "Easy Connect" ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Oracle Naming Methods])',
        'config-invalid-db-name' => 'Nieprawidłowa nazwa bazy danych „$1”.
 Używaj wyłącznie liter ASCII (a-z, A-Z), cyfr (0-9), podkreślenia (_) lub znaku odejmowania (-).',
        'config-invalid-db-prefix' => 'Nieprawidłowy prefiks bazy danych „$1”.
@@ -15344,6 +15435,12 @@ Konto, które wskazałeś tutaj musi już istnieć.',
 
 Jeśli instalacja MySQL obsługuje InnoDB, jest wysoce zalecane, by to je wybrać.
 Jeśli instalacja MySQL nie obsługuje InnoDB, być może nadszedł czas na jej uaktualnienie.",
+       'config-mysql-only-myisam-dep' => "'''Ostrzeżenie:''' MyISAM jest jedynym dostępnym mechanizmem składowania dla MySQL, który nie jest zalecany do używania z MediaWiki, ponieważ:
+* słabo obsługuje współbieżność z powodu blokowania tabel
+* jest bardziej skłonny do uszkodzeń niż inne silniki
+* kod MediaWiki nie zawsze traktuje MyISAM jak powinien
+
+Twoja instalacja MySQL nie obsługuje InnoDB, być może jest to czas na aktualizację.",
        'config-mysql-engine-help' => "'''InnoDB''' jest prawie zawsze najlepszą opcją, ponieważ posiada dobrą obsługę współbieżności.
 
 '''MyISAM''' może być szybsze w instalacjach pojedynczego użytkownika lub tylko do odczytu.
@@ -15387,7 +15484,7 @@ Podaj inną nazwę.',
        'config-admin-error-user' => 'Błąd wewnętrzny podczas tworzenia konta administratora o nazwie „<nowiki>$1</nowiki>”.',
        'config-admin-error-password' => 'Wewnętrzny błąd podczas ustawiania hasła dla administratora „<nowiki>$1</nowiki>”: <pre>$2</pre>',
        'config-admin-error-bademail' => 'Wpisałeś nieprawidłowy adres e‐mail',
-       'config-subscribe' => 'Zapisz się na [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce listę pocztową z ogłaszaniami o nowych wersjach].',
+       'config-subscribe' => 'Zapisz się na [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce listę pocztową z ogłoszeniami o nowych wersjach].',
        'config-subscribe-help' => 'Jest to lista o małej liczbie wiadomości, wykorzystywana do przesyłania informacji o udostępnieniu nowej wersji oraz istotnych sprawach dotyczących bezpieczeństwa.
 Powinieneś zapisać się na tę listę i aktualizować zainstalowane oprogramowanie MediaWiki gdy pojawia się nowa wersja.',
        'config-subscribe-noemail' => 'Próbowano subskrybować listę mailingową ogłoszeń wersji bez podania adresu e-mail.
@@ -15402,17 +15499,17 @@ Możesz pominąć pozostałe czynności konfiguracyjne i zainstalować wiki.',
        'config-profile-fishbowl' => 'Wyłącznie zatwierdzeni edytorzy',
        'config-profile-private' => 'Prywatna wiki',
        'config-profile-help' => "Strony typu wiki działają najlepiej, gdy pozwolisz je edytować tak wielu osobom, jak to możliwie.
-W MediaWiki, jest łatwe sprawdzenie ostatnich zmian i wycofać szkody, które są spowodowane przez naiwnych lub złośliwych użytkowników.
+W MediaWiki, można łatwo sprawdzić ostatnie zmiany i wycofać szkody, które są spowodowane przez naiwnych lub złośliwych użytkowników.
 
-Jednakże wielu uznało MediaWiki użytecznymi w różnorodnych rolach, a czasami nie jest łatwo przekonać wszystkich do korzyści ze sposobu działania wiki.
+Jednakże wielu uznało MediaWiki użytecznym w różnorodnych rolach, a czasami nie jest łatwo przekonać wszystkich do korzyści ze sposobu działania wiki. Masz więc wybór.
 
-Ustawienie '''{{int:config-profil-wiki}}''' pozwala każdemu na edycję, nawet bez logowania się.
-Wiki z '''{{int:config-profile-no-anon}}''' zawiera dodatkowe funkcje rozliczania się, ale może powstrzymać dorywczych współpracowników.
+Ustawienie '''{{int:config-profile-wiki}}''' pozwala każdemu na edycję, nawet bez logowania się.
+Wiki z '''{{int:config-profile-no-anon}}''' zawiera dodatkowe możliwości ale może powstrzymywać potencjalnych edytorów.
 
 Scenariusz '''{{int:config-profile-fishbowl}}''' umożliwia zatwierdzonym użytkownikom edycję, ale wyświetlanie stron jest powszechnie dostępne, włącznie z historią.
-Ustawienie '''{{int:config-profile-private}}'' ' pozwala na wyświetlanie stron tylko zatwierdzonym użytkownikom, ta sama grupa może edytować.
+Ustawienie '''{{int:config-profile-private}}'' ' pozwala na wyświetlanie stron tylko zatwierdzonym użytkownikom, ta sama grupa może je edytować.
 
-Bardziej skomplikowane konfiguracje uprawnień użytkowników są dostępne po zakończeniu instalacji, zobacz [//www.mediawiki.org/wiki/Manual:User_rights odpowiednią część podręcznika].", # Fuzzy
+Bardziej skomplikowane konfiguracje uprawnień użytkowników są dostępne po zakończeniu instalacji, zobacz [//www.mediawiki.org/wiki/Manual:User_rights odpowiednią część podręcznika].",
        'config-license' => 'Prawa autorskie i licencja',
        'config-license-none' => 'Brak stopki z licencją',
        'config-license-cc-by-sa' => 'Creative Commons – za uznaniem autora, na tych samych zasadach',
@@ -15463,7 +15560,9 @@ Najlepiej, aby nie był on dostępny z internetu.',
        'config-logo-help' => 'Domyślny motyw MediaWiki zawiera miejsce na logo wielkości 135 x 160 pikseli powyżej menu na pasku bocznym.
 Prześlij obrazek o odpowiednim rozmiarze, a następnie wpisz jego URL tutaj.
 
-Jeśli nie chcesz logo, pozostaw to pole puste.', # Fuzzy
+Możesz użyć <code>$wgStylePath</code> lub <code>$wgScriptPath</code> jeżeli twoje logo jest relatywne do tych ścieżek.
+
+Jeśli nie chcesz logo, pozostaw to pole puste.',
        'config-instantcommons' => 'Włącz Instant Commons',
        'config-instantcommons-help' => '[//www.mediawiki.org/wiki/InstantCommons Instant Commons] jest funkcją, która pozwala wiki używać obrazów, dźwięków i innych mediów znalezionych na  witrynie [//commons.wikimedia.org/ Wikimedia Commons].
 Aby to zrobić, MediaWiki wymaga dostępu do internetu.
@@ -15496,8 +15595,8 @@ Jeśli nie znasz numeru portu, wartością domyślną jest 11211.',
 Mogą one wymagać dodatkowych czynności konfiguracyjnych, ale można je teraz włączyć',
        'config-install-alreadydone' => "'''Uwaga''' – wydaje się, że MediaWiki jest już zainstalowane, a obecnie próbujesz zainstalować je ponownie.
 Przejdź do następnej strony.",
-       'config-install-begin' => 'Po naciśnięciu "{{int:config-continue}}", rozpocznie się instalacji MediaWiki.
-Jeśli nadal chcesz dokonać zmian, naciśnij wstecz.', # Fuzzy
+       'config-install-begin' => 'Po naciśnięciu "{{int:config-continue}}", rozpocznie się instalacja MediaWiki.
+Jeśli nadal chcesz dokonać zmian, naciśnij "{{int:config-back}}".',
        'config-install-step-done' => 'gotowe',
        'config-install-step-failed' => 'nieudane',
        'config-install-extensions' => 'Włącznie z rozszerzeniami',
@@ -15539,29 +15638,33 @@ Tworzenie domyślnej listy pominięto.",
        'config-install-extension-tables' => 'Tworzenie tabel dla aktywnych rozszerzeń',
        'config-install-mainpage-failed' => 'Nie udało się wstawić strony głównej – $1',
        'config-install-done' => "'''Gratulacje!'''
-Udało ci się zainstalować MediaWiki.
+Udało Ci się zainstalować MediaWiki.
 
 Instalator wygenerował plik konfiguracyjny <code>LocalSettings.php</code>.
 
-Musisz go pobrać i umieścić go w korzeniu twojej instalacji wiki (tym samym katalogu co index.php). Pobieranie powinno zacząć się automatycznie.
+Musisz go pobrać i umieścić w katalogu głównym Twojej instalacji wiki (tym samym katalogu co index.php). Pobieranie powinno zacząć się automatycznie.
 
-Jeżeli pobieranie nie zostało zaproponowane, lub jeśli użytkownik anulował je, można ponownie uruchomić pobranie klikając poniższe łącze:
+Jeżeli pobieranie nie zostało zaproponowane lub jeśli użytkownik je anulował, można ponownie uruchomić pobranie klikając poniższe łącze:
 
 $3
 
-'''Uwaga''': Jeśli tego nie zrobisz tego teraz, wygenerowany plik konfiguracyjny nie będzie już dostępny po zakończeniu instalacji.
+'''Uwaga''': Jeśli nie zrobisz tego teraz, wygenerowany plik konfiguracyjny nie będzie już dostępny po zakończeniu instalacji.
 
-Po załadowaniu pliku konfiguracyjnego możesz '''[ $2  wejść na wiki]'''.",
+Po załadowaniu pliku konfiguracyjnego możesz '''[$2 wejść na wiki]'''.",
        'config-download-localsettings' => 'Pobierz <code>LocalSettings.php</code>',
        'config-help' => 'pomoc',
        'config-nofile' => 'Nie udało się odnaleźć pliku "$1". Czy nie został usunięty?',
+       'config-extension-link' => 'Czy wiesz, że twoja wiki obsługuje [//www.mediawiki.org/wiki/Manual:Extensions/pl rozszerzenia]?
+
+Możesz przejrzeć [//www.mediawiki.org/wiki/Category:Extensions_by_category rozszerzenia według kategorii] lub [//www.mediawiki.org/wiki/Extension_Matrix Extension Matrix] aby zobaczyć pełną listę rozszerzeń.',
        'mainpagetext' => "'''Instalacja MediaWiki powiodła się.'''",
        'mainpagedocfooter' => 'Zobacz [//meta.wikimedia.org/wiki/Help:Contents przewodnik użytkownika] w celu uzyskania informacji o działaniu oprogramowania wiki.
 
 == Na początek ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista ustawień konfiguracyjnych]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Komunikaty o nowych wersjach MediaWiki]', # Fuzzy
+* [//www.mediawiki.org/wiki/Manual:Configuration_settings/pl Lista ustawień konfiguracyjnych]
+* [//www.mediawiki.org/wiki/Manual:FAQ/pl MediaWiki FAQ]
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Komunikaty o nowych wersjach MediaWiki]
+* [//www.mediawiki.org/wiki/Localisation#Translation_resources Przetłumacz MediaWiki na swój język]',
 );
 
 /** Piedmontese (Piemontèis)
@@ -16190,14 +16293,14 @@ $messages['pt'] = array(
        'config-title' => 'Instalação MediaWiki $1',
        'config-information' => 'Informação',
        'config-localsettings-upgrade' => 'Foi detectado um ficheiro <code>LocalSettings.php</code>.
-Para actualizar esta instalação, por favor introduza o valor de <code>$wgUpgradeKey</code> na caixa abaixo.
+Para atualizar esta instalação, por favor introduza o valor de <code>$wgUpgradeKey</code> na caixa abaixo.
 Encontra este valor no <code>LocalSettings.php</code>.',
        'config-localsettings-cli-upgrade' => 'Foi detectada a existência de um ficheiro <code>LocalSettings.php</code>.
-Para actualizar esta instalação execute o <code>update.php</code>, por favor.',
-       'config-localsettings-key' => 'Chave de actualização:',
+Para atualizar esta instalação execute o <code>update.php</code>, por favor.',
+       'config-localsettings-key' => 'Chave de atualização:',
        'config-localsettings-badkey' => 'A chave que forneceu está incorreta.',
        'config-upgrade-key-missing' => 'Foi detectada uma instalação existente do MediaWiki.
-Para actualizar esta instalação, por favor coloque a seguinte linha no final do seu <code>LocalSettings.php</code>:
+Para atualizar esta instalação, por favor coloque a seguinte linha no final do seu <code>LocalSettings.php</code>:
 
 $1',
        'config-localsettings-incomplete' => 'O ficheiro <code>LocalSettings.php</code> existente parece estar incompleto.
@@ -16212,7 +16315,7 @@ As sessões estão configuradas para uma duração de $1.
 Pode aumentar esta duração configurando <code>session.gc_maxlifetime</code> no php.ini.
 Reinicie o processo de instalação.',
        'config-no-session' => 'Os seus dados de sessão foram perdidos!
-Verifique o seu php.ini e certifique-se de que em <code>session.save_path</code> está definido um directório apropriado.',
+Verifique o seu php.ini e certifique-se de que em <code>session.save_path</code> está definido um diretório apropriado.',
        'config-your-language' => 'A sua língua:',
        'config-your-language-help' => 'Seleccione a língua que será usada durante o processo de instalação.',
        'config-wiki-language' => 'Língua da wiki:',
@@ -16222,7 +16325,7 @@ Verifique o seu php.ini e certifique-se de que em <code>session.save_path</code>
        'config-page-language' => 'Língua',
        'config-page-welcome' => 'Bem-vindo(a) ao MediaWiki!',
        'config-page-dbconnect' => 'Ligar à base de dados',
-       'config-page-upgrade' => 'Actualizar a instalação existente',
+       'config-page-upgrade' => 'Atualizar a instalação existente',
        'config-page-dbsettings' => 'Configurações da base de dados',
        'config-page-name' => 'Nome',
        'config-page-options' => 'Opções',
@@ -16232,7 +16335,7 @@ Verifique o seu php.ini e certifique-se de que em <code>session.save_path</code>
        'config-page-readme' => 'Leia-me',
        'config-page-releasenotes' => 'Notas de lançamento',
        'config-page-copying' => 'A copiar',
-       'config-page-upgradedoc' => 'A actualizar',
+       'config-page-upgradedoc' => 'Atualizando',
        'config-page-existingwiki' => 'Wiki existente',
        'config-help-restart' => 'Deseja limpar todos os dados gravados que introduziu e reiniciar o processo de instalação?',
        'config-restart' => 'Sim, reiniciar',
@@ -16267,33 +16370,33 @@ Não pode instalar o MediaWiki.',
 No entanto, o MediaWiki requer o PHP $2 ou superior.',
        'config-unicode-using-utf8' => 'A usar o utf8_normalize.so, por Brian Viper, para a normalização Unicode.',
        'config-unicode-using-intl' => 'A usar a [http://pecl.php.net/intl extensão intl PECL] para a normalização Unicode.',
-       'config-unicode-pure-php-warning' => "'''Aviso''': A [http://pecl.php.net/intl extensão intl PECL] não está disponível para efectuar a normalização Unicode. Irá recorrer-se à implementação em PHP puro, que é mais lenta.
+       'config-unicode-pure-php-warning' => "'''Aviso''': A [http://pecl.php.net/intl extensão intl PECL] não está disponível para efetuar a normalização Unicode. Irá recorrer-se à implementação em PHP puro, que é mais lenta.
 Se o seu site tem alto volume de tráfego, devia informar-se um pouco sobre a [//www.mediawiki.org/wiki/Unicode_normalization_considerations/pt normalização Unicode].",
        'config-unicode-update-warning' => "'''Aviso''': A versão instalada do wrapper de normalização Unicode usa uma versão mais antiga da biblioteca do [http://site.icu-project.org/ projecto ICU].
 Devia [//www.mediawiki.org/wiki/Unicode_normalization_considerations actualizá-la] se tem quaisquer preocupações sobre o uso do Unicode.",
        'config-no-db' => "Não foi possível encontrar um controlador ''(driver)'' apropriado para a base de dados! Precisa de instalar um controlador para o PHP. São aceites os seguintes tipos de base de dados: $1.
 
 Se usa alojamento partilhado, peça ao fornecedor do alojamento para instalar um controlador apropriado.
-Se foi você quem compilou o PHP, reconfigure-o com um cliente de base de dados activado; por exemplo, usando <code>./configure --with-mysql</code>.
+Se foi você quem compilou o PHP, reconfigure-o com um cliente de base de dados ativado; por exemplo, usando <code>./configure --with-mysql</code>.
 Se instalou o PHP a partir de um pacote Debian ou Ubuntu, então precisa de instalar também o módulo php5-mysql.",
        'config-outdated-sqlite' => "'''Aviso''': Tem a versão $1 do SQLite, que é anterior à versão mínima necessária, a $2. O SQLite não estará disponível.",
        'config-no-fts3' => "'''Aviso''': O SQLite foi compilado sem o módulo [//sqlite.org/fts3.html FTS3]; as funcionalidades de pesquisa não estarão disponíveis nesta instalação.",
-       'config-register-globals' => "'''Aviso: A opção <code>[http://php.net/register_globals register_globals]</code> do PHP está activada.'''
-'''Desactive-a, se puder.'''
+       'config-register-globals' => "'''Aviso: A opção <code>[http://php.net/register_globals register_globals]</code> do PHP está ativada.'''
+'''Desative-a, se puder.'''
 O MediaWiki funciona mesmo assim, mas o seu servidor está exposto a potenciais vulnerabilidades de segurança.",
-       'config-magic-quotes-runtime' => "'''Fatal: A opção [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] está activada!'''
+       'config-magic-quotes-runtime' => "'''Fatal: A opção [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] está ativada!'''
 Esta opção causa corrupção dos dados de entrada, de uma forma imprevisível.
-Não pode instalar ou usar o MediaWiki a menos que esta opção seja desactivada.",
-       'config-magic-quotes-sybase' => "'''Fatal: A opção [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] está activada!'''
+Não pode instalar ou usar o MediaWiki a menos que esta opção seja desativada.",
+       'config-magic-quotes-sybase' => "'''Fatal: A opção [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] está ativada!'''
 Esta opção causa corrupção dos dados de entrada, de uma forma imprevisível.
-Não pode instalar ou usar o MediaWiki a menos que esta opção seja desactivada.",
-       'config-mbstring' => "'''Fatal: A opção [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] está activada!'''
+Não pode instalar ou usar o MediaWiki a menos que esta opção seja desativada.",
+       'config-mbstring' => "'''Fatal: A opção [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] está ativada!'''
 Esta opção causa erros e pode corromper os dados de uma forma imprevisível.
-Não pode instalar ou usar o MediaWiki a menos que esta opção seja desactivada.",
-       'config-ze1' => "'''Fatal: A opção [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] está activada!'''
+Não pode instalar ou usar o MediaWiki a menos que esta opção seja desativada.",
+       'config-ze1' => "'''Fatal: A opção [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] está ativada!'''
 Esta opção causa problemas significativos no MediaWiki.
-Não pode instalar ou usar o MediaWiki a menos que esta opção seja desactivada.",
-       'config-safe-mode' => "'''Aviso:''' O [http://www.php.net/features.safe-mode safe mode] do PHP está activo.
+Não pode instalar ou usar o MediaWiki a menos que esta opção seja desativada.",
+       'config-safe-mode' => "'''Aviso:''' O [http://www.php.net/features.safe-mode safe mode] do PHP está ativo.
 Este modo pode causar problemas, especialmente no upload de ficheiros e no suporte a <code>math</code>.",
        'config-xml-bad' => 'Falta o módulo XML do PHP.
 O MediaWiki necessita de funções deste módulo e não funcionará com esta configuração.
@@ -16311,24 +16414,24 @@ A instalação poderá falhar!",
        'config-apc' => '[http://www.php.net/apc APC] instalada',
        'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] instalada',
        'config-no-cache' => "'''Aviso:''' Não foi possível encontrar: [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache], nem [http://www.iis.net/download/WinCacheForPhp WinCache].
-A cache de objectos não será activada.",
+A cache de objetos não está ativada.",
        'config-mod-security' => "'''Aviso''': O seu servidor de internet tem o [http://modsecurity.org/ mod_security] ativado. Se este estiver mal configurado, pode causar problemas ao MediaWiki ou a outros programas, permitindo que os utilizadores publiquem conteúdos arbitrários.
 Consulte a [http://modsecurity.org/documentation/ mod_security documentação] ou peça apoio ao fornecedor do alojamento do seu servidor se encontrar erros aleatórios.",
        'config-diff3-bad' => 'O GNU diff3 não foi encontrado.',
        'config-imagemagick' => 'Foi encontrado o ImageMagick: <code>$1</code>.
-Se possibilitar uploads, a miniaturização de imagens será activada.',
+Se possibilitar uploads, a miniaturização de imagens será ativada.',
        'config-gd' => 'Foi encontrada a biblioteca gráfica GD.
-Se possibilitar uploads, a miniaturização de imagens será activada.',
+Se possibilitar uploads, a miniaturização de imagens será ativada.',
        'config-no-scaling' => 'Não foi encontrada a biblioteca gráfica GD nem o ImageMagick.
-A miniaturização de imagens será desactivada.',
+A miniaturização de imagens será desativada.',
        'config-no-uri' => "'''Erro:''' Não foi possível determinar a URI actual.
 A instalação foi abortada.",
        'config-no-cli-uri' => "'''Aviso''':  Não foi especificado um --scriptpath; por omissão, será usado: <code>$1</code>.",
        'config-using-server' => 'Será usado o nome do servidor "<nowiki>$1</nowiki>".',
        'config-using-uri' => 'Será usada a URL do servidor "<nowiki>$1$2</nowiki>".',
-       'config-uploads-not-safe' => "'''Aviso:''' O directório por omissão para uploads <code>$1</code>, está vulnerável à execução arbitrária de scripts.
+       'config-uploads-not-safe' => "'''Aviso:''' O diretório por omissão para uploads <code>$1</code>, está vulnerável à execução arbitrária de scripts.
 Embora o MediaWiki verifique a existência de ameaças de segurança em todos os ficheiros enviados, é altamente recomendado que [//www.mediawiki.org/wiki/Manual:Security#Upload_security vede esta vulnerabilidade de segurança] antes de possibilitar uploads.",
-       'config-no-cli-uploads-check' => "'''Aviso:''' O directório por omissão para uploads, <code>\$1</code>, não é verificado para determinar se é vulnerável à execução de código arbitrário durante a instalação por CLI (\"Command-line Interface\").",
+       'config-no-cli-uploads-check' => "'''Aviso:''' O diretório por omissão para uploads, <code>\$1</code>, não é verificado para determinar se é vulnerável à execução de código arbitrário durante a instalação por CLI (\"Command-line Interface\").",
        'config-brokenlibxml' => 'O seu sistema tem uma combinação de versões de PHP e libxml2 conhecida por ser problemática, podendo causar corrupção de dados no MediaWiki e outras aplicações da internet.
 Actualize para o PHP versão 5.2.9 ou posterior e libxml2 versão 2.7.3 ou posterior ([//bugs.php.net/bug.php?id=45996 incidência reportada no PHP]).
 Instalação interrompida.',
@@ -16356,9 +16459,9 @@ Se estiver a usar um servidor partilhado, o fornecedor do alojamento deve poder
        'config-db-name-oracle' => "Esquema ''(schema)'' da base de dados:",
        'config-db-account-oracle-warn' => "Há três cenários suportados na instalação do servidor de base de dados Oracle:
 
-Se pretende criar a conta de acesso pela internet na base de dados durante o processo de instalação, forneça como conta para a instalação uma conta com o papel de SYSDBA na base de dados e especifique as credenciais desejadas para a conta de acesso pela internet. Se não pretende criar a conta de acesso pela internet durante a instalação, pode criá-la manualmente e fornecer só essa conta para a instalação (se ela tiver as permissões necessárias para criar os objectos do esquema ''(schema)''). A terceira alternativa é fornecer duas contas diferentes; uma com privilégios de criação e outra com privilégios limitados para o acesso pela internet.
+Se pretende criar a conta de acesso pela internet na base de dados durante o processo de instalação, forneça como conta para a instalação uma conta com o papel de SYSDBA na base de dados e especifique as credenciais desejadas para a conta de acesso pela internet. Se não pretende criar a conta de acesso pela internet durante a instalação, pode criá-la manualmente e fornecer só essa conta para a instalação (se ela tiver as permissões necessárias para criar os objetos do esquema ''(schema)''). A terceira alternativa é fornecer duas contas diferentes; uma com privilégios de criação e outra com privilégios limitados para o acesso pela internet.
 
-Existe um script para criação de uma conta com os privilégios necessários no directório \"maintenance/oracle/\" desta instalação. Mantenha em mente que usar uma conta com privilégios limitados impossibilita todas as operações de manutenção com a conta padrão.",
+Existe um script para criação de uma conta com os privilégios necessários no diretório \"maintenance/oracle/\" desta instalação. Mantenha em mente que usar uma conta com privilégios limitados impossibilita todas as operações de manutenção com a conta padrão.",
        'config-db-install-account' => 'Conta do utilizador para a instalação',
        'config-db-username' => 'Nome do utilizador da base de dados:',
        'config-db-password' => 'Palavra-chave do utilizador da base de dados:',
@@ -16392,15 +16495,15 @@ mas não lhe permitirá armazenar caracteres acima do [//en.wikipedia.org/wiki/M
        'config-db-schema-help' => 'Normalmente, este esquema ("schema") estará correcto.
 Altere-o só se souber que precisa de o fazer.',
        'config-pg-test-error' => "Não foi possível criar uma ligação à base de dados '''$1''': $2",
-       'config-sqlite-dir' => 'Directório de dados do SQLite:',
+       'config-sqlite-dir' => 'Diretório de dados do SQLite:',
        'config-sqlite-dir-help' => "O SQLite armazena todos os dados num único ficheiro.
 
-Durante a instalação, o servidor de internet precisa de ter permissão de escrita no directório que especificar.
+Durante a instalação, o servidor de internet precisa de ter permissão de escrita no diretório que especificar.
 
-Este directório '''não''' deve poder ser acedido directamente da internet, por isso está a ser colocado onde estão os seus ficheiros PHP.
+Este diretório '''não''' deve poder ser acedido diretamente da internet, por isso está a ser colocado onde estão os seus ficheiros PHP.
 
-Juntamente com o directório, o instalador irá criar um ficheiro <code>.htaccess</code>, mas se esta operação falhar é possível que alguém venha a ter acesso directo à base de dados.
-Isto inclui acesso aos dados dos utilizadores (endereços de correio electrónico, palavras-chave encriptadas), às revisões eliminadas e a outros dados de acesso restrito na wiki.
+Juntamente com o diretório, o instalador irá criar um ficheiro <code>.htaccess</code>, mas se esta operação falhar é possível que alguém venha a ter acesso direto à base de dados.
+Isto inclui acesso aos dados dos utilizadores (endereços de correio eletrónico, palavras-chave encriptadas), às revisões eliminadas e a outros dados de acesso restrito na wiki.
 
 Considere colocar a base de dados num local completamente diferente, como, por exemplo, em <code>/var/lib/mediawiki/asuawiki</code>.",
        'config-oracle-def-ts' => 'Tablespace padrão:',
@@ -16413,7 +16516,7 @@ Considere colocar a base de dados num local completamente diferente, como, por e
 
 $1
 
-Se a plataforma que pretende usar não está listada abaixo, siga as instruções nos links acima para activar o suporte.',
+Se a plataforma que pretende usar não está listada abaixo, siga as instruções nos links acima para ativar o suporte.',
        'config-support-mysql' => '* $1 é a plataforma primária do MediaWiki e a melhor suportada ([http://www.php.net/manual/en/mysql.installation.php como compilar PHP com suporte MySQL])',
        'config-support-postgres' => '* $1 é uma plataforma de base de dados comum, de fonte aberta, alternativa ao MySQL ([http://www.php.net/manual/en/pgsql.installation.php como compilar PHP com suporte PostgreSQL]). Poderão existir alguns pequenos problemas e não é recomendado o seu uso em ambientes de exploração/produção.',
        'config-support-sqlite' => '* $1 é uma plataforma de base de dados ligeira muito bem suportada. ([http://www.php.net/manual/en/pdo.installation.php Como compilar PHP com suporte SQLite], usa PDO)',
@@ -16427,7 +16530,7 @@ Se a plataforma que pretende usar não está listada abaixo, siga as instruçõe
        'config-missing-db-host' => 'Tem de introduzir um valor para "Servidor da base de dados"',
        'config-missing-db-server-oracle' => 'Tem de introduzir um valor para "TNS da base de dados"',
        'config-invalid-db-server-oracle' => 'O TNS da base de dados, "$1", é inválido.
-Use só letras (a-z, A-Z), algarismos (0-9), sublinhados (_) e pontos (.) dos caracteres ASCII.',
+Use só letras (a-z, A-Z), algarismos (0-9), sublinhados (_) e pontos (.) dos caracteres ASCII.', # Fuzzy
        'config-invalid-db-name' => 'O nome da base de dados, "$1",  é inválido.
 Use só letras (a-z, A-Z), algarismos (0-9), sublinhados (_) e hífens (-) dos caracteres ASCII.',
        'config-invalid-db-prefix' => 'O prefixo da base de dados, "$1",  é inválido.
@@ -16443,44 +16546,44 @@ Use só letras (a-z, A-Z), algarismos (0-9) e sublinhados (_) dos caracteres ASC
        'config-sqlite-name-help' => 'Escolha o nome que identificará a sua wiki.
 Não use espaços ou hífens.
 Este nome será usado como nome do ficheiro de dados do SQLite.',
-       'config-sqlite-parent-unwritable-group' => 'Não é possível criar o directório de dados <code><nowiki>$1</nowiki></code>, porque o servidor de internet não tem permissão de escrita no directório que o contém <code><nowiki>$2</nowiki></code>.
+       'config-sqlite-parent-unwritable-group' => 'Não é possível criar o diretório de dados <code><nowiki>$1</nowiki></code>, porque o servidor de internet não tem permissão de escrita no diretório que o contém <code><nowiki>$2</nowiki></code>.
 
 O instalador determinou em que nome de utilizador o seu servidor de internet está a correr.
-Para continuar, configure o directório <code><nowiki>$3</nowiki></code> para poder ser escrito por este utilizador.
+Para continuar, configure o diretório <code><nowiki>$3</nowiki></code> para poder ser escrito por este utilizador.
 Para fazê-lo em sistemas Unix ou Linux, use:
 
 <pre>cd $2
 mkdir $3
 chgrp $4 $3
 chmod g+w $3</pre>',
-       'config-sqlite-parent-unwritable-nogroup' => 'Não é possível criar o directório de dados <code><nowiki>$1</nowiki></code>, porque o servidor de internet não tem permissão de escrita no directório que o contém <code><nowiki>$2</nowiki></code>.
+       'config-sqlite-parent-unwritable-nogroup' => 'Não é possível criar o diretório de dados <code><nowiki>$1</nowiki></code>, porque o servidor de internet não tem permissão de escrita no diretório que o contém <code><nowiki>$2</nowiki></code>.
 
 Não foi possível determinar em que nome de utilizador o seu servidor de internet está a correr.
-Para continuar, configure o directório <code><nowiki>$3</nowiki></code> para que este possa ser globalmente escrito por esse utilizador (e por outros!).
+Para continuar, configure o diretório <code><nowiki>$3</nowiki></code> para que este possa ser globalmente escrito por esse utilizador (e por outros!).
 Para fazê-lo em sistemas Unix ou Linux, use:
 
 <pre>cd $2
 mkdir $3
 chmod a+w $3</pre>',
-       'config-sqlite-mkdir-error' => 'Ocorreu um erro ao criar o directório de dados "$1".
+       'config-sqlite-mkdir-error' => 'Ocorreu um erro ao criar o diretório de dados "$1".
 Verifique a localização e tente novamente.',
-       'config-sqlite-dir-unwritable' => 'Não foi possível escrever no directório "$1".
+       'config-sqlite-dir-unwritable' => 'Não foi possível escrever no diretório "$1".
 Altere as permissões para que ele possa ser escrito pelo servidor de internet e tente novamente.',
        'config-sqlite-connection-error' => '$1.
 
-Verifique o directório de dados e o nome da base de dados abaixo e tente novamente.',
+Verifique o diretório de dados e o nome da base de dados abaixo e tente novamente.',
        'config-sqlite-readonly' => 'Não é possivel escrever no ficheiro <code>$1</code>.',
        'config-sqlite-cant-create-db' => 'Não foi possível criar o ficheiro da base de dados <code>$1</code>.',
        'config-sqlite-fts3-downgrade' => 'O PHP não tem suporte FTS3; a reverter o esquema das tabelas para o anterior',
        'config-can-upgrade' => "Esta base de dados contém tabelas do MediaWiki.
 Para actualizá-las para o MediaWiki $1, clique '''Continuar'''.",
-       'config-upgrade-done' => "Actualização terminada.
+       'config-upgrade-done' => "Atualização terminada.
 
 Agora pode [$1 começar a usar a sua wiki].
 
 Se quiser regenerar o seu ficheiro <code>LocalSettings.php</code>, clique o botão abaixo.
 Esta operação '''não é recomendada''' a menos que esteja a ter problemas com a sua wiki.",
-       'config-upgrade-done-no-regenerate' => 'Actualização terminada.
+       'config-upgrade-done-no-regenerate' => 'Atualização terminada.
 
 Agora pode [$1 começar a usar a sua wiki].',
        'config-regenerate' => 'Regenerar o LocalSettings.php →',
@@ -16495,13 +16598,13 @@ A conta que especificar aqui já tem de existir.',
        'config-mysql-engine' => 'Motor de armazenamento:',
        'config-mysql-innodb' => 'InnoDB',
        'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-myisam-dep' => "'''Aviso''': Seleccionou o MyISAM para motor de armazenamento do MySQL, uma combinação desaconselhada para usar com o MediaWiki porque:
+       'config-mysql-myisam-dep' => "'''Aviso''': Selecionou o MyISAM para motor de armazenamento do MySQL, uma combinação desaconselhada para usar com o MediaWiki porque:
 * praticamente não permite acessos simultâneos, devido aos bloqueios de tabelas
-* o MyISAM é mais susceptível a perdas da integridade dos dados do que outros motores
+* o MyISAM é mais suscetível a perdas da integridade dos dados do que outros motores
 * o código do MediaWiki não trabalha devidamente com o MyISAM
 
 Se a sua instalação do MySQL suporta InnoDB, é altamente recomendado que o escolha em vez do MyISAM.
-Se não suporta o InnoDB, talvez esta seja uma boa altura para fazer a actualização para a versão mais recente do MySQL.",
+Se não suporta o InnoDB, talvez esta seja uma boa altura para fazer a atualização para a versão mais recente do MySQL.",
        'config-mysql-engine-help' => "'''InnoDB''' é quase sempre a melhor opção, porque suporta bem acessos simultâneos ''(concurrency)''.
 
 '''MyISAM''' pode ser mais rápido no modo de utilizador único ou em instalações somente para leitura.
@@ -16517,7 +16620,7 @@ mas não lhe permitirá armazenar caracteres acima do [//en.wikipedia.org/wiki/M
        'config-site-name' => 'Nome da wiki:',
        'config-site-name-help' => 'Este nome aparecerá no título da janela do seu browser e em vários outros sítios.',
        'config-site-name-blank' => 'Introduza o nome do site.',
-       'config-project-namespace' => 'Espaço nominal do projecto:',
+       'config-project-namespace' => 'Espaço nominal do projeto:',
        'config-ns-generic' => 'Projeto',
        'config-ns-site-name' => 'O mesmo que o nome da wiki: $1',
        'config-ns-other' => 'Outro (especifique)',
@@ -16526,9 +16629,9 @@ mas não lhe permitirá armazenar caracteres acima do [//en.wikipedia.org/wiki/M
 Todos os nomes das páginas neste espaço nominal começam com um determinado prefixo, que pode especificar aqui.
 Tradicionalmente, este prefixo deriva do nome da wiki, mas não pode conter caracteres de pontuação, como "#" ou ":".',
        'config-ns-invalid' => 'O espaço nominal especificado "<nowiki>$1</nowiki>" é inválido.
-Introduza um espaço nominal de projecto diferente.',
+Introduza um espaço nominal de projeto diferente.',
        'config-ns-conflict' => 'O espaço nominal que especificou, "<nowiki>$1</nowiki>", cria um conflito com um dos espaços nominais padrão do MediaWiki.
-Especifique um espaço nominal do projecto diferente.',
+Especifique um espaço nominal do projeto diferente.',
        'config-admin-box' => 'Conta de administrador',
        'config-admin-name' => 'O seu nome:',
        'config-admin-password' => 'Palavra-chave:',
@@ -16548,7 +16651,7 @@ Introduza um nome de utilizador diferente.',
        'config-admin-error-bademail' => 'Introduziu um correio electrónico inválido',
        'config-subscribe' => 'Subscreva a [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce lista de divulgação de anúncios de lançamento].',
        'config-subscribe-help' => 'Esta é uma lista de divulgação de baixo volume para anúncios de lançamento de versões novas, incluindo anúncios de segurança importantes.
-Deve subscrevê-la e actualizar a sua instalação MediaWiki quando são lançadas versões novas.',
+Deve subscrevê-la e atualizar a sua instalação MediaWiki quando são lançadas versões novas.',
        'config-subscribe-noemail' => 'Tentou subscrever a lista de divulgação dos anúncios de novas versões, sem fornecer um endereço de correio electrónico.
 Para subscrever esta lista de divulgação tem de fornecer um endereço de correio electrónico.',
        'config-almost-done' => 'Está quase a terminar!
@@ -16592,19 +16695,19 @@ A licença anterior da Wikipédia era a licença GNU Free Documentation License.
 A GFDL é uma licença válida, mas de difícil compreensão.
 Também é difícil reutilizar conteúdos licenciados com a GFDL.',
        'config-email-settings' => 'Definições do correio electrónico',
-       'config-enable-email' => 'Activar mensagens electrónicas de saída',
+       'config-enable-email' => 'Ativar mensagens eletrónicas de saída',
        'config-enable-email-help' => 'Se quer que o correio electrónico funcione, as [http://www.php.net/manual/en/mail.configuration.php definições de correio electrónico do PHP] têm de estar configuradas correctamente.
 Se não pretende viabilizar qualquer funcionalidade de correio electrónico, pode desactivá-lo aqui.',
-       'config-email-user' => 'Activar mensagens electrónicas entre utilizadores',
-       'config-email-user-help' => 'Permitir que todos os utilizadores troquem entre si mensagens de correio electrónico, se tiverem activado esta funcionalidade nas suas preferências.',
-       'config-email-usertalk' => 'Activar notificações de alterações à página de discussão dos utilizadores',
-       'config-email-usertalk-help' => 'Permitir que os utilizadores recebam notificações de alterações à sua página de discussão, se tiverem activado esta funcionalidade nas suas preferências.',
-       'config-email-watchlist' => 'Activar notificação de alterações às páginas vigiadas',
-       'config-email-watchlist-help' => 'Permitir que os utilizadores recebam notificações de alterações às suas páginas vigiadas, se tiverem activado esta funcionalidade nas suas preferências.',
-       'config-email-auth' => 'Activar autenticação do correio electrónico',
-       'config-email-auth-help' => "Se esta opção for activada, os utilizadores têm de confirmar o seu endereço de correio electrónico usando um link que lhes é enviado sempre que o definirem ou alterarem.
-Só os endereços de correio electrónico autenticados podem receber mensagens electrónicas dos outros utilizadores ou alterar as mensagens de notificação.
-É '''recomendado''' que esta opção seja activada nas wikis de acesso público para impedir o uso abusivo das funcionalidades de correio electrónico.",
+       'config-email-user' => 'Ativar mensagens eletrónicas entre utilizadores',
+       'config-email-user-help' => 'Permitir que todos os utilizadores troquem entre si mensagens de correio eletrónico, se tiverem ativado esta funcionalidade nas suas preferências.',
+       'config-email-usertalk' => 'Ativar notificações de alterações à página de discussão dos utilizadores',
+       'config-email-usertalk-help' => 'Permitir que os utilizadores recebam notificações de alterações à sua página de discussão, se tiverem ativado esta funcionalidade nas suas preferências.',
+       'config-email-watchlist' => 'Ativar notificação de alterações às páginas vigiadas',
+       'config-email-watchlist-help' => 'Permitir que os utilizadores recebam notificações de alterações às suas páginas vigiadas, se tiverem ativado esta funcionalidade nas suas preferências.',
+       'config-email-auth' => 'Ativar autenticação do correio eletrónico',
+       'config-email-auth-help' => "Se esta opção for ativada, os utilizadores têm de confirmar o seu endereço de correio eletrónico usando um link que lhes é enviado sempre que o definirem ou alterarem.
+Só os endereços de correio eletrónico autenticados podem receber mensagens eletrónicas dos outros utilizadores ou alterar as mensagens de notificação.
+É '''recomendado''' que esta opção seja ativada nas wikis de acesso público para impedir o uso abusivo das funcionalidades de correio eletrónico.",
        'config-email-sender' => 'Endereço de correio electrónico de retorno:',
        'config-email-sender-help' => 'Introduza o endereço de correio electrónico que será usado como endereço de retorno nas mensagens electrónicas de saída.
 É para este endereço que serão enviadas as mensagens que não podem ser entregues.
@@ -16612,19 +16715,19 @@ Muitos servidores de correio electrónico exigem que pelo menos a parte do nome
        'config-upload-settings' => 'Upload de imagens e ficheiros',
        'config-upload-enable' => 'Possibilitar o upload de ficheiros',
        'config-upload-help' => 'O upload de ficheiros expõe o seu servidor a riscos de segurança.
-Para mais informações, leia a [//www.mediawiki.org/wiki/Manual:Security secção sobre segurança] do Manual Técnico.
+Para mais informações, leia a [//www.mediawiki.org/wiki/Manual:Security seção sobre segurança] do Manual Técnico.
 
-Para permitir o upload de ficheiros, altere as permissões do subdirectório <code>images</code> no directório de raiz do MediaWik para que o servidor de internet possa escrever nele.
-Depois active esta opção.',
-       'config-upload-deleted' => 'Directório para os ficheiros apagados:',
-       'config-upload-deleted-help' => 'Escolha um directório onde serão arquivados os ficheiros apagados.
-O ideal é que este directório não possa ser directamente acedido a partir da internet.',
+Para permitir o upload de ficheiros, altere as permissões do subdiretório <code>images</code> no diretório de raiz do MediaWiki para que o servidor de internet possa escrever nele.
+Depois ative esta opção.',
+       'config-upload-deleted' => 'Diretório para os ficheiros apagados:',
+       'config-upload-deleted-help' => 'Escolha um diretório onde serão arquivados os ficheiros apagados.
+O ideal é que este diretório não possa ser diretamente acedido a partir da internet.',
        'config-logo' => 'URL do logótipo:',
        'config-logo-help' => 'O tema padrão do MediaWiki inclui espaço para um logótipo de 135x160 pixels acima do menu da barra lateral.
 Coloque na wiki uma imagem com estas dimensões e introduza aqui a URL dessa imagem.
 
 Se não pretende usar um logótipo, deixe este campo em branco.', # Fuzzy
-       'config-instantcommons' => 'Activar a funcionalidade Instant Commons',
+       'config-instantcommons' => 'Ativar Instant Commons',
        'config-instantcommons-help' => 'O [//www.mediawiki.org/wiki/InstantCommons Instant Commons] é uma funcionalidade que permite que as wikis usem imagens, áudio e outros ficheiros multimédia disponíveis no site [//commons.wikimedia.org/ Wikimedia Commons].
 Para poder usá-los, o MediaWiki necessita de acesso à internet.
 
@@ -16634,26 +16737,26 @@ Introduza o nome da licença manualmente.',
        'config-cc-again' => 'Escolha outra vez...',
        'config-cc-not-chosen' => 'Escolha a licença da Creative Commons que pretende e clique "continuar".',
        'config-advanced-settings' => 'Configuração avançada',
-       'config-cache-options' => 'Definições da cache de objectos:',
-       'config-cache-help' => 'A cache de objectos é usada para melhorar o desempenho do MediaWiki. Armazena dados usados com frequência.
-Sites de tamanho médio ou grande são altamente encorajados a activar esta funcionalidade e os sites pequenos também terão alguns benefícios em fazê-lo.',
+       'config-cache-options' => 'Configuração da cache de objetos:',
+       'config-cache-help' => 'A cache de objetos é usada para melhorar o desempenho do MediaWiki. Armazena dados usados com frequência.
+Sites de tamanho médio ou grande são altamente encorajados a ativar esta funcionalidade e os sites pequenos também terão alguns benefícios em fazê-lo.',
        'config-cache-none' => 'Sem cache (não é removida nenhuma funcionalidade, mas a velocidade de operação pode ser afectada nas wikis grandes)',
-       'config-cache-accel' => 'Cache de objectos do PHP (APC, XCache ou WinCache)',
+       'config-cache-accel' => 'Cache de objetos do PHP (APC, XCache ou WinCache)',
        'config-cache-memcached' => 'Usar Memcached (requer instalação e configurações adicionais)',
        'config-memcached-servers' => 'Servidores Memcached:',
        'config-memcached-help' => 'Lista de endereços IP que serão usados para o Memcached.
 Deve-se colocar um por linha e indicar a porta a utilizar. Por exemplo:
  127.0.0.1:11211
  192.168.1.25:1234',
-       'config-memcache-needservers' => 'Seleccionou o Memcached como tipo de chache, mas não especificou nenhum servidor.',
+       'config-memcache-needservers' => 'Selecionou o Memcached como tipo de chache, mas não especificou nenhum servidor.',
        'config-memcache-badip' => 'Introduziu um endereço IP inválido para o Memcached: $1.',
        'config-memcache-noport' => 'Não especificou a porta a usar para o servidor Memcached: $1.
 Se não sabe qual é a porta, a predefinida é a 11211.',
        'config-memcache-badport' => 'Os números das portas do Memcached devem estar entre $1 e $2.',
        'config-extensions' => 'Extensões',
-       'config-extensions-help' => 'Foi detectada a existência das extensões listadas acima, no seu directório <code>./extensions</code>.
+       'config-extensions-help' => 'Foi detectada a existência das extensões listadas acima, no seu diretório <code>./extensions</code>.
 
-Estas talvez necessitem de configurações adicionais, mas pode activá-las agora',
+Estas talvez necessitem de configurações adicionais, mas pode ativá-las agora',
        'config-install-alreadydone' => "'''Aviso:''' Parece que já instalou o MediaWiki e está a tentar instalá-lo novamente.
 Passe para a próxima página, por favor.",
        'config-install-begin' => 'Ao clicar "{{int:config-continue}}", vai iniciar a instalação do MediaWiki.
@@ -16671,7 +16774,7 @@ Certifique-se de que o utilizador "$1" pode escrever no esquema \'\'(schema)\'\'
        'config-pg-no-plpgsql' => 'É preciso instalar a linguagem PL/pgSQL na base de dados $1',
        'config-pg-no-create-privs' => 'A conta que especificou para a instalação não tem privilégios suficientes para criar uma conta.',
        'config-pg-not-in-role' => 'A conta que especificou para o utilizador da internet já existe.
-A conta que especificou para a instalação não é a de um super-utilizador e não pertence ao grupo de utilizadores de acesso pela internet, por isso não pode criar objectos que pertencem ao utilizador da internet.
+A conta que especificou para a instalação não é a de um super-utilizador e não pertence ao grupo de utilizadores de acesso pela internet, por isso não pode criar objetos que pertencem ao utilizador da internet.
 
 O MediaWiki necessita que as tabelas pertençam ao utilizador da internet. Especifique outra conta de internet, ou clique "voltar" e especifique um utilizador com os privilégios necessários para a instalação.',
        'config-install-user' => 'A criar o utilizador da base de dados',
@@ -16680,7 +16783,7 @@ O MediaWiki necessita que as tabelas pertençam ao utilizador da internet. Espec
        'config-install-user-grant-failed' => 'A atribuição das permissões ao utilizador "$1" falhou: $2',
        'config-install-user-missing' => 'O utilizador especificado, "$1", não existe.',
        'config-install-user-missing-create' => 'O utilizador especificado, "$1", não existe.
-Marque a caixa de selecção "criar conta" abaixo se pretende criá-la, por favor.',
+Marque a caixa de seleção "criar conta" abaixo se pretende criá-la, por favor.',
        'config-install-tables' => 'A criar as tabelas',
        'config-install-tables-exist' => "'''Aviso''': As tabelas do MediaWiki parecem já existir.
 A criação das tabelas será saltada.",
@@ -16696,7 +16799,7 @@ O preenchimento padrão desta tabela será saltado.",
        'config-install-subscribe-fail' => 'Não foi possível subscrever a lista mediawiki-announce: $1',
        'config-install-subscribe-notpossible' => 'cURL não está instalado e allow_url_fopen não está disponível.',
        'config-install-mainpage' => 'A criar a página principal com o conteúdo padrão.',
-       'config-install-extension-tables' => 'A criar as tabelas das extensões activadas',
+       'config-install-extension-tables' => 'A criar as tabelas das extensões ativadas',
        'config-install-mainpage-failed' => 'Não foi possível inserir a página principal: $1',
        'config-install-done' => "'''Parabéns!'''
 Terminou a instalação do MediaWiki.
@@ -16704,7 +16807,7 @@ Terminou a instalação do MediaWiki.
 O instalador gerou um ficheiro <code>LocalSettings.php</code>.
 Este ficheiro contém todas as configurações.
 
-Precisa de fazer o download do ficheiro e colocá-lo no directório de raiz da sua instalação (o mesmo directório onde está o ficheiro index.php). Este download deverá ter sido iniciado automaticamente.
+Precisa de fazer o download do ficheiro e colocá-lo no diretório de raiz da sua instalação (o mesmo diretório onde está o ficheiro index.php). Este download deverá ter sido iniciado automaticamente.
 
 Se o download não foi iniciado, ou se o cancelou, pode recomeçá-lo clicando o link abaixo:
 
@@ -17035,11 +17138,27 @@ $messages['roa-tara'] = array(
        'config-information' => "'Mbormaziune",
        'config-localsettings-key' => 'Chiave de aggiornamende:',
        'config-localsettings-badkey' => "'A chiave ca è date non g'è corrette.",
+       'config-session-error' => "Errore facenne accumenzà 'a sessione: $1",
        'config-your-language' => "'A lènga toje:",
        'config-your-language-help' => "Scacchie 'na lènghe da ausà duranne 'u processe de installazzione:",
        'config-wiki-language' => 'Lènga de Uicchi:',
+       'config-back' => '← Rrète',
+       'config-continue' => 'Condinue →',
        'config-page-language' => 'Lènghe',
+       'config-page-welcome' => "Bovègne jndr'à MediaUicchi!",
+       'config-page-dbconnect' => "Collegate a 'u database",
+       'config-page-upgrade' => "Aggiorne l'installazzione esistende",
+       'config-page-dbsettings' => "'Mbostaziune d'u database",
        'config-page-name' => 'Nome',
+       'config-page-options' => 'Opziune',
+       'config-page-install' => 'Installe',
+       'config-page-complete' => 'Combletate!',
+       'config-page-restart' => "Riavvie l'installazzione",
+       'config-page-readme' => 'Liggeme',
+       'config-page-releasenotes' => 'Note de rilasce',
+       'config-page-copying' => 'Stoche a copie',
+       'config-page-upgradedoc' => 'Aggiornamende',
+       'config-page-existingwiki' => 'Uicchi esistende',
        'config-db-type' => 'Tipe de database:',
        'config-db-charset' => "'Nzieme de carattere d'u database",
        'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 binary',
@@ -18005,7 +18124,7 @@ $1
        'config-missing-db-host' => 'Vnesti morate vrednost za »Gostitelj zbirke podatkov«',
        'config-missing-db-server-oracle' => 'Vnesti morate vrednost za »TNS zbirke podatkov«',
        'config-invalid-db-server-oracle' => 'Neveljaven TNS zbirke podatkov »$1«.
-Uporabljajte samo črke ASCII (a-z, A-Z), številke (0-9), podčrtaje (_) in pike (.).',
+Uporabite ali "ime TNS" ali niz "Easy Connect" ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Načini poimenovanja Oracle])',
        'config-invalid-db-name' => 'Neveljavno ime zbirke podatkov »$1«.
 Uporabljajte samo črke ASCII (a-z, A-Z), številke (0-9), podčrtaje (_) in vezaje (-).',
        'config-invalid-db-prefix' => 'Neveljavna predpona zbirke podatkov »$1«.
@@ -18277,6 +18396,7 @@ $messages['su'] = array(
 );
 
 /** Swedish (svenska)
+ * @author Jopparn
  * @author Skalman
  * @author WikiPhoenix
  */
@@ -18284,8 +18404,20 @@ $messages['sv'] = array(
        'config-desc' => 'Installationsprogram för MediaWiki',
        'config-title' => 'Installation av MediaWiki $1',
        'config-information' => 'Information',
+       'config-localsettings-upgrade' => 'A <code>LocalSettings.php</code>-fil har upptäckts.
+För att uppgradera den här installationen, vänligen ange värdet för <code>$wgUpgradeKey</code> i rutan nedan.
+Du hittar den i <code>LocalSettings.php</code>.',
+       'config-localsettings-cli-upgrade' => 'En <code>LocalSettings.php</code>-fil har upptäckts.
+För att uppgradera denna installation, kör <code>update.php</code> istället',
        'config-localsettings-key' => 'Uppgraderingsnyckel:',
        'config-localsettings-badkey' => 'Nyckeln du angav är inkorrekt.',
+       'config-upgrade-key-missing' => 'En nuvarande installerade av MediaWiki har upptäckts.
+För att uppgradera installationen, lägg till följande rad i slutet av din <code>LocalSettings.php</code>:
+
+$1',
+       'config-localsettings-incomplete' => 'De befintliga <code>LocalSettings.php</code> verkar vara ofullständig.
+Variabeln $1 är inte inställd.
+Ändra <code>LocalSettings.php</code> så att denna variabel är inställd och klicka på "{{int:Config-continue}}".',
        'config-session-error' => 'Fel vid uppstart av session: $1',
        'config-your-language' => 'Ditt språk:',
        'config-your-language-help' => 'Välj ett språk som ska användas under installationen.',
@@ -18326,21 +18458,50 @@ Du kan inte installera MediaWiki.',
        'config-env-php' => 'PHP $1 är installerad.',
        'config-env-php-toolow' => 'PHP $1 är installerad.
 MediaWiki kräver PHP $2 eller högre.',
+       'config-outdated-sqlite' => "'''Varning:''' du har SQLite $1, vilket är lägre än minimikravet version $2. SQLite kommer inte att vara tillgänglig.",
+       'config-register-globals' => "'''Varning: PHP:s <code>[http://php.net/register_globals register_globals]</code> tillval är aktiverat.'''
+'''Inaktivera den om du kan.'''
+MediaWiki kommer att fungera, men din server exponeras för potentiella säkerhetsluckor.",
+       'config-safe-mode' => "''' Varning:''' PHP:s [http://www.php.net/features.safe-mode felsäkert läge] är aktivt.
+Det kan orsaka problem, särskilt om du använder filöverföringar och <code>math</code>-stöd.",
+       'config-xml-bad' => 'PHP:s XML-modul saknas.
+MediaWiki kräver funktioner i denna modul och kommer inte att fungera i den här konfigurationen.
+Om du kör Mandrake, installera php-xml-paketet.',
+       'config-memory-raised' => 'PHPs <code>memory_limit</code> är $1, ökar till $2.',
+       'config-memory-bad' => "''' Varning:''' PHP:s <code>memory_limit</code> är $1.
+Detta är förmodligen för lågt.
+Installationen kan misslyckas!",
        'config-xcache' => '[http://xcache.lighttpd.net/ XCache] är installerad',
        'config-apc' => '[http://www.php.net/apc APC] är installerad',
        'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] är installerad',
        'config-diff3-bad' => 'GNU diff3 hittades inte.',
+       'config-git-bad' => 'Git-versionen av kontrollmjukvaran hittades inte.',
+       'config-no-uri' => "'''Fel:''' Kunde inte fastställa det nuvarande URI:et.
+Installationen avbröts.",
+       'config-no-cli-uri' => "'''Varning:''' inget --scriptpath är anget, med standarden: <code>$1</code> .",
        'config-using-server' => 'Använder servernamn "<nowiki>$1</nowiki>".',
        'config-using-uri' => 'Använder server-URL "<nowiki>$1$2</nowiki>".',
+       'config-no-cli-uploads-check' => "'''Varning:''' Din standardkatalog för uppladdningar (<code>$1</code>) inte är kontrollerad för sårbarhet från godtyckliga skriptkörning under CLI-installationen.",
        'config-db-type' => 'Databastyp:',
+       'config-db-host' => 'Databasvärd:',
        'config-db-wiki-settings' => 'Identifiera denna wiki',
        'config-db-name' => 'Databasnamn:',
        'config-db-name-oracle' => 'Databasschema:',
        'config-db-install-account' => 'Användarkonto för installation',
        'config-db-username' => 'Databas-användarnamn:',
        'config-db-password' => 'Databas-lösenord:',
+       'config-db-password-empty' => 'Ange ett lösenord för den nya databasanvändaren: $1.
+Även om det kan vara möjligt att skapa användare utan lösenord är det inte säkert.',
+       'config-db-account-lock' => 'Använda samma användarnamn och lösenord under normal drift',
+       'config-db-wiki-account' => 'Användarkonto för normal drift',
+       'config-db-prefix' => 'Prefix för tabellerna i databasen:',
+       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 binär',
+       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
+       'config-charset-mysql4' => 'MySQL 4.0 bakåtkompatibel UTF-8',
        'config-db-port' => 'Databasport:',
        'config-db-schema' => 'Schema för MediaWiki',
+       'config-pg-test-error' => "Kan inte ansluta till databas '''$1''': $2",
+       'config-sqlite-dir' => 'SQLite data-katalog:',
        'config-header-mysql' => 'MySQL-inställningar',
        'config-header-postgres' => 'PostgreSQL-inställningar',
        'config-header-sqlite' => 'SQLite-inställningar',
@@ -18348,6 +18509,7 @@ MediaWiki kräver PHP $2 eller högre.',
        'config-invalid-db-type' => 'Ogiltig databastyp',
        'config-missing-db-name' => 'Du måste ange ett värde för "Databasnamn"',
        'config-missing-db-host' => 'Du måste ange ett värde för "Databasvärd"',
+       'config-missing-db-server-oracle' => 'Du måste ange ett värde för "Databas TNS"',
        'config-invalid-db-name' => '"$1" är ett ogiltigt databasnamn.
 Använd bara ASCII-bokstäver (a-z, A-Z), siffror (0-9), understreck (_) och bindestreck (-).',
        'config-invalid-db-prefix' => '"$1" är ett ogiltigt databasprefix.
@@ -18357,8 +18519,17 @@ Använd bara ASCII-bokstäver (a-z, A-Z), siffror (0-9), understreck (_) och bin
 Kontrollera värden, användarnamnet och lösenordet nedan och försök igen',
        'config-invalid-schema' => '"$1" är ett ogiltigt schema för MediaWiki.
 Använd bara ASCII-bokstäver (a-z, A-Z), siffror (0-9), understreck (_) och bindestreck (-).',
+       'config-db-sys-create-oracle' => 'Installationsprogrammet stöder endast med ett SYSDBA-konto för att skapa ett nytt konto.',
        'config-db-sys-user-exists-oracle' => 'Användarkontot "$1" finns redan. SYSDBA kan endast användas för att skapa ett nytt konto!',
        'config-postgres-old' => 'PostgreSQL $1 eller senare krävs, du har $2.',
+       'config-sqlite-name-help' => 'Välja ett namn som identifierar din wiki.
+Använd inte mellanslag eller bindestreck.
+Detta kommer att användas för SQLite-data filnamnet.',
+       'config-sqlite-readonly' => 'Filen <code>$1</code> är inte skrivbar.',
+       'config-sqlite-cant-create-db' => 'Kunde inte skapa databasfilen <code>$1</code>.',
+       'config-sqlite-fts3-downgrade' => 'PHP saknar stöd för FTS3, nedgraderar tabeller',
+       'config-can-upgrade' => "Det finns MediaWiki-tabeller i den här databasen.
+För att uppgradera dem till MediaWiki $1, klicka på '''Fortsätt'''.",
        'config-upgrade-done' => "Uppgraderingen slutfördes.
 
 Du kan nu [$1 börja använda din wiki].
@@ -18368,6 +18539,8 @@ Detta '''rekommenderas inte''' om du har problem med din wiki.",
        'config-upgrade-done-no-regenerate' => 'Uppgraderingen slutfördes.
 
 Du kan nu [$1 börja använda din wiki].',
+       'config-regenerate' => 'Återskapa LocalSettings.php →',
+       'config-db-web-account' => 'Databaskonto för webbaccess',
        'config-db-web-account-same' => 'Använd samma konto som för installation',
        'config-db-web-create' => 'Skapa kontot om det inte redan finns',
        'config-mysql-engine' => 'Lagringsmotor:',
@@ -18376,6 +18549,8 @@ Du kan nu [$1 börja använda din wiki].',
        'config-site-name' => 'Namnet på wikin:',
        'config-site-name-blank' => 'Ange ett sidnamn.',
        'config-ns-generic' => 'Projekt',
+       'config-ns-site-name' => 'Samma som wikinamnet: $1',
+       'config-ns-other' => 'Annan (specificera)',
        'config-ns-invalid' => 'Den angivna namnrymden "<nowiki>$1</nowiki>" är ogiltig.
 Ange ett annat namnrymd för projektet.',
        'config-ns-conflict' => 'Den angivna namnrymden "<nowiki>$1</nowiki>" står i konflikt med en standardnamnrymd för MediaWiki.
@@ -18393,12 +18568,16 @@ Ange ett annat användarnamn.',
        'config-admin-password-same' => 'Lösenordet får inte vara samma som användarnamnet.',
        'config-admin-password-mismatch' => 'De två lösenord du uppgett överensstämmer inte med varandra.',
        'config-admin-email' => 'E-postadress:',
+       'config-admin-error-user' => 'Internt fel när du skapar en administratör med namnet "<nowiki>$1</nowiki>".',
+       'config-admin-error-password' => 'Internt fel när du väljer ett lösenord för administratören "<nowiki>$1</nowiki>": <pre>$2</pre>',
        'config-admin-error-bademail' => 'Du har angivit en felaktigt e-postadress.',
+       'config-subscribe' => 'Prenumerera på [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce e-postlistan för tillkännagivanden].',
        'config-almost-done' => 'Du är nästan färdig!
 Du kan nu hoppa över återstående konfigurationer och installera wikin nu.',
        'config-optional-continue' => 'Ställ fler frågor till mig.',
        'config-optional-skip' => 'Jag är redan uttråkad, bara installera wiki.',
        'config-profile-wiki' => 'Öppen wiki',
+       'config-profile-no-anon' => 'Kontoskapande krävs',
        'config-profile-fishbowl' => 'Endast auktoriserade redigerare',
        'config-profile-private' => 'Privat wiki',
        'config-license' => 'Upphovsrätt och licens:',
@@ -18411,31 +18590,54 @@ Du kan nu hoppa över återstående konfigurationer och installera wikin nu.',
        'config-license-pd' => 'Allmän egendom',
        'config-license-cc-choose' => 'Välj en anpassad Creative Commons-licens',
        'config-email-settings' => 'E-postinställningar',
+       'config-enable-email' => 'Aktivera utgående e-post',
+       'config-email-user' => 'Aktivera e-post mellan användare',
+       'config-email-user-help' => 'Tillåta alla användare att skicka mail till varandra om de har aktiverat det i deras preferenser.',
+       'config-email-usertalk' => 'Aktivera underrättelse för användardiskussionssidan',
        'config-email-watchlist' => 'Aktivera meddelanden för bevakningslistan',
+       'config-email-auth' => 'Aktivera autentisering via e-post',
        'config-upload-settings' => 'Bild- och filuppladdningar',
        'config-upload-enable' => 'Aktivera filöverföringar',
        'config-upload-deleted' => 'Mapp för raderade filer:',
        'config-logo' => 'Logotyp-URL:',
+       'config-instantcommons' => 'Aktivera Instant Commons',
+       'config-cc-error' => 'Creative Commons-licens-väljaren gav inget resultat.
+Ange licensnamnet manuellt.',
        'config-cc-again' => 'Välj igen...',
+       'config-cc-not-chosen' => 'Välj vilken Creative Commons-licens du vill ha och klicka på "gå vidare".',
        'config-advanced-settings' => 'Avancerad konfiguration',
        'config-extensions' => 'Tillägg',
+       'config-install-alreadydone' => "''' Varning:''' Du verkar redan ha installerat MediaWiki och försöker installera det igen.
+Vänligen fortsätt till nästa sida.",
+       'config-install-begin' => 'Genom att trycka på "{{int:config-continue}}", påbörjar du installationen av MediaWiki.
+Om du fortfarande vill göra ändringar trycker du på "{{int:config-back}}".',
        'config-install-step-done' => 'klar',
        'config-install-step-failed' => 'misslyckades',
        'config-install-database' => 'Konfigurerar databas',
        'config-install-schema' => 'Skapar schema',
+       'config-pg-no-plpgsql' => 'Du måste installera språket PL/pgSQL i databasen $1',
        'config-install-user' => 'Skapar databasanvändare',
        'config-install-user-alreadyexists' => 'Användaren "$1" finns redan',
        'config-install-user-create-failed' => 'Misslyckades att skapa användare "$1": $2',
+       'config-install-user-grant-failed' => 'Beviljandet av behörighet till användaren "$1" misslyckades: $2',
        'config-install-user-missing' => 'Den angivna användaren "$1" existerar inte.',
+       'config-install-user-missing-create' => 'Den angivna användaren "$1" existerar inte.
+Vänligen klicka på kryssrutan "skapa konto" nedan om du vill skapa den.',
        'config-install-tables' => 'Skapar tabeller',
+       'config-install-tables-exist' => "''' Varning:''' MediaWiki-tabeller verkar redan finnas.
+Hoppar över skapandet.",
+       'config-install-tables-failed' => "''' Fel:''' Skapandet av tabell misslyckades med följande fel: $1",
        'config-install-interwiki' => 'Lägger till standardtabell för interwiki',
        'config-install-interwiki-list' => 'Kunde inte läsa filen <code>interwiki.list</code>.',
        'config-install-stats' => 'Initierar statistik',
        'config-install-keys' => 'Genererar hemliga nycklar',
        'config-insecure-keys' => "'''Varning:''' {{PLURAL:$2|En säkerhetsnyckel|Säkerhetsnycklar}} ($1) som generades under installationen är inte helt {{PLURAL:$2|säker|säkra}} . Överväg att ändra {{PLURAL:$2|den|dem}} manuellt.",
        'config-install-sysop' => 'Skapar administratörskonto',
+       'config-install-subscribe-fail' => 'Det gick inte att prenumerera på mediawiki-announce: $1',
+       'config-install-subscribe-notpossible' => 'cURL är inte installerad och allow_url_fopen är inte tillgänglig.',
        'config-install-mainpage' => 'Skapa huvudsida med standardinnehåll',
        'config-install-extension-tables' => 'Skapar tabeller för aktiverade tillägg',
+       'config-install-mainpage-failed' => 'Kunde inte infoga huvudsidan: $1',
        'config-install-done' => "'''Grattis!'''
 Du har installerat MediaWiki.
 
@@ -19919,8 +20121,10 @@ $messages['ur'] = array(
 );
 
 /** Uzbek (oʻzbekcha)
+ * @author Sociologist
  */
 $messages['uz'] = array(
+       'config-admin-password-blank' => 'Administrator hisob yozuvi uchun maxfiy soʻz kiriting.',
        'mainpagetext' => "'''MediaWiki muvaffaqiyatli o'rnatildi.'''",
        'mainpagedocfooter' => "Wiki dasturini ishlatish haqida ma'lumot olish uchun  [//meta.wikimedia.org/wiki/Help:Contents Foydalanuvchi qo'llanmasi] sahifasiga murojaat qiling.
 
@@ -20600,6 +20804,7 @@ $3
 /** Traditional Chinese (中文(繁體)‎)
  * @author Anthony Fok
  * @author Hzy980512
+ * @author Justincheng12345
  * @author Liangent
  * @author Mark85296341
  * @author Simon Shek
@@ -20702,6 +20907,8 @@ $1',
 Object caching is not enabled.",
        'config-mod-security' => "'''警告''':您的服務器已啟動[http://modsecurity.org/ mod_security]。若其配置錯誤, 會導致MediaWiki和其他軟件的錯誤並允許用戶任意發布內容。如果您遇到任何錯誤,請查閱[http://modsecurity.org/documentation/ mod_security文檔]或聯繫您的客服。",
        'config-diff3-bad' => '找不到GNU diff3。',
+       'config-git' => '發現Git版本控制軟件:<code>$1</code>。',
+       'config-git-bad' => '無法找到Git版本控制軟件。',
        'config-imagemagick' => '已找到ImageMagick:<code>$1</code>。如果你啟用了上傳功能,縮略圖功能也將被啟用。',
        'config-gd' => '已找到內建的GD圖形庫。如果你啟用了上傳功能,縮略圖功能也將被啟用。',
        'config-no-scaling' => '找不到GD庫或ImageMagick。縮略圖功能將不可用。',
@@ -20793,7 +21000,8 @@ $1
        'config-missing-db-name' => '您必須為“數據庫名稱”輸入內容',
        'config-missing-db-host' => '您必須為“數據庫主機”輸入內容',
        'config-missing-db-server-oracle' => '您必須為“數據庫透明網絡底層(TNS)”輸入內容',
-       'config-invalid-db-server-oracle' => '無效的數據庫TNS“$1”。請只使用ASCII字母(a-z、A-Z)、數字(0-9)、下劃線(_)和點號(.)。',
+       'config-invalid-db-server-oracle' => '無效的數據庫TNS「$1」。
+請只使用「TNS Name」或「Easy Connect」 字串([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Oracle命名法])',
        'config-invalid-db-name' => '無效的數據庫名稱“$1”。請只使用ASCII字母(a-z、A-Z)、數字(0-9)、下劃線(_)和連字號(-)。',
        'config-invalid-db-prefix' => '無效的數據庫前綴“$1”。請只使用ASCII字母(a-z、A-Z)、數字(0-9)、下劃線(_)和連字號(-)。',
        'config-connection-error' => '$1。
index b1517e4..8362772 100644 (file)
@@ -1075,22 +1075,16 @@ abstract class Installer {
        }
 
        /**
-        * Checks if suhosin.get.max_value_length is set, and if so, sets
-        * $wgResourceLoaderMaxQueryLength to that value in the generated
-        * LocalSettings file
+        * Checks if suhosin.get.max_value_length is set, and if so generate
+        * a warning because it decreases ResourceLoader performance.
         * @return bool
         */
        protected function envCheckSuhosinMaxValueLength() {
                $maxValueLength = ini_get( 'suhosin.get.max_value_length' );
-               if ( $maxValueLength > 0 ) {
-                       if ( $maxValueLength < 1024 ) {
-                               # Only warn if the value is below the sane 1024
-                               $this->showMessage( 'config-suhosin-max-value-length', $maxValueLength );
-                       }
-               } else {
-                       $maxValueLength = -1;
+               if ( $maxValueLength > 0 &&  $maxValueLength < 1024 ) {
+                       // Only warn if the value is below the sane 1024
+                       $this->showMessage( 'config-suhosin-max-value-length', $maxValueLength );
                }
-               $this->setVar( 'wgResourceLoaderMaxQueryLength', $maxValueLength );
                return true;
        }
 
index 3a9bfe8..cca8a4a 100644 (file)
@@ -349,12 +349,6 @@ if ( !defined( 'MEDIAWIKI' ) ) {
 # Path to the GNU diff3 utility. Used for conflict resolution.
 \$wgDiff3 = \"{$this->values['wgDiff3']}\";
 
-# Query string length limit for ResourceLoader. You should only set this if
-# your web server has a query string length limit (then set it to that limit),
-# or if you have suhosin.get.max_value_length set in php.ini (then set it to
-# that value)
-\$wgResourceLoaderMaxQueryLength = {$this->values['wgResourceLoaderMaxQueryLength']};
-
 {$groupRights}";
        }
 
index e85d07f..e34bed3 100644 (file)
@@ -86,7 +86,7 @@ class OracleInstaller extends DatabaseInstaller {
                $status = Status::newGood();
                if ( !strlen( $newValues['wgDBserver'] ) ) {
                        $status->fatal( 'config-missing-db-server-oracle' );
-               } elseif ( !preg_match( '/^[a-zA-Z0-9_\.]+$/', $newValues['wgDBserver'] ) ) {
+               } elseif ( !self::checkConnectStringFormat( $newValues['wgDBserver'] ) ) {
                        $status->fatal( 'config-invalid-db-server-oracle', $newValues['wgDBserver'] );
                }
                if ( !preg_match( '/^[a-zA-Z0-9_]*$/', $newValues['wgDBprefix'] ) ) {
@@ -296,4 +296,24 @@ class OracleInstaller extends DatabaseInstaller {
 ";
        }
 
+       /**
+        * Function checks the format of Oracle connect string
+        * The actual validity of the string is checked by attempting to connect
+        *
+        * Regex should be able to validate all connect string formats
+        * [//](host|tns_name)[:port][/service_name][:POOLED]
+        * http://www.orafaq.com/wiki/EZCONNECT
+        *
+        * @since 1.22
+        *
+        * @param string $connect_string
+        *
+        * @return bool Whether the connection string is valid.
+        */
+       public static function checkConnectStringFormat( $connect_string ) {
+               $isValid  = preg_match( '/^[[:alpha:]][\w\-]*(?:\.[[:alpha:]][\w\-]*){0,2}$/', $connect_string ); // TNS name
+               $isValid |= preg_match( '/^(?:\/\/)?[\w\-\.]+(?::[\d]+)?(?:\/(?:[\w\-\.]+(?::(pooled|dedicated|shared))?)?(?:\/[\w\-\.]+)?)?$/', $connect_string ); // EZConnect
+               return (bool)$isValid;
+       }
+
 }
index 56d9f21..be10e04 100644 (file)
@@ -205,7 +205,9 @@ class OracleUpdater extends DatabaseUpdater {
 
                $meta = $this->db->query( 'SELECT column_name FROM all_cons_columns WHERE owner = \'' .
                        strtoupper( $this->db->getDBname() ) .
-                       '\' AND constraint_name = \'MW_PAGE_RESTRICTIONS_PK\' AND rownum = 1'
+                       '\' AND constraint_name = \'' .
+                       $this->db->tablePrefix() .
+                       'PAGE_RESTRICTIONS_PK\' AND rownum = 1'
                );
                $row = $meta->fetchRow();
                if ( $row['column_name'] == 'PR_ID' ) {
index 8a9fc2d..6ac1912 100644 (file)
@@ -1254,8 +1254,8 @@ class WebInstaller_Complete extends WebInstallerPage {
                $lsUrl = $this->getVar( 'wgServer' ) . $this->parent->getURL( array( 'localsettings' => 1 ) );
                if ( isset( $_SERVER['HTTP_USER_AGENT'] ) &&
                         strpos( $_SERVER['HTTP_USER_AGENT'], 'MSIE' ) !== false ) {
-                       // JS appears the only method that works consistently with IE7+
-                       $this->addHtml( "\n<script>jQuery( document ).ready( function () { document.location = " .
+                       // JS appears to be the only method that works consistently with IE7+
+                       $this->addHtml( "\n<script>jQuery( function () { document.location = " .
                                Xml::encodeJsVar( $lsUrl ) . "; } );</script>\n" );
                } else {
                        $this->parent->request->response()->header( "Refresh: 0;url=$lsUrl" );
index 3295c24..aa47432 100644 (file)
@@ -597,7 +597,7 @@ abstract class JobQueue {
        /**
         * Get an iterator to traverse over all available jobs in this queue.
         * This does not include jobs that are currently acquired or delayed.
-        * This should only be called on a queue that is no longer being popped.
+        * Note: results may be stale if the queue is concurrently modified.
         *
         * @return Iterator
         * @throws MWException
@@ -606,7 +606,7 @@ abstract class JobQueue {
 
        /**
         * Get an iterator to traverse over all delayed jobs in this queue.
-        * This should only be called on a queue that is no longer being popped.
+        * Note: results may be stale if the queue is concurrently modified.
         *
         * @return Iterator
         * @throws MWException
index 1f5b761..939fa42 100644 (file)
@@ -519,7 +519,8 @@ LUA;
                                $conn->lRange( $this->getQueueKey( 'l-unclaimed' ), 0, -1 ),
                                function( $uid ) use ( $that, $conn ) {
                                        return $that->getJobFromUidInternal( $uid, $conn );
-                               }
+                               },
+                               array( 'accept' => function ( $job ) { return is_object( $job ); } )
                        );
                } catch ( RedisException $e ) {
                        $this->throwRedisException( $this->server, $conn, $e );
@@ -538,7 +539,8 @@ LUA;
                                $conn->zRange( $this->getQueueKey( 'z-delayed' ), 0, -1 ),
                                function( $uid ) use ( $that, $conn ) {
                                        return $that->getJobFromUidInternal( $uid, $conn );
-                               }
+                               },
+                               array( 'accept' => function ( $job ) { return is_object( $job ); } )
                        );
                } catch ( RedisException $e ) {
                        $this->throwRedisException( $this->server, $conn, $e );
@@ -550,11 +552,15 @@ LUA;
         *
         * @param $uid string
         * @param $conn RedisConnRef
-        * @return Job
+        * @return Job|bool Returns false if the job does not exist
         * @throws MWException
         */
        public function getJobFromUidInternal( $uid, RedisConnRef $conn ) {
                try {
+                       $data = $conn->hGet( $this->getQueueKey( 'h-data' ), $uid );
+                       if ( $data === false ) {
+                               return false; // not found
+                       }
                        $item = $this->unserialize( $conn->hGet( $this->getQueueKey( 'h-data' ), $uid ) );
                        if ( !is_array( $item ) ) { // this shouldn't happen
                                throw new MWException( "Could not find job with ID '$uid'." );
index 4fe1753..6237e56 100644 (file)
@@ -42,6 +42,15 @@ class AssembleUploadChunksJob extends Job {
                                return false;
                        }
 
+                       if ( count( $_SESSION ) === 0 ) {
+                               // Empty session probably indicates that we didn't associate
+                               // with the session correctly. Note that being able to load
+                               // the user does not necessarily mean the session was loaded.
+                               // Most likely cause by suhosin.session.encrypt = On.
+                               $this->setLastError( "Error associating with user session. Try setting suhosin.session.encrypt = Off" );
+                               return false;
+                       }
+
                        UploadBase::setSessionStatus(
                                $this->params['filekey'],
                                array( 'result' => 'Poll', 'stage' => 'assembling', 'status' => Status::newGood() )
index 5114dc0..5a24f93 100644 (file)
@@ -42,6 +42,16 @@ class PublishStashedFileJob extends Job {
                                return false;
                        }
 
+                       if ( count( $_SESSION ) === 0 ) {
+                               // Empty session probably indicates that we didn't associate
+                               // with the session correctly. Note that being able to load
+                               // the user does not necessarily mean the session was loaded.
+                               // Most likely cause by suhosin.session.encrypt = On.
+                               $this->setLastError( "Error associating with user session. Try setting suhosin.session.encrypt = Off" );
+                               return false;
+                       }
+
+
                        UploadBase::setSessionStatus(
                                $this->params['filekey'],
                                array( 'result' => 'Poll', 'stage' => 'publish', 'status' => Status::newGood() )
index f17a1a1..91e1e87 100644 (file)
@@ -30,7 +30,7 @@ class FormatJson {
         * This encoding option saves 3 to 8 bytes (uncompressed) for each such character;
         * however, it could break compatibility with systems that incorrectly handle UTF-8.
         *
-        * @since 1.21
+        * @since 1.22
         */
        const UTF8_OK = 1;
 
@@ -42,7 +42,7 @@ class FormatJson {
         * - HTML5, §4.3.1.2 Restrictions for contents of script elements
         * - XML 1.0 (5th Ed.), §2.4 Character Data and Markup
         *
-        * @since 1.21
+        * @since 1.22
         */
        const XMLMETA_OK = 2;
 
@@ -51,7 +51,7 @@ class FormatJson {
         *
         * @warning When generating inline script blocks, use FormatJson::UTF8_OK instead.
         *
-        * @since 1.21
+        * @since 1.22
         */
        const ALL_OK = 3;
 
@@ -80,7 +80,7 @@ class FormatJson {
         * @note Empty arrays are encoded as numeric arrays, not as objects, so cast any associative
         *       array that might be empty to an object before encoding it.
         *
-        * @note In pre-1.21 versions of MediaWiki, using this function for generating inline script
+        * @note In pre-1.22 versions of MediaWiki, using this function for generating inline script
         *       blocks may result in an XSS vulnerability, and quite likely will in XML documents
         *       (cf. FormatJson::XMLMETA_OK). Use Xml::encodeJsVar() instead in such cases.
         *
index fb1e9a4..128d9b9 100644 (file)
@@ -76,6 +76,7 @@ class CSSJanus {
                'cursor_west' => null,
                'four_notation_quantity' => null,
                'four_notation_color' => null,
+               'border_radius' => null,
                'bg_horizontal_percentage' => null,
                'bg_horizontal_percentage_x' => null,
        );
@@ -96,9 +97,9 @@ class CSSJanus {
                $patterns['ident'] = "-?{$patterns['nmstart']}{$patterns['nmchar']}*";
                $patterns['quantity'] = "{$patterns['num']}(?:\s*{$patterns['unit']}|{$patterns['ident']})?";
                $patterns['possibly_negative_quantity'] = "((?:-?{$patterns['quantity']})|(?:inherit|auto))";
-               $patterns['color'] = "(#?{$patterns['nmchar']}+)";
+               $patterns['color'] = "(#?{$patterns['nmchar']}+|(?:rgba?|hsla?)\([ \d.,%-]+\))";
                $patterns['url_chars'] = "(?:{$patterns['url_special_chars']}|{$patterns['nonAscii']}|{$patterns['escape']})*";
-               $patterns['lookahead_not_open_brace'] = "(?!({$patterns['nmchar']}|\r?\n|\s|#|\:|\.|\,|\+|>)*?{)";
+               $patterns['lookahead_not_open_brace'] = "(?!({$patterns['nmchar']}|\r?\n|\s|#|\:|\.|\,|\+|>|\(|\))*?{)";
                $patterns['lookahead_not_closing_paren'] = "(?!{$patterns['url_chars']}?{$patterns['valid_after_uri_chars']}\))";
                $patterns['lookahead_for_closing_paren'] = "(?={$patterns['url_chars']}?{$patterns['valid_after_uri_chars']}\))";
                $patterns['noflip_single'] = "/({$patterns['noflip_annotation']}{$patterns['lookahead_not_open_brace']}[^;}]+;?)/i";
@@ -113,8 +114,9 @@ class CSSJanus {
                $patterns['rtl_in_url'] = "/{$patterns['lookbehind_not_letter']}(rtl){$patterns['lookahead_for_closing_paren']}/i";
                $patterns['cursor_east'] = "/{$patterns['lookbehind_not_letter']}([ns]?)e-resize/";
                $patterns['cursor_west'] = "/{$patterns['lookbehind_not_letter']}([ns]?)w-resize/";
-               $patterns['four_notation_quantity'] = "/{$patterns['possibly_negative_quantity']}(\s+){$patterns['possibly_negative_quantity']}(\s+){$patterns['possibly_negative_quantity']}(\s+){$patterns['possibly_negative_quantity']}/i";
-               $patterns['four_notation_color'] = "/(-color\s*:\s*){$patterns['color']}(\s+){$patterns['color']}(\s+){$patterns['color']}(\s+){$patterns['color']}/i";
+               $patterns['four_notation_quantity'] = "/(:\s*){$patterns['possibly_negative_quantity']}(\s+){$patterns['possibly_negative_quantity']}(\s+){$patterns['possibly_negative_quantity']}(\s+){$patterns['possibly_negative_quantity']}(\s*[;}])/i";
+               $patterns['four_notation_color'] = "/(-color\s*:\s*){$patterns['color']}(\s+){$patterns['color']}(\s+){$patterns['color']}(\s+){$patterns['color']}(\s*[;}])/i";
+               $patterns['border_radius'] = "/(border-radius\s*:\s*){$patterns['possibly_negative_quantity']}(\s+){$patterns['possibly_negative_quantity']}(\s+){$patterns['possibly_negative_quantity']}(\s+){$patterns['possibly_negative_quantity']}(\s*[;}])/i";
                // The two regexes below are parenthesized differently then in the original implementation to make the
                // callback's job more straightforward
                $patterns['bg_horizontal_percentage'] = "/(background(?:-position)?\s*:\s*[^%]*?)(-?{$patterns['num']})(%\s*(?:{$patterns['quantity']}|{$patterns['ident']}))/";
@@ -160,6 +162,7 @@ class CSSJanus {
                $css = self::fixLeftAndRight( $css );
                $css = self::fixCursorProperties( $css );
                $css = self::fixFourPartNotation( $css );
+               $css = self::fixBorderRadius( $css );
                $css = self::fixBackgroundPosition( $css );
 
                // Detokenize stuff we tokenized before
@@ -257,8 +260,24 @@ class CSSJanus {
         * @return string
         */
        private static function fixFourPartNotation( $css ) {
-               $css = preg_replace( self::$patterns['four_notation_quantity'], '$1$2$7$4$5$6$3', $css );
-               $css = preg_replace( self::$patterns['four_notation_color'], '$1$2$3$8$5$6$7$4', $css );
+               $css = preg_replace( self::$patterns['four_notation_quantity'], '$1$2$3$8$5$6$7$4$9', $css );
+               $css = preg_replace( self::$patterns['four_notation_color'], '$1$2$3$8$5$6$7$4$9', $css );
+
+               return $css;
+       }
+
+       /**
+        * Swaps appropriate corners in four-part border-radius rules.
+        * Needs to undo the effect of fixFourPartNotation() on those rules, too.
+        *
+        * @param $css string
+        * @return string
+        */
+       private static function fixBorderRadius( $css ) {
+               // Undo four_notation_quantity
+               $css = preg_replace( self::$patterns['border_radius'], '$1$2$3$8$5$6$7$4$9', $css );
+               // Do the real thing
+               $css = preg_replace( self::$patterns['border_radius'], '$1$4$3$2$5$8$7$6$9', $css );
 
                return $css;
        }
index 78d8180..4f626b2 100644 (file)
@@ -26,7 +26,7 @@
 class HttpStatus {
 
        /**
-        * Get the message associed with the HTTP response code $code
+        * Get the message associated with HTTP response code $code
         *
         * Replace OutputPage::getStatusMessage( $code )
         *
index ef9a2d4..44334ba 100644 (file)
@@ -20,7 +20,7 @@
  * @file
  * @author Niklas Laxström
  * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
- * @since 1.21
+ * @since 1.22
  */
 
 /**
index b99f16b..16b72ea 100644 (file)
@@ -334,6 +334,7 @@ class ManualLogEntry extends LogEntryBase {
        protected $type; ///!< @var string
        protected $subtype; ///!< @var string
        protected $parameters = array(); ///!< @var array
+       protected $relations = array(); ///!< @var array
        protected $performer; ///!< @var User
        protected $target; ///!< @var Title
        protected $timestamp; ///!< @var string
@@ -373,6 +374,17 @@ class ManualLogEntry extends LogEntryBase {
                $this->parameters = $parameters;
        }
 
+       /**
+        * Declare arbitrary tag/value relations to this log entry.
+        * These can be used to filter log entries later on.
+        *
+        * @param array Map of (tag => (list of values))
+        * @since 1.22
+        */
+       public function setRelations( array $relations ) {
+               $this->relations = $relations;
+       }
+
        /**
         * Set the user that performed the action being logged.
         *
@@ -430,12 +442,13 @@ class ManualLogEntry extends LogEntryBase {
 
        /**
         * Inserts the entry into the logging table.
+        * @param IDatabase $dbw
         * @return int If of the log entry
         */
-       public function insert() {
+       public function insert( IDatabase $dbw = null ) {
                global $wgContLang;
 
-               $dbw = wfGetDB( DB_MASTER );
+               $dbw = $dbw ?: wfGetDB( DB_MASTER );
                $id = $dbw->nextSequenceValue( 'logging_log_id_seq' );
 
                if ( $this->timestamp === null ) {
@@ -463,6 +476,24 @@ class ManualLogEntry extends LogEntryBase {
                );
                $dbw->insert( 'logging', $data, __METHOD__ );
                $this->id = !is_null( $id ) ? $id : $dbw->insertId();
+
+               $rows = array();
+               foreach ( $this->relations as $tag => $values ) {
+                       if ( !strlen( $tag ) ) {
+                               throw new MWException( "Got empty log search tag." );
+                       }
+                       foreach ( $values as $value ) {
+                               $rows[] = array(
+                                       'ls_field'  => $tag,
+                                       'ls_value'  => $value,
+                                       'ls_log_id' => $this->id
+                               );
+                       }
+               }
+               if ( count( $rows ) ) {
+                       $dbw->insert( 'log_search', $rows, __METHOD__, 'IGNORE' );
+               }
+
                return $this->id;
        }
 
index 9d6ab25..cc473c1 100644 (file)
@@ -262,7 +262,7 @@ class LogPage {
                                        // User suppression
                                        if ( preg_match( '/^(block|suppress)\/(block|reblock)$/', $key ) ) {
                                                if ( $skin ) {
-                                                       $params[1] = '<span class="blockExpiry" dir="ltr" title="' . htmlspecialchars( $params[1] ) . '">' .
+                                                       $params[1] = '<span class="blockExpiry" title="&lrm;' . htmlspecialchars( $params[1] ) . '">' .
                                                                $wgLang->translateBlockExpiry( $params[1] ) . '</span>';
                                                } else {
                                                        $params[1] = $wgContLang->translateBlockExpiry( $params[1] );
@@ -518,17 +518,17 @@ class LogPage {
         * @return String
         */
        public static function formatBlockFlags( $flags, $lang ) {
-               $flags = explode( ',', trim( $flags ) );
+               $flags = trim( $flags );
+               if ( $flags === '' ) {
+                       return ''; //nothing to do
+               }
+               $flags = explode( ',', $flags );
 
-               if ( count( $flags ) > 0 ) {
-                       for ( $i = 0; $i < count( $flags ); $i++ ) {
-                               $flags[$i] = self::formatBlockFlag( $flags[$i], $lang );
-                       }
-                       return wfMessage( 'parentheses' )->inLanguage( $lang )
-                               ->rawParams( $lang->commaList( $flags ) )->escaped();
-               } else {
-                       return '';
+               for ( $i = 0; $i < count( $flags ); $i++ ) {
+                       $flags[$i] = self::formatBlockFlag( $flags[$i], $lang );
                }
+               return wfMessage( 'parentheses' )->inLanguage( $lang )
+                       ->rawParams( $lang->commaList( $flags ) )->escaped();
        }
 
        /**
index 589b1ba..0978f97 100644 (file)
@@ -20,7 +20,7 @@
  * @file
  * @author Niklas Laxström
  * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
- * @since 1.21
+ * @since 1.22
  */
 
 /**
index ed37b6a..602728b 100644 (file)
@@ -20,7 +20,7 @@
  * @file
  * @author Niklas Laxström
  * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
- * @since 1.21
+ * @since 1.22
  */
 
 /**
index 911fffc..bb76d5a 100644 (file)
@@ -38,6 +38,13 @@ class PatrolLog {
         * @return bool
         */
        public static function record( $rc, $auto = false, User $user = null ) {
+               global $wgLogAutopatrol;
+
+               // do not log autopatrolled edits if setting disables it
+               if ( $auto && !$wgLogAutopatrol ) {
+                       return false;
+               }
+
                if ( !$rc instanceof RecentChange ) {
                        $rc = RecentChange::newFromId( $rc );
                        if ( !is_object( $rc ) ) {
index 74ab196..507039b 100644 (file)
@@ -20,7 +20,7 @@
  * @file
  * @author Niklas Laxström
  * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
- * @since 1.21
+ * @since 1.22
  */
 
 /**
index 67bd4d0..d3daf6e 100644 (file)
@@ -20,7 +20,7 @@
  * @file
  * @author Alexandre Emsenhuber
  * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
- * @since 1.21
+ * @since 1.22
  */
 
 /**
index b368906..2e8d41d 100644 (file)
@@ -78,7 +78,7 @@ abstract class MediaHandler {
        /**
         * Merge a parameter array into a string appropriate for inclusion in filenames
         *
-        * @param $params array
+        * @param $params array Array of parameters that have been through normaliseParams.
         */
        abstract function makeParamString( $params );
 
@@ -220,6 +220,7 @@ abstract class MediaHandler {
         * @param string $dstPath filesystem destination path
         * @param string $dstUrl destination URL to use in output HTML
         * @param array $params arbitrary set of parameters validated by $this->validateParam()
+        *   Note: These parameters have *not* gone through $this->normaliseParams()
         * @param $flags Integer: a bitfield, may contain self::TRANSFORM_LATER
         *
         * @return MediaTransformOutput
@@ -228,6 +229,10 @@ abstract class MediaHandler {
 
        /**
         * Get the thumbnail extension and MIME type for a given source MIME type
+        *
+        * @param String $ext Extension of original file
+        * @param String $mime Mime type of original file
+        * @param Array $params Handler specific rendering parameters
         * @return array thumbnail extension and MIME type
         */
        function getThumbType( $ext, $mime, $params = null ) {
@@ -327,18 +332,28 @@ abstract class MediaHandler {
         * Get an associative array of page dimensions
         * Currently "width" and "height" are understood, but this might be
         * expanded in the future.
-        * Returns false if unknown or if the document is not multi-page.
+        * Returns false if unknown.
+        *
+        * It is expected that handlers for paged media (e.g. DjVuHandler)
+        * will override this method so that it gives the correct results
+        * for each specific page of the file, using the $page argument.
+        *
+        * @note For non-paged media, use getImageSize.
         *
         * @param $image File
-        * @param $page Unused, left for backcompatibility?
-        * @return array
+        * @param $page What page to get dimensions of
+        * @return array|bool
         */
        function getPageDimensions( $image, $page ) {
                $gis = $this->getImageSize( $image, $image->getLocalRefPath() );
-               return array(
-                       'width' => $gis[0],
-                       'height' => $gis[1]
-               );
+               if ( $gis ) {
+                       return array(
+                               'width' => $gis[0],
+                               'height' => $gis[1]
+                       );
+               } else {
+                       return false;
+               }
        }
 
        /**
@@ -475,6 +490,8 @@ abstract class MediaHandler {
        }
 
        /**
+        * Used instead of getLongDesc if there is no handler registered for file.
+        *
         * @param $file File
         * @return string
         */
@@ -484,6 +501,8 @@ abstract class MediaHandler {
        }
 
        /**
+        * Short description. Shown on Special:Search results.
+        *
         * @param $file File
         * @return string
         */
@@ -494,6 +513,8 @@ abstract class MediaHandler {
        }
 
        /**
+        * Long description. Shown under image on image description page surounded by ().
+        *
         * @param $file File
         * @return string
         */
@@ -503,6 +524,8 @@ abstract class MediaHandler {
        }
 
        /**
+        * Used instead of getShortDesc if there is no handler registered for file.
+        *
         * @param $file File
         * @return string
         */
@@ -530,12 +553,25 @@ abstract class MediaHandler {
                }
        }
 
+       /**
+        * Shown in file history box on image description page.
+        *
+        * @param File $file
+        * @return String Dimensions
+        */
        function getDimensionsString( $file ) {
                return '';
        }
 
        /**
-        * Modify the parser object post-transform
+        * Modify the parser object post-transform.
+        *
+        * This is often used to do $parser->addOutputHook(),
+        * in order to add some javascript to render a viewer.
+        * See TimedMediaHandler or OggHandler for an example.
+        *
+        * @param Parser $parser
+        * @param File $file
         */
        function parserTransformHook( $parser, $file ) {}
 
@@ -583,10 +619,17 @@ abstract class MediaHandler {
        }
 
        /**
-        * Remove files from the purge list
+        * Remove files from the purge list.
+        *
+        * This is used by some video handlers to prevent ?action=purge
+        * from removing a transcoded video, which is expensive to
+        * regenerate.
+        *
+        * @see LocalFile::purgeThumbnails
         *
         * @param array $files
-        * @param array $options
+        * @param array $options Purge options. Currently will always be
+        *  an array with a single key 'forThumbRefresh' set to true.
         */
        public function filterThumbnailPurgeList( &$files, $options ) {
                // Do nothing
index 1d197b1..8632399 100644 (file)
@@ -32,7 +32,7 @@ abstract class MediaTransformOutput {
         */
        var $file;
 
-       var $width, $height, $url, $page, $path;
+       var $width, $height, $url, $page, $path, $lang;
 
        /**
         * @var array Associative array mapping optional supplementary image files
@@ -197,17 +197,26 @@ abstract class MediaTransformOutput {
 
        /**
         * @param $title string
-        * @param $params array
+        * @param $params string|array Query parameters to add
         * @return array
         */
-       public function getDescLinkAttribs( $title = null, $params = '' ) {
-               $query = '';
+       public function getDescLinkAttribs( $title = null, $params = array() ) {
+               if ( is_array( $params ) ) {
+                       $query = $params;
+               } else {
+                       $query = array();
+               }
                if ( $this->page && $this->page !== 1 ) {
-                       $query = 'page=' . urlencode( $this->page );
+                       $query['page'] = $this->page;
                }
-               if ( $params ) {
-                       $query .= $query ? '&' . $params : $params;
+               if( $this->lang ) {
+                       $query['lang'] = $this->lang;
                }
+
+               if ( is_string( $params ) && $params !== '' ) {
+                       $query = $params . '&' . wfArrayToCgi( $query );
+               }
+
                $attribs = array(
                        'href' => $this->file->getTitle()->getLocalURL( $query ),
                        'class' => 'image',
@@ -242,10 +251,12 @@ class ThumbnailImage extends MediaTransformOutput {
                # Previous parameters:
                #   $file, $url, $width, $height, $path = false, $page = false
 
+               $defaults = array(
+                       'page' => false,
+                       'lang' => false
+               );
+
                if ( is_array( $parameters ) ) {
-                       $defaults = array(
-                               'page' => false
-                       );
                        $actualParams = $parameters + $defaults;
                } else {
                        # Using old format, should convert. Later a warning could be added here.
@@ -254,7 +265,7 @@ class ThumbnailImage extends MediaTransformOutput {
                                'width' => $path,
                                'height' => $parameters,
                                'page' => ( $numArgs > 5 ) ? func_get_arg( 5 ) : false
-                       );
+                       ) + $defaults;
                        $path = ( $numArgs > 4 ) ? func_get_arg( 4 ) : false;
                }
 
@@ -269,6 +280,7 @@ class ThumbnailImage extends MediaTransformOutput {
                $this->height = round( $actualParams['height'] );
 
                $this->page = $actualParams['page'];
+               $this->lang = $actualParams['lang'];
        }
 
        /**
index a133f6f..f0356f5 100644 (file)
@@ -115,6 +115,7 @@ class SvgHandler extends ImageHandler {
                $clientHeight = $params['height'];
                $physicalWidth = $params['physicalWidth'];
                $physicalHeight = $params['physicalHeight'];
+               $lang = isset( $params['lang'] ) ? $params['lang'] : 'en';
 
                if ( $flags & self::TRANSFORM_LATER ) {
                        return new ThumbnailImage( $image, $dstUrl, $dstPath, $params );
@@ -132,7 +133,7 @@ class SvgHandler extends ImageHandler {
                }
 
                $srcPath = $image->getLocalRefPath();
-               $status = $this->rasterize( $srcPath, $dstPath, $physicalWidth, $physicalHeight );
+               $status = $this->rasterize( $srcPath, $dstPath, $physicalWidth, $physicalHeight, $lang );
                if ( $status === true ) {
                        return new ThumbnailImage( $image, $dstUrl, $dstPath, $params );
                } else {
@@ -147,10 +148,11 @@ class SvgHandler extends ImageHandler {
         * @param string $dstPath
         * @param string $width
         * @param string $height
+        * @param string $lang Language code of the language to render the SVG in
         * @throws MWException
         * @return bool|MediaTransformError
         */
-       public function rasterize( $srcPath, $dstPath, $width, $height ) {
+       public function rasterize( $srcPath, $dstPath, $width, $height, $lang = false ) {
                global $wgSVGConverters, $wgSVGConverter, $wgSVGConverterPath;
                $err = false;
                $retval = '';
@@ -158,7 +160,7 @@ class SvgHandler extends ImageHandler {
                        if ( is_array( $wgSVGConverters[$wgSVGConverter] ) ) {
                                // This is a PHP callable
                                $func = $wgSVGConverters[$wgSVGConverter][0];
-                               $args = array_merge( array( $srcPath, $dstPath, $width, $height ),
+                               $args = array_merge( array( $srcPath, $dstPath, $width, $height, $lang ),
                                        array_slice( $wgSVGConverters[$wgSVGConverter], 1 ) );
                                if ( !is_callable( $func ) ) {
                                        throw new MWException( "$func is not callable" );
@@ -176,9 +178,15 @@ class SvgHandler extends ImageHandler {
                                                wfEscapeShellArg( $dstPath ) ),
                                        $wgSVGConverters[$wgSVGConverter]
                                ) . " 2>&1";
+
+                               $env = array();
+                               if( $lang !== false ) {
+                                       $env['LANG'] = $lang;
+                               }
+
                                wfProfileIn( 'rsvg' );
                                wfDebug( __METHOD__ . ": $cmd\n" );
-                               $err = wfShellExec( $cmd, $retval );
+                               $err = wfShellExec( $cmd, $retval, $env );
                                wfProfileOut( 'rsvg' );
                        }
                }
@@ -357,4 +365,68 @@ class SvgHandler extends ImageHandler {
                }
                return $result;
        }
+
+
+       /**
+        * @param string $name Parameter name
+        * @param $string $value Parameter value
+        * @return bool Validity
+        */
+       function validateParam( $name, $value ) {
+               if ( in_array( $name, array( 'width', 'height' ) ) ) {
+                       // Reject negative heights, widths
+                       return ( $value > 0 );
+               } elseif( $name == 'lang' ) {
+                       // Validate $code
+                       if( !Language::isValidBuiltinCode( $value ) ) {
+                               wfDebug( "Invalid user language code\n" );
+                               return false;
+                       }
+                       return true;
+               }
+               // Only lang, width and height are acceptable keys
+               return false;
+       }
+
+       /**
+        * @param array $params name=>value pairs of parameters
+        * @return string Filename to use
+        */
+       function makeParamString( $params ) {
+               $lang = '';
+               if( isset( $params['lang'] ) && $params['lang'] !== 'en' ) {
+                       $params['lang'] = mb_strtolower( $params['lang'] );
+                       $lang = "lang{$params['lang']}-";
+               }
+               if ( !isset( $params['width'] ) ) {
+                       return false;
+               }
+               return "$lang{$params['width']}px";
+       }
+
+       function parseParamString( $str ) {
+               $m = false;
+               if ( preg_match( '/^lang([a-z]+(?:-[a-z]+)*)-(\d+)px$/', $str, $m ) ) {
+                       return array( 'width' => array_pop( $m ), 'lang' => $m[1] );
+               } elseif( preg_match( '/^(\d+)px$/', $str, $m ) ) {
+                       return array( 'width' => $m[1], 'lang' => 'en' );
+               } else {
+                       return false;
+               }
+       }
+
+       function getParamMap() {
+               return array( 'img_lang' => 'lang', 'img_width' => 'width' );
+       }
+
+       /**
+        * @param $params
+        * @return array
+        */
+       function getScriptParams( $params ) {
+               return array(
+                       'width' => $params['width'],
+                       'lang' => $params['lang'],
+               );
+       }
 }
index 99e749b..0f718d2 100644 (file)
@@ -48,9 +48,9 @@ grains of salt.
 
 There's an experimental PHP extension module which wraps the ICU library's
 normalization functions. This is *MUCH* faster than doing this work in pure
-PHP code. This is at https://gerrit.wikimedia.org/r/gitweb?p=mediawiki/extensions/normal.git;a=summary.
-It is known to work with PHP 4.3.8 and 5.0.2 on Linux/x86 but hasn't
-been thoroughly tested on other configurations.
+PHP code. This is at https://git.wikimedia.org/summary/mediawiki%2Fextensions%2Fnormal.git.
+It is used by the WMF, which currently runs PHP 5.3.10 on Linux.  It hasn't been
+thoroughly tested on other configurations, but may work.
 
 If the php_normal.so module is loaded in php.ini, the normalization functions
 will automatically use it. If you can't (or don't want to) load it in php.ini,
index 748c423..f962162 100644 (file)
@@ -37,6 +37,8 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
         *   - compress_threshold:  The minimum size an object must be before it is compressed
         *   - timeout:             The read timeout in microseconds
         *   - connect_timeout:     The connect timeout in seconds
+        *   - retry_timeout:       Time in seconds to wait before retrying a failed connect attempt
+        *   - server_failure_limit:  Limit for server connect failures before it is removed
         *   - serializer:          May be either "php" or "igbinary". Igbinary produces more compact
         *                          values, but serialization is much slower unless the php.ini option
         *                          igbinary.compact_strings is off.
@@ -61,6 +63,14 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
                        $params['serializer'] = 'php';
                }
 
+               if ( isset( $params['retry_timeout'] ) ) {
+                       $this->client->setOption( Memcached::OPT_RETRY_TIMEOUT, $params['retry_timeout'] );
+               }
+
+               if ( isset ( $params['server_failure_limit'] ) ) {
+                       $this->client->setOption( Memcached::OPT_SERVER_FAILURE_LIMIT, $params['server_failure_limit'] );
+               }
+
                // The compression threshold is an undocumented php.ini option for some
                // reason. There's probably not much harm in setting it globally, for
                // compatibility with the settings for the PHP client.
index f7247f9..6c1433a 100644 (file)
@@ -34,7 +34,7 @@ class ObjectCache {
         *
         * @param $id string
         *
-        * @return ObjectCache
+        * @return BagOStuff
         */
        static function getInstance( $id ) {
                if ( isset( self::$instances[$id] ) ) {
@@ -59,7 +59,7 @@ class ObjectCache {
         * @param $id string
         *
         * @throws MWException
-        * @return ObjectCache
+        * @return BagOStuff
         */
        static function newFromId( $id ) {
                global $wgObjectCaches;
@@ -78,7 +78,7 @@ class ObjectCache {
         * @param $params array
         *
         * @throws MWException
-        * @return ObjectCache
+        * @return BagOStuff
         */
        static function newFromParams( $params ) {
                if ( isset( $params['factory'] ) ) {
@@ -102,7 +102,7 @@ class ObjectCache {
         * If no cache choice is configured (by default $wgMainCacheType is CACHE_NONE),
         * then CACHE_ANYTHING will forward to CACHE_DB.
         * @param $params array
-        * @return ObjectCache
+        * @return BagOStuff
         */
        static function newAnything( $params ) {
                global $wgMainCacheType, $wgMessageCacheType, $wgParserCacheType;
@@ -120,7 +120,7 @@ class ObjectCache {
         *
         * @param $params array
         * @throws MWException
-        * @return ObjectCache
+        * @return BagOStuff
         */
        static function newAccelerator( $params ) {
                if ( function_exists( 'apc_fetch' ) ) {
index 375ff2b..8246f71 100644 (file)
@@ -377,7 +377,7 @@ class CoreParserFunctions {
 
                // disallow some styles that could be used to bypass $wgRestrictDisplayTitle
                if ( $wgRestrictDisplayTitle ) {
-                       $htmlTagsCallback = function ( $params ) {
+                       $htmlTagsCallback = function ( &$params ) {
                                $decoded = Sanitizer::decodeTagAttributes( $params );
 
                                if ( isset( $decoded['style'] ) ) {
@@ -456,7 +456,8 @@ class CoreParserFunctions {
                return self::formatRaw( SiteStats::edits(), $raw );
        }
        static function numberofviews( $parser, $raw = null ) {
-               return self::formatRaw( SiteStats::views(), $raw );
+               global $wgDisableCounters;
+               return !$wgDisableCounters ? self::formatRaw( SiteStats::views(), $raw ) : '';
        }
        static function pagesinnamespace( $parser, $namespace = 0, $raw = null ) {
                return self::formatRaw( SiteStats::pagesInNs( intval( $namespace ) ), $raw );
@@ -824,7 +825,9 @@ class CoreParserFunctions {
                        $title = SpecialPage::getTitleFor( $page, $subpage );
                        return $title->getPrefixedText();
                } else {
-                       return wfMessage( 'nosuchspecialpage' )->inContentLanguage()->text();
+                       // unknown special page, just use the given text as its title, if at all possible
+                       $title = Title::makeTitleSafe( NS_SPECIAL, $text );
+                       return $title ? $title->getPrefixedText() : self::special( $parser, 'Badtitle' );
                }
        }
 
@@ -859,8 +862,13 @@ class CoreParserFunctions {
                if ( $old === false || $old == $text || $arg ) {
                        return '';
                } else {
+                       $converter = $parser->getConverterLanguage()->getConverter();
                        return '<span class="error">' .
-                               wfMessage( 'duplicate-defaultsort', $old, $text )->inContentLanguage()->escaped() .
+                               wfMessage( 'duplicate-defaultsort',
+                                       // Message should be parsed, but these params should only be escaped.
+                                       $converter->markNoConversion( wfEscapeWikiText( $old ) ),
+                                       $converter->markNoConversion( wfEscapeWikiText( $text ) )
+                               )->inContentLanguage()->text() .
                                '</span>';
                }
        }
index 840e174..813aaca 100644 (file)
@@ -54,7 +54,6 @@
  * @warning $wgUser or $wgTitle or $wgRequest or $wgLang. Keep them away!
  *
  * @par Settings:
- * $wgLocaltimezone
  * $wgNamespacesWithSubpages
  *
  * @par Settings only within ParserOptions:
@@ -2682,71 +2681,50 @@ class Parser {
                $ts = wfTimestamp( TS_UNIX, $this->mOptions->getTimestamp() );
                wfRunHooks( 'ParserGetVariableValueTs', array( &$this, &$ts ) );
 
-               # Use the time zone
-               global $wgLocaltimezone;
-               if ( isset( $wgLocaltimezone ) ) {
-                       $oldtz = date_default_timezone_get();
-                       date_default_timezone_set( $wgLocaltimezone );
-               }
-
-               $localTimestamp = date( 'YmdHis', $ts );
-               $localMonth = date( 'm', $ts );
-               $localMonth1 = date( 'n', $ts );
-               $localMonthName = date( 'n', $ts );
-               $localDay = date( 'j', $ts );
-               $localDay2 = date( 'd', $ts );
-               $localDayOfWeek = date( 'w', $ts );
-               $localWeek = date( 'W', $ts );
-               $localYear = date( 'Y', $ts );
-               $localHour = date( 'H', $ts );
-               if ( isset( $wgLocaltimezone ) ) {
-                       date_default_timezone_set( $oldtz );
-               }
-
                $pageLang = $this->getFunctionLang();
 
                switch ( $index ) {
                        case 'currentmonth':
-                               $value = $pageLang->formatNum( gmdate( 'm', $ts ) );
+                               $value = $pageLang->formatNum( MWTimestamp::getInstance( $ts )->format( 'm' ) );
                                break;
                        case 'currentmonth1':
-                               $value = $pageLang->formatNum( gmdate( 'n', $ts ) );
+                               $value = $pageLang->formatNum( MWTimestamp::getInstance( $ts )->format( 'n' ) );
                                break;
                        case 'currentmonthname':
-                               $value = $pageLang->getMonthName( gmdate( 'n', $ts ) );
+                               $value = $pageLang->getMonthName( MWTimestamp::getInstance( $ts )->format( 'n' ) );
                                break;
                        case 'currentmonthnamegen':
-                               $value = $pageLang->getMonthNameGen( gmdate( 'n', $ts ) );
+                               $value = $pageLang->getMonthNameGen( MWTimestamp::getInstance( $ts )->format( 'n' ) );
                                break;
                        case 'currentmonthabbrev':
-                               $value = $pageLang->getMonthAbbreviation( gmdate( 'n', $ts ) );
+                               $value = $pageLang->getMonthAbbreviation( MWTimestamp::getInstance( $ts )->format( 'n' ) );
                                break;
                        case 'currentday':
-                               $value = $pageLang->formatNum( gmdate( 'j', $ts ) );
+                               $value = $pageLang->formatNum( MWTimestamp::getInstance( $ts )->format( 'j' ) );
                                break;
                        case 'currentday2':
-                               $value = $pageLang->formatNum( gmdate( 'd', $ts ) );
+                               $value = $pageLang->formatNum( MWTimestamp::getInstance( $ts )->format( 'd' ) );
                                break;
                        case 'localmonth':
-                               $value = $pageLang->formatNum( $localMonth );
+                               $value = $pageLang->formatNum( MWTimestamp::getLocalInstance( $ts )->format( 'm' ) );
                                break;
                        case 'localmonth1':
-                               $value = $pageLang->formatNum( $localMonth1 );
+                               $value = $pageLang->formatNum( MWTimestamp::getLocalInstance( $ts )->format( 'n' ) );
                                break;
                        case 'localmonthname':
-                               $value = $pageLang->getMonthName( $localMonthName );
+                               $value = $pageLang->getMonthName( MWTimestamp::getLocalInstance( $ts )->format( 'n' ) );
                                break;
                        case 'localmonthnamegen':
-                               $value = $pageLang->getMonthNameGen( $localMonthName );
+                               $value = $pageLang->getMonthNameGen( MWTimestamp::getLocalInstance( $ts )->format( 'n' ) );
                                break;
                        case 'localmonthabbrev':
-                               $value = $pageLang->getMonthAbbreviation( $localMonthName );
+                               $value = $pageLang->getMonthAbbreviation( MWTimestamp::getLocalInstance( $ts )->format( 'n' ) );
                                break;
                        case 'localday':
-                               $value = $pageLang->formatNum( $localDay );
+                               $value = $pageLang->formatNum( MWTimestamp::getLocalInstance( $ts )->format( 'j' ) );
                                break;
                        case 'localday2':
-                               $value = $pageLang->formatNum( $localDay2 );
+                               $value = $pageLang->formatNum( MWTimestamp::getLocalInstance( $ts )->format( 'd' ) );
                                break;
                        case 'pagename':
                                $value = wfEscapeWikiText( $this->mTitle->getText() );
@@ -2892,44 +2870,44 @@ class Parser {
                                $value = ( wfUrlencode( $this->mTitle->getSubjectNsText() ) );
                                break;
                        case 'currentdayname':
-                               $value = $pageLang->getWeekdayName( gmdate( 'w', $ts ) + 1 );
+                               $value = $pageLang->getWeekdayName( MWTimestamp::getInstance( $ts )->format( 'w' ) + 1 );
                                break;
                        case 'currentyear':
-                               $value = $pageLang->formatNum( gmdate( 'Y', $ts ), true );
+                               $value = $pageLang->formatNum( MWTimestamp::getInstance( $ts )->format( 'Y' ), true );
                                break;
                        case 'currenttime':
                                $value = $pageLang->time( wfTimestamp( TS_MW, $ts ), false, false );
                                break;
                        case 'currenthour':
-                               $value = $pageLang->formatNum( gmdate( 'H', $ts ), true );
+                               $value = $pageLang->formatNum( MWTimestamp::getInstance( $ts )->format( 'H' ), true );
                                break;
                        case 'currentweek':
                                # @bug 4594 PHP5 has it zero padded, PHP4 does not, cast to
                                # int to remove the padding
-                               $value = $pageLang->formatNum( (int)gmdate( 'W', $ts ) );
+                               $value = $pageLang->formatNum( (int)MWTimestamp::getInstance( $ts )->format( 'W' ) );
                                break;
                        case 'currentdow':
-                               $value = $pageLang->formatNum( gmdate( 'w', $ts ) );
+                               $value = $pageLang->formatNum( MWTimestamp::getInstance( $ts )->format( 'w' ) );
                                break;
                        case 'localdayname':
-                               $value = $pageLang->getWeekdayName( $localDayOfWeek + 1 );
+                               $value = $pageLang->getWeekdayName( MWTimestamp::getLocalInstance( $ts )->format( 'w' ) + 1 );
                                break;
                        case 'localyear':
-                               $value = $pageLang->formatNum( $localYear, true );
+                               $value = $pageLang->formatNum( MWTimestamp::getLocalInstance( $ts )->format( 'Y' ), true );
                                break;
                        case 'localtime':
-                               $value = $pageLang->time( $localTimestamp, false, false );
+                               $value = $pageLang->time( MWTimestamp::getLocalInstance( $ts )->format( 'YmdHis' ), false, false );
                                break;
                        case 'localhour':
-                               $value = $pageLang->formatNum( $localHour, true );
+                               $value = $pageLang->formatNum( MWTimestamp::getLocalInstance( $ts )->format( 'H' ), true );
                                break;
                        case 'localweek':
                                # @bug 4594 PHP5 has it zero padded, PHP4 does not, cast to
                                # int to remove the padding
-                               $value = $pageLang->formatNum( (int)$localWeek );
+                               $value = $pageLang->formatNum( (int)MWTimestamp::getLocalInstance( $ts )->format( 'W' ) );
                                break;
                        case 'localdow':
-                               $value = $pageLang->formatNum( $localDayOfWeek );
+                               $value = $pageLang->formatNum( MWTimestamp::getLocalInstance( $ts )->format( 'w' ) );
                                break;
                        case 'numberofarticles':
                                $value = $pageLang->formatNum( SiteStats::articles() );
@@ -2960,7 +2938,7 @@ class Parser {
                                $value = wfTimestamp( TS_MW, $ts );
                                break;
                        case 'localtimestamp':
-                               $value = $localTimestamp;
+                               $value = MWTimestamp::getLocalInstance( $ts )->format( 'YmdHis' );
                                break;
                        case 'currentversion':
                                $value = SpecialVersion::getVersion();
@@ -3296,8 +3274,9 @@ class Parser {
                        $ns = NS_TEMPLATE;
                        # Split the title into page and subpage
                        $subpage = '';
-                       $part1 = $this->maybeDoSubpageLink( $part1, $subpage );
-                       if ( $subpage !== '' ) {
+                       $relative = $this->maybeDoSubpageLink( $part1, $subpage );
+                       if ( $part1 !== $relative ) {
+                               $part1 = $relative;
                                $ns = $this->mTitle->getNamespace();
                        }
                        $title = Title::newFromText( $part1, $ns );
@@ -3323,7 +3302,7 @@ class Parser {
                if ( !$found && $title ) {
                        if ( !Profiler::instance()->isPersistent() ) {
                                # Too many unique items can kill profiling DBs/collectors
-                               $titleProfileIn = __METHOD__ . "-title-" . $title->getDBkey();
+                               $titleProfileIn = __METHOD__ . "-title-" . $title->getPrefixedDBkey();
                                wfProfileIn( $titleProfileIn ); // template in
                        }
                        wfProfileIn( __METHOD__ . '-loadtpl' );
@@ -3775,13 +3754,8 @@ class Parser {
         * @return Array ( File or false, Title of file )
         */
        function fetchFileAndTitle( $title, $options = array() ) {
-               if ( isset( $options['broken'] ) ) {
-                       $file = false; // broken thumbnail forced by hook
-               } elseif ( isset( $options['sha1'] ) ) { // get by (sha1,timestamp)
-                       $file = RepoGroup::singleton()->findFileFromKey( $options['sha1'], $options );
-               } else { // get by (name,timestamp)
-                       $file = wfFindFile( $title, $options );
-               }
+               $file = $this->fetchFileNoRegister( $title, $options );
+
                $time = $file ? $file->getTimestamp() : false;
                $sha1 = $file ? $file->getSha1() : false;
                # Register the file as a dependency...
@@ -3799,6 +3773,27 @@ class Parser {
                return array( $file, $title );
        }
 
+       /**
+        * Helper function for fetchFileAndTitle.
+        *
+        * Also useful if you need to fetch a file but not use it yet,
+        * for example to get the file's handler.
+        *
+        * @param Title $title
+        * @param array $options Array of options to RepoGroup::findFile
+        * @return File or false
+        */
+       protected function fetchFileNoRegister( $title, $options = array() ) {
+               if ( isset( $options['broken'] ) ) {
+                       $file = false; // broken thumbnail forced by hook
+               } elseif ( isset( $options['sha1'] ) ) { // get by (sha1,timestamp)
+                       $file = RepoGroup::singleton()->findFileFromKey( $options['sha1'], $options );
+               } else { // get by (name,timestamp)
+                       $file = wfFindFile( $title, $options );
+               }
+               return $file;
+       }
+
        /**
         * Transclude an interwiki link.
         *
@@ -4537,7 +4532,7 @@ class Parser {
         * @return string
         */
        function pstPass2( $text, $user ) {
-               global $wgContLang, $wgLocaltimezone;
+               global $wgContLang;
 
                # Note: This is the timestamp saved as hardcoded wikitext to
                # the database, we use $wgContLang here in order to give
@@ -4545,19 +4540,11 @@ class Parser {
                # than the one selected in each user's preferences.
                # (see also bug 12815)
                $ts = $this->mOptions->getTimestamp();
-               if ( isset( $wgLocaltimezone ) ) {
-                       $tz = $wgLocaltimezone;
-               } else {
-                       $tz = date_default_timezone_get();
-               }
-
-               $unixts = wfTimestamp( TS_UNIX, $ts );
-               $oldtz = date_default_timezone_get();
-               date_default_timezone_set( $tz );
-               $ts = date( 'YmdHis', $unixts );
-               $tzMsg = date( 'T', $unixts );  # might vary on DST changeover!
+               $timestamp = MWTimestamp::getLocalInstance( $ts );
+               $ts = $timestamp->format( 'YmdHis' );
+               $tzMsg = $timestamp->format( 'T' );  # might vary on DST changeover!
 
-               # Allow translation of timezones through wiki. date() can return
+               # 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 ) );
@@ -4566,8 +4553,6 @@ class Parser {
                        $tzMsg = $msg->text();
                }
 
-               date_default_timezone_set( $oldtz );
-
                $d = $wgContLang->timeanddate( $ts, false, false ) . " ($tzMsg)";
 
                # Variable replacement
@@ -5016,6 +5001,7 @@ class Parser {
         * @return string HTML
         */
        function renderImageGallery( $text, $params ) {
+               wfProfileIn( __METHOD__ );
                $ig = new ImageGallery();
                $ig->setContextTitle( $this->mTitle );
                $ig->setShowBytes( false );
@@ -5067,38 +5053,81 @@ class Parser {
                                continue;
                        }
 
+                       # We need to get what handler the file uses, to figure out parameters.
+                       # Note, a hook can overide the file name, and chose an entirely different
+                       # file (which potentially could be of a different type and have different handler).
+                       $options = array();
+                       $descQuery = false;
+                       wfRunHooks( 'BeforeParserFetchFileAndTitle',
+                               array( $this, $title, &$options, &$descQuery ) );
+                       # Don't register it now, as ImageGallery does that later.
+                       $file = $this->fetchFileNoRegister( $title, $options );
+                       $handler = $file ? $file->getHandler() : false;
+
+                       wfProfileIn( __METHOD__ . '-getMagicWord' );
+                       $paramMap = array(
+                               'img_alt' => 'gallery-internal-alt',
+                               'img_link' => 'gallery-internal-link',
+                       );
+                       if ( $handler ) {
+                               $paramMap = $paramMap + $handler->getParamMap();
+                               // We don't want people to specify per-image widths.
+                               // Additionally the width parameter would need special casing anyhow.
+                               unset( $paramMap['img_width'] );
+                       }
+
+                       $mwArray = new MagicWordArray( array_keys( $paramMap ) );
+                       wfProfileOut( __METHOD__ . '-getMagicWord' );
+
                        $label = '';
                        $alt = '';
                        $link = '';
+                       $handlerOptions = array();
                        if ( isset( $matches[3] ) ) {
                                // look for an |alt= definition while trying not to break existing
                                // captions with multiple pipes (|) in it, until a more sensible grammar
                                // is defined for images in galleries
 
+                               // FIXME: Doing recursiveTagParse at this stage, and the trim before
+                               // splitting on '|' is a bit odd, and different from makeImage.
                                $matches[3] = $this->recursiveTagParse( trim( $matches[3] ) );
                                $parameterMatches = StringUtils::explode( '|', $matches[3] );
-                               $magicWordAlt = MagicWord::get( 'img_alt' );
-                               $magicWordLink = MagicWord::get( 'img_link' );
 
                                foreach ( $parameterMatches as $parameterMatch ) {
-                                       if ( $match = $magicWordAlt->matchVariableStartToEnd( $parameterMatch ) ) {
-                                               $alt = $this->stripAltText( $match, false );
-                                       }
-                                       elseif ( $match = $magicWordLink->matchVariableStartToEnd( $parameterMatch ) ) {
-                                               $linkValue = strip_tags( $this->replaceLinkHoldersText( $match ) );
-                                               $chars = self::EXT_LINK_URL_CLASS;
-                                               $prots = $this->mUrlProtocols;
-                                               //check to see if link matches an absolute url, if not then it must be a wiki link.
-                                               if ( preg_match( "/^($prots)$chars+$/u", $linkValue ) ) {
-                                                       $link = $linkValue;
-                                               } else {
-                                                       $localLinkTitle = Title::newFromText( $linkValue );
-                                                       if ( $localLinkTitle !== null ) {
-                                                               $link = $localLinkTitle->getLocalURL();
+                                       list( $magicName, $match ) = $mwArray->matchVariableStartToEnd( $parameterMatch );
+                                       if ( $magicName ) {
+                                               $paramName = $paramMap[$magicName];
+
+                                               switch( $paramName ) {
+                                               case 'gallery-internal-alt':
+                                                       $alt = $this->stripAltText( $match, false );
+                                                       break;
+                                               case 'gallery-internal-link':
+                                                       $linkValue = strip_tags( $this->replaceLinkHoldersText( $match ) );
+                                                       $chars = self::EXT_LINK_URL_CLASS;
+                                                       $prots = $this->mUrlProtocols;
+                                                       //check to see if link matches an absolute url, if not then it must be a wiki link.
+                                                       if ( preg_match( "/^($prots)$chars+$/u", $linkValue ) ) {
+                                                               $link = $linkValue;
+                                                       } else {
+                                                               $localLinkTitle = Title::newFromText( $linkValue );
+                                                               if ( $localLinkTitle !== null ) {
+                                                                       $link = $localLinkTitle->getLocalURL();
+                                                               }
+                                                       }
+                                                       break;
+                                               default:
+                                                       // Must be a handler specific parameter.
+                                                       if ( $handler->validateParam( $paramName, $match ) ) {
+                                                               $handlerOptions[$paramName] = $match;
+                                                       } else {
+                                                               // Guess not. Append it to the caption.
+                                                               wfDebug( "$parameterMatch failed parameter validation" );
+                                                               $label .= '|' . $parameterMatch;
                                                        }
                                                }
-                                       }
-                                       else {
+
+                                       else {
                                                // concatenate all other pipes
                                                $label .= '|' . $parameterMatch;
                                        }
@@ -5107,9 +5136,11 @@ class Parser {
                                $label = substr( $label, 1 );
                        }
 
-                       $ig->add( $title, $label, $alt, $link );
+                       $ig->add( $title, $label, $alt, $link, $handlerOptions );
                }
-               return $ig->toHTML();
+               $html = $ig->toHTML();
+               wfProfileOut( __METHOD__ );
+               return $html;
        }
 
        /**
index 29b3500..c5e42a4 100644 (file)
@@ -67,22 +67,8 @@ class ParserOutput extends CacheTime {
 
        function getText() {
                if ( $this->mEditSectionTokens ) {
-                       $text = $this->mText;
-
-                       // If there's old output with misplaced editsections links cached, mangle it to put them in
-                       // the right position. We can assume that there is no '</hN>' inside header tags, making this
-                       // possible to do with a regex.
-                       $text = preg_replace(
-                               //            [ this part is like EDITSECTION_REGEX, but with non-capturing groups                           ]
-                               //                                                                                  note the space here ------v
-                               '#(<[hH](\d)>)(<(?:mw:)?editsection page="(?:.*?)" section="(?:.*?)"(?:/>|>(?:.*?)(?:</(?:mw:)?editsection>))) ([\s\S]*?)(</[hH]\2>)#',
-                               // swap the order of content and editsection link - $2 is ignored since it's the number in hN's tag name
-                               '$1$4 $3$5',
-                               $text
-                       );
-
                        return preg_replace_callback( ParserOutput::EDITSECTION_REGEX,
-                               array( &$this, 'replaceEditSectionLinksCallback' ), $text );
+                               array( &$this, 'replaceEditSectionLinksCallback' ), $this->mText );
                }
                return preg_replace( ParserOutput::EDITSECTION_REGEX, '', $this->mText );
        }
index 7ca4c2d..0ef12ec 100644 (file)
@@ -100,6 +100,12 @@ class Profiler {
        protected $mTimeMetric = 'wall';
        protected $mProfileID = false, $mCollateDone = false, $mTemplated = false;
 
+       protected $mDBLockThreshold = 5.0; // float; seconds
+       /** @var Array DB/server name => (active trx count,timestamp) */
+       protected $mDBTrxHoldingLocks = array();
+       /** @var Array DB/server name => list of (method, elapsed time) */
+       protected $mDBTrxMethodTimes = array();
+
        /** @var Profiler */
        public static $__instance = null; // do not call this outside Profiler and ProfileSection
 
@@ -223,20 +229,19 @@ class Profiler {
                if ( !$bit ) {
                        $this->debug( "Profiling error, !\$bit: $functionname\n" );
                } else {
-                       //if( $wgDebugProfiling ) {
-                               if ( $functionname == 'close' ) {
-                                       $message = "Profile section ended by close(): {$bit[0]}";
-                                       $this->debug( "$message\n" );
-                                       $this->mStack[] = array( $message, 0, 0.0, 0, 0.0, 0 );
-                               } elseif ( $bit[0] != $functionname ) {
-                                       $message = "Profiling error: in({$bit[0]}), out($functionname)";
-                                       $this->debug( "$message\n" );
-                                       $this->mStack[] = array( $message, 0, 0.0, 0, 0.0, 0 );
-                               }
-                       //}
+                       if ( $functionname == 'close' ) {
+                               $message = "Profile section ended by close(): {$bit[0]}";
+                               $this->debug( "$message\n" );
+                               $this->mStack[] = array( $message, 0, 0.0, 0, 0.0, 0 );
+                       } elseif ( $bit[0] != $functionname ) {
+                               $message = "Profiling error: in({$bit[0]}), out($functionname)";
+                               $this->debug( "$message\n" );
+                               $this->mStack[] = array( $message, 0, 0.0, 0, 0.0, 0 );
+                       }
                        $bit[] = $time;
                        $bit[] = $memory;
                        $this->mStack[] = $bit;
+                       $this->updateTrxProfiling( $functionname, $time );
                }
        }
 
@@ -249,6 +254,83 @@ class Profiler {
                }
        }
 
+       /**
+        * Mark a DB as in a transaction with one or more writes pending
+        *
+        * Note that there can be multiple connections to a single DB.
+        *
+        * @param string $server DB server
+        * @param string $db DB name
+        */
+       public function transactionWritingIn( $server, $db ) {
+               $name = "{$server} ({$db})";
+               if ( isset( $this->mDBTrxHoldingLocks[$name] ) ) {
+                       ++$this->mDBTrxHoldingLocks[$name]['refs'];
+               } else {
+                       $this->mDBTrxHoldingLocks[$name] = array( 'refs' => 1, 'start' => microtime( true ) );
+                       $this->mDBTrxMethodTimes[$name] = array();
+               }
+       }
+
+       /**
+        * Register the name and time of a method for slow DB trx detection
+        *
+        * @param string $method Function name
+        * @param float $realtime Wal time ellapsed
+        */
+       protected function updateTrxProfiling( $method, $realtime ) {
+               if ( !$this->mDBTrxHoldingLocks ) {
+                       return; // short-circuit
+               // @TODO: hardcoded check is a tad janky (what about FOR UPDATE?)
+               } elseif ( !preg_match( '/^query-m: (?!SELECT)/', $method )
+                       && $realtime < $this->mDBLockThreshold )
+               {
+                       return; // not a DB master query nor slow enough
+               }
+               $now = microtime( true );
+               foreach ( $this->mDBTrxHoldingLocks as $name => $info ) {
+                       // Hacky check to exclude entries from before the first TRX write
+                       if ( ( $now - $realtime ) >= $info['start'] ) {
+                               $this->mDBTrxMethodTimes[$name][] = array( $method, $realtime );
+                       }
+               }
+       }
+
+       /**
+        * Mark a DB as no longer in a transaction
+        *
+        * This will check if locks are possibly held for longer than
+        * needed and log any affected transactions to a special DB log.
+        * Note that there can be multiple connections to a single DB.
+        *
+        * @param string $server DB server
+        * @param string $db DB name
+        */
+       public function transactionWritingOut( $server, $db ) {
+               $name = "{$server} ({$db})";
+               if ( --$this->mDBTrxHoldingLocks[$name]['refs'] <= 0 ) {
+                       $slow = false;
+                       foreach ( $this->mDBTrxMethodTimes[$name] as $info ) {
+                               list( $method, $realtime ) = $info;
+                               if ( $realtime >= $this->mDBLockThreshold ) {
+                                       $slow = true;
+                                       break;
+                               }
+                       }
+                       if ( $slow ) {
+                               $dbs = implode( ', ', array_keys( $this->mDBTrxHoldingLocks ) );
+                               $msg = "Sub-optimal transaction on DB(s) {$dbs}:\n";
+                               foreach ( $this->mDBTrxMethodTimes[$name] as $i => $info ) {
+                                       list( $method, $realtime ) = $info;
+                                       $msg .= sprintf( "%d\t%.6f\t%s\n", $i, $realtime, $method );
+                               }
+                               wfDebugLog( 'DBPerfomance', $msg );
+                       }
+                       unset( $this->mDBTrxHoldingLocks[$name] );
+                       unset( $this->mDBTrxMethodTimes[$name] );
+               }
+       }
+
        /**
         * Mark this call as templated or not
         *
index b59c528..805c60f 100644 (file)
@@ -101,6 +101,7 @@ class ProfilerSimple extends Profiler {
                        $entry['real_sq'] += $elapsedreal * $elapsedreal;
                        $entry['count']++;
 
+                       $this->updateTrxProfiling( $functionname, $elapsedreal );
                }
        }
 
index d44dfe1..5588d1e 100644 (file)
@@ -59,6 +59,8 @@ class ProfilerSimpleTrace extends ProfilerSimple {
                        $elapsedreal = $this->getTime() - $ortime;
                        $this->trace .= sprintf( "%03.6f %6.1f", $elapsedreal, $this->memoryDiff() ) .
                                        str_repeat( " ", count( $this->mWorkStack ) + 1 ) . " < " . $functionname . "\n";
+
+                       $this->updateTrxProfiling( $functionname, $elapsedreal );
                }
        }
 
index c0eb0fb..3697f35 100644 (file)
@@ -39,4 +39,6 @@ class ProfilerStub extends Profiler {
        public function close() {}
        public function logData() {}
        public function getCurrentSection() { return ''; }
+       public function transactionWritingIn( $server, $db ) {}
+       public function transactionWritingOut( $server, $db ) {}
 }
index 543bd1d..1240abf 100644 (file)
@@ -47,6 +47,9 @@ class ResourceLoader {
        /** array( 'source-id' => array( 'loadScript' => 'http://.../load.php' ) ) **/
        protected $sources = array();
 
+       /** @var bool */
+       protected $hasErrors = false;
+
        /* Protected Methods */
 
        /**
@@ -174,7 +177,7 @@ class ResourceLoader {
                        // Save filtered text to Memcached
                        $cache->set( $key, $result );
                } catch ( Exception $exception ) {
-                       wfDebugLog( 'resourceloader', __METHOD__ . ": minification failed: $e" );
+                       wfDebugLog( 'resourceloader', __METHOD__ . ": minification failed: $exception" );
                        $this->hasErrors = true;
                        // Return exception as a comment
                        $result = $this->makeComment( $exception->__toString() );
@@ -277,7 +280,7 @@ class ResourceLoader {
                global $IP, $wgEnableJavaScriptTest;
 
                if ( $wgEnableJavaScriptTest !== true ) {
-                       throw new MWException( 'Attempt to register JavaScript test modules but <tt>$wgEnableJavaScriptTest</tt> is false. Edit your <tt>LocalSettings.php</tt> to enable it.' );
+                       throw new MWException( 'Attempt to register JavaScript test modules but <code>$wgEnableJavaScriptTest</code> is false. Edit your <code>LocalSettings.php</code> to enable it.' );
                }
 
                wfProfileIn( __METHOD__ );
@@ -389,6 +392,7 @@ class ResourceLoader {
                        }
                        // Construct the requested object
                        $info = $this->moduleInfos[$name];
+                       /** @var ResourceLoaderModule $object */
                        if ( isset( $info['object'] ) ) {
                                // Object given in info array
                                $object = $info['object'];
@@ -443,7 +447,6 @@ class ResourceLoader {
 
                wfProfileIn( __METHOD__ );
                $errors = '';
-               $this->hasErrors = false;
 
                // Split requested modules into two groups, modules and missing
                $modules = array();
@@ -454,7 +457,7 @@ class ResourceLoader {
                                // Do not allow private modules to be loaded from the web.
                                // This is a security issue, see bug 34907.
                                if ( $module->getGroup() === 'private' ) {
-                                       wfDebugLog( 'resourceloader', __METHOD__ . ": request for private module denied: $e" );
+                                       wfDebugLog( 'resourceloader', __METHOD__ . ": request for private module '$name' denied" );
                                        $this->hasErrors = true;
                                        // Add exception to the output as a comment
                                        $errors .= $this->makeComment( "Cannot show private module \"$name\"" );
@@ -544,7 +547,7 @@ class ResourceLoader {
         * Send content type and last modified headers to the client.
         * @param $context ResourceLoaderContext
         * @param string $mtime TS_MW timestamp to use for last-modified
-        * @param bool $error Whether there are commented-out errors in the response
+        * @param bool $errors Whether there are commented-out errors in the response
         * @return void
         */
        protected function sendResponseHeaders( ResourceLoaderContext $context, $mtime, $errors ) {
@@ -563,6 +566,7 @@ class ResourceLoader {
                }
                if ( $context->getOnly() === 'styles' ) {
                        header( 'Content-Type: text/css; charset=utf-8' );
+                       header( 'Access-Control-Allow-Origin: *' );
                } else {
                        header( 'Content-Type: text/javascript; charset=utf-8' );
                }
@@ -1131,6 +1135,18 @@ class ResourceLoader {
        /**
         * Build a query array (array representation of query string) for load.php. Helper
         * function for makeLoaderURL().
+        *
+        * @param array $modules
+        * @param string $lang
+        * @param string $skin
+        * @param string $user
+        * @param string $version
+        * @param bool $debug
+        * @param string $only
+        * @param bool $printable
+        * @param bool $handheld
+        * @param array $extraQuery
+        *
         * @return array
         */
        public static function makeLoaderQuery( $modules, $lang, $skin, $user = null, $version = null, $debug = false, $only = null,
index 61e6e15..7b4b668 100644 (file)
@@ -81,7 +81,7 @@ class ResourceLoaderUserCSSPrefsModule extends ResourceLoaderModule {
                        $rules[] = "#toc { display: none; }\n";
                }
                if ( !$options['editsection'] ) {
-                       $rules[] = ".mw-editsection, .editsection { display: none; }\n";
+                       $rules[] = ".mw-editsection { display: none; }\n";
                }
                if ( $options['editfont'] !== 'default' ) {
                        // Double-check that $options['editfont'] consists of safe characters only
index ac72276..135e31f 100644 (file)
@@ -501,6 +501,9 @@ class RevDel_FileList extends RevDel_List {
                $file = wfLocalFile( $this->title );
                $file->purgeCache();
                $file->purgeDescription();
+               foreach ( $this->ids as $timestamp ) {
+                       $file->purgeOldThumbnails( $timestamp . '!' . $this->title->getDBkey() );
+               }
                return Status::newGood();
        }
 
index a975b03..4f4e31d 100644 (file)
@@ -494,6 +494,18 @@ class SearchEngine {
                // no-op
        }
 
+       /**
+        * Delete an indexed page
+        * Title should be pre-processed.
+        * STUB
+        *
+        * @param Integer $id Page id that was deleted
+        * @param String $title Title of page that was deleted
+        */
+       function delete( $id, $title ) {
+               // no-op
+       }
+
        /**
         * Get OpenSearch suggestion template
         *
@@ -511,6 +523,20 @@ class SearchEngine {
                        return $wgCanonicalServer . wfScript( 'api' ) . '?action=opensearch&search={searchTerms}&namespace=' . $ns;
                }
        }
+
+       /**
+        * Get the raw text for updating the index from a content object
+        * Nicer search backends could possibly do something cooler than
+        * just returning raw text
+        *
+        * @todo This isn't ideal, we'd really like to have content-specific handling here
+        * @param Title $t Title we're indexing
+        * @param Content $c Content of the page to index
+        * @return string
+        */
+       public function getTextFromContent( Title $t, Content $c = null ) {
+               return $c ? $c->getTextForSearchIndex() : '';
+       }
 }
 
 /**
@@ -803,10 +829,8 @@ class SearchResult {
        protected function initText() {
                if ( !isset( $this->mText ) ) {
                        if ( $this->mRevision != null ) {
-                               //TODO: if we could plug in some code that knows about special content models *and* about
-                               //      special features of the search engine, the search could benefit.
-                               $content = $this->mRevision->getContent();
-                               $this->mText = $content ? $content->getTextForSearchIndex() : '';
+                               $this->mText = SearchEngine::create()
+                                       ->getTextFromContent( $this->mTitle, $this->mRevision->getContent() );
                        } else { // TODO: can we fetch raw wikitext for commons images?
                                $this->mText = '';
                        }
index c219b92..d8c638e 100644 (file)
@@ -369,6 +369,19 @@ class SearchMySQL extends SearchEngine {
                        array( $dbw->lowPriorityOption() ) );
        }
 
+       /**
+        * Delete an indexed page
+        * Title should be pre-processed.
+        *
+        * @param Integer $id Page id that was deleted
+        * @param String $title Title of page that was deleted
+        */
+       function delete( $id, $title ) {
+               $dbw = wfGetDB( DB_MASTER );
+
+               $dbw->delete( 'searchindex', array( 'si_page' => $id ), __METHOD__ );
+       }
+
        /**
         * Converts some characters for MySQL's indexing to grok it correctly,
         * and pads short words to overcome limitations.
index 8c1bda2..7146917 100644 (file)
  * @ingroup Search
  */
 class SearchUpdate implements DeferrableUpdate {
-
-       private $mId = 0, $mNamespace, $mTitle, $mText;
-       private $mTitleWords;
-
-       function __construct( $id, $title, $text = false ) {
+       /**
+        * Page id being updated
+        * @var int
+        */
+       private $id = 0;
+
+       /**
+        * Title we're updating
+        * @var Title
+        */
+       private $title;
+
+       /**
+        * Content of the page (not text)
+        * @var Content|false
+        */
+       private $content;
+
+       /**
+        * Constructor
+        *
+        * @param int $id Page id to update
+        * @param Title|string $title Title of page to update
+        * @param Content|string|false $c Content of the page to update.
+        *  If a Content object, text will be gotten from it. String is for back-compat.
+        *  Passing false tells the backend to just update the title, not the content
+        */
+       public function __construct( $id, $title, $c = false ) {
                if ( is_string( $title ) ) {
                        $nt = Title::newFromText( $title );
                } else {
@@ -41,39 +64,67 @@ class SearchUpdate implements DeferrableUpdate {
                }
 
                if ( $nt ) {
-                       $this->mId = $id;
-                       $this->mText = $text;
-
-                       $this->mNamespace = $nt->getNamespace();
-                       $this->mTitle = $nt->getText(); # Discard namespace
-
-                       $this->mTitleWords = $this->mTextWords = array();
+                       $this->id = $id;
+                       // is_string() check is back-compat for ApprovedRevs
+                       if( is_string( $c ) ) {
+                               $this->content = new TextContent( $c );
+                       } else {
+                               $this->content = $c ?: false;
+                       }
+                       $this->title = $nt;
                } else {
                        wfDebug( "SearchUpdate object created with invalid title '$title'\n" );
                }
        }
 
-       function doUpdate() {
-               global $wgContLang, $wgDisableSearchUpdate;
+       /**
+        * Perform actual update for the entry
+        */
+       public function doUpdate() {
+               global $wgDisableSearchUpdate;
 
-               if ( $wgDisableSearchUpdate || !$this->mId ) {
+               if ( $wgDisableSearchUpdate || !$this->id ) {
                        return;
                }
 
                wfProfileIn( __METHOD__ );
 
                $search = SearchEngine::create();
-               $lc = SearchEngine::legalSearchChars() . '&#;';
+               $normalTitle = $search->normalizeText(
+                       Title::indexTitle( $this->title->getNamespace(), $this->title->getText() ) );
 
-               if ( $this->mText === false ) {
-                       $search->updateTitle( $this->mId,
-                               $search->normalizeText( Title::indexTitle( $this->mNamespace, $this->mTitle ) ) );
+               if ( WikiPage::newFromId( $this->id ) === null ) {
+                       $search->delete( $this->id, $normalTitle );
+                       wfProfileOut( __METHOD__ );
+                       return;
+               } elseif ( $this->content === false ) {
+                       $search->updateTitle( $this->id, $normalTitle );
                        wfProfileOut( __METHOD__ );
                        return;
                }
 
+               $text = $search->getTextFromContent( $this->title, $this->content );
+               if( wfRunHooks( 'SearchUpdate', array( $this->id, $this->title, &$text, $this->content ) ) ) {
+                       $text = self::updateText( $text );
+               }
+
+               # Perform the actual update
+               $search->update( $this->id, $normalTitle, $search->normalizeText( $text ) );
+
+               wfProfileOut( __METHOD__ );
+       }
+
+       /**
+        * Clean text for indexing. Only really suitable for indexing in databases.
+        * If you're using a real search engine, you'll probably want to override
+        * this behavior and do something nicer with the original wikitext.
+        */
+       public static function updateText( $text ) {
+               global $wgContLang;
+
                # Language-specific strip/conversion
-               $text = $wgContLang->normalizeForSearch( $this->mText );
+               $text = $wgContLang->normalizeForSearch( $text );
+               $lc = SearchEngine::legalSearchChars() . '&#;';
 
                wfProfileIn( __METHOD__ . '-regexps' );
                $text = preg_replace( "/<\\/?\\s*[A-Za-z][^>]*?>/",
@@ -123,22 +174,6 @@ class SearchUpdate implements DeferrableUpdate {
                # Strip wiki '' and '''
                $text = preg_replace( "/''[']*/", " ", $text );
                wfProfileOut( __METHOD__ . '-regexps' );
-
-               wfRunHooks( 'SearchUpdate', array( $this->mId, $this->mNamespace, $this->mTitle, &$text ) );
-
-               # Perform the actual update
-               $search->update( $this->mId, $search->normalizeText( Title::indexTitle( $this->mNamespace, $this->mTitle ) ),
-                               $search->normalizeText( $text ) );
-
-               wfProfileOut( __METHOD__ );
+               return $text;
        }
 }
-
-/**
- * Placeholder class
- *
- * @ingroup Search
- */
-class SearchUpdateMyISAM extends SearchUpdate {
-       # Inherits everything
-}
index 3885043..705dab5 100644 (file)
@@ -206,15 +206,15 @@ class ActiveUsersPager extends UsersPager {
                $out .= Html::hidden( 'title', $self->getPrefixedDBkey() ) . $limit . "\n";
 
                $out .= Xml::inputLabel( $this->msg( 'activeusers-from' )->text(),
-                       'username', 'offset', 20, $this->requestedUser ) . '<br />';# Username field
+                       'username', 'offset', 20, $this->requestedUser, array( 'tabindex' => 1 ) ) . '<br />';# Username field
 
                $out .= Xml::checkLabel( $this->msg( 'activeusers-hidebots' )->text(),
-                       'hidebots', 'hidebots', $this->opts->getValue( 'hidebots' ) );
+                       'hidebots', 'hidebots', $this->opts->getValue( 'hidebots' ), array( 'tabindex' => 2 ) );
 
                $out .= Xml::checkLabel( $this->msg( 'activeusers-hidesysops' )->text(),
-                       'hidesysops', 'hidesysops', $this->opts->getValue( 'hidesysops' ) ) . '<br />';
+                       'hidesysops', 'hidesysops', $this->opts->getValue( 'hidesysops' ), array( 'tabindex' => 3 ) ) . '<br />';
 
-               $out .= Xml::submitButton( $this->msg( 'allpagessubmit' )->text() ) . "\n";# Submit button and form bottom
+               $out .= Xml::submitButton( $this->msg( 'allpagessubmit' )->text(), array( 'tabindex' => 4 ) ) . "\n";# Submit button and form bottom
                $out .= Xml::closeElement( 'fieldset' );
                $out .= Xml::closeElement( 'form' );
 
index 5a2ad62..6ba009a 100644 (file)
@@ -753,7 +753,7 @@ class SpecialBlock extends FormSpecialPage {
 
                # Can't watch a rangeblock
                if ( $type != Block::TYPE_RANGE && $data['Watch'] ) {
-                       $performer->addWatch( Title::makeTitle( NS_USER, $target ) );
+                       WatchAction::doWatch( Title::makeTitle( NS_USER, $target ), $performer, WatchedItem::IGNORE_USER_RIGHTS );
                }
 
                # Block constructor sanitizes certain block options on insert
index 0d76883..5ad961c 100644 (file)
@@ -121,11 +121,10 @@ class SpecialBookSources extends SpecialPage {
                $form .= Html::element( 'legend', array(), $this->msg( 'booksources-search-legend' )->text() ) . "\n";
                $form .= Html::openElement( 'form', array( 'method' => 'get', 'action' => $wgScript ) ) . "\n";
                $form .= Html::hidden( 'title', $this->getTitle()->getPrefixedText() ) . "\n";
-               $form .= '<p>' . Xml::inputLabel( $this->msg( 'booksources-isbn' )->text(), 'isbn', 'isbn', 20, $this->isbn );
+               $form .= '<p>' . Xml::inputLabel( $this->msg( 'booksources-isbn' )->text(), 'isbn', 'isbn', 20, $this->isbn, array( 'autofocus' => true ) );
                $form .= '&#160;' . Xml::submitButton( $this->msg( 'booksources-go' )->text() ) . "</p>\n";
                $form .= Html::closeElement( 'form' ) . "\n";
                $form .= Html::closeElement( 'fieldset' ) . "\n";
-
                return $form;
        }
 
index 9e435fb..816938d 100644 (file)
@@ -41,7 +41,7 @@ class SpecialChangeEmail extends UnlistedSpecialPage {
        protected $mNewEmail;
 
        public function __construct() {
-               parent::__construct( 'ChangeEmail' );
+               parent::__construct( 'ChangeEmail', 'editmyprivateinfo' );
        }
 
        /**
@@ -88,6 +88,13 @@ class SpecialChangeEmail extends UnlistedSpecialPage {
                }
 
                $this->checkReadOnly();
+               $this->checkPermissions();
+
+               // This could also let someone check the current email address, so
+               // require both permissions.
+               if ( !$this->getUser()->isAllowed( 'viewmyprivateinfo' ) ) {
+                       throw new PermissionsError( 'viewmyprivateinfo' );
+               }
 
                $this->mPassword = $request->getVal( 'wpPassword' );
                $this->mNewEmail = $request->getVal( 'wpNewEmail' );
index b53a46a..d297a2f 100644 (file)
@@ -31,7 +31,7 @@ class SpecialChangePassword extends UnlistedSpecialPage {
        protected $mUserName, $mOldpass, $mNewpass, $mRetype, $mDomain;
 
        public function __construct() {
-               parent::__construct( 'ChangePassword' );
+               parent::__construct( 'ChangePassword', 'editmyprivateinfo' );
        }
 
        /**
@@ -65,6 +65,7 @@ class SpecialChangePassword extends UnlistedSpecialPage {
                }
 
                $this->checkReadOnly();
+               $this->checkPermissions();
 
                if ( $request->wasPosted() && $user->matchEditToken( $request->getVal( 'token' ) ) ) {
                        try {
index 47808d1..3828b1c 100644 (file)
@@ -31,7 +31,7 @@
  */
 class EmailConfirmation extends UnlistedSpecialPage {
        public function __construct() {
-               parent::__construct( 'Confirmemail' );
+               parent::__construct( 'Confirmemail', 'editmyprivateinfo' );
        }
 
        /**
@@ -43,6 +43,13 @@ class EmailConfirmation extends UnlistedSpecialPage {
                $this->setHeaders();
 
                $this->checkReadOnly();
+               $this->checkPermissions();
+
+               // This could also let someone check the current email address, so
+               // require both permissions.
+               if ( !$this->getUser()->isAllowed( 'viewmyprivateinfo' ) ) {
+                       throw new PermissionsError( 'viewmyprivateinfo' );
+               }
 
                if ( $code === null || $code === '' ) {
                        if ( $this->getUser()->isLoggedIn() ) {
@@ -149,12 +156,13 @@ class EmailConfirmation extends UnlistedSpecialPage {
  */
 class EmailInvalidation extends UnlistedSpecialPage {
        public function __construct() {
-               parent::__construct( 'Invalidateemail' );
+               parent::__construct( 'Invalidateemail', 'editmyprivateinfo' );
        }
 
        function execute( $code ) {
                $this->setHeaders();
                $this->checkReadOnly();
+               $this->checkPermissions();
                $this->attemptInvalidate( $code );
        }
 
index 21becd6..614bd3e 100644 (file)
@@ -175,6 +175,7 @@ class SpecialContributions extends SpecialPage {
                                'target' => $target,
                                'contribs' => $this->opts['contribs'],
                                'namespace' => $this->opts['namespace'],
+                               'tagfilter' => $this->opts['tagfilter'],
                                'year' => $this->opts['year'],
                                'month' => $this->opts['month'],
                                'deletedOnly' => $this->opts['deletedOnly'],
@@ -297,7 +298,7 @@ class SpecialContributions extends SpecialPage {
 
                if ( ( $id !== null ) || ( $id === null && IP::isIPAddress( $username ) ) ) {
                        if ( $this->getUser()->isAllowed( 'block' ) ) { # Block / Change block / Unblock links
-                               if ( $target->isBlocked() ) {
+                               if ( $target->isBlocked() && $target->getBlock()->getType() != Block::TYPE_AUTO ) {
                                        $tools[] = Linker::linkKnown( # Change block link
                                                SpecialPage::getTitleFor( 'Block', $username ),
                                                $this->msg( 'change-blocklink' )->escaped()
@@ -566,7 +567,7 @@ class SpecialContributions extends SpecialPage {
 
                $dateSelectionAndSubmit = Xml::tags( 'td', array( 'colspan' => 2 ),
                        Xml::dateMenu(
-                               $this->opts['year'] === '' ? gmdate( 'Y' ) : $this->opts['year'],
+                               $this->opts['year'] === '' ? MWTimestamp::getInstance()->format( 'Y' ) : $this->opts['year'],
                                $this->opts['month']
                        ) . ' ' .
                                Xml::submitButton(
index f297039..b6005de 100644 (file)
@@ -49,7 +49,7 @@ class SpecialEditWatchlist extends UnlistedSpecialPage {
        private $badItems = array();
 
        public function __construct() {
-               parent::__construct( 'EditWatchlist' );
+               parent::__construct( 'EditWatchlist', 'editmywatchlist' );
        }
 
        /**
index 57e552b..e7ced52 100644 (file)
@@ -35,7 +35,8 @@ class SpecialFilepath extends RedirectSpecialPage {
 
        // implement by redirecting through Special:Redirect/file
        function getRedirect( $par ) {
-               return SpecialPage::getSafeTitleFor( 'Redirect', 'file/' . $par );
+               $file = $par ?: $this->getRequest()->getText( 'file' );
+               return SpecialPage::getSafeTitleFor( 'Redirect', 'file/' . $file );
        }
 
        protected function getGroupName() {
index f508b7c..24bd19f 100644 (file)
@@ -134,13 +134,18 @@ class ImageListPager extends TablePager {
        }
 
        function isFieldSortable( $field ) {
+               global $wgMiserMode;
                if ( $this->mIncluding ) {
                        return false;
                }
-               static $sortable = array( 'img_timestamp', 'img_name' );
-               if ( $field == 'img_size' ) {
-                       # No index for both img_size and img_user_text
-                       return !isset( $this->mQueryConds['img_user_text'] );
+               $sortable = array( 'img_timestamp', 'img_name', 'img_size' );
+               if ( $wgMiserMode && isset( $this->mQueryConds['img_user_text'] ) ) {
+                       // If we're sorting by user, the index only supports sorting by time
+                       if ( $field === 'img_timestamp' ) {
+                               return true;
+                       } else {
+                               return false;
+                       }
                }
 
                return in_array( $field, $sortable );
@@ -255,7 +260,7 @@ class ImageListPager extends TablePager {
        function getForm() {
                global $wgScript, $wgMiserMode;
                $inputForm = array();
-               $inputForm['table_pager_limit_label'] = $this->getLimitSelect();
+               $inputForm['table_pager_limit_label'] = $this->getLimitSelect( array( 'tabindex' => 1 ) );
                if ( !$wgMiserMode ) {
                        $inputForm['listfiles_search_for'] = Html::input(
                                'ilsearch',
@@ -265,6 +270,7 @@ class ImageListPager extends TablePager {
                                        'size' => '40',
                                        'maxlength' => '255',
                                        'id' => 'mw-ilsearch',
+                                       'tabindex' => 2,
                                )
                        );
                }
@@ -272,6 +278,7 @@ class ImageListPager extends TablePager {
                        'size' => '40',
                        'maxlength' => '255',
                        'id' => 'mw-listfiles-user',
+                       'tabindex' => 3,
                ) );
 
                return Html::openElement( 'form',
@@ -279,7 +286,7 @@ class ImageListPager extends TablePager {
                ) .
                        Xml::fieldset( $this->msg( 'listfiles' )->text() ) .
                        Html::hidden( 'title', $this->getTitle()->getPrefixedText() ) .
-                       Xml::buildForm( $inputForm, 'table_pager_limit_submit' ) .
+                       Xml::buildForm( $inputForm, 'table_pager_limit_submit', array( 'tabindex' => 4 ) ) .
                        $this->getHiddenFields( array( 'limit', 'ilsearch', 'user', 'title' ) ) .
                        Html::closeElement( 'fieldset' ) .
                        Html::closeElement( 'form' ) . "\n";
index 57bfea5..82a4f70 100644 (file)
@@ -50,6 +50,8 @@ class SpecialListGroupRights extends SpecialPage {
                $out = $this->getOutput();
                $out->addModuleStyles( 'mediawiki.special' );
 
+               $out->wrapWikiMsg( "<div class=\"mw-listgrouprights-key\">\n$1\n</div>", 'listgrouprights-key' );
+
                $out->addHTML(
                        Xml::openElement( 'table', array( 'class' => 'wikitable mw-listgrouprights-table' ) ) .
                                '<tr>' .
@@ -129,10 +131,7 @@ class SpecialListGroupRights extends SpecialPage {
                                '
                        ) );
                }
-               $out->addHTML(
-                       Xml::closeElement( 'table' ) . "\n<br /><hr />\n"
-               );
-               $out->wrapWikiMsg( "<div class=\"mw-listgrouprights-key\">\n$1\n</div>", 'listgrouprights-key' );
+               $out->addHTML( Xml::closeElement( 'table' ) );
        }
 
        /**
index 5d55a28..2ffdd89 100644 (file)
@@ -74,14 +74,14 @@ class SpecialLog extends SpecialPage {
                        $opts->setValue( 'month', '' );
                }
 
-               // Reset the log type to default (nothing) if it's invalid or if the
-               // user does not possess the right to view it
+               // If the user doesn't have the right permission to view the specific
+               // log type, throw a PermissionsError
+               // If the log type is invalid, just show all public logs
                $type = $opts->getValue( 'type' );
-               if ( !LogPage::isLogType( $type )
-                       || ( isset( $wgLogRestrictions[$type] )
-                               && !$this->getUser()->isAllowed( $wgLogRestrictions[$type] ) )
-               ) {
+               if ( !LogPage::isLogType( $type ) ) {
                        $opts->setValue( 'type', '' );
+               } elseif ( isset( $wgLogRestrictions[$type] ) && !$this->getUser()->isAllowed( $wgLogRestrictions[$type] ) ) {
+                       throw new PermissionsError( $wgLogRestrictions[$type] );
                }
 
                # Handle type-specific inputs
index 7ff5d7b..3eeae31 100644 (file)
@@ -35,7 +35,7 @@ class MIMEsearchPage extends QueryPage {
        }
 
        function isExpensive() {
-               return true;
+               return false;
        }
 
        function isSyndicated() {
@@ -51,12 +51,14 @@ class MIMEsearchPage extends QueryPage {
        }
 
        public function getQueryInfo() {
-               return array(
+               $qi = array(
                        'tables' => array( 'image' ),
                        'fields' => array(
                                'namespace' => NS_FILE,
                                'title' => 'img_name',
-                               'value' => 'img_major_mime',
+                               // Still have a value field just in case,
+                               // but it isn't actually used for sorting.
+                               'value' => 'img_name',
                                'img_size',
                                'img_width',
                                'img_height',
@@ -65,9 +67,36 @@ class MIMEsearchPage extends QueryPage {
                        ),
                        'conds' => array(
                                'img_major_mime' => $this->major,
-                               'img_minor_mime' => $this->minor
-                       )
+                               'img_minor_mime' => $this->minor,
+                               // This is in order to trigger using
+                               // the img_media_mime index in "range" mode.
+                               'img_media_type' => array(
+                                       MEDIATYPE_BITMAP,
+                                       MEDIATYPE_DRAWING,
+                                       MEDIATYPE_AUDIO,
+                                       MEDIATYPE_VIDEO,
+                                       MEDIATYPE_MULTIMEDIA,
+                                       MEDIATYPE_UNKNOWN,
+                                       MEDIATYPE_OFFICE,
+                                       MEDIATYPE_TEXT,
+                                       MEDIATYPE_EXECUTABLE,
+                                       MEDIATYPE_ARCHIVE,
+                               ),
+                       ),
                );
+               return $qi;
+       }
+
+       /**
+        * The index is on (img_media_type, img_major_mime, img_minor_mime)
+        * which unfortunately doesn't have img_name at the end for sorting.
+        * So tell db to sort it however it wishes (Its not super important
+        * that this report gives results in a logical order). As an aditional
+        * note, mysql seems to by default order things by img_name ASC, which
+        * is what we ideally want, so everything works out fine anyhow.
+        */
+       function getOrderFields() {
+               return array();
        }
 
        function execute( $par ) {
index 2ba3c06..0e342cc 100644 (file)
@@ -624,7 +624,7 @@ class MovePageForm extends UnlistedSpecialPage {
                $extraOutput = array();
                $count = 1;
                foreach ( $extraPages as $oldSubpage ) {
-                       if ( $ot->equals( $oldSubpage ) ) {
+                       if ( $ot->equals( $oldSubpage ) || $nt->equals( $oldSubpage ) ) {
                                # Already did this one.
                                continue;
                        }
@@ -690,13 +690,8 @@ class MovePageForm extends UnlistedSpecialPage {
                }
 
                # Deal with watches (we don't watch subpages)
-               if ( $this->watch && $user->isLoggedIn() ) {
-                       $user->addWatch( $ot );
-                       $user->addWatch( $nt );
-               } else {
-                       $user->removeWatch( $ot );
-                       $user->removeWatch( $nt );
-               }
+               WatchAction::doWatchOrUnwatch( $this->watch, $ot, $user );
+               WatchAction::doWatchOrUnwatch( $this->watch, $nt, $user );
 
                # Re-clear the file redirect cache, which may have been polluted by
                # parsing in messages above. See CR r56745.
index ae04061..43d4855 100644 (file)
@@ -334,13 +334,6 @@ class SpecialNewpages extends IncludableSpecialPage {
 
                $query = array( 'redirect' => 'no' );
 
-               if( $this->patrollable( $result ) ) {
-                       // Tell Article.php that we want to patrol the first revision
-                       // and not the current one. Has effect if both recentchages and new page
-                       // patrolling are enabled, we set it everytime for link consistency though.
-                       $query['patrolpage'] = 1;
-               }
-
                // Linker::linkKnown() uses 'known' and 'noclasses' options.
                // This breaks the colouration for stubs.
                $plink = Linker::link(
index 72a3476..27331e5 100644 (file)
@@ -127,9 +127,22 @@ class SpecialPagesWithProp extends QueryPage {
                $title = Title::newFromRow( $result );
                $ret = Linker::link( $title, null, array(), array(), array( 'known' ) );
                if ( $result->pp_value !== '' ) {
-                       $propValue = Html::element( 'span', array( 'class' => 'prop-value' ), $result->pp_value );
-                       $value = $this->msg( 'parentheses' )->rawParams( $propValue )->escaped();
-                       $ret .= " $value";
+                       // Do not show very long or binary values on the special page
+                       $valueLength = strlen( $result->pp_value );
+                       $isBinary = strpos( $result->pp_value, "\0" ) !== false;
+                       $isTooLong = $valueLength > 1024;
+
+                       if ( $isBinary || $isTooLong ) {
+                               $message = $this
+                                       ->msg( $isBinary ? 'pageswithprop-prophidden-binary' : 'pageswithprop-prophidden-long' )
+                                       ->numParams( round( $valueLength / 1024, 2 ) );
+
+                               $propValue = Html::element( 'span', array( 'class' => 'prop-value-hidden' ), $message->text() );
+                       } else {
+                               $propValue = Html::element( 'span', array( 'class' => 'prop-value' ), $result->pp_value );
+                       }
+
+                       $ret .= $this->msg( 'colon-separator' )->escaped() . $propValue;
                }
 
                return $ret;
index fd46c03..69c4056 100644 (file)
@@ -43,7 +43,7 @@ class SpecialPasswordReset extends FormSpecialPage {
        private $result;
 
        public function __construct() {
-               parent::__construct( 'PasswordReset' );
+               parent::__construct( 'PasswordReset', 'editmyprivateinfo' );
        }
 
        public function userCanExecute( User $user ) {
@@ -103,11 +103,8 @@ class SpecialPasswordReset extends FormSpecialPage {
        }
 
        public function alterForm( HTMLForm $form ) {
-               $form->setSubmitTextMsg( 'mailmypassword' );
-       }
-
-       protected function preText() {
                global $wgPasswordResetRoutes;
+
                $i = 0;
                if ( isset( $wgPasswordResetRoutes['username'] ) && $wgPasswordResetRoutes['username'] ) {
                        $i++;
@@ -119,7 +116,10 @@ class SpecialPasswordReset extends FormSpecialPage {
                        $i++;
                }
 
-               return $this->msg( 'passwordreset-pretext', $i )->parseAsBlock();
+               $message = ( $i > 1 ) ? 'passwordreset-text-many' : 'passwordreset-text-one';
+
+               $form->setHeaderText( $this->msg( $message, $i )->parseAsBlock() );
+               $form->setSubmitTextMsg( 'mailmypassword' );
        }
 
        /**
index bb6bc95..fe91ada 100644 (file)
@@ -69,6 +69,10 @@ class SpecialPreferences extends SpecialPage {
        }
 
        private function showResetForm() {
+               if ( !$this->getUser()->isAllowed( 'editmyoptions' ) ) {
+                       throw new PermissionsError( 'editmyoptions' );
+               }
+
                $this->getOutput()->addWikiMsg( 'prefs-reset-intro' );
 
                $htmlForm = new HTMLForm( array(), $this->getContext(), 'prefs-restore' );
@@ -82,6 +86,10 @@ class SpecialPreferences extends SpecialPage {
        }
 
        public function submitReset( $formData ) {
+               if ( !$this->getUser()->isAllowed( 'editmyoptions' ) ) {
+                       throw new PermissionsError( 'editmyoptions' );
+               }
+
                $user = $this->getUser();
                $user->resetOptions( 'all' );
                $user->saveSettings();
index 1322d54..f2efd0f 100644 (file)
  * @ingroup SpecialPage
  */
 class SpecialPrefixindex extends SpecialAllpages {
+
+       /**
+        * Whether to remove the searched prefix from the displayed link. Useful
+        * for inclusion of a set of sub pages in a root page.
+        */
+       protected $stripPrefix = false;
+
        // Inherit $maxPerPage
 
        function __construct() {
@@ -53,6 +60,7 @@ class SpecialPrefixindex extends SpecialAllpages {
                $ns = $request->getIntOrNull( 'namespace' );
                $namespace = (int)$ns; // if no namespace given, use 0 (NS_MAIN).
                $hideredirects = $request->getBool( 'hideredirects', false );
+               $this->stripPrefix = $request->getBool( 'stripprefix', $this->stripPrefix );
 
                $namespaces = $wgContLang->getNamespaces();
                $out->setPageTitle(
@@ -122,6 +130,12 @@ class SpecialPrefixindex extends SpecialAllpages {
                                'hideredirects',
                                $hideredirects
                        ) . ' ' .
+                       Xml::checkLabel(
+                               $this->msg( 'prefixindex-strip' )->text(),
+                               'stripprefix',
+                               'stripprefix',
+                               $this->stripPrefix
+                       ) . ' ' .
                        Xml::submitButton( $this->msg( 'allpagessubmit' )->text() ) .
                        "</td>
                        </tr>";
@@ -191,13 +205,18 @@ class SpecialPrefixindex extends SpecialAllpages {
                        if ( $res->numRows() > 0 ) {
                                $out = Xml::openElement( 'table', array( 'id' => 'mw-prefixindex-list-table' ) );
 
+                               $prefixLength = strlen( $prefix );
                                while ( ( $n < $this->maxPerPage ) && ( $s = $res->fetchObject() ) ) {
                                        $t = Title::makeTitle( $s->page_namespace, $s->page_title );
                                        if ( $t ) {
+                                               $displayed = $t->getText();
+                                               if ( $this->stripPrefix ) {
+                                                       $displayed = substr( $displayed, $prefixLength );
+                                               }
                                                $link = ( $s->page_is_redirect ? '<div class="allpagesredirect">' : '' ) .
                                                        Linker::linkKnown(
                                                                $t,
-                                                               htmlspecialchars( $t->getText() ),
+                                                               htmlspecialchars( $displayed ),
                                                                $s->page_is_redirect ? array( 'class' => 'mw-redirect' ) : array()
                                                        ) .
                                                        ( $s->page_is_redirect ? '</div>' : '' );
index 1b406d1..d263202 100644 (file)
@@ -393,7 +393,7 @@ class SpecialRecentChanges extends IncludableSpecialPage {
 
                $fields = RecentChange::selectFields();
                // JOIN on watchlist for users
-               if ( $uid ) {
+               if ( $uid && $this->getUser()->isAllowed( 'viewmywatchlist' ) ) {
                        $tables[] = 'watchlist';
                        $fields[] = 'wl_user';
                        $fields[] = 'wl_notificationtimestamp';
@@ -516,6 +516,13 @@ class SpecialRecentChanges extends IncludableSpecialPage {
                $counter = 1;
                $list = ChangesList::newFromContext( $this->getContext() );
 
+               if ( $rows->numRows() === 0 ) {
+                       $this->getOutput()->wrapWikiMsg(
+                               "<div class='mw-changeslist-empty'>\n$1\n</div>", 'recentchanges-noresult'
+                       );
+                       return;
+               }
+
                $s = $list->beginRecentChangesList();
                foreach ( $rows as $obj ) {
                        if ( $limit == 0 ) {
@@ -592,10 +599,6 @@ class SpecialRecentChanges extends IncludableSpecialPage {
 
                $defaults = $opts->getAllValues();
                $nondefaults = $opts->getChangedValues();
-               $opts->consumeValues( array(
-                       'namespace', 'invert', 'associated', 'tagfilter',
-                       'categories', 'categories_any'
-               ) );
 
                $panel = array();
                $panel[] = $this->optionsPanel( $defaults, $nondefaults );
@@ -664,6 +667,10 @@ class SpecialRecentChanges extends IncludableSpecialPage {
         * @return array
         */
        function getExtraOptions( $opts ) {
+               $opts->consumeValues( array(
+                       'namespace', 'invert', 'associated', 'tagfilter', 'categories', 'categories_any'
+               ) );
+
                $extraOpts = array();
                $extraOpts['namespace'] = $this->namespaceFilterForm( $opts );
 
@@ -677,7 +684,10 @@ class SpecialRecentChanges extends IncludableSpecialPage {
                        $extraOpts['tagfilter'] = $tagFilter;
                }
 
-               wfRunHooks( 'SpecialRecentChangesPanel', array( &$extraOpts, $opts ) );
+               // Don't fire the hook for subclasses. (Or should we?)
+               if ( $this->getName() === 'Recentchanges' ) {
+                       wfRunHooks( 'SpecialRecentChangesPanel', array( &$extraOpts, $opts ) );
+               }
 
                return $extraOpts;
        }
@@ -704,8 +714,7 @@ class SpecialRecentChanges extends IncludableSpecialPage {
        }
 
        /**
-        * Send the text to be displayed after the options, for use in
-        * Recentchangeslinked
+        * Send the text to be displayed after the options, for use in subclasses.
         *
         * @param FormOptions $opts
         */
index 062e09d..a844704 100644 (file)
@@ -72,7 +72,7 @@ class SpecialRecentchangeslinked extends SpecialRecentChanges {
                $outputPage = $this->getOutput();
                $title = Title::newFromURL( $target );
                if ( !$title || $title->getInterwiki() != '' ) {
-                       $outputPage->wrapWikiMsg( "<div class=\"errorbox\">\n$1\n</div><br style=\"clear: both\" />", 'allpagesbadtitle' );
+                       $outputPage->wrapWikiMsg( "<div class=\"errorbox\">\n$1\n</div>", 'allpagesbadtitle' );
                        return false;
                }
 
@@ -99,7 +99,7 @@ class SpecialRecentchangeslinked extends SpecialRecentChanges {
 
                // left join with watchlist table to highlight watched rows
                $uid = $this->getUser()->getId();
-               if ( $uid ) {
+               if ( $uid && $this->getUser()->isAllowed( 'viewmywatchlist' ) ) {
                        $tables[] = 'watchlist';
                        $select[] = 'wl_user';
                        $join_conds['watchlist'] = array( 'LEFT JOIN', array(
@@ -226,21 +226,21 @@ class SpecialRecentchangeslinked extends SpecialRecentChanges {
        }
 
        /**
-        * @param $opts FormOptions
+        * Get options to be displayed in a form
+        *
+        * @param FormOptions $opts
         * @return array
         */
        function getExtraOptions( $opts ) {
-               $opts->consumeValues( array( 'showlinkedto', 'target', 'tagfilter' ) );
-               $extraOpts = array();
-               $extraOpts['namespace'] = $this->namespaceFilterForm( $opts );
+               $extraOpts = parent::getExtraOptions( $opts );
+
+               $opts->consumeValues( array( 'showlinkedto', 'target' ) );
+
                $extraOpts['target'] = array( $this->msg( 'recentchangeslinked-page' )->escaped(),
                        Xml::input( 'target', 40, str_replace( '_', ' ', $opts['target'] ) ) .
                        Xml::check( 'showlinkedto', $opts['showlinkedto'], array( 'id' => 'showlinkedto' ) ) . ' ' .
                        Xml::label( $this->msg( 'recentchangeslinked-to' )->text(), 'showlinkedto' ) );
-               $tagFilter = ChangeTags::buildTagFilterSelector( $opts['tagfilter'] );
-               if ( $tagFilter ) {
-                       $extraOpts['tagfilter'] = $tagFilter;
-               }
+
                return $extraOpts;
        }
 
@@ -265,10 +265,4 @@ class SpecialRecentchangeslinked extends SpecialRecentChanges {
                        $this->getOutput()->addBacklinkSubtitle( $target );
                }
        }
-
-       function setBottomText( FormOptions $opts ) {
-               if ( isset( $this->mResultEmpty ) && $this->mResultEmpty ) {
-                       $this->getOutput()->addWikiMsg( 'recentchangeslinked-noresult' );
-               }
-       }
 }
diff --git a/includes/specials/SpecialResetTokens.php b/includes/specials/SpecialResetTokens.php
new file mode 100644 (file)
index 0000000..2285b52
--- /dev/null
@@ -0,0 +1,145 @@
+<?php
+/**
+ * Implements Special:ResetTokens
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup SpecialPage
+ */
+
+/**
+ * Let users reset tokens like the watchlist token.
+ *
+ * @ingroup SpecialPage
+ */
+class SpecialResetTokens extends FormSpecialPage {
+       private $tokensList;
+
+       public function __construct() {
+               parent::__construct( 'ResetTokens' );
+       }
+
+       /**
+        * Returns the token information list for this page after running
+        * the hook and filtering out disabled preferences.
+        *
+        * @return array
+        */
+       protected function getTokensList() {
+               global $wgHiddenPrefs;
+
+               if ( !isset( $this->tokensList ) ) {
+                       $tokens = array(
+                               array( 'preference' => 'watchlisttoken', 'label-message' => 'resettokens-watchlist-token' ),
+                       );
+                       wfRunHooks( 'SpecialResetTokensTokens', array( &$tokens ) );
+
+                       $tokens = array_filter( $tokens, function ( $tok ) use ( $wgHiddenPrefs ) {
+                               return !in_array( $tok['preference'], $wgHiddenPrefs );
+                       } );
+
+                       $this->tokensList = $tokens;
+               }
+
+               return $this->tokensList;
+       }
+
+       public function execute( $par ) {
+               // This is a preferences page, so no user JS for y'all.
+               $this->getOutput()->disallowUserJs();
+
+               parent::execute( $par );
+
+               $this->getOutput()->addReturnTo( SpecialPage::getTitleFor( 'Preferences' ) );
+       }
+
+       public function onSuccess() {
+               $this->getOutput()->wrapWikiMsg(
+                       "<div class='successbox'>\n$1\n</div>",
+                       'resettokens-done'
+               );
+       }
+
+       /**
+        * Display appropriate message if there's nothing to do.
+        * The submit button is also suppressed in this case (see alterForm()).
+        */
+       protected function getFormFields() {
+               $user = $this->getUser();
+               $tokens = $this->getTokensList();
+
+               if ( $tokens ) {
+                       $tokensForForm = array();
+                       foreach ( $tokens as $tok ) {
+                               $label = $this->msg( 'resettokens-token-label' )
+                                       ->rawParams( $this->msg( $tok['label-message'] )->escaped() )
+                                       ->params( $user->getTokenFromOption( $tok['preference'] ) )
+                                       ->escaped();
+                               $tokensForForm[ $label ] = $tok['preference'];
+                       }
+
+                       $desc = array(
+                               'label-message' => 'resettokens-tokens',
+                               'type' => 'multiselect',
+                               'options' => $tokensForForm,
+                       );
+               } else {
+                       $desc = array(
+                               'label-message' => 'resettokens-no-tokens',
+                               'type' => 'info',
+                       );
+               }
+
+               return array(
+                       'tokens' => $desc,
+               );
+       }
+
+       /**
+        * Suppress the submit button if there's nothing to do;
+        * provide additional message on it otherwise.
+        */
+       protected function alterForm( HTMLForm $form ) {
+               if ( $this->getTokensList() ) {
+                       $form->setSubmitTextMsg( 'resettokens-resetbutton' );
+               } else {
+                       $form->suppressDefaultSubmit();
+               }
+       }
+
+       public function onSubmit( array $formData ) {
+               if ( $formData['tokens'] ) {
+                       $user = $this->getUser();
+                       foreach ( $formData['tokens'] as $tokenPref ) {
+                               $user->resetTokenFromOption( $tokenPref );
+                       }
+                       $user->saveSettings();
+
+                       return true;
+               }
+
+               return false;
+       }
+
+       protected function getGroupName() {
+               return 'users';
+       }
+
+       public function isListed() {
+               return (bool)$this->getTokensList();
+       }
+}
index 9f4b9da..1e9adf5 100644 (file)
@@ -409,7 +409,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                                                Xml::listDropDown( 'wpRevDeleteReasonList',
                                                        $this->msg( 'revdelete-reason-dropdown' )->inContentLanguage()->text(),
                                                        $this->msg( 'revdelete-reasonotherlist' )->inContentLanguage()->text(),
-                                                       '', 'wpReasonDropDown', 1
+                                                       $this->getRequest()->getText( 'wpRevDeleteReasonList', 'other' ), 'wpReasonDropDown', 1
                                                ) .
                                        '</td>' .
                                "</tr><tr>\n" .
index 94995db..8a2163b 100644 (file)
@@ -1183,6 +1183,6 @@ class SpecialSearch extends SpecialPage {
        }
 
        protected function getGroupName() {
-               return 'redirects';
+               return 'pages';
        }
 }
index d87f263..b19c6e8 100644 (file)
@@ -58,7 +58,7 @@ class SpecialTags extends SpecialPage {
                        $html .= $this->doTagRow( $tag, 0 );
                }
 
-               $out->addHTML( Xml::tags( 'table', array( 'class' => 'wikitable mw-tags-table' ), $html ) );
+               $out->addHTML( Xml::tags( 'table', array( 'class' => 'wikitable sortable mw-tags-table' ), $html ) );
        }
 
        function doTagRow( $tag, $hitcount ) {
index c49c3eb..d4aed11 100644 (file)
@@ -792,12 +792,16 @@ class SpecialUndelete extends SpecialPage {
                        Xml::openElement( 'form', array( 'method' => 'get', 'action' => $wgScript ) ) .
                                Xml::fieldset( $this->msg( 'undelete-search-box' )->text() ) .
                                Html::hidden( 'title', $this->getTitle()->getPrefixedDBkey() ) .
-                               Xml::inputLabel(
-                                       $this->msg( 'undelete-search-prefix' )->text(),
-                                       'prefix',
+                               Html::rawElement(
+                                       'label',
+                                       array( 'for' => 'prefix' ),
+                                       $this->msg( 'undelete-search-prefix' )->parse()
+                               ) .
+                               Xml::input(
                                        'prefix',
                                        20,
-                                       $this->mSearchPrefix
+                                       $this->mSearchPrefix,
+                                       array( 'id' => 'prefix', 'autofocus' => true )
                                ) . ' ' .
                                Xml::submitButton( $this->msg( 'undelete-search-submit' )->text() ) .
                                Xml::closeElement( 'fieldset' ) .
@@ -1252,7 +1256,7 @@ class SpecialUndelete extends SpecialPage {
                                        Xml::label( $this->msg( 'undeletecomment' )->text(), 'wpComment' ) .
                                        "</td>
                                        <td class='mw-input'>" .
-                                       Xml::input( 'wpComment', 50, $this->mComment, array( 'id' => 'wpComment' ) ) .
+                                       Xml::input( 'wpComment', 50, $this->mComment, array( 'id' => 'wpComment', 'autofocus' => true ) ) .
                                        "</td>
                                </tr>
                                <tr>
index b147b83..6e557f3 100644 (file)
@@ -51,9 +51,6 @@ class LoginForm extends SpecialPage {
        var $mAbortLoginErrorMsg = 'login-abort-generic';
        private $mLoaded = false;
        private $mSecureLoginUrl;
-       // TODO Remove old forms and mShowVForm gating after all WMF wikis have
-       // adapted messages and help links to new versions.
-       private $mShowVForm;
 
        /**
         * @ var WebRequest
@@ -144,17 +141,10 @@ class LoginForm extends SpecialPage {
        }
 
        function getDescription() {
-               if ( !$this->getUser()->isAllowed( 'createaccount' ) ) {
-                       return $this->msg( 'userloginnocreate' )->text();
-               }
-               if ( $this->mShowVForm ) {
-                       if ( $this->mType === 'signup' ) {
-                               return $this->msg( 'createaccount' )->text();
-                       } else {
-                               return $this->msg( 'login' )->text();
-                       }
+               if ( $this->mType === 'signup' ) {
+                       return $this->msg( 'createaccount' )->text();
                } else {
-                       return $this->msg( 'userlogin' )->text();
+                       return $this->msg( 'login' )->text();
                }
        }
 
@@ -168,13 +158,11 @@ class LoginForm extends SpecialPage {
 
                $this->load();
 
-               // Check for [[Special:Userlogin/signup]. This affects form display and
+               // Check for [[Special:Userlogin/signup]]. This affects form display and
                // page title.
                if ( $subPage == 'signup' ) {
                        $this->mType = 'signup';
                }
-               $this->mShowVForm = $this->shouldShowVForm();
-
                $this->setHeaders();
 
                // If logging in and not on HTTPS, either redirect to it or offer a link.
@@ -1039,22 +1027,6 @@ class LoginForm extends SpecialPage {
                }
        }
 
-       /**
-        * Whether to show new vertically laid out login form.
-        * ?useNew=1 forces new style, ?useNew=0 forces old style,
-        * otherwise consult $wgUseVFormUserLogin.
-        * @return Boolean
-        */
-       private function shouldShowVForm() {
-               global $wgUseVFormCreateAccount, $wgUseVFormUserLogin;
-
-               if ( $this->mType == 'signup' ) {
-                       return $this->mRequest->getBool( 'useNew', $wgUseVFormCreateAccount );
-               } else {
-                       return $this->mRequest->getBool( 'useNew', $wgUseVFormUserLogin );
-               }
-       }
-
        /**
         * @private
         */
@@ -1093,39 +1065,34 @@ class LoginForm extends SpecialPage {
                }
 
                if ( $this->mType == 'signup' ) {
-                       $out->addModules( 'mediawiki.special.userlogin.signup' );
-                       if ( $this->mShowVForm ) {
-                               $template = new UsercreateTemplateVForm();
-                               $out->addModuleStyles( array(
-                                       'mediawiki.ui',
-                                       'mediawiki.special.createaccount.vform'
-                               ) );
-                               // XXX hack pending RL or JS parse() support for complex content messages
-                               // https://bugzilla.wikimedia.org/show_bug.cgi?id=25349
-                               $out->addJsConfigVars( 'wgCreateacctImgcaptchaHelp',
-                                       $this->msg( 'createacct-imgcaptcha-help' )->parse() );
-                               $out->addModules( 'mediawiki.special.createaccount.vform.js' );
-                               // Must match number of benefits defined in messages
-                               $template->set( 'benefitCount', 3 );
-                       } else {
-                               $template = new UsercreateTemplate();
-                       }
+                       $template = new UsercreateTemplate();
+
+                       $out->addModuleStyles( array(
+                               'mediawiki.ui',
+                               'mediawiki.special.createaccount'
+                       ) );
+                       // XXX hack pending RL or JS parse() support for complex content messages
+                       // https://bugzilla.wikimedia.org/show_bug.cgi?id=25349
+                       $out->addJsConfigVars( 'wgCreateacctImgcaptchaHelp',
+                               $this->msg( 'createacct-imgcaptcha-help' )->parse() );
+                       $out->addModules( array(
+                               'mediawiki.special.createaccount.js'
+                       ) );
+                       // Must match number of benefits defined in messages
+                       $template->set( 'benefitCount', 3 );
+
                        $q = 'action=submitlogin&type=signup';
                        $linkq = 'type=login';
-                       $linkmsg = 'gotaccount';
                } else {
-                       if ( $this->mShowVForm ) {
-                               $template = new UserloginTemplateVForm();
-                               $out->addModuleStyles( array(
-                                       'mediawiki.ui',
-                                       'mediawiki.special.userlogin.vform'
-                               ) );
-                       } else {
-                               $template = new UserloginTemplate();
-                       }
+                       $template = new UserloginTemplate();
+
+                       $out->addModuleStyles( array(
+                               'mediawiki.ui',
+                               'mediawiki.special.userlogin'
+                       ) );
+
                        $q = 'action=submitlogin&type=login';
                        $linkq = 'type=signup';
-                       $linkmsg = 'nologin';
                }
 
                if ( $this->mReturnTo !== '' ) {
@@ -1144,17 +1111,8 @@ class LoginForm extends SpecialPage {
                        if ( $wgLoginLanguageSelector && $this->mLanguage ) {
                                $linkq .= '&uselang=' . $this->mLanguage;
                        }
-                       if ( !$this->mShowVForm ) {
-                               $link = Html::element( 'a', array( 'href' => $titleObj->getLocalURL( $linkq ) ),
-                                       $this->msg( $linkmsg . 'link' )->text() ); # Calling either 'gotaccountlink' or 'nologinlink'
-
-                                       $template->set( 'link', $this->msg( $linkmsg )->rawParams( $link )->parse() );
-
-                       } else {
-                               // Supply URL, login template creates the button.
-                               // (The template 'link' key, passed above, is obsolete in the VForm design.)
-                               $template->set( 'createOrLoginHref', $titleObj->getLocalURL( $linkq ) );
-                       }
+                       // Supply URL, login template creates the button.
+                       $template->set( 'createOrLoginHref', $titleObj->getLocalURL( $linkq ) );
                } else {
                        $template->set( 'link', '' );
                }
@@ -1195,6 +1153,12 @@ class LoginForm extends SpecialPage {
                $template->set( 'cansecurelogin', ( $wgSecureLogin === true ) );
                $template->set( 'stickHTTPS', $this->mStickHTTPS );
 
+               if ( $this->mType === 'signup' && $user->isLoggedIn() ) {
+                       $template->set( 'createAnother', true );
+               } else {
+                       $template->set( 'createAnother', false );
+               }
+
                if ( $this->mType == 'signup' ) {
                        if ( !self::getCreateaccountToken() ) {
                                self::setCreateaccountToken();
index f23bc2d..77f2063 100644 (file)
@@ -110,6 +110,17 @@ class UserrightsPage extends SpecialPage {
                }
 
                if ( !$this->userCanChangeRights( $user, true ) ) {
+                       if ( $this->isself && $request->getCheck( 'success' ) ) {
+                               // bug 48609: if the user just removed its own rights, this would
+                               // leads it in a "permissions error" page. In that case, show a
+                               // message that it can't anymore use this page instead of an error
+                               $this->setHeaders();
+                               $out = $this->getOutput();
+                               $out->wrapWikiMsg( "<div class=\"successbox\">\n$1\n</div>", 'userrights-removed-self' );
+                               $out->returnToMain();
+                               return;
+                       }
+
                        // @todo FIXME: There may be intermediate groups we can mention.
                        $msg = $user->isAnon() ? 'userrights-nologin' : 'userrights-notallowed';
                        throw new PermissionsError( null, array( array( $msg ) ) );
@@ -163,7 +174,7 @@ class UserrightsPage extends SpecialPage {
        }
 
        function getSuccessURL() {
-               return $this->getTitle( $this->mTarget )->getFullURL();
+               return $this->getTitle( $this->mTarget )->getFullURL( array( 'success' => 1 ) );
        }
 
        /**
@@ -205,6 +216,8 @@ class UserrightsPage extends SpecialPage {
         * @return Array: Tuple of added, then removed groups
         */
        function doSaveUserGroups( $user, $add, $remove, $reason = '' ) {
+               global $wgAuth;
+
                // Validate input set...
                $isself = ( $user->getName() == $this->getUser()->getName() );
                $groups = $user->getGroups();
@@ -240,6 +253,9 @@ class UserrightsPage extends SpecialPage {
                // Ensure that caches are cleared
                $user->invalidateCache();
 
+               // update groups in external authentication database
+               $wgAuth->updateExternalDBGroups( $user, $add, $remove );
+
                wfDebug( 'oldGroups: ' . print_r( $oldGroups, true ) );
                wfDebug( 'newGroups: ' . print_r( $newGroups, true ) );
                wfRunHooks( 'UserRights', array( &$user, $add, $remove ) );
@@ -391,7 +407,7 @@ class UserrightsPage extends SpecialPage {
                        Html::openElement( 'form', array( 'method' => 'get', 'action' => $wgScript, 'name' => 'uluser', 'id' => 'mw-userrights-form1' ) ) .
                        Html::hidden( 'title', $this->getTitle()->getPrefixedText() ) .
                        Xml::fieldset( $this->msg( 'userrights-lookup-user' )->text() ) .
-                       Xml::inputLabel( $this->msg( 'userrights-user-editname' )->text(), 'user', 'username', 30, str_replace( '_', ' ', $this->mTarget ) ) . ' ' .
+                       Xml::inputLabel( $this->msg( 'userrights-user-editname' )->text(), 'user', 'username', 30, str_replace( '_', ' ', $this->mTarget ), array( 'autofocus' => true ) ) . ' ' .
                        Xml::submitButton( $this->msg( 'editusergroup' )->text() ) .
                        Html::closeElement( 'fieldset' ) .
                        Html::closeElement( 'form' ) . "\n"
index c257dd4..0ba056a 100644 (file)
@@ -129,7 +129,7 @@ class SpecialVersion extends SpecialPage {
                        'Timo Tijhof', 'Daniel Kinzler', 'Jeroen De Dauw', $othersLink
                );
 
-               return wfMessage( 'version-poweredby-credits', date( 'Y' ),
+               return wfMessage( 'version-poweredby-credits', MWTimestamp::getLocalInstance()->format( 'Y' ),
                        $wgLang->listToText( $authorList ) )->text();
        }
 
@@ -390,11 +390,6 @@ class SpecialVersion extends SpecialPage {
                // We want the 'other' type to be last in the list.
                $out .= $this->getExtensionCategory( 'other', $extensionTypes['other'] );
 
-               if ( count( $wgExtensionFunctions ) ) {
-                       $out .= $this->openExtType( $this->msg( 'version-extension-functions' )->text(), 'extension-functions' );
-                       $out .= '<tr><td colspan="4">' . $this->listToText( $wgExtensionFunctions ) . "</td></tr>\n";
-               }
-
                $tags = $wgParser->getTags();
                $cnt = count( $tags );
 
index f5e3660..b322547 100644 (file)
@@ -26,8 +26,8 @@ class SpecialWatchlist extends SpecialPage {
        /**
         * Constructor
         */
-       public function __construct( $page = 'Watchlist' ) {
-               parent::__construct( $page );
+       public function __construct( $page = 'Watchlist', $restriction = 'viewmywatchlist' ) {
+               parent::__construct( $page, $restriction );
        }
 
        /**
@@ -54,17 +54,16 @@ class SpecialWatchlist extends SpecialPage {
                        return;
                }
 
+               // Check permissions
+               $this->checkPermissions();
+
                // Add feed links
-               $wlToken = $user->getOption( 'watchlisttoken' );
-               if ( !$wlToken ) {
-                       $wlToken = MWCryptRand::generateHex( 40 );
-                       $user->setOption( 'watchlisttoken', $wlToken );
-                       $user->saveSettings();
+               $wlToken = $user->getTokenFromOption( 'watchlisttoken' );
+               if ( $wlToken ) {
+                       $this->addFeedLinks( array( 'action' => 'feedwatchlist', 'allrev' => 'allrev',
+                                                               'wlowner' => $user->getName(), 'wltoken' => $wlToken ) );
                }
 
-               $this->addFeedLinks( array( 'action' => 'feedwatchlist', 'allrev' => 'allrev',
-                                                       'wlowner' => $user->getName(), 'wltoken' => $wlToken ) );
-
                $this->setHeaders();
                $this->outputHeader();
 
@@ -387,7 +386,9 @@ class SpecialWatchlist extends SpecialPage {
 
                # If there's nothing to show, stop here
                if ( $numRows == 0 ) {
-                       $output->addWikiMsg( 'watchnochange' );
+                       $output->wrapWikiMsg(
+                               "<div class='mw-changeslist-empty'>\n$1\n</div>", 'recentchanges-noresult'
+                       );
                        return;
                }
 
index 28b5d79..c7a0014 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Html form for account creation.
+ * Html form for account creation (since 1.22 with VForm appearance).
  *
  * 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
  * @ingroup Templates
  */
 
-/**
- * @defgroup Templates Templates
- */
-
 if ( !defined( 'MEDIAWIKI' ) ) {
        die( -1 );
 }
 
-/**
- * @ingroup Templates
- */
-class UsercreateTemplate extends QuickTemplate {
+class UsercreateTemplate extends BaseTemplate {
+
+       /**
+        * Extensions (AntiSpoof and TitleBlacklist) call this in response to
+        * UserCreateForm hook to add checkboxes to the create account form.
+        */
        function addInputItem( $name, $value, $type, $msg, $helptext = false ) {
                $this->data['extraInput'][] = array(
                        'name' => $name,
@@ -44,254 +42,249 @@ class UsercreateTemplate extends QuickTemplate {
        }
 
        function execute() {
-               if ( $this->data['message'] ) {
-?>
-       <div class="<?php $this->text( 'messagetype' ); ?>box">
-<?php
-                       if ( $this->data['messagetype'] == 'error' ) {
-                               ?><strong><?php $this->msg( 'loginerror' ); ?></strong><br /><?php
-                       }
-                       $this->html( 'message' );
-?>
-       </div>
-       <div class="visualClear"></div>
-<?php
-               }
+               global $wgCookieExpiration;
+               $expirationDays = ceil( $wgCookieExpiration / ( 3600 * 24 ) );
 ?>
-
-<div id="signupstart"><?php $this->msgWiki( 'signupstart' ); ?></div>
-<div id="userlogin">
-
-<form name="userlogin2" id="userlogin2" method="post" action="<?php $this->text( 'action' ); ?>">
-       <h2><?php $this->msg( 'createaccount' ); ?></h2>
-       <p id="userloginlink"><?php $this->html( 'link' ); ?></p>
-       <?php $this->html( 'header' ); /* pre-table point for form plugins... */ ?>
-<?php
+<div class="mw-ui-container">
+       <?php
        if ( $this->haveData( 'languages' ) ) {
-               ?><div id="languagelinks"><p><?php $this->html( 'languages' ); ?></p></div><?php
+       ?>
+               <div id="languagelinks">
+                       <p><?php $this->html( 'languages' ); ?></p>
+               </div>
+       <?php
        }
+       ?>
+<div id="userloginForm">
+<h2 class="createaccount-join">
+       <?php
+       $this->msg( $this->data['createAnother'] ?
+               'createacct-another-join' : 'createacct-join' );
+       ?>
+</h2>
+<form name="userlogin2" id="userlogin2" class="mw-ui-vform" method="post" action="<?php $this->text( 'action' ); ?>">
+       <section class="mw-form-header">
+               <?php $this->html( 'header' ); /* extensions such as ConfirmEdit add form HTML here */ ?>
+       </section>
+       <?php
+       if ( $this->data['message'] ) {
 ?>
-       <table>
-               <tr>
-                       <td class="mw-label"><label for='wpName2'><?php $this->msg( 'yourname' ); ?></label></td>
-                       <td class="mw-input">
-                               <?php
+               <div class="<?php $this->text( 'messagetype' ); ?>box">
+               <?php if ( $this->data['messagetype'] == 'error' ) { ?>
+                       <strong><?php $this->msg( 'createacct-error' ); ?></strong><br />
+               <?php } ?>
+               <?php $this->html( 'message' ); ?>
+               </div>
+       <?php } ?>
+               <div>
+                       <label for='wpName2'>
+                               <?php $this->msg( 'userlogin-yourname' ); ?>
+
+                               <span class="mw-ui-flush-right"><?php echo $this->getMsg( 'createacct-helpusername' )->parse(); ?></span>
+                       </label>
+                       <?php
                        echo Html::input( 'wpName', $this->data['name'], 'text', array(
-                               'class' => 'loginText',
+                               'class' => 'mw-input loginText',
                                'id' => 'wpName2',
                                'tabindex' => '1',
                                'size' => '20',
                                'required',
-                               'autofocus'
-                       ) ); ?>
-                       </td>
-               </tr>
-               <tr>
-                       <td></td>
-                       <td class="mw-input">
-<?php
-                               if ( $this->data['createemail'] ) {
-                                       echo Xml::checkLabel(
-                                               wfMessage( 'createaccountmail' )->text(),
-                                               'wpCreateaccountMail',
-                                               'wpCreateaccountMail',
-                                               $this->data['createemailset'],
-                                               array( 'tabindex' => '2' )
-                                       );
-                               }
-?>
-                       </td>
-               </tr>
-               <tr class="mw-row-password">
-                       <td class="mw-label"><label for='wpPassword2'><?php $this->msg( 'yourpassword' ); ?></label></td>
-                       <td class="mw-input">
-<?php
-                       echo Html::input( 'wpPassword', null, 'password', array(
-                               'class' => 'loginPassword',
+                               'placeholder' => $this->getMsg( $this->data['createAnother'] ?
+                                       'createacct-another-username-ph' : 'userlogin-yourname-ph' )->text(),
+                       ) );
+                       ?>
+               </div>
+               <div>
+               <?php if ( $this->data['createemail'] ) { ?>
+                       <label class="mw-ui-checkbox-label">
+                               <input name="wpCreateaccountMail" type="checkbox" value="1" id="wpCreateaccountMail" tabindex="2"
+                                       <?php if ( $this->data['createemailset'] ) {
+                                               echo 'checked="checked"';
+                                       } ?>
+                               >
+                               <?php $this->msg( 'createaccountmail' ); ?>
+                       </label>
+               <?php } ?>
+               </div>
+               <div class="mw-row-password">
+                       <label for='wpPassword2'><?php $this->msg( 'userlogin-yourpassword' ); ?></label>
+                       <?php echo Html::input( 'wpPassword', null, 'password', array(
+                               'class' => 'mw-input loginPassword',
                                'id' => 'wpPassword2',
                                'tabindex' => '3',
-                               'size' => '20'
+                               'size' => '20',
+                               'required',
+                               'placeholder' => $this->getMsg( 'createacct-yourpassword-ph' )->text()
                        ) + User::passwordChangeInputAttribs() ); ?>
-                       </td>
-               </tr>
-<?php
-               if ( $this->data['usedomain'] ) {
+               </div>
+       <?php if ( $this->data['usedomain'] ) {
                $doms = "";
                foreach ( $this->data['domainnames'] as $dom ) {
                        $doms .= "<option>" . htmlspecialchars( $dom ) . "</option>";
                }
-?>
-               <tr id="mw-user-domain-section">
-                       <td class="mw-label"><?php $this->msg( 'yourdomainname' ); ?></td>
-                       <td class="mw-input">
+       ?>
+               <div id="mw-user-domain-section">
+                       <label for="wpDomain"><?php $this->msg( 'yourdomainname' ); ?></label>
+                       <div class="mw-input">
                                <select name="wpDomain" value="<?php $this->text( 'domain' ); ?>"
                                        tabindex="4">
                                        <?php echo $doms ?>
                                </select>
-                       </td>
-               </tr>
-<?php
-               }
-?>
-               <tr class="mw-row-password">
-                       <td class="mw-label"><label for='wpRetype'><?php $this->msg( 'yourpasswordagain' ); ?></label></td>
-                       <td class="mw-input">
-                               <?php
-               echo Html::input( 'wpRetype', null, 'password', array(
-                       'class' => 'loginPassword',
-                       'id' => 'wpRetype',
-                       'tabindex' => '5',
-                       'size' => '20'
-               ) + User::passwordChangeInputAttribs() ); ?>
-                       </td>
-               </tr>
-               <tr>
-<?php
-               if ( $this->data['useemail'] ) {
-?>
-                               <td class="mw-label"><label for='wpEmail'><?php $this->msg( 'youremail' ); ?></label></td>
-                               <td class="mw-input">
-                                       <?php
-               echo Html::input( 'wpEmail', $this->data['email'], 'email', array(
-                       'class' => 'loginText',
-                       'id' => 'wpEmail',
-                       'tabindex' => '6',
-                       'size' => '20'
-               ) ); ?>
-                                       <div class="prefsectiontip">
-                                               <?php  // duplicated in Preferences.php profilePreferences()
-                                                       if ( $this->data['emailrequired'] ) {
-                                                               $this->msgWiki( 'prefs-help-email-required' );
-                                                       } else {
-                                                               $this->msgWiki( 'prefs-help-email' );
-                                                       }
-                                                       if ( $this->data['emailothers'] ) {
-                                                               $this->msgWiki( 'prefs-help-email-others' );
-                                                       } ?>
-                                       </div>
-                               </td>
-<?php
-               }
-
-               if ( $this->data['userealname'] ) {
-?>
-                               </tr>
-                               <tr>
-                                       <td class="mw-label"><label for='wpRealName'><?php $this->msg( 'yourrealname' ); ?></label></td>
-                                       <td class="mw-input">
-                                               <input type='text' class='loginText' name="wpRealName" id="wpRealName"
-                                                       tabindex="7"
-                                                       value="<?php $this->text( 'realname' ); ?>" size='20' />
-                                               <div class="prefsectiontip">
-                                                       <?php $this->msgWiki( 'prefs-help-realname' ); ?>
-                                               </div>
-                                       </td>
-<?php
-               }
-
-               if ( $this->data['usereason'] ) {
-?>
-                               </tr>
-                               <tr>
-                                       <td class="mw-label"><label for='wpReason'><?php $this->msg( 'createaccountreason' ); ?></label></td>
-                                       <td class="mw-input">
-                                               <input type='text' class='loginText' name="wpReason" id="wpReason"
-                                                       tabindex="8"
-                                                       value="<?php $this->text( 'reason' ); ?>" size='20' />
-                                       </td>
-<?php
-               }
-?>
-               </tr>
-<?php
-               if ( $this->data['canremember'] ) {
-?>
-               <tr>
-                       <td></td>
-                       <td class="mw-input">
+                       </div>
+               </div>
+       <?php } ?>
+               <div class="mw-row-password">
+                       <label for='wpRetype'><?php $this->msg( 'createacct-yourpasswordagain' ); ?></label>
+                       <?php
+                       echo Html::input( 'wpRetype', null, 'password', array(
+                               'class' => 'mw-input loginPassword',
+                               'id' => 'wpRetype',
+                               'tabindex' => '5',
+                               'size' => '20',
+                               'required',
+                               'placeholder' => $this->getMsg( 'createacct-yourpasswordagain-ph' )->text()
+                               ) + User::passwordChangeInputAttribs() );
+                       ?>
+               </div>
+               <div>
+               <?php if ( $this->data['useemail'] ) { ?>
+                       <label for='wpEmail'>
                                <?php
-                               global $wgCookieExpiration;
-                               $expirationDays = ceil( $wgCookieExpiration / ( 3600 * 24 ) );
-                               echo Xml::checkLabel(
-                                       wfMessage( 'remembermypassword' )->numParams( $expirationDays )->text(),
-                                       'wpRemember',
-                                       'wpRemember',
-                                       $this->data['remember'],
-                                       array( 'tabindex' => '9' )
-                               )
+                                       $this->msg( $this->data['emailrequired'] ?
+                                               'createacct-emailrequired' :
+                                               'createacct-emailoptional'
+                                       );
                                ?>
-                       </td>
-               </tr>
-<?php
-               }
-
-               $tabIndex = 10;
+                       </label>
+                       <?php
+                               echo Html::input( 'wpEmail', $this->data['email'], 'email', array(
+                                       'class' => 'mw-input loginText',
+                                       'id' => 'wpEmail',
+                                       'tabindex' => '6',
+                                       'size' => '20',
+                                       'placeholder' => $this->getMsg( $this->data['createAnother'] ?
+                                               'createacct-another-email-ph' : 'createacct-email-ph' )->text()
+                               ) + ( $this->data['emailrequired'] ? array() : array( 'required' => '' ) ) );
+                       ?>
+               <?php } ?>
+               </div>
+               <?php if ( $this->data['userealname'] ) { ?>
+                       <div>
+                               <label for='wpRealName'><?php $this->msg( 'createacct-realname' ); ?></label>
+                               <input type='text' class='mw-input loginText' name="wpRealName" id="wpRealName"
+                                       tabindex="7"
+                                       value="<?php $this->text( 'realname' ); ?>" size='20' />
+                               <div class="prefsectiontip">
+                                       <?php $this->msgWiki( 'prefs-help-realname' ); ?>
+                               </div>
+                       </div>
+               <?php }
+               if ( $this->data['usereason'] ) { ?>
+                       <div>
+                               <label for='wpReason'><?php $this->msg( 'createacct-reason' ); ?></label>
+                               <?php echo Html::input( 'wpReason', $this->data['reason'], 'text', array(
+                                       'class' => 'mw-input loginText',
+                                       'id' => 'wpReason',
+                                       'tabindex' => '8',
+                                       'size' => '20',
+                                       'placeholder' => $this->getMsg( 'createacct-reason-ph' )->text()
+                               ) ); ?>
+                       </div>
+               <?php }
+               $tabIndex = 9;
                if ( isset( $this->data['extraInput'] ) && is_array( $this->data['extraInput'] ) ) {
                        foreach ( $this->data['extraInput'] as $inputItem ) { ?>
-               <tr>
-                       <?php
-                               if ( !empty( $inputItem['msg'] ) && $inputItem['type'] != 'checkbox' ) {
-                                       ?><td class="mw-label"><label for="<?php
-                                       echo htmlspecialchars( $inputItem['name'] ); ?>"><?php
-                                       $this->msgWiki( $inputItem['msg'] ); ?></label><?php
-                               } else {
-                                       ?><td><?php
-                               }
-                       ?></td>
-                       <td class="mw-input">
-                               <input type="<?php echo htmlspecialchars( $inputItem['type'] ); ?>" name="<?php
-                               echo htmlspecialchars( $inputItem['name'] ); ?>"
-                                       tabindex="<?php echo $tabIndex++; ?>"
-                                       value="<?php
-                               if ( $inputItem['type'] != 'checkbox' ) {
-                                       echo htmlspecialchars( $inputItem['value'] );
+                       <div>
+                               <?php
+                               // If it's a checkbox, output the whole thing (assume it has a msg).
+                               if ( $inputItem['type'] == 'checkbox' ) {
+                               ?>
+                                       <label class="mw-ui-checkbox-label">
+                                               <input
+                                                       name="<?php echo htmlspecialchars( $inputItem['name'] ); ?>"
+                                                       id="<?php echo htmlspecialchars( $inputItem['name'] ); ?>"
+                                                       type="checkbox" value="1"
+                                                       tabindex="<?php echo $tabIndex++; ?>"
+                                                       <?php if ( !empty( $inputItem['value'] ) ) {
+                                                               echo 'checked="checked"';
+                                                       } ?>
+                                               >
+                                               <?php $this->msg( $inputItem['msg'] ); ?>
+                                       </label>
+                               <?php
                                } else {
-                                       echo '1';
-                               }
-                                       ?>" id="<?php echo htmlspecialchars( $inputItem['name'] ); ?>"
+                                       // Not a checkbox.
+                                       // TODO (bug 31909) support other input types, e.g. select boxes.
+                                       if ( !empty( $inputItem['msg'] ) ) {
+                                               // Output the message label
+                                       ?>
+                                               <label for="<?php echo htmlspecialchars( $inputItem['name'] ); ?>">
+                                                       <?php $this->msgWiki( $inputItem['msg'] ); ?>
+                                               </label>
                                        <?php
-                               if ( $inputItem['type'] == 'checkbox' && !empty( $inputItem['value'] ) ) {
-                                       echo 'checked="checked"';
-                               }
-                                       ?> /> <?php
-                                       if ( $inputItem['type'] == 'checkbox' && !empty( $inputItem['msg'] ) ) {
-                                               ?>
-                               <label for="<?php echo htmlspecialchars( $inputItem['name'] ); ?>"><?php
-                                       $this->msgHtml( $inputItem['msg'] ); ?></label><?php
                                        }
+                                       ?>
+                                       <input
+                                               type="<?php echo htmlspecialchars( $inputItem['type'] ); ?>"
+                                               class="mw-input"
+                                               name="<?php echo htmlspecialchars( $inputItem['name'] ); ?>"
+                                               tabindex="<?php echo $tabIndex++; ?>"
+                                               value="<?php echo htmlspecialchars( $inputItem['value'] ); ?>"
+                                               id="<?php echo htmlspecialchars( $inputItem['name'] ); ?>"
+                                       />
+                               <?php
+                               }
                                if ( $inputItem['helptext'] !== false ) {
                                ?>
-                               <div class="prefsectiontip">
-                                       <?php $this->msgWiki( $inputItem['helptext'] ); ?>
-                               </div><?php
+                                       <div class="prefsectiontip">
+                                               <?php $this->msgWiki( $inputItem['helptext'] ); ?>
+                                       </div>
+                               <?php
                                }
                                ?>
-                       </td>
-               </tr>
-<?php
+                               </div>
+                       <?php
                        }
                }
-?>
-               <tr>
-                       <td></td>
-                       <td class="mw-submit">
-                               <input type='submit' name="wpCreateaccount" id="wpCreateaccount"
-                                       tabindex="<?php echo $tabIndex++; ?>"
-                                       value="<?php $this->msg( 'createaccount' ); ?>" />
-                       </td>
-               </tr>
-       </table>
-<?php
-       if ( $this->haveData( 'uselang' ) ) {
-               ?><input type="hidden" name="uselang" value="<?php $this->text( 'uselang' ); ?>" /><?php
-       }
-       if ( $this->haveData( 'token' ) ) {
-               ?><input type="hidden" name="wpCreateaccountToken" value="<?php $this->text( 'token' ); ?>" /><?php
-       }
-?>
+               // JS attempts to move the image CAPTCHA below this part of the form,
+               // so skip one index.
+               $tabIndex++;
+               ?>
+               <div class="mw-submit">
+                       <?php
+                       echo Html::input( 'wpCreateaccount',
+                               $this->getMsg( $this->data['createAnother'] ?
+                                       'createacct-another-submit' : 'createacct-submit' ),
+                               'submit',
+                               array(
+                                       'class' => "mw-ui-button mw-ui-big mw-ui-block mw-ui-primary",
+                                       'id' => 'wpCreateaccount',
+                                       'tabindex' => $tabIndex++
+                               ) );
+                       ?>
+               </div>
+<?php if ( $this->haveData( 'uselang' ) ) { ?><input type="hidden" name="uselang" value="<?php $this->text( 'uselang' ); ?>" /><?php } ?>
+<?php if ( $this->haveData( 'token' ) ) { ?><input type="hidden" name="wpCreateaccountToken" value="<?php $this->text( 'token' ); ?>" /><?php } ?>
 </form>
 </div>
-<div id="signupend"><?php $this->html( 'signupend' ); ?></div>
+<div class="mw-createacct-benefits-container">
+       <h2><?php $this->msg( 'createacct-benefit-heading' ); ?></h2>
+       <div class="mw-createacct-benefits-list">
+       <?php
+       for ( $benefitIdx = 1; $benefitIdx <= $this->data['benefitCount']; $benefitIdx++ ) {
+               // Pass each benefit's head text (by default a number) as a parameter to the body's message for PLURAL handling.
+               $headUnescaped = $this->getMsg( "createacct-benefit-head$benefitIdx" )->text();
+       ?>
+               <div class="mw-number-text <?php $this->msg( "createacct-benefit-icon$benefitIdx" ); ?>">
+                       <h3><?php $this->msg( "createacct-benefit-head$benefitIdx" ); ?></h3>
+                       <p><?php echo $this->getMsg( "createacct-benefit-body$benefitIdx" )->params( $headUnescaped )->escaped(); ?></p>
+               </div>
+       <?php
+       }
+       ?>
+       </div>
+</div>
+</div>
 <?php
 
        }
diff --git a/includes/templates/UsercreateVForm.php b/includes/templates/UsercreateVForm.php
deleted file mode 100644 (file)
index 2e72f70..0000000
+++ /dev/null
@@ -1,289 +0,0 @@
-<?php
-/**
- * Html form for account creation with new VForm appearance.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @ingroup Templates
- */
-
-if ( !defined( 'MEDIAWIKI' ) ) {
-       die( -1 );
-}
-
-/**
- * Html form for create account with new VForm appearance.
- *
- * @since 1.22
- */
-class UsercreateTemplateVForm extends BaseTemplate {
-
-       /**
-        * Extensions (AntiSpoof and TitleBlacklist) call this in response to
-        * UserCreateForm hook to add checkboxes to the create account form.
-        */
-       function addInputItem( $name, $value, $type, $msg, $helptext = false ) {
-               $this->data['extraInput'][] = array(
-                       'name' => $name,
-                       'value' => $value,
-                       'type' => $type,
-                       'msg' => $msg,
-                       'helptext' => $helptext,
-               );
-       }
-
-       function execute() {
-               global $wgCookieExpiration;
-               $expirationDays = ceil( $wgCookieExpiration / ( 3600 * 24 ) );
-?>
-<div class="mw-ui-container">
-       <?php
-       if ( $this->haveData( 'languages' ) ) {
-       ?>
-               <div id="languagelinks">
-                       <p><?php $this->html( 'languages' ); ?></p>
-               </div>
-       <?php
-       }
-       ?>
-<div id="userloginForm">
-<h2 class="createaccount-join"><?php $this->msg( 'createacct-join' ); ?></h2>
-<form name="userlogin2" id="userlogin2" class="mw-ui-vform" method="post" action="<?php $this->text( 'action' ); ?>">
-       <section class="mw-form-header">
-               <?php $this->html( 'header' ); /* extensions such as ConfirmEdit add form HTML here */ ?>
-       </section>
-       <?php
-       if ( $this->data['message'] ) {
-?>
-               <div class="<?php $this->text( 'messagetype' ); ?>box">
-               <?php if ( $this->data['messagetype'] == 'error' ) { ?>
-                       <strong><?php $this->msg( 'createacct-error' ); ?></strong><br />
-               <?php } ?>
-               <?php $this->html( 'message' ); ?>
-               </div>
-       <?php } ?>
-               <div>
-                       <label for='wpName2'>
-                               <?php $this->msg( 'userlogin-yourname' ); ?>
-
-                               <span class="mw-ui-flush-right"><?php echo $this->getMsg( 'createacct-helpusername' )->parse(); ?></span>
-                       </label>
-                       <?php echo Html::input( 'wpName', $this->data['name'], 'text', array(
-                               'class' => 'mw-input loginText',
-                               'id' => 'wpName2',
-                               'tabindex' => '1',
-                               'size' => '20',
-                               'required',
-                               'placeholder' => $this->getMsg( 'userlogin-yourname-ph' )->text(),
-                               'autofocus'
-                       ) ); ?>
-               </div>
-               <div>
-               <?php if ( $this->data['createemail'] ) { ?>
-                       <label class="mw-ui-checkbox-label">
-                               <input name="wpCreateaccountMail" type="checkbox" value="1" id="wpCreateaccountMail" tabindex="2"
-                                       <?php if ( $this->data['createemailset'] ) {
-                                               echo 'checked="checked"';
-                                       } ?>
-                               >
-                               <?php $this->msg( 'createaccountmail' ); ?>
-                       </label>
-               <?php } ?>
-               </div>
-               <div class="mw-row-password">
-                       <label for='wpPassword2'><?php $this->msg( 'userlogin-yourpassword' ); ?></label>
-                       <?php echo Html::input( 'wpPassword', null, 'password', array(
-                               'class' => 'mw-input loginPassword',
-                               'id' => 'wpPassword2',
-                               'tabindex' => '3',
-                               'size' => '20',
-                               'required',
-                               'placeholder' => $this->getMsg( 'createacct-yourpassword-ph' )->text()
-                       ) + User::passwordChangeInputAttribs() ); ?>
-               </div>
-       <?php if ( $this->data['usedomain'] ) {
-               $doms = "";
-               foreach ( $this->data['domainnames'] as $dom ) {
-                       $doms .= "<option>" . htmlspecialchars( $dom ) . "</option>";
-               }
-       ?>
-               <div>
-                       <label><?php $this->msg( 'yourdomainname' ); ?></label>
-                       <div class="mw-input">
-                               <select name="wpDomain" value="<?php $this->text( 'domain' ); ?>"
-                                       tabindex="4">
-                                       <?php echo $doms ?>
-                               </select>
-                       </div>
-               </div>
-       <?php } ?>
-               <div class="mw-row-password">
-                       <label for='wpRetype'><?php $this->msg( 'createacct-yourpasswordagain' ); ?></label>
-                       <?php
-                       echo Html::input( 'wpRetype', null, 'password', array(
-                               'class' => 'mw-input loginPassword',
-                               'id' => 'wpRetype',
-                               'tabindex' => '5',
-                               'size' => '20',
-                               'required',
-                               'placeholder' => $this->getMsg( 'createacct-yourpasswordagain-ph' )->text()
-                               ) + User::passwordChangeInputAttribs() );
-                       ?>
-               </div>
-               <div>
-               <?php if ( $this->data['useemail'] ) { ?>
-                       <label for='wpEmail'>
-                               <?php
-                                       $this->msg( $this->data['emailrequired'] ?
-                                               'createacct-emailrequired' :
-                                               'createacct-emailoptional'
-                                       );
-                               ?>
-                       </label>
-                       <?php
-                               echo Html::input( 'wpEmail', $this->data['email'], 'email', array(
-                                       'class' => 'mw-input loginText',
-                                       'id' => 'wpEmail',
-                                       'tabindex' => '6',
-                                       'size' => '20',
-                                       'placeholder' => $this->getMsg( 'createacct-email-ph' )->text()
-                               ) + ( $this->data['emailrequired'] ? array() : array( 'required' => '' ) ) );
-                       ?>
-                       <?php
-                       // VForm eliminates the prefsectiontip div tip:
-                       // prefs-help-email-required is redundant with the placeholder text
-                       // Doesn't show the wordy prefs-help-email
-                       // Doesn't show the wordy prefs-help-email-others
-                       ?>
-               <?php } ?>
-               </div>
-               <?php if ( $this->data['userealname'] ) { ?>
-                       <div>
-                               <label for='wpRealName'><?php $this->msg( 'createacct-realname' ); ?></label>
-                               <input type='text' class='mw-input loginText' name="wpRealName" id="wpRealName"
-                                       tabindex="7"
-                                       value="<?php $this->text( 'realname' ); ?>" size='20' />
-                               <div class="prefsectiontip">
-                                       <?php $this->msgWiki( 'prefs-help-realname' ); ?>
-                               </div>
-                       </div>
-               <?php }
-               if ( $this->data['usereason'] ) { ?>
-                       <div>
-                               <label for='wpReason'><?php $this->msg( 'createacct-reason' ); ?></label>
-                               <?php echo Html::input( 'wpReason', $this->data['reason'], 'text', array(
-                                       'class' => 'mw-input loginText',
-                                       'id' => 'wpReason',
-                                       'tabindex' => '8',
-                                       'size' => '20',
-                                       'placeholder' => $this->getMsg( 'createacct-reason-ph' )->text()
-                               ) ); ?>
-                       </div>
-               <?php }
-               $tabIndex = 9;
-               if ( isset( $this->data['extraInput'] ) && is_array( $this->data['extraInput'] ) ) {
-                       foreach ( $this->data['extraInput'] as $inputItem ) { ?>
-                       <div>
-                               <?php
-                               // If it's a checkbox, output the whole thing (assume it has a msg).
-                               if ( $inputItem['type'] == 'checkbox' ) {
-                               ?>
-                                       <label class="mw-ui-checkbox-label">
-                                               <input
-                                                       name="<?php echo htmlspecialchars( $inputItem['name'] ); ?>"
-                                                       id="<?php echo htmlspecialchars( $inputItem['name'] ); ?>"
-                                                       type="checkbox" value="1"
-                                                       tabindex="<?php echo $tabIndex++; ?>"
-                                                       <?php if ( !empty( $inputItem['value'] ) ) {
-                                                               echo 'checked="checked"';
-                                                       } ?>
-                                               >
-                                               <?php $this->msg( $inputItem['msg'] ); ?>
-                                       </label>
-                               <?php
-                               } else {
-                                       // Not a checkbox.
-                                       if ( !empty( $inputItem['msg'] ) ) {
-                                               // Output the message label
-                                       ?>
-                                               <label for="<?php echo htmlspecialchars( $inputItem['name'] ); ?>">
-                                                       <?php $this->msgWiki( $inputItem['msg'] ); ?>
-                                               </label>
-                                       <?php
-                                       }
-                                       ?>
-                                       <input
-                                               type="<?php echo htmlspecialchars( $inputItem['type'] ); ?>"
-                                               class="mw-input"
-                                               name="<?php echo htmlspecialchars( $inputItem['name'] ); ?>"
-                                               tabindex="<?php echo $tabIndex++; ?>"
-                                               value="<?php echo htmlspecialchars( $inputItem['value'] ); ?>"
-                                               id="<?php echo htmlspecialchars( $inputItem['name'] ); ?>"
-                                       />
-                               <?php
-                               }
-                               if ( $inputItem['helptext'] !== false ) {
-                               ?>
-                                       <div class="prefsectiontip">
-                                               <?php $this->msgWiki( $inputItem['helptext'] ); ?>
-                                       </div>
-                               <?php
-                               }
-                               ?>
-                               </div>
-                       <?php
-                       }
-               }
-               // JS attempts to move the image CAPTCHA below this part of the form,
-               // so skip one index.
-               $tabIndex++;
-               ?>
-               <div class="mw-submit">
-                       <input type='submit' class="mw-ui-button mw-ui-big mw-ui-block mw-ui-primary" name="wpCreateaccount" id="wpCreateaccount"
-                               tabindex="<?php echo $tabIndex++; ?>"
-                               value="<?php $this->msg( 'createacct-submit' ); ?>" />
-               </div>
-       <input type="hidden" id="useNew" name="useNew" value="1" />
-<?php if ( $this->haveData( 'uselang' ) ) { ?><input type="hidden" name="uselang" value="<?php $this->text( 'uselang' ); ?>" /><?php } ?>
-<?php if ( $this->haveData( 'token' ) ) { ?><input type="hidden" name="wpCreateaccountToken" value="<?php $this->text( 'token' ); ?>" /><?php } ?>
-</form>
-</div>
-<div class="mw-createacct-benefits-container">
-       <h2><?php $this->msg( 'createacct-benefit-heading' ); ?></h2>
-       <div class="mw-createacct-benefits-list">
-       <?php
-       for ( $benefitIdx = 1; $benefitIdx <= $this->data['benefitCount']; $benefitIdx++ ) {
-               // Pass each benefit's head text (by default a number) as a parameter to the body's message for PLURAL handling.
-               $headUnescaped = $this->getMsg( "createacct-benefit-head$benefitIdx" )->text();
-       ?>
-               <div>
-                       <div class="mw-benefits-icon <?php $this->msg( "createacct-benefit-icon$benefitIdx" ); ?>"></div>
-                       <div class="mw-number-text">
-                               <h3><?php $this->msg( "createacct-benefit-head$benefitIdx" ); ?></h3>
-                               <p><?php echo $this->getMsg( "createacct-benefit-body$benefitIdx" )->params( $headUnescaped )->escaped(); ?></p>
-                       </div>
-               </div>
-       <?php
-       }
-       ?>
-       </div>
-</div>
-</div>
-<?php
-
-       }
-}
index 8c937a7..b9825a6 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Html form for user login.
+ * Html form for user login (since 1.22 with VForm appearance).
  *
  * 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
  * @ingroup Templates
  */
 
-/**
- * @defgroup Templates Templates
- */
+class UserloginTemplate extends BaseTemplate {
 
-/**
- * HTML template for Special:Userlogin form
- * @ingroup Templates
- */
-class UserloginTemplate extends QuickTemplate {
        function execute() {
-               if ( $this->data['message'] ) {
+               global $wgCookieExpiration;
+               $expirationDays = ceil( $wgCookieExpiration / ( 3600 * 24 ) );
 ?>
-       <div class="<?php $this->text( 'messagetype' ); ?>box">
+<div class="mw-ui-container">
+       <?php
+       if ( $this->haveData( 'languages' ) ) {
+       ?>
+               <div id="languagelinks">
+                       <p><?php $this->html( 'languages' ); ?></p>
+               </div>
+       <?php
+       }
+       ?>
+<div id="userloginForm">
+<form name="userlogin" class="mw-ui-vform" method="post" action="<?php $this->text( 'action' ); ?>">
+       <section class="mw-form-header">
+               <?php $this->html( 'header' ); /* extensions such as ConfirmEdit add form HTML here */ ?>
+       </section>
+       <?php
+
+       if ( $this->data['message'] ) {
+       ?>
+               <div class="<?php $this->text( 'messagetype' ); ?>box">
                <?php
                if ( $this->data['messagetype'] == 'error' ) {
-                       ?><strong><?php $this->msg( 'loginerror' ); ?></strong><br /><?php
-               }
                ?>
-               <?php $this->html( 'message' ); ?>
-       </div>
-       <div class="visualClear"></div><?php
-
-               }
-?>
-<div id="loginstart"><?php $this->msgWiki( 'loginstart' ); ?></div>
-<div id="userloginForm">
-<form name="userlogin" method="post" action="<?php $this->text( 'action' ); ?>">
-       <h2><?php $this->msg( 'login' ); ?></h2>
-       <p id="userloginlink"><?php $this->html( 'link' ); ?></p>
-       <?php $this->html( 'header' ); /* pre-table point for form plugins... */ ?>
-       <div id="userloginprompt"><?php  $this->msgWiki( 'loginprompt' ); ?></div>
-<?php
-               if ( $this->haveData( 'languages' ) ) {
-                       ?><div id="languagelinks"><p><?php $this->html( 'languages' ); ?></p></div><?php
+                       <strong><?php $this->msg( 'loginerror' ) ?></strong><br />
+               <?php
                }
-?>
-       <table>
-               <tr>
-                       <td class="mw-label"><label for='wpName1'><?php $this->msg( 'yourname' ); ?></label></td>
-                       <td class="mw-input">
+               $this->html( 'message' );
+               ?>
+               </div>
+       <?php
+       }
+       ?>
+               <div>
+                       <label for='wpName1'>
                                <?php
+                               $this->msg( 'userlogin-yourname' );
+                               if ( $this->data['secureLoginUrl'] ) {
+                                       echo Html::element( 'a', array(
+                                                       'href' => $this->data['secureLoginUrl'],
+                                                       'class' => 'mw-ui-flush-right mw-secure',
+                                               ), $this->getMsg( 'userlogin-signwithsecure' )->text() );
+                               } ?>
+                       </label>
+                       <?php
+                       $extraAttrs = array();
+                       // Set focus to this field if its blank.
+                       if ( !$this->data['name'] ) {
+                               $extraAttrs['autofocus'] = '';
+                       }
                        echo Html::input( 'wpName', $this->data['name'], 'text', array(
                                'class' => 'loginText',
                                'id' => 'wpName1',
                                'tabindex' => '1',
                                'size' => '20',
-                               'required'
-                               # Can't do + array( 'autofocus' ) because + for arrays in PHP
-                               # only works right for associative arrays!  Thanks, PHP.
-                       ) + ( $this->data['name'] ? array() : array( 'autofocus' => '' ) ) ); ?>
+                               // 'required' is blacklisted for now in Html.php due to browser issues.
+                               // Keeping here in case that changes
+                               'required',
+                               'placeholder' => $this->getMsg( 'userlogin-yourname-ph' )->text()
+                       ) + $extraAttrs );
+                       ?>
+               </div>
+               <div>
+                       <label for='wpPassword1'>
+                       <?php
+                       $this->msg( 'userlogin-yourpassword' );
 
-                       </td>
-               </tr>
-               <tr>
-                       <td class="mw-label"><label for='wpPassword1'><?php $this->msg( 'yourpassword' ); ?></label></td>
-                       <td class="mw-input">
-                               <?php
+                       if ( $this->data['useemail'] && $this->data['canreset'] && $this->data['resetlink'] === true ) {
+                               echo Linker::link(
+                                       SpecialPage::getTitleFor( 'PasswordReset' ),
+                                       $this->getMsg( 'userlogin-resetpassword-link' )->parse(),
+                                       array( 'class' => 'mw-ui-flush-right' )
+                                       );
+                       }
+                       ?>
+                       </label>
+                       <?php
+                       $extraAttrs = array();
+                       // Set focus to this field if username is filled in.
+                       if ( $this->data['name'] ) {
+                               $extraAttrs['autofocus'] = '';
+                       }
                        echo Html::input( 'wpPassword', null, 'password', array(
                                'class' => 'loginPassword',
                                'id' => 'wpPassword1',
                                'tabindex' => '2',
-                               'size' => '20'
-                       ) + ( $this->data['name'] ? array( 'autofocus' ) : array() ) ); ?>
-
-                       </td>
-               </tr>
-<?php
-               if ( isset( $this->data['usedomain'] ) && $this->data['usedomain'] ) {
+                               'size' => '20',
+                               'placeholder' => $this->getMsg( 'userlogin-yourpassword-ph' )->text()
+                       ) + $extraAttrs );
+                       ?>
+               </div>
+       <?php
+       if ( isset( $this->data['usedomain'] ) && $this->data['usedomain'] ) {
                $doms = "";
                foreach ( $this->data['domainnames'] as $dom ) {
                        $doms .= "<option>" . htmlspecialchars( $dom ) . "</option>";
                }
-?>
-               <tr id="mw-user-domain-section">
-                       <td class="mw-label"><?php $this->msg( 'yourdomainname' ) ?></td>
-                       <td class="mw-input">
-                               <select name="wpDomain" value="<?php $this->text( 'domain' ) ?>"
+       ?>
+               <div id="mw-user-domain-section">
+                       <label for='wpDomain'><?php $this->msg( 'yourdomainname' ); ?></label>
+                               <select name="wpDomain" value="<?php $this->text( 'domain' ); ?>"
                                        tabindex="3">
                                        <?php echo $doms ?>
                                </select>
-                       </td>
-               </tr>
-<?php
-               }
+               </div>
+       <?php }
 
-               if ( $this->haveData( 'extrafields' ) ) {
-                       echo $this->data['extrafields'];
-               }
+       if ( $this->haveData( 'extrafields' ) ) {
+               echo $this->data['extrafields'];
+       } ?>
 
-               if ( $this->data['canremember'] ) {
-?>
-               <tr>
-                       <td></td>
-                       <td class="mw-input">
-                               <?php
-                               global $wgCookieExpiration;
-                               $expirationDays = ceil( $wgCookieExpiration / ( 3600 * 24 ) );
-                               echo Xml::checkLabel(
-                                       wfMessage( 'remembermypassword' )->numParams( $expirationDays )->text(),
-                                       'wpRemember',
-                                       'wpRemember',
-                                       $this->data['remember'],
-                                       array( 'tabindex' => '8' )
-                               )
-                               ?>
-                       </td>
-               </tr>
-<?php
-               }
+               <div>
 
-               if ( $this->data['cansecurelogin'] ) {
-?>
-               <tr>
-                       <td></td>
-                       <td class="mw-input">
-                       <?php
-                       echo Xml::checkLabel(
-                               wfMessage( 'securelogin-stick-https' )->text(),
-                               'wpStickHTTPS',
-                               'wpStickHTTPS',
-                               $this->data['stickHTTPS'],
-                               array( 'tabindex' => '9' )
-                       );
-?>
-                       </td>
-               </tr>
-<?php
-               }
-?>
-               <tr>
-                       <td></td>
-                       <td class="mw-submit">
+       <?php if ( $this->data['canremember'] ) { ?>
+               <label class="mw-ui-checkbox-label">
+                       <input name="wpRemember" type="checkbox" value="1" id="wpRemember" tabindex="4"
+                               <?php if ( $this->data['remember'] ) {
+                                       echo 'checked="checked"';
+                               } ?>
+                       >
+                       <?php echo $this->getMsg( 'userlogin-remembermypassword' )->numParams( $expirationDays )->escaped(); ?>
+               </label>
+       <?php } ?>
+               </div>
+
+       <?php if ( $this->data['cansecurelogin'] ) { ?>
+               <div>
+                       <label class="mw-ui-checkbox-label">
+                               <input name="wpStickHTTPS" type="checkbox" value="1" id="wpStickHTTPS" tabindex="5"
+                                       <?php if ( $this->data['stickHTTPS'] ) {
+                                               echo 'checked="checked"';
+                                       } ?>
+                               >
+                               <?php $this->msg( 'securelogin-stick-https' ); ?>
+                       </label>
+               </div>
+       <?php } ?>
+               <div>
                        <?php
-                       echo Html::input( 'wpLoginAttempt', wfMessage( 'login' )->text(), 'submit', array(
+                       echo Html::input( 'wpLoginAttempt', $this->getMsg( 'login' )->text(), 'submit', array(
                                'id' => 'wpLoginAttempt',
-                               'tabindex' => '9'
+                               'tabindex' => '6',
+                               'class' => 'mw-ui-button mw-ui-big mw-ui-block mw-ui-primary'
                        ) );
-               if ( $this->data['useemail'] && $this->data['canreset'] ) {
-                       if ( $this->data['resetlink'] === true ) {
-                               echo '&#160;';
-                               echo Linker::link(
-                                       SpecialPage::getTitleFor( 'PasswordReset' ),
-                                       wfMessage( 'userlogin-resetlink' )
-                               );
-                       } elseif ( $this->data['resetlink'] === null ) {
-                               echo '&#160;';
-                               echo Html::input(
-                                       'wpMailmypassword',
-                                       wfMessage( 'mailmypassword' )->text(),
-                                       'submit', array(
-                                               'id' => 'wpMailmypassword',
-                                               'tabindex' => '10'
-                                       )
-                               );
-                       }
-               }
-?>
-                       </td>
-               </tr>
-       </table>
-<?php
-       if ( $this->haveData( 'uselang' ) ) {
-               ?><input type="hidden" name="uselang" value="<?php $this->text( 'uselang' ); ?>" /><?php
-       }
-
-       if ( $this->haveData( 'token' ) ) {
-               ?><input type="hidden" name="wpLoginToken" value="<?php $this->text( 'token' ); ?>" /><?php
-       }
-?>
+                       ?>
+               </div>
+               <div id="mw-userlogin-help">
+                       <?php echo $this->getMsg( 'userlogin-helplink' )->parse(); ?>
+               </div>
+               <?php if ( $this->haveData( 'createOrLoginHref' ) ) { ?>
+                       <div id="mw-createaccount-cta">
+                               <h3 id="mw-userloginlink"><?php $this->msg( 'userlogin-noaccount' ); ?><a href="<?php $this->text( 'createOrLoginHref' ); ?>" id="mw-createaccount-join" tabindex="7"  class="mw-ui-button mw-ui-constructive"><?php $this->msg( 'userlogin-joinproject' ); ?></a></h3>
+                       </div>
+               <?php } ?>
+<?php if ( $this->haveData( 'uselang' ) ) { ?><input type="hidden" name="uselang" value="<?php $this->text( 'uselang' ); ?>" /><?php } ?>
+<?php if ( $this->haveData( 'token' ) ) { ?><input type="hidden" name="wpLoginToken" value="<?php $this->text( 'token' ); ?>" /><?php } ?>
 </form>
 </div>
-<div id="loginend"><?php $this->html( 'loginend' ); ?></div>
+</div>
 <?php
-
        }
 }
diff --git a/includes/templates/UserloginVForm.php b/includes/templates/UserloginVForm.php
deleted file mode 100644 (file)
index 4f44209..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-<?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
- * @ingroup Templates
- */
-
-
-/**
- * Html form for user login with new VForm appearance.
- */
-class UserloginTemplateVForm extends BaseTemplate {
-
-       function execute() {
-               global $wgCookieExpiration;
-               $expirationDays = ceil( $wgCookieExpiration / ( 3600 * 24 ) );
-?>
-<div class="mw-ui-container">
-       <?php
-       if ( $this->haveData( 'languages' ) ) {
-       ?>
-               <div id="languagelinks">
-                       <p><?php $this->html( 'languages' ); ?></p>
-               </div>
-       <?php
-       }
-       ?>
-<div id="userloginForm">
-<form name="userlogin" class="mw-ui-vform" method="post" action="<?php $this->text( 'action' ); ?>">
-       <section class="mw-form-header">
-               <?php $this->html( 'header' ); /* extensions such as ConfirmEdit add form HTML here */ ?>
-       </section>
-       <?php
-
-       if ( $this->data['message'] ) {
-       ?>
-               <div class="<?php $this->text( 'messagetype' ); ?>box">
-               <?php
-               if ( $this->data['messagetype'] == 'error' ) {
-               ?>
-                       <strong><?php $this->msg( 'loginerror' ) ?></strong><br />
-               <?php
-               }
-               $this->html( 'message' );
-               ?>
-               </div>
-       <?php
-       }
-       ?>
-               <div>
-                       <label for='wpName1'>
-                               <?php
-                               $this->msg( 'userlogin-yourname' );
-                               if ( $this->data['secureLoginUrl'] ) {
-                                       echo Html::element( 'a', array(
-                                                       'href' => $this->data['secureLoginUrl'],
-                                                       'class' => 'mw-ui-flush-right mw-secure',
-                                               ), $this->getMsg( 'userlogin-signwithsecure' )->text() );
-                               } ?>
-                       </label>
-                       <?php
-                       $extraAttrs = array();
-                       // Set focus to this field if its blank.
-                       if ( !$this->data['name'] ) {
-                               $extraAttrs['autofocus'] = '';
-                       }
-                       echo Html::input( 'wpName', $this->data['name'], 'text', array(
-                               'class' => 'loginText',
-                               'id' => 'wpName1',
-                               'tabindex' => '1',
-                               'size' => '20',
-                               // 'required' is blacklisted for now in Html.php due to browser issues.
-                               // Keeping here in case that changes
-                               'required',
-                               'placeholder' => $this->getMsg( 'userlogin-yourname-ph' )->text()
-                       ) + $extraAttrs );
-                       ?>
-               </div>
-               <div>
-                       <label for='wpPassword1'>
-                       <?php
-                       $this->msg( 'userlogin-yourpassword' );
-
-                       if ( $this->data['useemail'] && $this->data['canreset'] && $this->data['resetlink'] === true ) {
-                               echo Linker::link(
-                                       SpecialPage::getTitleFor( 'PasswordReset' ),
-                                       $this->getMsg( 'userlogin-resetpassword-link' )->parse(),
-                                       array( 'class' => 'mw-ui-flush-right' )
-                                       );
-                               // TODO: remove the wpMailmypassword code branch from
-                               // templates/Userlogin.php as well; it is never executed and
-                               // doesn't work.
-                       }
-                       ?>
-                       </label>
-                       <?php
-                       $extraAttrs = array();
-                       // Set focus to this field if username is filled in.
-                       if ( $this->data['name'] ) {
-                               $extraAttrs['autofocus'] = '';
-                       }
-                       echo Html::input( 'wpPassword', null, 'password', array(
-                               'class' => 'loginPassword',
-                               'id' => 'wpPassword1',
-                               'tabindex' => '2',
-                               'size' => '20',
-                               'placeholder' => $this->getMsg( 'userlogin-yourpassword-ph' )->text()
-                       ) + $extraAttrs );
-                       ?>
-               </div>
-       <?php
-       if ( isset( $this->data['usedomain'] ) && $this->data['usedomain'] ) {
-               $doms = "";
-               foreach ( $this->data['domainnames'] as $dom ) {
-                       $doms .= "<option>" . htmlspecialchars( $dom ) . "</option>";
-               }
-       ?>
-               <div id="mw-user-domain-section">
-                       <label for='wpDomain' class="pos-above"><?php $this->msg( 'yourdomain' ); ?></label>
-                               <select name="wpDomain" value="<?php $this->text( 'domain' ); ?>"
-                                       tabindex="3">
-                                       <?php echo $doms ?>
-                               </select>
-               </div>
-       <?php }
-
-       if ( $this->haveData( 'extrafields' ) ) {
-               echo $this->data['extrafields'];
-       } ?>
-
-               <div>
-
-       <?php if ( $this->data['canremember'] ) { ?>
-               <label class="mw-ui-checkbox-label">
-                       <input name="wpRemember" type="checkbox" value="1" id="wpRemember" tabindex="4"
-                               <?php if ( $this->data['remember'] ) {
-                                       echo 'checked="checked"';
-                               } ?>
-                       >
-                       <?php echo $this->getMsg( 'userlogin-remembermypassword' )->numParams( $expirationDays )->escaped(); ?>
-               </label>
-       <?php } ?>
-               </div>
-
-       <?php if ( $this->data['cansecurelogin'] ) { ?>
-               <div>
-                       <label class="mw-ui-checkbox-label">
-                               <input name="wpStickHTTPS" type="checkbox" value="1" id="wpStickHTTPS" tabindex="5"
-                                       <?php if ( $this->data['stickHTTPS'] ) {
-                                               echo 'checked="checked"';
-                                       } ?>
-                               >
-                               <?php $this->msg( 'securelogin-stick-https' ); ?>
-                       </label>
-               </div>
-       <?php } ?>
-               <div>
-                       <?php
-                       echo Html::input( 'wpLoginAttempt', $this->getMsg( 'login' )->text(), 'submit', array(
-                               'id' => 'wpLoginAttempt',
-                               'tabindex' => '6',
-                               'class' => 'mw-ui-button mw-ui-big mw-ui-block mw-ui-primary'
-                       ) );
-                       ?>
-               </div>
-               <div id="mw-userlogin-help">
-                       <?php echo $this->getMsg( 'userlogin-helplink' )->parse(); ?>
-               </div>
-               <?php if ( $this->haveData( 'createOrLoginHref' ) ) { ?>
-                       <div id="mw-createaccount-cta">
-                               <h3 id="mw-userloginlink"><?php $this->msg( 'userlogin-noaccount' ); ?><a href="<?php $this->text( 'createOrLoginHref' ); ?>" id="mw-createaccount-join" tabindex="7"  class="mw-ui-button mw-ui-constructive"><?php $this->msg( 'userlogin-joinproject' ); ?></a></h3>
-                       </div>
-               <?php } ?>
-       <input type="hidden" id="mw-useNew" name="useNew" value="1" />
-<?php if ( $this->haveData( 'uselang' ) ) { ?><input type="hidden" name="uselang" value="<?php $this->text( 'uselang' ); ?>" /><?php } ?>
-<?php if ( $this->haveData( 'token' ) ) { ?><input type="hidden" name="wpLoginToken" value="<?php $this->text( 'token' ); ?>" /><?php } ?>
-</form>
-</div>
-</div>
-<?php
-       }
-}
index 2ed20c5..36e4252 100644 (file)
@@ -688,7 +688,7 @@ abstract class UploadBase {
 
                if ( $status->isGood() ) {
                        if ( $watch ) {
-                               $user->addWatch( $this->getLocalFile()->getTitle() );
+                               WatchAction::doWatch( $this->getLocalFile()->getTitle(), $user, WatchedItem::IGNORE_USER_RIGHTS );
                        }
                        wfRunHooks( 'UploadComplete', array( &$this ) );
                }
index c99feef..a4374f3 100644 (file)
@@ -34,6 +34,8 @@ class UploadFromUrl extends UploadBase {
 
        protected $mTempPath, $mTmpHandle;
 
+       protected static $allowedUrls = array();
+
        /**
         * Checks if the user is allowed to use the upload-by-URL feature. If the
         * user is not allowed, return the name of the user right as a string. If
@@ -104,6 +106,21 @@ class UploadFromUrl extends UploadBase {
                return $valid;
        }
 
+       /**
+        * Checks whether the URL is not allowed.
+        *
+        * @param $url string
+        * @return bool
+        */
+       public static function isAllowedUrl( $url ) {
+               if ( !isset( self::$allowedUrls[$url] ) ) {
+                       $allowed = true;
+                       wfRunHooks( 'IsUploadAllowedFromUrl', array( $url, &$allowed ) );
+                       self::$allowedUrls[$url] = $allowed;
+               }
+               return self::$allowedUrls[$url];
+       }
+
        /**
         * Entry point for API upload
         *
@@ -175,6 +192,9 @@ class UploadFromUrl extends UploadBase {
                if ( !self::isAllowedHost( $this->mUrl ) ) {
                        return Status::newFatal( 'upload-copy-upload-invalid-domain' );
                }
+               if ( !self::isAllowedUrl( $this->mUrl ) ) {
+                       return Status::newFatal( 'upload-copy-upload-invalid-url' );
+               }
                if ( !$this->mAsync ) {
                        return $this->reallyFetchFile();
                }
index 8a6d766..ebeb9c1 100644 (file)
@@ -675,11 +675,12 @@ class UploadStashFile extends UnregisteredLocalFile {
 
 }
 
-class UploadStashNotAvailableException extends MWException {};
-class UploadStashFileNotFoundException extends MWException {};
-class UploadStashBadPathException extends MWException {};
-class UploadStashFileException extends MWException {};
-class UploadStashZeroLengthFileException extends MWException {};
-class UploadStashNotLoggedInException extends MWException {};
-class UploadStashWrongOwnerException extends MWException {};
-class UploadStashNoSuchKeyException extends MWException {};
+class UploadStashException extends MWException {};
+class UploadStashNotAvailableException extends UploadStashException {};
+class UploadStashFileNotFoundException extends UploadStashException {};
+class UploadStashBadPathException extends UploadStashException {};
+class UploadStashFileException extends UploadStashException {};
+class UploadStashZeroLengthFileException extends UploadStashException {};
+class UploadStashNotLoggedInException extends UploadStashException {};
+class UploadStashWrongOwnerException extends UploadStashException {};
+class UploadStashNoSuchKeyException extends UploadStashException {};
index ea34363..e5cab05 100644 (file)
@@ -81,7 +81,7 @@ class Language {
 
        public $mVariants, $mCode, $mLoaded = false;
        public $mMagicExtensions = array(), $mMagicHookDone = false;
-       private $mHtmlCode = null;
+       private $mHtmlCode = null, $mParentLanguage = false;
 
        public $dateFormatStrings = array();
        public $mExtendedSpecialPageAliases;
@@ -385,6 +385,12 @@ class Language {
        public static function isKnownLanguageTag( $tag ) {
                static $coreLanguageNames;
 
+               // Quick escape for invalid input to avoid exceptions down the line
+               // when code tries to process tags which are not valid at all.
+               if ( !self::isValidBuiltInCode( $tag ) ) {
+                       return false;
+               }
+
                if ( $coreLanguageNames === null ) {
                        include MWInit::compiledPath( 'languages/Names.php' );
                }
@@ -2245,7 +2251,7 @@ class Language {
         * @param MWTimestamp $relativeTo Base timestamp
         * @param User $user User preferences to use
         * @return string Human timestamp
-        * @since 1.21
+        * @since 1.22
         */
        public function getHumanTimestamp( MWTimestamp $ts, MWTimestamp $relativeTo, User $user ) {
                $diff = $ts->diff( $relativeTo );
@@ -2953,12 +2959,16 @@ class Language {
        }
 
        /**
+        * Get all magic words from cache.
         * @return array
         */
        function getMagicWords() {
                return self::$dataCache->getItem( $this->mCode, 'magicWords' );
        }
 
+       /**
+        * Run the LanguageGetMagic hook once.
+        */
        protected function doMagicHook() {
                if ( $this->mMagicHookDone ) {
                        return;
@@ -2975,17 +2985,16 @@ class Language {
         * @param $mw
         */
        function getMagic( $mw ) {
-               $this->doMagicHook();
+               // Saves a function call
+               if ( ! $this->mMagicHookDone ) {
+                       $this->doMagicHook();
+               }
 
                if ( isset( $this->mMagicExtensions[$mw->mId] ) ) {
                        $rawEntry = $this->mMagicExtensions[$mw->mId];
                } else {
-                       $magicWords = $this->getMagicWords();
-                       if ( isset( $magicWords[$mw->mId] ) ) {
-                               $rawEntry = $magicWords[$mw->mId];
-                       } else {
-                               $rawEntry = false;
-                       }
+                       $rawEntry = self::$dataCache->getSubitem(
+                               $this->mCode, 'magicWords', $mw->mId );
                }
 
                if ( !is_array( $rawEntry ) ) {
@@ -3930,6 +3939,34 @@ class Language {
                return $this;
        }
 
+       /**
+        * Get the "parent" language which has a converter to convert a "compatible" language
+        * (in another variant) to this language (eg. zh for zh-cn, but not en for en-gb).
+        *
+        * @return Language|null
+        * @since 1.22
+        */
+       public function getParentLanguage() {
+               if ( $this->mParentLanguage !== false ) {
+                       return $this->mParentLanguage;
+               }
+
+               $pieces = explode( '-', $this->getCode() );
+               $code = $pieces[0];
+               if ( !in_array( $code, LanguageConverter::$languagesWithVariants ) ) {
+                       $this->mParentLanguage = null;
+                       return null;
+               }
+               $lang = Language::factory( $code );
+               if ( !$lang->hasVariant( $this->getCode() ) ) {
+                       $this->mParentLanguage = null;
+                       return null;
+               }
+
+               $this->mParentLanguage = $lang;
+               return $lang;
+       }
+
        /**
         * Get the RFC 3066 code for this language object
         *
@@ -3964,8 +4001,9 @@ class Language {
         */
        public function setCode( $code ) {
                $this->mCode = $code;
-               // Ensure we don't leave an incorrect html code lying around
+               // Ensure we don't leave incorrect cached data lying around
                $this->mHtmlCode = null;
+               $this->mParentLanguage = false;
        }
 
        /**
@@ -4495,7 +4533,7 @@ class Language {
 
        /**
         * Get the plural rule types for the language
-        * @since 1.21
+        * @since 1.22
         * @return array Associative array with plural form number and plural rule type as key-value pairs
         */
        public function getPluralRuleTypes() {
@@ -4526,7 +4564,7 @@ class Language {
         * Find the plural rule type appropriate for the given number
         * For example, if the language is set to Arabic, getPluralType(5) should
         * return 'few'.
-        * @since 1.21
+        * @since 1.22
         * @return string The name of the plural rule type, e.g. one, two, few, many
         */
        public function getPluralRuleType( $number ) {
index e13cb59..a02fc8a 100644 (file)
@@ -1363,7 +1363,7 @@ class ConverterRule {
         * and may return false in this case (so this title conversion rule
         * will be ignored and the original title is shown).
         *
-        * @since 1.21
+        * @since 1.22
         * @param $variant The variant code to display page title in
         * @return String|false The converted title or false if just page name
         */
index 61fed2c..9dcc1cb 100644 (file)
@@ -64,6 +64,8 @@
        'ba' => 'башҡортса',   # Bashkir
        'bar' => 'Boarisch',    # Bavarian (Austro-Bavarian and South Tyrolean)
        'bat-smg' => 'žemaitėška', # Samogitian (deprecated code, 'sgs' in ISO 693-3 since 2010-06-30 )
+       'bbc' => 'Batak Toba', # Batak Toba (falls back to bbc-latn)
+       'bbc-latn' => 'Batak Toba', # Batak Toba
        'bcc' => 'بلوچی مکرانی', # Southern Balochi
        'bcl' => 'Bikol Central', # Bikol: Central Bicolano language
        'be' => 'беларуская', #  Belarusian normative
        'gu' => 'ગુજરાતી',        # Gujarati
        'gv' => 'Gaelg',                # Manx
        'ha' => 'Hausa',        # Hausa
-       'hak' => 'Hak-kâ-fa',  # Hakka
+       'hak' => '客家語/Hak-kâ-ngî',      # Hakka
        'haw' => 'Hawai`i',             # Hawaiian
        'he' => 'עברית',   # Hebrew
        'hi' => 'हिन्दी',   # Hindi
index 3d8be91..23270c5 100644 (file)
@@ -305,7 +305,7 @@ $messages = array(
 'faqpage' => 'Project:FAQ',
 
 # Vector skin
-'vector-action-addsection' => 'Beunagi barô',
+'vector-action-addsection' => 'Tamah bhaih',
 'vector-action-delete' => 'Sampôh',
 'vector-action-move' => 'Peupinah',
 'vector-action-protect' => 'Peulindông',
@@ -334,7 +334,7 @@ $messages = array(
 'history_short' => 'Atra u likôt',
 'updatedmarker' => 'geuubah yoh seunaweue keuneulheueh lon phon kon',
 'printableversion' => 'Seunalén rakam',
-'permalink' => 'Neuhubông teutap',
+'permalink' => 'Hubông teutap',
 'print' => 'Rakam',
 'view' => 'Beuet',
 'edit' => 'Andam',
@@ -396,7 +396,6 @@ $1",
 'disclaimers' => 'Beunantah',
 'disclaimerpage' => 'Project:Beunantah umom',
 'edithelp' => 'Bantu andam',
-'edithelppage' => 'Help:Andam',
 'helppage' => 'Help:Asoë',
 'mainpage' => 'Ôn Keuë',
 'mainpage-description' => 'Ôn Keuë',
@@ -654,7 +653,7 @@ Alasan-alasan nyan hana geupeureumeuen.",
 'viewpagelogs' => 'Eu log ôn nyoë',
 'currentrev' => 'Geunantoë jinoë',
 'currentrev-asof' => 'Geunantoë barô bak $1',
-'revisionasof' => 'Gantoë tiëp $1',
+'revisionasof' => 'Geunantoë tiëp $1',
 'revision-info' => 'Geunantoë tiëp $1; $2',
 'previousrevision' => '←Geunantoë sigohlomjih',
 'nextrevision' => 'Geunantoë lheuëh nyan→',
@@ -666,8 +665,8 @@ Alasan-alasan nyan hana geupeureumeuen.",
 'histlegend' => "Piléh duwa teuneugön radiô, lheuëh nyan teugön teuneugön ''peubandéng'' keu peubandéng seunalén. Teugön saboh tanggay keu eu seunalén ôn bak tanggay nyan.<br />(skr) = bida ngön seunalén jinoë, (akhé) = bida ngön seunalén sigohlomjih. '''u''' = andam ubeut, '''b''' = andam bot, → = andam bideuëng, ← = ehtisa keudroë",
 'history-fieldset-title' => 'Jeulajah riwayat away',
 'history-show-deleted' => 'Nyang geusampoh mantong',
-'histfirst' => 'Paléng trép',
-'histlast' => 'Paléng barô',
+'histfirst' => 'paléng trép',
+'histlast' => 'paléng barô',
 
 # Revision feed
 'history-feed-item-nocomment' => '$1 bak $2',
@@ -704,7 +703,6 @@ Alasan-alasan nyan hana geupeureumeuen.",
 'viewprevnext' => 'Eu ($1 {{int:pipe-separator}} $2)($3)',
 'searchmenu-exists' => "'''Na on ngon nan \"[[:\$1]]\" bak wiki nyoe.'''",
 'searchmenu-new' => "'''Peugöt ôn \"[[:\$1]]\" bak wiki nyoë!'''",
-'searchhelp-url' => 'Help:Asoë',
 'searchprofile-articles' => 'Ôn asoë',
 'searchprofile-project' => 'Ôn Beunantu ngön Buët',
 'searchprofile-images' => 'Multimedia',
@@ -765,7 +763,7 @@ Surat-e droeneuh h'an geupeugah keu ureueng nyan.",
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|neu’ubah|neu’ubah}}',
 'recentchanges' => 'Neuubah barô',
-'recentchanges-legend' => 'Peuniléh neuubah paléng barô',
+'recentchanges-legend' => 'Peuniléh neuubah barô',
 'recentchanges-summary' => "Di yup nyoë nakeuh neuubah barô nyang na bak Wikipèdia nyoë.
 Ceunatat: (bida) = neuubah, (riwayat) = riwayat teumuléh, '''B''' = ôn barô, '''u''' = neuandam ubeut, '''b''' = neuandam bot, (± ''bit'') = jumeulah asoë meutamah/meukureuëng, → = neuandam beunagi, ← = mohtasa otomatis.
 ----",
@@ -799,7 +797,6 @@ Ceunatat: (bida) = neuubah, (riwayat) = riwayat teumuléh, '''B''' = ôn barô,
 'recentchangeslinked-feed' => 'Neuubah meuhubông',
 'recentchangeslinked-toolbox' => 'Neuubah meuhubông',
 'recentchangeslinked-title' => 'Neuubah nyang meuhubông ngön $1',
-'recentchangeslinked-noresult' => 'Hana neu’ubah bak ôn-ôn meuhubông silawét masa nyang ka geupeuteuntèë.',
 'recentchangeslinked-summary' => "Nyoë nakeuh dapeuta neuubah nyang geupeugèt ban-ban nyoë keu on-on nyang meuhubông nibak ôn ka kusuih (atawa keu anggèëta kawan kusuih).
 Ôn-ôn bak [[Special:Watchlist|keunalon droeneuh]] geucitak '''teubay'''.",
 'recentchangeslinked-page' => 'Nan ôn:',
@@ -1011,7 +1008,7 @@ Droëneuh jeuët neugantoë tingkat lindông keu ôn nyoë, tapi nyan hana peung
 'contributions-title' => 'Beuneuri ureuëng nguy keu $1',
 'mycontris' => 'Beuneuri',
 'contribsub2' => 'Keu $1 ($2)',
-'uctop' => '(ateuëh)',
+'uctop' => '(jinoë)',
 'month' => 'Yôh buleuën (ngön yôh goh lom nyan)',
 'year' => 'Yôh thôn (ngön yôh goh lom nyan)',
 
@@ -1027,7 +1024,7 @@ Droëneuh jeuët neugantoë tingkat lindông keu ôn nyoë, tapi nyan hana peung
 'sp-contributions-submit' => 'Mita',
 
 # What links here
-'whatlinkshere' => 'Neuhubông balék',
+'whatlinkshere' => 'Hubông balék',
 'whatlinkshere-title' => 'Ôn nyang na neuhubông u $1',
 'whatlinkshere-page' => 'Ôn:',
 'linkshere' => "Ôn-ôn nyoë meuhubông u '''[[:$1]]''':",
@@ -1111,7 +1108,7 @@ Lam masalah nyoë, meunyo neuhawa, Droëneuh jeuët neupeupinah atawa neupeugab
 'tooltip-ca-edit' => 'Droëneuh jeuët neuandam ôn nyoë. Neunguy tumbôy eu dilèë yôh goh neukeubah.',
 'tooltip-ca-addsection' => 'Puphôn beunagi barô',
 'tooltip-ca-viewsource' => 'Ôn nyoë geupeulindông.
-Droëneuh cit jeuët neu’eu nèjih.',
+Droëneuh jeuët neu’eu nèjih.',
 'tooltip-ca-history' => 'Seunalén-seunalén sigohlomjih nibak ôn nyoë',
 'tooltip-ca-protect' => 'Peulindông ôn nyoë',
 'tooltip-ca-delete' => 'Sampôh ôn nyoë',
@@ -1126,8 +1123,8 @@ Droëneuh cit jeuët neu’eu nèjih.',
 'tooltip-n-mainpage-description' => 'Saweuë Ôn Keuë',
 'tooltip-n-portal' => 'Bhaih buët, peuë nyang jeuët neupeulaku, pat tamita sipeuë hay',
 'tooltip-n-currentevents' => 'Mita haba barô',
-'tooltip-n-recentchanges' => 'Dapeuta nyang ban meu’ubah lam wiki.',
-'tooltip-n-randompage' => 'Peuleumah beurangkari ôn',
+'tooltip-n-recentchanges' => 'Dapeuta neuubah baro lam wiki.',
+'tooltip-n-randompage' => 'Peuleumah ôn beurangkari',
 'tooltip-n-help' => 'Bak mita bantu.',
 'tooltip-t-whatlinkshere' => 'Dapeuta ban dum ôn wiki nyang na neuhubông u ôn nyoë',
 'tooltip-t-recentchangeslinked' => 'Neuubah barô ôn-ôn nyang na neuhubông u ôn nyoë',
index 580e52f..7a1ea44 100644 (file)
@@ -254,7 +254,6 @@ $1',
 'disclaimers' => 'عدم مسؤولية',
 'disclaimerpage' => 'Project:عدم مسؤولية عام',
 'edithelp' => 'مساعدة التحرير',
-'edithelppage' => 'Help:تحرير',
 'helppage' => 'Help:محتويات',
 'mainpage' => 'الصفحة الرئيسية',
 'mainpage-description' => 'الصفحة الرئيسية',
@@ -541,10 +540,8 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'إعادة ضبط كلمة السر',
-'passwordreset-text' => 'أكمل هذا النموذج لتتلقى بريدا إلكترونيا يذكر بتفاصيل حسابك.',
 'passwordreset-legend' => 'إعادة تعيين كلمة السر',
 'passwordreset-disabled' => 'عُطّلت إعادة تعيين كلمة السر على هذه الويكي.',
-'passwordreset-pretext' => '{{PLURAL:$1||أدخل أحد أجزاء البيانات أدناه}}',
 'passwordreset-username' => 'اسم المستخدم:',
 'passwordreset-domain' => 'النطاق:',
 'passwordreset-capture' => 'أأعرض البريد الإلكتروني الناتج؟',
@@ -1077,7 +1074,6 @@ $1",
 'recentchangeslinked' => 'تغييرات ذات علاقة',
 'recentchangeslinked-toolbox' => 'تغييرات ذات علاقة',
 'recentchangeslinked-title' => 'التغييرات المرتبطة ب "$1"',
-'recentchangeslinked-noresult' => 'لم تحدث تعديلات في الصفحات التي لها وصلات هنا خلال الفترة المحددة.',
 'recentchangeslinked-summary' => "هذه قائمة بالتغييرات التي تمت حديثا للصفحات الموصولة من صفحة معينة (أو إلى الأعضاء ضمن تصنيف معين).
 الصفحات في [[Special:Watchlist|قائمة مراقبتك]] '''عريضة'''",
 'recentchangeslinked-page' => 'اسم الصفحة:',
index 49f6141..c429e8d 100644 (file)
@@ -15,6 +15,7 @@
  * @author Kaganer
  * @author Manie
  * @author Naudefj
+ * @author Nemo bis
  * @author Purodha
  * @author Reedy
  * @author SPQRobin
@@ -314,6 +315,18 @@ $messages = array(
 'oct' => 'Okt',
 'nov' => 'Nov',
 'dec' => 'Des',
+'january-date' => '$1 Januarie',
+'february-date' => '$1 Februarie',
+'march-date' => '$1 Maart',
+'april-date' => '$1 April',
+'may-date' => '$1 Mei',
+'june-date' => '$1 Junie',
+'july-date' => '$1 Julie',
+'august-date' => '$1 Augustus',
+'september-date' => '$1 September',
+'october-date' => '$1 Oktober',
+'november-date' => '$1 November',
+'december-date' => '$1 Desember',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategorie|Kategorieë}}',
@@ -395,6 +408,7 @@ $messages = array(
 'create-this-page' => 'Skep hierdie bladsy',
 'delete' => 'Skrap',
 'deletethispage' => 'Skrap die bladsy',
+'undeletethispage' => 'Ontskrap die bladsy',
 'undelete_short' => 'Herstel {{PLURAL:$1|een wysiging|$1 wysigings}}',
 'viewdeleted_short' => 'Wys {{PLURAL:$1|een geskrapte wysiging|$1 geskrapte wysigings}}',
 'protect' => 'Beskerm',
@@ -448,7 +462,6 @@ $1",
 'disclaimers' => 'Voorbehoud',
 'disclaimerpage' => 'Project:Voorwaardes',
 'edithelp' => 'Wysigingshulp',
-'edithelppage' => 'Help:Wysig',
 'helppage' => 'Help:Inhoud',
 'mainpage' => 'Tuisblad',
 'mainpage-description' => 'Tuisblad',
@@ -595,6 +608,10 @@ Gebruik asseblief [//translatewiki.net/ translatewiki.net] om vertalings by te v
 'namespaceprotected' => "U het nie toestemming om bladsye in die '''$1'''-naamruimte te wysig nie.",
 'customcssprotected' => "U het nie toestemming om hierdie CSS-bladsy te redigeer nie, want dit bevat 'n ander gebruiker se persoonlike verstellings.",
 'customjsprotected' => "U het nie toestemming om hierdie JavaScript-bladsy te redigeer nie, want dit bevat 'n ander gebruiker se persoonlike verstellings.",
+'mycustomcssprotected' => 'U het nie regte om die CSS-bladsy te wysig nie.',
+'mycustomjsprotected' => 'U het nie regte om die JavaScript-bladsy te wysig nie.',
+'myprivateinfoprotected' => 'U het nie regte om u persoonlike inligting te wysig nie.',
+'mypreferencesprotected' => 'U het nie regte om u voorkeure te wysig nie.',
 'ns-specialprotected' => 'Spesiale bladsye kan nie geredigeer word nie.',
 'titleprotected' => "Hierdie titel is beskerm teen skepping deur [[User:$1|$1]].
 Die rede gegee is ''$2''.",
@@ -622,6 +639,7 @@ Moenie vergeet om u [[Special:Preferences|voorkeure vir {{SITENAME}}]] te stel n
 'yourname' => 'Gebruikersnaam:',
 'userlogin-yourname' => 'Gebruikersnaam',
 'userlogin-yourname-ph' => 'Sleutel u gebruikersnaam in',
+'createacct-another-username-ph' => 'Verskaf gebruikersnaam',
 'yourpassword' => 'Wagwoord:',
 'userlogin-yourpassword' => 'Wagwoord',
 'userlogin-yourpassword-ph' => 'Sleutel u wagwoord in',
@@ -656,9 +674,11 @@ Moenie vergeet om u [[Special:Preferences|voorkeure vir {{SITENAME}}]] te stel n
 'helplogin-url' => 'Help:Aanmelding',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hulp met aanmelding]]',
 'createacct-join' => 'Verskaf u gegewens hieronder.',
+'createacct-another-join' => 'Sleutel die nuwe rekening se inligting hier onder in:',
 'createacct-emailrequired' => 'E-posadres',
 'createacct-emailoptional' => 'E-posadres (opsioneel)',
 'createacct-email-ph' => 'Sleutel u e-posadres in',
+'createacct-another-email-ph' => 'Verskaf e-posadres',
 'createaccountmail' => "Gebruik 'n tydelike lukrake wagwoord en stuur dit na die e-posadres hier onder",
 'createacct-realname' => 'Regte naam (opsioneel)',
 'createaccountreason' => 'Rede:',
@@ -667,6 +687,7 @@ Moenie vergeet om u [[Special:Preferences|voorkeure vir {{SITENAME}}]] te stel n
 'createacct-captcha' => 'Veiligheidskontrole',
 'createacct-imgcaptcha-ph' => 'Sleutel die teks hierbo in',
 'createacct-submit' => 'Skep u rekening',
+'createacct-another-submit' => "Skep nog 'n rekening",
 'createacct-benefit-heading' => '{{SITENAME}} word deur mense soos u geskep.',
 'createacct-benefit-body1' => '{{PLURAL:$1|wysiging|wysigings}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|bladsy|bladsye}}',
@@ -687,7 +708,7 @@ Skakel dit asseblief aan en probeer weer.',
 'nocookiesfornew' => 'Die gebruiker is nie geskep nie omdat die oorsprong nie bevestig kon word nie.
 Maak seker dat u koekies aangeskakel het, herlaai die bladsy en probeer dan weer.',
 'noname' => 'Ongeldige gebruikersnaam.',
-'loginsuccesstitle' => 'Suksesvolle intekening',
+'loginsuccesstitle' => 'Suksesvolle aanmelding',
 'loginsuccess' => 'U is nou by {{SITENAME}} as "$1" ingeteken.',
 'nosuchuser' => 'Die gebruiker "$1" bestaan nie.
 Gebruikersname is gevoelig vir hoofletters.
@@ -727,7 +748,7 @@ Voer asseblief 'n geldige e-posadres in, of laat die veld leeg.",
 'cannotchangeemail' => "Die e-posadres vir 'n gebruiker kan nie op hierdie wiki gewysig word nie.",
 'emaildisabled' => 'Hierdie webwerf kan nie e-poste stuur nie.',
 'accountcreated' => 'Rekening geskep',
-'accountcreatedtext' => 'Die rekening vir gebruiker $1 is geskep.',
+'accountcreatedtext' => 'Die rekening vir [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|bespreek]]) is geskep.',
 'createaccount-title' => 'Rekeningskepping vir {{SITENAME}}',
 'createaccount-text' => 'Iemand het \'n gebruiker met die naam "$2" en u e-posadres op {{SITENAME}} ($4) geskep.
 Die wagwoord vir "$2" is "$3".
@@ -769,11 +790,11 @@ U het moontlik reeds u wagwoord gewysig of 'n nuwe tydelike wagwoord aangevra.",
 
 # Special:PasswordReset
 'passwordreset' => 'Wagwoord herstel',
-'passwordreset-text' => 'Voltooi hierdie vorm om u wagwoord te herstel.',
+'passwordreset-text-one' => 'Voltooi hierdie vorm om u wagwoord te herstel.',
+'passwordreset-text-many' => '{{PLURAL:$1|Vul een van die velde in om u wagwoord te herstel.}}',
 'passwordreset-legend' => 'Kry nuwe wagwoord',
 'passwordreset-disabled' => 'Die herskik van U wagwoord is gedeaktiveer op hierdie wiki.',
 'passwordreset-emaildisabled' => 'E-posfunksies is afgeskakel op hierdie wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1| | Voer een van die onderstaande velde in}}',
 'passwordreset-username' => 'Gebruiker:',
 'passwordreset-domain' => 'Domein:',
 'passwordreset-capture' => 'Wys resulterende e-pos?',
@@ -995,7 +1016,7 @@ U kan slegs bestaande bladsye wysig, of u kan [[Special:UserLogin|aanmeld of 'n
 'nocreate-loggedin' => 'U het nie regte om nuwe blaaie te skep nie.',
 'sectioneditnotsupported-title' => 'Dit is nie moontlik om paragrawe te wysig nie',
 'sectioneditnotsupported-text' => 'Dit is nie moontlik om paragrawe op hierdie bladsy te wysig nie.',
-'permissionserrors' => 'Toestemmingsfoute',
+'permissionserrors' => 'Toestemmingsfout',
 'permissionserrorstext' => 'U het nie toestemming om hierdie te doen nie, om die volgende {{PLURAL:$1|rede|redes}}:',
 'permissionserrorstext-withaction' => 'U het geen regte om $2, vir die volgende {{PLURAL:$1|rede|redes}}:',
 'recreate-moveddeleted-warn' => "'''Waarskuwing: U herskep 'n bladsy wat vantevore verwyder is.'''
@@ -1011,6 +1032,7 @@ Geen verduideliking is verskaf nie.",
 Dit lyk of dit verwyder is.',
 'edit-conflict' => 'Wysigingskonflik',
 'edit-no-change' => 'U wysiging was geignoreer omdat die teks nie verander is nie.',
+'postedit-confirmation' => 'U wysigings is gestoor.',
 'edit-already-exists' => 'Die bladsy is nie geskep nie.
 Dit bestaan alreeds.',
 'defaultmessagetext' => 'Verstekteks',
@@ -1018,7 +1040,7 @@ Dit bestaan alreeds.',
 '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.
-Indien u aangemeld is, kan u hierdie waarskuwing in die "{{int:prefs-editing}}"-afdeling van u voorkeure afskakel.',
+Indien u aangemeld is, kan u hierdie waarskuwing in die "Wysigings"-afdeling van u voorkeure afskakel.',
 
 # Content models
 'content-model-wikitext' => 'Wikiteks',
@@ -1054,6 +1076,7 @@ Kontroleer die vergelyking hieronder om seker te maak dis wat u wil doen, en sto
 'undo-failure' => 'Die wysiging kan nie ongedaan gemaak word nie omdat dit met intermediêre wysigings bots.',
 'undo-norev' => 'Die wysiging kon nie ongedaan gemaak word nie omdat dit nie bestaan nie of reeds verwyder is.',
 'undo-summary' => 'Rol weergawe $1 deur [[Special:Contributions/$2|$2]] ([[User talk:$2|bespreek]]) terug.',
+'undo-summary-username-hidden' => "Rol weergawe $1 deur 'n versteekte gebruiker terug",
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Kan nie rekening skep nie',
@@ -1080,8 +1103,8 @@ Die rede verskaf deur $3 is ''$2''",
 (vorige) = verskil van vorige weergawe, M = klein wysiging',
 'history-fieldset-title' => 'Blaai deur geskiedenis',
 'history-show-deleted' => 'Slegs geskrapte',
-'histfirst' => 'Oudste',
-'histlast' => 'Nuutste',
+'histfirst' => 'oudste',
+'histlast' => 'nuutste',
 'historysize' => '({{PLURAL:$1|1 greep|$1 grepe}})',
 'historyempty' => '(leeg)',
 
@@ -1233,6 +1256,7 @@ Let op dat die gebruik van navigasieskakels hierdie kolom se waardes sal herstel
 'compareselectedversions' => 'Vergelyk gekose weergawes',
 'showhideselectedversions' => 'Wys/versteek gekose weergawes',
 'editundo' => 'maak ongedaan',
+'diff-empty' => '(Geen verskil)',
 'diff-multi' => '({{PLURAL:$1|Een tussenin wysiging|$1 tussenin wysigings}} deur {{PLURAL:$2|een gebruiker|$2 gebruikers}} word nie gewys nie)',
 'diff-multi-manyusers' => '({{PLURAL:$1|Een tussenin wysiging|$1 tussenin wysigings}} deur meer as $2 {{PLURAL:$2|gebruiker|gebruikers}} nie gewys nie)',
 'difference-missing-revision' => "{{PLURAL:$2|'n Weergawe|$2 weergawes}} van die verskil ($1) {{PLURAL:$2|is|is}} nie gevind nie.
@@ -1260,7 +1284,6 @@ Details kan in die [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} s
 'searchmenu-legend' => 'Soekopsies',
 'searchmenu-exists' => "'''Daar is reeds 'n bladsy genaamd \"[[:\$1]]\" op die wiki'''",
 'searchmenu-new' => "'''Skep die bladsy \"[[:\$1]]\" op hierdie wiki'''",
-'searchhelp-url' => 'Help:Inhoud',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Wys bladsye wat met die voorvoegsel begin]]',
 'searchprofile-articles' => 'Inhoudelike bladsye',
 'searchprofile-project' => 'Hulp- en projekbladsye',
@@ -1337,7 +1360,6 @@ U kan ook 'n naamruimte as voorvoegsel gebruik.",
 'resetprefs' => 'Herstel voorkeure',
 'restoreprefs' => 'Herstel voorkeure',
 'prefs-editing' => 'Wysigings',
-'prefs-edit-boxsize' => 'Afmetings van die wysigingsvenster.',
 'rows' => 'Rye',
 'columns' => 'Kolomme',
 'searchresultshead' => 'Soekresultate',
@@ -1348,9 +1370,6 @@ U kan ook 'n naamruimte as voorvoegsel gebruik.",
 'recentchangesdays-max' => 'Maksimum $1 {{PLURAL:$1|dag|dae}}',
 'recentchangescount' => 'Aantal wysigings om by verstek te vertoon:',
 'prefs-help-recentchangescount' => 'Dit geld vir onlangse wysigings, bladsygeskiedenis en logboekbladsye.',
-'prefs-help-watchlist-token' => "Deur 'n geheime sleutel hier in te sleutel word 'n RSS-voer vir u dophoulys geskep.
-Enige een wat die sleutel ken sal u dophoulys kan lees. Kies dus 'n veilige sleutel.
-Hier volg 'n lukraak gegenereerde waarde wat u kan gebruik: $1",
 'savedprefs' => 'U voorkeure is gestoor.',
 'timezonelegend' => 'Tydsone:',
 'localtime' => 'Plaaslike tyd:',
@@ -1381,7 +1400,6 @@ Hier volg 'n lukraak gegenereerde waarde wat u kan gebruik: $1",
 'prefs-reset-intro' => 'U kan die blad gebruik om u voorkeure terug te stel na die webwerf se verstekwaardes.
 Die aksie kan nie ongedaan gemaak word nie.',
 'prefs-emailconfirm-label' => 'E-posbevestiging:',
-'prefs-textboxsize' => 'Afmetings van die wysigingsvenster',
 'youremail' => 'E-posadres:',
 'username' => '{{GENDER:$1|Gebruikersnaam}}:',
 'uid' => '{{GENDER:$1|Gebruiker-ID}}:',
@@ -1414,7 +1432,9 @@ As u dit verskaf, sal dit gebruik word om erkenning vir u werk te gee.',
 'prefs-signature' => 'Handtekening',
 'prefs-dateformat' => 'Datumformaat',
 'prefs-timeoffset' => 'Tydsverskil',
-'prefs-advancedediting' => 'Gevorderde instellings',
+'prefs-advancedediting' => 'Algemeen',
+'prefs-editor' => 'Redigeerder',
+'prefs-preview' => 'Voorskou',
 'prefs-advancedrc' => 'Gevorderde instellings',
 'prefs-advancedrendering' => 'Gevorderde instellings',
 'prefs-advancedsearchoptions' => 'Gevorderde instellings',
@@ -1450,6 +1470,7 @@ As u dit verskaf, sal dit gebruik word om erkenning vir u werk te gee.',
 'userrights-changeable-col' => 'Groepe wat u kan verander',
 'userrights-unchangeable-col' => 'Groepe wat u nie kan verander nie',
 'userrights-conflict' => 'Konflik met gebruikersregte! Pas asseblief weer u wysigings toe.',
+'userrights-removed-self' => 'U het u eie regte suksesvol verwyder. Gevolglik het u nie meer toegang tot hierdie bladsy nie.',
 
 # Groups
 'group' => 'Groep:',
@@ -1493,7 +1514,7 @@ As u dit verskaf, sal dit gebruik word om erkenning vir u werk te gee.',
 'right-reupload-shared' => 'Oorskryf lêers op die gedeelde mediabank plaaslik',
 'right-upload_by_url' => "Laai lêer van 'n URL",
 'right-purge' => "Maak kas vir 'n bladsy skoon sonder verdere bevestiging",
-'right-autoconfirmed' => 'Wysig half beskermde bladsye',
+'right-autoconfirmed' => 'Uitgesonder van IP-adresgebaseerde tydsafhanklike beperkings',
 'right-bot' => "Behandel as 'n geoutomatiseerde proses",
 'right-nominornewtalk' => "Klein wysigings aan besprekingsbladsye lei nie tot vermelding van 'nuwe boodskappe' nie",
 'right-apihighlimits' => 'Gebruik hoër limiete in API-soekopgragte',
@@ -1514,12 +1535,20 @@ As u dit verskaf, sal dit gebruik word om erkenning vir u werk te gee.',
 'right-ipblock-exempt' => 'Omseil IP-blokkades',
 'right-proxyunbannable' => "Blokkades vir instaanbedieners (proxy's) geld nie",
 'right-unblockself' => 'Eie gebruiker deblokkeer',
-'right-protect' => 'Verander beskermingsvlakke en wysig beskermde bladsye',
-'right-editprotected' => 'Wysig beskermde bladsye (sonder kaskade-beskerming)',
+'right-protect' => 'Verander beveiligingsvlakke en wysig kaskade-beskermde bladsye',
+'right-editprotected' => 'Wysig bladsye beskermd as "{{int:protect-level-sysop}}"',
+'right-editsemiprotected' => 'Wysig bladsye wat as "{{int:protect-level-autoconfirmed}}" beskerm is',
 'right-editinterface' => 'Wysig die gebruikerskoppelvlak',
 'right-editusercssjs' => 'Wysig ander gebruikers se CSS- en JS-lêers',
 'right-editusercss' => 'Wysig ander gebruikers se CSS-lêers',
 'right-edituserjs' => 'Wysig ander gebruikers se JS-lêers',
+'right-editmyusercss' => 'Wysig u persoonlike CSS-bladsy',
+'right-editmyuserjs' => 'Wysig u persoonlike JavaScript-bladsy',
+'right-viewmywatchlist' => 'Wys u persoonlike dophoulys',
+'right-editmywatchlist' => 'Wysig u persoonlike dophoulys. Sommige aksies sal steeds bladsye byvoeg, selfs sonder die bevoegdheid.',
+'right-viewmyprivateinfo' => 'Wys u eie privaat data (bv. e-posadres, regte naam)',
+'right-editmyprivateinfo' => 'Wysig u eie privaat data (bv. e-posadres, regte naam)',
+'right-editmyoptions' => 'Wysig u eie voorkeure',
 'right-rollback' => "Rol wysigings van die laaste gebruiker wat 'n bladsy gewysig het vinnig terug",
 'right-markbotedits' => 'Merk teruggerolde wysigings as botbywerkings',
 'right-noratelimit' => 'Negeer tydsafhanklike beperkings',
@@ -1570,7 +1599,7 @@ As u dit verskaf, sal dit gebruik word om erkenning vir u werk te gee.',
 'action-suppressionlog' => 'na die privaat logboek te kyk nie',
 'action-block' => 'blokkeer die gebruiker om wysigings te maak',
 'action-protect' => 'verander veiligheidsvlak van die bladsy',
-'action-rollback' => "rol die wysigings van die laatste gebruiker wat 'n bladsy gewysig het vinnig terug",
+'action-rollback' => "rol die wysigings van die laaste gebruiker wat 'n bladsy gewysig het vinnig terug",
 'action-import' => "hierdie bladsy van 'n ander wiki te importeer nie",
 'action-importupload' => "die bladsy van 'n opgelaaide lêer te importeer nie",
 'action-patrol' => 'wysigings van andere as gekontroleer te merk nie',
@@ -1581,12 +1610,17 @@ As u dit verskaf, sal dit gebruik word om erkenning vir u werk te gee.',
 'action-userrights-interwiki' => 'wysig gebruikersregte van gebruikers op ander wikis',
 'action-siteadmin' => 'sluit of ontsluit die databasis',
 'action-sendemail' => 'stuur e-posse',
+'action-editmywatchlist' => 'wysig u dophoulys',
+'action-viewmywatchlist' => 'wys u dophoulys',
+'action-viewmyprivateinfo' => 'wys u privaat inligting',
+'action-editmyprivateinfo' => 'wysig u privaat inligting',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|wysiging|wysigings}}',
 'recentchanges' => 'Onlangse wysigings',
 'recentchanges-legend' => 'Opsies vir onlangse wysigings',
 'recentchanges-summary' => 'Volg die mees onlangse wysigings aan die wiki op die bladsy.',
+'recentchanges-noresult' => 'Geen wysigings gedurende die tydperk pas die kriteria nie.',
 'recentchanges-feed-description' => 'Hierdie voer laat u toe om die mees onlangse wysigings aan die wiki te volg.',
 'recentchanges-label-newpage' => "Met die wysiging is 'n nuwe bladsy geskep",
 'recentchanges-label-minor' => "Hierdie is 'n klein wysiging",
@@ -1623,7 +1657,6 @@ As u dit verskaf, sal dit gebruik word om erkenning vir u werk te gee.',
 'recentchangeslinked-feed' => 'Verwante veranderings',
 'recentchangeslinked-toolbox' => 'Verwante veranderings',
 'recentchangeslinked-title' => 'Wysigings verwant aan "$1"',
-'recentchangeslinked-noresult' => 'Geen veranderinge op geskakelde bladsye gedurende die periode nie.',
 'recentchangeslinked-summary' => "Hier volg 'n lys van wysigings wat onlangs gemaak is aan bladsye wat van die gespesifiseerde bladsy geskakel word (of van bladsye van die gespesifiseerde kategorie).
 Bladsye op [[Special:Watchlist|u dophoulys]] word in '''vetdruk''' uitgewys.",
 'recentchangeslinked-page' => 'Bladsynaam:',
@@ -1635,7 +1668,7 @@ Bladsye op [[Special:Watchlist|u dophoulys]] word in '''vetdruk''' uitgewys.",
 'reuploaddesc' => 'Keer terug na die laaivorm.',
 'upload-tryagain' => 'Stuur gewysigde lêerbeskrywing',
 'uploadnologin' => 'Nie ingeteken nie',
-'uploadnologintext' => 'U moet [[Special:UserLogin|aanmeld]] alvorens u lêers kan laai.',
+'uploadnologintext' => 'U moet $1 alvorens u lêers kan laai.',
 'upload_directory_missing' => 'Die oplaaigids ($1) bestaan nie en kon nie deur die webbediener geskep word nie.',
 'upload_directory_read_only' => 'Die webbediener kan nie na die oplaai gids ($1) skryf nie.',
 'uploaderror' => 'Laaifout',
@@ -2195,7 +2228,7 @@ Benodig ten minste een topvlakdomein, soos byvoorbeeld "*.org".<br />
 # Special:ActiveUsers
 'activeusers' => 'Aktiewe gebruikers',
 'activeusers-intro' => "Hierdie is 'n lys van gebruikers wat die laaste {{PLURAL:$1|dag|$1 dae}} enige aktiwiteit getoon het.",
-'activeusers-count' => '$1 onlangse {{PLURAL:$1|wysiging|wysigings}} in die {{PLURAL:$3|afgelope dag|laatste $3 dae}}',
+'activeusers-count' => '$1 onlangse {{PLURAL:$1|wysiging|wysigings}} in die {{PLURAL:$3|afgelope dag|laaste $3 dae}}',
 'activeusers-from' => 'Wys gebruikers, beginnende by:',
 'activeusers-hidebots' => 'Versteek bots',
 'activeusers-hidesysops' => 'Versteek administrateurs',
@@ -2205,7 +2238,8 @@ Benodig ten minste een topvlakdomein, soos byvoorbeeld "*.org".<br />
 'listgrouprights' => 'Gebruikersgroepregte',
 'listgrouprights-summary' => "Hier volg 'n lys van gebruikersgroepe met hulle ooreenstemmende regte wat op die wiki gedefinieer is.
 Daar kan [[{{MediaWiki:Listgrouprights-helppage}}|extra inligting]] oor individuele regte aanwesig wees.",
-'listgrouprights-key' => '* <span class="listgrouprights-granted">Toegekende regte</span>
+'listgrouprights-key' => 'Sleutel:
+* <span class="listgrouprights-granted">Toegekende regte</span>
 * <span class="listgrouprights-revoked">Teruggetrekte regte</span>',
 'listgrouprights-group' => 'Groep',
 'listgrouprights-rights' => 'Regte',
@@ -2275,10 +2309,9 @@ Toekomstige wysigings aan hierdie bladsy en sy bybehorende besprekingsblad sal h
 'unwatchthispage' => 'Moenie meer dophou',
 'notanarticle' => "Nie 'n artikel",
 'notvisiblerev' => 'Weergawe is verwyder',
-'watchnochange' => 'Geen item op die dophoulys is geredigeer in die gekose periode nie.',
 'watchlist-details' => '{{PLURAL:$1|$1 bladsy|$1 bladsye}} in u dophoulys, besprekingsbladsye uitgesluit.',
-'wlheader-enotif' => 'E-pos notifikasie is aangeskakel.',
-'wlheader-showupdated' => "Bladsye wat verander is sedert u hulle laas besoek het word in '''vetdruk''' uitgewys",
+'wlheader-enotif' => 'E-pos kennisgewings is aangeskakel.',
+'wlheader-showupdated' => "Bladsye wat verander is sedert u hulle laas besoek het word in '''vetdruk''' uitgewys.",
 'watchmethod-recent' => 'Kontroleer onlangse wysigings aan bladsye op dophoulys',
 'watchmethod-list' => 'kontroleer bladsye op dophoulys vir wysigings',
 'watchlistcontains' => 'Jou dophoulys bevat $1 {{PLURAL:$1|bladsy|bladsye}}.',
@@ -2386,7 +2419,7 @@ Iemand anders het reeds hierdie bladsy gewysig of teruggerol na 'n vroeëre weer
 Die mees onlangse wysiging is gemaak deur [[User:$3|$3]] ([[User talk:$3|bespreking]]{{int:pipe-separator}}[[Special:Contributions/$3|bydraes]]).",
 'editcomment' => "Die wysigsopsomming was: \"''\$1''\".",
 'revertpage' => 'Wysigings deur [[Special:Contributions/$2|$2]] teruggerol na laaste weergawe deur $1',
-'revertpage-nouser' => 'Rol wysigings deur (gebruikersnaam verwyder) terug na die laaste weergawe deur [[User:$1|$1]]',
+'revertpage-nouser' => 'Rol wysigings deur versteekte gebruiker terug na die laaste weergawe deur [[User:$1|$1]]',
 'rollback-success' => 'Wysigings deur $1 is teruggerol.
 Die laaste weergawe van $2 is teruggeplaas.',
 
@@ -2532,7 +2565,7 @@ $1',
 'mycontris' => 'Bydraes',
 'contribsub2' => 'Vir $1 ($2)',
 'nocontribs' => 'Geen veranderinge wat by hierdie kriteria pas, is gevind nie.',
-'uctop' => ' (boontoe)',
+'uctop' => '(laaste wysiging)',
 'month' => 'Vanaf maand (en vroeër):',
 'year' => 'Vanaf jaar (en vroeër):',
 
@@ -2820,11 +2853,11 @@ Kies asseblief 'n andere lêernaam.",
 # Export
 'export' => 'Eksporteer bladsye',
 'exporttext' => 'U kan die teks en geskiedenis van \'n bladsy of bladsye na XML-formaat eksporteer.
-Die eksportlêer kan daarna geïmporteer word na enige ander MediaWiki webwerf via die [[Special:Import|importeer bladsy]] skakel.
+Die eksportlêer kan daarna op enige ander MediaWiki-webwerf via die [[Special:Import|importeer bladsy]] skakel gelaai word.
 
 Verskaf die name van die bladsye wat geëksporteer moet word in die onderstaande veld, een bladsy per lyn, en kies of u alle weergawes (met geskiedenis) of slegs die nuutste weergawe soek.
 
-In die laatste geval kan u ook \'n verwysing gebruik, byvoorbeeld [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] vir die bladsy "{{MediaWiki:Mainpage}}".',
+In die laaste geval kan u ook \'n verwysing gebruik, byvoorbeeld [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] vir die bladsy "[[{{MediaWiki:Mainpage}}]]".',
 'exportall' => 'Eksporteer alle bladsye',
 'exportcuronly' => 'Slegs die nuutste weergawes, sonder volledige geskiedenis',
 'exportnohistory' => "----
@@ -2860,6 +2893,8 @@ Gaan na [//www.mediawiki.org/wiki/Localisation MediaWiki-lokalisasie] en [//tran
 'thumbnail-more' => 'Vergroot',
 'filemissing' => 'Lêer is weg',
 'thumbnail_error' => 'Fout met die skep van duimnaelsketse: $1',
+'thumbnail_error_remote' => 'Fout vanaf $1:
+$2',
 'djvu_page_error' => 'DjVu-bladsy buite bereik',
 'djvu_no_xml' => 'Die XML vir die DjVu-lêer kon nie bekom word nie',
 'thumbnail-temp-create' => "Kon nie 'n tydelike duimnaellêer skep nie.",
@@ -3061,8 +3096,8 @@ Hierdie situasie was waarskynlik deur 'n skakel na 'n eksterne webtuiste op ons
 'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|aanstuur|aansture}}; $3 {{PLURAL:$3|nie-aanstuur|nie-aansture}})',
 'pageinfo-firstuser' => 'Gebruiker wat die bladsy geskep het',
 'pageinfo-firsttime' => 'Datum waarop die bladsy geskep is',
-'pageinfo-lastuser' => 'Laatste wysiger',
-'pageinfo-lasttime' => 'Datum van laatste wysiging',
+'pageinfo-lastuser' => 'Laaste outeur',
+'pageinfo-lasttime' => 'Datum van laaste wysiging',
 'pageinfo-edits' => 'Totale aantal wysigings',
 'pageinfo-authors' => 'Totale aantal verskillende outeurs',
 'pageinfo-recent-edits' => 'Aantal onlangse wysigings (binne die afgelope $1)',
@@ -3781,7 +3816,6 @@ U kan ook die [[Special:EditWatchlist|standaard opdaterigskerm gebruik]].',
 'version-other' => 'Ander',
 'version-mediahandlers' => 'Mediaverwerkers',
 'version-hooks' => 'Hoeke',
-'version-extension-functions' => 'Uitbreidingsfunksies',
 'version-parser-extensiontags' => 'Ontleder-uitbreidingsetikette',
 'version-parser-function-hooks' => 'Ontleder-funksiehoeke',
 'version-hook-name' => 'Hoek naam',
@@ -3863,6 +3897,7 @@ Saam met die program moes u \'n [{{SERVER}}{{SCRIPTPATH}}/COPYING kopie van van
 'tags' => 'Geldige wysigings-etikette',
 'tag-filter' => '[[Special:Tags|Etiketfilter]]:',
 'tag-filter-submit' => 'Filter',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Etiket|Etikette}}]]: $2)',
 'tags-title' => 'Etikette',
 'tags-intro' => 'Hierdie bladsy bevat die etikette waarmee die sagteware wysigings mee kan merk, en hul betekenis.',
 'tags-tag' => 'Etiketnaam',
index e9c406d..db56f94 100644 (file)
@@ -301,7 +301,6 @@ $1',
 'disclaimers' => 'Shfajsime',
 'disclaimerpage' => 'Project:Shfajsimet e përgjithshme',
 'edithelp' => 'Ndihmë për redaktim',
-'edithelppage' => 'Help:Redaktimi',
 'helppage' => 'Help:Përmbajtja',
 'mainpage' => 'Faqja kryesore',
 'mainpage-description' => 'Faqja Kryesore',
@@ -903,7 +902,6 @@ Kini kujdes se përdorimi i lidhjeve të shfletimit do të ndryshojë përzgjedh
 'searchmenu-legend' => 'Opcionet e kërkimit',
 'searchmenu-exists' => "'''Në këtë wiki âsht nji faqe me titullin \"[[:\$1]]\"'''",
 'searchmenu-new' => "'''Krijo faqen \"[[:\$1]]\" në këtë wiki!'''",
-'searchhelp-url' => 'Help:Përmbajtja',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Shfleto faqet me këtë prefiks]]',
 'searchprofile-articles' => 'Faqet me përmbajtje',
 'searchprofile-project' => 'Faqet e ndihmës dhe projekteve',
@@ -975,7 +973,6 @@ Vini re se indeksat e tyne të përmbajtjes së {{SITENAME}} munden me qenë të
 'resetprefs' => 'Fshij ndryshimet e paruejtuna',
 'restoreprefs' => 'Kthe tâna përcaktimet si në fillim',
 'prefs-editing' => 'Tue redaktue',
-'prefs-edit-boxsize' => 'Madhësia e dritares redaktuese.',
 'rows' => 'Rreshta:',
 'columns' => 'Kolona:',
 'searchresultshead' => 'Kërkimi',
@@ -1500,7 +1497,6 @@ Lejon dhânien e arsyes në përmbledhje.',
 'modern.css' => '/* CSSi i vednosun këtu ka me i prekë shfrytëzuesit e dukjes Modern */',
 'vector.css' => '/* CSSi i vednosun këtu ka me i prekë shfrytëzuesit e dukjes Vector */',
 'print.css' => '/* CSSi i vednosun këtu ka me e prekë pamjen e shtypjes */',
-'handheld.css' => '/* CSSi i vednosun këtu ka me i prekë shfletuesit mobil (të dorës) në dukje e konfigurueme në $wgHandheldStyle */',
 
 # Scripts
 'common.js' => '/* Çdo JavaScript këtu ka me u ngarkue për të gjithë përdoruesit në secilën thirrje të faqes. */',
index fb8e17b..30ae336 100644 (file)
@@ -274,7 +274,6 @@ $1',
 'disclaimers' => 'የኃላፊነት ማስታወቂያ',
 'disclaimerpage' => 'Project:አጠቃላይ የሕግ ነጥቦች',
 'edithelp' => 'የማረም መመሪያ',
-'edithelppage' => 'Help:የማዘጋጀት እርዳታ',
 'helppage' => 'Help:ይዞታ',
 'mainpage' => 'ዋናው ገጽ',
 'mainpage-description' => 'ዋና ገጽ',
@@ -806,7 +805,6 @@ $1ን ወይም ማንም ሌላ [[{{MediaWiki:Grouppage-sysop}}|መጋቢ]] ስ
 'searchmenu-legend' => 'የፍለጋ ምርጫዎች',
 'searchmenu-exists' => "'''\"[[:\$1]]\" የሚባል መጣጥፍ በዚሁ ዊኪ ላይ አለ።'''",
 'searchmenu-new' => "'''\"[[:\$1]]\" የሚባል መጣጥፍ ይፈጠር?'''",
-'searchhelp-url' => 'Help:ይዞታ',
 'searchprofile-articles' => 'ይዞታ ያላቸው መጣጥፎች',
 'searchprofile-project' => 'የመርሃግብሩ ገጾች',
 'searchprofile-images' => 'ፋይሎች',
@@ -871,7 +869,6 @@ $1ን ወይም ማንም ሌላ [[{{MediaWiki:Grouppage-sysop}}|መጋቢ]] ስ
 'saveprefs' => 'ይቆጠብ',
 'resetprefs' => 'እንደ በፊቱ ይታደስ',
 'prefs-editing' => 'የማዘጋጀት ምርጫዎች',
-'prefs-edit-boxsize' => 'ይህ የማዘጋጀት ሳጥን ስፋት ለመወሰን ነው።',
 'rows' => 'በማዘጋጀቱ ሰንጠረዥ ስንት ተርታዎች?',
 'columns' => 'ስንት ዓምዶችስ?',
 'searchresultshead' => 'ፍለጋ',
@@ -905,7 +902,6 @@ $1ን ወይም ማንም ሌላ [[{{MediaWiki:Grouppage-sysop}}|መጋቢ]] ስ
 'prefs-custom-css' => 'ልዩ CSS',
 'prefs-custom-js' => 'ልዩ ጃቫ ስክሪፕት',
 'prefs-emailconfirm-label' => 'የኢ-ሜል ማረጋገጫ',
-'prefs-textboxsize' => 'የማዘጋጀት መስኮት መጠን',
 'youremail' => 'ኢ-ሜል *',
 'username' => 'የብዕር ስም:',
 'uid' => 'የገባበት ቁ.: #',
@@ -1086,7 +1082,6 @@ $1ን ወይም ማንም ሌላ [[{{MediaWiki:Grouppage-sysop}}|መጋቢ]] ስ
 'recentchangeslinked-feed' => 'የተዛመዱ ለውጦች',
 'recentchangeslinked-toolbox' => 'የተዛመዱ ለውጦች',
 'recentchangeslinked-title' => 'በ«$1» በተዛመዱ ገጾች ቅርብ ለውጦች',
-'recentchangeslinked-noresult' => 'በተመለከተው ጊዜ ውስጥ ከዚህ በተያየዙት ገጾች ላይ ምንም ለውጥ አልነበረም።',
 'recentchangeslinked-summary' => "ከዚሁ ገጽ የተያየዙት ሌሎች ጽሑፎች ቅርብ ለውጦች ከታች ይዘረዝራሉ።
 
 በሚከታተሉት ገጾች መካከል ያሉት ሁሉ በ'''ጉልህ ፊደላት''' ይታያሉ።",
@@ -1528,7 +1523,6 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'unwatchthispage' => 'መከታተል ይቅር',
 'notanarticle' => 'መጣጥፍ አይደለም',
 'notvisiblerev' => 'ዕትሙ ጠፍቷል',
-'watchnochange' => 'ከተካከሉት ገጾች አንዳችም በተወሰነው ጊዜ ውስጥ አልተለወጠም።',
 'watchlist-details' => 'አሁን {{PLURAL:$1|$1 ገፅ|$1 ገፆች}} በምትከታተላቸው ገፆች ላይ አሉ (የውይይት ገፅ ሳይጨመር)።',
 'wlheader-enotif' => 'የ-ኢሜል ማስታወቂያ እንዲሠራ ተደርጓል።',
 'wlheader-showupdated' => "መጨረሻ ከጎበኟቸው ጀምሮ የተቀየሩት ገጾች በ'''ጉልህ ፊደላት''' ይታያሉ",
@@ -2508,7 +2502,6 @@ $3
 'version-variables' => 'ተለዋጮች',
 'version-other' => 'ሌላ',
 'version-hooks' => 'ሜንጦዎች',
-'version-extension-functions' => 'የቅጥያ ሥራዎች',
 'version-parser-extensiontags' => 'የዝርዛሪ ቅጥያ ምልክቶች',
 'version-parser-function-hooks' => 'የዘርዛሪ ተግባር ሜጦዎች',
 'version-hook-name' => 'የሜንጦ ስም',
index d2512f9..15866fc 100644 (file)
@@ -371,7 +371,6 @@ $1",
 'disclaimers' => 'Alvertencias chenerals',
 'disclaimerpage' => 'Project:Alvertencias chenerals',
 'edithelp' => 'Aduya ta editar pachinas',
-'edithelppage' => "Help:Cómo s'edita una pachina",
 'helppage' => 'Help:Aduya',
 'mainpage' => 'Portalada',
 'mainpage-description' => 'Portalada',
@@ -625,10 +624,8 @@ Talment ya ha cambiato a suya clau u ha demandato una nueva clau temporal.',
 
 # Special:PasswordReset
 'passwordreset' => "Restablir a clau d'acceso",
-'passwordreset-text' => "Completar ista forma ta recibir un recordatorio por correu con os detalles d'a suya cuenta.",
 'passwordreset-legend' => "Restablir a clau d'acceso",
 'passwordreset-disabled' => "S'ha desactivau o restablimiento de claus en ista wiki.",
-'passwordreset-pretext' => "{{PLURAL:$1||Introduzca uno d'os siguients datos}}",
 'passwordreset-username' => "Nombre d'usuario:",
 'passwordreset-domain' => 'Dominio:',
 'passwordreset-capture' => 'Veyer o mensache resultant?',
@@ -1059,7 +1056,6 @@ Asegure-se que iste cambio no trencará a continidat de l'historial d'a pachina.
 'searchmenu-legend' => 'Opcions de busca',
 'searchmenu-exists' => "'''Bi ha una pachina clamada \"[[\$1]]\" en ista wiki'''",
 'searchmenu-new' => "'''Creyar a pachina \"[[:\$1]]\" en ista wiki!'''",
-'searchhelp-url' => 'Help:Aduya',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Veyer pachinas con iste prefixo]]',
 'searchprofile-articles' => 'Pachinas de conteniu',
 'searchprofile-project' => "Pachinas d'aduya y d'o prochecto",
@@ -1132,7 +1128,6 @@ Asegure-se que iste cambio no trencará a continidat de l'historial d'a pachina.
 'resetprefs' => "Tornar t'as preferencias por defecto",
 'restoreprefs' => 'Restaure todas as confeguracions por defecto',
 'prefs-editing' => 'Edición',
-'prefs-edit-boxsize' => "Grandaria d'a finestra d'edición.",
 'rows' => 'Ringleras:',
 'columns' => 'Columnas:',
 'searchresultshead' => 'Mirar',
@@ -1143,9 +1138,6 @@ Asegure-se que iste cambio no trencará a continidat de l'historial d'a pachina.
 'recentchangesdays-max' => '(masimo $1 {{PLURAL:$1|día|días}})',
 'recentchangescount' => "Numero d'edicions a amostrar, por defecto:",
 'prefs-help-recentchangescount' => 'Inclui os zaguers cambeos, historials de pachina y rechistros.',
-'prefs-help-watchlist-token' => "Si plena iste campo con una clau secreta se chenerará n filo RSS t'a suya lista de seguimeinto.
-Qui conoixca ista clau podrá leyer a suya lista de seguimiento, asinas que esliya una clau segura.
-Contino se i amuestra una calu chenerata de traza aleatoria que puede fer servir si quiere: $1",
 'savedprefs' => "S'han alzato as suyas preferencias.",
 'timezonelegend' => 'Fuso horario:',
 'localtime' => 'Hora local:',
@@ -1176,7 +1168,6 @@ Contino se i amuestra una calu chenerata de traza aleatoria que puede fer servir
 'prefs-reset-intro' => "Puet emplegar ista pachina ta restaurar as suyas preferencias a las valuras por defecto d'o sitio.
 No se podrá desfer iste cambio.",
 'prefs-emailconfirm-label' => 'Confirmación de correu electronico:',
-'prefs-textboxsize' => "Mida d'a pachina d'edición",
 'youremail' => 'Adreza de correu electronico:',
 'username' => "Nombre d'usuario:",
 'uid' => "ID d'usuario:",
@@ -1414,7 +1405,6 @@ Habría de tener menos de $1 {{PLURAL:$1|carácter|carácters}}.',
 'recentchangeslinked-feed' => 'Cambeos relacionatos',
 'recentchangeslinked-toolbox' => 'Cambios relacionatos',
 'recentchangeslinked-title' => 'Cambeos relacionatos con "$1"',
-'recentchangeslinked-noresult' => 'No bi habió cambeos en as pachinas vinculatas en o intervalo de tiempo indicato.',
 'recentchangeslinked-summary' => "Ista ye una lista d'os zaguers cambios feitos en pachinas con vinclos dende una pachina especifica (u ta miembros d'una categoría especificata).  S'amuestran en '''negreta''' as pachinas d'a suya [[Special:Watchlist|lista de seguimiento]].",
 'recentchangeslinked-page' => "Nombre d'a pachina:",
 'recentchangeslinked-to' => "En cuentas d'ixo, amostrar os cambios en pachinas con vinclos enta a pachina data",
@@ -2018,7 +2008,6 @@ L\'adreza de correu-e que endicó en as suyas [[Special:Preferences|preferencias
 'unwatchthispage' => 'Deixar de cosirar',
 'notanarticle' => 'No ye una pachina de conteniu',
 'notvisiblerev' => "S'ha borrato a revisión",
-'watchnochange' => "Dengún d'os articlos d'a suya lista de seguimiento no s'ha editato en o periodo de tiempo amostrato.",
 'watchlist-details' => '{{PLURAL:$1|$1 pachina|$1 pachinas}} en a suya lista de seguimiento, sin contar-ie as pachinas de descusión.',
 'wlheader-enotif' => 'A notificación por correu electronico ye activata',
 'wlheader-showupdated' => "Las pachinas cambiadas dende a suya zaguer vesita s'amuestran en '''negreta'''",
@@ -3426,7 +3415,6 @@ Tamién puede fer servir o [[Special:EditWatchlist|editor estándar]].",
 'version-other' => 'Atros',
 'version-mediahandlers' => 'Maneyador de fichers multimedia',
 'version-hooks' => 'Grifios (Hooks)',
-'version-extension-functions' => "Funcions d'a estensión",
 'version-parser-extensiontags' => "Etiquetas d'estensión d'o parseyador",
 'version-parser-function-hooks' => "Grifios d'as funcions d'o parseyador",
 'version-hook-name' => "Nombre d'o grifio",
index bc7d44c..67cfa22 100644 (file)
@@ -7,6 +7,8 @@
  * @ingroup Language
  * @file
  *
+ * @author Altai uul
+ * @author Espreon
  * @author Gott wisst
  * @author JJohnson
  * @author Omnipaedista
@@ -32,42 +34,42 @@ $messages = array(
 # User preference toggles
 'tog-underline' => 'Mearc under hlencan:',
 'tog-justify' => 'Macian cwidfloccas rihte',
-'tog-hideminor' => 'Hȳdan lytela adihtunga in nīwra wendinga getæle',
+'tog-hideminor' => 'Hȳdan lytela adihtunga in nīwra andwendinga getæle',
 'tog-hidepatrolled' => 'Hȳdan weardoda adihtunga in nīwra andwendinga getæle',
 'tog-newpageshidepatrolled' => 'Hȳdan weardode trametas in nīwra andwendinga getæle',
-'tog-extendwatchlist' => 'Sprǣdan wæccgetæl tō īwenne ealla andwendinga, nā synderlīce þā nīwostan',
-'tog-usenewrc' => 'Settan andwendunge on hēapas æfter tramete on nīwra andwendunga getæle and wæccgetæle (þearf JavaScript)',
+'tog-extendwatchlist' => 'Sprǣdan behealdungtæl tō īwenne ealla andwendinga, nā synderlīce þā nīwostan',
+'tog-usenewrc' => 'Settan andwendunga on hēapas on trametum on nīwra andwendunga getæle and behealdungtæle (þearf JavaScript)',
 'tog-numberheadings' => 'Settan rīm on fōrecwidas selflīce',
 'tog-showtoolbar' => 'Īwan þā adihtunge tōlmearce (þearf JavaScript)',
 'tog-editondblclick' => 'Adihtan trametas mid twifealdum mȳs swenge (þearf JavaScript)',
-'tog-editsection' => 'Þafian dǣla adihtunge mid [ādihtan] hlencum',
+'tog-editsection' => 'Þafian dǣla adihtunge mid [adihtan] hlencum',
 'tog-editsectiononrightclick' => 'Þafian dǣla adihtunge þurh swīðran healfe mȳs swengas on dǣla titulum (þearf JavaScript)',
 'tog-showtoc' => 'Īwan innunge tabulan (for trametum þe mā þonne 3 fōrecwidas habbaþ)',
 'tog-rememberpassword' => 'Gemynan mīne inmeldunge on þissum spearctellende (oþ $1 {{PLURAL:$1|dæg|dagas}} lengest)',
-'tog-watchcreations' => 'Ēacnian mīn wæccgetæl mid trametum þā ic scieppe and ymelum þā ic hlade on nett.',
-'tog-watchdefault' => 'Ēacnian mīn wæccgetæl mid trametum and ymelum þā ic adihte.',
-'tog-watchmoves' => 'Ēacnian mīn wæccgetæl mid trametum and ymelum þā ic wege.',
-'tog-watchdeletion' => 'Ēacnian mīn wæccgetæl mid trametum and ymelum þā ic forlēose.',
+'tog-watchcreations' => 'Ēacnian mīn behealdungtæl mid trametum þā ic scieppe and ymelum þā ic hlade on nett.',
+'tog-watchdefault' => 'Ēacnian mīn behealdungtæl mid trametum and ymelum þā ic adihte.',
+'tog-watchmoves' => 'Ēacnian mīn behealdungtæl mid trametum and ymelum þā ic wege.',
+'tog-watchdeletion' => 'Ēacnian mīn behealdungæl mid trametum and ymelum þā ic forlēose.',
 'tog-minordefault' => 'Mearcian ealla adihtunga lytela tō gewunan',
 'tog-previewontop' => 'Īwan fōrebysene ofer adihtunge mearce',
 'tog-previewonfirst' => 'Īwan fōrebysene on forman adihtunge',
-'tog-nocache' => 'Nā þafian þæt webbsēcend sette trametas on horde',
-'tog-enotifwatchlistpages' => 'Sendan mē spearcǣrend þǣr tramet oþþe ymele on mīnum wæccgetæle sīe andwended.',
-'tog-enotifusertalkpages' => 'Sendan mē spearcǣrend þǣr mīnes brūcendtrametes mōtung sī awended',
+'tog-nocache' => 'Nā þafian þætte webbsēcend sette trametas on horde',
+'tog-enotifwatchlistpages' => 'Sendan mē spearcǣrend þǣr tramet oþþe ymele on mīnum behealdungtæle sīe andwended.',
+'tog-enotifusertalkpages' => 'Sendan mē spearcǣrend þǣr mīnes brūcendtrametes mōtung sī andwended',
 'tog-enotifminoredits' => 'Sendan mē spearcǣrend þǣr trametas oþþe ymelan sīen efne lyt andwended.',
 'tog-enotifrevealaddr' => 'Īwan mīnne spearcǣrenda naman on gecȳðendum spearcǣrendum',
-'tog-shownumberswatching' => 'Īwan þæt rīm wæccendra brūcenda',
+'tog-shownumberswatching' => 'Īwan þæt rīm behealdendra brūcenda',
 'tog-oldsig' => 'Genge selfmearc:',
 'tog-fancysig' => 'Dōn selfmearce tō wikitexte (lēas ǣr gedōnes hlencan)',
 'tog-showjumplinks' => 'Þafian "gān tō" gefērra hlencena',
 'tog-uselivepreview' => 'Notian rihte īwde fōrebysene (þearf JavaScript) (on costnunge)',
-'tog-forceeditsummary' => 'Cȳðan mē þǣr ic ne wrīte ādihtunge sceortnesse',
-'tog-watchlisthideown' => 'Hȳdan mīna adihtunga wiþ þæt wæccgetæl',
-'tog-watchlisthidebots' => 'Hȳdan searuþrǣla adihtunga wiþ þæt wæccgetæl',
-'tog-watchlisthideminor' => 'Hȳdan lytela adihtunga wiþ þæt wæccgetæl',
-'tog-watchlisthideliu' => 'Hȳdan adihtungas fram inmeldedum brūcendum wiþ þæt wæccgetæl',
-'tog-watchlisthideanons' => 'Hȳdan adihtunga fram uncūðum brūcendum wiþ þæt wæccgetæl',
-'tog-watchlisthidepatrolled' => 'Hȳdan weardoda adihtunga wiþ þæt wæccgetæl',
+'tog-forceeditsummary' => 'Cȳðan mē þǣr ic ne wrīte adihtunge sceortnesse',
+'tog-watchlisthideown' => 'Hȳdan mīna adihtunga wiþ þæt behealdungtæl',
+'tog-watchlisthidebots' => 'Hȳdan searuþrǣla adihtunga wiþ þæt behealdungtæl',
+'tog-watchlisthideminor' => 'Hȳdan lytela adihtunga wiþ þæt behealdungtæl',
+'tog-watchlisthideliu' => 'Hȳdan adihtunga fram inmeldodum brūcendum wiþ þæt behealdungtæl',
+'tog-watchlisthideanons' => 'Hȳdan adihtunga fram uncūðum brūcendum wiþ þæt behealdungtæl',
+'tog-watchlisthidepatrolled' => 'Hȳdan weardoda adihtunga wiþ þæt behealdungtæl',
 'tog-ccmeonemails' => 'Sendan mē gelīcnessa þāra spearcǣrenda þe ic ōðrum brūcendum sende',
 'tog-diffonly' => 'Nā īwan trametes innunge under scādungum',
 'tog-showhiddencats' => 'Īwan gehȳdede floccas',
@@ -81,7 +83,7 @@ $messages = array(
 
 # Font style option in Special:Preferences
 'editfont-style' => 'Stæfcynd for þǣre wrītunge on þǣre adihtunge mearce:',
-'editfont-default' => 'Webbsēcendes geƿunelicu gesetedness',
+'editfont-default' => 'Webbsēcendes gewunelicu gesetedness',
 'editfont-monospace' => 'Ānes gemetes gebrǣded stæfcynd',
 'editfont-sansserif' => 'Tægellēas stæfcynd',
 'editfont-serif' => 'Tægelbǣre stæfcynd',
@@ -125,7 +127,7 @@ $messages = array(
 'october-gen' => 'Winterfylleðes',
 'november-gen' => 'Blōtmōnþes',
 'december-gen' => 'Ǣrran Gēolan',
-'jan' => 'Ǣr Ȝē',
+'jan' => 'Ǣr Gē',
 'feb' => 'Sol',
 'mar' => 'Hrē',
 'apr' => 'Ēas',
@@ -268,7 +270,6 @@ $1',
 'disclaimers' => 'Ætsacunga',
 'disclaimerpage' => 'Project:Gemǣne ætsacung',
 'edithelp' => 'Help on adihtunge',
-'edithelppage' => 'Help:Adihtung',
 'helppage' => 'Help:Innung',
 'mainpage' => 'Hēafodtramet',
 'mainpage-description' => 'Hēafodtramet',
@@ -362,25 +363,44 @@ Cȳþþuhord ageaf wōh "<code>$3: $4</code>"',
 'viewsource' => 'Sēon fruman',
 'cascadeprotected' => 'Þes trament wæs geborgen wiþ adihtunge, for þǣm þe hē is befangen in þissum {{PLURAL:$1|tramente, þe is| tramentum, þe sind}} geborgen settum wyrcende þǣm cyre "cascading": $2',
 
+# Virus scanner
+'virus-badscanner' => "Јастыра конфигурация: Јарты јок сканер ''$1''",
+'virus-unknownscanner' => 'Јарты јок антивирус:',
+
 # Login and logout pages
 'logouttext' => "'''Þū eart nū ūtmeldod.'''
 
 Þū canst ætfeolan þǣre nytte {{SITENAME}} tō ungecūðum, oþþe þū canst <span class='plainlinks'>[$1 inmeldian eft]</span> tō þǣm ylcan oþþe ōðrum brūcende.
 Cnāw þæt sume trametas mihten gīet wesan geīwde swā þū wǣre gīet inmeldod, oþ þæt þū clǣnsie þīnes sēcendtōles hord.",
+'welcomeuser' => 'Wilcume, $1!',
 'yourname' => 'Þīn brūcendnama:',
+'userlogin-yourname' => 'Brūcendnama:',
+'userlogin-yourname-ph' => 'Inwrīt þīnne brūcendnaman',
 'yourpassword' => 'Þafungword:',
+'userlogin-yourpassword' => 'Þafungword',
+'userlogin-yourpassword-ph' => 'Inwrīt þīn þafungword',
+'createacct-yourpassword-ph' => 'Inwrīt þafungword',
 'yourpasswordagain' => 'Wrītan þafungword eft:',
+'createacct-yourpasswordagain' => 'Asēð þafungword',
+'createacct-yourpasswordagain-ph' => 'Wrīt þafungword eft',
 'remembermypassword' => 'Gemynan mīne inmeldunge on þissum webbsēcende (oþ $1 {{PLURAL:$1|dæg|daga}} lengest)',
+'userlogin-remembermypassword' => 'Ætfeolan mīnre inmeldunge',
 'yourdomainname' => 'Þīn geweald:',
+'password-change-forbidden' => 'Þū ne canst awendan þafungword on þissum wiki.',
 'login' => 'Inmeldian',
 'nav-login-createaccount' => 'Inmeldian / wyrcan reccinge',
+'loginprompt' => 'Þū scealt þafian cȳþþu grētunga tō inmeldienne in {{SITENAME}}.',
 'userlogin' => 'Inmeldian / wyrcan reccinge',
 'userloginnocreate' => 'Inmeldian',
 'logout' => 'Ūtmeldian',
 'userlogout' => 'Ūtmeldian',
 'notloggedin' => 'Nā ingemeldod',
+'userlogin-noaccount' => 'Слерде аккаунт јок по?',
+'userlogin-joinproject' => '{{SITENAME}} кирер',
+'nologin' => 'Слерде аккаунт јок по? $1.',
 'nologinlink' => 'Scieppan reccinge',
 'createaccount' => 'Scieppan reccinge',
+'gotaccount' => 'Белен аккаунт бар ба? $1.',
 'gotaccountlink' => 'Inmeldian',
 'createaccountmail' => 'Notian sceortne tīman hlētlic þafungword and sendan hit to þǣm spearcǣrenda naman þe is niðer',
 'createaccountreason' => 'Racu:',
@@ -423,19 +443,19 @@ Scēawa þīne wrītunge eft, oþþe [[Special:UserLogin/signup|sciepp nīwe rec
 'extlink_tip' => 'Ūtanweard hlenca (beþenc þone http:// foredǣl)',
 'headline_sample' => 'Hēafodlīnan traht',
 'headline_tip' => 'Emnet 2 hēafodlīn',
-'nowiki_sample' => 'Unȝeƿorhtne traht hēr stellan',
-'nowiki_tip' => 'Ƿiki ȝeƿeorc forȝietan',
+'nowiki_sample' => 'Unendebyrdodne traht hēr settan',
+'nowiki_tip' => 'Wiki endebyrdunge forgietan',
 'image_sample' => 'Bisen.jpg',
-'image_tip' => 'Impod biliþ',
+'image_tip' => 'Ingesett ymele',
 'media_sample' => 'Bisen.ogg',
-'media_tip' => 'Fīlhlenċe',
-'sig_tip' => 'Þīn namanseȝn mid tīdstempunge',
-'hr_tip' => 'Brād līn (ne oft brūcan)',
+'media_tip' => 'Ymelan hlenca',
+'sig_tip' => 'Þīn selfmearc mid tīdmearce',
+'hr_tip' => 'Brād līn (ne brūc oft)',
 
 # Edit pages
 'summary' => 'Scortnes:',
 'subject' => 'Ymbe/hēafodlīn:',
-'minoredit' => 'Þes is lȳtl ādiht',
+'minoredit' => 'Þēos is lytel adihtung',
 'watchthis' => 'Behealdan þisne tramet',
 'savearticle' => 'Hordian tramet',
 'preview' => 'Fōrebysen',
@@ -492,7 +512,7 @@ folcliċum āgnunge oþþe ȝelīċum frēom horde (sēo $1 for āscungum).
 
 # History pages
 'viewpagelogs' => 'Sēon þisses trametes ealdhold',
-'nohistory' => 'Nis nān ādihtunge stǣr for þissum tramete.',
+'nohistory' => 'Nis nān adihtunge stǣr for þissum tramete.',
 'currentrev-asof' => 'Nīwost fadung on $1',
 'revisionasof' => 'Nīwung fram $1',
 'previousrevision' => '← Ieldre fadung',
@@ -508,23 +528,23 @@ folcliċum āgnunge oþþe ȝelīċum frēom horde (sēo $1 for āscungum).
 
 # Revision feed
 'history-feed-title' => 'Ednīwunge stǣr',
-'history-feed-description' => 'Ednīƿunge stǣr þisse sīdan on þǣre ƿiki',
+'history-feed-description' => 'Ednīwunge stǣr þisses trametes on þǣre wiki',
 'history-feed-item-nocomment' => '$1 on $2',
 
 # Revision deletion
-'rev-deleted-comment' => '(fornōm cwide)',
-'rev-deleted-user' => '(brūcendnama fornōm)',
-'rev-delundel' => 'scēaƿian/hȳdan',
-'rev-showdeleted' => 'scēaƿan',
-'revdelete-show-file-submit' => 'Ȝēa',
-'revdelete-hide-text' => 'Ednīƿungtraht hȳdan',
-'revdelete-hide-image' => 'Fīlinnoþ hȳdan',
-'revdelete-hide-comment' => 'Ādihtcƿide hȳdan',
-'revdelete-hide-user' => 'Ādihteres brūcendnama/IP address hȳdan',
-'revdelete-radio-same' => '(ne hƿeorfan)',
-'revdelete-radio-set' => 'Ȝēa',
-'revdelete-radio-unset' => 'Nā',
-'revdel-restore' => 'scēaƿnesse hƿeorfan',
+'rev-deleted-comment' => '(fornōm adihtunge sceortnesse)',
+'rev-deleted-user' => '(brūcendnaman fornōm)',
+'rev-delundel' => 'īwan/hȳdan',
+'rev-showdeleted' => 'īwan',
+'revdelete-show-file-submit' => 'Gēa',
+'revdelete-hide-text' => 'Hȳdan ednīwunge traht',
+'revdelete-hide-image' => 'Hȳdan ymelan innunge',
+'revdelete-hide-comment' => 'Hȳdan adihtunge sceortnesse',
+'revdelete-hide-user' => 'Hȳdan adihtendes brūcendnaman/IP address',
+'revdelete-radio-same' => '(nā andwendan)',
+'revdelete-radio-set' => 'Gēa',
+'revdelete-radio-unset' => 'Nese',
+'revdel-restore' => 'andwendan īwunge',
 'pagehist' => 'Trametes stǣr',
 'revdelete-reasonotherlist' => 'Ōðru racu',
 
@@ -554,7 +574,6 @@ folcliċum āgnunge oþþe ȝelīċum frēom horde (sēo $1 for āscungum).
 'nextn' => 'nīehst {{PLURAL:$1|$1}}',
 'viewprevnext' => 'Sēon ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-new' => "'''Scieppan þone tramet \"[[:\$1]]\" on þissum wiki!'''",
-'searchhelp-url' => 'Help:Innung',
 'searchprofile-articles' => 'Innunge trametas',
 'searchprofile-project' => 'Helpes and Weorca trametas',
 'searchprofile-images' => 'Missenendebyrdness',
@@ -605,37 +624,37 @@ folcliċum āgnunge oþþe ȝelīċum frēom horde (sēo $1 for āscungum).
 'yourrealname' => 'Þīn rihtnama*',
 'yourlanguage' => 'Brūcendofermearces sprǣc',
 'yourvariant' => 'Sprǣce wendung:',
-'yourgender' => 'Ȝecynd:',
-'gender-male' => 'Ƿer',
-'gender-female' => 'Frēo',
-'email' => 'E-ǣrende',
+'yourgender' => 'Gecynd:',
+'gender-male' => 'Wer',
+'gender-female' => 'Wīf',
+'email' => 'Spearcǣrend',
 
 # User rights
-'userrights-user-editname' => 'Brūcendnama ƿrītan:',
-'editusergroup' => 'Ādihtan Brūcendsamþrēatas',
-'userrights-editusergroup' => 'Brūcenda clīeƿenas ādihtan:',
-'saveusergroups' => 'Brūcenda clīeƿenas sparian',
-'userrights-groupsmember' => 'Ȝesīþ þæs:',
+'userrights-user-editname' => 'Wrīt brūcendnaman:',
+'editusergroup' => 'Adihtan brūcendhēapas',
+'userrights-editusergroup' => 'Adihtan brūcendhēapas',
+'saveusergroups' => 'Hordian brūcendhēapas',
+'userrights-groupsmember' => 'Gesīþ lōcaþ tō:',
 'userrights-reason' => 'Racu:',
 
 # Groups
-'group' => 'Clīeƿen:',
+'group' => 'Hēap:',
 'group-user' => 'Brūcendas:',
-'group-bot' => 'Searuþralas',
-'group-sysop' => 'Beƿitendas',
-'group-bureaucrat' => 'Tōþeȝnas',
-'group-suppress' => 'Oferȝesihta',
+'group-bot' => 'Searuþrǣlas',
+'group-sysop' => 'Bewitendas',
+'group-bureaucrat' => 'Þegnas',
+'group-suppress' => 'Ofergesihta',
 'group-all' => '(eall)',
 
-'group-user-member' => '{{GENDER:$1|brūcend}}',
+'group-user-member' => '{{GENDER:$1|brūcend|brūcicge}}',
 'group-bot-member' => '{{GENDER:$1|searuþrǣl}}',
-'group-sysop-member' => '{{GENDER:$1|bewitend}}',
+'group-sysop-member' => '{{GENDER:$1|bewitend|bewiticge}}',
 'group-suppress-member' => 'oferȝesiht',
 
-'grouppage-sysop' => '{{ns:project}}:Beƿitendas',
+'grouppage-sysop' => '{{ns:project}}:Bewitendas',
 
 # Special:Log/newusers
-'newuserlogpage' => 'Brūcenda ȝesceaft ȝetalu',
+'newuserlogpage' => 'Brūcenda scieppunge ealdhord',
 
 # User rights log
 'rightslog' => 'Brūcenda riht cranic',
@@ -652,11 +671,11 @@ folcliċum āgnunge oþþe ȝelīċum frēom horde (sēo $1 for āscungum).
 'recentchanges-label-minor' => 'Þēos is lytel adihtung',
 'recentchanges-label-bot' => 'Searuþrǣl fremede þās adihtunge',
 'rcnote' => "Under {{PLURAL:$1|... '''1''' ...|sind þā æftemestan '''$1''' hweorfunga}} in {{PLURAL:$2|...|þǣm æftemestum '''$2''' dagum}}, . . $5, $4.",
-'rcnotefrom' => "Niðer sind þā andwendunga æfter '''$2''' (mǣst īweþ '''$1''').",
+'rcnotefrom' => "Niðer sind þā andwendunga fram '''$2''' (mǣst īweþ '''$1''').",
 'rclistfrom' => 'Īwan nīwa andwendunga fram $1 and siþþan',
 'rcshowhideminor' => '$1 lytela adihtunga',
 'rcshowhidebots' => '$1 searuþrǣlas',
-'rcshowhideliu' => '$1 inmeldede brūcendas',
+'rcshowhideliu' => '$1 inmeldode brūcendas',
 'rcshowhideanons' => '$1 uncūðe brūcendas',
 'rcshowhidemine' => '$1 mīna adihtunga',
 'rclinks' => 'Īwan þā nīwostan $1 andwendunga in þissum nīehstum $2 daga<br />$3',
@@ -668,8 +687,8 @@ folcliċum āgnunge oþþe ȝelīċum frēom horde (sēo $1 for āscungum).
 'newpageletter' => 'N',
 'boteditletter' => 'þr',
 'rc_categories_any' => 'Ǣnig',
-'rc-enhanced-expand' => 'Ȝehanda sēon (þearf JavaScript)',
-'rc-enhanced-hide' => 'Ȝehanda hȳdan',
+'rc-enhanced-expand' => 'Īwan stafas (þearf JavaScript)',
+'rc-enhanced-hide' => 'Hȳdan stafas',
 
 # Recent changes linked
 'recentchangeslinked' => 'Sibba andwendunga',
@@ -717,20 +736,20 @@ Gif se brūcend asifte hine. synderlīce sind ymelan geīwda þǣre þe se brūc
 # File description page
 'file-anchor-link' => 'Ymele',
 'filehist' => 'Ymelan stǣr',
-'filehist-help' => 'Cnæpp on dæȝe/tīde to sēonne þā fīlan sƿā ƿæs hēo on þǣre tīde.',
+'filehist-help' => 'Swing dæg/tīde mid mýs to sēonne þā ymelan swā wæs hēo on þǣre tīde.',
 'filehist-deleteall' => 'forlēosan eall',
 'filehist-deleteone' => 'forlēosan',
 'filehist-revert' => 'undōn',
 'filehist-current' => 'nū',
 'filehist-datetime' => 'Dæg/Tīd',
 'filehist-thumb' => 'Lytelbiliþ',
-'filehist-thumbtext' => 'Lytelbiliþ for fadunge fram $1 and siþþan',
+'filehist-thumbtext' => 'Lytelbiliþ þǣre fadunge fram $3 on $2',
 'filehist-nothumb' => 'Nān lytelbiliþ',
 'filehist-user' => 'Brūcend',
-'filehist-dimensions' => 'Miċela',
-'filehist-filesize' => 'Fīlmiċelnes',
-'filehist-comment' => 'Ymbsprǣċ',
-'filehist-missing' => 'Fīl lēas',
+'filehist-dimensions' => 'Micelnesse gemetu',
+'filehist-filesize' => 'Ymelan micelness',
+'filehist-comment' => 'Ymbsprǣc',
+'filehist-missing' => 'Yemele is æfweard',
 'imagelinks' => 'Hlencan tō ymelan',
 'linkstoimage' => '{{PLURAL:$1|Se folgienda tramet hæfþ|Þā folgiendan trametas habbaþ}} hlencan tō þisre ymelan:',
 'nolinkstoimage' => 'Þǣr ne sind nǣnge trametas þe habbaþ hlencan tō þisre ymelan.',
@@ -827,13 +846,13 @@ Gif se brūcend asifte hine. synderlīce sind ymelan geīwda þǣre þe se brūc
 
 # Special:LinkSearch
 'linksearch' => 'Sēcung ūtanweardra hlencena',
-'linksearch-ok' => 'Sēċan',
+'linksearch-ok' => 'Sēcan',
 
 # Special:ListUsers
 'listusers-noresult' => 'Nān brūcend wæs gefunden.',
 
 # Special:ActiveUsers
-'activeusers' => 'Hƿata brūcenda ȝetalu',
+'activeusers' => 'Getæl hwætra brūcenda',
 
 # Special:ListGroupRights
 'listgrouprights-group' => 'Hēap',
@@ -914,13 +933,13 @@ Gif se brūcend asifte hine. synderlīce sind ymelan geīwda þǣre þe se brūc
 'protect-fallback' => 'Synderlīce līefan brūcendum þā habbaþ "$1" lēafe',
 'protect-level-autoconfirmed' => 'Līefan synderlīce selflīce afæstnodum brūcendum',
 'protect-level-sysop' => 'Līefan synderlīce bewitendum',
-'protect-summary-cascade' => 'beflōƿende',
+'protect-summary-cascade' => 'beflōwende',
 'protect-expiring' => 'endaþ $1 (UTC)',
 'protect-cascade' => 'Beorgan ealle trametas þā sind befangen on þissum tramete (forþ brǣdende beorg)',
 'protect-cantedit' => 'Þū ne meaht þæt beorges emnet hƿeorfan þisre sīdan, forþǣm ne hæfst þū þafunge to ādihtenne hīe.',
 'protect-expiry-options' => '1 stund:1 hour,1 dæg:1 day,1 wucu:1 week,2 wuca:2 weeks,1 mōnaþ:1 month,3 mōnþas:3 months,6 mōnþas:6 months,1 gēar:1 year,unendiendlic:infinite',
 'restriction-type' => 'Þafung:',
-'restriction-level' => 'Ȝehæftes emnet:',
+'restriction-level' => 'Gehæftes emnet:',
 
 # Restrictions (nouns)
 'restriction-edit' => 'Adihtan',
@@ -953,13 +972,13 @@ Gif se brūcend asifte hine. synderlīce sind ymelan geīwda þǣre þe se brūc
 'month' => 'Fram mōnþe (and ǣror)',
 'year' => 'Fram ȝēare (and ǣror)',
 
-'sp-contributions-talk' => 'ȝespreċ',
-'sp-contributions-search' => 'Forðunga sēċan',
+'sp-contributions-talk' => 'gesprec',
+'sp-contributions-search' => 'Sēcan forðunga',
 'sp-contributions-username' => 'IP address oþþe brūcendnama:',
-'sp-contributions-submit' => 'Sēċan',
+'sp-contributions-submit' => 'Sēcan',
 
 # What links here
-'whatlinkshere' => 'Hƿæt hæfþ hlenċan hider',
+'whatlinkshere' => 'Hwæt hæfþ hlencan hider',
 'whatlinkshere-title' => 'Trametas þā habbaþ hlencan tō "$1"',
 'whatlinkshere-page' => 'Tramet:',
 'linkshere' => "Þā folgiendan trametas habbaþ hlencan tō: '''[[:$1]]'''",
@@ -1026,37 +1045,37 @@ Cēos ōðerne naman lā.',
 'allmessages-filter-unmodified' => 'Nā andwended',
 'allmessages-filter-all' => 'Eall',
 'allmessages-filter-modified' => 'Andwended',
-'allmessages-language' => 'Sprǣċ:',
+'allmessages-language' => 'Sprǣc:',
 'allmessages-filter-submit' => 'Gān',
 
 # Thumbnails
 'thumbnail-more' => 'Mǣrsian',
-'filemissing' => 'Þrǣd unandƿeard',
+'filemissing' => 'Ymele is æfweard',
 
 # Special:Import
-'import' => 'Sīdan inbringan',
+'import' => 'Inbringan trametas',
 'import-interwiki-submit' => 'Inbringan',
-'importstart' => 'Inbringende sīdan...',
-'importnopages' => 'Nān sīdan to inbringenne.',
+'importstart' => 'Inbringende trametas...',
+'importnopages' => 'Nǣnge trametas to inbringenne.',
 'importfailed' => 'Inbringung tōsǣlede: $1',
-'importnotext' => 'Ǣmtiȝ oþþe nān traht',
-'importsuccess' => 'Inbringoþ ȝesǣled!',
-'import-noarticle' => 'Nān sīde to inbringenne!',
+'importnotext' => 'Æmettig oþþe nān traht',
+'importsuccess' => 'Inbringoþ gesǣlde!',
+'import-noarticle' => 'Nān tramet tō inbringenne!',
 
 # Tooltip help for the actions
-'tooltip-pt-userpage' => 'Þīnu brūcendsīde',
-'tooltip-pt-mytalk' => 'Þīnu ȝespreċsīde',
-'tooltip-pt-preferences' => 'Þīna forebearƿan',
-'tooltip-pt-watchlist' => 'Sēo ȝetalu sīdena þe ƿæccest þū for hƿearfum',
-'tooltip-pt-mycontris' => 'Ȝetalu þīnra forðunga',
-'tooltip-pt-login' => 'Man þē byldeþ to inmeldienne; þēah, þis nis ābeden',
+'tooltip-pt-userpage' => 'Þīn brūcendtramet',
+'tooltip-pt-mytalk' => 'Þīn mōtung',
+'tooltip-pt-preferences' => 'Þīna fōreberunga',
+'tooltip-pt-watchlist' => 'Getæl trameta þā behieltst þū ymbe andwendunga',
+'tooltip-pt-mycontris' => 'Getæl þīnra forðunga',
+'tooltip-pt-login' => 'Man þē byldeþ to inmeldienne; þēah, þis nis abeden',
 'tooltip-pt-logout' => 'Ūtmeldian',
-'tooltip-ca-talk' => 'Ȝespreċ ymbe þǣre innoþsīdan',
-'tooltip-ca-edit' => 'Þū meaht þās sīdan ādihtan. Bidde brūc þone forescēaƿecnæpp fore spariende',
+'tooltip-ca-talk' => 'Mōtung ymbe þone innungtramet',
+'tooltip-ca-edit' => 'Þū meaht þisne tramet adihtan. Brūc lā þone fōrebysene cnæpp ǣr þū hordie.',
 'tooltip-ca-addsection' => 'Beginnan nīwne dǣl',
 'tooltip-ca-viewsource' => 'Þes tramet is borgen.
 Þū canst his fruman sēon.',
-'tooltip-ca-history' => 'Ǣrram fadunga þisses trametes',
+'tooltip-ca-history' => 'Ǣrran fadunga þisses trametes',
 'tooltip-ca-protect' => 'Beorgan þisne tramet',
 'tooltip-ca-unprotect' => 'Andwendan beorgune þisses trametes',
 'tooltip-ca-delete' => 'Forlēosan þisne tramet',
@@ -1082,7 +1101,7 @@ Cēos ōðerne naman lā.',
 'tooltip-t-emailuser' => 'Sendan spearcǣrend þissum brūcende',
 'tooltip-t-upload' => 'Hladan ymelan forþ',
 'tooltip-t-specialpages' => 'Getæl eallra syndrigra trameta',
-'tooltip-t-print' => 'Gemǣnendliċu fadung þisses trametes',
+'tooltip-t-print' => 'Gemǣnendlicu fadung þisses trametes',
 'tooltip-t-permalink' => 'Fæst hlenca tō þisre fadunge þæs trametes',
 'tooltip-ca-nstab-main' => 'Sēon þone innunge tramet',
 'tooltip-ca-nstab-user' => 'Sēon þone brūcendes tramet',
@@ -1112,34 +1131,34 @@ Cēos ōðerne naman lā.',
 # Media information
 'imagemaxsize' => "Mǣst biliðes micelness:<br />''(for ymelena amearcunga trametum)''",
 'thumbsize' => 'Þumannæglmicelnes:',
-'file-info-size' => '$1 × $2 pixels, fīlmiċelu: $3, MIMEcynn: $4',
-'file-nohires' => 'Þǣr nis nǣniȝ mā miċelu.',
-'svg-long-desc' => 'SVG fīl, rihte $1 × $2 pixels, fīlmiċelu: $3',
-'show-big-image' => 'Fulmiċelu',
+'file-info-size' => '$1 × $2 pixels, ymelan micelu: $3, MIME cynn: $4',
+'file-nohires' => 'Þǣr nis nǣnig māre micelness.',
+'svg-long-desc' => 'SVG ymele, rihte $1 × $2 pixels, ymelan micelness: $3',
+'show-big-image' => 'Full micelness',
 
 # Special:NewFiles
-'imagelisttext' => "Niðer is getæl '''$1''' {{PLURAL:$1|ymelan|ymelena}}, endebyrded  on $2.",
+'imagelisttext' => "Niðer is getæl '''$1''' {{PLURAL:$1|ymelan|ymelena}}, endebyrded on $2.",
 'noimages' => 'Nāht tō sēonne.',
-'ilsubmit' => 'Sēċan',
+'ilsubmit' => 'Sēcan',
 'bydate' => 'be tælmearce',
 
 # Metadata
 'metadata' => 'Metacȳþþu',
-'metadata-expand' => 'Oferȝehanda sēon',
-'metadata-collapse' => 'Oferȝehanda hȳdan',
+'metadata-expand' => 'Īwan ēacnode stafas',
+'metadata-collapse' => 'Hȳdan ēacnode stafas',
 
 # Exif tags
-'exif-imagewidth' => 'Ƿīdnes',
+'exif-imagewidth' => 'Wīdnes',
 'exif-imagelength' => 'Hīehþ',
 'exif-compression' => 'Ȝeþryccungmōd',
-'exif-ycbcrpositioning' => 'Y and C ȝesetednes',
+'exif-ycbcrpositioning' => 'Y and C gesetednes',
 'exif-imagedescription' => 'Biliðes nama',
 'exif-artist' => 'Fruma',
 'exif-usercomment' => 'Brūcendes trahtnunga',
 'exif-exposuretime' => 'Blicestīd',
 'exif-brightnessvalue' => 'APEX beorhtness',
 'exif-lightsource' => 'Lēohtfruma',
-'exif-whitebalance' => 'Hƿītefnetta',
+'exif-whitebalance' => 'Hwītes blēos emnett',
 'exif-sharpness' => 'Scearpnes',
 'exif-gpslatituderef' => 'Norþ oþþe sūþ brǣdu',
 'exif-gpslatitude' => 'Brǣdu',
@@ -1157,16 +1176,16 @@ Cēos ōðerne naman lā.',
 'exif-meteringmode-255' => 'Ōðer',
 
 'exif-lightsource-0' => 'Uncūþ',
-'exif-lightsource-1' => 'Dæȝeslēoht',
+'exif-lightsource-1' => 'Dægeslēoht',
 
 # Flash modes
 'exif-flash-mode-3' => 'selffremmende mōd',
 
-'exif-focalplaneresolutionunit-2' => 'ynċas',
+'exif-focalplaneresolutionunit-2' => 'yncas',
 
 'exif-exposuremode-1' => 'Handlic blice',
 
-'exif-whitebalance-0' => 'Selffremmende hƿītefnetta',
+'exif-whitebalance-0' => 'Selffremmende hwītefnett',
 
 'exif-scenecapturetype-1' => 'Landsceap',
 
@@ -1178,8 +1197,8 @@ Cēos ōðerne naman lā.',
 'exif-sharpness-1' => 'Sōfte',
 'exif-sharpness-2' => 'Heard',
 
-'exif-subjectdistancerange-2' => 'Nēah hāƿung',
-'exif-subjectdistancerange-3' => 'Feorr hāƿung',
+'exif-subjectdistancerange-2' => 'Nēah hāwung',
+'exif-subjectdistancerange-3' => 'Feorr hāwung',
 
 # Pseudotags used for GPSLatitudeRef and GPSDestLatitudeRef
 'exif-gpslatitude-n' => 'Norþ brǣdu',
@@ -1234,44 +1253,44 @@ $5
 'autosumm-new' => "Sīdan mid '$1' ȝescapen",
 
 # Watchlist editor
-'watchlistedit-noitems' => 'Þīnu ƿæccȝetalu ne hæfþ nǣniȝ naman.',
-'watchlistedit-normal-title' => 'Ƿæccȝetale ādihtan',
-'watchlistedit-normal-legend' => 'Naman forniman ƿiþ ƿæccȝetale',
-'watchlistedit-normal-submit' => 'Naman forniman',
+'watchlistedit-noitems' => 'Þīn behealdungtæl næfþ nǣnga ymelan.',
+'watchlistedit-normal-title' => 'Adihtan behealdungtæl',
+'watchlistedit-normal-legend' => 'Forniman naman fram behealdungtæle',
+'watchlistedit-normal-submit' => 'Forniman naman',
 'watchlistedit-raw-titles' => 'Naman:',
-'watchlistedit-raw-done' => 'Þīnu ƿæccȝetalu nīƿode.',
+'watchlistedit-raw-done' => 'Þīn behealdungtæl wæs ednīwod.',
 
 # Watchlist editing tools
-'watchlisttools-view' => 'Ƿeorþliċe hƿearfas sēon',
-'watchlisttools-edit' => 'Ƿæccȝetale sēon and ādihtan',
-'watchlisttools-raw' => 'Grēne ƿæccȝetale ādihtan',
+'watchlisttools-view' => 'Sēon andwendunga',
+'watchlisttools-edit' => 'Sēon and adihtan behealdungtæle',
+'watchlisttools-raw' => 'Adihtan hrēaw behealdungtæle',
 
 # Special:Version
 'version' => 'Fadung',
-'version-specialpages' => 'Syndriȝa sīdan',
+'version-specialpages' => 'Syndrige trametas',
 'version-other' => 'Ōðer',
 'version-hooks' => 'Anglas',
 'version-hook-name' => 'Angelnama',
-'version-version' => '(Fadung $1)',
+'version-version' => '($1. fadung)',
 
 # Special:FileDuplicateSearch
-'fileduplicatesearch-filename' => 'Fīlnama:',
-'fileduplicatesearch-submit' => 'Sēċan',
+'fileduplicatesearch-filename' => 'Ymelan nama:',
+'fileduplicatesearch-submit' => 'Sēcan',
 
 # Special:SpecialPages
-'specialpages' => 'Syndriȝa sīdan',
-'specialpages-group-other' => 'Ōðra syndriȝa sīdan',
+'specialpages' => 'Syndrige trametas',
+'specialpages-group-other' => 'Ōðre syndrige trametas',
 'specialpages-group-users' => 'Brūcendas and riht',
 
 # Special:BlankPage
-'blankpage' => 'Blæċu sīde',
+'blankpage' => 'Tramet is æmettig',
 
 # Special:Tags
-'tags-edit' => 'ādihtan',
+'tags-edit' => 'adihtan',
 
 # HTML forms
 'htmlform-submit' => 'Forþsendan',
-'htmlform-reset' => 'Hƿearfas undōn',
+'htmlform-reset' => 'Undōn andwendunga',
 'htmlform-selectorother-other' => 'Ōðer',
 
 );
index 889d3db..9c1534a 100644 (file)
@@ -18,6 +18,7 @@
  * @author Antime
  * @author Arjanizary
  * @author Avocato
+ * @author Bachounda
  * @author Bassem JARKAS
  * @author Chaos
  * @author Ciphers
@@ -40,6 +41,7 @@
  * @author Mido
  * @author Mimouni
  * @author Mo7amedsalim
+ * @author Nemo bis
  * @author Obayd
  * @author OsamaK
  * @author Ouda
@@ -543,15 +545,15 @@ $messages = array(
 'thu' => 'خميس',
 'fri' => 'جمعة',
 'sat' => 'سبت',
-'january' => 'يناير \\ كانون الثاني',
+'january' => 'يناير',
 'february' => 'فبراير',
 'march' => 'مارس',
 'april' => 'أبريل',
-'may_long' => 'مايو \\ أيار',
-'june' => 'يونيو \\ حزيران',
-'july' => 'يوليو \\ تموز',
-'august' => 'أغسطس \\ آب',
-'september' => 'سبتمبر \\ أيلول',
+'may_long' => 'مايو',
+'june' => 'يونيو',
+'july' => 'يوليو',
+'august' => 'أغسطس',
+'september' => 'سبتمبر',
 'october' => 'أكتوبر',
 'november' => 'نوفمبر',
 'december' => 'ديسمبر',
@@ -609,7 +611,7 @@ $messages = array(
 'listingcontinuesabbrev' => 'يُتبع',
 'index-category' => 'صفحات مفهرسة',
 'noindex-category' => 'صفحات غير مفهرسة',
-'broken-file-category' => 'صفحات تحتوي روابط ملفات معطوبة',
+'broken-file-category' => 'صفحات تحوي روابط ملفات معطوبة',
 
 'about' => 'عن هذه الويكي',
 'article' => 'صفحة محتوى',
@@ -643,7 +645,7 @@ $messages = array(
 'vector-simplesearch-preference' => 'فعّل شريط البحث المبسط (لواجهة فكتور فقط)',
 'vector-view-create' => 'أنشئ',
 'vector-view-edit' => 'عدّل',
-'vector-view-history' => 'استعرض Ø§Ù\84تأريخ',
+'vector-view-history' => 'اعرض Ø§Ù\84تاريخ',
 'vector-view-view' => 'طالع',
 'vector-view-viewsource' => 'طالع المصدر',
 'actions' => 'أفعال',
@@ -660,7 +662,7 @@ $messages = array(
 'go' => 'اذهب',
 'searcharticle' => 'اذهب',
 'history' => 'تاريخ الصفحة',
-'history_short' => 'تأريخ',
+'history_short' => 'تاريخ',
 'updatedmarker' => 'حُدِّثَت منذ زيارتي الأخيرة',
 'printableversion' => 'بتنسق للطباعة',
 'permalink' => 'رابط دائم',
@@ -672,6 +674,7 @@ $messages = array(
 'create-this-page' => 'أنشئ صفحة بهذا العنوان',
 'delete' => 'حذف',
 'deletethispage' => 'احذف هذه الصفحة',
+'undeletethispage' => 'استرجع هذه الصفحة',
 'undelete_short' => 'استرجاع {{PLURAL:$1||تعديل واحد|تعديلين|$1 تعديلات|$1 تعديلاً|$1 تعديل}}',
 'viewdeleted_short' => 'استعرض {{PLURAL:$1||تعديل واحد|تعديلين|$1 تعديلات|$1 تعديلاً|$1 تعديل}}',
 'protect' => 'حماية',
@@ -725,7 +728,6 @@ $1',
 'disclaimers' => 'إخلاء مسؤولية',
 'disclaimerpage' => 'Project:إخلاء مسؤولية عام',
 'edithelp' => 'مساعدة التحرير',
-'edithelppage' => 'Help:تحرير',
 'helppage' => 'Help:محتويات',
 'mainpage' => 'الصفحة الرئيسية',
 'mainpage-description' => 'الصفحة الرئيسية',
@@ -751,7 +753,7 @@ $1',
 'youhavenewmessagesmanyusers' => 'لك $1 من مستخدمين كثُر ($2).',
 'newmessageslinkplural' => '{{PLURAL:$1|رسالة جديدة|رسائل جديدة}}',
 'newmessagesdifflinkplural' => 'أحدث {{PLURAL:$1|تغيير|تغييرات}}',
-'youhavenewmessagesmulti' => 'لك رسائل جديدة في $1',
+'youhavenewmessagesmulti' => 'لديك رسائل جديدة في $1',
 'editsection' => 'عدّل',
 'editold' => 'تعديل',
 'viewsourceold' => 'استعرض المصدر',
@@ -877,6 +879,7 @@ $2',
 'namespaceprotected' => "لا تمتلك الصلاحية لتعديل الصفحات في نطاق '''$1'''.",
 'customcssprotected' => 'أنت لا تمتلك السماح لتعديل صفحة الCSS هذه، لأنها تحتوي على الإعدادات الشخصية لمستخدم آخر.',
 'customjsprotected' => 'أنت لا تمتلك السماح لتعديل صفحة الجافاسكريبت هذه، لأنها تحتوي على الإعدادات الشخصية لمستخدم آخر.',
+'mycustomcssprotected' => 'ليس لديك صلاحية تعديل هذه الصفحة للطرز المتراصة.',
 'ns-specialprotected' => 'الصفحات الخاصة لا يمكن تعديلها.',
 'titleprotected' => "{{GENDER:$1|حمى|حمت}} [[User:$1|$1]] هذا العنوان من الإنشاء.
 السبب المعطى هو ''$2''.",
@@ -904,6 +907,7 @@ $2',
 'yourname' => 'اسم المستخدم:',
 'userlogin-yourname' => 'اسم المستخدم',
 'userlogin-yourname-ph' => 'أدخل اسم المستخدم الخاص بك',
+'createacct-another-username-ph' => 'أدخل اسم المستخدم',
 'yourpassword' => 'كلمة السر:',
 'userlogin-yourpassword' => 'كلمة السر',
 'userlogin-yourpassword-ph' => 'أدخل كلمة السر الخاصة بك',
@@ -938,9 +942,11 @@ $2',
 'helplogin-url' => 'Help:تسجيل الدخول',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|المساعدة في تسجيل الدخول]]',
 'createacct-join' => 'قم بإدخال المعلومات الخاصة بك أدناه.',
+'createacct-another-join' => 'أدخل معلومات الحساب الجديد أدناه.',
 'createacct-emailrequired' => 'عنوان البريد الإلكتروني',
 'createacct-emailoptional' => 'البريد الإلكتروني (اختياري)',
 'createacct-email-ph' => 'أدخل عنوان بريدك الإلكتروني',
+'createacct-another-email-ph' => 'أدخل عنوان البريد الإلكتروني',
 'createaccountmail' => 'استخدم كلمة سر عشوائية مؤقتة وارسلها إلى عنوان البريد الإلكتروني المحدد أدناه',
 'createacct-realname' => 'الاسم الحقيقي (اختياري)',
 'createaccountreason' => 'السبب:',
@@ -1055,11 +1061,10 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'إعادة ضبط كلمة السر',
-'passwordreset-text' => 'أكمل هذا النموذج لإعادة ضبط كلمة السر الخاصة بك.',
+'passwordreset-text-one' => 'أكمل هذا النموذج لإعادة ضبط كلمة السر الخاصة بك.',
 'passwordreset-legend' => 'إعادة تعيين كلمة السر',
 'passwordreset-disabled' => 'عُطّلت إعادة تعيين كلمة السر على هذه الويكي.',
 'passwordreset-emaildisabled' => 'تم تعطيل ميزات البريد الإلكتروني على هذه الويكي.',
-'passwordreset-pretext' => '{{PLURAL:$1||أدخل أحد أجزاء البيانات أدناه}}',
 'passwordreset-username' => 'اسم المستخدم:',
 'passwordreset-domain' => 'النطاق:',
 'passwordreset-capture' => 'أأعرض البريد الإلكتروني الناتج؟',
@@ -1303,6 +1308,7 @@ $2
 يبدو أنه تم حذفها.',
 'edit-conflict' => 'تضارب تحريري.',
 'edit-no-change' => 'تعديلك تم تجاهله، لأنه لم يحدث أي تعديل للنص.',
+'postedit-confirmation' => 'تعديلك حفظ.',
 'edit-already-exists' => 'لم يمكن إنشاء صفحة جديدة.
 هي موجودة بالفعل.',
 'defaultmessagetext' => 'نص الرسالة الافتراضي',
@@ -1528,6 +1534,7 @@ $1",
 'compareselectedversions' => 'قارن بين النسختين المختارتين',
 'showhideselectedversions' => 'أظهر/أخف المراجعات المختارة',
 'editundo' => 'رجوع',
+'diff-empty' => '(لا فرق)',
 'diff-multi' => '({{PLURAL:$1||مراجعة واحدة متوسطة غير معروضة أجراها|مراجعتان متوسطتان غير معروضتين أجراهما|$1 مراجعات متوسطة غير معروضة أجراها|$1 مراجعة متوسطة غير معروضة أجراها}} {{PLURAL:$2||مستخدم واحد|مستخدمان|$2 مستخدمين|$2 مستخدمًا|$2 مستخدم}}.)',
 'diff-multi-manyusers' => '({{PLURAL:$1||مراجعة واحدة متوسطة غير معروضة أجراها|مراجعتان متوسطتان غير معروضتان أجراهما|$1 مراجعات متوسطة غير معروضة أجراها|$1 مراجعة متوسطة غير معروضة أجراها}} أكثر من {{PLURAL:$2||مستخدم واحد|مستخدمين|$2 مستخدمين|$2 مستخدمًا|$2 مستخدم}}.)',
 'difference-missing-revision' => '{{PLURAL:$2|مراجعة واحدة|$2 مراجعات}} لهذا الفرق ($1) {{PLURAL:$2|لم|لم}} يتم إيجادها.
@@ -1555,7 +1562,6 @@ $1",
 'searchmenu-legend' => 'خيارات البحث',
 'searchmenu-exists' => "*الصفحة '''[[$1]]'''",
 'searchmenu-new' => "'''أنشئ الصفحة \"[[:\$1]]\" في هذا الويكي!'''",
-'searchhelp-url' => 'Help:محتويات',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|تصفح الصفحات بهذه البادئة]]',
 'searchprofile-articles' => 'صفحات المحتوى',
 'searchprofile-project' => 'صفحات المساعدة والمشروع',
@@ -1633,7 +1639,6 @@ $1",
 'resetprefs' => 'أزل التغييرات غير المحفوظة',
 'restoreprefs' => 'استرجع كل الإعدادات الافتراضية',
 'prefs-editing' => 'التحرير',
-'prefs-edit-boxsize' => 'حجم نافذة التحرير.',
 'rows' => 'صفوف:',
 'columns' => 'أعمدة:',
 'searchresultshead' => 'بحث',
@@ -1644,9 +1649,6 @@ $1",
 'recentchangesdays-max' => 'الحد الأقصى {{PLURAL:$1|أقل من يوم|يوم واحد|يومان|$1 أيام|$1 يوما|$1 يوم}}',
 'recentchangescount' => 'عدد التعديلات الظاهرة مبدئيا:',
 'prefs-help-recentchangescount' => 'بما في ذلك أحدث التغييرات وتاريخ الصفحات والسجلات.',
-'prefs-help-watchlist-token' => 'سوف يولد ملء هذا الحقل بمفتاح سري تغذية RSS لقائمة مراقبتك.
-سوف يتمكن أي شخص يعرف مفتاح هذا الحقل من قراءة قائمة مراقبتك، لذا فاختر قيمة منيعة.
-هنا قيمة مولدة تلقائيا تستطيع استخدامها: $1',
 'savedprefs' => 'تم حفظ تفضيلاتك.',
 'timezonelegend' => 'المنطقة الزمنية:',
 'localtime' => 'الوقت المحلي:',
@@ -1677,7 +1679,6 @@ $1",
 'prefs-reset-intro' => 'يمكنك استخدام هذه الصفحة لإعادة تفضيلاتك للحالة الافتراضية للموقع.
 لن تستطيع استرجاع الحالة السابقة.',
 'prefs-emailconfirm-label' => 'تأكيد البريد الإلكتروني:',
-'prefs-textboxsize' => 'حجم نافذة التحرير',
 'youremail' => 'البريد:',
 'username' => '{{GENDER:$1|اسم المستخدم|اسم المستخدمة}}:',
 'uid' => 'رقم {{GENDER:$1|المستخدم|المستخدمة}}:',
@@ -1709,6 +1710,8 @@ $1",
 'prefs-dateformat' => 'صيغة الوقت',
 'prefs-timeoffset' => 'المنطقة الزمنية',
 'prefs-advancedediting' => 'خيارات متقدمة',
+'prefs-editor' => 'محرر',
+'prefs-preview' => 'عرض مسبق',
 'prefs-advancedrc' => 'خيارات متقدمة',
 'prefs-advancedrendering' => 'خيارات متقدمة',
 'prefs-advancedsearchoptions' => 'خيارات متقدمة',
@@ -1917,7 +1920,6 @@ $1",
 'recentchangeslinked-feed' => 'تغييرات ذات علاقة',
 'recentchangeslinked-toolbox' => 'تغييرات ذات علاقة',
 'recentchangeslinked-title' => 'التغييرات المرتبطة ب "$1"',
-'recentchangeslinked-noresult' => 'لم تحدث تعديلات في الصفحات التي لها وصلات هنا خلال الفترة المحددة.',
 'recentchangeslinked-summary' => "هذه قائمة بالتغييرات التي تمت حديثا للصفحات الموصولة من صفحة معينة (أو إلى الأعضاء ضمن تصنيف معين).
 الصفحات في [[Special:Watchlist|قائمة مراقبتك]] '''مغلظة'''",
 'recentchangeslinked-page' => 'اسم الصفحة:',
@@ -2577,7 +2579,6 @@ $1',
 'unwatchthispage' => 'أوقف المراقبة',
 'notanarticle' => 'ليست صفحة محتوى',
 'notvisiblerev' => 'المراجعة تم حذفها',
-'watchnochange' => 'لم تُعدّل أي صفحة في قائمة مراقبتك خلال الفترة الزمنية المحددة.',
 'watchlist-details' => '{{PLURAL:$1||صفحة واحدة|صفحتان|$1 صفحات|$1 صفحة}} في قائمة مراقبتك، بدون عد صفحات النقاش.',
 'wlheader-enotif' => 'الإخطار بالبريد الإلكتروني مُفعّل.',
 'wlheader-showupdated' => "الصفحات التي تم تحريرها بعد مطالعتك إياها آخر مرة عناوينها بالخط '''الغليظ'''",
@@ -2837,7 +2838,7 @@ $1',
 'mycontris' => 'مساهماتي',
 'contribsub2' => 'ل$1 ($2)',
 'nocontribs' => 'لم يتم العثور على تغييرات تطابق هذه المحددات.',
-'uctop' => '(أعلى)',
+'uctop' => 'حالي',
 'month' => 'من شهر (وأقدم):',
 'year' => 'من سنة (وأقدم):',
 
@@ -4242,7 +4243,6 @@ $5
 'version-other' => 'أخرى',
 'version-mediahandlers' => 'متحكمات الميديا',
 'version-hooks' => 'الخطاطيف',
-'version-extension-functions' => 'وظائف الامتداد',
 'version-parser-extensiontags' => 'وسوم امتداد المحلل',
 'version-parser-function-hooks' => 'خطاطيف دالة المحلل',
 'version-hook-name' => 'اسم الخطاف',
index 98f5810..6a716b6 100644 (file)
@@ -344,7 +344,6 @@ $1',
 'disclaimers' => 'ܠܐ ܡܫܬܐܠܢܘܬܐ',
 'disclaimerpage' => 'Project:ܠܐ ܡܫܬܐܠܢܘܬܐ ܓܘܢܝܬܐ',
 'edithelp' => 'ܥܘܕܪܢܐ ܠܫܚܠܦܬܐ',
-'edithelppage' => 'Help:ܫܚܠܦܬܐ',
 'helppage' => 'Help:ܚܒܝܫܬ̈ܐ',
 'mainpage' => 'ܦܐܬܐ ܪܝܫܝܬܐ',
 'mainpage-description' => 'ܦܐܬܐ ܪܝܫܝܬܐ',
@@ -421,7 +420,7 @@ $1',
 'protectedinterface' => 'ܗܕܐ ܦܐܬܐ ܡܘܬܪܐ ܟܬܝܒܬܐ ܕܦܐܬܐ ܠܚܘܪܙܐ ܒܗܢܐ ܘܝܩܝ, ܘܐܝܬܝܗܝ ܢܛܪܬܐ ܠܡܘܢܥ ܚܘܒܠܐ.
 ܠܡܘܣܦ ܐܘ ܫܘܚܠܦ ܬܘܪ̈ܓܡܐ ܕܟܠܗܘܢ ܘܝܩܝ، ܐܦܠܚ [//translatewiki.net/ translatewiki.net]، ܬܪܡܝܬܐ ܕܬܘܪܓܡܐ ܕܡܝܕܝܐܘܝܩܝ.',
 'editinginterface' => "'''ܙܘܗܪܐ:''' ܐܢܬ ܬܫܚܠܦ ܦܐܬܐ ܕܡܬܦܠܚܬ ܒܚܙܝܐ ܟܬܝܒܝܐ ܕܬܚܪܙܬܐ.
-ܟܠ ܫܘܚܠܦܐ ܒܦܐܬܐ ܗܕܐ ܢܗܘܐ ܠܗ ܡܥܒܕܢܘܬܐ ܥܠ ܐܣܟܡܐ ܕܦܐܬܐ ܕܡܦܠܚܢܐ ܕܡܦܠܚܢ̈ܐ ܐܚܪ̈ܢܐ ܒܘܝܩܝ ܗܢܐ.
+ܟܠ ܫܘܚܠܦܐ ܒܦܐܬܐ ܗܕܐ ܢܗܘܐ ܠܗ ܡܥܒܕܢܘܬܐ ܥܠ ܐܣܟܡ ܦܐܬܐ ܕܡܦܠܚܢܐ ܕܡܦܠܚܢ̈ܐ ܐܚܪ̈ܢܐ ܒܘܝܩܝ ܗܢܐ.
 ܠܡܘܣܦ ܐܘ ܫܘܚܠܦ ܬܘܪ̈ܓܡܐ ܕܟܠܗܘܢ ܘܝܩܝ، ܐܦܠܚ [//translatewiki.net/ translatewiki.net]، ܬܪܡܝܬܐ ܕܬܘܪܓܡܐ ܕܡܝܕܝܐܘܝܩܝ.",
 'sqlhidden' => '(ܒܘܬܬܐ SQL ܛܫܝܐ)',
 'namespaceprotected' => "ܠܝܬ ܠܟ ܦܣܣܐ ܠܫܚܠܦܬܐ ܕܦܐܬܬ̈ܐ ܒܚܩܠܐ ܕ'''$1'''.",
@@ -435,9 +434,18 @@ $1',
 ܚܕ ܟܡܐ ܡܢ ܦܐܬܬ̈ܐ ܡܬܚܙܝܢ ܐܝܟ ܕܗܘ ܐܢܬ ܥܠܝܠܐ ܐܝܬܝܟ ܥܕܡܐ ܕܐܣܦܩܬ ܠܦܐܬܬ̈ܐ ܠܒܝܟܬ̈ܐ ܕܡܦܐܬܢܐ ܕܝܠܟ.",
 'welcomeuser' => 'ܒܫܝܢܐ $1!',
 'yourname' => 'ܫܡܐ ܕܡܦܠܚܢܐ:',
+'userlogin-yourname' => 'ܫܡܐ ܕܡܦܠܚܢܐ',
+'userlogin-yourname-ph' => 'ܐܥܠ ܫܡܐ ܕܡܦܠܚܢܐ ܕܝܠܟ',
 'yourpassword' => 'ܡܠܬܐ ܕܥܠܠܐ:',
+'userlogin-yourpassword' => 'ܡܠܬܐ ܕܥܠܠܐ',
+'userlogin-yourpassword-ph' => 'ܐܥܠ ܡܠܬܐ ܕܥܠܠܐ ܕܝܠܟ',
+'createacct-yourpassword-ph' => 'ܐܥܠ ܡܠܬܐ ܕܥܠܠܐ',
 'yourpasswordagain' => 'ܟܬܘܒ ܡܠܬܐ ܕܥܠܠܐ ܙܒܢܬܐ ܐܚܪܬܐ:',
+'createacct-yourpasswordagain' => 'ܫܪܪ ܡܠܬܐ ܕܥܠܠܐ',
+'createacct-yourpasswordagain-ph' => 'ܐܥܠ ܡܠܬܐ ܕܥܠܠܐ ܙܒܢ ܐܚܪܝܢ',
 'remembermypassword' => 'ܕܟܘܪ ܥܠܠܬܝ ܥܠ ܡܦܐܬܢܐ ܗܢܐ (ܠܡܬܚܐ ܥܠܝܐ ܕ $1 {{PLURAL:$1|ܝܘܡܐ|ܝܘܡܬ̈ܐ}})',
+'userlogin-remembermypassword' => 'ܫܒܘܩ ܠܝ ܥܠܝܠܐ ܒܚܘܫܒܢܝ',
+'userlogin-signwithsecure' => 'ܐܚܫܚ ܕܒܝܩܘܬܐ ܡܫܝܢܢܬܐ',
 'login' => 'ܥܘܠ',
 'nav-login-createaccount' => 'ܥܘܠ / ܒܪܝ ܚܘܫܒܢܐ',
 'loginprompt' => 'ܐܠܨܐ ܠܡܦܐܬܢܐ ܕܝܠܟ ܕܣܡܟ ܠܩܘܩܝܙ (cookies) ܠܥܠܠܬܐ ܒ {{SITENAME}}.',
@@ -446,14 +454,25 @@ $1',
 'logout' => 'ܦܠܘܛ',
 'userlogout' => 'ܦܠܘܛ',
 'notloggedin' => 'ܠܝܬܝܟ ܥܠܝܠܐ',
+'userlogin-noaccount' => 'ܠܝܬ ܠܟ ܚܘܫܒܢܐ؟',
+'userlogin-joinproject' => 'ܢܩܦ ܥܡ {{SITENAME}}',
 'nologin' => "ܠܝܬ ܠܟ ܚܘܫܒܢܐ؟ '''$1'''.",
 'nologinlink' => 'ܒܪܝ ܚܘܫܒܢܐ',
 'createaccount' => 'ܒܪܝ ܚܘܫܒܢܐ',
 'gotaccount' => "ܐܝܬ ܠܟ ܚܘܫܒܢܐ؟ '''$1'''.",
 'gotaccountlink' => 'ܥܘܠ',
 'userlogin-resetlink' => 'ܐܬܢܫܝܬ ܝܕ̈ܥܬܐ ܕܥܠܠܐ؟',
+'userlogin-resetpassword-link' => 'ܫܚܠܦ ܡܠܬܐ ܕܥܠܠܐ',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|ܥܘܕܪܢܐ ܒܥܠܠܐ ܠܚܘܫܒܢܐ]]',
+'createacct-join' => 'ܐܥܠ ܝܕ̈ܥܬܐ ܕܝܠܟ ܠܬܚܬ',
+'createacct-emailrequired' => 'ܒܝܠܕܪܐ ܐܠܩܛܪܘܢܝܐ',
 'createaccountmail' => 'ܐܦܠܚ ܡܠܬܐ ܕܥܠܠܐ ܙܒܢܢܝܬܐ ܘܫܕܪ ܠܗ ܥܠ ܒܝܠܕܪܐ ܐܠܩܛܪܘܢܝܐ ܬܘܚܡܐ ܠܬܚܬ',
 'createaccountreason' => 'ܥܠܬܐ',
+'createacct-submit' => 'ܒܪܝ ܚܘܫܒܢܐ ܕܝܠܟ',
+'createacct-benefit-heading' => 'ܝܬܒܐ ܕ{{SITENAME}} ܐܣܬܝܡ ܒܝܕ ܐܢܫ̈ܐ ܐܟܘܬܟ.',
+'createacct-benefit-body1' => '{{PLURAL:$1|ܫܘܚܠܦܐ|ܫܘܚܠܦ̈ܐ}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|ܦܐܬܐ|ܦܐܬܬ̈ܐ}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|ܫܘܬܦܢܐ ܚܕܬܐ|ܫܘܬܦܢ̈ܐ ܚܕ̈ܬܐ}}',
 'badretype' => 'ܡܠܬܐ ܕܥܠܠܐ ܟܬܒܬ ܐܢܬ ܠܐ ܐܘܝܢܬܐ.',
 'userexists' => 'ܫܡܐ ܕܡܦܠܚܢܐ ܕܐܥܠܬ ܫܩܝܠܐ ܐܝܬܘܗܝ.
 ܫܦܝܪܐܝܬ ܓܒܝ ܫܡܐ ܐܚܪܢܐ.',
@@ -492,7 +511,6 @@ $1',
 # Special:PasswordReset
 'passwordreset' => 'ܣܘܡ ܡܠܬܐ ܕܥܠܠܐ ܙܒܢ ܐܚܪܝܢ',
 'passwordreset-legend' => 'ܣܘܡ ܡܠܬܐ ܕܥܠܠܐ ܙܒܢ ܐܚܪܝܢ',
-'passwordreset-pretext' => '{{PLURAL:$1||ܐܥܠ ܚܕ ܡܢ ܡܢܘܬ̈ܐ ܕܝܕ̈ܥܬܐ ܠܬܬܚܬ}}',
 'passwordreset-username' => 'ܫܡܐ ܕܡܦܠܚܢܐ:',
 'passwordreset-domain' => 'ܪܘܚܬܐ:',
 'passwordreset-email' => 'ܡܘܢܥܐ ܕܒܝܠܕܪܐ ܐܠܩܛܪܘܢܝܐ:',
@@ -536,8 +554,8 @@ $1',
 'accmailtitle' => 'ܡܠܬܐ ܕܥܠܠܐ ܫܕܪܬ',
 'newarticle' => '(ܚܕܬܐ)',
 'newarticletext' => "ܐܬܬ ܒܬܪ ܐܣܪܐ ܕܦܐܬܐ ܕܠܐ ܐܬܬܣܝܡܬ ܥܕܡܫ.
-ܠܣܘܝܡܐ ܕܦܐܬܐ ܗܕܐ, ܫܪܝ ܠܟܬܒܬܐ ܒܣܢܕܘܩܐ ܠܬܚܬ (ܚܙܝ [[{{MediaWiki:Helppage}}|ܦܐܬܐ ܕܥܘܕܪܢܐ]] ܠܐܚܪܢܐ ܝܕ̈ܥܬܐ).
-ܐܢ ܐܬܬ ܠܗܪܟܐ ܦܘܕܐܝܬ, ܕܘܫ ܠܦܪܡܝܬܐ ܕ '''ܠܒܣܬܪ back''' ܒܡܦܐܬܢܐ ܕܝܠܟ.",
+ܠܣܘܝܡܐ ܕܦܐܬܐ ܗܕܐ، ܫܪܝ ܠܟܬܒܬܐ ܒܣܢܕܘܩܐ ܠܬܚܬ (ܚܙܝ [[{{MediaWiki:Helppage}}|ܦܐܬܐ ܕܥܘܕܪܢܐ]] ܠܐܚܪܢܐ ܝܕ̈ܥܬܐ).
+ܐܢ ܐܬܬ ܠܗܪܟܐ ܦܘܕܐܝܬ، ܟܒܘܫ ܥܠ ܦܪܡܝܬܐ ܕ '''ܠܒܣܬܪ back''' ܒܡܦܐܬܢܐ ܕܝܠܟ.",
 'updated' => '(ܐܬܚܕܬ)',
 'note' => "'''ܡܥܝܪܢܘܬܐ:'''",
 'previewnote' => "'''ܕܟܪ ܕܗܢܘ ܚܝܪܐ ܩܕܡܝܐ ܒܠܚܘܕ'''.
@@ -559,6 +577,7 @@ $1',
 'permissionserrors' => 'ܦܘܕ̈ܐ ܕܦܣܣ̈ܐ',
 'permissionserrorstext-withaction' => 'ܠܝܬ ܠܟ ܦܣܣܐ ܠ$2, ܒ{{PLURAL:$1|ܥܠܬܐ|ܥܠܬ̈ܐ}} ܕ:',
 'log-fulllog' => 'ܚܙܝ ܣܓܠܐ ܓܡܝܪܐ',
+'postedit-confirmation' => 'ܫܘܚܠܦܟ ܐܬܠܒܟ.',
 'edit-already-exists' => 'ܒܪܝܐ ܕܦܐܬܐ ܚܕܬܐ ܠܐ ܡܬܡܨܝܢܐ.
 ܗܕܐ ܦܐܬܐ ܐܝܬ ܡܢ ܟܕܘ.',
 'editwarning-warning' => 'ܐܢ ܫܒܩܬ ܦܐܬܐ ܗܕܐ ܡܬܡܨܝܢܬܐ ܐܝܬܝܗ ܕܚܣܪܬ ܟܠ ܫܘܚܠܦ̈ܐ ܕܥܒܝܕܬ ܗܪܟܐ.
@@ -671,7 +690,6 @@ $1',
 'searchmenu-legend' => 'ܓܒܝܬ̈ܐ ܕܒܨܝܐ',
 'searchmenu-exists' => "'''ܐܝܬ ܦܐܬܐ ܒܫܡ \"[[:\$1]]\" ܥܠ ܗܢܐ ܘܝܩܝ'''",
 'searchmenu-new' => "'''ܒܪܝ ܦܐܬܐ \"[[:\$1]]\" ܥܠ ܗܢܐ ܘܝܩܝ!'''",
-'searchhelp-url' => 'Help:ܚܒܝܫܬ̈ܐ',
 'searchprofile-articles' => 'ܦܐܬܬ̈ܐ ܕܚܒܝܫܬ̈ܐ',
 'searchprofile-project' => 'ܦܐܬܬ̈ܐ ܕܬܪ̈ܡܝܬܐ ܘܕܥܘܕܪܢܐ',
 'searchprofile-images' => 'ܡܝܕ̈ܝܐ ܣܓܝܐ̈ܐ (Multimedia)',
@@ -921,6 +939,7 @@ $1',
 'uploadwarning' => 'ܐܣܩ ܙܘܗܪܐ',
 'savefile' => 'ܠܒܘܟ ܠܦܦܐ',
 'uploadedimage' => 'ܐܣܩ "[[$1]]"',
+'overwroteimage' => 'ܐܣܩ ܨܚܚܐ ܚܕܬܐ ܡܢ "[[$1]]"',
 'uploadvirus' => 'ܠܦܦܐ ܐܝܬ ܒܗ ܒܝܪܘܣ!
 ܐܪ̈ܝܟܬܐ: $1',
 'upload-source' => 'ܡܒܘܥܐ ܕܠܦܦܐ',
@@ -1239,7 +1258,6 @@ $1',
 'watchthispage' => 'ܪܗܝ ܗܕܐ ܦܐܬܐ',
 'unwatch' => 'ܠܐ ܪܗܝ',
 'unwatchthispage' => 'ܟܠܝ ܪܗܝܐ',
-'watchnochange' => 'ܐܦܠܐ ܚܕ ܡܢ ܦܐܬܬ̈ܐ ܒܪ̈ܗܝܬܟ ܐܫܬܚܠܦܬ ܒܡܬܚܐ ܕܙܒܢܐ ܓܠܝܚܐ.',
 'watchlist-details' => '{{PLURAL:$1|$1 ܦܐܬܐ|$1 ܦܐܬܬ̈ܐ}} ܒܪ̈ܗܝܬܟ, ܫܒܘܩ ܡܢ ܦܐܬܬ̈ܐ ܕܡܡܠܠܐ.',
 'wlheader-showupdated' => "ܦܐܬܬ̈ܐ ܕܐܫܬܚܠܦܢ ܡܢ ܒܬܪ ܣܘܥܪܢܟ ܐܚܪܝܐ ܡܬܓܠܚܢ ܒܣܪܛܐ '''ܚܠܝܡܐ'''",
 'wlnote' => "ܠܬܚܬ {{PLURAL:$1|ܫܘܚܠܦܐ ܐܚܪܝܐ| '''$1''' ܫܘܚܠܦ̈ܐ ܐܚܪ̈ܝܐ}} {{PLURAL:$2|ܒܫܥܬܐ ܐܚܪܝܬܐ|'''$2''' ܒܫܥܬ̈ܐ ܐܚܪ̈ܝܬܐ}}, ܠܦܘܬ $3, $4.",
index fd69d9e..d53665f 100644 (file)
@@ -192,7 +192,6 @@ $messages = array(
 'disclaimers' => 'Tukuldungun ñi pin ley',
 'disclaimerpage' => 'Project:Katrütuwün ñi llowdüngun',
 'edithelp' => 'Kellü wirin',
-'edithelppage' => 'Help:Chum wiringekey pakina',
 'helppage' => 'Help:Trokiñdungu',
 'mainpage' => 'Ñidol Wülngiñ',
 'mainpage-description' => 'Ñidol Wülngiñ',
@@ -407,7 +406,6 @@ Rulpakünuy feychi kangelkülelu dungu.",
 'viewprevnext' => 'Pen ($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-exists' => "'''Müley kiñe wülngiñ «[[:$1]]» pingelu feychi wiki mew'''",
 'searchmenu-new' => "'''¡Llitun pakina «[[:$1]]» tüfachi wiki mew!'''",
-'searchhelp-url' => 'Help:Trokiñdungu',
 'searchprofile-articles' => 'Trokiñdungu wülngiñ',
 'searchprofile-project' => 'Kellu wülngiñ ka Deumandungu wülngiñ',
 'searchprofile-images' => 'Fill dungu (adentun, dungun, fidew)',
@@ -522,7 +520,6 @@ Rulpakünuy feychi kangelkülelu dungu.",
 'recentchangeslinked' => 'Koneltuyelelu kalekünulu wirin',
 'recentchangeslinked-toolbox' => 'Koneltuyelelu kalekünulu wirin',
 'recentchangeslinked-title' => 'Koneltuyelelu kalekünun tuwküleyelu "$1"',
-'recentchangeslinked-noresult' => 'Nülkükawlelu wülngiñ kalekünulay.',
 'recentchangeslinked-summary' => "Tüfachi wif niey pu wülngiñ kalekünulu ka nülkükawlelu kiñe feypingechi wülngiñ (kam nülkükawlelu feypingechi trokiñ).
 [[Special:Watchlist|Tami llaytun wif]] ñi pu wülngiñ '''kurükünuley'''.",
 'recentchangeslinked-page' => 'Wülngiñ ñi üy:',
index 73fb16f..73dc887 100644 (file)
@@ -257,7 +257,6 @@ $1',
 'disclaimers' => 'Inḍaraṫ',
 'disclaimerpage' => 'Project:Inḍaraṫ ĝammin',
 'edithelp' => 'Mosaĝada',
-'edithelppage' => 'Help:Kifaċ tṣayeb ċi ṣ-ṣefḫa',
 'helppage' => 'Help:Meḍmon',
 'mainpage' => 'Ṣ-Ṣefḫa l-owla',
 'mainpage-description' => 'Ṣ-Ṣefḫa l-owla',
@@ -284,7 +283,6 @@ chof [[Special:Version|sfht lversion]]',
 'newmessagesdifflink' => 'ṫ-ṫeġyir l-leĥĥer',
 'youhavenewmessagesmulti' => 'Jawek méṣajaṫ jdad fe $1',
 'editsection' => 'Ṣayeb',
-'editsection-brackets' => '[$1]',
 'editold' => 'ṣayeb',
 'viewsourceold' => 'Ċof l-masdar',
 'editlink' => 'ṣayeb',
@@ -541,10 +539,8 @@ ymkn ṫkon bddalṫiha bĝda wlla ṫlbti klmṫ srr mo'qaṫa jdida.",
 
 # Special:PasswordReset
 'passwordreset' => 'ĝawd klmṫ s-srr',
-'passwordreset-text' => 'ĝmmer had l-istimara baċ iwṣlek email ṫaĝ ṫdkir b-ṫṫafaṣil dl-ḫisab ṫaĝk.',
 'passwordreset-legend' => 'ĝawd klmṫ s-srr',
 'passwordreset-disabled' => 'maymkn-ċ ṫĝawd klmṫ s-srr f-had l-wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||kṫb wḫda mn l-bayanaṫ l-ṫḫṫ}}',
 'passwordreset-username' => 'smiṫ l-mosṫĥdim:',
 'passwordreset-email' => 'ĝonwan l-email:',
 'passwordreset-emailtitle' => 'ṫafaṣil l-ḫisab f-{{SITENAME}}',
@@ -929,7 +925,6 @@ $1",
 'searchmenu-legend' => 'khiyarat lbaht',
 'searchmenu-exists' => "'''ḫṫṫa ṣfḫa f-had l-wiki ma smiṫha \"[[:\$1]]\".'''",
 'searchmenu-new' => "'''ṣayb f-had l-wiki ṣfḫṫ \"[[:\$1]]\"!'''",
-'searchhelp-url' => 'Help:Meḍmon',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|ṫṣffeh ṣfaḫi b-had ṣ-ṣabiqa]]',
 'searchprofile-articles' => 'sfht mohtawa',
 'searchprofile-project' => 'sfhai dyal lmossada ol mchroa',
@@ -1003,7 +998,6 @@ Laḫed ana imken ikono l-indexaṫ dial {{SITENAME}} qdam o ma bqaoċ ṣalḫi
 'resetprefs' => 'hiyd tgyirat li mamsjlach',
 'restoreprefs' => 'rjaa kaml liadadat liftiradiya',
 'prefs-editing' => 'thrir',
-'prefs-edit-boxsize' => 'hajm nafidat thrir',
 'rows' => 'sofof:',
 'columns' => 'aaamida:',
 'searchresultshead' => 'Qelleb',
@@ -1042,7 +1036,6 @@ Laḫed ana imken ikono l-indexaṫ dial {{SITENAME}} qdam o ma bqaoċ ṣalḫi
 'prefs-custom-js' => 'personalisé JavaScript',
 'prefs-common-css-js' => 'CSS/JavaScript l-moċṫarak bin jmiĝ s-skinaṫ:',
 'prefs-emailconfirm-label' => "konfirmi l'email:",
-'prefs-textboxsize' => 'hajm nafidat tahrir',
 'youremail' => 'I-Méyl',
 'username' => 'smiṫ l-mosṫĥdim:',
 'uid' => 'raqm lmostakhdim :',
@@ -1258,7 +1251,6 @@ Laḫed ana imken ikono l-indexaṫ dial {{SITENAME}} qdam o ma bqaoċ ṣalḫi
 'recentchangeslinked-feed' => 'L-mṫidad dyal ṣ-ṣefḫaṫ l-li mlaqyin',
 'recentchangeslinked-toolbox' => 'L-mṫidad dyal ṣ-ṣefḫaṫ l-li mlaqyin',
 'recentchangeslinked-title' => 'Ṫ-Ṫeġyiraṫ li mlaqyin mĝa "$1"',
-'recentchangeslinked-noresult' => 'ta tghyir f sfahi mrtabta f lmodda li drtiha',
 'recentchangeslinked-summary' => "Hadi lista dial 'ṫ-ṫeġyiraṫ li ṫdaro mo'aĥarane le 'ṣ-ṣefḫaṫ li mlaqyin mĝa 'ṣ-ṣefḫa l-meĝniya (ola le 'aĝda' dial ċi ṣefa mĝayana). 'Ṣ-Ṣefḫaṫ li [[Special:Watchlist|mṫebeĝ]] mekṫobine be ḫrof ġlaḍ.",
 'recentchangeslinked-page' => 'Smiyṫ ṣ-ṣefḫa',
 'recentchangeslinked-to' => 'Ċof ṫ-ṫeġyiraṫ dyal ṣ-ṣefḫaṫ li fihom ċi lyan kayddik le ṣ-ṣefḫa li bġiṫi fe blaṣt ma ṫdir l-ĝeks',
@@ -2600,7 +2592,6 @@ jrreb l-ĝṛḍ l-ĝadi.',
 'version-other' => 'okhra',
 'version-mediahandlers' => 'motahakkimat lmedia',
 'version-hooks' => 'lkhtatif',
-'version-extension-functions' => 'wadaif lmohallil',
 'version-parser-extensiontags' => 'wossom imtidad lmohallil',
 'version-parser-function-hooks' => 'khtatif dyal dalat lmohllil',
 'version-hook-name' => 'smiyt lkhttaf',
index bf039ce..1d17ee2 100644 (file)
@@ -517,7 +517,7 @@ $messages = array(
 'lastmodifiedat' => 'الصفحه دى اتعدلت اخر مره فى $1,‏ $2.',
 'viewcount' => 'الصفحة دى اتدخل عليها{{PLURAL:$1|مرة واحدة|مرتين|$1 مرات|$1 مرة}}.',
 'protectedpage' => 'صفحه محميه',
-'jumpto' => 'نُط على:',
+'jumpto' => 'روح على:',
 'jumptonavigation' => 'استكشاف',
 'jumptosearch' => 'تدوير',
 'view-pool-error' => 'متأسفين, السيرفرات عليها حمل كبير دلوقتى.
@@ -539,7 +539,6 @@ $1',
 'disclaimers' => 'تنازل عن مسئوليه',
 'disclaimerpage' => 'Project:تنازل عن مسئوليه عمومى',
 'edithelp' => 'مساعده فى التعديل',
-'edithelppage' => 'Help:تعديل',
 'helppage' => 'Help:محتويات',
 'mainpage' => 'الصفحه الرئيسيه',
 'mainpage-description' => 'الصفحه الرئيسيه',
@@ -762,7 +761,7 @@ $2',
 'invalidemailaddress' => 'مش ممكن نقبل عنوان الايميل لانه مش مظبوط.
 دخل ايميل مظبوط او امسحه من الخانة.',
 'accountcreated' => 'الحساب اتفتح',
-'accountcreatedtext' => 'اتÙ\81تح Ø­Ø³Ø§Ø¨ Ù\84Ù\84Ù\8aÙ\88زر Ø¨$1.',
+'accountcreatedtext' => 'حساب Ø§Ù\84Ù\8aÙ\88زر  [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]])اتÙ\81تح .',
 'createaccount-title' => 'فتح حساب فى {{SITENAME}}',
 'createaccount-text' => 'فى واحد فتح حساب باسم الايمل بتاعك على {{SITENAME}} ($4) بالاسم "$2"، وبباسورد "$3". لازم تسجل دخولك دلوقتى و تغير الباسورد بتاعتك.
 
@@ -1201,7 +1200,6 @@ $1",
 'searchmenu-legend' => 'اختيارات التدوير',
 'searchmenu-exists' => "*الصفحة '''[[$1]]'''",
 'searchmenu-new' => "'''ابتدى الصفحه \"[[:\$1]]\" ع الويكى دا!'''",
-'searchhelp-url' => 'Help:محتويات',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|استعرض الصفحات اللى بتبتدى بالبريفيكس دا]]',
 'searchprofile-articles' => 'صفحات محتوى',
 'searchprofile-project' => 'صفحات  المساعده و المشروع',
@@ -1275,7 +1273,6 @@ $1",
 'resetprefs' => 'امسح التغييرات اللى مش المحفوظة',
 'restoreprefs' => 'استرجع التظبيطات الاصليه',
 'prefs-editing' => 'تعديل',
-'prefs-edit-boxsize' => 'كُبر الويندو بتاعة التحرير',
 'rows' => 'صفوف:',
 'columns' => 'عمدان:',
 'searchresultshead' => 'تدوير',
@@ -1286,9 +1283,6 @@ $1",
 'recentchangesdays-max' => '(الحد الاقصى $1 {{PLURAL:$1|يوم|ايام}})',
 'recentchangescount' => 'عدد التعديلات اللى بتظهر اوتوماتيكى فى اخر التغييرات, تواريخ الصفحه, و فى السجلات, :',
 'prefs-help-recentchangescount' => 'بيحتوى على احدث التغييرات ، تواريخ الصفحات و السجلات.',
-'prefs-help-watchlist-token' => 'ملى الحقل ده بمفتاح سرى حيعمل تلقيم RSS لقايمه مراقبتك.
-اى واحد بعرف المفتاح فى الحقل ده ممكن يقرأ قايمه مراقبتك، علشان كده اختار قيمه متأمنه.
-دى قيمه متولده عشوائى وممكن تستخدمها: $1',
 'savedprefs' => 'التفضيلات بتاعتك اتحفظت.',
 'timezonelegend' => 'منطقة التوقيت',
 'localtime' => 'التوقيت المحلى',
@@ -1318,7 +1312,6 @@ $1",
 'prefs-reset-intro' => 'ممكن تستعمل الصفحه دى عشان تعيد ظبط التفضيلات بتاعتك و تخليها زى الحاله الافتراضيه للموقع.
 ماينفعش الرجوع فى التعديل دا.',
 'prefs-emailconfirm-label' => 'التأكد من الايميل:',
-'prefs-textboxsize' => 'حجم شباك التعديل',
 'youremail' => 'الايميل:',
 'username' => 'اسم اليوزر:',
 'uid' => 'رقم اليوزر:',
@@ -1552,7 +1545,6 @@ $1",
 'recentchangeslinked-feed' => 'تعديلات  ليها علاقه',
 'recentchangeslinked-toolbox' => 'تعديلات  ليها علاقه',
 'recentchangeslinked-title' => 'التعديلات المرتبطه  ب "$1"',
-'recentchangeslinked-noresult' => 'مافيش تعديلات حصلت فى الصفحات اللى ليها وصلات هنا خلال الفترة المحدده.',
 'recentchangeslinked-summary' => "دى ليستة تغييرات اتعملت قريب فى صفح معمول ليها لينك من صفح مخصوصه (او لاعضاء فى تصنيف معين).
 الصفح اللى فى [[Special:Watchlist|لستة الصفح اللى بتراقبها]] معروضه '''بالـbold'''",
 'recentchangeslinked-page' => 'اسم الصفحه :',
@@ -1564,7 +1556,7 @@ $1",
 'reuploaddesc' => 'إلغى التحميل وارجع لاستمارة التحميل',
 'upload-tryagain' => 'نفذ وصف الملف المتعدل',
 'uploadnologin' => 'ما سجلتش الدخول',
-'uploadnologintext' => 'لازم تكون [[Special:UserLogin|مسجل الدخول]] علشان تقدر تحمل الملفات.',
+'uploadnologintext' => 'لازم تكون  $1 علشان تقدر تحمل الملفات.',
 'upload_directory_missing' => 'مجلد التحميل($1) ضايع السيرفير وماقدرش يعمل واحد تاني.',
 'upload_directory_read_only' => 'مجلد التحميل ($1) مش ممكن الكتابة عليه بواسطة سيرڨر الويب.',
 'uploaderror' => 'غلطه فى التحميل',
@@ -2078,7 +2070,6 @@ PICT # misc.
 'unwatchthispage' => 'اتوقف عن المراقبة',
 'notanarticle' => 'دى مش صفحة بتاعة محتوى',
 'notvisiblerev' => 'النسحة اتمسحت',
-'watchnochange' => 'مافيش ولا صفحة اتعدلت فى لستة مراقبتك فى الفترة الزمنية اللى حددتها.',
 'watchlist-details' => '{{PLURAL:$1|$1 صفحه|$1 صفحه}} فى قايمه مراقبتك، بدون عد صفحات المناقشه.',
 'wlheader-enotif' => '*خاصية الاعلام بالايميل متفعلة',
 'wlheader-showupdated' => "الصفحات اللى اتغيرت  بعد زيارتك ليها اخر مرة معروضة بالخط '''العريض'''",
@@ -2310,12 +2301,12 @@ $1',
 'blanknamespace' => '(رئيسى)',
 
 # Contributions
-'contributions' => 'تعديلات اليوزر',
+'contributions' => 'تعديلات اليوزر {{GENDER:$1|اليوزر|اليوزره}}',
 'contributions-title' => 'مساهمات اليوزر ل$1',
 'mycontris' => 'تعديلاتى',
 'contribsub2' => 'لليوزر $1 ($2)',
 'nocontribs' => 'مالقيناش   تغييرات تطابق المحددات دي.',
-'uctop' => '(فوق)',
+'uctop' => '(آخر تعديل)',
 'month' => 'من شهر (واللى قبل كده):',
 'year' => 'من سنة (واللى قبل كده):',
 
@@ -3350,7 +3341,6 @@ $5
 'version-other' => 'تانية',
 'version-mediahandlers' => 'متحكمات الميديا',
 'version-hooks' => 'الخطاطيف',
-'version-extension-functions' => 'وظايف الامتداد',
 'version-parser-extensiontags' => 'التاجز بتوع امتداد البريزر',
 'version-parser-function-hooks' => 'خطاطيف دالة المحلل',
 'version-hook-name' => 'اسم الخطاف',
index e86d769..ce7bf94 100644 (file)
@@ -8,6 +8,7 @@
  * @file
  *
  * @author Bishnu Saikia
+ * @author Britul
  * @author Chaipau
  * @author Gahori
  * @author Gitartha.bordoloi
@@ -382,6 +383,7 @@ $messages = array(
 'create-this-page' => 'নতুন পৃষ্ঠা সৃষ্টি কৰক',
 'delete' => 'বিলোপ',
 'deletethispage' => 'এই পৃষ্ঠাখন বিলোপ কৰক',
+'undeletethispage' => 'এই পৃষ্ঠা পুনৰুদ্ধাৰ কৰক',
 'undelete_short' => '{{PLURAL:$1|বিলোপিত পৃষ্ঠাৰ|$1 সংখ্যক বিলোপিত পৃষ্ঠাৰ}} পূৰ্ববৎকৰণ',
 'viewdeleted_short' => '{{PLURAL:$1| এটা বিলুপ্ত সম্পাদনা|$1 টা বিলুপ্ত সম্পাদনা}} দেখুৱাওক',
 'protect' => 'সুৰক্ষিত কৰক',
@@ -435,7 +437,6 @@ $1',
 'disclaimers' => 'দায়লুপ্তি',
 'disclaimerpage' => 'Project:সাধাৰণ দায়লুপ্তি',
 'edithelp' => 'সম্পাদনাৰ বাবে সহায়',
-'edithelppage' => 'Help:সম্পাদনা',
 'helppage' => 'Help:সমল',
 'mainpage' => 'বেটুপাত',
 'mainpage-description' => 'বেটুপাত',
@@ -582,6 +583,8 @@ $2',
 'namespaceprotected' => "আপোনাৰ '''$1''' নামস্থানৰ পৃষ্ঠাসমূহ সম্পাদনা কৰাৰ অধিকাৰ নাই।",
 'customcssprotected' => 'এই CSS পৃষ্ঠা সম্পাদনা কৰাৰ অধিকাৰ আপোনাৰ নাই, কাৰণ ইয়াত আন সদস্যৰ ব্যক্তিগত পছন্দসমূহত আছে ।',
 'customjsprotected' => 'এই জাভালিপিৰ পৃষ্ঠা সম্পাদনা কৰাৰ অধিকাৰ আপোনাৰ নাই, কাৰণ ইয়াত আন সদস্যৰ ব্যক্তিগত পছন্দসমূহত আছে ।',
+'mycustomcssprotected' => 'এই CSS পৃষ্ঠা সম্পাদনা কৰিবলৈ আপোনাৰ অনুমতি নাই।',
+'mycustomjsprotected' => 'এই JavaScript পৃষ্ঠা সম্পাদনা কৰিবলৈ আপোনাৰ অনুমতি নাই।',
 'ns-specialprotected' => 'বিশেষ পৃষ্ঠা সম্পাদিত কৰিব নোৱাৰি।',
 'titleprotected' => "[[User:$1|$1]] সদস্যজনে এই শিৰোনাণমাৰ লিখনী লিখা ৰোধ কৰিছে ।
 ইয়াৰ কাৰণ হৈছে ''$2'' ।",
@@ -718,7 +721,7 @@ $2',
 'cannotchangeemail' => 'এই ৱিকিত একাউন্ট ই-মেইল ঠিকনা সলনি কৰিব পৰা নাযায়',
 'emaildisabled' => 'এই ছাইটে ইমেইল পঠিয়াব নোৱাৰে',
 'accountcreated' => "একাউণ্ট সৃষ্টি কৰা হ'ল",
-'accountcreatedtext' => "$1ৰ কাৰণে সদস্য একাউণ্ট সৃষ্টি কৰা হ'ল।",
+'accountcreatedtext' => "[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]])ৰ কাৰণে সদস্য একাউণ্ট সৃষ্টি কৰা হ'ল।",
 'createaccount-title' => '{{SITENAME}}ৰ কাৰণে একাউণ্ট সৃষ্টি কৰক।',
 'createaccount-text' => 'আপোনাৰ ই-মেইল ঠিকনাৰ কাৰণে {{SITENAME}} ($4)ত "$2" নামৰ কোনোবাই, "$3" গুপ্তশব্দ দি সদস্যভুক্তি কৰিছে। অনুগ্ৰহ কৰি আপুনি প্ৰৱেশ কৰক আৰু গুপ্তশব্দটো সলনি কৰক।
 
@@ -756,11 +759,10 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'গুপ্তশব্দ ন-কৈ বহুৱাওক',
-'passwordreset-text' => ' আপোনাৰ গুপ্তশব্দ ন-কৈ বহুৱাবলৈ তলৰ প্ৰপত্ৰ সম্পূৰ্ণ কৰক।',
+'passwordreset-text-one' => 'আপোনাৰ গুপ্তশব্দ ন-কৈ বহুৱাবলৈ এই প্ৰপত্ৰ পূৰণ কৰক।',
 'passwordreset-legend' => 'গুপ্তশব্দ ন-কৈ বহাওক',
 'passwordreset-disabled' => 'এই ৱিকিত গুপ্তশব্দ নবীকৰণ নিষ্ক্ৰিয় কৰা হৈছে ।',
 'passwordreset-emaildisabled' => 'এই ৱিকিত ই-মেইল বৈশিষ্টসমূহ নিষ্ক্ৰিয় কৰা হৈছে।',
-'passwordreset-pretext' => '{{PLURAL:$1||তলত উল্লেখ কৰা তথ্যৰ কোনো অংশ ভৰাওক}}',
 'passwordreset-username' => 'সদস্যনাম',
 'passwordreset-domain' => 'ডমেইন :',
 'passwordreset-capture' => 'ফলাফল ই-মেইলখন চাবলৈ বিচাৰিছে ?',
@@ -1002,6 +1004,7 @@ $1ৰ দ্বাৰা এই অৱৰোধ কৰা হৈছে ।
 সম্ভৱতঃ পৃষ্ঠাখন বিলোপ কৰা হৈছে ।',
 'edit-conflict' => 'সম্পাদনা দ্বন্দ্ব ।',
 'edit-no-change' => 'আপোনাৰ সম্পাদনা আওকাণ কৰা হৈছে, কাৰণ লেখাত কোনো তফাৎ নাই',
+'postedit-confirmation' => "আপোনাৰ সম্পাদনা সংৰক্ষিত কৰা হ'ল ।",
 'edit-already-exists' => "নতুন পৃষ্ঠা সৃষ্টি কৰা নহ'ল ।
 পৃষ্ঠাখন ইতিমধ্যে আছেই ।",
 'defaultmessagetext' => 'সাধাৰণ বাৰ্তা পাঠ্য',
@@ -1254,7 +1257,6 @@ $1",
 'searchmenu-legend' => 'সন্ধান বিকল্পসমূহ',
 'searchmenu-exists' => 'এই ৱিকিত "[[:$1]]" নামৰ পৃষ্ঠা এখন আছে ।',
 'searchmenu-new' => "'''এই ৱিকিত \"[[:\$1]]\" পৃষ্ঠাখন সৃষ্টি কৰক!'''",
-'searchhelp-url' => 'Help:সমল',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|এই উপসৰ্গ থকা পৃষ্ঠাসমূহ ব্ৰাউজ কৰক]]',
 'searchprofile-articles' => 'বিষয়বস্তুৰ পৃষ্ঠা',
 'searchprofile-project' => 'সহায় আৰু প্ৰকল্প পৃষ্ঠাসমূহ',
@@ -1332,7 +1334,6 @@ $1",
 'resetprefs' => 'অসঞ্চিত সাল-সলনি বাতিল কৰক',
 'restoreprefs' => 'সকলো পূৰ্বনিৰ্ধাৰিত ছেটিং ঘূৰাই আনক',
 'prefs-editing' => 'সম্পাদন',
-'prefs-edit-boxsize' => "সম্পাদনা ৱিণ্ড'ৰ আকাৰ",
 'rows' => 'পথালী শাৰী:',
 'columns' => 'ঠিয় শাৰী:',
 'searchresultshead' => 'অনুসন্ধান',
@@ -1343,8 +1344,6 @@ $1",
 'recentchangesdays-max' => 'সৰ্বোচ্চ $1 {{PLURAL:$1|দিন|দিন}}',
 'recentchangescount' => 'শেহতীয়া সাল-সলনি, ইতিহাস আৰু লগ পৃষ্ঠাত দেখুৱাব লগা সম্পাদনাৰ সংখ্যা:',
 'prefs-help-recentchangescount' => 'ইয়াত শেহতীয়া সাল-সলনি, পৃষ্ঠাৰ ইতিহাস আৰু লগ অন্তৰ্ভুক্ত ।',
-'prefs-help-watchlist-token' => 'এই ঘৰটো এটা গোপন শব্দ চাবিৰে পূৰণ কৰিলে আপোনাৰ লক্ষ্য-তালিকাৰ বাবে এটা আৰ.এচ.এচ. ফিড তৈয়াৰ হ’ব । এই শব্দচাবি জনা সদস্যই আপোনাৰ লক্ষ্য-তালিকা চাব পাৰিব, সেয়ে এটা সুৰক্ষিত মান ব্যৱহাৰ কৰক ।
-আপুনি ব্যৱহাৰ কৰিব পৰাকৈ এটা যাদৃচ্ছিক মান দিয়া হ’ল: $1',
 'savedprefs' => 'আপোনাৰ পছন্দসমূহ সাঁচি ৰখা হ’ল।',
 'timezonelegend' => 'সময় স্থান:',
 'localtime' => 'স্থানীয় সময়:',
@@ -1375,7 +1374,6 @@ $1",
 'prefs-reset-intro' => 'আপুনি এই পৃষ্ঠা ব্যৱহাৰ কৰি আপোনাৰ পছন্দসমূহক চাইটৰ পূৰ্বনিৰ্ধাৰিত ছেটঙলৈ ঘূৰাই নিব পাৰে ।
 এই পৰিৱৰ্তন পিছত সলাব পৰা নাযাব ।',
 'prefs-emailconfirm-label' => 'ইমেইল নিশ্চিতকৰণ:',
-'prefs-textboxsize' => 'সম্পাদনা ৱিণ্ড’ৰ আকাৰ',
 'youremail' => 'আপোনাৰ ই-মেইল *',
 'username' => '{{GENDER:$1|সদস্যনাম}}:',
 'uid' => '{{GENDER:$1|User}} চিহ্ন:',
@@ -1443,6 +1441,7 @@ $1",
 'userrights-changeable-col' => 'আপুনি সলনি কৰিব পৰা গোটসমূহ',
 'userrights-unchangeable-col' => 'আপুনি সলনি কৰিব নোৱাৰা গোটসমূহ',
 'userrights-conflict' => 'সদস্য অধিকাৰ দ্বন্দ্ব! অনুগ্ৰহ কৰি আপোনাৰ সালসলনি আকৌ এবাৰ প্ৰয়োগ কৰক।',
+'userrights-removed-self' => 'আপুনি সফলতাৰে নিজৰ অধিকাৰসমূহ আঁতৰ কৰিলে। গতিকে আপুনি এতিয়া এই পৃষ্ঠা চাব নোৱাৰে।',
 
 # Groups
 'group' => 'গোট:',
@@ -1513,6 +1512,9 @@ $1",
 'right-editusercssjs' => 'আন সদস্যৰ CSS আৰু JavaScript  সম্পাদনা কৰক',
 'right-editusercss' => 'আন সদস্যৰ CSS ফাইল সম্পাদনা কৰক',
 'right-edituserjs' => 'আন সদস্যৰ JavaScript ফাইল  সম্পাদনা কৰক',
+'right-editmyusercss' => 'আপোনাৰ নিজৰ সদস্য CSS ফাইলসমূহ সম্পাদনা কৰক।',
+'right-editmyuserjs' => 'আপোনাৰ নিজৰ সদস্য JavaScript ফাইলসমূহ সম্পাদনা কৰক',
+'right-viewmywatchlist' => 'আপোনাৰ নিজৰ লক্ষ্য-তালিকা চাওক',
 'right-rollback' => 'শেষৰজন সদস্যই এখন নিৰ্দিষ্ট পৃষ্টাত কৰা সম্পাদনা পূৰ্বৰ অৱস্থালৈ ঘূৰাই আনক',
 'right-markbotedits' => 'ৰ’ল্ড-বেক সম্পাদনাসমূহ বট সম্পাদনা বুলি চিহ্নিত কৰক',
 'right-noratelimit' => 'গতি সীমাৰ দ্বাৰা প্ৰভাৱিত নহ’ব',
@@ -1616,7 +1618,6 @@ $1",
 'recentchangeslinked-feed' => 'প্ৰাসংগিক সালসলনিসমূহ',
 'recentchangeslinked-toolbox' => 'প্ৰাসংগিক সালসলনিসমূহ',
 'recentchangeslinked-title' => '"$1"ৰ লগত জড়িত সাল-সলনি',
-'recentchangeslinked-noresult' => 'দিয়া সময়ৰ ভিতৰত সংযোজিত পৃষ্ঠা সমূহত সাল-সলনি হোৱা নাই ।',
 'recentchangeslinked-summary' => "এখন নিৰ্দিষ্ট পৃষ্ঠাৰ লগত সংযুক্ত পৃষ্ঠাসমূহৰ( বা এটা নিৰ্দিষ্ট শ্ৰেণীৰ সদস্যসমূহৰ) শেহতীয়া সালসলনিৰ তালিকা তলত দিয়া হৈছে ।
 [[Special:Watchlist|আপুনি চকু ৰখা পৃষ্ঠাসমূহৰ তালিকা]] ত থকা পৃষ্ঠাসমূহ '''গাঢ়''' দেখা পাব ।",
 'recentchangeslinked-page' => 'পৃষ্ঠাৰ নাম:',
@@ -2181,7 +2182,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization চাওক।",
 'listusers-blocked' => '(বাৰণ কৰা)',
 
 # Special:ActiveUsers
-'activeusers' => 'সà¦\95à§\8dৰিয় à¦¬à§\8dযবহাৰকাৰীৰ তালিকা',
+'activeusers' => 'সà¦\95à§\8dৰিয় à¦¬à§\8dযৱহাৰকাৰীৰ তালিকা',
 'activeusers-intro' => 'যোৱা  {{PLURAL:$1|দিন|দিন}}ৰ ভিতৰত অৱদান আগবঢ়োৱা ব্যৱহাৰকাৰীৰ তালিকা',
 'activeusers-count' => 'যোৱা {{PLURAL:$3|দিনত|$3 দিনত}} সৰ্বমুঠ $1 {{PLURAL:$1|টা কাম}}',
 'activeusers-from' => 'ইয়াৰে আৰম্ভ হোৱা ব্যৱহাৰকাৰী সকল দেখুৱাওক:',
@@ -2264,7 +2265,6 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization চাওক।",
 'unwatchthispage' => 'চকু দিয়া বন্ধ কৰক',
 'notanarticle' => 'বিষয়বস্তু পৃষ্ঠা নহয়',
 'notvisiblerev' => 'অন্য কোনো সদস্যই কৰা সংশোধনী বিলোপ কৰা হৈছে',
-'watchnochange' => 'আপুনি চকু ৰখা আইটেমসমূহ প্ৰদৰ্শিত সময়সীমাৰ ভিতৰত সম্পাদনা কৰা হোৱা নাই ।',
 'watchlist-details' => 'আলোচনা পৃষ্ঠা সমূহ লেখত নধৰি {{PLURAL:$1|$1 খন পৃষ্ঠা|$1 খন পৃষ্ঠা}} আপোনাৰ লক্ষ্য-তালিকাত আছে ।',
 'wlheader-enotif' => 'ইমেইল জাননী সক্ৰিয় কৰা হৈছে।',
 'wlheader-showupdated' => "আপোনাৰ শেষ পৰিদৰ্শনৰ পিছত সলনি হোৱা পৃষ্ঠাসমূহ '''গাঢ়''' আখৰত দেখুওৱা হৈছে।",
@@ -2522,7 +2522,7 @@ $1',
 'mycontris' => 'বৰঙণিসমূহ',
 'contribsub2' => '$1 ৰ কাৰণে ($2)',
 'nocontribs' => 'এই গুণসমূহৰ লগত মিল থকা কোনো সালসলনি পোৱা নগ’ল ।',
-'uctop' => '(à¦\93পৰত)',
+'uctop' => '(বৰà§\8dতমান)',
 'month' => 'এই মাহৰ পৰা (আৰু আগৰ):',
 'year' => 'এই বছৰৰ পৰা (আৰু আগৰ):',
 
@@ -3064,6 +3064,7 @@ $2',
 'pageinfo-magic-words' => 'যাদুকৰী {{PLURAL:$1|শব্দ|শব্দবোৰ}} ($1)',
 'pageinfo-hidden-categories' => 'অদৃশ্য {{PLURAL:$1|শ্ৰেণী|শ্ৰেণীসমূহ}} ($1)',
 'pageinfo-templates' => 'সংযুক্ত {{PLURAL:$1|সাঁচ|সাঁচসমূহ}} ($1)',
+'pageinfo-transclusions' => '{{PLURAL:$1|পৃষ্ঠা|পৃষ্ঠাসমূহ}} ট্রান্সক্লুড কৰাৰ সময় ($1)',
 'pageinfo-toolboxlink' => 'পৃষ্ঠাখনৰ বিষয়ে তথ্য',
 'pageinfo-redirectsto' => 'পুনৰ্নিৰ্দেশ কৰা হৈছে',
 'pageinfo-redirectsto-info' => 'তথ্য',
@@ -3774,7 +3775,6 @@ $5
 'version-other' => 'অন্য',
 'version-mediahandlers' => 'মাধ্যম ব্যৱস্থাপকসমূহ',
 'version-hooks' => 'হুকসমূহ',
-'version-extension-functions' => 'সম্প্ৰসাৰন ফলনসমূহ',
 'version-parser-extensiontags' => 'পাৰ্চাৰ এক্সটেনচন টেগসমূহ',
 'version-parser-function-hooks' => 'পাৰ্চাৰ ফাংচন হুকসমূহ',
 'version-hook-name' => 'হুক নাম',
@@ -3801,6 +3801,7 @@ $5
 # Special:Redirect
 'redirect' => 'ফাইল, সদস্য, বা সংশোধন আই ডিৰে পুনঃনিৰ্দেশ',
 'redirect-legend' => 'এটা ফাইল বা এখন এখন পৃষ্ঠালৈ পুনঃনিৰ্দেশ',
+'redirect-summary' => 'এই বিশেষ পৃষ্ঠাটোৱে আপোনাক পুনঃনির্দেশিত কৰিছে অন্য এটা নথিপত্রলৈ (নথিপত্রৰ নাম), এটা পৃষ্ঠালৈ (পৃষ্ঠাৰ নাম), অথবা অন্য সদস্যৰ পৃষ্ঠালৈ(সংখ্যাৰে লিখা সদস্যৰ আইডি) ।',
 'redirect-submit' => 'যাওক',
 'redirect-lookup' => 'চাওক:',
 'redirect-value' => 'মূল্য:',
index 35b7d3f..1f1dc72 100644 (file)
  */
 
 $namespaceNames = array(
-       NS_MEDIA            => 'Media',
+       NS_MEDIA            => 'Medios',
        NS_SPECIAL          => 'Especial',
        NS_TALK             => 'Alderique',
        NS_USER             => 'Usuariu',
        NS_USER_TALK        => 'Usuariu_alderique',
        NS_PROJECT_TALK     => '$1_alderique',
-       NS_FILE             => 'Archivu',
-       NS_FILE_TALK        => 'Archivu_alderique',
+       NS_FILE             => 'Ficheru',
+       NS_FILE_TALK        => 'Ficheru_alderique',
        NS_MEDIAWIKI        => 'MediaWiki',
        NS_MEDIAWIKI_TALK   => 'MediaWiki_alderique',
        NS_TEMPLATE         => 'Plantía',
        NS_TEMPLATE_TALK    => 'Plantía_alderique',
-       NS_HELP             => 'Aida',
-       NS_HELP_TALK        => 'Aida_alderique',
+       NS_HELP             => 'Ayuda',
+       NS_HELP_TALK        => 'Ayuda_alderique',
        NS_CATEGORY         => 'Categoría',
        NS_CATEGORY_TALK    => 'Categoría_alderique',
 );
 
 $namespaceAliases = array(
-       'Imaxe' => NS_FILE,
-       'Imaxe alderique' => NS_FILE_TALK,
+       'Imaxe'               => NS_FILE,
+       'Imaxe alderique'     => NS_FILE_TALK,
        'Discusión'           => NS_TALK,
        'Usuariu_discusión'   => NS_USER_TALK,
        '$1_discusión'        => NS_PROJECT_TALK,
        'Imaxen'              => NS_FILE,
        'Imaxen_discusión'    => NS_FILE_TALK,
+       'Archivu'             => NS_FILE,
+       'Archivu_alderique'   => NS_FILE_TALK,
        'MediaWiki_discusión' => NS_MEDIAWIKI_TALK,
        'Plantilla'           => NS_TEMPLATE,
        'Plantilla_discusión' => NS_TEMPLATE_TALK,
-       'Ayuda'               => NS_HELP,
        'Ayuda_discusión'     => NS_HELP_TALK,
+       'Aida'                => NS_HELP,
+       'Aida_alderique'      => NS_HELP_TALK,
        'Categoría_discusión' => NS_CATEGORY_TALK,
 );
 
@@ -228,7 +231,7 @@ $messages = array(
 'vector-action-protect' => 'Protexer',
 'vector-action-undelete' => 'Restaurar',
 'vector-action-unprotect' => 'Camudar la proteición',
-'vector-simplesearch-preference' => 'Activar la barra de gueta simplificada (namái apariencia Vector)',
+'vector-simplesearch-preference' => 'Activar la barra de búsqueda simplificada (namái tema Vector)',
 'vector-view-create' => 'Crear',
 'vector-view-edit' => 'Editar',
 'vector-view-history' => 'Ver historial',
@@ -243,8 +246,8 @@ $messages = array(
 'returnto' => 'Tornar a $1.',
 'tagline' => 'De {{SITENAME}}',
 'help' => 'Ayuda',
-'search' => 'Guetar',
-'searchbutton' => 'Guetar',
+'search' => 'Buscar',
+'searchbutton' => 'Buscar',
 'go' => 'Dir',
 'searcharticle' => 'Dir',
 'history' => 'Historial de la páxina',
@@ -260,6 +263,7 @@ $messages = array(
 'create-this-page' => 'Crear esta páxina',
 'delete' => 'Desaniciar',
 'deletethispage' => 'Desaniciar esta páxina',
+'undeletethispage' => 'Restaurar esta páxina',
 'undelete_short' => 'Restaurar {{PLURAL:$1|una edición|$1 ediciones}}',
 'viewdeleted_short' => 'Ver {{PLURAL:$1|una edición desaniciada|$1 ediciones desaniciaes}}',
 'protect' => 'Protexer',
@@ -293,7 +297,7 @@ $messages = array(
 'protectedpage' => 'Páxina protexida',
 'jumpto' => 'Saltar a:',
 'jumptonavigation' => 'navegación',
-'jumptosearch' => 'guetar',
+'jumptosearch' => 'buscar',
 'view-pool-error' => "Sentímoslo, los sirvidores tán sobrecargaos nestos momentos.
 Hai demasiaos usuarios intentando ver esta páxina.
 Por favor espera un ratu enantes d'intentar otra vuelta entrar a esta páxina.
@@ -313,7 +317,6 @@ $1",
 'disclaimers' => 'Avisu llegal',
 'disclaimerpage' => 'Project:Avisu xeneral',
 'edithelp' => "Ayuda d'edición",
-'edithelppage' => 'Help:Cómo editar una páxina',
 'helppage' => 'Help:Conteníu',
 'mainpage' => 'Portada',
 'mainpage-description' => 'Portada',
@@ -463,6 +466,10 @@ $2",
 'namespaceprotected' => "Nun tienes permisu pa editar páxines nel espaciu de nomes '''$1'''.",
 'customcssprotected' => "Nun tienes permisu pa editar esta páxina CSS porque contién preferencies personales d'otru usuariu.",
 'customjsprotected' => "Nun tienes permisu pa editar esta páxina de JavaScript porque contién preferencies personales d'otru usuariu.",
+'mycustomcssprotected' => 'Nun tien permisu pa editar esta páxina CSS.',
+'mycustomjsprotected' => 'Nun tien permisu pa editar esta páxina JavaScript.',
+'myprivateinfoprotected' => 'Nun tien permisu pa editar la so información privada.',
+'mypreferencesprotected' => 'Nun tien permisu pa editar les sos preferencies.',
 'ns-specialprotected' => 'Les páxines especiales nun se puen editar.',
 'titleprotected' => "Esti títulu ta protexíu escontra creación por [[User:$1|$1]].
 El motivu conseñáu ye «''$2''».",
@@ -471,7 +478,7 @@ El motivu conseñáu ye «''$2''».",
 L'alministrador que lu bloquió dio esti motivu: «$3».",
 'invalidtitle-knownnamespace' => "Títulu inválidu col espaciu de nomes «$2» ya'l testu «$3»",
 'invalidtitle-unknownnamespace' => "Títulu inválidu col númberu $1 d'espaciu de nomes desconocíu ya'l testu «$2»",
-'exception-nologin' => 'Non identificáu',
+'exception-nologin' => 'Nun anició sesión',
 'exception-nologin-text' => "Esta páxina o aición necesita qu'anicies sesión nesta wiki.",
 
 # Virus scanner
@@ -490,6 +497,7 @@ Nun t'escaezas de camudar les tos [[Special:Preferences|preferencies de {{SITENA
 'yourname' => "Nome d'usuariu:",
 'userlogin-yourname' => "Nome d'usuariu",
 'userlogin-yourname-ph' => "Escriba'l so nome d'usuariu",
+'createacct-another-username-ph' => "Escriba'l nome d'usuariu",
 'yourpassword' => 'Contraseña:',
 'userlogin-yourpassword' => 'Contraseña',
 'userlogin-yourpassword-ph' => 'Escriba la so contraseña',
@@ -504,29 +512,31 @@ Nun t'escaezas de camudar les tos [[Special:Preferences|preferencies de {{SITENA
 'yourdomainname' => 'El to dominiu:',
 'password-change-forbidden' => 'Nun se pueden camudar les contraseñes nesta wiki.',
 'externaldberror' => "O hebo un fallu d'autenticación de la base de datos o nun tienes permisu p'anovar la to cuenta esterna.",
-'login' => 'Identificase',
-'nav-login-createaccount' => 'Identificase / crear una cuenta',
-'loginprompt' => 'Has tener les «cookies» activaes pa identificate en {{SITENAME}}.',
-'userlogin' => 'Identificase / crear una cuenta',
+'login' => 'Entrar',
+'nav-login-createaccount' => 'Entrar / crear cuenta',
+'loginprompt' => "Ha de tener les «cookies» activaes p'aniciar sesión en {{SITENAME}}.",
+'userlogin' => 'Entrar / crear cuenta',
 'userloginnocreate' => 'Aniciar sesión',
-'logout' => 'Colar',
-'userlogout' => 'Colar',
-'notloggedin' => 'Non identificáu',
+'logout' => 'Salir',
+'userlogout' => 'Salir',
+'notloggedin' => 'Nun anició sesión',
 'userlogin-noaccount' => '¿Nun tien una cuenta?',
 'userlogin-joinproject' => 'Xunise a {{SITENAME}}',
 'nologin' => '¿Nun tienes una cuenta? $1.',
 'nologinlink' => 'Crear una cuenta',
 'createaccount' => 'Crear una cuenta',
-'gotaccount' => '¿Ya tienes una cuenta? $1.',
-'gotaccountlink' => 'Identificase',
-'userlogin-resetlink' => "¿Escaecisti los datos d'identificación?",
+'gotaccount' => '¿Yá tienes una cuenta? $1.',
+'gotaccountlink' => 'Entrar',
+'userlogin-resetlink' => "¿Escaeció los datos d'accesu?",
 'userlogin-resetpassword-link' => 'Reaniciar la contraseña',
 'helplogin-url' => 'Help:Aniciar sesión',
 'userlogin-helplink' => "[[{{MediaWiki:helplogin-url}}|Ayuda p'aniciar sesión]]",
 'createacct-join' => 'Escriba abaxo la so información.',
+'createacct-another-join' => 'Escriba abaxo la información de la cuenta nueva.',
 'createacct-emailrequired' => 'Direición de corréu electrónicu',
 'createacct-emailoptional' => 'Direición de corréu electrónicu (opcional)',
 'createacct-email-ph' => 'Escriba la so direición de corréu electrónicu',
+'createacct-another-email-ph' => 'Escriba la direición de corréu electrónicu',
 'createaccountmail' => 'Usar una contraseña al debalu temporal y unviala a la direición de corréu electrónicu conseñada más abaxo',
 'createacct-realname' => 'Nome real (opcional)',
 'createaccountreason' => 'Motivu:',
@@ -535,6 +545,7 @@ Nun t'escaezas de camudar les tos [[Special:Preferences|preferencies de {{SITENA
 'createacct-captcha' => 'Comprobación de seguridá',
 'createacct-imgcaptcha-ph' => "Escriba'l testu qu'apaez arriba",
 'createacct-submit' => 'Crear la cuenta',
+'createacct-another-submit' => 'Crear otra cuenta',
 'createacct-benefit-heading' => '{{SITENAME}} failu xente como vusté.',
 'createacct-benefit-body1' => '{{PLURAL:$1|edición|ediciones}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|páxina|páxines}}',
@@ -545,13 +556,13 @@ Por favor escueyi un nome diferente.",
 'loginerror' => "Error d'aniciu de sesión",
 'createacct-error' => 'Error de creación de cuenta',
 'createaccounterror' => 'Nun se pudo crear la cuenta: $1',
-'nocookiesnew' => "La cuenta d'usuariu ta creada, pero nun aniciasti sesión.
+'nocookiesnew' => "La cuenta d'usuariu ta creada, pero nun anició sesión.
 {{SITENAME}} usa «cookies» pa identificar a los usuarios.
-Tienes les «cookies» desactivaes.
-Por favor activales y depués entra col to nome d'usuariu y clave nuevos.",
+Tien les «cookies» desactivaes.
+Por favor activeles y anicie sesión col nuevu nome d'usuariu y contraseña.",
 'nocookieslogin' => '{{SITENAME}} usa «cookies» pa identificar a los usuarios.
-Tienes les «cookies» desactivaes.
-Por favor activales y vuelvi a intentalo.',
+Tien les «cookies» desactivaes.
+Por favor activeles y vuelva a intentalo.',
 'nocookiesfornew' => "La cuenta nun se creó porque nun pudimos confirmar l'orixe.
 Comprueba que tienes activaes les «cookies», recarga esta páxina y vuelvi a intentalo.",
 'noname' => "Nun conseñasti un nome d'usuariu válidu.",
@@ -604,7 +615,7 @@ Por favor conseña una direición con formatu afayadizu o dexa baleru'l campu.",
 'cannotchangeemail' => 'Les direiciones de corréu electrónicu de la cuenta nun puen camudase nesta wiki.',
 'emaildisabled' => 'Esti sitiu nun pue unviar correos electrónicos.',
 'accountcreated' => 'Cuenta creada',
-'accountcreatedtext' => "Creóse la cuenta d'usuariu de $1.",
+'accountcreatedtext' => "Creóse la cuenta d'usuariu pa [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|alderique]]).",
 'createaccount-title' => 'Creación de cuenta pa {{SITENAME}}',
 'createaccount-text' => "Daquién creó una cuenta cola to direición de corréu electrónicu en {{SITENAME}} ($4) col nome «$2», y cola contraseña «$3».
 Agora tendríes d'aniciar sesión y camudar la contraseña.
@@ -613,7 +624,7 @@ Pues escaecer esti mensaxe si esta cuenta creóse por error.",
 'usernamehasherror' => "El nome d'usuariu nun pue contener caráuteres «hash»",
 'login-throttled' => "Ficisti demasiaos intentos d'aniciu de sesión recientes.
 Por favor espera enantes d'intentalo otra vuelta.",
-'login-abort-generic' => 'Falló la to identificación - Encaboxao',
+'login-abort-generic' => 'Falló la identificación - Encaboxao',
 'loginlanguagelabel' => 'Llingua: $1',
 'suspicious-userlogout' => "La to solicitú de zarrar sesión refugose porque paez qu'unvióla un restolador frañíu o un proxy de caché.",
 
@@ -645,11 +656,11 @@ Seique yá camudaras correutamente la contraseña o que pidieras una nueva contr
 
 # Special:PasswordReset
 'passwordreset' => 'Reaniciar contraseña',
-'passwordreset-text' => 'Complete esti formulariu pa reaniciar la contraseña.',
+'passwordreset-text-one' => 'Complete esti formulariu pa reaniciar la contraseña.',
+'passwordreset-text-many' => '{{PLURAL:$1|Rellene unu de los campos pa reaniciar la contraseña.}}',
 'passwordreset-legend' => 'Reaniciar contraseña',
 'passwordreset-disabled' => 'Los reanicios de contraseña tán desactivaos nesta wiki.',
 'passwordreset-emaildisabled' => 'Les funciones de corréu electrónicu tan desactivaes nesta wiki.',
-'passwordreset-pretext' => "{{PLURAL:$1||Escribi unu de los elementos de los datos d'abaxo}}",
 'passwordreset-username' => "Nome d'usuariu:",
 'passwordreset-domain' => 'Dominiu:',
 'passwordreset-capture' => '¿Ver el corréu electrónicu resultante?',
@@ -682,7 +693,7 @@ Contraseña temporal: $2",
 'changeemail' => 'Camudar la direición de corréu electrónicu',
 'changeemail-header' => 'Camudar la direición de corréu electrónicu de la cuenta',
 'changeemail-text' => "Rellena esti formulariu pa camudar la to direición de corréu electrónicu. Tendrás d'escribir la contraseña pa confirmar esti cambéu.",
-'changeemail-no-info' => "Has tar identificáu p'acceder direutamente a esta páxina.",
+'changeemail-no-info' => "Tien d'aniciar sesión pa entrar direutamente a esta páxina.",
 'changeemail-oldemail' => 'Direición de corréu electrónicu actual:',
 'changeemail-newemail' => 'Direición de corréu electrónicu nueva:',
 'changeemail-none' => '(nengún)',
@@ -720,8 +731,8 @@ Contraseña temporal: $2",
 'showpreview' => 'Amosar previsualización',
 'showlivepreview' => 'Vista rápida',
 'showdiff' => 'Amosar cambeos',
-'anoneditwarning' => "'''Avisu:''' Nun tas identificáu.
-La to direición IP va quedar grabada nel historial d'edición d'esta páxina.",
+'anoneditwarning' => "'''Avisu:''' Nun anició sesión.
+La direición IP quedará grabada nel historial d'edición d'esta páxina.",
 'anonpreviewwarning' => "''Nun aniciasti sesión. Al guardar quedará rexistrada la to direición IP nel historial d'edición d'esta páxina.''",
 'missingsummary' => "'''Recordatoriu:''' Nun conseñasti un resume d'edición.
 Si calques nuevamente \"{{int:savearticle}}\", la to edición guardaráse ensin nengún resume.",
@@ -780,15 +791,15 @@ Pa crear la páxina, empecipia a escribir nel cuadru d'embaxo (mira la [[{{Media
 Si llegasti equí por enquivocu, calca nel botón '''atrás''' del to restolador.",
 'anontalkpagetext' => "----
 ''Esta ye la páxina d'alderique pa un usuariu anónimu qu'inda nun creó una cuenta o que nun la usa.''
-Pola mor d'ello ha usase la direición numbérica IP pa identificalu/la.
-Tala IP pue ser compartida por varios usuarios.
-Si yes un usuariu anónimu y notes qu'hai comentarios irrelevantes empobinaos pa ti, por favor [[Special:UserLogin/signup|crea una cuenta]] o [[Special:UserLogin/signup|identifícate]] pa torgar futures confusiones con otros usuarios anónimos.",
+Poro, tenemos qu'usar la direición numbérica IP pa identificalu/la.
+Esa IP pue tar compartida por varios usuarios.
+Si ye un usuariu anónimu y cree qu'hai comentarios irrelevantes empobinaos a vusté, por favor, [[Special:UserLogin/signup|cree una cuenta]] o [[Special:UserLogin/signup|anicie sesión]] pa torgar futures confusiones con otros usuarios anónimos.",
 'noarticletext' => 'Nestos momentos nun hai testu nesta páxina.
-Pues [[Special:Search/{{PAGENAME}}|guetar esti títulu de páxina]] n\'otres páxines,
-<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} guetar los rexistros rellacionaos],
+Pue [[Special:Search/{{PAGENAME}}|buscar esti títulu de páxina]] n\'otres páxines,
+<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} buscar los rexistros rellacionaos],
 o [{{fullurl:{{FULLPAGENAME}}|action=edit}} editar esta páxina]</span>.',
 'noarticletext-nopermission' => 'Nestos momentos nun hai testu nesta páxina.
-Pues [[Special:Search/{{PAGENAME}}|guetar esti títulu de páxina]] n\'otres páxines o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} guetar los rexistros rellacionaos]</span>, pero nun tienes permisu pa crear esta páxina.',
+Pue [[Special:Search/{{PAGENAME}}|buscar esti títulu de páxina]] n\'otres páxines o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} buscar los rexistros rellacionaos]</span>, pero nun tiene permisu pa crear esta páxina.',
 'missing-revision' => 'La revisión #$1 de la páxina llamada "{{PAGENAME}}" nun esiste.
 
 De vezu la causa d\'esto ye siguir un enllaz antiguu del historial a una páxina que se desanició.
@@ -879,9 +890,9 @@ Pues volver atrás y editar una páxina esistente, o bien [[Special:UserLogin|an
 'nocreate-loggedin' => 'Nun tienes permisu pa crear páxines nueves.',
 'sectioneditnotsupported-title' => 'Nun hai sofitu pa editar seición',
 'sectioneditnotsupported-text' => 'La edición de seición nun tien sofitu nesta páxina.',
-'permissionserrors' => 'Errores de Permisos',
-'permissionserrorstext' => 'Nun tienes permisu pa facer eso {{PLURAL:$1|pol siguiente motivu|polos siguientes motivos}}:',
-'permissionserrorstext-withaction' => 'Nun tienes permisu pa $2 {{PLURAL:$1|pol siguiente motivu|polos siguientes motivos}}:',
+'permissionserrors' => 'Fallu de permisos',
+'permissionserrorstext' => 'Nun tien permisu pa facer eso {{PLURAL:$1|pol siguiente motivu|polos siguientes motivos}}:',
+'permissionserrorstext-withaction' => 'Nun tien permisu pa $2 {{PLURAL:$1|pol siguiente motivu|polos siguientes motivos}}:',
 'recreate-moveddeleted-warn' => "'''Avisu: Tas volviendo a crear una páxina que se desanició anteriormente.'''
 
 Habríes considerar si ye afechisco siguir editando esta páxina.
@@ -895,6 +906,7 @@ Nun dio esplicación.',
 Paez que se desanició.',
 'edit-conflict' => "Conflictu d'edición.",
 'edit-no-change' => "S'inoró la to edición, porque nun se fizo nengún cambéu nel testu.",
+'postedit-confirmation' => 'Guardose la edición.',
 'edit-already-exists' => 'Nun pudo crease una páxina nueva.
 Esta yá esiste.',
 'defaultmessagetext' => 'Testu predetermináu',
@@ -938,6 +950,7 @@ Por favor comprueba la comparanza d'abaxo pa confirmar que ye eso lo que quies f
 'undo-failure' => "Nun pudo esfacese la edición por aciu d'ediciones intermedies conflictives.",
 'undo-norev' => 'Nun se pudo esfacer la edición porque nun esiste o se desanició.',
 'undo-summary' => 'Esfacer la revisión $1 de [[Special:Contributions/$2|$2]] ([[User talk:$2|alderique]])',
+'undo-summary-username-hidden' => "Desfacer la revisión $1 d'un usuariu tapecíu",
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Nun pue crease la cuenta',
@@ -964,8 +977,8 @@ El motivu dau por $3 ye ''$2''",
 Lleenda: '''({{int:cur}})''' = diferencies cola versión actual, '''({{int:last}})''' = diferencies cola versión anterior, '''{{int:minoreditletter}}''' = edición menor.",
 'history-fieldset-title' => 'Navegar pel historial',
 'history-show-deleted' => 'Sólo desaniciaes',
-'histfirst' => 'Primera',
-'histlast' => 'Cabera',
+'histfirst' => 'lo más antiguo',
+'histlast' => 'lo más nuevo',
 'historysize' => '({{PLURAL:$1|1 byte|$1 bytes}})',
 'historyempty' => '(balero)',
 
@@ -1117,6 +1130,7 @@ Asegúrate de qu'esti cambéu caltenga la continuidá del históricu de la páxi
 'compareselectedversions' => 'Comparar les revisiones seleicionaes',
 'showhideselectedversions' => 'Amosar/anubrir les versiones seleicionaes',
 'editundo' => 'desfacer',
+'diff-empty' => '(Nun hai diferencies)',
 'diff-multi' => "({{PLURAL:$1|Nun s'amuesa 1 revisión intermedia|Nun s'amuesen $1 revisiones intermedies}} {{PLURAL:$2|d'un usuariu|de $2 usuarios}} )",
 'diff-multi-manyusers' => "({{PLURAL:$1|Nun s'amuesa una revisión intermedia|Nun s'amuesen $1 revisiones intermedies}} de más de $2 {{PLURAL:$2|usuariu|usuarios}})",
 'difference-missing-revision' => "{{PLURAL:$2|Nun s'alcontró|Nun s'alcontraron}} {{PLURAL:$2|una revisión|$2 revisiones}} d'esta diferencia ($1).
@@ -1125,8 +1139,8 @@ De vezu la causa d'esto ye siguir un enllaz de diferencia antiguu a una páxina
 Se puen alcontrar más detalles nel [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} rexistru de desanicios].",
 
 # Search results
-'searchresults' => 'Resultaos de la gueta',
-'searchresults-title' => 'Resultaos de guetar "$1"',
+'searchresults' => 'Resultaos de la busca',
+'searchresults-title' => 'Resultaos de buscar "$1"',
 'searchresulttext' => 'Pa más información tocante a busques en {{SITENAME}}, vete a [[{{MediaWiki:Helppage}}|{{int:help}}]].',
 'searchsubtitle' => 'Buscasti \'\'\'[[:$1]]\'\'\' ([[Special:Prefixindex/$1|toles páxines qu\'emprimen con "$1"]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|toles páxines qu\'enllacien a "$1"]])',
 'searchsubtitleinvalid' => "Buscasti '''$1'''",
@@ -1144,7 +1158,6 @@ Se puen alcontrar más detalles nel [{{fullurl:{{#Special:Log}}/delete|page={{FU
 'searchmenu-legend' => 'Opciones de busca',
 'searchmenu-exists' => "'''Hai una páxina nomada \"[[\$1]]\" nesta wiki'''",
 'searchmenu-new' => "'''¡Crear la páxina \"[[:\$1]]\" nesta wiki!'''",
-'searchhelp-url' => 'Help:Conteníos',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Restolar páxines con esti prefixu]]',
 'searchprofile-articles' => 'Páxines de conteníu',
 'searchprofile-project' => 'Páxines de proyeutu y ayuda',
@@ -1155,7 +1168,7 @@ Se puen alcontrar más detalles nel [{{fullurl:{{#Special:Log}}/delete|page={{FU
 'searchprofile-project-tooltip' => 'Buscar en $1',
 'searchprofile-images-tooltip' => 'Buscar ficheros',
 'searchprofile-everything-tooltip' => "Buscar tol conteníu (incluyendo páxines d'alderique)",
-'searchprofile-advanced-tooltip' => 'Guetar nos espacios de nomes personalizaos',
+'searchprofile-advanced-tooltip' => 'Buscar nos espacios de nomes personalizaos',
 'search-result-size' => '$1 ({{PLURAL:$2|1 pallabra|$2 pallabres}})',
 'search-result-category-size' => '{{PLURAL:$1|1 miembru|$1 miembros}} ({{PLURAL:$2|1 subcategoría|$2 subcategories}}, {{PLURAL:$3|1 ficheru|$3 ficheros}})',
 'search-result-score' => 'Relevancia: $1%',
@@ -1166,7 +1179,7 @@ Se puen alcontrar más detalles nel [{{fullurl:{{#Special:Log}}/delete|page={{FU
 'search-interwiki-default' => '$1 resultaos:',
 'search-interwiki-more' => '(más)',
 'search-relatedarticle' => 'Rellacionáu',
-'mwsuggest-disable' => 'Desactivar les suxerencies de gueta',
+'mwsuggest-disable' => 'Desactivar les suxerencies de busca',
 'searcheverything-enable' => 'Buscar en tolos espacios de nome',
 'searchrelated' => 'rellacionáu',
 'searchall' => 'toos',
@@ -1175,8 +1188,8 @@ Se puen alcontrar más detalles nel [{{fullurl:{{#Special:Log}}/delete|page={{FU
 'showingresultsheader' => "{{PLURAL:$5|Resultáu '''$1''' de '''$3'''|Resultaos '''$1 - $2''' de '''$3'''}} pa '''$4'''",
 'nonefound' => "'''Nota''': De mou predetermináu namái se busca en dellos espacios de nomes. Prueba a poner delantre de la to consulta ''all:'' pa buscar en tol conteníu (inxiriendo páxines d'alderique, plantíes, etc.), o usa como prefixu l'espaciu de nome deseáu.",
 'search-nonefound' => 'Nun hebo resultaos que casaren cola consulta.',
-'powersearch' => 'Gueta avanzada',
-'powersearch-legend' => 'Gueta avanzada',
+'powersearch' => 'Busca avanzada',
+'powersearch-legend' => 'Busca avanzada',
 'powersearch-ns' => 'Buscar nos espacios de nome:',
 'powersearch-redir' => 'Llistar redireiciones',
 'powersearch-field' => 'Buscar',
@@ -1185,14 +1198,14 @@ Se puen alcontrar más detalles nel [{{fullurl:{{#Special:Log}}/delete|page={{FU
 'powersearch-togglenone' => 'Dengún',
 'search-external' => 'Busca esterna',
 'searchdisabled' => "La busca en {{SITENAME}} ta desactivada. Mentanto, pues buscar en Google. Has fixate en que'l conteníu de los sos índices de {{SITENAME}} pue tar desfasáu.",
-'search-error' => 'Hebo un error al guetar: $1',
+'search-error' => 'Hebo un error al buscar: $1',
 
 # Preferences page
 'preferences' => 'Preferencies',
 'mypreferences' => 'Preferencies',
 'prefs-edits' => "Númberu d'ediciones:",
-'prefsnologin' => 'Non identificáu',
-'prefsnologintext' => 'Necesites tar <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} identificáu]</span> pa camudar les preferencies d\'usuariu.',
+'prefsnologin' => 'Nun anició sesión',
+'prefsnologintext' => 'Necesita <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} aniciar sesión]</span> pa camudar la configuración d\'usuariu.',
 'changepassword' => 'Camudar la clave',
 'prefs-skin' => 'Apariencia',
 'skin-preview' => 'Vista previa',
@@ -1219,10 +1232,9 @@ Se puen alcontrar más detalles nel [{{fullurl:{{#Special:Log}}/delete|page={{FU
 'resetprefs' => 'Llimpiar los cambios ensin guardar',
 'restoreprefs' => 'Restaurar tolos axustes predeterminaos',
 'prefs-editing' => 'Edición',
-'prefs-edit-boxsize' => "Tamañu de la ventana d'edición.",
 'rows' => 'Fileres:',
 'columns' => 'Columnes:',
-'searchresultshead' => 'Guetar',
+'searchresultshead' => 'Buscar',
 'resultsperpage' => 'Resultaos por páxina:',
 'stub-threshold' => 'Llímite superior pa considerar como <a href="#" class="stub">enllaz a entamu</a> (bytes):',
 'stub-threshold-disabled' => 'Desactivao',
@@ -1230,9 +1242,6 @@ Se puen alcontrar más detalles nel [{{fullurl:{{#Special:Log}}/delete|page={{FU
 'recentchangesdays-max' => '(máximo $1 {{PLURAL:$1|día|díes}})',
 'recentchangescount' => "Númberu d'ediciones p'amosar de mou predetermináu:",
 'prefs-help-recentchangescount' => 'Incluye los cambios recientes, los historiales de páxines y los rexistros.',
-'prefs-help-watchlist-token' => "Rellenando esti campu con una clave secreta se xenerará una canal RSS pa la to llista de vixilancia.
-Quien sepa la clave d'esti campu podrá lleer la to llista de vixilancia, poro, escueyi un valor seguru.
-Equí tienes un valor al debalu que pues usar: $1",
 'savedprefs' => 'Les tos preferencies quedaron grabaes.',
 'timezonelegend' => 'Estaya horaria:',
 'localtime' => 'Hora llocal:',
@@ -1252,7 +1261,7 @@ Equí tienes un valor al debalu que pues usar: $1",
 'timezoneregion-indian' => 'Océanu Índicu',
 'timezoneregion-pacific' => 'Océanu Pacíficu',
 'allowemail' => 'Dexar a los otros usuarios mandate correos',
-'prefs-searchoptions' => 'Guetar',
+'prefs-searchoptions' => 'Buscar',
 'prefs-namespaces' => 'Espacios de nome',
 'defaultns' => 'Sinón, buscar nestos espacios de nome:',
 'default' => 'predetermináu',
@@ -1263,7 +1272,6 @@ Equí tienes un valor al debalu que pues usar: $1",
 'prefs-reset-intro' => 'Pues usar esta páxina pa reaniciar les preferencies a los valores predeterminaos del sitiu.
 Esto nun se pue desfacer.',
 'prefs-emailconfirm-label' => 'Confirmación del corréu:',
-'prefs-textboxsize' => "Tamañu de la ventana d'edición",
 'youremail' => 'Corréu electrónicu:',
 'username' => "Nome d'{{GENDER:$1|usuariu|usuaria}}:",
 'uid' => 'ID {{GENDER:$1|del usuariu|de la usuaria}}:',
@@ -1294,7 +1302,9 @@ Esta información sedrá pública.",
 'prefs-signature' => 'Robla',
 'prefs-dateformat' => 'Formatu de data',
 'prefs-timeoffset' => 'Diferencia horaria',
-'prefs-advancedediting' => 'Opciones avanzaes',
+'prefs-advancedediting' => 'Xeneral',
+'prefs-editor' => 'Editor',
+'prefs-preview' => 'Vista previa',
 'prefs-advancedrc' => 'Opciones avanzaes',
 'prefs-advancedrendering' => 'Opciones avanzaes',
 'prefs-advancedsearchoptions' => 'Opciones avanzaes',
@@ -1325,11 +1335,12 @@ Esta información sedrá pública.",
 'userrights-reason' => 'Motivu:',
 'userrights-no-interwiki' => "Nun tienes permisu pa editar los derechos d'usuariu n'otres wikis.",
 'userrights-nodatabase' => 'La base de datos $1 nun esiste o nun ye llocal.',
-'userrights-nologin' => "Has tar [[Special:UserLogin|identificáu]] con una cuenta d'alministrador p'asignar derechos d'usuariu.",
+'userrights-nologin' => "Tien d'[[Special:UserLogin|aniciar sesión]] con una cuenta d'alministrador pa dar permisos d'usuariu.",
 'userrights-notallowed' => "La to cuenta nun tien permisu p'amestar o desaniciar permisos d'usuariu.",
 'userrights-changeable-col' => 'Grupos que pues camudar',
 'userrights-unchangeable-col' => 'Grupos que nun pues camudar',
 'userrights-conflict' => "¡Hai un conflictu de permisos d'usuariu! Por favor, vuelva a aplicar los cambios.",
+'userrights-removed-self' => 'Retiró correutamente los sos propios drechos. Poro, yá nun tendrá accesu a esta páxina.',
 
 # Groups
 'group' => 'Grupu:',
@@ -1373,7 +1384,7 @@ Esta información sedrá pública.",
 'right-reupload-shared' => 'Anular llocalmente archivos del depósitu compartíu multimedia',
 'right-upload_by_url' => 'Xubir un archivu dende una direición URL',
 'right-purge' => 'Purgar la caché del sitiu pa una páxina que nun tenga páxina de confirmación',
-'right-autoconfirmed' => 'Editar páxines semi-protexíes',
+'right-autoconfirmed' => 'Nun tar afeutáu por llendes de tasa basaes na IP',
 'right-bot' => 'Tratar como un procesu automatizáu',
 'right-nominornewtalk' => "Nun amosar l'avisu de nuevos mensaxes cuando se faen ediciones menores en páxines d'alderique",
 'right-apihighlimits' => 'Usar los llímites superiores nes consultes API',
@@ -1394,12 +1405,20 @@ Esta información sedrá pública.",
 'right-ipblock-exempt' => "Saltar los bloqueos d'IP, los autobloqueos y los bloqueos d'intervalu",
 'right-proxyunbannable' => 'Saltar los bloqueos automáticos de los proxys',
 'right-unblockself' => 'Desbloquiase ellos mesmos',
-'right-protect' => 'Camudar los niveles de proteición y editar páxines protexíes',
-'right-editprotected' => 'Editar les páxines protexíes (ensin proteición en cascada)',
+'right-protect' => 'Camudar los niveles de proteición y editar páxines protexíes en cascada',
+'right-editprotected' => 'Editar les páxines protexíes como "{{int:protect-level-sysop}}"',
+'right-editsemiprotected' => 'Editar les páxines protexíes como "{{int:protect-level-autoconfirmed}}"',
 'right-editinterface' => "Editar la interfaz d'usuariu",
 'right-editusercssjs' => "Editar los archivos CSS y JS d'otros usuarios",
 'right-editusercss' => "Editar los archivos CSS d'otros usuarios",
 'right-edituserjs' => "Editar los archivos JS d'otros usuarios",
+'right-editmyusercss' => "Editar los propios ficheros CSS d'usuariu",
+'right-editmyuserjs' => "Editar los propios ficheros JavaScript d'usuariu",
+'right-viewmywatchlist' => 'Ver la llista de vixilancia propia',
+'right-editmywatchlist' => 'Editar la llista de vixilancia propia. Tenga en cuenta que dalgunes aiciones amestarán páxines igual, inda ensin esti permisu.',
+'right-viewmyprivateinfo' => 'Ver los datos privaos propios (p. ex. direición de corréu, nome real)',
+'right-editmyprivateinfo' => 'Editar los datos privaos propios (p. ex. direición de corréu, nome real)',
+'right-editmyoptions' => 'Editar les preferencies propies',
 'right-rollback' => "Revertir rápido a un usuariu qu'editó una páxina determinada",
 'right-markbotedits' => 'Marcar les ediciones revertíes como ediciones de bot',
 'right-noratelimit' => 'Nun tar afeutáu polos llímites de tasa',
@@ -1461,12 +1480,17 @@ Esta información sedrá pública.",
 'action-userrights-interwiki' => "editar los drechos d'usuariu d'usuarios d'otres wikis",
 'action-siteadmin' => 'candar o descandar la base de datos',
 'action-sendemail' => 'unviar correos',
+'action-editmywatchlist' => 'editar la llista de vixilancia',
+'action-viewmywatchlist' => 'ver la llista de vixilancia propia',
+'action-viewmyprivateinfo' => 'ver la so información privada',
+'action-editmyprivateinfo' => 'editar la so información privada',
 
 # Recent changes
 'nchanges' => '{{PLURAL:$1|un cambiu|$1 cambios}}',
 'recentchanges' => 'Cambios recientes',
 'recentchanges-legend' => 'Opciones de cambios recientes',
 'recentchanges-summary' => 'Sigui los cambios más recientes na wiki nesta páxina.',
+'recentchanges-noresult' => 'Nengún cambiu nel periodu conseñáu coincide con esos criterios.',
 'recentchanges-feed-description' => 'Sigui nesta canal los últimos cambios de la wiki.',
 'recentchanges-label-newpage' => 'Esta edición creó una páxina nueva',
 'recentchanges-label-minor' => 'Esta ye una edición menor',
@@ -1503,7 +1527,6 @@ Esta información sedrá pública.",
 'recentchangeslinked-feed' => 'Cambios rellacionaos',
 'recentchangeslinked-toolbox' => 'Cambios rellacionaos',
 'recentchangeslinked-title' => 'Cambios rellacionaos con "$1"',
-'recentchangeslinked-noresult' => 'Nun hebo cambios nes páxines enllaciaes nel periodu conseñáu.',
 'recentchangeslinked-summary' => "Esta ye una llista de los caberos cambios fechos nes páxines enllaciaes dende una páxina determinada (o nos miembros d'una categoría determinada). Les páxines de [[Special:Watchlist|la to llista de vixilancia]] tán en '''negrina'''.",
 'recentchangeslinked-page' => 'Nome de la páxina:',
 'recentchangeslinked-to' => "Amosar los cambios de les páxines qu'enllacen en cuenta de los de la páxina dada",
@@ -1513,8 +1536,8 @@ Esta información sedrá pública.",
 'uploadbtn' => 'Xubir ficheru',
 'reuploaddesc' => 'Cancelar la xubida y tornar al formulariu de xubíes',
 'upload-tryagain' => 'Unviar descripción camudada del ficheru',
-'uploadnologin' => 'Non identificáu',
-'uploadnologintext' => 'Tienes que tar [[Special:UserLogin|identificáu]] pa poder xubir archivos.',
+'uploadnologin' => 'Nun anició sesión',
+'uploadnologintext' => "Tien d'$1 pa xubir ficheros.",
 'upload_directory_missing' => 'El direutoriu de xubida ($1) nun esiste y nun pudo ser creáu pol sirvidor de web.',
 'upload_directory_read_only' => "El sirvidor nun pue modificar el direutoriu de xubida d'archivos ($1).",
 'uploaderror' => 'Error de xubida',
@@ -1807,15 +1830,15 @@ Hai disponible una [[Special:WhatLinksHere/$2|llista completa]].",
 'morelinkstoimage' => 'Ver [[Special:WhatLinksHere/$1|más enllaces]] a esti archivu.',
 'linkstoimage-redirect' => '$1 (redireición de ficheru) $2',
 'duplicatesoffile' => "{{PLURAL:$1|El siguiente archivu ye un duplicáu|Los siguientes $1 archivos son duplicaos}} d'esti archivu ([[Special:FileDuplicateSearch/$2|más detalles]]):",
-'sharedupload' => "Esti ficheru ye de $1 y se pue usar n'otros proyeutos.",
+'sharedupload' => 'Esti ficheru ye de $1 y puen usalu otros proyeutos.',
 'sharedupload-desc-there' => 'Esti ficheru ye de $1 y puen usalu otros proyeutos.
 Llea la [páxina de descripción del ficheru $2] pa más información.',
 'sharedupload-desc-here' => "Esti ficheru ye de $1 y puen usalu otros proyeutos.
 La descripción de la [$2 páxina de descripción del ficheru] s'amuesa darréu.",
-'sharedupload-desc-edit' => "Esti ficheru ye de $1 y se pue usar n'otros proyeutos.
-Seique quieras camudar la descripción de la so [páxina de descripción de ficheru $2] allí.",
-'sharedupload-desc-create' => "Esti ficheru ye de $1 y se pue usar n'otros proyeutos.
-Seique quieras camudar la descripción de la so [páxina de descripción de ficheru $2] allí.",
+'sharedupload-desc-edit' => 'Esti ficheru ye de $1 y puen usalu otros proyeutos.
+Seique quieras camudar la descripción de la so [páxina de descripción de ficheru $2] allí.',
+'sharedupload-desc-create' => 'Esti ficheru ye de $1 y puen usalu otros proyeutos.
+Seique quieras camudar la descripción de la so [páxina de descripción de ficheru $2] allí.',
 'filepage-nofile' => 'Nun esiste dengún ficheru con esti nome.',
 'filepage-nofile-link' => 'Nun esiste ficheru dalu con esti nome, pero pues [$1 xubilu].',
 'uploadnewversion-linktext' => "Xubir una nueva versión d'esta imaxe",
@@ -2006,7 +2029,7 @@ Date cuenta de qu'otros sitios web puen enllazar a un ficheru con una URL direut
 'booksources' => 'Fontes de llibros',
 'booksources-search-legend' => 'Busca de fontes de llibros',
 'booksources-go' => 'Dir',
-'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 llibros que pueas tar guetando:",
+'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.',
 
 # Special:Log
@@ -2058,10 +2081,10 @@ Ver tamién les [[Special:WantedCategories|categoríes más buscaes]].",
 'sp-deletedcontributions-contribs' => 'collaboraciones',
 
 # Special:LinkSearch
-'linksearch' => "Gueta d'enllaces esternos",
+'linksearch' => "Busca d'enllaces esternos",
 'linksearch-pat' => 'Patrón de busca:',
 'linksearch-ns' => 'Espaciu de nomes:',
-'linksearch-ok' => 'Guetar',
+'linksearch-ok' => 'Buscar',
 'linksearch-text' => 'Se puen usar comodinos como "*.wikipedia.org".
 Necesita polo menos un dominiu de primer nivel, como "*.org".<br />
 {{PLURAL:$2|Protocolu almitíu|Protocolos almitíos}}: <code>$1</code> (el predetermináu ye http:// si nun se conseña dengún protocolu).',
@@ -2158,7 +2181,6 @@ Los futuro cambeos nesta páxina y na so páxina d\'alderique asociada apaecerá
 'unwatchthispage' => 'Dexar de vixilar',
 'notanarticle' => 'Nun ye un artículu',
 'notvisiblerev' => 'Esborróse la revisión',
-'watchnochange' => 'Nenguna de les tos páxines vixilaes foi editada nel periodu escoyíu.',
 'watchlist-details' => "{{PLURAL:$1|$1 páxina|$1 páxines}} na to llista de vixilancia ensin cuntar les páxines d'alderique.",
 'wlheader-enotif' => 'La notificación per corréu electrónicu ta activada.',
 'wlheader-showupdated' => "Les páxines que camudaron dende que les visitasti anteriormente amuesense en '''negrina'''",
@@ -2268,7 +2290,7 @@ daquién más yá editó o revirtió la páxina.
 La postrer edición foi fecha por [[User:$3|$3]] ([[User talk:$3|alderique]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "El resume de la edición yera: \"''\$1''\".",
 'revertpage' => 'Revertíes les ediciones de [[Special:Contributions/$2|$2]] ([[User talk:$2|alderique]]) hasta la cabera versión de [[User:$1|$1]]',
-'revertpage-nouser' => "Revertíes les ediciones de (nome d'usuariu desaniciáu) a la cabera revisión de [[User:$1|$1]]",
+'revertpage-nouser' => "Revertíes les ediciones d'un usuariu tapecíu a la cabera revisión de [[User:$1|$1]]",
 'rollback-success' => 'Revertíes les ediciones de $1; camudáu a la última versión de $2.',
 
 # Edit tokens
@@ -2384,7 +2406,7 @@ Consulta'l [[Special:Log/delete|rexistru d'esborraos]] pa ver los esborraos y re
 'undelete-search-title' => 'Buscar páxines desaniciaes',
 'undelete-search-box' => 'Buscar páxines desaniciaes',
 'undelete-search-prefix' => "Amosar páxines qu'empecipien por:",
-'undelete-search-submit' => 'Guetar',
+'undelete-search-submit' => 'Buscar',
 'undelete-no-results' => "Nun s'atoparon páxines afechisques a la busca nel archivu d'esborraos.",
 'undelete-filename-mismatch' => "Nun se pue restaurar la revisión del archivu con fecha $1: el nome d'archivu nun concuaya",
 'undelete-bad-store-key' => "Nun se pue restaurar la revisión del archivu con fecha $1: yá nun esistía l'archivu nel momentu d'esborralu.",
@@ -2432,7 +2454,7 @@ La cabera entrada del rexistru de bloqueos s'ufre darréu pa referencia:",
 'sp-contributions-search' => 'Buscar contribuciones',
 'sp-contributions-username' => "Direición IP o nome d'usuariu:",
 'sp-contributions-toponly' => 'Amosar namái les ediciones que son les caberes revisiones',
-'sp-contributions-submit' => 'Guetar',
+'sp-contributions-submit' => 'Buscar',
 
 # What links here
 'whatlinkshere' => "Lo qu'enllaza equí",
@@ -2518,7 +2540,7 @@ Mira na [[Special:BlockList|llista de bloqueos]] pa revisar los bloqueos.',
 'blocklist-by' => 'Alministración de bloqueos',
 'blocklist-params' => 'Parámetros de bloquéu',
 'blocklist-reason' => 'Motivu',
-'ipblocklist-submit' => 'Guetar',
+'ipblocklist-submit' => 'Buscar',
 'ipblocklist-localblock' => 'Bloquéu llocal',
 'ipblocklist-otherblocks' => '{{PLURAL:$1|Otru bloquéu|Otros bloqueos}}',
 'infiniteblock' => 'pa siempre',
@@ -2826,7 +2848,7 @@ Guárdalu nel ordenador y xúbilu equí.",
 'tooltip-pt-mycontris' => 'Llista de les tos collaboraciones',
 'tooltip-pt-login' => "T'encamentamos que t'identifiques, anque nun ye obligatorio",
 'tooltip-pt-anonlogin' => "T'encamentamos que t'identifiques, anque nun ye obligatorio.",
-'tooltip-pt-logout' => 'Colar',
+'tooltip-pt-logout' => 'Salir',
 'tooltip-ca-talk' => 'Alderique tocante al conteníu de la páxina',
 'tooltip-ca-edit' => "Pues editar esta páxina. Por favor usa'l botón de vista previa enantes de guardar los cambios.",
 'tooltip-ca-addsection' => 'Emprima una seición nueva',
@@ -2947,7 +2969,7 @@ Probablemente tea causao por un enllaz a un sitiu esternu de la llista prieta.',
 'pageinfo-length' => 'Llonxitú de la páxina (en bytes)',
 'pageinfo-article-id' => 'ID de la páxina',
 'pageinfo-language' => 'Llingua del conteníu de la páxina',
-'pageinfo-robot-policy' => 'Estáu del motor de gueta',
+'pageinfo-robot-policy' => 'Estáu del motor de busca',
 'pageinfo-robot-index' => 'Pue ser índiz',
 'pageinfo-robot-noindex' => 'Nun pue ser índiz',
 'pageinfo-views' => 'Númberu de visites',
@@ -3051,7 +3073,7 @@ Al executalu pues comprometer el to sistema.",
 'newimages-label' => "Nome d'archivu (o una parte d'él):",
 'showhidebots' => '($1 bots)',
 'noimages' => 'Nun hai nada que ver.',
-'ilsubmit' => 'Guetar',
+'ilsubmit' => 'Buscar',
 'bydate' => 'por fecha',
 'sp-newimages-showfrom' => "Amosar los archivos nuevos emprimando dende'l $1 a les $2",
 
@@ -3684,7 +3706,6 @@ Tamién pues [[Special:EditWatchlist|usar l'editor estándar]].",
 'version-other' => 'Otros',
 'version-mediahandlers' => "Remanadores d'archivos multimedia",
 'version-hooks' => 'Hooks',
-'version-extension-functions' => "Funciones d'estensiones",
 'version-parser-extensiontags' => "Etiquetes d'estensiones d'análisis",
 'version-parser-function-hooks' => "Hooks de les funciones d'análisis sintáuticu",
 'version-hook-name' => 'Nome del hook',
@@ -3723,7 +3744,7 @@ Tendría d'haber recibío [{{SERVER}}{{SCRIPTPATH}}/COPYING una copia de la Llic
 'fileduplicatesearch-summary' => 'Busca archivos duplicaos basándose nos sos valores fragmentarios.',
 'fileduplicatesearch-legend' => 'Buscar duplicaos',
 'fileduplicatesearch-filename' => 'Nome del ficheru:',
-'fileduplicatesearch-submit' => 'Guetar',
+'fileduplicatesearch-submit' => 'Buscar',
 'fileduplicatesearch-info' => '$1 × $2 píxeles<br />Tamañu del archivu: $3<br />Triba MIME: $4',
 'fileduplicatesearch-result-1' => 'L\'archivu "$1" nun tien duplicáu idénticu.',
 'fileduplicatesearch-result-n' => 'L\'archivu "$1" tien {{PLURAL:$2|un duplicáu idénticu|$2 duplicaos idénticos}}.',
@@ -3737,7 +3758,7 @@ Tendría d'haber recibío [{{SERVER}}{{SCRIPTPATH}}/COPYING una copia de la Llic
 * <span class="mw-specialpagecached">Páxines especiales en caché (seique nun tean actualizaes).</span>',
 'specialpages-group-maintenance' => 'Informes de mantenimientu',
 'specialpages-group-other' => 'Otres páxines especiales',
-'specialpages-group-login' => 'Identificase / crear cuenta',
+'specialpages-group-login' => 'Entrar / crear cuenta',
 'specialpages-group-changes' => 'Cambeos recientes y rexistros',
 'specialpages-group-media' => 'Informes multimedia y xubíes',
 'specialpages-group-users' => 'Usuarios y drechos',
@@ -3766,6 +3787,7 @@ Tendría d'haber recibío [{{SERVER}}{{SCRIPTPATH}}/COPYING una copia de la Llic
 'tags' => 'Etiquetes de cambiu válides',
 'tag-filter' => "Filtru d'[[Special:Tags|etiquetes]]:",
 'tag-filter-submit' => 'Peñera',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Etiqueta|Etiquetes}}]]: $2)',
 'tags-title' => 'Etiquetes',
 'tags-intro' => "Esta páxina llista les etiquetes coles que'l software pue marcar una edición, y el so significáu.",
 'tags-tag' => "Nome d'etiqueta",
@@ -3792,7 +3814,7 @@ Tendría d'haber recibío [{{SERVER}}{{SCRIPTPATH}}/COPYING una copia de la Llic
 'dberr-problems' => '¡Sentímoslo! Esti sitiu ta esperimentando dificultaes téuniques.',
 'dberr-again' => 'Tenta esperar dellos minutos y recargar.',
 'dberr-info' => '(Nun se pue contautar cola base de datos del sirvidor: $1)',
-'dberr-usegoogle' => 'Pues probar a guetar con Google mentanto.',
+'dberr-usegoogle' => 'Pue probar a buscar con Google mentanto.',
 'dberr-outofdate' => 'Atalanta que los sos índices del nuesu conteníu seique nun tean actualizaos.',
 'dberr-cachederror' => 'Esta ye una copia na caché de la páxina que se pidiera, y pue que nun tea actualizada.',
 
@@ -3812,8 +3834,8 @@ Tendría d'haber recibío [{{SERVER}}{{SCRIPTPATH}}/COPYING una copia de la Llic
 'htmlform-chosen-placeholder' => 'Seleicione una opción',
 
 # SQLite database support
-'sqlite-has-fts' => '$1 con sofitu pa gueta en testu completu',
-'sqlite-no-fts' => '$1 ensin sofitu pa gueta en testu completu',
+'sqlite-has-fts' => '$1 con sofitu pa busca de testu completu',
+'sqlite-no-fts' => '$1 ensin sofitu pa busca de testu completu',
 
 # New logging system
 'logentry-delete-delete' => '$1 {{GENDER:$2|desanició}} la páxina $3',
@@ -3868,7 +3890,7 @@ D\'otra miente, pues usar el formulariu cenciellu d\'abaxo. El to comentariu apa
 'feedback-bugnew' => "Yá lo comprobé. Informar d'esti fallu nuevu",
 
 # Search suggestions
-'searchsuggest-search' => 'Guetar',
+'searchsuggest-search' => 'Buscar',
 'searchsuggest-containing' => 'que contién...',
 
 # API errors
index fb2aa4d..b24826b 100644 (file)
@@ -311,7 +311,6 @@ $messages = array(
 'disclaimers' => 'Walzera',
 'disclaimerpage' => 'Project:Jadif walzereem',
 'edithelp' => 'Pomara',
-'edithelppage' => 'Help:Tokinde bubetat',
 'helppage' => 'Help:Pomara',
 'mainpage' => 'Emudexo',
 'mainpage-description' => 'Emudexo',
@@ -821,7 +820,6 @@ Ta ropasusu warzafu bu yo va [[Special:Search|aneyara ko wiki]] yawal.',
 'viewprevnext' => 'Va ($1 {{int:pipe-separator}} $2) ik ($3) disukel.',
 'searchmenu-exists' => "'''Ixam bu yoltkirafu gu \"[[:\$1]]\" dene bati wiki.'''",
 'searchmenu-new' => "'''Redura va bu \"[[:\$1]]\" den bati wiki!'''",
-'searchhelp-url' => 'Help:Pomara',
 'searchprofile-articles' => 'Teliz',
 'searchprofile-project' => 'Pomarabu ik abdumimaksbu',
 'searchprofile-images' => 'Jonkanaca',
@@ -886,7 +884,6 @@ Kan ''all:'' laganeyal ta varafa exulera (gon keyaksexo is teza ikz-), oke wetce
 'saveprefs' => 'Va lodamaceem tuená',
 'resetprefs' => 'Va lodamceem dimplekú',
 'prefs-editing' => 'Sutelaxo',
-'prefs-edit-boxsize' => 'Lum ke betaradilk.',
 'rows' => 'Emacekeem',
 'columns' => 'Brizeem',
 'searchresultshead' => 'Nedira va aneyaratrasikseem',
@@ -1087,7 +1084,6 @@ Rinafe e-mail mane me zo razdar viele ar webesik uzerar.',
 'recentchangeslinked-feed' => 'Gluyasikisuzdara',
 'recentchangeslinked-toolbox' => 'Gluyasikisuzdara',
 'recentchangeslinked-title' => 'Betakseem skedas va "$1"',
-'recentchangeslinked-noresult' => 'Meka betara va gluyasikikirafu bu remi bata rekola.',
 'recentchangeslinked-summary' => "Batu aptafu bu va ironokaf betakseem va gluyasikikirafu bu vexalar.
 Bu koe [[Special:Watchlist|rinafi suzdasiki]] tid '''vastaakorafu'''.",
 'recentchangeslinked-page' => 'Buyolt :',
@@ -1460,7 +1456,6 @@ Ta sulara va batu bu div rinafi suzdasiki, koe grablexo va « Mea suzdá » vule
 'unwatchthispage' => 'Va batu bu mea suzdá',
 'notanarticle' => 'Nedoy teliz',
 'notvisiblerev' => 'Betaks sulayan',
-'watchnochange' => 'Nedoyu rinafu suzdanu bu al zo betar bak bazena rekola',
 'watchlist-details' => '{{PLURAL:$1|$1 bu|$1 bu}} koe rinafi suzdasiki rade prilarabueem.',
 'wlheader-enotif' => 'Email walzera tir tegisa.',
 'wlheader-showupdated' => "Bu betayanu vielu rin ironokon worayal tir '''sulatcalakorafu'''.",
@@ -2330,7 +2325,6 @@ This confirmation code will expire at $4.',
 'version-variables' => 'Remvodeem',
 'version-other' => 'Ar',
 'version-hooks' => 'Demi se',
-'version-extension-functions' => 'Divatces fliok se',
 'version-parser-extensiontags' => 'Exulerafa divatcenafa tcala',
 'version-parser-function-hooks' => 'Exuleraflidemi',
 'version-hook-name' => 'Demiyolt',
index 3e90308..64a8247 100644 (file)
@@ -322,7 +322,6 @@ $1',
 'disclaimers' => 'Məsuliyyətdən imtina',
 'disclaimerpage' => 'Project:Məsuliyyətdən imtina',
 'edithelp' => 'Redaktə kömək',
-'edithelppage' => 'Help:Redaktə',
 'helppage' => 'Help:Mündəricat',
 'mainpage' => 'Ana Səhifə',
 'mainpage-description' => 'Ana Səhifə',
@@ -349,7 +348,6 @@ Bax: [[Special:Version|Versiyalar]].',
 'newmessagesdifflink' => 'Sonuncu və əvvəlki versiya arasındakı fərq',
 'youhavenewmessagesmulti' => '"$1"da yeni mesajınız var.',
 'editsection' => 'redaktə',
-'editsection-brackets' => '[$1]',
 'editold' => 'redaktə',
 'viewsourceold' => 'başlanğıc kodu nəzərdən keçir',
 'editlink' => 'redaktə',
@@ -583,10 +581,8 @@ Ola bilər siz parolu müvəffəqiyyətlə dəyişmisiniz yaxud müvəqqəti par
 
 # Special:PasswordReset
 'passwordreset' => 'Parolu yenilə',
-'passwordreset-text' => 'Akkauntunuz haqqında xatırlatmanı elektron poçt vasitəsilə ala bilməniz üçün bu formanı doldurun.',
 'passwordreset-legend' => 'Parolu yenilə',
 'passwordreset-disabled' => 'Yenidən qurulma parolu bu vikidə işləmir',
-'passwordreset-pretext' => '{{PLURAL:$1||Enter one of the pieces of data below}}',
 'passwordreset-username' => 'İstifadəçi adı:',
 'passwordreset-domain' => 'Domen:',
 'passwordreset-email' => 'E-mail ünvanı:',
@@ -731,6 +727,7 @@ Məlumat üçün aşağıda bu səhifənin tarixçəsindən müvafiq silmə qeyd
 Çox güman ki, səhifə silinmişdir.',
 'edit-conflict' => 'Düzəlişlər münaqişəsi',
 'edit-no-change' => 'Sizin redaktələr qeydə alınmamışdır. Belə ki, mətndə heç bir düzəliş edilməmişdir.',
+'postedit-confirmation' => 'Redaktəniz qeyd edildi.',
 'edit-already-exists' => 'Yeni səhifəni yaratmaq mümkün deyil.
 Belə ki, bu adda səhifə artıq mövcuddur.',
 
@@ -909,7 +906,6 @@ $1",
 'searchmenu-legend' => 'Axtarış kriteriyaları',
 'searchmenu-exists' => "'''Bu vikidə \"[[:\$1]]\" adında səhifə mövcuddur'''",
 'searchmenu-new' => "'''Bu vikidə \"[[:\$1]]\" səhifəsini yarat!'''",
-'searchhelp-url' => 'Help:Mündəricət',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Bu cür prefiksli səhifələri göstər]]',
 'searchprofile-articles' => 'Məqalələr',
 'searchprofile-project' => 'Kömək və Layihə səhifələri',
@@ -981,7 +977,6 @@ $1",
 'resetprefs' => 'Yarat',
 'restoreprefs' => 'Bütün nizamlamaları bərpa et',
 'prefs-editing' => 'Redaktə',
-'prefs-edit-boxsize' => 'Redaktə pəncərəsinin həcmi',
 'rows' => 'Sıralar:',
 'columns' => 'Sütunlar:',
 'searchresultshead' => 'Axtar',
@@ -992,9 +987,6 @@ $1",
 'recentchangesdays-max' => 'Maksimum $1 {{PLURAL:$1|gün|gün}}',
 'recentchangescount' => 'Son dəyişikliklərdə başlıq sayı:',
 'prefs-help-recentchangescount' => 'Buraya yeni dəyişikliklər, səhifələrin və jurnalların tarixçəsi daxildir.',
-'prefs-help-watchlist-token' => 'Bu sahəni gizli parolla doldurmağınız sizin izləmə siyahınız üçün RSS yayım kanalı yaradacaqdır.
-Bu parolu bilən hər kəs izləmə siyahınızı oxuya bilər, bu səbəbdən etibarlı parol seçin.
-Təsadüfi yolla seçilmiş bu paroldan istifadə edə bilərsiniz: $1',
 'savedprefs' => 'Seçiminiz qeyd edildi.',
 'timezonelegend' => 'Vaxt zonası:',
 'localtime' => 'Yerli vaxt:',
@@ -1023,7 +1015,6 @@ Təsadüfi yolla seçilmiş bu paroldan istifadə edə bilərsiniz: $1',
 'prefs-custom-js' => 'Xüsusi JavaScript',
 'prefs-common-css-js' => 'Bütün skinlər üçün ümumi CSS/JavaScript:',
 'prefs-emailconfirm-label' => 'E-poçtun təsdiqlənməsi:',
-'prefs-textboxsize' => 'Redaktə pəncərəsinin ölçüsü',
 'youremail' => 'E-məktub *',
 'username' => 'İstifadəçi adı:',
 'uid' => 'İstifadəçi ID:',
@@ -1251,7 +1242,6 @@ Həmçinin kimliyinizi gostərmədən belə, başqalarının sizinlə istifadə
 'recentchangeslinked-feed' => 'Əlaqəli redaktələr',
 'recentchangeslinked-toolbox' => 'Əlaqəli redaktələr',
 'recentchangeslinked-title' => "''$1'' ilə əlaqəli dəyişikliklər",
-'recentchangeslinked-noresult' => 'Qeyd olunan dövrdə əlaqədar səhifələrdə heç bir dəyişiklik yoxdur.',
 'recentchangeslinked-summary' => "Aşağıdakı siyahı, qeyd olunan səhifəyə (və ya qeyd olunan kateqoriyadakı səhifələrə) daxili keçid verən səhifələrdə edilmiş son dəyişikliklərin siyahısıdır.
 [[Special:Watchlist|İzləmə siyahınızdakı]] səhifələr '''qalın''' şriftlə göstərilmişdir.",
 'recentchangeslinked-page' => 'Səhifə adı:',
@@ -1715,7 +1705,6 @@ Fərdi hüquqlar haqqında əlavə məlumatı [[{{MediaWiki:Listgrouprights-help
 'unwatchthispage' => 'İzləmə',
 'notanarticle' => 'Səhifə boşdur',
 'notvisiblerev' => 'Başqa istifadıçinin son dəyişikliyi silinib',
-'watchnochange' => 'Verilən vaxt ərzində heç bir izlədiyiniz səhifə redaktə edilməmişdir.',
 'watchlist-details' => 'Müzakirə səhifələrini çıxmaq şərtilə {{PLURAL:$1|$1 səhifəni|$1 səhifəni}} izləyirsiniz.',
 'wlheader-enotif' => ' E-məktubla bildiriş aktivdir.',
 'wlheader-showupdated' => "Son ziyarətinizdən sonra edilən dəyişikliklər '''qalın şriftlərlə''' göstərilmişdir.",
@@ -2866,7 +2855,6 @@ Variants for Chinese language
 'version-skins' => 'Üzlük',
 'version-other' => 'Digər',
 'version-hooks' => 'Çəngəllər',
-'version-extension-functions' => 'Əlavə fubksiyalar',
 'version-hook-name' => 'Çəngəlin adı',
 'version-hook-subscribedby' => 'Abunə olan',
 'version-version' => '(Versiya $1)',
index 31e7d99..c727cbe 100644 (file)
@@ -192,6 +192,14 @@ $messages = array(
 'oct' => 'اوکتوبر',
 'nov' => 'نووامبر',
 'dec' => 'دئسامبر',
+'february-date' => '$1 فئوریه',
+'may-date' => '$1 مئی',
+'july-date' => '$1 ژولای',
+'august-date' => '$1 آقوست',
+'september-date' => '$1 سئپتامبر',
+'october-date' => '$1 اوکتوبر',
+'november-date' => '$1 نووامبر',
+'december-date' => '$1 دئسامبر',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|بؤلمه|بؤلمه‌لر}}',
@@ -273,6 +281,7 @@ $messages = array(
 'create-this-page' => 'بو صحیفه‌‌نی يارات',
 'delete' => 'سیل',
 'deletethispage' => 'بو صحیفه‌‌نی سیل',
+'undeletethispage' => 'بو صحیفه‌نی دیریلت',
 'undelete_short' => '{{PLURAL:$1|بیر دَییشیکلیگی|$1 دَییشیکلیگی}} برپا ائت',
 'viewdeleted_short' => '{{PLURAL:$1|بیر|$1}} سیلینمیش دَییشیکلیگی گؤستر',
 'protect' => 'قوروماق',
@@ -326,7 +335,6 @@ $1',
 'disclaimers' => 'رد ائتمک',
 'disclaimerpage' => 'Project:عمومی رد ائتمک',
 'edithelp' => 'ديَیشیکلیک‌لر اوچون یاردیم',
-'edithelppage' => 'Help:دَییشدیرمه',
 'helppage' => 'Help:ایچینده‌کیلر',
 'mainpage' => 'آنا صحیفه',
 'mainpage-description' => 'آنا صحیفه',
@@ -474,6 +482,10 @@ $2',
 'namespaceprotected' => "سیز '''$1''' آدفضاسینداکی صحیفه‌لرین دَییشمه‌سینه ایجازه‌نیز یوخدور.",
 'customcssprotected' => 'سیز بو CSS صفحه‌سینین دَییشمه‌سینه ایجازه‌نیز یوخدور نییه کی اون‌دا باشقا ایشلدنین شخصی تنظیملری واردیر.',
 'customjsprotected' => 'سیز بو جاوااسکریپت صفحه‌سینین دَییشمه‌سینه ایجازه‌نیز یوخدور، نییه کی اون‌دا باشقا ایشلدنین شخصی تنظیملری واردیر.',
+'mycustomcssprotected' => 'بو CSS صحیفه‌سینی دَییشدیرمگه ایجازه‌نیز یوخدور.',
+'mycustomjsprotected' => 'بو جاوااسکریپت صحیفه‌سینی دَییشدیرمگه ایجازه‌نیز یوخدور.',
+'myprivateinfoprotected' => 'اؤز گیزلی بیلگیلرینیزی دَییشدیرمگه ایجازه‌نیز یوخدور.',
+'mypreferencesprotected' => 'اؤز ترجیحلرینیزی دَییشدیرمگه ایجازه‌نیز یوخدور.',
 'ns-specialprotected' => 'اؤزل یارپاقلاری دَییشمک اولماز.',
 'titleprotected' => 'بو آددا یارپاغین یارادیلماسی [[User:$1|$1]] ایشلدن طرفیندن باغلانیب‌دیر.
 اونون نَدَن‌لیگی بودور: "\'\'$2\'\'"',
@@ -499,9 +511,18 @@ $2',
 'welcomecreation-msg' => 'حسابینیز آچیلدی.
 [[Special:Preferences|{{SITENAME}}ترجیحلر]] دییشدیرمیی اونوتمایین.',
 'yourname' => 'ایستیفاده‌چی آدی:',
+'userlogin-yourname' => 'ایستیفاده‌چی آدی',
+'userlogin-yourname-ph' => 'ایستیفاده‌چی آدینیزی دَییشدیرین',
 'yourpassword' => 'رمز:',
+'userlogin-yourpassword' => 'رمز',
+'userlogin-yourpassword-ph' => 'رمزینیزی داخیل ائدین',
+'createacct-yourpassword-ph' => 'بیر رمز داخیل ائدین',
 'yourpasswordagain' => 'رمزی یئنی‌دن یازین:',
+'createacct-yourpasswordagain' => 'رمزی دوغرولایین',
+'createacct-yourpasswordagain-ph' => 'رمزی یئنی‌دن داخیل ائدین',
 'remembermypassword' => 'بو بیلگی‌سایاردا منیم گیریشیمی (چوخو $1 {{PLURAL:$1|گون}}ه قدر) یاددا ساخلا',
+'userlogin-remembermypassword' => 'منی ایچری‌ده ساخلا',
+'userlogin-signwithsecure' => 'آرخایین باغلانتی ایشلدین',
 'securelogin-stick-https' => 'گیرندن سونرا، HTTPS-ه باغلی قال',
 'yourdomainname' => 'سیزین دامنه:',
 'password-change-forbidden' => 'بو ویکی‌ده رمزلری دَییشه بیلنمه‌سینیز.',
@@ -514,18 +535,38 @@ $2',
 'logout' => 'چیخیش',
 'userlogout' => 'چیخیش',
 'notloggedin' => 'گیرمه‌میسینیز',
+'userlogin-noaccount' => 'حسابینیز یوخدورمو؟',
+'userlogin-joinproject' => '{{SITENAME}}-ه قوشولون',
 'nologin' => 'حسابینیز یوخدومو؟ $1.',
 'nologinlink' => 'حساب یارات',
 'createaccount' => 'حساب یارات',
 'gotaccount' => 'اؤنجه‌دن حسابینیز وارمی؟ $1.',
 'gotaccountlink' => 'گیریش',
 'userlogin-resetlink' => 'گیریش بیلگیلرینیزی اونوتموسونوز؟',
+'userlogin-resetpassword-link' => 'رمزینیزی صیفیرلایین',
+'helplogin-url' => 'Help:ایچری گیرمک',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|ایچری گیرمگه یاردیم]]',
+'createacct-join' => 'آشاغیدا بیلگیلرینیزی داخیل ائدین.',
+'createacct-emailrequired' => 'ایمیل آدرسی',
+'createacct-emailoptional' => 'ایمیل آدرسی (ایستگه باغلی)',
+'createacct-email-ph' => 'ایمیل آدرسینیزی داخیل ائدین',
 'createaccountmail' => 'بیر گئچیجی راست‌گله رمز ایشلت و اونو آشاغیدا بللندیرن ایمیل آدرسینه گؤندر',
+'createacct-realname' => 'دوغرو آد (ایستگه باغلی)',
 'createaccountreason' => 'نَدَن‌لیک:',
+'createacct-reason' => 'سبب',
+'createacct-reason-ph' => 'ندن سیز باشقا حساب یارادیرسینیز',
+'createacct-captcha' => 'امنیت یوخلاماسی',
+'createacct-imgcaptcha-ph' => 'اوست‌ده‌کی گؤردوگونوز یازی‌نی داخیل ائدین',
+'createacct-submit' => 'حسابینیزی یارادین',
+'createacct-benefit-heading' => '{{SITENAME}} سیزین کیمی آدام‌لارین الی ایله یارانیب‌دیر.',
+'createacct-benefit-body1' => '{{PLURAL:$1|دَییشیکلیک}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|صحیفه}}',
+'createacct-benefit-body3' => 'سون {{PLURAL:$1|قاتیلان|قاتیلانلار}}',
 'badretype' => 'یازدیغینیز رمزلر بیر دئییل‌لر.',
 'userexists' => 'یازدیغینیز آد، اؤنجه‌دن ایشده‌دیر.
 لوطفاً باشقا بیر آد سئچین.',
 'loginerror' => 'گیریش خطاسی',
+'createacct-error' => 'حساب یاراتما خطاسی',
 'createaccounterror' => 'بو حساب یارادیلانمادیر: $1',
 'nocookiesnew' => 'ایستیفاده‌چی حسابی یارادیلدی، اما سیز گیرمه‌میسینیز.
 {{SITENAME}} ایستیفاده‌چیلری گیردیرمک اوچون، کوکی‌لری ایشلدیر.
@@ -581,7 +622,7 @@ $2',
 'cannotchangeemail' => 'حساب ایمیل آدرسلری بو ویکی‌ده دَییشیلنمزلر.',
 'emaildisabled' => 'بو سایت ایمیل گؤندرنمز.',
 'accountcreated' => 'حساب یارادیلدی',
-'accountcreatedtext' => '$1 ایستیفاده‌چی حسابی یارادیلیب‌دیر.',
+'accountcreatedtext' => '[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|دانیشیق]]) ایستیفاده‌چی حسابی یارادیلیب‌دیر.',
 'createaccount-title' => '{{SITENAME}} اوچون حساب یارادیلماسی',
 'createaccount-text' => 'بیر کس، سیزین ایمیل آدرسینیزه {{SITENAME}} ($4) سایتیندا «$2» آدی و «$3» رمزی ایله بیر حساب آچیب‌دیر. سیز گرک گیریش ائدیب و رمزینیزی ایندی دَییشدیره‌سیز.
 
@@ -615,13 +656,15 @@ $2',
 'resetpass-wrong-oldpass' => 'یانلیش گئچیجی یا ایندیکی رمز.
 اولا بیلر سیز باشاریلیق‌لا رمزینیزی دَییشمیسینیز یوخسا یئنی گئچرلی رمز ایسته‌میسینیز.',
 'resetpass-temp-password' => 'گئچیجی رمز:',
+'resetpass-abort-generic' => 'رمز دَییشدیرمک، بیر اوزانتی ایله یاریدا کسیلیب‌دیر.',
 
 # Special:PasswordReset
 'passwordreset' => 'رمزی یئنی‌له',
-'passwordreset-text' => 'رمزینیزی یئنیله‌مک اوچون بو فورمو دولدورون.',
+'passwordreset-text-one' => 'رمزینیزی صیفیرلاماق اوچون بو فورمو باشا چاتدیرین.',
+'passwordreset-text-many' => '{{PLURAL:$1|رمزینیزی صیفیرلاماق اوچون، بیرینی دولدورون.}}',
 'passwordreset-legend' => 'رمزی یئنی‌له',
 'passwordreset-disabled' => 'بو ویکی‌ده رمزی یئنی‌له‌مک باغلانیب‌دیر.',
-'passwordreset-pretext' => '{{PLURAL:$1|آشاغیداکی وئری پارچالارینین بیرینی وئرین}}',
+'passwordreset-emaildisabled' => 'ایمیل اؤزل‌لیکلری بو ویکی‌ده باغلانیب‌دیر.',
 'passwordreset-username' => 'ایستیفاده‌چی آدی:',
 'passwordreset-domain' => 'دامنه:',
 'passwordreset-capture' => 'سون نتیجه ایمیل گؤستریلسین؟',
@@ -644,7 +687,7 @@ $2
 گئچیجی رمز: $2',
 'passwordreset-emailsent' => 'بیر رمز یئنیله‌مه ایمیلی گؤندریلیب‌دیر.',
 'passwordreset-emailsent-capture' => 'آشاغیدا گؤستریلن کیمی بیر رمز یئنیله‌مه ایمیلی گؤندریلیب‌دیر.',
-'passwordreset-emailerror-capture' => 'آشاغیدا گؤستریلن کیمی بیر رمز یئنیله‌مه ایمیلی یارادیلیب‌دیر، اما ایستیفاده‌چی‌یه گؤندرمگی باشاریلی اولمادی: $1',
+'passwordreset-emailerror-capture' => 'آشاغیدا گؤستریلن کیمی بیر رمز یئنیله‌مه ایمیلی یارادیلیب‌دیر، اما {{GENDER:$2ایستیفاده‌چی}}‌یه گؤندرمگی باشاریلی اولمادی: $1',
 
 # Special:ChangeEmail
 'changeemail' => 'ایمیل آدرسینی دَییشدیر',
@@ -835,7 +878,7 @@ $2
 'nocreate-loggedin' => 'سیزین یئنی صحیفه‌لر یاراتماغا ایجازه‌نیز یوخدور.',
 'sectioneditnotsupported-title' => 'بؤلوم دییشدیرمه‌سی دستک‌لنمیر',
 'sectioneditnotsupported-text' => 'بو صحیفه‌ده بؤلوم دَییشدیرمه‌سی دستکلنمیر.',
-'permissionserrors' => 'اÛ\8cزÛ\8cÙ\86 خطاسی',
+'permissionserrors' => 'اÛ\8cجازÙ\87 خطاسی',
 'permissionserrorstext' => 'سیز آشاغیداکی {{PLURAL:$1|دلیل|دلیل‌لر}}ه گؤره، او ایشه ایجازه‌نیز یوخدور.',
 'permissionserrorstext-withaction' => 'سیز آشاغیداکی {{PLURAL:$1|دلیل|دلیل‌لر}}اوچون، $2 ایشینه ایجازه‌نیز یوخدور:',
 'recreate-moveddeleted-warn' => "'''دیقت: سیز اؤنجه‌ده سیلینمیش بیر صفحه‌نی یئنی‌دن یارادیرسینیز.'''
@@ -851,12 +894,14 @@ $2
 چوخ گومان کی، صحیفه سیلینمیش‌دیر.',
 'edit-conflict' => 'سیزله برابر دییشدیرمه',
 'edit-no-change' => 'سیزین دییشدیر قئیده آلینمامیش‌دیر. بئله کی، متنده هئچ بیر دییشدیر ائدیلممیش‌دیر.',
+'postedit-confirmation' => 'سیزین دَییشدیرمه‌نیز قئید اولونوب‌دور.',
 'edit-already-exists' => 'یئنی صحیفنی یاراتماق مومکون دئییل.
 بئله کی، بو آددا صحیفه آرتیق مؤوجوددور.',
 'defaultmessagetext' => 'دفالت دانیشیق متنی',
 'content-failed-to-parse' => 'تجزیه محتوای $2  مدل اوچون $1: $3 موفقیت اله گلمه دی',
 'invalid-content-data' => 'اعتبارسیز مضمون معلوماتی',
 'content-not-allowed-here' => '"$1" مقاله‌سینه، [[$2]] صحیفه‌سینده ایجازه وئریلممیش دیر.',
+'editwarning-warning' => 'بو صحیفه‌نی ترک ائتمک، دَییشدیرمه‌لرینیزی الدن وئرمگه سبب اولا بیلر. اگر گیریش ائتمیسینیز بو ایخطاری، ترجیحلرینیزین «دَییشدیرمک» بؤلوموندن، ایشدن سالا بیلرسینیز.',
 
 # Content models
 'content-model-wikitext' => 'ویکی‌یازی',
@@ -891,6 +936,7 @@ $2
 'undo-failure' => 'دییشیک‌لیک‌لرین توققوشماسی نتیجه‌سینده گئرییه قایتارما ایشی اوغورسوز اولدو.',
 'undo-norev' => 'دوزلیش‌لر گئری قایتاریلا بیلینمیر، چونکی اونلار یا مؤوجود دئییل، یا دا سیلینیب.',
 'undo-summary' => '$1 دییشیک‌لیک [[Special:Contributions/$2|$2]] ([[User talk:$2|دانیشیق]]) طرفین‌دن گئری آلیندی​​.',
+'undo-summary-username-hidden' => 'گیزلی ایستیفاده‌چی ایله ائدیلمیش $1 نوسخه‌سینی قایتارماق',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'حساب یارادماق اولمور',
@@ -917,8 +963,8 @@ $3 طرفین‌دن وئریلن سبب '$2",
 آچیقلاما:'''({{int:cur}})''' =سون نوسخه ایله فرقلر ، '''({{int:last}})''' = اؤنجه‌کی نوسخه ایله فرقلر، '''{{int:minoreditletter}}''' = کیچیک دییشیک‌لیک.",
 'history-fieldset-title' => 'گئچمیشی آختار',
 'history-show-deleted' => 'یالنیز سیلینَنلر',
-'histfirst' => 'ان قاباقکی',
-'histlast' => 'ان سونراکی',
+'histfirst' => 'ان اسکی',
+'histlast' => 'ان یئنی',
 'historysize' => '({{PLURAL:$1|بیر|$1}} بایت)',
 'historyempty' => '(بوش)',
 
@@ -1093,7 +1139,6 @@ $1",
 'searchmenu-legend' => 'آختارماق تنظیملری',
 'searchmenu-exists' => "'''بو ویکی‌ده «[[:$1]]» آدلی صحیفه واردیر.'''",
 'searchmenu-new' => "'''بو ویکی‌ده «[[:$1]]» صحیفه‌‌سینی يارات!'''",
-'searchhelp-url' => 'Help:ایچینده‌کیلر',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1| بو اؤن‌اک ایله اولان صحیفه‌لری آختار]]',
 'searchprofile-articles' => 'مقاله‌لر',
 'searchprofile-project' => 'یاردیم و پروژه صحیفه‌لری',
@@ -1136,6 +1181,7 @@ $1",
 'searchdisabled' => '{{SITENAME}} آختاریشی باغلانیب‌دیر.
 ایندی گوگل ایله آختارا بیلرسینیز.
 دیقت ائدین کی اونون {{SITENAME}} ایندئکسی، کؤهنه اولا بیلر.',
+'search-error' => 'آختاراندا بیر خطا قاباغا گلدی: $1',
 
 # Preferences page
 'preferences' => 'ترجیحلر',
@@ -1169,7 +1215,6 @@ $1",
 'resetprefs' => 'قئید ائدیلمه‌میش ترجیحلری صیفیرله',
 'restoreprefs' => 'بوتون ایلک ترجیحلری قایتار',
 'prefs-editing' => 'دَییشدیرمک‌ده',
-'prefs-edit-boxsize' => 'دَییشدیرمه پنجره‌سینین اؤلچو',
 'rows' => 'سطرلر:',
 'columns' => 'سوتونلار',
 'searchresultshead' => 'آختار',
@@ -1180,9 +1225,6 @@ $1",
 'recentchangesdays-max' => 'ماکسیموم $1 {{PLURAL:$1|گون |گون}}',
 'recentchangescount' => 'سون ديَیشیکلیکلرده باشلیق سايی:',
 'prefs-help-recentchangescount' => 'بورایا یئنی دییشیک‌لیک‌لر، صحیفه‌لرین و ژورنال‌لارین تاریخچه‌سی داخیل‌دیر.',
-'prefs-help-watchlist-token' => 'بو ساحنی گیزلی پاروللا دولدورماغینیز سیزین ایزلمه سیاهینیز اوچون آراس‌اس یاییم کانا‌لی یارادا‌جاق‌دیر.
-بو پارولو بیلن هر کس ایزلمه سیاهینیزی اوخویا بیلر، بو سبب‌دن اعتبارلی پارول سئچین.
-تصادفی یوللا سئچیلمیش بو پارول‌دان ایستیفاده ائده بیلرسینیز: $1',
 'savedprefs' => 'سئچیمینیز قئيد ائدیلدی.',
 'timezonelegend' => 'چاغ بؤلگه‌سی:',
 'localtime' => 'یئرلی چاغ:',
@@ -1213,7 +1255,6 @@ $1",
 'prefs-reset-intro' => 'ترجیحلرینیزی سایتین ایلک فرض ائدیلنلرینه دؤندرمک اوچون، بو صحیفه‌دن ایستیفاده ائده بیلرسینیز.
 بو ایش قایتاریلا بیلمز.',
 'prefs-emailconfirm-label' => 'ایمیل دوغرولاماسی:',
-'prefs-textboxsize' => 'دَییشدیرمه قوتوسونون اؤلچو',
 'youremail' => 'ایمیل:',
 'username' => '{{GENDER:$1|ایستیفاده‌چی آدی}}:',
 'uid' => '{{GENDER:$1|ایستیفاده‌چی}} ID:',
@@ -1247,7 +1288,9 @@ $1",
 'prefs-signature' => 'ایمضا',
 'prefs-dateformat' => 'تاریخ فورمتی',
 'prefs-timeoffset' => 'ساعات قورشاغینین فرقی',
-'prefs-advancedediting' => 'گلیشمیش سئچَنکلر',
+'prefs-advancedediting' => 'عمومی',
+'prefs-editor' => 'دَییشدیرن',
+'prefs-preview' => 'اؤن‌گؤستریش',
 'prefs-advancedrc' => 'گلیشمیش سئچَنکلر',
 'prefs-advancedrendering' => 'گلیشمیش سئچَنکلر',
 'prefs-advancedsearchoptions' => 'گلیشمیش سئچَنکلر',
@@ -1282,6 +1325,8 @@ $1",
 'userrights-notallowed' => 'سیزین ایستیفاده‌چی حسابینیزا دیگر ایستیفاده‌چی‌لره حقوق‌لار وئرمک و یا آلماغا ایجازه وئریلمه‌ییب.',
 'userrights-changeable-col' => 'ديَیشدیره بیلدیگینیز قروپلار',
 'userrights-unchangeable-col' => 'ديَیشدیره بیلمه‌دیگینیز قروپلار',
+'userrights-conflict' => 'ایستیفاده‌چی حاقلاری توققوشماسی! لوطفاً دَییشدیرمه‌لرینیزی یئنی‌دن ائدین.',
+'userrights-removed-self' => 'سیز باشاریلیق‌لا اؤز حاق‌لارینیزی قالدیردینیز. اونا گؤره داها بو صحیفه‌یه یول تاپماغا قادیر دئییل‌سینیز.',
 
 # Groups
 'group' => 'قروپ:',
@@ -1325,7 +1370,7 @@ $1",
 'right-reupload-shared' => 'عمومی آنبارها اولان فایل‌لاری، محلی اولاراق ابطال ائت',
 'right-upload_by_url' => 'فایل‌لاری بیر اینترنت آدرسیندن یوکله',
 'right-purge' => 'بیر صحیفه‌نین کَشینی، دوغرولانمامیش سیل',
-'right-autoconfirmed' => 'یاریم‌قورونموش صحیفه‌لری دَییشدیر',
+'right-autoconfirmed' => 'آی‌پی اساس‌لی سورعت سینیزلاری ایله تأثیر گؤرمز.',
 'right-bot' => 'بیر اوتوماتیک پروسئس کیمی حساب اولون',
 'right-nominornewtalk' => 'دانیشیق صحیفه‌لرده کیچیک دَییشیکلیک، یئنی مئساژ یارادماسین',
 'right-apihighlimits' => 'API سورغولاریندا، یوخاری محدودیتلر ایشلد',
@@ -1346,12 +1391,20 @@ $1",
 'right-ipblock-exempt' => 'آی‌پی باغلاماقلاری، اوتوماتیک باغلاماقلاری و سیرا باغلاماقلاریندان گئچ',
 'right-proxyunbannable' => 'پروکسیلرین اوتوماتیک باغلاماقلاریندان گئچ',
 'right-unblockself' => 'اؤزلرینی آچسینلار',
-'right-protect' => 'قوروماق سطحینی و قورونموش صحیفه‌لری دَییشدیر',
-'right-editprotected' => 'قورونموش صحیفه‌لری (قورونماقلاری مونتشیر اولمایان) دَییشدیر',
+'right-protect' => 'قوروماق سطحینی و شلاله‌لی قورونموش صحیفه‌لری دَییشدیر',
+'right-editprotected' => '«{{int:protect-level-sysop}}» جوره قورونموش صحیفه‌لری دَییشدیر',
+'right-editsemiprotected' => '«{{int:protect-level-autoconfirmed}}» جوره قورونموش صحیفه‌لری دَییشدیر',
 'right-editinterface' => 'ایستیفاده‌چی آرا-اوزونو دَییشدیر',
 'right-editusercssjs' => 'باشقا ایستیفاده‌چیلرین سی‌اس‌اس و جاوااسکریپت فایل‌لارینی دَییشدیر',
 'right-editusercss' => 'باشقا ایستفاده‌چیلرین سی‌اس‌اس فایل‌لارینی دَییشدیر',
 'right-edituserjs' => 'باشقا ایستیفاده‌چیلرین جاوااسکریپت فایل‌لارینی دَییشدیر',
+'right-editmyusercss' => 'اؤز ایستیفاده‌چی CSS فایل‌لارینی دَییشدیر',
+'right-editmyuserjs' => 'اؤز ایستیفاده‌چی جاوااسکریپت فایل‌لارینی دَییشدیر',
+'right-viewmywatchlist' => 'اؤز ایزله‌دیکلرینی گؤر',
+'right-editmywatchlist' => 'اؤز ایزله‌دیکلرینی دَییشدیر. دیقت ائدین بعضی ایشلر حتی بو حاقسیزلیق ایله ده صحیفه آرتیراجاقلار.',
+'right-viewmyprivateinfo' => 'اؤز گیزلی بیلگیلرینی گؤر (میثال اوچون ایمیل آدرسی، دوغرو آد)',
+'right-editmyprivateinfo' => 'اؤز گیزلی بیلگیلرینی دَییشدیر (میثال اوچون ایمیل آدرسی، دوغرو آد)',
+'right-editmyoptions' => 'اؤز ترجیحلرینی دَییشدیر',
 'right-rollback' => 'بیر خاص صحیفه‌نی سون دفعه دَییشدیرن ایستیفاده‌چینین دَییشیکلیکلرینی تئزلیکله قایتار',
 'right-markbotedits' => 'قایتاریلان دَییشیکلیکلری، بوت دَییشیکلیگی اولاراق نیشانلا',
 'right-noratelimit' => 'سورعت محدودیتلریندن گئچ',
@@ -1413,12 +1466,17 @@ $1",
 'action-userrights-interwiki' => 'باشقا ویکیلرده‌کی ایستیفاده‌چیلرین ایستیفاده‌چی حاقلارینی دَییشدیر',
 'action-siteadmin' => 'دیتابیسی قیفیل‌لا یا قیفیلینی آچ',
 'action-sendemail' => 'ایمیل گؤندر',
+'action-editmywatchlist' => 'ایزله‌دیکلرینی دَییشدیر',
+'action-viewmywatchlist' => 'ایزله‌دیکلرینی گؤر',
+'action-viewmyprivateinfo' => 'گیزلی بیلگیلرینی گؤر',
+'action-editmyprivateinfo' => 'گیزلی بیلگیلرینی دَییشدیر',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|دَییشیکلیک}}',
 'recentchanges' => 'سون دَییشیکلیکلر',
 'recentchanges-legend' => 'سون دَییشیکلیکلر سئچمه‌لری',
 'recentchanges-summary' => 'بو صحیفه‌ده، بو ویکی‌ده وئریلن ان سون دَییشیکلیکلری ایزله‌یین.',
+'recentchanges-noresult' => 'وئریلمیش دؤنم‌ده، بو معیارلارا تطبیق اولان دَییشدیرمه یوخدور.',
 'recentchanges-feed-description' => 'ویکی‌ده‌کی ان سون ديَیشیکلیک‌لری بو يايیم کانالیندان ایزله‌يین.',
 'recentchanges-label-newpage' => 'بو دییشیک یئنی بیر صحیفه یاراتدی',
 'recentchanges-label-minor' => 'بو بیر کیچیک دَییشدیرمه‌دیر',
@@ -1455,7 +1513,6 @@ $1",
 'recentchangeslinked-feed' => 'ایلگیلی دَییشیکلیکلر',
 'recentchangeslinked-toolbox' => 'ایلگیلی دَییشیکلیکلر',
 'recentchangeslinked-title' => "''$1'' ایله ایلگی‌لی دییشیکلر",
-'recentchangeslinked-noresult' => 'قئيد اوْلونان دؤورده ایلگیلی صحیفه‌‌لرده هئچ بیر ديَیشیکلیک يوْخدور.',
 'recentchangeslinked-summary' => "آشاغیداکی سیياهی، قئيد اوْلونان صحیفه‌‌يه (و يا قئيد اوْلونان کاتئقوْرياداکی صحیفه‌‌لره) داخیلی کئچید وئرن صحیفه‌‌لرده ائدیلمیش سوْن ديَیشیکلیکلرین سیياهیسیدیر. 
 [[Special:Watchlist|ایزله‌مه سیياهینیزداکی]] صحیفه‌‌لر '''قالین''' شریفتله گؤستریلمیشدیر.",
 'recentchangeslinked-page' => 'صحیفه آدی:',
@@ -1467,7 +1524,7 @@ $1",
 'reuploaddesc' => 'يوکلئمئ فورمونا گئری دؤن.',
 'upload-tryagain' => 'ديَشدیریلمیش فايل ایضاهینی گؤندر',
 'uploadnologin' => 'گیریش ائتمه‌میسینیز',
-'uploadnologintext' => 'فايل يوکله‌مک اوچون [[Special:UserLogin|گیریش ائتمه‌میسینیز]].',
+'uploadnologintext' => 'فايل يوکله‌مک اوچون گرک $1.',
 'upload_directory_missing' => '($1) یوکلمه قایداسی آختاریلیر و وئبسئروئرده یارادیلماسی قئیری-مومکون‌دور.',
 'upload_directory_read_only' => '"$1" کاتالوقونون آرشیوی وئب-سئروئر یازی‌لاری اوچون باغلی‌دیر.',
 'uploaderror' => 'یوکلمه خطاسی',
@@ -2102,9 +2159,8 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سین
 'unwatchthispage' => 'صحیفه ایزلمیی دایان‌دیر',
 'notanarticle' => 'مضمون صحیفه‌سی دئییل',
 'notvisiblerev' => 'باشقا ایستیفادی‌چی‌نین سون دییشیک‌لیگی سیلینیب',
-'watchnochange' => 'گؤستریلن واخت‌دا هئچ بیر ایزله‌دیگینیز صحیفه دَییشدیریلمه‌ییبدیر.',
 'watchlist-details' => 'دانیشیق صفحه‌لرینی سایمایاراق، {{PLURAL:$1|$1 صفحه‌نی}} ایزله‌ییرسینیز.',
-'wlheader-enotif' => 'ایمیل مکتوبلا بیلدیریش اولا بیلر.',
+'wlheader-enotif' => 'ایمیل ایله بیلدیریش آچیلیب‌دیر.',
 'wlheader-showupdated' => "سون گؤروشونوزدن سونرا ائدیلن دییشیکلیکلر '''قالین''' گؤستریلیبدیلر.",
 'watchmethod-recent' => 'یئنی دییشیک‌لیک‌لر ایزلنیلن صحیفه‌لر اوچون یوخلانیلیر',
 'watchmethod-list' => 'ایزلنیلن صحیفه‌لر یئنی دییشیک‌لیک‌لر اوچون یوخلانیلیر',
@@ -2207,7 +2263,7 @@ $نئwپاگئ
 سون دییشیک‌لیگی ائدن: [[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]] طرفین‌دن ائدیلمیش دییشیک‌لیک‌لره قایتاریلدی.',
-'revertpage-nouser' => '(ایستیفاده‌چی آدی چیخاریلمیش) طرفین‌دن ائدیلن دییشیک‌لیک‌لر [[User:$1|$1]] طرفین‌دن ائدیلن سون دییشیک‌لییه گئری آلیندی',
+'revertpage-nouser' => '[[User:$1|$1]] ایله ائدیلمیش سون نوسخه‌یه، بیر گیزلی ایستیفاده‌چی طرفین‌دن قایتاریلان دییشیکلیک‌لر',
 'rollback-success' => '$1 طرفین‌دن ائدیلمیش دییشدیر‌لر گئری قایتاریلدی؛ $2 طرفین‌دن یارادیلمیش سون وئرسیا برپا اولوندو.',
 
 # Edit tokens
@@ -2350,7 +2406,7 @@ $1',
 'mycontris' => 'چالیشمالار',
 'contribsub2' => '$1 اوچون ($2)',
 'nocontribs' => 'بو موشخصاتا اویغون دییشدیر تاپیلمادی',
-'uctop' => '(یوخاری)',
+'uctop' => '(ایندیکی)',
 'month' => 'بو آی‌دان (و اؤنجه‌سی):',
 'year' => 'بو ایل‌دن (و اؤنجه‌سی):',
 
@@ -2673,6 +2729,8 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 'thumbnail-more' => 'بؤیوت',
 'filemissing' => 'فایل تاپیلمادی',
 'thumbnail_error' => 'کیچیک شکیل یاراتما خطاسی: $1',
+'thumbnail_error_remote' => '$1 طرفین‌دن خطا مئساژی:
+$2',
 'djvu_page_error' => 'DjVu صحیفه‌سی الچاتمازدیر',
 'djvu_no_xml' => 'DjVu اوچون XML فایلی آلماق مومکون دئییل.',
 'thumbnail-temp-create' => 'ائلمک اولماز بارماق اولچوسوجه موقت فایل دوزتمک اولا',
@@ -2969,11 +3027,25 @@ $1',
 'minutes' => '{{PLURAL:$1|$1 دقیقه}}',
 'hours' => '{{PLURAL:$1|$1 ساعت |$1 ساعت}}',
 'days' => '{{PLURAL:$1|$1 گون |$1 گون}}',
+'weeks' => '{{PLURAL:$1|$1 هفته}}',
 'months' => '{{PLURAL:$1|$1}} آی',
 'years' => '{{PLURAL:$1|$1}} ایل',
 'ago' => '$1 اؤنجه',
 'just-now' => 'ایندی',
 
+# Human-readable timestamps
+'hours-ago' => '$1 {{PLURAL:$1|ساعات|اؤنجه}}',
+'minutes-ago' => '$1 {{PLURAL:$1|دقیقه}} اؤنجه',
+'seconds-ago' => '$1 {{PLURAL:$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
 'bad_image_list' => 'فورمت بئله اولمالیدیر:
 
@@ -3569,7 +3641,6 @@ $5
 'version-other' => 'آیری',
 'version-mediahandlers' => 'مئدیا ایشلدنلری',
 'version-hooks' => 'چنگل‌لر',
-'version-extension-functions' => 'علاوه‌‌ فوبکسیيالار',
 'version-parser-extensiontags' => 'آیریشدیران گنیشلندیرمه اِتیکِتلری',
 'version-parser-function-hooks' => 'آیریشدیران فونکسیا چنگل‌لری',
 'version-hook-name' => 'چنگه‌لین آدی',
@@ -3591,6 +3662,18 @@ $5
 'version-entrypoints-header-entrypoint' => 'گیریش نقطه‌‌سی',
 'version-entrypoints-header-url' => 'اینترنت آدرسی',
 
+# Special:Redirect
+'redirect' => 'فایل، ایستیفاده‌چی یا نوسخه ID-سی ایله یول‌لاندیرما',
+'redirect-legend' => 'بیر فایل یا صحیفه‌یه یول‌لاندیرما',
+'redirect-summary' => 'بو اؤزل صحیفه، بیر فایلا (فایل آدی ایله)، صحیفه‌یه (نوسخه ID-سی ایله) یا ایستیفاده‌چی صحیفه‌سینه (ایستیفاده‌چی نومره ID-سی ایله) یول‌لاندیریر.',
+'redirect-submit' => 'گئت',
+'redirect-lookup' => 'آختار:',
+'redirect-value' => 'دَگَر:',
+'redirect-user' => 'ایستیفاده‌چی ID',
+'redirect-revision' => 'صحیفه نوسخه‌سی',
+'redirect-file' => 'فایل آدی',
+'redirect-not-exists' => 'دَگَر تاپیلمادی',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'دوبلیکات فايل آختاریشی',
 'fileduplicatesearch-summary' => 'تعمین ائتمک ديَری دؤشه‌مه‌سینده بنزر فايللاری آختار.',
@@ -3638,6 +3721,7 @@ $5
 'tags' => 'مومکون دییشیک‌لیک ائتیکئت‌لری',
 'tag-filter' => '[[Special:Tags|اِتیکِت]] سۆزگُجی:',
 'tag-filter-submit' => 'سۆزگَج',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|اِتیکِت|اِتیکِتلر}}]]: $2)',
 'tags-title' => 'یاپیشقان',
 'tags-intro' => 'بو صحیفه، یازیلیم دَییشدیرمه‌لری نیشانلایان اِتیکِتلری و اونلارین آنلاملارینی گؤستریر.',
 'tags-tag' => 'یاپیشقان آدی',
@@ -3680,6 +3764,9 @@ $5
 'htmlform-submit' => 'گؤندر',
 'htmlform-reset' => 'دَییشیکلیکلری قایتار',
 'htmlform-selectorother-other' => 'باشقا',
+'htmlform-no' => 'یوخ',
+'htmlform-yes' => 'بلی',
+'htmlform-chosen-placeholder' => 'بیر سئچمه سئچین',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 بوتون یازی آختارما دستگی‌له',
index cd207b9..b6f32d7 100644 (file)
@@ -254,6 +254,18 @@ $messages = array(
 'oct' => 'окт',
 'nov' => 'ноя',
 'dec' => 'дек',
+'january-date' => 'Ғинуар $1',
+'february-date' => 'Февраль $1',
+'march-date' => 'Март $1',
+'april-date' => 'Апрель $1',
+'may-date' => 'Май $1',
+'june-date' => 'Июнь $1',
+'july-date' => 'Июль $1',
+'august-date' => 'Август $1',
+'september-date' => 'Сентябрь $1',
+'october-date' => 'Октябрь $1',
+'november-date' => 'Ноябрь $1',
+'december-date' => 'Сентябрь $1',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Категория|Категория}}',
@@ -279,6 +291,7 @@ $messages = array(
 'newwindow' => '(яңы биттә)',
 'cancel' => 'Бөтөрөргә',
 'moredotdotdot' => 'Дауамы...',
+'morenotlisted' => 'Башҡа бер нимә лә юҡ...',
 'mypage' => 'Бит',
 'mytalk' => 'Әңгәмә',
 'anontalk' => 'Был IP-адресының фекер алышыу бите',
@@ -387,7 +400,6 @@ $1',
 'disclaimers' => 'Яуаплылыҡтан баш тартыу',
 'disclaimerpage' => 'Project:Яуаплылыҡтан баш тартыу',
 'edithelp' => 'Төҙәтеү белешмәһе',
-'edithelppage' => 'Help:Төҙәтеү белешмәһе',
 'helppage' => 'Help:Белешмә',
 'mainpage' => 'Баш бит',
 'mainpage-description' => 'Баш бит',
@@ -481,7 +493,7 @@ $1
 'enterlockreason' => 'Ябылыу сәбәбен һәм ваҡытын белдерегеҙ.',
 'readonlytext' => 'Яңы мәҡәләләр өҫтәү һәм мәғлүмәттәр базаһындағы башҡа үҙгәртеүҙәр хәҙер ябылған. Был планлы хеҙмәтләндереү сәбәпле булыуы мөмкин, аҙаҡтан нормаль хәлгә ҡайтасаҡ.
 
-Ябыусы хәким ҡалдырған аңлатма:
+Ябыусы хаким ҡалдырған аңлатма:
 $1',
 'missing-article' => 'Мәғлүмәттәр базаһында «$1» $2 битенең һоралған тексты табылманы.
 
@@ -563,15 +575,15 @@ $2',
 Шәхси [[Special:Preferences|{{SITENAME}} көйләүҙәрен]] үҙегеҙгә уңайлы итеп үҙгәртергә онотмағыҙ.',
 'yourname' => 'Ҡатнашыусы исеме',
 'userlogin-yourname' => 'Ҡулланыусы исеме',
-'yourpassword' => 'Һеҙҙең пароль',
-'userlogin-yourpassword' => 'Ð\9fаÑ\80олÑ\8c',
-'userlogin-yourpassword-ph' => 'Яңы паролде яҙығыҙ',
-'yourpasswordagain' => 'Ð\9fаÑ\80олде ҡабаттан яҙыу',
-'remembermypassword' => 'Был компьютерҙа паролемде иҫләргә ($1 {{PLURAL:$1|көндән|көндән}} күп түгел)',
-'userlogin-remembermypassword' => 'Ð¥Ó\99Ñ\82еÑ\80Ò\99Ó\99 Ò¡Ð°Ð»Ð´Ñ\8bÑ\80ырға',
+'yourpassword' => 'Серһүҙ',
+'userlogin-yourpassword' => 'СеÑ\80Ò»Ò¯Ò\99',
+'userlogin-yourpassword-ph' => 'Яңы серһүҙҙе яҙығыҙ',
+'yourpasswordagain' => 'СеÑ\80Ò»Ò¯Ò\99Ò\99е ҡабаттан яҙыу',
+'remembermypassword' => 'Был компьютерҙа серһүҙемде иҫләргә ($1 {{PLURAL:$1|көндән|көндән}} күп түгел)',
+'userlogin-remembermypassword' => 'СиÑ\81Ñ\82емала Ò¡Ð°Ð»ырға',
 'securelogin-stick-https' => 'Танылғандан һуң HTTPS менән бәйләнеште ҡалдырырға',
 'yourdomainname' => 'Һеҙҙең домен',
-'password-change-forbidden' => 'Был викила паролегеҙҙе үҙгәртә алмайһығыҙ.',
+'password-change-forbidden' => 'Был викила серһүҙегеҙҙе үҙгәртә алмайһығыҙ.',
 'externaldberror' => 'Тышҡы мәғлүмәт базаһы менән танылғанда хата барлыҡҡа килде йәки тышҡы үҙ көйләүҙәрегеҙҙе үҙгәртер өсөн хоҡуҡтарығыҙ етәрле түгел.',
 'login' => 'Танышыу йәки теркәлеү',
 'nav-login-createaccount' => 'Танышыу йәки теркәлеү',
@@ -589,12 +601,12 @@ $2',
 'userlogin-resetlink' => 'Танылыу мәғлүмәттәрен оноттоғоҙмо?',
 'createaccountmail' => 'эл. почта буйынса',
 'createaccountreason' => 'Сәбәп:',
-'badretype' => 'Һеҙ кереткән паролдәр тап килмәйҙәр.',
+'badretype' => 'Һеҙ кереткән серһүҙҙәр тап килмәй.',
 'userexists' => 'Керетелгән исем ҡулланыла инде.
 Зинһар, башҡа исем һайлағыҙ.',
 'loginerror' => 'Танылыу хатаһы',
 'createaccounterror' => 'Иҫәп яҙыуын яһап булмай: $1',
-'nocookiesnew' => 'Иҫәп яҙыуы яһалды, ләкин һеҙ танылмағанһығыҙ. {{SITENAME}} ҡатнашыусыны таныу өсөн «cookies» ҡуллана. Һеҙҙә «cookies» тыйылған. Зинһар, уларға рөхсәт бирегеҙ, шунан яңы ҡатнашыусы исеме һәм пароль менән танылығыҙ.',
+'nocookiesnew' => 'Иҫәп яҙыуы яһалды, ләкин һеҙ танылмағанһығыҙ. {{SITENAME}} ҡатнашыусыны таныу өсөн «cookies» ҡуллана. Һеҙҙә «cookies» тыйылған. Зинһар, уларға рөхсәт бирегеҙ, шунан яңынан ҡатнашыусы исеме һәм серһүҙ менән танылығыҙ.',
 'nocookieslogin' => '{{SITENAME}} ҡатнашыусыны таныу өсөн «cookies» ҡуллана. Һеҙҙә «cookies» тыйылған. Зинһар, уға рөхсәт бирегеҙ һәм яңынан керегеҙ.',
 'nocookiesfornew' => 'Иҫәп яҙмаһы булдырылманы, сөнки уның сығанағын тикшереү мөмкин түгел.
 "Сookies" эшләй икәнлеген тикшерегеҙ, битте яңыртығыҙ  һәм яңынан ҡабатлап ҡарағыҙ.',
@@ -607,25 +619,25 @@ $2',
 'nosuchusershort' => '$1 исемле ҡулланыусы юҡ. Исемде тикшерегеҙ.',
 'nouserspecified' => 'Һеҙ ҡатнашыусы исемен күрһәтергә тейеш.',
 'login-userblocked' => 'Был ҡатнашыусыға рөхсәт юҡ.  Исеме тыйылған.',
-'wrongpassword' => 'Һеҙ ҡулланған пароль ҡабул ителмәй. Яңынан яҙып ҡарағыҙ.',
-'wrongpasswordempty' => 'Зинһар, буш булмаған пароль керетегеҙ.',
-'passwordtooshort' => 'Ð\9fаÑ\80олÑ\8c кәмендә $1 {{PLURAL:$1|символдан}} торорға тейеш.',
-'password-name-match' => 'Керетелгән пароль ҡулланыусы исеменән айырылырға тейеш.',
-'password-login-forbidden' => 'Был ҡатнашыусы исемен һәм паролде ҡулланыу тыйылған',
-'mailmypassword' => 'Яңы пароль ебәрергә',
-'passwordremindertitle' => '{{SITENAME}} өсөн яңы ваҡытлыса пароль',
-'passwordremindertext' => 'Кемдер (бәлки, һеҙ, IP-адресы: $1) {{SITENAME}} ($4) өсөн яңы пароль һоратты. $2 ҡатнашыусыһы өсөн ваҡытлыса яңы пароль яһалды: $3. Әгәр был һеҙ булһағыҙ, системага керегеҙ һәм паролде алмаштырығыҙ. Яңы пароль $5 {{PLURAL:$5|көн}} ғәмәлдә буласаҡ.
-
-Әгәр һеҙ паролде алмаштырыуҙы һоратмаған йәки онотоп кире иҫләгән булһағыҙ һәм үҙгәртергә теләмәһәгеҙ, был хәбәргә иғтибар итмәгеҙ һәм элекке паролегеҙҙе ҡулланыуығыҙҙы дауам итегеҙ.',
+'wrongpassword' => 'Һеҙ ҡулланған серһүҙ ҡабул ителмәй. Яңынан яҙып ҡарағыҙ.',
+'wrongpasswordempty' => 'Зинһар, буш булмаған серһүҙ керетегеҙ.',
+'passwordtooshort' => 'СеÑ\80Ò»Ò¯Ò\99 кәмендә $1 {{PLURAL:$1|символдан}} торорға тейеш.',
+'password-name-match' => 'Керетелгән серһүҙ ҡулланыусы исеменән айырылырға тейеш.',
+'password-login-forbidden' => 'Был ҡатнашыусы исемен һәм серһүҙҙе ҡулланыу тыйылған',
+'mailmypassword' => 'Яңы серһүҙ ебәрергә',
+'passwordremindertitle' => '{{SITENAME}} өсөн яңы ваҡытлыса серһүҙ',
+'passwordremindertext' => 'Кемдер (бәлки, һеҙ, IP-адресы: $1) {{SITENAME}} ($4) өсөн яңы серһүҙ һоратты. $2 ҡатнашыусыһы өсөн ваҡытлыса яңы серһүҙ яһалды: $3. Әгәр был һеҙ булһағыҙ, системага керегеҙ һәм серһүҙ алмаштырығыҙ. Яңы серһүҙ $5 {{PLURAL:$5|көн}} ғәмәлдә буласаҡ.
+
+Әгәр һеҙ серһүҙҙе алмаштырыуҙы һоратмаған йәки онотоп кире иҫләгән булһағыҙ һәм үҙгәртергә теләмәһәгеҙ, был хәбәргә иғтибар итмәгеҙ һәм элекке серһүҙегеҙҙе ҡулланыуығыҙҙы дауам итегеҙ.',
 'noemail' => '$1 исемле ҡулланыусы өсөн электрон почта адресы белдерелмәгән.',
 'noemailcreate' => 'Дөрөҫ электрон почта адресы күрһәтеү кәрәк',
-'passwordsent' => 'Яңы пароль $1 исемле ҡатнашыусының электрон почта адресына ебәрелде.
+'passwordsent' => 'Яңы серһүҙ $1 исемле ҡатнашыусының электрон почта адресына ебәрелде.
 
-Зинһар, паролде алғас, системаға яңынан керегеҙ.',
-'blocked-mailpassword' => 'Һеҙҙең IP-адресығыҙҙан мөхәррирләү тыйылған, шул сәбәпле пароль тергеҙеү ғәмәле лә блокланған.',
+Зинһар, серһүҙҙе алғас, системаға яңынан керегеҙ.',
+'blocked-mailpassword' => 'Һеҙҙең IP-адресығыҙҙан мөхәррирләү тыйылған, шул сәбәпле серһүҙ тергеҙеү ғәмәле лә блокланған.',
 'eauthentsent' => 'Күрһәтелгән электрон почта адресына адресты үҙгәртеүҙе раҫлауығыҙ өсөн хат ебәрелде. Хатта, был адрес һеҙҙеке булғанын раҫлау өсөн ниндәй ғәмәлдәрҙе үтәү кәрәкле икәне тураһында мәғлүмәт бар.',
-'throttled-mailpassword' => 'Ð\9fаÑ\80олде иҫләтеү ғәмәле {{PLURAL:$1|һуңғы $1 сәғәт}} эсенде ҡулланылды инде.
\9dаÑ\81аÑ\80 Ð½Ð¸Ó\99Ñ\82ле Ò¡Ñ\83лланÑ\8bÑ\83Ò\99аÑ\80Ò\93а Ò¡Ð°Ñ\80Ñ\88Ñ\8b, Ð¿Ð°Ñ\80олде иҫләтеү ғәмәлен {{PLURAL:$1|сәғәт|$1 сәғәт}} эсендә бер тапҡыр ғына ҡулланырға була.',
+'throttled-mailpassword' => 'СеÑ\80Ò»Ò¯Ò\99Ò\99е иҫләтеү ғәмәле {{PLURAL:$1|һуңғы $1 сәғәт}} эсенде ҡулланылды инде.
\9dаÑ\81аÑ\80 Ð½Ð¸Ó\99Ñ\82ле Ò¡Ñ\83лланÑ\8bÑ\83Ò\99аÑ\80Ò\93а Ò¡Ð°Ñ\80Ñ\88Ñ\8b, Ð¡ÐµÑ\80Ò»Ò¯Ò\99 иҫләтеү ғәмәлен {{PLURAL:$1|сәғәт|$1 сәғәт}} эсендә бер тапҡыр ғына ҡулланырға була.',
 'mailerror' => 'Хат ебәреү хатаһы: $1',
 'acct_creation_throttle_hit' => 'Һеҙҙең IP-адрестан бер тәүлек эсендә {{PLURAL:$1|$1 иҫәп яҙыуы}} яһалды инде, был һан был ваҡыт аралығы өсөн максимум һан. Шул сәбәпле, был IP-адресына эйә ҡулланыусылар, хәҙерге ваҡытта яңы иҫәп яҙыуы яһай алмайҙар.',
 'emailauthenticated' => 'Электрон почта адресығыҙ раҫланды: $3, $2.',
@@ -639,9 +651,9 @@ $2',
 'accountcreated' => 'Иҫәп яҙыуы яһалды',
 'accountcreatedtext' => '$1 исемле ҡулланыусы өсөн исәп яҙыуы яһалды.',
 'createaccount-title' => '{{SITENAME}}: теркәлеү',
-'createaccount-text' => 'Кемдер, электрон почта адресығыҙҙы күрһәтеп, {{SITENAME}} ($4) проектында «$3» пароле менән «$2» исемле иҫәп яҙыуы теркәне. Һеҙҙең кереүегеҙ һәм паролегеҙҙе алмаштырыуығыҙ кәрәк.
+'createaccount-text' => 'Кемдер, электрон почта адресығыҙҙы күрһәтеп, {{SITENAME}} ($4) проектында «$3» пароле менән «$2» исемле иҫәп яҙыуы теркәне. Һеҙҙең кереүегеҙ һәм серһүҙегеҙҙе алмаштырыуығыҙ кәрәк.
 
-Иҫәп яҙыуы яңылыш яһалһа был хатҡа иғтибар итмәгеҙ.',
+Иҫәп яҙыуы яңылыш яһалһа, был хатҡа иғтибар итмәгеҙ.',
 'usernamehasherror' => 'Ҡулланыусы исемендә "#" символы була алмай',
 'login-throttled' => 'Һеҙ системала артыҡ күп танылырға тырыштығыҙ.
 Зинһар, ҡабатламаҫтан алда бераҙ көтөгөҙ.',
@@ -654,32 +666,30 @@ $2',
 'user-mail-no-addy' => 'Электрон почта адресы булмайынса электрон хәбәр ебәреп ҡараны',
 
 # Change password dialog
-'resetpass' => 'Ð\9fаÑ\80олде үҙгәртеү',
-'resetpass_announce' => 'Һеҙ системала электрон почта аша алынған ваҡытлыса пароль менән танылдығыҙ. Системаға кереүҙә тамалау өсөн яңы пароль булдырығыҙ.',
-'resetpass_header' => 'Иҫәп яҙыуы паролен үҙгәртеү',
-'oldpassword' => 'Иҫке пароль:',
-'newpassword' => 'Яңы пароль:',
-'retypenew' => 'Ð\9fаÑ\80олде яңынан керетегеҙ:',
-'resetpass_submit' => 'Ð\9fаÑ\80олÑ\8c ҡуйырға һәм танышырға',
-'resetpass_success' => 'Ð\9fаÑ\80олегеҙ уңышлы үҙгәртелде! Системала танышыу бара...',
-'resetpass_forbidden' => 'Ð\9fаÑ\80олде үҙгәртеп булмай',
+'resetpass' => 'СеÑ\80Ò»Ò¯Ò\99Ò\99е үҙгәртеү',
+'resetpass_announce' => 'Һеҙ системала электрон почта аша алынған ваҡытлыса серһүҙ менән танылдығыҙ. Системаға кереүҙә тамалау өсөн яңы серһүҙ булдырығыҙ.',
+'resetpass_header' => 'Иҫәп яҙыуы серһүҙен үҙгәртеү',
+'oldpassword' => 'Иҫке серһүҙ:',
+'newpassword' => 'Яңы серһүҙ:',
+'retypenew' => 'СеÑ\80Ò»Ò¯Ò\99Ò\99е яңынан керетегеҙ:',
+'resetpass_submit' => 'СеÑ\80Ò»Ò¯Ò\99 ҡуйырға һәм танышырға',
+'resetpass_success' => 'СеÑ\80Ò»Ò¯Ò\99егеҙ уңышлы үҙгәртелде! Системала танышыу бара...',
+'resetpass_forbidden' => 'СеÑ\80Ò»Ò¯Ò\99Ò\99е үҙгәртеп булмай',
 'resetpass-no-info' => 'Был битте туранан ҡарау өсөн һеҙгә системала танылырға кәрәк.',
-'resetpass-submit-loggedin' => 'Ð\9fаÑ\80олде үҙгәртергә',
+'resetpass-submit-loggedin' => 'СеÑ\80Ò»Ò¯Ò\99Ò\99е үҙгәртергә',
 'resetpass-submit-cancel' => 'Бөтөрөргә',
-'resetpass-wrong-oldpass' => 'Хаталы ваҡытлыса йәки ағымдағы пароль.
-Һеҙ, бәлки, паролегеҙҙе алмаштырғанһығыҙ йәки яңы пароль һоратҡанһығыҙ.',
-'resetpass-temp-password' => 'Ваҡытлыса пароль',
+'resetpass-wrong-oldpass' => 'Хаталы ваҡытлыса йәки ағымдағы серһүҙ.
+Һеҙ, бәлки, серһүҙегеҙҙе алмаштырғанһығыҙ йәки яңы серһүҙ һоратҡанһығыҙ.',
+'resetpass-temp-password' => 'Ваҡытлыса серһүҙ',
 
 # Special:PasswordReset
-'passwordreset' => 'Паролде ташлатыу',
-'passwordreset-text' => 'Иҫәп яҙыуығыҙ мәғлүмәттәрен хат аша алыу өсөн киләһе форманы тултырығыҙ.',
-'passwordreset-legend' => 'Паролде ташлатыу',
-'passwordreset-disabled' => 'Был викила паролде ташлатыу ғәмәлдә түгел',
-'passwordreset-pretext' => '{{PLURAL:$1||аҫта күрһәтелгән мәғлүмәттәрҙең бер киҫәген керетегеҙ}}',
+'passwordreset' => 'Серһүҙҙе ташлатыу',
+'passwordreset-legend' => 'Серһүҙҙе ташлатыу',
+'passwordreset-disabled' => 'Был викила серһүҙҙе ташлатыу ғәмәлдә түгел',
 'passwordreset-username' => 'Ҡулланыусы исеме:',
 'passwordreset-domain' => 'Домен:',
 'passwordreset-capture' => 'Хәбәрҙең һуңғы хәлен ҡарарғамы?',
-'passwordreset-capture-help' => 'Әгәр был билдәне ҡуйһағыҙ, ҡулланыусыға ебәрелгән ваҡытлыса пароль һеҙгә күрһәтеләсәк.',
+'passwordreset-capture-help' => 'Әгәр был билдәне ҡуйһағыҙ, ҡулланыусыға ебәрелгән ваҡытлыса серһүҙ һеҙгә күрһәтеләсәк.',
 'passwordreset-email' => 'Электрон почта адресы:',
 'passwordreset-emailtitle' => '{{SITENAME}} иҫәп яҙыуы мәғлүмәттәре',
 'passwordreset-emailtext-ip' => 'Берәү (бәлки һәҙ, $1 IP-адресынан ) {{SITENAME}} ($4) проектындағы иҫәп яҙыуығыҙҙы хәтерләтеүҙе һоратты.
@@ -687,18 +697,18 @@ $2',
 
 $2
 
-Был ваҡытлыса {{PLURAL:$3|пароль|паролдәр}} {{PLURAL:$5|$5 көн}} ғәмәлдә буласаҡ.
-Һеҙ системала танылырға һәм яңы пароль һайларға тейешһегеҙ.
-Әгәр, һеҙ быны һоратмаған булһағыҙ йәки элекке паролегеҙҙе киренән иҫләһәгеҙ һәм уны үҙгәртергә теләмәһәгеҙ, был хатҡа иғтибар итмәгеҙ һәм элекке паролегеҙҙе ҡулланыуҙы дауам итегеҙ.',
+Был ваҡытлыса {{PLURAL:$3|серһүҙ|серһүҙҙәр}} {{PLURAL:$5|$5 көн}} ғәмәлдә буласаҡ.
+Һеҙ системала танылырға һәм яңы серһүҙ һайларға тейешһегеҙ.
+Әгәр, һеҙ быны һоратмаған булһағыҙ йәки элекке серһүҙегеҙҙе киренән иҫләһәгеҙ һәм уны үҙгәртергә теләмәһәгеҙ, был хатҡа иғтибар итмәгеҙ һәм элекке серһүҙегеҙҙе ҡулланыуҙы дауам итегеҙ.',
 'passwordreset-emailtext-user' => '{{SITENAME}} проектындағы $1 ҡулланыусыһы {{SITENAME}} ($4) проектындағы иҫәп яҙыуығыҙҙы хәтерләтеүҙе һоратты. Киләһе ҡулланыусы {{PLURAL:$3|иҫәп яҙыуы|иҫәп яҙыуҙары}} был электрон почта адресы менән бәйле:
 
 $2
 
-Был ваҡытлыса {{PLURAL:$3|пароль|паролдәр}} {{PLURAL:$5|$5 көн}} ғәмәлдә буласаҡ.
-Һеҙ системала танылырға һәм яңы пароль һайларға тейешһегеҙ.
-Әгәр, һеҙ быны һоратмаған булһағыҙ йәки элекке паролегеҙҙе киренән иҫләһәгеҙ һәм уны үҙгәртергә теләмәһәгеҙ, был хатҡа иғтибар итмәгеҙ һәм элекке паролегеҙҙе ҡулланыуҙы дауам итегеҙ.',
+Был ваҡытлыса {{PLURAL:$3|серһүҙ|серһүҙҙәр}} {{PLURAL:$5|$5 көн}} ғәмәлдә буласаҡ.
+Һеҙ системала танылырға һәм яңы серһүҙ һайларға тейешһегеҙ.
+Әгәр, һеҙ быны һоратмаған булһағыҙ йәки элекке серһүҙегеҙҙе киренән иҫләһәгеҙ һәм уны үҙгәртергә теләмәһәгеҙ, был хатҡа иғтибар итмәгеҙ һәм элекке серһүҙеҙҙе ҡулланыуҙы дауам итегеҙ.',
 'passwordreset-emailelement' => 'Ҡулланыусы исеме: $1
-Ваҡытлыса пароль: $2',
+Ваҡытлыса серһүҙ: $2',
 'passwordreset-emailsent' => 'Электрон почта аша иҫләтеү хаты ебәрелде.',
 'passwordreset-emailsent-capture' => 'Ебәрелгән хәтерләтеү хәбәре түбәндә күрһәлгән.',
 'passwordreset-emailerror-capture' => 'Килеп сыҡҡан хәтерләтеү хәбәре түбәндә күрһәтелгән, тик уны ебәреү уңышһыҙ тамамланды. Сәбәбе:$1',
@@ -706,12 +716,12 @@ $2
 # Special:ChangeEmail
 'changeemail' => 'Электрон почта адресын үҙгәртергә',
 'changeemail-header' => 'Электрон почта адресын үҙгәртеү',
-'changeemail-text' => 'Электрон почта адресығыҙҙы үҙгәртеү өсөн түбәндәге форманы тултырығыҙ. Үҙгәртеүҙәрҙе раҫлау өсөн паролегеҙҙе керетеү кәрәк буласаҡ.',
+'changeemail-text' => 'Электрон почта адресығыҙҙы үҙгәртеү өсөн түбәндәге форманы тултырығыҙ. Үҙгәртеүҙәрҙе раҫлау өсөн серһүҙегеҙҙе керетеү кәрәк буласаҡ.',
 'changeemail-no-info' => 'Был биткә туранан ирешеү өсөн һеҙгә системала танылыу кәрәк.',
 'changeemail-oldemail' => 'Хәҙерге электрон почта адресы:',
 'changeemail-newemail' => 'Яңы электрон почта адресы:',
 'changeemail-none' => '(юҡ)',
-'changeemail-password' => '{{SITENAME}} прокты өсөн паролегеҙ:',
+'changeemail-password' => '{{SITENAME}} прокты өсөн серһүҙегеҙ:',
 'changeemail-submit' => 'Адресты үҙгәртергә',
 'changeemail-cancel' => 'Кире алырға',
 
@@ -754,30 +764,30 @@ $2
 'blockedtitle' => 'Ҡулланыусы блокланған',
 'blockedtext' => "'''Иҫәп яҙыуығыҙ йәки IP-адресығыҙ блокланған.'''
 
-Блоклаусы хәким: $1.
+Блоклаусы хаким: $1.
 Белдерелгән сәбәп: ''$2''.
 
 * Блоклау башланған ваҡыт: $8
 * Блоклау  аҙағы: $6
 * Блоклауҙар һаны: $7
 
-Һеҙ $1 йәки башҡа [[{{MediaWiki:Grouppage-sysop}}|хәкимгә]] блоклау буйынса һорауҙарығыҙҙы ебәрә алаһығыҙ.
-Иҫегеҙҙе тотоғоҙ: әгәр һеҙ теркәлмәгән һәм электрон почта адресығыҙҙы раҫламаған булһағыҙ ([[Special:Preferences|көйләүҙәрем битендә]]), хәкимгә хат ебәрә алмайһығыҙ. Шулай ук блоклау ваҡытында һеҙҙең хат ебәреү мөмкинлегегеҙ сикләгән булырға ла мөмкин.
+Һеҙ $1 йәки башҡа [[{{MediaWiki:Grouppage-sysop}}|хакимгә]] блоклау буйынса һорауҙарығыҙҙы ебәрә алаһығыҙ.
+Иҫегеҙҙе тотоғоҙ: әгәр һеҙ теркәлмәгән һәм электрон почта адресығыҙҙы раҫламаған булһағыҙ ([[Special:Preferences|көйләүҙәрем битендә]]), хакимгә хат ебәрә алмайһығыҙ. Шулай ук блоклау ваҡытында һеҙҙең хат ебәреү мөмкинлегегеҙ сикләгән булырға ла мөмкин.
 Һеҙҙең IP-адрес — $3, блоклау идентификаторы — #$5.
 Хаттарҙа был мәғлүмәттәрҙе күрһәтергә онотмағыҙ.",
-'autoblockedtext' => "Һеҙҙең IP-адресығыҙ автоматик рәүештә блокланған. Сәбәбе, был адрес элек блокланған ҡулланыусыларҙың береһе тарафынан ҡулланылған. Блоклаусы хәким ($1) киләһе сәбәпте белдергән:
+'autoblockedtext' => "Һеҙҙең IP-адресығыҙ автоматик рәүештә блокланған. Сәбәбе, был адрес элек блокланған ҡулланыусыларҙың береһе тарафынан ҡулланылған. Блоклаусы хаким ($1) киләһе сәбәпте белдергән:
 
 :«$2»
 
-Блоклаусы хәким: $1.
+Блоклаусы хаким: $1.
 Белдерелгән сәбәп: ''$2''.
 
 * Блоклау башланған ваҡыт: $8
 * Блоклау  аҙағы: $6
 * Блоклауҙар һаны: $7
 
-Һеҙ $1 йәки башҡа [[{{MediaWiki:Grouppage-sysop}}|хәкимгә]] блоклау буйынса һорауҙарығыҙҙы ебәрә алаһығыҙ.
-Иҫегеҙҙе тотоғоҙ: әгәр һеҙ теркәлмәгән һәм электрон почта адресығыҙҙы раҫламаған булһағыҙ ([[Special:Preferences|көйләүҙәрем битендә]]), хәкимгә хат ебәрә алмайһығыҙ. Шулай ук блоклау ваҡытында һеҙҙең хат ебәреү мөмкинлегегеҙ сикләгән булырға ла мөмкин.
+Һеҙ $1 йәки башҡа [[{{MediaWiki:Grouppage-sysop}}|хакимгә]] блоклау буйынса һорауҙарығыҙҙы ебәрә алаһығыҙ.
+Иҫегеҙҙе тотоғоҙ: әгәр һеҙ теркәлмәгән һәм электрон почта адресығыҙҙы раҫламаған булһағыҙ ([[Special:Preferences|көйләүҙәрем битендә]]), хакимгә хат ебәрә алмайһығыҙ. Шулай ук блоклау ваҡытында һеҙҙең хат ебәреү мөмкинлегегеҙ сикләгән булырға ла мөмкин.
 Һеҙҙең IP-адрес — $3, блоклау идентификаторы — #$5.
 Хаттарҙа был мәғлүмәттәрҙе күрһәтергә онотмағыҙ.",
 'blockednoreason' => 'сәбәп белдерелмәгән',
@@ -790,10 +800,10 @@ $2
 'loginreqtitle' => 'Танылыу кәрәк',
 'loginreqlink' => 'танылыу',
 'loginreqpagetext' => 'Башҡа биттәрҙе ҡарау өсөн $1 кәрәк.',
-'accmailtitle' => 'Ð\9fаÑ\80олÑ\8c ебәрелде.',
-'accmailtext' => "[[User talk:$1|$1]] ҡулланыусыһы өсөн яһалған пароль $2 адресына ебәрелде.
+'accmailtitle' => 'СеÑ\80Ò»Ò¯Ò\99 ебәрелде.',
+'accmailtext' => "[[User talk:$1|$1]] ҡулланыусыһы өсөн яһалған серһүҙ $2 адресына ебәрелде.
 
-Системала танылғандан һуң ''[[Special:ChangePassword|паролегеҙҙе үҙгәртә алаһығыҙ]]''.",
+Системала танылғандан һуң ''[[Special:ChangePassword|серһүҙегеҙҙе үҙгәртә алаһығыҙ]]''.",
 'newarticle' => '(Яңы)',
 'newarticletext' => "Һеҙ һылтанма буйынса әлегә яһалмаған биткә күстегеҙ.
 Яңы бит яһар өсөн аҫтағы тәҙрәгә текст керетегеҙ (тулыраҡ мәғлүмәт өсөн [[{{MediaWiki:Helppage}}|ярҙам битен]] ҡарағыҙ).
@@ -847,9 +857,9 @@ $2
 Мәҡәлә текстын боҙолоуҙан һаҡлау өсөн үҙгәртеүегеҙ кире алынды.
 Бындай хәлдәр хаталы аноним web-проксилар ҡулланғанда килеп сығырға мөмкин.",
 'edit_form_incomplete' => "'''Мөхәррирләү формаһының ҡайһы өлөштәре серверға барып етмәне. Төҙәтеүҙәрегеҙҙе яҡшы итеп тикшерегеҙ һәм яңынан ҡабатлағыҙ.'''",
-'editing' => 'Мөхәрирләү  $1',
+'editing' => 'Мөхәррирләү  $1',
 'creating' => 'Төҙөү $1',
-'editingsection' => 'Мөхәрирләү  $1 (секция)',
+'editingsection' => 'Мөхәррирләү  $1 (секция)',
 'editingcomment' => '$1 мөхәррирләнә (яңы бүлек)',
 'editconflict' => 'Мөхәррирләү конфликты: $1',
 'explainconflict' => 'Һеҙ был битте мөхәррирләгән ваҡытта кемдер яңы үҙгәрештәр керетте.
@@ -874,12 +884,12 @@ $2
 'readonlywarning' => "'''КИҪӘТЕҮ: Техник хеҙмәтләндереү сәбәпле мәғлүмәттәр базаһы блокланған, шунлыҡтан үҙгәртеүҙәрегеҙҙе хәҙер һаҡлай алмайһығыҙ.'''
 Тексты аҙаҡтан ҡулланыу өсөн файлда һаҡлап тора алаһығыҙ.
 
әким белдергән сәбәп: $1",
аким белдергән сәбәп: $1",
 'protectedpagewarning' => "'''КИҪӘТЕҮ: Һеҙ был битте үҙгәртә алмайһығыҙ, был хоҡуҡҡа хакимдәр генә эйә.'''
 Белешмә өсөн түбәндә һуңғы үҙгәртеү тураһында мәғлүмәт бирелә:",
 'semiprotectedpagewarning' => "'''Киҫәтеү:''' был бит һаҡланған. Уны теркәлгән ҡулланыусылар ғына үҙгәртә ала.
 Белешмә өсөн түбәндә һуңғы үҙгәртеү тураһында мәғлүмәт бирелә:",
-'cascadeprotectedwarning' => "'''КИҪӘТЕҮ:''' Был битте тик хәкимдәр генә үҙгәртә ала, сөнки ул эҙмә-эҙлекле һаҡлау ҡуйылған {{PLURAL:$1|киләһе биткә|киләһе биттәргә}} керә:",
+'cascadeprotectedwarning' => "'''КИҪӘТЕҮ:''' Был битте тик хакимдәр генә үҙгәртә ала, сөнки ул эҙмә-эҙлекле һаҡлау ҡуйылған {{PLURAL:$1|киләһе биткә|киләһе биттәргә}} керә:",
 'titleprotectedwarning' => "'''Киҫәтеү: Бындый исемле бит һаҡланған, уны үҙгәртеү өсөн [[Special:ListGroupRights|тейешле хоҡуҡҡа]] эйә булыу кәрәк.'''
 Белешмә өсөн түбәндә һуңғы үҙгәртеү тураһында мәғлүмәт бирелә:",
 'templatesused' => 'Был биттә ҡулланылған {{PLURAL:$1|ҡалып|ҡалыптар}}:',
@@ -1035,7 +1045,7 @@ $3 белдергән сәбәп: ''$2''",
 'revdelete-selected' => "'''[[:$1]] битенең {{PLURAL:$2|һайланған версияһы|һайланған версиялары}}:'''",
 'logdelete-selected' => "'''Яҙманың {{PLURAL:$1|һайланған яҙыуы|һайланған яҙыуҙары}}:'''",
 'revdelete-text' => "'''Биттәрҙең юйылған версиялары һәм ваҡиғалар, бит тарихында һәм яҙмаларҙа күрһәтеләсәк, ләкин уларҙың эстәлектәренең бер өлөшө ябай ҡулланыусыларға асыҡ булмаясаҡ.'''
-{{SITENAME}} проектының хәкимдәре йәшерен эстәлеккә керә һәм өҫтәмә сикләүҙәр ҡуйылған осраҡтарҙан тыш, ошо уҡ арайөҙ аша тергеҙә аласаҡтар.",
+{{SITENAME}} проектының хакимдәре йәшерен эстәлеккә керә һәм өҫтәмә сикләүҙәр ҡуйылған осраҡтарҙан тыш, ошо уҡ арайөҙ аша тергеҙә аласаҡтар.",
 'revdelete-confirm' => 'Зинһар, был ғәмәлде үтәргә теләүегеҙҙе, буласаҡ һөҙөмтәләрҙә аңлауығыҙҙы, [[{{MediaWiki:Policy-url}}|ҡағиҙәләр]] буйынса эшләүегеҙҙе раҫлағыҙ.',
 'revdelete-suppress-text' => "Йәшереү '''тик''' киләһе осраҡтарҙа ғына башҡарыла:
 
@@ -1047,11 +1057,11 @@ $3 белдергән сәбәп: ''$2''",
 'revdelete-hide-name' => 'Ғәмәлде һәм маҡсатын йәшерергә',
 'revdelete-hide-comment' => 'Үҙгәртеү тасуирламаларын йәшерергә',
 'revdelete-hide-user' => 'Мөхәррирләүсенең исемен/IP-адресын йәшерергә',
-'revdelete-hide-restricted' => 'Мәғлүмәттәрҙе хәкимдәрҙән дә йәшерергә',
+'revdelete-hide-restricted' => 'Мәғлүмәттәрҙе хакимдәрҙән дә йәшерергә',
 'revdelete-radio-same' => '(үҙгәртмәҫкә)',
 'revdelete-radio-set' => 'Эйе',
 'revdelete-radio-unset' => 'Юҡ',
-'revdelete-suppress' => 'Мәғлүмәттәрҙе шулай уҡ хәкимдәрҙән дә йәшерергә',
+'revdelete-suppress' => 'Мәғлүмәттәрҙе шулай уҡ хакимдәрҙән дә йәшерергә',
 'revdelete-unsuppress' => 'Тергеҙелгән версияларҙан бар сикләүҙәрҙе алырға',
 'revdelete-log' => 'Сәбәп:',
 'revdelete-submit' => 'Һайланған {{PLURAL:$1|версия|версиялар}} өсөн ҡулланырға',
@@ -1076,7 +1086,7 @@ $1",
 'revdelete-no-change' => "'''Иғтибар:'''  $2 $1 ваҡытлы яҙыу, һоратылған күренеүсәнлек көйләүҙәренә эйә.",
 'revdelete-concurrent-change' => '$2, $1 ваҡытлы яҙманы үҙгәртеүҙә хата: һеҙ уны үҙгәртергә тырышҡан ваҡытта уның статусын башҡа берәү үҙгәрткән.
 Зинһар, яҙмаларҙы ҡарағыҙ.',
-'revdelete-only-restricted' => '$2, $1 ваҡытлы яҙманы йәшереүҙә хата: башҡа йәшереү көйләүҙәренең береһен һайламайынса яҙманы хәкимдәрҙән йәшерә алмайһығыҙ.',
+'revdelete-only-restricted' => '$2, $1 ваҡытлы яҙманы йәшереүҙә хата: башҡа йәшереү көйләүҙәренең береһен һайламайынса яҙманы хакимдәрҙән йәшерә алмайһығыҙ.',
 'revdelete-reason-dropdown' => '* Ғәҙәттәге юйыу сәбәптәре
 ** Авторлыҡ хоҡуҡтарын боҙоу
 ** Урынһыҙ комментарий йәки шәхси мәғлүмәт
@@ -1094,8 +1104,8 @@ $1",
 
 # History merging
 'mergehistory' => 'Үҙгәртеүҙәр тарихын берләштерергә',
-'mergehistory-header' => 'Был бит, ике биттең үҙгәртеүҙәр тарихын берләштерергә мөмкинселек бирә.
ыл үҙгәртеүҙең, бит тарихын, боҙмайынса, дауам иттерәсәген тикшерегеҙ.',
+'mergehistory-header' => 'Был бит, ике биттең үҙгәртеүҙәр тарихын берләштереү мөмкинлеген бирә.
ерләштереүҙең үҙгәртеүҙәр тарихын боҙмауын тикшерегеҙ.',
 'mergehistory-box' => 'Ике биттең үҙгәртеүҙәр тарихын берләштерергә',
 'mergehistory-from' => 'Сығанаҡ бит:',
 'mergehistory-into' => 'Маҡсат бит:',
@@ -1157,17 +1167,16 @@ $1",
 'searchmenu-legend' => 'Эҙләү көйләүҙәре',
 'searchmenu-exists' => "'''Был вики-проектта «[[:$1]]» бите бар'''",
 'searchmenu-new' => "'''Был википроектта \"[[:\$1]]\" бите булдырырға.'''",
-'searchhelp-url' => 'Help:Эстәлек',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Был префикслы биттәрҙе күрһәтергә]]',
 'searchprofile-articles' => 'Эстәлек биттәре',
-'searchprofile-project' => 'Ярҙам һәм проект биттәре',
+'searchprofile-project' => 'Ярҙамсы һәм проект биттәре',
 'searchprofile-images' => 'Мультимедиа',
 'searchprofile-everything' => 'Барыһы',
 'searchprofile-advanced' => 'Киңәйтелгән',
 'searchprofile-articles-tooltip' => '$1 эсендә эҙлә',
 'searchprofile-project-tooltip' => '$1 эсендә эҙлә',
 'searchprofile-images-tooltip' => 'Файлдар эҙләү',
-'searchprofile-everything-tooltip' => 'Бар биттәрҙә эҙләү (фекер алышыу биттәрендә лә)',
+'searchprofile-everything-tooltip' => 'Барлыҡ биттәрҙә эҙләү (фекерләшеү биттәрендә лә)',
 'searchprofile-advanced-tooltip' => 'Махсус исем арауыҡтарында эҙләргә',
 'search-result-size' => '$1 ({{PLURAL:$2|$2 һүҙ|$2 һүҙ}})',
 'search-result-category-size' => '{{PLURAL:$1|$1 ағза}} ({{PLURAL:$2|$2 эске категория}}, {{PLURAL:$3|$3 файл}})',
@@ -1207,7 +1216,7 @@ $1",
 'prefs-edits' => 'Төҙәтеүҙәр һаны:',
 'prefsnologin' => 'Танылмағанһығыҙ',
 'prefsnologintext' => 'Ҡатнашыусы көйләүҙәрен үҙгәртеү өсөн, һеҙ <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}}танылырға]</span> тейешһегеҙ.',
-'changepassword' => 'Ð\9fаÑ\80олде үҙгәртергә',
+'changepassword' => 'СеÑ\80Ò»Ò¯Ò\99Ò\99е үҙгәртергә',
 'prefs-skin' => 'Күренеш',
 'skin-preview' => 'Алдан байҡау',
 'datedefault' => 'Ғәҙәттәге',
@@ -1224,7 +1233,7 @@ $1",
 'prefs-watchlist-edits-max' => 'Иң күбе: 1000',
 'prefs-watchlist-token' => 'Күҙәтеү исемлеге токены:',
 'prefs-misc' => 'Башҡа көйләүҙәр',
-'prefs-resetpass' => 'Ð\9fаÑ\80олде үҙгәртергә',
+'prefs-resetpass' => 'СеÑ\80Ò»Ò¯Ò\99Ò\99е үҙгәртергә',
 'prefs-changeemail' => 'Электрон почта адресын үҙгәртергә',
 'prefs-setemail' => 'Электрон почта адресын көйләү',
 'prefs-email' => 'Электрон почта көйләүҙәре',
@@ -1233,7 +1242,6 @@ $1",
 'resetprefs' => 'Һаҡланмаған үҙгәрештерҙе таҙартырға',
 'restoreprefs' => 'Ғәҙәттәге бар көйләүҙәргә ҡайтырға',
 'prefs-editing' => 'Мөхәррирләү',
-'prefs-edit-boxsize' => 'Мөхәррирләү бите дәүмәле',
 'rows' => 'Юлдар:',
 'columns' => 'Бағаналар:',
 'searchresultshead' => 'Эҙләү',
@@ -1244,9 +1252,6 @@ $1",
 'recentchangesdays-max' => 'Иң күбендә $1 {{PLURAL:$1|көн}}',
 'recentchangescount' => 'Ғәҙәттә күрһәтелгән үҙгәртеүҙәр һаны:',
 'prefs-help-recentchangescount' => 'Һуңғы үҙгәртеүҙәрҙе, биттәр тарихын, журналдарҙы үҙ эсенә ала.',
-'prefs-help-watchlist-token' => 'Был юлды серле асҡыс менән тултырыу, күҙәтеү исемлегегеҙ өсөн RSS-таҫма яһаясаҡ.
-Был юлдағы асҡысты белгән һәр кем, күҙәтеү исемлегегеҙҙе уҡый аласаҡ, шуның өсөн ышаныслы ҡиммәт һайлағыҙ.
-Осраҡлы рәүештә һайланған ҡиммәтте лә ҡуллана алаһығыҙ: $1',
 'savedprefs' => 'Һеҙҙең көйләүҙәрегеҙ һаҡланды.',
 'timezonelegend' => 'Ваҡыт бүлкәте:',
 'localtime' => 'Урындағы ваҡыт:',
@@ -1277,7 +1282,6 @@ $1",
 'prefs-reset-intro' => 'Был битте, көйләүҙәрегеҙҙе ғәҙәттәге көйләүҙәргә ташлатыу өсөн ҡулланып була.
 Раҫлағандан һуң ғәмәлде кире ҡайтарып булмаясаҡ.',
 'prefs-emailconfirm-label' => 'Электрон почтаны раҫлау:',
-'prefs-textboxsize' => 'Мөхәррирләү тәҙрәһе дәүмәле',
 'youremail' => 'Электрон почта *',
 'username' => '{{GENDER:$1|Ҡулланыусы исеме}}:',
 'uid' => '{{GENDER:$1|Ҡатнашыусы}} номеры:',
@@ -1300,8 +1304,8 @@ $1",
 'email' => 'Электрон почта',
 'prefs-help-realname' => 'Ысын исемегеҙ (теләк буйынса).
 Әгәр уны күрһәтһәгеҙ, битте кемдең төҙәткәнен күрһәткәндә ҡулланыласаҡ.',
-'prefs-help-email' => 'Электрон почта (теләк буйынса). Күрһәтелгән булһа, ғәмәлдә булған паролегеҙҙе онотҡан осраҡта адресығыҙға яңы пароль ебәреләсәк.
-Шулай уҡ башҡа ҡатнашыусылар менән үҙ битегеҙ аша, электрон почтағыҙҙың адресын күрһәтмәйенсә, тура бәйләнешкә инергә мөмкинселек бирә.',
+'prefs-help-email' => 'Электрон почта (теләк буйынса). Күрһәтелгән булһа, ғәмәлдә булған серһүҙегеҙҙе онотҡан осраҡта адресығыҙға яңы серһүҙ ебәреләсәк.
+Шулай уҡ башҡа ҡатнашыусылар менән үҙ битегеҙ аша, электрон почтағыҙҙың адресын күрһәтмәйенсә, тура бәйләнешкә инергә мөмкинлек бирә.',
 'prefs-help-email-others' => 'Ул шулай уҡ башҡа ҡулланыусыларға, шәхси битегеҙҙәге һылтанма аша, һеҙҙән менән бәйләнешкә инергә рөхсәт бирәсәк.
 Һеҙҙең почта адресығыҙ уларға күрһәтелмәйәсәк.',
 'prefs-help-email-required' => 'Электрон почта адресы кәрәк.',
@@ -1341,7 +1345,7 @@ $1",
 'userrights-reason' => 'Сәбәп:',
 'userrights-no-interwiki' => 'Һеҙҙең башҡа вики-проекттарҙа ҡатнашыусыларҙың хоҡуҡтарын үҙгәртергә хоҡуҡтарығыҙ юҡ.',
 'userrights-nodatabase' => '$1 базаһы юҡ йәки урындағы (локаль) база түгел.',
-'userrights-nologin' => 'Ҡатнашыусыларҙың хоҡуҡтарын билдәләр өсөн, һеҙ хәким хоҡуҡтары менән [[Special:UserLogin|танылырға]] тейешһегеҙ.',
+'userrights-nologin' => 'Ҡатнашыусыларҙың хоҡуҡтарын билдәләр өсөн, һеҙ хаким хоҡуҡтары менән [[Special:UserLogin|танылырға]] тейешһегеҙ.',
 'userrights-notallowed' => 'Һеҙҙең иҫәп яҙыуығыҙҙан ҡатнашыусыларҙың хоҡуҡтарын өҫтәү йәки алыу рөхсәт ителмәгән.',
 'userrights-changeable-col' => 'Һеҙ үҙгәртә алған төркөмдәр',
 'userrights-unchangeable-col' => 'Һеҙ үҙгәртә алмаған төркөмдәр',
@@ -1351,7 +1355,7 @@ $1",
 'group-user' => 'Ҡулланыусылар',
 'group-autoconfirmed' => 'Автоматик раҫланған ҡулланыусылар',
 'group-bot' => 'Боттар',
-'group-sysop' => 'Хәкимдәр',
+'group-sysop' => 'Хакимдәр',
 'group-bureaucrat' => 'Бюрократтар',
 'group-suppress' => 'Тикшереүселәр',
 'group-all' => '(бөтә)',
@@ -1401,7 +1405,7 @@ $1",
 'right-deletedtext' => 'Биттең юйылған өлгөләре араһындағы юйылған текстты һәм үҙгәртеүҙәрҙе ҡарау',
 'right-browsearchive' => 'Юйылған биттәрҙе эҙләү',
 'right-undelete' => 'Юйылған биттәрҙе кире ҡайтарыу',
-'right-suppressrevision' => 'Биттәрҙең хәкимдәрҙән йәшерелгән өлгөләрен ҡарау һәм тергеҙеү',
+'right-suppressrevision' => 'Биттәрҙең хакимдәрҙән йәшерелгән өлгөләрен ҡарау һәм тергеҙеү',
 'right-suppressionlog' => 'Шәхси журналдарҙы ҡарау',
 'right-block' => 'Башҡа ҡатнашыусыларға мөхәррирләүҙе тыйыу',
 'right-blockemail' => 'Электрон почтаға хат ебәреүҙе тыйыу',
@@ -1430,7 +1434,7 @@ $1",
 'right-siteadmin' => 'Мәғлүмәттәр базаһын асыу һәм ябыу',
 'right-override-export-depth' => '5-се тәрәнлеккә тиклем бәйле биттәре менән бергә биттәрҙе сығарыу',
 'right-sendemail' => 'Башҡа ҡатнашыусыларға электрон почта аша хат ебәреү',
-'right-passwordreset' => 'Ð\9fаÑ\80олде Ñ\8fÒ£Ñ\8bÑ\80Ñ\82Ñ\8bÑ\83 Ñ\85Ó\99бÓ\99Ñ\80Ò\99Ó\99Ñ\80ен ҡарау',
+'right-passwordreset' => 'СеÑ\80Ò»Ò¯Ò\99Ò\99е Ñ\8fÒ£Ñ\8bÑ\80Ñ\82Ñ\8bÑ\83 Ð¾Ñ\81Ñ\80аҡÑ\82аÑ\80Ñ\8bн ҡарау',
 
 # Special:Log/newusers
 'newuserlogpage' => 'Яңы ҡулланыусы яҙмалары',
@@ -1518,7 +1522,6 @@ $1",
 'recentchangeslinked-feed' => 'Бәйле үҙгәртеүҙәр',
 'recentchangeslinked-toolbox' => 'Бәйле үҙгәртеүҙәр',
 'recentchangeslinked-title' => '"$1" битенә бәйле үҙгәртеүҙәр',
-'recentchangeslinked-noresult' => 'Күрһәтелгән арауыҡта бәйле биттәрҙә үҙгәртеүҙәр булмаған.',
 'recentchangeslinked-summary' => "Был күрһәтелгән бит һылтанма яһаған (йәки күрһәтелгән категорияға кергән) һуңғы үҙгәртеүҙәр исемлеге.
 [[Special:Watchlist|Күҙәтеү исемлегегеҙгә]] керә торған биттәр '''ҡалын''' итеп күрһәтелгән.",
 'recentchangeslinked-page' => 'Бит исеме:',
@@ -1762,7 +1765,7 @@ $1',
 Бәлки, һеҙгә сайт бушыраҡ саҡта ҡабатлап ҡарарға кәрәктер.',
 
 'license' => 'Рөхсәтнамә:',
-'license-header' => 'Рөхсәтнамә',
+'license-header' => 'Рөхсәтнәмә',
 'nolicense' => 'Бер нимә лә һайланмаған',
 'license-nopreview' => '(Ҡарап сығыу мөмкин түгел)',
 'upload_source_url' => '(Дөрөҫ, дөйөм ҡулланыу өсөн асыҡ URL-адрес)',
@@ -2023,7 +2026,7 @@ $1',
 'prevpage' => 'Алдағы бит ($1)',
 'allpagesfrom' => 'Ошондай хәрефтәрҙән башланған биттәрҙе күрһәтергә:',
 'allpagesto' => 'Ошоға бөткән биттәрҙе күрһәтергә:',
-'allarticles' => 'Бөтә мәҡәләләр',
+'allarticles' => 'Барлыҡ мәҡәләләр',
 'allinnamespace' => 'Бөтә биттәр (Исемдәре «$1» арауығында)',
 'allnotinnamespace' => 'Бөтә биттәр («$1» исемдәр арауығынан башҡа)',
 'allpagesprev' => 'Алдағы',
@@ -2077,7 +2080,7 @@ $1',
 'activeusers-count' => 'һуңғы $3 {{PLURAL:$3|көн}} эсендә $1 {{PLURAL:$1|үҙгәртеү}}',
 'activeusers-from' => 'Ошондай хәрефтәрҙән башланған ҡатнашыусыларҙы күрһәтергә:',
 'activeusers-hidebots' => 'Боттарҙы йәшерергә',
-'activeusers-hidesysops' => 'Хәкимдәрҙе йәшерергә',
+'activeusers-hidesysops' => 'Хакимдәрҙе йәшерергә',
 'activeusers-noresult' => 'Ҡатнашыусылар табылманы',
 
 # Special:ListGroupRights
@@ -2155,8 +2158,7 @@ $1',
 'unwatchthispage' => 'Күҙәтеүҙе туҡтатырға',
 'notanarticle' => 'Мәҡәлә түгел',
 'notvisiblerev' => 'Башҡа ҡатнашыусы тарафынан керетелгән һуңғы өлгө юйылған',
-'watchnochange' => 'Күрһәтелгән арауыҡта күҙәтеүҙәр исемлегенән бер ни ҙә үҙгәрмәгән.',
-'watchlist-details' => 'Һеҙҙең күҙәтеү исемлегегеҙҙә, фекер алышыу биттәрен һанамағанда, {{PLURAL:$1|$1 бит|$1 бит}} бар.',
+'watchlist-details' => 'Һеҙҙең күҙәтеү исемлегегеҙҙә, фекерләшеү биттәрен һанамағанда, {{PLURAL:$1|$1 бит|$1 бит}} бар.',
 'wlheader-enotif' => 'Электрон почта аша белдереү һайланған',
 'wlheader-showupdated' => "Һеҙҙең аҙаҡҡы кереүегеҙҙән һуң үҙгәргән биттәр '''ҡалын''' шрифт менән күрһәтелгән.",
 'watchmethod-recent' => 'күҙәтелгән биттәр өсөн аҙаҡҡы үҙгәртеүҙәрҙе ҡарау',
@@ -2303,7 +2305,7 @@ $2 өлгөһөнә ҡайтыу.',
 'protect-default' => 'Бар ҡулланыусыларға рөхсәт бирергә',
 'protect-fallback' => '«$1» рөхсәте кәрәк',
 'protect-level-autoconfirmed' => 'Яңы һәм теркәлмәгән ҡулланыусыларҙан һаҡларға',
-'protect-level-sysop' => 'Хәкимдәр генә',
+'protect-level-sysop' => 'Хакимдәр генә',
 'protect-summary-cascade' => 'эҙмә-эҙлекле',
 'protect-expiring' => '$1 бөтә (UTC)',
 'protect-expiring-local' => '$1 тамамлана',
@@ -2356,7 +2358,7 @@ $2 өлгөһөнә ҡайтыу.',
 Бындай ваҡытта һеҙ һуңғы юйылған өлгөләрҙе һайлауҙы алырға йәки күрһәтергә тейешһегеҙ.',
 'undeletehistorynoadmin' => 'Мәҡәлә юйылған.
 Түбәндә юйыу сәбәптәре һәм мәҡәләне юйғанға тиклем мөхәррирләүсе ҡатнашыусылар исемлеге килтерелгән. 
-Юйылған мәҡәләне хәкимдәр генә ҡарай ала.',
+Юйылған мәҡәләне хакимдәр генә ҡарай ала.',
 'undelete-revision' => '$1 битенең $3 ҡатнашыусыһының ($4 $5 мөхәррирләгән) юйылған өлгөһө:',
 'undeleterevision-missing' => 'Был өлгө дөрөҫ түгел йәки бөтөнләй юҡ.
 Һеҙ дөрөҫ булмаған һылтанма аша кергәнһегеҙ йәки был өлгө архивтан юйылған, булырға тейеш.',
@@ -2419,7 +2421,7 @@ $1',
 'sp-contributions-deleted' => 'ҡулланыусының юйылған өлөшө',
 'sp-contributions-uploads' => 'тейәүҙәр',
 'sp-contributions-logs' => 'журналдар',
-'sp-contributions-talk' => 'фекер алышыу',
+'sp-contributions-talk' => 'фекерләшеү',
 'sp-contributions-userrights' => 'ҡатнашыусы хоҡуҡтарын идаралау',
 'sp-contributions-blocked-notice' => 'Әлеге ваҡытта был ҡатнашыусы бикле.
 Түбәндә бикләү яҙмаларынан һуңғы ҡатнашыусыны бикләү яҙмаһы килтерелгән:',
@@ -2552,7 +2554,7 @@ $1 ҡатнашыусыһын бикләү сәбәбе: "$2"',
 'block-log-flags-nousertalk' => 'үҙенең фекер алышыу битен мөхәррирләй алмай',
 'block-log-flags-angry-autoblock' => 'киңәйтелгән авто бикләү һайланған',
 'block-log-flags-hiddenname' => 'ҡатнашыусы исеме йәшерелгән',
-'range_block_disabled' => 'Хәкимдәргә бикләү арауыҡтарын булдырыу тыйылған.',
+'range_block_disabled' => 'Хакимдәргә бикләү арауыҡтарын булдырыу тыйылған.',
 'ipb_expiry_invalid' => 'Тамамланыу ваҡыты дөрөҫ түгел.',
 'ipb_expiry_temp' => 'Бикләү ваҡытында ҡатнашыусы исеме йәшерелһә, бикләү ваҡыты сикһеҙ булырға тейеш.',
 'ipb_hide_invalid' => 'Иҫәп яҙмаһын йәшереү мөмкин түгел, ул бигерәк күп үҙгәртеүҙәр яһаған, булырға тейеш.',
@@ -2688,9 +2690,9 @@ $1 ҡатнашыусыһын бикләү сәбәбе: "$2"',
 'imageinvalidfilename' => 'Файл исеме дөрөҫ түгел',
 'fix-double-redirects' => 'Элекке исемгә һылтанған йүнәлтеүҙәрҙе төҙәтергә',
 'move-leave-redirect' => 'Йүнәлтеүҙе ҡалдырырға',
-'protectedpagemovewarning' => "'''Киҫәтеү: ''' Һеҙ был биттең исемен үҙгәртә алмайһығыҙ, был хоҡуҡҡа хәкимдәр генә эйә. 
+'protectedpagemovewarning' => "'''Киҫәтеү: ''' Һеҙ был биттең исемен үҙгәртә алмайһығыҙ, был хоҡуҡҡа хакимдәр генә эйә. 
 Белешмә өсөн түбәндә журналдағы һуңғы яҙма килтерелгән:",
-'semiprotectedpagemovewarning' => "'''Киҫәтеү: ''' Был бит һаҡланған. Һеҙ уның исемен үҙгәртә алмайһығыҙ, был хоҡуҡҡа хәкимдәр генә эйә. 
+'semiprotectedpagemovewarning' => "'''Киҫәтеү: ''' Был бит һаҡланған. Һеҙ уның исемен үҙгәртә алмайһығыҙ, был хоҡуҡҡа хакимдәр генә эйә. 
 Белешмә өсөн түбәндә журналдағы һуңғы яҙма килтерелгән:",
 'move-over-sharedrepo' => '[[:$1]] файлы дөйөм һаҡлағыста бар. Файлдың исемен бындай исемгә үҙгәртеү дөйөм һаҡлағыстағы файлдың өҫтөнә яҙҙырылыуына килтерәсәк.',
 'file-exists-sharedrepo' => 'Һайланған файл исеме дөйөм һаҡлағыста ҡулланыла инде. 
@@ -2801,7 +2803,7 @@ $1 ҡатнашыусыһын бикләү сәбәбе: "$2"',
 
 # Import log
 'importlogpage' => 'Тейәү яҙмалары журналы',
-'importlogpagetext' => 'Хәкимдәр тарафынан башҡа вики проекттарҙан биттәрҙе һәм уларҙың үҙгәртеүҙәр тарихын тейәү.',
+'importlogpagetext' => 'Хакимдәр тарафынан башҡа вики проекттарҙан биттәрҙе һәм уларҙың үҙгәртеүҙәр тарихын тейәү.',
 'import-logentry-upload' => '[[$1]] битен файлдан тейәгән',
 'import-logentry-upload-detail' => '$1 {{PLURAL:$1|өлгө|өлгө}}',
 'import-logentry-interwiki' => '$1 битен вики проекттары-ара тейәгән',
@@ -2821,7 +2823,7 @@ JavaScript тикшереү',
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Ҡулланыусы битегеҙ',
 'tooltip-pt-anonuserpage' => 'IP адресығыҙ өсөн ҡатнашыусы бите',
-'tooltip-pt-mytalk' => 'Фекер алышыу битегеҙ',
+'tooltip-pt-mytalk' => 'Фекерләшеү битегеҙ',
 'tooltip-pt-anontalk' => 'IP адресығыҙ өсөн фекер алышыу бите',
 'tooltip-pt-preferences' => 'Көйләүҙәрегеҙ',
 'tooltip-pt-watchlist' => 'Һеҙ күҙәткән биттәр исемлеге',
@@ -2829,7 +2831,7 @@ JavaScript тикшереү',
 'tooltip-pt-login' => 'Бында теркәлеү үтергә була, әммә был эш мәжбүри түгел.',
 'tooltip-pt-anonlogin' => 'Бында танылыу үтергә була, әммә был эш мәжбүри түгел.',
 'tooltip-pt-logout' => 'Сығырға',
-'tooltip-ca-talk' => 'Биттең эстәлеге тураһында фекер алышыу',
+'tooltip-ca-talk' => 'Биттең эстәлеге тураһында фекерләшеү',
 'tooltip-ca-edit' => 'Һеҙ был битте үҙгәртә алаһығыҙ. Зинһар, яҙып ҡуйыр алдынан ҡарап сығығыҙ',
 'tooltip-ca-addsection' => 'Яңы бүлек эшләргә',
 'tooltip-ca-viewsource' => 'Был бит үҙгәртеүҙән һаҡланған.
@@ -3636,7 +3638,6 @@ $5
 'version-other' => 'Башҡалар',
 'version-mediahandlers' => 'Медиа эшкәртеүсе ҡоралдар',
 'version-hooks' => 'Эләктереп алыусылар',
-'version-extension-functions' => 'Киңәйтеү функциялары',
 'version-parser-extensiontags' => 'Уҡыу ҡоралдары киңәйтеүҙәре тегтары',
 'version-parser-function-hooks' => 'Уҡыу ҡоралдары функцияларын эләктереп алыусылар',
 'version-hook-name' => 'Эләктереп алыусы исеме',
@@ -3771,8 +3772,8 @@ MediaWiki файҙалы булыр, тигән өмөттә, ләкин БЕР
 'revdelete-content-unhid' => 'эстәлек күрһәтелде',
 'revdelete-summary-unhid' => 'төҙәтеү аңлатмаһы асылды',
 'revdelete-uname-unhid' => 'ҡатнашыусы исеме күрһәтелде',
-'revdelete-restricted' => 'хәкимдәргә ҡаршы ҡулланылған сикләүҙәр',
-'revdelete-unrestricted' => 'хәкимдәрҙән алынған сикләүҙәр',
+'revdelete-restricted' => 'хакимдәргә ҡаршы ҡулланылған сикләүҙәр',
+'revdelete-unrestricted' => 'хакимдәрҙән алынған сикләүҙәр',
 'logentry-move-move' => '$1 $3 битенең исемен үҙгәртте. Яңы исеме: $4',
 'logentry-move-move-noredirect' => '$1 $3 битенең исемен йүнәлтеү ҡуймайынса үҙгәртте. Яңы исеме: $4',
 'logentry-move-move_redir' => '$1 $3 битенең исемен йүнәлтеү өҫтөнән үҙгәртте. Яңы исеме: $4',
index 50a9e92..ef15ffe 100644 (file)
@@ -9,6 +9,7 @@
  *
  * @author Als-Holder
  * @author Bua333
+ * @author Geitost
  * @author Malafaya
  * @author Man77
  * @author Merlissimo
@@ -297,7 +298,6 @@ $1",
 'disclaimers' => 'Impressum',
 'disclaimerpage' => 'Project:Impressum',
 'edithelp' => 'Huif fias Werkln',
-'edithelppage' => 'Help:Werkln',
 'helppage' => 'Help:Inhoidsvazeichnis',
 'mainpage' => 'Hoamseitn',
 'mainpage-description' => 'Hoamseitn',
@@ -464,7 +464,7 @@ Beochtt ower, daas oanige Seiten noh åzoang kennern, daas du ågmödt bist, só
 'logout' => 'Obmöden',
 'userlogout' => 'Auslogga',
 'notloggedin' => 'Ned ågmödt',
-'nologin' => "Du host koa Nutzakonto? '''$1'''.",
+'nologin' => 'Du host koa Nutzakonto? $1.',
 'nologinlink' => 'A neichs Nutzakonto olegn',
 'createaccount' => 'Nutzakonto olegn',
 'gotaccount' => "Hosd scho a Nutzakonto? '''$1'''.",
@@ -739,7 +739,6 @@ Details stehen im [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}}
 'mypreferences' => 'Mei Preferenz',
 'changepassword' => 'Posswort ändern',
 'prefs-editing' => 'Beorweiten',
-'prefs-edit-boxsize' => 'Gress vom Beorweitungsfenster',
 'rows' => 'Zeiln:',
 'columns' => 'Spoiten',
 'searchresultshead' => 'Suachen',
@@ -843,7 +842,6 @@ Stand: $4, $5 Uhr.",
 'recentchangeslinked-feed' => 'Valinkts priaffm',
 'recentchangeslinked-toolbox' => 'Endarunga af valinktn Seitn',
 'recentchangeslinked-title' => 'Endarunga wo vo „$1“ valinkt san',
-'recentchangeslinked-noresult' => 'Im ausgwejtn Zeidraum san an dena valinkdn Seitn koane Endarunga vorgnumma worn.',
 'recentchangeslinked-summary' => "Des is a Listn vo de letztn Endarunga af Seitn, de wo vo ana bstimmtn Seitn valinkt san (bzw. za ana bstimmtn Kategorie ghean).
 Seitn af [[Special:Watchlist|deina Beobochtungslistn]] san '''fett'''.",
 'recentchangeslinked-page' => 'Seitn:',
@@ -1143,7 +1141,6 @@ Waunnst dé Seiten wieder voh deiner Beówochtungslisten weggerddoah mechst, dru
 'unwatchthispage' => 'Nimmer beówochten',
 'notanarticle' => 'Koah Seiten',
 'notvisiblerev' => 'Versión is gléschd worn',
-'watchnochange' => 'Koahne dé voh dir beówochterden Seiten san wärnd dém auhzoagten Zeidraum beorwatt worn.',
 'watchlist-details' => 'Du beoochst {{PLURAL:$1|$1 Seitn}}, Dischkriaseitn ned mitgrechnad',
 'wlheader-enotif' => 'Da E-Mail-Benoochrichtigungsdeanst is aktivierd.',
 'wlheader-showupdated' => "Seiten mid noh néd gseengne Änderrungen wern '''fett''' dorgstöd.",
@@ -1668,7 +1665,6 @@ Bittscheh d' noraale Vurschau bnutzen.",
 'version-other' => 'Ånders',
 'version-mediahandlers' => 'Meediennutzung',
 'version-hooks' => "Schnidstön ''(Hooks)''",
-'version-extension-functions' => 'Funkziónsaufruaffe',
 'version-parser-extensiontags' => "Parserdaweiterrungen ''(tags)''",
 'version-parser-function-hooks' => 'Parserfunkziónen',
 'version-hook-name' => 'Schnidstönnaum',
diff --git a/languages/messages/MessagesBbc.php b/languages/messages/MessagesBbc.php
new file mode 100644 (file)
index 0000000..e5072e9
--- /dev/null
@@ -0,0 +1,12 @@
+<?php
+/** Batak Toba (Batak Toba)
+ *
+ * See MessagesQqq.php for message documentation incl. usage of parameters
+ * To improve a translation please visit http://translatewiki.net
+ *
+ * @ingroup Language
+ * @file
+ * @comment falls back to Batak Toba (Latin)
+ */
+
+$fallback = 'bbc-latn';
diff --git a/languages/messages/MessagesBbc_latn.php b/languages/messages/MessagesBbc_latn.php
new file mode 100644 (file)
index 0000000..87978dc
--- /dev/null
@@ -0,0 +1,736 @@
+<?php
+/** Batak Toba (Batak Toba)
+ *
+ * See MessagesQqq.php for message documentation incl. usage of parameters
+ * To improve a translation please visit http://translatewiki.net
+ *
+ * @ingroup Language
+ * @file
+ *
+ * @author Daniel Harahap
+ * @author Marvel manalu
+ * @author Naval Scene
+ * @author Stephensuleeman
+ * @author WBT001Erin
+ * @author WBT003Bugari
+ * @author WBT004Togu
+ * @author WBT006Hendra
+ * @author WBT009Anju
+ */
+
+$fallback = 'id';
+
+$messages = array(
+# User preference toggles
+'tog-underline' => 'Ondolhon panait',
+'tog-justify' => 'Padasip paragrap',
+'tog-hideminor' => 'Tabunihon editing na metmet di parubaan na imbaru',
+'tog-hidepatrolled' => 'Bunihon panotaan na metmet di parubaan na imbaru',
+'tog-numberheadings' => 'Bahen nomor judul otomatis',
+'tog-showtoolbar' => 'Pataridahon molo ula-ula haubaon',
+'tog-editondblclick' => 'Klik dua hali laho patotahon alaman (ringkot do JavaScript)',
+'tog-minordefault' => 'Tandai sude panotaan na metmet songon naung dipamasa',
+'tog-previewontop' => 'Patuduon preview andorang so kotak edit',
+'tog-previewonfirst' => 'Patudu pratayang di panotaan na parjolo',
+'tog-enotifwatchlistpages' => 'Tongoshon tu ahu surat elektronik molo muba sada alaman na humanat-manati',
+'tog-enotifusertalkpages' => 'Tongoshon tu ahu surat elektronik molo muba alaman panghataionku',
+'tog-enotifminoredits' => 'Tong ma tongoshon surat elektronik tu ahu diparubaan na metmet',
+'tog-enotifrevealaddr' => 'Papatar alamat surat elektronikku tikki notifikasi surat elektronik',
+'tog-shownumberswatching' => 'Patuduhon godang ni pamareso',
+'tog-oldsig' => 'Tandatangani saonari:',
+'tog-forceeditsummary' => 'Paingot ahu molo bongot tu poti panotaan na rumar',
+'tog-watchlisthideown' => 'Bunihon na hupatota sian pamareso',
+'tog-showhiddencats' => 'Papatar angka kategori na buni',
+
+'underline-always' => 'Tongtong',
+'underline-never' => 'Ndang hea masa',
+
+# Dates
+'sunday' => 'Ari Minggu',
+'monday' => 'Ari Senen',
+'tuesday' => 'Ari Selasa',
+'wednesday' => 'Ari Rabu',
+'thursday' => 'Ari Kamis',
+'friday' => 'Ari Jumat',
+'saturday' => 'Ari Sabtu',
+'sun' => 'Mgg',
+'mon' => 'Snn',
+'tue' => 'Sls',
+'wed' => 'Rb',
+'thu' => 'Kms',
+'fri' => 'Jmt',
+'sat' => 'Sbt',
+'january' => 'Sipaha Sampulu',
+'february' => 'Li',
+'march' => 'Hurung',
+'april' => 'Sipaha Sada',
+'may_long' => 'Sipaha Dua',
+'june' => 'Sipaha Tolu',
+'july' => 'Sipaha Opat',
+'august' => 'Sipaha Lima',
+'september' => 'Sipaha Onom',
+'october' => 'Sipaha Pitu',
+'november' => 'Sipaha Uwalu',
+'december' => 'Sipaha Sia',
+'january-gen' => 'Sipaha Sampulu',
+'february-gen' => 'Li',
+'march-gen' => 'Hurung',
+'april-gen' => 'Sipaha Sada',
+'may-gen' => 'Sipaha Dua',
+'june-gen' => 'Sipaha Tolu',
+'july-gen' => 'Sipaha Opat',
+'august-gen' => 'Sipaha Lima',
+'september-gen' => 'Sipaha Onom',
+'october-gen' => 'Sipaha Pitu',
+'november-gen' => 'Sipaha Uwalu',
+'december-gen' => 'Sipaha Sia',
+'jan' => 'Sipaha Sampulu',
+'feb' => 'Li',
+'mar' => 'Hurung',
+'apr' => 'Sipaha Sada',
+'may' => 'Sipaha Dua',
+'jun' => 'Sipaha Tolu',
+'jul' => 'Sipaha Opat',
+'aug' => 'Sipaha Lima',
+'sep' => 'Sipaha Onom',
+'oct' => 'Sipaha Pitu',
+'nov' => 'Sipaha Uwalu',
+'dec' => 'Sipaha Sia',
+
+# Categories related messages
+'pagecategories' => '{{PLURAL:$1|Horong|Angka horong}}',
+'category_header' => 'Angka alaman di horong "$1"',
+'subcategories' => 'Horong na metmet',
+'category-media-header' => 'Media dibagasan horong  "$1"',
+'category-empty' => '"Ndang adong alaman manang media di horong on nuaeng."',
+'hidden-categories' => '{{PLURAL:$1|Horong na buni|Angka horong na buni}}',
+'hidden-category-category' => 'Kategori na buni',
+'category-subcat-count' => '{{PLURAL:$2|Horong on marisi {{PLURAL:$1|$1 horong na metmet}} sian sude $2.}}',
+'category-article-count' => '{{PLURAL:$2|Horong on marisi {{PLURAL:$1|$1 alaman}}, sian sude $2.}}',
+'category-file-count' => '{{PLURAL:$2|Horong on holan marisi berkas{{PLURAL:$1|$1 alaman}}, sian sude $2.}}',
+'listingcontinuesabbrev' => 'udut.',
+'broken-file-category' => 'Alaman dohot gombaran na sega',
+
+'about' => 'Taringot',
+'article' => 'alaman isi',
+'newwindow' => '(ungkap ni pandiloi na imbaru)',
+'cancel' => 'Sundati',
+'moredotdotdot' => 'Tambai',
+'mypage' => 'Alaman',
+'mytalk' => 'Pangkataion',
+'navigation' => 'Angka ula-ula laho patuduhon dalan dohot luat',
+'and' => '&#32;dohot',
+
+# Cologne Blue skin
+'qbfind' => 'Jumpangi',
+'qbedit' => 'Patota',
+'qbpageoptions' => 'Alaman on',
+'qbmyoptions' => 'Alaman niiba',
+'faq' => 'FAQ',
+'faqpage' => 'Project:FAQ',
+
+# Vector skin
+'vector-action-addsection' => 'Bagian na imbaru',
+'vector-action-delete' => 'Sesa',
+'vector-action-move' => 'Pahusor',
+'vector-action-protect' => 'Ramoti',
+'vector-action-undelete' => 'unang sesa',
+'vector-action-unprotect' => 'Uba parlindungan',
+'vector-view-create' => 'Tompa',
+'vector-view-edit' => 'Paubah',
+'vector-view-history' => 'Patudu andorang na',
+'vector-view-view' => 'Jaha',
+'vector-view-viewsource' => 'Ida haroanna',
+'actions' => 'Pangulahonon',
+'namespaces' => 'Inganan ni goar',
+'variants' => 'Angka ragam',
+
+'errorpagetitle' => 'Sega',
+'returnto' => 'Mulak tu $1.',
+'tagline' => 'Sian {{SITENAME}}',
+'help' => 'Urupi',
+'search' => 'Diori',
+'searchbutton' => 'Diori',
+'go' => 'Laho tu',
+'searcharticle' => 'Laho tu',
+'history' => 'Alaman turiturian',
+'history_short' => 'Angka siingoton',
+'printableversion' => 'versi na boi dicetak',
+'permalink' => 'Pangait na togu',
+'view' => 'Ida',
+'edit' => 'Patota',
+'create' => 'Tompa',
+'editthispage' => 'Patota alaman on',
+'create-this-page' => 'Bahen alaman on',
+'delete' => 'Sesa',
+'deletethispage' => 'Sesa alaman on',
+'undelete_short' => 'Sundat sesa $1 {{PLURAL:$1|panotaan|panotaan}}',
+'protect' => 'Ramoti',
+'protect_change' => 'Pauba',
+'newpage' => 'Alaman na imbaru',
+'talkpage' => 'Hatahon alaman on',
+'talkpagelinktext' => 'Pangkataion',
+'personaltools' => 'Ula-ula ni sasahalak',
+'postcomment' => 'Bagian imbaru',
+'talk' => 'Panghataion',
+'views' => 'Hataridaan',
+'toolbox' => 'Poti ulaula',
+'userpage' => 'Ida alaman ni pamangke',
+'viewhelppage' => 'Ida alaman pangurupion',
+'viewtalkpage' => 'Ida alaman panghataion',
+'otherlanguages' => 'Di bagasan parhataan na asing',
+'redirectedfrom' => '(Ulanghon sian $1)',
+'lastmodifiedat' => 'Alaman on parpudi di uba ari $2, topet $1.',
+'viewcount' => 'Alaman on nungga dibongoti {{PLURAL:$1|sahali|$1 hali}}',
+'protectedpage' => 'Alaman na di jaga',
+'jumpto' => 'Manimbung tu:',
+'jumptonavigation' => 'angka ula-ula laho patuduhon dalan dohot luat',
+'jumptosearch' => 'Diori',
+'pool-timeout' => 'Suda tingki paimahon hincu',
+'pool-errorunknown' => 'Hasalaan na so binoto',
+
+# All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
+'aboutsite' => 'Taringot {{SITENAME}}',
+'aboutpage' => 'Project:Taringot tu',
+'copyright' => 'Sude siguriton rade saguru tu $1.',
+'copyrightpage' => '{{ns:project}}:Hak manopa',
+'currentevents' => 'Na tongon masa',
+'currentevents-url' => 'Project:Na masa nuaeng',
+'disclaimers' => 'Panyakalon',
+'disclaimerpage' => 'Project:Pamorsoon umum',
+'edithelp' => 'Pangurupion laho patotahon',
+'helppage' => 'Help:Isi',
+'mainpage' => 'Pogu ni Alaman',
+'mainpage-description' => 'Pogu ni alaman',
+'portal' => 'Harbangan ni punguan',
+'portal-url' => 'Project:Harbangan ni punguan',
+
+'badaccess-group0' => 'Dang diloas hamu laho mangulahon na pinangidomu',
+
+'ok' => 'OK',
+'retrievedfrom' => 'Dijalo sian "$1"',
+'youhavenewmessages' => 'Adong di ho $1 ($2).',
+'newmessageslink' => 'Tona na imbaru',
+'newmessagesdifflink' => 'Parubaan na parpudi',
+'youhavenewmessagesmulti' => 'Adong tu ho tona na imbaru di $1',
+'editsection' => 'Patota',
+'editold' => 'patota',
+'viewsourceold' => 'Bereng harorona',
+'editlink' => 'Patota',
+'viewsourcelink' => 'Ida ma mual',
+'editsectionhint' => 'Patota ponggol: $1',
+'toc' => 'Isi',
+'showtoc' => 'Papatar',
+'hidetoc' => 'Bunihon',
+'collapsible-collapse' => 'Pagelleng',
+'collapsible-expand' => 'Paherbang',
+'thisisdeleted' => 'Ida manang Paulak $1?',
+'viewdeleted' => 'Ida $1?',
+'page-atom-feed' => 'Pele atom "$1"',
+'red-link-title' => '$1 (alaman naso adong dope)',
+'sort-descending' => 'Pajojor lam toru',
+'sort-ascending' => 'Pajojor lam timbo',
+
+# Short words for each namespace, by default used in the namespace tab in monobook
+'nstab-main' => 'Alaman',
+'nstab-user' => 'Pamangke',
+'nstab-special' => 'Alaman na marhasurungan',
+'nstab-project' => 'Alaman ulaon',
+'nstab-image' => 'Berkas',
+'nstab-mediawiki' => 'Tona',
+'nstab-template' => 'Templat',
+'nstab-help' => 'Alaman pangurupion',
+'nstab-category' => 'Hategori',
+
+# General errors
+'error' => 'Hasesega',
+'fileappenderror' => 'Ndang boi pamasuhon "$1" tu "$2".',
+'badarticleerror' => 'Ulaon on dang boi i ulahon di alaman on',
+'cannotdelete-title' => 'Ndang boi manesa alaman "$1"',
+'badtitle' => 'Ulu ni surat na rumar',
+'viewsource' => 'Ida haroanna',
+'namespaceprotected' => "Ndang diloas hamu laho patotahon alaman di '''$1''' inganan ni goar",
+
+# Virus scanner
+'virus-unknownscanner' => 'Antivirus ndang ditanda:',
+
+# Login and logout pages
+'welcomeuser' => 'Horas, $1 !',
+'yourname' => 'Goar pamangke',
+'userlogin-yourname' => 'Siparhaseang',
+'userlogin-yourname-ph' => 'Pamasuk goarmu',
+'yourpassword' => 'Hata hincu:',
+'userlogin-yourpassword' => 'HAta hinsu',
+'userlogin-yourpassword-ph' => 'Pamasuk hata hinsu',
+'yourpasswordagain' => 'Ulanghon surat hata hincu:',
+'userlogin-remembermypassword' => 'Paingot ahu',
+'password-change-forbidden' => 'Ndang boi ubaonmu hata hincu di wiki on',
+'login' => 'Bongot tu log',
+'nav-login-createaccount' => 'Bongot tu log/ bahen akun',
+'loginprompt' => 'Ikkon dipangolu do "cookies" laho bongot log tu {{SINTENAME}}.',
+'userlogin' => 'Bongot tu log/ bahen akun',
+'userlogout' => 'Haruar log',
+'userlogin-noaccount' => 'Ndang adong akun',
+'userlogin-joinproject' => 'Parsidohot',
+'nologin' => 'Ndang adong akun? $1.',
+'nologinlink' => 'Bahen sada akun',
+'createaccount' => 'Bahen akun na imbaru',
+'gotaccount' => 'Nungga adong akunmu? $1',
+'gotaccountlink' => 'Bongot tu log',
+'helplogin-url' => 'Pangurupion: Masuk tu bagasan',
+'userlogin-helplink' => 'MediaWiki:pangurupion bongot tu bagas',
+'createaccountreason' => 'Alanan',
+'createaccounterror' => 'Ndang boi manopa akun: $1',
+'nouserspecified' => 'Ingkon pamasukonmuna goar ni pamangke',
+'mailmypassword' => 'Tongoshon hata hincu na imbaru',
+'emailnotauthenticated' => 'Alamat ni surat elektronikmuna ndang dope dipareso. Andorang so dipareso ndang boi pangkeonmuna rumang surat elektronik.',
+'emailconfirmlink' => 'Tolopi alamat surat elektronikmuna',
+'emaildisabled' => 'Ndang boi situs on manongos surat elekronik',
+'accountcreated' => 'Akun nunga ditopa',
+'login-abort-generic' => 'Ndang marhasil bongot - Dipaso ma',
+'loginlanguagelabel' => 'Hata: $1',
+
+# Change password dialog
+'resetpass' => 'Pauba hata hinsu',
+'oldpassword' => 'Hata hinsu na leleng',
+'newpassword' => 'Password naimbaru',
+'resetpass-submit-loggedin' => 'Pauba hata hinsu',
+'resetpass-submit-cancel' => 'Sundati',
+'resetpass-temp-password' => 'Hata hinsu parsatongkinan',
+
+# Special:PasswordReset
+'passwordreset-username' => 'Goar pamangke',
+'passwordreset-domain' => 'Domain:',
+
+# Special:ChangeEmail
+'changeemail-none' => '(Ndada)',
+'changeemail-cancel' => 'Sundati',
+
+# Edit page toolbar
+'bold_sample' => 'Surat tobal',
+'bold_tip' => 'Surat na hapal',
+'italic_sample' => 'Guratan Italic',
+'italic_tip' => 'surat teleng',
+'link_sample' => 'Goar ni pangait',
+'link_tip' => 'Pangait di bagasan',
+'extlink_sample' => 'http://www.example.com goar ni pangait',
+'extlink_tip' => 'Pangait parduru (ingot mulai dohot http:// )',
+'headline_sample' => 'Ulu ni surat',
+'nowiki_sample' => 'Pamasuk siguraton na so boi ubaon',
+'media_tip' => 'Pangait ni berkas',
+'sig_tip' => 'Tanda tangan pake pananda tingki',
+'hr_tip' => 'Garis na adar',
+
+# Edit pages
+'minoredit' => 'Panotaan na metmet',
+'watchthis' => 'Parrohahon alaman on',
+'savearticle' => 'Simpan alaman',
+'preview' => 'Andorang pataridahon',
+'showpreview' => 'Patudu pratayang',
+'showdiff' => 'Ida parubahan',
+'anoneditwarning' => "'''Paminsangon:''' Ndang bongot tu log dope hamu.
+Di surathon do alamat IP mu di turiturian ni alaman on.",
+'blockednoreason' => 'ndang adong alana na dilehon',
+'loginreqpagetext' => 'Ingkon $1 do hamu laho mamereng alaman na asing.',
+'accmailtitle' => 'Hata hincu nunga ditongos.',
+'newarticle' => '(Imbaru)',
+'noarticletext' => 'Ndang adong siguriton di alaman on saonari. Parhaseang ma[[Special:Search/{{PAGENAME}}|laho mandiori judul ni alaman on]] di alaman na asing, <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} mandiori log na mardomu], manang [{{fullurl:{{FULLPAGENAME}}|action=edit}} laho manota alaman on]</span>.',
+'noarticletext-nopermission' => 'Ndang adong siguriton di alaman on saonari. Parhaseang ma[[Special:Search/{{PAGENAME}}|laho mandiori goar ni alaman on]] di alaman na asing, manang <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} mandiori angka log na mardomu]</span>, alai dang diloas hamu lahon mamungka alaman on.',
+'previewnote' => "'''Ingot ma holan sada andoramg pataridahon do on.'''
+Parubaan na binahenmu dang di simpan dope!",
+'editing' => 'Manota $1',
+'creating' => 'mambahen',
+'editingsection' => 'Manota $1 (ponggol)',
+'templatesused' => '{{PLURAL:$1|Templat|Angka templat}} na diparhaseang di alaman on:',
+'template-protected' => '(dijaga)',
+'template-semiprotected' => '(ndang apala sude diramoti)',
+'hiddencategories' => 'Alaman on ima sada sian {{PLURAL:$1|1 horong na buni|$1 horong na buni}}:',
+'moveddeleted-notice' => 'Alaman on nungnga disesa.',
+
+# Parser/template warnings
+'post-expand-template-inclusion-warning' => 'Pinsangpinsang: Lobi do balga ni templat on. Pigapiga templat gabe dipasiding.',
+'post-expand-template-inclusion-category' => 'Angka alaman na balgana lobi',
+
+# History pages
+'viewpagelogs' => 'Pataridahon angka log ni alaman on',
+'currentrev-asof' => 'Panotaan parpudi ni $1',
+'revisionasof' => 'Panotaan songon $1',
+'revision-info' => 'Parubaan ni $1; $2',
+'previousrevision' => '←Revisi andorang na',
+'nextrevision' => 'Panotaan na mangihut→',
+'currentrevisionlink' => 'Panotaan na parpudi',
+'cur' => 'nuaeng',
+'next' => 'udutna',
+'last' => 'andorang',
+'page_first' => 'parjolo',
+'page_last' => 'parpudi',
+'history-show-deleted' => 'Holan na disesa',
+'histfirst' => 'Parjolo sahali',
+'histlast' => 'parpudi sahali',
+
+# Revision feed
+'history-feed-item-nocomment' => '$1 di $2',
+
+# Revision deletion
+'rev-delundel' => 'patarida/tabunihon',
+'rev-showdeleted' => 'Paida',
+'revdelete-log' => 'Alana',
+'revdel-restore' => 'Pauba pardompahan',
+'revdel-restore-deleted' => 'Patota naung di sesa',
+'revdel-restore-visible' => 'revisi na tarbereng',
+
+# Merge log
+'revertmerge' => 'Sundati Pardomuan',
+
+# Diffs
+'lineno' => 'Baris $1:',
+'editundo' => 'Paulak',
+
+# Search results
+'searchresults' => 'Hasil na niluluan',
+'searchresults-title' => 'Hasil mandiori tu "$1"',
+'prevn' => 'andorang so {{PLURAL:$1|$1}}',
+'nextn' => 'Ulaon na naen sitoruson {{PLURAL:$1|$1}}',
+'prevn-title' => 'Andorang so $1 {{PLURAL:$1|hasil|angka hasil}}',
+'nextn-title' => 'Ulaon na naen sitoruson tu $1 {{PLURAL:$1|result|results}}',
+'shown-title' => 'Patuduhon $1 {{PLURAL:$1|hasil|angka hasil}} ganup alaman',
+'viewprevnext' => 'Bereng ($1{{int:pipe-separator}}$2)($3)',
+'searchmenu-exists' => "'''Adong sada alaman na digoari \"[[:\$1]]\" di wiki on.'''",
+'searchmenu-new' => "'''Bahen alaman \"[[:\$1]]\" di wiki on!'''",
+'searchprofile-articles' => 'Alaman isi',
+'searchprofile-project' => 'Alaman pangurupion dohot proyek',
+'searchprofile-images' => 'Akat na godang gunana',
+'searchprofile-everything' => 'Sasude',
+'searchprofile-advanced' => 'Timbul',
+'searchprofile-articles-tooltip' => 'Mandiori di $1',
+'searchprofile-project-tooltip' => 'Mandiori di $1',
+'searchprofile-images-tooltip' => 'Mandiori berkas',
+'searchprofile-everything-tooltip' => 'Mandiori di sude inganan (dohot di alaman panghataion)',
+'searchprofile-advanced-tooltip' => 'Mandiori pake inganan ni goar',
+'search-result-size' => '$1 ({{PLURAL:$2|1 hata|$2 hata}})',
+'search-redirect' => '(ualanghon $1)',
+'search-section' => '(ponggol $1)',
+'search-suggest' => 'On do ra maksudmu: $1',
+'searchrelated' => 'marpandomuan',
+'searchall' => 'sude',
+'showingresultsheader' => "{{PLURAL:$5|Hasil '''$1''' sian '''$3'''|Hasil '''$1 - $2''' sian '''$3'''}} tu '''$4'''",
+'search-nonefound' => 'Ndang adong hasil na suman tu pangidoan',
+'powersearch-toggleall' => 'Sude',
+'powersearch-togglenone' => 'Ndang adong',
+
+# Preferences page
+'mypreferences' => 'Preferensi',
+'searchresultshead' => 'diori',
+'youremail' => 'Tongos surel:',
+'yourrealname' => 'Goar na toho',
+'gender-male' => 'Baoa',
+'gender-female' => 'borua',
+
+# Rights
+'right-read' => 'Manjaha alaman',
+
+# Special:Log/newusers
+'newuserlogpage' => 'Log pamarhaseang na imbaru',
+
+# Associated actions - in the sentence "You do not have permission to X"
+'action-edit' => 'Patota alaman on',
+
+# Recent changes
+'nchanges' => '$1 {{PLURAL:$1|parubaan}}',
+'recentchanges' => 'Parubahan naimbaru',
+'recentchanges-legend' => 'sipilliton sian parubaan na imbaru',
+'recentchanges-label-newpage' => 'Panotaan on mamungka alaman na imbaru',
+'recentchanges-label-minor' => 'Sada panotaan na metmet',
+'recentchanges-label-bot' => 'Panotaan on diulahon bot',
+'recentchanges-label-unpatrolled' => 'Panotaan on ndang dipamanat dope',
+'rcnote' => "Na di toru on ima {{PLURAL:$1|'''1'''|'''$1'''}} perubaan  di bagasan {{PLURAL:$2|'''1''' ari|'''$2''' ari}} na parpudi, olat ni $4 pukul $5.",
+'rclistfrom' => 'Patuduhon parubaan na imbaru mamungka sian $1',
+'rcshowhideminor' => '$1 panotaan na metmet',
+'rcshowhidebots' => '$1 bot',
+'rcshowhideliu' => '$1 pamarhaseang bongot tu log',
+'rcshowhideanons' => '$1 pamarhaseang ndang margoar',
+'rcshowhidepatr' => '$1 panotaan na dipamanat',
+'rcshowhidemine' => '$1 na hupatota',
+'rclinks' => 'Patuduhon $1 parubaan na imbaru dibagasan na $2 ari on<br />$3',
+'diff' => 'duru',
+'hist' => 'turi',
+'hide' => 'Bunihon',
+'show' => 'Patuduhon',
+'minoreditletter' => 'm',
+'newpageletter' => 'I',
+'boteditletter' => 'b',
+'rc-enhanced-expand' => 'Pataridahon panjamotan (ringkot do JavaScript)',
+'rc-enhanced-hide' => 'Bunihon panjamotan',
+
+# Recent changes linked
+'recentchangeslinked' => 'Angka parubaan na mardomu tu',
+'recentchangeslinked-toolbox' => 'Angka parubaan na mardomu tu',
+'recentchangeslinked-title' => 'Parubaan na mardomu tu "$1"',
+'recentchangeslinked-page' => 'Goar ni alaman:',
+'recentchangeslinked-to' => 'Pataridahon parubaan ni angka alaman na marpandomuan dohot alaman on',
+
+# Upload
+'upload' => 'Tambahon berkas',
+'filedesc' => 'Panimpulan',
+
+'license' => 'Ragam ni lisensi:',
+'license-header' => 'Ragam ni lisensi',
+'nolicense' => 'Ndang adong na i pillit',
+
+# File description page
+'file-anchor-link' => 'Berkas',
+'filehist' => 'Turiturian ni berkas',
+'filehist-help' => 'Piltik di sada tanggal/tingki laho mamereng berkas on di tingki i.',
+'filehist-revert' => 'Sundati',
+'filehist-current' => 'masa nuaeng',
+'filehist-datetime' => 'Pukkul',
+'filehist-thumb' => 'Thumbnail',
+'filehist-thumbtext' => 'Ganaganaan tu versi songon $1',
+'filehist-user' => 'Pamangke',
+'filehist-dimensions' => 'Dimensi',
+'filehist-comment' => 'Hata panambai',
+'imagelinks' => 'Parhaseangon ni berkas',
+'linkstoimage' => '{{PLURAL:$1|alaman pangait|$1 angka alaman na marpangait}} tu berkas on:',
+'nolinkstoimage' => 'Ndang adong alaman na marpangait tu berkas on.',
+'sharedupload-desc-here' => 'Berkas on sian $1 jala olo do diparhaseang angka proyek na asing. Hatorangan na ima [$2 alaman hatoranganna] dipatorang di toru on.',
+
+# Random page
+'randompage' => 'Alaman sursar',
+
+# Statistics
+'statistics' => 'Statistik',
+
+'disambiguationspage' => 'Template:Disambig',
+
+'pageswithprop-submit' => 'Laho tu',
+
+# Miscellaneous special pages
+'nbytes' => '$1 {{PLURAL:$1|byte|bites}}',
+'nmembers' => '$1 {{PLURAL:$1|isi|angka isi}}',
+'usercreated' => '{{GENDER:$3|Dipungka}} ari $1 topet $2',
+'newpages' => 'Angka alaman na imbaru',
+'move' => 'Paorot',
+'pager-newer-n' => '{{PLURAL:$1|na imbaru|na imbaru $1}}',
+'pager-older-n' => '{{PLURAL:$1|na leleng|$1 na lumeleng}}',
+
+# Book sources
+'booksources-go' => 'Torushon',
+
+# Special:Log
+'log' => 'Angka log',
+
+# Special:AllPages
+'allpages' => 'Sude alaman',
+'alphaindexline' => '$1 tu $2',
+'allarticles' => 'Sude alaman',
+'allpagessubmit' => 'Torushon',
+
+# Special:Categories
+'categories' => 'Angka horong',
+
+# Special:LinkSearch
+'linksearch-line' => '$1 marpangait sian $2',
+
+# Special:ListGroupRights
+'listgrouprights-members' => '(daftar ni parsidohot)',
+
+# Email user
+'emailuser' => 'Surel pamarhaseang on',
+'emailfrom' => 'Sian',
+'emailto' => 'Tu',
+
+# Watchlist
+'watchlist' => 'Daftar na pinarrohahon',
+'mywatchlist' => 'Daftar na pinarrohahon',
+'watchlistfor2' => 'Laho tu $1 $2',
+'watch' => 'Parrohahon',
+'unwatch' => 'Sundat mamarrohahon',
+'wlshowlast' => 'Pataridahon $1 jom $2 ari $3 na parpudi',
+
+# Delete
+'actioncomplete' => 'Sae ulaon',
+'actionfailed' => 'Ulaon sundat',
+'dellogpage' => 'Log pasesaan',
+
+# Rollback
+'rollbacklink' => 'Paundur',
+
+# Protect
+'protectlogpage' => 'Log panghokhop',
+'protectedarticle' => 'manjaga "[[$1]]"',
+
+# Undelete
+'undeletelink' => 'Ida/paulak',
+'undeleteviewlink' => 'Ida',
+'undelete-show-file-submit' => 'Olo',
+
+# Namespace form on various pages
+'namespace' => 'Inganan ni goar:',
+'invert' => 'Paulak napinillit',
+'blanknamespace' => '(Rumingkot)',
+
+# Contributions
+'contributions' => 'Na niula {{GENDER:$1|pamarhaseang}}',
+'mycontris' => 'Angka silua',
+'contribsub2' => 'Laho tu $1 ($2)',
+'uctop' => 'di ginjang',
+'month' => 'Sian bulan (dohot andorang na)',
+'year' => 'Sian taon (dohot andorang na):',
+
+'sp-contributions-blocklog' => 'olati log',
+'sp-contributions-logs' => 'log',
+'sp-contributions-talk' => 'Pangkataion',
+'sp-contributions-username' => 'Alamat IP manang goar:',
+'sp-contributions-toponly' => 'Pataridahon holan panotaan parginjang',
+'sp-contributions-submit' => 'Diori',
+
+# What links here
+'whatlinkshere-title' => 'Angka alaman na marpangait tu "$1"',
+'whatlinkshere-page' => 'Alaman:',
+'linkshere' => "Angka alaman on marpangait tu '''[[:$1]]''':",
+'nolinkshere' => "Ndang adong alaman na marpangait tu '''[[:$1]]'''.",
+'isimage' => 'pangait berkas',
+'whatlinkshere-prev' => '{{PLURAL:$1|andorang so $1}}',
+'whatlinkshere-next' => '{{PLURAL:$1|udut na|udut na $1}}',
+'whatlinkshere-links' => '← angka pangait',
+'whatlinkshere-hideredirs' => '$1 manguba dalan',
+'whatlinkshere-hidelinks' => '$1 pangait',
+'whatlinkshere-hideimages' => '$1 pangait berkas',
+'whatlinkshere-filters' => 'Saringan',
+
+# Block/unblock
+'ipboptions' => '2 jom:2 hours,1 ari:1 day,3 ari:3 days,1 minggu:1 week,2 minggu:2 weeks,1 bulan:1 month,3 bulan:3 months,6 bulan:6 months,1 taon:1 year,salelengna:infinite',
+'ipblocklist' => 'Angka pamarhaseang na diolati',
+'blocklink' => 'ambati',
+'unblocklink' => 'Pamago Blokir',
+'change-blocklink' => 'Paubah blokir',
+'contribslink' => 'silehon-lehon',
+'blocklogpage' => 'Olati log',
+'block-log-flags-nocreate' => 'Ndang boi mamungka akun',
+
+# Move page
+'move-page-legend' => 'Papinda alaman',
+'movelogpage' => 'Log paorothon',
+'revertmove' => 'Sundati',
+
+# Export
+'export' => 'Ekspor alaman',
+
+# Namespace 8 related
+'allmessagesname' => 'Goar',
+'allmessages-filter-submit' => 'Laho tu',
+
+# Thumbnails
+'thumbnail-more' => 'Paheba',
+
+# Tooltip help for the actions
+'tooltip-pt-userpage' => 'Alaman ni na marparhaseang',
+'tooltip-pt-mytalk' => 'Alaman Pangkataionmuna',
+'tooltip-pt-preferences' => 'Pinillit ni hamu',
+'tooltip-pt-watchlist' => 'punguan angka goar ni alaman',
+'tooltip-pt-mycontris' => 'Daftar ni silua mu',
+'tooltip-pt-login' => 'Disosoi do hamu asa bongot tu log, alai dang pola di gogohon.',
+'tooltip-pt-logout' => 'Haruar Log',
+'tooltip-ca-talk' => 'Panghataion taringot tu alaman isi',
+'tooltip-ca-edit' => 'Boi do patotaonmu alaman on. Parhaseang tombol pratayang andorang so manimpan.',
+'tooltip-ca-addsection' => 'Mamungka bogas na imbaru',
+'tooltip-ca-viewsource' => 'Alaman on dijaga. Holan haroanna do boi berengon mu',
+'tooltip-ca-history' => 'Parubaan na parpudi di alaman on',
+'tooltip-ca-protect' => 'Hophop alamana on',
+'tooltip-ca-delete' => 'Sesa alaman on',
+'tooltip-ca-move' => 'Pindahon alaman on',
+'tooltip-ca-watch' => 'Tambahon alaman on tu daftar pamberengan hamu',
+'tooltip-ca-unwatch' => 'Sesa alaman on sian daftar na diparrohahon',
+'tooltip-search' => 'lului di bagasan wiki on',
+'tooltip-search-go' => 'Diori alaman na marnampunahon goar na tangkas molo adong',
+'tooltip-search-fulltext' => 'diori alaman na margurithon songonon',
+'tooltip-p-logo' => 'Duloi pogu ni alaman',
+'tooltip-n-mainpage' => 'Duloi pogu ni alaman',
+'tooltip-n-mainpage-description' => 'Duloi pogu ni alaman',
+'tooltip-n-portal' => 'Taringot tu ulaon, aha na boi ulaonmu,ima namandiori na adong',
+'tooltip-n-currentevents' => 'Dapoti informasi taringot tu na masa nuaeng',
+'tooltip-n-recentchanges' => 'Angka parubaan na imbaru di wiki',
+'tooltip-n-randompage' => 'Patudu Alaman na Asing',
+'tooltip-n-help' => 'Inganan mandiori alus',
+'tooltip-t-whatlinkshere' => 'Daftar ni sude alaman  wiki na marnampunahon pangait tu alaman on',
+'tooltip-t-recentchangeslinked' => 'Angka parubaan ni alaman na imbaru na marpangait tu alaman on',
+'tooltip-feed-atom' => 'Pele Atom hu alaman on',
+'tooltip-t-contributions' => 'Daftar ni tumpak ni pamarhaseang on',
+'tooltip-t-emailuser' => 'Tongoshon sada surel tu pamarhaseang on',
+'tooltip-t-upload' => 'Tambahaon angka berkas',
+'tooltip-t-specialpages' => 'Sude Alaman na Istimewa',
+'tooltip-t-permalink' => 'Pangait na togu tu parubaan ni alaman on',
+'tooltip-ca-nstab-main' => 'Dulo alaman isi',
+'tooltip-ca-nstab-user' => 'Bereng alaman ni pamarhaseang',
+'tooltip-ca-nstab-special' => 'On alaman na marhasurungan, ndang boi dipatota',
+'tooltip-ca-nstab-project' => 'Bereng alaman proyek',
+'tooltip-ca-nstab-image' => 'Bereng alaman berkas',
+'tooltip-ca-nstab-template' => 'Ida templat',
+'tooltip-ca-nstab-category' => 'Bereng alaman horong',
+'tooltip-minoredit' => 'Tandai on songon sada panotaan na metmet',
+'tooltip-save' => 'Simpan parubaan mu',
+'tooltip-preview' => 'Parrohahon parubaan mu, parhaseang on andorang so manimpan',
+'tooltip-diff' => 'Bereng parubaan na binahenmu tu siguraton',
+'tooltip-compareselectedversions' => 'Bereng aha ubana sian na dua ragam ni alaman na dipillit.',
+'tooltip-watch' => 'Tambahon alaman on tu daftar na diparrohahonmu',
+'tooltip-summary' => 'Pamasuk ringkasan pendek',
+
+# Browsing diffs
+'previousdiff' => '← Panotaan na salpu',
+'nextdiff' => 'Parubaan na imbaru →',
+
+# Media information
+'file-info-size' => '$1 × $2 piksel, balga ni berkas: $3, rumang na MIME: $4',
+'file-nohires' => 'Ndang adong resolusi natumimbo.',
+'svg-long-desc' => 'Berkas SVG, nominal $1 × $2 piksel, balga ni berkas: $3',
+'show-big-image' => 'Resolusi na umbalga',
+
+# Special:NewFiles
+'noimages' => 'Ndang adong na ni ida',
+'ilsubmit' => 'Diori',
+
+# Bad image list
+'bad_image_list' => 'Songon on ma rumangna:
+
+Holan daftar (baris na dimulai dohot tanda *) na masuk etongan. Pangait na parjolo di sada-sada baris ikkon do gabe pangait tu berkas na buruk. Pangait na manghihut di nasabaris i dietong do i pulik,ima alaman na patuduhon berkas i.',
+
+# Metadata
+'metadata' => 'Metadata',
+'metadata-help' => 'Berkas on marnampunahon informasi na asing, olo do sian kamera digital manang sian ula-ula na asing. Molo nungga dipauneune berkas on, hatoranganna olo do ndang apala toho songon informasi siang gombaran naung dipauneune on.',
+'metadata-fields' => 'Angka bidang metadata gombar na dipajojor di bagasan tona on naeng dipamasuk di hataridaan ni alaman gombar tingki tabel metadata dipametmet. Data na asing gabe dibunihon songon naung ditontuhon.
+ * make
+* model
+* datetimeoriginal
+* exposuretime
+* fnumber
+* isospeedratings
+* focallength
+* artist
+* copyright
+* imagedescription
+* gpslatitude
+* gpslongitude
+* gpsaltitude',
+
+# Exif tags
+'exif-imagewidth' => 'Bolak',
+'exif-imagelength' => 'Timbo',
+
+# External editor support
+'edit-externally' => 'Patota berkas on mamarhaseanghon ulaula parduru',
+
+# 'all' in various places, this might be different for inflected languages
+'watchlistall2' => 'Sasude',
+'namespacesall' => 'sude',
+'monthsall' => 'Sasude',
+
+# Watchlist editing tools
+'watchlisttools-edit' => 'Pataridahon jala patota daftar siparrohahonon',
+
+# Special:SpecialPages
+'specialpages' => 'Alaman na marhasurungan',
+
+# Special:Tags
+'tag-filter' => 'Saringan [[Special:Tags|tag]]:',
+
+);
index b4747a5..8faaad2 100644 (file)
@@ -363,7 +363,6 @@ $1',
 'disclaimers' => 'بی میاری گیان',
 'disclaimerpage' => 'Project:عمومی بی میاریگان',
 'edithelp' => 'کمک اصلاح',
-'edithelppage' => 'Help:اصلاح',
 'helppage' => 'Help:محتوا',
 'mainpage' => 'صفحه اصلی',
 'mainpage-description' => 'صفحه اصلی',
@@ -956,7 +955,6 @@ $1",
 'searchmenu-legend' => 'گزینه یان گردگ',
 'searchmenu-exists' => "'''صفحه گون نام \"[[\$1]]\" ته ای ویکی نیستن'''",
 'searchmenu-new' => "'''شر کن صفحه ای \"[[:\$1]]\" ته ای ویکی!'''",
-'searchhelp-url' => 'Help:محتوا',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|بروز صفحات گون پیش وند]]',
 'searchprofile-articles' => 'صفحات محتوا',
 'searchprofile-project' => 'کمک و صفحات پروژه ای',
@@ -1025,7 +1023,6 @@ $1",
 'resetprefs' => 'پاکن تغییرات ذخیره نه بوتگین',
 'restoreprefs' => 'کل پیش فرضین تنظیمات برگردین',
 'prefs-editing' => 'اصلاح',
-'prefs-edit-boxsize' => 'حد پنجره اصلاح.',
 'rows' => 'ردیفآن«',
 'columns' => 'ستون‌ان:',
 'searchresultshead' => 'گردگ',
@@ -1063,7 +1060,6 @@ $1",
 'prefs-custom-js' => 'رسمی جی‌اس',
 'prefs-reset-intro' => 'شما توانت چه ای  صفحه په واترینگ تنظیمات وت په پیش‌فرض استفاده کنیت. ای کار بازگشت‌ناپذیر انت.',
 'prefs-emailconfirm-label' => 'تایید کتن پست الکترونیک:',
-'prefs-textboxsize' => 'اندازه پنجره اصلاح',
 'youremail' => 'ایمیل:',
 'username' => 'نام کاربری:',
 'uid' => 'کاربر شناسگ:',
@@ -1279,7 +1275,6 @@ $1",
 'recentchangeslinked-feed' => 'مربوطین تغییرات',
 'recentchangeslinked-toolbox' => 'مربوطین تغییرات',
 'recentchangeslinked-title' => 'تغییراتی مربوط په "$1"',
-'recentchangeslinked-noresult' => 'هچ تغییری ته صفحات لینک بوتگین ته داتگین دوره نیست',
 'recentchangeslinked-summary' => "شی یک لیستی چه تغییراتی هستنت که نوکی اعمال بوتگنت په صفحاتی که چه یک صفحه خاصی لینک بوته( یا په اعضای یک خاصین دسته).
 صفحات ته [[Special:Watchlist| شمی لیست چارگ]] '''' پررنگنت''''",
 'recentchangeslinked-page' => 'صفحه نام:',
@@ -1755,7 +1750,6 @@ PICT # misc.
 'unwatchthispage' => 'چارگ بند کن',
 'notanarticle' => 'یک صفحه محتوا نهت',
 'notvisiblerev' => 'بازبینی حذف بوتت',
-'watchnochange' => 'هچ یک چه شمی چارتگین آیتم اصلاح نه بوتت ته ای دوره زمانی که پیش دارگ بیت.',
 'watchlist-details' => '{{PLURAL:$1|$1 صفحه|$1 صفحات}} چارتگ بیت صفحات گپ حساب نه بیگن',
 'wlheader-enotif' => 'اخطار ایمیل فعالنت.',
 'wlheader-showupdated' => "صفحات که عوض بوتگنت چه شمی آهری چارتن '''پررنگ''' پیش دراگ بنت.",
@@ -2885,7 +2879,6 @@ $5
 # Separators for various lists, etc.
 'semicolon-separator' => ';',
 'colon-separator' => ':&#32;',
-'autocomment-prefix' => '-',
 
 # Multipage image navigation
 'imgmultipageprev' => '← پیشگین صفحه',
@@ -3010,7 +3003,6 @@ $5
 'version-other' => 'دگر',
 'version-mediahandlers' => 'دست گروک مدیا',
 'version-hooks' => 'گیر کنت',
-'version-extension-functions' => 'عملگران الحاقی',
 'version-parser-extensiontags' => 'برچسپان الحاقی تجزیه گر',
 'version-parser-function-hooks' => 'عمل گر تجزیه کنوک گیر کت',
 'version-hook-name' => 'نام گیر',
index 4a44132..fb5044d 100644 (file)
@@ -296,6 +296,7 @@ $messages = array(
 'create-this-page' => 'Muknaon ining pahina',
 'delete' => 'Puraon',
 'deletethispage' => 'Puraon ining pahina',
+'undeletethispage' => 'Balikon sa pagkapura ining pahina',
 'undelete_short' => 'Bawia an pagpurà kan {{PLURAL:$1|sarong pagliwat|$1 mga pagliwat}}',
 'viewdeleted_short' => 'Hilngon {{PLURAL:$1|sarong pinara na pagliwat|$1 mga pinara na pagliwat}}',
 'protect' => 'Protektari',
@@ -322,13 +323,13 @@ $messages = array(
 'categorypage' => 'Tanawon an pahina nin kategorya',
 'viewtalkpage' => 'Tanawon an orolayan',
 'otherlanguages' => 'Sa ibang mga lengguwahe',
-'redirectedfrom' => '(Piglikay halì sa $1)',
-'redirectpagesub' => 'Ilikáy an pahina',
-'lastmodifiedat' => 'Huring pigbàgo an pahinang iní $2 kan $1.',
-'viewcount' => 'Binukasán ining pahina nin {{PLURAL:$1|sarong beses|nin $1 beses}}.',
+'redirectedfrom' => '(Redirektado gikan sa $1)',
+'redirectpagesub' => 'Redirektang pahina',
+'lastmodifiedat' => 'Ining pahina huring pinagbago kan $1, mga alas $2.',
+'viewcount' => 'Ining pahina pinaglaog nin {{PLURAL:$1|sarong beses|nin $1 beses}}.',
 'protectedpage' => 'Protektadong pahina',
 'jumpto' => 'Magluksó sa:',
-'jumptonavigation' => 'paglibotlibot',
+'jumptonavigation' => 'nabigasyon',
 'jumptosearch' => 'hanapon',
 'view-pool-error' => 'Sori tabi, an mga server kargado sa oras na ini.
 Grabe kadakol an mga paragamit na pinagprubaran mahiling an pahinang ini.
@@ -341,25 +342,24 @@ $1',
 
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
 'aboutsite' => 'Dapít sa {{SITENAME}}',
-'aboutpage' => 'Project:Manonongód',
-'copyright' => 'Makukua an laog sa $1.',
-'copyrightpage' => '{{ns:project}}:Mga derechos nin parásurat',
-'currentevents' => 'Mga pangyayari sa ngunyán',
+'aboutpage' => 'Project:Mapanonongód',
+'copyright' => 'An kalamnan manunumpungan sa laog kan $1.',
+'copyrightpage' => '{{ns:project}}:Mga Katanosang pansurat',
+'currentevents' => 'Sa ngunyan na mga pangyayari',
 'currentevents-url' => 'Project:Mga pangyayari sa ngunyán',
-'disclaimers' => 'Mga pagpabayà',
-'disclaimerpage' => 'Project:Pangkagabsán na pagpabayà',
-'edithelp' => 'Paghirá kan pagtabang',
-'edithelppage' => 'Help:Pagliwát',
-'helppage' => 'Help:Mga laóg',
+'disclaimers' => 'Mga Pangindahan',
+'disclaimerpage' => 'Project:Pangkagabsán na pangindahan',
+'edithelp' => 'Pantabang sa pagliliwat',
+'helppage' => 'Help:Mga Kalamnan',
 'mainpage' => 'Panginot na Pahina',
 'mainpage-description' => 'Panginot na Pahina',
-'policy-url' => 'Project:Palakáw',
+'policy-url' => 'Project:Kalakawan',
 'portal' => 'Portal kan komunidad',
 'portal-url' => 'Project:Portal kan Komunidad',
-'privacy' => 'Palakáw nin pribasidad',
-'privacypage' => 'Project:Palakaw nin pribasidad',
+'privacy' => 'Kalakawan nin pribasidad',
+'privacypage' => 'Project:Kalakawan nin Pribasidad',
 
-'badaccess' => 'Salang permiso',
+'badaccess' => 'Kasalaan sa permiso',
 'badaccess-group0' => 'Dai ka tinotogotan na gibohon an aksyon na saimong hinahagad.',
 'badaccess-groups' => 'An aksyon na saimong pinaghahagad limitado sa mga parágamit na {{PLURAL:$2|an grupo|saro sa mga grupo}}: $1.',
 
@@ -380,7 +380,7 @@ $1',
 'editold' => 'Liwatón',
 'viewsourceold' => 'hilingón an ginikánan',
 'editlink' => 'liwatón',
-'viewsourcelink' => 'hilingón an toltólan',
+'viewsourcelink' => 'tanawon an ginikanan',
 'editsectionhint' => 'Liwatón an seksyon: $1',
 'toc' => 'Mga laóg',
 'showtoc' => 'ipahilíng',
@@ -389,9 +389,9 @@ $1',
 'collapsible-expand' => 'Pinahalawig',
 'thisisdeleted' => 'Hilingón o isulít an $1?',
 'viewdeleted' => 'Hilingón an $1?',
-'restorelink' => '{{PLURAL:$1|sarong pinarang paghirá|$1 na pinarang paghirá}}',
+'restorelink' => '{{PLURAL:$1|sarong pinagpurang pagliwat|$1 na pinagpurang mga pagliwat}}',
 'feedlinks' => 'Hungit:',
-'feed-invalid' => 'Bawal na tipo nin hungit na subkripsyon.',
+'feed-invalid' => 'Imbalidong tipo nin hungit sa subkripsyon.',
 'feed-unavailable' => 'Mayò an mga sindikasyon na hungit',
 'site-rss-feed' => '$1 Hungit nin RSS',
 'site-atom-feed' => '$1 Hungit nin Atomo',
@@ -498,6 +498,8 @@ $2',
 'namespaceprotected' => "Mayô kang permisong maghirá kan mga páhina sa '''$1''' ngaran-espacio.",
 'customcssprotected' => 'Ika mayong permiso sa pagliwat kaining pahinang CSS, nin huli ta ini naglalaman kan personal na panuytoy (settings) kan ibang paragamit.',
 'customjsprotected' => 'Ika mayong permiso sa pagliwat kaining pahinang JavaScript, nin huli ta ini naglalaman kan personal na panuytoy (settings) kan ibang paragamit.',
+'mycustomcssprotected' => 'Ika mayo nin permiso sa pagliwat kaining CSS na pahina.',
+'mycustomjsprotected' => 'Ika mayo nin permiso sa pagliwat kaining JavaScript na pahina.',
 'ns-specialprotected' => 'An mga pahinang nasa {{ns:special}} na liang-liang dai pwedeng hirahón.',
 'titleprotected' => 'Ining titulo pinagprotektaran poon pagkamukna ni [[User:$1|$1]].
 An rason na pinagtao iyo na "\'\'$2\'\'".',
@@ -634,7 +636,7 @@ Pakilaog sana tabi nin sarong tugmadong koreo o pabayae na mayong laman an surat
 'cannotchangeemail' => 'An panindog na address sa e-surat dati mariribayan sa Wiki na ini.',
 'emaildisabled' => 'Ining sayt dae makakapagpadara nin mga e-surat.',
 'accountcreated' => 'Panindog pinagmukna na',
-'accountcreatedtext' => 'An paragamit na panindog para sa $1 pinagmukna na.',
+'accountcreatedtext' => 'An paragamit na panindog para sa [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) pinagmukna na.',
 'createaccount-title' => 'Panindog na pagmukna para sa {{SITENAME}}',
 'createaccount-text' => 'May tawong nagmukna nin sarong panindog na gamit an saimong address na e-surat sa {{SITENAME}} ($4) na may ngaran na "$2, na may sikretong panlaog na "$3".',
 'usernamehasherror' => 'Paragamit na ngaran dae puwede na igwang simbolikong mga kabtang',
@@ -670,11 +672,11 @@ Matriumpo mo nang nailaog an sekretong panlaog o nakua an bàgong temporaryong s
 
 # Special:PasswordReset
 'passwordreset' => 'Pakibago kan sekretong panlaog',
-'passwordreset-text' => 'Kumpletoha ining porma tangarig liwatong an saimong sekretong panlaog.',
+'passwordreset-text-one' => 'Kumpletuhon ining porma sa pagliwat otro kan saimong pasa-taramon.',
+'passwordreset-text-many' => '{{PLURAL:$1|Ikaag an saro sa mga pedaso nin datos sa pagliwat otro kan saimong pasa-taramon.}}',
 'passwordreset-legend' => 'Pakibago kan sekretong panlaog',
 'passwordreset-disabled' => 'An pagbago kan sekretong panlaog pinagpundo sa wiking ini.',
 'passwordreset-emaildisabled' => 'E-surat na mga estima pinag-uruntok sa wiking ini.',
-'passwordreset-pretext' => '{{PLURAL:$1||Pakilaog kan saro sa mga pedaso nin datos sa ibaba}}',
 'passwordreset-username' => 'Paragamit-ngaran:',
 'passwordreset-domain' => 'Kasakupan:',
 'passwordreset-capture' => 'Hilngon an kinaluwasang e-koreo?',
@@ -913,6 +915,7 @@ Ini dae tabi nagtao nin kapaliwanagan.',
 Ini minapahiwatig tabi na pinagpura na.',
 'edit-conflict' => 'Igwang iregularidad sa pagliwat.',
 'edit-no-change' => 'An saimong pagliwat pinagbalewala, nin huli ta mayong pagbabago an pinaghimo sa teksto.',
+'postedit-confirmation' => 'An saimong niliwat ipinagtagama na.',
 'edit-already-exists' => 'Dai maggibo an bàgong pahina.
 Igwa na kaini.',
 'defaultmessagetext' => 'Tugmadong mensahe sa teksto',
@@ -1163,7 +1166,6 @@ An mga detalye mapuwedeng matatagboan sa [{{fullurl:{{#Special:Log}}/delete|page
 'searchmenu-legend' => 'Opsyon sa paghahanap',
 'searchmenu-exists' => "'''Igwa nin sarong pahina na pinagngaranan na \"[[:\$1]]\" sa wiking ini.'''",
 'searchmenu-new' => "'''Muknaon an pahina \"[[:\$1]]\" sa wiking ini!'''",
-'searchhelp-url' => 'Help:Mga laog',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Kilyawon an mga pahina sa paagi kainin enotang panigmit]]',
 'searchprofile-articles' => 'Mga pahina nin laog',
 'searchprofile-project' => 'Mga pahina nin Tabang asin Proyekto',
@@ -1239,7 +1241,6 @@ Prubaran na panigmitan an saimong kahaputan nin ''all:'' sa paghanap kan gabos n
 'resetprefs' => 'Linigan an dae naitagamang mga kaliwatan',
 'restoreprefs' => 'Ibalik an gabos na pirmihang mga panuytoy',
 'prefs-editing' => 'Pighihira',
-'prefs-edit-boxsize' => 'Sukol kan bintana sa pagliwat.',
 'rows' => 'Mga hilera:',
 'columns' => 'Mga taytay:',
 'searchresultshead' => 'Hanápon',
@@ -1250,9 +1251,6 @@ Prubaran na panigmitan an saimong kahaputan nin ''all:'' sa paghanap kan gabos n
 'recentchangesdays-max' => 'Maksimum $1 {{PLURAL:$1|aldaw|mga aldaw}}',
 'recentchangescount' => 'Numero kan mga pagliliwat na ipapahiling na pirmihan:',
 'prefs-help-recentchangescount' => 'Kabali kaini an dae pa nahaloy na mga kaliwatan, mga historiyang pahina, asin mga talaan.',
-'prefs-help-watchlist-token' => 'An pagpapano sa parteng ini nin sarong sekretong susi magbubuswang nin RSS feed para sa saimong bantay-listahan.
-Siisay man na nakakaaram kan suri sa parteng ini makakabasa kan saimong bantay-listahan, kaya magpili nin sarong seguradong halaga.
-Uya an halaga sa random na pagbuswang na puwede mong magamit: $1',
 'savedprefs' => 'Itinagama na an mga kabôtan mo.',
 'timezonelegend' => 'Pan-oras na sona:',
 'localtime' => 'Panlokal na oras:',
@@ -1283,7 +1281,6 @@ Uya an halaga sa random na pagbuswang na puwede mong magamit: $1',
 'prefs-reset-intro' => 'Ika makakagamit kaining pahina tanganing ilapat giraray an saimong mga kabotan sa panugmad kan sayt.
 Ini dae tabi matitingkog.',
 'prefs-emailconfirm-label' => 'Kumpirmasyon sa E-koreo',
-'prefs-textboxsize' => 'Sukol kan bintana sa pagliliwat',
 'youremail' => 'E-koreo:',
 'username' => '{{GENDER:$1|Pangaran nin paragamit}}:',
 'uid' => '{{GENDER:$1|Paragamit}} ID:',
@@ -1351,6 +1348,7 @@ An saimong e-surat na adres dae ipagbuyagyag kunsoarin na an ibang paragamit mak
 'userrights-changeable-col' => 'Mga grupo na mapuwede mong baguhon',
 'userrights-unchangeable-col' => 'Mga grupo na dae mo mapuwedeng baguhon',
 'userrights-conflict' => 'Kumplikto sa katanosan nin paragamit! Pakigibo giraray kan saimong mga kaliwatan.',
+'userrights-removed-self' => 'Saimong matrayumpong pinagtangkas an sadire mong mga katanosan. Sa siring, ika dae na tabi makakalaog sa pahinang ini.',
 
 # Groups
 'group' => 'Grupo:',
@@ -1421,6 +1419,8 @@ An saimong e-surat na adres dae ipagbuyagyag kunsoarin na an ibang paragamit mak
 'right-editusercssjs' => 'Liwaton an CSS asin JavaScript na mga sagunson kan ibang mga paragamit',
 'right-editusercss' => 'Liwaton an CSS na mga sagunson kan ibang mga paragamit',
 'right-edituserjs' => 'Liwaton an JavaScript na mga sagunson kan ibang mga paragamit',
+'right-editmyusercss' => 'Liwaton an saimong sadireng paragamit na sagunson sa CSS',
+'right-editmyuserjs' => 'Liwaton an saimong sadireng paragamit na sagunson sa JavaScript',
 'right-rollback' => 'Hidaling ibalik an mga niliwat kan huring paragamit na nagliwat nin sarong partikular na pahina',
 'right-markbotedits' => 'Markahan an pinagbalik na mga niliwat bilang bot na panliwat',
 'right-noratelimit' => 'Dae magin apektado sa paagi kan rata nin mga sagkodan',
@@ -1524,7 +1524,6 @@ An saimong e-surat na adres dae ipagbuyagyag kunsoarin na an ibang paragamit mak
 'recentchangeslinked-feed' => 'Mga angay na pagbabàgo',
 'recentchangeslinked-toolbox' => 'Mga angay na pagbabàgo',
 'recentchangeslinked-title' => 'Mga pagbabàgong angay sa "$1"',
-'recentchangeslinked-noresult' => 'Warang mga pagbabago sa mga pahinang nakatakod sa itinaong pagkalawig.',
 'recentchangeslinked-summary' => "Ini an listahan kan mga pagbabagong ginibo kan dae pa sana nahaloy sa mga pahina na nakatakod gikan sa sarong pinagsambit na pahina (o sa mga miyembro kan sarong pinagsambit na kategorya).
 An mga pahina na yaon sa [[Special:Watchlist|saimong Bantay-listahan]] na '''tekstong mahibog'''.",
 'recentchangeslinked-page' => 'Pahinang ngaran:',
@@ -2162,7 +2161,6 @@ An maabot na mga pagbabâgo sa páhinang ini asin sa asosyadong páhina nin olay
 'unwatchthispage' => 'Pondohon an pagbantay',
 'notanarticle' => 'Bakong páhina nin laog',
 'notvisiblerev' => 'An huring rebisyon kan ibang paragamit pinagpura na',
-'watchnochange' => 'Mayo sa saimong mga pigbabantayan an nahira sa laog nin pinahiling na pagkalawig.',
 'watchlist-details' => '{{PLURAL:$1|$1 pahina|$1 mga pahina}} sa saimong bantay-listahan, dae binibilang an mga pahina nin orolayan.',
 'wlheader-enotif' => 'E-surat na paisi pinagpaandar na.',
 'wlheader-showupdated' => "Mga pahina na pinagriliwat poon kaidtong huri kang nagbisita sainda ipinapatanaw na '''mahîbog'''",
@@ -2415,7 +2413,7 @@ $1",
 'mycontris' => 'Mga Kaarambagan',
 'contribsub2' => 'Para sa $1 ($2)',
 'nocontribs' => 'Mayong mga pagbabago na nahanap na kapadis sa ining mga criteria.',
-'uctop' => '(alituktok)',
+'uctop' => '(sa ngunyan)',
 'month' => 'Poon bulan (asin mas amay):',
 'year' => 'Poon taon (asin mas amay):',
 
@@ -3665,7 +3663,6 @@ Pwede mo man [[Special:EditWatchlist|gamiton an standard editor]].',
 'version-other' => 'An iba pa',
 'version-mediahandlers' => 'Mga Midyang Tagakapot',
 'version-hooks' => 'Mga pangawil',
-'version-extension-functions' => 'Mga punksyon kan ekstensyon',
 'version-parser-extensiontags' => 'Mga ekstensyong panmarka kan Parser',
 'version-parser-function-hooks' => 'Mga panpunksyong pangawil kan Parser',
 'version-hook-name' => 'Ngaran kan pangawil',
index c748ecb..be70075 100644 (file)
@@ -8,6 +8,7 @@
  * @file
  *
  * @author Cesco
+ * @author Geitost
  * @author Jim-by
  * @author Kaganer
  * @author LexArt
@@ -196,6 +197,18 @@ $messages = array(
 'oct' => 'Кас',
 'nov' => 'Ліс',
 'dec' => 'Сне',
+'january-date' => '$1 студзеня',
+'february-date' => '$1 лютага',
+'march-date' => '$1 сакавіка',
+'april-date' => '$1 красавіка',
+'may-date' => '$1 мая',
+'june-date' => '$1 чэрвеня',
+'july-date' => '$1 ліпеня',
+'august-date' => '$1 жніўня',
+'september-date' => '$1 верасня',
+'october-date' => '$1 кастрычніка',
+'november-date' => '$1 лістапада',
+'december-date' => '$1 снежня',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Катэгорыя|Катэгорыі}}',
@@ -221,6 +234,7 @@ $messages = array(
 'newwindow' => '(адкрыецца ў новым акне)',
 'cancel' => 'Нічога',
 'moredotdotdot' => 'Яшчэ...',
+'morenotlisted' => 'Больш нічога няма...',
 'mypage' => 'Уласная старонка',
 'mytalk' => 'Размовы',
 'anontalk' => 'Размова для гэтага IP',
@@ -254,6 +268,7 @@ $messages = array(
 'namespaces' => 'Прасторы імёнаў',
 'variants' => 'Варыянты',
 
+'navigation-heading' => 'Навігацыя',
 'errorpagetitle' => 'Памылка',
 'returnto' => 'Вярнуцца да $1.',
 'tagline' => 'З пляцоўкі {{SITENAME}}.',
@@ -275,6 +290,7 @@ $messages = array(
 'create-this-page' => 'Стварыць старонку',
 'delete' => 'сцерці',
 'deletethispage' => 'Сцерці гэту старонку',
+'undeletethispage' => 'Аднавіць гэту старонку',
 'undelete_short' => 'Аднавіць {{PLURAL:$1|адну праўку|$1 правак}}',
 'viewdeleted_short' => 'Паказаць {{PLURAL:$1|адну сцёртую праўку|$1 сцёртыя праўкі}}',
 'protect' => 'Ахова',
@@ -328,7 +344,6 @@ $1',
 'disclaimers' => 'Адмова ад адказнасці',
 'disclaimerpage' => 'Project:Агульная адмова ад адказнасці',
 'edithelp' => 'Даведка рэдактарскага акна',
-'edithelppage' => 'Help:Праўка',
 'helppage' => 'Help:Змест',
 'mainpage' => 'Галоўная старонка',
 'mainpage-description' => 'Першая старонка',
@@ -351,6 +366,8 @@ $1',
 'youhavenewmessages' => 'Вы маеце $1 ($2).',
 'newmessageslink' => 'новыя паведамленні',
 'newmessagesdifflink' => 'розн. з найноўшай версіяй',
+'youhavenewmessagesfromusers' => 'Вы атрымалі $1 ад {{PLURAL:$3|$3 ўдзельніка|$3 удзельнікаў}} ($2).',
+'youhavenewmessagesmanyusers' => 'Вы атрымалі $1 ад мноства карыстальнікаў ($2).',
 'youhavenewmessagesmulti' => 'У вас ёсць новыя паведамленні на $1',
 'editsection' => 'правіць',
 'editold' => 'правіць',
@@ -486,9 +503,18 @@ $2',
 'welcomecreation-msg' => 'Ваш рахунак быў створаны.
 Не забудзьцеся дапасаваць [[Special:Preferences|персанальныя настаўленні]] для {{SITENAME}}.',
 'yourname' => 'Імя ўдзельніка',
+'userlogin-yourname' => 'Імя ўліковага запісу',
+'userlogin-yourname-ph' => 'Увядзіце імя вашага ўліковага запісу',
 'yourpassword' => 'Пароль',
+'userlogin-yourpassword' => 'Пароль',
+'userlogin-yourpassword-ph' => 'Увядзіце ваш пароль',
+'createacct-yourpassword-ph' => 'Увядзіце пароль',
 'yourpasswordagain' => 'Паўтарыце пароль',
+'createacct-yourpasswordagain' => 'Пацвердзіце пароль',
+'createacct-yourpasswordagain-ph' => 'Увядзіце пароль яшчэ раз',
 'remembermypassword' => "Памятаць мяне на гэтым камп'ютары (не даўжэй за $1 {{PLURAL:$1|дзень|дзён}})",
+'userlogin-remembermypassword' => 'Заставацца ў сістэме',
+'userlogin-signwithsecure' => 'Выкарыстоўваць абароненае злучэнне',
 'securelogin-stick-https' => 'Працягваць злучэнне па HTTPS пасля ўвахода',
 'yourdomainname' => 'Ваш дамен',
 'externaldberror' => 'Або памылка вонкавай аўтэнтыкацыі ў базе дадзеных, або вам не дазволена абнаўляць свой вонкавы рахунак.',
@@ -500,7 +526,7 @@ $2',
 'logout' => 'Выйсці з сістэмы',
 'userlogout' => 'Выйсці з сістэмы',
 'notloggedin' => 'Не ўвайшоў',
-'nologin' => "Не маеце рахунку? '''$1'''.",
+'nologin' => 'Не маеце рахунку? $1.',
 'nologinlink' => 'Завесці рахунак',
 'createaccount' => 'Стварыць рахунак',
 'gotaccount' => "Ужо маеце рахунак? '''$1'''.",
@@ -587,10 +613,8 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'Выслаць мне новы пароль',
-'passwordreset-text' => 'Запоўніце гэтую форму, каб атрымаць па электроннай пошце напамін вашага акаўнта.',
 'passwordreset-legend' => 'Пераўстанавіць пароль',
 'passwordreset-disabled' => 'Функцыя пераўсталёўкі пароля адключаная на гэтай вікі.',
-'passwordreset-pretext' => '{{PLURAL:$1||Калі ласка, увядзіце адзін з фрагментаў дадзеных ніжэй}}',
 'passwordreset-username' => 'Імя ўдзельніка',
 'passwordreset-domain' => 'Дамен:',
 'passwordreset-capture' => 'Праглядзець напісаны ліст?',
@@ -742,6 +766,7 @@ $2
 'updated' => '(абноўлена)',
 'note' => "'''Заўвага:'''",
 'previewnote' => "'''Памятайце, гэта папярэдні паказ; праўкі яшчэ не замацаваныя!'''",
+'continue-editing' => 'Працягнуць рэдагаванне',
 'previewconflict' => 'Гэта папярэдні паказ магчымага выніку замацоўвання актуальнага стану крынічнага тэксту ў верхнім тэкставым полі.',
 'session_fail_preview' => "'''Не ўдалося апрацаваць вашую праўку, таму што сервер згубіў звесткі аб вашым сеансе.
 Паспрабуйце, калі ласка, ізноў. Калі і тады не атрымаецца, паспрабуйце [[Special:UserLogout|выйсці з сістэмы]] і зайсці ізноў.'''",
@@ -812,11 +837,18 @@ $2
 Здаецца, што яна была сцёртая.',
 'edit-conflict' => 'Канфлікт правак.',
 'edit-no-change' => 'Вашая праўка была праігнараваная, таму што не мяняўся тэкст.',
+'postedit-confirmation' => 'Вашая праўка была захаваная.',
 'edit-already-exists' => 'Не ўдалося стварыць новую старонку.
 Такая ўжо існуе.',
 'editwarning-warning' => 'Выхад з гэтай старонкі прывядзе да страты правак, якія вы зрабілі. 
 Калі Вы зарэгістраваныя ў сістэме, Вы можаце адключыць гэта папярэджанне ў закладцы "Праца" Вашых настаўленняў.',
 
+# Content models
+'content-model-wikitext' => 'вікі-тэкст',
+'content-model-text' => 'звычайны тэкст',
+'content-model-javascript' => 'JavaScript',
+'content-model-css' => 'CSS',
+
 # Parser/template warnings
 'expensive-parserfunction-warning' => "Увага: На старонцы занадта шмат працаёмістых зваротаў да парсера.
 
@@ -1034,7 +1066,6 @@ $1",
 'searchmenu-legend' => 'Настаўленні пошуку',
 'searchmenu-exists' => "'''На вікі ёсць старонка \"[[:\$1]]\"'''",
 'searchmenu-new' => "'''Стварыць на гэтай вікі старонку \"[[:\$1]]\"'''",
-'searchhelp-url' => 'Help:Змест',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Паказаць старонкі з гэтым прэфіксам]]',
 'searchprofile-articles' => 'Артыкулы',
 'searchprofile-project' => 'Старонкі даведкі і праекта',
@@ -1107,7 +1138,6 @@ $1",
 'resetprefs' => 'Да пачатковых',
 'restoreprefs' => 'Аднавіць усе прадвызначэнні',
 'prefs-editing' => 'Праца',
-'prefs-edit-boxsize' => 'Памер рэдактарскага акна.',
 'rows' => 'Радкі:',
 'columns' => 'Калонкі:',
 'searchresultshead' => 'Пошук',
@@ -1117,10 +1147,7 @@ $1",
 'recentchangesdays' => 'За колькі дзён паказваць {{lc:{{:{{ns:mediawiki}}:recentchanges/be}}}}:',
 'recentchangesdays-max' => '(найбольш $1 {{PLURAL:$1|дзень|дзён}})',
 'recentchangescount' => 'Прадвызначаная колькасць правак дзеля паказу:',
-'prefs-help-recentchangescount' => 'Гэта ўключае ў сябе нядаўнія змяненні, гісторыі старонак, журналы.',
-'prefs-help-watchlist-token' => 'Упісанне сакрэтнага ключа ў гэтае поле створыць RSS-струмень з вашага спісу назіранага. 
-Кожны, каму вядомы гэты ключ, зможа чытаць ваш спіс назіранага, таму выбірайце бяспечныя ключы. 
-Вось аўта-згенераваны ключ, які можна выкарыстаць: $1',
+'prefs-help-recentchangescount' => 'Гэта ўключае ў сябе апошнія змены, гісторыі старонак, журналы.',
 'savedprefs' => 'Настáўленні замацаваныя.',
 'timezonelegend' => 'Часавы пояс:',
 'localtime' => 'Мясцовы час:',
@@ -1151,7 +1178,6 @@ $1",
 'prefs-reset-intro' => 'Тут можна вярнуць свае настаўленні да прадвызначэнняў, прынятых на гэтай пляцоўцы.
 Адкаціць гэтае дзеянне нельга.',
 'prefs-emailconfirm-label' => 'Пацверджанне адрасу эл.пошты:',
-'prefs-textboxsize' => 'Памер акна рэдагавання',
 'youremail' => 'Эл.пошта *',
 'username' => 'Імя ўдзельніка:',
 'uid' => 'ID удзельніка:',
@@ -1348,7 +1374,7 @@ $1",
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|змена|змены|зменаў}}',
-'recentchanges' => 'Ð\9dÑ\8fдаÑ\9eнÑ\96Ñ\8f Ð·Ð¼Ñ\8fненнÑ\96',
+'recentchanges' => 'Ð\90поÑ\88нÑ\96Ñ\8f Ð·Ð¼ÐµÐ½Ñ\8b',
 'recentchanges-legend' => 'Магчымасці паказу',
 'recentchanges-summary' => 'Гэта апошнія мены на пляцоўцы {{SITENAME}}.',
 'recentchanges-feed-description' => 'Сачыць за найбольш актуальнымі змяненнямі ў віксе праз гэты струмень навін.',
@@ -1364,7 +1390,7 @@ $1",
 'rcshowhideliu' => '$1 пазнаных удзельнікаў',
 'rcshowhideanons' => '$1 ананімных удзельнікаў',
 'rcshowhidepatr' => '$1 ухваленых правак',
-'rcshowhidemine' => '$1 Ñ\83ласных правак',
+'rcshowhidemine' => '$1 Ñ\9eласных правак',
 'rclinks' => 'Паказаць апошнія $1 зменаў за мінулыя $2 дзён<br />$3',
 'diff' => 'розн.',
 'hist' => 'гіст.',
@@ -1386,7 +1412,6 @@ $1",
 'recentchangeslinked-feed' => 'Звязаныя праўкі',
 'recentchangeslinked-toolbox' => 'Звязаныя праўкі',
 'recentchangeslinked-title' => 'Змяненні, якія датычаць "$1"',
-'recentchangeslinked-noresult' => 'Без змяненняў на далучаных старонках за азначаны перыяд.',
 'recentchangeslinked-summary' => "Гэта пералік нядаўніх змяненняў старонак, на якія спасылаецца азначаная старонка, або змяненняў складнікаў азначанай катэгорыі.
 Старонкі, якія ўваходзяць у [[Special:Watchlist|лік назіраных вамі]], выдзелены '''стылем'''.",
 'recentchangeslinked-page' => 'Назва старонкі:',
@@ -1508,9 +1533,9 @@ $1',
 'upload-proto-error' => 'Няправільны пратакол',
 'upload-proto-error-text' => 'Укладанне файла зводдаль патрабуе URL, які пачынаецца з <code>http://</code> або <code>ftp://</code>.',
 'upload-file-error' => 'Унутраная памылка',
-'upload-file-error-text' => 'Унутраная памылка пры спробе стварыць на серверы тымчасовы файл. Звярніцеся да аднаго з [[Special:ListUsers/sysop|сістэмных адміністратараў]].',
+'upload-file-error-text' => 'Унутраная памылка пры спробе стварыць на серверы тымчасовы файл. Звярніцеся да аднаго з [[Special:ListUsers/sysop|адміністратараў]].',
 'upload-misc-error' => 'Нявызначаная памылка пры ўкладанні',
-'upload-misc-error-text' => 'Нявызначаная памылка пры ўкладанні. Праверце правільнасць і даступнасць URL і паспрабуйце ізноў. Калі праблема трывалая, звярніцеся да аднаго з [[Special:ListUsers/sysop|сістэмных адміністратараў]].',
+'upload-misc-error-text' => 'Нявызначаная памылка пры ўкладанні. Праверце правільнасць і даступнасць URL і паспрабуйце ізноў. Калі праблема трывалая, звярніцеся да аднаго з [[Special:ListUsers/sysop|адміністратараў]].',
 'upload-too-many-redirects' => 'Занадта шмат перасылак за гэтым адрасам (URL)',
 'upload-unknown-size' => 'Невядомы памер',
 'upload-http-error' => 'Памылка HTTP: $1',
@@ -1924,6 +1949,7 @@ $1',
 'mailnologin' => 'Няма эл.адрасу',
 'mailnologintext' => 'Трэба [[Special:UserLogin|ўвайсці ў сістэму]] і мець пацверджаны адрас эл.пошты ў сваіх [[Special:Preferences|настáўленнях]], каб слаць эл.пошту іншым удзельнікам.',
 'emailuser' => 'Эл.пошта ўдзельніка',
+'emailuser-title-notarget' => 'Напісанне электроннага ліста ўдзельніку',
 'emailpage' => 'Зварот да ўдзельніка праз эл.пошту',
 'emailpagetext' => 'Тут можна выслаць эл.пошту гэтаму ўдзельніку.
 Адрас эл.пошты, уведзены вамі ў [[Special:Preferences|сваіх настаўленнях]], з\'явіцца ў полі "From" вашага ліста, і атрымальнік зможа адказаць на ваш ліст.',
@@ -1976,7 +2002,6 @@ $1',
 'unwatchthispage' => 'Спыніць назіранне',
 'notanarticle' => 'Гэта не змястоўная старонка',
 'notvisiblerev' => 'Версія сцёртая',
-'watchnochange' => 'Ніводзін з назіраных складнікаў не быў зменены за паказаны перыяд.',
 'watchlist-details' => 'Назіраю {{PLURAL:$1|$1 старонку|$1 старонак}} без уліку размоўных.',
 'wlheader-enotif' => 'Працуе апавяшчанне праз эл.пошту.',
 'wlheader-showupdated' => "Старонкі, якія былі зменены пасля вашага апошняга іх наведвання, паказаны '''абрысам шрыфту'''.",
@@ -2215,7 +2240,7 @@ $1',
 'sp-contributions-newbies' => 'Паказваць толькі ўклады з новых рахункаў',
 'sp-contributions-newbies-sub' => 'З новых рахункаў',
 'sp-contributions-newbies-title' => 'Уклады ўдзельнікаў з новых рахункаў',
-'sp-contributions-blocklog' => 'Ð\96Ñ\83Ñ\80нал Ð·Ð°Ð±Ð°Ñ\80онаÑ\9e',
+'sp-contributions-blocklog' => 'блакÑ\96Ñ\80оÑ\9eкÑ\96',
 'sp-contributions-deleted' => 'сцёрты ўклад удзельніка',
 'sp-contributions-uploads' => 'Загрузкі',
 'sp-contributions-logs' => 'журналы',
@@ -2701,11 +2726,16 @@ $1',
 
 # Info page
 'pageinfo-title' => 'Інфармацыя для "$1"',
-'pageinfo-header-edits' => 'Змены',
+'pageinfo-header-basic' => 'Агульныя звесткі',
+'pageinfo-header-edits' => 'Гісторыя правак',
+'pageinfo-robot-index' => 'Індэксуюцца',
+'pageinfo-robot-noindex' => 'Не індэксуюцца',
 'pageinfo-views' => 'Колькасць праглядаў',
 'pageinfo-watchers' => 'Колькасць назіральнікаў',
-'pageinfo-edits' => 'Колькасць правак:',
-'pageinfo-authors' => 'Колькасць розных аўтараў',
+'pageinfo-lastuser' => 'Апошні рэдактар',
+'pageinfo-lasttime' => 'Дата апошняй праўкі',
+'pageinfo-edits' => 'Агульная колькасць правак',
+'pageinfo-authors' => 'Агульная колькасць розных аўтараў',
 
 # Skin names
 'skinname-cologneblue' => 'Сіні Кёльн',
@@ -3364,7 +3394,6 @@ $5
 'version-other' => 'Рознае',
 'version-mediahandlers' => 'Апрацоўнікі мультымедый',
 'version-hooks' => 'Хукі',
-'version-extension-functions' => 'Функцыі прыстаўкі',
 'version-parser-extensiontags' => 'Тагі прыстаўкі да парсера',
 'version-parser-function-hooks' => 'Хукі функцый парсера',
 'version-hook-name' => 'Назва хука',
@@ -3381,6 +3410,8 @@ MediaWiki распаўсюджваецца, спадзеючыся на прыд
 'version-software' => 'Устаноўленыя праграмныя прадукты',
 'version-software-product' => 'Прадукт',
 'version-software-version' => 'Версія',
+'version-entrypoints-header-entrypoint' => 'Кропка ўваходу',
+'version-entrypoints-header-url' => 'URL',
 
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Пошук дублікатных файлаў',
@@ -3402,7 +3433,7 @@ MediaWiki распаўсюджваецца, спадзеючыся на прыд
 'specialpages-group-maintenance' => 'Звесткі аб працы',
 'specialpages-group-other' => 'Іншыя адмысловыя старонкі',
 'specialpages-group-login' => 'Прадстаўленне / рэгістрацыя',
-'specialpages-group-changes' => 'Ð\9dÑ\8fдаÑ\9eнÑ\96Ñ\8f Ð·Ð¼Ñ\8fненнÑ\96 і журналы',
+'specialpages-group-changes' => 'Ð\90поÑ\88нÑ\96Ñ\8f Ð·Ð¼ÐµÐ½Ñ\8b і журналы',
 'specialpages-group-media' => 'Укладзеныя файлы і звесткі пра іх',
 'specialpages-group-users' => 'Удзельнікі і дазволы',
 'specialpages-group-highuse' => 'Старонкі частага карыстання',
index 59a8514..79352e7 100644 (file)
  * @author Cesco
  * @author Crt
  * @author EugeneZelenko
+ * @author Geitost
  * @author Jim-by
  * @author Kaganer
+ * @author Nemo bis
  * @author Red Winged Duck
  * @author Renessaince
  * @author Wizardist
@@ -99,6 +101,7 @@ $specialPageAliases = array(
        'Uncategorizedpages'        => array( 'Некатэгарызаваныя_старонкі' ),
        'Uncategorizedtemplates'    => array( 'Некатэгарызаваныя_шаблёны' ),
        'Upload'                    => array( 'Загрузка' ),
+       'Userlogin'                 => array( 'Уваход_у_сыстэму' ),
        'Version'                   => array( 'Вэрсія' ),
        'Wantedcategories'          => array( 'Запатрабаваныя_катэгорыі' ),
        'Wantedfiles'               => array( 'Запатрабаваныя_файлы' ),
@@ -367,6 +370,18 @@ $messages = array(
 'oct' => 'кас',
 'nov' => 'ліс',
 'dec' => 'сьн',
+'january-date' => '$1 студзеня',
+'february-date' => '$1 лютага',
+'march-date' => '$1 сакавіка',
+'april-date' => '$1 красавіка',
+'may-date' => '$1 траўня',
+'june-date' => '$1 чэрвеня',
+'july-date' => '$1 ліпеня',
+'august-date' => '$1 жніўня',
+'september-date' => '$1 верасьня',
+'october-date' => '$1 кастрычніка',
+'november-date' => '$1 лістапада',
+'december-date' => '$1 сьнежня',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Катэгорыя|Катэгорыі|Катэгорыі}}',
@@ -448,6 +463,7 @@ $messages = array(
 'create-this-page' => 'Стварыць гэтую старонку',
 'delete' => 'Выдаліць',
 'deletethispage' => 'Выдаліць гэтую старонку',
+'undeletethispage' => 'Аднавіць гэту старонку',
 'undelete_short' => 'Аднавіць $1 {{PLURAL:$1|рэдагаваньне|рэдагаваньні|рэдагаваньняў}}',
 'viewdeleted_short' => 'Паказаць $1 {{PLURAL:$1|выдаленае рэдагаваньне|выдаленыя рэдагаваньні|выдаленых рэдагаваньняў}}',
 'protect' => 'Абараніць',
@@ -501,7 +517,6 @@ $1',
 'disclaimers' => 'Адмова ад адказнасьці',
 'disclaimerpage' => 'Project:Адмова ад адказнасьці',
 'edithelp' => 'Дапамога ў рэдагаваньні',
-'edithelppage' => 'Help:Рэдагаваньне',
 'helppage' => 'Help:Зьмест',
 'mainpage' => 'Галоўная старонка',
 'mainpage-description' => 'Галоўная старонка',
@@ -648,6 +663,10 @@ $2',
 'namespaceprotected' => "Вы ня маеце правоў на рэдагаваньне старонак у прасторы назваў '''$1'''.",
 'customcssprotected' => 'Вы ня маеце правоў на рэдагаваньне гэтай CSS-старонкі, таму што яна ўтрымлівае пэрсанальныя налады іншага ўдзельніка.',
 'customjsprotected' => 'Вы ня маеце правоў на рэдагаваньне гэтай старонкі JavaScript, таму што яна ўтрымлівае пэрсанальныя налады іншага ўдзельніка.',
+'mycustomcssprotected' => 'Вы ня маеце дазволу рэдагаваць гэтую CSS-старонку.',
+'mycustomjsprotected' => 'Вы ня маеце дазволу рэдагаваць гэтую JavaScript-старонку.',
+'myprivateinfoprotected' => 'Вы ня маеце дазволу на зьмяненьне ўласных прыватных зьвестак.',
+'mypreferencesprotected' => 'Вы ня маеце дазволу на зьмяненьне сваіх наладаў.',
 'ns-specialprotected' => 'Немагчыма рэдагаваць спэцыяльныя старонкі.',
 'titleprotected' => "Стварэньне старонкі з такой назвай было забароненае ўдзельнікам [[User:$1|$1]].
 Прычына забароны: ''$2''.",
@@ -675,6 +694,7 @@ $2',
 'yourname' => 'Імя ўдзельніка:',
 'userlogin-yourname' => 'Імя ўдзельніка',
 'userlogin-yourname-ph' => 'Увядзіце вашае імя ўдзельніка',
+'createacct-another-username-ph' => 'Увядзіце імя ўдзельніка',
 'yourpassword' => 'Пароль:',
 'userlogin-yourpassword' => 'Пароль',
 'userlogin-yourpassword-ph' => 'Увядзіце ваш пароль',
@@ -683,7 +703,7 @@ $2',
 'createacct-yourpasswordagain' => 'Пацьвердзіце пароль',
 'createacct-yourpasswordagain-ph' => 'Увядзіце пароль зноў',
 'remembermypassword' => 'Запомніць мяне на гэтым кампутары (ня больш за $1 {{PLURAL:$1|дзень|дні|дзён}})',
-'userlogin-remembermypassword' => 'Ð\97апамÑ\8fÑ\82аць мяне',
+'userlogin-remembermypassword' => 'Ð\97апомнÑ\96ць мяне',
 'userlogin-signwithsecure' => 'Скарыстацца бясьпечным злучэньнем',
 'securelogin-stick-https' => 'Утрымліваць злучэньне праз HTTPS пасьля ўваходу ў сыстэму',
 'yourdomainname' => 'Ваш дамэн:',
@@ -709,9 +729,11 @@ $2',
 'helplogin-url' => 'Help:Уваход у сыстэму',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Дапамога па ўваходзе ў сыстэму]]',
 'createacct-join' => 'Увядзіце свае зьвесткі ніжэй.',
+'createacct-another-join' => 'Увядзіце зьвесткі для новага рахунку ніжэй.',
 'createacct-emailrequired' => 'E-mail адрас',
 'createacct-emailoptional' => 'E-mail адрас (неабавязкова)',
 'createacct-email-ph' => 'Увядзіце ваш e-mail адрас',
+'createacct-another-email-ph' => 'Увядзіце адрас e-mail',
 'createaccountmail' => 'Стварыць часовы адвольны пароль і даслаць яго на e-mail адрас, пазначаны ніжэй',
 'createacct-realname' => 'Сапраўднае імя (неабавязкова)',
 'createaccountreason' => 'Прычына:',
@@ -720,6 +742,7 @@ $2',
 'createacct-captcha' => 'Праверка бясьпекі',
 'createacct-imgcaptcha-ph' => 'Увядзіце тэкст, што бачыце вышэй',
 'createacct-submit' => 'Стварыць рахунак',
+'createacct-another-submit' => 'Стварыць іншы рахунак',
 'createacct-benefit-heading' => '{{SITENAME}} створаная людзьмі, такімі як вы.',
 'createacct-benefit-body1' => '{{PLURAL:$1|праўка|праўкі|правак}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|старонка|старонкі|старонак}}',
@@ -780,7 +803,7 @@ $2',
 'cannotchangeemail' => 'Электронная пошта рахунку ня можа быць зьмененая ў {{GRAMMAR:месны|{{SITENAME}}}}.',
 'emaildisabled' => 'Гэты сайт ня можа адсылаць электронныя лісты.',
 'accountcreated' => 'Рахунак створаны',
-'accountcreatedtext' => 'Рахунак удзельніка для $1 быў створаны.',
+'accountcreatedtext' => 'Рахунак {{GENDER:$1|удзельніка|удзельніцы}} [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|гутаркі]]) быў створаны.',
 'createaccount-title' => 'Стварэньне рахунку ў {{GRAMMAR:месны|{{SITENAME}}}}',
 'createaccount-text' => 'Нехта стварыў рахунак «$2» у {{GRAMMAR:месны|{{SITENAME}}}} ($4) для Вашага адрасу электроннай пошты. Пароль для гэтага рахунку — «$3». Вам трэба ўвайсьці і зьмяніць Ваш пароль зараз.
 
@@ -818,11 +841,11 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'Ачыстка паролю',
-'passwordreset-text' => 'Запоўніце гэтую форму, каб скінуць пароль.',
+'passwordreset-text-one' => 'Запоўніце гэтую форму, каб скінуць пароль.',
+'passwordreset-text-many' => '{{PLURAL:$1|Запоўніце адно з гэтых палёў, каб скінуць пароль.}}',
 'passwordreset-legend' => 'Ачысьціць пароль',
 'passwordreset-disabled' => 'Магчымасьць ачысткі паролю была забароненая ў {{GRAMMAR:месны|{{SITENAME}}}}.',
 'passwordreset-emaildisabled' => 'Функцыі e-mail у гэтай вікі былі адключаныя.',
-'passwordreset-pretext' => '{{PLURAL:$1||Увядзіце ніжэй частку зьвестак}}',
 'passwordreset-username' => 'Імя ўдзельніка:',
 'passwordreset-domain' => 'Дамэн:',
 'passwordreset-capture' => 'Паказаць канчатковы электронны ліст?',
@@ -1042,7 +1065,7 @@ $2
 'nocreate-loggedin' => 'Вы ня маеце дазволу на стварэньне новых старонак.',
 'sectioneditnotsupported-title' => 'Рэдагаваньне сэкцыяў не падтрымліваецца',
 'sectioneditnotsupported-text' => 'Рэдагаваньне сэкцыяў не падтрымліваецца ў гэтай старонцы рэдагаваньня',
-'permissionserrors' => 'Памылкі дазволаў',
+'permissionserrors' => 'Памылка дазволу',
 'permissionserrorstext' => 'Вы ня маеце дазволу на гэтае дзеяньне па {{PLURAL:$1|наступнай прычыне|наступных прычынах}}:',
 'permissionserrorstext-withaction' => 'Вы ня маеце дазволу на $2 па {{PLURAL:$1|наступнай прычыне|наступных прычынах}}:',
 'recreate-moveddeleted-warn' => "'''Увага: Вы ствараеце старонку, якая раней была выдаленая.'''
@@ -1057,14 +1080,15 @@ $2
 Падобна, што яна была выдаленая.',
 'edit-conflict' => 'Канфлікт рэдагаваньняў.',
 'edit-no-change' => 'Вашае рэдагаваньне было праігнараванае, таму што ў тэкст не былі ўнесеныя зьмены.',
+'postedit-confirmation' => 'Вашая праўка была захаваная.',
 'edit-already-exists' => 'Немагчыма стварыць новую старонку.
 Яна ўжо існуе.',
 'defaultmessagetext' => 'Перадвызначаны тэкст паведамленьня',
 'content-failed-to-parse' => 'Зьмест «$2» не адпавядае тыпу $1: $3.',
 'invalid-content-data' => 'Няслушныя зьвесткі',
 'content-not-allowed-here' => 'Зьмест тыпу «$1» на старонцы [[$2]] не дазволены',
-'editwarning-warning' => 'УÑ\81е Ð·Ñ\80обленÑ\8bÑ\8f Ð\92амÑ\96 Ð·Ñ\8cменÑ\8b Ð¼Ð¾Ð³Ñ\83Ñ\86Ñ\8c Ð±Ñ\8bÑ\86Ñ\8c Ñ\81Ñ\82Ñ\80аÑ\87анÑ\8bÑ\8f, ÐºÐ°Ð»Ñ\96 Ð\92Ñ\8b Ð¿Ð°ÐºÑ\96неÑ\86е Ð³Ñ\8dÑ\82Ñ\83Ñ\8e Ñ\81Ñ\82аÑ\80онкÑ\83.
\9aалÑ\96 Ð\92Ñ\8b Ñ\9eвайÑ\88лÑ\96 Ñ\9e Ñ\81Ñ\8bÑ\81Ñ\82Ñ\8dмÑ\83, Ð\92Ñ\8b Ð¼Ð¾Ð¶Ð°Ñ\86е Ð°Ð´ÐºÐ»Ñ\8eÑ\87Ñ\8bÑ\86Ñ\8c Ð³Ñ\8dÑ\82ае Ð¿Ð°Ð¿Ñ\8fÑ\80Ñ\8dджанÑ\8cне Ñ\83 Ñ\81Ñ\8dкÑ\86Ñ\8bÑ\96 Â«{{int:prefs-editing}}» Ð\92ашых наладаў.',
+'editwarning-warning' => 'Ð\9fакÑ\96нÑ\83Ñ\9eÑ\88Ñ\8b Ð³Ñ\8dÑ\82Ñ\83Ñ\8e Ñ\81Ñ\82аÑ\80онкÑ\83, Ð²Ñ\8b Ð¼Ð¾Ð¶Ð°Ñ\86е Ñ\81Ñ\82Ñ\80аÑ\86Ñ\96Ñ\86Ñ\8c Ñ\83Ñ\81е Ñ\9eнеÑ\81енÑ\8bÑ\8f Ð·Ñ\8cменÑ\8b.
\9aалÑ\96 Ð²Ñ\8b Ñ\9eвайÑ\88лÑ\96 Ñ\9e Ñ\81Ñ\8bÑ\81Ñ\82Ñ\8dмÑ\83, Ð\92Ñ\8b Ð¼Ð¾Ð¶Ð°Ñ\86е Ð°Ð´ÐºÐ»Ñ\8eÑ\87Ñ\8bÑ\86Ñ\8c Ð³Ñ\8dÑ\82ае Ð¿Ð°Ð¿Ñ\8fÑ\80Ñ\8dджанÑ\8cне Ñ\9e Ñ\81Ñ\8dкÑ\86Ñ\8bÑ\96 Â«Ð Ñ\8dдагаванÑ\8cне» Ð²ашых наладаў.',
 
 # Content models
 'content-model-wikitext' => 'вікі-тэкст',
@@ -1099,6 +1123,7 @@ $2
 'undo-failure' => 'Рэдагаваньне ня можа быць скасаванае праз канфлікт паміж папярэднімі рэдагаваньнямі.',
 'undo-norev' => 'Рэдагаваньне ня можа быць адмененае, таму што яно не існуе альбо было выдаленае.',
 'undo-summary' => 'Скасаваньне праўкі $1 {{GENDER:$2|удзельніка|удзельніцы}} [[Special:Contributions/$2|$2]] ([[User talk:$2|гутаркі]])',
+'undo-summary-username-hidden' => 'Вэрсія $1 скасаваная схаваным удзельнікам',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Немагчыма стварыць рахунак',
@@ -1279,6 +1304,7 @@ $1",
 'compareselectedversions' => 'Параўнаць выбраныя вэрсіі',
 'showhideselectedversions' => 'Паказаць/схаваць вызначаныя вэрсіі',
 'editundo' => 'скасаваць',
+'diff-empty' => '(Розьніцы няма)',
 'diff-multi' => '($1 {{PLURAL:$1|прамежная вэрсія|прамежныя вэрсіі|прамежных вэрсіяў}} $2 {{PLURAL:$2|удзельніка|удзельнікаў|удзельнікаў}} {{PLURAL:$1|не паказаная|не паказаныя|не паказаныя}})',
 'diff-multi-manyusers' => '($1 {{PLURAL:$1|прамежная вэрсія|прамежныя вэрсіі|прамежных вэрсіяў}} $2 {{PLURAL:$2|удзельніка|удзельнікаў|удзельнікаў}} {{PLURAL:$1|не паказаная|не паказаныя|не паказаныя}})',
 'difference-missing-revision' => '{{PLURAL:$2|Адна вэрсія|$2 вэрсіі}} з гэтымі адрозьненьнямі ($1) {{PLURAL:$2|не была|не былі}} знойдзеныя.
@@ -1306,7 +1332,6 @@ $1",
 'searchmenu-legend' => 'Налады пошуку',
 'searchmenu-exists' => "* Старонка '''[[$1]]'''",
 'searchmenu-new' => "'''Стварыць старонку «[[:$1|$1]]» у {{GRAMMAR:месны|{{SITENAME}}}}!'''",
-'searchhelp-url' => 'Help:Зьмест',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Праглядзець старонкі з гэтым прэфіксам]]',
 'searchprofile-articles' => 'Старонкі са зьместам',
 'searchprofile-project' => 'Старонкі дапамогі і праекту',
@@ -1382,7 +1407,6 @@ $1",
 'resetprefs' => 'Скінуць',
 'restoreprefs' => 'Скінуць да перадвызначаных наладаў',
 'prefs-editing' => 'Рэдагаваньне',
-'prefs-edit-boxsize' => 'Памер акна рэдагаваньня.',
 'rows' => 'Радкоў:',
 'columns' => 'Слупкоў:',
 'searchresultshead' => 'Пошук',
@@ -1393,9 +1417,6 @@ $1",
 'recentchangesdays-max' => '(максымальна $1 {{PLURAL:$1|дзень|дні|дзён}})',
 'recentchangescount' => 'Колькасьць рэдагаваньняў для паказу па змоўчваньні:',
 'prefs-help-recentchangescount' => 'Гэта датычыцца апошніх зьменах, гісторый старонак і журналаў.',
-'prefs-help-watchlist-token' => 'Запаўненьне гэтага поля сакрэтным ключом створыць RSS-стужку для Вашага сьпісу назіраньня.
-Кожны, хто ведае ключ у гэтым полі, зможа чытаць Ваш сьпіс назіраньня, таму выбірайце сакрэтнае значэньне.
-Тут Вы зможаце выкарыстоўваць выпадковае значэньне: $1',
 'savedprefs' => 'Вашыя налады былі захаваныя.',
 'timezonelegend' => 'Часавы пояс:',
 'localtime' => 'Мясцовы час:',
@@ -1426,7 +1447,6 @@ $1",
 'prefs-reset-intro' => 'Вы можаце выкарыстоўваць гэтую старонку для замены Вашых наладаў на налады сайта па змоўчваньні.
 Гэтае дзеяньне не можа быць адмененае.',
 'prefs-emailconfirm-label' => 'Пацьверджаньне адрасу электроннай пошты:',
-'prefs-textboxsize' => 'Памеры акна рэдагаваньня',
 'youremail' => 'Адрас электроннай пошты:',
 'username' => 'Імя {{GENDER:$1|ўдзельніка|ўдзельніцы}}:',
 'uid' => 'ID {{GENDER:$1|удзельніка|удзельніцы}}:',
@@ -1457,7 +1477,9 @@ $1",
 'prefs-signature' => 'Подпіс',
 'prefs-dateformat' => 'Фармат даты',
 'prefs-timeoffset' => 'Розьніца ў часе',
-'prefs-advancedediting' => 'Дадатковыя налады',
+'prefs-advancedediting' => 'Агульныя',
+'prefs-editor' => 'Рэдактар',
+'prefs-preview' => 'Папярэдні прагляд',
 'prefs-advancedrc' => 'Дадатковыя налады',
 'prefs-advancedrendering' => 'Дадатковыя налады',
 'prefs-advancedsearchoptions' => 'Дадатковыя налады',
@@ -1493,6 +1515,7 @@ $1",
 'userrights-changeable-col' => 'Групы, якія Вы можаце мяняць',
 'userrights-unchangeable-col' => 'Групы, якія Вы ня можаце мяняць',
 'userrights-conflict' => 'Канфлікт правоў удзельнікаў! Калі ласка, захавайце зьмены яшчэ раз.',
+'userrights-removed-self' => 'Вы пасьпяхова пазбавілі сябе ўласных правоў. З гэтай прычыны вы больш ня маеце доступу да гэтай старонкі.',
 
 # Groups
 'group' => 'Група:',
@@ -1536,7 +1559,7 @@ $1",
 'right-reupload-shared' => 'перазапіс файлаў з агульнага сховішча лякальнымі',
 'right-upload_by_url' => 'загрузка файлаў з URL-адрасу',
 'right-purge' => 'ачыстка кэшу старонак бяз запыту пацьверджаньня',
-'right-autoconfirmed' => 'рэдагаваньне часткова абароненых старонак',
+'right-autoconfirmed' => 'ня дзейнічаюць абмежаваньні хуткасьці па IP',
 'right-bot' => 'лічыцца аўтаматычным працэсам',
 'right-nominornewtalk' => 'не паведамляць удзельнікам пра новыя паведамленьні на іх старонках гутарак, калі зробленыя там праўкі былі дробнымі',
 'right-apihighlimits' => 'Менш абмежаваньняў на выкананьне API-запытаў',
@@ -1557,12 +1580,20 @@ $1",
 'right-ipblock-exempt' => 'абход блякаваньняў IP-адрасоў, аўта-блякаваньняў і блякаваньняў дыяпазонаў',
 'right-proxyunbannable' => 'абход аўтаматычных блякаваньняў проксі',
 'right-unblockself' => 'разблякаваньне самога сябе',
-'right-protect' => 'зьмена ўзроўню абароны старонак і рэдагаваньне абароненых старонак',
-'right-editprotected' => 'рэдагаваньне абароненых старонак (без каскаднай абароны)',
+'right-protect' => 'зьмена ўзроўню абароны старонак і рэдагаваньне каскадна абароненых старонак',
+'right-editprotected' => 'рэдагаваньне старонак, абароненых у рэжыме «{{int:protect-level-sysop}}»',
+'right-editsemiprotected' => 'рэдагаваньне старонак, абароненых у рэжыме «{{int:protect-level-autoconfirmed}}»',
 'right-editinterface' => 'рэдагаваньне інтэрфэйса карыстальніка',
 'right-editusercssjs' => 'рэдагаваньне CSS і JS файлаў іншых удзельнікаў',
 'right-editusercss' => 'рэдагаваньне CSS файлаў іншых удзельнікаў',
 'right-edituserjs' => 'рэдагаваньне JS файлаў іншых удзельнікаў',
+'right-editmyusercss' => 'рэдагаваць уласныя карыстальніцкія CSS-файлы',
+'right-editmyuserjs' => 'рэдагаваць уласныя карыстальніцкія JavaScript-файлы',
+'right-viewmywatchlist' => 'праглядаць уласны сьпіс назіраньня',
+'right-editmywatchlist' => 'рэдагаваць уласны сьпіс назіраньня (некаторыя дзеяньні будуць дадаваць туды старонкі нават бяз гэтага права)',
+'right-viewmyprivateinfo' => 'праглядаць уласныя прыватныя зьвесткі (напр., адрас e-mail, сапраўднае імя)',
+'right-editmyprivateinfo' => 'рэдагаваць уласныя прыватныя зьвесткі (напр., адрас e-mail, сапраўднае імя)',
+'right-editmyoptions' => 'рэдагаваць уласныя налады',
 'right-rollback' => 'хуткі адкат правак апошняга ўдзельніка, які рэдагаваў старонку',
 'right-markbotedits' => 'пазначэньне адкатаў як рэдагаваньне робатам',
 'right-noratelimit' => 'няма абмежаваньняў па хуткасьці',
@@ -1624,12 +1655,17 @@ $1",
 'action-userrights-interwiki' => 'рэдагаваньне правоў удзельнікаў у іншых вікі',
 'action-siteadmin' => 'блякаваньне і разблякаваньне базы зьвестак',
 'action-sendemail' => 'адпраўляць лісты іншым удзельнікам',
+'action-editmywatchlist' => 'рэдагаваць ваш сьпіс назіраньня',
+'action-viewmywatchlist' => 'праглядаць ваш сьпіс назіраньня',
+'action-viewmyprivateinfo' => 'прагляд вашых прыватных зьвестак',
+'action-editmyprivateinfo' => 'рэдагаваньне вашых прыватных зьвестак',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|зьмена|зьмены|зьменаў}}',
 'recentchanges' => 'Апошнія зьмены',
 'recentchanges-legend' => 'Налады апошніх зьменаў',
 'recentchanges-summary' => 'Сачыце за апошнімі зьменамі ў {{GRAMMAR:месны|{{SITENAME}}}} на гэтай старонцы.',
+'recentchanges-noresult' => 'Зьмены, што пасуюць дадзенаму пэрыяду і крытэрам, ня знойдзеныя.',
 'recentchanges-feed-description' => 'Сачыце за апошнімі зьменамі ў {{GRAMMAR:месны|{{SITENAME}}}} праз гэтую стужку.',
 'recentchanges-label-newpage' => 'Гэтым рэдагаваньнем была створаная новая старонка',
 'recentchanges-label-minor' => 'Гэтае рэдагаваньне — дробнае',
@@ -1666,7 +1702,6 @@ $1",
 'recentchangeslinked-feed' => 'Зьвязаныя праўкі',
 'recentchangeslinked-toolbox' => 'Зьвязаныя праўкі',
 'recentchangeslinked-title' => 'Зьвязаныя праўкі для «$1»',
-'recentchangeslinked-noresult' => 'Не было ніякіх зьменаў на зьвязаных старонках за вызначаны пэрыяд.',
 'recentchangeslinked-summary' => "Гэта сьпіс апошніх зьменаў старонак, на якія спасылаецца азначаная старонка (ці ўсіх старонак, якія належаць азначанай катэгорыі).
 Старонкі з [[Special:Watchlist|Вашага сьпісу назіраньня]] пазначаныя '''тлустым шрыфтам'''.",
 'recentchangeslinked-page' => 'Назва старонкі:',
@@ -1678,7 +1713,7 @@ $1",
 'reuploaddesc' => 'Скасаваць загрузку і вярнуцца да формы загрузкі',
 'upload-tryagain' => 'Даслаць зьмененае апісаньне файла',
 'uploadnologin' => 'Вы не ўвайшлі ў сыстэму',
-'uploadnologintext' => 'Вам трэба [[Special:UserLogin|ўвайсьці ў сыстэму]] для загрузкі файлаў.',
+'uploadnologintext' => 'Вам трэба $1, каб загружаць файлы.',
 'upload_directory_missing' => 'Загрузачная дырэкторыя ($1) адсутнічае і ня можа быць створаная сэрвэрам.',
 'upload_directory_read_only' => 'Сэрвэр ня мае правоў на запіс у дырэкторыю загружаных файлаў ($1).',
 'uploaderror' => 'Памылка загрузкі',
@@ -1795,11 +1830,11 @@ $1',
 'upload-proto-error-text' => 'Аддаленая загрузка файлаў патрабуе URL-адрас, які пачынаецца з <code>http://</code> альбо <code>ftp://</code>.',
 'upload-file-error' => 'Унутраная памылка',
 'upload-file-error-text' => 'Адбылася ўнутраная памылка пад час спробы стварыць часовы файл на сэрвэры.
-Калі ласка, зьвярніцеся да [[Special:ListUsers/sysop|сыстэмнага адміністратара]].',
+Калі ласка, зьвярніцеся да [[Special:ListUsers/sysop|адміністратара]].',
 'upload-misc-error' => 'Невядомая памылка загрузкі',
 'upload-misc-error-text' => 'Адбылася невядомая памылка пад час загрузкі.
 Калі ласка, упэўніцеся, што URL-адрас слушны, і паспрабуйце ізноў.
-Калі памылка паўтарыцца, зьвярніцеся да [[Special:ListUsers/sysop|сыстэмнага адміністратара]].',
+Калі памылка паўтарыцца, зьвярніцеся да [[Special:ListUsers/sysop|адміністратара]].',
 'upload-too-many-redirects' => 'URL-адрас утрымлівае зашмат перанакіраваньняў',
 'upload-unknown-size' => 'Невядомы памер',
 'upload-http-error' => 'Узьнікла памылка HTTP: $1',
@@ -2303,10 +2338,9 @@ $1',
 'unwatchthispage' => 'Перастаць назіраць',
 'notanarticle' => 'Не старонка зьместу',
 'notvisiblerev' => 'Вэрсія была выдаленая',
-'watchnochange' => 'Нічога з Вашага сьпісу назіраньня не зьмянілася за паказаны пэрыяд.',
 'watchlist-details' => 'У Вашым сьпісе назіраньня $1 {{PLURAL:$1|старонка|старонкі|старонак}} за выключэньнем старонак абмеркаваньня.',
-'wlheader-enotif' => 'Ð\94аÑ\81Ñ\8bлка Ð¿Ð°Ð²ÐµÐ´Ð°Ð¼Ð»ÐµÐ½Ñ\8cнÑ\8fÑ\9e Ð¿Ð° Ñ\8dлекÑ\82Ñ\80оннай Ð¿Ð¾Ñ\88Ñ\86е Ñ\9eклÑ\8eÑ\87анаÑ\8f.',
-'wlheader-showupdated' => "Старонкі, якія былі зьмененыя пасьля Вашага апошняга візыту, вылучаныя '''тоўстым''' шрыфтам",
+'wlheader-enotif' => 'Ð\90павÑ\8fÑ\88Ñ\87Ñ\8dнÑ\8cне Ð¿Ð° e-mail Ñ\83клÑ\8eÑ\87анае.',
+'wlheader-showupdated' => "Старонкі, зьмененыя з часу вашага апошняга візыту, вылучаныя '''тоўстым''' шрыфтам.",
 'watchmethod-recent' => 'прагляд апошніх зьменаў у старонках са сьпісу назіраньня',
 'watchmethod-list' => 'прагляд старонак са сьпісу назіраньня дзеля апошніх зьменах',
 'watchlistcontains' => 'Ваш сьпіс назіраньня зьмяшчае $1 {{PLURAL:$1|старонка|старонкі|старонак}}.',
@@ -2411,7 +2445,7 @@ $UNWATCHURL
 Апошнія зьмены зробленыя [[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]]',
-'revertpage-nouser' => 'Рэдагаваньні (імя ўдзельніка выдаленае) скасаваныя да папярэдняй вэрсіі [[User:$1|$1]]',
+'revertpage-nouser' => 'Рэдагаваньні схаванага ўдзельніка скасаваныя да папярэдняй вэрсіі [[User:$1|$1]]',
 'rollback-success' => 'Адмененыя рэдагаваньні $1;
 вернутая папярэдняя вэрсія $2.',
 
@@ -2559,7 +2593,7 @@ $1',
 'mycontris' => 'Унёсак',
 'contribsub2' => 'Для $1 ($2)',
 'nocontribs' => 'Ня знойдзена зьменаў, якія адпавядаюць гэтым крытэрыям.',
-'uctop' => ' (апошняя)',
+'uctop' => '(апошняя)',
 'month' => 'Ад месяца (і раней):',
 'year' => 'Ад году (і раней):',
 
@@ -3817,7 +3851,6 @@ $5
 'version-other' => 'Іншыя',
 'version-mediahandlers' => 'Апрацоўшчыкі мэдыя',
 'version-hooks' => 'Працэдуры-перахопнікі',
-'version-extension-functions' => 'Функцыі пашырэньняў',
 'version-parser-extensiontags' => 'Тэгі пашырэньняў парсэра',
 'version-parser-function-hooks' => 'Перахопнікі функцыяў парсэра',
 'version-hook-name' => 'Назва працэдуры-перахопніка',
@@ -3902,6 +3935,7 @@ MediaWiki распаўсюджваецца з надзеяй, што будзе
 'tags' => 'Слушныя тэгі зьменаў',
 'tag-filter' => 'Фільтар [[Special:Tags|тэгаў]]:',
 'tag-filter-submit' => 'Фільтар',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Тэг|Тэгі}}]]: $2)',
 'tags-title' => 'Тэгі',
 'tags-intro' => 'На гэтай старонцы знаходзіцца сьпіс тэгаў, якімі праграмнае забесьпячэньне можа пазначыць рэдагаваньне, і іх значэньне.',
 'tags-tag' => 'Назва тэга',
index 6b476a6..44daa2d 100644 (file)
@@ -12,7 +12,9 @@
  * @author DCLXVI
  * @author Daggerstab
  * @author Dimi z
+ * @author Geitost
  * @author Kaganer
+ * @author Simona
  * @author Spiritia
  * @author Stanqo
  * @author Termininja
@@ -344,6 +346,18 @@ $messages = array(
 'oct' => 'окт',
 'nov' => 'ное',
 'dec' => 'дек',
+'january-date' => '$1 януари',
+'february-date' => '$1 февруари',
+'march-date' => '$1 март',
+'april-date' => '$1 април',
+'may-date' => '$1 май',
+'june-date' => '$1 юни',
+'july-date' => '$1 юли',
+'august-date' => '$1 август',
+'september-date' => '$1 септември',
+'october-date' => '$1 октомври',
+'november-date' => '$1 ноември',
+'december-date' => '$1 декември',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Категория|Категории}}',
@@ -424,6 +438,7 @@ $messages = array(
 'create-this-page' => 'Създаване на страницата',
 'delete' => 'Изтриване',
 'deletethispage' => 'Изтриване',
+'undeletethispage' => 'Възстановяване на страницата',
 'undelete_short' => 'Възстановяване на {{PLURAL:$1|една редакция|$1 редакции}}',
 'viewdeleted_short' => 'Преглед на {{PLURAL:$1|една изтрита редакция|$1 изтрити редакции}}',
 'protect' => 'Защита',
@@ -477,7 +492,6 @@ $1',
 'disclaimers' => 'Условия за ползване',
 'disclaimerpage' => 'Project:Условия за ползване',
 'edithelp' => 'Помощ при редактиране',
-'edithelppage' => 'Help:Редактиране',
 'helppage' => 'Help:Съдържание',
 'mainpage' => 'Начална страница',
 'mainpage-description' => 'Начална страница',
@@ -621,12 +635,15 @@ $2',
 'namespaceprotected' => "Нямате права за редактиране на страници в именно пространство '''$1'''.",
 'customcssprotected' => 'Нямате права за редактиране на тази CSS страница, защото тя съдържа чужди потребителски настройки.',
 'customjsprotected' => 'Нямате права за редактиране на тази Джаваскрипт страница, защото тя съдържа чужди потребителски настройки.',
+'mycustomcssprotected' => 'Нямате права за редактиране на тази CSS страница.',
+'mycustomjsprotected' => 'Нямате права за редактиране на тази JavaScript страница.',
 'ns-specialprotected' => 'Специалните страници не могат да бъдат редактирани.',
 'titleprotected' => "Тази страница е била защитена срещу създаване от [[User:$1|$1]].
 Посочената причина е ''$2''.",
 'filereadonlyerror' => 'Файлът „$1“ не може да бъде променен, тъй като файловото хранилище „$2“ е в режим само за четене.
 
 Администраторът, който го е заключил, е посочил следната причина: „$3“.',
+'exception-nologin-text' => 'Уикито изисква влизане за тази страница или действие.',
 
 # Virus scanner
 'virus-badscanner' => "Лоша конфигурация: непознат скенер за вируси: ''$1''",
@@ -652,6 +669,7 @@ $2',
 'createacct-yourpasswordagain' => 'Потвърждаване на паролата',
 'createacct-yourpasswordagain-ph' => 'Въведете паролата отново',
 'remembermypassword' => 'Запомняне на паролата на този компютър (най-много за $1 {{PLURAL:$1|ден|дни}})',
+'userlogin-signwithsecure' => 'Използване на защитена връзка',
 'securelogin-stick-https' => 'Запазване на връзката през HTTPS след влизане',
 'yourdomainname' => 'Домейн:',
 'password-change-forbidden' => 'Не можете да променяте пароли в това уики.',
@@ -666,17 +684,29 @@ $2',
 'logout' => 'Излизане',
 'userlogout' => 'Излизане',
 'notloggedin' => 'Не сте влезли',
-'nologin' => "Нямате потребителско име? '''$1'''.",
+'userlogin-noaccount' => 'Нямате сметка?',
+'userlogin-joinproject' => 'Присъединяване към {{SITENAME}}',
+'nologin' => 'Нямате потребителско име? $1.',
 'nologinlink' => 'Създаване на сметка',
 'createaccount' => 'Регистриране',
 'gotaccount' => "Имате ли вече сметка? '''$1'''.",
 'gotaccountlink' => 'Влизане',
 'userlogin-resetlink' => 'Забравени данни за влизане в системата?',
+'userlogin-resetpassword-link' => 'Възстановяване на паролата',
+'helplogin-url' => 'Help:Влизане',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Помощ за влизане]] в системата',
+'createacct-join' => 'Въведете своите данни по-долу.',
 'createacct-emailrequired' => 'Адрес за електронна поща',
+'createacct-emailoptional' => 'Адрес за електронна поща (незадължително)',
 'createaccountmail' => 'Използване на временна парола, която се изпраща по електронната поща, посочена по-долу',
+'createacct-realname' => 'Истинско име (незадължително)',
 'createaccountreason' => 'Причина:',
 'createacct-reason' => 'Причина',
 'createacct-imgcaptcha-ph' => 'Въведете текста, който виждате по-горе',
+'createacct-submit' => 'Създаване на сметката',
+'createacct-benefit-heading' => '{{SITENAME}} се създава от хора като вас.',
+'createacct-benefit-body1' => '{{PLURAL:$1|редакция|редакции}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|страница|страници}}',
 'badretype' => 'Въведените пароли не съвпадат.',
 'userexists' => 'Въведеното потребителско име вече се използва.
 Изберете друго име.',
@@ -727,7 +757,7 @@ $2',
 'cannotchangeemail' => 'Адресите за електронна поща на сметките не могат да бъдат променяни в това уики.',
 'emaildisabled' => 'Този сайт не може да изпраща е-поща.',
 'accountcreated' => 'Потребителската сметка беше създадена',
-'accountcreatedtext' => 'Потребителската сметка за $1 беше създадена.',
+'accountcreatedtext' => 'Потребителската сметка [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|беседа]]) беше създадена.',
 'createaccount-title' => 'Създаване на сметка за {{SITENAME}}',
 'createaccount-text' => 'Някой е създал сметка за $2 в {{SITENAME}} ($4) и е посочил този адрес за електронна поща. Паролата за „$2“ е „$3“. Необходимо е да влезете в системата и да смените паролата си.
 
@@ -763,10 +793,8 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'Възстановяване на парола',
-'passwordreset-text' => 'Попълването на формуляра ще доведе до възстановяване на паролата.',
 'passwordreset-legend' => 'Възстановяване на парола',
 'passwordreset-disabled' => 'Възстановяването на паролата е изключено в това уики.',
-'passwordreset-pretext' => '{{PLURAL:$1||Въведете някоя от информациите по-долу}}',
 'passwordreset-username' => 'Потребителско име:',
 'passwordreset-domain' => 'Домейн:',
 'passwordreset-capture' => 'Преглеждане на електронното писмо?',
@@ -998,6 +1026,7 @@ $2
 Вероятно междувременно е била изтрита.',
 'edit-conflict' => 'Редакционен конфликт.',
 'edit-no-change' => 'Вашата редакция беше игнорирана, тъй като не съдържа промени по текста.',
+'postedit-confirmation' => 'Вашата редакция беше съхранена',
 'edit-already-exists' => 'Не можа да се създаде нова страница.
 Такава вече съществува.',
 'defaultmessagetext' => 'Текст на съобщението по подразбиране',
@@ -1239,7 +1268,6 @@ $1",
 'searchmenu-legend' => 'Настройки на търсенето',
 'searchmenu-exists' => "'''Съществува страница с името „[[:$1]]“ в това уики.'''",
 'searchmenu-new' => "'''Създаване на страницата „[[:$1]]“ в това уики!'''",
-'searchhelp-url' => 'Help:Съдържание',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Преглеждане на страниците с тази представка]]',
 'searchprofile-articles' => 'Съдържателни страници',
 'searchprofile-project' => 'Помощни и проектни страници',
@@ -1314,7 +1342,6 @@ $1",
 'resetprefs' => 'Отмяна на текущите промени',
 'restoreprefs' => 'Възстановяване на всички настройки по подразбиране',
 'prefs-editing' => 'Редактиране',
-'prefs-edit-boxsize' => 'Размер на прозореца за редактиране.',
 'rows' => 'Редове:',
 'columns' => 'Колони:',
 'searchresultshead' => 'Търсене',
@@ -1325,9 +1352,6 @@ $1",
 'recentchangesdays-max' => '(най-много $1 {{PLURAL:$1|ден|дни}})',
 'recentchangescount' => 'Брой показвани редакции по подразбиране:',
 'prefs-help-recentchangescount' => 'Това включва последните промени, историите на страниците и дневниците.',
-'prefs-help-watchlist-token' => 'Вписването на таен ключ в това поле ще генерира RSS емисия за вашия списък за наблюдение.
-Всеки, който знае тази парола, ще може да чете списъка ви за наблюдение, затова изберете някаква сигурна комбинация.
-Можете да използвате следната случайно генерирана комбинация: $1',
 'savedprefs' => 'Настройките ви бяха съхранени.',
 'timezonelegend' => 'Часова зона:',
 'localtime' => 'Местно време:',
@@ -1358,7 +1382,6 @@ $1",
 'prefs-reset-intro' => 'Тази страница може да се използва за възстановяване на потребителските настройки към стандартните за сайта.
 Това действие е необратимо.',
 'prefs-emailconfirm-label' => 'Потвърждаване на адрес за е-поща:',
-'prefs-textboxsize' => 'Размер на кутията за редактиране',
 'youremail' => 'Е-поща:',
 'username' => '{{GENDER:$1|Потребителско име}}:',
 'uid' => '{{GENDER:$1|Потребителски}} номер:',
@@ -1597,7 +1620,6 @@ $1",
 'recentchangeslinked-feed' => 'Свързани промени',
 'recentchangeslinked-toolbox' => 'Свързани промени',
 'recentchangeslinked-title' => 'Промени, свързани с „$1“',
-'recentchangeslinked-noresult' => 'Няма промени в свързаните страници за дадения период.',
 'recentchangeslinked-summary' => "Тук се показват последните промени на страниците, към които се препраща от дадена страница. При избиране на категория, се показват промените по страниците, влизащи в нея. ''Пример:'' Ако изберете страницата '''А''', която съдържа препратки към '''Б''' и '''В''', тогава ще можете да прегледате промените по '''Б''' и '''В'''.
 
 Ако пък сложите отметка пред '''Обръщане на релацията''', ще можете да прегледате промените в обратна посока: ще се включат тези страници, които съдържат препратки към посочената страница.
@@ -2154,7 +2176,7 @@ $1',
 'watchnologintext' => 'Необходимо е да [[Special:UserLogin|влезете]], за да може да променяте списъка си за наблюдение.',
 'addwatch' => 'Добавяне към списъка за наблюдение',
 'addedwatchtext' => "Страницата „'''[[:$1]]'''“ беше добавена към [[Special:Watchlist|списъка ви за наблюдение]].
-Нейните бъдещи промени, както и на съответната й дискусионна страница, ще се описват там, а тя ще се появява в '''получер''' в [[Special:RecentChanges|списъка на последните промени]], което ще направи по-лесно избирането й.",
+Нейните бъдещи промени, както и на съответната й дискусионна страница, ще се описват там.",
 'removewatch' => 'Премахване от списъка за наблюдение',
 'removedwatchtext' => 'Страницата „[[:$1]]“ беше премахната от [[Special:Watchlist|списъка ви за наблюдение]].',
 'watch' => 'Наблюдение',
@@ -2163,10 +2185,9 @@ $1',
 'unwatchthispage' => 'Спиране на наблюдение',
 'notanarticle' => 'Не е страница',
 'notvisiblerev' => 'Версията беше изтрита',
-'watchnochange' => 'Никоя от наблюдаваните страници не е била редактирана в показаното време.',
 'watchlist-details' => '{{PLURAL:$1|Една наблюдавана страница|$1 наблюдавани страници}} от списъка ви за наблюдение (без беседи).',
-'wlheader-enotif' => 'Известяването по електронна поща е включено.',
-'wlheader-showupdated' => "Страниците, които са били променени след последния път, когато сте ги посетили, са показани с '''получер''' шрифт.",
+'wlheader-enotif' => 'Известяването по е-поща е включено.',
+'wlheader-showupdated' => "Страниците, които са били променени след последния път, когато сте ги посетили, са показани в '''получер'''.",
 'watchmethod-recent' => 'проверка на последните редакции за наблюдавани страници',
 'watchmethod-list' => 'проверка на наблюдаваните страници за скорошни редакции',
 'watchlistcontains' => 'Списъкът ви за наблюдение съдържа {{PLURAL:$1|една страница|$1 страници}}.',
@@ -2400,7 +2421,7 @@ $1',
 'mycontris' => 'Приноси',
 'contribsub2' => 'За $1 ($2)',
 'nocontribs' => 'Не са намерени промени, отговарящи на критерия.',
-'uctop' => ' (последна)',
+'uctop' => '(текуща)',
 'month' => 'Месец:',
 'year' => 'Година:',
 
@@ -2892,13 +2913,22 @@ $1',
 'pageinfo-header-basic' => 'Основна информация',
 'pageinfo-header-edits' => 'История на редакциите',
 'pageinfo-header-restrictions' => 'Защита на страницата',
+'pageinfo-header-properties' => 'Характеристики на страницата',
+'pageinfo-display-title' => 'Показвано заглавие',
 'pageinfo-default-sort' => 'Ключ за сортиране по подразбиране',
+'pageinfo-length' => 'Дължина на страницата (в байтове)',
 'pageinfo-article-id' => 'Номер на страницата',
+'pageinfo-language' => 'Език на съдържанието на страницата',
+'pageinfo-robot-policy' => 'Статут на страницата в търсачките',
+'pageinfo-robot-index' => 'Индексируема',
+'pageinfo-robot-noindex' => 'Неиндексируема',
 'pageinfo-views' => 'Брой прегледи',
 'pageinfo-watchers' => 'Брой наблюдаващи страницата',
 'pageinfo-few-watchers' => 'Под $1 {{PLURAL:$1|наблюдаващ|наблюдаващи}}',
 'pageinfo-redirects-name' => 'Пренасочвания към тази страница',
 'pageinfo-subpages-name' => 'Подстраници на тази страница',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|пренасочваща|пренасочващи}}; $3 {{PLURAL:$3|непренасочваща|непренасочващи}})',
+'pageinfo-firstuser' => 'Създател на страницата',
 'pageinfo-firsttime' => 'Дата на създаване на страницата',
 'pageinfo-lastuser' => 'Последeн редактор',
 'pageinfo-lasttime' => 'Дата на последнoто редактиране',
@@ -2907,9 +2937,13 @@ $1',
 'pageinfo-recent-edits' => 'Скорошен брой редакции (в рамките на $1)',
 'pageinfo-magic-words' => '{{PLURAL:$1|Вълшебна думичка|Вълшебни думички}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Скрита категория|Скрити категории}} ($1)',
+'pageinfo-templates' => '{{PLURAL:$1|Включен шаблон|Включени шаблони}} ($1)',
 'pageinfo-toolboxlink' => 'Информация за страницата',
+'pageinfo-redirectsto-info' => 'инфо',
 'pageinfo-contentpage-yes' => 'Да',
+'pageinfo-protect-cascading' => 'Каскадни защити, започващи от тази страница',
 'pageinfo-protect-cascading-yes' => 'Да',
+'pageinfo-protect-cascading-from' => 'Каскадни защити, започващи от',
 'pageinfo-category-pages' => 'Брой страници',
 'pageinfo-category-subcats' => 'Брой подкатегории',
 'pageinfo-category-files' => 'Брой файлове',
@@ -2992,11 +3026,17 @@ $1',
 'minutes' => '{{PLURAL:$1|$1 минута|$1 минути}}',
 'hours' => '{{PLURAL:$1|$1 час|$1 часа}}',
 'days' => '{{PLURAL:$1|$1 ден|$1 дни}}',
+'weeks' => '{{PLURAL:$1|$1 седмица|$1 седмици}}',
 'months' => '{{PLURAL:$1|един месец|$1 месеца}}',
 'years' => '{{PLURAL:$1|една година|$1 години}}',
 'ago' => 'преди $1',
 'just-now' => 'току що',
 
+# Human-readable timestamps
+'hours-ago' => 'преди $1 {{PLURAL:$1|час|часа}}',
+'minutes-ago' => 'преди $1 {{PLURAL:$1|минута|минути}}',
+'seconds-ago' => 'преди $1 {{PLURAL:$1|секунда|секунди}}',
+
 # Bad image list
 'bad_image_list' => 'Спазва се следният формат:
 
@@ -3163,6 +3203,7 @@ $1',
 'exif-copyrighted' => 'Авторскоправен статут',
 'exif-copyrightowner' => 'Носител на авторското право',
 'exif-usageterms' => 'Условия за използване',
+'exif-webstatement' => 'Онлайн заявление на авторските права',
 'exif-originaldocumentid' => 'Уникален номер на оригиналния документ',
 'exif-licenseurl' => 'Адрес с информация за авторски права',
 'exif-morepermissionsurl' => 'Алтернативна информация за лиценза',
@@ -3540,7 +3581,6 @@ $5
 'version-other' => 'Други',
 'version-mediahandlers' => 'Обработчици на медия',
 'version-hooks' => 'Куки',
-'version-extension-functions' => 'Допълнителни функции',
 'version-parser-extensiontags' => 'Етикети от парсерни разширения',
 'version-parser-function-hooks' => 'Куки в парсерни функции',
 'version-hook-name' => 'Име на куката',
@@ -3562,6 +3602,9 @@ MediaWiki се разпространява с надеждата, че ще б
 'version-entrypoints-header-entrypoint' => 'Входна точка',
 'version-entrypoints-header-url' => 'Адрес',
 
+# Special:Redirect
+'redirect-user' => 'Потребителски номер',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Търсене на повтарящи се файлове',
 'fileduplicatesearch-summary' => 'Търсене на повтарящи се файлове на база хеш стойности.',
@@ -3651,14 +3694,16 @@ MediaWiki се разпространява с надеждата, че ще б
 'htmlform-submit' => 'Изпращане',
 'htmlform-reset' => 'Отказване на промените',
 'htmlform-selectorother-other' => 'Друга',
+'htmlform-no' => 'Не',
+'htmlform-yes' => 'Да',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 с поддръжка на пълнотекстово търсене',
 'sqlite-no-fts' => '$1 без поддръжка на пълнотекстово търсене',
 
 # New logging system
-'logentry-delete-delete' => '$1 изтри страницата $3',
-'logentry-delete-restore' => '$1 възстанови страницата $3',
+'logentry-delete-delete' => '$1 {{GENDER:$2|изтри}} страницата $3',
+'logentry-delete-restore' => '$1 {{GENDER:$2|възстанови}} страницата $3',
 'logentry-suppress-revision' => '$1 тайно промени видимостта на {{PLURAL:$5|една версия|$5 версии}} на страницата $3: $4',
 'logentry-suppress-revision-legacy' => '$1 тайно промени видимостта на версиите на страница $3',
 'revdelete-content-hid' => 'скрито съдържание',
@@ -3672,10 +3717,10 @@ MediaWiki се разпространява с надеждата, че ще б
 'logentry-move-move_redir-noredirect' => '$1 премести върху пренасочване „$3“ като „$4“ без пренасочване',
 'logentry-patrol-patrol' => '$1 отбеляза като патрулирана версия $4 на страницата „$3“',
 'logentry-patrol-patrol-auto' => '$1 автоматично отбеляза като патрулирана версия $4 на страницата $3',
-'logentry-newusers-newusers' => 'Потребителската сметка $1 беше създадена',
-'logentry-newusers-create' => 'Потребителската сметка $1 беше създадена',
-'logentry-newusers-create2' => '$1 създаде потребителска сметка $3',
-'logentry-newusers-byemail' => '$1 създаде потребителската сметка $3, паролата беше изпратена по електронна поща',
+'logentry-newusers-newusers' => 'Потребителската сметка $1 беше {{GENDER:$2|създадена}}',
+'logentry-newusers-create' => 'Потребителската сметка $1 беше {{GENDER:$2|създадена}}',
+'logentry-newusers-create2' => '$1 {{GENDER:$2|създаде}} потребителска сметка $3',
+'logentry-newusers-byemail' => '$1 {{GENDER:$2|създаде}} потребителската сметка $3, като паролата за нея беше изпратена по е-поща',
 'logentry-newusers-autocreate' => 'Сметката $1 беше създадена автоматично',
 'logentry-rights-rights' => '$1 промени потребителската група на $3 от $4 на $5',
 'logentry-rights-rights-legacy' => '$1 промени потребителската група на $3',
@@ -3684,6 +3729,8 @@ $1 е автоматично повишен от $4 до $5',
 'rightsnone' => '(никакви)',
 
 # Feedback
+'feedback-bugornote' => 'Ако сте готови подробно да опишете технически проблем, моля [$1 докладвайте го тук].
+В противен случай, можете да използвате лесния формуляр по-долу. Коментарът ви ще бъде добавен към страницата "[$3 $2]", наред с вашето потребителско име.',
 'feedback-subject' => 'Тема:',
 'feedback-message' => 'Съобщение:',
 'feedback-cancel' => 'Отказване',
@@ -3694,6 +3741,8 @@ $1 е автоматично повишен от $4 до $5',
 'feedback-error3' => 'Грешка: Няма отговор от API',
 'feedback-thanks' => 'Благодарности! Вашата обратна информация е публикувана на страницата „[$2  $1]“.',
 'feedback-close' => 'Готово',
+'feedback-bugcheck' => 'Страхотно! Само проверете дали това не сред вече [$1 докладваните грешки].',
+'feedback-bugnew' => 'Проверих. Докладвай за нова грешка',
 
 # Search suggestions
 'searchsuggest-search' => 'Търсене',
@@ -3751,4 +3800,7 @@ $1 е автоматично повишен от $4 до $5',
 'duration-centuries' => '$1 {{PLURAL:$1|век|века}}',
 'duration-millennia' => '$1 {{PLURAL:$1|хилядолетие|хилядолетия}}',
 
+# Image rotation
+'rotate-comment' => 'Изображението е завъртяно на $1 {{PLURAL:$1|градус|градуса}} по часовниковата стрелка',
+
 );
index 3775f4c..66f8c79 100644 (file)
@@ -236,7 +236,6 @@ $1',
 'disclaimers' => 'अस्विकरण',
 'disclaimerpage' => 'Project:सामान्य अस्विकरण',
 'edithelp' => 'मदद सम्पादन',
-'edithelppage' => 'Help:सम्पादन',
 'helppage' => 'Help:सामग्री',
 'mainpage' => 'मुख्य पन्ना',
 'mainpage-description' => 'पहिलका पन्ना',
@@ -473,7 +472,6 @@ Legend: '''({{int:cur}})''' = हाल के संशोधन के सा
 'searchmenu-legend' => 'खोज विकल्प',
 'searchmenu-exists' => "'''इ विकि पर ''[[:$1]]'' नाम से एगो पन्ना उपलब्ध बा'''",
 'searchmenu-new' => "'''इ विकि पर ''[[:$1]]'' नाम से पन्ना बनाईं'''",
-'searchhelp-url' => 'Help:सामग्री',
 'searchmenu-prefix' => '[[विशेष:उपसर्ग सूची/$1|इ उपसर्ग साथे पन्ना ब्राउज करीं]]',
 'searchprofile-articles' => 'सामग्री पन्ना',
 'searchprofile-project' => 'मदद आ परियोजना पन्ना',
index 83cebd4..bae9d81 100644 (file)
@@ -384,7 +384,6 @@ $1",
 'disclaimers' => 'Panyangkalan',
 'disclaimerpage' => 'Project:Panyangkalan umum',
 'edithelp' => 'Patulung mambabak',
-'edithelppage' => 'Help:Pambabakan',
 'helppage' => 'Help:Isi',
 'mainpage' => 'Tungkaran Tatambaian',
 'mainpage-description' => 'Tungkaran Tatambaian',
@@ -674,10 +673,8 @@ Pian pinanya sudah barhasil maubah katasunduk Pian atawa maminta sabuting katasu
 
 # Special:PasswordReset
 'passwordreset' => 'Bulikakan setelan katasunduk',
-'passwordreset-text' => 'Tuntungakan purmulir ngini gasan manarima sabuting suril pangingat rarincian akun Pian.',
 'passwordreset-legend' => 'Bulikakan setelan katasunduk',
 'passwordreset-disabled' => 'Mambulikakan setelan katasunduk dipajahakan hagan wiki ngini.',
-'passwordreset-pretext' => '{{PLURAL:$1||Buati asa data di bawah ngini}}',
 'passwordreset-username' => 'Ngaran pamakai:',
 'passwordreset-domain' => 'Dumain:',
 'passwordreset-capture' => 'Tiringikah kulihan suril?',
@@ -1148,7 +1145,6 @@ Catatan bahwasa mamuruk tautan napigasi akan mambulikakan setelan kolum ngini.',
 'searchmenu-legend' => 'Papilihan manggagai',
 'searchmenu-exists' => "'''Ada tungkaran bangaran \"[[:\$1]]\" dalam wiki ini.'''",
 'searchmenu-new' => "'''Maulah tungkaran \"[[:\$1]]\" dalam wiki ngini!'''",
-'searchhelp-url' => 'Help:Isi',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Janaki daptar tungkaran lawan awalan ngini]]',
 'searchprofile-articles' => 'Tungkaran isi',
 'searchprofile-project' => 'Tutungkaran Patulung wan Rangka gawian',
@@ -1224,7 +1220,6 @@ Catatan nang dihaharnya matan isi {{SITENAME}} kawa-ai sudah kadaluarsa.',
 'resetprefs' => 'Walangakan paubahan',
 'restoreprefs' => 'Bulikakan samunyaan sesetélan default',
 'prefs-editing' => 'Pambabakan',
-'prefs-edit-boxsize' => 'Ukuran lalungkang babakan',
 'rows' => 'Baris:',
 'columns' => 'Kolom:',
 'searchresultshead' => 'Gagai',
@@ -1235,8 +1230,6 @@ Catatan nang dihaharnya matan isi {{SITENAME}} kawa-ai sudah kadaluarsa.',
 'recentchangesdays-max' => 'Paling lawas $1 {{PLURAL:$1|hari|hahari}}',
 'recentchangescount' => 'Rikinan babakan nang ditampaiakan default:',
 'prefs-help-recentchangescount' => 'Ngini tamasuk paubahan pahanyarnya, sajarah halam tungkaran, wan log-log.',
-'prefs-help-watchlist-token' => 'Maisi kutak ngini lawan kunci rahasia (PIN) akan mahasilakan sindikasi RSS hagan daptar pantauan Anda. Siapa gin nang tahu kunci ngini kawa mambaca daptar itihan Pian, jadi pilihi nilainya bahati-hati
-Barikut ngini adalah nilai acak nang kawa Pian puruk: $1',
 'savedprefs' => 'Kakatujuan Pian sudah ham disimpan.',
 'timezonelegend' => 'Waktu banua:',
 'localtime' => 'Waktu damintu:',
@@ -1267,7 +1260,6 @@ Barikut ngini adalah nilai acak nang kawa Pian puruk: $1',
 'prefs-reset-intro' => 'Pian kawa mamuruk tungkaran ini hagan setel bulik kakatujuan Pian ka default situs.
 Ini kada kawa diwalangi.',
 'prefs-emailconfirm-label' => 'Payakinakan suril:',
-'prefs-textboxsize' => 'Ukuran kutak ubahan',
 'youremail' => 'Suril:',
 'username' => 'Ngaran pamuruk:',
 'uid' => 'ID pamuruk:',
@@ -1506,7 +1498,6 @@ Amun Pian mamilih manyadiakan ini, ini akan dipuruk gasan paminanduan kulihan ga
 'recentchangeslinked-feed' => 'Paubahan tarait',
 'recentchangeslinked-toolbox' => 'Paubahan tarait',
 'recentchangeslinked-title' => 'Paubahan nang tarait lawan "$1"',
-'recentchangeslinked-noresult' => 'Kadada paubahan pada tautan tutungkaran salawas wayah ditantuakan',
 'recentchangeslinked-summary' => "Ngini sabuting daptar paubahan nang diulah hahanyar ngini pada tungkaran batautan matan sabuting tungkaran tartantu (atawa ka angguta matan sabuah tumbung tartantu).
 Tutungkaran dalam [[Special:Watchlist|daptar itihan Pian]] ditandai '''kandal'''.",
 'recentchangeslinked-page' => 'Ngaran tungkaran:',
@@ -2126,7 +2117,6 @@ Paubahan-paubahan salanjutnya pada tungkaran ngini dan tungkaran pamandiran tara
 'unwatchthispage' => 'Mandak maitihi',
 'notanarticle' => 'Lainan sabuting tungkaran isi',
 'notvisiblerev' => 'Ralatan tauncit ulih saurang pamuruk babida sudah dihapus',
-'watchnochange' => 'Kadada nang Pian itihi dibabak parhatan jangka wayah ngitu.',
 'watchlist-details' => '{{PLURAL:$1|$1 tungkaran|$1 tungkaran}} dalam daptar itihan Pian, kada mahitung tungkaran pamandiran.',
 'wlheader-enotif' => 'Suril pamadahan dipajahi.',
 'wlheader-showupdated' => "Tutungkaran nang ba-ubah tumatan ilangan tauncit Pian ditampaiakan dalam '''hurup kandal'''",
@@ -3585,7 +3575,6 @@ Pian kawa jua [[Special:EditWatchlist|mamuruk si pambabak standar]].',
 'version-other' => 'Lain-lain',
 'version-mediahandlers' => 'Pananganan madia',
 'version-hooks' => 'Kait',
-'version-extension-functions' => 'Pungsi ekstensi',
 'version-parser-extensiontags' => 'Tag ekstensi parser',
 'version-parser-function-hooks' => 'Kait pungsi parser',
 'version-hook-name' => 'Ngaran kait',
index 959d107..8067827 100644 (file)
@@ -79,11 +79,11 @@ $messages = array(
 'tog-newpageshidepatrolled' => 'পরীক্ষিত পাতা গুলো নতুন পাতার তালিকায় আড়াল করো',
 'tog-extendwatchlist' => 'শুধু সাম্প্রতিক পরিবর্তনই নয়, সকল পরিবর্তন দেখতে নজর তালিকা সম্প্রসারণ করুন।',
 'tog-usenewrc' => 'সাম্প্রতিক পরিবর্তনসমূহ এবং নজরতালিকা পাতায় পরিবর্তনগুলো একত্রে প্রদর্শন (জাভাস্ক্রিপ্ট প্রয়োজন)',
-'tog-numberheadings' => 'শিরà§\8bনামà¦\97à§\81লà§\8bà¦\95à§\87 à¦¸à§\8dবয়à¦\82à¦\95à§\8dরিয়ভাবà§\87 à¦\95à§\8dরমাà¦\99à§\8dà¦\95িত à¦\95রা à¦¹à§\8bà¦\95',
-'tog-showtoolbar' => 'সমà§\8dপাদনা à¦\9fà§\81লবার à¦¦à§\87à¦\96ানà§\8b à¦¹à§\8bà¦\95 (à¦\9cাভাসà§\8dà¦\95à§\8dরিপà§\8dà¦\9fà§\87র à¦®à¦¾à¦§à§\8dযমà§\87)',
-'tog-editondblclick' => 'দুইবার ক্লিক করে পাতা সম্পাদনা করার ক্ষমতা দেয়া হোক (জাভাস্ক্রিপ্টের মাধ্যমে)',
+'tog-numberheadings' => 'শিরà§\8bনামà¦\97à§\81লà§\8bà¦\95à§\87 à¦¸à§\8dবয়à¦\82à¦\95à§\8dরিয়ভাবà§\87 à¦\95à§\8dরমিà¦\95 à¦¨à¦®à§\8dবর à¦¦à¦¾à¦\93',
+'tog-showtoolbar' => 'সমà§\8dপাদনা à¦\9fà§\81লবার à¦¦à§\87à¦\96াà¦\93 (à¦\9cাভাসà§\8dà¦\95à§\8dরিপà§\8dà¦\9f à¦ªà§\8dরয়à§\8bà¦\9cন)',
+'tog-editondblclick' => 'দুইবার ক্লিক করে পাতা সম্পাদনা (জাভাস্ক্রিপ্ট প্রয়োজন)',
 'tog-editsection' => '[সম্পাদনা] সংযোগের সাহায্যে পরিচ্ছেদ সম্পাদনা করার ক্ষমতা দেয়া হোক',
-'tog-editsectiononrightclick' => 'পরিচ্ছেদের শিরোনামে ডান ক্লিকের মাধ্যমে <br />পরিচ্ছেদ সম্পাদনা করার ক্ষমতা দেয়া হোক (জাভাস্ক্রিপ্ট)',
+'tog-editsectiononrightclick' => 'পরিচ্ছেদের শিরোনামে ডান ক্লিকের মাধ্যমে সম্পাদনা করার ক্ষমতা দেয়া হোক (জাভাস্ক্রিপ্ট)',
 'tog-showtoc' => 'সূচিপত্র দেখানো হোক (৩টির বেশি পরিচ্ছেদের শিরোনামবিশিষ্ট পাতার জন্য)',
 'tog-rememberpassword' => 'এই ব্রাউজারে আমার লগ ইন তথ্য (শব্দচাবি) মনে রাখো (সর্বোচ্চ $1 {{PLURAL:$1|দিনের|দিনের}} জন্য)',
 'tog-watchcreations' => 'আমার তৈরি পাতা এবং আপলোড করা ফাইলগুললো আমার নজরতালিকায় যোগ করা হোক',
@@ -135,13 +135,13 @@ $messages = array(
 'thursday' => 'বৃহস্পতিবার',
 'friday' => 'শুক্রবার',
 'saturday' => 'শনিবার',
-'sun' => 'রবিবার',
-'mon' => 'সোমবার',
-'tue' => 'মঙ্গলবার',
-'wed' => 'বুধবার',
-'thu' => 'বৃহস্পতিবার',
-'fri' => 'শুক্রবার',
-'sat' => 'শনিবার',
+'sun' => 'রবি',
+'mon' => 'সোম',
+'tue' => 'মঙ্গল',
+'wed' => 'বুধ',
+'thu' => 'বৃহস্পতি',
+'fri' => 'শুক্র',
+'sat' => 'শনি',
 'january' => 'জানুয়ারি',
 'february' => 'ফেব্রুয়ারি',
 'march' => 'মার্চ',
@@ -166,18 +166,18 @@ $messages = array(
 'october-gen' => 'অক্টোবর',
 'november-gen' => 'নভেম্বর',
 'december-gen' => 'ডিসেম্বর',
-'jan' => 'জানুয়ারি',
-'feb' => 'ফেব্রুয়ারি',
+'jan' => 'জানু',
+'feb' => 'ফেব্রু',
 'mar' => 'মার্চ',
 'apr' => 'এপ্রিল',
 'may' => 'মে',
 'jun' => 'জুন',
 'jul' => 'জুলাই',
 'aug' => 'আগস্ট',
-'sep' => 'সেপ্টেম্বর',
-'oct' => 'অক্টোবর',
-'nov' => 'নভেম্বর',
-'dec' => 'ডিসেম্বর',
+'sep' => 'সেপ্টে',
+'oct' => 'অক্টো',
+'nov' => 'নভে',
+'dec' => 'ডিসে',
 'january-date' => 'জানুয়ারি $1',
 'february-date' => 'ফেব্রুয়ারি $1',
 'march-date' => 'মার্চ $1',
@@ -185,7 +185,7 @@ $messages = array(
 'may-date' => 'মে $1',
 'june-date' => 'জুন $1',
 'july-date' => 'জুলাই $1',
-'august-date' => 'à¦\86à¦\97ষ্ট $1',
+'august-date' => 'à¦\86à¦\97স্ট $1',
 'september-date' => 'সেপ্টেম্বর $1',
 'october-date' => 'অক্টোবর $1',
 'november-date' => 'নভেম্বর $1',
@@ -223,11 +223,11 @@ $messages = array(
 'and' => '&#32;এবং',
 
 # Cologne Blue skin
-'qbfind' => 'অনুসন্ধান করুন',
+'qbfind' => 'অনুসন্ধান',
 'qbbrowse' => 'ব্রাউজ',
 'qbedit' => 'সম্পাদনা',
-'qbpageoptions' => 'এ পাতার বিকল্পসমূহ',
-'qbmyoptions' => 'à¦\86মার à¦ªà¦\9bনà§\8dদ',
+'qbpageoptions' => 'এই পাতা',
+'qbmyoptions' => 'à¦\86মার à¦ªà¦¾à¦¤à¦¾à¦¸à¦®à§\82হ',
 'qbspecialpages' => 'বিশেষ পাতাসমূহ',
 'faq' => 'সম্ভাব্য প্রশ্নসমূহ',
 'faqpage' => 'Project:প্রাজিপ্র',
@@ -240,7 +240,7 @@ $messages = array(
 'vector-action-undelete' => 'পুনরুদ্ধার',
 'vector-action-unprotect' => 'সুরক্ষা পরিবর্তন',
 'vector-simplesearch-preference' => 'সরল অনুসন্ধান সক্রিয় করুন (শুধুমাত্র ভেক্টর স্কিনের জন্য)',
-'vector-view-create' => 'তৈরি করুন',
+'vector-view-create' => 'তৈরি',
 'vector-view-edit' => 'সম্পাদনা',
 'vector-view-history' => 'ইতিহাস',
 'vector-view-view' => 'পড়ুন',
@@ -251,7 +251,7 @@ $messages = array(
 
 'navigation-heading' => 'পরিভ্রমণ মেনু',
 'errorpagetitle' => 'ত্রুটি',
-'returnto' => '$1 à¦¶à¦¿à¦°à§\8bনামà§\87র à¦ªà¦¾à¦¤à¦¾à¦¯à¦¼ à¦«à§\87রত à¦¯à¦¾à¦¨à¥¤',
+'returnto' => '$1 পাতায় ফেরত যান।',
 'tagline' => '{{SITENAME}} থেকে',
 'help' => 'সাহায্য',
 'search' => 'অনুসন্ধান',
@@ -266,11 +266,12 @@ $messages = array(
 'print' => 'মুদ্রণ',
 'view' => 'দেখাও',
 'edit' => 'সম্পাদনা',
-'create' => 'তৈরি করো',
+'create' => 'তৈরি',
 'editthispage' => 'সম্পাদনা করুন',
 'create-this-page' => 'পাতাটি তৈরি করো',
 'delete' => 'অপসারণ',
 'deletethispage' => 'এই পাতাটি মুছে ফেলুন',
+'undeletethispage' => 'এই পাতাটি মুছো না',
 'undelete_short' => 'পুনঃস্থাপন {{PLURAL:$1|১টি সম্পাদনা|$1টি সম্পাদনাসমূহ}}',
 'viewdeleted_short' => '{{PLURAL:$1| টি অপসারিত সম্পাদনা|$1 টি অপসারিত সম্পাদনা}} দেখাও',
 'protect' => 'সুরক্ষা',
@@ -282,7 +283,7 @@ $messages = array(
 'talkpage' => 'আলোচনা করুন',
 'talkpagelinktext' => 'আলোচনা',
 'specialpage' => 'বিশেষ পাতা',
-'personaltools' => 'নিà¦\9cসà§\8dব à¦¹à¦¾à¦¤à¦¿à¦¯à¦¼à¦¾à¦°সমূহ',
+'personaltools' => 'নিà¦\9cসà§\8dব à¦¸à¦°à¦\9eà§\8dà¦\9cামসমূহ',
 'postcomment' => 'নতুন অনুচ্ছেদ',
 'articlepage' => 'নিবন্ধ দেখুন',
 'talk' => 'আলোচনা',
@@ -324,7 +325,6 @@ $1',
 'disclaimers' => 'দাবিত্যাগ',
 'disclaimerpage' => 'Project:সাধারণ দাবিত্যাগ',
 'edithelp' => 'সম্পাদনা সহায়িকা',
-'edithelppage' => 'Help:কিভাবে একটি পাতা সম্পাদনা করবেন',
 'helppage' => 'Help:সূচী',
 'mainpage' => 'প্রধান পাতা',
 'mainpage-description' => 'প্রধান পাতা',
@@ -472,6 +472,8 @@ $2',
 'namespaceprotected' => "'''$1''' নামস্থানে কোন পাতা আপনার সম্পাদনা করার অনুমতি নেই।",
 'customcssprotected' => 'আপনার এই সিএসএস পাতাটি সম্পাদনা করার অনুমতি নেই, কারণ এ পাতায় অন্য ব্যবহারকারীর নিজস্ব সেটিংস রয়েছে।',
 'customjsprotected' => 'আপনার এই জাভাস্ক্রিপ্ট পাতাটি সম্পাদনা করার অনুমতি নেই, কারণ এ পাতায় অন্য ব্যবহারকারীর নিজস্ব সেটিংস রয়েছে।',
+'mycustomcssprotected' => 'আপনার এই সিএসএস পাতাটি সম্পাদনা করার অনুমতি নেই।',
+'mycustomjsprotected' => 'আপনার এই জাভাস্ক্রিপ্ট পাতাটি সম্পাদনা করার অনুমতি নেই।',
 'ns-specialprotected' => '{{ns:special}} নামস্থানে পাতাসমূহ সম্পাদনা করা যাবে না।',
 'titleprotected' => "[[User:$1|$1]]-কে এই শিরোনামের পাতা সৃষ্টি করতে বাধা দেয়া হচ্ছে। কারণ: ''$2''।",
 'filereadonlyerror' => '"$1" ফাইলটিকে পরিবর্তন করা সম্ভব হচ্ছে না কারন "$2" ফাইল রিপোসিটোরি রিড-অনলি-মোডে আছে।
@@ -488,7 +490,7 @@ $2',
 'virus-unknownscanner' => 'অজানা এন্টিভাইরাস:',
 
 # Login and logout pages
-'logouttext' => "'''à¦\86পনি à¦\8fà¦\87মাতà§\8dর à¦\86পনার à¦\8fকাউন্ট থেকে প্রস্থান করেছেন।'''
+'logouttext' => "'''à¦\86পনি à¦\8fà¦\87মাতà§\8dর à¦\86পনার à¦\85à§\8dযাকাউন্ট থেকে প্রস্থান করেছেন।'''
 
 এ পরিস্থিতিতে আপনি বেনামে {{SITENAME}} ব্যবহার করতে পারেন, কিংবা একই বা পৃথক নামে <span class='plainlinks'>[$1 আবার প্রবেশ করতে]</span> পারেন।
 লক্ষ্য করুন যে, এর কোন কোন পাতা এখনও এমনভাবে দেখাতে পারে যাতে মনে হবে আপনি আগের অবস্থাতেই আছেন। এক্ষেত্রে আপনাকে আপনার ব্রাওজারের ক্যাশ পরিষ্কার (clear browser cache) করে নিতে হবে।",
@@ -498,6 +500,7 @@ $2',
 'yourname' => 'ব্যবহারকারী নাম:',
 'userlogin-yourname' => 'ব্যবহারকারী নাম',
 'userlogin-yourname-ph' => 'আপনার ব্যবহাকারী নাম প্রবেশ করান',
+'createacct-another-username-ph' => 'আপনার ব্যবহাকারী নাম প্রবেশ করান',
 'yourpassword' => 'শব্দচাবি:',
 'userlogin-yourpassword' => 'শব্দচাবি (Password)',
 'userlogin-yourpassword-ph' => 'আপনার শব্দচাবি (পাসওয়ার্ড) লিখুন',
@@ -507,7 +510,7 @@ $2',
 'createacct-yourpasswordagain-ph' => 'আবারও শব্দচাবি প্রদান করুন',
 'remembermypassword' => 'একাধিক সেশনের জন্য শব্দচাবি মনে রাখা হোক (সর্বোচ্চ $1 {{PLURAL:$1|দিনের|দিনের}} জন্য)',
 'userlogin-remembermypassword' => 'আমাকে প্রবেশ অবস্থায় রাখো',
-'userlogin-signwithsecure' => 'নিরাপদ à¦¸à¦¾à¦°à§\8dভারà§\87র ব্যবহার করুন',
+'userlogin-signwithsecure' => 'নিরাপদ à¦¸à¦\82যà§\8bà¦\97 ব্যবহার করুন',
 'securelogin-stick-https' => 'লগইনের পর এইচটিটিপিএস-এর সাথে সংযোগকৃত থাকুন',
 'yourdomainname' => 'আপনার ডোমেইন',
 'password-change-forbidden' => 'আপনি এই উইকিতে পাসওয়ার্ড পরিবর্তন করতে পারবেন না।',
@@ -521,20 +524,21 @@ $2',
 'userlogout' => 'প্রস্থান',
 'notloggedin' => 'আপনি সংযুক্ত নন',
 'userlogin-noaccount' => 'কোনও অ্যাকাউন্ট নেই?',
-'userlogin-joinproject' => '{{SITENAME}}-à¦\8f à¦\85à¦\82শà¦\97à§\8dরহন à¦\95রà§\81ন',
+'userlogin-joinproject' => '{{SITENAME}}-à¦\8f à¦¯à§\8bà¦\97 à¦¦à¦¿ন',
 'nologin' => "আপনার কি উইকিপিডিয়াতে অ্যাকাউন্ট নেই? তাহলে '''$1'''।",
 'nologinlink' => 'অ্যাকাউন্ট তৈরি করুন',
 'createaccount' => 'নতুন অ্যাকাউন্ট খুলুন',
 'gotaccount' => "আপনার কি ইতিমধ্যে একটি অ্যাকাউন্ট তৈরি করা আছে? '''$1''' করুন।",
 'gotaccountlink' => 'প্রবেশ',
 'userlogin-resetlink' => 'আপনার লগইনের বিস্তারিত তথ্যাদি ভুলে গেছেন?',
-'userlogin-resetpassword-link' => 'পাসà¦\93য়ারà§\8dড à¦°à¦¿à¦¸à§\87à¦\9f করুন',
+'userlogin-resetpassword-link' => 'শবà§\8dদà¦\9aাবি à¦ªà§\81নরায় à¦§à¦¾à¦°à§\8dয করুন',
 'helplogin-url' => 'Help:প্রবেশ',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|লগইন সংক্রান্ত সাহায্য]]',
 'createacct-join' => 'আপনার সম্পর্কিত তথ্য নিচে যোগ করুন।',
 'createacct-emailrequired' => 'ইমেইল ঠিকানা',
 'createacct-emailoptional' => 'ইমেইল ঠিকানা (ঐচ্ছিক)',
 'createacct-email-ph' => 'আপনার ইমেইল ঠিকানা যোগ করুন',
+'createacct-another-email-ph' => 'আপনার ইমেইল ঠিকানা প্রবেশ করান',
 'createaccountmail' => 'একটি র‌্যান্ডম পাসওয়ার্ড নির্বাচন করুন এবং নিচের নির্ধারিত ইমেইল ঠিকানায় পাঠিয়ে দিন',
 'createacct-realname' => 'আসল নাম (ঐচ্ছিক)',
 'createaccountreason' => 'কারণ:',
@@ -543,14 +547,15 @@ $2',
 'createacct-captcha' => 'নিরাপত্তা পরীক্ষা',
 'createacct-imgcaptcha-ph' => 'উপরে যে লেখা দেখতে পাচ্ছেন তা লিখুন',
 'createacct-submit' => 'আপনার অ্যাকাউন্ট তৈরি করুন',
+'createacct-another-submit' => 'আরেকটি অ্যাকাউন্ট তৈরি করুন',
 'createacct-benefit-heading' => '{{SITENAME}} আপনার মত লোকেরই তৈরি।',
-'createacct-benefit-body1' => '{{PLURAL:$1|সম্পাদনা}}',
-'createacct-benefit-body2' => '{{PLURAL:$1|পাতা|পাতাসমà§\82হ}}',
-'createacct-benefit-body3' => 'সাম্প্রতিক {{PLURAL:$1|অবদানকারী|অবদানকারীগণ}}',
+'createacct-benefit-body1' => '{{PLURAL:$1|à¦\9fি à¦¸à¦®à§\8dপাদনা}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|à¦\9fি à¦ªà¦¾à¦¤à¦¾}}',
+'createacct-benefit-body3' => 'সাম্প্রতিক {{PLURAL:$1|অবদানকারী}}',
 'badretype' => "আপনার প্রবেশ করানো শব্দচাবি'টি মিলছেনা।",
 'userexists' => 'এই ব্যবহারকারী নামটি ইতমধ্যে ব্যবহার করা হয়েছে।
 অনুগ্রহ করে অন্য নাম বেছে নিন।',
-'loginerror' => 'লà¦\97-à¦\87ন করতে সমস্যা হয়েছে',
+'loginerror' => 'পà§\8dরবà§\87শ করতে সমস্যা হয়েছে',
 'createacct-error' => 'অ্যাকাউন্ট তৈরি ত্রুটি',
 'createaccounterror' => 'অ্যাকাউন্ট তৈরি হয়নি: $1',
 'nocookiesnew' => 'ব্যবহারকারীর অ্যাকাউন্টটি সৃষ্টি করা হয়েছে, কিন্তু আপনি এখনও অ্যাকাউন্টে প্রবেশ করেননি। {{SITENAME}}-তে কুকি ব্যবহার করে ব্যবহারকারীদের অ্যাকাউন্টে প্রবেশ করানো হয়। আপনার ব্রাউজারে কুকিগুলি নিষ্ক্রিয় করা আছে। অনুগ্রহ করে কুকিগুলি সক্রিয় করুন এবং আপনার নতুন ব্যবহারকারী নাম ও শব্দচাবি ব্যবহার করে অ্যাকাউন্টে প্রবেশ করুন।',
@@ -566,7 +571,7 @@ $2',
 'nosuchusershort' => '"$1" নামের কোন ব্যবহারকারী নেই। নামের বানান পরীক্ষা করুন।',
 'nouserspecified' => 'আপনাকে অবশ্যই ব্যবহারকারী নাম নির্দিষ্ট করতে হবে।',
 'login-userblocked' => 'এই ব্যবহারকারীকে বাধা দেওয়া হয়েছে। লগ-ইন সম্ভব নয়।',
-'wrongpassword' => 'আপনি ভুল শব্দচাবি (password) ব্যবহার করেছেন। অনুগ্রহ করে আবার চেষ্টা করুন।',
+'wrongpassword' => 'আপনি ভুল শব্দচাবি ব্যবহার করেছেন। অনুগ্রহ করে আবার চেষ্টা করুন।',
 'wrongpasswordempty' => 'শব্দচাবি (password) প্রবেশের ঘরটি খালি ছিল। দয়াকরে আবার চেষ্টা করুন।',
 'passwordtooshort' => 'শব্দচাবি অবশ্যই {{PLURAL:$1|১ অক্ষরের|$1 অক্ষরের}} হতে হবে।',
 'password-name-match' => 'আপনার শব্দচাবি আপনার ব্যবহারকারী নাম থেকে আলাদা হতে হবে।',
@@ -596,7 +601,7 @@ $2',
 'cannotchangeemail' => 'একাউন্ট ইমেইল ঠিকানা এই উইকিতে পরিবর্তন করা যাবে না।',
 'emaildisabled' => 'এই সাইটটিতে ই-মেইল প্রদানের সুবিধা নেই।',
 'accountcreated' => 'অ্যাকাউন্ট তৈরি করা হয়েছে',
-'accountcreatedtext' => '$1 এর জন্য ব্যবহারকারী অ্যাকাউন্ট তৈরি করা হয়েছে।',
+'accountcreatedtext' => '[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|আলাপ]]) এর জন্য ব্যবহারকারী অ্যাকাউন্ট তৈরি করা হয়েছে।',
 'createaccount-title' => '{{SITENAME}}-এর জন্য অ্যাকাউন্ট সৃষ্টি',
 'createaccount-text' => 'কেউ $2-এর জন্য {{SITENAME}}-এ একটি অ্যাকাউন্ট সৃষ্টি করেছেন ($4)। "$2"-এর জন্য শব্দচাবি হল "$3"। আপনার এখন অ্যাকাউন্টে প্রবেশ করে শব্দচাবি পরিবর্তন করা উচিত।
 
@@ -634,15 +639,15 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'শব্দচাবি রিসেট',
-'passwordreset-text' => 'আপনার শব্দচাবি বদলের জন্য নিচের ফর্মটি পূরণ করুন।',
+'passwordreset-text-one' => 'আপনার পাসওয়ার্ড পুনরায় সেট করতে এই ফর্মটি পূরণ করুন।',
+'passwordreset-text-many' => '{{PLURAL:$1|আপনার পাসওয়ার্ড রিসেট করতে এই তথ্যগুলোর যেকোন একটা প্রবেশ করান।}}',
 'passwordreset-legend' => 'শব্দচাবি রিসেট',
 'passwordreset-disabled' => 'এই উইকিতে শব্দচাবি রিসেটের সুবিধা নিষ্ক্রিয় রয়েছে।',
 'passwordreset-emaildisabled' => 'এই উইকিতে ইমেইল অপশনটি বন্ধ করা হয়েছে।',
-'passwordreset-pretext' => '{{PLURAL:$1||নিচে উল্লেখিত ডেটাগুলোর কোনো একটি প্রবেশ করান}}',
 'passwordreset-username' => 'ব্যবহারকারী নাম:',
 'passwordreset-domain' => 'ডোমেইন:',
 'passwordreset-capture' => 'অনুসন্ধানের ফলাফলের ইমেইল দেখুন?',
-'passwordreset-capture-help' => 'à¦\86পনি à¦¯à¦¦à¦¿ à¦\8fà¦\87 à¦\9aà§\87à¦\95 à¦¬à¦\95à§\8dসà§\87 à¦\95à§\8dলিà¦\95 à¦\95রà§\87ন, à¦¤à¦¬à§\87 à¦\85সà§\8dথায়à§\80 à¦¶à¦¬à§\8dদà¦\9aাবিসহ à¦\8fà¦\95à¦\9fি à¦\87-মেইল আপনাকে দেখানো হবে ও সেইসাথে ব্যবহারকারীকে তা পাঠানো হবে।',
+'passwordreset-capture-help' => 'à¦\86পনি à¦¯à¦¦à¦¿ à¦\8fà¦\87 à¦ªà¦°à§\80à¦\95à§\8dষা à¦¬à¦\95à§\8dসà§\87 à¦\95à§\8dলিà¦\95 à¦\95রà§\87ন, à¦¤à¦¬à§\87 à¦\85সà§\8dথায়à§\80 à¦¶à¦¬à§\8dদà¦\9aাবিসহ à¦\8fà¦\95à¦\9fি à¦\87মেইল আপনাকে দেখানো হবে ও সেইসাথে ব্যবহারকারীকে তা পাঠানো হবে।',
 'passwordreset-email' => 'ইমেইল ঠিকানা:',
 'passwordreset-emailtitle' => '{{SITENAME}} সাইটে ব্যবহারকারীর বিস্তারিত তথ্যাদি',
 'passwordreset-emailtext-ip' => 'কেউ একজন (সম্ভবত আপনি, $1 আইপি ঠিকানা থেকে) {{SITENAME}} ($4) সাইটের জন্য আপনার
@@ -769,7 +774,9 @@ $1 নিষেধাজ্ঞা আরোপ করেছেন। নিষ
 একাধিক ব্যবহারকারী এরকম একটি আইপি ঠিকানা ব্যবহার করতে পারেন।
 আপনি যদি একজন বেনামী ব্যবহারকারী হয়ে থাকেন এবং যদি অনুভব করেন যে আপনার প্রতি অপ্রাসঙ্গিক মন্তব্য করা হয়েছে, তাহলে অন্যান্য বেনামী ব্যবহারকারীর সাথে ভবিষ্যতে বিভ্রান্তি এড়াতে অনুগ্রহ করে [[Special:UserLogin/signup|একটি অ্যাকাউন্ট তৈরি করুন]] অথবা  [[Special:UserLogin|অ্যাকাউন্টে প্রবেশ করুন]]।''",
 'noarticletext' => 'বর্তমানে এই পাতায় কোন লেখা নেই।
-আপনি চাইলে অন্যান্য পাতায় [[Special:Search/{{PAGENAME}}| এই শিরোনামটি অনুসন্ধান করতে পারেন]], <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} এ সম্পর্কিত লগ অনুসন্ধান করতে পারেন], কিংবা [{{fullurl:{{FULLPAGENAME}}|action=edit}} এই পাতাটি সম্পাদনা করতে পারেন]</span>।',
+আপনি চাইলে অন্যান্য পাতায় [[Special:Search/{{PAGENAME}}| এই শিরোনামটি অনুসন্ধান করতে পারেন]],
+<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} এ সম্পর্কিত লগ অনুসন্ধান করতে পারেন], 
+কিংবা [{{fullurl:{{FULLPAGENAME}}|action=edit}} এই পাতাটি সম্পাদনা করতে পারেন]</span>।',
 'noarticletext-nopermission' => 'বর্তমানে এই পাতায় কোন লেখা নেই।
 আপনি চাইলে অন্য পাতায় [[Special:Search/{{PAGENAME}}| শিরোনামটি অনুসন্ধান করতে পারেন]], অথবা <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} সম্পর্কিত লগ অনুসন্ধান করতে পারেন]</span>, কিন্তু আপনার এই পাতাটি তৈরী করার অনুমতি নেই।',
 'missing-revision' => '"{{PAGENAME}}" এর #$1তম সংস্করণটি প্রদর্শন সম্ভব নয়।
@@ -842,9 +849,9 @@ $1 নিষেধাজ্ঞা আরোপ করেছেন। নিষ
 'cascadeprotectedwarning' => "'''সতর্কীকরণ:''' এই পাতাটি বন্ধ করা হয়েছে, যাতে কেবল প্রশাসকের ক্ষমতাবিশিষ্ট ব্যবহারকারীরা এটি সম্পাদনা করতে পারেন, কারণ এই পাতাটি নিচের প্রপাতাকারে সুরক্ষিত (cascade-protected) {{PLURAL:$1|টি পাতায়|টি পাতায়}} অন্তর্ভুক্ত আছে:",
 'titleprotectedwarning' => "'''সতর্কীকরণ: এই পাতাটির ব্যবহার সীমিত করা হয়েছে, যাতে কেবলমাত্র [[Special:ListGroupRights|এই নির্দিষ্ট অনুমতিপ্রাপ্ত]] ব্যবহারকারী এটি তৈরি করতে পারেন।'''
 আপনার সুবিধার্থে পাতাটির সাম্প্রতিক সংরক্ষণ লগের বিবরণ নিচে দেওয়া হলো।",
-'templatesused' => 'à¦\8fà¦\87 à¦ªà¦¾à¦¤à¦¾à¦¯à¦¼ à¦¬à§\8dযবহà§\83ত {{PLURAL:$1|à¦\9fà§\87মà§\8dপলà§\87à¦\9f|à¦\9fà§\87মà§\8dপলেটসমূহ}}:',
+'templatesused' => 'à¦\8fà¦\87 à¦ªà¦¾à¦¤à¦¾à¦¯à¦¼ à¦¬à§\8dযবহà§\83ত {{PLURAL:$1|à¦\9fà§\87মপà§\8dলà§\87à¦\9f|à¦\9fà§\87মপà§\8dলেটসমূহ}}:',
 'templatesusedpreview' => 'এই প্রাকদর্শনে ব্যবহৃত {{PLURAL:$1|টেম্পলেট| টেম্পলেটসমূহ}}:',
-'templatesusedsection' => 'à¦\8fà¦\87 à¦\85নà§\81à¦\9aà§\8dà¦\9bà§\87দà§\87 à¦¬à§\8dযবহà§\83ত {{PLURAL:$1|à¦\9fà§\87মà§\8dপলà§\87à¦\9f|à¦\9fà§\87মà§\8dপলেটসমূহ}}:',
+'templatesusedsection' => 'à¦\8fà¦\87 à¦\85নà§\81à¦\9aà§\8dà¦\9bà§\87দà§\87 à¦¬à§\8dযবহà§\83ত {{PLURAL:$1|à¦\9fà§\87মপà§\8dলà§\87à¦\9f|à¦\9fà§\87মপà§\8dলেটসমূহ}}:',
 'template-protected' => '(সুরক্ষিত)',
 'template-semiprotected' => '(অর্ধ-সুরক্ষিত)',
 'hiddencategories' => 'এ পাতাটি যে {{PLURAL:$1|1 লুকায়িত বিষয়শ্রেণীর|$1 লুকায়িত বিষয়শ্রেণীসমূহের}} সদস্য:',
@@ -870,6 +877,7 @@ $1 নিষেধাজ্ঞা আরোপ করেছেন। নিষ
 সম্ভবতঃ পাতাটি মুছে ফেলা হয়েছে।',
 'edit-conflict' => 'সম্পাদনা সংঘাত।',
 'edit-no-change' => 'আপনার সম্পাদনাটি উপেক্ষা করা হয়েছে, কারণ লেখাতে কোনো পরিবর্তন করা হয়নি।',
+'postedit-confirmation' => 'আপনার সম্পাদনা সংরক্ষিত হয়েছে।',
 'edit-already-exists' => 'নতুন পাতা সৃষ্টি করা যায়নি।
 পাতাটি ইতিমধ্যেই বিদ্যমান।',
 'defaultmessagetext' => 'আদি টেক্সট',
@@ -877,7 +885,7 @@ $1 নিষেধাজ্ঞা আরোপ করেছেন। নিষ
 'invalid-content-data' => 'ভুল কন্টেন্ট ডাটা',
 'content-not-allowed-here' => '"$1" কন্টেন্টটি [[$2]] পাতায় অনুমোদিত নয়',
 'editwarning-warning' => 'এই পাতাটি ত্যাগ করলে আপনার আপনার করা পরিবর্তনগুলো হারিয়ে যেতে পারে।
-আপনি যদি লগইন করা থাকেন, আপনি এই সতর্কীকরণ বার্তাটি আপনার পছন্দের "{{int:prefs-editing}}" অনুচ্ছেদ থেকে নিস্ক্রিয় করতে পারেন।',
+আপনি যদি লগইন করা থাকেন, আপনি এই সতর্কীকরণ বার্তাটি আপনার পছন্দের "সম্পাদনা" অনুচ্ছেদ থেকে নিস্ক্রিয় করতে পারেন।',
 
 # Content models
 'content-model-wikitext' => 'উইকিটেক্সট',
@@ -939,7 +947,7 @@ $3-এর দেয়া কারণ হল ''$2''",
 'history-fieldset-title' => 'ব্রাউজ ইতিহাস',
 'history-show-deleted' => 'শুধুমাত্র অপসারণ',
 'histfirst' => 'সবচেয়ে পুরনো',
-'histlast' => 'সামà§\8dপà§\8dরতিà¦\95',
+'histlast' => 'সবà¦\9aà§\87য়à§\87 à¦¨à¦¤à§\81ন',
 'historysize' => '({{PLURAL:$1|১ বাইট|$1 বাইট}})',
 'historyempty' => '(খালি)',
 
@@ -1092,6 +1100,7 @@ $1",
 'compareselectedversions' => 'নির্বাচিত সংস্করণগুলো তুলনা করো',
 'showhideselectedversions' => 'নির্বাচিত সংশোধনগুলো দেখাও/লুকাও',
 'editundo' => 'বাতিল',
+'diff-empty' => '(কোন পার্থক্য নেই)',
 'diff-multi' => '({{PLURAL:$2|একজন ব্যবহারকারী |$2 জন ব্যবহারকারী}} সম্পাদিত {{PLURAL:$1|একটি অন্তর্বর্তীকালীন সংশোধন|$1টি অন্তর্বর্তীকালীন সংশোধন}} দেখানো হয়নি।)',
 'diff-multi-manyusers' => '($2 জন {{PLURAL:$2|ব্যবহারাকারীর}} সম্পাদিত {{PLURAL:$1|একটি সাম্প্রতিক সংস্করণ|$1 টি সাম্প্রতিক সংস্করণ}} প্রদর্শিত হচ্ছে না)',
 'difference-missing-revision' => '$1 পার্থক্যের {{PLURAL:$2|একটি সংস্করণ|$2টি সংস্করণসমূহ}} খুজে পাওয়া যাচ্ছে না।
@@ -1119,7 +1128,6 @@ $1",
 'searchmenu-legend' => 'অনুসন্ধান অপশন',
 'searchmenu-exists' => "'''এই উইকিতে \"[[:\$1]]\" নামে একটি পাতা রয়েছে'''",
 'searchmenu-new' => "'''\"[[:\$1]]\" পাতাটি এই উইকিতে তৈরি করুন!'''",
-'searchhelp-url' => 'Help:সহায়িকা',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|এই প্রিফিক্স রয়েছে এমন পাতা দেখুন]]',
 'searchprofile-articles' => 'বিষয়বস্তুর পাতা',
 'searchprofile-project' => 'সহায়িকা এবং প্রকল্প পাতা',
@@ -1156,7 +1164,7 @@ $1",
 'powersearch-ns' => 'নেমস্পেসে অনুসন্ধান করো:',
 'powersearch-redir' => 'পুনঃনির্দেশনাসমূহের তালিকা',
 'powersearch-field' => 'অনুসন্ধান করো',
-'powersearch-togglelabel' => 'à¦\9aà§\87à¦\95:',
+'powersearch-togglelabel' => 'পরà§\80à¦\95à§\8dষা:',
 'powersearch-toggleall' => 'সকল',
 'powersearch-togglenone' => 'কিছু নয়',
 'search-external' => 'বহিঃস্থ অনুসন্ধান',
@@ -1195,7 +1203,6 @@ $1",
 'resetprefs' => 'অসংরক্ষিত পরিবর্তনগুলো পরিস্কার করো',
 'restoreprefs' => 'সকল পূর্বনির্ধারিত সেটিং ফিরিয়ে আনো',
 'prefs-editing' => 'সম্পাদনা',
-'prefs-edit-boxsize' => 'সম্পাদনা উইন্ডোর আকার।',
 'rows' => 'সারি:',
 'columns' => 'কলাম:',
 'searchresultshead' => 'অনুসন্ধান',
@@ -1206,7 +1213,6 @@ $1",
 'recentchangesdays-max' => 'সর্বোচ্চ $1 {{PLURAL:$1|দিন|দিন}}',
 'recentchangescount' => 'সাম্প্রতিক পরিবর্তনে প্রদর্শিত সম্পাদনার সংখ্যা:',
 'prefs-help-recentchangescount' => 'এতে সাম্প্রতিক পরিবর্তনসমূহ, পাতার ইতিহাস এবং লগ অন্তর্ভুক্ত।',
-'prefs-help-watchlist-token' => 'এই ঘরটি একটি গোপন শব্দ চাবি দ্বারা পূরণ করলে আপনার নজর তালিকার জন্য একটি আরএসএস ফিড তৈরী হবে। যারা এই ঘরের চাবি জানবে তারা আপনার নজর তালিকা দেখতে পারবে, তাই একটি গোপন মান ব্যবহার করুন। এখানে এলোমেলোভাবে তৈরী একটি মান দেখানো হয়েছে যা আপনি ব্যবহার করতে পারেন: $1',
 'savedprefs' => 'আপনার পছন্দগুলো সংরক্ষণ করা হয়েছে।',
 'timezonelegend' => 'সময়স্থান:',
 'localtime' => 'স্থানীয় সময়:',
@@ -1237,7 +1243,6 @@ $1",
 'prefs-reset-intro' => 'আপনি এই পাতা ব্যবহার করে আপনার পছন্দসমূহকে সাইটের পূর্বপ্রদত্ত সেটিংসে পরিবর্তন করতে পারেন।
 পরিবর্তন করার পর এটা  আর ফিরিয়ে আনা যাবে না।',
 'prefs-emailconfirm-label' => 'ই-মেইল নিশ্চিতকরণ:',
-'prefs-textboxsize' => 'সম্পাদনা উইন্ডোর আকার',
 'youremail' => 'ইমেইল *',
 'username' => '{{GENDER:$1|ব্যবহারকারী নাম}}:',
 'uid' => '{{GENDER:$1|ব্যবহারকারী}} নং (ID):',
@@ -1246,6 +1251,7 @@ $1",
 'yourrealname' => 'আসল নাম *',
 'yourlanguage' => 'ভাষা:',
 'yourvariant' => 'বিষয়বস্তুর ভাষার বিকল্প:',
+'prefs-help-variant' => 'উইকিতে কন্টেন্ট পাতা দেখার জন্য আপনার পছন্দের বৈশিষ্ট।',
 'yournick' => 'স্বাক্ষর:',
 'prefs-help-signature' => 'আলাপ পাতায় আপনার মন্তব্য অবশ্যই "<nowiki>~~~~</nowiki>" চিহ্ন দ্বারা স্বাক্ষরিত হতে হবে, যা স্বয়ংক্রিয়ভাবে আপনার স্বাক্ষর ও সময় সংযুক্ত করবে।',
 'badsig' => 'অবৈধ স্বাক্ষর; এইচটিএমএল ট্যাগ পরীক্ষা করুন।',
@@ -1268,6 +1274,8 @@ $1",
 'prefs-dateformat' => 'তারিখ বিন্যাস',
 'prefs-timeoffset' => 'সময় অফসেট',
 'prefs-advancedediting' => 'উচ্চতর অপশন',
+'prefs-editor' => 'সম্পাদক',
+'prefs-preview' => 'প্রাকদর্শন',
 'prefs-advancedrc' => 'উচ্চতর অপশন',
 'prefs-advancedrendering' => 'উচ্চতর অপশন',
 'prefs-advancedsearchoptions' => 'উচ্চতর অপশন',
@@ -1302,7 +1310,7 @@ $1",
 'userrights-notallowed' => 'আপনার অ্যাকাউন্ট থেকে ব্যবহারকারী অধিকার যুক্ত বা অপসারণ করার অনুমতি নেই।',
 'userrights-changeable-col' => 'দল যা আপনি পরিবর্তন করতে পারেন',
 'userrights-unchangeable-col' => 'দল যা আপনি পরিবর্তন করতে পারবেন না',
-'userrights-conflict' => 'বà§\8dযবহারà¦\95ারà§\80 à¦\85ধিà¦\95ার à¦¬à¦¿à¦°à§\8bধ! অনুগ্রহ করে পুনরায় চেষ্টা করুন।',
+'userrights-conflict' => 'বà§\8dযবহারà¦\95ারà§\80 à¦\85ধিà¦\95ার à¦¦à§\8dবনà§\8dদà§\8dব! অনুগ্রহ করে পুনরায় চেষ্টা করুন।',
 
 # Groups
 'group' => 'দল:',
@@ -1348,6 +1356,7 @@ $1",
 'right-purge' => 'নিশ্চিতকরণ ছাড়াই সাইটের ক্যাশ পার্জ করুন',
 'right-autoconfirmed' => 'অর্ধ-সুরক্ষিত পাতা সম্পাদনা',
 'right-bot' => 'সয়ংক্রিয় পদ্ধতি হিসাবে চিহ্নিত করণ',
+'right-nominornewtalk' => 'বার্তা লেখার মত আলাপ পাতায় কোনো অনুল্লেখ্য সম্পাদনা নেই',
 'right-apihighlimits' => 'API কোয়েরি হিসাবে আরও উচ্চ লিমিট ব্যবহার করুন',
 'right-writeapi' => 'write API এর ব্যবহার',
 'right-delete' => 'পাতা মুছে ফেলুন',
@@ -1366,12 +1375,14 @@ $1",
 'right-ipblock-exempt' => 'আইপি ব্লক, অটো ব্লক এবং রেঞ্জ ব্লক এড়িয়ে যান',
 'right-proxyunbannable' => 'সয়ংক্রিয় প্রক্সি ব্লক এড়িয়ে যান',
 'right-unblockself' => 'আনব্লক করুন',
-'right-protect' => 'পাতাà¦\9fির à¦¸à¦\82রà¦\95à§\8dষণ à¦¸à§\80মা à¦ªà¦°à¦¿à¦¬à¦°à§\8dতন à¦\95রà§\81ন à¦\8fবà¦\82 পাতটি সম্পাদনা করুন',
+'right-protect' => 'পাতাà¦\9fির à¦¸à§\81রà¦\95à§\8dষা à¦¸à§\80মা à¦ªà¦°à¦¿à¦¬à¦°à§\8dতন à¦\95রà§\81ন à¦\8fবà¦\82 à¦¸à§\81রà¦\95à§\8dষিত পাতটি সম্পাদনা করুন',
 'right-editprotected' => 'সুরক্ষিত পাতা সম্পাদনা (ক্যাসকাডিং সুরক্ষা ছাড়া)',
 'right-editinterface' => 'ব্যবহারকারী ইন্টারফেস সম্পাদনা',
 'right-editusercssjs' => 'অন্য ব্যবহারকারীগণের CSS এবং JS ফাইল সম্পাদনা',
 'right-editusercss' => 'অন্য ব্যবহারকারীগণের CSS ফাইল সম্পাদনা',
 'right-edituserjs' => 'অন্য ব্যবহারকারীগণের JS ফাইল সম্পাদনা',
+'right-editmyusercss' => 'আপনার নিজস্ব ব্যবহারকারী সিএসএস ফাইল সম্পাদনা করুন',
+'right-editmyuserjs' => 'আপনার নিজস্ব ব্যবহারকারী জাভাস্ক্রিপ্ট ফাইল সম্পাদনা করুন',
 'right-rollback' => 'একটি নির্দিষ্ট পাতার সর্বশেষ ব্যবহারকারীর সম্পদনা পূর্বাবস্থায় ফিরিয়ে আনুন',
 'right-markbotedits' => 'রোলড-ব্যাক সম্পাদনাসমূহকে বট সম্পাদনা হিসেবে চিহ্নিত করো',
 'right-noratelimit' => 'রেট লিমিটের ভিত্তিতে পরিবর্তন হবে না',
@@ -1477,7 +1488,6 @@ $1",
 'recentchangeslinked-feed' => 'সম্পর্কিত পরিবর্তন',
 'recentchangeslinked-toolbox' => 'সম্পর্কিত পরিবর্তন',
 'recentchangeslinked-title' => '"$1"-এর সাথে সম্পর্কিত পরিবর্তনসমূহ',
-'recentchangeslinked-noresult' => 'সংযোগকৃত পাতাগুলিতে প্রদত্ত সময়সীমার জন্য কোন পরিবর্তন হয়নি।',
 'recentchangeslinked-summary' => "একটি নির্দিষ্ট পাতা (অথবা নির্দিষ্ট বিষয়শ্রেণীতে) থেকে সংযুক্ত এ পাতার সাম্প্রতিক পরিবর্তনের তালিকা দেওয়া হয়েছে। আপনার [[Special:Watchlist|আপনার নজরতালিকায়]] রাখা পাতাগুলি '''গাঢ়''' করে দেখানো হয়েছে।",
 'recentchangeslinked-page' => 'পাতার নাম:',
 'recentchangeslinked-to' => 'প্রদত্ত পাতায় সংযুক্ত আছে এমন পাতাগুলোর পরিবর্তন দেখাও',
@@ -1488,7 +1498,7 @@ $1",
 'reuploaddesc' => 'আপলোড বাতিল করো এবং আপলোড ফর্মে ফেরত যাও।',
 'upload-tryagain' => 'পরিবর্তিত ফাইল বর্ণনা জমা দিন',
 'uploadnologin' => 'আপনি লগ-ইন করেননি।',
-'uploadnologintext' => 'à¦\86পলà§\8bড à¦\95রতà§\87 à¦¹à¦²à§\87 à¦\86পনাà¦\95à§\87 à¦\85বশà§\8dযà¦\87 à¦\86à¦\97à§\87 [[Special:UserLogin|লà¦\97-à¦\87ন]] করতে হবে।',
+'uploadnologintext' => 'ফাà¦\87ল à¦\86পলà§\8bড à¦\95রতà§\87 à¦¹à¦²à§\87 à¦\86পনাà¦\95à§\87 à¦\85বশà§\8dযà¦\87 $1 করতে হবে।',
 'upload_directory_missing' => 'আপলোড ডাইরেক্টরি ($1) পাওয়া যাচ্ছে না এবং ওয়েব সার্ভার কর্তৃক তৈরি করা যাচ্ছে না।',
 'upload_directory_read_only' => 'আপলোড ডিরেক্টরিটি ($1) ওয়েবসার্ভার কর্তৃক লিখনযোগ্য নয়।',
 'uploaderror' => 'আপলোড এ সমস্যা হয়েছে',
@@ -2029,7 +2039,7 @@ Maybe you want to edit the description on its [$2 file description page] there.'
 # Special:ActiveUsers
 'activeusers' => 'সক্রিয় ব্যবহারকারী তালিকা',
 'activeusers-intro' => 'এটি ব্যবহারকারী তালিকা যাদের $1 {{PLURAL:$1|দিনে|দিনে}} যেকোন কর্মকান্ড রয়েছে।',
-'activeusers-count' => 'গত {{PLURAL:$3|দিনে|$3 দিনে}} সর্বমোট {{PLURAL:$1|কর্মকাণ্ডের}} সংখ্যা $1',
+'activeusers-count' => 'গত {{PLURAL:$3|দিনে}} সর্বমোট {{PLURAL:$1|পদ}} সংখ্যা $1',
 'activeusers-from' => 'ব্যবহারকারী দেখাও যাদের নাম এই অক্ষর দিয়ে শুরু:',
 'activeusers-hidebots' => 'বট লুকাও',
 'activeusers-hidesysops' => 'প্রশাসক লুকাও',
@@ -2100,9 +2110,8 @@ Maybe you want to edit the description on its [$2 file description page] there.'
 'watchnologin' => 'আপনি এখনও লগ-ইন করেননি।',
 'watchnologintext' => 'আপনার নজর তালিকা পরিবর্তনের জন্য আপনাকে অবশ্যই অ্যাকাউন্টে [[Special:UserLogin|প্রবেশ করতে হবে]]।',
 'addwatch' => 'নজরতালিকায় যোগ করো',
-'addedwatchtext' => '"[[:$1]]" পাতাটি আপনার [[Special:Watchlist|নজরতালিকা]]-তে যোগ করা হয়েছে৷
-
-ভবিষ্যতে এই পাতা ও এই পাতার সাথে সম্পর্কিত আলোচনা পাতায় সংঘটিত যাবতীয় পরিবর্তন এখানে তালিকাভুক্ত হবে৷',
+'addedwatchtext' => '"[[:$1]]" পাতাটি আপনার [[Special:Watchlist|নজরতালিকাতে]] যোগ করা হয়েছে।
+ভবিষ্যতে এই পাতা ও এই পাতার সাথে সম্পর্কিত আলোচনা পাতায় সংঘটিত যাবতীয় পরিবর্তন এখানে তালিকাভুক্ত হবে।',
 'removewatch' => 'নজরতালিকা থেকে অপসারণ',
 'removedwatchtext' => '"[[:$1]]" পাতাটি [[Special:Watchlist|নজর তালিকা]] থেকে অপসারিত হয়েছে।',
 'watch' => 'নজর রাখুন',
@@ -2111,10 +2120,9 @@ Maybe you want to edit the description on its [$2 file description page] there.'
 'unwatchthispage' => 'নজর সরিয়ে নিন',
 'notanarticle' => 'বিষয়বস্তু পাতা নয়',
 'notvisiblerev' => 'অপর একজন ব্যবহারকারী কর্তৃক প্রণীত সর্বশেষ সংস্করণটি অপসারিত হয়েছে',
-'watchnochange' => 'প্রদর্শিত সময়সীমার মধ্যে আপনার নজরতালিকায় রাখা কোন পাতায় কোন রকম সম্পাদনা ঘটেনি।',
 'watchlist-details' => 'নজরতালিকাতে {{PLURAL:$1|$1টি পাতা|$1টি পাতা}} আছে (আলাপ পাতাগুলি গণনায় না ধরে)।',
-'wlheader-enotif' => 'ই-মেইল এর মাধমে নির্দেশনার ব্যবস্থা চালু করা আছে।',
-'wlheader-showupdated' => "আপনার শেষ আগমনের পর থেকে যেসব পাতায় পরিবর্তন হয়েছে সেগুলি '''গাঢ়''' করে দেখানো হয়েছে",
+'wlheader-enotif' => 'ইমেল বিজ্ঞপ্তি সক্রিয় করা আছে।',
+'wlheader-showupdated' => "আপনার শেষ আগমনের পর থেকে যেসব পাতায় পরিবর্তন হয়েছে সেগুলি '''গাঢ়''' করে দেখানো হয়েছে",
 'watchmethod-recent' => 'নজরে রাখা পাতাগুলিতে সাম্প্রতিক পরিবর্তন পরীক্ষা করা হচ্ছে',
 'watchmethod-list' => 'নজরে রাখা পাতাগুলিতে সাম্প্রতিক পরিবর্তন পরীক্ষা করা হচ্ছে',
 'watchlistcontains' => 'আপনার নজরতালিকায় $1 টি {{PLURAL:$1|পাতা|পাতা}} রয়েছে।',
@@ -2360,7 +2368,7 @@ $1',
 'mycontris' => 'অবদান',
 'contribsub2' => '$1 ($2)-এর জন্য',
 'nocontribs' => 'এই শর্তগুলির সাথে মিলে যায়, এমন কোন পরিবর্তন খুঁজে পাওয়া যায়নি।',
-'uctop' => '(শà§\80রà§\8dষ)',
+'uctop' => '(বরà§\8dতমান)',
 'month' => 'এই মাস (বা তার আগে) থেকে:',
 'year' => 'এই বছর (এবং তার আগে) থেকে:',
 
@@ -2522,7 +2530,9 @@ $1',
 'proxyblocksuccess' => 'নিষ্পন্ন হয়েছে।',
 'sorbsreason' => 'আপনার আইপি ঠিকানাটি {{SITENAME}}-এর ব্যবহার করা DNSBL-এ উন্মুক্ত প্রক্সি হিসেবে তালিকাভুক্ত আছে।',
 'sorbs_create_account_reason' => 'আপনার আইপি ঠিকানাটি {{SITENAME}}-এর ব্যবহার করা DNSBL-এ উন্মুক্ত প্রক্সি হিসেবে তালিকাভুক্ত আছে। আপনি কোন অ্যাকাউন্ট সৃষ্টি করতে পারবেন না।',
+'xffblockreason' => 'X-Forwarded-For হেডারে থাকা আইপি ঠিকানাটি ব্লক করা হয়েছে, হয় এটি আপনার নিজের অথবা আপনার ব্যবহৃত প্রক্সি সার্ভারের আইপি ঠিকানা। ব্লক করার কারণ হল: $1',
 'cant-block-while-blocked' => 'আপনি নিজে ব্লক থাকা অবস্থায় অন্যন্য ব্যবহারকারীকে ব্লক করতে পারবেন না।',
+'cant-see-hidden-user' => 'আপনি যে ব্যবহারকারীকে ব্লক বা লুকিয়ে রাখতে চাচ্ছেন তাকে আগে থেকেই ব্লক বা লুকিয়ে রাখা হয়েছে। এছাড়া আপনার Hideuser অধিকার নেই, তাই আপনি ব্যবহারকারীর অবস্থা পরিবর্তন করতে পারবেন না।',
 'ipbblocked' => 'আপনি অন্য কোন ব্যবহারকরীকে ব্লক বা আনব্লক করতে পারবেন না, কারণ আপনি নিজেই ব্লক রয়েছেন',
 'ipbnounblockself' => 'আপনি নিজেকে আনব্লক করতে পারবেন না',
 
@@ -2592,7 +2602,7 @@ $1',
 'movepage-moved' => '\'\'\'"$1"-কে "$2" শিরোনামে স্থানান্তর করা হয়েছে\'\'\'',
 'movepage-moved-redirect' => 'একটি পুনর্নির্দেশনা তৈরি হয়েছে।',
 'movepage-moved-noredirect' => 'রিডাইরেক্ট তৈরীতে বাধা দেয়া হয়েছে।',
-'articleexists' => 'হয় à¦\8fà¦\87 à¦¶à¦¿à¦°à§\8bনামà§\87র à¦\8fà¦\95à¦\9fি à¦¨à¦¿à¦¬à¦¨à§\8dধ à¦\87তà§\8bমধà§\8dযà§\87 à¦¸à§\83ষà§\8dà¦\9fি à¦¹à¦¯ে গেছে, অথবা আপনি যে শিরোনামটি পছন্দ করেছেন তা গ্রহণযোগ্য নয়। দয়া করে অন্য একটি শিরোনাম দিয়ে চেষ্টা করুন।',
+'articleexists' => 'à¦\8fà¦\87 à¦¶à¦¿à¦°à§\8bনামà§\87 à¦\8fà¦\95à¦\9fি à¦ªà¦¾à¦¤à¦¾ à¦\87তà§\8bমধà§\8dযà§\87 à¦¸à§\83ষà§\8dà¦\9fি à¦¹à¦¯à¦¼ে গেছে, অথবা আপনি যে শিরোনামটি পছন্দ করেছেন তা গ্রহণযোগ্য নয়। দয়া করে অন্য একটি শিরোনাম দিয়ে চেষ্টা করুন।',
 'cantmove-titleprotected' => 'আপনি এই অবস্থানে পাতাটিকে স্থানান্তর করতে পারেন না, কারণ এই নতুন শিরোনামটি সৃষ্টি করা থেকে সুরক্ষিত।',
 'talkexists' => "'''পাতাটি সফলভাবে সরানো গেলেও আলোচনা পাতাটিকে সরানো যায়নি, কারণ নতুন শিরোনামের অধীনে ইতিমধ্যেই একটি আলোচনা পাতা বিদ্যমান। অনুগ্রহ নিজের হাতে এগুলিকে একত্র করুন।'''",
 'movedto' => 'সরানো হয়েছে এখানে:',
@@ -2622,6 +2632,7 @@ $1',
 'immobile-target-namespace-iw' => 'পাতা স্থানান্তরের ক্ষেত্রে ইন্টারউইকি লিংক ব্যবহার করা যাবে না।',
 'immobile-source-page' => 'এই পাতাটির স্থানান্তর সম্ভব নয়।',
 'immobile-target-page' => 'গন্তব্য শিরোনামে স্থানান্তর করা যাবে না।',
+'bad-target-model' => 'আপনার উল্লেখিত কন্টেন্ট মডেলটি আলাদা। $1 থেকে $2 কনভার্ট করা যাচ্ছে না।',
 'imagenocrossnamespace' => 'কোনো ফাইল ফাইলনয় এমন নামস্থানে স্থানান্তর সম্ভব নয়',
 'nonfile-cannot-move-to-file' => 'কোনো ফাইলনয় এমন কোনো পাতা ফাইল নামস্থানে স্থানান্তর সম্ভব নয়',
 'imagetypemismatch' => 'নতুন ফাইল এক্সটেনশনটি ফাইলের ধরনের সাথে মিলছে না',
@@ -2655,7 +2666,8 @@ $1',
 'export-addnstext' => 'নামস্থান থেকে পাতা যুক্ত করুন:',
 'export-addns' => 'যোগ',
 'export-download' => 'ফাইল হিসেবে সংরক্ষণ করা হোক',
-'export-templates' => 'টেম্পলেট অন্তর্ভুক্তি',
+'export-templates' => 'টেমপ্লেট অন্তর্ভুক্তি',
+'export-pagelinks' => 'সম্পর্কিত পাতাগুলো এই ধাপ পর্যন্ত যুক্ত করো:',
 
 # Namespace 8 related
 'allmessages' => 'সিস্টেম বার্তাসমূহ',
@@ -2666,7 +2678,7 @@ $1',
 আপনি যদি সাধারণ মিডিয়াউইকির স্থানীয়করণে অবদান রাখতে আগ্রহী হন, অনুগ্রহ করে [//www.mediawiki.org/wiki/Localisation মিডিয়াউইকি স্থানীয়করণ] এবং [//translatewiki.net translatewiki.net] দেখুন।',
 'allmessagesnotsupportedDB' => "এই পাতা ব্যবহার করা যাবে না কারণ '''\$wgUseDatabaseMessages''' বন্ধ করে রাখা আছে।",
 'allmessages-filter-legend' => 'ছাকনী',
-'allmessages-filter' => 'পরিবর্তের ধাপ অনুযায়ী ফিল্টার:',
+'allmessages-filter' => 'Filter by customization state:',
 'allmessages-filter-unmodified' => 'অপরিবর্তিত',
 'allmessages-filter-all' => 'সমস্ত',
 'allmessages-filter-modified' => 'পরিবর্তিত',
@@ -2678,6 +2690,8 @@ $1',
 'thumbnail-more' => 'বড় করো',
 'filemissing' => 'ফাইল হারিয়ে গেছে',
 'thumbnail_error' => 'থাম্বনেইল সৃষ্টি করতে গিয়ে ত্রুটি: $1',
+'thumbnail_error_remote' => '$1 থেকে ত্রুটির বার্তা:
+$2',
 'djvu_page_error' => 'DjVu পাতা সীমার বাইরে',
 'djvu_no_xml' => 'DjVu ফাইলের জন্য XML আনতে পারা যায়নি।',
 'thumbnail-temp-create' => 'অস্থায়ী থাম্বনেইল ফাইল তৈরী করা সম্ভব নয়',
@@ -2699,6 +2713,7 @@ $1',
 'import-interwiki-templates' => 'সকল টেম্পলেট অন্তর্ভুক্ত',
 'import-interwiki-submit' => 'আমদানি',
 'import-interwiki-namespace' => 'গন্তব্য নামস্থান:',
+'import-interwiki-rootpage' => 'মূল পাতা (ঐচ্ছিক):',
 'import-upload-filename' => 'ফাইলনাম:',
 'import-comment' => 'মন্তব্য:',
 'importtext' => 'অনুগ্রহ করে ফাইলটি উৎস উইকি থেকে [[Special:Export|এক্সপোর্ট ইউটিলিটি]] ব্যবহার করে এক্সপোর্ট করুন।
@@ -2732,6 +2747,7 @@ $1',
 'import-error-interwiki' => '"$1" পাতাটি ইম্পোর্ট করা যায়নি কারণ এই নামটি বহিঃসংযোগর জন্য নির্ধারিত (ইন্টারউইকি)।',
 'import-error-special' => '"$1" পাতাটি ইম্পোর্ট করা যায়নি কারণ এটি একটি বিশেষ নামস্থানকে নির্দেশ করে যেটি সম্পাদনার জন্য অনুমোদিত নয়।',
 'import-error-invalid' => '"$1" পাতাটি ইম্পোর্ট করা যায়নি কারণ নামটি সঠিক নয়।',
+'import-error-unserialize' => '$1 পাতার $2 সংস্করণটি সিরিয়ালাইজ করা যাচ্ছে না। এই রিভিশনে $4 হিসাবে $3 কন্টেন্ট মডেলে সিরিয়ালাইজ করা আছে।',
 'import-options-wrong' => 'ভুল {{PLURAL:$2|অপশন|অপশনসমূহ}}: <nowiki>$1</nowiki>',
 'import-rootpage-invalid' => 'মূল পাতার ভুল শিরনাম দেয়া হয়েছে।',
 'import-rootpage-nosubpage' => 'মূল পাতার "$1" নামস্থানে উপপাতা তৈরী অনুমোদিত নয়।',
@@ -2777,7 +2793,7 @@ $1',
 'tooltip-ca-move' => 'পাতাটি সরিয়ে ফেলুন',
 'tooltip-ca-watch' => 'এই পাতাটি আপনার নজরতালিকায় যোগ করো',
 'tooltip-ca-unwatch' => 'এই পাতাটি আপনার নজরতালিকা থেকে সরিয়ে ফেলুন',
-'tooltip-search' => 'অনুসন্ধান {{SITENAME}}',
+'tooltip-search' => '{{SITENAME}} অনুসন্ধান',
 'tooltip-search-go' => 'যদি থাকে, তবে ঠিক এই নামের পাতায় চলো',
 'tooltip-search-fulltext' => 'এই টেক্সটের জন্য পাতাগুলিতে অনুসন্ধান করা হোক',
 'tooltip-p-logo' => 'প্রধান পাতা পরিদর্শন করুন',
@@ -2864,7 +2880,7 @@ $1',
 'pageinfo-robot-noindex' => 'ইনডেক্সের অনুপযোগী',
 'pageinfo-views' => 'পরিদর্শন সংখ্যা',
 'pageinfo-watchers' => 'পাতাটি প্রদর্শনের সংখ্যা',
-'pageinfo-few-watchers' => '$1 {{PLURAL:$1|নজরের}} কম',
+'pageinfo-few-watchers' => '$1 জন {{PLURAL:$1|নজরকারীও}} কম',
 'pageinfo-redirects-name' => 'এই পাতার রিডাইরেক্ট সমূহ',
 'pageinfo-subpages-name' => 'এই পাতার উপপাতাসমূহ',
 'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|পুনর্নির্দেশ|পুনর্নির্দেশসমূহ}}; $3 {{PLURAL:$3|পুনর্নির্দেশ নেই|পুনর্নির্দেশ নেই}})',
@@ -2879,12 +2895,15 @@ $1',
 'pageinfo-magic-words' => 'ম্যাজিক {{PLURAL:$1|শব্দ|শব্দসমূহ}} ($1)',
 'pageinfo-hidden-categories' => 'লুকানো {{PLURAL:$1|বিষয়শ্রেণী|বিষয়শ্রেণীসমূহ}} ($1)',
 'pageinfo-templates' => 'সংযুক্ত {{PLURAL:$1|টেমপ্লেট|টেমপ্লেটসমূহ}} ($1)',
+'pageinfo-transclusions' => '{{PLURAL:$1|পাতা|পাতাসমূহ}} ট্রান্সক্লুড করার সময় ($1)',
 'pageinfo-toolboxlink' => 'পাতার তথ্য',
 'pageinfo-redirectsto' => 'পুননির্দেশিত হয়েছে',
 'pageinfo-redirectsto-info' => 'তথ্য',
 'pageinfo-contentpage' => 'তথ্য পাতা হিসাবে বিবেচিত হয়েছে',
 'pageinfo-contentpage-yes' => 'হ্যাঁ',
+'pageinfo-protect-cascading' => 'ক্যাসকেডিং সুরক্ষা পদ্ধতি চালু রয়েছে',
 'pageinfo-protect-cascading-yes' => 'হ্যাঁ',
+'pageinfo-protect-cascading-from' => 'ক্যাসকেডিং সুরক্ষা পদ্ধতি',
 'pageinfo-category-info' => 'বিষয়শ্রেণী তথ্য',
 'pageinfo-category-pages' => 'পাতার সংখ্যা',
 'pageinfo-category-subcats' => 'উপবিষয়শ্রেণীর সংখ্যা',
@@ -2906,6 +2925,8 @@ $1',
 'markedaspatrollederror' => 'পরীক্ষিত বলে চিহ্নিত করা যাবে না',
 'markedaspatrollederrortext' => 'পরীক্ষিত বলে চিহ্নিত করতে আপনাকে একটি সংস্করণ নির্দিষ্ট  করতে হবে।',
 'markedaspatrollederror-noautopatrol' => 'আপনার নিজের পাতাকে পরীক্ষিত বলে চিহ্নিত করার অনুমতি আপনার নেই।',
+'markedaspatrollednotify' => '$1 এর পরিবর্তন পরীক্ষিত হিসাবে চিহ্নিত করা হয়েছে।',
+'markedaspatrollederrornotify' => 'পরীক্ষিত হিসাবে চিহ্নিত করতে ব্যর্থ।',
 
 # Patrol log
 'patrol-log-page' => 'পরীক্ষণ লগ',
@@ -3073,6 +3094,7 @@ $1',
 'exif-lightsource' => 'বাতির উৎস',
 'exif-flash' => 'ফ্ল্যাশ',
 'exif-focallength' => 'লেন্সের ফোকাস দৈর্ঘ্য',
+'exif-focallength-format' => '$1 মিমি',
 'exif-subjectarea' => 'বিষয়বস্তুর ক্ষেত্রফল',
 'exif-flashenergy' => 'ফ্ল্যাশ শক্তি',
 'exif-focalplanexresolution' => 'X ফোকাস তলের রেজোলিউশন',
@@ -3194,6 +3216,9 @@ $1',
 
 # Exif attributes
 'exif-compression-1' => 'অসংকুচিত',
+'exif-compression-2' => 'সিসিআইটিটি গ্রুপ ৩ ১-ডাইমেনশনাম মডিফাইড হাফম্যান রান লেংক্থ এনকোডিং',
+'exif-compression-3' => 'সিসিআইটিটি গ্রুপ ৩ ফ্যাক্স এনকোডিং',
+'exif-compression-4' => 'সিসিআইটিটি গ্রুপ ৪ ফ্যাক্স এনকোডিং',
 
 'exif-copyrighted-true' => 'কপিরাইটকৃত',
 'exif-copyrighted-false' => 'পাবলিক ডোমেইন',
@@ -3262,6 +3287,7 @@ $1',
 'exif-flash-return-2' => 'স্ট্রোবের আলো চিহ্নিত করা যায়নি',
 'exif-flash-return-3' => 'স্ট্রোবের আলো চিহ্নিত হয়েছে',
 'exif-flash-mode-1' => 'বাধ্যতামূলকভাবে ফ্ল্যাশ ব্যবহৃত হয়েছে',
+'exif-flash-mode-2' => 'বাধ্যতামূলক ফ্ল্যাশ নিষ্ক্রিয়',
 'exif-flash-mode-3' => 'স্বয়ংক্রিয় মোড',
 'exif-flash-function-1' => 'ফ্ল্যাশ ব্যবহৃত হয়নি',
 'exif-flash-redeye-1' => 'রেড-আই হ্রাস মোড',
@@ -3364,6 +3390,7 @@ $1',
 'exif-ycbcrpositioning-2' => 'কো-সাইটেড',
 
 'exif-dc-contributor' => 'অবদানকারী',
+'exif-dc-coverage' => 'মিডিয়া ফাইলের বিশেষ অথবা অস্থায়ী ক্ষেত্র',
 'exif-dc-date' => 'তারিখ',
 'exif-dc-publisher' => 'প্রকাশক',
 'exif-dc-relation' => 'সম্পর্কিত মিডিয়া',
@@ -3437,6 +3464,30 @@ $3
 
 $5
 
+$4-এ নিশ্চিতকরণ কোডটি মেয়াদোত্তীর্ণ হয়ে যাবে।',
+'confirmemail_body_changed' => 'কেউ একজন, সম্ভবত আপনি, $1 আইপি ঠিকানা থেকে,
+{{SITENAME}}-এ "$2" নামে অ্যাকাউন্টের ইমেরইল ঠিকানা পরিবর্তন করেছেন।
+
+এই অ্যাকাউন্টটি যে আসলেই আপনার তা নিশ্চিত করার জন্য এবং {{SITENAME}}-এ ই-মেইল বৈশিষ্ট্যগুলো সক্রিয় করার জন্য আপনার ব্রাউজারে এই সংযোগটি খুলুন:
+
+$3
+
+যদি আপনি এই ব্যক্তি *না* হন, তাহলে ইমেইল ঠিকানা নিশ্চিতকরণ বাতিল করতে এই লিঙ্কটি অনুসরণ করুন"
+
+$5
+
+$4-এ নিশ্চিতকরণ কোডটি মেয়াদোত্তীর্ণ হয়ে যাবে।',
+'confirmemail_body_set' => 'কেউ একজন, সম্ভবত আপনি, $1 আইপি ঠিকানা থেকে,
+{{SITENAME}}-এ "$2" অ্যকাউন্টের ইমেইল ঠিকানা নির্ধারণ করেছেন।
+
+এই অ্যাকাউন্টটি যে আসলেই আপনার তা নিশ্চিত করার জন্য এবং {{SITENAME}}-এ ই-মেইল বৈশিষ্ট্যগুলো সক্রিয় করার জন্য আপনার ব্রাউজারে এই সংযোগটি খুলুন:
+
+$3
+
+যদি আপনি এই ব্যক্তি *না* হন, তাহলে ইমেইল ঠিকানা নিশ্চিতকরণ বাতিল করতে এই লিঙ্কটি অনুসরণ করুন"
+
+$5
+
 $4-এ নিশ্চিতকরণ কোডটি মেয়াদোত্তীর্ণ হয়ে যাবে।',
 'confirmemail_invalidated' => 'ইমেইল ঠিকানা নিশ্চিতকরণ বাতিল হয়েছে',
 'invalidateemail' => 'ইমেইল নিশ্চিতকরণ বাতিল করুন',
@@ -3570,12 +3621,13 @@ $4-এ নিশ্চিতকরণ কোডটি মেয়াদোত
 'hijri-calendar-m12' => 'জ্বিলহজ্জ',
 
 # Hebrew month names
-'hebrew-calendar-m10' => 'তামমà§\81য',
+'hebrew-calendar-m10' => 'তামুয',
 'hebrew-calendar-m11' => 'আভ',
 'hebrew-calendar-m12' => 'এলুল',
 
 # Signatures
 'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|আলাপ]])',
+'timezone-utc' => 'ইউটিসি',
 
 # Core parser functions
 'unknown_extension_tag' => 'অজানা এক্সটেনশন ট্যাগ "$1"',
@@ -3592,7 +3644,6 @@ $4-এ নিশ্চিতকরণ কোডটি মেয়াদোত
 'version-other' => 'অন্য',
 'version-mediahandlers' => 'মিডিয়া ব্যবস্থাপক',
 'version-hooks' => 'হুক',
-'version-extension-functions' => 'এক্সটেনশনের কাজ',
 'version-parser-extensiontags' => 'পার্সার এক্সটেনশন ট্যাগ',
 'version-parser-function-hooks' => 'পার্সার ফাংশন হুক',
 'version-hook-name' => 'হুকের নাম',
@@ -3601,6 +3652,12 @@ $4-এ নিশ্চিতকরণ কোডটি মেয়াদোত
 'version-license' => 'লাইসেন্স',
 'version-poweredby-credits' => "এইক উইকিটি পরিচালিত হচ্ছে '''[//www.mediawiki.org/ মিডিয়াউইকি]'''-এর মাধ্যমে, কপিরাইট © ২০০১-$1 $2।",
 'version-poweredby-others' => 'অন্যান্য',
+'version-credits-summary' => '[[Special:Version|মিডিয়াউইকি]] সফটওয়্যারে অবদানের জন্য আমরা এই ব্যক্তিকে স্বীকৃতি দিতে চাই।',
+'version-license-info' => 'মিডিয়াউইকি এ++++কটি ফ্রি সফটওয়্যার, আপনি এটি বিতরণ করতে পারবেন এবং/অথবা সম্পদানা করতে পারবেন, এক্ষেত্রে ফ্রি সফটওয়্যার ফাউন্ডেশনের প্রকাশিত গনু জেনারেল পাবলিক লাইসেন্সের ২য় অথবা সাম্প্রতিকতম কোনো সংস্করণ মেনে চলতে হবে। 
+
+সকলের উপকারের লক্ষ্যে এটি বিতরণ করা হয়ে থাকে, কিন্তু এক্ষেত্রে কোনো ওয়ারেন্টি দেয়া হয় না, এমনকি বিশেষ কোনো কার্যক্ষেত্রে ব্যবহারের জন্যও তথাকথিত ওয়ারেন্টি দেয়া হয় না। বিস্তারিত জানতে দেখুন গনু জেনারেল পাবলিক লাইসেন্স। 
+
+এই সফটওয়্যারের সাথে [{{SERVER}}{{SCRIPTPATH}}/COPYING গনু জেনারেল পাবলিক লাইসেন্সের একটি কপি] থাকার কথা; যদি আপনি না পেয়ে থাকেন তাহলে অনুগ্রহ করে ফ্রি সফটওয়্যার ফাউন্ডেশনকে জানান এই ঠিকানায়, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA অথবা [//www.gnu.org/licenses/old-licenses/gpl-2.0.html অনলাইনে দেখুন]।',
 'version-software' => 'ইনস্টলকৃত সফটওয়্যার',
 'version-software-product' => 'পণ্য',
 'version-software-version' => 'সংস্করণ',
@@ -3609,6 +3666,9 @@ $4-এ নিশ্চিতকরণ কোডটি মেয়াদোত
 'version-entrypoints-header-url' => 'ইউআরএল',
 
 # Special:Redirect
+'redirect' => 'ফাইল, ব্যবহারকরী, অথবা রিভিশন আইডি দ্বারা পুনঃনির্দেশ করা হয়েছে',
+'redirect-legend' => 'একটি ফাইল অথবা পাতায় পুনঃনির্দেশ করা হয়েছে',
+'redirect-summary' => 'এই বিশেষ পাতাটি পুনঃনির্দেশিত হয়েছে একটি ফাইলে (ফাইলের নাম), একটি পাতা (রিভিশন আইডি), অথবা একটি ব্যবহারকরী পাতায় (সংখ্যায় লেখা ব্যবহারকারী আইডি)।',
 'redirect-submit' => 'যাও',
 'redirect-lookup' => 'দেখুন:',
 'redirect-value' => 'মান:',
@@ -3664,8 +3724,11 @@ $4-এ নিশ্চিতকরণ কোডটি মেয়াদোত
 'tags' => 'সঠিক চেঞ্জ ট্যাগ',
 'tag-filter' => '[[Special:Tags|ট্যাগ]] ছাকনী:',
 'tag-filter-submit' => 'ছাকনী',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|ট্যাগ}}]]: $2)',
 'tags-title' => 'ট্যাগসমূহ',
+'tags-intro' => 'এই পাতায় সফটওয়্যারটি একটি সম্পাদনা চিহ্নিত করার জন্য যে সকল ট্যাগ ব্যবহার করে তার তালিকা ও বর্ণনা রয়েছে।',
 'tags-tag' => 'ট্যাগ নাম',
+'tags-display-header' => 'পরিনর্তন পাতার বৈশিষ্ট',
 'tags-description-header' => 'অর্থের পূর্ণ বণনা',
 'tags-hitcount-header' => 'ট্যাগকৃত পরিবর্সতনমূহ',
 'tags-edit' => 'সম্পাদনা',
@@ -3744,10 +3807,13 @@ $4-এ নিশ্চিতকরণ কোডটি মেয়াদোত
 'logentry-newusers-byemail' => '$1, $3 ব্যবহারকরী অ্যাকাউন্টটি {{GENDER:$2|তৈরী করেছেন}} এবং পাসওয়ার্ড ইমেইলের মাধ্যমে পাঠানো হয়েছে',
 'logentry-newusers-autocreate' => '$1 অ্যাকাউন্টটি স্বয়ংক্রিয়ভাবে {{GENDER:$2|তৈরি}} হয়েছে',
 'logentry-rights-rights' => '$1 ব্যবহারকারী, $3 এর দলগত সদস্যপদ $4 থেকে $5 এ {{GENDER:$2|পরিবর্তন}} করেছেন',
+'logentry-rights-rights-legacy' => '$1 দলের সদস্যপদ পরিবর্তন করেছেন {{GENDER:$2|changed}} এর জন্য $3',
 'logentry-rights-autopromote' => '$1 সয়ংক্রিয়ভাবে $4 থেকে $5 এ {{GENDER:$2|উন্নীত}} হয়েছে',
 'rightsnone' => '(কিছু নাই)',
 
 # Feedback
+'feedback-bugornote' => 'কারিগরী ত্রুটির বিস্তারিত বর্ণনা জানতে [$1 বাগ রিপোর্ট করুন]।
+অথবা নিচের এই সরল ফর্মটি ব্যবহার করতে পারেন। "[$3 $2]" পাতায় আপনার ব্যবহারকারী নাম সহ মন্তব্যটি প্রকাশিত হবে।',
 'feedback-subject' => 'বিষয়:',
 'feedback-message' => 'বার্তা:',
 'feedback-cancel' => 'বাতিল',
index d6ff3db..bb17334 100644 (file)
@@ -230,7 +230,6 @@ $messages = array(
 'disclaimers' => 'དགག་བྱ།',
 'disclaimerpage' => 'Project:སྤྱིའི་དགག་བྱ།',
 'edithelp' => 'རྩོམ་སྒྲིག་རོགས་རམ།',
-'edithelppage' => 'Help:རྩོམ་སྒྲིག',
 'helppage' => 'Help:ནང་དོན་',
 'mainpage' => 'གཙོ་ངོས།',
 'mainpage-description' => 'གཙོ་ངོས།',
index f5b2db4..6e0aa59 100644 (file)
@@ -285,7 +285,6 @@ $1',
 'disclaimers' => 'দাবি বেলানি',
 'disclaimerpage' => 'Project:ইজ্জু দাবি বেলানি',
 'edithelp' => 'পতানি পাংলাক',
-'edithelppage' => 'Help:কিসাদে_পাতা_আহান_পতানি',
 'helppage' => 'Help:পাংলাক',
 'mainpage' => 'পয়লা পাতা',
 'mainpage-description' => 'পয়লা পাতা',
@@ -841,7 +840,6 @@ $2',
 'searchmenu-legend' => 'বিসারানির অপশনহানি',
 'searchmenu-exists' => "'''উইকি এহাত \"[[:\$1]]\" নাঙে পাতা আহান আসে'''",
 'searchmenu-new' => "'''\"[[:\$1]]\" নাঙর পাতাহান এরে উইকিত হঙকর!'''",
-'searchhelp-url' => 'Help:পাংলাক',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|এরে prefix এতাল আসে পাতাহানি]]',
 'searchprofile-articles' => 'কন্টেন্টর পাতাহানি',
 'searchprofile-project' => 'পাঙলাক বারো প্রকল্পর পাতা',
@@ -1011,7 +1009,6 @@ $2',
 'recentchangeslinked-feed' => 'সাকেই আসে পতা',
 'recentchangeslinked-toolbox' => 'সাকেই আসে পতা',
 'recentchangeslinked-title' => 'পতানিহান "$1"র লগে সর্ম্পক আসে',
-'recentchangeslinked-noresult' => 'দেনা অসে খেন্তামর ভিতরে পতাসিতা নেই।',
 'recentchangeslinked-summary' => "লেপকরা পাতা আহান (অথবা লেপকরা বিষয়শ্রেণী)ত্ত তিলসে এরে পাতা এহানর হাদি এহান পতাসি অহানর লাতঙ দেনা অইল। তর [[Special:Watchlist|তর চালাতঙ]]এ থসি পাতাহানি '''গাঢ়''' করিয়া দেহাদেনা অসে।",
 'recentchangeslinked-page' => 'পাতার নাঙ:',
 'recentchangeslinked-to' => 'দিয়াসি পাতাহানর বদালা মিলাপ আসে পাতাহানির পতানিহানি দেহাদে',
index f9dc656..0280df3 100644 (file)
  * @author Candalua
  * @author Fohanno
  * @author Fulup
+ * @author Geitost
  * @author Gwendal
  * @author Gwenn-Ael
  * @author Kaganer
  * @author Malafaya
+ * @author Nemo bis
  * @author VIGNERON
  * @author Y-M D
  * @author לערי ריינהארט
@@ -286,6 +288,18 @@ $messages = array(
 'oct' => 'Her',
 'nov' => 'Du',
 'dec' => 'Kzu',
+'january-date' => '$1 a viz Genver',
+'february-date' => "$1 a viz C'hwevrer",
+'march-date' => '$1 a viz Meurzh',
+'april-date' => '$1 a viz Ebrel',
+'may-date' => '$1 a viz Mae',
+'june-date' => '$1 a viz Even',
+'july-date' => '$1 a viz Gouere',
+'august-date' => '$1 a viz Eost',
+'september-date' => '$1 a viz Gwengolo',
+'october-date' => '$1 a viz Here',
+'november-date' => '$1 a viz Du',
+'december-date' => '$1 a viz Kerzu',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Rummad |Rummad }}',
@@ -367,6 +381,7 @@ $messages = array(
 'create-this-page' => 'Krouiñ ar bajenn-mañ',
 'delete' => 'Diverkañ',
 'deletethispage' => 'Diverkañ ar bajenn-mañ',
+'undeletethispage' => 'Diziverkañ ar bajenn-mañ',
 'undelete_short' => "Diziverkañ {{PLURAL:$1|ur c'hemm|$1 kemm}}",
 'viewdeleted_short' => "Gwelet {{PLURAL:$1|ur c'hemm diverket|$1 kemm diverket}}",
 'protect' => 'Gwareziñ',
@@ -420,7 +435,6 @@ $1',
 'disclaimers' => 'Kemennoù',
 'disclaimerpage' => 'Project:Kemenn hollek',
 'edithelp' => 'Skoazell',
-'edithelppage' => 'Help:Penaos kemmañ traoù er pennadoù',
 'helppage' => 'Help:Skoazell',
 'mainpage' => 'Degemer',
 'mainpage-description' => 'Degemer',
@@ -564,6 +578,10 @@ $2',
 'namespaceprotected' => "N'oc'h ket aotreet da gemmañ pajennoù an esaouenn anv '''$1'''.",
 'customcssprotected' => "N'oc'h ket aotreet da gemmañ ar bajenn CSS-mañ rak kavout a reer enni arventennoù personel un implijer all.",
 'customjsprotected' => "N'oc'h ket aotreet da gemmañ ar bajenn JavaScript-mañ rak kavout a reer enni arventennoù personel un implijer all.",
+'mycustomcssprotected' => "N'oc'h ket aotreet da gemmañ d'ar bajenn CSS-mañ.",
+'mycustomjsprotected' => "N'oc'h ket aotreet da gemmañ d'ar bajenn JavaScript-mañ.",
+'myprivateinfoprotected' => "N'ho peus ket ar gwirioù evit kemmañ ho titouroù personel.",
+'mypreferencesprotected' => "N'ho peus ket ar gwirioù evit kemmañ ho Penndibaboù.",
 'ns-specialprotected' => "N'haller ket kemmañ ar pajennoù en esaouenn anv {{ns:special}}.",
 'titleprotected' => "Gwarezet eo bet an titl-mañ p'eo bet krouet gant [[User:$1|$1]].
 Setu amañ perak ''$2''.",
@@ -591,13 +609,17 @@ Na zisoñjit ket resisaat ho [[Special:Preferences|penndibaboù evit {{SITENAME}
 'yourname' => 'Anv implijer :',
 'userlogin-yourname' => 'Anv implijer',
 'userlogin-yourname-ph' => "Merkit hoc'h anv implijer",
+'createacct-another-username-ph' => 'Ebarzhiñ an anv implijer',
 'yourpassword' => 'Ger-tremen :',
 'userlogin-yourpassword' => 'Ger-tremen',
 'userlogin-yourpassword-ph' => 'Merkit ho ker-tremen',
+'createacct-yourpassword-ph' => 'Skrivit ur ger-tremen',
 'yourpasswordagain' => 'Skrivit ho ker-tremen en-dro',
+'createacct-yourpasswordagain' => 'Kadarnaat ar ger-tremen',
+'createacct-yourpasswordagain-ph' => 'Skrivit ar ger-tremen adarre',
 'remembermypassword' => "Derc'hel soñj eus ma ger-tremen war an urzhiataer-mañ (evit $1 devezh{{PLURAL:$1||}} d'ar muiañ)",
-'userlogin-remembermypassword' => "Derc'hel soñj ac'hanon",
-'userlogin-signwithsecure' => 'Kevreañ gant ur servijer suraet',
+'userlogin-remembermypassword' => "Derc'hel ac'hanon kevreet",
+'userlogin-signwithsecure' => 'Implijout ur gevreadenn suraet',
 'securelogin-stick-https' => 'Chom kevreet da HTTPS goude bezañ bet kevreet',
 'yourdomainname' => 'Ho tomani',
 'password-change-forbidden' => "Ne c'hallit ket kemmañ ar gerioù-tremen er wiki-mañ.",
@@ -612,20 +634,37 @@ Na zisoñjit ket resisaat ho [[Special:Preferences|penndibaboù evit {{SITENAME}
 'notloggedin' => 'Digevreet',
 'userlogin-noaccount' => "Kont ebet ganeoc'h c'hoazh ?",
 'userlogin-joinproject' => 'Kemer perzh e {{SITENAME}}',
-'nologin' => "N'hoc'h eus kont ebet ? '''$1'''.",
+'nologin' => "N'hoc'h eus kont ebet ? $1.",
 'nologinlink' => 'Krouiñ ur gont',
 'createaccount' => 'Krouiñ ur gont nevez',
 'gotaccount' => "Ur gont zo ganeoc'h dija ? '''$1'''.",
 'gotaccountlink' => 'Kevreañ',
 'userlogin-resetlink' => "Ha disoñjet eo bet ho titouroù kevreañ ganeoc'h ?",
-'helplogin-url' => 'Skoazell : Kevreañ',
+'userlogin-resetpassword-link' => 'Adderaouekaat ho ker-tremen',
+'helplogin-url' => 'Help:Kevreañ',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Skoazell evit kevreañ]]',
+'createacct-join' => 'Skrivit ho titouroù amañ dindan.',
+'createacct-another-join' => 'Ebarzhiñ titouroù ar gont nevez amañ dindan.',
+'createacct-emailrequired' => "Chomlec'h postel",
+'createacct-emailoptional' => "Chomlec'h postel (direizh)",
+'createacct-email-ph' => "Skrivit ho chomlec'h postel",
+'createacct-another-email-ph' => "Ebarzhiñ ur chomlec'h postel",
 'createaccountmail' => 'Dre bostel',
+'createacct-realname' => 'Anv gwir (diret)',
 'createaccountreason' => 'Abeg :',
+'createacct-reason' => 'Abeg',
+'createacct-reason-ph' => "Perak emaoc'h o krouiñ ur gont all",
+'createacct-imgcaptcha-ph' => 'Ebarzhit an destenn a welit a-us',
+'createacct-submit' => 'Krouiñ ho kont',
+'createacct-another-submit' => 'Krouiñ ur gont all',
+'createacct-benefit-heading' => "{{SITENAME}} zo graet gant tud eveldoc'h.",
+'createacct-benefit-body1' => '$1 {{PLURAL:$1|kemm}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|pajenn|pajenn}}',
 'badretype' => 'Ne glot ket ar gerioù-tremen an eil gant egile.',
 'userexists' => "Implijet eo an anv implijer lakaet ganeoc'h dija.
 Dibabit un anv all mar plij.",
 'loginerror' => 'Kudenn gevreañ',
+'createacct-error' => "Ur fazi 'zo bet o krouiñ ar gont",
 'createaccounterror' => 'Dibosupl krouiñ ar gont : $1',
 'nocookiesnew' => "Krouet eo bet ar gont implijer met n'oc'h ket kevreet. {{SITENAME}} a implij toupinoù evit ar c'hevreañ met diweredekaet eo an toupinoù ganeoc'h. Trugarez da weredekaat anezho ha da gevreañ en-dro.",
 'nocookieslogin' => "{{SITENAME}} a implij toupinoù evit kevreañ met diweredekaet eo an toupinoù ganeoc'h. Trugarez da weredekaat anezho ha da gevreañ en-dro.",
@@ -710,10 +749,9 @@ Gortozit a-raok klask en-dro.",
 
 # Special:PasswordReset
 'passwordreset' => 'Adderaouekaat ar ger-tremen',
-'passwordreset-text' => "Leuniañ ar furmskrid-mañ da resev ur postel da zegas soñj deoc'h eus titouroù ho kont.",
+'passwordreset-text-one' => 'Leugnit ar furmskrid-mañ evit adderaouekaat ho ker-tremen.',
 'passwordreset-legend' => 'Adsevel ar ger-tremen',
 'passwordreset-disabled' => 'Diweredekaet eo bet an adsevel gerioù-tremen war ar wiki-mañ.',
-'passwordreset-pretext' => '{{PLURAL:$1||Merkit unan eus an tammoù roadennoù dindan}}',
 'passwordreset-username' => 'Anv implijer :',
 'passwordreset-domain' => 'Domani :',
 'passwordreset-capture' => 'Gwelet ar postel ?',
@@ -750,6 +788,9 @@ Ger-tremen da c'hortoz : $2",
 'changeemail-submit' => "Cheñch chomlec'h postel",
 'changeemail-cancel' => 'Nullañ',
 
+# Special:ResetTokens
+'resettokens-tokens' => 'Jedoueroù :',
+
 # Edit page toolbar
 'bold_sample' => 'Testenn dev',
 'bold_tip' => 'Testenn dev',
@@ -947,6 +988,7 @@ Abeg dianav.",
 Diverket eo bet evit doare.',
 'edit-conflict' => 'Tabut kemmañ.',
 'edit-no-change' => "N'eo ket bet kemeret ho tegasadenn e kont rak ne oa ket bet kemmet netra en destenn.",
+'postedit-confirmation' => 'Enrollet eo bet ho kemmoù.',
 'edit-already-exists' => "N'eus ket bet gallet krouiñ ur bajenn nevez.
 Krouet e oa bet c'hoazh.",
 'defaultmessagetext' => 'Testenn dre ziouer',
@@ -1016,8 +1058,8 @@ Alc'hwez : (red) = diforc'hioù gant ar stumm a-vremañ,
 (diwez) = diforc'hioù gant ar stumm kent, D = kemm dister",
 'history-fieldset-title' => 'Furchal en istor',
 'history-show-deleted' => 'Diverket hepken',
-'histfirst' => 'Kentañ',
-'histlast' => 'Diwezhañ',
+'histfirst' => 'koshañ',
+'histlast' => 'nevezañ',
 'historysize' => '({{PLURAL:$1|$1 okted|$1 okted}})',
 'historyempty' => '(goullo)',
 
@@ -1166,6 +1208,7 @@ Gwiriit ne vo ket torret red istor ar bajenn gant ar c'hemm-mañ.",
 'compareselectedversions' => 'Keñveriañ ar stummoù diuzet',
 'showhideselectedversions' => 'Diskouez/Kuzhat ar stummoù diuzet',
 'editundo' => 'dizober',
+'diff-empty' => '(Disheñvelder ebet)',
 'diff-multi' => "({{PLURAL:$1|Ur reizhadenn da c'hortoz|$1 reizhadenn da c'hortoz}} gant {{PLURAL:$2|un implijer|$2 implijer}} kuzhet.)",
 'diff-multi-manyusers' => "({{PLURAL:$1|Ur reizhadenn da c'hortoz|$1 reizhadenn da c'hortoz}} gant muioc'h eget $2 {{PLURAL:$2|implijer|implijer}} kuzhet.)",
 'difference-missing-revision' => "!!{{PLURAL:$2|Un adweladur|$2 adweladurioù}} eus an disheñvelder ($1) {{PLURAL:$2|n'eo ket bet kavet|n'int ket bet adkavet}}.
@@ -1193,7 +1236,6 @@ Gallout a reot kavout munudoù e [{{fullurl:{{#Special:Log}}/delete|page={{FULLP
 'searchmenu-legend' => 'Dibarzhioù klask',
 'searchmenu-exists' => "'''Ur bajenn anvet\"[[:\$1]]\" zo war ar wiki-mañ'''",
 'searchmenu-new' => "'''Krouiñ ar bajenn \"[[:\$1]]\" war ar wiki-mañ !'''",
-'searchhelp-url' => 'Help:Skoazell',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Furchal er pajennoù a grog gant ar rakger-mañ]]',
 'searchprofile-articles' => 'Pajennoù gant boued',
 'searchprofile-project' => 'Pajennoù skoazell ha pajennoù ar raktres',
@@ -1267,7 +1309,6 @@ Gallout a reot kavout munudoù e [{{fullurl:{{#Special:Log}}/delete|page={{FULLP
 'resetprefs' => 'Adlakaat ar penndibaboù kent',
 'restoreprefs' => 'Adlakaat an holl arventennoù dre ziouer',
 'prefs-editing' => 'Prenestr skridaozañ',
-'prefs-edit-boxsize' => 'Ment ar prenestr skridaozañ.',
 'rows' => 'Linennoù :',
 'columns' => 'Bannoù',
 'searchresultshead' => 'Klask',
@@ -1278,9 +1319,6 @@ Gallout a reot kavout munudoù e [{{fullurl:{{#Special:Log}}/delete|page={{FULLP
 'recentchangesdays-max' => "D'ar muiañ $1 {{PLURAL:$1|deiz|deiz}}",
 'recentchangescount' => 'Niver a gemmoù da ziskouez dre ziouer',
 'prefs-help-recentchangescount' => "Kemer a ra an dra-mañ e kont ar c'hemmoù diwezhañ, istor ar pajennoù hag ar marilhoù.",
-'prefs-help-watchlist-token' => "Leuniañ ar c'hombod-mañ gant un dalvoudenn guzh a lakaio ul lanvad RSS war-sav evit ho rollad evezhiañ.
-Kement den hag a ouio eus ho jedouer a c'hallo lenn ho rollad evezhiañ, dibabit un dalvoudegezh suraet.
-Setu aze un dalvoudenn ganet dre zegouezh hag a c'hallfec'h implijout : $1",
 'savedprefs' => 'Enrollet eo bet ar penndibaboù.',
 'timezonelegend' => 'Takad eur :',
 'localtime' => "Eur lec'hel :",
@@ -1300,7 +1338,7 @@ Setu aze un dalvoudenn ganet dre zegouezh hag a c'hallfec'h implijout : $1",
 'timezoneregion-indian' => 'Meurvor Indez',
 'timezoneregion-pacific' => 'Meurvor Habask',
 'allowemail' => 'Aotren ar posteloù a-berzh implijerien all',
-'prefs-searchoptions' => '!Dibarzhioù klask',
+'prefs-searchoptions' => 'Klask',
 'prefs-namespaces' => 'Esaouennoù',
 'defaultns' => 'Klask en esaouennoù-anv a-hend-all :',
 'default' => 'dre ziouer',
@@ -1310,7 +1348,6 @@ Setu aze un dalvoudenn ganet dre zegouezh hag a c'hallfec'h implijout : $1",
 'prefs-common-css-js' => 'JavaScript ha CSS kenrannet evit an holl wiskadurioù :',
 'prefs-reset-intro' => "Ober gant ar bajenn-mañ a c'hallit evit adlakaat ho penndibaboù dre ziouer evit al lec'hienn-mañ. Kement-se n'hallo ket bezañ disc'hraet da c'houde.",
 'prefs-emailconfirm-label' => 'Kadarnaat ar postel :',
-'prefs-textboxsize' => 'Ment ar prenestr skridaozañ',
 'youremail' => 'Postel :',
 'username' => '{{GENDER:$1|Anv implijer|Anv implijerez}}:',
 'uid' => '{{GENDER:$1|Niv. identelezh an implijer|Niv. identelezh an implijerez}}:',
@@ -1343,6 +1380,7 @@ Ma skrivit anezhañ e vo implijet evit lakaat war wel ar pezh a vo bet degaset g
 'prefs-dateformat' => 'Furmad an deiziadoù',
 'prefs-timeoffset' => 'Linkadur eur',
 'prefs-advancedediting' => 'Dibarzhioù araokaet',
+'prefs-preview' => 'Rakwelet',
 'prefs-advancedrc' => 'Dibarzhioù araokaet',
 'prefs-advancedrendering' => 'Dibarzhioù araokaet',
 'prefs-advancedsearchoptions' => 'Dibarzhioù araokaet',
@@ -1350,6 +1388,7 @@ Ma skrivit anezhañ e vo implijet evit lakaat war wel ar pezh a vo bet degaset g
 'prefs-displayrc' => 'Dibarzhioù diskwel',
 'prefs-displaysearchoptions' => 'Dibarzhioù diskwel',
 'prefs-displaywatchlist' => 'Dibarzhioù diskwel',
+'prefs-tokenwatchlist' => 'Jedouer',
 'prefs-diffs' => "Diforc'hioù",
 
 # User preference: email validation using jQuery
@@ -1447,6 +1486,8 @@ Ma skrivit anezhañ e vo implijet evit lakaat war wel ar pezh a vo bet degaset g
 'right-editusercssjs' => 'Kemmañ restroù CSS ha JS implijerien all',
 'right-editusercss' => 'Kemmañ restroù CSS implijerien all',
 'right-edituserjs' => 'Kemmañ restroù JS implijerien all',
+'right-viewmyprivateinfo' => "Gwelet ho roadennoù prevez deoc'h-c'hwi (da sk. chomlec'h postel, anv gwirion)",
+'right-editmyprivateinfo' => "Aozañ ho roadennoù prevez deoc'h-c'hwi (da sk. chomlec'h postel, anv gwirion)",
 'right-rollback' => 'Disteuler prim kemmoù an implijer diwezhañ kemmet gantañ ur bajenn resis',
 'right-markbotedits' => "Merkañ ar c'hemmoù distaolet evel kemmoù bet graet gant robotoù.",
 'right-noratelimit' => 'Na sell ket ar bevennoù feurioù outañ',
@@ -1492,7 +1533,7 @@ Ma skrivit anezhañ e vo implijet evit lakaat war wel ar pezh a vo bet degaset g
 'action-deleterevision' => 'diverkañ ar stumm-mañ',
 'action-deletedhistory' => 'Gwelet istor diverket ar bajenn-mañ',
 'action-browsearchive' => 'Klask pajennoù bet diverket',
-'action-undelete' => 'Diziverkañ ar bajenn-mañ',
+'action-undelete' => 'diziverkañ ar bajenn-mañ',
 'action-suppressrevision' => 'gwelet hag assevel ar stumm diverket-mañ',
 'action-suppressionlog' => 'gwelet ar marilh prevez-mañ',
 'action-block' => 'mirout ouzh an impplijer-mañ da zegas kemmoù',
@@ -1508,6 +1549,8 @@ Ma skrivit anezhañ e vo implijet evit lakaat war wel ar pezh a vo bet degaset g
 'action-userrights-interwiki' => 'Kemmañ gwirioù an implijerien war wikioù all',
 'action-siteadmin' => 'Prennañ pe dibrennañ ar bank roadennoù',
 'action-sendemail' => 'Kas posteloù',
+'action-viewmyprivateinfo' => 'Gwelet ho titouroù prevez',
+'action-editmyprivateinfo' => 'aozañ ho titouroù prevez',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|kemm|kemm}}',
@@ -1550,7 +1593,6 @@ Ma skrivit anezhañ e vo implijet evit lakaat war wel ar pezh a vo bet degaset g
 'recentchangeslinked-feed' => 'Heuliañ ar pajennoù liammet',
 'recentchangeslinked-toolbox' => 'Heuliañ ar pajennoù liammet',
 'recentchangeslinked-title' => 'Kemmoù a denn da "$1"',
-'recentchangeslinked-noresult' => 'Kemm ebet war ar pajennoù liammet e-pad an amzer spisaet.',
 'recentchangeslinked-summary' => "Rollet eo war ar bajenn dibar-mañ ar c'hemmoù diwezhañ bet degaset war ar pajennoù liammet ouzh ur bajenn lakaet (pe ouzh izili ur rummad lakaet).
 E '''tev''' emañ ar pajennoù zo war ho [[Special:Watchlist|roll evezhiañ]].",
 'recentchangeslinked-page' => 'Anv ar bajenn :',
@@ -1562,7 +1604,7 @@ E '''tev''' emañ ar pajennoù zo war ho [[Special:Watchlist|roll evezhiañ]].",
 'reuploaddesc' => "Distreiñ d'ar furmskrid.",
 'upload-tryagain' => 'Kas deskrivadur ar restr kemmet',
 'uploadnologin' => 'Digevreet',
-'uploadnologintext' => "Ret eo deoc'h bezañ [[Special:UserLogin|kevreetet]] a-benn gellout enporzhiañ restroù war ar servijer.",
+'uploadnologintext' => "Ret eo deoc'h bezañ [[Special:UserLogin|kevreet]] evit gallout enporzhiañ restroù war ar servijer.",
 'upload_directory_missing' => "Mankout a ra ar c'havlec'h enporzhiañ ($1) ha n'eo ket bet ar servijer Web evit e grouiñ.",
 'upload_directory_read_only' => "N'hall ket ar servijer skrivañ e renkell ar c'hargadennoù ($1).",
 'uploaderror' => 'Fazi enporzhiañ',
@@ -1692,11 +1734,11 @@ $1",
 'upload-proto-error-text' => 'Rekis eo an URLoù a grog gant <code>http://</code> pe <code>ftp://</code> evit enporzhiañ.',
 'upload-file-error' => 'Fazi diabarzh',
 'upload-file-error-text' => "Ur fazi diabarzh zo c'hoarvezet en ur grouiñ ur restr da c'hortoz war ar servijer.
-Kit e darempred gant [[Special:ListUsers/sysop|unan eus merourien ar reizhiad]].",
+Kit e darempred gant [[Special:ListUsers/sysop|unan eus merourien]].",
 'upload-misc-error' => 'Fazi kargañ dianav',
 'upload-misc-error-text' => "Ur fazi dianav zo bet e-ser kargañ.
 Gwiriit eo reizh an URL hag e c'hall bezañ tizhet ha klaskit en-dro.
-Ma talc'h ar gudenn, kit e darempred gant [[Special:ListUsers/sysop|merourien ar reizhiad]].",
+Ma talc'h ar gudenn, kit e darempred gant [[Special:ListUsers/sysop|merourien]].",
 'upload-too-many-redirects' => 'Re a adkasoù zo en URL-mañ.',
 'upload-unknown-size' => 'Ment dianav',
 'upload-http-error' => 'Ur fazi HTTP zo bet : $1',
@@ -2196,7 +2238,6 @@ Amañ e vo rollet ar c\'hemmoù da zont evit ar bajenn-mañ hag ar bajenn gaozea
 'unwatchthispage' => 'Paouez da evezhiañ',
 'notanarticle' => 'Pennad ebet',
 'notvisiblerev' => 'Stumm diverket',
-'watchnochange' => "N'ez eus elfenn ebet eus ar re evezhiet ganeoc'h a zo bet kemmet e-pad ar prantad spisaet",
 'watchlist-details' => "Lakaet hoc'h eus {{PLURAL:$1|$1 bajenn|$1 pajenn}} dindan evezh, anez kontañ ar pajennoù kaozeal.",
 'wlheader-enotif' => "War enaou emañ ar c'has posteloù.",
 'wlheader-showupdated' => "E '''tev''' emañ merket ar pajennoù bet kemmet abaoe ar wezh ziwezhañ hoc'h eus sellet outo",
@@ -2320,6 +2361,7 @@ Sellet ouzh ar [[Special:ProtectedPages|roll ar pajennoù gwarezet]] evit kaout
 'prot_1movedto2' => '[[$1]] adkaset war-du [[$2]]',
 'protect-badnamespace-title' => 'Esaouennoù anv diwarezadus',
 'protect-badnamespace-text' => "N'haller ket gwareziñ ar pajennoù en esaouenn anv-mañ.",
+'protect-norestrictiontypes-title' => "Pajenn na c'haller ket gwareziñ",
 'protect-legend' => 'Kadarnaat ar gwareziñ',
 'protectcomment' => 'Abeg :',
 'protectexpiry' => 'Termen',
@@ -2395,7 +2437,7 @@ Ma'z eus bet krouet ur bajenn nevez dezhi an hevelep anv abaoe an diverkadenn, e
 'undeletelink' => 'gwelet/assevel',
 'undeleteviewlink' => 'gwelet',
 'undeletereset' => 'Adderaouekaat',
-'undeleteinvert' => 'Eilpennañ diuzadenn',
+'undeleteinvert' => 'Eilpennañ an diuzadenn',
 'undeletecomment' => 'Abeg :',
 'undeletedrevisions' => 'Adsavet {{PLURAL:$1|1 stumm|$1 stumm}}',
 'undeletedrevisions-files' => 'Adsavet ez ez eus bet {{PLURAL:$1|1 stumm|$1 stumm}} ha {{PLURAL:$2|1 restr|$2 restr}}',
@@ -2683,7 +2725,7 @@ Dibabit unan all mar plij.",
 'movepage-max-pages' => 'Tizhet eo bet ar vevenn uhelañ a $1 {{PLURAL:$1|bajenn|pajenn}} da adenvel ha ne vo ket adanvet hini all ebet ken ent emgefre.',
 'movelogpage' => 'Roll an adkasoù',
 'movelogpagetext' => 'Setu roll ar pajennoù bet savet un adkas evito.',
-'movesubpage' => '{{PLURAL:$1|Ispajenn|Ispajenn}}',
+'movesubpage' => '{{PLURAL:$1|Ispajenn}}',
 'movesubpagetext' => "Bez' ez eus $1 {{PLURAL:$1|ispajenn|ispajenn}} diskouezet a-is d'ar bajenn-mañ.",
 'movenosubpage' => "Ispajenn ebet d'ar bajenn-mañ.",
 'movereason' => 'Abeg :',
@@ -3070,11 +3112,17 @@ Ma vez erounezet ganeoc'h e c'hallje tagañ ho reizhiad.",
 'minutes' => '{{PLURAL:$1|$1 vunutenn|$1 munutenn}}',
 'hours' => '{{PLURAL:$1|$1 eurvezh|$1 eurvezh}}',
 'days' => '{{PLURAL:$1|$1 deiz|$1 deiz}}',
+'weeks' => '{{PLURAL:$1|$1 sizhun|$1 sizhun}}',
 'months' => '{{PLURAL:$1|$1 miz|$1 miz}}',
 'years' => '{{PLURAL:$1|$1 bloaz|$1 bloaz}}',
 'ago' => '$1 zo',
 'just-now' => 'bremañ diouzhtu',
 
+# Human-readable timestamps
+'hours-ago' => '$1 {{PLURAL:$1|eur|eur}} zo',
+'minutes-ago' => '$1 {{PLURAL:$1|vunutenn|munut}} zo',
+'seconds-ago' => '$1 {{PLURAL:$1|eiladenn|eiladenn}} zo',
+
 # Bad image list
 'bad_image_list' => "Setu doare ar furmad :
 
@@ -3690,7 +3738,6 @@ Gallout a rit [[Special:EditWatchlist|implijout an aozer boutin ivez]].',
 'version-other' => 'Diseurt',
 'version-mediahandlers' => 'Merer danvez liesvedia',
 'version-hooks' => 'Galvoù',
-'version-extension-functions' => "Arc'hwelioù an astennoù",
 'version-parser-extensiontags' => 'Balizenn dielfennañ o tont eus an astennoù',
 'version-parser-function-hooks' => "Galv an arc'hwelioù dielfennañ",
 'version-hook-name' => 'Anv ar galv',
@@ -3711,6 +3758,14 @@ Sañset oc'h bezañ resevet [{{SERVER}}{{SCRIPTPATH}}/COPYING un eilskrid eus ar
 'version-entrypoints-header-entrypoint' => 'Poent mont e-barzh',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
+'redirect-legend' => "Adkas d'ur restr pe d'ur bajenn",
+'redirect-submit' => 'Mont',
+'redirect-value' => 'Talvoud :',
+'redirect-user' => 'ID an implijer',
+'redirect-file' => 'Anv ar restr',
+'redirect-not-exists' => "Talvoud n'eo ket bet kavet",
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Klask ar restroù e doubl',
 'fileduplicatesearch-summary' => 'Klask restroù e doubl war diazez talvoudennoù krennet.',
@@ -3906,7 +3961,7 @@ A-hend-all e c'hallit ober gant ar furmskrid eeunaet dindan. Ouzhpennet e vo hoc
 'duration-seconds' => '$1 {{PLURAL:$1|eilenn|eilenn}}',
 'duration-minutes' => '$1 {{PLURAL:$1|munut|munut}}',
 'duration-hours' => '($1 {{PLURAL:$1|eurvezh|eurvezh}})',
-'duration-days' => '($1 {{PLURAL:$1|deiz|deiz}})',
+'duration-days' => '($1 {{PLURAL:$1|deiz}})',
 'duration-weeks' => '$1 {{PLURAL:$1|sizhun|sizhun}}',
 'duration-years' => '$1 {{PLURAL:$1|bloaz|bloaz}}',
 'duration-decades' => '$1 {{PLURAL:$1|degad|degas}}',
index 61db53f..a4064ce 100644 (file)
  * @author DzWiki
  * @author Edinwiki
  * @author Fulup
+ * @author Geitost
  * @author Kaganer
  * @author Kal-El
  * @author Malafaya
+ * @author Nemo bis
  * @author Palapa
  * @author Seha
  * @author Smooth O
@@ -330,7 +332,7 @@ $messages = array(
 
 # Font style option in Special:Preferences
 'editfont-style' => 'Stil slova područja uređivanja:',
-'editfont-default' => 'Po podešavanjima preglednika',
+'editfont-default' => 'Po postavkama preglednika',
 'editfont-monospace' => 'Slova sa jednostrukim razmakom',
 'editfont-sansserif' => 'Slova bez serifa',
 'editfont-serif' => 'Slova serif',
@@ -386,6 +388,18 @@ $messages = array(
 'oct' => 'okt',
 'nov' => 'nov',
 'dec' => 'dec',
+'january-date' => '$1. januar',
+'february-date' => '$1. februar',
+'march-date' => '$1. mart',
+'april-date' => '$1. april',
+'may-date' => '$1. maj',
+'june-date' => '$1. juni',
+'july-date' => '$1. juli',
+'august-date' => '$1. august',
+'september-date' => '$1. septembar',
+'october-date' => '$1. oktobar',
+'november-date' => '$1. novembar',
+'december-date' => '$1. decembar',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategorija|Kategorije}}',
@@ -411,6 +425,7 @@ $messages = array(
 'newwindow' => '(otvara se u novom prozoru)',
 'cancel' => 'Poništite',
 'moredotdotdot' => 'Još...',
+'morenotlisted' => 'Više nije prikazano...',
 'mypage' => 'Korisnička stranica',
 'mytalk' => 'Razgovor',
 'anontalk' => 'Razgovor za ovu IP adresu',
@@ -491,7 +506,7 @@ $messages = array(
 'viewhelppage' => 'Pogledajte stranicu za pomoć',
 'categorypage' => 'Pogledaj stranicu kategorije',
 'viewtalkpage' => 'Pogledaj raspravu',
-'otherlanguages' => 'Ostali jezici',
+'otherlanguages' => 'Na drugim jezicima',
 'redirectedfrom' => '(Preusmjereno sa $1)',
 'redirectpagesub' => 'Preusmjeri stranicu',
 'lastmodifiedat' => 'Ova stranica je posljednji put izmijenjena $2, $1',
@@ -519,7 +534,6 @@ $1',
 'disclaimers' => 'Odricanje odgovornosti',
 'disclaimerpage' => 'Project:Uslovi korištenja, pravne napomene i odricanje odgovornosti',
 'edithelp' => 'Pomoć pri uređivanju stranice',
-'edithelppage' => 'Help:Uređivanje',
 'helppage' => 'Help:Sadržaj',
 'mainpage' => 'Početna strana',
 'mainpage-description' => 'Početna strana',
@@ -547,7 +561,6 @@ $1',
 'newmessagesdifflinkplural' => '{{PLURAL:$1|posljednja izmjena|posljednje izmjene}}',
 'youhavenewmessagesmulti' => 'Imate nove poruke na $1',
 'editsection' => 'uredi',
-'editsection-brackets' => '[$1]',
 'editold' => 'uredi',
 'viewsourceold' => 'pogledaj izvor',
 'editlink' => 'uredi',
@@ -649,7 +662,7 @@ Podaci koji se ovdje nalaze ne moraju biti aktuelni.',
 'wrong_wfQuery_params' => 'Netačni parametri za wfQuery()<br />
 Funkcija: $1<br />
 Pretraga: $2',
-'viewsource' => 'pogledaj kod',
+'viewsource' => 'Pogledaj izvor',
 'viewsource-title' => 'Prikaz izvora stranice $1',
 'actionthrottled' => 'Akcija je usporena',
 'actionthrottledtext' => 'Kao anti-spam mjera, ograničene su vam izmjene u određenom vremenu, i trenutačno ste dostigli to ograničenje. Pokušajte ponovo poslije nekoliko minuta.',
@@ -689,9 +702,18 @@ Obratite pažnju da neke stranice mogu nastaviti da se prikazuju kao da ste još
 'welcomecreation-msg' => 'Vaš nalog je napravljen.
 Ne zaboravite da prilagodite sebi svoja [[Special:Preferences|{{SITENAME}} podešavanja]].',
 'yourname' => 'Korisničko ime:',
+'userlogin-yourname' => 'Korisničko ime',
+'userlogin-yourname-ph' => 'Unesite Vaše korisničko ime',
 'yourpassword' => 'Šifra:',
+'userlogin-yourpassword' => 'Šifra',
+'userlogin-yourpassword-ph' => 'Unesite Vašu šifru/lozinku',
+'createacct-yourpassword-ph' => 'Unesite šifru/lozinku',
 'yourpasswordagain' => 'Ponovite šifru:',
+'createacct-yourpasswordagain' => 'Potvrdite šifru/lozinku',
+'createacct-yourpasswordagain-ph' => 'Unesite šifru/lozinku opet',
 'remembermypassword' => 'Zapamti moju šifru na ovom računaru (najviše $1 {{PLURAL:$1|dan|dana|dana}})',
+'userlogin-remembermypassword' => 'Ostavi me prijavljen',
+'userlogin-signwithsecure' => 'Koristite sigurnu konekciju',
 'securelogin-stick-https' => 'Ostani povezan na HTTPS nakon prijave',
 'yourdomainname' => 'Vaš domen:',
 'password-change-forbidden' => 'Ne možete da promjenite lozinku na ovom wikiju.',
@@ -704,14 +726,33 @@ Ne zaboravite da prilagodite sebi svoja [[Special:Preferences|{{SITENAME}} pode
 'logout' => 'Odjavi me',
 'userlogout' => 'Odjavi me',
 'notloggedin' => 'Niste prijavljeni',
-'nologin' => "Nemate korisničko ime? '''$1'''.",
+'userlogin-noaccount' => 'Nemate korisnički račun?',
+'userlogin-joinproject' => 'Pridružite se {{SITENAME}}',
+'nologin' => 'Nemate korisničko ime? $1.',
 'nologinlink' => 'Napravite nalog',
-'createaccount' => 'Napravi nalog',
+'createaccount' => 'Napravi korisnički račun',
 'gotaccount' => "Imate nalog? '''$1'''.",
 'gotaccountlink' => 'Prijavi se',
 'userlogin-resetlink' => 'Zaboravili ste detalje vaše prijave?',
-'createaccountmail' => 'e-poštom',
+'userlogin-resetpassword-link' => 'Resetirajte svoju šifru/lozinku',
+'helplogin-url' => 'Help:Prijavljivanje',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Pomoć pri prijavljivanju]]',
+'createacct-join' => 'Unesite svoje podatke ispod.',
+'createacct-emailrequired' => 'Adresa e-pošte',
+'createacct-emailoptional' => 'Adresa e-pošte (opcionalno)',
+'createacct-email-ph' => 'Unesite Vašu adresu e-pоšte',
+'createaccountmail' => 'Koristite privremenu, slučajno stvorenu šifru/lozinku i pošaljite na dole navedenu adrеsu e-pošte',
+'createacct-realname' => 'Pravo ime (opcionalno)',
 'createaccountreason' => 'Razlog:',
+'createacct-reason' => 'Razlog',
+'createacct-reason-ph' => 'Zašto pravite još jedan korisnički račun?',
+'createacct-captcha' => 'Sigurnosna provjera',
+'createacct-imgcaptcha-ph' => 'Unesite tekst koji vidite iznad',
+'createacct-submit' => 'Napravite svoj korisnički račun',
+'createacct-benefit-heading' => '{{SITENAME}} je napravljen od strane ljudi kao što ste Vi.',
+'createacct-benefit-body1' => '{{PLURAL:$1|izmjena|izmjene}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|stranica|stranice|stranica}}',
+'createacct-benefit-body3' => 'nedavni {{PLURAL:$1|doprinosa}}',
 'badretype' => 'Šifre koje ste unijeli se ne poklapaju.',
 'userexists' => 'Korisničko ime koje ste unijeli je već u upotrebi.
 Molimo Vas da izaberete drugo ime.',
@@ -766,7 +807,7 @@ Molimo vas da unesete ispravnu adresu ili ostavite prazno polje.',
 'cannotchangeemail' => 'Na ovom wikiju ne možete promijeniti e-mail adresu računa.',
 'emaildisabled' => 'Ova web-stranica ne može da šalje e-poruke.',
 'accountcreated' => 'Korisnički račun je napravljen',
-'accountcreatedtext' => 'Korisnički račun za $1 je napravljen.',
+'accountcreatedtext' => 'Korisnički račun za [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|razgovor]]) je napravljen.',
 'createaccount-title' => 'Pravljenje korisničkog računa za {{SITENAME}}',
 'createaccount-text' => 'Neko je napravio korisnički račun za vašu e-mail adresu na {{SITENAME}} ($4) sa imenom "$2", i sa šifrom "$3".
 Trebali biste se prijaviti i promjeniti šifru.
@@ -791,7 +832,7 @@ Da biste završili prijavu, morate unijeti novu šifru ovdje:',
 'resetpass_header' => 'Obnovi šifru za račun',
 'oldpassword' => 'Stara šifra:',
 'newpassword' => 'Nova šifra:',
-'retypenew' => 'Ukucajte ponovo novu šifru:',
+'retypenew' => 'Unesite ponovo novu šifru:',
 'resetpass_submit' => 'Odredi šifru i prijavi se',
 'resetpass_success' => 'Vaša šifra je uspiješno promjenjena! Prijava u toku...',
 'resetpass_forbidden' => 'Šifre ne mogu biti promjenjene',
@@ -804,35 +845,27 @@ Možda ste već uspješno promijenili Vašu šifru ili ste tražili novu privrem
 
 # Special:PasswordReset
 'passwordreset' => 'Poništavanje šifre',
-'passwordreset-text' => 'Ispunite ovaj obrazac da biste dobili e-mail podsjetnik o vašim detaljima računa.',
+'passwordreset-text-one' => 'Ispunite ovaj obrazac da biste resetovali Vašu šifru/lozinku.',
 'passwordreset-legend' => 'Poništi šifru',
 'passwordreset-disabled' => 'Poništavanje šifre  je onemogućeno na ovoj wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Unesite jedan dio podataka ispod}}',
 'passwordreset-username' => 'Korisničko ime:',
 'passwordreset-domain' => 'Domen:',
 'passwordreset-capture' => 'Pogledati krajnji e-mail?',
 'passwordreset-capture-help' => 'Ako označite ovu kućicu, e-poruka (s privremenom lozinkom) će biti prikazana i poslata korisniku.',
-'passwordreset-email' => 'E-mail adresa:',
+'passwordreset-email' => 'Adresa e-pošte:',
 'passwordreset-emailtitle' => 'Detalji računa na {{SITENAME}}',
-'passwordreset-emailtext-ip' => 'Neto (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:
+'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:
 
 $2
 
 {{PLURAL:$3|Ova privremena šifra|Ove privremene šifre}} će isteći za {{PLURAL:$5|jedan dan|$5 dana}}.
-Trebate 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:
+Trebate 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:
 
 $2
 
 {{PLURAL:$3|Ova privremena šifra|Ove privremene šifre}} će isteći za {{PLURAL:$5|jedan dan|$5 dana}}.
-Trebate 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.',
+Trebate 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
 Privremena šifra: $2',
 'passwordreset-emailsent' => 'E-mail podsjetnik je poslan.',
@@ -977,7 +1010,7 @@ Ne zaboravite da imena stranica s .css i .js kodom počinju malim slovom, npr. {
 'note' => "'''Pažnja:'''",
 'previewnote' => "'''Ne zaboravite da je ovo samo pregled'''
 Izmjene stranice nisu još sačuvane!",
-'continue-editing' => 'Nastavi uređivati',
+'continue-editing' => 'Idi na područje uređivanja',
 'previewconflict' => 'Ovaj pregled reflektuje tekst u gornjem polju
 kako će izgledati ako pritisnete "Sačuvaj članak".',
 'session_fail_preview' => "'''Izvinjavamo se! Nismo mogli obraditi vašu izmjenu zbog gubitka podataka o prijavi. Molimo pokušajte ponovno. Ako i dalje ne bude radilo, pokušajte se [[Special:UserLogout|odjaviti]] i ponovno prijaviti.'''",
@@ -1058,14 +1091,18 @@ Nije ponuđeno nikakvo objašnjenje.',
 Izgleda da je obrisana.',
 'edit-conflict' => 'Sukob izmjena.',
 'edit-no-change' => 'Vaša izmjena je ignorirana, jer nije bilo promjena teksta stranice.',
+'postedit-confirmation' => 'Vaša izmjena je sačuvana.',
 'edit-already-exists' => 'Stranica nije mogla biti kreirana.
 Izgleda da već postoji.',
 'defaultmessagetext' => 'Uobičajeni tekst poruke',
+'invalid-content-data' => 'Nevaljani podaci sadržaja',
+'content-not-allowed-here' => 'Sadržaj napisan u obliku "$1" nije dozvoljen na stranici [[$2]]',
 'editwarning-warning' => 'Napuštanje ove stranice može dovesti do gubitka svih promjena koje ste načinili.
-Ako ste prijavljeni, možete isključiti ovo upozorenje u "{{int:prefs-editing}}" dijelu vaših opcija.',
+Ako ste prijavljeni, možete isključiti ovo upozorenje u Sekciji za "Uređivanje" vaših opcija.',
 
 # Content models
 'content-model-wikitext' => 'wikitekst',
+'content-model-text' => 'obični tekst',
 'content-model-javascript' => 'JavaScript',
 'content-model-css' => 'CSS',
 
@@ -1124,8 +1161,8 @@ Objašnjenje: '''(tren)''' = razlika sa trenutnom verzijom,
 '''(preth)''' = razlika sa prethodnom verzijom, '''m''' = mala izmjena.",
 'history-fieldset-title' => 'Pretraga historije',
 'history-show-deleted' => 'Samo obrisane',
-'histfirst' => 'Najstarije',
-'histlast' => 'Najnovije',
+'histfirst' => 'najstarije',
+'histlast' => 'najnovije',
 'historysize' => '({{PLURAL:$1|1 bajt|$1 bajta|$1 bajtova}})',
 'historyempty' => '(prazno)',
 
@@ -1279,6 +1316,10 @@ Korištenje navigacionih linkova će resetovati ovaj stupac.',
 'editundo' => 'ukloni ovu izmjenu',
 'diff-multi' => '({{plural:$1|Nije prikazana jedna međurevizija|Nisu prikazane $1 međurevizije|Nije prikazano $1 međurevizija}} od {{PLURAL:$2|jednog korisnika|$2 korisnika}})',
 'diff-multi-manyusers' => '({{PLURAL:$1|Jedna međurevizija|$1 međurevizije|$1 međurevizija}} od više od $2 {{PLURAL:$2|korisnika|korisnika}} {{PLURAL:$1|nije prikazana|nisu prikazane}})',
+'difference-missing-revision' => '{{PLURAL:$2|Jedna izmjena|$2 izmjene}} od ove razlike ($1) ne {{PLURAL:$2|postoji|postoje}}.
+
+Ovo se obično dešava kada pratite zastarjelu vezu na stranice koja je obrisana.
+Više informacija možete pronaći u [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} protokol brisanja].',
 
 # Search results
 'searchresults' => 'Rezultati pretrage',
@@ -1300,7 +1341,6 @@ Korištenje navigacionih linkova će resetovati ovaj stupac.',
 'searchmenu-legend' => 'Opcije pretrage',
 'searchmenu-exists' => "'''Postoji stranica pod nazivom \"[[:\$1]]\" na ovoj wiki'''",
 'searchmenu-new' => "'''Napravi stranicu \"[[:\$1|\$1]]\" na ovoj wiki!'''",
-'searchhelp-url' => 'Help:Sadržaj',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Pregledaj stranice sa ovim prefiksom]]',
 'searchprofile-articles' => 'Stranice sadržaja',
 'searchprofile-project' => 'Stranice pomoći i projekta',
@@ -1344,11 +1384,11 @@ Pokušajte u Vaš upit uključiti prefiks ''all:'' da bi ste pretražili sav sad
 'searchdisabled' => '<p>Izvinjavamo se!  Puno pretraga teksta je privremeno onemogućena.  U međuvremenu, možete koristiti Google za pretragu.  Indeks može biti stariji.',
 
 # Preferences page
-'preferences' => 'Podešavanja',
+'preferences' => 'Postavke',
 'mypreferences' => 'Postavke',
 'prefs-edits' => 'Broj izmjena:',
 'prefsnologin' => 'Niste prijavljeni',
-'prefsnologintext' => 'Da biste mogli podešavati korisnička podešavanja, morate <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} biti prijavljeni]</span>.',
+'prefsnologintext' => 'Da biste mogli podešavati korisničke postavke, morate <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} biti prijavljeni]</span>.',
 'changepassword' => 'Promijeni šifru',
 'prefs-skin' => 'Koža',
 'skin-preview' => 'Pregled',
@@ -1371,11 +1411,10 @@ Pokušajte u Vaš upit uključiti prefiks ''all:'' da bi ste pretražili sav sad
 'prefs-setemail' => 'Postavite e-mail adresu',
 'prefs-email' => 'E-mail opcije',
 'prefs-rendering' => 'Izgled',
-'saveprefs' => 'Sačuvajte podešavanja',
+'saveprefs' => 'Sačuvaj',
 'resetprefs' => 'Vrati podešavanja',
 'restoreprefs' => 'Vrati sve pretpostavljene postavke',
 'prefs-editing' => 'Veličine tekstualnog polja',
-'prefs-edit-boxsize' => 'Veličina prozora za uređivanje.',
 'rows' => 'Redova',
 'columns' => 'Kolona',
 'searchresultshead' => 'Podešavanja rezultata pretrage',
@@ -1386,10 +1425,7 @@ Pokušajte u Vaš upit uključiti prefiks ''all:'' da bi ste pretražili sav sad
 'recentchangesdays-max' => '(najviše $1 {{PLURAL:$1|dan|dana}})',
 'recentchangescount' => 'Broj uređivanja za prikaz po pretpostavkama:',
 'prefs-help-recentchangescount' => 'Ovo uključuje nedavne izmjene, historije stranice i zapise.',
-'prefs-help-watchlist-token' => 'Popunjavanjem ovog polja tajnim ključem će generisati RSS fid za Vaš spisak praćenja.
-Svako ko zna ključ u ovom polju će biti u mogućnosti da pročita Vaš spisak praćenja, tako da trebate izabrati sigurnu vrijednost.
-Ovdje su navedene neke nasumično odabrane vrijednosti koje možete koristiti: $1',
-'savedprefs' => 'Vaša podešavanja su sačuvana.',
+'savedprefs' => 'Vaše postavke su sačuvane.',
 'timezonelegend' => 'Vremenska zona:',
 'localtime' => 'Lokalno vrijeme:',
 'timezoneuseserverdefault' => 'Koristi postavke wikija ($1)',
@@ -1419,7 +1455,6 @@ Ovdje su navedene neke nasumično odabrane vrijednosti koje možete koristiti: $
 'prefs-reset-intro' => 'Možete koristiti ovu stranicu da poništite Vaše postavke na ovom sajtu na pretpostavljene vrijednosti.
 Ovo se ne može vratiti unazad.',
 'prefs-emailconfirm-label' => 'E-mail potvrda:',
-'prefs-textboxsize' => 'Veličina prozora za uređivanje',
 'youremail' => 'E-mail:',
 'username' => '{{GENDER:$1|Korisničko}} ime:',
 'uid' => '{{GENDER:$1|Korisnički}} ID:',
@@ -1451,7 +1486,9 @@ Ako izaberete da date ime, biće korišteno za pripisivanje za vaš rad.',
 'prefs-signature' => 'Potpis',
 'prefs-dateformat' => 'Format datuma',
 'prefs-timeoffset' => 'Vremenska razlika',
-'prefs-advancedediting' => 'Napredne opcije',
+'prefs-advancedediting' => 'Općenito',
+'prefs-editor' => 'Urednik',
+'prefs-preview' => 'Prethodni pregled',
 'prefs-advancedrc' => 'Napredne opcije',
 'prefs-advancedrendering' => 'Napredne opcije',
 'prefs-advancedsearchoptions' => 'Napredne opcije',
@@ -1486,6 +1523,7 @@ Ako izaberete da date ime, biće korišteno za pripisivanje za vaš rad.',
 'userrights-notallowed' => 'Vaš račun nema privilegije da dodaje ili oduzima prava korisnika.',
 'userrights-changeable-col' => 'Grupe koje možete mijenjati',
 'userrights-unchangeable-col' => 'Grupe koje ne možete mijenjati',
+'userrights-conflict' => 'Sukob u korisničkim pravima! Molimo pošaljite Vaše promjene ponovno.',
 
 # Groups
 'group' => 'Grupa:',
@@ -1556,6 +1594,8 @@ Ako izaberete da date ime, biće korišteno za pripisivanje za vaš rad.',
 'right-editusercssjs' => 'Uređivanje CSS i JS datoteka drugih korisnika',
 'right-editusercss' => 'Uređivanje CSS datoteka drugih korisnika',
 'right-edituserjs' => 'Uređivanje JS datoteka drugih korisnika',
+'right-editmyusercss' => 'Uredite svoje vlastite korisničke CSS datoteke',
+'right-editmyoptions' => 'Uredite svoje postavke',
 'right-rollback' => 'Brzo vraćanje izmjena na zadnjeg korisnika koji je uređivao određenu stranicu',
 'right-markbotedits' => 'Označavanje vraćenih izmjena kao izmjene bota',
 'right-noratelimit' => 'Izbjegavanje ograničenja uzrokovanih brzinom',
@@ -1617,6 +1657,7 @@ Ako izaberete da date ime, biće korišteno za pripisivanje za vaš rad.',
 'action-userrights-interwiki' => 'uređujete korisnička prava korisnika na drugim wikijima',
 'action-siteadmin' => 'zaključavate ili otključavate bazu podataka',
 'action-sendemail' => 'pošalji e-mail poruke',
+'action-editmyprivateinfo' => 'uredite svoje privatne podatke',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|promjena|promjene|promjena}}',
@@ -1659,7 +1700,6 @@ Ako izaberete da date ime, biće korišteno za pripisivanje za vaš rad.',
 'recentchangeslinked-feed' => 'Srodne izmjene',
 'recentchangeslinked-toolbox' => 'Srodne izmjene',
 'recentchangeslinked-title' => 'Srodne promjene sa "$1"',
-'recentchangeslinked-noresult' => 'Nema izmjena na povezanim stranicama u zadanom periodu.',
 'recentchangeslinked-summary' => "Ova posebna stranica prikazuje promjene na povezanim stranicama.
 Stranice koje su na vašem [[Special:Watchlist|spisku praćenja]] su '''podebljane'''.",
 'recentchangeslinked-page' => 'Naslov stranice:',
@@ -1671,7 +1711,7 @@ Stranice koje su na vašem [[Special:Watchlist|spisku praćenja]] su '''podeblja
 'reuploaddesc' => 'Vratite se na upitnik za slanje.',
 'upload-tryagain' => 'Pošaljite izmijenjeni opis datoteke',
 'uploadnologin' => 'Niste prijavljeni',
-'uploadnologintext' => 'Morate biti [[Special:UserLogin|prijavljeni]] da bi ste slali datoteke.',
+'uploadnologintext' => 'Morate biti $1 da bi ste slali datoteke.',
 'upload_directory_missing' => 'Folder za postavljanje ($1) nedostaje i webserver ga ne može napraviti.',
 'upload_directory_read_only' => 'Folder za postavljanje ($1) na webserveru je postavljen samo za čitanje.',
 'uploaderror' => 'Greška pri slanju',
@@ -1830,6 +1870,9 @@ Ako se problem ne riješi, kontaktirajte [[Special:ListUsers/sysop|administrator
 'backend-fail-closetemp' => 'Ne mogu zatvoriti privremenu datoteku.',
 'backend-fail-read' => 'Ne mogu čitati datoteku $1.',
 'backend-fail-create' => 'Ne mogu napraviti datoteku $1.',
+'backend-fail-readonly' => 'Skladišna osnova "$1" je trenutno samo za čitanje. Navedeni razlog je: "$2"',
+'backend-fail-synced' => 'Datoteka "$1" je u nekonzistentnom stanju u internom skladištu',
+'backend-fail-internal' => 'Došlo je do nepoznate greške u skladišnoj osnovi "$1".',
 'backend-fail-contenttype' => 'Ne mogu da utvrdim kakav sadržaj ima datoteka koju treba da smjestim u "$1".',
 
 # Lock manager
@@ -2153,6 +2196,7 @@ na kome bi se izvela ova funkcija.',
 Možete specificirati prikaz izabiranjem specifičnog spiska, korisničkog imena ili promjenjenog članka (razlikovati velika slova).',
 'logempty' => 'Ne postoji takav zapis.',
 'log-title-wildcard' => 'Traži naslove koji počinju s ovim tekstom',
+'showhideselectedlogentries' => 'Pokaži/sakrij izabrane zapise u evidenciji',
 
 # Special:AllPages
 'allpages' => 'Sve stranice',
@@ -2197,9 +2241,9 @@ Vidi također [[Special:WantedCategories|zatražene kategorije]].',
 'linksearch-pat' => 'Šema traženja:',
 'linksearch-ns' => 'Imenski prostor:',
 'linksearch-ok' => 'Traži',
-'linksearch-text' => 'Mogu se koristiti općeniti izrazi poput "*.wikipedia.org"
+'linksearch-text' => 'Mogu se koristiti općeniti izrazi poput "*.wikipedia.org".
 Potrebna je najmanje osnovna domena, naprimjer "*.org."<br />
-Podržani protokoli: <code>$1</code> (ne dodavajte bilo koji od ovih u vašu pretragu).',
+Podržani {{PLURAL:$2|protokol|protokoli}}: <code>$1</code> (default je http:// ako nijedan protokol nije naveden).',
 'linksearch-line' => '$1 je povezan od $2',
 'linksearch-error' => 'Džokeri se mogu pojavljivati samo na početku naziva servera.',
 
@@ -2212,7 +2256,7 @@ Podržani protokoli: <code>$1</code> (ne dodavajte bilo koji od ovih u vašu pre
 # Special:ActiveUsers
 'activeusers' => 'Spisak aktivnih korisnika',
 'activeusers-intro' => 'Ovo je spisak korisnika koji su napravili neku aktivnost u {{PLURAL:$1|zadnji $1 dan|zadnja $1 dana|zadnjih $1 dana}}.',
-'activeusers-count' => '{{PLURAL:$1|nedavna $1 izmjena|nedavne $1 izmjene|nedavnih $1 izmjena}} u {{PLURAL:$3|posljednji $3 dan|posljednja $3 dana|posljednjih $3 dana}}',
+'activeusers-count' => '$1 {{PLURAL:$1|izmjena|izmjene|izmjena}} u {{PLURAL:$3|posljednji $3 dan|posljednja $3 dana|posljednjih $3 dana}}',
 'activeusers-from' => 'Prikaži korisnike koji počinju sa:',
 'activeusers-hidebots' => 'Sakrij botove',
 'activeusers-hidesysops' => 'Sakrij administratore',
@@ -2295,7 +2339,6 @@ Buduće promjene ove stranice i njoj pridružene stranice za razgovor će biti n
 'unwatchthispage' => 'Ukinite praćenje',
 'notanarticle' => 'Nije članak',
 'notvisiblerev' => 'Revizija je obrisana',
-'watchnochange' => 'Ništa što pratite nije promjenjeno u prikazanom vremenu.',
 'watchlist-details' => '{{PLURAL:$1|$1 stranica praćena|$1 stranice praćene|$1 stranica praćeno}} ne računajući stranice za razgovor.',
 'wlheader-enotif' => 'Obavještavanje e-poštom je omogućeno.',
 'wlheader-showupdated' => "Stranice koje su izmijenjene od kad ste ih posljednji put posjetili su prikazane '''podebljanim slovima'''",
@@ -2425,6 +2468,7 @@ Pogledajte [[Special:ProtectedPages|spisak zaštićenih stranica]] za pregled tr
 'prot_1movedto2' => 'članak [[$1]] premješten na [[$2]]',
 'protect-badnamespace-title' => 'Nezaštitljiv imenski prostor',
 'protect-badnamespace-text' => 'Stranice u ovom imenskom prostoru se ne mogu zaštititi.',
+'protect-norestrictiontypes-text' => 'Ova stranica se ne može zaštititi jer nema dostupnih oblika ograničenja.',
 'protect-legend' => 'Potvrdite zaštitu',
 'protectcomment' => 'Razlog:',
 'protectexpiry' => 'Ističe:',
@@ -2441,8 +2485,8 @@ Slijede trenutne postavke stranice '''$1''':",
 'protect-cascadeon' => 'Ova stranica je tenutno zaštićena jer je uključena u {{PLURAL:$1|stranicu, koja ima|stranice, koje imaju|stranice, koje imaju}} uključenu prenosnu zaštitu.
 Možete promijeniti stepen zaštite ove stranice, ali to neće uticati na prenosnu zaštitu.',
 'protect-default' => 'Dopusti svim korisnicima',
-'protect-fallback' => 'Potrebno je imati "$1" ovlasti',
-'protect-level-autoconfirmed' => 'Blokiraj nove i neregistrovane korisnike',
+'protect-fallback' => 'Dozvolite samo korisnicima sa "$1" ovlastima/privilegijama',
+'protect-level-autoconfirmed' => 'Dopustite samo automatski potvrđenim korisnicima',
 'protect-level-sysop' => 'Dozvoli samo administratorima',
 'protect-summary-cascade' => 'prenosna zaštita',
 'protect-expiring' => 'ističe $1 (UTC)',
@@ -2546,7 +2590,7 @@ $1',
 'mycontris' => 'Doprinos',
 'contribsub2' => 'Za $1 ($2)',
 'nocontribs' => 'Nisu nađene promjene koje zadovoljavaju ove uslove.',
-'uctop' => ' (vrh)',
+'uctop' => '(trenutno)',
 'month' => 'Od mjeseca (i ranije):',
 'year' => 'Od godine (i ranije):',
 
@@ -2876,6 +2920,8 @@ Molimo posjetite [//www.mediawiki.org/wiki/Localisation MediaWiki lokalizaciju]
 'thumbnail-more' => 'uvećajte',
 'filemissing' => 'Nedostaje datoteka',
 'thumbnail_error' => 'Greška pri pravljenju umanjene slike: $1',
+'thumbnail_error_remote' => 'Poruka o grešci iz $1:
+$2',
 'djvu_page_error' => 'DjVu stranica je van opsega',
 'djvu_no_xml' => 'Za XML-datoteku se ne može pozvati DjVu datoteka',
 'thumbnail-temp-create' => 'Ne mogu da napravim privremenu smanjenu sliku',
@@ -2959,7 +3005,7 @@ Nedostaje privremeni folder.',
 'tooltip-pt-anonuserpage' => 'Korisnička stranica za ip koju Vi uređujete kao',
 'tooltip-pt-mytalk' => 'Vaša stranica za razgovor',
 'tooltip-pt-anontalk' => 'Razgovor o doprinosu sa ove IP adrese',
-'tooltip-pt-preferences' => 'Moja podešavanja',
+'tooltip-pt-preferences' => 'Vaše postavke',
 'tooltip-pt-watchlist' => 'Spisak članaka koje pratite.',
 'tooltip-pt-mycontris' => 'Spisak vašeg doprinosa',
 'tooltip-pt-login' => 'Predlažemo da se prijavite, ali nije obvezno.',
@@ -3074,8 +3120,12 @@ Ovo je vjerovatno izazvao vezom ka vanjskoj nepoželjnoj stranici.',
 'pageinfo-length' => 'Dužina stranice (u bajtovima)',
 'pageinfo-article-id' => 'ID stranice',
 'pageinfo-language' => 'Jezik sadržaja stranice',
+'pageinfo-robot-policy' => 'Status pretraživača',
+'pageinfo-robot-index' => 'Može se indeksirati',
+'pageinfo-robot-noindex' => 'Ne može se indeksirati',
 'pageinfo-views' => 'Broj pogleda',
 'pageinfo-watchers' => 'Broj pratitelja stranice',
+'pageinfo-few-watchers' => 'Manje od $1 {{PLURAL:$1|pratioca|pratilaca}}',
 'pageinfo-redirects-name' => 'Preusmjeravanja na ovu stranicu',
 'pageinfo-subpages-name' => 'Podstranice ove stranice',
 'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|preusmjerenje|preusmjerenja}}; $3 {{PLURAL:$3|nepreusmjerenje|nepreusmjerenja}})',
@@ -3089,13 +3139,16 @@ Ovo je vjerovatno izazvao vezom ka vanjskoj nepoželjnoj stranici.',
 'pageinfo-magic-words' => '{{PLURAL:$1|Čarobna riječ|Čarobne riječi}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Sakrivena kategorija|Sakrivene kategorije}} ($1)',
 'pageinfo-templates' => '{{PLURAL:$1|Uključeni šablon|Uključeni šabloni}} ($1)',
+'pageinfo-transclusions' => '{{PLURAL:$1|Stranica|Stranice}} uključene u ($1)',
 'pageinfo-toolboxlink' => 'Informacije o stranici',
 'pageinfo-redirectsto' => 'Preusmjerava na',
 'pageinfo-redirectsto-info' => 'Informacije',
 'pageinfo-contentpage' => 'Broji se kao stranica sa sadržajem',
 'pageinfo-contentpage-yes' => 'Da',
 'pageinfo-protect-cascading-yes' => 'Da',
+'pageinfo-category-info' => 'Informacije o kategoriji',
 'pageinfo-category-pages' => 'Broj stranica',
+'pageinfo-category-subcats' => 'Broj podkategorija',
 'pageinfo-category-files' => 'Broj datoteka',
 
 # Skin names
@@ -3147,6 +3200,7 @@ $1',
 'file-nohires' => 'Veća rezolucija nije dostupna.',
 'svg-long-desc' => 'SVG fajl, dozvoljeno $1 × $2 piksela, veličina fajla: $3',
 'svg-long-desc-animated' => 'Animirana SVG datoteka, nominalno: $1 × $2 piksela, veličina datoteke: $3',
+'svg-long-error' => 'Nevaljana SVG datoteka: $1',
 'show-big-image' => 'Vidi sliku u punoj veličini (rezoluciji)',
 'show-big-image-preview' => 'Veličina ovog prikaza: $1.',
 'show-big-image-other' => '{{PLURAL:$2|Druga rezolucija|Ostale rezolucije}}: $1.',
@@ -3176,9 +3230,24 @@ $1',
 'minutes' => '{{PLURAL:$1|$1 minuta|$1 minute|$1 minuta}}',
 'hours' => '{{PLURAL:$1|$1 sat|$1 sata|$1 sati}}',
 'days' => '{{PLURAL:$1|$1 dan|$1 dana|$1 dana}}',
+'weeks' => '{{PLURAL:$1|$1 sedmica}}',
 'months' => '{{PLURAL:$1|$1 mjesec|$1 mjeseci}}',
 'years' => '{{PLURAL:$1|$1 godina|$1 godine|$1 godina}}',
 'ago' => 'prije $1',
+'just-now' => 'upravo sad',
+
+# Human-readable timestamps
+'hours-ago' => 'prije $1 {{PLURAL:$1|sat|sata|sati}}',
+'minutes-ago' => 'prije $1 {{PLURAL:$1|minute|minute|minuta}}',
+'seconds-ago' => 'prije $1 {{PLURAL:$1|sekunde|sekunde|sekundi}}',
+'monday-at' => 'Ponedeljak u $1',
+'tuesday-at' => 'Utorak u $1',
+'wednesday-at' => 'Srijeda u $1',
+'thursday-at' => 'Četvrtak u $1',
+'friday-at' => 'Petak u $1',
+'saturday-at' => 'Subota u $1',
+'sunday-at' => 'Nedjelja u $1',
+'yesterday-at' => 'Jučer u $1',
 
 # Bad image list
 'bad_image_list' => "Koristi se sljedeći format:
@@ -3670,6 +3739,7 @@ Ovaj kod za potvrdu će isteći u $4.',
 # Scary transclusion
 'scarytranscludedisabled' => '[Međuwiki umetanje je isključeno]',
 'scarytranscludefailed' => '[Neuspješno preusmjerenje šablona na $1]',
+'scarytranscludefailed-httpstatus' => '[Preuzimanje šablona nije uspjelo za $1: HTTP $2]',
 'scarytranscludetoolong' => '[URL je predugačak]',
 
 # Delete conflict
@@ -3838,7 +3908,6 @@ Također možete [[Special:EditWatchlist|koristiti standardni uređivač]].',
 'version-other' => 'Ostalo',
 'version-mediahandlers' => 'Upravljači medije',
 'version-hooks' => 'Kuke',
-'version-extension-functions' => 'Funkcije proširenja (ekstenzije)',
 'version-parser-extensiontags' => "Parser proširenja (''tagovi'')",
 'version-parser-function-hooks' => 'Kuke parserske funkcije',
 'version-hook-name' => 'Naziv kuke',
@@ -3847,6 +3916,7 @@ Također možete [[Special:EditWatchlist|koristiti standardni uređivač]].',
 'version-license' => 'Licenca',
 'version-poweredby-credits' => "Ova wiki je zasnovana na '''[//www.mediawiki.org/ MediaWiki]''', autorska prava zadržana © 2001-$1 $2.",
 'version-poweredby-others' => 'ostali',
+'version-credits-summary' => 'Željeli bismo se zahvaliti sljedećim ljudima na njihovom doprinosu [[Special:Version|MediaWikiju]].',
 'version-license-info' => 'Mediawiki je slobodni softver, možete ga redistribuirati i/ili mijenjati pod uslovima GNU opće javne licence kao što je objavljeno od strane Fondacije Slobodnog Softvera, bilo u verziji 2 licence, ili (po vašoj volji) nekoj od kasniji verzija.
 
 Mediawiki se distriburia u nadi da će biti korisna, ali BEZ IKAKVIH GARANCIJA, čak i bez ikakvih posrednih garancija o KOMERCIJALNOSTI ili DOSTUPNOSTI ZA ODREĐENU SVRHU. Pogledajte GNU opću javnu licencu za više detalja.
@@ -3858,6 +3928,14 @@ Trebali biste dobiti [{{SERVER}}{{SCRIPTPATH}}/KOPIJU GNU opće javne licence] z
 'version-entrypoints-header-entrypoint' => 'Ulazna tačka',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
+'redirect-submit' => 'Idi',
+'redirect-value' => 'Vrijednost:',
+'redirect-user' => 'Korisnički ID',
+'redirect-revision' => 'Verzija stranice',
+'redirect-file' => 'Naziv datoteke',
+'redirect-not-exists' => 'Vrijednost nije pronađena',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Pretraga za duplim datotekama',
 'fileduplicatesearch-summary' => 'Pretraga za duplim datotekama na bazi njihove haš vrijednosti.',
@@ -3946,6 +4024,9 @@ Trebali biste dobiti [{{SERVER}}{{SCRIPTPATH}}/KOPIJU GNU opće javne licence] z
 'htmlform-submit' => 'Pošalji',
 'htmlform-reset' => 'Vrati izmjene',
 'htmlform-selectorother-other' => 'Ostalo',
+'htmlform-no' => 'Ne',
+'htmlform-yes' => 'Da',
+'htmlform-chosen-placeholder' => 'Izaberite opciju',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 sa podrškom pretrage cijelog teksta',
@@ -3979,7 +4060,7 @@ Trebali biste dobiti [{{SERVER}}{{SCRIPTPATH}}/KOPIJU GNU opće javne licence] z
 'logentry-patrol-patrol-auto' => '$1 je automatski {{GENDER:$2|označio|označila}} izmjenu $4 stranice $3 pregledanim',
 'logentry-newusers-newusers' => 'Korisnički račun $1 je {{GENDER:$2|napravljen}}',
 'logentry-newusers-create' => 'Korisnički račun $1 je {{GENDER:$2|napravljen}}',
-'logentry-newusers-create2' => '$3 je {{GENDER:$2|napravio|napravila}} korisnički račun $1',
+'logentry-newusers-create2' => '$1 je {{GENDER:$2|napravio|napravila}} korisnički račun $3',
 'logentry-newusers-byemail' => 'Korisnički račun $3 je {{GENDER:$2|napravio|napravila}} $1 i lozinka/šifra je poslana putem e-maila',
 'logentry-newusers-autocreate' => 'Korisnički račun $1 je automatski {{GENDER:$2|napravljen}}',
 'logentry-rights-rights' => '$1 je {{GENDER:$2|promijenio|promijenila|promijenio}} članstvo grupe za $3 iz $4 u $5',
@@ -4060,4 +4141,7 @@ Inače, možete ispuniti jednostavan obrazac ispod. Vaš komentar biti će dodan
 'duration-centuries' => '$1 {{PLURAL:$1|vijek|vijeka|vijekova}}',
 'duration-millennia' => '$1 {{PLURAL:$1|milenij|milenija}}',
 
+# Image rotation
+'rotate-comment' => 'Slika rotirana za $1 {{PLURAL:$1|stepen|stepeni}} u smjeru kazaljke na satu',
+
 );
index 215061c..88bc5d9 100644 (file)
  *
  */
 
-$fallback = 'ru';
\ No newline at end of file
+$fallback = 'ru';
+
+$namespaceNames = array(
+       NS_MEDIA            => 'Меди',
+       NS_SPECIAL          => 'Тусхай',
+       NS_TALK             => 'Хэлэлсэхэ',
+       NS_USER             => 'Хэрэглэгшэ',
+       NS_USER_TALK        => 'Хэрэглэгшые_хэлэлсэхэ',
+       NS_PROJECT_TALK     => '$1_тухай_хэлэлсэхэ',
+       NS_FILE             => 'Файл',
+       NS_FILE_TALK        => 'Файл_хэлэлсэхэ',
+       NS_MEDIAWIKI_TALK   => 'MediaWiki_хэлэлсэхэ',
+       NS_TEMPLATE         => 'Загбар',
+       NS_TEMPLATE_TALK    => 'Загбар_хэлэлсэхэ',
+       NS_HELP             => 'Туһаламжа',
+       NS_HELP_TALK        => 'Туһаламжа_хэлэлсэл',
+       NS_CATEGORY         => 'Категори',
+       NS_CATEGORY_TALK    => 'Категори_хэлэлсэхэ',
+);
+
+$namespaceAliases = array(
+       # Russian namespaces
+       'Обсуждение'                         => NS_TALK,
+       'Участник'                           => NS_USER,
+       'Обсуждение_участника'               => NS_USER_TALK,
+       'Обсуждение_{{GRAMMAR:genitive|$1}}' => NS_PROJECT_TALK,
+       'Обсуждение_файла'                   => NS_FILE_TALK,
+       'Обсуждение_MediaWiki'               => NS_MEDIAWIKI_TALK,
+       'Обсуждение_шаблона'                 => NS_TEMPLATE_TALK,
+       'Справка'                            => NS_HELP,
+       'Обсуждение_справки'                 => NS_HELP_TALK,
+       'Категория'                          => NS_CATEGORY,
+       'Обсуждение_категории'               => NS_CATEGORY_TALK,
+);
+
+// Remove Russian gender aliases
+$namespaceGenderAliases = array();
+
+$specialPageAliases = array(
+       'Activeusers'               => array( 'Эдэбхитэй_хэрэглэгшэд' ),
+       'Allmessages'               => array( 'Бүхы_зурбас' ),
+       'Allpages'                  => array( 'Соохи_бүхы_хуудаһан' ),
+       'Ancientpages'              => array( 'Хуушарһан_хуудаһан' ),
+       'Categories'                => array( 'Категоринууд' ),
+       'ComparePages'              => array( 'Хуудаһа_харисуулха' ),
+       'Confirmemail'              => array( 'Сахим_хаяг_баталха' ),
+       'CreateAccount'             => array( 'Данса_үүсхэхэ' ),
+       'Mypage'                    => array( 'Минии_хуудаһан' ),
+       'Mytalk'                    => array( 'Минии_хэлэлсэл' ),
+       'Myuploads'                 => array( 'Минии_ашаалһан_зүйл' ),
+       'Newpages'                  => array( 'Шэнэ_хуудаһан' ),
+       'Popularpages'              => array( 'Оло_уншагдаһан_хуудаһан' ),
+       'Protectedpages'            => array( 'Хамгаалалтатай_хуудаһан' ),
+       'Protectedtitles'           => array( 'Хамгаалалтатай_гаршаг' ),
+       'Recentchanges'             => array( 'Сайтдахи_хубилалтанууд' ),
+       'Upload'                    => array( 'Ашаалха' ),
+       'Userlogin'                 => array( 'Нэбтэрхэ' ),
+       'Userlogout'                => array( 'Гараха' ),
+);
+
index 80c46ea..78f4e77 100644 (file)
@@ -24,6 +24,7 @@
  * @author Marcmpujol
  * @author Martorell
  * @author McDutchie
+ * @author Nemo bis
  * @author Pasqual (ca)
  * @author Paucabot
  * @author PerroVerd
@@ -31,6 +32,7 @@
  * @author Pitort
  * @author Pérez
  * @author Qllach
+ * @author QuimGil
  * @author SMP
  * @author Smeira
  * @author Solde
@@ -441,13 +443,12 @@ $1",
 'disclaimers' => 'Avís general',
 'disclaimerpage' => 'Project:Avís general',
 'edithelp' => 'Ajuda',
-'edithelppage' => "Help:Com s'edita una pàgina",
-'helppage' => 'Viquipèdia:Ajuda',
+'helppage' => 'Help:Índex',
 'mainpage' => 'Pàgina principal',
 'mainpage-description' => 'Pàgina principal',
 'policy-url' => 'Project:Polítiques',
-'portal' => 'Portal comunitari',
-'portal-url' => 'Project:Portal',
+'portal' => 'Portal de la comunitat',
+'portal-url' => 'Project:Portal de la comunitat',
 'privacy' => 'Política de privadesa',
 'privacypage' => 'Project:Política de privadesa',
 
@@ -610,7 +611,7 @@ Tingueu en compte que algunes pàgines poden continuar mostrant-se com si encara
 'welcomecreation-msg' => 'El vostre compte ha estat creat.
 No oblideu de canviar les vostres [[Special:Preferences|preferències de {{SITENAME}}]].',
 'yourname' => "Nom d'usuari",
-'userlogin-yourname' => "Nom d'usuari",
+'userlogin-yourname' => 'Usuari',
 'userlogin-yourname-ph' => "Introduïu el vostre nom d'usuari",
 'yourpassword' => 'Contrasenya',
 'userlogin-yourpassword' => 'Contrasenya',
@@ -620,8 +621,8 @@ No oblideu de canviar les vostres [[Special:Preferences|preferències de {{SITEN
 'createacct-yourpasswordagain' => 'Confirmeu la contrasenya',
 'createacct-yourpasswordagain-ph' => 'Introduïu de nou la contrasenya',
 'remembermypassword' => 'Recorda la contrasenya entre sessions (per un màxim de $1 {{PLURAL:$1|dia|dies}})',
-'userlogin-remembermypassword' => "Recorda'm",
-'userlogin-signwithsecure' => 'Inicia la sessió amb un servidor segur',
+'userlogin-remembermypassword' => 'Mantén-me connectat',
+'userlogin-signwithsecure' => 'Connexió segura',
 'securelogin-stick-https' => "Roman connectat via HTTPS desprès d'autenticar-se",
 'yourdomainname' => 'El vostre domini',
 'password-change-forbidden' => 'No podeu canviar les contrasenyes en aquest wiki.',
@@ -642,22 +643,25 @@ No oblideu de canviar les vostres [[Special:Preferences|preferències de {{SITEN
 'gotaccount' => 'Ja teniu un compte? $1.',
 'gotaccountlink' => 'Inicia una sessió',
 'userlogin-resetlink' => "Heu oblidat les vostres dades d'accés?",
+'userlogin-resetpassword-link' => 'Reinicia la contrasenya',
 'helplogin-url' => 'Help:Registrar-se',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Ajuda per registrar-se]]',
-'createacct-join' => 'Introduïu les dades a continuació.',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Ajuda]]',
+'createacct-join' => 'Introduïu les vostres dades.',
 'createacct-emailrequired' => 'Adreça de correu electrònic',
 'createacct-emailoptional' => 'Adreça de correu electrònic (opcional)',
 'createacct-email-ph' => 'Introduïu la vostra adreça de correu electrònic',
-'createaccountmail' => "Utilitza una contrasenya aleatòria temporal i envia-la a l'adreça de correu electrònic especificat a continuació",
+'createaccountmail' => "Utilitza una contrasenya aleatòria temporal i envia-la a l'adreça de correu  especificada a continuació.",
 'createacct-realname' => 'Nom real (opcional)',
 'createaccountreason' => 'Motiu:',
 'createacct-reason' => 'Motiu',
+'createacct-reason-ph' => 'Per què creeu un altre compte',
 'createacct-captcha' => 'Control de seguretat',
 'createacct-imgcaptcha-ph' => 'Introduïu el text que apareix a dalt',
+'createacct-submit' => 'Crea el meu compte',
 'createacct-benefit-heading' => '{{SITENAME}} és feta per gent com tu.',
-'createacct-benefit-body1' => 'edicions',
-'createacct-benefit-body2' => 'pàgines',
-'createacct-benefit-body3' => 'col·laboradors aquest mes',
+'createacct-benefit-body1' => '{{PLURAL:$1|edició|edicions}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|pàgina|pàgines}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|col·laborador recent|col·laboradors recents}}',
 'badretype' => 'Les contrasenyes que heu introduït no coincideixen.',
 'userexists' => 'El nom que heu entrat ja és en ús.
 Escolliu-ne un de diferent.',
@@ -709,7 +713,7 @@ Introduïu una adreça amb un format adequat o bé buideu el camp.",
 'cannotchangeemail' => 'No podeu canviar adreces de correu electrònic en aquest wiki.',
 'emaildisabled' => 'El lloc no pot enviar correus electrònics.',
 'accountcreated' => "S'ha creat el compte",
-'accountcreatedtext' => "S'ha creat el compte d'usuari de $1.",
+'accountcreatedtext' => "S'ha creat el compte d'usuari de [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|discussió]]).",
 'createaccount-title' => "Creació d'un compte a {{SITENAME}}",
 'createaccount-text' => "Algú ha creat un compte d'usuari anomenat $2 al projecte {{SITENAME}}
 ($4) amb la vostra adreça de correu electrònic. La contrasenya per a l'usuari «$2» és «$3». Hauríeu d'accedir al compte i canviar-vos aquesta contrasenya quan abans millor.
@@ -744,14 +748,13 @@ Si us plau, esperi abans de tornar-ho a intentar.",
 'resetpass-wrong-oldpass' => 'Contrasenya actual o temporal no vàlida.
 Deveu haver canviat la vostra contrasenya o demanat una nova contrasenya temporal.',
 'resetpass-temp-password' => 'Contrasenya temporal:',
+'resetpass-abort-generic' => 'Una extensió ha interromput el canvi de contrasenya.',
 
 # Special:PasswordReset
 'passwordreset' => 'Restablir contrasenya',
-'passwordreset-text' => 'Completeu el següent formulari per reinicialitzar la vostra contrasenya',
 'passwordreset-legend' => 'Restablir contrasenya',
 'passwordreset-disabled' => "S'ha desactivat el restabliment de contranyes en aquest wiki.",
 'passwordreset-emaildisabled' => 'Les opcions de correu electrònic no estan habilitades en aquest wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Introduïu un dels elements de dades següents}}',
 'passwordreset-username' => "Nom d'usuari:",
 'passwordreset-domain' => 'Domini',
 'passwordreset-capture' => 'Veure el missatge de correu electrònic?',
@@ -982,6 +985,7 @@ No s'ha donat cap explicació.",
 Sembla haver estat esborrada.",
 'edit-conflict' => "Conflicte d'edició.",
 'edit-no-change' => 'La vostra modificació ha estat ignorada perquè no feia cap canvi al text.',
+'postedit-confirmation' => 'La modificació ha estat desada.',
 'edit-already-exists' => "No s'ha pogut crear una pàgina.
 Ja existeix.",
 'defaultmessagetext' => 'Missatge per defecte',
@@ -989,7 +993,7 @@ Ja existeix.",
 'invalid-content-data' => 'Dades de contingut no vàlides',
 'content-not-allowed-here' => 'No és permés el contingut "$1" a la pàgina [[$2]]',
 'editwarning-warning' => "Si sortiu d'aquesta pàgina perdreu tots els canvis que hàgiu fet.
-Si teniu un compte d'usuari, podeu eliminar aquest avís a la secció «{{int:prefs-editing}}» de les vostres preferències.",
+Si teniu un compte d'usuari, podeu eliminar aquest avís a la secció «Caixa d'edició» de les vostres preferències.",
 
 # Content models
 'content-model-wikitext' => 'wikitext',
@@ -1230,7 +1234,6 @@ Es pot trobar més informació en el [{{fullurl:{{#Special:Log}}/delete|page={{F
 'searchmenu-legend' => 'Opcions de cerca',
 'searchmenu-exists' => "'''Hi ha una pàgina anomenada «[[:$1]]» en aquest wiki'''",
 'searchmenu-new' => "'''Creeu la pàgina «[[:$1]]» en aquest wiki!'''",
-'searchhelp-url' => 'Help:Ajuda',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Mostra pàgines amb aquest prefix]]',
 'searchprofile-articles' => 'Pàgines de contingut',
 'searchprofile-project' => "Pàgines d'ajuda i de projecte",
@@ -1305,7 +1308,6 @@ Es pot trobar més informació en el [{{fullurl:{{#Special:Log}}/delete|page={{F
 'resetprefs' => 'Esborra els canvis no guardats',
 'restoreprefs' => 'Restaura les preferències per defecte',
 'prefs-editing' => "Caixa d'edició",
-'prefs-edit-boxsize' => "Mida de la finestra d'edició.",
 'rows' => 'Files',
 'columns' => 'Columnes',
 'searchresultshead' => 'Preferències de la cerca',
@@ -1316,9 +1318,6 @@ Es pot trobar més informació en el [{{fullurl:{{#Special:Log}}/delete|page={{F
 'recentchangesdays-max' => '(màxim $1 {{PLURAL:$1|dia|dies}})',
 'recentchangescount' => "Nombre d'edicions a mostrar per defecte:",
 'prefs-help-recentchangescount' => 'Inclou els canvis recents, els historials de pàgines i els registres.',
-'prefs-help-watchlist-token' => 'Si ompliu aquest camp amb una clau secreta es generarà un fil RSS per a la vostra llista de seguiment.
-Aquell qui conegui aquesta clau serà capaç de llegir la vostra llista de seguiment, per tant esculliu un valor segur.
-A continuació es mostra un valor generat de forma aleatòria que podeu fer servir: $1',
 'savedprefs' => "S'han desat les vostres preferències",
 'timezonelegend' => 'Fus horari:',
 'localtime' => 'Hora local:',
@@ -1349,7 +1348,6 @@ A continuació es mostra un valor generat de forma aleatòria que podeu fer serv
 'prefs-reset-intro' => 'Podeu usar aquesta pàgina per a restablir les vostres preferències als valors per defecte.
 No es podrà desfer el canvi.',
 'prefs-emailconfirm-label' => 'Confirmació de correu electrònic:',
-'prefs-textboxsize' => "Mida de la caixa d'edició",
 'youremail' => 'Correu electrònic:',
 'username' => "{{GENDER:$1|Nom d'usuari}}:",
 'uid' => "{{GENDER:$1|Usuari}} Identificador d'usuari:",
@@ -1551,6 +1549,7 @@ Ha de tenir com a molt {{PLURAL:$1|un caràcter|$1 caràcters}}.',
 'recentchanges' => 'Canvis recents',
 'recentchanges-legend' => 'Opcions de canvis recents',
 'recentchanges-summary' => 'Seguiu els canvis recents del projecte {{SITENAME}} en aquesta pàgina.',
+'recentchanges-noresult' => 'Cap canvi corresponent a aquests criteris en el període indicat.',
 'recentchanges-feed-description' => 'Segueix en aquest canal els canvis més recents del wiki.',
 'recentchanges-label-newpage' => 'Aquesta modificació inicià una pàgina',
 'recentchanges-label-minor' => 'Aquesta és una modificació menor',
@@ -1587,7 +1586,6 @@ Ha de tenir com a molt {{PLURAL:$1|un caràcter|$1 caràcters}}.',
 'recentchangeslinked-feed' => 'Canvis relacionats',
 'recentchangeslinked-toolbox' => "Seguiment d'enllaços",
 'recentchangeslinked-title' => 'Canvis relacionats amb «$1»',
-'recentchangeslinked-noresult' => 'No ha hagut cap canvi a les pàgines enllaçades durant el període de temps.',
 'recentchangeslinked-summary' => "A continuació trobareu una llista dels canvis recents a les pàgines enllaçades des de la pàgina donada (o entre els membres d'una categoria especificada).
 Les pàgines de la vostra [[Special:Watchlist|llista de seguiment]] apareixen en '''negreta'''.",
 'recentchangeslinked-page' => 'Nom de la pàgina:',
@@ -1599,8 +1597,7 @@ Les pàgines de la vostra [[Special:Watchlist|llista de seguiment]] apareixen en
 'reuploaddesc' => 'Torna al formulari per apujar.',
 'upload-tryagain' => 'Envia la descripció del fitxer modificat',
 'uploadnologin' => 'No heu iniciat una sessió',
-'uploadnologintext' => "Heu d'[[Special:UserLogin|iniciar una sessió]]
-per a penjar-hi fitxers.",
+'uploadnologintext' => 'Heu de $1 per a penjar-hi fitxers.',
 'upload_directory_missing' => "No s'ha trobat el directori de càrrega ($1) i tampoc no ha pogut ser creat pel servidor web.",
 'upload_directory_read_only' => 'El servidor web no pot escriure al directori de càrrega ($1)',
 'uploaderror' => "S'ha produït un error en l'intent de carregar",
@@ -2130,7 +2127,7 @@ Es necessita com a mínim un domini de primer nivell, per exemple "*.org".<br />
 # Special:ActiveUsers
 'activeusers' => "Llista d'usuaris actius",
 'activeusers-intro' => "Aquí hi ha una llista d'usuaris que han tingut algun tipus d'activitat en {{PLURAL:$1|el darrer dia|els darrers $1 dies}}.",
-'activeusers-count' => '$1 {{PLURAL:$1|modificació|modificacions}} en {{PLURAL:$3|el darrer dia|els $3 darrers dies}}',
+'activeusers-count' => '$1 {{PLURAL:$1|acció|accions}} en {{PLURAL:$3|el darrer dia|els $3 darrers dies}}',
 'activeusers-from' => 'Mostra els usuaris començant per:',
 'activeusers-hidebots' => 'Amaga bots',
 'activeusers-hidesysops' => 'Amaga administradors',
@@ -2212,10 +2209,9 @@ S\'hi mostraran els canvis futurs que tinguin lloc en aquesta pàgina i la corre
 'unwatchthispage' => 'Desatén',
 'notanarticle' => 'No és una pàgina amb contingut',
 'notvisiblerev' => 'La versió ha estat esborrada',
-'watchnochange' => "No s'ha editat cap dels elements que vigileu en el període de temps que es mostra.",
 'watchlist-details' => 'Teniu $1 {{PLURAL:$1|pàgina vigilada|pàgines vigilades}}, sense comptar les pàgines de discussió.',
-'wlheader-enotif' => "S'ha habilitat la notificació per correu electrònic.",
-'wlheader-showupdated' => "Les pàgines que s'han canviat des de la vostra darrera visita es mostren '''en negreta'''",
+'wlheader-enotif' => 'La notificació per correu electrònic està habilitada.',
+'wlheader-showupdated' => "Les pàgines que s'han canviat des de la vostra darrera visita es mostren en '''negreta'''.",
 'watchmethod-recent' => "s'està comprovant si hi ha pàgines vigilades en les edicions recents",
 'watchmethod-list' => "s'està comprovant si hi ha edicions recents en les pàgines vigilades",
 'watchlistcontains' => 'La vostra llista de seguiment conté {{PLURAL:$1|una única pàgina|$1 pàgines}}.',
@@ -2320,7 +2316,7 @@ de l'usuari [[User:$2|$2]] ([[User talk:$2|Discussió]]{{int:pipe-separator}}[[S
 
 La darrera modificació ha estat feta per l'usuari [[User:$3|$3]] ([[User talk:$3|Discussió]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
 'editcomment' => "El resum d'edició ha estat: «$1».",
-'revertpage' => "Revertides les edicions de [[Special:Contributions/$2|$2]] ([[User talk:$2|discussió]]). S'ha recuperat la darrera versió de l'usuari [[User:$1|$1]]",
+'revertpage' => "Revertides les edicions de [[Special:Contributions/$2|$2]] ([[User talk:$2|discussió]]) a l'última versió de [[User:$1|$1]]",
 'revertpage-nouser' => "Desfetes les edicions de (nom d'usuari eliminat) a l'última revisió feta per [[User:$1|$1]]",
 'rollback-success' => "Edicions revertides de $1; s'ha canviat a la darrera versió de $2.",
 
@@ -2878,10 +2874,10 @@ Deseu-lo al vostre ordinador i carregueu-ne una còpia ací.",
 'tooltip-pt-preferences' => 'Les vostres preferències.',
 'tooltip-pt-watchlist' => 'La llista de pàgines de les que estau vigilant els canvis.',
 'tooltip-pt-mycontris' => 'Llista de les vostres contribucions.',
-'tooltip-pt-login' => 'Us animem a registrar-vos, però no és obligatori.',
+'tooltip-pt-login' => 'Us animem a registrar-vos, però no és obligatori',
 'tooltip-pt-anonlogin' => 'Us animem a registrar-vos, però no és obligatori.',
 'tooltip-pt-logout' => "Finalitza la sessió d'usuari",
-'tooltip-ca-talk' => "Discussió sobre el contingut d'aquesta pàgina.",
+'tooltip-ca-talk' => "Discussió sobre el contingut d'aquesta pàgina",
 'tooltip-ca-edit' => 'Podeu modificar aquesta pàgina. Si us plau, previsualitzeu-la abans de desar.',
 'tooltip-ca-addsection' => 'Comença una nova secció',
 'tooltip-ca-viewsource' => 'Aquesta pàgina està protegida. Podeu veure el seu codi font.',
@@ -2895,16 +2891,16 @@ Deseu-lo al vostre ordinador i carregueu-ne una còpia ací.",
 'tooltip-ca-unwatch' => 'Suprimiu aquesta pàgina de la vostra llista de seguiment',
 'tooltip-search' => 'Cerca a {{SITENAME}}',
 'tooltip-search-go' => 'Vés a una pàgina amb aquest nom exacte si existeix',
-'tooltip-search-fulltext' => 'Cerca a les pàgines aquest text',
-'tooltip-p-logo' => 'Pàgina principal',
+'tooltip-search-fulltext' => 'Cerca aquest text a les pàgines',
+'tooltip-p-logo' => 'Visiteu la pàgina principal',
 'tooltip-n-mainpage' => 'Visiteu la pàgina principal.',
 'tooltip-n-mainpage-description' => 'Vegeu la pàgina principal',
-'tooltip-n-portal' => 'Sobre el projecte, què podeu fer, on podeu trobar coses.',
+'tooltip-n-portal' => 'Sobre el projecte, què podeu fer, on podeu trobar coses',
 'tooltip-n-currentevents' => "Per trobar informació general sobre l'actualitat.",
-'tooltip-n-recentchanges' => 'La llista de canvis recents a la wiki.',
-'tooltip-n-randompage' => 'Vés a una pàgina aleatòria.',
-'tooltip-n-help' => 'El lloc per esbrinar.',
-'tooltip-t-whatlinkshere' => 'Llista de totes les pàgines viqui que enllacen ací.',
+'tooltip-n-recentchanges' => 'Llista de canvis recents al wiki',
+'tooltip-n-randompage' => "Pàgina a l'atzar",
+'tooltip-n-help' => 'El lloc per saber més coses',
+'tooltip-t-whatlinkshere' => 'Llista de totes les pàgines wiki que enllacen aquí',
 'tooltip-t-recentchangeslinked' => 'Canvis recents a pàgines que enllacen amb aquesta pàgina.',
 'tooltip-feed-rss' => "Canal RSS d'aquesta pàgina",
 'tooltip-feed-atom' => "Canal Atom d'aquesta pàgina",
@@ -3711,7 +3707,6 @@ També podeu [[Special:EditWatchlist|utilitzar l'editor estàndard]].",
 'version-other' => 'Altres',
 'version-mediahandlers' => 'Connectors multimèdia',
 'version-hooks' => 'Lligams',
-'version-extension-functions' => "Funcions d'extensió",
 'version-parser-extensiontags' => "Etiquetes d'extensió de l'analitzador",
 'version-parser-function-hooks' => "Lligams funcionals de l'analitzador",
 'version-hook-name' => 'Nom del lligam',
@@ -3832,15 +3827,15 @@ Amb aquest programa heu d'haver rebut [{{SERVER}}{{SCRIPTPATH}}/COPYING una còp
 # New logging system
 'logentry-delete-delete' => '$1 ha esborrat $3',
 'logentry-delete-restore' => '$1 ha restaurat $3',
-'logentry-delete-event' => "$1 ha canviat la visibilitat {{PLURAL:$5|d'un esdeveniment al registre|de $5 esdeveniments al registre}} de $3: $4",
-'logentry-delete-revision' => "$1 ha canviat la visibilitat {{PLURAL:$5|d'una revisió|de $5 revisions}} a la pàgina $3: $4",
-'logentry-delete-event-legacy' => "$1 ha canviat la visibilitat d'esdeveniments al registre de $3",
-'logentry-delete-revision-legacy' => '$1 ha canviat la visibilitat de revisions a la pàgina $3',
+'logentry-delete-event' => "$1 {{GENDER:$2|ha canviat}} la visibilitat {{PLURAL:$5|d'un esdeveniment al registre|de $5 esdeveniments al registre}} de $3: $4",
+'logentry-delete-revision' => "$1 {{GENDER:$2|ha canviat}} la visibilitat {{PLURAL:$5|d'una revisió|de $5 revisions}} a la pàgina $3: $4",
+'logentry-delete-event-legacy' => "$1 {{GENDER:$2|ha canviat}} la visibilitat d'esdeveniments al registre de $3",
+'logentry-delete-revision-legacy' => '$1 {{GENDER:$2|ha canviat}} la visibilitat de revisions a la pàgina $3',
 'logentry-suppress-delete' => '$1 {{GENDER:$2|ha suprimit}} la pàgina $3',
-'logentry-suppress-event' => "$1 secretament ha canviat la visibilitat {{PLURAL:$5|d'un esdeveniment al registre|de $5 esdeveniments al registre}} de $3: $4",
-'logentry-suppress-revision' => "$1 secretament ha canviat la visibilitat {{PLURAL:$5|d'una revisió|de $5 revisions}} a la pàgina $3: $4",
-'logentry-suppress-event-legacy' => "$1 secretament ha canviat la visibilitat d'esdeveniments al registre de $3",
-'logentry-suppress-revision-legacy' => '$1 secretament ha canviat la visibilitat de revisions a la pàgina $3',
+'logentry-suppress-event' => "$1 secretament {{GENDER:$2|ha canviat}} la visibilitat {{PLURAL:$5|d'un esdeveniment al registre|de $5 esdeveniments al registre}} de $3: $4",
+'logentry-suppress-revision' => "$1 secretament {{GENDER:$2|ha canviat}} la visibilitat {{PLURAL:$5|d'una revisió|de $5 revisions}} a la pàgina $3: $4",
+'logentry-suppress-event-legacy' => "$1 secretament {{GENDER:$2|ha canviat}} la visibilitat d'esdeveniments al registre de $3",
+'logentry-suppress-revision-legacy' => '$1 secretament {{GENDER:$2|ha canviat}} la visibilitat de revisions a la pàgina $3',
 'revdelete-content-hid' => 'ha ocultat contingut',
 'revdelete-summary-hid' => "ha ocultat el resum d'edició",
 'revdelete-uname-hid' => "ha ocultat el nom d'usuari",
@@ -3852,9 +3847,9 @@ Amb aquest programa heu d'haver rebut [{{SERVER}}{{SCRIPTPATH}}/COPYING una còp
 'logentry-move-move' => '$1 ha mogut $3 a $4',
 'logentry-move-move-noredirect' => '$1 ha mogut $3 a $4 sense deixar una redirecció',
 'logentry-move-move_redir' => '$1 ha mogut $3 a $4 sobre una redirecció',
-'logentry-move-move_redir-noredirect' => '$1 ha desplaçat la pàgina $3 a $4 on hi havia una redirecció i sense crear una nova redirecció',
-'logentry-patrol-patrol' => '1 $ va marcar la revisió $ 4 de "$ 3" com a supervisada',
-'logentry-patrol-patrol-auto' => '$1 ha marcat automàticament la versió $4 de la pàgina $3 com a patrullada',
+'logentry-move-move_redir-noredirect' => '$1 {{GENDER:$2|ha desplaçat}} la pàgina $3 a $4 on hi havia una redirecció i sense crear una nova redirecció',
+'logentry-patrol-patrol' => '$1 {{GENDER:$2|ha marcat}} la revisió $4 de la pàgina «$3» com a patrullada',
+'logentry-patrol-patrol-auto' => '$1 {{GENDER:$2|ha marcat}} automàticament la versió $4 de la pàgina $3 com a patrullada',
 'logentry-newusers-newusers' => "El compte d'usuari $1 {{GENDER:$2|ha estat creat}}",
 'logentry-newusers-create' => "El compte d'usuari $1 {{GENDER:$2|ha estat creat}}",
 'logentry-newusers-create2' => "El compte d'usuari $3 {{GENDER:$2|ha estat creat}} per $1",
@@ -3938,4 +3933,7 @@ Altrament, podeu fer servir un senzill formulari a continuació. El vostre comen
 'duration-centuries' => '$1 {{PLURAL:$1|segle|segles}}',
 'duration-millennia' => '$1 {{PLURAL:$1|mil·leni|mil·lenis}}',
 
+# Image rotation
+'rotate-comment' => 'Imatge girada $1 {{PLURAL:$1|grau|graus}} en el sentit de les agulles del rellotge',
+
 );
index f3dc6a5..d1538e4 100644 (file)
@@ -8,6 +8,7 @@
  * @file
  *
  * @author Xqt
+ * @author Yejianfei
  */
 
 $datePreferences = array(
@@ -23,872 +24,1326 @@ $dateFormats = array(
 
 $messages = array(
 # User preference toggles
-'tog-rememberpassword' => 'Giéu cī gá diêng-nō̤ gé diâng nguāi gì dióng-hô̤ gâe̤ng mĭk-mā (for a maximum of $1 {{PLURAL:$1|day|days}})',
-'tog-watchcreations' => 'Gă-tiĕng nguāi kŭi gì hiĕk-miêng gáu nguāi gì gáng-sê-dăng',
-'tog-watchdefault' => 'Gă-tiĕng nguāi siŭ-gāi gì hiĕk-miêng gáu nguāi gì gáng-sê-dăng',
-'tog-watchmoves' => 'Gă-tiĕng nguāi iè-dông gì hiĕk-miêng gáu nguāi gì gáng-sê-dăng',
-'tog-watchdeletion' => 'Gă-tiĕng nguāi chēng-dṳ̀ gì hiĕk-miêng gáu nguāi gì gáng-sê-dăng',
-'tog-fancysig' => 'Mò̤ cê̤ṳ-dông lièng-giék gì chiĕng-miàng',
-'tog-watchlisthideown' => 'Káung kī gáng-sê-dăng gà̤-dēng nguāi cê-gă gì siŭ-gāi',
-'tog-watchlisthidebots' => 'Káung kī gáng-sê-dăng gà̤-dēng gì gĭ-ké-nè̤ng siŭ-gāi',
-'tog-watchlisthideminor' => 'Káung kī gáng-sê-dăng gà̤-dēng gì guó-éu siŭ-gāi',
-'tog-ccmeonemails' => 'Gié bĕk-nè̤ng diêng-piĕ sèng-âu iâ hók-cié siŏh hông gié ké̤ṳk nguāi cê-gă',
+'tog-underline' => '下劃綫鏈接',
+'tog-justify' => '調蜀調幾段',
+'tog-hideminor' => '藏起最近改變其過要修改',
+'tog-hidepatrolled' => '藏起最近改變其巡邏修改',
+'tog-numberheadings' => '自動編號其標題',
+'tog-editondblclick' => '雙擊就修改頁面(需要JavaScript其支持)',
+'tog-rememberpassword' => '共我其躒底記錄記敆茲萆瀏覽器𡅏(最長$1{{PLURAL:$1|日}})',
+'tog-watchcreations' => '加添我開其頁面共我上傳其文件遘我其監視單',
+'tog-watchdefault' => '添加我編輯其頁面共文件遘我其監視單',
+'tog-watchmoves' => '添加我移動其頁面共文件遘我其監視單',
+'tog-watchdeletion' => '添加我刪掉其頁面共文件遘我其監視單',
+'tog-minordefault' => '默認共所有其編輯都當作過要修改',
+'tog-previewontop' => '敆編輯框以前顯示預覽',
+'tog-previewonfirst' => '敆頭蜀回編輯時候看預覽',
+'tog-nocache' => '無讓瀏覽器頁面緩存',
+'tog-enotifwatchlistpages' => '我其監視單有變時候,發電子郵件乞我',
+'tog-enotifusertalkpages' => '我其討論頁有變時候,發電子郵件乞我',
+'tog-enotifminoredits' => '即使是過要編輯,也著發電子郵件乞我',
+'tog-shownumberswatching' => '顯示監視用戶其數量',
+'tog-oldsig' => '存在其簽名',
+'tog-fancysig' => '共簽名當成維基文本(無自動鏈接)',
+'tog-showjumplinks' => '允許「跳遘」可訪問其鏈接',
+'tog-uselivepreview' => '使即時預覽(需要JavaScript)(敆𡅏實驗)',
+'tog-forceeditsummary' => '提醒我行遘蜀萆空白其編輯總結',
+'tog-watchlisthideown' => '趁監視單𡅏藏起我其修改',
+'tog-watchlisthidebots' => '藏起監視單其機器人其修改',
+'tog-watchlisthideminor' => '藏起監視單其過要修改',
+'tog-watchlisthideliu' => '共已經躒底其用戶其編輯趁監視單𡅏藏起咯',
+'tog-watchlisthideanons' => '共匿名其用戶其編輯趁監視單𡅏藏起咯',
+'tog-watchlisthidepatrolled' => '共巡查其編輯趁監視單𡅏藏起咯',
+'tog-ccmeonemails' => '共我發乞其他用戶其電子郵件其備份發乞我。',
+'tog-diffonly' => '伓使敆下底其顯示𣍐蜀様其地方顯示頁面內容',
+'tog-showhiddencats' => '㪗藏類別',
+'tog-norollbackdiff' => '敆回滾其時候,無叕𣍐蜀様其地方',
+'tog-useeditwarning' => '我編輯頁面其時候離開,起動警告我蜀下',
+
+'underline-always' => '直頭',
+'underline-never' => '頭𡅏無',
+'underline-default' => '皮膚或者瀏覽器默認其',
+
+# Font style option in Special:Preferences
+'editfont-style' => '編輯框其字體其樣式',
+'editfont-default' => '瀏覽器默認',
+'editfont-monospace' => '蜀様寬其字體',
+'editfont-sansserif' => '無襯線其字體',
+'editfont-serif' => '有襯線其字體',
 
 # Dates
-'sunday' => 'Lā̤-buái',
-'monday' => 'Buái ék',
-'tuesday' => 'Buái nê',
-'wednesday' => 'Buái săng',
-'thursday' => 'Buái sé',
-'friday' => 'Buái ngô',
-'saturday' => 'Buái lĕ̤k',
-'sun' => 'LB',
-'mon' => 'B1',
-'tue' => 'B2',
-'wed' => 'B3',
-'thu' => 'B4',
-'fri' => 'B5',
-'sat' => 'B6',
-'january' => 'Ék nguŏk',
-'february' => 'Nê nguŏk',
-'march' => 'Săng nguŏk',
-'april' => 'Sé nguŏk',
-'may_long' => 'Ngô nguŏk',
-'june' => 'Lĕ̤k nguŏk',
-'july' => 'Chék nguŏk',
-'august' => 'Báik nguŏk',
-'september' => 'Gāu nguŏk',
-'october' => 'Sĕk nguŏk',
-'november' => 'Sĕk-ék nguŏk',
-'december' => 'Sĕk-nê nguŏk',
-'january-gen' => 'Ék nguŏk',
-'february-gen' => 'Nê nguŏk',
-'march-gen' => 'Săng nguŏk',
-'april-gen' => 'Sé nguŏk',
-'may-gen' => 'Ngô nguŏk',
-'june-gen' => 'Lĕ̤k nguŏk',
-'july-gen' => 'Chék nguŏk',
-'august-gen' => 'Báik nguŏk',
-'september-gen' => 'Gāu nguŏk',
-'october-gen' => 'Sĕk nguŏk',
-'november-gen' => 'Sĕk-ék nguŏk',
-'december-gen' => 'Sĕk-nê nguŏk',
-'jan' => '1ng',
-'feb' => '2ng',
-'mar' => '3ng',
-'apr' => '4ng',
-'may' => '5ng',
-'jun' => '6ng',
-'jul' => '7ng',
-'aug' => '8ng',
-'sep' => '9ng',
-'oct' => '10ng',
-'nov' => '11ng',
-'dec' => '12ng',
+'sunday' => '禮拜',
+'monday' => '拜一',
+'tuesday' => '拜二',
+'wednesday' => '拜三',
+'thursday' => '拜四',
+'friday' => '拜五',
+'saturday' => '拜六',
+'sun' => '禮拜',
+'mon' => '拜一',
+'tue' => '拜二',
+'wed' => '拜三',
+'thu' => '拜四',
+'fri' => '拜五',
+'sat' => '拜六',
+'january' => '一月',
+'february' => '二月',
+'march' => '三月',
+'april' => '四月',
+'may_long' => '五月',
+'june' => '六月',
+'july' => '七月',
+'august' => '八月',
+'september' => '九月',
+'october' => '十月',
+'november' => '十一月',
+'december' => '十二月',
+'january-gen' => '一月',
+'february-gen' => '二月',
+'march-gen' => '三月',
+'april-gen' => '四月',
+'may-gen' => '五月',
+'june-gen' => '六月',
+'july-gen' => '七月',
+'august-gen' => '八月',
+'september-gen' => '九月',
+'october-gen' => '十月',
+'november-gen' => '十一月',
+'december-gen' => '十二月',
+'jan' => '一月',
+'feb' => '二月',
+'mar' => '三月',
+'apr' => '四月',
+'may' => '五月',
+'jun' => '六月',
+'jul' => '七月',
+'aug' => '八月',
+'sep' => '九月',
+'oct' => '十月',
+'nov' => '十一月',
+'dec' => '十二月',
+'january-date' => '一月$1號',
+'february-date' => '二月$1號',
+'march-date' => '三月$1號',
+'april-date' => '四月$1號',
+'may-date' => '五月$1號',
+'june-date' => '六月$1號',
+'july-date' => '七月$1號',
+'august-date' => '八月$1號',
+'september-date' => '九月$1號',
+'october-date' => '十月$1號',
+'november-date' => '十一月$1號',
+'december-date' => '十二月$1號',
 
 # Categories related messages
-'pagecategories' => '{{PLURAL:$1|Lôi-biék|Lôi-biék}}',
-'category_header' => '"$1" lôi-biék â-dā̤ gì ùng-ciŏng',
-'subcategories' => 'Cṳ̄-lôi-biék',
-'category-empty' => "''Ciā lôi-biék â-dā̤ hiêng-câi mò̤ ùng-ciŏng iâ mò̤ muòi-tā̤ ùng-giông.''",
-'listingcontinuesabbrev' => '(gié-sṳ̆k sèng-dāu)',
-
-'about' => 'Guăng-ṳ̀',
-'article' => 'Ùng-ciŏng',
-'newwindow' => '(găk sĭng chŏng-tā̤ tāu kŭi)',
-'cancel' => 'Chṳ̄-siĕu',
-'moredotdotdot' => 'Gáing sâ̤...',
-'mypage' => 'Nguāi gì hiĕk-miêng',
-'mytalk' => 'Nguāi gì tō̤-lâung',
-'anontalk' => 'Cī ciáh IP gì tō̤-lâung-hiĕk',
-'navigation' => 'Īng-dô̤',
-'and' => '&#32;gâe̤ng',
+'pagecategories' => '{{PLURAL:$1}}類別',
+'category_header' => '「$1」類別下底其頁面',
+'subcategories' => '子類別',
+'category-media-header' => '「$1」類別下底其媒體',
+'category-empty' => "''茲類別下底現在無文章也無媒體。''",
+'hidden-categories' => '{{PLURAL:$1}}乞藏起其類別',
+'hidden-category-category' => '已經藏起其類別',
+'category-subcat-count-limited' => '茲蜀萆類別下底有子類別{{PLURAL:$1}}',
+'category-article-count' => '{{PLURAL:$2|茲蜀萆類別儷有下底蜀頁。|共總有$2頁,下底其茲$1頁敆茲蜀萆類別𡅏。}}',
+'category-article-count-limited' => '下底$1頁敆茲蜀萆類別𡅏{{PLURAL:$1}}',
+'category-file-count' => '茲蜀萆類別共總有$2萆文件,下底茲$1萆文件都敆茲蜀萆類別𡅏。',
+'category-file-count-limited' => '下底其茲$1萆文件都敆茲蜀萆類別𡅏。{{PLURAL:$1}}',
+'listingcontinuesabbrev' => '(繼續前斗)',
+'index-category' => '索引其頁面',
+'noindex-category' => '未索引其頁面',
+'broken-file-category' => '獃其文件鏈接其頁面',
+
+'about' => '關於',
+'article' => '文章',
+'newwindow' => '(敆新窗口打開)',
+'cancel' => '取消',
+'moredotdotdot' => '更価...',
+'morenotlisted' => '固有未列出其',
+'mypage' => '頁面',
+'mytalk' => '我其討論',
+'anontalk' => '茲隻IP其討論頁',
+'navigation' => '引導',
+'and' => '&#32;and',
 
 # Cologne Blue skin
-'qbspecialpages' => 'Dĕk-sṳ̀ hiĕk',
-
-'returnto' => 'Duōng kó̤ $1.',
-'tagline' => 'Lài-nguòng: {{SITENAME}}',
-'help' => 'Bŏng-cô',
-'search' => 'Sìng-tō̤',
-'searchbutton' => 'Tō̤',
-'go' => 'Kó̤',
-'searcharticle' => 'Kó̤',
-'history' => 'Hiĕk-miêng lĭk-sṳ̄',
-'history_short' => 'Lĭk-sṳ̄',
-'printableversion' => 'Kō̤ páh-éng bēng-buōng',
-'permalink' => 'Īng-giū lièng-giék',
-'print' => 'Páh-éng',
-'edit' => 'Siŭ-gāi',
-'editthispage' => 'Siŭ-gāi ciā hiĕk',
-'delete' => 'Chēng',
-'deletethispage' => 'Chēng ciā hiĕk',
-'protect' => 'Bō̤-hô',
-'unprotect' => 'ng-sāi bō̤-hô',
-'newpage' => 'Sĭng hiĕk',
-'talkpage' => 'Tō̤-lâung ciā hiĕk',
-'talkpagelinktext' => 'Tō̤-lâung',
-'specialpage' => 'Dĕk-sṳ̀ hiĕk',
-'talk' => 'Tō̤-lâung',
-'toolbox' => 'Gă-sĭ',
-'projectpage' => 'Káng gĕ̤ng-tiàng hiĕk',
-'mediawikipage' => 'Káng siĕu-sék hiĕk',
-'templatepage' => 'Káng muò-bēng hiĕk',
-'viewhelppage' => 'Káng bŏng-cô hiĕk',
-'categorypage' => 'Káng hŭng-lôi hiĕk',
-'viewtalkpage' => 'Káng tō̤-lâung',
-'otherlanguages' => 'Gì-tă gì ngṳ̄-ngiòng',
-'redirectedfrom' => '(Iù $1 dêng-hióng lì gì)',
-'redirectpagesub' => 'Dṳ̀ng-sĭng dêng-hióng hiĕk',
-'lastmodifiedat' => 'Ciā hiĕk-miêng sê diŏh $2, $1 có̤i-hâiu siŭ-gāi gì.',
-'protectedpage' => 'Bō̤-hô hiĕk',
-'jumpto' => 'Tiéu gáu:',
-'jumptonavigation' => 'īng-dô̤',
-'jumptosearch' => 'sìng-tō̤',
+'qbfind' => '討',
+'qbbrowse' => '覷蜀覷',
+'qbedit' => '修改',
+'qbpageoptions' => '茲蜀頁',
+'qbmyoptions' => '我其頁面',
+'qbspecialpages' => '特殊頁',
+'faq' => '經稠碰著其問題',
+'faqpage' => 'Project:經稠碰著其問題',
+
+# Vector skin
+'vector-action-addsection' => '加話題',
+'vector-action-delete' => '刪掉咯',
+'vector-action-move' => '移動',
+'vector-action-protect' => '保護',
+'vector-action-undelete' => '取消刪除',
+'vector-action-unprotect' => '改變保護',
+'vector-simplesearch-preference' => '允許簡化其搜索欄(儷有矢量皮膚才有)',
+'vector-view-create' => '創建',
+'vector-view-edit' => '修改',
+'vector-view-history' => '看歷史',
+'vector-view-view' => '讀',
+'vector-view-viewsource' => '看源代碼',
+'actions' => '動作',
+'namespaces' => '命名空間',
+'variants' => '變體',
+
+'navigation-heading' => '導航菜單',
+'errorpagetitle' => '鄭咯',
+'returnto' => '轉去$1。',
+'tagline' => '來源:{{SITENAME}}',
+'help' => '幫助',
+'search' => '尋討',
+'searchbutton' => '尋討',
+'go' => '去',
+'searcharticle' => '去',
+'history' => '頁面歷史',
+'history_short' => '歷史',
+'updatedmarker' => '趁我最後蜀回訪問開始更新',
+'printableversion' => '會拍印其版本',
+'permalink' => '永久鏈接',
+'print' => '拍印',
+'view' => '覷蜀覷',
+'edit' => '修改',
+'create' => '創建',
+'editthispage' => '修改茲頁',
+'create-this-page' => '創建茲蜀頁',
+'delete' => '刪除',
+'deletethispage' => '刪除茲頁',
+'undeletethispage' => '恢復茲蜀頁',
+'undelete_short' => '恢復$1回修改{{PLURAL:$1}}',
+'viewdeleted_short' => '覷蜀覷$1回刪掉其修改{{PLURAL:$1}}',
+'protect' => '保護',
+'protect_change' => '改變',
+'protectthispage' => '保護茲蜀頁',
+'unprotect' => '改變保護其狀態',
+'unprotectthispage' => '改變茲蜀頁其保護狀態',
+'newpage' => '新頁',
+'talkpage' => '討論茲頁',
+'talkpagelinktext' => '討論',
+'specialpage' => '特殊頁',
+'personaltools' => '個人其家私',
+'postcomment' => '新其蜀段',
+'articlepage' => '覷蜀覷內容頁面',
+'talk' => '討論',
+'views' => '覷蜀覷',
+'toolbox' => '家私',
+'userpage' => '覷蜀覷用戶頁面',
+'projectpage' => '看工程頁',
+'imagepage' => '覷蜀覷文件頁面',
+'mediawikipage' => '看消息頁',
+'templatepage' => '看模板頁',
+'viewhelppage' => '看幫助頁',
+'categorypage' => '看分類頁',
+'viewtalkpage' => '看討論',
+'otherlanguages' => '其它其語言',
+'redirectedfrom' => '(由$1重定向過來)',
+'redirectpagesub' => '重定向頁',
+'lastmodifiedat' => '茲頁面是著$2, $1時候修改其。',
+'viewcount' => '茲蜀頁已經乞訪問$1回了。{{PLURAL:$1}}',
+'protectedpage' => '保護頁',
+'jumpto' => '跳遘:',
+'jumptonavigation' => '引導:',
+'jumptosearch' => '尋討',
+'view-pool-error' => '對不住,服務器茲蜀萆時候已弳過載了。
+過価用戶敆𡅏覷茲蜀頁。
+起動等仂久再來覷茲蜀頁。
+
+$1',
+'pool-timeout' => '等待鎖定其時間遘了',
+'pool-queuefull' => '隊列池已經滿了',
+'pool-errorunknown' => '𣍐八什乇鄭咯',
 
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
-'aboutsite' => 'Guăng-ṳ̀ {{SITENAME}}',
-'aboutpage' => 'Project:Guăng-ṳ̀',
-'copyright' => 'Buōng câng gì cṳ̆-lâiu dŭ sê gŏng-gé̤ṳ $1 huák-buó gì.',
-'copyrightpage' => '{{ns:project}}:Bēng-guòng',
-'currentevents' => 'Duâi chéu â',
-'currentevents-url' => 'Project:Duâi chéu â',
-'disclaimers' => 'Mò̤ hô-cáik sĭng-mìng',
-'disclaimerpage' => 'Project:Mò̤ hô-cáik sĭng-mìng',
-'edithelp' => 'Siŭ-gāi bŏng-cô',
-'edithelppage' => 'Help:Siŭ-gāi',
-'helppage' => 'Help:Mŭk-liŏh',
-'mainpage' => 'Tàu Hiĕk',
-'mainpage-description' => 'Tàu Hiĕk',
-'policy-url' => 'Project:Céng-cháik',
-'portal' => 'Tiăng-dŏng',
-'privacy' => 'Ṳ̄ng-sṳ̆ céng-cháik',
-'privacypage' => 'Project:Ṳ̄ng-sṳ̆ céng-cháik',
-
-'ok' => 'Hō̤',
-'youhavenewmessages' => 'Nṳ̄ ô $1 ($2).',
-'newmessageslink' => 'sĭng làu-uâ',
-'newmessagesdifflink' => 'sèng 1 huòi gāi-biéng',
-'editsection' => 'Siŭ-gāi',
-'editold' => 'Siŭ-gāi',
-'editsectionhint' => 'Siŭ-gāi dâung: $1',
-'toc' => 'Mŭk-liŏh',
-'showtoc' => 'tāu',
-'hidetoc' => 'káung',
-'thisisdeleted' => 'Buóh káng hĕ̤k-ciā huŏi-hók $1?',
-'viewdeleted' => 'Káng $1?',
-'restorelink' => '{{PLURAL:$1|Ék|$1}} bĭk ké̤ṳk chēng lâi gì siŭ-gāi',
-'feedlinks' => 'Cê̤ṳ-hăk:',
+'aboutsite' => '關於{{SITENAME}}',
+'aboutpage' => 'Project:關於',
+'copyright' => '內容敆$1下底會使獲得。',
+'copyrightpage' => '{{ns:project}}:版權',
+'currentevents' => '大樹下',
+'currentevents-url' => 'Project:大樹下',
+'disclaimers' => '無負責聲明',
+'disclaimerpage' => 'Project:無負責聲明',
+'edithelp' => '修改保護',
+'helppage' => 'Help:目錄',
+'mainpage' => '頭頁',
+'mainpage-description' => '頭頁',
+'policy-url' => 'Project:政策',
+'portal' => '廳中',
+'portal-url' => 'Project:社區門戶',
+'privacy' => '隱私政策',
+'privacypage' => 'Project:隱私政策',
+
+'badaccess' => '權限錯誤',
+'badaccess-group0' => '汝𣍐使做汝要求其茲蜀萆動作。',
+'badaccess-groups' => '汝要求其動作著$2底裏用戶才會做其:$1{{PLURAL:$1}}',
+
+'versionrequired' => '需要版本$1其媒體維基',
+'versionrequiredtext' => '需要媒體維基其版本$1來使茲蜀頁。
+覷[[Special:Version|版本頁面]]。',
+
+'ok' => '好',
+'retrievedfrom' => '趁「$1」退過來',
+'youhavenewmessages' => '汝有$1($2)。',
+'newmessageslink' => '新信息',
+'newmessagesdifflink' => '最後其改變',
+'youhavenewmessagesfromusers' => '汝有趁$3用戶($2)來其$1萆信息{{PLURAL:$3}}',
+'youhavenewmessagesmanyusers' => '汝有趁雅価用戶($2)其$1信息',
+'newmessageslinkplural' => '$1條新其信息{{PLURAL:$1}}',
+'newmessagesdifflinkplural' => '最後其改變{{PLURAL:$1}}',
+'youhavenewmessagesmulti' => '汝有趁$1來其新信息',
+'editsection' => '修改',
+'editold' => '修改',
+'viewsourceold' => '看源代碼',
+'editlink' => '修改',
+'viewsourcelink' => '看源代碼',
+'editsectionhint' => '修改段:$1',
+'toc' => '目錄',
+'showtoc' => '顯示',
+'hidetoc' => '藏起',
+'collapsible-collapse' => '崩潰',
+'collapsible-expand' => '擴展',
+'thisisdeleted' => '卜看或者恢復$1?',
+'viewdeleted' => '看$1?',
+'restorelink' => '$1萆乞刪掉其修改{{PLURAL:$1}}',
+'feedlinks' => '訂閱:',
+'feed-invalid' => '無乇使其下標填充類型',
+'feed-unavailable' => '𣍐使聚合訂閱',
+'site-rss-feed' => '$1 RSS 訂閱',
+'site-atom-feed' => '$1原子訂閱',
+'page-rss-feed' => '「$1」RSS訂閱',
+'page-atom-feed' => '「$1」原子訂閱',
+'red-link-title' => '$1(頁面無敆𡅏)',
+'sort-descending' => '降序排序',
+'sort-ascending' => '升序排序',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
-'nstab-main' => 'Ùng-ciŏng',
-'nstab-user' => 'Ê̤ṳng-hô hiĕk',
-'nstab-media' => 'Muòi-tā̤ hiĕk',
-'nstab-special' => 'Dĕk-sṳ̀',
-'nstab-project' => 'Gĕ̤ng-tiàng hiĕk',
-'nstab-image' => 'Ùng-giông',
-'nstab-mediawiki' => 'Siĕu-sék',
-'nstab-template' => 'Muò-bēng',
-'nstab-help' => 'Bŏng-cô hiĕk',
-'nstab-category' => 'Lôi-biék',
+'nstab-main' => '頁面',
+'nstab-user' => '用戶頁',
+'nstab-media' => '媒體頁',
+'nstab-special' => '特殊頁面',
+'nstab-project' => '工程頁',
+'nstab-image' => '文件',
+'nstab-mediawiki' => '消息',
+'nstab-template' => '模板',
+'nstab-help' => '幫助頁',
+'nstab-category' => '類別',
 
 # Main script and global functions
-'nosuchspecialpage' => 'Mò̤ cūng-kuāng gì dĕk-sṳ̀ hiĕk',
+'nosuchaction' => '無茲蜀種行動',
+'nosuchactiontext' => '茲蜀種URL指定其行動是𣍐合法其。',
+'nosuchspecialpage' => '無總款其特殊頁',
+'nospecialpagetext' => '<strong>汝請求蜀萆𣍐合法其特殊頁面。</strong>
+
+合法其特殊頁面清單會使敆[[Special:SpecialPages|{{int:特殊頁面}}]]頁面討著',
 
 # General errors
-'databaseerror' => 'Só-gé̤ṳ-kó ô dâng',
-'readonly' => 'Só-gé̤ṳ-kó ké̤ṳk sō̤ kī',
+'error' => '鄭咯',
+'databaseerror' => '數據庫有鄭',
+'dberrortext' => '蜀萆數據庫查詢其語法錯誤發生咯。
+茲可能代表茲軟件其蜀萆漏洞。
+最後嘗試其數據庫查詢是:
+<blockquote><code>$1</code></blockquote>
+趁函數「<code>$2</code>」來其。
+數據庫返回錯誤「<samp>$3: $4</samp>」。',
+'dberrortextcl' => '蜀萆數據庫查詢語法錯誤發生咯。
+最後蜀回嘗試其數據庫查詢是:
+「$1」
+趁函數「$2」來其。
+數據庫返回錯誤「$3: $4」',
+'laggedslavemode' => "'''警告:'''頁面可能無最近其更新。",
+'readonly' => '數據庫乞鎖起咯',
 'readonlytext' => 'Só-gé̤ṳ-kó cī-buàng ké̤ṳk nè̤ng sō̤ kī lāu, mâ̤-sāi siā sĭng dèu-mĕ̤k hĕ̤k có̤ siŭ-gāi, ô kō̤-nèng sê ôi-lāu nĭk-siòng mì-hô, cĭ-hâiu cêu â̤ ciáng-siòng.
 
 Sō̤ kī só-gé̤ṳ-kó gì guāng-lī-uòng cūng-kuāng gāi-sék: $1',
-'cannotdelete' => 'Mò̤ nièng-ngài chēng lâi ciā hiĕk-miêng hĕ̤k ùng-giông. (Kō̤-nèng ī-gĭng ké̤ṳk nè̤ng chēng lâi go̤ lāu.)',
-'perfcached' => "Â-dā̤ gì só-gé̤ṳ ké̤ṳk ká̤-chṳ̄ (''cashed'') guó, kō̤-nèng ī-gĭng guó-gĭ. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.",
-'perfcachedts' => "Â-dā̤ gì só-gé̤ṳ ké̤ṳk ká̤-chṳ̄ (''cashed'') guó, sèng siŏh huòi huăng-sĭng gì sì-găng sê $1. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.",
-'querypage-no-updates' => 'Cī-buàng buōng hiĕk-miêng mâ̤ huăng-sĭng. Só-gé̤ṳ iâ mâ̤ huăng-sĭng.',
-'viewsource' => 'Káng nguòng-dâi-mā',
-'protectedpagetext' => 'Cī hiĕk ī-gĭng ké̤ṳk sō̤ kī lāu, mâ̤-sāi siŭ-gāi.',
-'viewsourcetext' => 'Nṳ̄ â̤-sāi káng gâe̤ng hók-cié ciā hiĕk gì nguòng-dâi-mā:',
-'editinginterface' => "'''Warning:''' You are editing a page which is used to provide interface text for the software.
-Changes to this page will affect the appearance of the user interface for other users.
-For translations, please consider using [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], the MediaWiki localisation project.",
+'missingarticle-diff' => '(比並:$1、$2)',
+'internalerror' => '內部錯誤',
+'internalerror_info' => '內部錯誤:$1',
+'fileappenderror' => '𣍐使加添「$1」遘「$2」。',
+'filecopyerror' => '𣍐使趁「$1」𡅏複製文件遘「$2」。',
+'filerenameerror' => '𣍐使共「$1」其名字改去「$2」。',
+'filedeleteerror' => '𣍐使刪掉文件「$1」。',
+'directorycreateerror' => '𣍐使刪掉目錄「$1」。',
+'filenotfound' => '討𣍐著文件「$1」。',
+'fileexistserror' => '無辦法寫遘文件「$1」:文件已經存在。',
+'unexpected' => '伓是卜挃其值:「$1」=「$2」。',
+'formerror' => '賺:𣍐使提交表單。',
+'cannotdelete' => '無能耐刪掉頁面或者文件「$1」。
+可能茲已經共別儂刪掉咯了。',
+'cannotdelete-title' => '無辦法刪掉頁面「$1」',
+'delete-hook-aborted' => '刪除乞鉤子拍斷咯。
+無給出解釋。',
+'badtitle' => '獃其標題',
+'perfcached' => '下底其數據乞緩存固加可能伓是最新其。{{PLURAL:$1|$1條結果}}會敆緩存臺中討著。',
+'perfcachedts' => '下底其數據已經緩存過了,最後更新遘$1。{{PLURAL:$4|$4條結果}}會敆緩存臺中討著。',
+'querypage-no-updates' => '茲蜀頁其更新乞禁止了。
+數據嚽塊現刻時𣍐更新了。',
+'wrong_wfQuery_params' => '敆wfQuery()其鄭其參數<br />
+函數:$1<br />
+查詢:$2',
+'viewsource' => '看源代碼',
+'viewsource-title' => '覷蜀覷$1其源代碼',
+'actionthrottled' => '行動乞取消咯',
+'protectedpagetext' => '茲頁已經乞保護起咯,𣍐使修改或者其它行動。',
+'viewsourcetext' => '汝會使看共複製茲蜀頁其源代碼:',
+'viewyourtext' => "汝會使覷蜀覷或者複製茲頁'''汝其修改'''其源代碼:",
+'editinginterface' => "'''警告:'''汝敆𡅏修改其頁面廮𡅏提供茲蜀萆軟件其界面文本。
+茲蜀頁其改變會影響遘其它用戶其用戶界面其顯示。
+如果蔔想修改維基其翻譯,起動遘媒體維基本地化計劃[//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net]。",
+'sqlhidden' => '(SQL查詢藏起咯)',
+'namespaceprotected' => "汝𣍐使修改敆'''$1'''命名空間其頁面。",
+'customcssprotected' => '汝𣍐使修改茲蜀萆CSS頁面,因為伊有別蜀隻用戶其設定。',
+'customjsprotected' => '汝𣍐使修改茲蜀萆JavaScript頁面,因為伊有別蜀隻用戶其設定。',
+'mycustomcssprotected' => '汝𣍐使修改茲蜀萆CSS頁面。',
+'mycustomjsprotected' => '汝𣍐使修改茲蜀萆JavaScript頁面。',
+'ns-specialprotected' => '𣍐使修改特殊頁面。',
+'titleprotected' => "茲蜀萆標題共[[User:$1|$1]]保護其咯。
+原因是「''$2''」。",
+'exception-nologin' => '未躒底其',
+'exception-nologin-text' => '茲蜀頁其行動卜挃汝躒底茲蜀萆維基百科。',
+
+# Virus scanner
+'virus-badscanner' => "獃其配置:𣍐八其病毒掃描器:''$1''",
+'virus-scanfailed' => '掃描失敗(代碼$1)',
+'virus-unknownscanner' => '𣍐八其反病毒:',
 
 # Login and logout pages
-'logouttext' => "'''Nṳ̄ hiêng-câi láuk-chók lāu.'''
-Nṳ̄ â̤-sāi sāi mò̤-miàng huŏng-sék gié-sṳ̆k găk {{SITENAME}} gè̤-dēng láuk, nṳ̄ iâ â̤-sāi sāi dè̤ng-iông gì dióng-hô̤ hĕ̤k-ciā bĕk-nó̤h bĭk dióng-hô̤ gái láuk-diē. Diŏh gé lā̤, nṳ̄ báuk-lāng-ké ká̤-chṳ̄ (''browser cache'') nâ mò̤ tĕ̤ng táh gó̤ uâ, ô gì hiĕk giăng â̤ hiēng-sê nṳ̄ gó muôi láuk-chók.",
-'yourname' => 'Ê̤ṳng-hô-miàng',
-'yourpassword' => 'Mĭk-mā',
-'yourpasswordagain' => 'Dṳ̀ng-sĭng páh diē mĭk-mā',
-'remembermypassword' => 'Giéu cī gá diêng-nō̤ gé diâng nguāi gì dióng-hô̤ gâe̤ng mĭk-mā (for a maximum of $1 {{PLURAL:$1|day|days}})',
-'login' => 'Láuk-diē',
-'loginprompt' => 'Páh kŭi cookies ciáh â̤ diē {{SITENAME}}.',
-'userlogin' => 'Láuk-diē / kŭi dióng-hô̤',
-'logout' => 'Láuk-chók',
-'userlogout' => 'Láuk-chók',
-'notloggedin' => 'Mò̤ [[Special:UserLogin|láuk-diē]]',
-'nologin' => "Gó muôi kŭi dióng-hô̤? '''$1'''.",
-'nologinlink' => 'Kŭi 1 ciáh sĭng dióng-hô̤',
-'createaccount' => 'Kŭi dióng-hô̤',
-'gotaccount' => "Ī-gĭng ô dióng-hô lāu? '''$1'''.",
-'gotaccountlink' => 'Láuk-diē',
-'loginerror' => 'Láuk-diē ô dâng',
-'loginsuccesstitle' => 'Láuk-diē sìng-gŭng',
-'loginsuccess' => "'''Nṳ̄ hiêng-câi ī-gĭng ī \"\$1\" gì sĭng-hông láuk diē {{SITENAME}} lāu.'''",
-'nosuchuser' => 'Mò̤ cūng-kuāng gì ê̤ṳng-hô-miàng "$1". Giēng-chă nṳ̄ gì pĭng-siā, hĕ̤k-ciā kŭi 1 ciáh sĭng dióng-hô̤.',
-'nosuchusershort' => 'Mò̤ cūng-kuāng gì ê̤ṳng-hô-miàng "$1". Giēng-chă nṳ̄ gì pĭng-siā',
-'wrongpassword' => 'Mĭk-mā dâng gó̤. Chiāng gái ché siŏh â.',
-'wrongpasswordempty' => 'Muôi sṳ̆-ĭk mĭk-mā. Chiāng gái ché siŏh â.',
-'passwordtooshort' => 'Nṳ̄ gì mĭk-mā kák dōi gó̤. Có̤i kī-mā diŏh ô $1 bĭk cê-mō̤.',
-'mailmypassword' => 'Gié ké̤ṳk nguāi mĭk-mā',
-'passwordsent' => 'Sĭng mĭk-mā ī-gĭng gié gáu "$1" sū cé̤ṳ-cháh gì diêng-piĕ dê-cī lāu.
-Siŭ gáu hâiu, chiāng gái láuk diē siŏh làu.',
-'acct_creation_throttle_hit' => 'Dó̤i-bók-cê̤ṳ, nṳ̄ ī-gĭng kŭi guó $1 dióng-hô̤, mâ̤-sāi gái kŭi 1 ciáh lāu.',
-'emailauthenticated' => 'Nṳ̄ gì diêng-piĕ dê-cī găk $1 sèng-âu káuk-nêng guó lāu.',
-'emailconfirmlink' => 'Káuk-nêng nṳ̄ gì diêng-piĕ dê-cī',
-'accountcreated' => 'Dióng-hô̤ châung-gióng lāu',
-'accountcreatedtext' => '$1 gì ê̤ṳng-hô dióng-hô̤ ī-gĭng châung-gióng lāu.',
-'loginlanguagelabel' => 'Ngṳ̄-ngiòng: $1',
+'logouttext' => "'''汝現在躒出了。'''
+
+汝會使使無名方式繼續覷{{SITENAME}},或者汝會使蜀様或者𣍐蜀様其用戶<span class='plainlinks'>[$1 再躒底其]</span>。
+注意有其頁面可能繼續顯示真像汝應經躒底其了,除開汝清理汝其瀏覽器緩存。",
+'welcomeuser' => '歡迎,$1!',
+'welcomecreation-msg' => '汝其賬戶已經開好了。
+伓嗵𣍐記改蜀改汝其[[Special:Preferences|{{SITENAME}}設定]]。',
+'yourname' => '用戶名:',
+'userlogin-yourname' => '用戶名',
+'userlogin-yourname-ph' => '輸底汝其用戶名',
+'yourpassword' => '密碼:',
+'userlogin-yourpassword' => '密碼',
+'userlogin-yourpassword-ph' => '輸底汝其密碼',
+'createacct-yourpassword-ph' => '輸底蜀萆密碼',
+'yourpasswordagain' => '重新拍囇密碼:',
+'createacct-yourpasswordagain' => '確定密碼',
+'createacct-yourpasswordagain-ph' => '再輸入蜀回密碼',
+'remembermypassword' => '共我敆茲蜀萆瀏覽器其躒底記錄記定幾日(最価$1日){{PLURAL:$1}}',
+'userlogin-remembermypassword' => '保持我躒底其',
+'userlogin-signwithsecure' => '使安全其連接',
+'securelogin-stick-https' => '躒底以後保持HTTPS連接',
+'yourdomainname' => '汝其域名:',
+'password-change-forbidden' => '汝𣍐使敆茲蜀萆維基百科𡅏修改密碼。',
+'externaldberror' => '可能是驗證數據庫鄭咯,或者是汝𣍐使升級汝其外部賬戶。',
+'login' => '躒底',
+'nav-login-createaccount' => '躒底/開賬戶',
+'loginprompt' => '汝著清除cookies才會底{{SITENAME}}。',
+'userlogin' => '躒底/開賬戶',
+'userloginnocreate' => '躒底',
+'logout' => '躒出',
+'userlogout' => '躒出',
+'notloggedin' => '未躒底',
+'userlogin-noaccount' => '汝無賬戶?',
+'userlogin-joinproject' => '共{{SITENAME}}加底其',
+'nologin' => '汝無賬戶?$1',
+'nologinlink' => '開蜀隻賬戶',
+'createaccount' => '開賬戶',
+'gotaccount' => "已經有賬戶了?'''$1'''。",
+'gotaccountlink' => '躒底',
+'userlogin-resetlink' => '躒底其資料𣍐記咯?',
+'userlogin-resetpassword-link' => '重置汝其密碼',
+'helplogin-url' => 'Help: 躒底',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|幫助躒底]]',
+'createacct-join' => '敆下底輸底汝其信息。',
+'createacct-emailrequired' => '電子郵件地址',
+'createacct-emailoptional' => '電子郵件地址(愛寫就寫)',
+'createacct-email-ph' => '輸底汝其電子郵件地址',
+'createaccountmail' => '使臨時其隨機密碼,共伊送遘下底其電子郵件地址',
+'createacct-realname' => '實際其名字(愛寫就寫)',
+'createaccountreason' => '原因:',
+'createacct-reason' => '原因',
+'createacct-reason-ph' => '汝奚勢復開蜀隻賬戶',
+'createacct-captcha' => '安全檢查',
+'createacct-imgcaptcha-ph' => '輸底汝敆懸頂看見其文字',
+'createacct-submit' => '開賬戶',
+'createacct-benefit-heading' => '{{SITENAME}}是共汝蜀様其儂做其。',
+'createacct-benefit-body1' => '{{PLURAL:$1|修改}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|頁面}}',
+'createacct-benefit-body3' => '最近其{{PLURAL:$1|貢獻者}}',
+'badretype' => '汝輸底其密碼𣍐蜀様。',
+'userexists' => '用戶名已經乞別人使去了。
+起動另外再起蜀萆名字。',
+'loginerror' => '躒底有鄭',
+'createacct-error' => '賬戶開出毛病咯',
+'createaccounterror' => '無能獃開賬戶:$1',
+'noname' => '汝未指定蜀萆合法其用戶名。',
+'loginsuccesstitle' => '躒底成功',
+'loginsuccess' => "'''汝現在已經「$1」其成功躒底{{SITENAME}}了。'''",
+'nosuchuser' => '無總款其用戶名「$1」。
+用户名是大小写敏感其。
+检查汝其拼写,或者覷蜀覷[[Special:UserLogin/signup|開新賬戶]]。',
+'nosuchusershort' => '無總款其用戶名「$1」。
+檢查汝其拼寫。',
+'nouserspecified' => '汝著指定蜀萆用戶名。',
+'login-userblocked' => '茲隻用戶已經乞封鎖去了。躒底是𣍐允許其。',
+'wrongpassword' => '密碼鄭咯。
+起動再查蜀下。',
+'wrongpasswordempty' => '未輸入密碼。
+請再查蜀下。',
+'passwordtooshort' => '密碼著設最少{{PLURAL:$1|$1萆字符}}。',
+'password-name-match' => '汝其密碼硬著共汝其用戶名𣍐蜀様才會使其。',
+'password-login-forbidden' => '茲蜀萆用戶名共密碼應經乞禁止去了。',
+'mailmypassword' => '共新密碼發遘電子郵件',
+'passwordremindertitle' => '{{SITENAME}}其新其臨時密碼',
+'passwordsent' => '新密碼已經寄遘「$1」註冊其電子郵件地址了。
+收遘後,請再躒底蜀頭部。',
+'mailerror' => '發電子郵件有賺:$1',
+'acct_creation_throttle_hit' => '使汝其IP訪問茲蜀萆維基百科訪問者其已經敆最後蜀日創建{{PLURAL:$1|$1萆賬戶}}去了。茲蜀段時間最価若允許創建茲滿価萆賬戶。故此講使茲蜀萆IP訪問其儂敆現刻時𣍐使再開賬戶了。',
+'emailauthenticated' => '汝其電子郵件地址已經敆$2$3驗證過了。',
+'emailconfirmlink' => '確認汝其電子郵件地址',
+'emaildisabled' => '茲萆站點𣍐使發電子郵件。',
+'accountcreated' => '賬戶創建了',
+'accountcreatedtext' => '[[{{ns:User}}:$1|$1]]([[{{ns:User talk}}:$1|talk]])用戶已經創建。',
+'createaccount-title' => '{{SITENAME}}其開賬戶',
+'login-abort-generic' => '汝其躒底𣍐成功——放棄去了',
+'loginlanguagelabel' => '語言:$1',
+
+# Email sending
+'php-mail-error-unknown' => 'PHP其mail()函數,𣍐八什乇賺去。',
 
 # Change password dialog
-'oldpassword' => 'Gô mĭk-mā:',
-'newpassword' => 'Sĭng mĭk-mā:',
-'retypenew' => 'Káuk-nêng sĭng mĭk-mā:',
+'resetpass' => '密碼已經乞修改去了',
+'resetpass_header' => '改變賬戶其密碼',
+'oldpassword' => '舊密碼:',
+'newpassword' => '新密碼:',
+'retypenew' => '確認密碼:',
+'resetpass_submit' => '設置密碼再躒底',
+'resetpass_forbidden' => '密碼改𣍐來',
+'resetpass-no-info' => '汝著躒底乍會使直接看茲蜀頁。',
+'resetpass-submit-loggedin' => '修改密碼',
+'resetpass-submit-cancel' => '取消',
+'resetpass-temp-password' => '臨時密碼:',
+
+# Special:PasswordReset
+'passwordreset' => '重置密碼',
+'passwordreset-legend' => '重置密碼',
+'passwordreset-username' => '用戶名:',
+'passwordreset-domain' => '域名:',
+'passwordreset-email' => '電子郵件地址:',
+'passwordreset-emailsent' => '蜀萆密碼重置其電子郵件已經發出去了。',
+'passwordreset-emailsent-capture' => '蜀萆密碼重置其電子郵件已經發出去了,顯示敆下底。',
+
+# Special:ChangeEmail
+'changeemail' => '修改電子郵件地址',
+'changeemail-header' => '修改賬戶電子郵件地址',
+'changeemail-oldemail' => '現刻時其電子郵件地址:',
+'changeemail-newemail' => '新其電子郵件地址:',
+'changeemail-none' => '(無)',
+'changeemail-password' => '汝其{{SITENAME}}密碼:',
+'changeemail-submit' => '修改電子郵件地址',
+'changeemail-cancel' => '取消',
 
 # Edit page toolbar
-'bold_sample' => 'Chŭ-tā̤ ùng-cê',
-'bold_tip' => 'Chŭ-tā̤ ùng-cê',
-'link_sample' => 'Lièng-giék biĕu-dà̤',
-'link_tip' => 'Nô̤i-buô lièng-giék',
-'extlink_tip' => 'Nguôi-buô lièng-giék (gé lā̤ http:// sṳ̀-tàu)',
-'headline_sample' => 'Biĕu-dà̤ ùng-cê',
-'headline_tip' => 'Dâ̤ 2 cèng biĕu-dà̤',
+'bold_sample' => '粗體文字',
+'bold_tip' => '粗體文字',
+'italic_sample' => '敧其文字',
+'italic_tip' => '敧其文字',
+'link_sample' => '鏈接標題',
+'link_tip' => '內部鏈接',
+'extlink_sample' => 'http://www.example.com 鏈接標題',
+'extlink_tip' => '外部鏈接(記𡅏http:// 開頭)',
+'headline_sample' => '標題文字',
+'headline_tip' => '第二等標題',
+'nowiki_sample' => '敆嚽塊插入無格式其文本',
+'nowiki_tip' => '無察維基格式',
+'image_tip' => '嵌底其文件',
 'media_sample' => 'Liê.ogg',
-'media_tip' => 'Mùi-tā̤ ùng-giông lièng-giék',
+'media_tip' => '文件鏈接',
+'sig_tip' => '汝其帶時間戳其簽名',
+'hr_tip' => '水平線(廮𡅏保護使其)',
 
 # Edit pages
-'summary' => 'Cūng-giék:',
-'subject' => 'Dà̤-mĕ̤k/biĕu-dà̤:',
-'minoredit' => 'Guó-éu siŭ-gāi',
-'watchthis' => 'Gáng-sê ciā hiĕk',
-'savearticle' => 'Bō̤-còng ciā hiĕk',
-'preview' => 'Ché káng mâing',
-'showpreview' => 'Ché káng mâing',
-'showdiff' => 'Káng gāi-biéng gì buô-hông',
-'anoneditwarning' => "'''GĪNG-GÓ̤:''' Nṳ̄ muôi láuk-diē.
-Nṳ̄ gì IP dê-cī â̤ ké̤ṳk gé diŏh ciā hiĕk-miêng siŭ-gāi lĭk-sṳ̄ diē-sié.",
-'summary-preview' => 'Cūng-giék ché-káng:',
-'blockedtitle' => 'Ê̤ṳng-hô ké̤ṳk hŭng-sō̤ lāu',
-'loginreqtitle' => 'Chiāng sĕng láuk-diē',
-'loginreqlink' => 'Láuk-diē',
-'loginreqpagetext' => 'Sĕng $1 ciáh â̤-sāi káng gì-tă hiĕk-miêng.',
-'accmailtitle' => 'Mĭk-mā gié chók lāu.',
-'accmailtext' => '"$1" gì mĭk-mā ī-gĭng gié ké̤ṳk $2 lāu.',
-'newarticle' => '(Sĭng)',
-'newarticletext' => "Nṳ̄ téng 1 ciáh lièng-giék lì gáu cī miêng gó muôi còng-câi gì hiĕk. Buóh kī-chiū piĕng-siā ciā hiĕk, chiāng diŏh â-dā̤ gì bēng-bēng diē-sié páh cê (chăng-kō̤ [[Help:Mŭk-liŏh]] liēu-gāi gáing sâ̤ séng-sék). Iŏk-sṳ̄ nṳ̄ huák-hiêng cê-gă giàng dâng gó̤, nâ dĭh áik báuk-lāng-ké (''browser'') gì \"'''duōng kó̤ sèng 1 hiĕk'''\" (''back'') cêu â̤-sāi lāu.",
-'anontalkpagetext' => "----''Cī tiŏng tō̤-lâung-hiĕk mò̤ gó-dêng gì dióng-hô̤, nâ ô 1 ciáh IP dê-cī. Chiāng cé̤ṳ-é: Kō̤-nèng ng-nié 1 ciáh nè̤ng sāi-ê̤ṳng cī ciáh IP dê-cī. Iŏk-sṳ̄ nṳ̄ gó muôi kŭi 1 ciáh dióng-hô̤ bêng-chiā giéng-gáe̤k ciā làu-uâ sê làu ké̤ṳk nṳ̄ gì, chiāng nṳ̄ [[Special:UserLogin|kŭi 1 ciáh dióng-hô̤ hĕ̤k-ciā láuk-diē]], cêu â̤ piáh-miēng ī-hâiu gái huák-sĕng cūng-kuāng ông-dà̤.''",
-'noarticletext' => 'Ciā hiĕk-miêng gà̤-dēng mò̤ ùng-cê. Nṳ̄ â̤-sāi găk gì-tă hiĕk-miêng [[Special:Search̤/{{PAGENAME}}|sìng-tō̤ ĭ gì biĕu-dà̤]] hĕ̤k-ciā [{{fullurl:{{FULLPAGENAME}}|action=edit}} cê-gă siā].',
-'clearyourcache' => "'''Cé̤ṳ-é:''' Bō̤-còng cĭ hâiu, kō̤-nèng diŏh tĕ̤ng táh báuk-lāng-ké gì ká̤-chṳ̄ ciáh â̤ káng-giéng diŏh gāi-biéng. '''Mozilla / Firefox / Safari:''' áik ''Reload'' sèng-âu áik diâng ''Shift'', hĕ̤k-ciā áik ''Ctrl-Shift-R'' (Apple Mac sê ''Cmd-Shift-R''); '''IE:''' áik ''Refresh'' sèng-âu áik diâng ''Ctrl'', hĕ̤k-ciā áik ''Ctrl-F5''; '''Konqueror:''' nâ sāi áik ''Reload'', hĕ̤k-ciā áik ''F5''; '''Opera''' ê̤ṳng-hô buóh tĕ̤ng táh ká̤-chṳ̄, chiāng sāi gă-sĭ ''Tools→Preferences''.",
-'previewnote' => "'''Cé̤ṳ-é: Cuòi nâ sê ché káng ùng-cê gì iông-sék; nṳ̄ sū có̤ gì siŭ-gāi gó muôi bō̤-còng!'''",
-'editing' => 'Siŭ-gāi $1',
-'editingsection' => 'Siŭ-gāi $1 (dâung)',
-'editingcomment' => 'Siŭ-gāi $1 (pàng-lâung)',
-'editconflict' => 'Siŭ-gāi dó̤i-chṳ̆ng: $1',
-'explainconflict' => "Bĕk-nè̤ng diŏh nṳ̄ tā-sĕng siŭ-gāi cī miêng hiĕk gì sèng-âu ô có̤ gì-tă siŭ-gāi.
-Gà̤-dēng gì bēng-bēng hiēng-sê gì sê hiêng-câi có̤i sĭng gì bēng-buōng.
-Nṳ̄ sū có̤ gì gāi-biéng găk â-dā̤ gì bēng-bēng diē-sié.
-Nṳ̄ sṳ̆-iéu găk gà̤-dēng gì bēng-bēng diē-sié cīng-hăk nṳ̄ lâng ciáh nè̤ng sū có̤ gì gāi-biéng.
-Iŏk-guō nṳ̄ dĭk-ciék áik \"{{int:savearticle}}\", '''nâ ô''' gà̤-dēng bēng-bēng diē-sié gì ùng-cê â̤ ké̤ṳk bō̤-còng.",
-'yourtext' => 'Nṳ̄ gì ùng-cê',
-'editingold' => "'''GĪNG-GÓ̤: Nṳ̄ hiêng-câi lā̤ siŭ-gāi ciā hiĕk-miêng ī-gĭng guó-gĭ gì bēng-buōng. Nṳ̄ nâ bō̤-còng ĭ, cī ciáh gô bēng-buōng cĭ-hâiu gì siŭ-gāi cêu mò̤ lāu.'''",
-'yourdiff' => 'Chă-biék',
-'readonlywarning' => "'''Gīng-gó̤: Ôi lāu mì-hô buōng câng, só-gé̤ṳ-kó ké̤ṳk sō̤ kī lāu, gó-chṳ̄ cī-lùng nṳ̄ mò̤ nièng-ngài bō̤-còng nṳ̄ gì siŭ-gāi. Chiāng sĕng bō̤-còng diŏh nṳ̄ diêng-nō̤ buōng-dê, dīng nék-gū mâing gái ché.'''",
-'protectedpagewarning' => "'''GĪNG-GÓ̤: Ciā hiĕk ī-gĭng ké̤ṳk sō̤ kī go̤ lāu, nâ ô guāng-lī-uòng â̤ siŭ-gāi ĭ.'''",
-'semiprotectedpagewarning' => "'''Cé̤ṳ-é:''' Ciā hiĕk-miêng ī-gĭng ké̤ṳk bō̤-hô, gó-chṳ̄ nâ ô láuk-diē gì ê̤ṳng-hô â̤-sāi siŭ-gāi ĭ.",
-'templatesused' => 'Ciā hiĕk gà̤-dēng gì muò-bēng:',
-'templatesusedpreview' => 'Ciā ché-káng-hiĕk gà̤-dēng gì muò-bēng:',
-'templatesusedsection' => 'Cī dâung diē-sié gì muò-bēng:',
-'template-protected' => '(bō̤-hô)',
-'template-semiprotected' => '(buáng bō̤-hô)',
-'recreate-moveddeleted-warn' => "'''Gīng-gó̤: Nṳ̄ ciŏng-buóh dṳ̀ng-sĭng kŭi siŏh tiŏng gô-dā̤ ké̤ṳk chēng lâi gì hiĕk.'''
-
-Nṳ̄ găi-dŏng sṳ̆-liòng lâ, sié lŏ̤h piĕng-cĭk ciā hiĕk-miêng ô gák céng-cháik mò̤. Ôi lāu că-sùng lê-biêng, ciā hiĕk-miêng gì chēng hiĕk nĭk-cé găk cŭ-uái â̤ tō̤ diŏh:",
+'summary' => '總結:',
+'subject' => '主題/標題:',
+'minoredit' => '過要修改',
+'watchthis' => '監視茲頁',
+'savearticle' => '保存茲頁',
+'preview' => '預覽',
+'showpreview' => '顯示預覽',
+'showdiff' => '看改變其部分',
+'anoneditwarning' => "'''警告:'''汝未躒底。
+汝起IP地址會乞記錄敆茲頁面修改歷史底裏。",
+'missingcommenttext' => '起動敆下底輸底蜀條評論。',
+'summary-preview' => '總結預覽:',
+'blockedtitle' => '用戶乞封鎖了',
+'blockednoreason' => '無掏出原因',
+'whitelistedittext' => '汝必須$1乍會使修改頁面。',
+'loginreqtitle' => '需要躒底',
+'loginreqlink' => '躒底',
+'loginreqpagetext' => '著$1才會使看其它頁面。',
+'accmailtitle' => '密碼寄出了',
+'accmailtext' => "共[[User talk:$1|$1]]用戶其臨時產生其密碼已經發$2了。
+
+茲蜀萆新其賬戶其密碼會使敆用戶躒底以後著''[[Special:ChangePassword|改密碼]]''頁面𡅏改變。",
+'newarticle' => '(新)',
+'newarticletext' => '汝已經跟鏈接跟遘無存在其頁面了。
+卜想創建頁面,敆下底其框框𡅏拍字(覷蜀覷[[{{MediaWiki:Helppage}}|幫助頁面]]有無更更価其幫助)。
+如果汝是無注意來遘茲蜀萆頁面,篤囇汝其瀏覽器上其「返回」按鈕。',
+'anontalkpagetext' => "''茲是未躒底其用戶討論頁面。''
+故此儂家著使數字IP來確定伊。
+總款其IP地址會乞雅価用戶共享。
+如果蜀隻未躒底其用戶見覺無關係其評論指向汝,起動[[Special:UserLogin/signup|開賬戶]]或者[[Special:UserLogin|躒底]]來避免以後共其它未躒底其用戶混蜀堆。",
+'noarticletext' => '現在敆茲蜀頁𡅏無文字。汝會使敆其它其頁面𡅏[[Special:Search/{{PAGENAME}}|討蜀討茲蜀萆標題]],<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 討相關其記錄],或者[{{fullurl:{{FULLPAGENAME}}|action=edit}}編輯茲蜀頁]</span>。',
+'clearyourcache' => "'''注意:'''保存以後,汝可能固著刷新汝其瀏覽器緩存來看遘變化。
+* '''火狐/Safari:'''擪下''Shift''篤蜀篤''重新載入'',或者擪蜀擪''Ctrl+F5''或者''Ctrl+R'' (''⌘-R''敆Mac懸頂)
+* '''Google Chrome:'''擪''Ctrl+Shift+R''(敆Mac𡅏使''⌘-Shift-R'')
+* '''Internet Explorer:'''擪''Ctrl''其時候篤蜀篤''刷新'',或者擪''Ctrl+F5''
+* '''Opera:'''敆''工具→首選項''𡅏清除緩存",
+'previewnote' => "'''記定茲若是蜀萆預覽。'''
+汝其改變固𡅏未保存!",
+'continue-editing' => '行去編輯區',
+'editing' => '修改 $1',
+'creating' => '創建$1',
+'editingsection' => '修改$1(段)',
+'editingcomment' => '修改$1(新其蜀部分)',
+'editconflict' => '修改對衝:$1',
+'explainconflict' => "敆汝開始修改茲蜀頁之前,已經有其他人改變茲蜀頁去了。懸頂文本區域包括原底存在其頁面文本。汝其改變敆下底文本區域顯示。汝必須合併汝其改變遘已經存在其文本。敆汝擪「{{int:savearticle}}」以後,'''囇有'''敆懸頂文本區域其文本會保存。",
+'yourtext' => '汝其文字',
+'editingold' => "'''警告:汝現在𡅏修改已經過時其版本。'''
+如果汝保存伊,趁茲以後其任何改變都變無了。",
+'yourdiff' => '差別',
+'readonlywarning' => "'''警告:數據庫已經乞鎖定來保養去了,故此汝現刻時𣍐使保存汝其編輯。'''
+汝可能希望複製再粘貼汝其文字遘蜀萆文本文件𡅏,再共伊保存起咯。
+
+鎖定伊其管理員給出茲蜀萆解釋:$1",
+'protectedpagewarning' => "''警告:茲蜀頁已經乞保護起去了,故此囇有管理員權力其用戶乍會使修改伊。'''
+最新其日誌已經敆下底提供來做參考:",
+'semiprotectedpagewarning' => "'''注意:''' 茲蜀頁已經乞保護起去了,故此囇有註冊其用戶乍會使修改伊。
+最新其日誌已經敆下底提供來做參考:",
+'templatesused' => '{{PLURAL:$1}}茲頁底裏使其模板:',
+'templatesusedpreview' => '茲萆預覽使其{{PLURAL:$1|模板}}:',
+'templatesusedsection' => '茲蜀段使其{{PLURAL:$1|模板}}:',
+'template-protected' => '(保護)',
+'template-semiprotected' => '(半保護)',
+'recreate-moveddeleted-warn' => "'''注意:汝重新創建其茲蜀頁面以前已經乞刪掉了。'''
+
+汝著考慮蜀下到底是伓是合適繼續去編輯茲蜀頁。茲蜀頁其刪除記錄共移動記錄都敆嚽塊共汝看:",
 
 # "Undo" feature
-'undo-summary' => 'Chṳ̄-siĕu [[Special:Contributions/$2|$2]] ([[User talk:$2|Tō̤-lâung]]) gì $1 hô̤ siŭ-gāi',
+'undo-summary' => '取消[[Special:Contributions/$2|$2]]([[User talk:$2|Tō̤-lâung]])其$1修改',
 
 # Account creation failure
-'cantcreateaccounttitle' => 'Mò̤ nièng-ngài kŭi dióng-hô̤',
+'cantcreateaccounttitle' => '無能獃開賬戶',
 
 # History pages
-'viewpagelogs' => 'Káng cī miêng hiĕk gì nĭk-cé',
-'nohistory' => 'Ciā hiĕk mò̤ siŭ-gāi lĭk-sṳ̄.',
-'currentrev' => 'Hiêng-sì bēng-buōng',
-'revisionasof' => '$1 gì bēng-buōng',
-'previousrevision' => '←Gă gô gì bēng-buōng',
-'nextrevision' => 'Gă sĭng gì bēng-buōng→',
-'currentrevisionlink' => 'Hiêng-sì bēng-buōng',
-'cur' => 'dāng',
-'next' => 'â',
-'last' => 'sèng',
-'page_first' => 'tàu',
-'page_last' => 'muōi',
-'histlegend' => 'Chă-biék gēng-sōng: sōng-dĕk buóh bī-piâng gì bēng-buōng, gái áik "huòi-chiă" (\'\'enter\'\') hĕ̤k-ciā dā̤-dā̤ gì "Bī-piâng gēng-sōng bēng-buōng".<br />
-Siók-mìng: (dāng) = gâe̤ng dék sĭng bēng-buōng bī-piâng, (sèng) = gâe̤ng sèng siŏh bēng-buōng bī-piâng, ~ = guó-éu siŭ-gāi.',
-'histfirst' => 'Có̤i cā',
-'histlast' => 'Có̤i dì',
-'historysize' => '({{PLURAL:$1|1|$1}} cê-ciék)',
+'viewpagelogs' => '看茲頁其歷史',
+'nohistory' => '茲頁無修改歷史。',
+'currentrev' => '最新版本',
+'revisionasof' => '$1其版本',
+'previousrevision' => '←加舊其版本',
+'nextrevision' => '加新其版本→',
+'currentrevisionlink' => '最新版本',
+'cur' => '仱',
+'next' => '下',
+'last' => '前',
+'page_first' => '頭',
+'page_last' => '尾',
+'histlegend' => "差別揀選:選擇卜比並其版本,再擪「回車」('''Enter''')或者擪底底其'''比並揀選版本'''。<br />
+說明:(伶)=共第一新其版本比並,(前)=共前蜀版本比並,~=過要修改。",
+'history-fieldset-title' => '瀏覽歷史',
+'history-show-deleted' => '囇刪掉去',
+'histfirst' => '最早',
+'histlast' => '最遲',
+'historysize' => '({{PLURAL:$1|$1字節}})',
 
 # Revision feed
-'history-feed-title' => 'Siŭ-gāi lĭk-sṳ̄',
-'history-feed-description' => 'Wiki gà̤-dēng cī miêng hiĕk gì siŭ-gāi lĭk-sṳ̄',
+'history-feed-title' => '修改歷史',
+'history-feed-description' => '維基百科敆茲頁其修改歷史',
 
 # Revision deletion
-'rev-delundel' => 'tāu/káung',
+'rev-delundel' => '㪗/藏',
+
+# Merge log
+'revertmerge' => '伓使合併',
 
 # Diffs
-'history-title' => '"$1" gì siŭ-gāi lĭk-sṳ̄',
-'lineno' => 'Dâ̤ $1 hòng:',
-'compareselectedversions' => 'Bī-piâng gēng-sōng bēng-buōng',
-'editundo' => 'chṳ̄-siĕu',
-'diff-multi' => '(Dài-dŏng ô {{PLURAL:$1|ék|$1}} bĭk bēng-buōng mò̤ hiēng-sê.)',
+'history-title' => '「$1」其修改歷史',
+'difference-title' => '「$1」調整以後𣍐蜀樣其地方',
+'difference-title-multipage' => '「$1」共「$2」臺中𣍐蜀樣其地方',
+'difference-multipage' => '(臺中𣍐蜀様其地方)',
+'lineno' => '第$1行:',
+'compareselectedversions' => '比並揀選版本',
+'showhideselectedversions' => '顯/藏揀選其調整',
+'editundo' => '取消',
+'diff-multi' => '{{PLURAL:$1}}(臺中有$2寫其$1萆版本無顯示)',
 
 # Search results
-'searchresults' => 'Sìng-tō̤ giék-guō',
-'searchresulttext' => 'Buóh liēu-gāi diŏh {{SITENAME}} sìng-tō̤ ùng-ciŏng gì gáing sâ̤ séng-sék, chiāng chăng-kō̤ [[{{ns:project}}:Sìng-tō̤]].',
-'searchsubtitle' => "Nṳ̄ sìng-tō̤ '''[[:$1]]'''",
-'searchsubtitleinvalid' => "Nṳ̄ sìng-tō̤ '''$1'''",
-'prevn' => 'sèng {{PLURAL:$1|$1}} hâung',
-'nextn' => 'â {{PLURAL:$1|$1}} hâung',
-'viewprevnext' => 'Káng ($1 {{int:pipe-separator}} $2) ($3).',
-'searchhelp-url' => 'Help:Mŭk-liŏh',
-'showingresults' => "Hiēng-sê téng #<b>$2</b> kăi-sṳ̄ gì {{PLURAL:$1|'''1'''|'''$1'''}} bĭk giék-guō.",
-'showingresultsnum' => "Hiēng-sê téng #<b>$2</b> kăi-sṳ̄ gì {{PLURAL:$3|'''1'''|'''$3'''}} bĭk giék-guō.",
+'searchresults' => '討結果',
+'searchresults-title' => '尋討「$1」其結果',
+'searchresulttext' => '更更価關於討{{SITENAME}}其內容,覷蜀覷[[{{MediaWiki:Helppage}}|{{int:help}}]]。',
+'searchsubtitle' => "汝是討'''[[:$1]]'''([[Special:Prefixindex/$1|所有「$1」開始其頁面]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|所有鏈遘「$1」其頁面]])",
+'searchsubtitleinvalid' => "汝討'''$1'''",
+'prevn' => '前{{PLURAL:$1}}$1萆',
+'nextn' => '後{{PLURAL:$1}}$1萆',
+'shown-title' => '每頁顯示$1{{PLURAL:$1|萆結果}}',
+'viewprevnext' => '看($1 {{int:pipe-separator}} $2)($3)。',
+'searchprofile-articles' => '內容頁',
+'searchprofile-images' => '多媒體',
+'searchprofile-everything' => '所有乇',
+'searchprofile-advanced' => '高級',
+'searchprofile-articles-tooltip' => '敆$1𡅏尋討',
+'searchprofile-project-tooltip' => '敆$1𡅏尋討',
+'searchprofile-images-tooltip' => '尋討文件',
+'search-result-size' => '$1 ({{PLURAL:$2|$2萆單詞}})',
+'search-redirect' => '(重定向 $1)',
+'search-suggest' => '汝其意思是伓是:$1',
+'searchrelated' => '相關其',
+'searchall' => '全部',
+'showingresults' => "顯示趁#<b>$2</b>開始其{{PLURAL:$1|'''$1'''萆結果}}。",
+'showingresultsnum' => "顯示趁#<b>$2</b>開始其{{PLURAL:$3|'''$3'''萆結果}}。",
 
 # Preferences page
-'preferences' => 'Siék-diâng',
-'mypreferences' => 'Nguāi gì siék-diâng',
-'prefs-edits' => 'Siŭ-gāi ché̤ṳ-só:',
-'changepassword' => 'Gāi-biéng mĭk-mā',
-'prefs-skin' => 'Puòi-hŭ',
-'datedefault' => 'Mò̤ siék-diâng',
-'prefs-datetime' => 'Nĭk-gĭ gâe̤ng sì-găng',
-'prefs-personal' => 'Ê̤ṳng-hô cṳ̆-lâiu',
-'prefs-rc' => 'Cī-bŏng gì gāi-biéng',
-'prefs-watchlist' => 'Gáng-sê-dăng',
-'prefs-misc' => 'Gì-tă',
-'saveprefs' => 'Bō̤-còng',
-'resetprefs' => 'Dṳ̀ng-sĭng siék-diâng',
-'searchresultshead' => 'Sìng-tō̤',
-'resultsperpage' => 'Mūi hiĕk huōng-ông-liông:',
-'recentchangescount' => 'Cī-bŏng gāi-biéng gì dà̤-mĕ̤k:',
-'savedprefs' => 'Nṳ̄ gì siék-diâng ī-gĭng ké̤ṳk bō̤-còng hō̤ lāu.',
-'timezonelegend' => 'Sì-kṳ̆',
-'localtime' => 'Buōng-dê sì-găng',
-'timezoneoffset' => 'Sì-chă¹',
-'servertime' => 'Hŭk-ô-ké sì-găng',
-'allowemail' => 'Â̤ kīng bĕk-nè̤ng huák diêng-piĕ ké̤ṳk nṳ̄',
-'prefs-files' => 'Ùng-giông',
-'youremail' => 'Diêng-piĕ:',
-'username' => 'Ê̤ṳng-hô-miàng:',
-'uid' => 'Ê̤ṳng-hô ID:',
-'yourrealname' => 'Cĭng miàng:',
-'yourlanguage' => 'Ngṳ̄-ngiòng:',
-'yournick' => 'Nguôi-hô̤:',
-'email' => 'Diêng-piĕ',
-'prefs-help-email' => '* Diêng-piĕ (kō̤-sōng): Â̤-kīng bĕk-nè̤ng mâ̤ báik nṳ̄ sĭng-hông cêu dĭk-ciék tŭng-guó nṳ̄ gì ê̤ṳng-hô-hiĕk hĕ̤k tō̤-lâung-hiĕk lièng-hiê nṳ̄.',
+'preferences' => '設定',
+'mypreferences' => '我其設定',
+'prefs-edits' => '修改數量:',
+'prefsnologin' => '未躒底其',
+'changepassword' => '改變密碼',
+'prefs-skin' => '皮膚',
+'datedefault' => '無設定',
+'prefs-datetime' => '日期共時間',
+'prefs-personal' => '用戶資料',
+'prefs-rc' => '這般其改變',
+'prefs-watchlist' => '監視單',
+'prefs-misc' => '其它',
+'saveprefs' => '保存',
+'resetprefs' => '清除未保存其改變',
+'searchresultshead' => '尋討',
+'resultsperpage' => '每頁訪問量:',
+'recentchangescount' => '這般改變其條目:',
+'savedprefs' => '汝其設定已經乞保存了。',
+'timezonelegend' => '時區:',
+'localtime' => '當地時間:',
+'timezoneuseserverdefault' => '使維基默認($1)',
+'timezoneuseoffset' => '其它(點出時差)',
+'timezoneoffset' => '時差',
+'servertime' => '服務器時間:',
+'guesstimezone' => '填充敆瀏覽器𡅏',
+'timezoneregion-africa' => '非洲',
+'timezoneregion-america' => '美洲',
+'timezoneregion-antarctica' => '南極洲',
+'timezoneregion-arctic' => '北極',
+'timezoneregion-asia' => '亞洲',
+'timezoneregion-atlantic' => '大西洋',
+'timezoneregion-australia' => '澳洲',
+'timezoneregion-europe' => '歐洲',
+'timezoneregion-indian' => '印度洋',
+'timezoneregion-pacific' => '太平洋',
+'allowemail' => '會肯別儂發電子郵件乞汝',
+'prefs-searchoptions' => '尋討',
+'prefs-namespaces' => '命名空間',
+'prefs-files' => '文件',
+'youremail' => '電子郵件:',
+'username' => '{{GENDER:$1|用戶名}}:',
+'uid' => '{{GENDER:$1|用戶}}ID:',
+'prefs-registration' => '開賬戶時間',
+'yourrealname' => '真實姓名:',
+'yourlanguage' => '語言:',
+'yournick' => '新其簽名:',
+'email' => '電子郵件',
+'prefs-help-email' => '電子郵件地址是愛寫就寫其,但是如果汝𣍐記密碼咯,密碼重置其時候需要茲。',
 
 # User rights
-'editusergroup' => 'Siŭ-gāi Ê̤ṳng-hô Cū',
+'editusergroup' => '修改用戶組',
 
 # Groups
-'group' => 'Cū:',
-'group-bot' => 'Gĭ-ké-nè̤ng',
-'group-sysop' => 'Guāng-lī-uòng',
-'group-bureaucrat' => 'Guăng-lièu',
-
-'group-bot-member' => 'Gĭ-ké-nè̤ng',
-'group-sysop-member' => 'Guāng-lī-uòng',
-'group-bureaucrat-member' => 'Guăng-lièu-cū',
+'group' => '組:',
+'group-bot' => '機器人',
+'group-sysop' => '管理員',
+'group-bureaucrat' => '官僚',
+
+'group-bot-member' => '機器人',
+'group-sysop-member' => '管理員',
+'group-bureaucrat-member' => '官僚組',
+'group-suppress-member' => '巡查員',
+
+'grouppage-autoconfirmed' => '{{ns:project}}:自動確認用戶',
+'grouppage-bot' => '{{ns:project}}:機器人',
+'grouppage-sysop' => '{{ns:project}}:管理員',
+'grouppage-bureaucrat' => '{{ns:project}}:官僚組',
+'grouppage-suppress' => '{{ns:project}}:巡查員',
 
 # Special:Log/newusers
-'newuserlogpage' => 'Kŭi dióng-hô̤ nĭk-cé',
+'newuserlogpage' => '開賬戶日誌',
+
+# Associated actions - in the sentence "You do not have permission to X"
+'action-edit' => '修改茲蜀頁',
 
 # Recent changes
-'recentchanges' => 'Cī-bŏng gì gāi-biéng',
-'recentchanges-summary' => 'Găk cī hiĕk dŭi-sùi wiki cī-bŏng dék sĭng gì gāi-biéng.',
-'rcnote' => 'Â-dā̤ sê <strong>{{PLURAL:$1|ék|$2}}</strong> gĕ̤ng ī-nô̤i (hiêng-câi sê $3) dék sĭng gì <strong>{{PLURAL:$1|1|$1}}</strong> hâung gāi-biéng.',
-'rclistfrom' => 'Hiēng-sê iù $1 kăi-sṳ̄ gì sĭng gāi-biéng',
-'rcshowhideminor' => '$1 guó-éu siŭ-gāi',
-'rcshowhidebots' => '$1 gĭ-ké-nè̤ng',
-'rcshowhideliu' => '$1 láuk-diē ê̤ṳng-hô',
-'rcshowhideanons' => '$1 mò̤-miàng ê̤ṳng-hô',
-'rcshowhidemine' => '$1 nguāi gì siŭ-gāi',
-'rclinks' => 'Hiēng-sê $2 gĕ̤ng ī-nô̤i dék sĭng gì $1 hâung gāi-biéng<br />$3',
-'diff' => 'chă',
-'hist' => 'sṳ̄',
-'hide' => 'Káung kī',
-'show' => 'Hiēng-sê',
+'recentchanges' => '這般其改變',
+'recentchanges-summary' => '敆維基茲頁跟蹤這般其改變。',
+'recentchanges-label-newpage' => '茲蜀萆修改創建新其蜀頁',
+'recentchanges-label-minor' => '茲是蜀萆過要修改',
+'recentchanges-label-bot' => '茲蜀萆修改是機器人做其',
+'rcnote' => "下底是{{PLURAL:$1|是 '''1'''改變|最後'''$1'''萆改變}}敆最後'''$2'''日,就像$4 $5。",
+'rclistfrom' => '顯示由$1開始其新其改變',
+'rcshowhideminor' => '$1過要修改',
+'rcshowhidebots' => '$1機器人',
+'rcshowhideliu' => '$1躒底用戶',
+'rcshowhideanons' => '$1無名用戶',
+'rcshowhidemine' => '$1我其修改',
+'rclinks' => '顯示$2日以內產生其$1回改變<br />$3',
+'diff' => '差',
+'hist' => '史',
+'hide' => '藏起',
+'show' => '顯示',
 'minoreditletter' => '~',
 'newpageletter' => '!',
 'boteditletter' => '^',
+'rc-enhanced-hide' => '藏起細節',
 
 # Recent changes linked
-'recentchangeslinked' => 'Siŏng-guăng gì gāi-biéng',
-'recentchangeslinked-feed' => 'Siŏng-guăng gì gāi-biéng',
-'recentchangeslinked-toolbox' => 'Siŏng-guăng gì gāi-biéng',
+'recentchangeslinked' => '相關其改變',
+'recentchangeslinked-feed' => '相關其改變',
+'recentchangeslinked-toolbox' => '相關其改變',
+'recentchangeslinked-page' => '頁面名:',
 
 # Upload
-'upload' => 'Siông-duòng ùng-giông',
-'uploadbtn' => 'Siông-duòng ùng-giông',
-'reuploaddesc' => 'Duōng kó̤ siông-duòng dăng-dăng.',
-'uploadnologin' => 'Mò̤ láuk-diē',
-'uploadnologintext' => 'Sĕng [[Special:UserLogin|láuk-diē]] ciáh â̤-sāi siông-duòng ùng-giông.',
-'uploaderror' => 'Siông-duòng ô dâng',
-'uploadlog' => 'siông-duòng nĭk-cé',
-'uploadlogpage' => 'Siông-duòng nĭk-cé',
-'uploadlogpagetext' => 'Â-dā̤ sê gé-luŏh cī-bŏng ùng-giông siông-duòng gì dăng-dăng.',
-'filename' => 'Ùng-giông-miàng',
-'filedesc' => 'Cūng-giék',
-'fileuploadsummary' => 'Cūng-giék:',
-'filesource' => 'Lài-nguòng:',
-'uploadedfiles' => 'Siông-duòng ùng-giông',
-'ignorewarning' => 'Mò̤ sê̤ṳ gīng-gó̤ bō̤-còng ùng-giông.',
-'ignorewarnings' => 'Mò̤ sê̤ṳ gīng-gó̤',
-'fileexists' => 'Ī-gĭng ô siŏh bĭk dè̤ng miàng ùng-giông, nṳ̄ nâ mâ̤ káuk-dêng nṳ̄ sê-ng-sê dŏng-cĭng páh-sáung gāi-biéng ĭ, chiāng giēng-chă <strong>[[:$1]]</strong>.
+'upload' => '上傳文件',
+'uploadbtn' => '上傳文件',
+'reuploaddesc' => '取消上傳,轉去上傳頁面',
+'uploadnologin' => '未躒底',
+'uploadnologintext' => '汝著$1才會使上傳文件。',
+'uploaderror' => '上傳有鄭',
+'uploadlog' => '上傳日誌',
+'uploadlogpage' => '上傳日誌',
+'uploadlogpagetext' => '下底是最近上傳其文件。
+卜挃更更好看其列表,看蜀看[[Special:NewFiles|新文件其列表]]。',
+'filename' => '文件名',
+'filedesc' => '總結',
+'fileuploadsummary' => '總結:',
+'filesource' => '來源:',
+'uploadedfiles' => '上傳文件',
+'ignorewarning' => '無視警告保存文件',
+'ignorewarnings' => '無視警告',
+'fileexists' => '名字蜀樣其文件已經存在去了。如果汝𣍐確定汝是伓是卜想刪掉伊,起動檢查蜀下<strong>[[:$1]]</strong>。
 [[$1|thumb]]',
-'uploadwarning' => 'Siông-duòng gīng-gó̤',
-'savefile' => 'Bō̤-còng ùng-giông',
-'uploadedimage' => 'siông-duòng "[[$1]]"',
-'uploadvirus' => 'Ciā ùng-giông ô bêng-dŭk! Sá̤-ciék: $1',
-'sourcefilename' => 'Nguòng-sṳ̄ ùng-giông-miàng:',
-'destfilename' => 'Mŭk-biĕu ùng-giông-miàng:',
-'watchthisupload' => 'Gáng-sê ciā hiĕk',
-'upload-success-subj' => 'Siông-diòng sìng-gŭng',
+'uploadwarning' => '上傳警告',
+'savefile' => '保存文件',
+'uploadedimage' => '已經上傳其「[[$1]]」',
+'uploadvirus' => '茲文件有病毒!
+細底:$1',
+'sourcefilename' => '源文件名:',
+'destfilename' => '目標文件名:',
+'watchthisupload' => '監視茲文件',
+'upload-success-subj' => '成功上傳',
+
+'license' => '版權聲明:',
+'license-header' => '版權說明',
 
 # Special:ListFiles
-'imgfile' => 'ùng-giông',
-'listfiles' => 'Ùng-giông dăng-dăng',
-'listfiles_date' => 'Nĭk-gĭ',
-'listfiles_name' => 'Miàng',
-'listfiles_user' => 'Ê̤ṳng-hô',
-'listfiles_size' => 'Chióh-cháung',
+'imgfile' => '文件',
+'listfiles' => '文件單單',
+'listfiles_date' => '日期',
+'listfiles_name' => '',
+'listfiles_user' => '用戶',
+'listfiles_size' => '尺寸',
 
 # File description page
-'file-anchor-link' => 'Ùng-giông',
-'imagelinks' => 'Lièng-giék',
-'linkstoimage' => 'Â-dā̤ gì hiĕk-miêng lièng gáu ciā ùng-giông:',
-'nolinkstoimage' => 'Mò̤ hiĕk-miêng lièng gáu ciā ùng-giông.',
-'uploadnewversion-linktext' => 'Siông-duòng ciā ùng-giông gì sĭng bēng-buōng',
+'file-anchor-link' => '文件',
+'filehist' => '文件歷史',
+'filehist-current' => '現刻時',
+'filehist-datetime' => '日期/時間',
+'filehist-user' => '用戶',
+'filehist-dimensions' => '維度',
+'filehist-comment' => '評論',
+'imagelinks' => '文件使用方法',
+'linkstoimage' => '下底{{PLURAL:$1|$1頁鏈接}}遘茲文件:',
+'nolinkstoimage' => '無鏈接遘茲蜀萆文件其頁面。',
+'uploadnewversion-linktext' => '上傳蜀萆新版本其茲萆文件。',
 
 # MIME search
-'download' => 'hâ-diòng',
+'download' => '下載',
 
 # Unwatched pages
-'unwatchedpages' => 'Mò̤ gáng-sê gì hiĕk-miêng',
+'unwatchedpages' => '無監視其頁面',
 
 # List redirects
-'listredirects' => 'Dṳ̀ng-sĭng dêng-hióng hiĕk dăng-dăng',
+'listredirects' => '重定向其單單',
 
 # Unused templates
-'unusedtemplateswlh' => 'gì-tă lièng-giék',
+'unusedtemplateswlh' => '其它鏈接',
 
 # Random page
-'randompage' => 'Sùi-biêng muōng káng',
+'randompage' => '隨便罔看',
 
 # Random redirect
-'randomredirect' => 'Muōng káng dṳ̀ng-sĭng dêng-hióng',
+'randomredirect' => '隨便重定向',
 
 # Statistics
-'statistics' => 'Só-gé̤ṳ',
-'statistics-header-users' => 'Ê̤ṳng-hô só-gé̤ṳ',
+'statistics' => '統計',
+'statistics-header-users' => '用戶統計',
 
-'disambiguationspage' => 'Template:Gì-ngiê',
+'disambiguationspage' => 'Template:歧義',
 
-'brokenredirects-edit' => 'gāi',
-'brokenredirects-delete' => 'chēng',
+'brokenredirects-edit' => '',
+'brokenredirects-delete' => '',
 
-'withoutinterwiki' => 'Mò̤ kuá wiki gì hiĕk',
-'withoutinterwiki-summary' => 'Â-dā̤ hiĕk-miêng mò̤ lièng gáu gì-tă ngṳ̄-ngiòng bēng-buōng gì kuá wiki lièng-giék:',
+'withoutinterwiki' => '無跨語言其鏈接',
+'withoutinterwiki-summary' => '下底其頁面無鏈接遘其它語言其版本。',
 
-'fewestrevisions' => 'Ké̤ṳk siŭ-gāi guó dék ciēu làu gì ùng-ciŏng',
+'fewestrevisions' => '修改最少其頁面',
 
 # Miscellaneous special pages
-'nbytes' => '{{PLURAL:$1|1|$1}} cê-ciék',
-'nlinks' => '{{PLURAL:$1|1|$1}} ciáh lièng-giék',
-'nmembers' => '{{PLURAL:$1|1|$1}} ciáh sìng-uòng',
-'wantedcategories' => 'Buóh dĭh gì lôi-biék',
-'wantedpages' => 'Buóh dĭh gì hiĕk',
-'mostlinked' => 'Ké̤ṳk lièng-giék dék sâ̤ làu gì hiĕk',
-'mostlinkedcategories' => 'Ké̤ṳk lièng-giék dék sâ̤ làu gì lôi-biék',
-'mostcategories' => 'Ô dék sâ̤ lôi-biék gì ùng-ciŏng',
-'mostimages' => 'Ké̤ṳk lièng-giék dék sâ̤ làu gì dù',
-'mostrevisions' => 'Ké̤ṳk siŭ-gāi guó dék sâ̤ làu gì ùng-ciŏng',
-'shortpages' => 'Dōi hiĕk',
-'longpages' => 'Dòng hiĕk',
-'protectedpages' => 'Bō̤-hô hiĕk',
-'listusers' => 'Ê̤ṳng-hô-dăng',
-'newpages' => 'Sĭng hiĕk',
-'newpages-username' => 'Ê̤ṳng-hô-miàng:',
-'ancientpages' => 'Dék gô gì hiĕk-miêng',
-'move' => 'Iè-dông',
-'movethispage' => 'Iè-dông ciā hiĕk',
+'nbytes' => '$1{{PLURAL:$1}}字節',
+'nlinks' => '$1隻{{PLURAL:$1|鏈接}}',
+'nmembers' => '$1隻成員{{PLURAL:$1}}',
+'wantedcategories' => '卜挃其類別',
+'wantedpages' => '卜挃其頁',
+'mostlinked' => '鏈接第一価其頁',
+'mostlinkedcategories' => '鏈接第一価其類別',
+'mostcategories' => '有第一価類別其頁面',
+'mostimages' => '鏈接第一価其文件',
+'mostrevisions' => '最近修改其頁面',
+'shortpages' => '短頁',
+'longpages' => '長頁',
+'protectedpages' => '保護頁',
+'listusers' => '用戶單',
+'newpages' => '新頁',
+'newpages-username' => '用戶名:',
+'ancientpages' => '最舊其頁面',
+'move' => '移動',
+'movethispage' => '移動茲頁',
 
 # Book sources
-'booksources' => 'Cṳ̆ nguòng',
-'booksources-search-legend' => 'Sìng-tō̤ cṳ̆ nguòng',
-'booksources-go' => 'Kó̤',
-'booksources-text' => 'Â-dā̤ sê mâ̤ cṳ̆ uōng-câng gì dăng-dăng, kō̤-nèng ô nṳ̄ buóh tō̤ gì cṳ̆ gì gáing sâ̤ séng-sék:',
+'booksources' => '書源',
+'booksources-search-legend' => '尋討書源',
+'booksources-go' => '',
+'booksources-text' => '下底是鏈接遘其它賣新書共舊書其站點其單單,固加可能有更多關於汝敆𡅏看其茲本書其信息:',
 
 # Special:Log
-'specialloguserlabel' => 'Ê̤ṳng-hô:',
-'speciallogtitlelabel' => 'Dà̤-mĕ̤k:',
-'log' => 'Nĭk-cé',
-'alllogstext' => "Siông-diòng (''upload''), chēng (''deletion''), bō̤-hô (''protection''), hŭng-sō̤ (''blocking''), gâe̤ng guāng-lī-uòng (''sysop'') nĭk-cé ciòng-buô hiēng-sê diŏh â-dā̤. Nṳ̄ â̤-sāi gēng-sōng nĭk-cé lôi-biék, ê̤ṳng-hô gì miàng, hĕ̤k-ciā 1 tiŏng hiĕk lì gāng-huá giék-guō.",
-'logempty' => 'Nĭk-cé diē-sié tō̤ mâ̤ diŏh hâung-mŭk.',
+'specialloguserlabel' => '表演者:',
+'speciallogtitlelabel' => '目標(稱呼或者用戶):',
+'log' => '日誌',
+'alllogstext' => '所有會使趁{{SITENAME}}獲得其日誌其都合併顯示。
+汝會使使揀選日誌類型、用戶名(大小寫敏感),或者受影響其頁面(大小寫敏感)其方法來縮小視角。',
+'logempty' => '日誌底裏討要𣍐著項目',
 
 # Special:AllPages
-'allpages' => 'Sū-iū hiĕk-miêng',
-'alphaindexline' => '$1 gáu $2',
-'nextpage' => ' 1 hiĕk ($1)',
-'prevpage' => 'Sèng 1 hiĕk ($1)',
-'allpagesfrom' => 'Iù ciā cê-mō̤ kăi-sṳ̄ gì miàng:',
-'allarticles' => 'Sū-iū ùng-ciŏng',
-'allinnamespace' => 'Sū-iū hiĕk-miêng ($1 miàng-kŭng-găng)',
-'allnotinnamespace' => 'Sū-iū hiĕk-miêng (mò̤ diŏh $1 miàng-kŭng-găng)',
-'allpagesprev' => 'Sèng 1 hiĕk',
-'allpagesnext' => ' 1 hiĕk',
-'allpagessubmit' => 'Kó̤',
-'allpagesprefix' => 'Áng cê-tàu hiēng-sê:',
-'allpagesbadtitle' => 'Nṳ̄ sṳ̆-ĭk gì biĕu-dà̤ buōng câng mò̤ ciĕ-tì.',
+'allpages' => '所有頁面',
+'alphaindexline' => '$1$2',
+'nextpage' => '下蜀頁($1)',
+'prevpage' => '前蜀頁($1)',
+'allpagesfrom' => '使下底其乇開始顯示頁:',
+'allarticles' => '所有文章',
+'allinnamespace' => '所有頁面($1命名空間)',
+'allnotinnamespace' => '所有頁面(無著$1其命名空間)',
+'allpagesprev' => '前蜀頁',
+'allpagesnext' => '下蜀頁',
+'allpagessubmit' => '',
+'allpagesprefix' => '按頭部顯示頁面:',
+'allpagesbadtitle' => '給出其頁面其標題是𣍐合法其,或者有蜀萆跨語言或跨維基其前綴。伊可能包括蜀萆或者価萆𣍐使廮標題底裏其字符。',
 
 # Special:Categories
-'categories' => 'Lôi-biék',
+'categories' => '類別',
 
 # Special:DeletedContributions
-'deletedcontributions' => 'Ké̤ṳk chēng lâi gì ê̤ṳng-hô góng-hióng',
-'deletedcontributions-title' => 'Ké̤ṳk chēng lâi gì ê̤ṳng-hô góng-hióng',
+'deletedcontributions' => '乞刪掉其用戶貢獻',
+'deletedcontributions-title' => '乞刪掉其用戶貢獻',
 
 # Special:LinkSearch
-'linksearch-ok' => 'Sìng-tō̤',
+'linksearch-ok' => '尋討',
+'linksearch-line' => '$1是趁$2𡅏鏈接過其',
 
 # Email user
-'emailuser' => 'Gié diêng-piĕ ké̤ṳk ĭ',
-'emailpage' => 'Gié diêng-piĕ ké̤ṳk ĭ',
-'defemailsubject' => '{{SITENAME}} diêng-piĕ',
-'noemailtitle' => 'Mò̤ diêng-piĕ dê-cī',
-'emailfrom' => 'Iù',
-'emailto' => 'Ké̤ṳk',
-'emailsubject' => 'Ciō-dà̤',
-'emailmessage' => 'Siĕu-sék',
-'emailsend' => 'Gié',
-'emailsent' => 'Diêng-piĕ huák chók lāu',
-'emailsenttext' => 'Nṳ̄ gì diêng-piĕ siĕu-sék ī-gĭng gié chók lāu.',
+'emailuser' => '寄電子郵件乞茲隻用戶',
+'emailpage' => '寄電子郵件乞用戶',
+'defemailsubject' => '{{SITENAME}}趁用戶「$1」𡅏底批',
+'noemailtitle' => '無電子郵件地址',
+'emailfrom' => '趁:',
+'emailto' => '遘:',
+'emailsubject' => '主題:',
+'emailmessage' => '消息:',
+'emailsend' => '寄',
+'emailccme' => '共我其消息其副本寄我一份電子郵件。',
+'emailsent' => '電子郵件發出了',
+'emailsenttext' => '汝其電子郵件消息已經寄出了。',
 
 # Watchlist
-'watchlist' => 'Nguāi gì gáng-sê-dăng',
-'mywatchlist' => 'Nguāi gì gáng-sê-dăng',
-'nowatchlist' => 'Nṳ̄ gì gáng-sê-dăng gà̤-dēng mò̤ dèu-mĕ̤k.',
-'watchnologin' => 'Mò̤ láuk diē',
-'addedwatchtext' => "\"[[:\$1]]\" ī-gĭng gă-tiĕng gáu nṳ̄ gì [[Special:Watchlist|gáng-sê-dăng]] lāu. Â-nĭk, ciā hiĕk gâe̤ng ĭ tō̤-lâung hiĕk gì gāi-biéng cêu â̤ hiēng-sê diŏh hē̤-nē̤; bêng-chiā, nṳ̄ gáng-sê gì hiĕk găk \"[[Special:RecentChanges|Có̤i-gê̤ṳng gì gāi-biéng]]\" dăng-dăng gà̤-dēng gì cê-tā̤ â̤ có̤ '''chŭ-chŭ-nuóh'''.
-
-Iŏk-sṳ̄ nṳ̄ buóh-siōng téng nṳ̄ gáng-sê-dăng gà̤-dēng dṳ̀ lâi ciā hiĕk, áik kóng-cié-dèu (''sidebar'') siông gì \"ng-sāi gáng-sê\", cêu â̤-sāi lāu.",
-'removedwatchtext' => '"[[:$1]]" hiĕk ī-gĭng téng nṳ̄ gì gáng-sê-dăng gà̤-dēng chēng lâi gó̤.',
-'watch' => 'Gáng-sê',
-'watchthispage' => 'Gáng-sê ciā hiĕk',
-'unwatch' => 'Ng-sāi gáng-sê',
-'watchnochange' => 'Nṳ̄ gì gáng-sê hiĕk-miêng cī-bŏng dŭ mò̤ nè̤ng dŭng.',
-'watchlist-details' => '{{PLURAL:$1|$1|$1}} tiŏng hiĕk ké̤ṳk gáng-sê, mò̤ bău-guăk tō̤-lâung-hiĕk.',
-'wlshowlast' => 'Hiēng-sê có̤i hâiu $1 dēng-cṳ̆ng $2 gĕ̤ng $3',
+'watchlist' => '我其監視單',
+'mywatchlist' => '我其監視單',
+'nowatchlist' => '汝其監視單𡅏無項目。',
+'watchnologin' => '未躒底',
+'addedwatchtext' => '頁面「[[:$1]]」已經加遘汝其[[Special:Watchlist|監視單]]。以後敆茲蜀頁其改變共伊關聯其討論頁都會列敆嚽塊。',
+'removewatch' => '趁汝其監視單臺中移去',
+'removedwatchtext' => '頁面「[[:$1]]」已經趁[[Special:Watchlist|汝其監視單]]移去了。',
+'watch' => '監視',
+'watchthispage' => '監視茲頁',
+'unwatch' => '伓使監視',
+'unwatchthispage' => '停止監視',
+'watchlist-details' => '{{PLURAL:$1}}$1頁敆汝其監視單𡅏,無算討論頁。',
+'wlshowlast' => '顯示最$1點鐘$2日$3',
+'watchlist-options' => '監視單選項',
 
 # Displayed when you click the "watch" button and it is in the process of watching
-'watching' => 'Gáng-sê...',
+'watching' => '監視...',
 
 # Delete
-'deletepage' => 'Chēng hiĕk',
-'confirm' => 'Káuk-nêng',
-'excontent' => "nô̤i-ṳ̀ng sê: '$1'",
-'excontentauthor' => "nô̤i-ṳ̀ng sê: '$1' (bêng-chiā cáuk-ciā nâ ô '[[Special:Contributions/$2|$2]]')",
-'exbeforeblank' => "dù táh cĭ-sèng gì nô̤i-ṳ̀ng sê: '$1'",
-'historywarning' => 'Gīng-gó̤: Nṳ̄ buóh-ái chēng lâi gì hiĕk-miêng ô lĭk-sṳ̄:',
-'confirmdeletetext' => 'Nṳ̄ cūng-bê ciŏng ciā hiĕk-miêng hĕ̤k ùng-giông lièng ĭ găk só-gé̤ṳ-kó gì lĭk-sṳ̄ ciòng-buô chēng lâi. Chiāng nṳ̄ káuk-nêng: nṳ̄ dŏng-cĭng buóh siōng cūng-kuāng có̤, nṳ̄ liēu-gāi cūng-kuāng có̤ gì hâiu-guō, bêng-chiā nṳ̄ cūng-kuāng có̤ sê hù-hăk [[{{MediaWiki:Policy-url}}]].',
-'actioncomplete' => 'Cék-hèng sìng-gŭng',
-'deletedtext' => '"$1" ī-gĭng ké̤ṳk chēng lâi go̤ lāu. Cī-bŏng chēng hiĕk gì gé-liŏh dŭ gé diŏh $2.',
-'dellogpage' => 'Chēng hiĕk nĭk-cé',
-'dellogpagetext' => 'Â-dā̤ sê gé-liŏh cī-bŏng chēng hiĕk gì dăng-dăng.',
-'deletionlog' => 'chēng hiĕk nĭk-cé',
-'deletecomment' => 'Nguòng-ĭng',
+'deletepage' => '刪頁',
+'confirm' => '確認',
+'excontent' => '乇是:「$1」',
+'excontentauthor' => '乇是:「$1」(並且作者囇有「[[Special:Contributions/$2|$2]]」)',
+'exbeforeblank' => '空白以前其乇是:「$1」',
+'historywarning' => "'''警告:'''汝卜想刪掉其頁面有蜀段大概$1隻{{PLURAL:$1|版本}}其它歷史:",
+'confirmdeletetext' => '汝準備全隻頁面共文章連伊敆蜀塊其歷史全部刪掉。
+請汝確認:汝當真卜想總款做,汝瞭解總款做其後果,並且汝總款做事符合[[{{MediaWiki:Policy-url}}]]其。',
+'actioncomplete' => '行動成功',
+'actionfailed' => '操作失敗',
+'deletedtext' => '「$1」已經乞刪掉去了。
+最近其刪除記錄看$2。',
+'dellogpage' => '刪頁日誌',
+'dellogpagetext' => '下底是最近刪掉其單單。',
+'deletionlog' => '刪除日誌',
+'deletecomment' => '原因:',
 
 # Rollback
-'rollback' => 'Gâe̤ng siŭ-gāi duōng kó̤',
-'rollback_short' => 'Duōng',
-'rollbacklink' => 'duōng',
-'rollbackfailed' => 'Duōng mâ̤ kó̤',
-'cantrollback' => 'Mò̤ bâing-huák huòi-tó̤i siŭ-gāi; sèng 1 ciáh góng-hióng-ciā sê ciā hiĕk mì-ék gì cáuk-ciā.',
-'alreadyrolled' => 'Mò̤ nièng-ngài huòi-tó̤i [[User:$2|$2]] ([[User talk:$2|Tō̤-lâung]]) có̤i âu sū có̤ gì [[$1]] siŭ-gāi; bĕk-nè̤ng ī-gĭng siū-gái hĕ̤k-ciā huòi-tó̤i ciā hiĕk-miêng go̤ lāu.
-
-Có̤i âu gì siŭ-gāi sê [[User:$3|$3]] ([[User talk:$3|Tō̤-lâung]]) sū có̤ gì.',
-'editcomment' => "Siŭ-gāi pàng-lâung sê: \"''\$1''\".",
-'revertpage' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|Talk]]) sū có̤ gì siŭ-gāi duōng kó̤ [[User:$1|$1]] gì sèng 1 bĭk bēng-buōng',
+'rollback' => '在修改轉去',
+'rollback_short' => '轉',
+'rollbacklink' => '轉',
+'rollbackfailed' => '轉𣍐去',
+'cantrollback' => '𣍐使恢復修改;最後其貢獻者是茲蜀頁其唯一其作者。',
+'alreadyrolled' => '𣍐使回滾最後蜀回[[User:$2|$2]] ([[User talk:$2|討論]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]])其[[:$1]]編輯;
+有其他儂已經編輯過了或者茲蜀頁已經乞回滾過了。
+
+最後蜀回茲蜀頁其修改是[[User:$3|$3]] ([[User talk:$3|討論]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]])改其。',
+'editcomment' => "修改評論是:「''$1''」。",
+'revertpage' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|Talk]])所做其修改轉去[[User:$1|$1]]其前蜀萆版本',
 
 # Protect
-'protectlogpage' => 'Bō̤-hô nĭk-cé',
-'protect-title' => 'Bō̤-hô "$1"',
-'prot_1movedto2' => '[[$1]] iè gáu [[$2]]',
-'protect-legend' => 'Káuk-nêng bō̤-hô',
-'protectcomment' => 'Nguòng-ĭng',
-'protect-level-autoconfirmed' => 'Hŭng-sō̤ mò̤ cé̤ṳ-cháh ê̤ṳng-hô̤',
-'protect-level-sysop' => 'Nâ guāng-lī-uòng',
-'protect-expiry-options' => '2 dēng-cṳ̆ng:2 hours,1 gĕ̤ng:1 day,3 gĕ̤ng:3 days,1 lā̤-buái:1 week,2 lā̤-buái:2 weeks,1 month:1 nguŏk-nĭk,3 nguŏk-nĭk:3 months,6 nguŏk-nĭk:6 months,1 nièng:1 year,īng-uōng:infinite',
-'restriction-type' => 'Guòng-âing:',
-'restriction-level' => 'Âing-cié dēng-gék:',
-'minimum-size' => 'Có̤i nâung chióh-cháung',
-'maximum-size' => 'Có̤i duâi chióh-cháung',
-'pagesize' => '(cê-ciék)',
+'protectlogpage' => '保護日誌',
+'protect-title' => '改變「$1」其保護等級',
+'prot_1movedto2' => '[[$1]]移遘[[$2]]',
+'protect-legend' => '確認保護',
+'protectcomment' => '原因:',
+'protect-level-autoconfirmed' => '囇允許自動確認用戶',
+'protect-level-sysop' => '囇允許管理員',
+'protect-expiry-options' => '1點鐘:1 hour,1 日:1 day,1禮拜:1 week,2禮拜:2 weeks,1間月日:1 month,3間月日:3 months,6間月日:6 months,1年:1 year,永遠:infinite',
+'restriction-type' => '權限:',
+'restriction-level' => '框定其等級:',
+'minimum-size' => '最嫩尺寸:',
+'maximum-size' => '最大尺寸:',
+'pagesize' => '(字節)',
 
 # Restrictions (nouns)
-'restriction-edit' => 'Siŭ-gāi',
-'restriction-move' => 'Iè-dông',
+'restriction-edit' => '修改',
+'restriction-move' => '移動',
 
 # Restriction levels
-'restriction-level-sysop' => 'cuòng bō̤-hô',
-'restriction-level-autoconfirmed' => 'buáng bō̤-hô',
-'restriction-level-all' => 'sū-iū dēng-gék',
+'restriction-level-sysop' => '全保護',
+'restriction-level-autoconfirmed' => '半保護',
+'restriction-level-all' => '所有等級',
 
 # Undelete
-'undeletepage' => 'Káng bêng-chiā hŭi-hók ké̤ṳk chēng lâi gì hiĕk-miêng',
-'viewdeletedpage' => 'Káng chēng lâi gì hiĕk',
-'undeleteextrahelp' => "Buóh gâe̤ng gó̤-lòng hiĕk dŭ hŭi-hók, chiāng ng-sāi sōng \"Hiĕk-miêng lĭk-sṳ̄\" â-dā̤ gì ăk-ăk, áik '''''Hŭi-hók''''' cêu â̤-sāi lāu. Buóh hŭi-hók gēng-sōng gì lĭk-sṳ̄, chiāng sōng-dĕk nṳ̄ buóh hŭi-hók gì hiĕk-miêng lĭk-sṳ̄ sèng-sāu gì ăk-ăk gái áik '''''Hŭi-hók'''''. Áik '''''Dṳ̀ng-sĭng siā''''' â̤ cháe̤ lâi pàng-lâung gáh-gáh gâe̤ng sōng-dĕk ăk-ăk.",
-'undeletehistory' => 'Nṳ̄ nâ hŭi-hók ciā hiĕk-miêng, sū-iū bēng-buōng dŭ â̤ hŭi-hók gáu siŭ-gāi lĭk-sṳ̄ diē-sié. Iŏk-sṳ̄ ciā hiĕk-miêng ké̤ṳk chēng lâi cĭ hâiu bô ô kŭi siŏh tiŏng dè̤ng miàng gì sĭng hiĕk-miêng, huòi câi-cā ké̤ṳk chēng lâi gì bēng-buōng â̤ chók-hiêng diŏh dék sĭng gì lĭk-sṳ̄ diē-sié, dáng-sê, sĭng hiĕk-miêng gì hiêng-sì bēng-buōng ĭng-nguòng mò̤ biéng.',
-'undeletebtn' => 'Hŭi-hók',
-'undeletereset' => 'Dṳ̀ng-sĭng siā',
-'undeletecomment' => 'Pàng-lâung:',
-'undelete-search-submit' => 'Sìng-tō̤',
+'undeletepage' => '看共恢復刪掉其頁面',
+'viewdeletedpage' => '看刪掉其頁',
+'undeleteextrahelp' => "卜想恢復茲蜀頁其全部歷史,伓使揀選任何複選框,再單擊'''''{{int:undeletebtn}}'''''。
+卜想選擇性恢復,勾選汝卜想恢復其修訂版本其複選款,再單擊'''''{{int:undeletebtn}}'''''。",
+'undeletehistory' => 'If you restore the page, all revisions will be restored to the history.
+If a new page with the same name has been created since the deletion, the restored revisions will appear in the prior history.',
+'undeletebtn' => '恢復',
+'undeletelink' => '看/恢復',
+'undeleteviewlink' => '看',
+'undeletereset' => '重新寫',
+'undeletecomment' => '原因:',
+'undelete-search-submit' => '尋討',
 
 # Namespace form on various pages
-'namespace' => 'Miàng-kŭng-găng:',
-'invert' => 'Huāng sōng',
+'namespace' => '命名空間:',
+'invert' => '反選',
+'blanknamespace' => '(主要)',
 
 # Contributions
-'contributions' => 'Ê̤ṳng-hô góng-hióng',
-'mycontris' => 'Nguāi gì góng-hióng',
-'uctop' => ' (dék sĭng)',
-'month' => 'Téng nguŏk-hông (gâe̤ng gáing cā):',
-'year' => 'Téng nièng-hông (gâe̤ng gáing cā):',
-
-'sp-contributions-newbies' => 'Nâ hiēng-sê sĭng kŭi dióng-hô gì góng-hióng',
-'sp-contributions-newbies-sub' => 'Ciáh lì gì',
-'sp-contributions-blocklog' => 'Hŭng-sō̤ nĭk-cé',
-'sp-contributions-deleted' => 'Ké̤ṳk chēng lâi gì ê̤ṳng-hô góng-hióng',
-'sp-contributions-talk' => 'Tō̤-lâung',
-'sp-contributions-search' => 'Sìng-tō̤ góng-hióng',
-'sp-contributions-username' => 'IP dê-cī hĕ̤k ê̤ṳng-hô-miàng:',
-'sp-contributions-submit' => 'Sìng-tō̤',
+'contributions' => '{{GENDER:$1|User}}用戶貢獻',
+'contributions-title' => '用戶對$1其貢獻',
+'mycontris' => '我其貢獻',
+'uctop' => '(當前)',
+'month' => '趁月(共更早):',
+'year' => '趁年(共更早):',
+
+'sp-contributions-newbies' => '囇顯示新開賬戶其貢獻',
+'sp-contributions-newbies-sub' => '才來其',
+'sp-contributions-blocklog' => '封鎖日誌',
+'sp-contributions-deleted' => '開除來其用戶貢獻',
+'sp-contributions-uploads' => '上傳',
+'sp-contributions-logs' => '日誌',
+'sp-contributions-talk' => '討論',
+'sp-contributions-search' => '尋討貢獻',
+'sp-contributions-username' => 'IP地址或者用戶名:',
+'sp-contributions-submit' => '尋討',
 
 # What links here
-'whatlinkshere' => 'Diē-nē̤ lièng gáu cē̤-nē̤',
-'whatlinkshere-title' => 'Lièng gáu $1 gì hiĕk-miêng',
-'linkshere' => "Â-dā̤ gì hiĕk-miêng lièng gáu '''[[:$1]]''':",
-'nolinkshere' => "Mò̤ hiĕk-miêng lièng gáu '''[[:$1]]'''.",
-'isredirect' => 'dṳ̀ng-sĭng dêng-hióng hiĕk',
-'whatlinkshere-prev' => '{{PLURAL:$1|sèng|sèng $1 hâung}}',
-'whatlinkshere-next' => '{{PLURAL:$1|â|â $1 hâung}}',
-'whatlinkshere-links' => '← lièng-giék',
+'whatlinkshere' => '什乇鏈遘嚽塊',
+'whatlinkshere-title' => '鏈接遘$1其頁面',
+'whatlinkshere-page' => '頁面:',
+'linkshere' => "下底其頁面鏈接遘'''[[:$1]]''':",
+'nolinkshere' => "無頁鏈接遘'''[[:$1]]'''。",
+'isredirect' => '重定向頁面',
+'isimage' => '文件鏈接',
+'whatlinkshere-prev' => '{{PLURAL:$1|前|前$1}}',
+'whatlinkshere-next' => '{{PLURAL:$1|下|下$1}}',
+'whatlinkshere-links' => '← 鏈接',
+'whatlinkshere-hideredirs' => '$1重定向',
+'whatlinkshere-hidelinks' => '$1鏈接',
+'whatlinkshere-hideimages' => '$1 文件鏈接',
+'whatlinkshere-filters' => '過濾器',
 
 # Block/unblock
-'blockip' => 'Hŭng-sō̤ ê̤ṳng-hô',
-'blockiptext' => 'Sāi-ê̤ṳng â-dā̤ gì dăng-dăng lì hŭng-sō̤ IP dê-cī hĕ̤k-ciā ê̤ṳng-hô-miàng gì siā guòng-âing. Cuòi nâ sê ôi lāu huòng-cī nè̤ng cáuk-ták wiki, bêng-chiā găi-dŏng hù-hăk [[{{MediaWiki:Policy-url}}|céng-cháik]]. Chiāng diŏh â-dā̤ siā giâ hŭng-sō̤ gì nguòng-ĭng (pī-ṳ̀-gōng, īng-ê̤ṳng ké̤ṳk cáuk-ták gì hiĕk-miêng).',
-'ipadressorusername' => 'IP dê-cī hĕ̤k ê̤ṳng-hô-miàng:',
-'ipbexpiry' => 'Guó-gĭ:',
-'ipbreason' => 'Nguòng-ĭng',
-'ipbreasonotherlist' => 'Bĕk gì nguòng-ĭng',
-'ipbreason-dropdown' => '*Pū-tŭng hŭng-sō̤ nguòng-ĭng
-** Gă-tiĕng gā gì séng-sék
-** Dù lâi hiĕk-miêng nô̤i-ṳ̀ng
-** Huák-buó bóng-só̤ séng-sék
-** Luâng siā ùng-cê
-** Có̤-hák / lièu-sê̤ṳ
-** Luâng kŭi dŏ̤ dióng-hô̤
-** Luâng kī ê̤ṳng-hô-miàng',
-'ipbcreateaccount' => 'Huòng-cī kŭi dióng-hô̤',
-'ipbemailban' => 'Huòng-cī ê̤ṳng-hô gié diêng-piĕ',
-'ipbenableautoblock' => 'Cê̤ṳ-dông hŭng-sō̤ ciā ê̤ṳng-hô siā-ê̤ṳng gì IP dê-cī',
-'ipbsubmit' => 'Hŭng-sō̤ ciā ê̤ṳng-hô',
-'ipbother' => 'Gì-tă sì-găng',
-'ipboptions' => '2 dēng-cṳ̆ng:2 hours,1 gĕ̤ng:1 day,3 gĕ̤ng:3 days,1 lā̤-buái:1 week,2 lā̤-buái:2 weeks,1 nguŏk-nĭk:1 month,3 nguŏk-nĭk:3 months,6 nguŏk-nĭk:6 months,1 nièng:1 year,īng-uōng:infinite',
-'ipbotheroption' => 'gì-tă',
-'ipbotherreason' => 'Gì-tă nguòng-ĭng:',
-'blockipsuccesssub' => 'Hŭng-sō̤ sìng-gŭng',
-'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] ké̤ṳk hŭng-sō̤ lāu.
-<br />Kó̤ [[Special:BlockList|IP hŭng-sō̤ dăng-dăng]] káng hŭng-sō̤ séng-sék.',
-'ipb-edit-dropdown' => 'Siŭ-gāi hŭng-sō̤ nguòng-ĭng',
-'ipb-unblock-addr' => 'Gāi-hŭng $1',
-'ipb-unblock' => 'Gāi-hŭng siŏh ciáh ê̤ṳng-hô hĕ̤k IP dê-cī',
-'ipb-blocklist' => 'Káng hŭng-sō̤ dăng-dăng',
-'unblockip' => 'Gāi-hŭng ê̤ṳng-hô',
-'ipusubmit' => 'Gāi-hŭng ciā dê-cī',
-'unblocked' => '[[User:$1|$1]] ī-gĭng ké̤ṳk gāi-hŭng lāu',
-'ipblocklist' => 'Ké̤ṳk hŭng-sō̤ gì IP dê-cī gâe̤ng ê̤ṳng-hô-miàng gì dăng-dăng',
-'ipblocklist-legend' => 'Tō̤ siŏh ciáh ké̤ṳk hŭng-sō̤ gì ê̤ṳng-hô',
-'ipblocklist-submit' => 'Sìng-tō̤',
-'infiniteblock' => 'īng-uōng',
-'anononlyblock' => 'nâ mò̤-miàng ê̤ṳng-hô',
-'createaccountblock' => 'huòng-cī kŭi dióng-hô̤',
-'ipblocklist-empty' => 'Cī tiŏng hŭng-sō̤ dăng-dăng sê kĕ̤ng gì.',
-'blocklink' => 'hŭng-sō̤',
-'unblocklink' => 'gāi-hŭng',
-'contribslink' => 'góng-hióng',
-'blocklogpage' => 'Hŭng-sō̤ nĭk-cé',
-'blocklogentry' => 'hŭng-sō̤ [[$1]], gáu $2 hâiu guó-gĭ, $3',
-'block-log-flags-anononly' => 'nâ mò̤-miàng ê̤ṳng-hô',
-'block-log-flags-nocreate' => 'huòng-cī kŭi dióng-hô̤',
-'ipb_expiry_invalid' => 'Guó-gĭ sì-găng mò̤-hâu.',
-'ipb_already_blocked' => '"$1" ī-gĭng ké̤ṳk nè̤ng hŭng-sō̤ lāu',
+'blockip' => '封鎖用戶',
+'blockiptext' => '使下底其表單來封鎖趁指定IP地址或者用戶名其寫入訪問。茲囇使廮𡅏防止破壞,固加著符合[[{{MediaWiki:Policy-url}}|政策]]。敆下底填底指定其原因(比如講:引用乞破壞其頁面)。',
+'ipadressorusername' => 'IP地址或者用戶名:',
+'ipbexpiry' => '過期:',
+'ipbreason' => '原因:',
+'ipbreasonotherlist' => '其它原因',
+'ipbreason-dropdown' => '*普通封鎖原因
+** 加添假其信息
+** 塗掉頁面內容
+** 發佈不實信息
+** 亂寫文字
+** 做獃/騷擾
+** 亂開賬戶
+** 亂起用戶名',
+'ipbcreateaccount' => '封鎖開賬戶',
+'ipbemailban' => '防止用戶寄電子郵件',
+'ipbenableautoblock' => '自動封鎖茲用戶其IP地址',
+'ipbsubmit' => '封鎖茲用戶',
+'ipbother' => '其它時間',
+'ipboptions' => '2 點鐘:2 hours,1 日:1 day,3 日:3 days,1 禮拜:1 week,2 禮拜:2 weeks,1 月日:1 month,3 月日:3 months,6 月日:6 months,1 年:1 year,永遠:infinite',
+'ipbotheroption' => '其它',
+'ipbotherreason' => '其它原因:',
+'blockipsuccesssub' => '封鎖成功',
+'blockipsuccesstext' => '[[Special:Contributions/$1|$1]]已經乞封鎖.<br />
+覷蜀覷[[Special:BlockList|封鎖單]]來瀏覽封鎖。',
+'ipb-edit-dropdown' => '修改封鎖原因',
+'ipb-unblock-addr' => '開封$1',
+'ipb-unblock' => '開封鎖蜀隻用戶或者IP地址',
+'ipb-blocklist' => '看封鎖單單',
+'unblockip' => '開放用戶',
+'ipusubmit' => '開放茲地址',
+'unblocked' => '[[User:$1|$1]]已經乞開放了。',
+'ipblocklist' => '乞封鎖其用戶',
+'ipblocklist-legend' => '討蜀隻乞封鎖其用戶',
+'ipblocklist-submit' => '尋討',
+'infiniteblock' => '永遠',
+'anononlyblock' => '囇無名用戶',
+'createaccountblock' => '防止開賬戶',
+'ipblocklist-empty' => '茲張封鎖單單是空其。',
+'blocklink' => '封鎖',
+'unblocklink' => '開封',
+'change-blocklink' => '修改封鎖情況',
+'contribslink' => '貢獻',
+'blocklogpage' => '封鎖日誌',
+'blocklogentry' => '封鎖[[$1]],遘$2時候過時,$3',
+'block-log-flags-anononly' => '囇無名用戶',
+'block-log-flags-nocreate' => '防止開賬戶',
+'ipb_expiry_invalid' => '過期時間無效。',
+'ipb_already_blocked' => '「$1」已經乞封鎖了',
 
 # Developer tools
-'lockconfirm' => 'Ciáng-sê, sō̤ kī ciā só-gé̤ṳ-kó.',
-'lockbtn' => 'Sō̤ kī só-gé̤ṳ-kó',
-'unlockbtn' => 'Kŭi só-gé̤ṳ-kó',
-'lockdbsuccesssub' => 'Só-gé̤ṳ-kó sō̤ hō̤ lāu',
-'databasenotlocked' => 'Só-gé̤ṳ-kó mò̤ sō̤',
+'lockconfirm' => '正式,我卜想鎖定數據庫。',
+'lockbtn' => '鎖定數據庫',
+'unlockbtn' => '開數據庫',
+'lockdbsuccesssub' => '數據庫鎖定好了',
+'databasenotlocked' => '茲數據庫無鎖。',
 
 # Move page
-'move-page-legend' => 'Iè-dông hiĕk-miêng',
-'movepagetext' => "Sāi-ê̤ṳng â-dā̤ gì dăng-dăng â̤ gâe̤ng hiĕk-miêng dṳ̀ng-sĭng kī-miàng, bêng-chiā ĭ ciòng-buô lĭk-sṳ̄ dŭ â̤ ké̤ṳk iè gáu sĭng miàng â-dā̤. Gô miàng â̤ biéng có̤ dṳ̀ng-dêng-hióng hiĕk-miêng. Lièng gáu gô hiĕk dà̤-mĕ̤k gì lièng-giék dŭ mò̤ gāi-biéng; chiāng káuk-nêng mò̤ huák-sĕng sĕ̤ng dṳ̀ng-dêng-hióng (''double redirect'') hĕ̤k-ciā sê ngài dṳ̀ng-dêng-hióng (''broken redirect''). Nṳ̄ ô dăng-dŏng hô-cáik lièng-giék ĭng-nguòng â̤ lièng gáu ciáng-káuk gì sū-câi.
-
-Cé̤ṳ-é, nâ ô găk sĭng dà̤-mĕ̤k gô-dā̤ mò̤ ùng-ciŏng (mò̤ bău-guăk páng hiĕk hĕ̤k-ciā sê mò̤ siŭ-gāi lĭk-sṳ̄ gì dṳ̀ng-dêng-hióng hiĕk) gì cìng-hióng â-dā̤, ciáh â̤ iè-dông. Cuòi cêu sê gōng, nṳ̄ â̤-sāi gâe̤ng hiĕk-miêng gì miàng gāi duōng go̤ iŏk-guō nṳ̄ tā-sĕng có̤ dâng go̤, dáng-sê nṳ̄ mâ̤-sāi hók-gái ī-gĭng còng-câi gì hiĕk-miêng.
-
-<b>GĪNG-GÓ̤!</b> Cuòi ô kō̤-nèng sāng-sĕng mâ̤ ê̤ṳ-lâiu gì gāi-biéng; cūng-kuāng có̤ cĭ-sèng, chiāng káuk-nêng nṳ̄ liēu-gāi hâiu-guō.",
-'movepagetalktext' => "Siŏng-guăng gì tō̤-lâung-hiĕk â̤ cê̤ṳ-dông gṳ̆ng ĭ iè gáu sĭng dà̤-mĕ̤k â-dā̤, '''dṳ̀-hĭ:'''
-* Sĭng dà̤-mĕ̤k ī-gĭng ô siŏh hiĕk ô nô̤i-ṳ̀ng gì tō̤-lâung-hiĕk, hĕ̤k-ciā
-* Nṳ̄ chṳ̄-siĕu â-dā̤ gì sōng-hâung.
-
-Nâ cūng-kuāng, nṳ̄ â̤-sāi cê-gă iè-dông hĕ̤k-ciā sê hăk-biáng hiĕk-miêng.",
-'movearticle' => 'Iè-dông ùng-ciŏng',
-'movenologin' => 'Muôi láuk-diē',
-'movenologintext' => 'Sĕng [[Special:UserLogin|láuk-diē]] ciáh â̤-sāi iè-dông hiĕk-miêng.',
-'newtitle' => 'Gáu sĭng dà̤-mĕ̤k',
-'move-watch' => 'Gáng-sê ciā hiĕk',
-'movepagebtn' => 'Iè-dông hiĕk-miêng',
-'pagemovedsub' => 'Iè-dông sìng-gŭng',
-'talkexists' => "'''Hiĕk-miêng buōng-sĭng ī-gĭng ké̤ṳk iè-dông go̤ lāu, dáng-sê tō̤-lâung-hiĕk mò̤ nièng-ngài iè-dông ĭng-ôi sĭng biĕu-dà̤ â-dā̤ ī-gĭng ô siŏh tiŏng tō̤-lâung-hiĕk lāu. Chiāng nṳ̄ cê-gă gâe̤ng cī lâng hiĕk biáng lâ.'''",
-'movedto' => 'iè gáu',
-'movetalk' => 'Iè-dông siŏng-guăng tō̤-lâung hiĕk',
-'movelogpage' => 'Iè-dông nĭk-cé',
-'movelogpagetext' => 'Â-dā̤ sê ké̤ṳk iè-dông guó gì hiĕk-miêng gì dăng-dăng.',
-'movereason' => 'Nguòng-ĭng',
-'delete_and_move' => 'Chēng lâi bêng-chiā iè-dông',
-'delete_and_move_confirm' => 'Ciáng-sê, chēng lâi cī miêng hiĕk',
+'move-page-legend' => '移動頁面',
+'movepagetext' => "使下底其表單來重新共茲蜀頁起蜀萆名字,移動伊所有其歷史遘伊其新名字。
+舊其標題會變成新其標題其重定向頁。
+汝會使自動更新重定向許蜀點遘原底其標題。
+如果伊結果伓是總款咯,許汝著檢查[[Special:DoubleRedirects|雙重重定向]]或者[[Special:BrokenRedirects|獃其重定向]]。
+汝著為鏈接會使繼續鏈遘伊應該跳轉其地方負責任。
+
+注意如果許塊已經有蜀頁去了,噲頁面就'''𣍐'''移過了,除開許囇是蜀萆重定向固加無舊底其修改歷史。
+茲其意思就是講如果汝名字起賺了,汝會使共茲蜀萆頁面重新起伊原底其名字,但是𣍐使覆蓋已經存在其頁面。
+
+'''警告!'''
+茲可能會對一般頁面造成過大其固加無辦法預見遘其改變;
+起動汝著敆做之前會意總款做其後果。",
+'movepagetalktext' => "相關其討論頁會自動共伊移遘'''無挃''':
+* 汝其新其用戶名已經有蜀頁有內容其討論頁,或者
+* 汝取消下底其框框。
+
+若總款,汝會使自家移動或者是合併頁面。",
+'movearticle' => '移動頁面',
+'movenologin' => '未躒底',
+'movenologintext' => '著[[Special:UserLogin|躒底]]才會使移動頁面。',
+'newtitle' => '遘新題目:',
+'move-watch' => '監視茲頁',
+'movepagebtn' => '移動頁面',
+'pagemovedsub' => '移動成功',
+'talkexists' => "'''茲蜀頁自家已經成功乞移開去了,但是討論頁𣍐使移開,因為已經有蜀萆敆新其標題。請手動共伊合併起了。'''",
+'movedto' => '移遘',
+'movetalk' => '移動相關討論頁',
+'movelogpage' => '移動日誌',
+'movelogpagetext' => '下底是乞移動過其頁其單單。',
+'movereason' => '原因:',
+'delete_and_move' => '刪掉並且移動',
+'delete_and_move_confirm' => '正式,刪掉茲蜀頁',
 
 # Namespace 8 related
-'allmessages' => 'Hiê-tūng siĕu-sék',
-'allmessagesname' => 'Miàng',
-'allmessagesdefault' => 'Nguòng-sṳ̄ gì ùng-cê',
-'allmessagescurrent' => 'Hiêng-sì gì ùng-cê',
-'allmessagestext' => 'Cī tiŏng dăng-dăng sê MediaWiki miàng-kŭng-găng â̤ ciĕ-tì gì hiê-tūng siĕu-sék.',
-'allmessagesnotsupportedDB' => "Mò̤ bâing-huák sāi-ê̤ṳng '''{{ns:special}}:Allmessages''', ĭng-ôi '''\$wgUseDatabaseMessages''' ī-gĭng cĕk lâi gó̤.",
+'allmessages' => '系統消息',
+'allmessagesname' => '名',
+'allmessagesdefault' => '默認其消息文字',
+'allmessagescurrent' => '現時其文字',
+'allmessagestext' => '茲是敆媒體維基命名空間底裏系統消息其蜀萆單單。
+如果汝卜想貢獻通用其媒體維基本地化服務,請訪問[//www.mediawiki.org/wiki/Localisation 媒體維基本地化]共[//translatewiki.net translatewiki.net]。',
+'allmessagesnotsupportedDB' => "茲蜀頁𣍐使其,因為'''\$wgUseDatabaseMessages'''已經乞禁止去了。",
+
+# Thumbnails
+'thumbnail-more' => '放大',
 
 # Tooltip help for the actions
-'tooltip-search' => 'Sìng-tō̤ {{SITENAME}} [alt-f]',
-'tooltip-save' => 'Bō̤-còng nṳ̄ gì gāi-biéng [alt-s]',
-'tooltip-watch' => 'Gă-tiĕng ciā hiĕk-miêng gáu nṳ̄ gì gáng-sê-hiĕk [alt-w]',
+'tooltip-pt-userpage' => '汝其用戶頁',
+'tooltip-pt-mytalk' => '汝其討論頁',
+'tooltip-pt-preferences' => '汝其設定',
+'tooltip-pt-login' => '希望汝躒底其;當然,無逼汝總款做。',
+'tooltip-pt-logout' => '躒出',
+'tooltip-ca-talk' => '茲蜀頁其討論',
+'tooltip-ca-edit' => '汝會使修改茲蜀頁。起動敆保存以前使預覽按鈕',
+'tooltip-ca-addsection' => '開始蜀萆新其部分',
+'tooltip-ca-viewsource' => '茲蜀頁乞保護起去。
+汝會使看伊其源代碼。',
+'tooltip-ca-protect' => '保護茲蜀頁',
+'tooltip-ca-delete' => '刪掉茲蜀頁',
+'tooltip-ca-move' => '移動茲蜀頁',
+'tooltip-ca-watch' => '共茲蜀頁加遘汝其監視單',
+'tooltip-ca-unwatch' => '共茲頁趁監視單𡅏移開去',
+'tooltip-search' => '尋討 {{SITENAME}} [alt-f]',
+'tooltip-search-fulltext' => '敆茲幾頁𡅏尋討茲文字',
+'tooltip-p-logo' => '覷蜀覷頭頁',
+'tooltip-n-mainpage' => '覷蜀覷頭頁',
+'tooltip-n-mainpage-description' => '覷蜀覷頭頁',
+'tooltip-n-recentchanges' => '維基百科最近其改變其單單',
+'tooltip-n-randompage' => '隨便罔看',
+'tooltip-t-whatlinkshere' => '鏈遘嚽塊其所有維基頁面其單單',
+'tooltip-t-contributions' => '茲蜀用戶其貢獻單單',
+'tooltip-t-emailuser' => '共茲蜀隻用戶發電子郵件',
+'tooltip-t-upload' => '上傳文件',
+'tooltip-t-specialpages' => '特殊頁其單單',
+'tooltip-t-print' => '茲蜀頁其會拍印其版本',
+'tooltip-ca-nstab-main' => '看蜀看內容頁',
+'tooltip-ca-nstab-user' => '覷蜀覷用戶頁',
+'tooltip-ca-nstab-special' => '茲是蜀萆特殊頁,汝𣍐使修改茲蜀頁。',
+'tooltip-ca-nstab-project' => '看工程頁',
+'tooltip-ca-nstab-image' => '看文件頁',
+'tooltip-ca-nstab-template' => '覷蜀覷模板',
+'tooltip-minoredit' => '共茲標記成過要修改',
+'tooltip-save' => '保存汝其改變 [alt-s]',
+'tooltip-preview' => '預覽汝其改變,起動敆汝保存以前使茲。',
+'tooltip-watch' => '共茲蜀頁加遘汝其監視單[alt-w]',
 
 # Attribution
-'anonymous' => '{{SITENAME}} gì mò̤ miàng ê̤ṳng-hô.',
-'lastmodifiedatby' => 'Ciā hiĕk-miêng sê diŏh $2, $1, iù  $3 có̤i-hâiu siŭ-gāi gì.',
+'anonymous' => '{{SITENAME}}其無名{{PLURAL:$1|用戶}}',
+'lastmodifiedatby' => '茲頁最後是$3著$1$2改變其。',
 
 # Image deletion
-'deletedrevision' => 'Ī-gĭng chēng lâi gì bēng-buōng $1.',
+'deletedrevision' => '刪掉舊其版本$1',
 
 # Browsing diffs
-'previousdiff' => '← Sèng 1 hâung chă-biék',
-'nextdiff' => ' 1 hâung chă-biék →',
+'previousdiff' => '← 舊其修改',
+'nextdiff' => '新其修改 →',
 
 # Media information
-'file-nohires' => 'Cuòi sê có̤i duâi chióh-cháung.',
+'file-nohires' => '無更高決斷',
 
 # Special:NewFiles
-'showhidebots' => '($1 gĭ-ké-nè̤ng)',
-'ilsubmit' => 'Sìng-tō̤',
-'bydate' => 'áng nĭk-gĭ',
+'showhidebots' => '($1機器人)',
+'ilsubmit' => '尋討',
+'bydate' => '按日期',
 
 # Metadata
-'metadata' => 'Nguòng-só-gé̤ṳ',
+'metadata' => '元數據',
 
-'exif-componentsconfiguration-0' => 'mò̤ còng-câi',
+'exif-componentsconfiguration-0' => '無存在',
 
-'exif-meteringmode-0' => 'Muôi báik',
+'exif-meteringmode-0' => '𣍐八',
 
-'exif-lightsource-0' => 'Muôi báik',
+'exif-lightsource-0' => '𣍐八',
 
-'exif-subjectdistancerange-0' => 'Muôi báik',
+'exif-subjectdistancerange-0' => '𣍐八',
 
 # External editor support
-'edit-externally' => 'Sāi nguôi-buô tiàng-sê̤ṳ piĕng-cék ciā ùng-giông',
-'edit-externally-help' => 'Chăng-kō̤ [//www.mediawiki.org/wiki/Manual:External_editors setup instructions] liēu-gāi gáing sâ̤ séng-sék.',
+'edit-externally' => '使外程序來編輯茲文件',
+'edit-externally-help' => '(參考[//www.mediawiki.org/wiki/Manual:External_editors setup instructions]來瞭解更価信息)',
 
 # 'all' in various places, this might be different for inflected languages
-'watchlistall2' => 'sū-iū',
-'namespacesall' => 'sū-iū',
-'monthsall' => 'gó̤-lòng nièng',
+'watchlistall2' => '所有',
+'namespacesall' => '所有',
+'monthsall' => '囫圇年',
 
 # Email address confirmation
-'confirmemail' => 'Káuk-nêng diêng-piĕ dê-cī',
-'confirmemail_invalid' => 'Káuk-nêng mā mò̤-hâu, kō̤-nèng ī-gĭng guó-gĭ lāu.',
-'confirmemail_needlogin' => 'Chiāng nṳ̄ sĕng $1 nṳ̄ gì diêng-piĕ dê-cī.',
-'confirmemail_loggedin' => 'Nṳ̄ gì diêng-piĕ dê-cī hiêng-câi ī-gĭng káuk-nêng lāu.',
-'confirmemail_error' => 'Bō̤-còng nṳ̄  káuk-nêng gì sèng-hâiu huák-sĕng ông-dà̤ lāu.',
-'confirmemail_body' => 'Tā-lĕng ô nè̤ng (kō̤-nèng sê nṳ̄) téng IP dê-cī $1 găk {{SITENAME}} sāi cī ciáh diêng-piĕ dê-cī cé̤ṳ-cháh lāu "$2" dióng-hô̤.
+'confirmemail' => '確定電子郵件地址',
+'confirmemail_invalid' => '確認碼無效。
+可能已經過期了。',
+'confirmemail_needlogin' => '汝著$1來確定汝其電子郵件地址。',
+'confirmemail_loggedin' => '汝其電子郵件地址現在已經確定去了。',
+'confirmemail_error' => '保存汝其確認其時候發現有鄭了。',
+'confirmemail_body' => '有人(可能是汝)敆IP地址$1𡅏已經使茲蜀萆電子郵件地址來註冊蜀萆賬戶「$2」去了。
 
-Ciā diêng-piĕ dê-cī nâ sê nṳ̄ gì, chiāng nṳ̄ páh kŭi â-dā̤ lièng-giék:
+卜想確認茲蜀萆賬戶當真是汝其,固加敆{{SITENAME}}激活電子郵件特點,許敆汝其瀏覽器𡅏拍開茲蜀萆鏈接:
 
 $3
 
-Nâ-sāi ĭ *ng-sê* nṳ̄, chiāng mŏ̤h chák ĭ. Gáu $4, káuk-nêng-mā â̤ guó-gĭ.',
+如果汝*無*註冊茲賬戶,單擊茲蜀萆鏈接來取消電子郵件確認:
+
+$5
+
+茲蜀萆確認代碼會敆$4時候過期。',
 
 # Delete conflict
-'deletedwhileediting' => 'Gīng-gó̤: Cī miêng hiĕk găk nṳ̄ kī-chiū siŭ-gāi cĭ hâiu ké̤ṳk chēng lâi go̤ lāu!',
-'recreate' => 'Dṳ̀ng-sĭng kŭi',
+'deletedwhileediting' => "'''警告:'''茲蜀頁已經敆汝編輯以前刪掉去了!",
+'recreate' => '重新開',
 
 # action=purge
-'confirm_purge_button' => 'Hō̤',
+'confirm_purge_button' => '',
 
 # Multipage image navigation
-'imgmultipageprev' => '← sèng 1 hiĕk',
-'imgmultipagenext' => 'â 1 hiĕk →',
-'imgmultigo' => 'Kó̤!',
+'imgmultipageprev' => '← 前蜀頁',
+'imgmultipagenext' => '下蜀頁 →',
+'imgmultigo' => '去!',
 
 # Table pager
-'ascending_abbrev' => 'sĭng',
-'descending_abbrev' => 'gáung',
-'table_pager_next' => ' 1 hiĕk',
-'table_pager_prev' => 'Sèng 1 hiĕk',
-'table_pager_first' => 'Tàu hiĕk',
-'table_pager_last' => 'Muōi hiĕk',
-'table_pager_limit' => 'Mūi hiĕk hiêng-sê $1 hâung',
-'table_pager_limit_submit' => 'Kó̤',
-'table_pager_empty' => 'Mò̤ giék-guō',
+'ascending_abbrev' => '',
+'descending_abbrev' => '',
+'table_pager_next' => '下蜀頁',
+'table_pager_prev' => '前蜀頁',
+'table_pager_first' => '頭頁',
+'table_pager_last' => '尾頁',
+'table_pager_limit' => '每頁顯示$1項目',
+'table_pager_limit_submit' => '',
+'table_pager_empty' => '無結果',
 
 # Auto-summaries
-'autosumm-blank' => 'Dù lâi ciòng-buô ùng-cê',
-'autoredircomment' => 'Dṳ̀ng-sĭng dêng-hióng gáu [[$1]]',
-'autosumm-new' => 'Sĭng hiĕk: $1',
+'autosumm-blank' => '都來空其頁',
+'autoredircomment' => '重定向頁面遘[[$1]]',
+'autosumm-new' => '新其頁面「$1」',
 
 # Live preview
-'livepreview-loading' => 'Tĕ̤k-chṳ̄...',
-'livepreview-ready' => 'Tĕ̤k-chṳ̄... Hō̤ lāu!',
+'livepreview-loading' => '載入...',
+'livepreview-ready' => '載入…好了!',
 
 # Watchlist editor
-'watchlistedit-raw-title' => 'Siŭ-gāi nguòng-sṳ̄ gáng-sê-dăng',
-'watchlistedit-raw-legend' => 'Siŭ-gāi nguòng-sṳ̄ gáng-sê-dăng',
-'watchlistedit-raw-titles' => 'Dà̤-mĕ̤k:',
-'watchlistedit-raw-submit' => 'Huăng-sĭng Gáng-sê-dăng',
-'watchlistedit-raw-removed' => '{{PLURAL:$1|1|$1}} bĭk dà̤-mĕ̤k ké̤ṳk chēng lâi:',
+'watchlistedit-raw-title' => '修改原始監視單',
+'watchlistedit-raw-legend' => '修改原始監視單',
+'watchlistedit-raw-titles' => '題目:',
+'watchlistedit-raw-submit' => '更新監視單',
+'watchlistedit-raw-removed' => '{{PLURAL:$1|$1萆題目}}已經刪掉了:',
 
 # Watchlist editing tools
-'watchlisttools-view' => 'Káng siŏng-guăng gāi-biéng',
-'watchlisttools-edit' => 'Káng gâe̤ng siŭ-gāi gáng-sê-dăng',
-'watchlisttools-raw' => 'Siŭ-gāi nguòng-sṳ̄ gáng-sê-dăng',
+'watchlisttools-view' => '看相關改變',
+'watchlisttools-edit' => '看共修改監視單',
+'watchlisttools-raw' => '修改原始監視單',
 
 # Special:SpecialPages
-'specialpages' => 'Dĕk-sṳ̀ hiĕk',
+'specialpages' => '特殊頁',
 
 );
index d83ef5c..312a62e 100644 (file)
@@ -24,16 +24,16 @@ $namespaceNames = array(
        NS_USER             => 'Декъашхо',
        NS_USER_TALK        => 'Декъашхон_дийцаре',
        NS_PROJECT_TALK     => '{{GRAMMAR:genitive|$1}}_дийцаре',
-       NS_FILE             => 'Ð¥lÑ\83м',
-       NS_FILE_TALK        => 'Ð¥lÑ\83ман_дийцаре',
+       NS_FILE             => 'Файл',
+       NS_FILE_TALK        => 'Файлан_дийцаре',
        NS_MEDIAWIKI        => 'MediaWiki',
        NS_MEDIAWIKI_TALK   => 'MediaWiki_дийцаре',
-       NS_TEMPLATE         => 'Куцкеп',
-       NS_TEMPLATE_TALK    => 'Куцкеп_дийцаре',
-       NS_HELP             => 'Гlо',
-       NS_HELP_TALK        => 'Гlон_дийцаре',
-       NS_CATEGORY         => 'Кадегар',
-       NS_CATEGORY_TALK    => 'Кадегар_дийцаре',
+       NS_TEMPLATE         => 'Кеп',
+       NS_TEMPLATE_TALK    => 'Кепан_дийцаре',
+       NS_HELP             => 'ГӀо',
+       NS_HELP_TALK        => 'ГӀо_дийцаре',
+       NS_CATEGORY         => 'Категори',
+       NS_CATEGORY_TALK    => 'Категорин_дийцаре',
 );
 
 $namespaceAliases = array(
@@ -47,21 +47,129 @@ $namespaceAliases = array(
        'Дийцаре_{{GRAMMAR:genitive|$1}}' => NS_PROJECT_TALK,
        'Сурт'             => NS_FILE,
        'Сурти_дийца'      => NS_FILE_TALK,
+       'Хlум'             => NS_FILE,
+       'Хlуман_дийцаре'   => NS_FILE_TALK,
        'Дийцаре_хlуман'   => NS_FILE_TALK,
        'МедйаВики'        => NS_MEDIAWIKI,
        'МедйаВики_дийца'  => NS_MEDIAWIKI_TALK,
        'MediaWiki_Дийцаре' => NS_MEDIAWIKI_TALK,
        'Дакъан'           => NS_TEMPLATE,
        'Дакъан_дийца'     => NS_TEMPLATE_TALK,
+       'Куцкеп'           => NS_TEMPLATE,
+       'Куцкеп_дийцаре'   => NS_TEMPLATE_TALK,
        'ГІо'              => NS_HELP,
        'ГІодан_дийца'     => NS_HELP_TALK,
+       'Гlо'              => NS_HELP,
+       'Гlон_дийцаре'     => NS_HELP_TALK,
        'Тоба'             => NS_CATEGORY,
-       'Тобан_дийца'      => NS_CATEGORY_TALK
+       'Тобан_дийца'      => NS_CATEGORY_TALK,
+       'Кадегар'          => NS_CATEGORY,
+       'Кадегар_дийцаре'  => NS_CATEGORY_TALK,
 );
 
 // Remove Russian aliases
 $namespaceGenderAliases = array();
 
+$specialPageAliases = array(
+       'Activeusers'               => array( 'Жигара_декъашхой' ),
+       'Allmessages'               => array( 'ГӀирса_хаамаш' ),
+       'Allpages'                  => array( 'Массо_агӀонаш' ),
+       'Ancientpages'              => array( 'Яззамаш_оцу_терахьца_тяххьара_тадар_дина_долу' ),
+       'Badtitle'                  => array( 'Хилийта_йиш_йоцу_цӀе' ),
+       'Blankpage'                 => array( 'Еса_агӀо' ),
+       'Block'                     => array( 'Блоктоха' ),
+       'Blockme'                   => array( 'Блоктоха_суна' ),
+       'Booksources'               => array( 'Жайнашан_хьосташ' ),
+       'BrokenRedirects'           => array( 'ДIахаьдна_долу_дIасахьажораш' ),
+       'Categories'                => array( 'Категореш' ),
+       'ChangeEmail'               => array( 'Хийца_e-mail' ),
+       'ChangePassword'            => array( 'Хийца_ишар' ),
+       'ComparePages'              => array( 'АгӀонаш_юстар' ),
+       'Confirmemail'              => array( 'Бакъе_e-mail' ),
+       'Contributions'             => array( 'Къинхьегам' ),
+       'CreateAccount'             => array( 'Кхолла_декъашхон_дӀаяздар' ),
+       'Deadendpages'              => array( 'Дика_йоцу_агӀонаш' ),
+       'DeletedContributions'      => array( 'ДӀабяхкина_къинхьегам' ),
+       'Disambiguations'           => array( 'Цхьатера_маьӀна_дерш' ),
+       'DoubleRedirects'           => array( 'ШалгӀа_дӀасахьажийнарш' ),
+       'EditWatchlist'             => array( 'Табе_тергаме_могӀам' ),
+       'Emailuser'                 => array( 'Декъашхочунга_кехат' ),
+       'Export'                    => array( 'Экспорт' ),
+       'Fewestrevisions'           => array( 'Наггахь_беш_болу_хицамаш' ),
+       'FileDuplicateSearch'       => array( 'Цхьатера_файлаш_лахар' ),
+       'Filepath'                  => array( 'Файл_йолче' ),
+       'Import'                    => array( 'Импорт' ),
+       'Invalidateemail'           => array( 'Адрес_бакъдар_юхадаккха' ),
+       'JavaScriptTest'            => array( 'JavaScript_тестировать_ян' ),
+       'BlockList'                 => array( 'Блоктоьхнарш' ),
+       'LinkSearch'                => array( 'Хьажоригаш_лахар' ),
+       'Listadmins'                => array( 'Куьгалхойн_могӀам' ),
+       'Listbots'                  => array( 'Шаболх_бечара_могӀам' ),
+       'Listfiles'                 => array( 'Файланши_могӀам' ),
+       'Listgrouprights'           => array( 'Декъашхошан_бакъонаш' ),
+       'Listredirects'             => array( 'ДIасахьажоран_могIам' ),
+       'Listusers'                 => array( 'Декъашхойн_могӀам' ),
+       'Lockdb'                    => array( 'Хааман_базан_блоктохар' ),
+       'Log'                       => array( 'Тептарш' ),
+       'Lonelypages'               => array( 'Байлахь_йисина_агIонаш' ),
+       'Longpages'                 => array( 'Беха_яззамаш' ),
+       'MergeHistory'              => array( 'Цхьаьнатоьхна_категореш' ),
+       'MIMEsearch'                => array( 'MIME_чухула_лахар' ),
+       'Mostcategories'            => array( 'Дуккха_категореш_тӀе_тоьхна_йолу_агӀонаш' ),
+       'Mostimages'                => array( 'Массарел_дуккха_лелайо_файлаш' ),
+       'Mostinterwikis'            => array( 'Дукха_юкъарвики_хьажоригаш' ),
+       'Mostlinked'                => array( 'Дуккха_хьажоригаш_тIе_тоьхна_йолу_агIонаш' ),
+       'Mostlinkedcategories'      => array( 'Дуккха_тӀе_хьажораш_йолу_категореш' ),
+       'Mostlinkedtemplates'       => array( 'Массарел_дуккха_а_леладо_кепаш' ),
+       'Mostrevisions'             => array( 'Сих_сиха_нисйина_йолу_агIонаш' ),
+       'Movepage'                  => array( 'АгӀона_цӀе_хийцар' ),
+       'Mycontributions'           => array( 'Сан_къинхьегам' ),
+       'Mypage'                    => array( 'Сан_агӀо' ),
+       'Mytalk'                    => array( 'Сан_дийцаре' ),
+       'Myuploads'                 => array( 'Сан_файлаш' ),
+       'Newimages'                 => array( 'Керла_файлаш' ),
+       'Newpages'                  => array( 'Керла_агӀонаш' ),
+       'PermanentLink'             => array( 'Гуттарлера_хьажориг' ),
+       'Popularpages'              => array( 'ГӀарялла_агӀонаш' ),
+       'Preferences'               => array( 'ГӀирсаш' ),
+       'Prefixindex'               => array( 'Хьалха_агIонашан_цIераш_хIотто_йеза' ),
+       'Protectedpages'            => array( 'ГIаролла_дина_агIонаш' ),
+       'Protectedtitles'           => array( 'ГIаролла_дина_цIераш' ),
+       'Randompage'                => array( 'Цахууш_нисйелла_агIо' ),
+       'Randomredirect'            => array( 'Цахууш_нисделла_дIасахьажор' ),
+       'Recentchanges'             => array( 'Керла_нисдарш' ),
+       'Recentchangeslinked'       => array( 'Кхуьнца_долу_нисдарш' ),
+       'Revisiondelete'            => array( 'ДӀадяхна_нисдарш' ),
+       'Search'                    => array( 'Лахар' ),
+       'Shortpages'                => array( 'Боцоа_яззамаш' ),
+       'Specialpages'              => array( 'Леррина_агӀонаш' ),
+       'Statistics'                => array( 'Бухехьдерг' ),
+       'Tags'                      => array( 'Билгалонаш' ),
+       'Unblock'                   => array( 'БлокдӀаякхар' ),
+       'Uncategorizedcategories'   => array( 'Категореш_йоцу_категореш' ),
+       'Uncategorizedimages'       => array( 'Категореш_йоцу_файлаш' ),
+       'Uncategorizedpages'        => array( 'Категореш_йоцу_агIонаш' ),
+       'Uncategorizedtemplates'    => array( 'Категореш_йоцу_кепаш' ),
+       'Undelete'                  => array( 'МеттахӀоттор' ),
+       'Unlockdb'                  => array( 'БлокдӀаякхар_ХБ' ),
+       'Unusedcategories'          => array( 'Лелош_доцу_категореш' ),
+       'Unusedimages'              => array( 'Лелош_доцу_файлаш' ),
+       'Unusedtemplates'           => array( 'Лелош_доцу_кепаш' ),
+       'Upload'                    => array( 'Файл_чуяккхар' ),
+       'UploadStash'               => array( 'ДӀахьулйина_файл_чуяккхар' ),
+       'Userlogin'                 => array( 'Чувалар/ялар' ),
+       'Userlogout'                => array( 'Аравалар/ялар' ),
+       'Userrights'                => array( 'Бакъона_урхалладар' ),
+       'Version'                   => array( 'Верси' ),
+       'Wantedcategories'          => array( 'Оьшуш_йолу_категореш' ),
+       'Wantedfiles'               => array( 'Оьшуш_йолу_файлаш' ),
+       'Wantedpages'               => array( 'Оьшуш_йолу_агIонаш' ),
+       'Wantedtemplates'           => array( 'Оьшуш_йолу_кепаш' ),
+       'Watchlist'                 => array( 'Тергаме_могӀам' ),
+       'Whatlinkshere'             => array( 'Хьажоригаш_кхузе' ),
+       'Withoutinterwiki'          => array( 'Кхечу_меттанашан_хьажориг_йоцу_агIонаш' ),
+);
+
 $magicWords = array(
        'redirect'                  => array( '0', '#дlасахьажайар\'', '\'#хьажайо\'', '\'#REDIRECT', '#перенаправление', '#перенапр', '#REDIRECT' ),
        'notoc'                     => array( '0', '__БАЦ_ЧУЛАЦАМ__', '__БАЦ_ЧУЛ__', '__БЕЗ_ОГЛАВЛЕНИЯ__', '__БЕЗ_ОГЛ__', '__NOTOC__' ),
@@ -223,14 +331,14 @@ $messages = array(
 'tog-editsection' => 'Гайта хьажориг «нисйе» аьлла хlора агlона',
 'tog-editsectiononrightclick' => 'Нисде дакъа шозза бакъехьар дахка тlетаlийча оцу кортан (JavaScript)',
 'tog-showtoc' => 'Гойти коьртнаш (оцу агlонашна лаххара 3 коьртнашца)',
-'tog-rememberpassword' => 'Даглаца сан дlавазвалар хlокху гlулкхдечу гlирса тlяхь (цхьан $1 {{PLURAL:$1|де|ден|динахь}})',
+'tog-rememberpassword' => 'Даглаца сан дlавазвалар/ялар хlокху гlулкхдечу гlирса тlяхь (цхьан $1 {{PLURAL:$1|де|ден|динахь}})',
 'tog-watchcreations' => 'Тlетоха ас кхоллина агlонаш тергаме могlам чу',
 'tog-watchdefault' => 'Тlетоха ас нисйина агlонаш тергаме могlам чу',
 'tog-watchmoves' => 'Тlетоха ас цlераш хийцина агlонаш тергаме могlам чу',
-'tog-watchdeletion' => 'Тlетоха ас дlайайина агlонаш тергаме могlам чу',
+'tog-watchdeletion' => 'Тlетоха ас дӀаяхина агlонаш тергаме могlам чу',
 'tog-minordefault' => 'Къастам бе нисйиначарн хlумцадеш кегийра долушсанна',
 'tog-previewontop' => 'Чуяккха хьалххьажар рéдоккхучу кора хьалха',
-'tog-previewonfirst' => 'Ð\93айÑ\82а Ñ\85Ñ\8cалÑ\85Ñ\85Ñ\8cажаÑ\80 Ñ\80éдоккÑ\85Ñ\83Ñ\87е Ð´ÐµÑ\85Ñ\8cа Ð²Ð¾Ð»Ñ\83Ñ\88',
+'tog-previewonfirst' => 'Ð\93айÑ\82а Ñ\85Ñ\8cалÑ\85Ñ\85Ñ\8cажаÑ\80 Ñ\82адаÑ\80Ñ\88 Ð´Ð° Ð´Ð¾Ð»Ð¸Ð¹Ñ\87а',
 'tog-nocache' => 'Ма латае гойтучун къайлаха латториг',
 'tog-enotifwatchlistpages' => 'Хаам бо зlе чухул, тергаме могlаман хийцамах лаьцна',
 'tog-enotifusertalkpages' => 'Хаам бо зlе чухул, долахь йолу дийцаре агlон хийцамах лаьцна',
@@ -252,34 +360,34 @@ $messages = array(
 'tog-diffonly' => 'Ма гайта агlон чулацам шина башхонца цхьатерра йолуш',
 'tog-showhiddencats' => 'Гайта къайлаха йолу категореш',
 'tog-noconvertlink' => 'Хааман хьажориг кхуллу гlирс дlабайа',
-'tog-norollbackdiff' => 'Ð\99Ñ\83Ñ\85 Ñ\8fккÑ\85инаÑ\87Ñ\83л Ñ\82lаÑ\8cÑ\85Ñ\8cа Ð¼Ð° Ð³Ð°Ð¹Ñ\82а ÐºÑ\8aаÑ\81Ñ\82аман башхо',
-'tog-useeditwarning' => 'Хаамбе Ð±Ð¸Ð½Ð° Ñ\85ийÑ\86амаÑ\88 Ð´Ó\80аÑ\8fзÑ\86абеÑ\88 Ð°Ñ\80а Ð²Ð¾Ð»учу хенахь',
+'tog-norollbackdiff' => 'ЮÑ\85а Ñ\8fккÑ\85инаÑ\87Ñ\83л Ñ\82Ó\80аÑ\8cÑ\85Ñ\8cа Ð¼Ð° Ð³Ð°Ð¹Ñ\82а Ð²ÐµÑ\80Ñ\81еÑ\88ан башхо',
+'tog-useeditwarning' => 'Хаамбе Ð±Ð¸Ð½Ð° Ñ\85ийÑ\86амаÑ\88 Ð´Ó\80аÑ\8fзÑ\86абеÑ\88 Ð°Ñ\81а Ð±Ð¾Ð»Ñ\85 Ð´Ó\80аÑ\82оÑ\81учу хенахь',
 
 'underline-always' => 'Даимна',
 'underline-never' => 'Цкъа а',
-'underline-default' => 'Лелайа хьажгlодириг нисйарца',
+'underline-default' => 'Лелайа браузеран нисйарца',
 
 # Font style option in Special:Preferences
-'editfont-style' => 'Тадар чохь долу йозан тайп:',
-'editfont-default' => 'Ð\99оза Ð¾Ñ\86Ñ\83 Ñ\85Ñ\8cажгlодиÑ\80иг Ð½Ð¸Ñ\81йинÑ\87Ñ\83Ñ\80а',
-'editfont-monospace' => 'Цхьатерра доцу йоза',
-'editfont-sansserif' => 'Аьтта доцу йоза',
-'editfont-serif' => 'Аьтта долу йоза',
+'editfont-style' => 'Тадар чохь долу шрифт:',
+'editfont-default' => 'Ð\91Ñ\80аÑ\83зеÑ\80ан Ð³Ó\80иÑ\80Ñ\81а Ñ\87Ñ\83Ñ\80а Ñ\88Ñ\80иÑ\84Ñ\82',
+'editfont-monospace' => 'Цхьатерра доцу шрифт',
+'editfont-sansserif' => 'Аьтта доцу шрифт',
+'editfont-serif' => 'Аьтта долу шрифт',
 
 # Dates
-'sunday' => 'кlиран де',
+'sunday' => 'кӀиран де',
 'monday' => 'Оршот',
 'tuesday' => 'Шинара',
 'wednesday' => 'Кхаара',
 'thursday' => 'Еара',
-'friday' => 'Пlераска',
+'friday' => 'ПӀераска',
 'saturday' => 'Шот',
-'sun' => 'Кlи',
+'sun' => 'КӀи',
 'mon' => 'Ор',
 'tue' => 'Ши',
 'wed' => 'Кх',
 'thu' => 'Еа',
-'fri' => 'Пle',
+'fri' => 'ПӀe',
 'sat' => 'Шот',
 'january' => 'январь',
 'february' => 'февраль',
@@ -317,19 +425,31 @@ $messages = array(
 'oct' => 'октябрь',
 'nov' => 'ноябрь',
 'dec' => 'декабрь',
+'january-date' => 'Январь $1',
+'february-date' => 'Февраль $1',
+'march-date' => 'Март $1',
+'april-date' => 'Апрель $1',
+'may-date' => 'Май $1',
+'june-date' => 'Июнь $1',
+'july-date' => 'Июль $1',
+'august-date' => 'Август  $1',
+'september-date' => 'Сентябрь $1',
+'october-date' => 'Октябрь $1',
+'november-date' => 'Ноябрь $1',
+'december-date' => 'Декабрь $1',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Категори|Категореш}}',
 'category_header' => 'Агlонаш оц категоречохь «$1»',
 'subcategories' => 'Бухаркатегореш',
-'category-media-header' => 'Ð¥Ó\80Ñ\83мнаш оцу категори чохь «$1»',
+'category-media-header' => 'Файлаш оцу категори чохь «$1»',
 'category-empty' => "''ХӀара категори хӀинца йаьсса ю.''",
 'hidden-categories' => '{{PLURAL:$1|Къайлаха категори|Къайлаха йолу категореш}}',
 'hidden-category-category' => 'Къайлаха йолу категореш',
-'category-subcat-count' => '{{PLURAL:$2|Ð¥Ó\80окÑ\85 ÐºÐ°Ñ\82егоÑ\80и Ñ\87оÑ\85Ñ\8c Ñ\8e Ñ\85Ó\80окÑ\85Ñ\83Ñ\8cна Ð±Ñ\83Ñ\85аÑ\80 ÐºÐ°Ñ\82егоÑ\80и.|{{PLURAL:$1|Ð\93ойÑ\82аÑ\88 $1 Ð±Ñ\83Ñ\85аÑ\80 ÐºÐ°Ñ\82егоÑ\80и|Ð\93ойÑ\82Ñ\83 $1 Ð±Ñ\83Ñ\85аÑ\80 ÐºÐ°Ñ\82егоÑ\80и|Гойту $1 бухар категори}} оцу $2.}}',
+'category-subcat-count' => '{{PLURAL:$2|Ð¥Ó\80окÑ\85 ÐºÐ°Ñ\82егоÑ\80и Ñ\87оÑ\85Ñ\8c Ñ\8e Ñ\85Ó\80окÑ\85Ñ\83Ñ\8cна Ð±Ñ\83Ñ\85аÑ\80 ÐºÐ°Ñ\82егоÑ\80и.|{{PLURAL:$1|Ð\93ойÑ\82аÑ\88 $1 Ð±Ñ\83Ñ\85аÑ\80 ÐºÐ°Ñ\82егоÑ\80и|Ð\93ойÑ\82Ñ\83 $1 Ð±Ñ\83Ñ\85аÑ\80 ÐºÐ°Ñ\82егоÑ\80еÑ\88|Гойту $1 бухар категори}} оцу $2.}}',
 'category-subcat-count-limited' => 'Хlокх категори чохь {{PLURAL:$1|$1 бухар категори|$1 бухар категореша|$1 бухар категореш}}.',
 'category-article-count' => '{{PLURAL:$2|ХӀокх категори чохь яц цхьа агӀо бе.|{{PLURAL:$1|Гойташ $1 агӀо|Гойту $1 агӀонаш|Гойту $1 агӀонаш}} хӀокх категорешца кху $2.}}',
-'category-article-count-limited' => 'Хlокх категори чохь {{PLURAL:$1|$1 агlо|$1 агlонаш|$1 агlонаш}}.',
+'category-article-count-limited' => 'ХӀокх категори чохь {{PLURAL:$1|$1 агӀо|$1 агӀонаш|$1 агӀонаш}}.',
 'category-file-count' => '{{PLURAL:$2|ХӀокх категори чохь цхьа файл бе яц.|{{PLURAL:$1|Гойта $1 файл|Гойту $1 файл|Гойту $1 файлаш}} хӀокх категорешца кху $2.}}',
 'category-file-count-limited' => 'ХӀокх категори чохь {{PLURAL:$1|$1 файл|$1 файл|$1 файлаш}}.',
 'listingcontinuesabbrev' => '(кхин дlа)',
@@ -345,9 +465,10 @@ $messages = array(
 'newwindow' => '(керлачу корехь)',
 'cancel' => 'Цаоьшу',
 'moredotdotdot' => 'Кхин дӀа…',
+'morenotlisted' => 'Кхин хӀума яц',
 'mypage' => 'Долахь йолу агӀо',
 'mytalk' => 'Сан дийцаре агӀо',
-'anontalk' => 'Ð\94ийÑ\86аÑ\80е Ñ\85Ó\80аÑ\80а IP-долÑ\83меÑ\82Ñ\82иг',
+'anontalk' => 'Ð\94ийÑ\86аÑ\80е Ñ\85Ó\80окÑ\85Ñ\83 IP-адÑ\80еÑ\81на',
 'navigation' => 'Навигаци',
 'and' => '&#32;а',
 
@@ -367,7 +488,7 @@ $messages = array(
 'vector-action-move' => 'Цlе хийца',
 'vector-action-protect' => 'Гlаролла дé',
 'vector-action-undelete' => 'Меттахlоттадé',
-'vector-action-unprotect' => 'Гlароллех къаста',
+'vector-action-unprotect' => 'ГӀароллех къаста',
 'vector-simplesearch-preference' => 'Шуьйра лахаран хьехар лата де (декъа «Хьушйерг» кечйарца)',
 'vector-view-create' => 'Кхоллар',
 'vector-view-edit' => 'Нисйé',
@@ -382,14 +503,14 @@ $messages = array(
 'errorpagetitle' => 'Гlалат',
 'returnto' => 'Юхагlо оцу агlоне $1.',
 'tagline' => 'Гlирс хlокхуьна бу {{grammar:genitive|{{SITENAME}}}}',
-'help' => 'Ð\9dиÑ\81воÑ\85аам',
+'help' => 'Ð\93Ó\80о',
 'search' => 'Лаха',
 'searchbutton' => 'Лаха',
-'go' => 'Дехьа вала',
-'searcharticle' => 'Дехьа вала',
+'go' => 'Дехьа хьажа',
+'searcharticle' => 'Дехьа хьажа',
 'history' => 'Истори',
 'history_short' => 'Истори',
-'updatedmarker' => 'Керла яккхина со чуваьллачултlаьхьа',
+'updatedmarker' => 'Керла яккхина сона гинчултӀаьхьа',
 'printableversion' => 'Зорба туху верси',
 'permalink' => 'Даиман йолу хьажориг',
 'print' => 'Зорба тоха',
@@ -400,6 +521,7 @@ $messages = array(
 'create-this-page' => 'Кхолла хlара агlо',
 'delete' => 'ДӀаяккха',
 'deletethispage' => 'ДӀаяккха хӀара агӀо',
+'undeletethispage' => 'ХӀара агӀо меттахӀоттор',
 'undelete_short' => 'Меттахlоттайé $1 {{PLURAL:$1|нисйинарг|нисйинарш|нисйинарш}}',
 'viewdeleted_short' => 'Хьажар {{PLURAL:$1|$1 дlадаьккхина нийсдар|$1 дlадаьхна нийсдарш|$1 дlадаьхна нийсдарш}}',
 'protect' => 'Гlаролла дé',
@@ -407,80 +529,81 @@ $messages = array(
 'protectthispage' => 'Гlаролла дé хlокху агlон',
 'unprotect' => 'ГӀароллех къаста',
 'unprotectthispage' => 'ГӀароллех къаста',
-'newpage' => 'Керла агlо',
-'talkpage' => 'Дийцаре йила хlара агlо',
+'newpage' => 'Керла агӀо',
+'talkpage' => 'Дийцаре йила хӀара агӀо',
 'talkpagelinktext' => 'Дийцаре',
-'specialpage' => 'Белха агlо',
-'personaltools' => 'Долахь болу гlирсаш',
+'specialpage' => 'Белха агӀо',
+'personaltools' => 'Долахь болу гӀирсаш',
 'postcomment' => 'Керла дакъа',
 'articlepage' => 'Хьажа яззаме',
 'talk' => 'Дийцаре',
 'views' => 'Хьажарш',
-'toolbox' => 'Гlирсаш',
-'userpage' => 'Хьажа декъашхочуьна агlоне',
-'projectpage' => 'Хьажа кхолламан агlоне',
-'imagepage' => 'Ð¥Ñ\8cажа Ñ\85\83ман Ð°Ð³lоне',
-'mediawikipage' => 'Хьагайта хааман агlо',
-'templatepage' => 'Хьажа куцкепа агlоне',
-'viewhelppage' => 'СÑ\85Ñ\8cаÑ\8dÑ\86а Ð½Ð¸Ñ\81воÑ\85аам',
+'toolbox' => 'ГӀирсаш',
+'userpage' => 'Хьажа декъашхочуьна агӀоне',
+'projectpage' => 'Хьажа кхолламан агӀоне',
+'imagepage' => 'Ð¥Ñ\8cажа Ñ\84айлан Ð°Ð³Ó\80оне',
+'mediawikipage' => 'Хьагайта хааман агӀо',
+'templatepage' => 'Хьажа кепа агӀоне',
+'viewhelppage' => 'СÑ\85Ñ\8cаÑ\8dÑ\86а Ð³Ó\80о',
 'categorypage' => 'Хьажа категореши агӀоне',
 'viewtalkpage' => 'Хьажа дийцаре',
 'otherlanguages' => 'Кхечу маттахь дерш',
-'redirectedfrom' => '(Дlасахьажийна кху $1)',
-'redirectpagesub' => 'Агlо-дlасахьажайар',
-'lastmodifiedat' => 'Хlокху агlон тlаьххьаралера хийцам: $2, $1.',
-'viewcount' => 'Хlокху агlонга хьойсина $1 {{PLURAL:$1|за|за|за}}.',
-'protectedpage' => 'Гlароллийца йолу агlо',
-'jumpto' => 'Ð\94еÑ\85Ñ\8cавала оцу:',
-'jumptonavigation' => 'навигаци',
+'redirectedfrom' => '(ДӀасахьажийна кху $1)',
+'redirectpagesub' => 'АгӀо-дӀасахьажайар',
+'lastmodifiedat' => 'ХӀокху агӀон тӀаьххьаралера хийцам: $2, $1.',
+'viewcount' => 'ХӀокху агӀонга хьойсина $1 {{PLURAL:$1|за|за|за}}.',
+'protectedpage' => 'ГӀароллийца йолу агӀо',
+'jumpto' => 'Ð\94еÑ\85Ñ\8cагÓ\80о оцу:',
+'jumptonavigation' => 'Ð\9dавигаци',
 'jumptosearch' => 'лаха',
-'view-pool-error' => 'Бехк цабиллар доьха, хlинц гlулкхдириг йоьттина йу.
-Каьчна дуккха дехарш хlокху агlонтlе хьажарца.
-Дехар до, собардеш а йуха хьажа хlокху агlонтlе жим тlаьхьо.
+'view-pool-error' => 'Бехк цабиллар доьха, хӀинц гӀулкхдириг йоьттина ю.
+Каьчна дуккха дехарш хӀокху агӀонтӀе хьажарца.
+Дехар до, собардеш а юха хьажа хӀокху агӀонтӀе жим тӀаьхьо.
 
 $1',
-'pool-timeout' => 'СаÑ\86о Ð²ÐµÐ·Ð° Ñ\85ан Ñ\82lех йаьлла',
-'pool-queuefull' => 'Дехаршан чоь йуззина йу',
+'pool-timeout' => 'Ð\91локÑ\82оÑ\85а ÐµÐ·Ð° Ñ\85ан Ñ\82Ó\80ех йаьлла',
+'pool-queuefull' => 'Дехаршан чоь юьззина ю',
 'pool-errorunknown' => 'Дойзаш доцу гlалат',
 
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
 'aboutsite' => '{{grammar:genitive|{{SITENAME}}}} лаьцна',
 'aboutpage' => 'Project:Цуьнах лаьцна',
-'copyright' => 'Чулацам лело мега догlуш хиларца оцу $1.',
-'copyrightpage' => '{{ns:project}}:Куьг де бакъо',
-'currentevents' => 'Хlинцлера хилларш',
-'currentevents-url' => 'Project:Хlинцлера хилларш',
-'disclaimers' => 'Бехк тlе ца эцар',
-'disclaimerpage' => 'Project:Бяхк тlецалацар',
-'edithelp' => 'Нийсвохаам оцу тадарна',
-'edithelppage' => '{{ns:project}}:Нийсвохаам_оцу_тадарна',
+'copyright' => 'Чулацам лело мега догӀуш хиларца оцу $1.',
+'copyrightpage' => '{{ns:project}}:Авторан бакъонаш',
+'currentevents' => 'ХӀинцлера хилларш',
+'currentevents-url' => 'Project:ХӀинцлера хилларш',
+'disclaimers' => 'Бехк тӀе ца эцар',
+'disclaimerpage' => 'Project:Бяхк тӀецалацар',
+'edithelp' => 'ГӀо оцу тадарна',
 'helppage' => 'Help:Чулацам',
 'mainpage' => 'Коьрта агӀо',
-'mainpage-description' => 'Коьрта агlо',
+'mainpage-description' => 'Коьрта агӀо',
 'policy-url' => 'Project:Бакъо',
-'portal' => 'ЮкÑ\8aаÑ\80алла',
+'portal' => 'ЮкÑ\8aаÑ\80аллин ÐºÐ¾Ð²',
 'portal-url' => 'Project:Юкъараллин ков',
-'privacy' => 'Ð\91алалÑ\8eÑ\82Ñ\82а къайлаха',
-'privacypage' => 'Project:Ð\91алалÑ\8eÑ\82Ñ\82а къайлаха',
+'privacy' => 'Ð\9fолиÑ\82ика къайлаха',
+'privacypage' => 'Project:Ð\9fолиÑ\82ика къайлаха',
 
-'badaccess' => 'Тlекхачарехь гlалат',
+'badaccess' => 'ТӀекхачарехь гӀалат',
 'badaccess-group0' => 'Шуьга кхочуш далур дац дехарца деш дерг',
-'badaccess-groups' => 'Дехарца деш дерг кхочуш далундерш бу хlара декъашхой оцу {{PLURAL:$2|тобанашах|тобанах}} $1.',
+'badaccess-groups' => 'Дехарца деш дерг кхочуш далундерш бу хӀара декъашхой оцу {{PLURAL:$2|тобанашах|тобанах}} $1.',
 
 'versionrequired' => 'Оьшу MediaWiki тайпанара $1',
-'versionrequiredtext' => 'Болх бан хlоку агlонца оьшу MediaWiki тайпан $1. Хьажа. [[Special:Version|лелочу тайпанара башхонах лаьцна хаам]].',
+'versionrequiredtext' => 'Болх бан хӀоку агӀонца оьшу MediaWiki тайпан $1. Хьажа. [[Special:Version|лелочу тайпанара башхонах лаьцна хаам]].',
 
-'ok' => 'Хlаъ',
+'ok' => 'ХӀаъ',
 'pagetitle' => '$1 — {{SITENAME}}',
 'pagetitle-view-mainpage' => '{{SITENAME}}',
 'retrievedfrom' => 'Хьост — «$1»',
 'youhavenewmessages' => 'Хьуна кхечи $1 ($2).',
 'newmessageslink' => 'керла хаамаш',
-'newmessagesdifflink' => 'тlаьххьара хийцамаш',
+'newmessagesdifflink' => 'тӀаьххьара хийцамаш',
 'youhavenewmessagesfromusers' => 'Хьуна кхачанна $1 {{PLURAL:$3|$3 декъашхочунгара|$3 декъашхошкара|$3 декъашхошкара}} ($2).',
+'youhavenewmessagesmanyusers' => 'Хьона еъна $1 дукху декъашхошкар ($2).',
+'newmessageslinkplural' => '{{PLURAL:$1|керла хаам}}',
+'newmessagesdifflinkplural' => '{{PLURAL:$1|тӀаьхьара бина хийцамаш}}',
 'youhavenewmessagesmulti' => 'Хьуна кхаьчна керла хаам оцу $1',
 'editsection' => 'нисйé',
-'editsection-brackets' => '[$1]',
 'editold' => 'нисйé',
 'viewsourceold' => 'хьажа йолш йолучу ишаре',
 'editlink' => 'нисйé',
@@ -488,7 +611,7 @@ $1',
 'editsectionhint' => 'Нисде даакъа: $1',
 'toc' => 'Чулацам',
 'showtoc' => 'гайта',
-'hidetoc' => 'дlайаккха',
+'hidetoc' => 'кÑ\8aайлаÑ\8fккха',
 'collapsible-collapse' => 'къайла яккха',
 'collapsible-expand' => 'хьайаста',
 'thisisdeleted' => 'Хьажа йа меттахlоттайé $1?',
@@ -504,6 +627,8 @@ $1',
 'feed-atom' => 'Атом',
 'feed-rss' => 'RSS',
 'red-link-title' => '$1 (ишта агlо йоцуш йу)',
+'sort-descending' => 'Ма хийла нисяр',
+'sort-ascending' => 'Ма хила нисяр',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'Яззам',
@@ -514,99 +639,181 @@ $1',
 'nstab-image' => 'Файл',
 'nstab-mediawiki' => 'Хаам',
 'nstab-template' => 'Кеп',
-'nstab-help' => 'Ð\9dиÑ\81воÑ\85аам',
+'nstab-help' => 'Ð\93Ó\80о',
 'nstab-category' => 'Категори',
 
 # Main script and global functions
 'nosuchaction' => 'Ишта дийриг дац',
-'nosuchspecialpage' => 'Ишта белха агlо йац',
+'nosuchspecialpage' => 'Иштта белхан агӀо яц',
+'nospecialpagetext' => '<strong>Иштта белхан агӀо яц.</strong>
+
+Белхан агӀонашан могӀам: [[Special:SpecialPages|{{int:specialpages}}]].',
 
 # General errors
 'error' => 'Гlалат',
 'databaseerror' => 'Гlалат хаамийн бухера',
+'laggedslavemode' => 'Тергам бе: агӀона чохь керла йаьхинарш ца хила мега.',
 'readonly' => 'Блоктоьхна дӀайаздар хаамийн бухе',
+'enterlockreason' => 'Билгал де блоктохаран бахьна а и чекх йолу хан а.',
 'missing-article' => 'Хlокху чохь кароезаш йолу хьан дехарца йозан агlонаш цакарийна «$1» $2.
 
 Иштнарг наггахь хуьлу хьажориг дlайаьккхина йалхь йа хийцам бина тиша хьажоригца дехьа вала гlоьртича.
 
 Нагахьсан гlулкх цуьнах доьзна дацахь, хьуна карийна гlирс латточехь гlалат.
\94еÑ\85аÑ\80 Ð´Ð¾, Ñ\85аам Ð±Ðµ Ð¾Ñ\86Ñ\83Ñ\8cнаÑ\85 [[Special:ListUsers/sysop|адаманкÑ\83Ñ\8cйгалÑ\85ога]], Ð³Ð¾Ð¹Ñ\82Ñ\83Ñ\88 URL.',
+Дехар до, хаам бе оцуьнах [[Special:ListUsers/sysop|куьйгалхога]], гойтуш URL.',
 'missingarticle-rev' => '(верси № $1)',
 'missingarticle-diff' => '(тейп тайпнара: $1, $2)',
+'readonly_lag' => 'Хаамашан базина цхьана хан блоктоьхна, хаамашан базан сервераш нисялца.',
 'internalerror' => 'Чоьхьара гlалат',
 'internalerror_info' => 'Чоьхьара гlалат: $1',
+'fileappenderrorread' => 'Тар ца дели еша «$1» тӀетухучу хенахь.',
+'fileappenderror' => 'Тар ца дели тӀетоха «$1» оцунах «$2».',
+'filecopyerror' => 'Йиш яц копий ян «$1» оцунах «$2».',
+'filerenameerror' => 'Файлан «$1» цӀе хийца «$2» йиш яц.',
 'filedeleteerror' => 'ДӀаяккха цатарло файл «$1».',
+'directorycreateerror' => 'Йиш яц директори «$1» кхолла.',
+'filenotfound' => 'Файл «$1» каро йиш яц.',
+'fileexistserror' => 'Файл «$1» дӀаязяан йиш яц: файл йолуш ю.',
+'unexpected' => 'БIегIийла йоцу маьIна: «$1»=«$2».',
+'formerror' => 'ГӀалат: йиш яц хӀара формаш дӀакхачо',
+'badarticleerror' => 'И хӀума кхочушъ дан йиш яц хӀокху агӀонехь.',
+'cannotdelete' => 'Цатарло дӀаяккха я цӀе хийца «$1».
+АгӀо хьалхо дӀаяккхина хила тарло',
 'cannotdelete-title' => 'Цатарло агӀо дӀаяккха «$1»',
 'badtitle' => 'Цамегаш йолу цlе',
 'badtitletext' => 'Дехарца йолу агlонан цlе нийса яц, йаьсса ю, хила мега нийса ца хlоттийна меттаюкъар йа юкъарвики цlе. Хила мега, цlарца цамагош йолу саберг.',
-'perfcachedts' => 'Лахара хаам схьаэца кэша чура иза тӀаьхьара цӀинялла $1. Кэша чохь латтаё оцул $4 кӀезиг {{PLURAL:$4|дӀаяздарш|дӀаяздарш|дӀаяздарш}}.',
+'perfcached' => 'Лахара хаам схьаэца кэша чура цундела тӀехьарлаьра хийцамаш гойтуш бац. Кэша чохь латтаё оцул $1  кӀезиг {{PLURAL:$1|дӀаяздар|дӀаяздарш}}.',
+'perfcachedts' => 'Лахара хаам схьаэца кэша чура иза тӀаьхьара цӀинялла $1. Кэша чохь латтаё оцул $4 кӀезиг {{PLURAL:$4|дӀаяздар|дӀаяздарш}}.',
+'wrong_wfQuery_params' => 'Хилийта йиш йоцу параметраш хӀокху функцин wfQuery()<br />
+Функци: $1<br />
+Жоп дехар: $2',
 'viewsource' => 'Хьажар',
+'viewsource-title' => 'Агӏона $1 дуьххьарлера йозане хьажар',
+'actionthrottled' => 'Сиххалин доза тохар',
 'protectedpagetext' => 'ХӀара агӀо дӀакъойлина йу рé цадаккхийта.',
 'viewsourcetext' => 'Хьоьга далундерг хьажар а дезахь хlокху агlон чура йоза хьаэцар:',
-'protectedinterface' => 'ХӀара схьгайтарна гӀирса хаамаш латтош йолу агӀо йу. Адаманкуьйгалхошна бен иза хийца цало.',
-'exception-nologin' => 'Ахьа хӀой вовзийтина вац',
+'protectedinterface' => 'ХӀара схьгайтарна гӀирса хаамаш латтош йолу агӀо ю. Куьйгалхошна бен иза хийца цало.',
+'sqlhidden' => '(SQL жоп дехар къайладаккха)',
+'namespaceprotected' => 'ХӀан бакъо яц анна цӀераш чохь тадарш да «$1».',
+'customcssprotected' => 'Хьан бакъо яц хӀара CSS-агӀо тая, иза кхечу декъашхочун гӀерс болу дера.',
+'customjsprotected' => 'Хьан бакъо яц хӀара JavaScript-агӀо тая, иза кхечу декъашхочун гӀерс болу дера.',
+'mycustomcssprotected' => 'Хьан бакъо яц хӀара CSS агӀо тая.',
+'mycustomjsprotected' => 'Хьан бакъо яц JavaScript агӀо тая.',
+'exception-nologin' => 'Ахьа хӀой вовзийтина/йовзийтина вац/яц',
+
+# Virus scanner
+'virus-scanfailed' => 'сканиран гӀалат (код $1)',
+'virus-unknownscanner' => 'йозуш йоцу антивирус:',
 
 # Login and logout pages
+'logouttext' => "'''Хьо аравела/ела.'''
+Хьан йиш ю {{grammar:genitive|{{SITENAME}}}} чохь хьой ца вовзийташ/йовзийташ болх бан я <span class='plainlinks'>[$1 кхин чувала/яла ]</span> хьой чохь хила цӀарца я кхин цӀарца.
+Цхьа йолу агӀонаш чохь хьо хьай цӀарца болх беш сана хила тарло ишта ца хилийта керлаякха браузеран кэш.",
 'welcomeuser' => 'Марша ДогӀийла, $1!',
-'yourname' => 'Декъашхон цlе:',
-'userlogin-yourname' => 'Декъашхон цӀе',
-'userlogin-yourname-ph' => 'Язъе декъашхон цӀе',
-'yourpassword' => 'Ишар:',
-'userlogin-yourpassword' => 'Ишар',
-'userlogin-yourpassword-ph' => 'Язъе ишар',
-'createacct-yourpassword-ph' => 'Язъе ишар',
-'yourpasswordagain' => 'Юха язъйе ишар:',
-'createacct-yourpasswordagain' => 'Бакъе ишар',
-'createacct-yourpasswordagain-ph' => 'Кхин цкъа язъе ишар',
-'remembermypassword' => 'Даглаца сан дlавазвалар хlокху гlулкхдечу гlирса тlяхь (цхьан $1 {{PLURAL:$1|ден|динахь|динахь}})',
-'userlogin-remembermypassword' => 'Дагахь латт ве со',
+'yourname' => 'Декъашхочун цӀе:',
+'userlogin-yourname' => 'Декъашхочун цӀе',
+'userlogin-yourname-ph' => 'Язъе декъашхочун цӀе',
+'yourpassword' => 'Пароль:',
+'userlogin-yourpassword' => 'Пароль',
+'userlogin-yourpassword-ph' => 'Язъе хьай пароль',
+'createacct-yourpassword-ph' => 'Язъе пароль',
+'yourpasswordagain' => 'Юха язъе пароль:',
+'createacct-yourpasswordagain' => 'Бакъе пароль',
+'createacct-yourpasswordagain-ph' => 'Кхин цкъа язъе пароль',
+'remembermypassword' => 'Даглаца сан дӀавазвалар/ялар хӀокху гӀулкхдечу гӀирса тӀяхь (цхьан $1 {{PLURAL:$1|ден|динахь|динахь}})',
+'userlogin-remembermypassword' => 'Дагахь латт ве/е со',
+'userlogin-signwithsecure' => 'Ларийна цхьаьнакхетар',
 'yourdomainname' => 'Хьан машан меттиг:',
-'login' => 'Вовзийта хьой гlирсан',
-'nav-login-createaccount' => 'Вовзийта хьой / дlавазло',
+'password-change-forbidden' => 'Хьан йиш яц хӀокху вики чохь пароль хийца.',
+'login' => 'Системин чугӀо',
+'nav-login-createaccount' => 'Вовзийта/Йовзийта хьой / дӀавазло/дӀаязло',
 'loginprompt' => 'Ахьа бакъо йала йеза оцу «cookies» хьайна вовзийта лаахь гlирсан.',
-'userlogin' => 'Чу вала йа дlавазло',
-'userloginnocreate' => 'Вовзийта хьой',
-'logout' => 'Ара валар',
-'userlogout' => 'Ара валар',
-'notloggedin' => 'Хьо вовзита веза гlирсан',
-'nologin' => "Хlинца дlа вазвин вац? '''$1'''.",
-'nologinlink' => 'Кхолла керла дlавазвалар',
-'createaccount' => 'Дlавазве керла декъашхо',
+'userlogin' => 'Довзийтар я декъашхочун дӀаяздар кхоллар',
+'userloginnocreate' => 'Довзийта',
+'logout' => 'Болх дӀаберзор',
+'userlogout' => 'Болх дӀаберзор',
+'notloggedin' => 'Хьо вовзийта/йовзийта гlирсан',
+'userlogin-noaccount' => 'Декъашхочун дӀаяздар дац хьа?',
+'userlogin-joinproject' => '{{grammar:genitive|{{SITENAME}}}} юкъахӀотта',
+'nologin' => "Декъашхочун дӀаяздар дац хьа? '''$1'''.",
+'nologinlink' => 'Кхолла декъашхочун дӀаяздар',
+'createaccount' => 'Кхолла декъашхочун дӀаяздар',
 'gotaccount' => "Дlавазвелла вуй хьо? '''$1'''.",
-'gotaccountlink' => 'Вовзийта хьой',
-'createaccountmail' => 'хааман зlене хула',
+'gotaccountlink' => 'Довзийта',
+'userlogin-resetlink' => 'Чуволу/йолу хаам биц бела?',
+'userlogin-resetpassword-link' => 'Пароль кхоссар',
+'helplogin-url' => 'Help:Системин довзийтар',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Системин чудаха гӀодар]]',
+'createacct-join' => 'ДӀаязбе лахахь хай хаам.',
+'createacct-emailrequired' => 'Электронни почтан адрес',
+'createacct-emailoptional' => 'Электронни почтан адрес (ца яздича мега)',
+'createacct-email-ph' => 'ДӀаязде электронни почтан адрес',
+'createaccountmail' => 'хааман зӀене хула',
+'createacct-realname' => 'Хьан цӀе (ца язйича мега)',
 'createaccountreason' => 'Бахьан:',
 'createacct-reason' => 'Бахьна',
 'createacct-reason-ph' => '{{PLURAL:$1|агӀо|агӀонаш}}‎',
-'loginerror' => 'Гlалат ду декъашхо вовзарехь',
+'createacct-captcha' => 'Кхерамзалла хьажар',
+'createacct-imgcaptcha-ph' => 'ДӀаязде хьайна лакхахь гуш долу йоза',
+'createacct-submit' => 'Кхолла декъашхочун дӀаяздар',
+'createacct-benefit-heading' => '{{SITENAME}} кхолийна хьо санначу наха.',
+'createacct-benefit-body1' => '{{PLURAL:$1|нисдар|нисдарш}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|яззам|яззамаш}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|декъашхо|декъашхой}} тӀаьхьарачу хенахь',
+'badretype' => 'Ахьа язъен ишарш цхьатера яц',
+'userexists' => 'Ахьа язъен декъашхочун цӀе йолуш ю, дехар до кхин цӀе харжар.',
+'loginerror' => 'Гlалат ду декъашхо вовзарехь/йовзарехь',
+'createacct-error' => 'ДӀаяздар кхуллуш гӀалат ду',
+'createaccounterror' => 'Декъашхочун дӀаяздар кхолла йиш яц: $1',
 'nocookiesforlogin' => '{{int:nocookieslogin}}',
-'loginsuccesstitle' => 'Хьо вовзар хаз чакхдели',
+'noname' => 'Ахьа магийтина йолу декъашхочун цӀе билгал йина яц.',
+'loginsuccesstitle' => 'Хьан пароль тӀеэца, марша догӀила Википеди чу!',
 'loginsuccess' => 'Хlинца ахьа болх бó оцу цlарца $1.',
-'nosuchuser' => 'Декъашхо цlарца $1 воцаш ву.
-Декъашхой цlераш хаалуш йу дlайазвалрца элраш.
-Нийса юьй хьажа цlе йа [[Special:UserLogin/signup|дlайазвалар кхолла керла]].',
-'wrongpassword' => 'Ахьа язъйина йолу ишар нийса яц. Хьажа йуху цхьаъз.',
-'mailmypassword' => 'Схьаэца керла ишар',
+'nosuchuser' => 'Цlарца $1 декъашхо вац/яц.
+Декъашхой цlераш хаалуш йу дlайазвалрца/яларца элраш.
+Нийса юьй хьажа цlе йа [[Special:UserLogin/signup|дlаяздар кхолла керла]].',
+'nosuchusershort' => 'Ишта «$1» цӀе йолу декъашхо вац/яц. Хьажа цӀе нийса язйина юй.',
+'nouserspecified' => 'Ахьа декъашхочун цӀе билгал ян езаш ю.',
+'login-userblocked' => 'ХӀара декъашхо блоктоьхна ву/ю. Системин чувала/яла магийна дац.',
+'wrongpassword' => 'Ахьа язйина йолу пароль нийса яц. Хьажа юху цхьаъз.',
+'wrongpasswordempty' => 'Дехар до, язъе еса йоцу пароль.',
+'mailmypassword' => 'Яийта керла пароль электронан почтехула',
+'passwordremindertitle' => 'Декъашхочун {{grammar:genitive|{{SITENAME}}}}  пароль дагайаийтар',
+'noemail' => 'ЦӀе $1 йолу декъашхочун электронни адрес яздина дац.',
+'noemailcreate' => 'Ахьа нийса электронни почтан адрес дӀаяздан деза',
+'passwordsent' => 'Керла пароль декъашхочун $1 электронни адрес тӀе дӀахьажина. Дехар до, керла пароль еъча юху системин чугӀо.',
+'blocked-mailpassword' => 'Хьан IP-адрес ца тадарш дан магийна дац, цуьндела пароль меттахӀотош йолу функци блоктоьхна ю.',
+'mailerror' => 'Кехат дохьуьйтуш гӀалат ду: $1',
 'emailauthenticated' => 'Хьан почтан адрес бакъдина $2 $3.',
 'accountcreated' => 'Дlавазвар кхоллина дели',
 'accountcreatedtext' => 'Кхоллина декъашхо дlавазвар $1.',
 'loginlanguagelabel' => 'Мотт: $1',
 
 # Change password dialog
-'resetpass' => 'Ð\98Ñ\88аÑ\80 Ñ\85ийÑ\86а',
+'resetpass' => 'ХийÑ\86а Ð¿Ð°Ñ\80олÑ\8c',
 'resetpass_text' => '<!-- Кхузахь язъде хьай йоза -->',
-'resetpass_header' => 'Жамlаш дlаязвеллачуьна ишар хийцар',
-'oldpassword' => 'Шираелла ишар:',
-'newpassword' => 'Керла ишар:',
-'retypenew' => 'Юха язъйе керла ишар:',
-'resetpass-submit-loggedin' => 'Хийца ишар',
+'resetpass_header' => 'Хийца дӀаяздаран пароль',
+'oldpassword' => 'Шираелла пароль:',
+'newpassword' => 'Керла пароль:',
+'retypenew' => 'Юха язъйе керла пароль:',
+'resetpass_forbidden' => 'Пароль хийца йиш яц',
+'resetpass-no-info' => 'ХӀара агӀо лело системин чугӀо.',
+'resetpass-submit-loggedin' => 'Хийца пароль',
 'resetpass-submit-cancel' => 'Цаоьшу',
+'resetpass-temp-password' => 'Цхьан хана пароль:',
 
 # Special:PasswordReset
+'passwordreset' => 'Пароль кхоссар',
+'passwordreset-text-many' => '{{PLURAL:$1|Пароль кхосса юза лахара цхьа меттиг.}}',
+'passwordreset-legend' => 'Пароль кхоссар',
 'passwordreset-username' => 'Декъашхочун цӀе:',
+'passwordreset-domain' => 'Домен:',
+'passwordreset-email' => 'Электронни почтан адрес:',
 
 # Special:ChangeEmail
 'changeemail' => 'Хийца электрони почт',
+'changeemail-no-info' => 'ХӀара агӀо лело системин чугӀо.',
+'changeemail-none' => '(яц)',
 'changeemail-submit' => 'Хийца email',
 'changeemail-cancel' => 'Цаоьшу',
 
@@ -626,7 +833,7 @@ $1',
 'image_sample' => 'Example.jpg',
 'image_tip' => 'Чохь йолу файл',
 'media_sample' => 'Example.ogg',
-'media_tip' => 'Ð¥Ñ\8cажоÑ\80иг Ð¾Ñ\86Ñ\83 Ð¼ÐµÐ´Ð¸Ð°-Ñ\85\83ман',
+'media_tip' => 'Ð¥Ñ\8cажоÑ\80иг Ð¼ÐµÐ´Ð¸Ð°-Ñ\84айлан Ñ\82Ó\80е',
 'sig_tip' => 'Хьан куьгтаlор аъ хlоттина хан',
 'hr_tip' => 'Ана сиз (сих сиха ма леладайша)',
 
@@ -639,22 +846,24 @@ $1',
 'preview' => 'Хьалха муха ю хьажа',
 'showpreview' => 'Хьалха муха ю хьажар',
 'showdiff' => 'Хlоттина болу хийцам',
-'anoneditwarning' => "'''ТеÑ\80гам Ð±Ðµ''': Ð\90Ñ\85Ñ\8cа Ñ\85Ñ\8cо Ð²Ð¾Ð²Ð·Ð¸Ñ\82ина Ð²Ð°Ñ\86 Ð³lиÑ\80Ñ\81ан. Ð¥Ñ\8cан IP-долÑ\83 Ð¼ÐµÑ\82Ñ\82иг Ð´lаÑ\8fзйина Ñ\85иÑ\80а Ñ\8e Ñ\85lокÑ\85Ñ\83 Ð°Ð³lон истори чу.",
+'anoneditwarning' => "'''ТеÑ\80гам Ð±Ðµ''': Ð\90Ñ\85Ñ\8cа Ñ\85Ñ\8cай Ñ\86Ó\80аÑ\80Ñ\86а Ñ\82адаÑ\80Ñ\88 Ð´ÐµÑ\88 Ð´Ð°Ñ\86. Ð¥Ñ\8cан IP-адÑ\80еÑ\81 Ð´Ó\80аÑ\8fздина Ñ\85иÑ\80а Ð´Ñ\83 Ñ\85Ó\80окÑ\85Ñ\83 Ð°Ð³Ó\80он истори чу.",
 'summary-preview' => 'Цуьнах лаьцна хирду:',
-'blockedtitle' => 'Декъашхон блоктоьхана',
+'blockedtitle' => 'Декъашхочун блоктоьхана',
+'nosuchsectiontitle' => 'Дакъа каро йиш яц.',
+'loginreqtitle' => 'Хьай цӀарца чугӀо',
 'loginreqlink' => 'Логин',
-'accmailtitle' => 'Ð\98Ñ\88аÑ\80 дlаяхьийтина.',
-'accmailtext' => "Ð\98Ñ\88аÑ\80 Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83Ñ\8cна [[User talk:$1|$1]], Ð¹Ð¸Ð½Ð° Ñ\88а Ñ\88еÑ\85 Ñ\85иÑ\82Ñ\82а Ð´ÐµÐ»Ð»Ð° Ñ\87Ñ\83 Ñ\8dлпаÑ\88аÑ\85, Ð´lаÑ\8fÑ\85ийÑ\82ина Ñ\85Ñ\8cокÑ\85Ñ\83 Ñ\85ааман Ð·lен Ñ\87Ñ\83 $2.
+'accmailtitle' => 'Ð\9fаÑ\80олÑ\8c дlаяхьийтина.',
+'accmailtext' => "Ð\9fаÑ\80олÑ\8c Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83Ñ\8cна [[User talk:$1|$1]], Ð¹Ð¸Ð½Ð° Ñ\88а Ñ\88еÑ\85 Ñ\85иÑ\82Ñ\82а Ð´ÐµÐ»Ð»Ð° Ñ\87Ñ\83 Ñ\8dлпаÑ\88аÑ\85, Ð´lаÑ\8fÑ\85ийÑ\82ина Ñ\85Ñ\8cокÑ\85Ñ\83 $2 Ð°Ð´Ñ\80еÑ\81 Ñ\82Ó\80е.
 
\94lаÑ\8fзвинÑ\87Ñ\83лÑ\82\8fÑ\85Ñ\8cа, ÐºÑ\85Ñ\83 Ð³lиÑ\80Ñ\81а Ñ\87оÑ\85Ñ\8c Ñ\88Ñ\83Ñ\8cга Ñ\85ийÑ\86алÑ\83Ñ\80 Ñ\8e ''[[Special:ChangePassword|Ñ\88ай Ð¸Ñ\88аÑ\80]]''.",
§Ñ\83ваÑ\8cлла/Ñ\8fла Ñ\87Ñ\83л Ñ\82Ó\80еÑ\85Ñ\8cа , ÐºÑ\85Ñ\83 Ð³lиÑ\80Ñ\81а Ñ\87оÑ\85Ñ\8c Ñ\88Ñ\83Ñ\8cга Ñ\85ийÑ\86алÑ\83Ñ\80 Ñ\8e ''[[Special:ChangePassword|Ñ\88ай Ð¿Ð°Ñ\80олÑ\8c]]''.",
 'newarticle' => '(Kерла)',
 'newarticletext' => "Хьо веана хьажоригци хlокху агlон тlе, хlара агlо хlинца йоцаш ю.
 Нагахь иза кхолла лаахь, хlотта де лахо гуш долу корехь йоза (мадарра хьажа. [[{{MediaWiki:Helppage}}|гlон агlон чу]]).
 Нагахь гlалат даьлла нисвелляхь кхузе, атта тlе тlаlа йе '''юха йоккхуриг''' хьай гlирса тlяхь.",
-'anontalkpagetext' => "----''Хlара дийцаре агIо къайлаха волу декъашхочуьна  ю, хlинца дlавазвина воцуш, йа лелош воцуш.
-Цундела иза вовзийта лелош ду терахьца IP-долу метаг.
+'anontalkpagetext' => "----''Хlара дийцаре агIо къайлаха волу декъашхочуьна  ю, хlинца дӀавазвина/дӀаязйина воцуш/йоцуш, я лелош воцуш/йоцуш.
+Цундела иза вовзийта/йовзийта лелош ду терахьца IP-долу метаг.
 Иза терахь долу меттиг хила мега кхечу декъашхойчух терра.
-Нагахь хьо къайлах волу декъашхо валахь хьайна хаам кхаьчна аьлла хеташн, хьуна хьажийна доцуш, дехар до, кхолла хьай меттиг кху чохь[[Special:UserLogin/signup|дlавазло]] йа [[Special:UserLogin|хьой вовзийта]],",
+Нагахь хьо къайлах волу декъашхо валахь хьайна хаам кхаьчна аьлла хеташн, хьуна хьажийна доцуш, дехар до, кхолла хьай меттиг кху чохь[[Special:UserLogin/signup|дlавазло]] йа [[Special:UserLogin|хьой вовзийта/йовзийта]],",
 'noarticletext' => "Хlокх хан чохь кху агlонца йоза дац.
 Шуьга далундерг [[Special:Search/{{PAGENAME}}|лахар ишта хьехош йолу цlе]] кхечу яззамашкахь,
 <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} лахар кхечу тептаршкахь],
@@ -663,15 +872,26 @@ $1',
 Шуьга далундерг [[Special:Search/{{PAGENAME}}|лахар ишта хьехош йолу цӀе]] кхечу яззамашкахь,
 йа <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} лаха оцуьнах терадерг кхечу тептаршкахь].</span>',
 'userpage-userdoesnotexist' => 'Ишта дlайазвар «<nowiki>$1</nowiki>» хlинца дац. Хьажа билгал, хьуна бакъалла лаьи кхолла йа хийцам ба хlокху агlон.',
+'sitecsspreview' => "'''ХӀара хьалх хьажар ду, хӀара CSS.'''
+'''хӀинца Ӏалашдина дац!'''",
+'sitejspreview' => "'''ХӀара хьалх хьажар ду, хӀара JavaScript-код.'''
+'''хӀинца Ӏалашйина яц!'''",
 'updated' => '(Карла йаькхина)',
 'note' => "'''Билгалдаккхар:'''",
-'previewnote' => "'''Хlара хьалх хьажар ду, йоза хlинца язданза ду!'''",
+'previewnote' => "'''ХӀара хьалх хьажар ду, йоза хӀинца язданза ду!'''",
 'continue-editing' => 'Кхин дӀа тадар',
+'session_fail_preview' => 'Сервер лара ца йира ахьа бина хийцамаш дӀаязба. Кхиъ цкъа а гӀортахь.
+Нагахь санна хӀара гӀалат юха а далахь, [[Special:UserLogout|сеанс дӀа а къоьвлин]], юха а системин чувала/яла хьажа.',
 'editing' => 'Тадар: $1',
 'creating' => 'АгӀо кхоллар «$1»',
 'editingsection' => 'Тадар $1 (даакъа)',
 'editingcomment' => 'Тадар $1 (керла даакъа)',
 'editconflict' => 'Тадарна дойнаш: $1',
+'explainconflict' => 'Ахьа хӀара агӀо тоечу хенахь, цхьам хийцамаш бина.
+Лакхарчу таяран корехь хьона гуш ду хӏинца агӏона чохь долу йоза.
+Лахарчу корехь ахь бина хийцам бу.
+Хьой бина хийцам лахарчу корера лакхарчу коре баккха.
+Кнопкан «{{int:savearticle}}» тӏетаӏича лакхара корера йоза дӏаязлурду.',
 'yourtext' => 'Хьан йоза',
 'yourdiff' => 'Башхаллаш',
 'copyrightwarning' => "Тергаме хьажа, массо яззаман чутухуш долу йозан хийцам хьажарехь бу, арахоьцушсанна оцу бакъойалар хьоляхь $2 (хьаж. $1).
@@ -693,21 +913,26 @@ $1',
 'template-semiprotected' => '(дуьззина доцуш гlаролла)',
 'hiddencategories' => 'Хlара агlо чуйогlуш ю оцу $1 {{PLURAL:$1|къайлаха кадегарчу|къайлаха кадегаршчу|къайлаха кадегаршчу}}:',
 'edittools' => '<!-- Кхузе буха диллина йоза гуш хир ду редоккхуче бухахь а хlума чуйоккхуче бухахь. -->',
+'permissionserrors' => 'ТӀекхачарехь гӀалат',
 'permissionserrorstext' => 'Хьан бакъо яц кхочуш хилийта хийцам оцу {{PLURAL:$1|шолгlа бахьанца|шолгlа бахьанашца}}:',
 'permissionserrorstext-withaction' => "Хьан бакъо яц хlумда «'''$2'''» оцу {{PLURAL:$1|шолгlа бахьанца|шолгlа бахьанашца}}:",
-'recreate-moveddeleted-warn' => "'''Тидам Ð±Ðµ. Ð¥Ñ\8cо Ð²Ñ\83 (ле Ð¹Ñ\83) Ð¹Ñ\83Ñ\85а ÐºÑ\85олла Ð³Ó\80еÑ\80Ñ\82аÑ\88 Ð°Ð³Ó\80о, Ñ\85Ñ\8cалÑ\85о Ð´Ó\80аÑ\8fккÑ\85ина Ð¹Ð¾Ð»Ñ\83.'''
+'recreate-moveddeleted-warn' => "'''Тидам Ð±Ðµ. Ð\90Ñ\85Ñ\8cа ÐºÑ\85Ñ\83ллÑ\83Ñ\88 Ñ\8e, Ñ\85Ñ\8cалÑ\85о Ð´Ó\80аÑ\8fккÑ\85ина Ð¹Ð¾Ð»Ñ\83 Ð°Ð³Ó\80о.'''
 
-Хьажа, билгалла оьши хьуна хӀара яззам йуха кхолла.
-Лахахь далина ду дӀаяхарш тӀяхь долу тептарш а хӀокх яззам цӀера бина хийцамаш.",
-'moveddeleted-notice' => 'Иза агlо дlайайина йара.
-Хаийтарна лахахьа гойту, цуьнца долу дlаяздарш кху дlадайина тептар чура а цlе хийцарш а.',
+Хьажа, билгалла оьши хьуна хӀара агӀо юха кхолла.
+Лахахь далина ду дӀаяхарш тӀяхь долу тептарш а хӀокх агӀона цӀе хийцарш а.",
+'moveddeleted-notice' => 'Иза агӀо дӀаяккхина яра.
+Хаийтарна лахахьа гойту, цуьнца долу дӀаяздарш кху тептар чура дӀаяхарш а цӀе хийцарш а.',
 'log-fulllog' => 'Хьажа деригге тептаре',
+'postedit-confirmation' => 'Хьан нисдар дӏайазъдина.',
 
 # Content models
 'content-model-javascript' => 'JavaScript',
 'content-model-css' => 'CSS',
 
 # Parser/template warnings
+'post-expand-template-inclusion-warning' => 'ДӀахьедар: юкъа тоьхна кепашан жамӀан барам тӀех бокха бу. Цхьайолу кепаш юкъа тухур яц.',
+'post-expand-template-inclusion-category' => 'Чу дуьхкуш долу кепашан барам тӀех баьлла агӀонаш',
+'post-expand-template-argument-category' => 'Кепашан аргументаш юкъахь йитина агӀонаш',
 'parser-template-loop-warning' => 'Карийна кепаш юкъахь хилла шад: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Дозанал хьалаваьлла кlоргенца йух йуха дина кеп ($1)',
 
@@ -719,6 +944,7 @@ $1',
 'viewpagelogs' => 'Гайта хlокху агlонан тептар',
 'currentrev-asof' => 'ХӀинцлера верси оцу $1',
 'revisionasof' => 'Верси $1',
+'revision-info' => 'Верси $1; $2 тӀера',
 'previousrevision' => '← Хьалха йоьдург',
 'nextrevision' => 'Тlаьхьайогlург →',
 'currentrevisionlink' => 'Хlинцлера верси',
@@ -728,7 +954,7 @@ $1',
 'page_first' => 'хьалхара',
 'page_last' => 'тlаьххьара',
 'histlegend' => "Кхетор: (хlинцлера.) — йолучу башхон къастам; (хьалх.) — хьалхлерачу башхон къастам; '''ж''' — жимо бозалца болу хийцам.",
-'history-fieldset-title' => 'Ð¥Ñ\8cажа Ð¸Ñ\81Ñ\86lаÑ\80еÑ\80аÑ\87Ñ\83',
+'history-fieldset-title' => 'Ð¥Ñ\8cажа Ð¸Ñ\81Ñ\82оÑ\80и',
 'history-show-deleted' => 'ДӀаяхинарш',
 'histfirst' => 'ширниш',
 'histlast' => 'хьалхарниш',
@@ -740,28 +966,40 @@ $1',
 'history-feed-item-nocomment' => '$1 оцу $2',
 
 # Revision deletion
+'rev-deleted-user' => '(авторан цӏе дӏаяйина)',
 'rev-delundel' => 'гайта/къайла',
 'rev-showdeleted' => 'гайта',
+'revisiondelete' => 'ДӀаяха / меттахӀотае агӀона версеш',
 'revdelete-show-file-submit' => 'Хlаъ',
+'revdelete-hide-image' => 'Къайлабаккха файлан чулацам',
+'revdelete-hide-user' => 'Къайлаяккха авторан цӀе',
 'revdelete-radio-same' => '(ма хийца)',
 'revdelete-radio-set' => 'Хlаъ',
 'revdelete-radio-unset' => 'Хlахlа',
 'revdelete-log' => 'Бахьан:',
 'revdel-restore' => 'Хийцам бе схьагарехь',
+'revdel-restore-deleted' => 'дӀааьхина версеш',
+'revdel-restore-visible' => 'гуш йолу версеш',
 'revdelete-reasonotherlist' => 'Кхин бахьан',
 
 # History merging
+'mergehistory-from' => 'Дуьххьарлера агӀоно',
+'mergehistory-invalid-source' => 'Хьостан нийса корта хила еза.',
+'mergehistory-invalid-destination' => 'Юзийна агӀона нийса корта хила еза.',
 'mergehistory-reason' => 'Бахьан:',
 
 # Merge log
+'mergelog' => 'Цхьаьнатохаршан тептар',
 'revertmerge' => 'Йекъа',
 
 # Diffs
 'history-title' => '$1 — хийцаман истори',
+'difference-title' => '$1 — Версешан башхалла',
 'lineno' => 'Могlа $1:',
-'compareselectedversions' => 'Хаьржиначуьна башхо муха ю хьажа',
+'compareselectedversions' => 'Хаьржина версеш муха ю хьажа',
 'showhideselectedversions' => 'Гайта/къайлайаха хаьржина башхонаш',
 'editundo' => 'цаоьшу',
+'diff-multi' => '({{PLURAL:$1|гайтина яц $1 юккъера верси|гайтина яц $1 юккъера версеш}} {{PLURAL:$2|$2 декъашхочун|$2 декъашхой}})',
 
 # Search results
 'searchresults' => 'Лахарна хилам',
@@ -773,15 +1011,17 @@ $1',
 'notextmatches' => 'Агlонаш чура йозанашца цхьатера йогlуш яц',
 'prevn' => '{{PLURAL:$1|хьалхарниг $1|хьалхарнаш $1|хьалхарнаш $1}}',
 'nextn' => '{{PLURAL:$1|тlаьхьйогlург $1|тlаьхьйогlурш $1|тlаьхьйогlурш $1}}',
+'prevn-title' => '{{PLURAL:$1|Хьалхара $1 дӀаяздар|Хьалхара $1 дӀаяздарш}}',
+'nextn-title' => '{{PLURAL:$1|ТӀаьхьара $1 дӀаяздар|ТӀаьхьара $1 дӀаяздарш}}',
+'shown-title' => 'АгӀона чохь $1 {{PLURAL:$1|дӀаяздар|дӀаяздарш}} гайта',
 'viewprevnext' => 'Хьажа ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-legend' => 'Лахарна гlирс нисба',
 'searchmenu-exists' => "'''Хlокху вики-кхолламашца йолуш ю ишта агlо «[[:$1]]»'''",
 'searchmenu-new' => "'''Кхолла ишта агlо «[[:$1]]» хlокху вики-кхолламашчохь!'''",
-'searchhelp-url' => 'Help:Чулацам',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Гайта агlонаш ишта хlоттам болуш]]',
 'searchprofile-articles' => 'Къаьстина агlонаш',
-'searchprofile-project' => 'Ð\9dиÑ\81воÑ\85ааман Ð°Ð³lонаÑ\88 Ð° ÐºÑ\85олламаш',
-'searchprofile-images' => 'Ð\9cÑ\8fлÑ\82омÑ\88Ñ\85гl',
+'searchprofile-project' => 'Ð\93Ó\80она Ð° Ð¿Ñ\80оекÑ\82ан Ð° Ð°Ð³Ó\80онаш',
+'searchprofile-images' => 'Ð\9cÑ\83лÑ\8cÑ\82имедиа',
 'searchprofile-everything' => 'Массанхьа',
 'searchprofile-advanced' => 'Шуьйра',
 'searchprofile-articles-tooltip' => 'Лаха оцу $1',
@@ -790,76 +1030,113 @@ $1',
 'searchprofile-everything-tooltip' => 'Лаха массо агlонашкахь (дийцаре агlонашцани)',
 'searchprofile-advanced-tooltip' => 'Лаха дехарца хlокху ана цlерашкахь',
 'search-result-size' => '$1 ({{PLURAL:$2|$2 дош|$2 дешнаш|$2 дешнаш}})',
+'search-result-category-size' => '$1 {{PLURAL:$1|юкъаяр}} ($2 {{PLURAL:$2|бухара категори|бухара категореш}}, $3 {{PLURAL:$3|файл|файлаш}}).',
 'search-redirect' => '(дlасахьажийна $1)',
 'search-section' => '(дакъа $1)',
 'search-suggest' => 'Хила мега ахьа лоьхарг: $1',
 'search-interwiki-caption' => 'Гергара кхолламаш',
 'search-interwiki-default' => '$1 хилам.:',
 'search-interwiki-more' => '(кхин)',
+'mwsuggest-disable' => 'ДӀабайа лахаран хьехам',
 'searcheverything-enable' => 'Массо цIера анахь лахар',
 'searchrelated' => 'хlоттаделларг',
 'searchall' => 'массо',
 'showingresults' => 'Лахахьа {{PLURAL:$1|гойта|гойту|гойту}} <strong>$1</strong> {{PLURAL:$1|хилам|хиламаш|хиламаш}}, дlаболало кху № <strong>$2</strong>.',
 'showingresultsheader' => "{{PLURAL:$5|Хилам '''$1''' кху '''$3'''|Хиламаш '''$1 — $2''' кху '''$3'''}} оцун '''$4'''",
 'nonefound' => "'''Билгалдаккхар.''' ХӀумма цадеш Ӏад йитича массо цӀеран энахь цалоху. Лела йе тӀехуттург ''all:'', лахийта массо цӀеран энахь (юкъадалош декъашхойн дийцарш а кепаш а кхин дерг.), йа хӀотта йе оьшуш йолу цӀеран эна.",
-'search-nonefound' => 'Ð\94еÑ\85аÑ\80аÑ\80 Ñ\82еÑ\80Ñ\80а Ñ\86Ñ\85Ñ\8cа Ñ\85\83ма Ñ\86акарийна.',
+'search-nonefound' => 'Ð\94еÑ\85аÑ\80е Ñ\82еÑ\80Ñ\80а Ñ\86Ñ\85Ñ\8cа Ñ\85Ó\80Ñ\83ма Ñ\86а карийна.',
 'powersearch' => 'Шуьйра лахар',
 'powersearch-legend' => 'Шуьро лахар',
 'powersearch-ns' => 'Цlераши анахь лахар:',
 'powersearch-redir' => 'Схьагайта дlасахьажийнарш',
 'powersearch-field' => 'Лаха',
+'powersearch-togglelabel' => 'Билгалдан:',
 'powersearch-toggleall' => 'Массо',
 'powersearch-togglenone' => 'Хlумма цаоьшу',
+'search-external' => 'Арахула лахар',
+'search-error' => 'Лохуш гӀалат даьлла: $1',
 
 # Preferences page
 'preferences' => 'Гlирс нисбан',
 'mypreferences' => 'ГӀирс нисбан',
 'prefs-edits' => 'Нисдарши дукхалла:',
-'changepassword' => 'Хийцамба ишарна',
+'changepassword' => 'Хийца пароль',
+'prefs-skin' => 'Кечяран тема',
 'skin-preview' => 'Хьалха муха ю хьажа',
+'datedefault' => 'Iад йитарца',
 'prefs-beta' => 'Гlоле таронаш',
-'prefs-datetime' => 'Терахь а хан',
+'prefs-datetime' => 'Терахь а хан а',
 'prefs-labs' => 'Муха ю хьажарна таронаш',
 'prefs-user-pages' => 'Декъашхочун агӀо',
 'prefs-personal' => 'Долахь болу хаамаш',
 'prefs-rc' => 'Керла нисдарш',
 'prefs-watchlist' => 'Тергаме могlам',
+'prefs-watchlist-days' => 'Денойн дукхалла:',
+'prefs-watchlist-days-max' => 'Къезиг  $1 {{PLURAL:$1|дена}}',
+'prefs-watchlist-edits' => 'Тергаме могӀам чохь гойтучу нисдаршан максимальни дукхалла:',
+'prefs-watchlist-edits-max' => 'Уггар дукха: 1000',
+'prefs-watchlist-token' => 'Тергаме могӀанан токен:',
 'prefs-misc' => 'Кхин гlирсаш',
-'prefs-resetpass' => 'ХийÑ\86а Ð¸Ñ\88аÑ\80',
+'prefs-resetpass' => 'ХийÑ\86а Ð¿Ð°Ñ\80олÑ\8c',
 'prefs-changeemail' => 'Хийца электрони почт',
 'prefs-email' => 'Электронан почтан параметрш',
 'prefs-rendering' => 'Арахьара хатl',
 'saveprefs' => 'lалашдан',
-'restoreprefs' => 'МеттахӀоттабе гӀирс дуьхӀар сана',
+'restoreprefs' => 'МеттахӀоттабе гӀирс Iад битарца',
 'prefs-editing' => 'Тадар',
 'rows' => 'МогӀанаш:',
+'columns' => 'БӀогӀамаш:',
 'searchresultshead' => 'Лаха',
+'resultsperpage' => 'Карийначу дӀаяздаршан дукхалла:',
+'stub-threshold' => 'Кеч яран доза <a href="#" class="stub">коьртамогӀамна хьажоригаш</a> (байташках):',
+'recentchangesdays' => 'Керла нисдар гайта динахь:',
+'recentchangesdays-max' => 'Къезиг  $1 {{PLURAL:$1|дена}}',
+'recentchangescount' => 'Iад йитарца гойтуш долу нисдаршан дукхалла',
+'prefs-help-recentchangescount' => 'Гойту керла нисдарш, агӀонашан истори, тептарш.',
+'savedprefs' => 'Хьан гӀирс Ӏалашбина.',
 'timezonelegend' => 'Сахьатан аса:',
 'localtime' => 'Меттигера хан:',
+'timezoneuseserverdefault' => 'Серверан ($1) гӀирс лелабе',
+'timezoneuseoffset' => 'Кхин (билгалде дӀахилар)',
 'servertime' => 'Сервера хан:',
+'guesstimezone' => 'Юза браузеран чура',
+'timezoneregion-asia' => 'Ази',
+'timezoneregion-australia' => 'Австрали',
+'timezoneregion-indian' => 'Индин океан',
+'timezoneregion-pacific' => 'Тийна океан',
 'allowemail' => 'Магийта декъашхошна хьайга электрони почтехула кехат кхехьийта',
 'prefs-searchoptions' => 'Лаха',
+'defaultns' => 'Я лаха лахахь гайтинчу аннашкахь:',
+'default' => 'Iад йитарца',
 'prefs-files' => 'Файлаш',
+'prefs-custom-css' => 'Долахь йолу CSS',
+'prefs-custom-js' => 'Долахь йолу JS',
+'prefs-common-css-js' => 'Юкъара CSS/JS массо кеч даран темашан:',
 'prefs-emailconfirm-label' => 'Бакъ яр электрони почт:',
-'prefs-textboxsize' => 'Тадаран коран барам',
 'youremail' => 'Кехат яздо зlе цlе:',
-'username' => 'Дlаязвиначуьна цlе:',
+'username' => '{{GENDER:$1|Декъашхочун цӀе}}:',
 'uid' => 'Декъашхочун {{GENDER:$1|код}}:',
 'prefs-memberingroups' => '{{GENDER:$2|Тобана|Тобана}} {{PLURAL:$1|декъашхо|декъашхо}}:',
-'prefs-registration' => '{{GENDER:$2|ДӀавазвелла|ДӀаязелла}} хан:',
+'prefs-registration' => 'ДӀаяздар кхолийна хан:',
 'yourrealname' => 'Хьан бакъ цlе:',
 'yourlanguage' => 'Мотт:',
 'yourvariant' => 'Метта башхо',
 'yournick' => 'Керла куьгтаӀор:',
+'prefs-help-signature' => 'Дийцаре агӀонаш чохь къуьгтаӀо деза символшца «<nowiki>~~~~</nowiki>», цара гойтур ду хьан къуьгтаӀор а хан а.',
 'yourgender' => 'Ву/Йу:',
 'gender-unknown' => 'хlоттийна яц',
 'gender-male' => 'борша',
 'gender-female' => 'сте',
+'prefs-help-gender' => 'ТӀехь доцург: и хаам лелош бу цхьайолу хаамаш чохь декъашхочун пол гучуйоккхуш.
+И хаам массарна гуш хир бу.',
 'email' => 'Email',
-'prefs-help-email' => 'Кехат яздо зlен цlе цахlоттийча аъ хlумма дац, амма иза оьшар ю, нагахь хьуна хьай ишар йицлахь.',
+'prefs-help-email' => 'Электрони почтан адрес цахlоттийча аъ хlумма дац, амма иза оьшар ю, нагахь хьуна хьай пароль йицлахь.',
+'prefs-help-email-others' => 'Кхин дӀа цо кхечу декъашхошна йиш хуьлуьйту хьога электронни кехат даийта хьан агӀона чохь йолу хьажориган гӀонца.',
 'prefs-info' => 'Коьрта хаам',
 'prefs-i18n' => 'Юкъардекъа мотт',
 'prefs-signature' => 'КуьгтаӀор',
+'prefs-dateformat' => 'Терахьан формат',
+'prefs-timeoffset' => 'Хенан  гӀирс',
 'prefs-advancedediting' => 'Кхин гӀирс нисбар',
 'prefs-advancedrc' => 'Кхин гӀирс нисбар',
 'prefs-advancedrendering' => 'Кхин гӀирс нисбар',
@@ -871,19 +1148,34 @@ $1',
 'prefs-diffs' => 'Башхон верси',
 
 # User rights
-'userrights' => 'Декъашхочуьн бакъона урхалладар',
+'userrights' => 'Декъашхочун бакъона урхалладар',
+'userrights-lookup-user' => 'Декъашхошан бакъонашан урхалладар',
+'userrights-user-editname' => 'Язъе цӀе:',
+'editusergroup' => 'Хийца декъашхочун бакъо',
 'editinguser' => "Хийца декъашхочуьна бакъо '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]]{{int:pipe-separator}}[[Special:Contributions/$1|{{int:contribslink}}]])",
+'userrights-editusergroup' => 'Хийца декъашхочун бакъо',
+'saveusergroups' => 'Декъашхочун бакъонаш ӏалашян',
 'userrights-groupsmember' => 'Декъашхо:',
+'userrights-groupsmember-auto' => 'Бакъонашан тоба:',
+'userrights-groups-help' => 'Хьона хийца ло декъашхочун бакъонаш.
+* Бакъона цӀера юххехь билгало елахь, цуна и бакъо йолуш ю.
+* Билгало яцахь — декъашхочун и бакъо яц.
+* Знако * билгала до ахьа бакъо еллачул тӀхьа хьона и дӀаяккха лур цахилар.',
 'userrights-reason' => 'Бахьан:',
+'userrights-no-interwiki' => 'Хьан бакъо яц декъашхой бакъо хийца кхечу википеди чохь.',
+'userrights-nologin' => 'Куьйгалхочунна бакъо йолу [[Special:UserLogin|дӀаяздарца]] ло декъашхочун бакъо.',
+'userrights-notallowed' => 'Хьан дӀаяздарца магийна дац декъашхошна бакъо яла а дӀаяккха а.',
+'userrights-changeable-col' => 'Хьона хийца луш йолу бакъонаш',
+'userrights-unchangeable-col' => 'Хьона хийца луш йоцу бакъонаш',
 
 # Groups
 'group' => 'Тоба:',
 'group-user' => 'Декъашхой',
-'group-autoconfirmed' => 'Ð\91акÑ\8aонаÑ\88 Ð¹олу декъашхой',
+'group-autoconfirmed' => 'Ша Ñ\82Ó\80елаÑ\8cÑ\86болу декъашхой',
 'group-bot' => 'Шаболххой',
 'group-sysop' => 'Куьйгалхой',
 'group-bureaucrat' => 'Даржахой',
-'group-suppress' => 'Ð\9bевиÑ\81оÑ\80Ñ\85ой',
+'group-suppress' => 'РевизоÑ\80аÑ\88',
 'group-all' => '(массо)',
 
 'group-user-member' => '{{GENDER:$1|декъашхо}}',
@@ -897,35 +1189,54 @@ $1',
 'grouppage-bot' => '{{ns:project}}:Шаболххой',
 'grouppage-sysop' => '{{ns:project}}:Куьйгалхой',
 'grouppage-bureaucrat' => '{{ns:project}}:Даржахой',
-'grouppage-suppress' => '{{ns:project}}:Ð\9bевиÑ\81оÑ\80Ñ\85ой',
+'grouppage-suppress' => '{{ns:project}}:РевизоÑ\80аÑ\88',
 
 # Rights
+'right-edit' => 'АгӀоаш нисяр',
+'right-createpage' => 'АгӀонаш кхоллар (дийцарш дац)',
+'right-createtalk' => 'Дийцаре агӀонаш кхоллар',
+'right-createaccount' => 'декъашхошна керла дӀаяздарш кхоллар',
+'right-move' => 'АгӀонашан цӀераш хийцар',
+'right-move-subpages' => 'АгӀонашан цӀераш хийцар цера бухара агӀонашцан',
+'right-movefile' => 'Файланши цӀе хийцар',
+'right-upload' => 'Файлаш чуйаьхар',
 'right-delete' => 'агӀош дӀаяхар',
+'right-bigdelete' => 'еха хийцаман истори йолу агӀонаш дӀаяхар',
+'right-browsearchive' => 'ДӀаяхна агӀонаш лахар',
+'right-undelete' => 'АгӀонаш меттахӀоттор',
+'right-blockemail' => 'Цамагдо декъашхошка хааман кехаташ кхехьийта',
+'right-unblockself' => 'Ша шин блокдӀаяккхар',
+'right-protect' => 'АгӀона гӀоралла хийцар а гӀоралла дина агӀо нисяр а',
 
 # Special:Log/newusers
 'newuserlogpage' => 'Декъашхой дlабазбина тептар',
 
 # User rights log
-'rightslog' => 'Декъашхон бакъона тéптар',
+'rightslog' => 'Декъашхочун бакъона тéптар',
 
 # Associated actions - in the sentence "You do not have permission to X"
 'action-edit' => 'нисйа хlара агlо',
 'action-delete' => 'дӀаяккха хӀара агӀо',
+'action-deletedhistory' => 'хӀокху агӀона дӀаяккхинцу исторега хьажар',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|хийцам|хийцамаш|хийцамаш}}',
 'recentchanges' => 'Керла нисдарш',
 'recentchanges-legend' => 'Гlирс нисбарна керла нисдарш',
 'recentchanges-summary' => 'Лахахь гайтина хене хьаьжна Википедин агӀонашкахь тӀаьхьара бина хийцамаш',
+'recentchanges-noresult' => 'Билгал йинчу хенахь цӀа хийцамаш бина бац.',
 'recentchanges-feed-description' => 'Тергам бе тlаьхьара вики хийцаман хlокху ларца.',
 'recentchanges-label-newpage' => 'Оцу нисдарца кхоллина керла агlо.',
 'recentchanges-label-minor' => 'Хlара нисдинарг къастийна жимо долушсан',
+'recentchanges-label-bot' => 'ХӀара нисдар шаболх бечо дина',
+'recentchanges-label-unpatrolled' => 'ХӀара нисдар хӀинца цхьано патрулировать дина дац',
 'rcnote' => "{{PLURAL:$1|Тlаьххьара '''$1''' хийцам|Тlаьххьара '''$1''' хийцамаш|Тlаьххьара '''$1''' хийцамаш}} за '''$2''' {{PLURAL:$2|де|дийнахь|дийнахь}}, оцу хан чохь $5 $4.",
+'rcnotefrom' => "Лахахь гайтина тӀера '''$2''' хийцамаш ('''$1''' къезиг).",
 'rclistfrom' => 'Гайта хийцам оцу $1.',
 'rcshowhideminor' => '$1 кегийра нисдарш',
 'rcshowhidebots' => '$1 шабелхалой',
-'rcshowhideliu' => '$1 вовзитар долу декъашхой',
-'rcshowhideanons' => '$1 Ñ\85Ñ\8cÑ\83лбеллаÑ\80Ñ\88',
+'rcshowhideliu' => '$1 шайн цӀершца болу декъашхой',
+'rcshowhideanons' => '$1 Ñ\86Ó\80е Ñ\85Ñ\8cÑ\83лйина Ð´ÐµÐºÑ\8aаÑ\88Ñ\85ой',
 'rcshowhidepatr' => '$1 хьажжина нисдарш',
 'rcshowhidemine' => '$1 айхьа нисдинарш',
 'rclinks' => 'Гайта тlаьхьара $1 хийцамаш оцу $2 ден<br />$3',
@@ -954,12 +1265,26 @@ $1',
 # Upload
 'upload' => 'Файл чуяккхар',
 'uploadbtn' => 'Файл чуяккхар',
+'uploadnologintext' => 'Серверан чу файлаш яха хьо $1.',
+'upload-permitted' => 'Магийна файлашан тайпанаш: $1.',
 'uploadlogpage' => 'Чуйахаран тéптар',
 'uploadlogpagetext' => 'Лахахьа гойтуш бу могlам тlаьххьара чуяхна файлаши. Ишта хьажа. [[Special:ImageList|файлаши могlам]] йа [[Special:NewImages|галеларе файлаши]].',
 'filename' => 'Файлан цӀе',
+'filedesc' => 'Файлах лаьцна',
+'fileuploadsummary' => 'Файлах лаьцна:',
 'filereuploadsummary' => 'Файлан хийцамаш:',
+'filesource' => 'Хьост:',
+'ignorewarnings' => 'ДӀахедар тергал ца дан',
 'uploadwarning' => 'Дlахьедар',
 'uploadedimage' => 'чуяккхина «[[$1]]»',
+'overwroteimage' => 'Чуяккхина файлан керла верси «[[$1]]»',
+'upload-source' => 'ДIайолалун файл',
+'sourcefilename' => 'ДIайолалун файл:',
+'destfilename' => 'Файлан керла цӀе:',
+'upload-maxfilesize' => 'Файлан: $1 максимальни барам',
+'upload-description' => 'Файлах лаьцна',
+'upload-options' => 'Чуякхаран параметраш',
+'watchthisupload' => 'Латайе хӀара файл тергаме могӀам юкъахь',
 'filename-prefix-blacklist' => '#<!-- битийша хlара могlа ша мабарра --> <pre>
 # Бухасиз шолгlа:
 #  * Массо, саболчунтlийра йуьлалуш ерш «#» хуьлу хетаме дерг (могlа чекх балац)
@@ -975,7 +1300,13 @@ MGP # Pentax
 PICT # тайп тайпан
  #</pre> <!-- битийша хlара могlа ша мабарра -->',
 
+# HTTP errors
+'http-timed-out' => 'Хьежаран хан чекхели HTTP-жоп дехаран.',
+
 'license' => 'Бакъойалар:',
+'license-header' => 'Бакъойалар',
+'nolicense' => 'Яц',
+'upload_source_file' => ' (файл хьан компьютер чохь ю)',
 
 # Special:ListFiles
 'listfiles-summary' => 'Лахахь гойтуш ю ерриг файлаш.
@@ -983,6 +1314,7 @@ PICT # тайп тайпан
 'listfiles_search_for' => 'Лаха хIуман цIарца:',
 'imgfile' => 'файл',
 'listfiles' => 'Файлаши могӀам',
+'listfiles_date' => 'Терахь',
 'listfiles_name' => 'Файлан цӀе',
 'listfiles_user' => 'Декъашхо',
 'listfiles_size' => 'Барам',
@@ -994,43 +1326,49 @@ PICT # тайп тайпан
 'filehist-help' => 'Тlетаlаде терахь/хан, муха хилла хьажарна и файл.',
 'filehist-deleteall' => 'массо дӀаяккха',
 'filehist-deleteone' => 'дӀаяккха',
+'filehist-revert' => 'файл юхаерзо',
 'filehist-current' => 'карара',
 'filehist-datetime' => 'Терахь/Хан',
 'filehist-thumb' => 'Жима',
 'filehist-thumbtext' => 'Жимо башхо оцу $1',
 'filehist-user' => 'Декъашхо',
 'filehist-dimensions' => 'Файлан барам',
+'filehist-filesize' => 'Файлан барам',
 'filehist-comment' => 'Билгалдаккхар',
 'imagelinks' => 'Хьажоригаш оцу файлан',
-'linkstoimage' => '{{PLURAL:$1|Тlаьхьайогlу $1 агlо тlетойжина|Тlаьхьайогlу $1 агlонаш тlетойжина|Тlаьхьайогlу $1 агlонаш тlетойжина}} хlокху хlуман:',
+'linkstoimage' => '{{PLURAL:$1|ТӀаьхьайогӀу $1 агӀо тӀетойжина|ТӀаьхьайогӀу $1 агӀонаш тӀетойжина|ТӀаьхьайогlу $1 агӀонаш тӀетойжина}} хӀокху файлан:',
 'nolinkstoimage' => 'АгӀонашчохь файл лелош яц.',
 'sharedupload' => 'Хlара хlума оцун $1 чура ю иза хила мега лелош кхечу кхолламашкахь.',
+'sharedupload-desc-here' => 'ХӀара файл $1 чура ю и лело йиш ю массо проекташкахь.
+Цунна хаам гайтина лахахь. [$2 Файл ВикидӀайуьллучехь]',
 'uploadnewversion-linktext' => 'Чуяккха керла верси хӀокху файлан',
 'shared-repo-name-wikimediacommons' => 'Викидlайуллуче',
 
 # File reversion
+'filerevert' => 'Тохарлера верси юхаерзор $1',
+'filerevert-legend' => 'Файлан верси юхаерзо',
+'filerevert-intro' => '<span class="plainlinks">Файл юхаерзош ю \'\'\'[[Media:$1|$1]]\'\'\' оцу [$4 верси $3, $2].</span>',
 'filerevert-comment' => 'Бахьан:',
+'filerevert-defaultcomment' => 'Юхаерзош ю оцу $2, $1 хенахь хила верси',
 'filerevert-submit' => 'Юхаяккха',
+'filerevert-success' => "Юхаерзина файл '''[[Media:$1|$1]]''' оцу [$4 верси $3, $2].",
 
 # File deletion
-'filedelete-legend' => 'ДӀаяккха и файл',
-'filedelete-intro' => "<div class=\"plainlinks\">
-Хьо  дӀаяккха лууш ву '''[[Media:\$1|\$1]]''' ([{{fullurl:{{FULLPAGENAME}}|action=history}} истори])
-
-* '''Тешна хила, и файл [{{fullurl:Special:WhatLinksHere/File:\$1|hidetrans=1&hideredirs=1&hidelinks=1}} лелош цахиларна]''' (йа [[:commons:File:{{PAGENAME}}|оцуьнах терра файл ю]] оц ВикидӀайуьллуче чохь)
-* Хьажа [{{fullurl:Special:WhatLinksHere/File:\$1|hideimages=1}} гуттаралера хьажориг йуй] оц файлан тӀе
-
-{{#ifexist:{{TALKPAGENAME}}|ХӀокху агӀона ю '''[[{{TALKPAGENAME}}|дийцаре агӀо]].'''}}
-</div>",
+'filedelete-legend' => 'ДӀаяккха файл',
+'filedelete-intro' => "Хьо файл '''[[Media:$1|$1]]''' дӀаяккха гӀерта цунна массо истори цхьан.",
 'filedelete-comment' => 'Бахьан:',
 'filedelete-submit' => 'ДӀаяккха',
 'filedelete-success' => '$1 дӀаяккхи.',
 'filedelete-otherreason' => 'Кхин бахьан:',
 'filedelete-reason-otherlist' => 'Кхин бахьан',
+'filedelete-reason-dropdown' => '* Даржина долу дӀаяккхаран баьхьанаш 
+** Авторан бакъонаш талхор
+** ЦхӀатера файлаш хилар',
 'filedelete-edit-reasonlist' => 'Бахьанин список нисяр',
 
 # MIME search
 'mimesearch' => 'MIME хула лаха',
+'mimetype' => 'MIME-тайп:',
 
 # Unwatched pages
 'unwatchedpages' => 'Цхьамо тергам ца беш йолу агIонаш',
@@ -1042,10 +1380,10 @@ PICT # тайп тайпан
 'unusedtemplates' => 'Лелош доцу кепаш',
 
 # Random page
-'randompage' => 'Цахуаш нисйелла агlо',
+'randompage' => 'Цахууш нисйелла агӀо',
 
 # Random redirect
-'randomredirect' => 'Ца хууш нисделла дIасахьажор',
+'randomredirect' => 'Цахууш нисделла дIасахьажор',
 
 # Statistics
 'statistics' => 'Бухехьдерг',
@@ -1059,12 +1397,17 @@ PICT # тайп тайпан
 'statistics-edits' => 'Нисдаран дукхалла {{grammar:genitive|{{SITENAME}}}} дlа йолайаларца',
 'statistics-edits-average' => 'Йукъера агlонан нисдаран терхь',
 'statistics-users' => '[[ВП:Дlаязвалар|Дlаязбелларш]] шаберигге декъашхой чохь болу [[Special:ListUsers|(могlам)]]',
-'statistics-users-active' => 'Жигар декъашхой',
+'statistics-users-active' => 'Жигара декъашхой',
 'statistics-users-active-desc' => 'Декъашхой, муьлха цхьа хlум дина болу, кху {{PLURAL:$1|тlаьххьара $1 динахь|тlаьххьара $1 дийнахь}}',
 
 'disambiguations' => 'Дуккха маьIнаш долу хьажорца йолу агIонаш',
 'disambiguationspage' => 'Кеп:цхьатера маьӀна доцуш',
 
+'pageswithprop' => 'АгӀонаш цхьадолу къастамашца',
+'pageswithprop-legend' => 'АгӀонаш цхьадолу къастамашца',
+'pageswithprop-text' => 'Кхузахь гойтуш ю агӀонаш цхьадолу къастамаш куьйга юху билгал даьхнарш.',
+'pageswithprop-prop' => 'Къастаман цӀе:',
+
 'doubleredirects' => 'ШалгIа дIасахьажийнарш',
 'double-redirect-fixed-move' => 'Агlон [[$1]] цlе хийцна, хlинца иза дlахьажийна оцу [[$2]]',
 
@@ -1080,23 +1423,28 @@ PICT # тайп тайпан
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|байт|байташ|байт}}',
 'ncategories' => '$1 {{PLURAL:$1|категори|категореш|категореш}}',
-'nmembers' => '$1 {{PLURAL:$1|файл|файл|файлаш}}',
+'ninterwikis' => '$1 {{PLURAL:$1|юкъарвики-хьажориг|юкъарвики-хьажоригаш}}',
+'nmembers' => '$1 {{PLURAL:$1|хӀума|хӀумнаш}}',
+'nimagelinks' => 'Лелош ю $1 {{PLURAL:$1|агӀоначохь|агӀонашкахь|агӀонашкахь}}',
+'ntransclusions' => 'лелош ю $1 {{PLURAL:$1|агӀоначохь|агӀонашкахь|агӀонашкахь}}',
 'specialpage-empty' => 'Дехаро хlумма ца елла.',
 'lonelypages' => 'Байлахь йисина агIонаш',
-'uncategorizedpages' => 'Ð\9aаÑ\82егоÑ\80и йоцу агIонаш',
-'uncategorizedcategories' => 'Ð\9aаÑ\82егоÑ\80и йоцу категореш',
-'uncategorizedimages' => 'Ð\9aаÑ\82егоÑ\80и Ð¹Ð¾Ñ\86Ñ\83 Ñ\85\83мнаш',
-'uncategorizedtemplates' => 'Ð\9aаÑ\82егоÑ\80и йоцу кепаш',
+'uncategorizedpages' => 'Ð\9aаÑ\82егоÑ\80еÑ\88 йоцу агIонаш',
+'uncategorizedcategories' => 'Ð\9aаÑ\82егоÑ\80еÑ\88 йоцу категореш',
+'uncategorizedimages' => 'Ð\9aаÑ\82егоÑ\80еÑ\88 Ð¹Ð¾Ñ\86Ñ\83 Ñ\84айлаш',
+'uncategorizedtemplates' => 'Ð\9aаÑ\82егоÑ\80еÑ\88 йоцу кепаш',
 'unusedcategories' => 'Йаьсса категореш',
+'unusedimages' => 'Лелош доцу файлаш',
 'wantedcategories' => 'Оьшуш йолу категореш',
 'wantedpages' => 'Оьшуш йолу агIонаш',
-'wantedfiles' => 'Ð\9eÑ\8cÑ\88Ñ\83Ñ\88 Ð¹Ð¾Ð»Ñ\83 Ñ\85\83мнаш',
+'wantedfiles' => 'Ð\9eÑ\8cÑ\88Ñ\83Ñ\88 Ð¹Ð¾Ð»Ñ\83 Ñ\84айлаш',
 'wantedtemplates' => 'Оьшуш долу кепаш',
 'mostlinked' => 'Дуккха хьажоригаш тIе тоьхна йолу агIонаш',
 'mostlinkedcategories' => 'Дуккха тӀе хьажораш йолу категореш',
 'mostlinkedtemplates' => 'Массарел дуккха а леладо кепаш',
 'mostcategories' => 'Дуккха категореш тӀе тоьхна йолу агӀонаш',
 'mostimages' => 'Массарел дуккха лелайо файлаш',
+'mostinterwikis' => 'Дуккха юкъарвики хьажоригаш тӀе тоьхна йолу агӀонаш',
 'mostrevisions' => 'Сих сиха нисйина йолу агIонаш',
 'prefixindex' => 'Хьалха агlонашан цlераш хlотто йеза',
 'prefixindex-namespace' => 'Хьалха агӀонашан цӀераш хӀотто еза («{{ns:$1}}»)',
@@ -1104,17 +1452,18 @@ PICT # тайп тайпан
 'longpages' => 'Беха яззамаш',
 'deadendpages' => 'Дика йоцу агIонаш',
 'protectedpages' => 'ГIаролла дина агIонаш',
-'protectedtitles' => 'Ца Ð¼Ð°Ð³Ð¸Ð¹Ð½Ð° Ð¹Ð¾Ð»Ñ\83 цIераш',
+'protectedtitles' => 'Ð\93IаÑ\80олла Ð´Ð¸Ð½Ð° цIераш',
 'listusers' => 'Декъашхой могlам',
 'listusers-editsonly' => 'Цхаъ мукъане а хийцам бина декъашхой гайта',
 'listusers-creationsort' => 'Кхолларан хене хьаьжна нисъяр',
 'usercreated' => '{{GENDER:$3|дӀавазвелла|дӀаязелла}} $1 $2',
 'newpages' => 'Керла агlонаш',
 'newpages-username' => 'Декъашхо:',
-'ancientpages' => 'Яззамаш оцу терахьца тяххьара тадар дина долу',
+'ancientpages' => 'Яззамаш оцу терахьца тӀаьххьара тадар дина долу',
 'move' => 'Цlе хийца',
 'movethispage' => 'Хlокху агlон цlе хийца',
 'unusedimagestext' => 'Дехар до, тидаме эца, кхин йолу дуьнана машан-меттигаш а лелош хила мега нисса йогlу хьажориг (URL) хlокху хlуман, хlокху могlаме йогlуш ялахь яцахь а иза хила мега жигара лелош.',
+'notargettitle' => 'Ӏалашо билгал йина яц',
 'nopagetitle' => 'Ишта агӀо яц',
 'nopagetext' => 'Ишта агӀо яц.',
 'pager-newer-n' => '{{PLURAL:$1|алсамо керла|алсамо керланаш|алсамо керлачарех}} $1',
@@ -1127,16 +1476,17 @@ PICT # тайп тайпан
 
 # Special:Log
 'specialloguserlabel' => 'Декъашхо:',
-'speciallogtitlelabel' => 'Корта:',
+'speciallogtitlelabel' => 'Ӏалашо (цӀе я декъашхо):',
 'log' => 'Тéптарш',
 'all-logs-page' => 'Деригге тléкхочучéхь долу тéптарш',
-'alllogstext' => 'Массо тéптар могlам. {{SITENAME}}.
-Шуьга харжалур бу хилам оцу тептаре хьаьжжина, декъашхон цlе (дlаязвар диц а цадеш) йа иза хьакхавелла агlонаш (ишта дlаязвар а диц цадеш).',
+'alllogstext' => 'Массо тéптар могӀам. {{SITENAME}}.
+Шуьга харжалур бу хилам оцу тептаре хьаьжжина, декъашхочун цӀе (дӀаяздар диц а цадеш) я цо хьейина агӀонаш (ишта дӀаяздар а диц цадеш).',
 'logempty' => 'Тептарш чохь хӀокху агӀона дӀаяздарш дац.',
 
 # Special:AllPages
 'allpages' => 'Массо агlонаш',
 'alphaindexline' => 'оцу $1 кху $2',
+'nextpage' => 'Тlаьхьа йогlу агlо ($1)',
 'prevpage' => 'Хьалхалера агlо ($1)',
 'allpagesfrom' => 'Гучé яха агlонаш, йуьлалуш йолу оцу:',
 'allpagesto' => 'Арайахар сацадé оцу:',
@@ -1151,9 +1501,13 @@ PICT # тайп тайпан
 
 # Special:Categories
 'categories' => 'Категореш',
+'categoriespagetext' => '{{PLURAL:$1|Лахара категореш чохь ю|Лахара категореш чохь ю}} агӀонаш я медиа-файлаш.
+Кхузахь гойтуш яц [[Special:UnusedCategories|лелош йоцу категореш]].
+Кхин дӀа [[Special:WantedCategories| хийла еза категореш]].',
+'categoriesfrom' => 'Гучé яха категореш, оцу:',
 
 # Special:DeletedContributions
-'deletedcontributions' => 'Декъашхочуьн дlабайина къинхьегам',
+'deletedcontributions' => 'Декъашхочун дӀабяккхина къинхьегам',
 'deletedcontributions-title' => 'ДӀабаьккхина къинхьегам',
 'sp-deletedcontributions-contribs' => 'къинхьегам',
 
@@ -1163,12 +1517,18 @@ PICT # тайп тайпан
 'linksearch-line' => '$2 — хьажориг кху $1',
 
 # Special:ListUsers
-'listusersfrom' => 'ТÓ\80еÑ\80а Ð²Ð¾Ð»Ð°Ð²ÐµÐ»Ð»Ð° Ð´ÐµÐºÑ\8aаÑ\88Ñ\85ой Ð³Ð°Ð¹Ñ\82а:',
+'listusersfrom' => 'Ð\93Ñ\83Ñ\87é Ð±Ð°Ñ\85а Ð´ÐµÐºÑ\8aаÑ\88Ñ\85ой, Ð±Ð¾Ð»Ð°Ð»Ñ\83Ñ\88 Ð±Ð¾Ð»Ñ\83 Ñ\82Ó\80еÑ\80а:',
 'listusers-submit' => 'Гайта',
+'listusers-noresult' => 'Декъашхой цакарий.',
 
 # Special:ActiveUsers
 'activeusers' => 'Жигар декъашхой могlам',
-'activeusers-from' => 'ТӀера волавелла декъашхой гайта:',
+'activeusers-intro' => 'Лахахь гойтуш бу  {{PLURAL:$1|тӀаьхьара $1 динахь|тӀаьхьара $1 деношкахь}} хийцамаш бина декъашхой.',
+'activeusers-count' => '{{PLURAL:$3|тӀаьхьарчу $3 динахь|тӀаьхьара $3 деношкахь}} $1 {{PLURAL:$1|нисдар|нисдарш}} дина',
+'activeusers-from' => 'Гучé баха декъашхой, болалуш болу тӀера:',
+'activeusers-hidebots' => 'Къайлабаха шабелхалой',
+'activeusers-hidesysops' => 'Къайлабаха куьйгалхой',
+'activeusers-noresult' => 'Декъашхой цакарий.',
 
 # Special:ListGroupRights
 'listgrouprights' => 'Декъашхойн тобанаши бакъонаш',
@@ -1178,15 +1538,28 @@ PICT # тайп тайпан
 
 # Email user
 'emailuser' => 'Декъашхочун хааман кехат',
+'emailuser-title-target' => 'Декъашхочунга кехат яздар',
+'emailuser-title-notarget' => 'Декъашхочунга кехат яздар',
 'defemailsubject' => 'Хаам {{grammar:genitive|{{SITENAME}}}} чура бу',
+'emailusername' => 'Декъашхочун цӀе:',
+'emailusernamesubmit' => 'ДӀадахьийта',
+'email-legend' => '{{grammar:genitive|{{SITENAME}}}} кхечу декъашхочунга кехат дахьийтар',
+'emailfrom' => 'Хьаьнгара',
+'emailto' => 'Хьаьнга:',
 'emailmessage' => 'Хаам:',
+'emailsent' => 'Кехат дӏадахьийтина',
+'emailsenttext' => 'Хьан электроннан хаам дӏабахьийтина.',
 
 # Watchlist
-'watchlist' => 'Тергаме могlам',
+'watchlist' => 'Тергаме могӀам',
 'mywatchlist' => 'Тергаме могӀам',
-'watchnologin' => 'Хьо вовзита веза гlирсан',
+'watchlistfor2' => 'Цунна $1 $2',
+'watchlistanontext' => 'Тергаме могӀоме хьажа я тая кхочушде $1.',
+'watchnologin' => 'Хьо вовзийта/йовзийта гlирсан',
+'addwatch' => 'Тергаме могӀам юкъа тоха',
 'addedwatchtext' => 'Хlар агlо «[[:$1]]» тlетоьхна хьан [[Special:Watchlist|тидаме могlам чу]].
 Тlаьхьабогlу хийцамаш хlокх агlонна а кхунца дозуш долу дийцаре агlо а дlаяздийра ду кху могlамашкахь, ишта къастина хирду уьш шуьрочу элпашца хlокх агlон чохь [[Special:RecentChanges|керла хийцаме могlамашкахь]], бгlаьран га атту болуш.',
+'removewatch' => 'ДӀаяккха тергаме могӀам юкъар',
 'removedwatchtext' => 'Агlо «[[:$1]]» дlаяккхина йара хьан [[Special:Watchlist|тергаме могlам юкъар]].',
 'watch' => 'Тидам бе',
 'watchthispage' => 'Тергам бé хlокху агlон',
@@ -1202,9 +1575,11 @@ PICT # тайп тайпан
 'watching' => 'Тергаме мlогаман юкъаяккха…',
 'unwatching' => 'Тергаме мlогаман чура дlайаккха…',
 
+'enotif_reset' => 'Билгал йаь ерриге агӀонаш хьаьжна санна',
+
 # Delete
 'deletepage' => 'ДӀаяккха агӀо',
-'confirm' => 'Ð\9aÑ\8aобалде',
+'confirm' => 'Ð\91акÑ\8aдан',
 'excontent' => 'чуьраниг: «$1»',
 'excontentauthor' => 'чуьраниг: «$1» (дуьххьара кхоллина да вара иза [[Special:Contributions/$2|$2]])',
 'exbeforeblank' => 'чуьраниг дlацlанйале хьалха: «$1»',
@@ -1212,15 +1587,30 @@ PICT # тайп тайпан
 'delete-confirm' => '$1 — дӀаяккхар',
 'delete-legend' => 'ДӀаяккхар',
 'historywarning' => "'''Тергам:''' хӀокху агӀона герггарчу хьесапехь $1 {{PLURAL:$1|версеш|верси|верси}} ю:",
-'confirmdeletetext' => 'Хьан дехар ду хlара агlо ше бухци дlабайа аьлла (йа сурт) а массо цуьнан истори оцу бух чура. Дехар до, бакъде, билгала хьайна иза лаахь, кхеташ хира ву хьо тlаьхьа хир долу чун, иза деш ду ахьа бакъонца догlуш, вахьа дехкина долучу дакъанца [[{{MediaWiki:Policy-url}}]].',
+'confirmdeletetext' => "<div id=\"confirmdeletetext\">
+Хьо гӀерта '''[[Википеди:АгӀонаш дӀаяхар|хӀара агӀо дӀаяккха]]'''; '''дехар до''', хьажа [[Special:Whatlinkshere/{{FULLPAGENAMEE}}|хьажориг юй кхузе хьажийна]], дӀаяккхале хьалха уьш нисйа деза.
+{{#switch:{{NAMESPACE}}|{{ns:File talk}}=
+<br />Хила мега, хӀара дийцаре агӀо
+{{#ifexist:Media:{{PAGENAME}}
+|{{#ifexist:File:{{PAGENAME}}|цигара файлан.|оц [[ВикидӀайуьллуче]]ра.}}
+|йоцуш йолу файлан]]
+}}
+}}
+</div>",
 'actioncomplete' => 'Дешдерг кхочушди',
+'actionfailed' => 'Кхочушъ дина дац',
 'deletedtext' => '«$1» дӀаяккхина яра.
 Хьажа. $2 хьажарна оцу тӀаьхьара дӀаяхначара могӀаме.',
-'dellogpage' => 'ДӀадяхнарш долу тéптар',
-'deletionlog' => 'дӀадяхнарш долу тéптар',
+'dellogpage' => 'ДӀадаьхнарш долу тéптар',
+'dellogpagetext' => 'Лахахь гойтуш ду дӀадахаршан тептар.',
+'deletionlog' => 'дӀадаьхнарш долу тéптар',
 'deletecomment' => 'Бахьан:',
 'deleteotherreason' => 'Кхин бахьан/тlетохар:',
 'deletereasonotherlist' => 'Кхин бахьан',
+'deletereason-dropdown' => '* Даржина долу дӀаяккхаран баьхьанаш 
+** зулма  
+** авторан лаамца
+** авторан бакъонаш талхор',
 'delete-edit-reasonlist' => 'Бахьанин список нисяр',
 
 # Rollback
@@ -1229,6 +1619,7 @@ PICT # тайп тайпан
 'rollbacklinkcount' => 'юхадаккха $1 {{PLURAL:$1|нисдар|нисдарш}}',
 'rollbacklinkcount-morethan' => 'Юхадаккха $1 дукха {{PLURAL:$1|нисдар|нисдарш|нисдарш}}',
 'revertpage' => 'Нисдарш [[Special:Contributions/$2|$2]] ([[User talk:$2|дийцаре]]) йуха йаьхна башхаллийн [[User:$1|$1]]',
+'rollback-success' => 'Юха даьхна $1; нисдарш, $2 версен.',
 
 # Protect
 'protectlogpage' => 'Гlаролли тептар',
@@ -1253,6 +1644,7 @@ PICT # тайп тайпан
 'protect-level-sysop' => 'Куьйгалхошна бé цамагдо',
 'protect-summary-cascade' => 'чахчареца',
 'protect-expiring' => 'чакхйолу $1 (UTC)',
+'protect-expiring-local' => 'чекхйолу $1',
 'protect-expiry-indefinite' => 'хан чаккхе йоцуш',
 'protect-cascade' => 'Гlаролла йé агlонаш, хlокху агlонца хlоттайелларш (чахчарé гlаролла)',
 'protect-cantedit' => 'Хьéга хийцам цабало хlокху агlон гlаролли локхалан, хlуд аьлча хьан бакъо яц оцун рéдаккха.',
@@ -1260,11 +1652,19 @@ PICT # тайп тайпан
 'protect-othertime-op' => 'кхин хан',
 'protect-otherreason' => 'Кхин бахьна/тӀетохар:',
 'protect-otherreason-op' => 'Кхин бахьан',
+'protect-dropdown' => '* ГӀоралла дарна баьхьаш 
+** сих-сиха зулам дар 
+** дуккха спам хилар
+** нисдаршан тӀом 
+** гӀараялл агӀо',
 'protect-edit-reasonlist' => 'Бахьанин список нисяр',
+'protect-expiry-options' => '1 сахьт:1 hour,1 де:1 day,1 кӀиран:1 week,2 кӀиран:2 weeks,1 бутт:1 month,3 бутт:3 months,6 бутт:6 months,1 шо:1 year,цlкъа:infinite',
 'restriction-type' => 'Бакъо:',
-'restriction-level' => 'Тlевитарна локхалла:',
+'restriction-level' => 'ТӀекхочаран локхалла:',
 
 # Restrictions (nouns)
+'restriction-edit' => 'Тадар',
+'restriction-move' => 'ЦӀе хийцар',
 'restriction-upload' => 'Чуйолуш',
 
 # Restriction levels
@@ -1278,9 +1678,12 @@ PICT # тайп тайпан
 'viewdeletedpage' => 'ДIайайина йолу агIонашка хьажар',
 'undelete-fieldset-title' => 'МеттахӀоттае версеш',
 'undeleteextrahelp' => "Ерриге агӀонан истори меттахӀоттая массо а билгалонаш еса а йити '''«{{int:undeletebtn}}»''' тӀетаӀае.
-ЦхӀайолу агӀонан версиш меттахӀоттая цкъахьалха меттахӀоттош йолу версиш билгалъяхна тӀетагӀе '''«{{int:undeletebtn}}»'''.",
+ЦхӀайолу агӀонан версеш меттахӀоттая хьалха меттахӀоттош йолу версеш билгалъяьхна тӀетагӀе '''«{{int:undeletebtn}}»'''.",
+'undeletehistory' => 'Агӏо меттахӏотта йича цуьнан хийцаман истори меттахӏотта ло.
+Агӏо дӏаяккхинчул тӏяха юху кхолийна елахь меттахӏоттина йолу версеш гучуер ю керлачу версешна хьалха',
 'undeleterevdel' => 'Метта хlоттор хира дац, нагахь иза дакъошкахь дlадайина далахь а тlаьххьара кисак башхо йа хlума.
 Иштнарг хилча ахьа дlабаккха беза хlоттийна болу къастам йа хьагайта тlаьххьара дlайайина башхо.',
+'undelete-revision' => 'Декъашхочун $3 дӀайаьккхина верси $1 (цу $4 $5 хан):',
 'undeletebtn' => 'МеттахӀоттае',
 'undeletelink' => 'хьажа/меттахӀоттае',
 'undeleteviewlink' => 'хьажа',
@@ -1292,6 +1695,7 @@ PICT # тайп тайпан
 
 ДӀадяхнарш долу могӀане [[Special:Log/delete|тéптаре хьажа]].",
 'undelete-search-submit' => 'Лаха',
+'undelete-show-file-submit' => 'Хlаъ',
 
 # Namespace form on various pages
 'namespace' => 'Цlерийн ана:',
@@ -1300,13 +1704,13 @@ PICT # тайп тайпан
 'blanknamespace' => '(Коьрта)',
 
 # Contributions
-'contributions' => 'Декъашхон къинхьегам',
-'contributions-title' => 'Декъашхочуьна къинхьегам $1',
+'contributions' => '{{GENDER:$1|Декъашхочун}} къинхьегам',
+'contributions-title' => '{{GENDER:$1|Декъашхочун}} къинхьегам $1',
 'mycontris' => 'Сан къинхьегам',
 'contribsub2' => 'Къинхьегам $1 ($2)',
 'uctop' => ' (тlаьхьара)',
 'month' => 'Беттаца (йа хьалхе):',
-'year' => 'Шерачохь (йа хьалхе):',
+'year' => 'Шерачохь (я хьалхе):',
 
 'sp-contributions-newbies' => 'Гайта бекъ къинхьегам, керла дlабазбиначара бина болу',
 'sp-contributions-blocklog' => 'блоктоьхарш',
@@ -1314,9 +1718,9 @@ PICT # тайп тайпан
 'sp-contributions-uploads' => 'Файлаш',
 'sp-contributions-logs' => 'тéптарш',
 'sp-contributions-talk' => 'дийцаре',
-'sp-contributions-userrights' => 'декъашхочуьн бакъона урхалладар',
+'sp-contributions-userrights' => 'декъашхочун бакъона урхалладар',
 'sp-contributions-search' => 'Къинхьегам лахар',
-'sp-contributions-username' => 'IP-долÑ\83 Ð¼ÐµÑ\82Ñ\82иг Ð¹Ð° Ð´ÐµÐºÑ\8aаÑ\88Ñ\85он Ñ\86lе:',
+'sp-contributions-username' => 'IP-адÑ\80еÑ\81 Ñ\8f Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н Ñ\86Ó\80е:',
 'sp-contributions-toponly' => 'ТӀаьхьара бина хийцамаш гайта',
 'sp-contributions-submit' => 'Лаха',
 
@@ -1336,13 +1740,18 @@ PICT # тайп тайпан
 'whatlinkshere-hideredirs' => '$1 дlасахьажйар',
 'whatlinkshere-hidetrans' => '$1 латораш',
 'whatlinkshere-hidelinks' => '$1 хьажоригаш',
+'whatlinkshere-hideimages' => '$1 файлашан хьажоригаш',
 'whatlinkshere-filters' => 'Литтарш',
 
 # Block/unblock
-'block' => 'Декъашхон блоктохар',
+'block' => 'Декъашхочун блоктохар',
+'unblock' => 'ДекъашхонтӀера блокдӀаякхар',
 'blockip' => 'Блоктоха',
-'blockip-legend' => 'Декъашхон блоктохар',
-'ipadressorusername' => 'IP-долу меттиг йа декъашхон цlе:',
+'blockip-legend' => 'Декъашхочун блоктохар',
+'blockiptext' => 'Бухахь йолу форманца блоктоха IP-адресна цунтӏера дӏаяздарш ца дайта.
+Блоктоха магийна цо зенаш деш делахь кхин хӏокху [[{{MediaWiki:Policy-url}}|низам ца]].
+Лахахь билгалде блоктохарна бахьна.',
+'ipadressorusername' => 'IP-адрес я декъашхочун цӀе:',
 'ipbexpiry' => 'Хан чекхйолу:',
 'ipbreason' => 'Бахьан:',
 'ipbreasonotherlist' => 'Кхин бахьан',
@@ -1353,40 +1762,64 @@ PICT # тайп тайпан
 ** МаьӀна доцу текст тӀетохар
 ** Декъашхой хьийзабар, кхерамаш тиссар
 ** Масийтта лараман яздар зуламан лелаяр
-** Магитина йоцу декъашхон цӀе',
-'ipbcreateaccount' => 'Цамагдо дӀаязвалар',
+** Магитина йоцу декъашхочун цӀе',
+'ipb-hardblock' => 'Шаш довзийтина болу декъашхошна бехкам бе хӀокху IP-адресца тадарш дан',
+'ipbcreateaccount' => 'Цамагдо дӀаязвалар/ялар',
 'ipbemailban' => 'Цамагдо декъашхошка хааман кехаташ кхехьийта',
-'ipbenableautoblock' => 'СаÑ\86ае Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87о Ð»ÐµÐ»Ð¾Ñ\88 Ð¹Ð¾Ð»Ñ\83 IP-адÑ\80еÑ\81аÑ\88',
-'ipbsubmit' => 'Блоктоха декъашхон',
+'ipbenableautoblock' => 'Ð\91локÑ\82оÑ\85а Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87о Ð»ÐµÐ»Ð¾Ñ\88 Ð¹Ð¾Ð»Ñ\83 IP-адÑ\80еÑ\81аÑ\88на',
+'ipbsubmit' => 'Блоктоха хӀокху декъашхочун/адресна',
 'ipbother' => 'Кхин хан:',
 'ipboptions' => '2 сахьат:2 hours,1 де:1 day,3 де:3 days,1 кlиран:1 week,2 кlиран:2 weeks,1 бутт:1 month,3 бутт:3 months,6 бутт:6 months,1 шо:1 year,цlкъа:infinite',
 'ipbwatchuser' => 'ТӀетоха тергаме могӀам юкъа цуьнан долахь йолу агӀо а цуьнан дийцаре агӀо а',
-'ipb-disableusertalk' => 'Цамагдо шин дийцаре агӀо та я блоктоьхна волучу хенахь',
+'ipb-disableusertalk' => 'Цамагдо шин дийцаре агӀо та я блоктоьхна хан чекхъяллалц',
+'ipb-change-block' => 'Юхаблоктоха декъашхочун оьцу хийцамашца',
 'ipb-confirm' => 'Бакъде блоктохар',
 'blockipsuccesssub' => 'Блоктохар чакхдели',
-'blockipsuccesstext' => '[[Special:Contributions/$1|«$1»]] блоктоьхна ву.<br />
-Ð¥Ñ\8cажа. [[Special:BlockList|могlам Ð±Ð»Ð¾ÐºÑ\82оÑ\8cÑ\85на IP-долÑ\83 Ð¼ÐµÑ\82Ñ\82игаÑ\88]].',
-'ipb-blockingself' => 'Хьо хьайна блоктухуш ву (ю)! Лууш вуй (йуй) хьо и кхочуш дан?',
+'blockipsuccesstext' => '[[Special:Contributions/$1|«$1»]] {{GENDER:$1|блоктоьхна ву|блоктоьхна ю}}.<br />
+Ð¥Ñ\8cажа. [[Special:BlockList|блокÑ\82оÑ\8cÑ\85на IP-адÑ\80еÑ\81аÑ\88ан Ð¼Ð¾Ð³Ó\80ам]].',
+'ipb-blockingself' => 'Хьо хьайна блоктухуш ву/ю! Лууш вуй/юй хьо и кхочушдан?',
 'ipb-edit-dropdown' => 'Бахьанин список нисяр',
 'ipb-unblock-addr' => 'ДӀаякхаблок $1',
 'ipb-unblock' => 'дӀаякхаблок декъашхонтӀера я IP-адрес тӀера',
 'ipb-blocklist' => 'Блоктоьхнарш',
-'ipb-blocklist-contribs' => 'Декъашхон къинхьегам $1',
+'ipb-blocklist-contribs' => 'Декъашхочун къинхьегам $1',
 'unblockip' => 'ДӀаякхаблок декъашхонтӀера',
+'unblockiptext' => 'Лелае лахара форма IP-адрес тӀера я декъашхойн дӀаяздар тӀера блокдӀайокхуш.',
+'ipusubmit' => 'ДIаяккха хӀара блок',
 'unblocked' => '[[User:$1|$1]] хьайаьстина.',
-'ipblocklist' => 'Блоктоьхна IP-долу меттиг а дlалаьрра язбаларш',
+'blocklist' => 'Блоктоьхна декъашхой',
+'ipblocklist' => 'Блоктоьхна декъашхой',
+'ipblocklist-legend' => 'Блоктоьхна декъашхо лахар',
+'blocklist-userblocks' => 'ДӀахьулян дӀаяздаршан блоктохарш',
+'blocklist-tempblocks' => 'ДӀахьулян цхьан ханна йолу блоктохарш',
+'blocklist-addressblocks' => 'ДӀахулдан цхьайолу IP адресан блоктохарш',
+'blocklist-rangeblocks' => 'ДӀахьулян блоктоьхна йолу диапазонаш',
+'blocklist-timestamp' => 'Терахь/хан',
+'blocklist-target' => 'Ӏалашо',
+'blocklist-expiry' => 'Чекхйолу',
+'blocklist-by' => 'Цунна блоктоьхана куьйгалхо',
+'blocklist-params' => 'Блоктохаран параметраш',
 'blocklist-reason' => 'Бахьан:',
 'ipblocklist-submit' => 'Лаха',
 'infiniteblock' => 'хан чаккхе йоцуш',
+'expiringblock' => 'чекхйолу $1 $2',
+'noautoblockblock' => 'ша блоктухарг дӏаяйина',
+'createaccountblock' => 'цамагдо керла дӀаяздарш кхоллар',
 'blocklink' => 'блоктоха',
 'unblocklink' => 'дӀаякхаблок',
 'change-blocklink' => 'хийцам бе блоктохарна',
 'contribslink' => 'къинхьегам',
 'blocklogpage' => 'Блоктоьхарш болу тептар',
+'blocklog-showlog' => '{{GENDER:$1|ХӀокху декъашхочун хьалхо блоктоьхна хила}}.
+Лахахь гойту блоктохарш долу тептар:',
 'blocklogentry' => 'блоктоьхна [[$1]] цхьана ханна $2 $3',
 'reblock-logentry' => 'Хийцина  блоктоьхна хан [[$1]] $2 $3',
+'blocklogtext' => 'Блоктохаршна а блокдӀаякхаршна а тептар. Ша блоккхеташ долу IP-адресаш кхузахь гойтуш дац. Кхин. [[Special:BlockList|хӀийнца блоктоьха берш]].',
 'unblocklogentry' => 'дӀаякхинаблок $1',
-'block-log-flags-nocreate' => 'цамагдо дlаязвалар дlаязбаларшца',
+'block-log-flags-anononly' => 'Къайлаха берш',
+'block-log-flags-nocreate' => 'цамагдо керла дӏаяздарш кхоллар',
+'block-log-flags-noautoblock' => 'ша блоктухарг дӏаяйина',
+'ipb-needreblock' => 'ХӀара $1 {{GENDER:$1|блоктоьхна ву|блоктоьхна ю}}. Лаьий хьуна блоктохаран параметраш хийца?',
 
 # Move page
 'move-page' => '$1 — цlе хийцар',
@@ -1436,6 +1869,8 @@ PICT # тайп тайпан
 'movedto' => 'цlе хийцина оцу',
 'movetalk' => 'Цуьнца йогlуш йолу дийцаре агlон цlе хийцар',
 'move-subpages' => 'ЦӀeрш хийцае бухара агӀонаши ($1 кхаччалц)',
+'move-talk-subpages' => 'ЦӀе хийца бухара агӀонаши а агӀонашан дийцаре а ($1  кхаччалц)',
+'movepage-page-exists' => 'Агӏо $1 йолуш ю цундела и ша юху дӏаязъян йиш яц.',
 'movepage-page-moved' => 'АгӀона $1 цӀе хийцина оцу $2.',
 'movelogpage' => 'Цlераш хийцаран тептар',
 'movesubpage' => '{{PLURAL:$1|Бухара агӀо|Бухара агӀонаш}}',
@@ -1448,6 +1883,8 @@ PICT # тайп тайпан
 Лаьий хьуна и дӀаяккха, цӀе хийца таро хилийта?',
 'delete_and_move_confirm' => 'Хlаъ, дӀаяккха хlара агlо',
 'delete_and_move_reason' => 'ДӀаяккхина цӀе хийца я таро хилийта  «[[$1]]»',
+'selfmove' => 'АгӀона цӏе хийца йиш яц: и цӏе хӏокху агӏона йолуш ю.',
+'immobile-source-page' => 'ХӀокху агӏона цӏе хийца йиш яц.',
 'move-leave-redirect' => 'Ӏадйита дӀасахьажориг',
 'protectedpagemovewarning' => "'''Дlахьедар.''' Хlара агlо гlаролла йина йу; цlе хийца йа нисйа а бакъо йолуш адаманкуьйгалхой бе бац.
 Лахахьа тептаро балийна тlаьхьаралера дlаязбина хаам:",
@@ -1479,6 +1916,7 @@ PICT # тайп тайпан
 
 # Thumbnails
 'thumbnail-more' => 'Доккха де',
+'thumbnail_error' => 'Миниатюра кхолларна гӀалат: $1',
 
 # Special:Import
 'import' => 'Кхин яззам агlонаш чуяхар',
@@ -1486,13 +1924,16 @@ PICT # тайп тайпан
 'import-interwiki-templates' => 'Лата де массо кепаш',
 'import-upload-filename' => 'Файлан цӀе:',
 
+# Import log
+'importlogpage' => 'Импортан тептар',
+
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Декъашхочуьна агlо',
 'tooltip-pt-mytalk' => 'Сан дийцаре агlо',
 'tooltip-pt-preferences' => 'Хьан гlирс нисбар',
 'tooltip-pt-watchlist' => 'Ахьа тергам бо агlонаши хийцаман могlам',
 'tooltip-pt-mycontris' => 'Хьан нисдаран могlам',
-'tooltip-pt-login' => 'Хlокху гlирса чохь дlавазвала мега, амма иза тlедожош дац.',
+'tooltip-pt-login' => 'Хlокху гlирса чохь дlавазвала/яла мега, амма иза тlедожош дац.',
 'tooltip-pt-logout' => 'Дlадерзадо болх бар',
 'tooltip-ca-talk' => 'Дийцаре агlон чулацам',
 'tooltip-ca-edit' => 'Хlара агlо хийцалур ю. Лелайе, дехар до, хьалххьажар айхьа чутохале lалашан',
@@ -1527,7 +1968,7 @@ PICT # тайп тайпан
 'tooltip-t-print' => 'Хlокху агlонна зорба туху башхо',
 'tooltip-t-permalink' => 'Даимна йолу хьажориг хlокху башха агlонна',
 'tooltip-ca-nstab-main' => 'Яззамна чулацам',
-'tooltip-ca-nstab-user' => 'Хlора декъашхон долахь йолу агlо',
+'tooltip-ca-nstab-user' => 'ХӀора декъашхочун долахь йолу агӀо ю',
 'tooltip-ca-nstab-media' => 'Медиа-файл',
 'tooltip-ca-nstab-special' => 'Хlара белха агlо йу, хlара рéдаккхалуш яц',
 'tooltip-ca-nstab-project' => 'Кхолламан дакъа',
@@ -1543,6 +1984,7 @@ PICT # тайп тайпан
 'tooltip-watch' => 'Тlетоха хlара агlо сан тергаме могlам юкъа',
 'tooltip-rollback' => 'Цхьоз тlетаlийча дlабаккха кхечо бина болу тlаьххьара хийцам',
 'tooltip-undo' => 'Дlабаккха бина болу хийцам а хьалхьажар гойтуш, дlайаккхарна бахьан гайта аьтту беш',
+'tooltip-summary' => 'Язъе йоца цӀе',
 
 # Stylesheets
 'common.css' => '/** Чуйиллина йолу кхузе CSS хир йу лелош масхьа кечйечу чохь */',
@@ -1550,21 +1992,36 @@ PICT # тайп тайпан
 'print.css' => '/* Чуйиллина йолу кхузе CSS хир йу лелош масхьа зорба тухучуче чохь */',
 
 # Scripts
-'common.js' => '/* Ð§Ñ\83йиллина Ð¹Ð¾Ð»Ñ\83 ÐºÑ\85Ñ\83зе JavaScript Ð¸Ñ\88аÑ\80 Ð³Ñ\83Ñ\87Ñ\83 ÐµÑ\80айÑ\83 массо декъашхошна оцара схьаелларца хlора агlо */',
-'monobook.js' => '/* Ð\9aÑ\85Ñ\83зе Ñ\87Ñ\83 Ñ\8fззийна Ð¹Ð¾Ð»Ñ\83 JavaScript Ð¸Ñ\88аÑ\80, Ñ\87Ñ\83 Ð¹ÐµÑ\80а Ð¹Ñ\83, массо MonoBook хатl лелош болу декъашхошна */',
+'common.js' => '/* Ð§Ñ\83йиллина Ð¹Ð¾Ð»Ñ\83 ÐºÑ\85Ñ\83зе JavaScript ÐºÐ¾Ð´ Ð³Ñ\83Ñ\87Ñ\83 ÐµÑ\80а Ñ\8e массо декъашхошна оцара схьаелларца хlора агlо */',
+'monobook.js' => '/* Ð\9aÑ\85Ñ\83зе Ñ\87Ñ\83 Ñ\8fзийна Ð¹Ð¾Ð»Ñ\83 JavaScript ÐºÐ¾Ð´, Ñ\87Ñ\83 ÐµÑ\80а Ñ\8e, массо MonoBook хатl лелош болу декъашхошна */',
 
 # Attribution
 'siteuser' => 'декъашхо {{grammar:genitive|{{SITENAME}}}} $1',
 'others' => 'кхин',
 'siteusers' => '{{PLURAL:$2|декъашхо|декъашхой}} {{grammar:genitive|{{SITENAME}}}} $1',
+'anonusers' => '{{PLURAL:$2|цӀе хьулйина декъашхо|цӀе хьулйина декъашхой}} {{grammar:genitive|{{SITENAME}}}} $1',
 'nocredits' => 'Бац декъашхойн могlам хlокху яззамца',
 
 # Spam protection
 'spamprotectiontitle' => 'Совбиларна литтар',
 
 # Info page
+'pageinfo-header-basic' => 'Коьрта хаам',
+'pageinfo-language' => 'АгӀона мотт',
 'pageinfo-toolboxlink' => 'Агlонах болу бовзам',
 
+# Skin names
+'skinname-modern' => 'Кхузаманан',
+'skinname-vector' => 'Векторни',
+
+# Patrolling
+'markaspatrolledtext' => 'Пайден агӏо хилар билгало ян',
+'markedaspatrollednotify' => 'АгӀо «$1» пайдане хилар билгалдина',
+
+# Patrol log
+'patrol-log-page' => 'ТӀехьажаран тептар',
+'log-show-hide-patrol' => '$1 тӀехьажаран тептар',
+
 # Browsing diffs
 'previousdiff' => '← Хьалхдоьда нисдинарг',
 'nextdiff' => 'Тlяхьа догlа нисдинарг →',
@@ -1573,15 +2030,20 @@ PICT # тайп тайпан
 'imagemaxsize' => "Суьртан бараман доза тохар:<br />''(Файла агӀона куц дийцар)''",
 'thumbsize' => 'Жима дина суьртан барам:',
 'widthheightpage' => '$1 × $2, $3 {{PLURAL:$3|агlо|агlонаш|агlонаш}}',
-'file-info-size' => '$1 × $2 {{PLURAL:$2|пиксель|пикселш|пикселш}}, файлан барам: $3, MIME-тайп: $4',
+'file-info' => 'файлан барам: $1, MIME-тайп: $2',
+'file-info-size' => '$1 × $2 {{PLURAL:$2|пиксель|пикселш}}, файлан барам: $3, MIME-тайп: $4',
+'file-info-size-pages' => '$1 × $2 пикселш, файлан барам: $3, MIME-тайп: $4, $5 {{PLURAL:$5|агӀо|агӀонаш}}',
 'file-nohires' => 'Кхи йоккха гlоле башхо яц.',
 'svg-long-desc' => 'SVG-файл, лартӀахь ю $1 × $2 {{PLURAL:$2|пиксель|пикселш|пикселш}}, файлан барам: $3',
+'svg-long-desc-animated' => 'Анимироват йина SVG-файл, номинальни $1 × $2 {{PLURAL:$2|пиксель|пикселш}}, файлан барам: $3',
 'show-big-image' => 'Сурт цlанал лаккхара бакъонца',
 'show-big-image-preview' => 'Барам хьажале: $1.',
 'show-big-image-other' => '{{PLURAL:$2|Кхин шоралла|Кхин шоралла}}: $1.',
+'show-big-image-size' => '$1 × $2 пикселш',
 
 # Special:NewFiles
-'newimages' => 'Керлачу хlумни галеларе',
+'newimages' => 'Керлачу файланшан галерий',
+'newimages-summary' => 'ХӀокху белхан агӀона чохь гойтуш ю дукха хан йоццуш чуйаьхна файлаш.',
 'newimages-legend' => 'Литтар',
 'ilsubmit' => 'Лаха',
 
@@ -1600,7 +2062,7 @@ PICT # тайп тайпан
 'metadata-help' => 'ХӀокху файлаца кхин тӀе хаам бу, даиман чуйоккхуш йолу терахьца чоьнашца йа тӀейоккхучуьнца. Нагахь файлан тӀаьхьа хийцам биняхь, тӀаккха цӀхьаболу барам цӀхьаьна ца ба мега хӀинцалера суьртаца.',
 'metadata-expand' => 'Гайта кхин тlе болу хаам',
 'metadata-collapse' => 'Къайла баккха кхин тlе болу хаам',
-'metadata-fields' => 'Метахааман майда, хьахийна йолу хlокху могlамца, lад-йитича гойтур ю суьрти агlонца, йисинарш хира ю къайлаха.
+'metadata-fields' => 'Метахааман майда, хьахийна йолу хӀокху могӀамца, Ӏад-йитича гойтур ю суьртийн агӀонца, йисинарш хира ю къайлаха.
 * make
 * model
 * datetimeoriginal
@@ -1616,11 +2078,50 @@ PICT # тайп тайпан
 * gpsaltitude',
 
 # Exif tags
-'exif-datetime' => 'Хlума хийцина терахь а хан',
+'exif-imagewidth' => 'Шоралла',
+'exif-imagelength' => 'Локхалла',
+'exif-bitspersample' => 'Бесан кIоргалла',
+'exif-photometricinterpretation' => 'Беснин модель',
+'exif-orientation' => 'Суьртан хьал',
+'exif-xresolution' => 'Шоралла',
+'exif-yresolution' => 'Локхалла',
+'exif-datetime' => 'Файл хийцина терахь а хан',
+'exif-imagedescription' => 'Суьртан цӏе',
+'exif-software' => 'Лелина программа',
+'exif-colorspace' => 'Беснашан хьал',
+'exif-compressedbitsperpixel' => 'Бесан кIоргалла дацдина чул тӀехьа',
+'exif-pixelxdimension' => 'Суьртан локхалла',
 'exif-datetimeoriginal' => 'Дуьххьарлера терахь а хан',
+'exif-datetimedigitized' => 'Оцифровк йина терахь а хан а',
+'exif-gpsaltitude' => 'Локхалла',
+'exif-gpsdestlatitude' => 'Объектан дохалла',
+'exif-gpsdatestamp' => 'Терахь',
+'exif-headline' => 'Корта',
+'exif-source' => 'Хьост',
+'exif-languagecode' => 'Мотт',
+'exif-datetimemetadata' => 'ТӀехьара метахаамаш хийцина терахь',
+
+# Exif attributes
+'exif-compression-1' => 'ТIеIовдан яц',
+
+'exif-copyrighted-false' => 'Юкъараллин хьал',
+
+'exif-orientation-1' => 'Лартӏахь',
+
+'exif-xyresolution-i' => '$1 тӏадамаш дюйман',
 
 'exif-scenetype-1' => 'Сурт даьккхина нис дуьххьал',
 
+'exif-gaincontrol-0' => 'Яц',
+
+'exif-contrast-0' => 'Лартӏахь',
+
+'exif-saturation-0' => 'Лартӏахь',
+
+'exif-sharpness-0' => 'Лартӏахь',
+
+'exif-dc-date' => 'Терахь(ш)',
+
 # External editor support
 'edit-externally' => 'Рéдаккха хlокху хlуман, арахьара диллагlарам лелош',
 'edit-externally-help' => '(мадарра хьажа. оцу [//www.mediawiki.org/wiki/Manual:External_editors куьйгалийца дlахlотторе])',
@@ -1632,15 +2133,19 @@ PICT # тайп тайпан
 'limitall' => 'массо',
 
 # Delete conflict
-'confirmrecreate' => "Декъашхо [[User:$1|$1]] ([[User talk:$1|дийцаре]]) хlара агlо дlадайина, хьо иза нисда вола велча, дlадайарна бахьан:
+'confirmrecreate' => "Декъашхочо [[User:$1|$1]] ([[User talk:$1|дийцаре]]) хӀара агӀо дӀаяккхина, ахьа иза тая йолийча, дӀаяккхарна бахьна:
 : ''$2''
-Дехар до, тешал де, хьо иза агlо метта хlотто лууш ву але.",
+Дехар до, тешал де, хьо иза агӀо меттахӀотто лууш ву/ю але.",
+'confirmrecreate-noreason' => 'Декъашхочо [[User:$1|$1]] ([[User talk:$1|дийцаре]]) хӀара агӀо дӀаяккхина, ахьа иза тая йолийча. Дехар до, тешал де, хьо иза агӀо меттахӀотто лууш ву/ю але.',
+
+# action=watch/unwatch
+'confirm-watch-top' => 'ТӀетоха хӀара агӀо хьан тергаме могӀам юкъа?',
 
 # Multipage image navigation
 'imgmultipageprev' => '← хьалхара агlо',
 'imgmultipagenext' => 'тlаьхьара агlо →',
-'imgmultigo' => 'Ð\94еÑ\85Ñ\8cавала!',
-'imgmultigoto' => 'Ð\94еÑ\85Ñ\8cавала Ð°Ð³lонÑ\87Ñ\83 $1',
+'imgmultigo' => 'Ð\94еÑ\85Ñ\8cагÓ\80о!',
+'imgmultigoto' => 'Ð\90гÓ\80онÑ\87Ñ\83 $1 Ð³Ó\80о',
 
 # Table pager
 'table_pager_next' => 'Тlаьхьа йогlу агlо',
@@ -1653,8 +2158,9 @@ PICT # тайп тайпан
 'table_pager_empty' => 'Цакарийна',
 
 # Auto-summaries
-'autosumm-blank' => 'Агlон чулацам дlабайина',
+'autosumm-blank' => 'Агӏон чулацам дӏабяккхина',
 'autosumm-replace' => 'АгӀона чуьраниг хийцина оцу «$1»',
+'autoredircomment' => 'ДӀасахьажийна цуна [[$1]] тӏе',
 'autosumm-new' => 'Керла агlо: «$1»',
 
 # Live preview
@@ -1662,7 +2168,10 @@ PICT # тайп тайпан
 'livepreview-ready' => 'Чуйолуш… Кийча йу!',
 
 # Watchlist editor
-'watchlistedit-normal-submit' => 'Дlадайá язъдинарш',
+'watchlistedit-normal-explain' => 'Лахахь гойту хьан тергаме могӀамехь йолу агӀонаш.
+ДӀаяздарш дӀадаха билгалде уьш такха тӀетаӀе кнопка «{{int:Watchlistedit-normal-submit}}».
+Кхин хьа йиш ю [[Special:EditWatchlist/raw|йозан кепар могӀом нисба ]].',
+'watchlistedit-normal-submit' => 'ДӀадаха дӀаяздарш',
 
 # Watchlist editing tools
 'watchlisttools-view' => 'Могlам чура агlонашан хийцамаш',
@@ -1674,11 +2183,22 @@ PICT # тайп тайпан
 
 # Special:Version
 'version' => 'Верси MediaWiki',
+'version-variables' => 'Хийцаме',
 'version-other' => 'Кхин',
+'version-license' => 'Бакъо',
+
+# Special:Redirect
+'redirect' => 'Декъашхочун файлан тӀера дӀасхьажор',
+'redirect-legend' => 'Файлан я агӀона тӀера дӀасхьажор',
+'redirect-summary' => 'ХӀара агӀо лело йиш ю файлан я агӀона тӀера дӀасхьажош.',
+'redirect-value' => 'МаьӀна:',
+'redirect-user' => 'Декъашхочун ID',
 
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Лаха цхьатера йолу хIумнаш',
+'fileduplicatesearch-filename' => 'Файлан цӀе:',
 'fileduplicatesearch-submit' => 'Лаха',
+'fileduplicatesearch-info' => '$1 × $2 {{PLURAL:$2|пиксель|пикселш|пикселш}}<br />Файлан барам: $3<br />MIME-тайп: $4',
 
 # Special:SpecialPages
 'specialpages' => 'Леррина агlонаш',
@@ -1687,28 +2207,41 @@ PICT # тайп тайпан
 * <strong class="mw-specialpagerestricted">Кlеззиг таронаш йолу леррина агlонаш.</strong>',
 'specialpages-group-maintenance' => 'Жамlаш гlирса хьашташ кхочушдар',
 'specialpages-group-other' => 'Кхин гlуллакхан агlонаш',
-'specialpages-group-login' => 'Хьой вовзийта / Дlавазло',
+'specialpages-group-login' => 'Хьой вовзийта/йовзийта / дӀавазло/дӀаязло',
 'specialpages-group-changes' => 'Керла нисдарш а тéптарш',
 'specialpages-group-media' => 'Жамlаш оцу медиа-гlирсашан а чуяхарш',
 'specialpages-group-users' => 'Декъашхой а бакъонаш',
 'specialpages-group-highuse' => 'Уггаре дукха лелайо агlонаш',
 'specialpages-group-pages' => 'Агlонаши могlамаш',
 'specialpages-group-pagetools' => 'Гlирсаш оцу агlонашан',
-'specialpages-group-wiki' => 'Ð\92ики-баÑ\85Ñ\85аÑ\88 Ð° Ð³lиÑ\80Ñ\81аÑ\88',
+'specialpages-group-wiki' => 'ХаамаÑ\88 Ð° Ð³Ó\80иÑ\80Ñ\81аÑ\88 Ð°',
 'specialpages-group-redirects' => 'Дlасахьажош йолу гlуллакхан агlонаш',
-'specialpages-group-spam' => 'Ð\93lиÑ\80Ñ\81аÑ\88 Ñ\81овбилаÑ\80на Ð´Ñ\83Ñ\8cÑ\85Ñ\8cал',
+'specialpages-group-spam' => 'Спаман Ð´Ñ\83Ñ\8cÑ\85Ñ\8cала Ð³Ó\80иÑ\80Ñ\81аÑ\88',
 
 # Special:BlankPage
 'blankpage' => 'Йаьсса агlо',
 
 # Special:Tags
 'tags' => 'Болш болу хийцаман къастам',
-'tag-filter' => 'Ð\9bиÑ\82Ñ\82аÑ\80 [[Special:Tags|кÑ\8aаÑ\81Ñ\82ам]]:',
+'tag-filter' => 'Ð\9aÑ\8aаÑ\81Ñ\82ам [[Special:Tags|Ñ\85Ñ\8cажаÑ\80]]:',
 'tag-filter-submit' => 'Литта',
+'tags-title' => 'Билгалонаш',
+'tags-intro' => 'ХӀокху агӀона чохь гойтуш бу билгалошан могӀам царца программин латторо билгал доху нисдарш, кхин билгалошан маьӀна а.',
+'tags-tag' => 'Билгалона цӀе',
+'tags-display-header' => 'МогӀам чохь хийцамаш гар',
 'tags-hitcount-header' => 'Къастам бина нисдарш',
 'tags-edit' => 'нисйé',
 'tags-hitcount' => '$1 {{PLURAL:$1|хийцам|хийцамаш|хийцамаш}}',
 
+# Special:ComparePages
+'comparepages' => 'АгӀонаш муха ю хьажар',
+'compare-selector' => 'АгӀонашан версеш муха ю хьажар',
+'compare-page1' => 'Дуьххьаралера агӀо',
+'compare-page2' => 'ШолгӀа агӀо',
+'compare-rev1' => 'Дуьххьаралера верси',
+'compare-rev2' => 'ШолгӀа верси',
+'compare-submit' => 'Муха ю хьажа',
+
 # Database error messages
 'dberr-header' => 'Хlара вики ловш йу халона бала',
 'dberr-problems' => 'Бехк ма бил! Хlинц машан меттиган хилла гlирсаца халонаш.',
@@ -1718,6 +2251,8 @@ PICT # тайп тайпан
 'dberr-outofdate' => 'Хьуна хаалахь, цуьна йолу меттиг хила мега тишйелла черахь.',
 
 # HTML forms
+'htmlform-submit' => 'ДӀадахьийта',
+'htmlform-reset' => 'Цаоьшу хийцамаш',
 'htmlform-selectorother-other' => 'Кхин',
 
 # New logging system
@@ -1729,6 +2264,11 @@ PICT # тайп тайпан
 'logentry-move-move_redir-noredirect' => '$1 {{GENDER:$2|цӀе хийцина|цӀе хийцина}} $3 оцу $4 дӀасахьажоран тӀохул а дӀасахьажийнарг цаюьтуш а',
 'logentry-newusers-newusers' => '{{GENDER:$2|ДӀавазвелла|ДӀаязелла}} керла декъашхо $1',
 'logentry-newusers-create' => '{{GENDER:$2|ДӀавазвелла|ДӀаязелла}} керла декъашхо $1',
+'logentry-rights-rights-legacy' => '$1 {{GENDER:$2|хийцина}} хӏокхуна $3 бакъо',
+'rightsnone' => '(яц)',
+
+# Feedback
+'feedback-cancel' => 'Цаоьшу',
 
 # Search suggestions
 'searchsuggest-search' => 'Лаха',
index a217035..d8a0672 100644 (file)
@@ -296,7 +296,6 @@ $1',
 'disclaimers' => 'Mga pagpasabot',
 'disclaimerpage' => 'Project:Mga pagpasabot',
 'edithelp' => 'Tabang sa pag-usab',
-'edithelppage' => 'Help:Pag-usab',
 'helppage' => 'Help:Mga sulod',
 'mainpage' => 'Unang Panid',
 'mainpage-description' => 'Unang Panid',
@@ -709,7 +708,6 @@ Hinumdomi nga ang paggamit sa mga sumpay sa nabigasyon mo-reset sa column.',
 'prevn' => 'miaging {{PLURAL:$1|$1}}',
 'nextn' => 'sunod {{PLURAL:$1|$1}}',
 'viewprevnext' => 'Tan-awa sa ($1 {{int:pipe-separator}} $2) ($3)',
-'searchhelp-url' => 'Help:Mga sulod',
 'searchprofile-everything' => 'Tanan ng bagay',
 'search-result-size' => '$1 ({{PLURAL:$2|1 pulong|$2 ka mga pulong}})',
 'search-redirect' => '(redirek $1)',
@@ -762,7 +760,6 @@ Hinumdomi nga ang ilang indeks sa sulod sa {{SITENAME}} mahimong dugay-dugay na.
 'resetprefs' => 'Limpyohi ang wala matipigi nga mga kausaban',
 'restoreprefs' => 'Ibalik ang tanang default settings',
 'prefs-editing' => 'Nagausab',
-'prefs-edit-boxsize' => 'Size sa edit window.',
 'rows' => 'Mga row:',
 'columns' => 'Mga kolum:',
 'searchresultshead' => 'Pangitaa',
@@ -801,7 +798,6 @@ Hinumdomi nga ang ilang indeks sa sulod sa {{SITENAME}} mahimong dugay-dugay na.
 'prefs-reset-intro' => 'Puyde nimo gamiton ang kining panid aron ma-reset ang imong mga preprensiya ngadto sa default sa sayt.
 Dili kini puyde mabalik.',
 'prefs-emailconfirm-label' => 'Kompirmasyon sa e-mail:',
-'prefs-textboxsize' => 'Size sa editing window',
 'youremail' => 'E-mail:',
 'username' => 'Username:',
 'uid' => 'ID sa gumagamit:',
index 0305638..410f4b6 100644 (file)
@@ -213,7 +213,6 @@ $messages = array(
 'disclaimers' => 'Diklarasion Inadahi',
 'disclaimerpage' => 'Project:Diklarasion inadahi henerat',
 'edithelp' => 'Ayudo tumulaika',
-'edithelppage' => 'Help:Tumulaika',
 'helppage' => 'Help:Guinaha',
 'mainpage' => 'Fanhaluman',
 'mainpage-description' => 'Fanhaluman',
@@ -631,7 +630,6 @@ Fanapunta na para u na'nuebu i kolumna anggen un usa i inachetton nabegasion.",
 'prevn' => "{{PLURAL:$1|$1}} ni manmå'pos",
 'nextn' => "{{PLURAL:$1|$1}} ni manmamaila'",
 'viewprevnext' => 'Atan i ($1 {{int:pipe-separator}} $2) ($3)',
-'searchhelp-url' => 'Help:Guinaha',
 'search-result-size' => '$1 ({{PLURAL:$2|1 na palabra|$2 na palabra siha}})',
 'search-result-score' => 'Prinisisu: $1%',
 'search-redirect' => "(na'dirihi $1)",
@@ -748,7 +746,6 @@ Yanggen un decidi mamo'lu, ma'usa ha' sempre para muna'i hao ni kreditu ni che'c
 'recentchangeslinked-feed' => 'Umachetton na tinilaika siha',
 'recentchangeslinked-toolbox' => 'Umachetton na tinilaika siha',
 'recentchangeslinked-title' => 'Tinilaika pumarehu yan "$1"',
-'recentchangeslinked-noresult' => "Tåya' na tinilaika siha ni maninachetton na påhina gi tiempon ma'ayek.",
 'recentchangeslinked-summary' => "Lista este ni tinilaika siha gi halacha ginen un påhina ma'ayek (pat ni miembro siha ginen un katigoria ma'ayek).
 '''Potpot''' i påhina siha ginen [[Special:Watchlist|Listan pinilan-mu]].",
 'recentchangeslinked-page' => "Nå'an i påhina:",
index a16630d..305c9ab 100644 (file)
@@ -61,17 +61,20 @@ $specialPageAliases = array(
        'Allmessages'               => array( 'ھەموو_پەیامەکان' ),
        'Allpages'                  => array( 'ھەموو_پەڕەکان' ),
        'Ancientpages'              => array( 'پەڕە_کۆنەکان' ),
+       'Blankpage'                 => array( 'پەڕەی_واڵا' ),
+       'Booksources'               => array( 'سەرچاوەکانی_کتێب' ),
        'BrokenRedirects'           => array( 'ڕەوانکەرە_شکاوەکان' ),
        'Categories'                => array( 'پۆلەکان' ),
        'ChangePassword'            => array( 'تێپەڕوشەگۆڕان،_تێپەڕەوشە_ڕێکخستنەوە' ),
        'Confirmemail'              => array( 'بڕواکردن_ئیمەیل' ),
        'Contributions'             => array( 'بەشدارییەکان' ),
-       'CreateAccount'             => array( 'ھەژمار_دروستکردن' ),
+       'CreateAccount'             => array( 'دروستکردنی_ھەژمار' ),
        'Deadendpages'              => array( 'پەڕە_بەربەستراوەکان' ),
        'DoubleRedirects'           => array( 'ڕەوانکەرە_دووپاتکراوەکان' ),
        'Emailuser'                 => array( 'ئیمەیل_بەکارھێنەر' ),
        'Export'                    => array( 'ھەناردن' ),
        'Fewestrevisions'           => array( 'کەمترین__پێداچوونەوەکان' ),
+       'Import'                    => array( 'ھاوردن' ),
        'Listadmins'                => array( 'لیستی_بەڕێوبەران' ),
        'Listbots'                  => array( 'لیستی_بۆتەکان' ),
        'Listfiles'                 => array( 'لیستی_پەڕگەکان' ),
@@ -230,18 +233,18 @@ $messages = array(
 'october' => 'تشرینی یەکەم',
 'november' => 'تشرینی دووەم',
 'december' => 'کانوونی یەکەم',
-'january-gen' => 'کانوونی دووەمی',
-'february-gen' => 'شوبات',
-'march-gen' => 'ئازار',
-'april-gen' => 'نیسان',
-'may-gen' => 'ئایار',
-'june-gen' => 'حوزەیران',
-'july-gen' => 'تەمموز',
-'august-gen' => 'ئاب',
-'september-gen' => 'ئەیلوول',
-'october-gen' => 'تشرینی یەکەم',
-'november-gen' => 'تشرینی دووەم',
-'december-gen' => 'کانوونی یەکەم',
+'january-gen' => 'ی کانوونی دووەمی',
+'february-gen' => 'ی شوباتی',
+'march-gen' => 'ی ئازاری',
+'april-gen' => 'ی نیسانی',
+'may-gen' => 'ی ئایاری',
+'june-gen' => 'ی حوزەیرانی',
+'july-gen' => 'ی تەمموزی',
+'august-gen' => 'ی ئابی',
+'september-gen' => 'ی ئەیلوولی',
+'october-gen' => 'ی تشرینی یەکەمی',
+'november-gen' => 'ی تشرینی دووەمی',
+'december-gen' => 'ی کانوونی یەکەمی',
 'jan' => 'کانوونی دووەم',
 'feb' => 'شوبات',
 'mar' => 'ئازار',
@@ -254,6 +257,18 @@ $messages = array(
 'oct' => 'تشرینی یەکەم',
 'nov' => 'تشرینی دووەم',
 'dec' => 'کانوونی یەکەم',
+'january-date' => '$1ی کانوونی دووەم',
+'february-date' => '$1ی شوبات',
+'march-date' => '$1ی ئازار',
+'april-date' => '$1ی نیسان',
+'may-date' => '$1ی ئایار',
+'june-date' => '$1ی حوزەیران',
+'july-date' => '$1ی تەمموز',
+'august-date' => '$1ی ئاب',
+'september-date' => '$1ی ئەیلوول',
+'october-date' => '$1ی تشرینی یەکەم',
+'november-date' => '$1ی تشرینی دووەم',
+'december-date' => '$1ی کانوونی یەکەم',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|پۆل|پۆلەکان}}',
@@ -387,7 +402,6 @@ $1',
 'disclaimers' => 'نابەرپرسییەکان',
 'disclaimerpage' => 'Project:بەرپرسنەبوون',
 'edithelp' => 'ڕێنوێنیی دەستکاریکردن',
-'edithelppage' => 'Help:دەستکاریکردن',
 'helppage' => 'Help:ناوەرۆک',
 'mainpage' => 'دەستپێک',
 'mainpage-description' => 'دەستپێک',
@@ -558,10 +572,20 @@ $2',
 'welcomecreation-msg' => 'ھەژمارەکەت دروست کرا.
 لە بیرت نەچێت [[Special:Preferences|ھەڵبژاردەکانی {{SITENAME}}]]ت بگۆڕی.',
 'yourname' => 'ناوی بەکارھێنەری:',
+'userlogin-yourname' => 'ناوی بەکارھێنەر',
+'userlogin-yourname-ph' => 'ناوی بەکارھێنەریت بنووسە',
 'yourpassword' => 'تێپەڕوشە:',
+'userlogin-yourpassword' => 'تێپەڕوشە',
+'userlogin-yourpassword-ph' => 'تێپەڕوشەکەت بنووسە',
+'createacct-yourpassword-ph' => 'تێپەروشەیەک بنووسە',
 'yourpasswordagain' => 'دیسان تێپەڕوشەکە بنووسەوە:',
+'createacct-yourpasswordagain' => 'تێپەروشە پشتڕاست بکەرەوە',
+'createacct-yourpasswordagain-ph' => 'تێپەروشە دیسان بنووسەوە',
 'remembermypassword' => 'چوونە ژوورەوەم لەسەر ئەم کۆمپیوتەرە پاشەکەوت بکە (ئەو پەڕی $1 {{PLURAL:$1|ڕۆژ}}ە)',
-'yourdomainname' => 'ناوی دۆمه‌ینی خۆت',
+'userlogin-remembermypassword' => 'چوونەژوورەوەکەم ڕابگرە',
+'userlogin-signwithsecure' => 'پەیوەندیی دڵنیا بەکاربھێنە',
+'securelogin-stick-https' => 'پاش چوونەژوورەوە پەیوەندیی لەگەڵ HTTPS بھێڵەوە',
+'yourdomainname' => 'دۆمەینەکەت:',
 'password-change-forbidden' => 'ناتوانیت تێپەڕوشەکانت لەم ویکییەدا بگۆڕیت.',
 'externaldberror' => 'یان هەڵەی ڕێگەپێدانی بنکەدراو هەیە یان ڕێگات پێ نادرێت بۆ نوێ کردنی هەژماری دەرەکیت.',
 'login' => 'بچۆ ژوورەوە',
@@ -571,19 +595,39 @@ $2',
 'userloginnocreate' => 'بچۆ ژوورەوە',
 'logout' => 'بچۆ دەرەوە',
 'userlogout' => 'بچۆ دەرەوە',
-'notloggedin' => 'له‌ ژووره‌وه‌ نیت',
-'nologin' => "ھەژمارت نییە؟  '''$1'''.",
+'notloggedin' => 'لە ژوورەوە نیت',
+'userlogin-noaccount' => 'ھەژمارت نییە؟',
+'userlogin-joinproject' => 'ڕەگەڵ {{SITENAME}} کەوە',
+'nologin' => 'ھەژمارت نییە؟  $1.',
 'nologinlink' => 'ھەژمارێک دروست بکە',
 'createaccount' => 'ھەژمار دروست بکە',
 'gotaccount' => 'ھەژمارت ھەیە لێرە؟ $1.',
 'gotaccountlink' => 'بچۆ ژوورەوە',
 'userlogin-resetlink' => 'وردەکارییەکانی چوونەژوورەوەتت لە بیر کردووە؟',
-'createaccountmail' => 'بە ئیمەیل',
+'userlogin-resetpassword-link' => 'تێپەڕوشە ڕیسێت بکەوە',
+'helplogin-url' => 'Help:چوونەژوورەوە',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|یارمەتی بۆ چوونەژوورەوە]]',
+'createacct-join' => 'زانیارییەکت لە ژێرەوە بنووسە.',
+'createacct-emailrequired' => 'ناونیشانی ئیمەیل',
+'createacct-emailoptional' => 'ناونیشانی ئیمەیل (دڵخوازانە)',
+'createacct-email-ph' => 'ناونیشانی ئیمەیلەکەت بنووسە',
+'createaccountmail' => 'تێپەڕوشەیەکی ڕەمەکیی کاتی بەکاربھێنە و بینێرە بۆ ناونیشانی ئیمەیلی دیاری‌کراوی ژێرەوە',
+'createacct-realname' => 'ناوی ڕاستی (دڵخوازانە)',
 'createaccountreason' => 'هۆکار:',
+'createacct-reason' => 'ھۆکار',
+'createacct-reason-ph' => 'بۆ ھەژمارێکی تر دروست دەکەی',
+'createacct-captcha' => 'تاوتوێی ئاسایشی',
+'createacct-imgcaptcha-ph' => 'دەقەکەی لە ژێرەوە دەیبینی بینووسە',
+'createacct-submit' => 'ھەژمارەکەت دروست بکە',
+'createacct-benefit-heading' => '{{SITENAME}} لە لایەن کەسانێک وەکوو خۆت دروست کراوە.',
+'createacct-benefit-body1' => '{{PLURAL:$1|دەستکاری}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|پەڕە}}',
+'createacct-benefit-body3' => 'دوایین {{PLURAL:$1|بەشداربوو|بەشداربووان}}',
 'badretype' => 'تێپەڕوشەکان لەیەک ناچن.',
 'userexists' => 'ئەو ناوەی تۆ داوتە پێشتر بەکارھێنراوە.
 ناوێکی دیکە ھەڵبژێرە.',
 'loginerror' => 'ھەڵەی چوونەژوورەوە',
+'createacct-error' => 'ھەڵە لە دروستکردنی ھەژمار',
 'createaccounterror' => 'ناتوانیت هەژماری بەکارهێنەر دروست بکەیت: $1',
 'nocookiesnew' => 'ھەژماری بەکارھێنەر دروست‌کرا، بەڵام بە سەرکەوتوویی نەچوویتەوە ژوورەوە.
 {{SITENAME}} بۆ چوونەوە ژوورەوەی بەکارھێنەر لە شەکرۆکە کەڵک وەردەگرێت.
@@ -592,6 +636,8 @@ $2',
 'nocookieslogin' => '{{SITENAME}} بۆ چوونەژوورەوە لە کووکی‌یەکان کەڵک وەرئەگرێت.
 ڕێگەت نەداوە بە کووکی‌یەکان.
 ڕێگەیان پێ بدەو و دیسان تێبکۆشە.',
+'nocookiesfornew' => 'ھەژماری بەکارھێنەری دروست نەکرا، چون ناتوانین سەرچاوەکەی پشتڕاست بکەینەوە.
+دڵنیا بە کوکییەکانت چالاک کردووە، پەڕەکە بار بکەوە و دیسان ھەوڵ بدە.',
 'noname' => 'ناوی بەکارهێنەرییەکی گۆنجاوت دیاری نەکردووه.',
 'loginsuccesstitle' => 'سەرکەوتی بۆ چوونە ژوورەوە',
 'loginsuccess' => "'''ئێستا بە ناوی «$1»ەوە لە {{SITENAME}} چوویتەتەژوورەوە.'''",
@@ -633,7 +679,7 @@ $2',
 تکایە ناونیشانێک بە شێوازی دروست بنووسە یان ئەو بەشە واڵا بھێڵەوە.',
 'emaildisabled' => 'ئەم ماڵپەڕە ناتوانێ ئیمەیل بنێرێ.',
 'accountcreated' => 'ھەژمار دروست کرا',
-'accountcreatedtext' => 'هەژماری بەکارهێنەری $1 دروست کراوە.',
+'accountcreatedtext' => 'هەژماری بەکارهێنەری [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|لێدوان]]) دروست کراوە.',
 'createaccount-title' => 'درووست‌کردنی هەژمارە بۆ {{SITENAME}}',
 'createaccount-text' => 'کەسێک هەژمارەیەکی بۆ ئی‌مێڵ ئەدرەسەکی تۆ لەسەر {{SITENAME}} ($4) بەناوی "$2"، بە وشەی نهێنی "$3".
 ئێستا دەبێ بڕۆیتە ژوورەوە و وشەی نهێنی بگۆڕیت.
@@ -664,7 +710,6 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'دووبارە ڕێکخستنەوەی تێپەڕوشە',
-'passwordreset-text' => 'ئەم فۆرمە پڕ بکەوە بۆ گرتنی ئیمەیلێکی بیرخەرەوەی وردەکارییەکانی ھەژمارەکەت.',
 'passwordreset-legend' => 'دووبارە ڕێکخستنەوەی تێپەڕوشە',
 'passwordreset-username' => 'ناوی بەکارھێنەری:',
 'passwordreset-domain' => 'پاوان:',
@@ -774,14 +819,14 @@ $2
 ئای‌پی ئەدرەسی ئێستای تۆ $3 و پەێناسەی بەربەست‌کراو #$5.<br />
 تکایە لە هەر پرس و داواکاریەکت‌دا هەموو وردەکاریەکانی سەرەوە بگونجێنە.',
 'blockednoreason' => 'هیچ هۆکارێک نەدراوە',
-'whitelistedittext' => 'بۆ دەستکاری کردنی لاپەڕەکان دەبێ $1.',
+'whitelistedittext' => 'بۆ دەستکاریی پەڕەکان دەبێ $1.',
 'confirmedittext' => 'پێویستە پێش هەرجۆرە دەستکاریەکی لاپەڕەکان ئەدرەسی ئیمەیلت ڕاچاو کردبێت .<br />
 تکایە لە [[Special:Preferences|ھەڵبژاردەکانی بەکارھێنەر]] ئی‌مەیلەکەت دانێ و بڕواپێکراوی بکە.',
 'nosuchsectiontitle' => 'بەش نەدۆزرایەوە',
 'nosuchsectiontext' => 'هەوڵی دەستکاریکردنی بەشێکت داوە کە بوونی نیە.
 لەوانەیە لەو کاتە خەریکی بینینی پەڕە بوویت گۆزرابێتەوە یان سڕابێتەوە.',
-'loginreqtitle' => 'پێویستە بچیه ژور',
-'loginreqlink' => 'چونە‌ژوور',
+'loginreqtitle' => 'پێویستە بچییە ژوورەوە',
+'loginreqlink' => 'بچییە ژوورەوە',
 'loginreqpagetext' => 'بۆ دیتنی لاپەڕەکانی دیکە دەبێ $1 .',
 'accmailtitle' => 'وشه‌ی نهێنی ناردرا.',
 'accmailtext' => "تێپەڕوشەیەکی هەرەمەکی درووست‌کراو بۆ [[User talk:$1|$1]] ناردرا بۆ $2 .
@@ -905,6 +950,7 @@ $2
 لەوە دەچی سڕدرابێتەوه.‌',
 'edit-conflict' => 'کێشەی دەستکاری.',
 'edit-no-change' => 'دەستکاریەکەت بەرچاو نەخرا، لەبەر ئەوەی هیچ گۆڕانکارییەکت لەسەر دەقەکە نەکردووە.',
+'postedit-confirmation' => 'دەستکارییەکەت پاشەکەوت کرا.',
 'edit-already-exists' => 'تواناییی دروستکردنی پەڕەی نوێ نییە.
 ئەمە پەڕەیە پێشتر هەبووە.',
 'defaultmessagetext' => 'دەقی پەیامی هەمیشەیی',
@@ -1137,7 +1183,6 @@ $1",
 'searchmenu-legend' => 'ھەڵبژاردەکانی گەڕان',
 'searchmenu-exists' => "'''پەڕەیەک بە ناوی «[[:$1]]» لەم ویکییەدا ھەیە.'''",
 'searchmenu-new' => "'''لەم ویکییەدا پەڕەی « [[:$1]] » دروست بکە!'''",
-'searchhelp-url' => 'Help:پێرست',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|گەڕیان لە پەڕەکانی بەم پێشگرەوە]]',
 'searchprofile-articles' => 'پەڕە بە ناوەڕۆکەکان',
 'searchprofile-project' => 'پەڕەکانی یارمەتی و پڕۆژە',
@@ -1168,7 +1213,7 @@ $1",
 'showingresultsheader' => "{{PLURAL:$5|ئەنجامی '''$1''' لە '''$3'''|ئەنجامەکانی '''$1 - $2''' لە '''$3'''}} بۆ '''$4'''",
 'nonefound' => "'''تێبینی''': لە حاڵەتی بنچینەیی تەنھا لە ھەندێک لە بۆشایی‌ناوەکان گەڕان دەکرێت.
 وشەی ''all:'' بکە بە پێشگری پرسەکە بۆ گەڕان لە نێو ھەموو کەرستەکان (پەڕەکانی وتووێژ، داڕێژەکان و هتد)، یان بۆشایی‌ناوێکی دڵخواز وەک پێشگر بەکار بێنە.",
-'search-nonefound' => 'ھیچ ئەنجامێک کە بە داواکارییەکەت بخوا نەدۆزرایەوە.',
+'search-nonefound' => 'ھیچ ئاکامێک کە بە داواکارییەکەت بخوا نەدۆزرایەوە.',
 'powersearch' => 'پێشکەوتوو بگەڕێ',
 'powersearch-legend' => 'گەڕانی پێشکەوتوو',
 'powersearch-ns' => 'گەڕان لە بۆشایی‌ناوەکانی:',
@@ -1214,7 +1259,6 @@ $1",
 'resetprefs' => 'گۆڕانکارییە پاشەکەوت نەکراوەکان پاک بکەرەوە',
 'restoreprefs' => 'ھەموو ڕێکخستنەکان ببەرەوە بۆ باری بنچینەیی',
 'prefs-editing' => 'دەستکاریکردن',
-'prefs-edit-boxsize' => 'قەبارەی پەنجەرەی دەستکاریکردن.',
 'rows' => 'ڕیزەکان:',
 'columns' => 'ستوونەکان:',
 'searchresultshead' => 'گەڕان',
@@ -1225,9 +1269,6 @@ $1",
 'recentchangesdays-max' => '(ئەوپەڕی $1 {{PLURAL:$1|ڕۆژە|ڕۆژە}})',
 'recentchangescount' => 'ژمارەی گۆڕانکارییەکان کە نیشان ئەدرێن لە حاڵەتی دیفاڵت:',
 'prefs-help-recentchangescount' => 'ئەمە دوایین گۆڕانکارییەکان، مێژووی پەڕەکان و لۆگەکانیش لەبەردەگرێت.',
-'prefs-help-watchlist-token' => 'بە پڕ کردنەوەی ئەم شوێنە بۆشاییە بە وشەیەکی نهێنی، فیدی RSS بۆ لیستی چاودێریەکەت درووست دەکرێت.
- هەر کەس ئەو وشە نهێنیەی هەبێ دەتوانێ چاو لە لیستی چاودێریەکەت بکات، بۆیە دراوەیەکی پارێزراو هەڵیبژێرە.
-فەرموو ئەمە دراوەیەکی بە هەڵکەوت درووست‌کراو کە دەتوانی کەڵکی لێ‌وەرگری: $1',
 'savedprefs' => 'ھەڵبژاردەکانت پاشەکەوت کران',
 'timezonelegend' => 'ناوچەکات:',
 'localtime' => 'کاتی ناوچەیی:',
@@ -1245,7 +1286,7 @@ $1",
 'timezoneregion-australia' => 'ئۆسترالیا',
 'timezoneregion-europe' => 'ئەورووپا',
 'timezoneregion-indian' => 'ئوقیانووسی ھیند',
-'timezoneregion-pacific' => 'ئۆقیانووسی پاسیفیک',
+'timezoneregion-pacific' => 'ئۆقیانووسی ئارام',
 'allowemail' => 'ڕێگە بدە بە بەکارھێنەرانی تر کە ئیمەیلم بۆ بنێرن',
 'prefs-searchoptions' => 'گەڕان',
 'prefs-namespaces' => 'بۆشایی‌ناوەکان',
@@ -1258,7 +1299,6 @@ $1",
 'prefs-reset-intro' => 'دەتوانی لەم لاپەڕە بۆ گەڕانەوەی هەڵبژاردەکانت بۆ بنچینەیی ماڵپەر کەڵک وەرگریت.
 گەر ئەوە بکەی ئیتر گۆڕانەکەت ناگەڕێتەوە.',
 'prefs-emailconfirm-label' => 'پشتڕاست کردنەوەی ئیمەیل:',
-'prefs-textboxsize' => 'قەبارەی پەنجەرەی دەستکاریکردن',
 'youremail' => 'ئیمەیل:',
 'username' => '{{GENDER:$1|ناوی به‌کارھێنەر}}:',
 'uid' => 'پێناسەی {{GENDER:$1|به‌کارھێنەر}}:',
@@ -1367,7 +1407,7 @@ $1",
 'right-reupload-shared' => 'بەتاڵ‌کردنەوەی پەڕگە لە سەر میدیا هاوبەشە ناوخۆکان',
 'right-upload_by_url' => 'بارکردنی پەرگە لە ئەدرەسێکی سەر تۆڕەوە',
 'right-purge' => 'خاڵی‌کردنی کاشی وێبگە بۆ لاپەڕەیەک بێ بڕواپێ‌کران',
-'right-autoconfirmed' => 'دەستکاری لاپەڕەکانی‌ نیوەپارێزراو',
+'right-autoconfirmed' => 'کاریگەری وەرنەگرتن لە سنوورەکانی ئاستی ئایپی',
 'right-bot' => 'هەڵسوکەوت لەگەڵ‌کران وەک پرۆسەیەکی خۆکار',
 'right-nominornewtalk' => 'دەستکاری بچووکی لاپەڕەی وتووێژ بەو شێوەی نەبێتە هۆی درووست‌بوونی پەیامی نوێ',
 'right-apihighlimits' => 'خستنە‌کاری سنووری زیاتر بۆ داخوازیەکانی API',
@@ -1391,7 +1431,7 @@ $1",
 'right-editusercssjs' => 'دەستکاری پەڕگەکانی CSS و JSـی بەکارهێنەرانی دیکە',
 'right-editusercss' => 'گۆڕانی پەڕگەکانی CSSـی دیکەی بەکارهێنەر',
 'right-edituserjs' => 'گۆڕانی پەڕگەکانی JSـی دیکەی بەکارهێنەر',
-'right-rollback' => 'بەخێرایی گەڕانەوەی دەستکاریەکانی دوایین بەکارهێنەر کە لاپەڕەیەکی تایبەتی دەستکاری کردە',
+'right-rollback' => 'گەڕاندنەوەی خێرای دەستکاریەکانی دوایین بەکارھێنەر کە پەڕەیەکی دیاریکراوی دەستکاری کردووە',
 'right-markbotedits' => 'نیشان‌کردنی دەستکاریە گەڕێنراوەکان وەک دەستکاریەکانی بۆت (bot)',
 'right-noratelimit' => 'کاریگەری وەرنەگرتن لە سنوورەکانی ئاست',
 'right-import' => 'هێنانەناوەی لاپەڕە لە ویکی‌یەکانی دیکە',
@@ -1440,6 +1480,7 @@ $1",
 'action-suppressionlog' => 'دیتنی ئەم لۆگە ئەهلیە',
 'action-block' => 'بەربەست کردنی ئەم بەکارهێنەرە بۆ دەستکاری‌کردن',
 'action-protect' => 'گۆڕانی ئاستی پارێزراوی بۆ ئەم لاپەڕە',
+'action-rollback' => 'گەڕاندنەوەی خێرای دەستکاریەکانی دوایین بەکارھێنەر کە پەڕەیەکی دیاریکراوی دەستکاری کردووە',
 'action-import' => 'هێنانەناوەی ئەم لاپەڕە لە ویکی‌یەکی دیکە',
 'action-importupload' => 'هێنانەناوەی ئەم لاپەڕە لە پەڕگەیەکی بارکراو',
 'action-patrol' => 'نیشانکردنی دەستکاریەکانی کەسانی تر وەک پاس دراو',
@@ -1492,7 +1533,6 @@ $1",
 'recentchangeslinked-feed' => 'گۆڕانکارییە پەیوەندیدارەکان',
 'recentchangeslinked-toolbox' => 'گۆڕانکارییە پەیوەندیدارەکان',
 'recentchangeslinked-title' => 'گۆڕانکارییە پەیوەندیدارەکان بە "$1" ـەوە',
-'recentchangeslinked-noresult' => 'هیچ گۆڕانکارییەک لە لاپەڕەکانی بەستەر پێ‌دراو، لە درێژەی ماوەی دراوە.',
 'recentchangeslinked-summary' => "ئەمە لیستێکی گۆڕانکارییەکانی ئەم دوایییانەی ئەو پەڕانەیە کە بەستەریان ھەیە لە پەڕەیەکی دیاریکراو (یان بۆ ئەندامەکانی پۆلێکی دیاریکراو)
 پەڕەکانی [[Special:Watchlist|لیستی چاودێرییەکەت]] '''ئەستوورن'''.",
 'recentchangeslinked-page' => 'ناوی پەڕە:',
@@ -1504,7 +1544,7 @@ $1",
 'reuploaddesc' => 'هەڵوەشانەوەی بارکردن و گەڕانەوە بۆ فۆرمی بارکردن',
 'upload-tryagain' => 'پێناسەی گۆڕدراوی پەڕگە بنێرە',
 'uploadnologin' => 'لەژوورەوە نیت',
-'uploadnologintext' => 'بÛ\86 Ø¨Ø§Ø±Ú©Ø±Ø¯Ù\86Û\8c Ù¾Û\95Ú\95Ú¯Û\95کاÙ\86 Ø¦Û\95Ø´Û\8e [[Special:UserLogin|Ù\84Û\95 Ú\98Ù\88Ù\88رÛ\95Ù\88Û\95 Ø¨Û\8cت]].',
+'uploadnologintext' => 'بÛ\86 Ø¨Ø§Ø±Ú©Ø±Ø¯Ù\86Û\8c Ù¾Û\95Ú\95Ú¯Û\95کاÙ\86 Ø¯Û\95بÛ\8e $1.',
 'upload_directory_missing' => 'لقی بارکردن ($1) ون بووە و ڕاژەکاری‌وێب بۆی درووست ناکرێت.',
 'upload_directory_read_only' => 'ڕاژەکاری‌وێب دەسەڵاتی نووسینی سەر لقی بارکردنی ($1) نیە.',
 'uploaderror' => 'ھەڵە لە بارکردن دا',
@@ -1709,9 +1749,10 @@ $1',
 پێناسەکەی لەسەر [$2 پەڕەی وەسفی پەڕگەکە] لە خوارەوە نیشان دراوە.',
 'filepage-nofile' => 'پەڕگەیەک بەم ناوە نیە.',
 'filepage-nofile-link' => 'پەڕگەیەک بەم ناوە نیە بەڵام دەتوانی [$1 باری بکەی].',
-'uploadnewversion-linktext' => 'وەشانێکی نوێی ئەم پەڕەیە بار بکە',
+'uploadnewversion-linktext' => 'وەشانێکی نوێی ئەم پەڕگەیە بار بکە',
 'shared-repo-from' => 'لە لایەن $1',
 'shared-repo' => 'شوێنێکی هاوبەشی',
+'upload-disallowed-here' => 'ناتوانی وەشانێکی نوێی ئەم پەڕگەیە بار بکەی.',
 
 # File reversion
 'filerevert' => 'پێچەوانەکردنەوەی $1',
@@ -2026,7 +2067,7 @@ $1',
 'mywatchlist' => 'پێرستی چاودێری',
 'watchlistfor2' => 'بۆ $1 $2',
 'nowatchlist' => 'لە لیستی چاودێڕییەکانتدا ھیچ نیە.',
-'watchlistanontext' => 'تکاÛ\8cÛ\95 Ø¨Û\86 Ø¯Û\8cتÙ\86 Ù\88 Ø¯Û\95ستکارÛ\8c Ø¨Ø§Ø¨Û\95تÛ\95کاÙ\86Û\8c Ù\84Û\95 Ù\86اÙ\88 Ù\84Û\8cستÛ\8c Ú\86اÙ\88دÛ\8eرÛ\8cÛ\95Ú©Û\95تâ\80\8cدا $1.',
+'watchlistanontext' => 'بÛ\86 Ø¯Û\8cتÙ\86 Ù\88 Ø¯Û\95ستکارÛ\8cÛ\8c Ø¨Ø§Ø¨Û\95تÛ\95کاÙ\86Û\8c  Ù\86اÙ\88 Ù¾Û\8eرستÛ\8c Ú\86اÙ\88دÛ\8eرÛ\8cÛ\8cÛ\95Ú©Û\95تدا Ø¯Û\95بÛ\8e $1.',
 'watchnologin' => 'لە ژوورەوە نیت.',
 'watchnologintext' => 'دەبی لە [[Special:UserLogin|ژوورەوە]] بیت بۆ ئەوەی بتوانی گۆڕانکاری بکەیت لە لیستی چاودێریەکەت‌دا.',
 'addwatch' => 'بیخە سەر لیستی چاودێری',
@@ -2040,7 +2081,6 @@ $1',
 'unwatchthispage' => 'ئیتر چاودێری مەکە',
 'notanarticle' => 'پەڕەی بێ ناوەڕۆک',
 'notvisiblerev' => 'پیاچوونەوە سڕاوەتەوە',
-'watchnochange' => 'ھیچکام لەو بابەتانە چاودێڕییان دەکەیت، لە ماوەی نیشاندراودا دەستکاری نەکراون.',
 'watchlist-details' => '{{PLURAL:$1|$1 پەڕە|$1 پەڕە}} لە لیستی چاودێریەکەتدایە، بێجگە پەڕەکانی لێدوان.',
 'wlheader-enotif' => 'ئەکرێ بە E-mail ئاگاداری بدەی',
 'wlheader-showupdated' => "‏ئەو پەڕانە کە لە پاش دواین سەردانت دەستکاری کراون بە '''ئەستوور''' نیشان دراون",
@@ -2361,8 +2401,8 @@ $1',
 'ipb-change-block' => 'دیسان بەربەست‌کردنەوەی ئەم بەکارهێنەرە بەم هەڵبژاردانە',
 'badipaddress' => 'ناونیشانی ئای‌پی نەگونجاو',
 'blockipsuccesssub' => 'بەربەست کردن سەرکەوتوو بوو',
-'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] بەربەستکراوە.<br />
³Û\95Û\8cرÛ\8c [[Special:BlockList|Ù\84Û\8cستÛ\8c Ø¨Û\95ربÛ\95ستÙ\86]] Ø¨Ú©Û\95 Ø¨Û\86 Ø¨Û\8cÙ\86Û\8cنەوەی بەربەستنەکان.',
+'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] بەربەست کرا.<br />
¨Ú\95Ù\88اÙ\86Û\95 [[Special:BlockList|Ù¾Û\8eرستÛ\8c Ø¨Û\95ربÛ\95ستÙ\86]] Ø¨Û\86 Ø¨Û\95سÛ\95رداÚ\86Ù\88Ù\88نەوەی بەربەستنەکان.',
 'ipb-edit-dropdown' => 'دەستکاری هۆکارەکانی بەربەست',
 'ipb-unblock-addr' => 'لە بەربەست‌دەرهێنانی $1',
 'ipb-unblock' => 'لە بەربەست‌دەرهێنانی ناوی بەکارهێنەریەک یا ناونیشانێکی ئای‌پی',
@@ -2695,7 +2735,7 @@ $1',
 'tooltip-feed-atom' => 'Atom feed بۆ ئەم پەڕە',
 'tooltip-t-contributions' => 'لیستی بەشدارییەکانی ئەم بەکارھێنەرە ببینە',
 'tooltip-t-emailuser' => 'ئیمەیلێک بنێرە بۆ ئەم بەکارھێنەرە',
-'tooltip-t-upload' => 'پەڕگەیەک (فایل) بار بکە',
+'tooltip-t-upload' => 'پەڕگە بار بکە',
 'tooltip-t-specialpages' => 'پێرستی ھەموو پەڕە تایبەتەکان',
 'tooltip-t-print' => 'وەشانی چاپی ئەم پەڕەیە',
 'tooltip-t-permalink' => 'گرێدەری ھەمیشەیی بۆ ئەم وەشانەی ئەم پەڕەیە',
@@ -2781,6 +2821,7 @@ $1',
 'pageinfo-contentpage' => 'ھەژمارکراو وەک پەڕەی بەناوەرۆک',
 'pageinfo-contentpage-yes' => 'بەڵێ',
 'pageinfo-protect-cascading-yes' => 'بەڵێ',
+'pageinfo-category-info' => 'زانیاریی پۆل',
 'pageinfo-category-pages' => 'ژمارەی پەڕەکان',
 'pageinfo-category-subcats' => 'ژمارەی ژێرپەڕەکان',
 'pageinfo-category-files' => 'ژمارەی پەڕگەکان',
@@ -3149,7 +3190,7 @@ $1',
 مەیلکەر ئەوەی گەڕاندەوە: $1',
 'confirmemail_invalid' => 'کۆدی بڕواپێ‌کردنی نەگونجاو.
 لەوانەیە ئەو کۆدە ماوەی بەسەر چووبێت.',
-'confirmemail_needlogin' => 'بۆ بڕواپێ‌کردنی ناونیشانی ئی‌مەیلەکەت، دەبێ $1.',
+'confirmemail_needlogin' => 'بۆ بڕواپێکردنی ناونیشانی ئیمەیلەکەت دەبێ $1.',
 'confirmemail_success' => 'ناونیشانی ئی‌میلەکەت بڕوای‌پێ‌کرا.
 ئێستە دەتوانی [[Special:UserLogin|بڕۆیتە ژوورەوە]] و لە ویکی کەڵک بگری.',
 'confirmemail_loggedin' => 'ئێستا بڕواکراوە بە ئیمەیلەکەت.',
@@ -3331,7 +3372,6 @@ $5
 'version-other' => 'Other',
 'version-mediahandlers' => 'Media handlers',
 'version-hooks' => 'قولاپەکان',
-'version-extension-functions' => 'Extension functions',
 'version-parser-extensiontags' => 'Parser extension tags',
 'version-parser-function-hooks' => 'Parser function hooks',
 'version-hook-name' => 'ناوی قولاپ',
@@ -3444,15 +3484,16 @@ $5
 'revdelete-restricted' => 'ئەو سنووری بەرگریانەی خستراوەتە سەر بەڕێوبەران',
 'revdelete-unrestricted' => 'ئەو سنووری بەرگریانەی لابردراوە لە سەر بەڕێوبەران',
 'logentry-move-move' => '$1 پەڕەی $3ی {{GENDER:$2|گواستەوە}} بۆ $4',
-'logentry-move-move-noredirect' => '$1 پەڕەی $3 بەبێ بەجێھشتنی ڕەوانەکەرێک {{GENDER:$2|گواستەوە}} بۆ $4',
+'logentry-move-move-noredirect' => '$1 پەڕەی $3ی بەبێ بەجێھشتنی ڕەوانەکەرێک {{GENDER:$2|گواستەوە}} بۆ $4',
 'logentry-move-move_redir' => '$1 پەڕەی $3 {{GENDER:$2|گواستەوە}} بۆ $4 کە پێشتر ڕەوانەکەر بوو',
-'logentry-move-move_redir-noredirect' => '$1 پەڕەی $3 بەبێ بەجێھشتنی ڕەوانەکەرێک {{GENDER:$2|گواستەوە}} بۆ $4 کە پێشتر ڕەوانەکەر بوو',
+'logentry-move-move_redir-noredirect' => '$1 پەڕەی $3ی بەبێ بەجێھشتنی ڕەوانەکەرێک {{GENDER:$2|گواستەوە}} بۆ $4 کە پێشتر ڕەوانەکەر بوو',
 'logentry-patrol-patrol' => '$1 پێداچوونەوەی $4ی پەڕەی $3 وەک پاس دراو {{GENDER:$2|نیشان کرد}}',
 'logentry-patrol-patrol-auto' => '$1 بە شێوەی خۆگەڕ پێداچوونەوەی $4ی پەڕەی $3 وەک پاس دراو {{GENDER:$2|نیشان کرد}}',
 'logentry-newusers-newusers' => 'ھەژماری بەکارھێنەریی $1 {{GENDER:$2|دروست کرا}}',
 'logentry-newusers-create' => 'ھەژماری بەکارھێنەریی $1 {{GENDER:$2|دروست کرا}}',
 'logentry-newusers-create2' => 'ھەژماری بەکارھێنەریی $3 لە لایەن $1 {{GENDER:$2|دروست کرا}}',
 'logentry-newusers-autocreate' => 'ھەژماری بەکارھێنەریی $1 بە شێوەی خۆگەڕ {{GENDER:$2|دروست کرا}}',
+'logentry-rights-rights' => '$1 ئەندامێتیی $3ی لە $4 بۆ $5 {{GENDER:$2|گۆڕی}}',
 'rightsnone' => '(ھیچ)',
 
 # Feedback
index 0bfb361..8010958 100644 (file)
@@ -251,7 +251,6 @@ $1',
 'disclaimers' => 'Mga pagpangindi',
 'disclaimerpage' => 'Project:Pangkabilugan nga pagpangindi',
 'edithelp' => 'Bulig sa pag-ilis',
-'edithelppage' => 'Help:Pag-ilis',
 'helppage' => 'Help:Mga ka-undan',
 'mainpage' => 'Panguna nga pahina',
 'mainpage-description' => 'Panguna nga pahina',
index 3d20866..a6918f3 100644 (file)
@@ -344,7 +344,6 @@ $1',
 'disclaimers' => 'Джевапкярлыкъ реди',
 'disclaimerpage' => 'Project:Умумий Малюмат Мукъавелеси',
 'edithelp' => 'Саифелер насыл денъиштирилир?',
-'edithelppage' => 'Help:Саифе насыл денъиштирилир',
 'helppage' => 'Help:Мундеридже',
 'mainpage' => 'Баш Саифе',
 'mainpage-description' => 'Баш Саифе',
@@ -851,7 +850,6 @@ $3 мына бу себепни бильдирди: ''$2''",
 'searchmenu-legend' => 'Къыдырув сазламалары',
 'searchmenu-exists' => "'''Бу викиде \"[[:\$1]]\" адлы бир саифе бар'''",
 'searchmenu-new' => "'''Бу викиде \"[[:\$1]]\" саифесини ярат!'''",
-'searchhelp-url' => 'Help:Мундеридже',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Бу префиксли саифелерни косьтер]]',
 'searchprofile-articles' => 'Малюмат саифелери',
 'searchprofile-project' => 'Ярдым ве лейха саифелери',
@@ -918,7 +916,6 @@ $3 мына бу себепни бильдирди: ''$2''",
 'resetprefs' => 'Сакъланмагъан сазламаларны ильк алына кетир',
 'restoreprefs' => 'Бутюн ог бельгиленген сазламаларны къайтар',
 'prefs-editing' => 'Саифелерни денъиштирюв',
-'prefs-edit-boxsize' => 'Язув пенджересининъ ольчюлери.',
 'rows' => 'Сатыр',
 'columns' => 'Сутун',
 'searchresultshead' => 'Къыдырув',
@@ -953,7 +950,6 @@ $3 мына бу себепни бильдирди: ''$2''",
 'prefs-files' => 'Файллар',
 'prefs-reset-intro' => 'Бу саифени сазламаларынъызны сайт ог бельгиленгенине къайтармакъ ичюн къуллана билесинъиз. Бу лягъу этилип оламаз.',
 'prefs-emailconfirm-label' => 'E-mail тасдыкъланмасы:',
-'prefs-textboxsize' => 'Язув пенджересининъ ольчюлери',
 'youremail' => 'E-mail адресинъиз:',
 'username' => 'Къулланыджы ады:',
 'uid' => 'Къайд номери:',
@@ -1074,7 +1070,6 @@ $3 мына бу себепни бильдирди: ''$2''",
 'recentchangeslinked-feed' => 'Багълы денъиштирмелер',
 'recentchangeslinked-toolbox' => 'Багълы денъиштирмелер',
 'recentchangeslinked-title' => '"$1" иле багълы денъиштирмелер',
-'recentchangeslinked-noresult' => 'Сайлангъан вакъытта багълы саифелерде ич бир денъиштирме олмады.',
 'recentchangeslinked-summary' => "Бу махсус саифеде багълы саифелерде сонъки япылгъан денъиштирмелер джедвели бар. [[Special:Watchlist|Козетюв джедвелинъиз]]деки саифелер '''къалын''' оларакъ косьтериле.",
 'recentchangeslinked-page' => 'Саифе ады:',
 'recentchangeslinked-to' => 'Берильген саифе ерине берильген саифеге багъланты берген олгъан саифелерини косьтер',
@@ -1421,7 +1416,6 @@ $3 мына бу себепни бильдирди: ''$2''",
 'unwatch' => 'Козетме',
 'unwatchthispage' => 'Бу саифени козетме',
 'notanarticle' => 'Малюмат саифеси дегиль',
-'watchnochange' => 'Косьтерильген заман аралыгъында козетюв джедвелинъиздеки саифелернинъ ич бири денъиштирильмеген.',
 'watchlist-details' => 'Музакере саифелерини эсапкъа алмайып, козетюв джедвелинъизде {{PLURAL:$1|1|$1}} саифе бар.',
 'wlheader-enotif' => 'E-mail иле хабер берюв ачылды.',
 'wlheader-showupdated' => "Сонъки зияретинъизден сонъ денъиштирильген саифелер '''къалын арифлернен''' косьтерильди.",
index 8791d0f..8d77831 100644 (file)
@@ -339,7 +339,6 @@ $1',
 'disclaimers' => 'Cevapkârlıq redi',
 'disclaimerpage' => 'Project:Umumiy Malümat Muqavelesi',
 'edithelp' => 'Saifeler nasıl deñiştirilir?',
-'edithelppage' => 'Help:Saife nasıl deñiştirilir',
 'helppage' => 'Help:Münderice',
 'mainpage' => 'Baş Saife',
 'mainpage-description' => 'Baş Saife',
@@ -847,7 +846,6 @@ Vikide bu saifege oşağan saifelerni [[Special:Search|tapıp baqıñız]].',
 'searchmenu-legend' => 'Qıdıruv sazlamaları',
 'searchmenu-exists' => "'''Bu vikide \"[[:\$1]]\" adlı bir saife bar'''",
 'searchmenu-new' => "'''Bu vikide \"[[:\$1]]\" saifesini yarat!'''",
-'searchhelp-url' => 'Help:Münderice',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Bu prefiksli saifelerni köster]]',
 'searchprofile-articles' => 'Malümat saifeleri',
 'searchprofile-project' => 'Yardım ve leyha saifeleri',
@@ -914,7 +912,6 @@ Vikide bu saifege oşağan saifelerni [[Special:Search|tapıp baqıñız]].',
 'resetprefs' => 'Saqlanmağan sazlamalarnı ilk alına ketir',
 'restoreprefs' => 'Bütün ög belgilengen sazlamalarnı qaytar',
 'prefs-editing' => 'Saifelerni deñiştirüv',
-'prefs-edit-boxsize' => 'Yazuv penceresiniñ ölçüleri.',
 'rows' => 'Satır',
 'columns' => 'Sutun',
 'searchresultshead' => 'Qıdıruv',
@@ -949,7 +946,6 @@ Vikide bu saifege oşağan saifelerni [[Special:Search|tapıp baqıñız]].',
 'prefs-files' => 'Fayllar',
 'prefs-reset-intro' => 'Bu saifeni sazlamalarıñıznı sayt ög belgilengenine qaytarmaq içün qullana bilesiñiz. Bu lâğu etilip olamaz.',
 'prefs-emailconfirm-label' => 'E-mail tasdıqlanması:',
-'prefs-textboxsize' => 'Yazuv penceresiniñ ölçüleri',
 'youremail' => 'E-mail adresiñiz:',
 'username' => 'Qullanıcı adı:',
 'uid' => 'Qayd nomeri:',
@@ -1070,7 +1066,6 @@ Eger bildirseñiz, saifelerdeki deñiştirmelerni kimniñ yapqanını köstermek
 'recentchangeslinked-feed' => 'Bağlı deñiştirmeler',
 'recentchangeslinked-toolbox' => 'Bağlı deñiştirmeler',
 'recentchangeslinked-title' => '"$1" ile bağlı deñiştirmeler',
-'recentchangeslinked-noresult' => 'Saylanğan vaqıtta bağlı saifelerde iç bir deñiştirme olmadı.',
 'recentchangeslinked-summary' => "Bu mahsus saifede bağlı saifelerde soñki yapılğan deñiştirmeler cedveli bar. [[Special:Watchlist|Közetüv cedveliñiz]]deki saifeler '''qalın''' olaraq kösterile.",
 'recentchangeslinked-page' => 'Saife adı:',
 'recentchangeslinked-to' => 'Berilgen saife yerine berilgen saifege bağlantı bergen olğan saifelerni köster',
@@ -1416,7 +1411,6 @@ Bundan soñ, bu saifede ve onıñ muzakere saifesinde yapılacaq deñiştirmeler
 'unwatch' => 'Közetme',
 'unwatchthispage' => 'Bu saifeni közetme',
 'notanarticle' => 'Malümat saifesi degil',
-'watchnochange' => 'Kösterilgen zaman aralığında közetüv cedveliñizdeki saifelerniñ iç biri deñiştirilmegen.',
 'watchlist-details' => 'Muzakere saifelerini esapqa almayıp, közetüv cedveliñizde {{PLURAL:$1|1|$1}} saife bar.',
 'wlheader-enotif' => 'E-mail ile haber berüv açıldı.',
 'wlheader-showupdated' => "Soñki ziyaretiñizden soñ deñiştirilgen saifeler '''qalın ariflernen''' kösterildi.",
index f18cf9e..22a6108 100644 (file)
@@ -10,6 +10,7 @@
  * @author Chmee2
  * @author Danny B.
  * @author Dontlietome7
+ * @author Geitost
  * @author Helix84
  * @author Jachym
  * @author Jezevec
@@ -469,6 +470,18 @@ $messages = array(
 'oct' => '10.',
 'nov' => '11.',
 'dec' => '12.',
+'january-date' => '$1. ledna',
+'february-date' => '$1. února',
+'march-date' => '$1. března',
+'april-date' => '$1. dubna',
+'may-date' => '$1. května',
+'june-date' => '$1. června',
+'july-date' => '$1. července',
+'august-date' => '$1. srpna',
+'september-date' => '$1. září',
+'october-date' => '$1. října',
+'november-date' => '$1. listopadu',
+'december-date' => '$1. prosince',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategorie|Kategorie|Kategorie}}',
@@ -550,6 +563,7 @@ $messages = array(
 'create-this-page' => 'Vytvořit tuto stránku',
 'delete' => 'Smazat',
 'deletethispage' => 'Smazat stránku',
+'undeletethispage' => 'Obnovit tuto stránku',
 'undelete_short' => 'Obnovit $1 {{PLURAL:$1|verzi|verze|verzí}}',
 'viewdeleted_short' => 'Zobrazit {{PLURAL:$1|smazanou editaci|$1 smazané editace|$1 smazaných editací}}',
 'protect' => 'Zamknout',
@@ -603,7 +617,6 @@ $1',
 'disclaimers' => 'Vyloučení odpovědnosti',
 'disclaimerpage' => 'Project:Vyloučení odpovědnosti',
 'edithelp' => 'Pomoc při editování',
-'edithelppage' => 'Help:Jak editovat stránku',
 'helppage' => 'Help:Obsah',
 'mainpage' => 'Hlavní strana',
 'mainpage-description' => 'Hlavní strana',
@@ -749,6 +762,10 @@ $2',
 'namespaceprotected' => "Nemáte povoleno editovat stránky ve jmenném prostoru '''$1'''.",
 'customcssprotected' => 'Nemáte povoleno editovat tuto stránku s CSS, protože obsahuje osobní nastavení jiného uživatele.',
 'customjsprotected' => 'Nemáte povoleno editovat tuto stránku s JavaScriptem, protože obsahuje osobní nastavení jiného uživatele.',
+'mycustomcssprotected' => 'Nemáte oprávnění editovat tuto stránku s CSS.',
+'mycustomjsprotected' => 'Nemáte oprávnění editovat tuto stránku s JavaScriptem.',
+'myprivateinfoprotected' => 'Nemáte oprávnění měnit své soukromé údaje.',
+'mypreferencesprotected' => 'Nemáte oprávnění změnit svá nastavení.',
 'ns-specialprotected' => 'Stránky ve jmenném prostoru {{ns:special}} nelze editovat.',
 'titleprotected' => "Stránku s tímto názvem nelze založit, protože název zamknul uživatel [[User:$1|$1]] s odůvodněním: ''$2''.",
 'filereadonlyerror' => "Nelze změnit soubor „$1“, protože úložiště souborů „$2“ je momentálně pouze pro čtení.
@@ -775,6 +792,7 @@ Nezapomeňte si upravit své [[Special:Preferences|nastavení {{grammar:2sg|{{SI
 'yourname' => 'Uživatelské jméno:',
 'userlogin-yourname' => 'Uživatelské jméno',
 'userlogin-yourname-ph' => 'Zadejte své uživatelské jméno',
+'createacct-another-username-ph' => 'Zadejte uživatelské jméno',
 'yourpassword' => 'Heslo:',
 'userlogin-yourpassword' => 'Heslo',
 'userlogin-yourpassword-ph' => 'Zadejte své heslo',
@@ -799,7 +817,7 @@ Nezapomeňte si upravit své [[Special:Preferences|nastavení {{grammar:2sg|{{SI
 'notloggedin' => 'Nejste přihlášen(a)',
 'userlogin-noaccount' => 'Nemáte účet?',
 'userlogin-joinproject' => 'Přidejte se k {{grammar:3sg|{{SITENAME}}}}',
-'nologin' => "Dosud nemáte účet? '''$1'''.",
+'nologin' => 'Dosud nemáte účet? $1.',
 'nologinlink' => 'Zaregistrujte se',
 'createaccount' => 'Vytvořit účet',
 'gotaccount' => "Už jste registrováni? '''$1'''.",
@@ -809,9 +827,11 @@ Nezapomeňte si upravit své [[Special:Preferences|nastavení {{grammar:2sg|{{SI
 'helplogin-url' => 'Help:Přihlášení',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Nápověda k přihlašování]]',
 'createacct-join' => 'Níže zadejte své údaje.',
+'createacct-another-join' => 'Níže zadejte údaje nového účtu.',
 'createacct-emailrequired' => 'E-mailová adresa',
 'createacct-emailoptional' => 'E-mailová adresa (nepovinné)',
 'createacct-email-ph' => 'Zadejte svou e-mailovou adresu',
+'createacct-another-email-ph' => 'Zadejte e-mailovou adresu',
 'createaccountmail' => 'Použít dočasné náhodné heslo a odeslat ho na níže uvedenou e-mailovou adresu',
 'createacct-realname' => 'Skutečné jméno (nepovinné)',
 'createaccountreason' => 'Důvod:',
@@ -820,6 +840,7 @@ Nezapomeňte si upravit své [[Special:Preferences|nastavení {{grammar:2sg|{{SI
 'createacct-captcha' => 'Bezpečnostní kontrola',
 'createacct-imgcaptcha-ph' => 'Opište výše zobrazený text',
 'createacct-submit' => 'Vytvořit účet',
+'createacct-another-submit' => 'Vytvořit jiný účet',
 'createacct-benefit-heading' => '{{grammar:4sg|{{SITENAME}}}} tvoří lidé jako vy.',
 'createacct-benefit-body1' => '{{PLURAL:$1|editace|editace|editací}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|stránka|stránky|stránek}}',
@@ -835,7 +856,7 @@ Zvolte si prosím jiné jméno.',
 'nocookiesfornew' => 'Uživatelský účet nebyl založen, neboť jsme nebyli schopni potvrdit jeho původ.
 Ujistěte se, že máte povoleny cookies, obnovte tuto stránku a zkuste to znovu.',
 'noname' => 'Musíte uvést jméno svého účtu.',
-'loginsuccesstitle' => 'Přihlášení uspělo',
+'loginsuccesstitle' => 'Přihlášení bylo úspěšné',
 'loginsuccess' => 'Nyní jste přihlášen na {{grammar:6sg|{{SITENAME}}}} jako uživatel „$1“.',
 'nosuchuser' => 'Neexistuje uživatel se jménem „$1“. U uživatelských jmen se rozlišují malá/velká písmena. Zkontrolujte zápis, nebo si [[Special:UserLogin/signup|vytvořte nový účet]].',
 'nosuchusershort' => 'Neexistuje uživatel se jménem „$1“. Zkontrolujte zápis.',
@@ -875,7 +896,7 @@ Kvůli prevenci zneužívání lze heslo zaslat jen jednou za $1 {{PLURAL:$1|hod
 'cannotchangeemail' => 'U uživatelských účtů na této wiki nelze měnit e-mailové adresy.',
 'emaildisabled' => 'Tento server nemůže odesílat e-maily.',
 'accountcreated' => 'Účet vytvořen',
-'accountcreatedtext' => 'Uživatelský účet $1 byl vytvořen.',
+'accountcreatedtext' => 'Uživatelský účet [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|diskuse]]) byl vytvořen.',
 'createaccount-title' => 'Vytvoření účtu na {{grammar:6sg|{{SITENAME}}}}',
 'createaccount-text' => 'Někdo vytvořil na {{grammar:6sg|{{SITENAME}}}} ($4) účet s vaší e-mailovou adresou.
 Jméno účtu: „$2“
@@ -916,11 +937,11 @@ Možná jste si již úspěšně heslo změnili, nebo jste si vyžádali nové d
 
 # Special:PasswordReset
 'passwordreset' => 'Reset hesla',
-'passwordreset-text' => 'Pro získání nového hesla vyplňte tento formulář.',
+'passwordreset-text-one' => 'Pro získání nového hesla vyplňte tento formulář.',
+'passwordreset-text-many' => '{{PLURAL:$1|Pro získání nového hesla zadejte jeden z údajů.}}',
 'passwordreset-legend' => 'Znovu nastavit heslo',
 'passwordreset-disabled' => 'Znovunastavení hesla je na této wiki zakázáno.',
 'passwordreset-emaildisabled' => 'E-mailové funkce byly na této wiki vypnuty.',
-'passwordreset-pretext' => '{{PLURAL:$1||Zadejte jeden z údajů níže}}',
 'passwordreset-username' => 'Uživatelské jméno:',
 'passwordreset-domain' => 'Doména:',
 'passwordreset-capture' => 'Prohlédnout si výsledný e-mail?',
@@ -962,6 +983,19 @@ Dočasné heslo: $2',
 'changeemail-submit' => 'Změnit e-mail',
 'changeemail-cancel' => 'Storno',
 
+# Special:ResetTokens
+'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.
+
+{{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.',
+'resettokens-legend' => 'Reinicializace klíčů',
+'resettokens-tokens' => 'Klíče:',
+'resettokens-token-label' => '$1 (aktuální hodnota: $2)',
+'resettokens-watchlist-token' => 'Klíč k webovému kanálu sledovaných stránek',
+'resettokens-done' => 'Klíče reinicializovány',
+'resettokens-resetbutton' => 'Reinicializovat vybrané klíče',
+
 # Edit page toolbar
 'bold_sample' => 'Tučný text',
 'bold_tip' => 'Tučný text',
@@ -1152,13 +1186,14 @@ Podrobnosti si můžete prohlédnout v níže zobrazeném seznamu provedených p
 Zřejmě byla smazána.',
 'edit-conflict' => 'Editační konflikt.',
 'edit-no-change' => 'Vaše editace byla ignorována, protože nedošlo k žádné změně textu.',
+'postedit-confirmation' => 'Vaše změny byly uloženy.',
 'edit-already-exists' => 'Nepodařilo se vytvořit novou stránku, protože již existuje.',
 'defaultmessagetext' => 'Výchozí text hlášení',
 'content-failed-to-parse' => 'Nepodařilo se zpracovat data $2 do modelu $1: $3',
 'invalid-content-data' => 'Obsažená data jsou chybná',
 'content-not-allowed-here' => 'Obsah typu $1 není na stránce [[$2]] dovolen.',
 'editwarning-warning' => 'Opuštěním této stránky se mohou veškeré provedené změny ztratit.
-Pokud jste {{GENDER:|přihlášen|přihlášena|přihlášeni}}, můžete si toto varování vypnout na záložce „{{int:prefs-editing}}“ v uživatelském nastavení.',
+Přihlášení uživatelé si mohou toto varování vypnout na záložce „Editace“ v uživatelském nastavení.',
 
 # Content models
 'content-model-wikitext' => 'wikitext',
@@ -1193,6 +1228,7 @@ Tyto argumenty byly vynechány.',
 'undo-failure' => 'Editace nemohla být zrušena kvůli konfliktu mezilehlých editací.',
 'undo-norev' => 'Tuto editaci není možné vrátit, protože neexistuje nebo byla smazána.',
 'undo-summary' => 'Zrušena verze $1 od uživatele [[Special:Contributions/$2|$2]] ([[User talk:$2|diskuse]])',
+'undo-summary-username-hidden' => 'Zrušena verze $1 od skrytého uživatele',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Nelze vytvořit uživatelský účet',
@@ -1218,8 +1254,8 @@ $3 uvádí toto zdůvodnění: ''$2''",
 'histlegend' => '(teď) = rozdíly oproti nynější verzi, (předchozí) = rozdíly oproti předchozí verzi, <b>m</b> = malá editace',
 'history-fieldset-title' => 'Procházení historie',
 'history-show-deleted' => 'Pouze smazané',
-'histfirst' => 'Nejstarší',
-'histlast' => 'Nejnovější',
+'histfirst' => 'nejstarší',
+'histlast' => 'nejnovější',
 'historysize' => '({{PLURAL:$1|1 bajt|$1 bajty|$1 bajtů}})',
 'historyempty' => '(prázdné)',
 
@@ -1372,6 +1408,7 @@ Ujistěte se, že tato změna udrží souvislost a posloupnost verzí v historii
 'compareselectedversions' => 'Porovnat vybrané verze',
 'showhideselectedversions' => 'Zobrazit/skrýt vybrané revize',
 'editundo' => 'zrušit editaci',
+'diff-empty' => '(Žádný rozdíl)',
 'diff-multi' => '({{PLURAL:$1|Není zobrazena 1 mezilehlá verze|Nejsou zobrazeny $1 mezilehlé verze|Není zobrazeno $1 mezilehlých verzí}} od {{PLURAL:$2|1 uživatele|$2 uživatelů}}.)',
 'diff-multi-manyusers' => '(Není zobrazeno $1 mezilehlých verzí od více než $2 {{PLURAL:$2|uživatele|uživatelů}}.)',
 'difference-missing-revision' => '{{PLURAL:$2|Jedna z revizí|$2 revize|$2 revizí}} k požadovanému porovnání ($1) {{PLURAL:$2|neexistuje|neexistují|neexistuje}}.
@@ -1399,7 +1436,6 @@ Podrobnosti mohou být uvedeny v [{{fullurl:{{#Special:Log}}/delete|page={{FULLP
 'searchmenu-legend' => 'Možnosti hledání',
 'searchmenu-exists' => "'''Na této wiki existuje stránka nazvaná „[[:$1]]“.'''",
 'searchmenu-new' => "'''Vytvořte na této wiki stránku „[[:$1]]“!'''",
-'searchhelp-url' => 'Help:Obsah',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Zobrazit stránky, jejichž název začíná „$1“]]',
 'searchprofile-articles' => 'Články',
 'searchprofile-project' => 'Nápověda a projektové stránky',
@@ -1475,7 +1511,6 @@ Pokud na začátek dotazu přidáte ''all:'', bude se hledat všude (včetně di
 'resetprefs' => 'Vrátit původní nastavení',
 'restoreprefs' => 'Obnovit všechna výchozí nastavení',
 'prefs-editing' => 'Editace',
-'prefs-edit-boxsize' => 'Velikost editačního okna:',
 'rows' => 'Řádky',
 'columns' => 'Sloupce',
 'searchresultshead' => 'Vyhledávání',
@@ -1486,9 +1521,8 @@ Pokud na začátek dotazu přidáte ''all:'', bude se hledat všude (včetně di
 'recentchangesdays-max' => 'Maximálně $1 {{PLURAL:$1|den|dny|dní}}',
 'recentchangescount' => 'Počet implicitně zobrazovaných záznamů:',
 'prefs-help-recentchangescount' => 'Týká se posledních změn, historie stránek a protokolovacích záznamů.',
-'prefs-help-watchlist-token' => 'Pokud do tohoto pole vyplníte tajný klíč, bude vytvořen RSS kanál vašich sledovaných stránek.
-Kdokoli, kdo bude tento klíč znát, pak bude moci váš seznam sledovaných stránek číst, takže dbejte na bezpečnost.
-Můžete použít tuto náhodně vygenerovanou hodnotu: $1',
+'prefs-help-watchlist-token2' => 'Toto je tajný klíč k webovému kanálu vašich sledovaných stránek. Kdokoli, kdo bude tento klíč znát, bude moci váš seznam sledovaných stránek číst, takže ho nešiřte.
+[[Special:ResetTokens|Kliknutím sem ho můžete reinicializovat.]]',
 'savedprefs' => 'Vaše nastavení bylo uloženo.',
 'timezonelegend' => 'Časové pásmo:',
 'localtime' => 'Místní čas:',
@@ -1519,7 +1553,6 @@ Můžete použít tuto náhodně vygenerovanou hodnotu: $1',
 'prefs-reset-intro' => 'Pomocí této stránky můžete všechna nastavení vrátit na implicitní hodnoty.
 Tuto operaci nelze vrátit zpět.',
 'prefs-emailconfirm-label' => 'Ověření e-mailu:',
-'prefs-textboxsize' => 'Velikost editačního okna',
 'youremail' => 'E-mail:',
 'username' => '{{GENDER:$1|Uživatelské jméno}}:',
 'uid' => '{{GENDER:$1|Uživatelské}} ID:',
@@ -1549,7 +1582,9 @@ Vaše adresa v takovém případě není prozrazena.',
 'prefs-signature' => 'Podpis',
 'prefs-dateformat' => 'Formát data',
 'prefs-timeoffset' => 'Časový posun',
-'prefs-advancedediting' => 'Rozšířené možnosti',
+'prefs-advancedediting' => 'Obecné',
+'prefs-editor' => 'Editor',
+'prefs-preview' => 'Náhled',
 'prefs-advancedrc' => 'Rozšířené možnosti',
 'prefs-advancedrendering' => 'Rozšířené možnosti',
 'prefs-advancedsearchoptions' => 'Rozšířené možnosti',
@@ -1557,6 +1592,7 @@ Vaše adresa v takovém případě není prozrazena.',
 'prefs-displayrc' => 'Možnosti zobrazení',
 'prefs-displaysearchoptions' => 'Možnosti zobrazení',
 'prefs-displaywatchlist' => 'Možnosti zobrazení',
+'prefs-tokenwatchlist' => 'Klíč',
 'prefs-diffs' => 'Porovnání verzí',
 
 # User preference: email validation using jQuery
@@ -1585,6 +1621,7 @@ Vaše adresa v takovém případě není prozrazena.',
 'userrights-changeable-col' => 'Skupiny, které můžete měnit',
 'userrights-unchangeable-col' => 'Skupiny, které nemůžete měnit',
 'userrights-conflict' => 'Konflikt uživatelských práv! Proveďte požadované změny ještě jednou.',
+'userrights-removed-self' => 'Úspěšně jste si odebrali vlastní práva. Tudíž už nemáte k této stránce přístup.',
 
 # Groups
 'group' => 'Skupina:',
@@ -1628,7 +1665,7 @@ Vaše adresa v takovém případě není prozrazena.',
 'right-reupload-shared' => 'Nahrávání lokálních souborů k potlačení těch ve sdíleném úložišti',
 'right-upload_by_url' => 'Nahrávání souborů z URL adres',
 'right-purge' => 'Vyčištění vyrovnávací paměti stránky bez potvrzovacího dialogu',
-'right-autoconfirmed' => 'Editace polozamčených stránek',
+'right-autoconfirmed' => 'Imunita vůči rychlostním limitům založeným na IP adrese',
 'right-bot' => 'Být považován za automatický proces',
 'right-nominornewtalk' => 'Nevypisování oznámení o nové zprávě po malých úpravách diskusní stránky',
 'right-apihighlimits' => 'Používání vyšších limitů v API dotazech',
@@ -1649,12 +1686,20 @@ Vaše adresa v takovém případě není prozrazena.',
 'right-ipblock-exempt' => 'Obcházení blokování IP adres, jejich rozsahů a autobloků',
 'right-proxyunbannable' => 'Obcházení automatického blokování proxy serverů',
 'right-unblockself' => 'Odblokování sebe sama',
-'right-protect' => 'Měnění úrovně zámku a editace zamčených stránek',
-'right-editprotected' => 'Editace zamčených stránek (bez kaskádového zámku)',
+'right-protect' => 'Měnění úrovně zámku a editace kaskádově zamčených stránek',
+'right-editprotected' => 'Editace stránek zamčených na „{{int:protect-level-sysop}}“',
+'right-editsemiprotected' => 'Editace stránek zamčených na „{{int:protect-level-autoconfirmed}}“',
 'right-editinterface' => 'Editace zpráv uživatelského rozhraní',
 'right-editusercssjs' => 'Editace CSS a JS souborů jiných uživatelů',
 'right-editusercss' => 'Editace CSS souborů jiných uživatelů',
-'right-edituserjs' => 'Editace JS souborů jiných uživatelů',
+'right-edituserjs' => 'Editace JavaScriptových souborů jiných uživatelů',
+'right-editmyusercss' => 'Editace vašich uživatelských CSS souborů',
+'right-editmyuserjs' => 'Editace vašich uživatelských JavaScriptových souborů',
+'right-viewmywatchlist' => 'Prohlížení vlastního seznamu sledovaných stránek',
+'right-editmywatchlist' => 'Editace vlastního seznamu sledovaných stránek. Uvědomte si, že některé akce do něj mohou přidat stránky i bez tohoto oprávnění.',
+'right-viewmyprivateinfo' => 'Prohlížení vlastních soukromých údajů (např. e-mailová adresa, skutečné jméno)',
+'right-editmyprivateinfo' => 'Změna vašich soukromých údajů (např. e-mailová adresa, skutečné jméno)',
+'right-editmyoptions' => 'Změna vašich uživatelských nastavení',
 'right-rollback' => 'Rychlý revert úprav posledního uživatele editujícího danou stránku',
 'right-markbotedits' => 'Označování revertů jako editace bota',
 'right-noratelimit' => 'Imunita vůči rychlostním limitům',
@@ -1716,12 +1761,17 @@ Vaše adresa v takovém případě není prozrazena.',
 'action-userrights-interwiki' => 'upravovat práva uživatelů na jiných wiki',
 'action-siteadmin' => 'zamykat nebo odemykat databázi',
 'action-sendemail' => 'posílat e-maily',
+'action-editmywatchlist' => 'upravovat vlastní seznam sledovaných stránek',
+'action-viewmywatchlist' => 'prohlížet vlastní seznam sledovaných stránek',
+'action-viewmyprivateinfo' => 'prohlížet si své soukromé údaje',
+'action-editmyprivateinfo' => 'změnit své soukromé údaje',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|změna|změny|změn}}',
 'recentchanges' => 'Poslední změny',
 'recentchanges-legend' => 'Možnosti posledních změn',
 'recentchanges-summary' => 'Sledujte poslední změny na {{grammar:6sg|{{SITENAME}}}} na této stránce.',
+'recentchanges-noresult' => 'V daném období neodpovídaly zadaným kritériím žádné změny.',
 'recentchanges-feed-description' => 'Na tomto kanále sledujte poslední změny na {{grammar:6sg|{{SITENAME}}}}.',
 'recentchanges-label-newpage' => 'Touto editací byla založena nová stránka',
 'recentchanges-label-minor' => 'Toto je malá editace',
@@ -1759,7 +1809,6 @@ $3',
 'recentchangeslinked-feed' => 'Související změny',
 'recentchangeslinked-toolbox' => 'Související změny',
 'recentchangeslinked-title' => 'Související změny pro stránku „$1“',
-'recentchangeslinked-noresult' => 'V zadaném období nebyly na odkazovaných stránkách provedeny žádné změny.',
 'recentchangeslinked-summary' => "Níže je seznam nedávných změn stránek odkazovaných ze zadané stránky (nebo patřících do dané kategorie). Vaše [[Special:Watchlist|sledované stránky]] jsou '''zvýrazněny'''.",
 'recentchangeslinked-page' => 'Název stránky:',
 'recentchangeslinked-to' => 'Zobrazit změny na stránkách odkazujících na zadanou stránku',
@@ -1770,7 +1819,7 @@ $3',
 'reuploaddesc' => 'Zrušit načítání a vrátit se do formuláře.',
 'upload-tryagain' => 'Uložit upravený popis souboru',
 'uploadnologin' => 'Nejste přihlášen(a)',
-'uploadnologintext' => 'Pro načtení souboru se musíte [[Special:UserLogin|přihlásit]].',
+'uploadnologintext' => 'Pro načtení souboru se musíte $1.',
 'upload_directory_missing' => 'Adresář pro nahrávání souborů ($1) chybí a webový server ho nedokáže vytvořit.',
 'upload_directory_read_only' => 'Do adresáře pro načítané soubory ($1) nemá webserver právo zápisu.',
 'uploaderror' => 'Při načítání došlo k chybě',
@@ -1898,7 +1947,7 @@ $1',
 'upload-file-error-text' => 'Při vytváření dočasného souboru na serveru nastala vnitřní chyba.
 Kontaktuje prosím [[Special:ListUsers/sysop|správce]].',
 'upload-misc-error' => 'Neznámá chyba',
-'upload-misc-error-text' => 'Neznámá chyba se vyskytla během nahrávání souboru.  Zkontrolujte zda je URL platná a přístupné a zkuste to znovu.  Pokud se chyba znovu objeví, kontaktuje administrátora systému.',
+'upload-misc-error-text' => 'Neznámá chyba se vyskytla během nahrávání souboru.  Zkontrolujte zda je URL platná a přístupné a zkuste to znovu.  Pokud se chyba znovu objeví, kontaktuje [[Special:ListUsers/sysop|správce]].',
 'upload-too-many-redirects' => 'URL obsahovalo příliš mnoho přesměrování',
 'upload-unknown-size' => 'Neznámá velikost',
 'upload-http-error' => 'Došlo k chybě HTTP: $1',
@@ -2151,6 +2200,8 @@ Stránka je považována za rozcestník, pokud používá některou ze šablon o
 'pageswithprop-text' => 'Tato stránka obsahuje seznam stránek, které používají zadanou vlastnost stránky.',
 'pageswithprop-prop' => 'Název vlastnosti:',
 'pageswithprop-submit' => 'Provést',
+'pageswithprop-prophidden-long' => 'dlouhá hodnota textové vlastnosti skryta ($1 KB)',
+'pageswithprop-prophidden-binary' => 'dlouhá hodnota binární vlastnosti skryta ($1 KB)',
 
 'doubleredirects' => 'Dvojitá přesměrování',
 'doubleredirectstext' => 'Na této stránce je seznam přesměrování vedoucích na další přesměrování.
@@ -2208,6 +2259,7 @@ Každý řádek obsahuje odkaz na první a druhé přesměrování a k tomu cíl
 'mostrevisions' => 'Stránky s nejvíce revizemi',
 'prefixindex' => 'Seznam stránek dle začátku názvu',
 'prefixindex-namespace' => 'Seznam stránek dle začátku názvu (jmenný prostor $1)',
+'prefixindex-strip' => 'Začátek názvu v seznamu odříznout',
 'shortpages' => 'Nejkratší stránky',
 'longpages' => 'Nejdelší stránky',
 'deadendpages' => 'Slepé stránky',
@@ -2328,7 +2380,8 @@ Povinná je přinejmenším doména nejvyššího řádu, např. „*.org“.<br
 'listgrouprights-summary' => 'Toto je seznam uživatelských skupin definovaných na této wiki a&nbsp;jejich přístupových práv.
 
 [[{{MediaWiki:Listgrouprights-helppage}}|Podrobné informace o&nbsp;jednotlivých právech]]',
-'listgrouprights-key' => '* <span class="listgrouprights-granted">Udělená práva</span>
+'listgrouprights-key' => 'Legenda:
+* <span class="listgrouprights-granted">Udělená práva</span>
 * <span class="listgrouprights-revoked">Odebraná práva</span>',
 'listgrouprights-group' => 'Skupina',
 'listgrouprights-rights' => 'Práva',
@@ -2399,13 +2452,12 @@ Ve [[Special:Watchlist|sledovaných stránkách]] se tak budou objevovat budouc
 'unwatchthispage' => 'Nesledovat tuto stránku',
 'notanarticle' => 'Toto není stránka',
 'notvisiblerev' => 'Verze byla smazána',
-'watchnochange' => 'Žádná ze sledovaných položek nebyla editována v době, která je zobrazena.',
-'watchlist-details' => 'Na svém seznamu sledovaných stránek máte $1 {{PLURAL:$1|stránku|stránky|stránek}}, nepočítají se diskusní stránky.',
+'watchlist-details' => 'Na vašem seznamu sledovaných stránek {{PLURAL:$1|je $1 stránka|jsou $1 stránky|je $1 stránek}}, nepočítají se diskusní stránky.',
 'wlheader-enotif' => 'Upozorňování e-mailem je zapnuto.',
 'wlheader-showupdated' => "Stránky, které se změnily od vaší poslední návštěvy, jsou zobrazeny '''tučně'''.",
 'watchmethod-recent' => 'hledají se sledované stránky mezi posledními změnami',
 'watchmethod-list' => 'hledají se nejnovější editace sledovaných stránek',
-'watchlistcontains' => 'Na svém seznamu sledovaných stránek máte $1 {{PLURAL:$1|položku|položky|položek}}.',
+'watchlistcontains' => 'Na vašem seznamu sledovaných stránek {{PLURAL:$1|je $1 položka|jsou $1 položky|je $1 položek}}.',
 'iteminvalidname' => 'Problém s položkou „$1“, neplatný název…',
 'wlnote' => "Níže {{PLURAL:$1|je poslední změna|jsou poslední '''$1''' změny|je posledních '''$1''' změn}} za {{PLURAL:$2|poslední hodinu|poslední '''$2''' hodiny|posledních '''$2''' hodin}} do $4, $3.",
 'wlshowlast' => 'Ukázat posledních $1 hodin $2 dnů $3',
@@ -2503,7 +2555,7 @@ Rady a kontakt:
 Poslední editaci této stránky provedl(a) [[User:$3|$3]] ([[User talk:$3|diskuse]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "Shrnutí editace bylo: ''„$1“''.",
 'revertpage' => 'Editace uživatele „[[Special:Contributions/$2|$2]]“ ([[User talk:$2|diskuse]]) vráceny do předchozího stavu, jehož autorem je „[[User:$1|$1]]“',
-'revertpage-nouser' => 'Editace uživatele (uživatelské jméno skryto) vráceny do předchozího stavu, jehož autorem je „[[User:$1|$1]]“',
+'revertpage-nouser' => 'Editace skrytého uživatele vráceny do předchozího stavu, jehož autorem je „[[User:$1|$1]]“',
 'rollback-success' => 'Editace uživatele $1 byla vrácena na poslední verzi od uživatele $2.',
 
 # Edit tokens
@@ -2642,7 +2694,7 @@ $1',
 'mycontris' => 'Příspěvky',
 'contribsub2' => '$1 ($2)',
 'nocontribs' => 'Nenalezeny žádné změny vyhovující kritériím.',
-'uctop' => ' (aktuální)',
+'uctop' => '(aktuální)',
 'month' => 'Do měsíce:',
 'year' => 'Do roku:',
 
@@ -3743,19 +3795,23 @@ Poštovní program hlásí: $1',
 'confirmemail_loggedin' => 'Vaše e-mailová adresa byla potvrzena.',
 'confirmemail_error' => 'Nepodařilo se uložit vaše potvrzení.',
 'confirmemail_subject' => 'Potvrzení e-mailové adresy pro {{grammar:4sg|{{SITENAME}}}}',
-'confirmemail_body' => 'Někdo (patrně vy, z IP adresy $1) si registroval účet se jménem "$2" a touto e-mailovou adresou na {{grammar:6sg|{{SITENAME}}}}.
+'confirmemail_body' => 'Někdo (patrně vy, z IP adresy $1) si na {{grammar:6sg|{{SITENAME}}}}
+zaregistroval účet se jménem „$2“ a touto e-mailovou adresou.
 
-Pokud si přejete aktivovat e-mailové funkce na {{grammar:6sg|{{SITENAME}}}}, tak pro potvrzení, že tato adresa opravdu patří vám, přejděte svým internetovým prohlížečem na následující adresu:
+Pokud si přejete aktivovat e-mailové funkce na {{grammar:6sg|{{SITENAME}}}},
+tak pro potvrzení, že tato adresa opravdu patří vám, přejděte svým internetovým
+prohlížečem na následující adresu:
 
 $3
 
-Pokud jste o toto potvrzení *nežádali*, klikněte na následující odkaz, čímž potvrzení zrušíte:
+Pokud jste si tento účet *neregistrovali*, klikněte na následující odkaz,
+čímž potvrzení zrušíte:
 
 $5
 
 Platnost tohoto potvrzovacího kódu vyprší $4.',
-'confirmemail_body_changed' => 'Někdo (patrně vy, z IP adresy $1)
-změnil e-mailovou adresu k účtu "$2" na {{grammar:6sg|{{SITENAME}}}} na tuto adresu.
+'confirmemail_body_changed' => 'Někdo (patrně vy, z IP adresy $1) změnil e-mailovou adresu
+k účtu „$2“ na {{grammar:6sg|{{SITENAME}}}} na tuto adresu.
 
 Pokud si přejete aktivovat e-mailové funkce na {{grammar:6sg|{{SITENAME}}}},
 tak pro potvrzení, že tato adresa opravdu patří vám, přejděte svým
@@ -3763,7 +3819,7 @@ internetovým prohlížečem na následující adresu:
 
 $3
 
-Pokud jste o toto potvrzení *nežádali*, klikněte na následující odkaz,
+Pokud jste si tento účet *neregistrovali*, klikněte na následující odkaz,
 čímž potvrzení zrušíte:
 
 $5
@@ -3813,7 +3869,6 @@ Opravdu si přejete znovu tuto stránku založit?',
 'confirm-unwatch-top' => 'Vyjmout tuto stránku ze sledovaných?',
 
 # Separators for various lists, etc.
-'autocomment-prefix' => '–&#32;',
 'ellipsis' => '…',
 'percent' => '$1&nbsp;%',
 
@@ -3953,7 +4008,6 @@ Seznam editovaných stránek můžete také [[Special:EditWatchlist|editovat ve
 'version-other' => 'Jiné',
 'version-mediahandlers' => 'Obsluha médií',
 'version-hooks' => 'Přípojné body',
-'version-extension-functions' => 'Rozšiřující funkce',
 'version-parser-extensiontags' => 'Přidané syntaktické značky',
 'version-parser-function-hooks' => 'Funkce parseru',
 'version-hook-name' => 'Název přípojného bodu',
@@ -4036,6 +4090,7 @@ MediaWiki je distribuována v naději, že bude užitečná, avšak BEZ JAKÉKOL
 'tags' => 'Platné značky pro změny',
 'tag-filter' => 'Filtr podle [[Special:Tags|značek]]:',
 'tag-filter-submit' => 'Filtrovat',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Značka|Značky}}]]: $2)',
 'tags-title' => 'Značky',
 'tags-intro' => 'Tato stránka obsahuje seznam značek, kterými může software označovat jednotlivé editace, a jejich významy.',
 'tags-tag' => 'Název značky',
index ef63944..a1a141d 100644 (file)
@@ -261,7 +261,6 @@ $messages = array(
 'disclaimers' => 'Prawné zastrzedżi',
 'disclaimerpage' => 'Project:Prawné zastrzedżi',
 'edithelp' => 'Pòmòc do edicëji',
-'edithelppage' => 'Help:Editowanié starnë',
 'helppage' => 'Help:Spisënk zamkłoscë',
 'mainpage' => 'Przédnô starna',
 'mainpage-description' => 'Przédnô starna',
@@ -637,7 +636,6 @@ Spróbùjë szëkbë z przëdôwkã ''all:'' dlô całowny zamkłoscë starnów
 'prefs-reset-intro' => 'Na ti starnie mòże doprowôdzëc nazôd domëslné nastôwë dlô ti starnë.
 Negò dzéjaniô ni mòżé pòzdze ju copnąc.',
 'prefs-emailconfirm-label' => 'Pòcwierdzenié e-mailowi adresë:',
-'prefs-textboxsize' => 'Miara edicjowégò òkna',
 'youremail' => 'E-mail:',
 'username' => 'Miono brëkòwnika:',
 'uid' => 'ID brëkòwnika:',
index 7223552..ed2ab31 100644 (file)
@@ -99,6 +99,12 @@ $dateFormats = array(
 $linkTrail = '/^([a-zабвгдеєжѕзїіıићклмнопсстѹфхѡѿцчшщъыьѣюѥѧѩѫѭѯѱѳѷѵґѓђёјйљњќуўџэ҄я“»]+)(.*)$/sDu';
 
 $messages = array(
+# User preference toggles
+'tog-oldsig' => 'нꙑнѣшьн҄ь аѵтографъ :',
+
+'underline-always' => 'вьсѥгда',
+'underline-never' => 'никъгда',
+
 # Dates
 'sunday' => 'нєдѣлꙗ',
 'monday' => 'понедѣл҄ьникъ',
@@ -150,12 +156,27 @@ $messages = array(
 'oct' => 'ок҃т',
 'nov' => 'но҃є',
 'dec' => 'дє҃к',
+'january-date' => 'ꙗноуарїꙗ $1 числа',
+'february-date' => 'фєвроуарїꙗ $1 числа',
+'march-date' => 'мартїꙗ $1 числа',
+'april-date' => 'апрїлїꙗ $1 числа',
+'may-date' => 'маїꙗ $1 числа',
+'june-date' => 'їоунїꙗ $1 числа',
+'july-date' => 'їоулїꙗ $1 числа',
+'august-date' => 'аѷгоуста $1 числа',
+'september-date' => 'сєптємврїꙗ $1 числа',
+'october-date' => 'октѡврїꙗ $1 числа',
+'november-date' => 'ноємврїꙗ $1 числа',
+'december-date' => 'дєкємврїꙗ $1 числа',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Катигорїꙗ|Катигорїи|Катигорїѩ|Катигорїѩ}}',
 'category_header' => 'катигорїѩ ⁖ $1 ⁖ страницѧ',
 'subcategories' => 'подъкатигорїѩ',
+'category-media-header' => 'катигорїѩ ⁖ $1 ⁖ дѣла',
+'category-empty' => "''си катигорїи нꙑнѣ страницѧ и дѣлъ нѣстъ''",
 'hidden-categories' => '{{PLURAL:$1|съкрꙑта катигорїꙗ|съкрꙑти катигорїи|съкрꙑтꙑ катигорїѩ}}',
+'hidden-category-category' => 'съкрꙑтꙑ катигорїѩ',
 'category-subcat-count' => '{{PLURAL:$2|Сѥи катигорїи тъкъмо сꙗ подъкатигорїꙗ ѥстъ|Сѥи катигорїи {{PLURAL:$1|ѥдина подъкатигорїꙗ ѥстъ|2 подъкатигорїи ѥстє|$1 подъкатигорїѩ сѫтъ}} · а вьсѩ жє подъкатигорїѩ число $2 ѥстъ}}',
 'listingcontinuesabbrev' => '· вѧщє',
 
@@ -172,10 +193,11 @@ $messages = array(
 
 # Cologne Blue skin
 'qbedit' => 'исправи',
-'qbpageoptions' => 'си страни́ца',
+'qbpageoptions' => 'сꙗ страница',
 'qbmyoptions' => 'моꙗ страницѧ',
 'qbspecialpages' => 'нарочьнꙑ страницѧ',
-'faq' => 'чѧстꙑ въпросꙑ',
+'faq' => 'чѧстꙑ въпроси',
+'faqpage' => 'Project:Чѧстꙑ въпроси',
 
 # Vector skin
 'vector-action-addsection' => 'новꙑ бєсѣдꙑ чѧсти сътворѥниѥ',
@@ -238,7 +260,6 @@ $messages = array(
 'currentevents' => 'сѫщѧѩ вѣщи',
 'currentevents-url' => 'Project:Сѫщѧѩ вѣщи',
 'edithelp' => 'помощь по исправлѥниѭ',
-'edithelppage' => 'Help:Исправлѥниѥ страницѧ',
 'helppage' => 'Help:Каталогъ',
 'mainpage' => 'главьна страница',
 'mainpage-description' => 'главьна страница',
@@ -251,6 +272,8 @@ $messages = array(
 'youhavenewmessages' => '$1 тєбѣ напьсанꙑ сѫтъ ($2)',
 'newmessageslink' => 'нови напьсаниꙗ',
 'newmessagesdifflink' => 'послѣдьнꙗ мѣна',
+'newmessageslinkplural' => '{{PLURAL:$1|ново напьсаниѥ|нова напьсании|новꙑ напьсаниꙗ}}',
+'newmessagesdifflinkplural' => '{{PLURAL:$1|послѣдьнꙗ мѣна|послѣдьни мѣни|послѣдьн҄ь мѣнъ}}',
 'editsection' => 'исправи',
 'editold' => 'исправи',
 'viewsourceold' => 'страницѧ источьнъ обраꙁъ',
@@ -275,14 +298,30 @@ $messages = array(
 'nstab-help' => 'страница помощи',
 'nstab-category' => 'катигорїꙗ',
 
+# Main script and global functions
+'nosuchspecialpage' => 'си нарочнꙑ страницѧ нѣстъ',
+
 # General errors
 'error' => 'блаꙁна',
+'internalerror' => 'вънѫтрѣнꙗ блаꙁна',
+'badtitle' => 'ꙁъло имѧ',
 'viewsource' => 'страницѧ источьнъ обраꙁъ',
+'viewsource-title' => 'вижьдь страницѧ ⁖ $1 ⁖ источьнъ обраꙁъ',
 
 # Login and logout pages
+'welcomeuser' => 'Добрѣ прити · $1!',
+'welcomecreation-msg' => 'твоѥ польꙃєватєльско мѣсто сътворєно ѥстъ ⁙
+нꙑнѣ иꙁмѣнити [[Special:Preferences|{{GRAMMAR:genitive|{{SITENAME}}}} строи]] можєши',
 'yourname' => 'твоѥ имѧ',
+'userlogin-yourname' => 'польꙃєватєлꙗ имѧ',
+'userlogin-yourname-ph' => 'твоѥ польꙃєватєлꙗ имѧ напьши',
 'yourpassword' => 'таино слово напиши',
+'userlogin-yourpassword' => 'таино слово',
+'userlogin-yourpassword-ph' => 'твоѥ таино слово напьши',
+'createacct-yourpassword-ph' => 'таино слово напьши',
 'yourpasswordagain' => 'опакꙑ таиноѥ слово напиши',
+'createacct-yourpasswordagain' => 'таина слова оувѣрѥниѥ',
+'createacct-yourpasswordagain-ph' => 'опакꙑ жє таино слово напьши',
 'login' => 'въниди',
 'nav-login-createaccount' => 'въниди / съꙁижди си мѣсто',
 'userlogin' => 'въниди / съꙁижди си мѣсто',
@@ -294,9 +333,19 @@ $messages = array(
 'createaccount' => 'съꙁижди си мѣсто',
 'gotaccount' => 'мѣсто ти ѥстъ ли? $1',
 'gotaccountlink' => 'въниди',
+'helplogin-url' => 'Help:Въниждѥниѥ',
 'createaccountreason' => 'какъ съмꙑслъ :',
-'userexists' => 'сѫщє польꙃєватєлꙗ имѧ пьса ⁙ ино иꙁобрѧщи',
+'createacct-reason' => 'какъ съмꙑслъ',
+'createacct-submit' => 'съꙁижди си мѣсто',
+'createacct-benefit-heading' => '{{SITENAME}} съꙁьдаѥтъ сѧ чьловѣкꙑ · ижє ꙗко тꙑ сѫтъ',
+'createacct-benefit-body1' => '{{PLURAL:$1|мѣна|мѣнꙑ|мѣнъ}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|страница|страници|страницѧ}}',
+'userexists' => 'сѫщє польꙃєватєлꙗ имѧ пьса ⁙
+бѫди добръ · ино сѥ иꙁобрѧщи',
 'loginerror' => 'въхода блаꙁна',
+'createacct-error' => 'мѣста сътворѥниꙗ блаꙁна',
+'loginsuccess' => "'''нꙑнѣ тꙑ {{GENDER|въшьлъ|въшьла}} въ {{grammar:locative|{{SITENAME}}}} подь имьньмъ ⁖ $1 ⁖.'''",
+'mailmypassword' => 'посъли ново таино слово',
 'accountcreated' => 'мѣсто сътворєно ѥстъ',
 'loginlanguagelabel' => 'ѩꙁꙑкъ : $1',
 
@@ -309,6 +358,9 @@ $messages = array(
 # Special:PasswordReset
 'passwordreset-username' => 'польꙃєватєлꙗ имѧ :',
 
+# Special:ChangeEmail
+'changeemail-none' => '(нѣстъ)',
+
 # Edit page toolbar
 'link_sample' => 'съвѧꙁи имѧ',
 'link_tip' => 'вънѫтрьнꙗ съвѧꙁь',
@@ -336,18 +388,20 @@ $messages = array(
 'userpage-userdoesnotexist' => 'польꙃєватєльска мѣста ⁖ $1 ⁖ нꙑнѣ нѣстъ ⁙
 прѣдъ сътворѥниѥмь или исправлѥниѥмь си страницѧ помꙑсли жє ащє исто тъ дѣиство ноуждьно ли',
 'clearyourcache' => "'''НАРОЧИТО''': По съхранѥнии можєши обити своѥго съмотрила съхранъ да видѣлъ би мѣнꙑ
-* '''Mozilla ли Firefox ли Safari''' ли жьмꙑи Shift а мꙑшиѭ жьми Reload или жьми Ctrl-Shift-R (⌘-R вън Apple Mac)
-* '''Google Chrome:''' ли жьмꙑи Ctrl-Shift-R (⌘-Shift-R въ Mac)
-* '''Internet Explorer''' ли жьмꙑи Ctrl а мꙑшиѭ жьми Refresh или жьми Ctrl-F5
-* '''Konqueror''' ли жьми кромѣ Reload или F5 
-* '''Опєрꙑ''' польꙃєватєльмъ можєть бꙑти ноужда пльнѣ поничьжити ихъ съмотрила съхранъ въ Tools → Preferences ⁙",
+* '''Mozilla ли Firefox ли Safari''' ли жьмꙑи ''Shift'' а мꙑшиѭ жьми ''Reload'' или жьми ''Ctrl-F5'' ꙗко жє ''Ctrl-R'' (⌘-R вън Apple Mac)
+* '''Google Chrome:''' ли жьмꙑи ''Ctrl-Shift-R'' (⌘-Shift-R въ Mac)
+* '''Internet Explorer''' ли жьмꙑи ''Ctrl'' а мꙑшиѭ жьми ''Refresh'' или жьми ''Ctrl-F5'' 
+* '''Опєрꙑ''' польꙃєватєльмъ можєть бꙑти ноужда пльнѣ поничьжити ихъ съмотрила съхранъ въ ''Tools → Preferences'' ⁙",
 'note' => "'''НАРОЧИТО:'''",
 'editing' => 'исправлѥниѥ: $1',
+'creating' => 'сътворѥниѥ ⁖ $1 ⁖',
 'editingsection' => 'исправлѥниѥ ⁖ $1 ⁖ (чѧсть)',
 'editingcomment' => 'исправлѥниѥ ⁖ $1 ⁖ (нова чѧсть)',
 'templatesused' => 'сѥѩ страницѧ {{PLURAL:$1|сь обраꙁьць польꙃоуѥтъ сѧ ѥстъ|с҄и обраꙁьца польꙃоуѭтъ сѧ ѥстє|с҄и обраꙁьци польꙃоуѭтъ сѧ сѫтъ}} :',
 'template-protected' => '(ꙁабранєно ѥстъ)',
 'template-semiprotected' => '(чѧстьно ꙁабранѥно)',
+'hiddencategories' => 'сꙗ страница въ {{PLURAL:$1|1 съкрꙑтѣи катигорїи|$1 съкрꙑтѣхъ катигорїѩ}} сѧ авлꙗѥтъ :',
+'postedit-confirmation' => 'твоꙗ мѣна съхранѥна ѥстъ',
 
 # History pages
 'viewpagelogs' => 'си страницѧ їсторїѩ',
@@ -387,25 +441,29 @@ $messages = array(
 'viewprevnext' => 'виждь ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-exists' => "'''страница имєньмь ⁖ [[:$1]] ⁖ ѥстъ створѥна ю'''",
 'searchmenu-new' => "'''страницѫ ⁖ [[:$1]] ⁖ сътворити можєши'''",
-'searchhelp-url' => 'Help:Каталогъ',
 'searchprofile-articles' => 'члѣни',
 'searchprofile-project' => 'опꙑтьствовании и помощи страницѧ',
 'searchprofile-images' => 'дѣла',
 'searchprofile-everything' => 'вьсѩ страницѧ',
 'searchprofile-articles-tooltip' => 'ищи въ $1',
+'searchprofile-project-tooltip' => 'исканиѥ въ $1',
+'searchprofile-images-tooltip' => 'исканиѥ дѣлъ',
 'search-result-size' => '$1 ({{PLURAL:$2|$2 слово|$2 слова|$2 словєсъ}})',
 'search-redirect' => '(прѣнаправлєниѥ $1)',
 'search-section' => '(чѧсть $1)',
 'search-interwiki-caption' => 'родьствьна опꙑтьствованиꙗ',
 'search-interwiki-more' => '(вѧщє)',
 'searchall' => 'вьсꙗ',
-'powersearch' => 'ищи',
+'search-nonefound' => 'исканиѥ сꙗ слова ничєсо жє нє авило ѥстъ',
+'powersearch' => 'вѧщєѥ исканиѥ',
 'powersearch-redir' => 'прѣнаправлѥниꙗ',
 
 # Preferences page
 'preferences' => 'строи',
 'mypreferences' => 'строи',
+'prefs-edits' => 'мѣнъ число :',
 'changepassword' => 'таина словєсє иꙁмѣнѥниѥ',
+'prefs-datetime' => 'дьнь и врѣмѧ',
 'prefs-rc' => 'послѣдьнѩ мѣнꙑ',
 'prefs-watchlist' => 'блюдєниꙗ',
 'prefs-resetpass' => 'таина словєсє иꙁмѣнѥниѥ',
@@ -413,6 +471,7 @@ $messages = array(
 'prefs-editing' => 'исправлѥниѥ',
 'rows' => 'рѧдꙑ :',
 'searchresultshead' => 'исканиѥ',
+'savedprefs' => 'твои строи иꙁмѣнєнъ ѥстъ',
 'timezoneregion-africa' => 'Афрїка',
 'timezoneregion-america' => 'Амєрїка',
 'timezoneregion-antarctica' => 'Антарктїка',
@@ -423,20 +482,22 @@ $messages = array(
 'timezoneregion-europe' => 'Єѵрѡпа',
 'timezoneregion-indian' => 'Їндїискъ ѡкєанъ',
 'timezoneregion-pacific' => 'Тихꙑи ѡкєанъ',
-'prefs-searchoptions' => 'исканиꙗ строи',
+'prefs-searchoptions' => 'исканиѥ',
 'prefs-namespaces' => 'имєнъ просторꙑ',
 'prefs-files' => 'дѣла',
-'username' => 'польꙃєватєлꙗ имѧ :',
-'uid' => 'польꙃєватєлꙗ число :',
+'username' => '{{GENDER:$1|польꙃєватєлꙗ имѧ}} :',
+'uid' => '{{GENDER:$1|польꙃєватєлꙗ}} число :',
+'prefs-memberingroups' => '{{GENDER:$2|польꙃєватєлꙗ}} {{PLURAL:$1|чинъ|чина|чинꙑ}} :',
 'yourrealname' => 'истиньно имѧ :',
 'yourlanguage' => 'ѩꙁꙑкъ :',
-'yournick' => 'аѵтографъ :',
+'yournick' => 'новÑ\8a Ð°ÑµÑ\82огÑ\80аÑ\84Ñ\8a :',
 'yourgender' => 'полъ :',
 'gender-male' => 'мѫжъ',
 'gender-female' => 'жєна',
 'prefs-signature' => 'аѵтографъ',
 
 # User rights
+'userrights' => 'чина польꙃєватєлꙗ строи',
 'userrights-reason' => 'какъ съмꙑслъ :',
 
 # Groups
@@ -456,6 +517,13 @@ $messages = array(
 'grouppage-sysop' => '{{ns:project}}:Съмотритєлє',
 'grouppage-bureaucrat' => '{{ns:project}}:Чинодатєлє',
 
+# Rights
+'right-createaccount' => 'новъ польꙃєватєльскъ мѣстъ сътворѥниѥ',
+'right-move' => 'прѣимєнованиѥ страницѧ',
+'right-movefile' => 'прѣимєнованиѥ дѣлъ',
+'right-upload' => 'положєниѥ дѣлъ',
+'right-delete' => 'страницѧ поничьжєниѥ',
+
 # Special:Log/newusers
 'newuserlogpage' => 'новъ мѣстъ сътворѥниꙗ їсторїꙗ',
 
@@ -487,6 +555,7 @@ $messages = array(
 'minoreditletter' => 'м҃л',
 'newpageletter' => 'н҃в',
 'boteditletter' => 'а҃ѵ',
+'rc-old-title' => 'напрьва страница створѥна ꙗко ⁖ $1 ⁖',
 
 # Recent changes linked
 'recentchangeslinked' => 'съвѧꙁанꙑ страницѧ',
@@ -502,7 +571,9 @@ $messages = array(
 'filename' => 'дѣла имѧ',
 'filedesc' => 'опьсаниѥ',
 'fileuploadsummary' => 'опьсаниѥ:',
+'savefile' => 'дѣла съхранѥниѥ',
 'uploadedimage' => '⁖ [[$1]] ⁖ положєнъ ѥстъ',
+'overwroteimage' => 'новъ обраꙁъ ⁖ [[$1]] ⁖ положєнъ ѥстъ',
 'upload-source' => 'источьно дѣло',
 'sourcefilename' => 'источьна дѣла имꙗ :',
 'watchthisupload' => 'си дѣла блюдєниѥ',
@@ -514,7 +585,7 @@ $messages = array(
 # Special:ListFiles
 'imgfile' => 'дѣло',
 'listfiles' => 'дѣлъ каталогъ',
-'listfiles_name' => 'и́мѧ',
+'listfiles_name' => 'имѧ',
 'listfiles_user' => 'польꙃєватєл҄ь',
 'listfiles_size' => 'мѣра',
 
@@ -524,7 +595,9 @@ $messages = array(
 'filehist-deleteone' => 'поничьжєниѥ',
 'filehist-current' => 'нꙑнѣщьн҄ь обраꙁъ',
 'filehist-datetime' => 'дьнь / врѣмѧ',
+'filehist-thumb' => 'малъ обраꙁъ',
 'filehist-user' => 'польꙃєватєл҄ь',
+'filehist-dimensions' => 'мѣра',
 'filehist-filesize' => 'дѣла мѣра',
 'filehist-comment' => 'опьсаниѥ',
 'imagelinks' => 'дѣла польꙃєваниѥ',
@@ -559,6 +632,7 @@ $messages = array(
 'statistics-header-users' => 'польꙃєватєлъ статїстїка',
 'statistics-articles' => 'истиньнꙑ члѣни',
 'statistics-pages' => 'страницѧ',
+'statistics-pages-desc' => 'вьсѩ страницѧ въкоупомь съ бѣсєдꙑ · прѣнаправлѥниꙗ и инꙑ',
 'statistics-files' => 'положєнꙑ дѣла',
 'statistics-users-active' => 'дѣꙗтєльнꙑ польꙃєватєлє',
 
@@ -570,13 +644,16 @@ $messages = array(
 
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|баитъ|баита|баитъ}}',
+'ncategories' => '$1 {{PLURAL:$1|катигорїꙗ|катигорїи|катигорїѩ}}',
 'nlinks' => '$1 {{PLURAL:$1|съвѧꙁь|съвѧꙁи|съвѧꙁии}}',
 'nmembers' => '$1 {{PLURAL:$1|члѣнъ|члѣна|члѣни|члѣнъ}}',
 'shortpages' => 'кратъкꙑ страницѧ',
 'listusers' => 'польꙃєватєлъ каталогъ',
+'usereditcount' => '$1 {{PLURAL:$1|мѣна|мѣнꙑ|мѣнъ}}',
 'usercreated' => '{{GENDER:$3|сътворилъ|сътворила}} мѣсто $1 въ $2',
 'newpages' => 'нови члѣни',
 'newpages-username' => 'польꙃєватєлꙗ имѧ :',
+'ancientpages' => 'давьни страницѧ',
 'move' => 'прѣимєнованиѥ',
 'movethispage' => 'си страницѧ прѣимєнованиѥ',
 
@@ -584,8 +661,8 @@ $messages = array(
 'booksources-go' => 'прѣиди',
 
 # Special:Log
-'specialloguserlabel' => 'полÑ\8cê\99\83Ñ\94ваÑ\82Ñ\94лÒ\84Ñ\8c:',
-'speciallogtitlelabel' => 'страницѧ имѧ :',
+'specialloguserlabel' => 'иÑ\81плÑ\8cниÑ\82Ñ\94лÒ\84Ñ\8c :',
+'speciallogtitlelabel' => 'Ñ\81Ñ\82Ñ\80аниÑ\86ѧ Ð¸Ð»Ð¸ Ð¿Ð¾Ð»Ñ\8cê\99\83Ñ\94ваÑ\82Ñ\94лê\99\97 Ð¸Ð¼Ñ§ :',
 'log' => 'їсторїѩ',
 'all-logs-page' => 'вьсѩ обьщѧ їсторїѩ',
 
@@ -602,26 +679,39 @@ $messages = array(
 # Special:DeletedContributions
 'deletedcontributions' => 'поничьжєнꙑ добродѣꙗниꙗ',
 'deletedcontributions-title' => 'поничьжєнꙑ добродѣꙗниꙗ',
+'sp-deletedcontributions-contribs' => 'добродѣꙗниꙗ',
 
 # Special:LinkSearch
 'linksearch' => 'вънѣщьн҄ь съвѧꙁь исканиѥ',
+'linksearch-ns' => 'имєнъ просторъ :',
 'linksearch-ok' => 'ищи',
 
 # Special:ListUsers
 'listusers-submit' => 'виждь',
 
+# Special:ListGroupRights
+'listgrouprights-members' => '(польꙃєватєлъ каталогъ)',
+
 # Email user
 'emailuser' => 'посъли єпїстолѫ',
+'emailusername' => 'польꙃєватєлꙗ имѧ :',
+'emailfrom' => 'отъ :',
+'emailto' => 'къ :',
+'emailsubject' => 'ѳєма :',
+'emailmessage' => 'напьсаниє :',
+'emailsend' => 'посъли',
 
 # Watchlist
-'watchlist' => 'моê\99\97 Ð±Ð»Ñ\8eдÑ\94ниê\99\97',
+'watchlist' => 'блюдєниꙗ',
 'mywatchlist' => 'блюдєниꙗ',
-'addedwatchtext' => "страница ⁖ [[:$1]] ⁖ нꙑнѣ подъ твоимь [[Special:Watchlist|блюдєниѥмь]] ѥстъ ⁙
-всꙗ ѥѩ и ѥѩжє бєсѣдꙑ мѣнꙑ страницѧ ⁖ [[Special:Watchlist|моꙗ блюдєниꙗ]] ⁖ покаꙁанꙑ сѫтъ и  [[Special:RecentChanges|послѣдьнъ мѣнъ]] каталоꙃѣ '''чрьнꙑимъ''' сѧ авлꙗѭтъ",
+'watchlistfor2' => 'дѣлꙗ ⁖ $1 ⁖ $2',
+'addedwatchtext' => 'страница ⁖ [[:$1]] ⁖ нꙑнѣ подъ твоимь [[Special:Watchlist|блюдєниѥмь]] ѥстъ ⁙
+всꙗ ѥѩ и ѥѩжє бєсѣдꙑ страницѧ мѣнꙑ твоꙗ блюдєнии каталоꙃѣ покаꙁанꙑ бѫдѫтъ',
 'removedwatchtext' => 'страница ⁖ [[:$1]] ⁖ нꙑнѣ твоѥго [[Special:Watchlist|блюдєниꙗ]] иꙁнєсєна ѥстъ',
 'watch' => 'блюдєниѥ',
 'watchthispage' => 'си страницѧ блюдєниѥ',
 'unwatch' => 'остави блюдєниѥ',
+'watchlist-options' => 'блюдєниѩ строи',
 
 # Displayed when you click the "watch" button and it is in the process of watching
 'watching' => 'блюдєниѥ ...',
@@ -647,6 +737,9 @@ $messages = array(
 'prot_1movedto2' => '⁖ [[$1]] ⁖ нарєчєнъ ⁖ [[$2]] ⁖ ѥстъ',
 'protectcomment' => 'какъ съмꙑслъ :',
 'protect-level-sysop' => 'толико съмотритєлє',
+'protect-othertime' => 'ино врѣмѧ :',
+'protect-othertime-op' => 'ино врѣмѧ',
+'protect-otherreason-op' => 'инъ съмꙑслъ',
 'protect-expiry-options' => '1 часъ:1 hour,1 дьнь:1 day,1 сєдмица:1 week,2 сєдмици:2 weeks,1 мѣсѧць:1 month,3 мѣсѧць:3 months,6 мѣсѧць:6 months,1 лѣто:1 year,вѣчьно:infinite',
 'pagesize' => '(баитъ)',
 
@@ -658,17 +751,20 @@ $messages = array(
 # Undelete
 'undeletecomment' => 'какъ съмꙑслъ :',
 'undelete-search-submit' => 'ищи',
+'undelete-show-file-submit' => 'да',
 
 # Namespace form on various pages
 'namespace' => 'имєнъ просторъ:',
+'invert' => 'обрати иꙁборъ',
+'namespace_association' => 'съвѧꙁанꙑ имєнъ просторꙑ',
 'blanknamespace' => '(главьно)',
 
 # Contributions
-'contributions' => 'польꙃєватєлꙗ добродѣꙗниꙗ',
+'contributions' => '{{GENDER:$1|польꙃєватєлꙗ}} добродѣꙗниꙗ',
 'contributions-title' => 'польꙃєватєлꙗ ⁖ $1 ⁖ добродѣꙗниꙗ',
 'mycontris' => 'добродѣꙗниꙗ',
 'contribsub2' => 'польꙃєватєлꙗ имѧ ⁖ $1 ⁖ ѥстъ ($2)',
-'uctop' => '(поÑ\81лѣдÑ\8cнê\99\97 Ð¼Ñ£Ð½Ð°)',
+'uctop' => '(нê\99\91нѣÑ\89Ñ\8cнÒ\84Ñ\8c Ð¾Ð±Ñ\80аê\99\81Ñ\8a)',
 
 'sp-contributions-blocklog' => 'ꙁаграждєниꙗ їсторїꙗ',
 'sp-contributions-deleted' => 'поничьжєнꙑ добродѣꙗниꙗ',
@@ -688,20 +784,27 @@ $messages = array(
 'whatlinkshere-links' => '← съвѧꙁи',
 'whatlinkshere-hideredirs' => '$1 прѣнаправлѥниꙗ',
 'whatlinkshere-hidelinks' => '$1 съвѧꙁи',
+'whatlinkshere-filters' => 'ситꙑ',
 
 # Block/unblock
+'block' => 'ꙁагради польꙃєватєл҄ь',
 'blockip' => 'ꙁагради польꙃєватєл҄ь',
+'blockip-title' => 'ꙁагради польꙃєватєл҄ь',
+'blockip-legend' => 'ꙁагради польꙃєватєл҄ь',
 'ipadressorusername' => 'IP число или польꙃєватєлꙗ имѧ :',
 'ipbreason' => 'какъ съмꙑслъ :',
+'ipbother' => 'ино врѣмѧ :',
 'ipboptions' => '2 часа:2 hours,1 дьнь:1 day,3 дьни:3 days,1 сєдмица:1 week,2 сєдмици:2 weeks,1 мѣсѧць:1 month,3 мѣсѧць:3 months,6 мѣсѧць:6 months,1 лѣто:1 year,вѣчьно:infinite',
 'ipblocklist' => 'ꙁаграждєнꙑ польꙃєватєлє',
 'blocklist-reason' => 'какъ съмꙑслъ',
 'ipblocklist-submit' => 'исканиѥ',
 'infiniteblock' => 'вѣчьно',
+'anononlyblock' => 'тъкъмо анѡнѷмꙑ',
 'blocklink' => 'ꙁагради',
 'contribslink' => 'добродѣꙗниꙗ',
 'blocklogpage' => 'ꙁаграждєниꙗ їсторїꙗ',
 'blocklogentry' => 'ꙁаградихъ [[$1]] на врѣмѧ $2 $3',
+'block-log-flags-anononly' => 'тъкъмо анѡнѷмьнꙑ польꙃєватєлє',
 
 # Move page
 'move-page' => 'прѣимєнованиѥ ⁖ $1 ⁖',
@@ -722,6 +825,14 @@ $messages = array(
 # Namespace 8 related
 'allmessages' => 'сѷстимьнꙑ напьсаниꙗ',
 'allmessagesname' => 'имѧ',
+'allmessages-language' => 'ѩꙁꙑкъ :',
+'allmessages-filter-submit' => 'прѣиди',
+
+# Special:Import
+'import-upload-filename' => 'дѣла имѧ :',
+
+# JavaScriptTest
+'javascripttest' => 'искоушєниѥ ⁖ JavaScript ⁖',
 
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'твоꙗ польꙃєватєл҄ьска страница',
@@ -746,22 +857,62 @@ $messages = array(
 'tooltip-t-specialpages' => 'вьсѣѩ нарочьнъ страницѧ каталогъ',
 'tooltip-t-print' => 'сѥѩ страницѧ пєчатьнъ обраꙁъ',
 'tooltip-ca-nstab-special' => 'си нарочьна страница ѥстъ · ѥѩжє иꙁмѣнꙗти нє можєши',
+'tooltip-ca-nstab-image' => 'виждь дѣла страницѫ',
+'tooltip-ca-nstab-category' => 'виждь катигорїѩ страницѫ',
 'tooltip-minoredit' => 'оꙁначи ꙗко малоу мѣноу',
+'tooltip-save' => 'твоѩ мѣнъ съхранѥниѥ',
 'tooltip-watch' => 'си страницѧ блюдєниѥ',
 
 # Info page
+'pageinfo-header-edits' => 'мѣнъ їсторїꙗ',
+'pageinfo-header-restrictions' => 'страницѧ ꙁабранѥниѥ',
+'pageinfo-firstuser' => 'страницѧ творьць',
 'pageinfo-toolboxlink' => 'страницѧ плирофорїꙗ',
+'pageinfo-contentpage-yes' => 'да',
+'pageinfo-protect-cascading-yes' => 'да',
+'pageinfo-category-pages' => 'страницѩ число',
+'pageinfo-category-files' => 'дѣлъ число',
 
 # Media information
 'file-info-size' => '$1 × $2 п҃ѯ · дѣла мѣра : $3 · MIME тѷпъ : $4',
 'svg-long-desc' => 'дѣло SVG · обꙑчьнъ обраꙁъ : $1 × $2 п҃ѯ · дѣла мѣра : $3',
 'show-big-image' => 'пльнъ вида обраꙁъ',
+'show-big-image-size' => '$1 × $2 пиѯєлъ',
 
 # Special:NewFiles
+'showhidebots' => '($1 аѵтоматъ)',
 'ilsubmit' => 'ищи',
 
+# Human-readable timestamps
+'monday-at' => 'понєдѣл҄ьникъ · $1',
+'tuesday-at' => 'въторьникъ · $1',
+'wednesday-at' => 'срѣда · $1',
+'thursday-at' => 'чєтврьтъкъ · $1',
+'friday-at' => 'пѧтъкъ · $1',
+'saturday-at' => 'сѫбота · $1',
+'sunday-at' => 'нєдѣлꙗ · $1',
+'yesterday-at' => 'вьчєра · $1',
+
 # Exif tags
 'exif-artist' => 'творьць',
+'exif-languagecode' => 'ѩꙁꙑкъ',
+'exif-iimcategory' => 'катигорїꙗ',
+
+# Pseudotags used for GPSSpeedRef
+'exif-gpsspeed-k' => 'хїлїомєтрꙑ ꙁа часъ',
+
+# Pseudotags used for GPSDestDistanceRef
+'exif-gpsdestdistance-k' => 'хїлїомєтрꙑ',
+
+'exif-iimcategory-edu' => 'навꙑканиѥ',
+'exif-iimcategory-hth' => 'съдравиѥ',
+'exif-iimcategory-pol' => 'полїтїка',
+'exif-iimcategory-rel' => 'вѣра',
+'exif-iimcategory-sci' => 'оучєниѥ и тєхнологїꙗ',
+'exif-iimcategory-spo' => 'аѳлитїка',
+
+# External editor support
+'edit-externally-help' => '(ꙁьри [//www.mediawiki.org/wiki/Manual:External_editors помощь] вѧщєи плирофорїѩ дѣлꙗ)',
 
 # 'all' in various places, this might be different for inflected languages
 'watchlistall2' => 'вьсꙗ',
@@ -788,27 +939,38 @@ $messages = array(
 
 # Special:Version
 'version' => 'MediaWiki обраꙁъ',
+'version-specialpages' => 'нарочьнꙑ страницѧ',
 'version-version' => '(обраꙁъ $1)',
 'version-license' => 'прощєниѥ',
 'version-software-version' => 'обраꙁъ',
 
+# Special:Redirect
+'redirect-submit' => 'прѣиди',
+'redirect-file' => 'дѣла имѧ',
+
 # Special:FileDuplicateSearch
+'fileduplicatesearch-filename' => 'дѣла имѧ :',
 'fileduplicatesearch-submit' => 'ищи',
 
 # Special:SpecialPages
 'specialpages' => 'нарочьнꙑ страницѧ',
 
 # Special:Tags
+'tag-filter' => '[[Special:Tags|мѣтъць]] сито :',
 'tags-edit' => 'исправи',
 
 # Database error messages
 'dberr-header' => 'Вики тєхнїчьнꙑ отѧжєниꙗ имѣтъ',
 
+# HTML forms
+'htmlform-no' => 'нѣтъ',
+'htmlform-yes' => 'да',
+
 # New logging system
-'logentry-delete-delete' => '$1 поничьжихъ страницѫ ⁖ $3 ⁖',
-'logentry-move-move' => '$1 нарєчє страницѫ ⁖ $3 ⁖ имєньмь ⁖ $4 ⁖',
-'logentry-move-move-noredirect' => '$1 нарєчє страницѫ ⁖ $3 ⁖ имєньмь ⁖ $4 ⁖ бєꙁ прѣнаправлєниꙗ сътворѥниꙗ',
-'logentry-newusers-create' => 'польꙃєватєльско мѣсто ⁖ $1 ⁖ сътворѥно ѥстъ',
+'logentry-delete-delete' => '$1 {{GENDER:$2|поничьжилъ|поничьжила}} страницѫ ⁖ $3 ⁖',
+'logentry-move-move' => '$1 {{GENDER:$2|нарєчє}} страницѫ ⁖ $3 ⁖ имєньмь ⁖ $4 ⁖',
+'logentry-move-move-noredirect' => '$1 {{GENDER:$2|нарєчє}} страницѫ ⁖ $3 ⁖ имєньмь ⁖ $4 ⁖ бєꙁ прѣнаправлєниꙗ сътворѥниꙗ',
+'logentry-newusers-create' => 'польꙃєватєльско мѣсто ⁖ $1 ⁖ {{GENDER:$2|сътворѥно}} ѥстъ',
 
 # Search suggestions
 'searchsuggest-search' => 'исканиѥ',
index 0be8a21..57412c8 100644 (file)
@@ -251,7 +251,6 @@ $messages = array(
 'disclaimers' => 'Яваплăха тивĕçтерменни',
 'disclaimerpage' => 'Project:Яваплăха тивĕçтерменни',
 'edithelp' => 'Улшăнусене кĕртме пулăшакан пулăшу',
-'edithelppage' => 'Help:Улшăнусене кĕртме пулăшакан пулăшу',
 'helppage' => 'Help:Пулăшу',
 'mainpage' => 'Тĕп страница',
 'mainpage-description' => 'Тĕп страницă',
@@ -578,7 +577,6 @@ $1 хутшăнакан патне, е ытти [[{{MediaWiki:Grouppage-sysop}}|
 'textmatches' => 'Статьясенчи текст пĕрпеклĕхĕ',
 'prevn' => 'малтанхи {{PLURAL:$1|$1}}',
 'nextn' => 'малалли {{PLURAL:$1|$1}}',
-'searchhelp-url' => 'Help:Пулăшу',
 'search-result-size' => '$1 ({{PLURAL:$2|1 сăмах|$2 сăмах}})',
 'showingresults' => 'Аяларах эсир <b>#$2</b> пуçласа кăтартнă <b>$1</b> йĕркене куратăр.',
 'showingresultsheader' => "{{PLURAL:$5|Результат '''$1'''  '''$3''' хушшинчен|Результатсем'''$1 - $2''' '''$3''' хушшинчен}}  '''$4''' валли",
index b559dbb..abe93dc 100644 (file)
@@ -317,6 +317,7 @@ $messages = array(
 'create-this-page' => "Creu'r dudalen",
 'delete' => 'Dileu',
 'deletethispage' => 'Dileer y dudalen hon',
+'undeletethispage' => 'Adfer y dudalen hon',
 'undelete_short' => 'Adfer $1 {{PLURAL:$1|golygiad|golygiad|olygiad|golygiad}}',
 'viewdeleted_short' => "Edrych ar y {{PLURAL:$1|golygiad sydd wedi'i ddileu|golygiad sydd wedi'i ddileu|$1 olygiad sydd wedi'u dileu|$1 golygiad sydd wedi'u dileu|$1 golygiad sydd wedi'u dileu|$1 golygiad sydd wedi'u dileu}}",
 'protect' => 'Diogelu',
@@ -370,7 +371,6 @@ $1',
 'disclaimers' => 'Gwadiadau',
 'disclaimerpage' => 'Project:Gwadiad Cyffredinol',
 'edithelp' => 'Help gyda golygu',
-'edithelppage' => 'Help:Golygu',
 'helppage' => 'Help:Cymorth',
 'mainpage' => 'Hafan',
 'mainpage-description' => 'Hafan',
@@ -515,6 +515,10 @@ $2",
 'namespaceprotected' => "Nid oes caniatâd gennych i olygu tudalennau yn y parth '''$1'''.",
 'customcssprotected' => "Nid oes caniatâd ganddoch i olygu'r dudalen CSS hon oherwydd bod gosodiadau personol defnyddiwr arall arno.",
 'customjsprotected' => "Nid oes caniatâd ganddoch i olygu'r dudalen JavaScript hon oherwydd bod gosodiadau personol defnyddiwr arall arno.",
+'mycustomcssprotected' => "Does dim caniatad gennych i olygu'r dudalen CSS hon.",
+'mycustomjsprotected' => "Does dim caniatad gennych i olygu'r dudalen JavaScript hon.",
+'myprivateinfoprotected' => 'Nid oes caniatad gennych i olygu eich manylion personol preifat.',
+'mypreferencesprotected' => 'Nid oes caniatad gennych i olygu eich dewisiadau eich hunan.',
 'ns-specialprotected' => 'Ni ellir golygu tudalennau arbennig.',
 'titleprotected' => "Diogelwyd y teitl hwn rhag ei greu gan [[User:$1|$1]].
 Rhoddwyd y rheswm hwn - ''$2''.",
@@ -639,7 +643,7 @@ Felly ni chaiff defnyddwyr sy'n defnyddio'r cyfeiriad IP hwn greu rhagor o gyfri
 'cannotchangeemail' => 'Ni ellir newid cyfeiriadau e-bost i gyfrifon ar y wici hwn.',
 'emaildisabled' => 'Ni all y wefan hon anfon e-byst.',
 'accountcreated' => 'Crëwyd y cyfrif',
-'accountcreatedtext' => 'Crëwyd cyfrif defnyddiwr ar gyfer $1.',
+'accountcreatedtext' => 'Gosodwyd cyfrif defnyddiwr ar gyfer [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|sgwrs]]).',
 'createaccount-title' => 'Creu cyfrif ar {{SITENAME}}',
 'createaccount-text' => 'Creodd rhywun gyfrif o\'r enw $2 ar {{SITENAME}} ($4) ar gyfer y cyfeiriad e-bost hwn. "$3" yw\'r cyfrinair ar gyfer "$2". Dylech fewngofnodi a newid eich cyfrinair yn syth.
 
@@ -677,11 +681,11 @@ Gall fod eich bod wedi llwyddo newid eich cyfrinair eisoes neu eich bod wedi gof
 
 # Special:PasswordReset
 'passwordreset' => 'Ailosod cyfrinair',
-'passwordreset-text' => 'Cwblhewch y ffurflen hon er mwyn ailosod eich cyfrinair.',
+'passwordreset-text-one' => 'Cwblhewch y ffurflen hon er mwyn ailosod eich cyfrinair.',
+'passwordreset-text-many' => "{{PLURAL:$1|Llanwch un o'r blychau er mwyn ailosod eich cyfrinair.}}",
 'passwordreset-legend' => 'Ailosod y cyfrinair',
 'passwordreset-disabled' => 'Analluogwyd ailosod cyfrineiriau ar y wici hwn.',
 'passwordreset-emaildisabled' => 'Analluogwyd offer e-bost ar y wici hwn.',
-'passwordreset-pretext' => "{{PLURAL:$1|||Rhowch un o'r darnau o ddata isod|Rhowch un o'r darnau o ddata isod|Rhowch un o'r darnau o ddata isod|Rhowch un o'r darnau o ddata isod|Rhowch un o'r darnau o ddata isod}}",
 'passwordreset-username' => 'Eich enw defnyddiwr:',
 'passwordreset-domain' => 'Parth:',
 'passwordreset-capture' => 'Gweld yr e-bost a gaiff ei anfon?',
@@ -894,7 +898,7 @@ Dyma'r cofnod lòg diweddaraf, er gwybodaeth:",
 'nocreate-loggedin' => "Nid yw'r gallu gennych i greu tudalennau.",
 'sectioneditnotsupported-title' => 'Dim modd golygu fesul adran',
 'sectioneditnotsupported-text' => "Nid oes modd golygu'r dudalen hon fesul adran",
-'permissionserrors' => 'Gwallau Caniatâd',
+'permissionserrors' => 'Gwall caniatâd',
 'permissionserrorstext' => "Nid yw'r gallu ganddoch i weithredu yn yr achos yma, am y {{PLURAL:$1|rheswm|rheswm|rhesymau|rhesymau|rhesymau|rhesymau}} canlynol:",
 'permissionserrorstext-withaction' => "Nid yw'r gallu hwn ($2) ganddoch, am y {{PLURAL:$1|rheswm|rheswm|rhesymau|rhesymau|rhesymau|rhesymau}} canlynol:",
 'recreate-moveddeleted-warn' => "'''Dalier sylw: Rydych yn ail-greu tudalen a ddilewyd rhywdro.'''
@@ -910,6 +914,7 @@ Ni roddodd eglurhad.',
 Ymddengys iddi gael ei dileu.",
 'edit-conflict' => 'Cyd-ddigwyddiad golygu.',
 'edit-no-change' => 'Anwybyddwyd eich golygiad, gan na newidiwyd y testun.',
+'postedit-confirmation' => 'Rhoddwyd eich golygiad ar gadw.',
 'edit-already-exists' => 'Ni ellid creu tudalen newydd.
 Mae ar gael yn barod.',
 'defaultmessagetext' => 'Y testun rhagosodedig',
@@ -917,7 +922,7 @@ Mae ar gael yn barod.',
 'invalid-content-data' => "Data annilys i'r cynnwys",
 'content-not-allowed-here' => 'Nid yw cynnwys ar ffurf "$1" yn cael ei ganiatau ar y dudalen [[$2]]',
 'editwarning-warning' => 'Os y gadewch y dudalen hon mae\'n bosib y collwch eich newidiadau iddi.
-Gallwch ddiddymu\'r rhybudd hwn yn yr adran "{{int:prefs-editing}}" yn eich dewisiadau.',
+Os ydych wedi mewngofnodi gallwch ddiddymu\'r rhybudd hwn yn yr adran "Golygu" yn eich dewisiadau.',
 
 # Content models
 'content-model-wikitext' => 'cystrawen wici',
@@ -952,6 +957,7 @@ Cafodd yr argiau hyn eu hepgor.",
 'undo-failure' => 'Methwyd a dadwneud y golygiad oherwydd gwrthdaro â golygiadau cyfamserol.',
 'undo-norev' => "Ni ellid dadwneud y golygiad oherwydd nad yw'n bod neu iddo gael ei ddileu.",
 'undo-summary' => 'Dadwneud y golygiad $1 gan [[Special:Contributions/$2|$2]] ([[User talk:$2|Sgwrs]] | [[Special:Contributions/$2|{{MediaWiki:Contribslink}}]])',
+'undo-summary-username-hidden' => 'Dadwneud y golygiad $1 gan ddefnyddiwr cudd',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Yn methu creu cyfrif',
@@ -979,8 +985,8 @@ Eglurhad: '''({{int:cur}})''' = gwahaniaethau rhyngddo a'r fersiwn cyfredol,
 '''({{int:last}})''' = gwahaniaethau rhyngddo a'r fersiwn cynt, '''({{int:minoreditletter}})''' = golygiad bychan",
 'history-fieldset-title' => "Chwilio drwy'r hanes",
 'history-show-deleted' => 'Y rhai a ddilëwyd yn unig',
-'histfirst' => 'Cynharaf',
-'histlast' => 'Diweddaraf',
+'histfirst' => 'cynharaf',
+'histlast' => 'diweddaraf',
 'historysize' => '({{PLURAL:$1|$1 beit|$1 beit|$1 feit|$1 beit|$1 beit|$1 beit}})',
 'historyempty' => '(gwag)',
 
@@ -1158,7 +1164,6 @@ Mae manylion pellach i'w cael yn [{{fullurl:{{#Special:Log}}/delete|page={{FULLP
 'searchmenu-legend' => 'Dewisiadau chwilio',
 'searchmenu-exists' => "'''Mae tudalen o'r enw \"[[\$1]]\" ar y wici hwn'''",
 'searchmenu-new' => "'''Creu'r dudalen \"[[:\$1]]\" ar y wici hwn!'''",
-'searchhelp-url' => 'Help:Cymorth',
 'searchmenu-prefix' => "[[Special:PrefixIndex/$1|Chwilio drwy tudalennau gyda'r rhagddodiad hwn]]",
 'searchprofile-articles' => 'Tudalennau pwnc (erthyglau/ffeiliau)',
 'searchprofile-project' => 'Tudalennau Cymorth a Phrosiect',
@@ -1235,7 +1240,6 @@ Cofiwch y gall mynegeion Google o gynnwys {{SITENAME}} fod ar ei hôl hi.",
 'resetprefs' => "Clirio'r darpar newidiadau",
 'restoreprefs' => 'Adfer yr holl osodiadau diofyn',
 'prefs-editing' => 'Golygu',
-'prefs-edit-boxsize' => 'Maint y blwch testun.',
 'rows' => 'Rhesi:',
 'columns' => 'Colofnau:',
 'searchresultshead' => 'Chwilio',
@@ -1246,9 +1250,6 @@ Cofiwch y gall mynegeion Google o gynnwys {{SITENAME}} fod ar ei hôl hi.",
 'recentchangesdays-max' => '(hyd at $1 {{PLURAL:$1||diwrnod|ddiwrnod|diwrnod|diwrnod|diwrnod}})',
 'recentchangescount' => "Nifer y golygiadau i'w dangos yn ddiofyn:",
 'prefs-help-recentchangescount' => 'Mae hwn yn cynnwys newidiadau diweddar, hanesion tudalennau, a logiau.',
-'prefs-help-watchlist-token' => "Gallwch gynhyrchu porthiant RSS ar gyfer eich rhestr wylio drwy osod allwedd gudd yn y blwch hwn.
-Gall unrhywun sy'n gwybod yr allwedd ddarllen eich rhestr wylio, felly gofalwch ddewis allwedd ddiogel.
-Dyma allwedd wedi ei chreu ar hap y gallwch ei defnyddio: $1",
 'savedprefs' => 'Mae eich dewisiadau wedi cael eu cadw.',
 'timezonelegend' => 'Ardal amser:',
 'localtime' => 'Amser lleol:',
@@ -1279,7 +1280,6 @@ Dyma allwedd wedi ei chreu ar hap y gallwch ei defnyddio: $1",
 'prefs-reset-intro' => "Gallwch ddefnyddio'r dudalen hon i ailosod eich dewisiadau i'r rhai diofyn.
 Ni allwch ddadwneud y weithred hon.",
 'prefs-emailconfirm-label' => "Cadarnhau'r e-bost:",
-'prefs-textboxsize' => 'Maint y ffenestr olygu',
 'youremail' => 'Eich cyfeiriad e-bost',
 'username' => '{{GENDER:$1|Enw defnyddiwr}}:',
 'uid' => '{{GENDER:$1|ID y defnyddiwr}}:',
@@ -1310,7 +1310,9 @@ Mae'r wybodaeth hon ar gael i'r cyhoedd.",
 'prefs-signature' => 'Llofnod',
 'prefs-dateformat' => 'Fformat dyddiad',
 'prefs-timeoffset' => 'Atred amser',
-'prefs-advancedediting' => 'Dewisiadau uwch',
+'prefs-advancedediting' => 'Cyffredinol',
+'prefs-editor' => 'Golygydd',
+'prefs-preview' => 'Rhagolwg',
 'prefs-advancedrc' => 'Dewisiadau uwch',
 'prefs-advancedrendering' => 'Dewisiadau uwch',
 'prefs-advancedsearchoptions' => 'Dewisiadau uwch',
@@ -1346,6 +1348,7 @@ Mae'r wybodaeth hon ar gael i'r cyhoedd.",
 'userrights-changeable-col' => 'Grwpiau y gallwch eu newid',
 'userrights-unchangeable-col' => 'Grwpiau na allwch eu newid',
 'userrights-conflict' => 'Gwrthdaro gyda hawliau defnyddiwr! Gwnewch eich newidiadau eto.',
+'userrights-removed-self' => "Rydych wedi llwyddo rhoi'r gorau i'ch galluoedd. Gan hynny, nid ydych yn cael myned i'r dudalen hon bellach.",
 
 # Groups
 'group' => 'Grŵp:',
@@ -1389,7 +1392,7 @@ Mae'r wybodaeth hon ar gael i'r cyhoedd.",
 'right-reupload-shared' => "Uwchlwytho ffeil ar wici lleol, gyda'r un teitl â ffeil ar y storfa cyfrannol",
 'right-upload_by_url' => 'Uwchlwytho ffeil oddi ar gyfeiriad URL',
 'right-purge' => 'Carthu celc y safle o ryw dudalen heb gadarnhau',
-'right-autoconfirmed' => 'Golygu tudalennau sydd wedi eu lled-ddiogelu',
+'right-autoconfirmed' => 'Bod heb gyfyngiad ar gyflymder yn seiliedig ar IP',
 'right-bot' => 'Cael ei drin fel proses awtomataidd',
 'right-nominornewtalk' => "Gallu dewis peidio â derbyn hysbysiad bod gennych neges newydd pan ddigwydd mân newidiadau i'ch tudalen sgwrs",
 'right-apihighlimits' => 'Defnyddio terfynau uwch mewn ymholiadau API',
@@ -1410,12 +1413,20 @@ Mae'r wybodaeth hon ar gael i'r cyhoedd.",
 'right-ipblock-exempt' => 'Mynd heibio i flociau IP, blociau awtomatig a blociau amrediad',
 'right-proxyunbannable' => 'Mynd heibio i flociau awtomatig gan weinyddion dirprwyol',
 'right-unblockself' => 'Dad-flocio eu hunain',
-'right-protect' => 'Newid lefelau diogelu a golygu tudalennau wedi eu diogelu',
-'right-editprotected' => 'Golygu tudalennau sydd wedi eu diogelu (ond bod hebddynt ddiogelu sgydol)',
+'right-protect' => 'Newid lefelau diogelu a golygu tudalennau a sgydol-ddiogelwyd',
+'right-editprotected' => 'Golygu tudalennau sydd wedi eu diogelu ond mai "{{int:protect-level-sysop}}"',
+'right-editsemiprotected' => 'Golygu tudalennau sydd wedi eu diogelu, ond "{{int:protect-level-autoconfirmed}}"',
 'right-editinterface' => "Golygu'r rhyngwyneb",
 'right-editusercssjs' => 'Golygu ffeiliau CSS a JS yn perthyn i ddefnyddwyr eraill',
 'right-editusercss' => 'Golygu ffeiliau CSS yn perthyn i ddefnyddwyr eraill',
 'right-edituserjs' => 'Golygu ffeiliau JS yn perthyn i ddefnyddwyr eraill',
+'right-editmyusercss' => 'Golygu eich ffeiliau defnyddiwr CSS eich hunan.',
+'right-editmyuserjs' => 'Golygu eich ffeiliau defnyddiwr JavaScript eich hunan.',
+'right-viewmywatchlist' => 'Gweld eich rhestr wylio',
+'right-editmywatchlist' => 'Golygu eich rhestr wylio. Sylwer bod rhai gweithredoedd yn arwain at ychwanegu tudalennau hyd yn oed heb yr hawl hon.',
+'right-viewmyprivateinfo' => 'Gweld eich manylion personol preifat eich hunan (e.e. cyfeiriad ebost, enw cywir)',
+'right-editmyprivateinfo' => 'Golygu eich manylion personol preifat eich hunan (e.e. cyfeiriad ebost, enw cywir)',
+'right-editmyoptions' => 'Golygu eich dewisiadau',
 'right-rollback' => 'Gwrthdroi golygiadau defnyddiwr diwethaf rhyw dudalen yn sydyn',
 'right-markbotedits' => 'Marcio golygiadau wedi eu gwrthdroi yn olygiadau bot',
 'right-noratelimit' => 'Bod heb gyfyngiad ar gyflymder eich gweithredoedd',
@@ -1477,12 +1488,17 @@ Mae'r wybodaeth hon ar gael i'r cyhoedd.",
 'action-userrights-interwiki' => 'golygu galluoedd y defnyddwyr ar wicïau eraill',
 'action-siteadmin' => "cloi neu ddatgloi'r databas",
 'action-sendemail' => 'anfon e-bost',
+'action-editmywatchlist' => 'golygu eich rhestr wylio',
+'action-viewmywatchlist' => 'gweld eich rhestr wylio',
+'action-viewmyprivateinfo' => 'gweld eich manylion personol preifat',
+'action-editmyprivateinfo' => 'golygu eich manylion personol preifat',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|newid|newid|newid|newid|newid|o newidiadau}}',
 'recentchanges' => 'Newidiadau diweddar',
 'recentchanges-legend' => "Dewisiadau'r newidiadau diweddar",
 'recentchanges-summary' => "Dilynwch y newidiadau diweddaraf i'r wici ar y dudalen hon.",
+'recentchanges-noresult' => "Ni chafwyd unrhyw newidiadau yn ystod y cyfnod oedd yn cyfateb i'r gofyniad.",
 'recentchanges-feed-description' => "Dilynwch y newidiadau diweddaraf i'r wici gyda'r porthiant hwn.",
 'recentchanges-label-newpage' => 'Dechreuwyd tudalen newydd wrth olygu',
 'recentchanges-label-minor' => 'Mân olygiad',
@@ -1519,7 +1535,6 @@ Mae'r wybodaeth hon ar gael i'r cyhoedd.",
 'recentchangeslinked-feed' => 'Newidiadau perthnasol',
 'recentchangeslinked-toolbox' => 'Newidiadau perthnasol',
 'recentchangeslinked-title' => 'Newidiadau cysylltiedig â "$1"',
-'recentchangeslinked-noresult' => 'Ni chafwyd unrhyw newidiadau i dudalennau cysylltiedig yn ystod cyfnod yr ymholiad.',
 'recentchangeslinked-summary' => "Mae'r dudalen arbennig hon yn dangos y newidiadau diweddaraf i'r tudalennau hynny y mae cyswllt yn arwain atynt ar y dudalen a enwir (neu newidiadau i dudalennau sy'n aelodau o'r categori a enwir). Dangosir tudalennau sydd ar [[Special:Watchlist|eich rhestr wylio]] mewn print '''trwm'''.",
 'recentchangeslinked-page' => 'Tudalen:',
 'recentchangeslinked-to' => "Dangos newidiadau i'r tudalennau â chyswllt arnynt sy'n arwain at y dudalen a enwir",
@@ -1530,7 +1545,7 @@ Mae'r wybodaeth hon ar gael i'r cyhoedd.",
 'reuploaddesc' => "Dileu'r uwchlwytho a dychwelyd i'r ffurflen uwchlwytho",
 'upload-tryagain' => "Uwchlwyther disgrifiad newydd o'r ffeil",
 'uploadnologin' => 'Nid ydych wedi mewngofnodi',
-'uploadnologintext' => "Mae'n rhaid i chi [[Special:UserLogin|fewngofnodi]] er mwyn uwchlwytho ffeiliau.",
+'uploadnologintext' => "Mae'n rhaid $1 er mwyn uwchlwytho ffeiliau.",
 'upload_directory_missing' => "Mae'r cyfeiriadur uwchlwytho ($1) yn eisiau, ac ni allai'r gweinydd gwe ei greu.",
 'upload_directory_read_only' => "Ni all y gweinydd ysgrifennu i'r cyfeiriadur uwchlwytho ($1).",
 'uploaderror' => "Gwall tra'n uwchlwytho ffeil",
@@ -2156,7 +2171,6 @@ Pan fydd y dudalen hon, neu ei thudalen sgwrs, yn newid, fe fyddant yn ymddangos
 'unwatchthispage' => 'Stopio gwylio',
 'notanarticle' => 'Ddim yn erthygl/ffeil',
 'notvisiblerev' => 'Y diwygiad wedi cael ei ddileu',
-'watchnochange' => "Ni olygwyd dim o'r erthyglau yr ydych yn cadw golwg arnynt yn ystod y cyfnod uchod.",
 'watchlist-details' => '{{PLURAL:$1|Nid oes dim tudalennau|Mae $1 dudalen|Mae $1 dudalen|Mae $1 tudalen|Mae $1 thudalen|Mae $1 o dudalennau}} ar eich rhestr wylio, heb gynnwys tudalennau sgwrs.',
 'wlheader-enotif' => 'Galluogwyd hysbysiadau trwy e-bost.',
 'wlheader-showupdated' => "Mae tudalennau sydd wedi newid ers i chi eu gweld ddiwethaf wedi'u '''hamlygu'''.",
@@ -2265,7 +2279,7 @@ mae rhywun arall eisoes wedi dadwneud y golygiad neu wedi golygu'r dudalen.
 [[User:$3|$3]] ([[User talk:$3|Sgwrs]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]) a wnaeth y golygiad diwethaf.",
 'editcomment' => "Crynodeb y golygiad oedd: \"''\$1''\".",
 'revertpage' => 'Wedi gwrthdroi golygiadau gan [[Special:Contributions/$2|$2]] ([[User talk:$2|Sgwrs]]); wedi adfer y golygiad diweddaraf gan [[User:$1|$1]]',
-'revertpage-nouser' => 'Wedi gwrthdroi golygiadau gan (enw wedi ei guddio); wedi adfer y golygiad diweddaraf gan [[User:$1|$1]]',
+'revertpage-nouser' => 'Wedi gwrthdroi golygiadau gan ddefnyddiwr cudd; wedi adfer y golygiad diweddaraf gan [[User:$1|$1]]',
 'rollback-success' => "Gwrthdrowyd y golygiadau gan $1;
 wedi gwrthdroi i'r golygiad olaf gan $2.",
 
@@ -3643,7 +3657,6 @@ Gallwch hefyd [[Special:EditWatchlist|ddefnyddio\'r rhestr arferol]].',
 'version-other' => 'Arall',
 'version-mediahandlers' => 'Trinyddion cyfryngau',
 'version-hooks' => 'Bachau',
-'version-extension-functions' => 'Ffwythiannau estyn',
 'version-parser-extensiontags' => 'Tagiau estyn dosrannydd',
 'version-parser-function-hooks' => 'Bachau ffwythiant dosrannu',
 'version-hook-name' => "Enw'r bachyn",
@@ -3725,6 +3738,7 @@ Dylech fod wedi derbyn [{{SERVER}}{{SCRIPTPATH}}/COPYING gopi o GNU General Publ
 'tags' => 'Tagiau newidiadau',
 'tag-filter' => 'Hidl [[Special:Tags|tagiau]]:',
 'tag-filter-submit' => 'Hidlo',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Tag|Tagiau}}]]: $2)',
 'tags-title' => 'Tagiau',
 'tags-intro' => "Dyma restr o'r tagiau y mae'r meddalwedd yn defnyddio i farcio golygiad, ynghyd â'r rhesymau dros eu defnyddio.",
 'tags-tag' => "Enw'r tag",
index 5ccd8e8..fa68f1c 100644 (file)
  * @author Aputtu
  * @author Boivie
  * @author Byrial
+ * @author Cgtdk
  * @author Christian List
  * @author EPO
  * @author Emilkris33
  * @author Froztbyte
+ * @author Geitost
  * @author Gorbi
  * @author H92
  * @author HenrikKbh
@@ -40,6 +42,7 @@
  * @author Qaqqalik
  * @author Remember the dot
  * @author Sarrus
+ * @author Simeondahl
  * @author Sir48
  * @author Slomox
  * @author Steenth
@@ -391,6 +394,7 @@ $messages = array(
 'create-this-page' => 'Opret denne side',
 'delete' => 'Slet',
 'deletethispage' => 'Slet side',
+'undeletethispage' => 'Gendan denne side',
 'undelete_short' => 'Fortryd sletning af {{PLURAL:$1|én version|$1 versioner}}',
 'viewdeleted_short' => 'Vis {{PLURAL:$1|en slettet redigering|$1 slettede redigeringer}}',
 'protect' => 'Beskyt',
@@ -444,7 +448,6 @@ $1',
 'disclaimers' => 'Forbehold',
 'disclaimerpage' => 'Project:Generelle forbehold',
 'edithelp' => 'Hjælp til redigering',
-'edithelppage' => 'Help:Hvordan redigerer jeg en side',
 'helppage' => 'Help:Hjælp',
 'mainpage' => 'Forside',
 'mainpage-description' => 'Forside',
@@ -590,6 +593,10 @@ $2',
 'namespaceprotected' => 'Du har ikke rettigheder til at redigere sider i $1-navnerummet.',
 'customcssprotected' => 'Du har ikke tilladelse til at redigere denne CSS-side, da den indeholder en anden brugers personlige indstillinger.',
 'customjsprotected' => 'Du har ikke tilladelse til at redigere denne JavaScript-side, da den indeholder en anden brugers personlige indstillinger.',
+'mycustomcssprotected' => 'Du har ikke rettigheder til at redigere denne CSS-side.',
+'mycustomjsprotected' => 'Du har ikke rettigheder til at redigere denne JavaScript-side.',
+'myprivateinfoprotected' => 'Du har ikke tilladelse til at redigere dine private oplysninger.',
+'mypreferencesprotected' => 'Du har ikke tilladelse til at redigere dine præferencer.',
 'ns-specialprotected' => 'Sider i navnerummet {{ns:special}} kan ikke redigeres.',
 'titleprotected' => "Dette sidenavn er beskyttet mod oprettelse af [[User:$1|$1]]. Begrundelsen for beskyttelsen er ''$2''.",
 'filereadonlyerror' => 'Ude af stand til at redigere filen "$1", fordi fildatabasen "$2" er skrivebeskyttet.
@@ -616,6 +623,7 @@ Glem ikke at ændre dine [[Special:Preferences|{{SITENAME}} indstillinger]].',
 'yourname' => 'Dit brugernavn:',
 'userlogin-yourname' => 'Brugernavn',
 'userlogin-yourname-ph' => 'Indtast dit brugernavn',
+'createacct-another-username-ph' => 'Indtast Brugernavn',
 'yourpassword' => 'Din adgangskode:',
 'userlogin-yourpassword' => 'Adgangskode',
 'userlogin-yourpassword-ph' => 'Indtast din adgangskode',
@@ -650,9 +658,11 @@ Glem ikke at ændre dine [[Special:Preferences|{{SITENAME}} indstillinger]].',
 'helplogin-url' => 'Help:Logge på',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hjælp til at logge på]]',
 'createacct-join' => 'Indtast dine oplysninger nedenfor.',
+'createacct-another-join' => 'Angiv den nye kontos oplysninger nedenfor.',
 'createacct-emailrequired' => 'Mailadresse',
 'createacct-emailoptional' => 'Mailadresse (valgfri)',
 'createacct-email-ph' => 'Indtast din mailadresse',
+'createacct-another-email-ph' => 'Indtast e-mail-adresse',
 'createaccountmail' => 'Brug en midlertidig tilfældig adgangskode og send den til e-mailadressen angivet nedenfor',
 'createacct-realname' => 'Dit rigtige navn',
 'createaccountreason' => 'Begrundelse:',
@@ -661,6 +671,7 @@ Glem ikke at ændre dine [[Special:Preferences|{{SITENAME}} indstillinger]].',
 'createacct-captcha' => 'Sikkerhedskontrol',
 'createacct-imgcaptcha-ph' => 'Indtast venligst ovenstående tekst',
 'createacct-submit' => 'Opret din konto',
+'createacct-another-submit' => 'Oprette en anden konto',
 'createacct-benefit-heading' => '{{SITENAME}} laves af mennesker som dig.',
 'createacct-benefit-body1' => '{{PLURAL:$1|redigering|redigeringer}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|side|sider}}',
@@ -720,7 +731,7 @@ Derfor kan besøgende ikke oprette flere kontoer fra denne IP-adresse i øjeblik
 'cannotchangeemail' => 'De email-adresser, der er tilknyttet brugerkontoer, kan ikke ændres på denne wiki.',
 'emaildisabled' => 'Denne hjemmeside kan ikke sende emails.',
 'accountcreated' => 'Brugerkonto oprettet',
-'accountcreatedtext' => 'Brugerkontoen $1 er oprettet.',
+'accountcreatedtext' => 'Brugerkontoen for [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|diskussion]]) er oprettet.',
 'createaccount-title' => 'Opret brugerkonto på {{SITENAME}}',
 'createaccount-text' => 'Nogen har oprettet en konto for din e-post-adresse på {{SITENAME}} ($4) med navnet "$2". Adgangskoden er "$3".
 Du opfordres til at logge ind og ændre adgangskoden med det samme.
@@ -759,11 +770,11 @@ Du har muligvis allerede skiftet din adgangskode eller anmodet om en ny midlerti
 
 # Special:PasswordReset
 'passwordreset' => 'Nulstil adgangskode',
-'passwordreset-text' => 'Udfyld denne formular for at nulstille din adgangskode.',
+'passwordreset-text-one' => 'Udfyld denne formular for at nulstille din adgangskode.',
+'passwordreset-text-many' => '{{PLURAL:$1|Udfyld en af oplysningerne nedenfor for at nulstille din adgangskode.}}',
 'passwordreset-legend' => 'Nulstil adgangskode',
 'passwordreset-disabled' => 'Nulstilling af kodeord er slået fra på denne wiki.',
 'passwordreset-emaildisabled' => 'E-mailfunktioner er slået fra på denne wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Indtast en af de nedenstående oplysninger}}',
 'passwordreset-username' => 'Brugernavn:',
 'passwordreset-domain' => 'Domæne:',
 'passwordreset-capture' => 'Se den resulterende email?',
@@ -998,6 +1009,7 @@ Sletnings- og flytteloggerne for siden er vist nedenfor.',
 Den ser du til at være slettet.',
 'edit-conflict' => 'Redigeringskonflikt.',
 'edit-no-change' => 'Din ændring ignoreredes, fordi der ikke var ændring af teksten.',
+'postedit-confirmation' => 'Din redigering er gemt.',
 'edit-already-exists' => 'En ny side kunne ikke oprettes, fordi den allerede findes.',
 'defaultmessagetext' => 'Standardtekst',
 'content-failed-to-parse' => 'Kunne ikke fortolke $2-indholdet af $1-modellen: $3',
@@ -1062,8 +1074,8 @@ Kontroller venligst sammenligningen herunder for at bekræfte at det er hvad du
 version, (forrige) = forskel til den forrige version, M = mindre ændring',
 'history-fieldset-title' => 'Bladr i historikken efter dato',
 'history-show-deleted' => 'Kun slettede',
-'histfirst' => 'Ã\86ldste',
-'histlast' => 'Nyeste',
+'histfirst' => 'ældste',
+'histlast' => 'nyeste',
 'historysize' => '($1 {{PLURAL:$1|Byte|Bytes}})',
 'historyempty' => '(tom)',
 
@@ -1241,7 +1253,6 @@ Detaljer kan findes i [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}
 'searchmenu-legend' => 'Søgemuligheder',
 'searchmenu-exists' => "'''Der er en side med navnet \"[[:\$1]]\" på denne wiki'''",
 'searchmenu-new' => "'''Opret siden \"[[:\$1]]\" i denne wiki'''",
-'searchhelp-url' => 'Help:Hjælp',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Vis alle sider som begynder med dette præfiks]]',
 'searchprofile-articles' => 'Indholdssider',
 'searchprofile-project' => 'Hjælpe- og projektsider',
@@ -1317,7 +1328,6 @@ Du kan prøve at bruge \"all:\" som præfiks for at søge i alt indhold (inkl. d
 'resetprefs' => 'Gendan indstillinger',
 'restoreprefs' => 'Gendan alle standardindstillinger',
 'prefs-editing' => 'Redigering',
-'prefs-edit-boxsize' => 'Størrelse på redigeringsvinduet.',
 'rows' => 'Rækker',
 'columns' => 'Kolonner',
 'searchresultshead' => 'Søgeresultater',
@@ -1328,9 +1338,6 @@ Du kan prøve at bruge \"all:\" som præfiks for at søge i alt indhold (inkl. d
 'recentchangesdays-max' => '(maks. $1 {{PLURAL:$1|dag|dage}})',
 'recentchangescount' => 'Antal redigeringer som skal vises som standard:',
 'prefs-help-recentchangescount' => 'Det gælder for seneste ændringer, historikker og logger.',
-'prefs-help-watchlist-token' => 'Hvis du udfylder dette felt med en hemmelig værdi, vil der laves et RSS-feed for din overvågningsliste.
-Alle som kender nøglen i feltet vil være i stand til at læse din overvågningsliste, så vælg en sikker værdi.
-Her er en tilfældig genereret værdi som du kan bruge: $1',
 'savedprefs' => 'Dine indstillinger er blevet gemt.',
 'timezonelegend' => 'Tidszone:',
 'localtime' => 'Lokaltid:',
@@ -1361,7 +1368,6 @@ Her er en tilfældig genereret værdi som du kan bruge: $1',
 'prefs-reset-intro' => 'Du kan bruge denne side til at tilbagestille alle dine indstillinger til standardindstillingerne.
 Det kan ikke gøres om.',
 'prefs-emailconfirm-label' => 'Bekræftelse af e-mail:',
-'prefs-textboxsize' => 'Størrelse på redigeringsvindue',
 'youremail' => 'Din e-mailadresse:',
 'username' => '{{GENDER:$1|Brugernavn}}:',
 'uid' => '{{GENDER:$1|Brugernummer}}:',
@@ -1391,7 +1397,8 @@ Hvis du vælger at oplyse dit navn, vil det blive brugt til at tilskrive dig dit
 'prefs-signature' => 'Signatur',
 'prefs-dateformat' => 'Formatering af datoer',
 'prefs-timeoffset' => 'Tidsforskel',
-'prefs-advancedediting' => 'Avancerede indstillinger',
+'prefs-advancedediting' => 'Generelle',
+'prefs-preview' => 'Forhåndsvisning',
 'prefs-advancedrc' => 'Avancerede indstillinger',
 'prefs-advancedrendering' => 'Avancerede indstillinger',
 'prefs-advancedsearchoptions' => 'Avancerede indstillinger',
@@ -1427,6 +1434,7 @@ Hvis du vælger at oplyse dit navn, vil det blive brugt til at tilskrive dig dit
 'userrights-changeable-col' => 'Redigerbare grupper',
 'userrights-unchangeable-col' => 'Uredigerbare grupper',
 'userrights-conflict' => 'Brugerrettighedskonflikt. Tilføj venligst dine ændringer påny.',
+'userrights-removed-self' => 'Du har fjernet dine egne rettigheder. Du har derfor ikke længere adgang til denne side.',
 
 # Groups
 'group' => 'Gruppe:',
@@ -1497,6 +1505,9 @@ Hvis du vælger at oplyse dit navn, vil det blive brugt til at tilskrive dig dit
 'right-editusercssjs' => 'Ændre andre brugeres JS og CSS filer',
 'right-editusercss' => 'Ændre andre brugeres CSS filer',
 'right-edituserjs' => 'Ændre andre brugeres JS filer',
+'right-editmyusercss' => 'Redigere dine egne CSS-filer',
+'right-editmyuserjs' => 'Redigere dine egne JavaScript-filer',
+'right-viewmywatchlist' => 'Se din egen overvågningsliste',
 'right-rollback' => 'Hurtig gendannelse af alle redigeringer foretaget af den seneste bruger',
 'right-markbotedits' => 'Markere gendannelser som ændringer foretaget af en robot',
 'right-noratelimit' => 'Upåvirket af hastighedsgrænser',
@@ -1558,6 +1569,9 @@ Hvis du vælger at oplyse dit navn, vil det blive brugt til at tilskrive dig dit
 'action-userrights-interwiki' => 'ændre brugerrettigheder for brugere på andre wikier',
 'action-siteadmin' => 'låse eller låse databasen op',
 'action-sendemail' => 'sende email',
+'action-editmywatchlist' => 'rediger din overvågningsliste',
+'action-viewmywatchlist' => 'se din overvågningsliste',
+'action-viewmyprivateinfo' => 'se din private information',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|ændring|ændringer}}',
@@ -1601,7 +1615,6 @@ Hvis du vælger at oplyse dit navn, vil det blive brugt til at tilskrive dig dit
 'recentchangeslinked-feed' => 'Relaterede ændringer',
 'recentchangeslinked-toolbox' => 'Relaterede ændringer',
 'recentchangeslinked-title' => 'Ændringer der relaterer til $1',
-'recentchangeslinked-noresult' => 'I det valgte tidsrum blev der ikke foretaget ændringer på sider der henvises til.',
 'recentchangeslinked-summary' => "Denne specialside viser de seneste ændringer på de sider der henvises til. Sider på din overvågningsliste er vist med '''fed''' skrift.",
 'recentchangeslinked-page' => 'Side:',
 'recentchangeslinked-to' => 'Vis ændringer i sider der henviser til den angivne side i stedet',
@@ -1741,9 +1754,9 @@ $1',
 'upload-proto-error-text' => 'Adressen skal begynde med <code>http://</code> eller <code>ftp://</code>.',
 'upload-file-error' => 'Intern fejl',
 'upload-file-error-text' => 'Ved oprettelse af en midlertidig fil på serveren, er der sket en fejl.
-Informer venligst en [[Special:ListUsers/sysop|systemadministrator]].',
+Informer venligst en [[Special:ListUsers/sysop|administrator]].',
 'upload-misc-error' => 'Ukendt fejl ved upload',
-'upload-misc-error-text' => 'Ved upload er der sket en ukendt fejl. Kontroller adressen for fejl, sidens onlinestatus og forsøg igen. Hvis problemet fortsætter, informeres en system-administrator.',
+'upload-misc-error-text' => 'Ved upload er der sket en ukendt fejl. Kontroller adressen for fejl, sidens onlinestatus og forsøg igen. Hvis problemet fortsætter, informeres en [[Special:ListUsers/sysop|administrator]].',
 'upload-too-many-redirects' => "URL'en indeholdt for mange omdirigeringer",
 'upload-unknown-size' => 'Ukendt størrelse',
 'upload-http-error' => 'Der opstod en HTTP-fejl: $1',
@@ -2244,7 +2257,6 @@ Fremtidige ændringer af denne side og dens tilknyttede diskussionsside vil bliv
 'unwatchthispage' => 'Fjern overvågning',
 'notanarticle' => 'Ikke en artikel',
 'notvisiblerev' => 'Versionen er blevet slettet',
-'watchnochange' => 'Ingen af siderne i din overvågningsliste er ændret i den valgte periode.',
 'watchlist-details' => 'Du har $1 {{PLURAL:$1|side|sider}} på din overvågningsliste (ekskl. diskussionssider).',
 'wlheader-enotif' => 'E-mail-underretning er slået til.',
 'wlheader-showupdated' => "Sider, der er ændret siden dit sidste besøg, er vist med '''fed skrift'''.",
@@ -2492,7 +2504,7 @@ $1',
 'mycontris' => 'Bidrag',
 'contribsub2' => 'For $1 ($2)',
 'nocontribs' => 'Ingen ændringer er fundet som opfylder disse kriterier.',
-'uctop' => ' (seneste)',
+'uctop' => '(seneste)',
 'month' => 'Måned:',
 'year' => 'År:',
 
@@ -3682,7 +3694,7 @@ Bekræft venligst, at du virkelig vil oprette denne side igen.",
 
 # Friendlier slave lag warnings
 'lag-warn-normal' => 'Ændringer som er nyere end {{PLURAL:$1|et sekund|$1 sekunder}}, vises muligvis ikke i denne liste.',
-'lag-warn-high' => 'Grundet stor belastning af databaseserveren, vil ændringer der er nyere end {{PLURAL:$1|et sekund|$1 sekunder}} måske ikke blive vist i denne liste.',
+'lag-warn-high' => 'Grundet stor belastning af databaseserveren vil ændringer der er nyere end {{PLURAL:$1|et sekund|$1 sekunder}} måske ikke blive vist i denne liste.',
 
 # Watchlist editor
 'watchlistedit-numitems' => 'Din overvågningsliste indeholder {{PLURAL:$1|1 side|$1 sider}}, diskussionssider fraregnet.',
@@ -3729,7 +3741,6 @@ Du kan også [[Special:EditWatchlist|bruge standard editoren]].',
 'version-other' => 'Andet',
 'version-mediahandlers' => 'Specialhåndtering af mediefiler',
 'version-hooks' => 'Funktionstilføjelser',
-'version-extension-functions' => 'Udvidelsesfunktioner',
 'version-parser-extensiontags' => 'Tilføjede tags',
 'version-parser-function-hooks' => 'Oversætter-funktioner',
 'version-hook-name' => 'Navn',
index 413bba4..df56666 100644 (file)
@@ -44,6 +44,7 @@
  * @author MichaelFrey
  * @author MtaÄ
  * @author Omnipaedista
+ * @author Patrick87
  * @author Pill
  * @author Purodha
  * @author Raimond Spekking (Raymond) <raimond.spekking@gmail.com> since January 2007
@@ -54,6 +55,7 @@
  * @author Rillke
  * @author SVG
  * @author Saibo
+ * @author Se4598
  * @author Sebastian Wallroth
  * @author Spacebirdy
  * @author Srhat
@@ -550,8 +552,8 @@ $messages = array(
 'category-file-count' => '{{PLURAL:$2|Diese Kategorie enthält folgende Datei:|{{PLURAL:$1|Folgende Datei ist eine von insgesamt $2 Dateien in dieser Kategorie:|Es werden $1 von insgesamt $2 Dateien in dieser Kategorie angezeigt:}}}}',
 'category-file-count-limited' => 'Folgende {{PLURAL:$1|Datei ist|$1 Dateien sind}} in dieser Kategorie enthalten:',
 'listingcontinuesabbrev' => '(Fortsetzung)',
-'index-category' => 'Indizierte Seiten',
-'noindex-category' => 'Nichtindizierte Seiten',
+'index-category' => 'Indexierte Seiten',
+'noindex-category' => 'Nichtindexierte Seiten',
 'broken-file-category' => 'Seiten mit defekten Dateilinks',
 
 'about' => 'Über',
@@ -603,7 +605,7 @@ $messages = array(
 'go' => 'Ausführen',
 'searcharticle' => 'Seite',
 'history' => 'Versionen',
-'history_short' => 'Versionen/Autoren',
+'history_short' => 'Versionsgeschichte',
 'updatedmarker' => 'Änderung seit meinem letzten Besuch',
 'printableversion' => 'Druckversion',
 'permalink' => 'Permanenter Link',
@@ -615,6 +617,7 @@ $messages = array(
 'create-this-page' => 'Seite erstellen',
 'delete' => 'Löschen',
 'deletethispage' => 'Diese Seite löschen',
+'undeletethispage' => 'Diese Seite wiederherstellen',
 'undelete_short' => '{{PLURAL:$1|1 Version|$1 Versionen}} wiederherstellen',
 'viewdeleted_short' => '{{PLURAL:$1|Eine gelöschte Version|$1 gelöschte Versionen}} ansehen',
 'protect' => 'Schützen',
@@ -668,7 +671,6 @@ $1',
 'disclaimers' => 'Impressum',
 'disclaimerpage' => 'Project:Impressum',
 'edithelp' => 'Bearbeitungshilfe',
-'edithelppage' => 'Help:Bearbeiten',
 'helppage' => 'Help:Inhaltsverzeichnis',
 'mainpage' => 'Hauptseite',
 'mainpage-description' => 'Hauptseite',
@@ -816,6 +818,10 @@ $2',
 'namespaceprotected' => "Du hast nicht die erforderliche Berechtigung, um Seiten im Namensraum '''$1''' bearbeiten zu können.",
 'customcssprotected' => 'Du hast nicht die Berechtigung, diese CSS enthaltende Seite zu bearbeiten, da sie die persönlichen Einstellungen eines anderen Benutzers enthält.',
 'customjsprotected' => 'Du hast nicht die Berechtigung, diese JavaScript enthaltende Seite zu bearbeiten, da es sich hierbei um die persönlichen Einstellungen eines anderen Benutzers handelt.',
+'mycustomcssprotected' => 'Du hast keine Berechtigung, diese CSS-Seite zu bearbeiten.',
+'mycustomjsprotected' => 'Du hast keine Berechtigung, diese JavaScript-Seite zu bearbeiten.',
+'myprivateinfoprotected' => 'Du hast keine Berechtigung, deine privaten Informationen zu bearbeiten.',
+'mypreferencesprotected' => 'Du hast keine Berechtigung, deine Einstellungen zu bearbeiten.',
 'ns-specialprotected' => 'Spezialseiten können nicht bearbeitet werden.',
 'titleprotected' => "Eine Seite mit diesem Namen kann nicht angelegt werden.
 Die Sperre wurde durch [[User:$1|$1]] mit der Begründung ''„$2“'' eingerichtet.",
@@ -843,6 +849,7 @@ Vergiss nicht, deine [[Special:Preferences|{{SITENAME}}-Einstellungen]] zu ände
 'yourname' => 'Benutzername:',
 'userlogin-yourname' => 'Benutzername',
 'userlogin-yourname-ph' => 'Gib deinen Benutzernamen ein',
+'createacct-another-username-ph' => 'Benutzername',
 'yourpassword' => 'Passwort:',
 'userlogin-yourpassword' => 'Passwort',
 'userlogin-yourpassword-ph' => 'Gib dein Passwort ein',
@@ -867,7 +874,7 @@ Vergiss nicht, deine [[Special:Preferences|{{SITENAME}}-Einstellungen]] zu ände
 'notloggedin' => 'Nicht angemeldet',
 'userlogin-noaccount' => 'Du hast noch kein Benutzerkonto?',
 'userlogin-joinproject' => '{{SITENAME}} beitreten',
-'nologin' => "Du hast kein Benutzerkonto? '''$1'''.",
+'nologin' => 'Du hast kein Benutzerkonto? $1.',
 'nologinlink' => 'Neues Benutzerkonto anlegen',
 'createaccount' => 'Benutzerkonto anlegen',
 'gotaccount' => "Du hast bereits ein Benutzerkonto? '''$1'''.",
@@ -877,17 +884,20 @@ Vergiss nicht, deine [[Special:Preferences|{{SITENAME}}-Einstellungen]] zu ände
 'helplogin-url' => 'Help:Anmelden',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hilfe beim Anmelden]]',
 'createacct-join' => 'Gib unten deine Informationen ein.',
+'createacct-another-join' => 'Gib unten die Informationen des neuen Benutzerkontos ein.',
 'createacct-emailrequired' => 'E-Mail-Adresse',
 'createacct-emailoptional' => 'E-Mail-Adresse (optional)',
 'createacct-email-ph' => 'Gib deine E-Mail-Adresse ein',
+'createacct-another-email-ph' => 'E-Mail-Adresse',
 'createaccountmail' => 'Ein temporäres Zufallspasswort verwenden und an die unten angegebene E-Mail-Adresse versenden',
 'createacct-realname' => 'Bürgerlicher Name (optional)',
 'createaccountreason' => 'Grund:',
 'createacct-reason' => 'Begründung',
-'createacct-reason-ph' => 'Warum du ein anderes Benutzerkonto erstellst',
+'createacct-reason-ph' => 'Warum erstellst du ein anderes Benutzerkonto?',
 'createacct-captcha' => 'Sicherheitsprüfung',
 'createacct-imgcaptcha-ph' => 'Gib den Text ein, den du oben siehst.',
 'createacct-submit' => 'Dein Benutzerkonto erstellen',
+'createacct-another-submit' => 'Ein anderes Benutzerkonto erstellen',
 'createacct-benefit-heading' => '{{SITENAME}} wird von Leuten wie dir erstellt.',
 'createacct-benefit-body1' => '{{PLURAL:$1|Bearbeitung|Bearbeitungen}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|Seite|Seiten}}',
@@ -946,7 +956,7 @@ Besucher, die diese IP-Adresse verwenden, können momentan keine Benutzerkonten
 'cannotchangeemail' => 'E-Mail-Adressen können in diesem Wiki nicht geändert werden.',
 'emaildisabled' => 'Über diese Website können keine E-Mails versandt werden.',
 'accountcreated' => 'Benutzerkonto erstellt',
-'accountcreatedtext' => 'Das Benutzerkonto $1 wurde eingerichtet.',
+'accountcreatedtext' => 'Das Benutzerkonto für [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|Diskussion]]) wurde eingerichtet.',
 'createaccount-title' => 'Erstellung eines Benutzerkontos für {{SITENAME}}',
 'createaccount-text' => 'Es wurde für dich ein Benutzerkonto „$2“ auf {{SITENAME}} ($4) erstellt. Das automatisch generierte Passwort für „$2“ ist „$3“. Du solltest dich nun anmelden und das Passwort ändern.
 
@@ -984,11 +994,11 @@ Möglicherweise hast du dein Passwort bereits erfolgreich geändert oder ein neu
 
 # Special:PasswordReset
 'passwordreset' => 'Passwort zurücksetzen',
-'passwordreset-text' => 'Bitte dieses Formular ausfüllen, um dein Passwort zurückzusetzen.',
+'passwordreset-text-one' => 'Fülle dieses Formular aus, um dein Passwort zurückzusetzen.',
+'passwordreset-text-many' => '{{PLURAL:$1|Füll eines der Felder aus, um dein Passwort zurückzusetzen.}}',
 'passwordreset-legend' => 'Passwort zurücksetzen',
 'passwordreset-disabled' => 'Das Zurücksetzen von Passwörtern wurde in diesem Wiki deaktiviert.',
 'passwordreset-emaildisabled' => 'Die E-Mail-Funktionen wurden auf diesem Wiki deaktiviert.',
-'passwordreset-pretext' => '{{PLURAL:$1||Gib eines der folgenden Daten ein.}}',
 'passwordreset-username' => 'Benutzername:',
 'passwordreset-domain' => 'Domain:',
 'passwordreset-capture' => 'Die E-Mail-Nachricht ansehen?',
@@ -1029,6 +1039,19 @@ Temporäres Passwort: $2',
 'changeemail-submit' => 'E-Mail-Adresse ändern',
 'changeemail-cancel' => 'Abbrechen',
 
+# Special:ResetTokens
+'resettokens' => 'Tokens zurücksetzen',
+'resettokens-text' => 'Du kannst Tokens zurücksetzen, die dir den Zugriff auf bestimmte private Daten ermöglichen, die mit deinem Benutzerkonto hier verknüpft sind.
+
+Du 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.',
+'resettokens-legend' => 'Tokens zurücksetzen',
+'resettokens-tokens' => 'Tokens:',
+'resettokens-token-label' => '$1 (aktueller Wert: $2)',
+'resettokens-watchlist-token' => 'Beobachtungslisten-Webfeed-Token',
+'resettokens-done' => 'Tokens zurückgesetzt.',
+'resettokens-resetbutton' => 'Ausgewählte Tokens zurücksetzen',
+
 # Edit page toolbar
 'bold_sample' => 'Fetter Text',
 'bold_tip' => 'Fetter Text',
@@ -1110,7 +1133,7 @@ Vermutlich wurde er verschoben oder gelöscht, nachdem du die Seite aufgerufen h
 Das Passwort für dieses neue Benutzerkonto kann auf der Spezialseite „[[Special:ChangePassword|Passwort ändern]]“ geändert werden.',
 'newarticle' => '(Neu)',
 'newarticletext' => "Du bist einem Link zu einer Seite gefolgt, die nicht vorhanden ist.
-Um diese Seite anzulegen, trage deinen Text in das untenstehende Bearbeitungsfeld ein (siehe die [[{{MediaWiki:Helppage}}|Hilfeseite]] für weitere Informationen).
+Um diese Seite anzulegen, trage deinen Text in das untenstehende Bearbeitungsfeld ein (weitere Informationen auf der [[{{MediaWiki:Helppage}}|Hilfeseite]]).
 Sofern du fälschlicherweise hier bist, klicke auf die Schaltfläche '''Zurück''' deines Browsers.",
 'anontalkpagetext' => "----''Diese Seite dient dazu, einem nicht angemeldeten Benutzer Nachrichten zu hinterlassen. Es wird seine IP-Adresse zur Identifizierung verwendet. IP-Adressen können von mehreren Benutzern gemeinsam verwendet werden. Wenn du mit den Kommentaren auf dieser Seite nichts anfangen kannst, richten sie sich vermutlich an einen früheren Inhaber deiner IP-Adresse und du kannst sie ignorieren. Du kannst dir auch ein [[Special:UserLogin/signup|Benutzerkonto erstellen]] oder dich [[Special:UserLogin|anmelden]], um künftig Verwechslungen mit anderen anonymen Benutzern zu vermeiden.''",
 'noarticletext' => 'Diese Seite enthält momentan noch keinen Text.
@@ -1136,7 +1159,7 @@ Zur Information folgt ein aktueller Auszug aus dem Benutzersperr-Logbuch:',
 'userjsyoucanpreview' => "'''Tipp:''' Benutze den „{{int:showpreview}}“-Button, um dein neues JavaScript vor dem Speichern zu testen.",
 'usercsspreview' => "'''Beachte, dass du nur eine Vorschau deines Benutzer-CSS betrachtest.'''
 '''Es wurde noch nicht gespeichert!'''",
-'userjspreview' => "'''Beachte, dass du nur eine Vorschau deines Benutzer-JavaScript betrachtest.'''
+'userjspreview' => "'''Beachte, dass du nur eine Vorschau deines Benutzer-JavaScripts betrachtest.'''
 '''Es wurde noch nicht gespeichert!'''",
 'sitecsspreview' => "'''Beachte, dass du nur eine Vorschau dieses CSS betrachtest.'''
 '''Es wurde noch nicht gespeichert!'''",
@@ -1173,7 +1196,7 @@ Bitte füge deine Änderungen in das obere Textfeld ein.
 '''Nur''' der Inhalt des oberen Textfeldes wird gespeichert, wenn du auf „{{int:savearticle}}“ klickst.",
 'yourtext' => 'Dein Text',
 'storedversion' => 'Gespeicherte Version',
-'nonunicodebrowser' => "'''Achtung:''' Dein Browser kann Unicode-Zeichen nicht richtig verarbeiten. Bitte verwende einen anderen Browser um Seiten zu bearbeiten.",
+'nonunicodebrowser' => "'''Achtung: Dein Browser kann Unicode-Zeichen nicht richtig verarbeiten.''' Es wird eine Hilfsroutine eingesetzt, um dir zu erlauben, Seiten sicher zu bearbeiten: Nicht-ASCII-Zeichen werden dabei im Bearbeitungsfenster als hexadezimale Codes angezeigt.",
 'editingold' => "'''Achtung: Du bearbeitest eine alte Version dieser Seite. Sofern du sie speicherst, werden alle neueren Versionen überschrieben.'''",
 'yourdiff' => 'Unterschiede',
 'copyrightwarning' => "'''Bitte kopiere keine Webseiten, die nicht deine eigenen sind, benutze keine urheberrechtlich geschützten Werke ohne Erlaubnis des Urhebers!'''<br />
@@ -1183,7 +1206,7 @@ Du gibst uns hiermit deine Zusage, dass du den Text '''selbst verfasst''' hast,
 Reiche hier keine Texte ein, falls du nicht willst, dass diese ohne Einschränkung geändert werden können.
 
 Du bestätigst hiermit auch, dass du diese Texte selbst geschrieben hast oder diese von einer gemeinfreien Quelle kopiert hast
-(siehe $1 für weitere Einzelheiten). '''ÜBERTRAGE OHNE GENEHMIGUNG KEINE URHEBERRECHTLICH GESCHÜTZTEN INHALTE!'''",
+(weitere Einzelheiten unter $1). '''ÜBERTRAGE OHNE GENEHMIGUNG KEINE URHEBERRECHTLICH GESCHÜTZTEN INHALTE!'''",
 'longpageerror' => "'''Fehler: Der Text, den du zu speichern versuchst, ist {{PLURAL:$1|ein Kilobyte|$1 Kilobyte}} groß. Dies ist größer als das erlaubte Maximum von {{PLURAL:$2|ein Kilobyte|$2 Kilobyte}}.'''
 Er kann nicht gespeichert werden.",
 'readonlywarning' => "'''Achtung: Die Datenbank wurde für Wartungsarbeiten gesperrt, so dass deine Änderungen derzeit nicht gespeichert werden können.
@@ -1223,13 +1246,14 @@ Zu deiner Information folgt das Lösch- und Verschiebungs-Logbuch mit der Begrü
 Sie wurde anscheinend gelöscht.',
 'edit-conflict' => 'Bearbeitungskonflikt.',
 'edit-no-change' => 'Deine Bearbeitung wurde ignoriert, da keine Änderung an dem Text vorgenommen wurde.',
+'postedit-confirmation' => 'Deine Bearbeitung wurde gespeichert.',
 'edit-already-exists' => 'Die neue Seite konnte nicht erstellt werden, da sie bereits vorhanden ist.',
 'defaultmessagetext' => 'Standardtext',
 'content-failed-to-parse' => 'Parsen des Inhalts $2 für Modell $1 fehlgeschlagen: $3',
 'invalid-content-data' => 'Ungültige Inhaltsdaten',
 'content-not-allowed-here' => 'Der Inhalt „$1“ ist auf der Seite [[$2]] nicht erlaubt',
 'editwarning-warning' => 'Das Verlassen dieser Seite kann dazu führen, dass deine Änderungen verloren gehen.
-Wenn du angemeldet bist, kannst du das Anzeigen dieser Warnung im „{{int:prefs-editing}}“-Bereich deiner Einstellungen abschalten.',
+Wenn du angemeldet bist, kannst du das Anzeigen dieser Warnung im Bereich „Bearbeiten“ deiner Einstellungen abschalten.',
 
 # Content models
 'content-model-wikitext' => 'Wikitext',
@@ -1263,6 +1287,7 @@ Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest
 'undo-failure' => 'Die Änderung konnte nicht rückgängig gemacht werden, da der betroffene Abschnitt zwischenzeitlich verändert wurde.',
 'undo-norev' => 'Die Bearbeitung konnte nicht rückgängig gemacht werden, da sie nicht vorhanden ist oder gelöscht wurde.',
 'undo-summary' => 'Änderung $1 von [[Special:Contributions/$2|$2]] ([[User talk:$2|Diskussion]]) rückgängig gemacht.',
+'undo-summary-username-hidden' => 'Änderung $1 eines versteckten Benutzers rückgängig gemacht.',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Das Benutzerkonto kann nicht erstellt werden',
@@ -1290,8 +1315,8 @@ Grund der Sperre: ''$2''",
 * Uhrzeit/Datum = Version zu dieser Zeit, Benutzername/IP-Adresse des Bearbeiters, {{int:minoreditletter}} = Kleine Änderung',
 'history-fieldset-title' => 'In der Versionsgeschichte suchen',
 'history-show-deleted' => 'Nur gelöschte Versionen zeigen',
-'histfirst' => 'Ã\84lteste',
-'histlast' => 'Neueste',
+'histfirst' => 'älteste',
+'histlast' => 'neueste',
 'historysize' => '({{PLURAL:$1|1 Byte|$1 Bytes}})',
 'historyempty' => '(leer)',
 
@@ -1331,7 +1356,7 @@ Du kannst [$1 diesen Versionsunterschied einsehen], sofern du möchtest.",
 Du kannst diesen Versionsunterschied einsehen, sofern du möchtest. Nähere Angaben stehen im [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Lösch-Logbuch].",
 'rev-suppressed-diff-view' => "Eine der Versionen dieses Versionsunterschiedes wurde '''unterdrückt'''.
 Du kannst diesen Versionsunterschied einsehen, sofern du möchtest. Nähere Angaben stehen im [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Unterdrückungs-Logbuch].",
-'rev-delundel' => 'zeige/verstecke',
+'rev-delundel' => 'zeigen/verstecken',
 'rev-showdeleted' => 'zeige',
 'revisiondelete' => 'Versionen löschen/wiederherstellen',
 'revdelete-nooldid-title' => 'Keine Version angegeben',
@@ -1351,13 +1376,13 @@ Andere Administratoren auf {{SITENAME}} haben Zugriff auf den versteckten Inhalt
 'revdelete-suppress-text' => "Unterdrückungen sollten '''nur''' in den folgenden Fällen vorgenommen werden:
 * Unangebrachte persönliche Informationen
 *: ''Adressen, Telefonnummern, Sozialversicherungsnummern etc.''",
-'revdelete-legend' => 'Setzen der Sichtbarkeits-Einschränkungen',
+'revdelete-legend' => 'Setzen der Sichtbarkeitseinschränkungen',
 'revdelete-hide-text' => 'Text der Version verstecken',
 'revdelete-hide-image' => 'Dateiinhalt verstecken',
-'revdelete-hide-name' => 'Logbuch-Aktion verstecken',
+'revdelete-hide-name' => 'Logbuchaktion und Ziel verstecken',
 'revdelete-hide-comment' => 'Bearbeitungszusammenfassung verstecken',
 'revdelete-hide-user' => 'Benutzername/IP-Adresse des Bearbeiters verstecken',
-'revdelete-hide-restricted' => 'Daten auch vor Administratoren und anderen unterdrücken',
+'revdelete-hide-restricted' => 'Daten sowohl vor Administratoren als auch anderen Benutzern unterdrücken',
 'revdelete-radio-same' => '(nicht ändern)',
 'revdelete-radio-set' => 'Ja',
 'revdelete-radio-unset' => 'Nein',
@@ -1440,6 +1465,7 @@ Stelle sicher, dass die Versionsgeschichte einer Seite historisch korrekt ist.',
 'compareselectedversions' => 'Gewählte Versionen vergleichen',
 'showhideselectedversions' => 'Gewählte Versionen zeigen/verstecken',
 'editundo' => 'rückgängig machen',
+'diff-empty' => '(kein Unterschied)',
 'diff-multi' => '({{PLURAL:$1|Eine dazwischenliegende Version|$1 dazwischenliegende Versionen}} von {{PLURAL:$2|einem Benutzer|$2 Benutzern}} {{PLURAL:$1|wird|werden}} nicht angezeigt)',
 'diff-multi-manyusers' => '({{PLURAL:$1|$1 dazwischenliegende Versionen}} von mehr als {{PLURAL:$2|$2 Benutzern}}, die nicht angezeigt werden)',
 'difference-missing-revision' => '{{PLURAL:$2|Eine Version|$2 Versionen}} dieser Unterschiedsanzeige ($1) {{PLURAL:$2|wurde|wurden}} nicht gefunden.
@@ -1450,8 +1476,8 @@ Einzelheiten sind im [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}
 # Search results
 'searchresults' => 'Suchergebnisse',
 'searchresults-title' => 'Suchergebnisse für „$1“',
-'searchresulttext' => 'Für mehr Informationen zur Suche siehe die [[{{MediaWiki:Helppage}}|Hilfeseite]].',
-'searchsubtitle' => 'Deine Suchanfrage: „[[:$1]]“ ([[Special:Prefixindex/$1|alle mit „$1“ beginnenden Seiten]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|alle Seiten, die nach „$1“ verlinken]])',
+'searchresulttext' => 'Mehr Informationen zur Suche sind auf der [[{{MediaWiki:Helppage}}|Hilfeseite]] zu finden.',
+'searchsubtitle' => 'Du hast nach „[[:$1]]“ gesucht ([[Special:Prefixindex/$1|alle mit „$1“ beginnenden Seiten]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|alle Seiten, die nach „$1“ verlinken]])',
 'searchsubtitleinvalid' => 'Deine Suchanfrage: „$1“.',
 'toomanymatches' => 'Die Anzahl der Suchergebnisse ist zu groß, bitte versuche eine andere Abfrage.',
 'titlematches' => 'Übereinstimmungen mit Seitentiteln',
@@ -1467,7 +1493,6 @@ Einzelheiten sind im [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}
 'searchmenu-legend' => 'Suchoptionen',
 'searchmenu-exists' => "'''Es gibt eine Seite, die den Namen „[[:$1]]“ hat.'''",
 'searchmenu-new' => "'''Erstelle die Seite „[[:$1]]“ in diesem Wiki.'''",
-'searchhelp-url' => 'Help:Hilfe',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Zeige alle Seiten, die mit dem Suchbegriff anfangen]]',
 'searchprofile-articles' => 'Inhaltsseiten',
 'searchprofile-project' => 'Hilfe- und Projektseiten',
@@ -1497,7 +1522,7 @@ Einzelheiten sind im [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}
 'showingresultsnum' => "Hier {{PLURAL:$3|ist '''1''' Ergebnis|sind '''$3''' Ergebnisse}}, beginnend mit Nummer '''$2.'''",
 'showingresultsheader' => "{{PLURAL:$5|Ergebnis '''$1''' von '''$3'''|Ergebnisse '''$1–$2''' von '''$3'''}} für '''$4'''",
 'nonefound' => "'''Hinweis:''' Es werden standardmäßig nur einige Namensräume durchsucht. Setze ''all:'' vor deinen Suchbegriff, um alle Seiten (inkl. Diskussionsseiten, Vorlagen usw.) zu durchsuchen oder gezielt den Namen des zu durchsuchenden Namensraumes.",
-'search-nonefound' => 'Für deine Suchanfrage wurden keine Ergebnisse gefunden.',
+'search-nonefound' => 'Zu deiner Suchanfrage wurden keine Ergebnisse gefunden.',
 'powersearch' => 'Erweiterte Suche',
 'powersearch-legend' => 'Erweiterte Suche',
 'powersearch-ns' => 'Suche in Namensräumen:',
@@ -1542,7 +1567,6 @@ Einzelheiten sind im [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}
 'resetprefs' => 'Eingaben verwerfen',
 'restoreprefs' => 'Alle Standardeinstellungen wiederherstellen',
 'prefs-editing' => 'Bearbeiten',
-'prefs-edit-boxsize' => 'Größe des Bearbeitungsfensters:',
 'rows' => 'Zeilen:',
 'columns' => 'Spalten:',
 'searchresultshead' => 'Suche',
@@ -1553,9 +1577,9 @@ Einzelheiten sind im [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}
 'recentchangesdays-max' => 'Maximal $1 {{PLURAL:$1|Tag|Tage}}',
 'recentchangescount' => 'Anzahl der standardmäßig angezeigten Bearbeitungen:',
 'prefs-help-recentchangescount' => 'Dies umfasst die Liste der letzten Änderungen, die Versionsgeschichte und die Logbücher.',
-'prefs-help-watchlist-token' => 'Das Ausfüllen dieses Feldes mit einem geheimen Schlüssel generiert einen RSS-Feed für deine Beobachtungsliste.
-Jeder, der diesen Schlüssel kennt, kann deine Beobachtungsliste einsehen. Wähle also einen sicheren Wert.
-Hier ein zufällig generierter Wert, den du verwenden kannst: $1',
+'prefs-help-watchlist-token2' => 'Dies ist der geheime Schlüssel zum Webfeed deiner Beobachtungsliste.
+Jeder, der ihn kennt, kann deine Beobachtungsliste lesen. Teile ihn deshalb nicht.
+[[Special:ResetTokens|Klicke hier, wenn du ihn zurücksetzen musst]].',
 'savedprefs' => 'Deine Einstellungen wurden gespeichert.',
 'timezonelegend' => 'Zeitzone:',
 'localtime' => 'Ortszeit:',
@@ -1586,7 +1610,6 @@ Hier ein zufällig generierter Wert, den du verwenden kannst: $1',
 'prefs-reset-intro' => 'Du kannst diese Seite verwenden, um die Einstellungen auf die Standards zurückzusetzen.
 Dies kann nicht mehr rückgängig gemacht werden.',
 'prefs-emailconfirm-label' => 'E-Mail-Bestätigung:',
-'prefs-textboxsize' => 'Größe des Bearbeitungsfensters',
 'youremail' => 'E-Mail-Adresse:',
 'username' => '{{GENDER:$1|Benutzername}}:',
 'uid' => '{{GENDER:$1|Benutzerkennung}}:',
@@ -1617,7 +1640,9 @@ Dies kann nicht mehr rückgängig gemacht werden.',
 'prefs-signature' => 'Signatur',
 'prefs-dateformat' => 'Datumsformat',
 'prefs-timeoffset' => 'Zeitunterschied',
-'prefs-advancedediting' => 'Erweiterte Optionen',
+'prefs-advancedediting' => 'Allgemein',
+'prefs-editor' => 'Bearbeitungsprogramm',
+'prefs-preview' => 'Vorschau',
 'prefs-advancedrc' => 'Erweiterte Optionen',
 'prefs-advancedrendering' => 'Erweiterte Optionen',
 'prefs-advancedsearchoptions' => 'Erweiterte Optionen',
@@ -1625,6 +1650,7 @@ Dies kann nicht mehr rückgängig gemacht werden.',
 'prefs-displayrc' => 'Anzeigeoptionen',
 'prefs-displaysearchoptions' => 'Anzeigeoptionen',
 'prefs-displaywatchlist' => 'Anzeigeoptionen',
+'prefs-tokenwatchlist' => 'Token',
 'prefs-diffs' => 'Versionsvergleich',
 
 # User preference: email validation using jQuery
@@ -1654,6 +1680,7 @@ Dies kann nicht mehr rückgängig gemacht werden.',
 'userrights-changeable-col' => 'Gruppenzugehörigkeit, die du ändern kannst',
 'userrights-unchangeable-col' => 'Gruppenzugehörigkeit, die du nicht ändern kannst',
 'userrights-conflict' => 'Benutzerrechtekonflikt! Bitte führe deine Änderungen erneut durch.',
+'userrights-removed-self' => 'Du hast deine eigenen Rechte erfolgreich entfernt. Du kannst nicht länger auf diese Seite zugreifen.',
 
 # Groups
 'group' => 'Gruppe:',
@@ -1697,7 +1724,7 @@ Dies kann nicht mehr rückgängig gemacht werden.',
 'right-reupload-shared' => 'Lokales Überschreiben einer in einem gemeinsam genutzten Repositorium vorhandenen Datei',
 'right-upload_by_url' => 'Dateien von einer URL-Adresse hochladen',
 'right-purge' => 'Seitencache leeren ohne Rückfrage',
-'right-autoconfirmed' => 'Halbgeschützte Seiten bearbeiten',
+'right-autoconfirmed' => 'Keine Beschränkung durch IP-basierte Limits',
 'right-bot' => 'Behandlung als automatischer Prozess',
 'right-nominornewtalk' => 'Kleine Bearbeitungen an Diskussionsseiten führen zu keiner „Neue Nachrichten“-Anzeige',
 'right-apihighlimits' => 'Höhere Limits in API-Abfragen',
@@ -1718,12 +1745,20 @@ Dies kann nicht mehr rückgängig gemacht werden.',
 'right-ipblock-exempt' => 'Ausnahme von IP-Sperren, automatischen Sperren und Rangesperren',
 'right-proxyunbannable' => 'Ausnahme von automatischen Proxysperren',
 'right-unblockself' => 'Sich selbst entsperren',
-'right-protect' => 'Seitenschutzstatus ändern und geschützte Seiten bearbeiten',
-'right-editprotected' => 'Geschützte Seiten bearbeiten (ohne Kaskadenschutz)',
+'right-protect' => 'Seitenschutzstatus ändern und kaskadengeschützte Seiten bearbeiten',
+'right-editprotected' => 'Seiten bearbeiten, die als „{{int:protect-level-sysop}}“ geschützt sind',
+'right-editsemiprotected' => 'Seiten bearbeiten, die als „{{int:protect-level-autoconfirmed}}“ geschützt sind',
 'right-editinterface' => 'Benutzeroberfläche bearbeiten',
 'right-editusercssjs' => 'Fremde CSS- und JavaScript-Dateien bearbeiten',
 'right-editusercss' => 'Fremde CSS-Dateien bearbeiten',
 'right-edituserjs' => 'Fremde JavaScript-Dateien bearbeiten',
+'right-editmyusercss' => 'Eigene Benutzer-CSS-Dateien bearbeiten',
+'right-editmyuserjs' => 'Eigene Benutzer-JavaScript-Dateien bearbeiten',
+'right-viewmywatchlist' => 'Eigene Beobachtungsliste ansehen',
+'right-editmywatchlist' => 'Eigene Beobachtungsliste bearbeiten. Einige Aktionen ermöglichen das Hinzufügen von Seiten ohne dieses Recht.',
+'right-viewmyprivateinfo' => 'Eigene private Daten ansehen (beispielsweise E-Mail-Adresse, bürgerlicher Name)',
+'right-editmyprivateinfo' => 'Eigene private Daten bearbeiten (beispielsweise E-Mail-Adresse, bürgerlicher Name)',
+'right-editmyoptions' => 'Eigene Einstellungen bearbeiten',
 'right-rollback' => 'Schnelles Zurücksetzen',
 'right-markbotedits' => 'Schnell zurückgesetzte Bearbeitungen als Bot-Bearbeitung markieren',
 'right-noratelimit' => 'Keine Beschränkung durch Limits',
@@ -1785,12 +1820,17 @@ Dies kann nicht mehr rückgängig gemacht werden.',
 'action-userrights-interwiki' => 'die Rechte von Benutzern in anderen Wikis zu ändern',
 'action-siteadmin' => 'die Datenbank zu sperren oder freizugeben',
 'action-sendemail' => 'E-Mails zu senden',
+'action-editmywatchlist' => 'deine Beobachtungsliste zu bearbeiten',
+'action-viewmywatchlist' => 'deine Beobachtungsliste anzusehen',
+'action-viewmyprivateinfo' => 'deine privaten Informationen einzusehen',
+'action-editmyprivateinfo' => 'deine privaten Informationen zu bearbeiten',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|Änderung|Änderungen}}',
 'recentchanges' => 'Letzte Änderungen',
 'recentchanges-legend' => 'Anzeigeoptionen',
 'recentchanges-summary' => 'Auf dieser Seite kannst du die letzten Änderungen in diesem Wiki nachverfolgen.',
+'recentchanges-noresult' => 'Keine Änderungen während des angegebenen Zeitraums entsprechen diesen Kriterien.',
 'recentchanges-feed-description' => 'Verfolge mit diesem Feed die letzten Änderungen in {{SITENAME}}.',
 'recentchanges-label-newpage' => 'Neue Seite',
 'recentchanges-label-minor' => 'Kleine Änderung',
@@ -1829,7 +1869,6 @@ Stand: $4, $5 Uhr.",
 'recentchangeslinked-feed' => 'Änderungen an verlinkten Seiten',
 'recentchangeslinked-toolbox' => 'Änderungen an verlinkten Seiten',
 'recentchangeslinked-title' => 'Änderungen an Seiten, die von „$1“ verlinkt sind',
-'recentchangeslinked-noresult' => 'Im ausgewählten Zeitraum wurden an den verlinkten Seiten keine Änderungen vorgenommen.',
 'recentchangeslinked-summary' => "Diese Spezialseite listet die letzten Änderungen an den verlinkten Seiten auf (bzw. bei Kategorien an den Mitgliedern dieser Kategorie). Seiten auf deiner [[Special:Watchlist|Beobachtungsliste]] sind '''fett''' dargestellt.",
 'recentchangeslinked-page' => 'Seite:',
 'recentchangeslinked-to' => 'Zeige Änderungen auf Seiten, die hierher verlinken',
@@ -1840,7 +1879,7 @@ Stand: $4, $5 Uhr.",
 'reuploaddesc' => 'Abbrechen und zurück zur Hochladen-Seite',
 'upload-tryagain' => 'Geänderte Dateibeschreibung abschicken',
 'uploadnologin' => 'Nicht angemeldet',
-'uploadnologintext' => 'Du musst [[Special:UserLogin|angemeldet sein]], um Dateien hochladen zu können.',
+'uploadnologintext' => 'Du musst dich $1, um Dateien hochladen zu können.',
 'upload_directory_missing' => 'Das Upload-Verzeichnis ($1) fehlt und konnte durch den Webserver auch nicht erstellt werden.',
 'upload_directory_read_only' => 'Der Webserver hat keine Schreibrechte für das Upload-Verzeichnis ($1).',
 'uploaderror' => 'Fehler beim Hochladen',
@@ -1970,11 +2009,11 @@ $1',
 'upload-proto-error-text' => 'Die URL muss mit <code>http://</code> oder <code>ftp://</code> beginnen.',
 'upload-file-error' => 'Interner Fehler',
 'upload-file-error-text' => 'Bei der Erstellung einer temporären Datei auf dem Server ist ein interner Fehler aufgetreten.
-Bitte informiere einen [[Special:ListUsers/sysop|System-Administrator]].',
+Bitte informiere einen [[Special:ListUsers/sysop|Administrator]].',
 'upload-misc-error' => 'Unbekannter Fehler beim Hochladen',
 'upload-misc-error-text' => 'Beim Hochladen ist ein unbekannter Fehler aufgetreten.
 Prüfe die URL auf Fehler, den Online-Status der Seite und versuche es erneut.
-Wenn das Problem weiter besteht, informiere einen [[Special:ListUsers/sysop|System-Administrator]].',
+Wenn das Problem weiter besteht, informiere einen [[Special:ListUsers/sysop|Administrator]].',
 'upload-too-many-redirects' => 'Die URL beinhaltete zu viele Weiterleitungen',
 'upload-unknown-size' => 'Unbekannte Größe',
 'upload-http-error' => 'Ein HTTP-Fehler ist aufgetreten: $1',
@@ -2046,7 +2085,7 @@ Sie kann daher keiner ordnungsgemäßen Sicherheitsüberprüfung unterzogen werd
 'img-auth-nopathinfo' => 'Die Angabe PATH_INFO fehlt.
 Der Server ist nicht dafür eingerichtet, diese Information weiterzugeben.
 Sie könnte CGI-gestützt sein und kann daher „img_auth“ (Authentifizierung des Dateiaufrufs) nicht unterstützen.
-Siehe hierzu die Seite https://www.mediawiki.org/wiki/Manual:Image_Authorization (englisch) für weitere Informationen.',
+Siehe auch https://www.mediawiki.org/wiki/Manual:Image_Authorization (englisch).',
 'img-auth-notindir' => 'Der gewünschte Pfad ist nicht im konfigurierten Uploadverzeichnis.',
 'img-auth-badtitle' => 'Aus „$1“ kann kein gültiger Titel erstellt werden.',
 'img-auth-nologinnWL' => 'Du bist nicht angemeldet und „$1“ ist nicht in der weißen Liste.',
@@ -2225,6 +2264,8 @@ Eine Seite gilt als Begriffsklärungsseite, wenn sie mindestens eine der auf der
 'pageswithprop-text' => 'Diese Spezialseite listet Seiten auf, die eine bestimmte Seiteneigenschaft verwenden.',
 'pageswithprop-prop' => 'Eigenschaftsname:',
 'pageswithprop-submit' => 'Los',
+'pageswithprop-prophidden-long' => 'Langtexteigenschaftswert versteckt ($1 Kilobyte)',
+'pageswithprop-prophidden-binary' => 'Binäreigenschaftswert versteckt ($1 Kilobyte)',
 
 'doubleredirects' => 'Doppelte Weiterleitungen',
 'doubleredirectstext' => 'Diese Liste enthält Weiterleitungen, die auf Weiterleitungen verlinken.
@@ -2282,6 +2323,7 @@ Jede Zeile enthält Links zur ersten und zweiten Weiterleitung sowie dem Ziel de
 'mostrevisions' => 'Seiten mit den meisten Versionen',
 'prefixindex' => 'Alle Seiten (mit Präfix)',
 'prefixindex-namespace' => 'Alle Seiten mit Präfix (Namensraum $1)',
+'prefixindex-strip' => 'Präfix in der Liste abschneiden',
 'shortpages' => 'Kurze Seiten',
 'longpages' => 'Lange Seiten',
 'deadendpages' => 'Nicht verlinkende Seiten',
@@ -2399,7 +2441,8 @@ Siehe auch die Liste der [[Special:WantedCategories|gewünschten Kategorien]].',
 'listgrouprights' => 'Benutzergruppenrechte',
 'listgrouprights-summary' => 'Dies ist eine Liste der in diesem Wiki definierten Benutzergruppen und der damit verbundenen Rechte.
 Zusätzliche Informationen über einzelne Rechte können [[{{MediaWiki:Listgrouprights-helppage}}|hier]] gefunden werden.',
-'listgrouprights-key' => '* <span class="listgrouprights-granted">Gewährtes Recht</span>
+'listgrouprights-key' => 'Legende:
+* <span class="listgrouprights-granted">Gewährtes Recht</span>
 * <span class="listgrouprights-revoked">Entzogenes Recht</span>',
 'listgrouprights-group' => 'Gruppe',
 'listgrouprights-rights' => 'Rechte',
@@ -2471,7 +2514,6 @@ Spätere Änderungen an dieser Seite und der zugehörigen Diskussionsseite werde
 'unwatchthispage' => 'Nicht mehr beobachten',
 'notanarticle' => 'Keine Seite',
 'notvisiblerev' => 'Version wurde gelöscht',
-'watchnochange' => 'Keine der von dir beobachteten Seiten wurde während des angezeigten Zeitraums bearbeitet.',
 'watchlist-details' => 'Du beobachtest {{PLURAL:$1|eine Seite|$1 Seiten}}, ohne dass Diskussionsseiten gezählt werden.',
 'wlheader-enotif' => 'Der E-Mail-Benachrichtigungsdienst ist aktiviert.',
 'wlheader-showupdated' => "Seiten mit noch nicht gesehenen Änderungen werden '''fett''' dargestellt.",
@@ -2571,7 +2613,7 @@ Rückmeldungen und weitere Hilfe: {{canonicalurl:{{MediaWiki:Helppage}}}}',
 Die letzte Änderung stammt von [[User:$3|$3]] ([[User talk:$3|Diskussion]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "Die Änderungszusammenfassung lautet: ''„$1“''.",
 'revertpage' => 'Änderungen von [[Special:Contributions/$2|$2]] ([[User talk:$2|Diskussion]]) wurden auf die letzte Version von [[User:$1|$1]] zurückgesetzt',
-'revertpage-nouser' => 'Änderungen von (Benutzername entfernt) rückgängig gemacht und letzte Version von [[User:$1|$1]] wiederhergestellt',
+'revertpage-nouser' => 'Änderungen von einem versteckten Benutzer rückgängig gemacht und letzte Version von [[User:$1|$1]] wiederhergestellt',
 'rollback-success' => 'Die Änderungen von $1 wurden rückgängig gemacht und die letzte Version von $2 wurde wiederhergestellt.',
 
 # Edit tokens
@@ -3002,7 +3044,7 @@ Alternativ ist der Export auch mit der Syntax [[{{#Special:Export}}/{{MediaWiki:
 'exportall' => 'Alle Seiten exportieren',
 'exportcuronly' => 'Nur die aktuelle Version der Seite exportieren',
 'exportnohistory' => "----
-'''Hinweis:''' Der Export kompletter Versionsgeschichten ist aus Performancegründen bis auf weiteres nicht möglich.",
+'''Hinweis:''' Der Export kompletter Versionsgeschichten ist aus Gründen der Systemleistung bis auf Weiteres nicht möglich.",
 'exportlistauthors' => 'Für jede Seite die jeweils vollständige Liste der Bearbeiter einbeziehen',
 'export-submit' => 'Seiten exportieren',
 'export-addcattext' => 'Seiten aus folgender Kategorie hinzufügen:',
@@ -3198,7 +3240,7 @@ Diese auf dem lokalen Rechner speichern und danach hier hochladen.',
 # Scripts
 'common.js' => '/* Das folgende JavaScript wird für alle Benutzer geladen. */',
 'cologneblue.js' => '/* Das folgende JavaScript wird für Benutzer der Kölnisch-Blau-Benutzeroberfläche geladen. Allgemeingültiges JavaScript bitte in [[MediaWiki:Common.js]] eintragen. */',
-'monobook.js' => '/* Das folgende JavaScript wird für Benutzer der MonoBook-Benutzeroberfläche geladen */',
+'monobook.js' => '/* Das folgende JavaScript wird für Benutzer der Monobook-Benutzeroberfläche geladen. */',
 'modern.js' => '/* Das folgende JavaScript wird für Benutzer der Modern-Benutzeroberfläche geladen. Allgemeingültiges JavaScript bitte in [[MediaWiki:Common.js]] eintragen. */',
 'vector.js' => '/* Das folgende JavaScript wird für Benutzer der Vector-Benutzeroberfläche geladen. Allgemeingültiges JavaScript bitte in [[MediaWiki:Common.js]] eintragen. */',
 'group-autoconfirmed.js' => '/* Das folgende JavaScript wird nur für automatisch bestätigte Benutzer geladen. */',
@@ -3260,7 +3302,7 @@ Das liegt wahrscheinlich an einem Link auf eine externe Seite.',
 'pageinfo-edits' => 'Gesamtzahl der Bearbeitungen',
 'pageinfo-authors' => 'Gesamtzahl unterschiedlicher Autoren',
 'pageinfo-recent-edits' => 'Anzahl der kürzlich erfolgten Bearbeitungen (innerhalb der letzten $1)',
-'pageinfo-recent-authors' => 'Anzahl unterschiedlicher Autoren',
+'pageinfo-recent-authors' => 'Anzahl unterschiedlicher Autoren der kürzlich erfolgten Bearbeitungen',
 'pageinfo-magic-words' => '{{PLURAL:$1|Magisches Wort|Magische Wörter}} ($1)',
 'pageinfo-hidden-categories' => 'Versteckte {{PLURAL:$1|Kategorie|Kategorien}} ($1)',
 'pageinfo-templates' => 'Eingebundene {{PLURAL:$1|Vorlage|Vorlagen}} ($1)',
@@ -3796,7 +3838,7 @@ Weitere werden standardmäßig nicht angezeigt.
 
 # External editor support
 'edit-externally' => 'Diese Datei mit einem externen Programm bearbeiten',
-'edit-externally-help' => '(Siehe die [//www.mediawiki.org/wiki/Manual:External_editors Installationsanweisungen] für weitere Informationen)',
+'edit-externally-help' => '(weitere Informationen in den [//www.mediawiki.org/wiki/Manual:External_editors Installationsanweisungen])',
 
 # 'all' in various places, this might be different for inflected languages
 'watchlistall2' => 'alle',
@@ -3896,7 +3938,7 @@ Bitte bestätige, dass du diese Seite wirklich neu erstellen möchten.",
 
 # Separators for various lists, etc.
 'ellipsis' => '…',
-'percent' => '$1&nbsp;%',
+'percent' => '$1&#160;%',
 
 # Multipage image navigation
 'imgmultipageprev' => '← vorherige Seite',
@@ -3992,7 +4034,6 @@ Du kannst auch die [[Special:EditWatchlist|Standardseite]] zum Bearbeiten benutz
 'version-other' => 'Sonstige Erweiterungen',
 'version-mediahandlers' => 'Mediennutzungserweiterungen',
 'version-hooks' => "Schnittstellen ''(Hooks)''",
-'version-extension-functions' => 'Funktionsaufrufe',
 'version-parser-extensiontags' => "Parsererweiterungen ''(Tags)''",
 'version-parser-function-hooks' => "Parsererweiterungen ''(Funktionen)''",
 'version-hook-name' => 'Schnittstellenname',
@@ -4077,6 +4118,7 @@ Eine [{{SERVER}}{{SCRIPTPATH}}/COPYING Kopie der ''GNU General Public License'']
 'tags' => 'Gültige Änderungsmarkierungen',
 'tag-filter' => '[[Special:Tags|Markierungs]]-Filter:',
 'tag-filter-submit' => 'Filter',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Markierung|Markierungen}}]]: $2)',
 'tags-title' => 'Markierungen',
 'tags-intro' => 'Diese Seite zeigt alle Markierungen, die für Bearbeitungen verwendet werden, sowie deren Bedeutung.',
 'tags-tag' => 'Markierungsname',
index 1b793bb..54dfd60 100644 (file)
@@ -16,6 +16,7 @@
  * @author Kaganer
  * @author Mirzali
  * @author Nemo bis
+ * @author Neribij
  * @author Olvörg
  * @author Reedy
  * @author Sahim
 $namespaceNames = array(
        NS_MEDIA            => 'Medya',
        NS_SPECIAL          => 'Xısusi',
-       NS_TALK             => 'Werênayış',
+       NS_TALK             => 'Mesac',
        NS_USER             => 'Karber',
-       NS_USER_TALK        => 'Karber_werênayış',
-       NS_PROJECT_TALK     => '$1_werênayış',
+       NS_USER_TALK        => 'Karber_mesac',
+       NS_PROJECT_TALK     => '$1_mesac',
        NS_FILE             => 'Dosya',
-       NS_FILE_TALK        => 'Dosya_werênayış',
+       NS_FILE_TALK        => 'Dosya_mesac',
        NS_MEDIAWIKI        => 'MediaWiki',
-       NS_MEDIAWIKI_TALK   => 'MediaWiki_werênayış',
+       NS_MEDIAWIKI_TALK   => 'MediaWiki_mesac',
        NS_TEMPLATE         => 'Şablon',
-       NS_TEMPLATE_TALK    => 'Şablon_werênayış',
+       NS_TEMPLATE_TALK    => 'Şablon_mesac',
        NS_HELP             => 'Peşti',
-       NS_HELP_TALK        => 'Peşti_werênayış',
+       NS_HELP_TALK        => 'Peşti_mesac',
        NS_CATEGORY         => 'Kategoriye',
-       NS_CATEGORY_TALK    => 'Kategoriye_werênayış',
+       NS_CATEGORY_TALK    => 'Kategoriye_mesac',
 );
 
 $namespaceAliases = array(
-       'Karber_mesac'       => NS_USER_TALK,
-       'Desteg'             => NS_HELP,
-       'Desteg_werênayış'   => NS_HELP_TALK,
-       'Kategori'           => NS_CATEGORY,
-       'Kategori_werênayış' => NS_CATEGORY_TALK,
+       'Werênayış'            => NS_TALK,
+       'Karber_werênayış'     => NS_USER_TALK,
+       '$1_werênayış'         => NS_PROJECT_TALK,
+       'Dosya_werênayış'      => NS_FILE_TALK,
+       'MediaWiki_werênayış'  => NS_MEDIAWIKI_TALK,
+       'Şablon_werênayış'     => NS_TEMPLATE_TALK,
+       'Desteg'               => NS_HELP,
+       'Desteg_werênayış'     => NS_HELP_TALK,
+       'Peşti_werênayış'      => NS_HELP_TALK,
+       'Kategori'             => NS_CATEGORY,
+       'Kategori_werênayış'   => NS_CATEGORY_TALK,
+       'Kategoriye_werênayış' => NS_CATEGORY_TALK,
 );
 
 $specialPageAliases = array(
-       'Activeusers'               => array( 'KarberêAktivi', 'AktivKarberi' ),
-       'Allmessages'               => array( 'MesaciPêro' ),
-       'Allpages'                  => array( 'PeleyPêro' ),
+       'Activeusers'               => array( 'KarberéAktivi', 'AktivKarberi' ),
+       'Allmessages'               => array( 'MesaciPéro' ),
+       'Allpages'                  => array( 'PeleyPéro' ),
        'Ancientpages'              => array( 'PeleyKehani' ),
        'Badtitle'                  => array( 'SernameyoXırab' ),
-       'Blankpage'                 => array( 'PeVengi' ),
-       'Block'                     => array( 'Bloqe', 'BloqeIP', 'BloqeyêKarber' ),
-       'Blockme'                   => array( 'BloqeyêMe' ),
+       'Blankpage'                 => array( 'PeVengi' ),
+       'Block'                     => array( 'Bloqe', 'BloqeIP', 'BloqeyéKarber' ),
+       'Blockme'                   => array( 'BloqeyéMe' ),
        'Booksources'               => array( 'KıtabeÇıme' ),
-       'BrokenRedirects'           => array( 'HetênayışoXırab' ),
+       'BrokenRedirects'           => array( 'HeténayışoXırab' ),
        'Categories'                => array( 'Kategoriyan' ),
-       'ChangeEmail'               => array( 'EpostaVurnayış' ),
-       'ChangePassword'            => array( 'ParolaBıvurnê', 'ParolaResetke' ),
-       'ComparePages'              => array( 'PelaPêverke' ),
+       'ChangeEmail'               => array( 'EpostaVırnayış' ),
+       'ChangePassword'            => array( 'ParolaBıvırné', 'ParolaResetke' ),
+       'ComparePages'              => array( 'PeraPéverke' ),
        'Confirmemail'              => array( 'EpostayAraştke' ),
        'Contributions'             => array( 'Dekerdışi' ),
-       'CreateAccount'             => array( 'HesabVırazê' ),
-       'Deadendpages'              => array( 'PelaBıgirê' ),
-       'DeletedContributions'      => array( 'DekerdıÅ\9fêkeBesterneyayê' ),
-       'Disambiguations'           => array( 'Arêzekerdış' ),
+       'CreateAccount'             => array( 'HesabVırazé' ),
+       'Deadendpages'              => array( 'PeraBıgiré' ),
+       'DeletedContributions'      => array( 'DekerdıÅ\9fékeBesterneyayé' ),
+       'Disambiguations'           => array( 'Arézekerdış' ),
        'DoubleRedirects'           => array( 'HetanayışoDılet' ),
-       'EditWatchlist'             => array( 'ListeyaSeyrkerdışiVurnayış' ),
+       'EditWatchlist'             => array( 'ListeyaSeyrkerdışiVırnayış' ),
        'Emailuser'                 => array( 'EpostayaKarberi' ),
        'Export'                    => array( 'Ateberde' ),
-       'Fewestrevisions'           => array( 'TewrtaynRevizyon' ),
+       'Fewestrevisions'           => array( 'TewrtaynRewizyon' ),
        'FileDuplicateSearch'       => array( 'KopyaydosyaCıgeyrayış', 'DıletdosyaCıgeyrayış' ),
        'Filepath'                  => array( 'RayaDosya', 'HerunaDosya', 'CayêDosya' ),
-       'Import'                    => array( 'Azeredê', 'Atewrke' ),
-       'Invalidateemail'           => array( 'EpostaAraÅ\9ftkerdıÅ\9fiBıterknê' ),
-       'BlockList'                 => array( 'ListeyêBloqi', 'IPBloqi', 'Blokqeyê_IP' ),
+       'Import'                    => array( 'Azeredé', 'Atewrke' ),
+       'Invalidateemail'           => array( 'EpostaAraÅ\9ftkerdıÅ\9fiBıterkné' ),
+       'BlockList'                 => array( 'ListeyéBloqan', 'IPBloqi', 'Blokqeyé_IP' ),
        'LinkSearch'                => array( 'GreCıgeyrayış' ),
-       'Listadmins'                => array( 'ListeyaSerkaran' ),
+       'Listadmins'                => array( 'Listeyaİdarekaran' ),
        'Listbots'                  => array( 'ListeyaBotan' ),
-       'Listfiles'                 => array( 'ListeyaDosyayan', 'DosyayaListeke', 'ListeyêResiman' ),
-       'Listgrouprights'           => array( 'ListeyaHeqandêGruban', 'HeqêGrubdeKarberan' ),
-       'Listredirects'             => array( 'ListeyaArêzekerdışan' ),
+       'Listfiles'                 => array( 'ListeyaDosyayan', 'DosyayaListeke', 'ListeyéResiman' ),
+       'Listgrouprights'           => array( 'ListeyaHeqandéGruban', 'HeqéGrubdeKarberan' ),
+       'Listredirects'             => array( 'ListeyaArézekerdışan' ),
        'Listusers'                 => array( 'ListeyaKarberan', 'KarberaListeke' ),
        'Lockdb'                    => array( 'DBKilitke' ),
        'Log'                       => array( 'Qeyd', 'Qeydi' ),
-       'Lonelypages'               => array( 'PeleyêBêwayıri' ),
-       'Longpages'                 => array( 'PeleyêDergi' ),
-       'MergeHistory'              => array( 'VerênanPêtewrke' ),
+       'Lonelypages'               => array( 'PeréBéwayıri' ),
+       'Longpages'                 => array( 'PeDergi' ),
+       'MergeHistory'              => array( 'VerénanPétewrke' ),
        'MIMEsearch'                => array( 'NIMECıgeyrayış' ),
-       'Mostcategories'            => array( 'TewrvêşiKategoriyıni' ),
-       'Mostimages'                => array( 'DosyeyêkeCırêvêşiGreDeyayo' ),
-       'Mostinterwikis'            => array( 'TewrvêşiTeberwiki' ),
-       'Mostlinked'                => array( 'PeleyêkeCırêvêşiGreDeyayo' ),
-       'Mostlinkedcategories'      => array( 'KategoriyêkeCırêvêşiGreDeyayo' ),
-       'Mostlinkedtemplates'       => array( 'Å\9eablonêkeCırêvêşiGreDeyayo' ),
-       'Mostrevisions'             => array( 'TewrvêşiRevizyon' ),
-       'Movepage'                  => array( 'PelerBerê' ),
-       'Mycontributions'           => array( 'İştıraqêMe' ),
-       'Mypage'                    => array( 'PeleyêMe' ),
-       'Mytalk'                    => array( 'WerênayışêMe' ),
-       'Myuploads'                 => array( 'BarkerdışeMe' ),
-       'Newimages'                 => array( 'DosyeyêNewey', 'ResimêNewey' ),
-       'Newpages'                  => array( 'PeleyêNewey' ),
+       'Mostcategories'            => array( 'TewrvéşiKategoriyıni' ),
+       'Mostimages'                => array( 'DosyeyékeCırévéşiGreDeyayo' ),
+       'Mostinterwikis'            => array( 'TewrvéşiTeberwiki' ),
+       'Mostlinked'                => array( 'PerékeCırévéşiGreDeyayo' ),
+       'Mostlinkedcategories'      => array( 'KategoriyayékeCırévéşiGreDeyayo' ),
+       'Mostlinkedtemplates'       => array( 'Å\9eablonékeCırévéşiGreDeyayo' ),
+       'Mostrevisions'             => array( 'TewrvéşiRevizyon' ),
+       'Movepage'                  => array( 'PelerBeré' ),
+       'Mycontributions'           => array( 'DekerdenéMe' ),
+       'Mypage'                    => array( 'PeMe' ),
+       'Mytalk'                    => array( 'VatenayışéMe' ),
+       'Myuploads'                 => array( 'BarkerdışéMe' ),
+       'Newimages'                 => array( 'DosyeyéNewey', 'ResiméNewey' ),
+       'Newpages'                  => array( 'PeNewey' ),
        'PasswordReset'             => array( 'ParolaResetkerdış' ),
        'PermanentLink'             => array( 'GreyoDaimi' ),
-       'Popularpages'              => array( 'PeleyêPopuleri' ),
+       'Popularpages'              => array( 'PePopuleri' ),
        'Preferences'               => array( 'Tercihi' ),
        'Prefixindex'               => array( 'SerVerole' ),
-       'Protectedpages'            => array( 'PeleyêkeStaryayê' ),
-       'Protectedtitles'           => array( 'SernameyêkeStaryayê' ),
-       'Randompage'                => array( 'Raştamê', 'PelayakeRaştamê' ),
-       'Randomredirect'            => array( 'HetenayışoRaştame' ),
-       'Recentchanges'             => array( 'VurnayışêPeyêni' ),
-       'Recentchangeslinked'       => array( 'GreyêVurnayışêPeyêni' ),
-       'Revisiondelete'            => array( 'RevizyoniBesterne' ),
+       'Protectedpages'            => array( 'PerékeStaryayé' ),
+       'Protectedtitles'           => array( 'SernameyékeStaryayé' ),
+       'Randompage'                => array( 'Raştameye', 'PelayakeRaştamé' ),
+       'Randomredirect'            => array( 'HetenayışoRaştameye' ),
+       'Recentchanges'             => array( 'VırnayışéPeyéni' ),
+       'Recentchangeslinked'       => array( 'GreyéVırnayışéPeyénan' ),
+       'Redirect'                  => array( 'Hetenayış' ),
+       'Revisiondelete'            => array( 'RewizyoniBesterne' ),
        'Search'                    => array( 'Cıgeyre' ),
-       'Shortpages'                => array( 'PeleyêKılmi' ),
-       'Specialpages'              => array( 'PeleyêXısusi' ),
+       'Shortpages'                => array( 'PeleyéKılmi' ),
+       'Specialpages'              => array( 'PeréBexsey' ),
        'Statistics'                => array( 'İstatistiki' ),
        'Tags'                      => array( 'Etiketi' ),
        'Unblock'                   => array( 'BloqiWedarne' ),
-       'Uncategorizedcategories'   => array( 'KategoriyêkeKategorinêbiyê' ),
-       'Uncategorizedimages'       => array( 'DosyeyêkeKategorinêbiyê' ),
-       'Uncategorizedpages'        => array( 'PeleyêkeKategorinêbiyê' ),
-       'Uncategorizedtemplates'    => array( 'Å\9eablonêkeKategorinêbiyê' ),
+       'Uncategorizedcategories'   => array( 'KategoriyayékeKategoriyanébiyé' ),
+       'Uncategorizedimages'       => array( 'DosyeyékeKategoriyanébiyé' ),
+       'Uncategorizedpages'        => array( 'PeleyékeKategoriyanébiyé' ),
+       'Uncategorizedtemplates'    => array( 'Å\9eablonékeKategoriyanébiyé' ),
        'Undelete'                  => array( 'Peyserbiya' ),
        'Unlockdb'                  => array( 'DBKılitiAke' ),
-       'Unusedcategories'          => array( 'KategoriyêkeNêkaryayê' ),
-       'Unusedimages'              => array( 'DosyeyêkeNêkaryayê' ),
-       'Unusedtemplates'           => array( 'Å\9eablonêkeNêkaryayê' ),
-       'Unwatchedpages'            => array( 'PeleyêkeNêweyneyênê' ),
+       'Unusedcategories'          => array( 'KategoriyayékeNékariyayé' ),
+       'Unusedimages'              => array( 'DosyeyékeNékariyayé' ),
+       'Unusedtemplates'           => array( 'Å\9eablonékeNékariyayé' ),
+       'Unwatchedpages'            => array( 'PeleyékeNéweyneyéné' ),
        'Upload'                    => array( 'Barkerdış' ),
-       'UploadStash'               => array( 'BarkerdıÅ\9fêNımtey' ),
+       'UploadStash'               => array( 'BarkerdıÅ\9féNımıtey' ),
        'Userlogin'                 => array( 'KarberCıkewtış' ),
        'Userlogout'                => array( 'KarberVıcyayış' ),
-       'Userrights'                => array( 'HeqêKarberan', 'SysopKerdış', 'BotKerdış' ),
+       'Userrights'                => array( 'HeqéKarberan', 'SysopKerdış', 'BotKerdış' ),
        'Version'                   => array( 'Versiyon' ),
-       'Wantedcategories'          => array( 'KategoriyêkeWazênê' ),
-       'Wantedfiles'               => array( 'DosyeyêkeWazênê' ),
-       'Wantedpages'               => array( 'PeleyêkeWazênê' ),
-       'Wantedtemplates'           => array( 'Å\9eablonêkeWazênê' ),
-       'Watchlist'                 => array( 'ListaSeyri' ),
-       'Whatlinkshere'             => array( 'PelarêGre' ),
-       'Withoutinterwiki'          => array( 'Bêİnterwiki' ),
+       'Wantedcategories'          => array( 'KategoriyayékeWazéné' ),
+       'Wantedfiles'               => array( 'DosyeyékeWazéné' ),
+       'Wantedpages'               => array( 'PerékeWazéné' ),
+       'Wantedtemplates'           => array( 'Å\9eablonékeWazéné' ),
+       'Watchlist'                 => array( 'ListeySeyran' ),
+       'Whatlinkshere'             => array( 'PerarêGre' ),
+       'Withoutinterwiki'          => array( 'Béİnterwiki' ),
 );
 
 $magicWords = array(
@@ -416,6 +425,18 @@ $messages = array(
 'oct' => 'Tşv',
 'nov' => 'Tşp',
 'dec' => 'Kan',
+'january-date' => 'Çele  $1',
+'february-date' => 'Şıbate $1',
+'march-date' => 'Adar $1',
+'april-date' => 'Nisane $1',
+'may-date' => 'Gulane $1',
+'june-date' => 'Hezirane $1',
+'july-date' => 'Temuze $1',
+'august-date' => 'Tebaxe $1',
+'september-date' => 'Keşkelun $1',
+'october-date' => 'Cıtan $1',
+'november-date' => 'Qasım $1',
+'december-date' => 'Kanun $1',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategoriye|Kategoriy}}',
@@ -501,6 +522,7 @@ $messages = array(
 'create-this-page' => 'Na pele bınuse',
 'delete' => 'Bestere',
 'deletethispage' => 'Ena perer besternê',
+'undeletethispage' => 'Na perer mebesterne',
 'undelete_short' => '{{PLURAL:$1|Yew vurnayışi|$1 Vurnayışan}} mestere',
 'viewdeleted_short' => '{{PLURAL:$1|Yew vurnayışo esterıte|$1 Vurnayışanê esterıtan}} bımocne',
 'protect' => 'Bıpawe',
@@ -554,9 +576,8 @@ $1',
 'disclaimers' => 'Redê mesuliyeti',
 'disclaimerpage' => 'Project:Reddê mesuliyetê bıngey',
 'edithelp' => 'Peştdariya vurnayışi',
-'edithelppage' => 'Help:Vurnayış',
 'helppage' => 'Help:Estêni',
-'mainpage' => 'Pera Seri',
+'mainpage' => 'Pela Seri',
 'mainpage-description' => 'Pela Seri',
 'policy-url' => 'Project:Terzê hereketi',
 'portal' => 'Portalê cemaeti',
@@ -586,7 +607,6 @@ $1',
 'newmessagesdifflinkplural' => 'peyni {{PLURAL:$1|vurnayış|vurnayışi}}',
 'youhavenewmessagesmulti' => '$1 mesaco newe esto',
 'editsection' => 'bıvurne',
-'editsection-brackets' => '[$1]',
 'editold' => 'bıvurne',
 'viewsourceold' => 'çımey cı bıvinê',
 'editlink' => 'bıvurne',
@@ -706,6 +726,8 @@ $2',
 'namespaceprotected' => "No '''$1''' ca de icazetê şıma çino şıma pel rêz keri.",
 'customcssprotected' => 'Mısadeyê şıma çıniyo ke na pela CSSi bıvurnên, çıke na pela xısusiye eyaranê karberan muhtewa kena.',
 'customjsprotected' => 'Mısadeyê şıma çıniyo ke na pela Java Scripti bıvurnên, çıke na pela xısusiye eyaranê karberan muhtewa kena.',
+'mycustomcssprotected' => "Na pera CSS'i re tenya idarekari şene bıvurne",
+'mycustomjsprotected' => "Na pera JavaScript'i re tenya idarekari şene bıvurne",
 'ns-specialprotected' => 'Pelê xısusiy nênê vurnayış.',
 'titleprotected' => 'Eno [[User:$1|$1]] zerreyê ena peli nişeno vuriye.
 Sebeb: "\'\'$2\'\'".',
@@ -778,6 +800,7 @@ Wexta ke verhafızayê cıgerayoxê şıma pak beno no benate de taye peli de he
 'createacct-captcha' => 'Qontrolê asayişi',
 'createacct-imgcaptcha-ph' => 'Nuşteyo ke cor aseno ey cı ke',
 'createacct-submit' => 'Hesabê xo vıraze',
+'createacct-benefit-heading' => '{{SITENAME}} meş de merduman şi',
 'createacct-benefit-body1' => '{{PLURAL:$1|vurnayış|vurnayışi}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|pele|peli}}',
 'createacct-benefit-body3' => '{{PLURAL:$1|iştıraqkerdoğo nıkayên|iştıraqkerdoğê nıkayêni}}',
@@ -836,7 +859,7 @@ Yew formato meqbul de adresê e-posta bınuse ya zi veng bıverde.',
 'cannotchangeemail' => 'E-postay hesabi ena wiki sera nêvurneyêno.',
 'emaildisabled' => 'Na site ra e-posta nêrışêno.',
 'accountcreated' => 'Hesab vıraciya',
-'accountcreatedtext' => 'Qandê $1 hesabê karberi vıraziyayo.',
+'accountcreatedtext' => 'Qandê [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) hesabê karberi vıraziyayo.',
 'createaccount-title' => 'Qey {{SITENAME}} newe yew heab vıraştış',
 'createaccount-text' => 'Kesê, be e-posteyê şıma ra {{SITENAME}} ($4) de, ebe nameyê "$2" u parola "$3" ra yew hesab vıraşto.
 Şıma gani cı kewê u parola xo nıka bıvurnê.',
@@ -872,10 +895,9 @@ Bıne vındere u newe ra dest pê bıkere.',
 
 # Special:PasswordReset
 'passwordreset' => 'Parola reset ke',
-'passwordreset-text' => 'Seba eyarkerdışê parolaya xo ra nê formi pır kerê.',
+'passwordreset-text-one' => 'Na form de parola reset kerdış temamiye',
 'passwordreset-legend' => 'Parola reset ke',
 'passwordreset-disabled' => 'Parola reset kerdış ena viki sera qefılneyayo.',
-'passwordreset-pretext' => '{{PLURAL:$1||Enê cerenan ra jeweri defiye de}}',
 'passwordreset-username' => 'Nameyê karberi:',
 'passwordreset-domain' => 'Domain:',
 'passwordreset-capture' => 'neticey e-postay bımocne?',
@@ -1087,7 +1109,7 @@ Loge peniye cor de este:",
 'nocreate-loggedin' => 'İcaze şıma çino şıma pelo newe akeri.',
 'sectioneditnotsupported-title' => 'Destekê vurnayışiê qısımi çıniyo',
 'sectioneditnotsupported-text' => 'Destekê vurnayışiê qısımi ena pela vurnayışi de çıniyo.',
-'permissionserrors' => 'Xetayê icazeyi',
+'permissionserrors' => 'İdari xeta',
 'permissionserrorstext' => 'Qey {{PLURAL:$1|sebebê|sebebê}} cêrini ra icazeyê şıma çin o:',
 'permissionserrorstext-withaction' => '{{PLURAL:$1|Sebeba|Sebeb da}} cêri ra icazetê $2 çıniyo:',
 'recreate-moveddeleted-warn' => "'''Hişyari: no pel o ke şıma vırazeni vere cû vırazyayo.'''
@@ -1102,6 +1124,7 @@ Yew sebeb beyan nibı.',
 Hewna kerde aseno.',
 'edit-conflict' => 'Vurnayişê pêverdiyaye .',
 'edit-no-change' => 'Vurnayişê şıma qebul nêbı, çunke nuşte de yew vurnayiş n3evıraziya.',
+'postedit-confirmation' => 'Vurnayış qeyd be',
 'edit-already-exists' => 'Pelo newe nêvıraziyeno.
 Pel ca ra esto.',
 'defaultmessagetext' => 'Hesıbyaye metne mesaci',
@@ -1143,6 +1166,7 @@ Taye şabloni zerre pel de nêmociyayeni.',
 'undo-failure' => 'Sebayê pêverameyişê vurnayişan karo tepêya gırewtış nêbı.',
 'undo-norev' => 'Vurnayiş tepêya nêgeryeno çunke ya vere cû hewna biyo ya zi ca ra çino.',
 'undo-summary' => 'Peysergırewtışê teshisê $1i be terefê [[Special:Contributions/$2|$2i]] ([[User talk:$2|Werênayış]])',
+'undo-summary-username-hidden' => "Rewizyona veri $1'i hewada",
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Nêşenay hesab rakerê',
@@ -1350,7 +1374,6 @@ Detayê besternayışi [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}
 'searchmenu-legend' => 'bıgeyre tercihan (sae bıke)',
 'searchmenu-exists' => "''Ena 'Wikipediya de ser \"[[:\$1]]\" yew pel esto'''",
 'searchmenu-new' => "''Na Wiki de pelay \"[[:\$1]]\" vıraze!'''",
-'searchhelp-url' => 'Help:Tedeestey',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|pê eno prefix ser pelan de bigêre]]',
 'searchprofile-articles' => 'Pelê tedeestey',
 'searchprofile-project' => 'Pelê yardım u procey',
@@ -1425,7 +1448,6 @@ Pe verbendi ''all:'', vaceyê xo bıvurni ki contenti hemi cıgeyro (pelanê mı
 'resetprefs' => 'Vurnayışê ke qeyd nêbiy, pak ke',
 'restoreprefs' => 'Sazanê hesıbyaya pêron newe dere barke',
 'prefs-editing' => 'Cay pela nustısi',
-'prefs-edit-boxsize' => 'Ebatê pencereyê vurnayîşî.',
 'rows' => 'Xeti:',
 'columns' => 'Estûni:',
 'searchresultshead' => 'Cı geyre',
@@ -1436,9 +1458,6 @@ Pe verbendi ''all:'', vaceyê xo bıvurni ki contenti hemi cıgeyro (pelanê mı
 'recentchangesdays-max' => 'Tewr zaf $1 {{PLURAL:$1|roc|roci}}',
 'recentchangescount' => 'Amarê vurnayışê ke hesıbyaye deye bımocneyê:',
 'prefs-help-recentchangescount' => 'Ney de vurnayışê peyêni, tarixê pelan u cıkewteni asenê.',
-'prefs-help-watchlist-token' => 'Eke no ca pê kılito dızdeni/miyanki pırr bo, lista şımawa seyrkerdışi rê yew cıresnayışê RSSi vıraziyeno.
-Her kamo ke nê kılitê nê cay zaneno, şeno lista şımawa seyrkerdışi ki bıwano, coke ra yewo sağlem weçine.
-Etıya şıma rê yew kılito raştameo ke şıma şenê bıgurenê/bıxebetnê: $1',
 'savedprefs' => 'Tecihê şıma qeyd biy.',
 'timezonelegend' => 'Warey saete:',
 'localtime' => 'saeta mehelliye:',
@@ -1469,7 +1488,6 @@ Etıya şıma rê yew kılito raştameo ke şıma şenê bıgurenê/bıxebetnê:
 'prefs-reset-intro' => 'ena pele de şıma tercihanê xo şenê bıçarnê be tercihanê keyepelê ke verê coy eyar biy.
 Na game tepeya nêerziyena.',
 'prefs-emailconfirm-label' => 'Tesdiqiya E-posta:',
-'prefs-textboxsize' => 'Ebatê pencerey vurnayışi',
 'youremail' => 'E-Mail (mecbur niyo) *:',
 'username' => '{{GENDER:$1|Nameyê karberi}}:',
 'uid' => 'Kamiya {{GENDER:$1|karberi}}:',
@@ -1504,7 +1522,9 @@ Kaberê bini ke şıma de kewti irtıbat, adresa e-postey şıma eşkera nêbena
 'prefs-signature' => 'İmza',
 'prefs-dateformat' => 'Formatê tarixi',
 'prefs-timeoffset' => 'Wext offset',
-'prefs-advancedediting' => 'Tercihê raverberdey',
+'prefs-advancedediting' => 'Genel',
+'prefs-editor' => 'Timarkar',
+'prefs-preview' => 'Verqayt',
 'prefs-advancedrc' => 'Tercihê raverberdey',
 'prefs-advancedrendering' => 'Tercihê raverberdey',
 'prefs-advancedsearchoptions' => 'Tercihê raverberdey',
@@ -1605,11 +1625,13 @@ Kaberê bini ke şıma de kewti irtıbat, adresa e-postey şıma eşkera nêbena
 'right-proxyunbannable' => 'Blokanê otomatikiê proksiyan ra ravêre',
 'right-unblockself' => 'İnan ake',
 'right-protect' => 'Sewiyanê pawıtışi (mıhafezey) bıvurne u pelanê kılitbiyaiyan sero bıgureye.',
-'right-editprotected' => 'Pelanê pawıtiyan sero bıgureye (bê pawıtena kaskadi (game be game))',
+'right-editprotected' => 'Pera pawıtiyan sero bıxebteye (bê pawıtena kaskadi (game be game))',
+'right-editsemiprotected' => 'Xısusi pera timaryayış "{{int:protect-level-autoconfirmed}}"',
 'right-editinterface' => 'Interfaceê karberi sero bıgureye',
 'right-editusercssjs' => 'CSS u dosyanê JSiê karberanê binan sero bıgureye',
 'right-editusercss' => 'Dosyanê CSSiê karberanê binan sero bıgureye',
 'right-edituserjs' => 'Dosyanê JSiê karberanê binan sero bıgureye',
+'right-viewmywatchlist' => 'Lista seyr de xo bıvin',
 'right-rollback' => 'Lez/herbi vurnayışanê karberê peyêni tekrar bıke, oyo ke yew be yew pelê sero gureyao',
 'right-markbotedits' => 'Vurnayışanê peyd ameyan, vurnayışê boti deye nışan kerê',
 'right-noratelimit' => 'Sinoranê xızi (rate limit) ra tesir nêbi',
@@ -1671,6 +1693,10 @@ Kaberê bini ke şıma de kewti irtıbat, adresa e-postey şıma eşkera nêbena
 'action-userrights-interwiki' => 'heqqa karberanê ke wikiyê binî de hemî bivurne',
 'action-siteadmin' => 'database kilit bike ya zi a bike',
 'action-sendemail' => 'e-posta bırşe',
+'action-editmywatchlist' => 'Listeyseyran de xo bıvırne',
+'action-viewmywatchlist' => 'Listeyseyran de xo bıvin',
+'action-viewmyprivateinfo' => 'Xısusi tercihane xo bıvin',
+'action-editmyprivateinfo' => 'Xısusi malumate xo bıvurne',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|fın vurna|fıni vurna}}',
@@ -1715,7 +1741,6 @@ Kaberê bini ke şıma de kewti irtıbat, adresa e-postey şıma eşkera nêbena
 'recentchangeslinked-feed' => 'Vurnayışê elaqeyıni',
 'recentchangeslinked-toolbox' => 'Vurnayışê elaqeyıni',
 'recentchangeslinked-title' => 'vurnayışan ser "$1"',
-'recentchangeslinked-noresult' => 'Pelanê ke link biye ey vurnayîşî çino.',
 'recentchangeslinked-summary' => "Lista cêrêne, pela bêlikerdiye rê (ya zi karberanê kategoriya bêlikerdiye rê) pelanê gırêdayoğan de lista de vurnayışê peyênana.
 [[Special:Watchlist|Lista şımaya seyrkedışi de]] peli be nuşteyo '''qolınd''' bêli kerdê.",
 'recentchangeslinked-page' => 'Nameyê pele:',
@@ -1727,7 +1752,7 @@ Kaberê bini ke şıma de kewti irtıbat, adresa e-postey şıma eşkera nêbena
 'reuploaddesc' => 'Barkerdışi iptal ke u peyser şo formê barkerdışi',
 'upload-tryagain' => 'Deskripyonê dosyayî ke vurîya ey qeyd bike',
 'uploadnologin' => 'Şıma cıkewtış nêvıraşto',
-'uploadnologintext' => 'Ti gani [[Special:UserLogin|cikewte]] biyo ke dosya bar bike.',
+'uploadnologintext' => 'Ti şeni $1 dosya bar bikere.',
 'upload_directory_missing' => 'Direktorê dosyayê ($1)î biyo vînî u webserver de nieşkeno viraziye.',
 'upload_directory_read_only' => 'Direktorê dosyayê ($1)î webserver de nieşkeno binuse.',
 'uploaderror' => 'Ğeletê bar kerdişî',
@@ -2357,9 +2382,8 @@ Ena deme ra, ma qe vurnayışan ser ena pele tı haberdar keni.',
 'unwatchthispage' => 'temaşa kerdışê peli vındarn.',
 'notanarticle' => 'mebhesê peli niyo',
 'notvisiblerev' => 'Revizyon esteriyayo',
-'watchnochange' => 'pelê listeya temaşakerdışê şıma ye wextê nişane biyaye de rocane nêbiyo.',
 'watchlist-details' => '{{PLURAL:$1|$1 pele|$1 peleyan}} listeyê seyr-kerdışi şıma dı, peleyanê vurnayışi dahil niyo.',
-'wlheader-enotif' => 'pê E-mail xeber dayiş biyo a.',
+'wlheader-enotif' => 'E-mail xeber dayiş abiyo.',
 'wlheader-showupdated' => "ziyaretê şıma ye peyini de vuryayişê peli pê '''nuşteyo qalıni''' mocyayo.",
 'watchmethod-recent' => 'pel ê ke şıma temaşa kenî vuryayişê peyinê ey konrol beno',
 'watchmethod-list' => 'pel ê ke şıma temaşa kenî vuryayişê peyinê ey konrol beno',
@@ -2612,7 +2636,7 @@ $1',
 'mycontris' => 'İştıraqi',
 'contribsub2' => 'Qandê $1 ($2)',
 'nocontribs' => 'Ena kriteriya de vurnayîş çini yo.',
-'uctop' => '(top)',
+'uctop' => '(weziyet)',
 'month' => 'Aşm:',
 'year' => 'Ser:',
 
@@ -2938,6 +2962,7 @@ eke şıma qayili paşt bıdi mahalli kerdışê wikimedyayi, kerem kerê pelê
 'thumbnail-more' => 'Gırd ke',
 'filemissing' => 'Dosya biya vini',
 'thumbnail_error' => 'Thumbnail niviraziya: $1',
+'thumbnail_error_remote' => '$1 ra mesaco xırab: $2',
 'djvu_page_error' => 'pelê DjVuyi bêşumulo',
 'djvu_no_xml' => 'Qe DjVu nieşkenî XML fetch bikî',
 'thumbnail-temp-create' => 'İdare dosyay resimiya nêvırazêna',
@@ -3887,7 +3912,6 @@ Ma rica keno tesdiq bike ke ti raştî wazeno eno pel bivirazo.",
 'semicolon-separator' => '&#32;',
 'comma-separator' => ',&#32;',
 'colon-separator' => ':&#32;',
-'autocomment-prefix' => '-&#32;',
 'pipe-separator' => '&#32;|&#32;',
 'word-separator' => '&#32;',
 'ellipsis' => '...',
@@ -4056,7 +4080,6 @@ Ti hem zi eşkeno [[Special:EditWatchlist|use the standard editor]].',
 'version-other' => 'Bin',
 'version-mediahandlers' => 'Kulbê medyayî',
 'version-hooks' => 'Çengelî',
-'version-extension-functions' => 'Funksiyonê ekstensiyonî',
 'version-parser-extensiontags' => 'Etiketê ekstensiyon ê parserî',
 'version-parser-function-hooks' => 'Çengelê ekstensiyon ê parserî',
 'version-hook-name' => 'Nameyê çengelî',
index 4a3193e..f1aa9d2 100644 (file)
  * @author Derbeth
  * @author Dunak
  * @author Dundak
+ * @author Geitost
  * @author Kaganer
  * @author Michawiki
  * @author Murjarik
+ * @author Nemo bis
  * @author Nepl1
  * @author Pe7er
  * @author Qualia
@@ -399,7 +401,6 @@ $1',
 'disclaimers' => 'Impresum',
 'disclaimerpage' => 'Project:impresum',
 'edithelp' => 'Pomoc pśi wobźěłanju',
-'edithelppage' => 'Help:Pomoc pśi wobźěłanju',
 'helppage' => 'Help:Pomoc',
 'mainpage' => 'Głowny bok',
 'mainpage-description' => 'Głowny bok',
@@ -566,9 +567,18 @@ Móžoš {{SITENAME}} anomymnje dalej wužywaś abo móžoš <span class='plainl
 'welcomeuser' => 'Witaj $1',
 'welcomecreation-msg' => 'Twójo konto jo se załožyło. Njezabydni změniś swóje [[Special:Preferences|nastajenja za {{SITENAME}}]].',
 'yourname' => 'mě wužywarja',
+'userlogin-yourname' => 'Wužywarske mě',
+'userlogin-yourname-ph' => 'Zapódaj swójo wužywarske mě',
 'yourpassword' => 'šćitne gronidło:',
+'userlogin-yourpassword' => 'Gronidło',
+'userlogin-yourpassword-ph' => 'Zapódaj swójo gronidło',
+'createacct-yourpassword-ph' => 'Zapódaj gronidło',
 'yourpasswordagain' => 'Šćitne gronidło hyšći raz zapódaś:',
+'createacct-yourpasswordagain' => 'Gronidło wobkšuśiś',
+'createacct-yourpasswordagain-ph' => 'Zapódaj gronidło hyšći raz',
 'remembermypassword' => 'Na toś tom licadle pśizjawjony wóstaś (za maksimalnje $1 {{PLURAL:$1|źeń|dnja|dny|dnjow}})',
+'userlogin-remembermypassword' => 'Pśizjawjony wóstaś',
+'userlogin-signwithsecure' => 'Wěsty zwisk wužywaś',
 'securelogin-stick-https' => 'Pó pśizjawjenju z HTTPS zwězany wóstaś',
 'yourdomainname' => 'Twója domejna',
 'password-change-forbidden' => 'Njamóžoš gronidła w toś tom wikiju změniś.',
@@ -581,12 +591,17 @@ Móžoš {{SITENAME}} anomymnje dalej wužywaś abo móžoš <span class='plainl
 'logout' => 'wótzjawiś se',
 'userlogout' => 'wótzjawiś se',
 'notloggedin' => 'Njepśizjawjony(a)',
-'nologin' => "Njamaš wužywarske konto? '''$1'''.",
+'userlogin-noaccount' => 'Njamaš wužywarske konto?',
+'userlogin-joinproject' => 'Konto za {{GRAMMAR:akuzatiw|{{SITENAME}}}} załožyś',
+'nologin' => 'Njamaš wužywarske konto? $1.',
 'nologinlink' => 'Nowe wužywarske konto załožyś',
 'createaccount' => 'Wužywarske konto załožyś',
 'gotaccount' => "Maš južo wužywarske konto? '''$1'''.",
 'gotaccountlink' => 'Pśizjawiś se',
 'userlogin-resetlink' => 'Sy pśizjawjeńske daty zabył?',
+'userlogin-resetpassword-link' => 'Gronidło anulěrowaś',
+'helplogin-url' => 'Help:Pśizjawiś',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Pomoc za pśizjawjenje]]',
 'createaccountmail' => 'Nachylne pśidatne gronidło wužywaś a jo na slědujucu e-mailowu adresu pósłaś',
 'createaccountreason' => 'Pśicyna:',
 'badretype' => 'Šćitnej gronidle, kótarejž sy zapódał, se njemakajotej.',
@@ -637,7 +652,7 @@ Woglědowarje, kótarež wužywaju toś tu IP-adresu njamógu tuchylu dalšne ko
 'cannotchangeemail' => 'Kontowe e-mailowe adrese njedaju se změniś na toś tom wikiju.',
 'emaildisabled' => 'Toś to sedło njamóžo e-maile pósłaś.',
 'accountcreated' => 'Wužywarske konto jo se wutwóriło.',
-'accountcreatedtext' => 'Wužywarske konto $1 jo se wutwóriło.',
+'accountcreatedtext' => 'Wužywarske konto [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|diskusiju]]) jo se załožyło.',
 'createaccount-title' => 'Wužywarske konto za {{SITENAME}} nawarjone',
 'createaccount-text' => 'Něchten jo konto za twóje e-mailowu adresu na {{GRAMMAR:lokatiw|{{SITENAME}}}} ($4) z mjenim "$2", z pótajmnym słowom "$3", wutwórił. Dejš se pśizjawiś a swóje pótajmne słowo něnt změniś.
 
@@ -673,10 +688,8 @@ Sy snaź swójo gronidło južo wuspěšnje změnił abo nowe nachylne gronidło
 
 # Special:PasswordReset
 'passwordreset' => 'Gronidło slědk stajiś',
-'passwordreset-text' => 'Wupołni toś ten formular, aby swójo gronidło anulěrował.',
 'passwordreset-legend' => 'Gronidło slědk stajiś',
 'passwordreset-disabled' => 'Slědkstajenja gronidłow su se znjemóžnili na toś tom wikiju.',
-'passwordreset-pretext' => '{{PLURAL:$1||Zapódaj dołojce jadne ze slědujucych datowych podaśow}}',
 'passwordreset-username' => 'Wužywarske mě:',
 'passwordreset-domain' => 'Domena:',
 'passwordreset-capture' => 'E-mail se woglědaś?',
@@ -895,6 +908,7 @@ Njejo žedno wujasnjenje.',
 Zda sem až jo wulašowany.',
 'edit-conflict' => 'Wobźěłański konflikt.',
 'edit-no-change' => 'Wašo wobźěłanje jo se ignorěrowało, dokulaž tekst njejo se změnił.',
+'postedit-confirmation' => 'Twója změna jo se składła.',
 'edit-already-exists' => 'Njejo móžno było nowy bok napóraś.
 Eksistěrujo južo.',
 'defaultmessagetext' => 'Standardny tekst powěźeńki',
@@ -1140,7 +1154,6 @@ Drobnostki móžoš w [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}
 'searchmenu-legend' => 'Pytańske opcije',
 'searchmenu-exists' => "'''Jo bok z mjenim \"[[\$1]]\" na toś tom wikiju'''",
 'searchmenu-new' => "'''Napóraj bok \"[[:\$1|\$1]]\" na toś tom wikiju!'''",
-'searchhelp-url' => 'Help:Pomoc',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Boki z toś tym prefiksom pśepytaś]]',
 'searchprofile-articles' => 'Wopśimjeśowe boki',
 'searchprofile-project' => 'Pomoc a projektowe boki',
@@ -1214,7 +1227,6 @@ Drobnostki móžoš w [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}
 'resetprefs' => 'Njeskłaźone změny zachyśiś',
 'restoreprefs' => 'Wše standardne nastajenja wobnowiś',
 'prefs-editing' => 'Wobźěłaś',
-'prefs-edit-boxsize' => 'Wjelikosć wobźěłowańskego wokna',
 'rows' => 'Rědki:',
 'columns' => 'Słupy:',
 'searchresultshead' => 'Pytaś',
@@ -1225,9 +1237,6 @@ Drobnostki móžoš w [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}
 'recentchangesdays-max' => '(maksimalnje $1 {{PLURAL:$1|źeń|dnja|dny|dnjow}})',
 'recentchangescount' => 'Licba změnow, kótaraž ma se pó standarźe pokazaś:',
 'prefs-help-recentchangescount' => 'To wopśimujo aktualne změny, stawizny bokow a protokole.',
-'prefs-help-watchlist-token' => 'Wupołnjenje toś togo póla z pótajmnym klucom buźo RSS-kanal za twóju wobglědowańku napóraś.
-Něchten, kenž znajo kluc w toś tom pólu, móžo twóju wobglědowańku cytaś, wubjeŕ togodla wěstu gódnotu.
-How jo pśipadnje napórana gódnota, kótaruž móžoš wužywaś: $1',
 'savedprefs' => 'Twóje nastajenja su se składowali.',
 'timezonelegend' => 'Casowa cona:',
 'localtime' => 'Městny cas:',
@@ -1258,7 +1267,6 @@ How jo pśipadnje napórana gódnota, kótaruž móžoš wužywaś: $1',
 'prefs-reset-intro' => 'You can use this page to reset your preferences to the site defaults. This cannot be undone.
 Móžoš toś ten bok wužywaś, aby slědk stajił swóje nastajenja na standardne gódnoty sedła. To njedajo se anulěrowaś.',
 'prefs-emailconfirm-label' => 'E-mailowe wobkšuśenje:',
-'prefs-textboxsize' => 'Wjelikosć wobźěłowańskego wokna',
 'youremail' => 'E-mail:',
 'username' => 'Mě {{GENDER:$1|wužywarja|wužywarki}}:',
 'uid' => 'ID {{GENDER:$1|wužywarja|wužywarki}}:',
@@ -1495,7 +1503,6 @@ Móžoš toś ten bok wužywaś, aby slědk stajił swóje nastajenja na standar
 'recentchangeslinked-feed' => 'Změny w zwězanych bokach',
 'recentchangeslinked-toolbox' => 'Změny w zwězanych bokach',
 'recentchangeslinked-title' => 'Změny na bokach, kótarež su z „$1“ zalinkowane',
-'recentchangeslinked-noresult' => 'Zalinkowane boki njejsu we wuzwólonem casu se změnili.',
 'recentchangeslinked-summary' => "To jo lisćina slědnych změnow, kótarež buchu na wótkazanych bokach cynjone (resp. pśi wěstych kategorijach na cłonkach kategorije).
 Boki na [[Special:Watchlist|wobglědowańce]] su '''tucne'''.",
 'recentchangeslinked-page' => 'mě boka:',
@@ -1507,7 +1514,7 @@ Boki na [[Special:Watchlist|wobglědowańce]] su '''tucne'''.",
 'reuploaddesc' => 'Nagraśe pśetergnuś a slědk k nagrawańskemu formularoju',
 'upload-tryagain' => 'Změnjone datajowe wopisanje wótpósłaś',
 'uploadnologin' => 'Njepśizjawjony',
-'uploadnologintext' => 'Dejš se [[Special:UserLogin|pśizjawiś]], aby mógał dataje nagraś.',
+'uploadnologintext' => 'Dejš se $1, aby mógał dataje nagraś.',
 'upload_directory_missing' => 'Nagrawański zapis ($1) felujo a njejo se pśez webserwer napóraś dał.',
 'upload_directory_read_only' => 'Nagrawański zapisk ($1) njedajo se pśez webserwer pisaś.',
 'uploaderror' => 'Nagrawańska zmólka',
@@ -1635,7 +1642,7 @@ $1',
 'upload-proto-error' => 'Njekorektny protokol',
 'upload-proto-error-text' => 'URL musy zachopiś z <code>http://</code> abo <code>ftp://</code>.',
 'upload-file-error' => 'Interna zmólka',
-'upload-file-error-text' => 'Pśi napóranju temporarneje dataje na serwerje jo nastała interna zmólka. Pšosym staj se ze [[Special:ListUsers/sysop|systemowym administratorom]] do zwiska.',
+'upload-file-error-text' => 'Pśi napóranju temporarneje dataje na serwerje jo nastała interna zmólka. Pšosym staj se ze [[Special:ListUsers/sysop|administratorom]] do zwiska.',
 'upload-misc-error' => 'Njeznata zmólka pśi nagrawanju.',
 'upload-misc-error-text' => 'Pśi nagrawanju jo nastała njeznata zmólka. Kontrolěruj pšosym, lěc URL jo płaśiwy a pśistupny a wopytaj hyšći raz. Jolic problem dalej eksistěrujo, staj se z [[Special:ListUsers/sysop|administratorom]] do zwiska.',
 'upload-too-many-redirects' => 'URL jo pśewjele dalejpósrědnjenja wopśimjeł',
@@ -2130,7 +2137,6 @@ Pózdźejšne změny na toś tom boku a w pśisłušecej diskusiji se tam nalicu
 'unwatchthispage' => 'Dalej njewobglědowaś',
 'notanarticle' => 'To njejo žeden nastawk',
 'notvisiblerev' => 'Wersija bu wulašowana',
-'watchnochange' => 'Žeden wót tebje wobglědowany bok njejo se we wótpowědujucem casu wobźěłał.',
 'watchlist-details' => 'Wobglědujoš {{PLURAL:$1|$1 bok|$1 boka|$1 boki|$1 bokow}}, bźez diskusijnych bokow.',
 'wlheader-enotif' => 'E-mailowe powěsće su aktiwizěrowane.',
 'wlheader-showupdated' => "Boki, kótarež su wót twójogo slědnego woglěda se změnili, pokazuju se '''tucnje'''.",
@@ -3591,7 +3597,6 @@ Móžoš teke [[Special:EditWatchlist|standardny wobźěłowański bok wužywaś
 'version-other' => 'Druge',
 'version-mediahandlers' => 'Pśeźěłaki medijow',
 'version-hooks' => 'Kokule',
-'version-extension-functions' => 'Funkcije rozšyrjenjow',
 'version-parser-extensiontags' => 'Tagi parserowych rozšyrjenjow',
 'version-parser-function-hooks' => 'Parserowe funkcije',
 'version-hook-name' => 'Mě kokule',
index 5cd073a..b8d335f 100644 (file)
@@ -254,7 +254,6 @@ $1',
 'disclaimers' => 'Pogoliman',
 'disclaimerpage' => 'Project:Pogoliman kosoruan',
 'edithelp' => 'Sokodung mongidit',
-'edithelppage' => 'Help:Mongidit',
 'helppage' => 'Help:Susuang',
 'mainpage' => 'Natad tagayo',
 'mainpage-description' => 'Natad tagayo',
@@ -552,10 +551,8 @@ Naalanannu noh kaatalib toi nokopokianu koh no do kaatalib daamot.',
 
 # Special:PasswordReset
 'passwordreset' => 'Pudoliai kawagu kaatalib',
-'passwordreset-text' => 'Gonopo poom diti do mangaramit tongosurat-i ponorou do nokomoi id akaun.',
 'passwordreset-legend' => 'Pudoliai kawagu kaatalib',
 'passwordreset-disabled' => 'Pomudolian kawagu do kaatalib kitaantob id wiki diti.',
-'passwordreset-pretext' => '{{PLURAL:$1||Posuango iso data id siriba}}',
 'passwordreset-username' => 'Ngarandait:',
 'passwordreset-domain' => 'Sumanganu:',
 'passwordreset-capture' => 'Intaai surat-i dii nowonsoi?',
@@ -951,7 +948,6 @@ Intaai [[Special:BlockList|lis nantaban]] montok lis kawawagu karaja mogoduh om
 'searchmenu-legend' => 'Pilion ihum-ihumon',
 'searchmenu-exists' => "'''Haro no bolikon pinungaranan do \"[[:\$1]]\" hiti id wiki.'''",
 'searchmenu-new' => "'''Pomonsoi do bolikon \"[[:\$1]]\"hiti id wiki!'''",
-'searchhelp-url' => 'Help:Susuang',
 'searchprofile-articles' => 'Suang bobolikon',
 'searchprofile-project' => 'Tatabang om Tongobolikon purujik',
 'searchprofile-images' => 'Multimodia',
@@ -1095,7 +1091,6 @@ Imurai no do indik suang diti {{SITENAME}} nopo nga nokolipas.',
 'recentchangeslinked' => 'Kinaalanan di kohompit',
 'recentchangeslinked-toolbox' => 'Kinaalanan di kohompit',
 'recentchangeslinked-title' => "Kinowolion 'parameter' it awu noguno: $1",
-'recentchangeslinked-noresult' => 'Ingaa nalanan do noputan bolikon id timpu nokomoi.',
 'recentchangeslinked-summary' => "Iti nopo nga lis kawawagu kaalanai winonsoi kumaa noputan bobolikon mantad bolikon pointantu (toi kumaa momomoguno tinansaran pointantu).
 Bobolikon id [[Special:Watchlist|lis pintangannu]] nopo nga '''pinakapal'''.",
 'recentchangeslinked-page' => 'Ngaran bolikon:',
index 233963f..ad3a3fe 100644 (file)
@@ -19,21 +19,32 @@ $rtl = true;
 
 $namespaceNames = array(
        NS_MEDIA            => 'މީޑިއާ',
-       NS_SPECIAL          => 'Þ\80Þ§Þ\87Þ°Þ\9eަ',
+       NS_SPECIAL          => 'Þ\9aÞ§Þ\87Þ°Þ\90ަ',
        NS_MAIN             => '',
        NS_TALK             => 'ޚިޔާލު',
        NS_USER             => 'މެމްބަރު',
        NS_USER_TALK        => 'މެމްބަރުގެ_ވާހަކަ',
-       NS_FILE             => 'ފައިލް',
-       NS_FILE_TALK        => 'ފައިލް_ޚިޔާލު',
+       NS_PROJECT_TALK     => '$1ގެ_ވާހަކަ',
+       NS_FILE             => 'ފައިލު',
+       NS_FILE_TALK        => 'ފައިލުގެ_ޚިޔާލު',
        NS_MEDIAWIKI        => 'މީޑިއާވިކީ',
-       NS_MEDIAWIKI_TALK   => 'Þ\89Þ©Þ\91Þ¨Þ\94Þ§Þ\88Þ¨Þ\86Þ¨_ޚިޔާލު',
+       NS_MEDIAWIKI_TALK   => 'Þ\89Þ¨Þ\91Þ¨Þ\87Þ§Þ\88Þ¨Þ\86Þ©_ޚިޔާލު',
        NS_TEMPLATE         => 'ފަންވަތް',
-       NS_TEMPLATE_TALK    => 'Þ\8aÞ¦Þ\82Þ°Þ\88Þ¦Þ\8cÞ°_ޚިޔާލު',
+       NS_TEMPLATE_TALK    => 'Þ\8aÞ¦Þ\82Þ°Þ\88Þ¦Þ\8cÞªÞ\8eÞ¬_ޚިޔާލު',
        NS_HELP             => 'އެހީ',
-       NS_HELP_TALK        => 'އެހީ_ޚިޔާލު',
+       NS_HELP_TALK        => 'އެހީގެ_ޚިޔާލު',
        NS_CATEGORY         => 'ޤިސްމު',
-       NS_CATEGORY_TALK    => 'ޤިސްމު_ޚިޔާލު',
+       NS_CATEGORY_TALK    => 'ޤިސްމުގެ_ޚިޔާލު',
+);
+
+$namespaceAliases = array(
+       'ހާއްޞަ'          => NS_SPECIAL,
+       'ފައިލް'           => NS_FILE,
+       'ފައިލް_ޚިޔާލު'    => NS_FILE_TALK,
+       'މީޑިޔާވިކި_ޚިޔާލު' => NS_MEDIAWIKI_TALK,
+       'ފަންވަތް_ޚިޔާލު'  => NS_TEMPLATE_TALK,
+       'އެހީ_ޚިޔާލު'      => NS_HELP_TALK,
+       'ޤިސްމު_ޚިޔާލު'   => NS_CATEGORY_TALK,
 );
 
 $specialPageAliases = array(
@@ -260,7 +271,6 @@ $1',
 'disclaimers' => 'އިއުލާނުތައް',
 'disclaimerpage' => 'Project:ޢާއްމު ޢިއުލާނުތައް',
 'edithelp' => 'ބަދަލުތައް ގެނައުމަށް އެހީ އެއް',
-'edithelppage' => 'އެހީ: އުނިއިތުރު ގެންނެވުން',
 'helppage' => 'Help:ފިހުރިސްތު',
 'mainpage' => 'މައި ޞަފްޙާ',
 'mainpage-description' => 'މައި ޞަފްޙާ',
@@ -488,7 +498,6 @@ $1',
 'shown-title' => 'ދައްކަވާނީ ޞަފްޙާއަކަށް $1 {{PLURAL:$1|ނަތީޖާ|ނަތީޖާ }}',
 'viewprevnext' => 'ބައްލަވާ($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-new' => "''' މި ވިކީގައި \"[[:\$1]]\" ފަށްޓަވައިދެއްވާ! '''",
-'searchhelp-url' => 'Help:ފިހުރިސްތު',
 'searchprofile-articles' => 'މަޒުމޫނު ޞަފްޙާތައް',
 'searchprofile-project' => 'އެހީ ޞަފްޙާތަކާއި މަޝްރޫޢު ޞަފްޙާތައް',
 'searchprofile-images' => 'މަލްޓިމީޑިއާ',
index a4c3d10..7e6016e 100644 (file)
@@ -31,6 +31,7 @@
  * @author Lou
  * @author MF-Warburg
  * @author Malafaya
+ * @author Nikosguard
  * @author Omnipaedista
  * @author Protnet
  * @author Reedy
@@ -98,13 +99,16 @@ $specialPageAliases = array(
        'Allmessages'               => array( 'ΌλαΤαΜηνύματα' ),
        'Allpages'                  => array( 'ΌλεςΟιΣελίδες' ),
        'Ancientpages'              => array( 'ΑρχαίεςΣελίδες' ),
+       'Badtitle'                  => array( 'ΚακόςΤίτλος' ),
        'Blankpage'                 => array( 'ΚενήΣελίδα' ),
        'Block'                     => array( 'Φραγή', 'ΦραγήIP', 'ΦραγήΧρήστη' ),
        'Blockme'                   => array( 'ΦραγήΕμένα' ),
        'Booksources'               => array( 'ΠηγέςΒιβλίων' ),
        'BrokenRedirects'           => array( 'ΚατεστραμμένεςΑνακατευθύνσεις' ),
        'Categories'                => array( 'Κατηγορίες' ),
+       'ChangeEmail'               => array( 'ΑλλαγήEmail' ),
        'ChangePassword'            => array( 'ΑλλαγήΚωδικού', 'ΑρχικοποίησηΠάσου', 'ΑρχικοποίησηΚωδικού' ),
+       'ComparePages'              => array( 'ΣύγκρισηΣελίδων' ),
        'Confirmemail'              => array( 'ΕπιβεβαίωσηEmail' ),
        'Contributions'             => array( 'Συνεισφορές' ),
        'CreateAccount'             => array( 'ΔημιουργίαΛογαριασμού' ),
@@ -143,6 +147,7 @@ $specialPageAliases = array(
        'Mycontributions'           => array( 'ΟιΣυνεισφορέςΜου' ),
        'Mypage'                    => array( 'ΗΣελίδαΜου' ),
        'Mytalk'                    => array( 'ΗΣυζήτησήΜου' ),
+       'Myuploads'                 => array( 'ΟιΕπιφορτώσειςΜου' ),
        'Newimages'                 => array( 'ΝέαΑρχεία', 'ΝέεςΕικόνες' ),
        'Newpages'                  => array( 'ΝέεςΣελίδες' ),
        'Popularpages'              => array( 'ΔημοφιλείςΣελίδες' ),
@@ -357,7 +362,7 @@ $messages = array(
 # User preference toggles
 'tog-underline' => 'Υπογράμμιση συνδέσμων:',
 'tog-justify' => 'Στοίχιση παραγράφων',
-'tog-hideminor' => 'Î\91Ï\80Ï\8cκÏ\81Ï\85Ï\88η Î±Î»Î»Î±Î³Ï\8eν Î¼Î¹ÎºÏ\81ήÏ\82 ÎºÎ»Î¯Î¼Î±ÎºÎ±ς',
+'tog-hideminor' => 'Î\91Ï\80Ï\8cκÏ\81Ï\85Ï\88η Î¼Î¹ÎºÏ\81οεÏ\80εξεÏ\81γαÏ\83ιÏ\8eν Ï\83Ï\84ιÏ\82 Ï\80Ï\81Ï\8cÏ\83Ï\86αÏ\84εÏ\82 Î±Î»Î»Î±Î³Î­ς',
 'tog-hidepatrolled' => 'Απόκρυψη ελεγμένων επεξεργασιών στις πρόσφατες αλλαγές',
 'tog-newpageshidepatrolled' => 'Απόκρυψη ελεγμένων σελίδων από τον κατάλογο νέων σελίδων',
 'tog-extendwatchlist' => 'Επέκταση της λίστας παρακολούθησης ώστε να δείχνει όλες τις αλλαγές, όχι μόνο τις πιο πρόσφατες',
@@ -374,7 +379,7 @@ $messages = array(
 'tog-watchmoves' => 'Προσθήκη σελίδων που μετακινώ στη λίστα παρακολούθησής μου',
 'tog-watchdeletion' => 'Προσθήκη σελίδων και αρχείων που διαγράφω στη λίστα παρακολούθησής μου',
 'tog-minordefault' => 'Σήμανση εκ προεπιλογής όλων των αλλαγών ως μικρής κλίμακας',
-'tog-previewontop' => 'Εμφάνιση προεπισκόπησης πριν από το πλαίσιο επεξεργασίας και όχι μετά',
+'tog-previewontop' => 'Εμφάνιση προεπισκόπησης πριν από το πλαίσιο επεξεργασίας',
 'tog-previewonfirst' => 'Εμφάνιση προεπισκόπησης κατά την πρώτη επεξεργασία',
 'tog-nocache' => 'Απενεργοποίηση κρυφής μνήμης',
 'tog-enotifwatchlistpages' => 'Να μου αποστέλλεται μήνυμα ηλεκτρονικού ταχυδρομείου όταν αλλάζει μια σελίδα ή ένα αρχείο που βρίσκεται στη λίστα παρακολούθησής μου',
@@ -384,7 +389,7 @@ $messages = array(
 'tog-shownumberswatching' => 'Εμφάνιση του αριθμού των συνδεδεμένων χρηστών',
 'tog-oldsig' => 'Υπάρχουσα υπογραφή:',
 'tog-fancysig' => 'Μεταχείριση υπογραφής ως κώδικα wiki (χωρίς αυτόματο σύνδεσμο)',
-'tog-showjumplinks' => 'Î\95νεÏ\81γοÏ\80οίηÏ\83ε Ï\84οÏ\85Ï\82 Ï\83Ï\85νδέÏ\83μοÏ\85Ï\82 Ï\80Ï\81οÏ\83βαÏ\83ιμÏ\8cÏ\84ηÏ\84αÏ\82 Ï\84οÏ\85 Ï\84Ï\8dÏ\80οÏ\85 "μεÏ\84άβαÏ\83η Ï\83ε"',
+'tog-showjumplinks' => 'Î\95νεÏ\81γοÏ\80οίηÏ\83η Ï\84Ï\89ν Ï\83Ï\85νδέÏ\83μÏ\89ν Ï\80Ï\81οÏ\83βαÏ\83ιμÏ\8cÏ\84ηÏ\84αÏ\82 Ï\84οÏ\85 Ï\84Ï\8dÏ\80οÏ\85 Â«Î¼ÎµÏ\84άβαÏ\83η Ï\83ε»',
 'tog-uselivepreview' => 'Χρήση ζωντανής προεπισκόπησης (απαιτεί JavaScript) (πειραματικό)',
 'tog-forceeditsummary' => 'Να ειδοποιούμαι κατά την εισαγωγή κενής σύνοψης επεξεργασίας',
 'tog-watchlisthideown' => 'Απόκρυψη των επεξεργασιών μου από τη λίστα παρακολούθησης',
@@ -402,7 +407,7 @@ $messages = array(
 
 'underline-always' => 'Πάντα',
 'underline-never' => 'Ποτέ',
-'underline-default' => 'ΠÏ\81οεÏ\80ιλεγμένο Ï\80Ï\81Ï\8cγÏ\81αμμα Ï\80εÏ\81ιήγηÏ\83ηÏ\82',
+'underline-default' => 'ΠÏ\81οεÏ\80ιλογή Î±Ï\80Ï\8c Ï\84ο skin Î® Î±Ï\80Ï\8c Ï\84ον Ï\80εÏ\81ιηγηÏ\84ή',
 
 # Font style option in Special:Preferences
 'editfont-style' => 'Τύπος γραμματοσειράς της περιοχής επεξεργασίας:',
@@ -462,6 +467,18 @@ $messages = array(
 'oct' => 'Οκτ',
 'nov' => 'Νοε',
 'dec' => 'Δεκ',
+'january-date' => 'Ιανουάριος $1',
+'february-date' => 'Φεβρουάριος $1',
+'march-date' => 'Μάρτιος $1',
+'april-date' => 'Απρίλιος $1',
+'may-date' => 'Μαΐος $1',
+'june-date' => 'Ιούνιος $1',
+'july-date' => 'Ιούλιος $1',
+'august-date' => 'Αύγουστος $1',
+'september-date' => 'Σεπτέμβριος $1',
+'october-date' => 'Οκτώβριος $1',
+'november-date' => 'Νοέμβριος $1',
+'december-date' => 'Δεκέμβριος $1',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Κατηγορία|Κατηγορίες}}',
@@ -596,7 +613,6 @@ $1',
 'disclaimers' => 'Αποποίηση ευθυνών',
 'disclaimerpage' => 'Project:Γενική αποποίηση',
 'edithelp' => 'Βοήθεια σχετικά με την επεξεργασία',
-'edithelppage' => 'Help:Επεξεργασία',
 'helppage' => 'Help:Περιεχόμενα',
 'mainpage' => 'Αρχική σελίδα',
 'mainpage-description' => 'Αρχική σελίδα',
@@ -867,7 +883,7 @@ $2',
 'cannotchangeemail' => "Οι διευθύνσεις ηλεκτρονικού ταχυδρομείου του λογαριασμού δεν μπορούν να αλλάξουν σ' αυτό το wiki.",
 'emaildisabled' => 'Αυτός ο ιστότοπος  δεν μπορεί να στείλει μηνύματα ηλεκτρονικού ταχυδρομείου.',
 'accountcreated' => 'Ο λογαριασμός δημιουργήθηκε',
-'accountcreatedtext' => 'Ο λογαριασμός χρήστη για τον/την $1 έχει δημιουργηθεί.',
+'accountcreatedtext' => 'Ο λογαριασμός χρήστη για τον/την [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|συζήτηση]]) έχει δημιουργηθεί.',
 'createaccount-title' => 'Δημιουργία λογαριασμού για {{SITENAME}}',
 'createaccount-text' => 'Κάποιος δημιούργησε έναν λογαριασμό για τη διεύθυνση email σας στο {{SITENAME}} ($4) με το όνομα "$2", με κωδικό πρόσβασης "$3". Θα πρέπει να συνδεθείτε και να αλλάξετε τον κωδικό πρόσβασής σας τώρα.
 
@@ -905,11 +921,11 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'Κωδικός επαναφοράς',
-'passwordreset-text' => 'Συμπληρώστε αυτή τη φόρμα για να επαναφέρετε τον κωδικό σας.',
+'passwordreset-text-one' => 'Συμπληρώστε την παρακάτω φόρμα για να επαναφέρετε τον κωδικό πρόσβασής σας.',
+'passwordreset-text-many' => '{{PLURAL:$1|Συμπληρώστε ένα από τα πεδία για να επαναφέρετε τον κωδικό πρόσβασής σας.}}',
 'passwordreset-legend' => 'Επαναφορά κωδικού πρόσβασης',
 'passwordreset-disabled' => 'Η επαναφορά κωδικού πρόσβασης έχει απενεργοποιηθεί σε αυτό το wiki',
 'passwordreset-emaildisabled' => "Τα χαρακτηριστικά ηλεκτρονικού ταχυδρομείου έχουν απενεργοποιηθεί σ' αυτό το wiki.",
-'passwordreset-pretext' => '{{PLURAL:$1||Εισάγεται ένα από τα στοιχεία δεδομένων που βλέπετε παρακάτω}}',
 'passwordreset-username' => 'Όνομα χρήστη:',
 'passwordreset-domain' => 'Domain:',
 'passwordreset-capture' => 'Προβολή του μηνύματος ηλεκτρονικού ταχυδρομείου που δημιουργήθηκε;',
@@ -1120,7 +1136,7 @@ $2
 'nocreate-loggedin' => 'Δεν έχετε άδεια να δημιουργήσετε νέες σελίδες.',
 'sectioneditnotsupported-title' => 'Δεν υποστηρίζετε η επεξεργασία τομέα',
 'sectioneditnotsupported-text' => 'Δεν υποστηρίζετε η επεξεργασία τομέα σε αυτήν τη σελίδα.',
-'permissionserrors' => 'Σφάλματα άδειας.',
+'permissionserrors' => 'Σφάλμα  άδειας',
 'permissionserrorstext' => 'Δεν έχετε άδεια να το κάνετε αυτό, για {{PLURAL:$1|τον εξής λόγο|τους εξής λόγους}}:',
 'permissionserrorstext-withaction' => 'Δεν έχετε άδεια για να $2, για {{PLURAL:$1|τον ακόλουθο λόγο|τους ακόλουθους λόγους}}:',
 'recreate-moveddeleted-warn' => "'''Προειδοποίηση: Ξαναδημιουργείτε μια σελίδα που είχε προηγουμένως διαγραφεί.'''
@@ -1136,6 +1152,7 @@ $2
 Φαίνεται πως έχει διαγραφεί.',
 'edit-conflict' => 'Σύγκρουση επεξεργασιών.',
 'edit-no-change' => 'Η επεξεργασία σας αγνοήθηκε, επειδή δεν έγινε καμία αλλαγή στο κείμενο.',
+'postedit-confirmation' => 'H επεξεργασία σας αποθηκεύτηκε.',
 'edit-already-exists' => 'Δεν ήταν εφικτό να δημιουργηθεί η νέα σελίδα.
 Υπάρχει ήδη.',
 'defaultmessagetext' => 'Προεπιλεγμένο κείμενο μηνύματος',
@@ -1143,7 +1160,7 @@ $2
 'invalid-content-data' => 'Μη έγκυρα δεδομένα περιεχομένου',
 'content-not-allowed-here' => 'Το περιεχόμενο «$1» δεν επιτρέπεται στη σελίδα [[$2]]',
 'editwarning-warning' => 'Αφήνοντας αυτή τη σελίδα μπορεί να σας κάνει να χάσετε κάποιες αλλαγές που έχετε κάνει.
\91ν Î­Ï\87εÏ\84ε Ï\83Ï\85νδεθεί, Î¼Ï\80οÏ\81είÏ\84ε Î½Î± Î±Ï\80ενεÏ\81γοÏ\80οιήÏ\83εÏ\84ε Î±Ï\85Ï\84ή Ï\84ην Ï\80Ï\81οειδοÏ\80οίηÏ\83η Ï\83Ï\84ο Ï\84μήμα "{{int:prefs-editing}}" των προτιμήσεών σας.',
\91ν Î­Ï\87εÏ\84ε Ï\83Ï\85νδεθεί, Î¼Ï\80οÏ\81είÏ\84ε Î½Î± Î±Ï\80ενεÏ\81γοÏ\80οιήÏ\83εÏ\84ε Î±Ï\85Ï\84ή Ï\84ην Ï\80Ï\81οειδοÏ\80οίηÏ\83η Ï\83Ï\84ην  ÎµÎ½Ï\8cÏ\84ηÏ\84α "Î\95Ï\80εξεÏ\81γαÏ\83ία" των προτιμήσεών σας.',
 
 # Content models
 'content-model-wikitext' => 'βικικείμενο',
@@ -1169,6 +1186,8 @@ $2
 'node-count-exceeded-warning' => 'Η σελίδα έχει υπερβεί τον αριθμό κόμβων',
 'expansion-depth-exceeded-category' => 'Σελίδες υπέρβασης της επέκτασης σε βάθος',
 'expansion-depth-exceeded-warning' => 'Η σελίδα υπερέβη το βάθος επέκτασης',
+'parser-unstrip-loop-warning' => 'εντοπίστηκε ένας βρόχος unstrip',
+'parser-unstrip-recursion-limit' => 'Υπέρβαση του ορίου αναδρομής Unstrip ($1)',
 'converter-manual-rule-error' => 'Εντοπίστηκε σφάλμα σε μη αυτόματο κανόνα μετατροπής γλώσσας',
 
 # "Undo" feature
@@ -1381,7 +1400,6 @@ $1",
 'searchmenu-legend' => 'Επιλογές αναζήτησης',
 'searchmenu-exists' => "'''Υπάρχει μια σελίδα που ονομάζεται \"[[:\$1]]\" σε αυτό το wiki'''",
 'searchmenu-new' => "'''Δημιουργήστε τη σελίδα «[[:$1]]» σε αυτό το wiki!'''",
-'searchhelp-url' => 'Help:Περιεχόμενα',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Πλοηγηθείτε σε σελίδες με αυτό το πρόθεμα]]',
 'searchprofile-articles' => 'Σελίδες περιεχομένων',
 'searchprofile-project' => 'Βοήθεια και σελίδες εγχειρημάτων',
@@ -1456,7 +1474,6 @@ $1",
 'resetprefs' => 'Επαναφορά προτιμήσεων',
 'restoreprefs' => 'Επαναφορά όλων των προεπιλεγμένων ρυθμίσεων',
 'prefs-editing' => 'Επεξεργασία',
-'prefs-edit-boxsize' => 'Μέγεθος του παραθύρου επεξεργασίας.',
 'rows' => 'Σειρές',
 'columns' => 'Στήλες',
 'searchresultshead' => 'Αποτελέσματα αναζήτησης/Ρυθμίσεις',
@@ -1467,9 +1484,6 @@ $1",
 'recentchangesdays-max' => '($1 {{PLURAL:$1|ημέρα|ημέρες}} το μέγιστο)',
 'recentchangescount' => 'Αριθμός επεξεργασιών που να εμφανίζονται για προεπιλογή.',
 'prefs-help-recentchangescount' => 'Αυτό περιλαμβάνει τις πρόσφατες αλλαγές, τα ιστορικά των σελίδων, και τα αρχεία διαγραφών.',
-'prefs-help-watchlist-token' => 'Η συμπλήρωση αυτού του πεδίου με ένα κρυφό κλειδί θα δημιουργήσει μια δράση RSS για τη λίστα παρακολούθησής σας.
-Οποιοσδήποτε ξέρει το κλειδί σε αυτό το πεδίο θα μπορεί να διαβάσει τη λίστα παρακολούθησής σας, για αυτό διαλέξτε κάτι ασφαλές.
-Εδώ είναι ένα τυχαίως δημιουργημένο προϊόν που μπορείτε να χρησιμοποιήσετε: $1',
 'savedprefs' => 'Οι προτιμήσεις σας έχουν αποθηκευτεί.',
 'timezonelegend' => 'Ζώνη ώρας:',
 'localtime' => 'Εμφάνιση τοπικής ώρας:',
@@ -1499,7 +1513,6 @@ $1",
 'prefs-common-css-js' => 'Κοινά CSS/JS για όλα τα skins:',
 'prefs-reset-intro' => 'Μπορείτε να χρησιμοποιήσετε αυτήν την σελίδα για να επαναρρυθμίσετε τις προτιμήσεις σας στις προεπιλογές του ιστότοπου. Αυτό δεν μπορεί να αναστρεφθεί.',
 'prefs-emailconfirm-label' => 'Επιβεβαίωση e-mail:',
-'prefs-textboxsize' => 'Μέγεθος πλαίσιου επεξεργασίας',
 'youremail' => 'Ηλεκτρονική διεύθυνση*',
 'username' => '{{GENDER:$1|Όνομα χρήστη}}:',
 'uid' => '{{GENDER:$1|Αναγνωριστικό χρήστη}}:',
@@ -1564,6 +1577,7 @@ $1",
 'userrights-notallowed' => 'Ο λογαριασμός σας δεν έχει άδεια για να προσθέσει ή να αφαιρέσει  δικαιώματα χρηστών.',
 'userrights-changeable-col' => 'Ομάδες που μπορείτε να αλλάξετε',
 'userrights-unchangeable-col' => 'Ομάδες που δεν μπορείτε να αλλάξετε',
+'userrights-conflict' => 'Σύγκρουση δικαιωμάτων χρήστη! Παρακαλώ κάντε πάλι εφαρμογή των αλλαγών σας.',
 
 # Groups
 'group' => 'Ομάδα:',
@@ -1737,7 +1751,6 @@ $1",
 'recentchangeslinked-feed' => 'Σχετικές αλλαγές',
 'recentchangeslinked-toolbox' => 'Σχετικές αλλαγές',
 'recentchangeslinked-title' => 'Αλλαγές σχετικές με το "$1"',
-'recentchangeslinked-noresult' => 'Δεν υπάρχουν αλλαγές στις συνδεδεμένες σελίδες κατά τη διάρκεια της δοσμένης περιόδου.',
 'recentchangeslinked-summary' => "Αυτός είναι ένα κατάλογος αλλαγών που έγιναν πρόσφατα σε σελίδες που συνδέονται από μια καθορισμένη σελίδα (ή σε μέλη μιας καθορισμένης κατηγορίας).
 Σελίδες στην [[Special:Watchlist|λίστα παρακολούθησής]] σας είναι '''έντονες'''.",
 'recentchangeslinked-page' => 'Όνομα σελίδας:',
@@ -2120,6 +2133,8 @@ $1',
 Αντιθέτως θα έπρεπε να κατευθύνουν στο κατάλληλο θέμα.<br />
 Μια σελίδα αντιμετωπίζεται ως σελίδα αποσαφήνισης αν χρησιμοποιεί ένα πρότυπο το οποίο συνδέεται από το [[MediaWiki:Disambiguationspage]]",
 
+'pageswithprop' => 'Σελίδες με ιδιότητα σελίδας',
+'pageswithprop-legend' => 'Σελίδες με ιδιότητα σελίδας',
 'pageswithprop-text' => 'Αυτή η σελίδα ταξινομεί σελίδες που χρησιμοποιούν μια συγκεκριμένη ιδιότητα σελίδας.',
 'pageswithprop-prop' => 'Όνομα ιδιότητας:',
 'pageswithprop-submit' => 'Μετάβαση',
@@ -2371,9 +2386,8 @@ $1',
 'unwatchthispage' => 'Παύση παρακολούθησης αυτής της σελίδας',
 'notanarticle' => 'Η σελίδα αυτή δεν είναι σελίδα περιεχομένου.',
 'notvisiblerev' => 'Η έκδοση έχει διαγραφεί',
-'watchnochange' => 'Δεν υπήρξε δραστηριότητα επεξεργασίας στις σελίδες που παρακολουθείτε κατά την εμφανιζόμενη χρονική περίοδο.',
 'watchlist-details' => '{{PLURAL:$1|$1 σελίδα|$1 σελίδες}} είναι στη λίστα παρακολούθησης σας, χωρίς τις σελίδες συζήτησης.',
-'wlheader-enotif' => 'Î\97 ÎµÎ¹Î´Î¿Ï\80οίηÏ\83η Î¼Îµ Î·Î»ÎµÎºÏ\84Ï\81ονικÏ\8c Ï\84αÏ\87Ï\85δÏ\81ομείο Î­Ï\87ει ÎµÎ½ÎµÏ\81γοÏ\80οιηθεί.',
+'wlheader-enotif' => 'Î\97 ÎµÎ¹Î´Î¿Ï\80οίηÏ\83η Î·Î»ÎµÎºÏ\84Ï\81ονικοÏ\8d Ï\84αÏ\87Ï\85δÏ\81ομείοÏ\85 ÎµÎ½ÎµÏ\81γοÏ\80οιήθηκε.',
 'wlheader-showupdated' => "Σελίδες που έχουν υποστεί αλλαγές από την τελευταία φορά που τις επισκεφθήκατε εμφανίζονται με '''έντονους χαρακτήρες'''.",
 'watchmethod-recent' => 'Έλεγχος πρόσφατων αλλαγών σε σελίδες υπό παρακολούθηση',
 'watchmethod-list' => 'Έλεγχος σελίδων υπό παρακολούθηση για πρόσφατες αλλαγές',
@@ -2620,7 +2634,7 @@ $1',
 'mycontris' => 'Συνεισφορές',
 'contribsub2' => 'Για τον/την $1 ($2)',
 'nocontribs' => 'Δεν βρέθηκαν αλλαγές με αυτά τα κριτήρια.',
-'uctop' => '(τελευταία)',
+'uctop' => '(κορυφή)',
 'month' => 'Από τον μήνα (και νωρίτερα):',
 'year' => 'Από τη χρονιά (και νωρίτερα):',
 
@@ -2942,6 +2956,8 @@ $1',
 'thumbnail-more' => 'Μεγέθυνση',
 'filemissing' => 'Αγνοούμενο αρχείο',
 'thumbnail_error' => 'Σφάλμα στη δημιουργία μικρογραφίας: $1',
+'thumbnail_error_remote' => 'Μήνυμα σφάλματος από  $1:
+$2',
 'djvu_page_error' => 'Σελίδα DjVu εκτός ορίων',
 'djvu_no_xml' => 'Αδυναμία προσκόμισης XML για το αρχείο DjVu',
 'thumbnail-temp-create' => 'Αδύνατη η δημιουργία προσωρινού αρχείου μικρογραφίας',
@@ -3867,7 +3883,6 @@ $5
 'version-other' => 'Άλλα',
 'version-mediahandlers' => 'Χειριστές των μέσων',
 'version-hooks' => 'Άγκιστρα',
-'version-extension-functions' => 'Συναρτήσεις επεκτάσεων',
 'version-parser-extensiontags' => 'Ετικέτες επεκτάσεων του συντακτικού αναλυτή',
 'version-parser-function-hooks' => 'Άγκιστρα συναρτήσεων του συντακτικού αναλυτή',
 'version-hook-name' => 'Όνομα άγκιστρου',
@@ -3892,6 +3907,7 @@ $5
 # Special:Redirect
 'redirect-legend' => 'Ανακατεύθυνση σε ένα αρχείο ή μια σελίδα',
 'redirect-submit' => 'Μετάβαση',
+'redirect-lookup' => 'Αναζήτηση:',
 'redirect-value' => 'Τιμή:',
 'redirect-user' => 'Αναγνωριστικό χρήση',
 'redirect-revision' => 'Αναθεώρηση σελίδας',
@@ -3988,6 +4004,7 @@ $5
 'htmlform-selectorother-other' => 'Άλλο',
 'htmlform-no' => 'Όχι',
 'htmlform-yes' => 'Ναι',
+'htmlform-chosen-placeholder' => 'Κάντε μια επιλογή',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 με υποστήριξη αναζήτησης πλήρους κειμένου',
@@ -3997,14 +4014,14 @@ $5
 'logentry-delete-delete' => '{{GENDER:$1|Ο|Η}} $1 διέγραψε τη σελίδα $3',
 'logentry-delete-restore' => 'Ο/Η $1 αποκατέστησε τη σελίδα $3',
 'logentry-delete-event' => ' $1 {{GENDER:$1|άλλαξε}} την ορατότητα σε {{PLURAL:$5|ένα γεγονός καταγραφής|$5 γεγονότα καταγραφής}} στο $3: $4',
-'logentry-delete-revision' => '{{GENDER:$1|Ο|Η}} $1 άλλαξε την ορατότητα {{PLURAL:$5|μιας έκδοσης|$5 εκδόσεων}} στη σελίδα $3: $4',
+'logentry-delete-revision' => '$1 {{GENDER:$2|άλλαξε}} άλλαξε την ορατότητα {{PLURAL:$5|μια έκδοση|$5 εκδόσεις}} στη σελίδα $3: $4',
 'logentry-delete-event-legacy' => '{{GENDER:$2|Ο|Η}} $1 άλλαξε την ορατότητα των καταγραφόμενων συμβάντων στη σελίδα $3',
-'logentry-delete-revision-legacy' => '{{GENDER:$1|Ο|Η}} $1 άλλαξε την  ορατότητα των αναθεωρήσεων στη σελίδα $3',
-'logentry-suppress-delete' => '{{GENDER:$1|Ο|Η}} $1 διέγραψε τη σελίδα $3',
+'logentry-delete-revision-legacy' => '$1 {{GENDER:$2|άλλαξε}} την  ορατότητα των αναθεωρήσεων στη σελίδα $3',
+'logentry-suppress-delete' => '$1 {{GENDER:$2|διέγραψε}} τη σελίδα $3',
 'logentry-suppress-event' => '{{Gender:$2|Ο|Η}} $1 άλλαξε μυστικά την ορατότητα {{PLURAL:$5|ενός καταγραφόμενου συμβάντος|$5 καταγραφόμενων συμβάντων}} στη σελίδα $3: $4',
 'logentry-suppress-revision' => '{{Gender:$2|Ο|Η}} $1 άλλαξε μυστικά την ορατότητα {{PLURAL:$5|μίας αναθεώρησης|$5 αναθεωρήσεων}} στη σελίδα $3: $4',
 'logentry-suppress-event-legacy' => '{{Gender:$2|Ο|Η}} $1 άλλαξε μυστικά την ορατότητα των καταγραφόμενων συμβάντων στη σελίδα $3',
-'logentry-suppress-revision-legacy' => '$1 κρυφά άλλαξαν την  ορατότητα των αναθεωρήσεων στη σελίδα $3',
+'logentry-suppress-revision-legacy' => '{{Gender:$2|Ο|Η}} $1 άλλαξε μυστικά την ορατότητα των αναθεωρήσεων στη σελίδα $3',
 'revdelete-content-hid' => 'το περιεχόμενο αποκρύφθηκε',
 'revdelete-summary-hid' => 'Η σύνοψη επεξεργασίας αποκρύφθηκε',
 'revdelete-uname-hid' => 'Το όνομα χρήστη αποκρύφθηκε',
@@ -4013,19 +4030,19 @@ $5
 'revdelete-uname-unhid' => 'το όνομα χρήστη έπαψε να είναι κρυφό',
 'revdelete-restricted' => 'εφάρμοσε περιορισμούς στους sysops',
 'revdelete-unrestricted' => 'αφαίρεσε περιορισμούς στους sysops',
-'logentry-move-move' => '{{GENDER:$1|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στη $4',
-'logentry-move-move-noredirect' => '{{GENDER:$1|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στη $4 χωρίς να αφήσει ανακατεύθυνση',
-'logentry-move-move_redir' => '{{GENDER:$1|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στη $4 πάνω από την ανανακατεύθυνση',
+'logentry-move-move' => '{{GENDER:$2|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στη $4',
+'logentry-move-move-noredirect' => '{{GENDER:$2|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στη $4 χωρίς να αφήσει ανακατεύθυνση',
+'logentry-move-move_redir' => '{{GENDER:$2|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στη $4 πάνω από την ανακατεύθυνση',
 'logentry-move-move_redir-noredirect' => '{{GENDER:$2|Ο|Η}} $1 μετακίνησε την σελίδα $3 στην $4 πάνω από μια ανακατεύθυνση χωρίς να αφήσει ανακατεύθυνση',
 'logentry-patrol-patrol' => '{{GENDER:$2|Ο|Η}} $1 επισήμανε την έκδοση $4 της σελίδας $3 ως ελεγμένη',
-'logentry-patrol-patrol-auto' => '{{GENDER:$1|Ο|Η}} $1 αυτόματα σήμανε την έκδοση $4 της σελίδας $3 ως ελεγμένη',
+'logentry-patrol-patrol-auto' => '{{GENDER:$2|Ο|Η}} $1 αυτόματα σήμανε την έκδοση $4 της σελίδας $3 ως ελεγμένη',
 'logentry-newusers-newusers' => 'Ο λογαριασμός χρήστη $1 {{GENDER:$2|δημιουργήθηκε}}',
 'logentry-newusers-create' => 'Ο λογαριασμός χρήστη $1 {{GENDER:$2|δημιουργήθηκε}}',
 'logentry-newusers-create2' => 'Ο λογαριασμός χρήστη $3 δημιουργήθηκε από {{GENDER:$2|τον|την}} $1',
-'logentry-newusers-byemail' => 'Ο λογαριασμός χρήστη $3 δημιουργήθηκε από τον $1  και ο κωδικός πρόσβασης εστάλη μέσω ηλεκτρονικού ταχυδρομείου',
-'logentry-newusers-autocreate' => 'Ο λογαριασμός $1 δημιουργήθηκε αυτόματα',
-'logentry-rights-rights' => '{{GENDER:$1|Ο|Η}} $1 άλλαξε την ιδιότητα μέλους ομάδας για {{GENDER:$3|τον|την}} $3 από $4 σε $5',
-'logentry-rights-rights-legacy' => '{{GENDER:$1|Ο|Η}} $1 άλλαξε την ιδιότητα μέλους ομάδας {{GENDER:$1|του|της}} $3',
+'logentry-newusers-byemail' => 'Ο λογαριασμός χρήστη $3 δημιουργήθηκε από {{GENDER:$2|τον|την}} $1 και ο κωδικός πρόσβασης εστάλη μέσω ηλεκτρονικού ταχυδρομείου',
+'logentry-newusers-autocreate' => 'Ο λογαριασμός χρήστη $1 δημιουργήθηκε αυτόματα',
+'logentry-rights-rights' => '{{GENDER:$2|Ο|Η}} $1 άλλαξε την ιδιότητα μέλους ομάδας για {{GENDER:$3|τον|την}} $3 από $4 σε $5',
+'logentry-rights-rights-legacy' => '{{GENDER:$2|Ο|Η}} $1 άλλαξε την ιδιότητα μέλους ομάδας {{GENDER:$1|του|της}} $3',
 'logentry-rights-autopromote' => '$1 {{GENDER:$2|προωθήθηκε}} αυτόματα από το $4 στο $5',
 'rightsnone' => '(κανένα)',
 
index bc3a381..b525465 100644 (file)
@@ -274,6 +274,7 @@ $magicWords = array(
        'img_center'              => array( 1,    'center', 'centre' ),
        'img_framed'              => array( 1,    'framed', 'enframed', 'frame' ),
        'img_frameless'           => array( 1,    'frameless' ),
+       'img_lang'                => array( 1,    'lang=$1' ),
        'img_page'                => array( 1,    'page=$1', 'page $1' ),
        'img_upright'             => array( 1,    'upright', 'upright=$1', 'upright $1' ),
        'img_border'              => array( 1,    'border' ),
@@ -449,6 +450,7 @@ $specialPageAliases = array(
        'Recentchanges'             => array( 'RecentChanges' ),
        'Recentchangeslinked'       => array( 'RecentChangesLinked', 'RelatedChanges' ),
        'Redirect'                  => array( 'Redirect' ),
+       'ResetTokens'               => array( 'ResetTokens' ),
        'Revisiondelete'            => array( 'RevisionDelete' ),
        'Search'                    => array( 'Search' ),
        'Shortpages'                => array( 'ShortPages' ),
@@ -468,8 +470,8 @@ $specialPageAliases = array(
        'Unwatchedpages'            => array( 'UnwatchedPages' ),
        'Upload'                    => array( 'Upload' ),
        'UploadStash'               => array( 'UploadStash' ),
-       'Userlogin'                 => array( 'UserLogin' ),
-       'Userlogout'                => array( 'UserLogout' ),
+       'Userlogin'                 => array( 'UserLogin', 'Login' ),
+       'Userlogout'                => array( 'UserLogout', 'Logout' ),
        'Userrights'                => array( 'UserRights', 'MakeSysop', 'MakeBot' ),
        'Version'                   => array( 'Version' ),
        'Wantedcategories'          => array( 'WantedCategories' ),
@@ -540,7 +542,6 @@ $preloadedMessages = array(
        'disclaimers',
        'edit',
        'editsection',
-       'editsection-brackets',
        'editsectionhint',
        'help',
        'helppage',
@@ -702,56 +703,56 @@ future releases. Also note that since each list value is wrapped in a unique
 'editfont-serif'     => 'Serif font',
 
 # Dates
-'sunday'        => 'Sunday',
-'monday'        => 'Monday',
-'tuesday'       => 'Tuesday',
-'wednesday'     => 'Wednesday',
-'thursday'      => 'Thursday',
-'friday'        => 'Friday',
-'saturday'      => 'Saturday',
-'sun'           => 'Sun',
-'mon'           => 'Mon',
-'tue'           => 'Tue',
-'wed'           => 'Wed',
-'thu'           => 'Thu',
-'fri'           => 'Fri',
-'sat'           => 'Sat',
-'january'       => 'January',
-'february'      => 'February',
-'march'         => 'March',
-'april'         => 'April',
-'may_long'      => 'May',
-'june'          => 'June',
-'july'          => 'July',
-'august'        => 'August',
-'september'     => 'September',
-'october'       => 'October',
-'november'      => 'November',
-'december'      => 'December',
-'january-gen'   => 'January',
-'february-gen'  => 'February',
-'march-gen'     => 'March',
-'april-gen'     => 'April',
-'may-gen'       => 'May',
-'june-gen'      => 'June',
-'july-gen'      => 'July',
-'august-gen'    => 'August',
-'september-gen' => 'September',
-'october-gen'   => 'October',
-'november-gen'  => 'November',
-'december-gen'  => 'December',
-'jan'           => 'Jan',
-'feb'           => 'Feb',
-'mar'           => 'Mar',
-'apr'           => 'Apr',
-'may'           => 'May',
-'jun'           => 'Jun',
-'jul'           => 'Jul',
-'aug'           => 'Aug',
-'sep'           => 'Sep',
-'oct'           => 'Oct',
-'nov'           => 'Nov',
-'dec'           => 'Dec',
+'sunday'         => 'Sunday',
+'monday'         => 'Monday',
+'tuesday'        => 'Tuesday',
+'wednesday'      => 'Wednesday',
+'thursday'       => 'Thursday',
+'friday'         => 'Friday',
+'saturday'       => 'Saturday',
+'sun'            => 'Sun',
+'mon'            => 'Mon',
+'tue'            => 'Tue',
+'wed'            => 'Wed',
+'thu'            => 'Thu',
+'fri'            => 'Fri',
+'sat'            => 'Sat',
+'january'        => 'January',
+'february'       => 'February',
+'march'          => 'March',
+'april'          => 'April',
+'may_long'       => 'May',
+'june'           => 'June',
+'july'           => 'July',
+'august'         => 'August',
+'september'      => 'September',
+'october'        => 'October',
+'november'       => 'November',
+'december'       => 'December',
+'january-gen'    => 'January',
+'february-gen'   => 'February',
+'march-gen'      => 'March',
+'april-gen'      => 'April',
+'may-gen'        => 'May',
+'june-gen'       => 'June',
+'july-gen'       => 'July',
+'august-gen'     => 'August',
+'september-gen'  => 'September',
+'october-gen'    => 'October',
+'november-gen'   => 'November',
+'december-gen'   => 'December',
+'jan'            => 'Jan',
+'feb'            => 'Feb',
+'mar'            => 'Mar',
+'apr'            => 'Apr',
+'may'            => 'May',
+'jun'            => 'Jun',
+'jul'            => 'Jul',
+'aug'            => 'Aug',
+'sep'            => 'Sep',
+'oct'            => 'Oct',
+'nov'            => 'Nov',
+'dec'            => 'Dec',
 'january-date'   => 'January $1',
 'february-date'  => 'February $1',
 'march-date'     => 'March $1',
@@ -851,6 +852,7 @@ future releases. Also note that since each list value is wrapped in a unique
 'create-this-page'   => 'Create this page',
 'delete'             => 'Delete',
 'deletethispage'     => 'Delete this page',
+'undeletethispage'   => 'Undelete this page',
 'undelete_short'     => 'Undelete {{PLURAL:$1|one edit|$1 edits}}',
 'viewdeleted_short'  => 'View {{PLURAL:$1|one deleted edit|$1 deleted edits}}',
 'protect'            => 'Protect',
@@ -906,7 +908,7 @@ $1',
 'disclaimers'          => 'Disclaimers',
 'disclaimerpage'       => 'Project:General disclaimer',
 'edithelp'             => 'Editing help',
-'edithelppage'         => 'Help:Editing',
+'edithelppage'         => '//www.mediawiki.org/wiki/Special:MyLanguage/Help:Editing_pages', # do not translate or duplicate this message to other languages
 'helppage'             => 'Help:Contents',
 'mainpage'             => 'Main Page',
 'mainpage-description' => 'Main page',
@@ -939,7 +941,6 @@ See [[Special:Version|version page]].',
 'youhavenewmessagesmulti'      => 'You have new messages on $1',
 'newtalkseparator'             => ',&#32;', # do not translate or duplicate this message to other languages
 'editsection'                  => 'edit',
-'editsection-brackets'         => '[$1]', # only translate this message to other languages if you have to change it
 'editold'                      => 'edit',
 'viewsourceold'                => 'view source',
 'editlink'                     => 'edit',
@@ -1068,6 +1069,10 @@ $2',
 'namespaceprotected'            => "You do not have permission to edit pages in the '''$1''' namespace.",
 'customcssprotected'            => "You do not have permission to edit this CSS page because it contains another user's personal settings.",
 'customjsprotected'             => "You do not have permission to edit this JavaScript page because it contains another user's personal settings.",
+'mycustomcssprotected'          => 'You do not have permission to edit this CSS page.',
+'mycustomjsprotected'           => 'You do not have permission to edit this JavaScript page.',
+'myprivateinfoprotected'        => 'You do not have permission to edit your private information.',
+'mypreferencesprotected'        => 'You do not have permission to edit your preferences.',
 'ns-specialprotected'           => 'Special pages cannot be edited.',
 'titleprotected'                => 'This title has been protected from creation by [[User:$1|$1]].
 The reason given is "\'\'$2\'\'".',
@@ -1095,7 +1100,8 @@ Do not forget to change your [[Special:Preferences|{{SITENAME}} preferences]].',
 'yourname'                        => 'Username:',
 'userlogin-yourname'              => 'Username',
 'userlogin-yourname-ph'           => 'Enter your username',
-'createacct-helpusername'      => '', # do not translate or duplicate this message to other languages
+'createacct-another-username-ph'  => 'Enter the username',
+'createacct-helpusername'         => '', # do not translate or duplicate this message to other languages
 'yourpassword'                    => 'Password:',
 'userlogin-yourpassword'          => 'Password',
 'userlogin-yourpassword-ph'       => 'Enter your password',
@@ -1131,9 +1137,11 @@ Do not forget to change your [[Special:Preferences|{{SITENAME}} preferences]].',
 'helplogin-url'                   => 'Help:Logging in',
 'userlogin-helplink'              => '[[{{MediaWiki:helplogin-url}}|Help with logging in]]',
 'createacct-join'                 => 'Enter your information below.',
+'createacct-another-join'         => "Enter the new account's information below.",
 'createacct-emailrequired'        => 'Email address',
 'createacct-emailoptional'        => 'Email address (optional)',
 'createacct-email-ph'             => 'Enter your email address',
+'createacct-another-email-ph'     => 'Enter email address',
 'createaccountmail'               => 'Use a temporary random password and send it to the email address specified below',
 'createacct-realname'             => 'Real name (optional)',
 'createaccountreason'             => 'Reason:',
@@ -1143,6 +1151,7 @@ Do not forget to change your [[Special:Preferences|{{SITENAME}} preferences]].',
 'createacct-imgcaptcha-help'      => '', # do not translate or duplicate this message to other languages
 'createacct-imgcaptcha-ph'        => 'Enter the text you see above',
 'createacct-submit'               => 'Create your account',
+'createacct-another-submit'       => 'Create another account',
 'createacct-benefit-heading'      => '{{SITENAME}} is made by people like you.',
 'createacct-benefit-icon1'        => 'icon-edits', # do not translate or duplicate this message to other languages
 'createacct-benefit-head1'        => '{{NUMBEROFEDITS}}', # do not translate or duplicate this message to other languages
@@ -1225,7 +1234,7 @@ Please enter a well-formatted address or empty that field.',
 'cannotchangeemail'               => 'Account email addresses cannot be changed on this wiki.',
 'emaildisabled'                   => 'This site cannot send emails.',
 'accountcreated'                  => 'Account created',
-'accountcreatedtext'              => 'The user account for $1 has been created.',
+'accountcreatedtext'              => 'The user account for [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) has been created.',
 'createaccount-title'             => 'Account creation for {{SITENAME}}',
 'createaccount-text'              => 'Someone created an account for your email address on {{SITENAME}} ($4) named "$2", with password "$3".
 You should log in and change your password now.
@@ -1275,11 +1284,11 @@ You may have already successfully changed your password or requested a new tempo
 
 # Special:PasswordReset
 'passwordreset'                    => 'Reset password',
-'passwordreset-text'               => 'Complete this form to reset your password.',
+'passwordreset-text-one'           => 'Complete this form to reset your password.',
+'passwordreset-text-many'          => '{{PLURAL:$1|Fill one of the fields to reset your password.}}',
 'passwordreset-legend'             => 'Reset password',
 'passwordreset-disabled'           => 'Password resets have been disabled on this wiki.',
 'passwordreset-emaildisabled'      => 'Email features have been disabled on this wiki.',
-'passwordreset-pretext'            => '{{PLURAL:$1||Enter one of the pieces of data below}}',
 'passwordreset-username'           => 'Username:',
 'passwordreset-domain'             => 'Domain:',
 'passwordreset-capture'            => 'View the resulting email?',
@@ -1326,6 +1335,20 @@ Temporary password: $2',
 'changeemail-submit'   => 'Change email',
 'changeemail-cancel'   => 'Cancel',
 
+# Special:ResetTokens
+'resettokens'                 => 'Reset tokens',
+'resettokens-summary'         => '', # do not translate or duplicate this message to other languages
+'resettokens-text'            => 'You can reset tokens which allow access to certain private data associated with your account here.
+
+You should do it if you accidentally shared them with someone or if your account has been compromised.',
+'resettokens-no-tokens'       => 'There are no tokens to reset.',
+'resettokens-legend'          => 'Reset tokens',
+'resettokens-tokens'          => 'Tokens:',
+'resettokens-token-label'     => '$1 (current value: $2)',
+'resettokens-watchlist-token' => 'Watchlist web feed token',
+'resettokens-done'            => 'Tokens reset.',
+'resettokens-resetbutton'     => 'Reset selected tokens',
+
 # Edit page toolbar
 'bold_sample'     => 'Bold text',
 'bold_tip'        => 'Bold text',
@@ -1526,7 +1549,7 @@ You can go back and edit an existing page, or [[Special:UserLogin|log in or crea
 'nocreate-loggedin'                => 'You do not have permission to create new pages.',
 'sectioneditnotsupported-title'    => 'Section editing not supported',
 'sectioneditnotsupported-text'     => 'Section editing is not supported in this page.',
-'permissionserrors'                => 'Permissions errors',
+'permissionserrors'                => 'Permission error',
 'permissionserrorstext'            => 'You do not have permission to do that, for the following {{PLURAL:$1|reason|reasons}}:',
 'permissionserrorstext-withaction' => 'You do not have permission to $2, for the following {{PLURAL:$1|reason|reasons}}:',
 'recreate-moveddeleted-warn'       => "'''Warning: You are recreating a page that was previously deleted.'''
@@ -1542,6 +1565,7 @@ It gave no explanation.',
 It appears to have been deleted.',
 'edit-conflict'                    => 'Edit conflict.',
 'edit-no-change'                   => 'Your edit was ignored because no change was made to the text.',
+'postedit-confirmation'            => 'Your edit was saved.',
 'edit-already-exists'              => 'Could not create a new page.
 It already exists.',
 'addsection-preload'               => '', # do not translate or duplicate this message to other languages
@@ -1582,11 +1606,12 @@ These arguments have been omitted.",
 'converter-manual-rule-error'             => 'Error detected in manual language conversion rule',
 
 # "Undo" feature
-'undo-success' => 'The edit can be undone.
+'undo-success'                 => 'The edit can be undone.
 Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.',
-'undo-failure' => 'The edit could not be undone due to conflicting intermediate edits.',
-'undo-norev'   => 'The edit could not be undone because it does not exist or was deleted.',
-'undo-summary' => 'Undo revision $1 by [[Special:Contributions/$2|$2]] ([[User talk:$2|talk]])',
+'undo-failure'                 => 'The edit could not be undone due to conflicting intermediate edits.',
+'undo-norev'                   => 'The edit could not be undone because it does not exist or was deleted.',
+'undo-summary'                 => 'Undo revision $1 by [[Special:Contributions/$2|$2]] ([[User talk:$2|talk]])',
+'undo-summary-username-hidden' => 'Undo revision $1 by a hidden user',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Cannot create account',
@@ -1616,8 +1641,8 @@ Legend: '''({{int:cur}})''' = difference with latest revision, '''({{int:last}})
 'history-fieldset-title' => 'Browse history',
 'history-show-deleted'   => 'Deleted only',
 'history_copyright'      => '-', # do not translate or duplicate this message to other languages
-'histfirst'              => 'Earliest',
-'histlast'               => 'Latest',
+'histfirst'              => 'oldest',
+'histlast'               => 'newest',
 'historysize'            => '({{PLURAL:$1|1 byte|$1 bytes}})',
 'historyempty'           => '(empty)',
 
@@ -1773,6 +1798,7 @@ Note that using the navigation links will reset this column.',
 'compareselectedversions'     => 'Compare selected revisions',
 'showhideselectedversions'    => 'Show/hide selected revisions',
 'editundo'                    => 'undo',
+'diff-empty'                  => '(No difference)',
 'diff-multi'                  => '({{PLURAL:$1|One intermediate revision|$1 intermediate revisions}} by {{PLURAL:$2|one user|$2 users}} not shown)',
 'diff-multi-manyusers'        => '({{PLURAL:$1|One intermediate revision|$1 intermediate revisions}} by more than $2 {{PLURAL:$2|user|users}} not shown)',
 'difference-missing-revision' => '{{PLURAL:$2|One revision|$2 revisions}} of this difference ($1) {{PLURAL:$2|was|were}} not found.
@@ -1802,9 +1828,7 @@ Details can be found in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENA
 'searchmenu-exists'                => "'''There is a page named \"[[:\$1]]\" on this wiki.'''",
 'searchmenu-new'                   => "'''Create the page \"[[:\$1]]\" on this wiki!'''",
 'searchmenu-new-nocreate'          => '', # do not translate or duplicate this message to other languages
-'searchhelp-url'                   => 'Help:Contents',
 'searchmenu-prefix'                => '[[Special:PrefixIndex/$1|Browse pages with this prefix]]',
-'searchmenu-help'                  => '[[{{MediaWiki:Searchhelp-url}}|{{int:help}}]]?', # do not translate or duplicate this message to other languages
 'searchprofile-articles'           => 'Content pages',
 'searchprofile-project'            => 'Help and Project pages',
 'searchprofile-images'             => 'Multimedia',
@@ -1900,7 +1924,6 @@ Note that their indexes of {{SITENAME}} content may be out of date.',
 'resetprefs'                    => 'Clear unsaved changes',
 'restoreprefs'                  => 'Restore all default settings',
 'prefs-editing'                 => 'Editing',
-'prefs-edit-boxsize'            => 'Size of the edit window.',
 'rows'                          => 'Rows:',
 'columns'                       => 'Columns:',
 'searchresultshead'             => 'Search',
@@ -1911,9 +1934,9 @@ Note that their indexes of {{SITENAME}} content may be out of date.',
 'recentchangesdays-max'         => 'Maximum $1 {{PLURAL:$1|day|days}}',
 'recentchangescount'            => 'Number of edits to show by default:',
 'prefs-help-recentchangescount' => 'This includes recent changes, page histories, and logs.',
-'prefs-help-watchlist-token'    => "Filling in this field with a secret key will generate an RSS feed for your watchlist.
-Anyone who knows the key in this field will be able to read your watchlist, so choose a secure value.
-Here's a randomly-generated value you can use: $1",
+'prefs-help-watchlist-token2'   => 'This is the secret key to the web feed of your watchlist.
+Anyone who knows it will be able to read your watchlist, so do not share it.
+[[Special:ResetTokens|Click here if you need to reset it]].',
 'savedprefs'                    => 'Your preferences have been saved.',
 'timezonelegend'                => 'Time zone:',
 'localtime'                     => 'Local time:',
@@ -1944,7 +1967,6 @@ Here's a randomly-generated value you can use: $1",
 'prefs-reset-intro'             => 'You can use this page to reset your preferences to the site defaults.
 This cannot be undone.',
 'prefs-emailconfirm-label'      => 'Email confirmation:',
-'prefs-textboxsize'             => 'Size of editing window',
 'youremail'                     => 'Email:',
 'username'                      => '{{GENDER:$1|Username}}:',
 'uid'                           => '{{GENDER:$1|User}} ID:',
@@ -1980,7 +2002,9 @@ Your email address is not revealed when other users contact you.',
 'prefs-signature'               => 'Signature',
 'prefs-dateformat'              => 'Date format',
 'prefs-timeoffset'              => 'Time offset',
-'prefs-advancedediting'         => 'Advanced options',
+'prefs-advancedediting'         => 'General',
+'prefs-editor'                  => 'Editor',
+'prefs-preview'                 => 'Preview',
 'prefs-advancedrc'              => 'Advanced options',
 'prefs-advancedrendering'       => 'Advanced options',
 'prefs-advancedsearchoptions'   => 'Advanced options',
@@ -1988,6 +2012,7 @@ Your email address is not revealed when other users contact you.',
 'prefs-displayrc'               => 'Display options',
 'prefs-displaysearchoptions'    => 'Display options',
 'prefs-displaywatchlist'        => 'Display options',
+'prefs-tokenwatchlist'          => 'Token',
 'prefs-diffs'                   => 'Diffs',
 
 # User preference: email validation using jQuery
@@ -2019,6 +2044,7 @@ Your email address is not revealed when other users contact you.',
 'userrights-unchangeable-col'    => 'Groups you cannot change',
 'userrights-irreversible-marker' => '$1*', # only translate this message to other languages if you have to change it
 'userrights-conflict'            => 'User rights conflict! Please apply your changes again.',
+'userrights-removed-self'        => 'You successfully removed your own rights. As such, you are no longer able to access this page.',
 
 # Groups
 'group'               => 'Group:',
@@ -2062,7 +2088,7 @@ Your email address is not revealed when other users contact you.',
 'right-reupload-shared'       => 'Override files on the shared media repository locally',
 'right-upload_by_url'         => 'Upload files from a URL',
 'right-purge'                 => 'Purge the site cache for a page without confirmation',
-'right-autoconfirmed'         => 'Edit semi-protected pages',
+'right-autoconfirmed'         => 'Not be affected by IP-based rate limits',
 'right-bot'                   => 'Be treated as an automated process',
 'right-nominornewtalk'        => 'Not have minor edits to discussion pages trigger the new messages prompt',
 'right-apihighlimits'         => 'Use higher limits in API queries',
@@ -2083,12 +2109,20 @@ Your email address is not revealed when other users contact you.',
 'right-ipblock-exempt'        => 'Bypass IP blocks, auto-blocks and range blocks',
 'right-proxyunbannable'       => 'Bypass automatic blocks of proxies',
 'right-unblockself'           => 'Unblock themselves',
-'right-protect'               => 'Change protection levels and edit protected pages',
-'right-editprotected'         => 'Edit protected pages (without cascading protection)',
+'right-protect'               => 'Change protection levels and edit cascade-protected pages',
+'right-editprotected'         => 'Edit pages protected as "{{int:protect-level-sysop}}"',
+'right-editsemiprotected'     => 'Edit pages protected as "{{int:protect-level-autoconfirmed}}"',
 'right-editinterface'         => 'Edit the user interface',
 'right-editusercssjs'         => "Edit other users' CSS and JavaScript files",
 'right-editusercss'           => "Edit other users' CSS files",
 'right-edituserjs'            => "Edit other users' JavaScript files",
+'right-editmyusercss'         => 'Edit your own user CSS files',
+'right-editmyuserjs'          => 'Edit your own user JavaScript files',
+'right-viewmywatchlist'       => 'View your own watchlist',
+'right-editmywatchlist'       => 'Edit your own watchlist. Note some actions will still add pages even without this right.',
+'right-viewmyprivateinfo'     => 'View your own private data (e.g. email address, real name)',
+'right-editmyprivateinfo'     => 'Edit your own private data (e.g. email address, real name)',
+'right-editmyoptions'         => 'Edit your own preferences',
 'right-rollback'              => 'Quickly rollback the edits of the last user who edited a particular page',
 'right-markbotedits'          => 'Mark rolled-back edits as bot edits',
 'right-noratelimit'           => 'Not be affected by rate limits',
@@ -2150,6 +2184,10 @@ Your email address is not revealed when other users contact you.',
 'action-userrights-interwiki' => 'edit user rights of users on other wikis',
 'action-siteadmin'            => 'lock or unlock the database',
 'action-sendemail'            => 'send emails',
+'action-editmywatchlist'      => 'edit your watchlist',
+'action-viewmywatchlist'      => 'view your watchlist',
+'action-viewmyprivateinfo'    => 'view your private information',
+'action-editmyprivateinfo'    => 'edit your private information',
 
 # Recent changes
 'nchanges'                          => '$1 {{PLURAL:$1|change|changes}}',
@@ -2158,6 +2196,7 @@ Your email address is not revealed when other users contact you.',
 'recentchanges-legend'              => 'Recent changes options',
 'recentchanges-summary'             => 'Track the most recent changes to the wiki on this page.',
 'recentchangestext'                 => '-', # do not translate or duplicate this message to other languages
+'recentchanges-noresult'            => 'No changes during the given period matching these criteria.',
 'recentchanges-feed-description'    => 'Track the most recent changes to the wiki in this feed.',
 'recentchanges-label-newpage'       => 'This edit created a new page',
 'recentchanges-label-minor'         => 'This is a minor edit',
@@ -2193,15 +2232,14 @@ Your email address is not revealed when other users contact you.',
 'rc-old-title'                      => 'originally created as "$1"',
 
 # Recent changes linked
-'recentchangeslinked'          => 'Related changes',
-'recentchangeslinked-feed'     => 'Related changes',
-'recentchangeslinked-toolbox'  => 'Related changes',
-'recentchangeslinked-title'    => 'Changes related to "$1"',
-'recentchangeslinked-noresult' => 'No changes on linked pages during the given period.',
-'recentchangeslinked-summary'  => "This is a list of changes made recently to pages linked from a specified page (or to members of a specified category).
+'recentchangeslinked'         => 'Related changes',
+'recentchangeslinked-feed'    => 'Related changes',
+'recentchangeslinked-toolbox' => 'Related changes',
+'recentchangeslinked-title'   => 'Changes related to "$1"',
+'recentchangeslinked-summary' => "This is a list of changes made recently to pages linked from a specified page (or to members of a specified category).
 Pages on [[Special:Watchlist|your watchlist]] are '''bold'''.",
-'recentchangeslinked-page'     => 'Page name:',
-'recentchangeslinked-to'       => 'Show changes to pages linked to the given page instead',
+'recentchangeslinked-page'    => 'Page name:',
+'recentchangeslinked-to'      => 'Show changes to pages linked to the given page instead',
 
 # Upload
 'upload'                      => 'Upload file',
@@ -2209,7 +2247,7 @@ Pages on [[Special:Watchlist|your watchlist]] are '''bold'''.",
 'reuploaddesc'                => 'Cancel upload and return to the upload form',
 'upload-tryagain'             => 'Submit modified file description',
 'uploadnologin'               => 'Not logged in',
-'uploadnologintext'           => 'You must be [[Special:UserLogin|logged in]] to upload files.',
+'uploadnologintext'           => 'You must $1 to upload files.',
 'upload_directory_missing'    => 'The upload directory ($1) is missing and could not be created by the webserver.',
 'upload_directory_read_only'  => 'The upload directory ($1) is not writable by the webserver.',
 'uploaderror'                 => 'Upload error',
@@ -2619,12 +2657,14 @@ Remember to check for other links to the templates before deleting them.',
 They may have to link to a more appropriate page instead.<br />
 A page is treated as a disambiguation page if it uses a template that is linked from [[MediaWiki:Disambiguationspage]].",
 
-'pageswithprop'         => 'Pages with a page property',
-'pageswithprop-summary' => '', # do not translate or duplicate this message to other languages
-'pageswithprop-legend'  => 'Pages with a page property',
-'pageswithprop-text'    => 'This page lists pages that use a particular page property.',
-'pageswithprop-prop'    => 'Property name:',
-'pageswithprop-submit'  => 'Go',
+'pageswithprop'                   => 'Pages with a page property',
+'pageswithprop-summary'           => '', # do not translate or duplicate this message to other languages
+'pageswithprop-legend'            => 'Pages with a page property',
+'pageswithprop-text'              => 'This page lists pages that use a particular page property.',
+'pageswithprop-prop'              => 'Property name:',
+'pageswithprop-submit'            => 'Go',
+'pageswithprop-prophidden-long'   => 'long text property value hidden ($1 kilobytes)',
+'pageswithprop-prophidden-binary' => 'binary property value hidden ($1 kilobytes)',
 
 'doubleredirects'                   => 'Double redirects',
 'doubleredirects-summary'           => '', # do not translate or duplicate this message to other languages
@@ -2706,6 +2746,7 @@ It now redirects to [[$2]].',
 'prefixindex'                     => 'All pages with prefix',
 'prefixindex-namespace'           => 'All pages with prefix ($1 namespace)',
 'prefixindex-summary'             => '', # do not translate or duplicate this message to other languages
+'prefixindex-strip'               => 'Strip prefix in list',
 'shortpages'                      => 'Short pages',
 'shortpages-summary'              => '', # do not translate or duplicate this message to other languages
 'longpages'                       => 'Long pages',
@@ -2845,7 +2886,8 @@ Supported {{PLURAL:$2|protocol|protocols}}: <code>$1</code> (defaults to http://
 'listgrouprights'                      => 'User group rights',
 'listgrouprights-summary'              => 'The following is a list of user groups defined on this wiki, with their associated access rights.
 There may be [[{{MediaWiki:Listgrouprights-helppage}}|additional information]] about individual rights.',
-'listgrouprights-key'                  => '* <span class="listgrouprights-granted">Granted right</span>
+'listgrouprights-key'                  => 'Legend:
+* <span class="listgrouprights-granted">Granted right</span>
 * <span class="listgrouprights-revoked">Revoked right</span>',
 'listgrouprights-group'                => 'Group',
 'listgrouprights-rights'               => 'Rights',
@@ -2921,7 +2963,6 @@ Future changes to this page and its associated talk page will be listed there.',
 'unwatchthispage'      => 'Stop watching',
 'notanarticle'         => 'Not a content page',
 'notvisiblerev'        => 'The last revision by a different user has been deleted',
-'watchnochange'        => 'None of your watched items were edited in the time period displayed.',
 'watchlist-details'    => '{{PLURAL:$1|$1 page|$1 pages}} on your watchlist, not counting talk pages.',
 'wlheader-enotif'      => 'Email notification is enabled.',
 'wlheader-showupdated' => "Pages that have been changed since you last visited them are shown in '''bold'''.",
@@ -3032,7 +3073,7 @@ someone else has edited or rolled back the page already.
 The last edit to the page was by [[User:$3|$3]] ([[User talk:$3|talk]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment'                => "The edit summary was: \"''\$1''\".",
 'revertpage'                 => 'Reverted edits by [[Special:Contributions/$2|$2]] ([[User talk:$2|talk]]) to last revision by [[User:$1|$1]]',
-'revertpage-nouser'          => 'Reverted edits by (username removed) to last revision by [[User:$1|$1]]',
+'revertpage-nouser'          => 'Reverted edits by a hidden user to last revision by [[User:$1|$1]]',
 'rollback-success'           => 'Reverted edits by $1;
 changed back to last revision by $2.',
 
@@ -3184,7 +3225,7 @@ $1',
 'mycontris'             => 'Contributions',
 'contribsub2'           => 'For $1 ($2)',
 'nocontribs'            => 'No changes were found matching these criteria.',
-'uctop'                 => '(top)',
+'uctop'                 => '(current)',
 'month'                 => 'From month (and earlier):',
 'year'                  => 'From year (and earlier):',
 
@@ -4589,7 +4630,7 @@ Please confirm that you really want to recreate this page.",
 'semicolon-separator' => ';&#32;', # only translate this message to other languages if you have to change it
 'comma-separator'     => ',&#32;', # only translate this message to other languages if you have to change it
 'colon-separator'     => ':&#32;', # only translate this message to other languages if you have to change it
-'autocomment-prefix'  => '-&#32;', # only translate this message to other languages if you have to change it
+'autocomment-prefix'  => '', # do not translate or duplicate this message to other languages
 'pipe-separator'      => '&#32;|&#32;', # only translate this message to other languages if you have to change it
 'word-separator'      => '&#32;', # only translate this message to other languages if you have to change it
 'ellipsis'            => '...', # only translate this message to other languages if you have to change it
@@ -4787,7 +4828,6 @@ You can also [[Special:EditWatchlist|use the standard editor]].',
 'version-other'                         => 'Other',
 'version-mediahandlers'                 => 'Media handlers',
 'version-hooks'                         => 'Hooks',
-'version-extension-functions'           => 'Extension functions',
 'version-parser-extensiontags'          => 'Parser extension tags',
 'version-parser-function-hooks'         => 'Parser function hooks',
 'version-hook-name'                     => 'Hook name',
@@ -4877,6 +4917,7 @@ You should have received [{{SERVER}}{{SCRIPTPATH}}/COPYING a copy of the GNU Gen
 'tags-summary'            => '', # do not translate or duplicate this message to other languages
 'tag-filter'              => '[[Special:Tags|Tag]] filter:',
 'tag-filter-submit'       => 'Filter',
+'tag-list-wrapper'        => '([[Special:Tags|{{PLURAL:$1|Tag|Tags}}]]: $2)',
 'tags-title'              => 'Tags',
 'tags-intro'              => 'This page lists the tags that the software may mark an edit with, and their meaning.',
 'tags-tag'                => 'Tag name',
index e5ef486..9e93689 100644 (file)
@@ -16,6 +16,7 @@
  * @author Blahma
  * @author Castelobranco
  * @author Eliovir
+ * @author Geitost
  * @author Iketsi
  * @author Jens Liebenau
  * @author Kaganer
@@ -28,6 +29,7 @@
  * @author Michawiki
  * @author Mihxil
  * @author MinuteElectron
+ * @author Nemo bis
  * @author Objectivesea
  * @author Omnipaedista
  * @author Pedroca cerebral
@@ -510,6 +512,7 @@ $messages = array(
 'create-this-page' => 'Krei ĉi tiun paĝon',
 'delete' => 'Forigi',
 'deletethispage' => 'Forigi ĉi tiun paĝon',
+'undeletethispage' => 'Restarigi tiun ĉi paĝon',
 'undelete_short' => 'Malforigi {{PLURAL:$1|redakton|$1 redaktojn}}',
 'viewdeleted_short' => 'Vidi {{PLURAL:$1|unu forigitan redakton|$1 forigitajn redaktojn}}',
 'protect' => 'Protekti',
@@ -563,7 +566,6 @@ $1',
 'disclaimers' => 'Malgarantio',
 'disclaimerpage' => 'Project:Malgarantia paĝo',
 'edithelp' => 'Helpo pri redaktado',
-'edithelppage' => 'Help:Kiel redakti paĝon',
 'helppage' => 'Help:Enhavo',
 'mainpage' => 'Ĉefpaĝo',
 'mainpage-description' => 'Ĉefpaĝo',
@@ -714,6 +716,8 @@ $2',
 'namespaceprotected' => "Vi ne rajtas redakti paĝojn en la '''$1''' nomspaco.",
 'customcssprotected' => 'Vi ne rajtas redakti ĉi tiun CSS-paĝon, ĉar ĝi enhavas personajn alĝustigojn de alia uzanto.',
 'customjsprotected' => 'Vi ne rajtas redakti ĉi tiun JavaScript-paĝon, ĉar ĝi enhavas personajn alĝustigojn de alia uzanto.',
+'mycustomcssprotected' => 'Vi ne havas la rajton redakti tiun ĉi CSS-paĝon.',
+'mycustomjsprotected' => 'Vi ne havas la rajton redakti tiun ĉi JavaScript-paĝon.',
 'ns-specialprotected' => 'Paĝoj en la {{ns:special}} nomspaco ne povas esti redaktataj.',
 'titleprotected' => "Ĉi titolo estas protektita de kreado de [[User:$1|$1]].
 La kialo donata estis ''$2''.",
@@ -745,8 +749,10 @@ Ne forgesu ŝanĝi viajn [[Special:Preferences|{{SITENAME}}-preferojn]]',
 'userlogin-yourpassword' => 'Pasvorto',
 'userlogin-yourpassword-ph' => 'Enigu vian pasvorton',
 'yourpasswordagain' => 'Retajpu pasvorton',
+'createacct-yourpasswordagain' => 'Konfirmu pasvorton',
 'remembermypassword' => 'Memori mian ensalutadon ĉe ĉi tiu komputilo (daŭrante maksimume $1 {{PLURAL:$1|tagon|tagojn}})',
 'userlogin-remembermypassword' => 'Memoru mian ensaluton',
+'userlogin-signwithsecure' => 'Uzu sekurigitan konekton',
 'securelogin-stick-https' => 'Resti konektita al HTTPS post ensalutado',
 'yourdomainname' => 'Via domajno',
 'password-change-forbidden' => 'Ve ne povas ŝanĝi pasvortojn en ĉi tiu vikio.',
@@ -760,15 +766,31 @@ Ne forgesu ŝanĝi viajn [[Special:Preferences|{{SITENAME}}-preferojn]]',
 'userlogout' => 'Elsaluti',
 'notloggedin' => 'Ne ensalutinta',
 'userlogin-noaccount' => 'Ĉu vi ne havas konton?',
-'nologin' => "Ĉu vi ne havas konton? '''$1'''.",
+'userlogin-joinproject' => 'Aliĝu al {{SITENAME}}',
+'nologin' => 'Ĉu vi ne havas konton? $1.',
 'nologinlink' => 'Krei konton',
 'createaccount' => 'Krei novan konton',
 'gotaccount' => "Ĉu vi jam havas konton? '''$1'''.",
 'gotaccountlink' => 'Ensaluti',
 'userlogin-resetlink' => 'Ĉu vi forgesis ensalutajn detalojn?',
+'userlogin-resetpassword-link' => 'Restarigu vian pasvorton',
+'helplogin-url' => 'Help:Ensalutado',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Helpo pri ensalutado]]',
+'createacct-join' => 'Suben enigu informojn pri vi',
+'createacct-emailrequired' => 'Retpoŝta adreso',
+'createacct-emailoptional' => 'Retpoŝta adreso (nedeviga)',
+'createacct-email-ph' => 'Enigu vian retpoŝtan adreson',
 'createaccountmail' => 'Uzi provizoran hazardsignan pasvorton kaj sendi ĝin al la retpoŝto suben',
+'createacct-realname' => 'Vera nomo (nedeviga)',
 'createaccountreason' => 'Kialo:',
+'createacct-reason' => 'Kialo',
+'createacct-reason-ph' => 'Kial vi kreas plian konton',
+'createacct-captcha' => 'Sekureca kontrolo',
+'createacct-imgcaptcha-ph' => 'Entajpu la supran tekston',
+'createacct-submit' => 'Krei konton',
+'createacct-benefit-heading' => '{{SITENAME}} estas kreata de homoj kiel vi.',
+'createacct-benefit-body1' => '{{PLURAL:$1|redakto|redaktoj}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|paĝo|paĝoj}}',
 'badretype' => 'La pasvortojn kiujn vi tajpis ne egalas.',
 'userexists' => 'Salutnomo enigita jam estas uzata.
 Bonvolu elekti alian nomon.',
@@ -809,7 +831,8 @@ Bonvolu saluti denove ricevinte ĝin.',
 'blocked-mailpassword' => 'Via IP adreso estas forbarita de redaktado, kaj tial
 ne rajtas uzi la pasvorto-rekovran funkcion por malebligi misuzon.',
 'eauthentsent' => 'Konfirma retmesaĝo estas sendita al la nomita retadreso. Antaŭ ol iu ajn alia mesaĝo estos sendita al la konto, vi devos sekvi la instrukciojn en la mesaĝo por konfirmi ke la konto ja estas la via.',
-'throttled-mailpassword' => 'Pasvorta rememorigilo estis jam sendita, ene de la {{PLURAL:$1|lasta $1 horo|lastaj $1 horoj}}. Por preventi misuzo, nur unu pasvorto-rememorigilo estos sendita po {{PLURAL:$1|$1 horo|$1 horoj}}.',
+'throttled-mailpassword' => 'Retpoŝto kun reŝargita pasvorto estis jam sendita ene de la {{PLURAL:$1|lasta horo|lastaj $1 horoj}}.
+Por preventi misuzon, nur unu reŝargita pasvorto estos sendita dum {{PLURAL:$1|horo|$1 horoj}}.',
 'mailerror' => 'Okazis eraro sendante retpoŝtaĵon: $1',
 'acct_creation_throttle_hit' => 'Vizitintoj al ĉi tiu vikio uzintaj vian IP-adreson kreis {{PLURAL:$1|1 konton|$1 kontojn}} dum la lasta tago, kiu estas la maksimume permesita en ĉi tiu tempoperiodo.
 Tial, vizitantoj kun ĉi tiu IP-adreso ne povas krei pluajn kontojn ĉi-momente.',
@@ -860,11 +883,9 @@ Vi eble jam ŝanĝis vian pasvorton aŭ petis novan provizoran pasvorton.',
 
 # Special:PasswordReset
 'passwordreset' => 'Restarigo de pasvorto',
-'passwordreset-text' => 'Plenigu ĉi tiun formularon por renovigi vian pasvorton.',
 'passwordreset-legend' => 'Refari pasvorton',
 'passwordreset-disabled' => 'Pasvortaj restarigoj estis malŝaltitaj en ĉi tiu vikio.',
 'passwordreset-emaildisabled' => 'Retpoŝtaj funkcioj estas malfunkciigitaj en tiu ĉi vikio.',
-'passwordreset-pretext' => '{{PLURAL:$1||Enigi unu el la jenaj datenoj}}',
 'passwordreset-username' => 'Salutnomo:',
 'passwordreset-domain' => 'Domajno:',
 'passwordreset-capture' => 'Vidi la rezultan retpoŝton?',
@@ -977,7 +998,7 @@ Notu, ke vi ne povas uzi la servon "Retpoŝtu ĉi tiu uzanton" krom se vi havas
 
 Via nuna IP-adreso estas $3, kaj la forbaro-identigo estas $5.
 Bonvolu inkluzivi tiujn detalojn en iuj ajn demandoj kiun vi farus.',
-'blockednoreason' => 'nenia kialo donata',
+'blockednoreason' => 'neniu kialo estis donita',
 'whitelistedittext' => 'Vi devas $1 por redakti paĝojn.',
 'confirmedittext' => 'Vi devas konfirmi vian retpoŝtan adreson antaŭ ol redakti paĝojn. Bonvolu agordi kaj validigi vian retadreson per viaj [[Special:Preferences|preferoj]].',
 'nosuchsectiontitle' => 'Ne povas trovi sekcion',
@@ -986,7 +1007,7 @@ Bonvolu inkluzivi tiujn detalojn en iuj ajn demandoj kiun vi farus.',
 'loginreqtitle' => 'Nepre ensaluti',
 'loginreqlink' => 'ensaluti',
 'loginreqpagetext' => 'Vi devas $1 por rigardi aliajn paĝojn.',
-'accmailtitle' => 'Pasvorto sendita.',
+'accmailtitle' => 'La pasvorto estas sendita.',
 'accmailtext' => "Hazarde generita pasvorto por [[User talk:$1|$1]] estis sendita al $2.
 
 La pasvorto por ĉi tiu nova konto povas esti ŝanĝita en la paĝo ''[[Special:ChangePassword|ŝanĝi pasvorton]]'' dum ensalutado.",
@@ -1108,6 +1129,7 @@ Jen la protokolo pri forigado kaj alinomigado por via referenco.',
 Verŝajne ĝi estis forigita.',
 'edit-conflict' => 'Redakto-konflikto.',
 'edit-no-change' => 'Via redakto estis ignorita, ĉar neniu ŝanĝo estis farita al la teksto.',
+'postedit-confirmation' => 'Via redakto estis konservita.',
 'edit-already-exists' => 'Ne eblis krei novan paĝon.
 Ĝi jam ekzistas.',
 'defaultmessagetext' => 'Defaŭlta teksto',
@@ -1356,7 +1378,6 @@ Detaloj troveblos en la [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}
 'searchmenu-legend' => 'Serĉaj opcioj',
 'searchmenu-exists' => "'''Estas paĝo nomita \"[[:\$1]]\" en ĉi tiu vikio'''",
 'searchmenu-new' => "'''Krei la paĝon \"[[:\$1]]\" en ĉi tiu vikio!'''",
-'searchhelp-url' => 'Help:Enhavo',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Traserĉi paĝojn kun ĉi tiu prefikso]]',
 'searchprofile-articles' => 'Enhavaj paĝoj',
 'searchprofile-project' => 'Paĝoj pri Helpo kaj Projektoj',
@@ -1433,7 +1454,6 @@ indekso pro troŝarĝita servilo. Intertempe, vi povas serĉi per <i>guglo</i> a
 'resetprefs' => 'Forviŝi nekonservitajn ŝanĝojn',
 'restoreprefs' => 'Restarigi ĉiujn defaŭltajn preferojn',
 'prefs-editing' => 'Redaktado',
-'prefs-edit-boxsize' => 'Grandeco de la redakto-kesko.',
 'rows' => 'Linioj:',
 'columns' => 'Kolumnoj:',
 'searchresultshead' => 'Serĉi',
@@ -1444,9 +1464,6 @@ indekso pro troŝarĝita servilo. Intertempe, vi povas serĉi per <i>guglo</i> a
 'recentchangesdays-max' => '(maksimume $1 {{PLURAL:$1|tago|tagoj}})',
 'recentchangescount' => 'Nombro de redaktoj por montri defaŭlte:',
 'prefs-help-recentchangescount' => 'Ĉi tiu inkluzivas lastajn ŝanĝojn, paĝajn historiojn, kaj protokolojn.',
-'prefs-help-watchlist-token' => 'Plenigo de ĉi tiu kampo kun sekreta ŝlosilo generos RSS-fonton por via atentaro.
-Iu kiu konas la ŝlosilon en ĉi tiu kampo povos legi vian atentaron, do bonvolu elekti sekuran valoron.
-Jen hazarde generita valoro por via uzo: $1',
 'savedprefs' => 'Viaj preferoj estas konservitaj.',
 'timezonelegend' => 'Horzono:',
 'localtime' => 'Loka tempo:',
@@ -1477,7 +1494,6 @@ Jen hazarde generita valoro por via uzo: $1',
 'prefs-reset-intro' => 'Vi povas uzi ĉi tiun paĝon por restarigi viajn agordojn al la originalaj defaŭltoj.
 Ĉi tiel ne estus malfarebla.',
 'prefs-emailconfirm-label' => 'Retpoŝta konfirmado:',
-'prefs-textboxsize' => 'Grandeco de redakta fenestro',
 'youremail' => 'Retadreso:',
 'username' => '{{GENDER:$1|Salutnomo}}:',
 'uid' => '{{GENDER:$1|Uzanto}}-identaĵo:',
@@ -1715,7 +1731,6 @@ Jen hazarde generita valoro por via uzo: $1',
 'recentchangeslinked-feed' => 'Rilataj paĝoj',
 'recentchangeslinked-toolbox' => 'Rilataj paĝoj',
 'recentchangeslinked-title' => 'Ŝanĝoj rilataj al "$1"',
-'recentchangeslinked-noresult' => 'Neniuj ŝanĝoj en ligitaj paĝoj dum la donata periodo.',
 'recentchangeslinked-summary' => "Jen listo de ŝanĝoj faritaj lastatempe al paĝoj ligitaj el specifa paĝo (aŭ al membroj de specifa kategorio).
 Paĝoj en [[Special:Watchlist|via atentaro]] estas '''grasaj'''.",
 'recentchangeslinked-page' => 'Nomo de paĝo:',
@@ -1844,11 +1859,11 @@ $1',
 'upload-proto-error' => 'Malvalida protokolo',
 'upload-proto-error-text' => 'Fora alŝuto devas URL-on komence de <code>http://</code> aŭ <code>ftp://</code>.',
 'upload-file-error' => 'Interna eraro',
-'upload-file-error-text' => 'Interna eraro okazis provante krei labordosieron ĉe la servilo. Bonvolu kontakti [[Special:ListUsers/sysop|sistem-administranton]].',
+'upload-file-error-text' => 'Interna eraro okazis provante krei labordosieron ĉe la servilo. Bonvolu kontakti [[Special:ListUsers/sysop|administranton]].',
 'upload-misc-error' => 'Nekonata eraro pri alŝutado.',
 'upload-misc-error-text' => 'Nekonata eraro okazis dum la alŝuto.
 Bonvolu kontroli ke la URL-o estas valida kaj atingebla tiam reprovu.
-Se la problemo kontinuas, kontaku [[Special:ListUsers/sysop|sisteman administranton]].',
+Se la problemo kontinuas, kontaku [[Special:ListUsers/sysop|administranton]].',
 'upload-too-many-redirects' => 'La URL-o enhavis tro multajn alidirektilojn',
 'upload-unknown-size' => 'Nekonata grandeco',
 'upload-http-error' => 'HTTP-eraro okazis: $1',
@@ -2095,6 +2110,8 @@ Bonvolu kontroli aliajn ligilojn al la ŝablonoj antaŭ ol forigi ilin.',
 Ili devus anstataŭe alligi la ĝustan temon.<br />
 Paĝo estas traktata kiel apartigilo se ĝi uzas ŝablonon kiu estas ligita de [[MediaWiki:Disambiguationspage]]",
 
+'pageswithprop' => 'Paĝoj kun paĝa atributo',
+'pageswithprop-legend' => 'Paĝoj kun paĝa atributo',
 'pageswithprop-prop' => 'Nomo de la atributo:',
 'pageswithprop-submit' => 'Ek',
 
@@ -2196,7 +2213,7 @@ Bonvolu noti ke aliaj retejoj povas ligi dosieron kun rekta URL-o, kaj tial esta
 kaj/aŭ informumos pri la libro ligita.
 La {{SITENAME}} ne estas komerce ligita al tiuj vendejoj, kaj la listo ne estu
 komprenata kiel rekomendo aŭ reklamo.',
-'booksources-invalid-isbn' => 'La donata ISBN verŝajne esats nevalida; kontroli por eraroj kopiitaj el la originala fonto.',
+'booksources-invalid-isbn' => 'La donata ISBN verŝajne estas nevalida; kontrolu pri erara kopiado el la originala fonto.',
 
 # Special:Log
 'specialloguserlabel' => 'Faranto:',
@@ -2345,7 +2362,6 @@ La retadreso kiun vi enigis en [[Special:Preferences|viaj preferoj]] aperos kiel
 'unwatchthispage' => 'Malatenti paĝon',
 'notanarticle' => 'Ne estas artikolo',
 'notvisiblerev' => 'Versio estis forigita',
-'watchnochange' => 'Neniu artikolo en via atentaro redaktiĝis dum la prispektita tempoperiodo.',
 'watchlist-details' => '{{PLURAL:$1|$1 paĝon|$1 paĝojn}} en via atentaro, krom diskutpaĝoj.',
 'wlheader-enotif' => 'Retpoŝta sciigo estas ebligita',
 'wlheader-showupdated' => "Montriĝas per '''dikaj literoj''' tiuj paĝoj, kiujn oni ŝanĝis ekde kiam vi laste vizitis ilin",
@@ -2613,7 +2629,7 @@ $1',
 'sp-contributions-blocked-notice-anon' => 'Ĉi tiu IP-adreso estas nune forbarita.
 Jen la lasta ero de la forbara protokolo:',
 'sp-contributions-search' => 'Serĉado de kontribuoj',
-'sp-contributions-username' => 'IP-adreso aŭ salutnomo:',
+'sp-contributions-username' => 'IP-adreso aŭ uzantonomo:',
 'sp-contributions-toponly' => 'Montru nur ŝanĝojn kiuj estas la plej lastaj revizioj',
 'sp-contributions-submit' => 'Serĉi',
 
@@ -3791,8 +3807,8 @@ Bonvolu konfirmi ke vi ja volas rekrei la paĝon.',
 'table_pager_empty' => 'Neniaj rezultoj',
 
 # Auto-summaries
-'autosumm-blank' => 'Forviŝis la paĝon',
-'autosumm-replace' => "Anstataŭigante paĝojn kun '$1'",
+'autosumm-blank' => 'Forviŝis la tutan enhavon el la paĝo',
+'autosumm-replace' => "Anstataŭigis paĝon per '$1'",
 'autoredircomment' => 'Alidirektigis al [[$1]]',
 'autosumm-new' => "Nova paĝo kun '$1'",
 
@@ -3907,7 +3923,6 @@ Vi povas ankaŭ [[Special:EditWatchlist|redakti norme]].',
 'version-other' => 'Alia',
 'version-mediahandlers' => 'Mediaj traktiloj',
 'version-hooks' => 'Hokoj',
-'version-extension-functions' => 'Kromprogramaj funkcioj',
 'version-parser-extensiontags' => 'Sintaksaj etend-etikedoj',
 'version-parser-function-hooks' => 'Hokoj de sintaksaj funkcioj',
 'version-hook-name' => 'Nomo de hoko',
index 5ea65f0..e960d77 100644 (file)
@@ -42,6 +42,7 @@
  * @author Fitoschido
  * @author Fluence
  * @author Fortega
+ * @author Geitost
  * @author Gustronico
  * @author Gwickwire
  * @author Hahc21
  * @author Linterweb
  * @author Locos epraix
  * @author Luckas
+ * @author Luis Felipe Schenone
  * @author Mahadeva
  * @author Manuelt15
  * @author Maor X
  * @author MarcoAurelio
  * @author McDutchie
+ * @author Miguel2706
  * @author Muro de Aguas
  * @author Omnipaedista
  * @author Orgullomoore
@@ -75,6 +78,7 @@
  * @author Piolinfax
  * @author Platonides
  * @author PoLuX124
+ * @author QuimGil
  * @author Ralgis
  * @author Remember the dot
  * @author Remux
@@ -468,7 +472,7 @@ $messages = array(
 'feb' => 'feb',
 'mar' => 'mar',
 'apr' => 'abr',
-'may' => 'may',
+'may' => 'mayo',
 'jun' => 'jun',
 'jul' => 'jul',
 'aug' => 'ago',
@@ -476,6 +480,18 @@ $messages = array(
 'oct' => 'oct',
 'nov' => 'nov',
 'dec' => 'dic',
+'january-date' => '$1 de enero',
+'february-date' => '$1 de febrero',
+'march-date' => '$1 de marzo',
+'april-date' => '$1 de abril',
+'may-date' => '$1 de mayo',
+'june-date' => '$1 de junio',
+'july-date' => '$1 de julio',
+'august-date' => '$1 de agosto',
+'september-date' => '$1 de septiembre',
+'october-date' => '$1 de octubre',
+'november-date' => '$1 de noviembre',
+'december-date' => '$1 de diciembre',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Categoría|Categorías}}',
@@ -557,6 +573,7 @@ $messages = array(
 'create-this-page' => 'Crear esta página',
 'delete' => 'Borrar',
 'deletethispage' => 'Borrar esta página',
+'undeletethispage' => 'Restaurar esta página',
 'undelete_short' => 'Restaurar {{PLURAL:$1|una edición|$1 ediciones}}',
 'viewdeleted_short' => 'Ver {{PLURAL:$1|una edición borrada|$1 ediciones borradas}}',
 'protect' => 'Proteger',
@@ -610,7 +627,6 @@ $1',
 'disclaimers' => 'Aviso legal',
 'disclaimerpage' => 'Project:Limitación general de responsabilidad',
 'edithelp' => 'Ayuda de edición',
-'edithelppage' => 'Help:Cómo se edita una página',
 'helppage' => 'Help:Contenidos',
 'mainpage' => 'Página principal',
 'mainpage-description' => 'Página principal',
@@ -757,6 +773,10 @@ $2',
 'namespaceprotected' => "No tienes permiso para editar las páginas del espacio de nombres '''$1'''.",
 'customcssprotected' => 'No tienes permiso para editar esta página CSS, porque contiene configuraciones personales de otro usuario.',
 'customjsprotected' => 'No tienes permiso para editar esta página JavaScript, porque contiene configuraciones personales de otro usuario.',
+'mycustomcssprotected' => 'No tienes permiso para editar esta página CSS.',
+'mycustomjsprotected' => 'No tienes permiso para editar esta página JavaScript.',
+'myprivateinfoprotected' => 'No tienes permiso para editar tu información privada.',
+'mypreferencesprotected' => 'No tienes permiso para editar tus preferencias.',
 'ns-specialprotected' => 'Las páginas especiales no se pueden editar',
 'titleprotected' => 'Esta página ha sido protegida contra creación por [[User:$1|$1]].
 El motivo dado fue: "\'\'$2\'\'".',
@@ -781,8 +801,9 @@ Ten en cuenta que las páginas que tengas abiertas en otras ventanas o pestañas
 'welcomecreation-msg' => 'Tu cuenta ha sido creada.
 No olvides cambiar tus [[Special:Preferences|preferencias de {{SITENAME}} ]].',
 'yourname' => 'Nombre de usuario:',
-'userlogin-yourname' => 'Nombre de usuario',
+'userlogin-yourname' => 'Usuario',
 'userlogin-yourname-ph' => 'Escribe tu nombre de usuario',
+'createacct-another-username-ph' => 'Ingrese el nombre de usuario',
 'yourpassword' => 'Contraseña:',
 'userlogin-yourpassword' => 'Contraseña',
 'userlogin-yourpassword-ph' => 'Escribe tu contraseña',
@@ -791,8 +812,8 @@ No olvides cambiar tus [[Special:Preferences|preferencias de {{SITENAME}} ]].',
 'createacct-yourpasswordagain' => 'Confirma la contraseña',
 'createacct-yourpasswordagain-ph' => 'Repite la contraseña',
 'remembermypassword' => 'Mantenerme conectado en este navegador (hasta $1 {{PLURAL:$1|día|días}})',
-'userlogin-remembermypassword' => 'Mantener mi sesión iniciada',
-'userlogin-signwithsecure' => 'Idetificarse mediante servidor seguro',
+'userlogin-remembermypassword' => 'Mantener mi sesión',
+'userlogin-signwithsecure' => 'Usar conexión segura',
 'securelogin-stick-https' => 'Permanecer conectado a HTTPS después de iniciar sesión',
 'yourdomainname' => 'Dominio',
 'password-change-forbidden' => 'No puedes cambiar las contraseñas de este wiki.',
@@ -806,19 +827,22 @@ No olvides cambiar tus [[Special:Preferences|preferencias de {{SITENAME}} ]].',
 'userlogout' => 'Cerrar sesión',
 'notloggedin' => 'No has iniciado sesión',
 'userlogin-noaccount' => '¿No tienes una cuenta?',
-'userlogin-joinproject' => 'Unirse a {{SITENAME}}',
+'userlogin-joinproject' => 'Únete a {{SITENAME}}',
 'nologin' => '¿No tienes una cuenta? $1.',
 'nologinlink' => 'Crear una cuenta',
 'createaccount' => 'Crear una cuenta',
 'gotaccount' => '¿Ya tienes una cuenta? $1.',
 'gotaccountlink' => 'Entrar',
 'userlogin-resetlink' => '¿Olvidaste tus datos de acceso?',
+'userlogin-resetpassword-link' => 'Restablecer la contraseña',
 'helplogin-url' => 'Help:Inicio de sesión',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Ayuda para identificarse]]',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Ayuda]]',
 'createacct-join' => 'Introduce tus datos debajo.',
+'createacct-another-join' => 'Introduzca la información de la nueva cuenta a continuación.',
 'createacct-emailrequired' => 'Dirección de correo electrónico',
 'createacct-emailoptional' => 'Dirección de correo electrónico (opcional)',
 'createacct-email-ph' => 'Escribe tu dirección de correo electrónico',
+'createacct-another-email-ph' => 'Introduzca la dirección de correo electrónico',
 'createaccountmail' => 'Usar una contraseña aleatoria temporal y enviarla a la siguiente dirección de correo electrónico',
 'createacct-realname' => 'Nombre real (opcional)',
 'createaccountreason' => 'Motivo:',
@@ -827,6 +851,7 @@ No olvides cambiar tus [[Special:Preferences|preferencias de {{SITENAME}} ]].',
 'createacct-captcha' => 'Comprobación de seguridad',
 'createacct-imgcaptcha-ph' => 'Escribe el texto de arriba',
 'createacct-submit' => 'Crea tu cuenta',
+'createacct-another-submit' => 'Crear otra cuenta',
 'createacct-benefit-heading' => '{{SITENAME}} lo construye gente como tú.',
 'createacct-benefit-body1' => '{{PLURAL:$1|edición|ediciones}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|página|páginas}}',
@@ -889,7 +914,7 @@ Por favor, escribe una dirección en el formato adecuado o deja el campo en blan
 'cannotchangeemail' => 'Las direcciones de la correo electrónico de las cuentas de usuario no puedes cambiarse en esta wiki.',
 'emaildisabled' => 'Este sitio no puede enviar mensajes de correo electrónico.',
 'accountcreated' => 'Cuenta creada',
-'accountcreatedtext' => 'La cuenta de usuario para $1 ha sido creada.',
+'accountcreatedtext' => 'La cuenta de usuario de [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) ha sido creada.',
 'createaccount-title' => 'Creación de cuenta para {{SITENAME}}',
 'createaccount-text' => 'Alguien creó en {{SITENAME}} ($4) una cuenta asociada a este correo electrónico con el nombre «$2».
 La contraseña asignada automáticamente es «$3». Por favor entra ahora y cambia tu contraseña.
@@ -929,11 +954,11 @@ Puede que ya hayas cambiado la contraseña o que hayas pedido una temporal.',
 
 # Special:PasswordReset
 'passwordreset' => 'Restablecimiento de contraseña',
-'passwordreset-text' => 'Completa este formulario para restablecer la contraseña.',
+'passwordreset-text-one' => 'Completa este formulario para restablecer tu contraseña.',
+'passwordreset-text-many' => '{{PLURAL:$1|Completa uno de los campos para restablecer tu contraseña.}}',
 'passwordreset-legend' => 'Restablecer contraseña',
 'passwordreset-disabled' => 'Se ha desactivado el restablecimiento de contraseñas en este wiki.',
 'passwordreset-emaildisabled' => 'Las funciones de correo electrónico han sido desactivadas en esta wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Introduce uno de los elementos de datos siguientes}}',
 'passwordreset-username' => 'Nombre de usuario:',
 'passwordreset-domain' => 'Dominio:',
 'passwordreset-capture' => '¿Ver el mensaje resultante?',
@@ -1155,7 +1180,7 @@ Puede volver atrás y editar una página existente, [[Special:UserLogin|identifi
 'nocreate-loggedin' => 'No tienes permiso para crear páginas nuevas.',
 'sectioneditnotsupported-title' => 'Edición de sección no compatible',
 'sectioneditnotsupported-text' => 'La edición de sección no es compatible con esta página.',
-'permissionserrors' => 'Errores de permisos',
+'permissionserrors' => 'Error de permiso',
 'permissionserrorstext' => 'No tienes permiso para hacer eso, por {{PLURAL:$1|el siguiente motivo|los siguientes motivos}}:',
 'permissionserrorstext-withaction' => 'No tienes permiso para $2, por {{PLURAL:$1|el siguiente motivo|los siguientes motivos}}:',
 'recreate-moveddeleted-warn' => "'''Atención: estás volviendo a crear una página que ha sido borrada anteriormente.'''
@@ -1171,14 +1196,15 @@ No se aportaron explicaciones.',
 Parece que ha sido borrada.',
 'edit-conflict' => 'Conflicto de edición.',
 'edit-no-change' => 'Se ignoró tu revisión, porque no se hizo ningún cambio al texto.',
+'postedit-confirmation' => 'Se ha guardado tu edición.',
 'edit-already-exists' => 'No se pudo crear una página nueva.
 Ya existe.',
 'defaultmessagetext' => 'Texto de mensaje predeterminado',
 'content-failed-to-parse' => 'No se pudo analizar el contenido $2 del modelo $1: $3',
 'invalid-content-data' => 'Datos de contenido inválidos',
 'content-not-allowed-here' => 'El contenido "$1" no está permitido en la página [[$2]]',
-'editwarning-warning' => 'Dejar esta página le causará la pérdida de cualquier cambio que haya hecho.
-Si está "logueado", puede deshabilitar esta advertencia en la sección "{{int:prefs-editing}}" de sus preferencias.',
+'editwarning-warning' => 'Si abandonas esta página perderás tus cambios.
+Si estás identificado, puedes deshabilitar esta advertencia en la sección "Edición" de tus preferencias.',
 
 # Content models
 'content-model-wikitext' => 'texto wiki',
@@ -1213,6 +1239,7 @@ Ese o esos parámetros han sido omitidos.',
 'undo-failure' => 'No se puede deshacer la edición ya que otro usuario ha realizado una edición intermedia.',
 'undo-norev' => 'La edición no puede ser deshecha porque no existe o ha sido borrada.',
 'undo-summary' => 'Deshecha la revisión $1 de [[Special:Contributions/$2|$2]] ([[User talk:$2|disc.]])',
+'undo-summary-username-hidden' => 'Deshacer revisión $1 por usuario oculto',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'No se puede crear la cuenta',
@@ -1394,6 +1421,7 @@ Nota que usar los enlaces de navegación borrará las selecciones de esta column
 'compareselectedversions' => 'Comparar versiones seleccionadas',
 'showhideselectedversions' => 'Mostrar/ocultar versiones seleccionadas',
 'editundo' => 'deshacer',
+'diff-empty' => '(Sin diferencias)',
 'diff-multi' => '(No se {{PLURAL:$1|muestra una edición intermedia realizada|muestran $1 ediciones intermedias realizadas}} por {{PLURAL:$2|un usuario|$2 usuarios}})',
 'diff-multi-manyusers' => '(No se {{PLURAL:$1|muestra una edición intermedia|muestran $1 ediciones intermedias}} de {{PLURAL:$2|un usuario|$2 usuarios}})',
 'difference-missing-revision' => 'No {{PLURAL:$2|se ha encontrado|se han encontrado}} {{PLURAL:$2|una revisión|$2 revisiones}} de esta diferencia ($1).
@@ -1421,7 +1449,6 @@ Los detalles pueden encontrarse en el [{{fullurl:{{#Special:Log}}/delete|page={{
 'searchmenu-legend' => 'Opciones de búsqueda',
 'searchmenu-exists' => "'''Hay una página llamada \"[[:\$1]]\" en esta wiki.'''",
 'searchmenu-new' => "'''¡Crea la página «[[:$1]]» en este wiki!'''",
-'searchhelp-url' => 'Help:Ayuda',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Otras páginas con este prefijo]]',
 'searchprofile-articles' => 'Páginas de contenido',
 'searchprofile-project' => 'Páginas de ayuda y de proyecto',
@@ -1498,7 +1525,6 @@ Mientras tanto puedes buscar mediante Google, pero ten en cuenta que sus índice
 'resetprefs' => 'Limpiar cambios sin guardar',
 'restoreprefs' => 'Restaurar la configuración predeterminada',
 'prefs-editing' => 'Edición',
-'prefs-edit-boxsize' => 'Tamaño de la ventana de edición.',
 'rows' => 'Filas:',
 'columns' => 'Columnas:',
 'searchresultshead' => 'Búsquedas',
@@ -1509,8 +1535,6 @@ Mientras tanto puedes buscar mediante Google, pero ten en cuenta que sus índice
 'recentchangesdays-max' => '(máximo {{PLURAL:$1|un día|$1 días}})',
 'recentchangescount' => 'Número de ediciones a mostrar de manera predeterminada:',
 'prefs-help-recentchangescount' => 'Esto incluye cambios recientes, historiales de página, y registros.',
-'prefs-help-watchlist-token' => 'Rellenar este campo con una clave secreta generará un canal RSS para tu lista de seguimiento.
-Cualquiera que conozca la clave en este campo será capaz de leer tu lista de seguimiento, así que escoge un valor seguro. Aquí hay un valor generado aleatoriamente que puedes usar: $1',
 'savedprefs' => 'Tus preferencias han sido guardadas.',
 'timezonelegend' => 'Zona horaria:',
 'localtime' => 'Hora local:',
@@ -1541,7 +1565,6 @@ Cualquiera que conozca la clave en este campo será capaz de leer tu lista de se
 'prefs-reset-intro' => 'Puedes usar esta página para restaurar tus preferencias a las predeterminadas del sitio.
 Esto no se puede deshacer.',
 'prefs-emailconfirm-label' => 'Confirmación de correo electrónico:',
-'prefs-textboxsize' => 'Tamaño de la página de edición',
 'youremail' => 'Correo electrónico:',
 'username' => '{{GENDER:$1|Nombre de usuario|Nombre de usuaria}}:',
 'uid' => 'ID de {{GENDER:$1|usuario|usuaria}}:',
@@ -1571,7 +1594,8 @@ Tu dirección de correo no se revela cuando otros usuarios te contactan.',
 'prefs-signature' => 'Firma',
 'prefs-dateformat' => 'Formato de fecha',
 'prefs-timeoffset' => 'Diferencia horaria',
-'prefs-advancedediting' => 'Opciones avanzadas',
+'prefs-advancedediting' => 'General',
+'prefs-preview' => 'Previsualización',
 'prefs-advancedrc' => 'Opciones avanzadas',
 'prefs-advancedrendering' => 'Opciones avanzadas',
 'prefs-advancedsearchoptions' => 'Opciones avanzadas',
@@ -1607,6 +1631,7 @@ Tu dirección de correo no se revela cuando otros usuarios te contactan.',
 'userrights-changeable-col' => 'Grupos que puedes cambiar',
 'userrights-unchangeable-col' => 'Grupos que no puedes cambiar',
 'userrights-conflict' => 'Hay un conflicto de permisos de usuario. Aplica tus cambios de nuevo.',
+'userrights-removed-self' => 'Usted eliminado con éxito sus propios derechos. Por lo tanto, usted ya no es capaz de acceder a esta página.',
 
 # Groups
 'group' => 'Grupo:',
@@ -1650,7 +1675,7 @@ Tu dirección de correo no se revela cuando otros usuarios te contactan.',
 'right-reupload-shared' => 'Sobreescribir localmente ficheros del repositorio multimedia',
 'right-upload_by_url' => 'Subir un archivo a traves de un URL',
 'right-purge' => 'Purgar la caché en el servidor sin tener que dar confirmación',
-'right-autoconfirmed' => 'Editar páginas semiprotegidas',
+'right-autoconfirmed' => 'No ser afectado por los límites de frecuencia basados en el IP',
 'right-bot' => 'Ser tratado como un programa automático',
 'right-nominornewtalk' => 'No accionar el aviso de nuevos mensajes al realizar ediciones menores de páginas de discusión',
 'right-apihighlimits' => 'Tener límites más altos de peticiones a través del API',
@@ -1671,12 +1696,20 @@ Tu dirección de correo no se revela cuando otros usuarios te contactan.',
 'right-ipblock-exempt' => 'Pasar por encima de bloqueos de IPs, auto-bloqueos y bloqueos de rangos.',
 'right-proxyunbannable' => 'Pasar por encima de bloqueos automáticos de proxies',
 'right-unblockself' => 'Desbloquearse',
-'right-protect' => 'Cambiar niveles de protección y editar páginas protegidas',
-'right-editprotected' => 'Editar páginas protegidas (sin la protección «en cascada»)',
+'right-protect' => 'Cambiar niveles de protección y editar páginas protegidas en cascada',
+'right-editprotected' => 'Editar páginas protegidas como «{{int:protect-level-sysop}}»',
+'right-editsemiprotected' => 'Editar páginas protegidas como «{{int:protect-level-autoconfirmed}}»',
 'right-editinterface' => 'Editar la interfaz de usuario',
 'right-editusercssjs' => 'Editar las páginas de CSS y JS de otros usuarios',
 'right-editusercss' => 'Editar las páginas de CSS de otros usuarios',
 'right-edituserjs' => 'Editar las páginas de JS de otros usuarios',
+'right-editmyusercss' => 'Editar tus archivos de usuario CSS',
+'right-editmyuserjs' => 'Editar tus propios archivos JavaScript de usuario',
+'right-viewmywatchlist' => 'Ver tu lista de seguimiento',
+'right-editmywatchlist' => 'Editar tu lista de seguimiento. Algunas acciones seguirán agregando páginas aún sin este derecho.',
+'right-viewmyprivateinfo' => 'Ver tu información privada (ej. email, nombre real)',
+'right-editmyprivateinfo' => 'Editar tus propios datos privados (ej: email, nombre real)',
+'right-editmyoptions' => 'Editar tus propias preferencias',
 'right-rollback' => 'Revertir rápidamente las ediciones del último usuario que modificó una página en particular',
 'right-markbotedits' => 'Marcar ediciones deshechas como ediciones de un bot',
 'right-noratelimit' => 'No afectado por límites de frecuencia',
@@ -1738,12 +1771,17 @@ Tu dirección de correo no se revela cuando otros usuarios te contactan.',
 'action-userrights-interwiki' => 'modificar los derechos de usuarios en otros wikis',
 'action-siteadmin' => 'bloquear o desbloquear la base de datos',
 'action-sendemail' => 'enviar correos electrónicos',
+'action-editmywatchlist' => 'Editar tu lista de seguimiento',
+'action-viewmywatchlist' => 'Ver tu lista de seguimiento',
+'action-viewmyprivateinfo' => 'ver tu información privada',
+'action-editmyprivateinfo' => 'Editar tu información privada',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|cambio|cambios}}',
 'recentchanges' => 'Cambios recientes',
 'recentchanges-legend' => 'Opciones sobre cambios recientes',
 'recentchanges-summary' => 'Sigue los cambios más recientes de la wiki en esta página.',
+'recentchanges-noresult' => 'No hubo cambios durante el período seleccionado que respondan a esos criterios.',
 'recentchanges-feed-description' => 'Realiza un seguimiento de los cambios más recientes en el wiki en este canal.',
 'recentchanges-label-newpage' => 'Esta edición creó una nueva página',
 'recentchanges-label-minor' => 'Esta es una edición menor',
@@ -1780,7 +1818,6 @@ Tu dirección de correo no se revela cuando otros usuarios te contactan.',
 'recentchangeslinked-feed' => 'Cambios relacionados',
 'recentchangeslinked-toolbox' => 'Cambios relacionados',
 'recentchangeslinked-title' => 'Cambios relacionados con «$1»',
-'recentchangeslinked-noresult' => 'No hubo cambios en las páginas enlazadas durante el periodo indicado.',
 'recentchangeslinked-summary' => "Esta página es una lista de los últimos cambios en las páginas enlazadas desde una página (o en las pertenecientes a una categoría). Las páginas que están en tu [[Special:Watchlist|lista de seguimiento]] aparecen en '''negrita'''.",
 'recentchangeslinked-page' => 'Nombre de la página:',
 'recentchangeslinked-to' => 'Muestra los cambios recientes en lugar de la página indicada',
@@ -1791,7 +1828,7 @@ Tu dirección de correo no se revela cuando otros usuarios te contactan.',
 'reuploaddesc' => 'Regresar al formulario para subir.',
 'upload-tryagain' => 'Envíe la descripción del archivo modificado',
 'uploadnologin' => 'No has iniciado sesión',
-'uploadnologintext' => 'Tienes que [[Special:UserLogin|iniciar sesión]] para poder subir archivos.',
+'uploadnologintext' => 'Tienes que $1 para subir archivos.',
 'upload_directory_missing' => 'El directorio de subida de archivos ($1) no existe, y no puede ser creado por el servidor.',
 'upload_directory_read_only' => 'El servidor web no puede escribir en el directorio de subida de archivos ($1).',
 'uploaderror' => 'Error al intentar subir archivo',
@@ -1922,9 +1959,9 @@ $1',
 '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-text' => 'Ha ocurrido un error interno mientras se intentaba crear un fichero temporal en el servidor. Por favor, contacta con un [[Special:ListUsers/sysop|administrador del sistema]].',
+'upload-file-error-text' => 'Ha ocurrido un error interno mientras se intentaba crear un fichero temporal en el servidor. Por favor, 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. Por favor verifica que la URL es válida y accesible e inténtalo de nuevo. Si el problema persiste, contacta con un [[Special:ListUsers/sysop|administrador del sistema]].',
+'upload-misc-error-text' => 'Ha ocurrido un error durante la subida. Por favor verifica que la URL es válida y accesible e inténtalo de nuevo. Si el problema persiste, contacta con un [[Special:ListUsers/sysop|administrador]].',
 'upload-too-many-redirects' => 'La URL contenía demasiadas redirecciones',
 'upload-unknown-size' => 'Tamaño desconocido',
 'upload-http-error' => 'Ha ocurrido un error HTTP: $1',
@@ -2425,10 +2462,9 @@ La dirección de correo electrónico que indicaste en [[Special:Preferences|tus
 'unwatchthispage' => 'Dejar de vigilar',
 'notanarticle' => 'No es un artículo',
 'notvisiblerev' => 'La última revisión de un usuario diferente ha sido borrada',
-'watchnochange' => 'Ninguno de los artículos de tu lista de seguimiento fue editado en el periodo de tiempo mostrado.',
 'watchlist-details' => '{{PLURAL:$1|$1 página|$1 páginas}} en su lista de seguimiento, sin contar las de discusión.',
-'wlheader-enotif' => 'La notificación por correo electrónico está activada.',
-'wlheader-showupdated' => "Las páginas modificadas desde su última visita aparecen en '''negrita'''",
+'wlheader-enotif' => 'La notificación por correo está activada.',
+'wlheader-showupdated' => "Las páginas modificadas desde su última visita aparecen en '''negrita'''.",
 'watchmethod-recent' => 'revisando cambios recientes en páginas vigiladas',
 'watchmethod-list' => 'revisando las páginas vigiladas en busca de cambios recientes',
 'watchlistcontains' => 'Tu lista de seguimiento posee $1 {{PLURAL:$1|página|páginas}}.',
@@ -2531,7 +2567,7 @@ alguien más ya ha editado o revertido esa página.
 La ú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 ediciones hechas por (nombre de usuario eliminado) 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 [[User:$1|$1]]',
 'rollback-success' => 'Revertidas las ediciones de $1; recuperada la última versión de $2.',
 
 # Edit tokens
@@ -2672,7 +2708,7 @@ $1',
 'mycontris' => 'Contribuciones',
 'contribsub2' => '$1 ($2)',
 'nocontribs' => 'No se encontraron cambios que cumplieran estos criterios.',
-'uctop' => '(última edición)',
+'uctop' => '(Edición actual)',
 'month' => 'Desde el mes (y anteriores):',
 'year' => 'Desde el año (y anteriores):',
 
@@ -2994,6 +3030,8 @@ Por favor visita [//www.mediawiki.org/wiki/Localisation Localización MediaWiki]
 'thumbnail-more' => 'Aumentar',
 'filemissing' => 'Falta archivo',
 'thumbnail_error' => 'Error al crear miniatura: $1',
+'thumbnail_error_remote' => 'Mensaje de error de  $1 :
+$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',
@@ -3939,7 +3977,6 @@ También puedes [[Special:EditWatchlist|usar el editor estándar]].',
 'version-other' => 'Otro',
 'version-mediahandlers' => 'Manejadores multimedia',
 'version-hooks' => 'Extensiones',
-'version-extension-functions' => 'Funciones de extensiones',
 'version-parser-extensiontags' => 'Etiquetas de extensiones sintácticas',
 'version-parser-function-hooks' => 'Extensiones de funciones sintácticas',
 'version-hook-name' => 'Nombre de la extensión',
@@ -4023,6 +4060,7 @@ Has recibido [{{SERVER}}{{SCRIPTPATH}}/COPYING una copia de la Licencia Pública
 'tags' => 'Cambio de etiquetas válida',
 'tag-filter' => 'Filtro de [[Special:Tags|etiquetas]]:',
 'tag-filter-submit' => 'Filtro',
+'tag-list-wrapper' => '([[Especial:Etiquetas|{{PLURAL:$1|Etiqueta|Etiquetas}}]]: $2)',
 'tags-title' => 'Etiquetas',
 'tags-intro' => 'Esta página lista las etiquetas con las que el software puede marcar una edición y su significado.',
 'tags-tag' => 'Nombre de etiqueta',
@@ -4077,14 +4115,14 @@ Este sitio está experimentando dificultades técnicas.',
 'logentry-delete-delete' => '$1 {{GENDER:$2|borró}} la página «$3»',
 '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 modificó la visibilidad de {{PLURAL:$5|una edición|$5 ediciones}} en la página $3: $4',
-'logentry-delete-event-legacy' => '$1 modificó la visibilidad de los eventos del registro en $3',
-'logentry-delete-revision-legacy' => '$1 modificó la visibilidad de varias ediciones en la página $3',
+'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-revision-legacy' => '$1 ha {{GENDER:$2|cambiado}} la visibilidad de las revisiones en la página $3',
 'logentry-suppress-delete' => '$1 {{GENDER:$2|borró}}, con restricciones para administradores aplicadas, la página $3',
-'logentry-suppress-event' => '$1 modificó secretamente la visibilidad de {{PLURAL:$5|un evento del registro|$5 eventos del registro}} en $3: $4',
+'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-revision' => '$1 modificó secretamente la visibilidad de {{PLURAL:$5|una edición|$5 ediciones}} en la página $3: $4',
-'logentry-suppress-event-legacy' => '$1 modificó secretamente la visibilidad de los eventos del registro en $3',
-'logentry-suppress-revision-legacy' => '$1 modificó secretamente la visibilidad de varias ediciones en la página $3',
+'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',
 'revdelete-content-hid' => 'contenido ocultado',
 'revdelete-summary-hid' => 'resumen de edición oculto',
 'revdelete-uname-hid' => 'nombre de usuario ocultado',
@@ -4097,9 +4135,9 @@ Este sitio está experimentando dificultades técnicas.',
 'logentry-move-move-noredirect' => '$1 movió la página $3 a $4 sin dejar una redirección',
 'logentry-move-move_redir' => '$1 movió la página $3 a $4 sobre una redirección',
 'logentry-move-move_redir-noredirect' => '$1 movió la página $3 a $4 sobre una redirección y sin dejar una redirección',
-'logentry-patrol-patrol' => '$1 marcó como patrullada la edición $4 de la página $3',
-'logentry-patrol-patrol-auto' => '$1 marcó automáticamente la edición $4 de la página $3 como patrullada',
-'logentry-newusers-newusers' => 'La cuenta de usuario $1 ha sido creada',
+'logentry-patrol-patrol' => '$1 {{GENDER:$2|marcó}} como patrullada la edición $4 de la página $3',
+'logentry-patrol-patrol-auto' => '$1 {{GENDER:$2|marcó}} automáticamente la edición $4 de la página $3 como patrullada',
+'logentry-newusers-newusers' => 'La cuenta de usuario $1 ha sido {{GENDER:$2|creada}}',
 'logentry-newusers-create' => 'La cuenta de usuario $1 ha sido creada',
 'logentry-newusers-create2' => 'La cuenta de usuario $3 ha sido creada por $1',
 'logentry-newusers-byemail' => 'la cuenta de usuario $3 ha sido creada por $1 y la contraseña ha sido enviada por correo',
index b6e7791..68af8e3 100644 (file)
@@ -9,6 +9,7 @@
  *
  * @author Avjoska
  * @author Cylly1512
+ * @author Geitost
  * @author Hendrik
  * @author Hendrix
  * @author Jaan513
@@ -18,6 +19,7 @@
  * @author Ker
  * @author Kyng
  * @author Morel
+ * @author Nemo bis
  * @author Oop
  * @author Pikne
  * @author Silvar
@@ -105,6 +107,7 @@ $specialPageAliases = array(
        'Myuploads'                 => array( 'Minu_üleslaaditu' ),
        'Newimages'                 => array( 'Uued_failid' ),
        'Newpages'                  => array( 'Uued_leheküljed' ),
+       'PagesWithProp'             => array( 'Atribuudiga_leheküljed' ),
        'PasswordReset'             => array( 'Parooli_lähtestamine' ),
        'PermanentLink'             => array( 'Püsilink' ),
        'Popularpages'              => array( 'Loetumad_leheküljed' ),
@@ -397,6 +400,18 @@ $messages = array(
 'oct' => 'okt',
 'nov' => 'nov',
 'dec' => 'dets',
+'january-date' => '$1. jaanuar',
+'february-date' => '$1. veebruar',
+'march-date' => '$1. märts',
+'april-date' => '$1. aprill',
+'may-date' => '$1. mai',
+'june-date' => '$1. juuni',
+'july-date' => '$1. juuli',
+'august-date' => '$1. august',
+'september-date' => '$1. september',
+'october-date' => '$1. oktoober',
+'november-date' => '$1. november',
+'december-date' => '$1. detsember',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategooria|Kategooriad}}',
@@ -477,6 +492,7 @@ $messages = array(
 'create-this-page' => 'Loo see lehekülg',
 'delete' => 'Kustuta',
 'deletethispage' => 'Kustuta see lehekülg',
+'undeletethispage' => 'Taasta see lehekülg',
 'undelete_short' => 'Taasta {{PLURAL:$1|üks muudatus|$1 muudatust}}',
 'viewdeleted_short' => 'Vaata {{PLURAL:$1|üht|$1}} kustutatud redaktsiooni',
 'protect' => 'Kaitse',
@@ -528,7 +544,6 @@ $1',
 'disclaimers' => 'Hoiatused',
 'disclaimerpage' => 'Project:Hoiatused',
 'edithelp' => 'Redigeerimisjuhend',
-'edithelppage' => 'Help:Kuidas_lehte_redigeerida',
 'helppage' => 'Help:Sisukord',
 'mainpage' => 'Esileht',
 'mainpage-description' => 'Esileht',
@@ -558,7 +573,6 @@ Vaata [[Special:Version|versiooni lehekülge]].',
 'newmessagesdifflinkplural' => '{{PLURAL:$1|viimane muudatus|viimased muudatused}}',
 'youhavenewmessagesmulti' => 'Sulle on uusi sõnumeid $1',
 'editsection' => 'muuda',
-'editsection-brackets' => '[$1]',
 'editold' => 'redigeeri',
 'viewsourceold' => 'vaata lähteteksti',
 'editlink' => 'redigeeri',
@@ -678,6 +692,10 @@ $2',
 'namespaceprotected' => "Sul pole õigust redigeerida lehekülgi nimeruumis '''$1'''.",
 'customcssprotected' => 'Sul pole õigust seda CSS-lehekülge redigeerida, sest see sisaldab teise kasutaja isiklikke sätteid.',
 'customjsprotected' => 'Sul pole õigust seda JavaScripti lehekülge redigeerida, sest see sisaldab teise kasutaja isiklikke sätteid.',
+'mycustomcssprotected' => 'Sul pole õigust redigeerida seda CSS-lehekülge.',
+'mycustomjsprotected' => 'Sul pole õigust redigeerida seda JavaScript-lehekülge.',
+'myprivateinfoprotected' => 'Sul pole lubatud oma eraandmeid redigeerida.',
+'mypreferencesprotected' => 'Sul pole lubatud oma eelistusi muuta.',
 'ns-specialprotected' => 'Erilehekülgi ei saa redigeerida.',
 'titleprotected' => "Kasutaja [[User:$1|$1]] on selle pealkirjaga lehe loomise keelanud esitades järgmise põhjenduse: ''$2''.",
 'filereadonlyerror' => 'Faili "$1" ei saa muuta, sest hoidla "$2" on kirjutuskaitstud.
@@ -704,6 +722,7 @@ Pane tähele, et seni kuni sa pole oma võrgulehitseja puhvrit tühjendanud, võ
 'yourname' => 'Kasutajanimi:',
 'userlogin-yourname' => 'Kasutajanimi',
 'userlogin-yourname-ph' => 'Sisesta oma kasutajanimi',
+'createacct-another-username-ph' => 'Sisesta kasutajanimi',
 'yourpassword' => 'Parool:',
 'userlogin-yourpassword' => 'Parool',
 'userlogin-yourpassword-ph' => 'Sisesta oma parool',
@@ -713,7 +732,7 @@ Pane tähele, et seni kuni sa pole oma võrgulehitseja puhvrit tühjendanud, võ
 'createacct-yourpasswordagain-ph' => 'Sisesta uuesti parool',
 'remembermypassword' => 'Jäta parool meelde (kuni $1 {{PLURAL:$1|päevaks|päevaks}})',
 'userlogin-remembermypassword' => 'Jää sisseloginuks',
-'userlogin-signwithsecure' => 'Logi sisse turvaserveri kaudu',
+'userlogin-signwithsecure' => 'Kasuta turvalist ühendust',
 'securelogin-stick-https' => 'Jätka pärast sisselogimist HTTPS-ühenduse kasutamist',
 'yourdomainname' => 'Sinu domeen:',
 'password-change-forbidden' => 'Selles vikis ei saa paroole muuta.',
@@ -728,18 +747,21 @@ Pane tähele, et seni kuni sa pole oma võrgulehitseja puhvrit tühjendanud, võ
 'notloggedin' => 'Sisse logimata',
 'userlogin-noaccount' => 'Kas sul pole kontot?',
 'userlogin-joinproject' => 'Ühine projektiga {{SITENAME}}',
-'nologin' => "Sul pole kontot? '''$1'''.",
+'nologin' => 'Kas sul pole kontot? $1.',
 'nologinlink' => 'Registreeru siin',
 'createaccount' => 'Loo uus konto',
 'gotaccount' => "Kui sul on juba konto, '''$1'''.",
 'gotaccountlink' => 'logi sisse',
 'userlogin-resetlink' => 'Kas oled unustanud oma sisselogimisandmed?',
+'userlogin-resetpassword-link' => 'Lähtesta oma parool',
 'helplogin-url' => 'Help:Sisselogimine',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Sisselogimisabi]]',
 'createacct-join' => 'Sisesta allapoole oma andmed.',
+'createacct-another-join' => 'Sisesta allpool uue konto andmed.',
 'createacct-emailrequired' => 'E-posti aadress',
 'createacct-emailoptional' => 'E-posti aadress (valikuline)',
 'createacct-email-ph' => 'Sisesta oma e-posti aadress',
+'createacct-another-email-ph' => 'Sisesta e-posti aadress',
 'createaccountmail' => 'Kasuta juhuslikku parooli ja saada see allpool määratud e-posti aadressile',
 'createacct-realname' => 'Pärisnimi (valikuline)',
 'createaccountreason' => 'Põhjus:',
@@ -748,10 +770,11 @@ Pane tähele, et seni kuni sa pole oma võrgulehitseja puhvrit tühjendanud, võ
 'createacct-captcha' => 'Turvakontroll',
 'createacct-imgcaptcha-ph' => 'Sisesta ülalnähtav tekst',
 'createacct-submit' => 'Loo oma konto',
+'createacct-another-submit' => 'Loo teine konto',
 'createacct-benefit-heading' => '{{SITENAME}} on sinusuguste inimeste tehtud.',
-'createacct-benefit-body1' => 'muudatust',
-'createacct-benefit-body2' => 'lehekülge',
-'createacct-benefit-body3' => 'hiljutist kaastöölist',
+'createacct-benefit-body1' => '{{PLURAL:$1|muudatus|muudatust}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|lehekülg|lehekülge}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|hiljutine kaastööline|hiljutist kaastöölist}}',
 'badretype' => 'Sisestatud paroolid ei lange kokku.',
 'userexists' => 'Sisestatud kasutajanimi on juba kasutusel.
 Palun valige uus nimi.',
@@ -802,7 +825,7 @@ Ole hea ja sisesta õige e-posti aadress või jäta väli tühjaks.',
 'cannotchangeemail' => 'Selles vikis ei saa konto e-posti aadressi muuta.',
 'emaildisabled' => 'Selle võrgukoha kaudu ei saa e-kirju saata.',
 'accountcreated' => 'Konto loodud',
-'accountcreatedtext' => 'Kasutajakonto kasutajatunnusele $1 loodud.',
+'accountcreatedtext' => 'Kasutaja [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) konto on loodud.',
 'createaccount-title' => '{{GRAMMAR:illative|{{SITENAME}}}} konto loomine',
 'createaccount-text' => 'Keegi on loonud {{GRAMMAR:illative|{{SITENAME}}}} ($4) sinu e-posti aadressile vastava kasutajatunnuse "$2". Parooliks seati "$3". Logi sisse ja muuda oma parool.
 
@@ -816,7 +839,7 @@ Palun pea nüüd pisut vahet.',
 
 # Email sending
 'php-mail-error-unknown' => 'Tundmatu tõrge PHP funktsioonis mail().',
-'user-mail-no-addy' => 'Püüdsid saata e-kirja ilma meiliaadressita.',
+'user-mail-no-addy' => 'Püüdsid saata e-kirja ilma e-posti aadressita.',
 'user-mail-no-body' => 'Püüti saata tühja või ebamõistlikult lühikese sisuosaga e-kirja.',
 
 # Change password dialog
@@ -842,11 +865,11 @@ Võib-olla oled juba edukalt muudnud oma salasõna või taotlenud uut ajutist sa
 
 # Special:PasswordReset
 'passwordreset' => 'Parooli lähtestamine',
-'passwordreset-text' => 'Täida see vorm, et oma parool lähtestada.',
+'passwordreset-text-one' => 'Täida see vorm, et oma parool lähtestada.',
+'passwordreset-text-many' => '{{PLURAL:$1|Täida üks väljadest, et oma parool lähtestada.}}',
 'passwordreset-legend' => 'Parooli lähtestamine',
 'passwordreset-disabled' => 'Selles vikis on paroolide lähtestamine keelatud.',
 'passwordreset-emaildisabled' => 'E-posti funktsioonid on selles vikis keelatud.',
-'passwordreset-pretext' => '{{PLURAL:$1||Sisesta üks järgmistest andmeüksustest.}}',
 'passwordreset-username' => 'Kasutajanimi:',
 'passwordreset-domain' => 'Domeen:',
 'passwordreset-capture' => 'Näita lähetatavat e-kirja?',
@@ -1065,7 +1088,7 @@ Võid pöörduda tagasi ja toimetada olemasolevat lehekülge või [[Special:User
 'nocreate-loggedin' => 'Sul ei ole luba luua uusi lehekülgi.',
 'sectioneditnotsupported-title' => 'Alaosa redigeerimine pole lubatud.',
 'sectioneditnotsupported-text' => 'Sellel leheküljel pole alaosa redigeerimine lubatud.',
-'permissionserrors' => 'Viga õigustes',
+'permissionserrors' => 'Loatõrge',
 'permissionserrorstext' => 'Sul pole õigust seda teha {{PLURAL:$1|järgmisel põhjusel|järgmistel põhjustel}}:',
 'permissionserrorstext-withaction' => 'Sul pole lubatud {{lcfirst:$2}} {{PLURAL:$1|järgneval põhjusel|järgnevatel põhjustel}}:',
 'recreate-moveddeleted-warn' => "'''Hoiatus: Lood uuesti lehekülge, mis on varem kustutatud.'''
@@ -1080,13 +1103,14 @@ Allpool on esitatud lehekülje kustutamis- ja teisaldamislogi.',
 Tundub, et see on kustutatud.',
 'edit-conflict' => 'Redigeerimiskonflikt.',
 'edit-no-change' => 'Sinu redigeerimist ignoreeriti, sest tekstile ei olnud tehtud muudatusi.',
+'postedit-confirmation' => 'Sinu muudatus on salvestatud.',
 'edit-already-exists' => 'Ei saanud alustada uut lehekülge.
 See on juba olemas.',
 'defaultmessagetext' => 'Sõnumi vaiketekst',
 'invalid-content-data' => 'Vigased sisuandmed',
 'content-not-allowed-here' => 'Lehekülg [[$2]] ei või sisaldada $1.',
 'editwarning-warning' => 'Sellelt leheküljelt lahkumise tõttu võivad tehtud muudatused kaotsi minna.
-Kui oled sisse loginud, saad selle hoiatuse eelistuste alaosas "{{int:prefs-editing}}" keelata.',
+Kui oled sisse loginud, saad selle hoiatuse eelistuste alaosas "Toimetamine" keelata.',
 
 # Content models
 'content-model-wikitext' => 'vikiteksti',
@@ -1111,7 +1135,8 @@ Need argumendid on välja jäetud.",
 'undo-success' => 'Selle redaktsiooni käigus tehtud muudatusi saab eemaldada. Palun kontrolli allolevat võrdlust veendumaks, et tahad need muudatused tõepoolest eemaldada. Seejärel saad lehekülje salvestada.',
 'undo-failure' => 'Muudatust ei saa vahapeal tehtud redigeerimiste tõttu tühistada.',
 'undo-norev' => 'Muudatust ei saanud tühistada, kuna seda ei ole või see kustutati.',
-'undo-summary' => 'Tühistati muudatus $1, mille tegi [[Special:Contributions/$2|$2]] ([[User talk:$2|arutelu]])',
+'undo-summary' => 'Eemaldatud muudatus $1, mille tegi [[Special:Contributions/$2|$2]] ([[User talk:$2|arutelu]])',
+'undo-summary-username-hidden' => 'Eemaldatud redaktsioon $1, mille tegi peidetud kasutaja',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Ei saa kontot luua',
@@ -1138,8 +1163,8 @@ Legend: (viim) = erinevused võrreldes viimase redaktsiooniga,
 (eel) = erinevused võrreldes eelmise redaktsiooniga, P = pisimuudatus',
 'history-fieldset-title' => 'Ajaloo sirvimine',
 'history-show-deleted' => 'Üksnes kustutatud',
-'histfirst' => 'Esimesed',
-'histlast' => 'Viimased',
+'histfirst' => 'vanimad',
+'histlast' => 'uusimad',
 'historysize' => '({{PLURAL:$1|1 bait|$1 baiti}})',
 'historyempty' => '(tühi)',
 
@@ -1288,10 +1313,11 @@ Pane tähele, et navigeerimislinkide kasutamine lähtestab redaktsioonide valiku
 'difference-title' => 'Erinevus lehekülje "$1" redaktsioonide vahel',
 'difference-title-multipage' => 'Erinevus lehekülgede "$1" ja "$2" vahel',
 'difference-multipage' => '(Lehekülgede erinevus)',
-'lineno' => 'Rida $1:',
+'lineno' => '$1. rida:',
 'compareselectedversions' => 'Võrdle valitud redaktsioone',
 'showhideselectedversions' => 'Näita/peida valitud versioonid',
 'editundo' => 'eemalda',
+'diff-empty' => '(Erinevus puudub)',
 'diff-multi' => '({{PLURAL:$1|Ühte|$1}} vahepealset {{PLURAL:$2|ühe|$2}} kasutaja redaktsiooni ei näidata.)',
 'diff-multi-manyusers' => '({{PLURAL:$1|Ühte|$1}} vahepealset rohkem kui {{PLURAL:$2|ühe|$2}} kasutaja redaktsiooni ei näidata.)',
 'difference-missing-revision' => 'Selle erinevuste vaate {{PLURAL:$2|üht|$2}} redaktsiooni ($1) ei leitud.
@@ -1315,11 +1341,10 @@ Harilikult tähendab see seda, et sind siia juhatanud link on vananenud ja siin
 'prevn-title' => '{{PLURAL:$1|Eelmine tulemus|Eelmised $1 tulemust}}',
 'nextn-title' => '{{PLURAL:$1|Järgmine tulemus|Järgmised $1 tulemust}}',
 'shown-title' => 'Näita lehekülje kohta $1 {{PLURAL:$1|tulemus|tulemust}}',
-'viewprevnext' => 'Näita ($1 {{int:pipe-separator}} $2) ($3).',
+'viewprevnext' => 'Näita ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-legend' => 'Otsingu sätted',
 'searchmenu-exists' => "'''Lehekülg pealkirjaga \"[[:\$1]]\" on olemas.'''",
 'searchmenu-new' => "'''Loo lehekülg pealkirjaga \"[[:\$1]]\".'''",
-'searchhelp-url' => 'Help:Sisukord',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Sirvi selle eesliitega lehekülgi]]',
 'searchprofile-articles' => 'Sisuleheküljed',
 'searchprofile-project' => 'Abi- ja projektilehed',
@@ -1364,6 +1389,7 @@ päringu ees prefiksit ''all:''. Konkreetsest nimeruumist otsimiseks kasuta pref
 'searchdisabled' => "Otsimine on preagu keelatud.
 Vahepeal saad otsimiseks Google'it kasutada.
 Pane tähele, et Google'is talletatud {{GRAMMAR:genitive|{{SITENAME}}}} sisu võib olla iganenud.",
+'search-error' => 'Otsimise ajal ilmnes tõrge: $1',
 
 # Preferences page
 'preferences' => 'Eelistused',
@@ -1397,7 +1423,6 @@ Pane tähele, et Google'is talletatud {{GRAMMAR:genitive|{{SITENAME}}}} sisu võ
 'resetprefs' => 'Lähtesta eelistused',
 'restoreprefs' => 'Taasta kõikjal vaikesätted',
 'prefs-editing' => 'Toimetamine',
-'prefs-edit-boxsize' => 'Toimetamise akna suurus.',
 'rows' => 'Ridu:',
 'columns' => 'Veerge:',
 'searchresultshead' => 'Otsingutulemite sätted',
@@ -1408,9 +1433,6 @@ Pane tähele, et Google'is talletatud {{GRAMMAR:genitive|{{SITENAME}}}} sisu võ
 'recentchangesdays-max' => 'Ülemmäär $1 {{PLURAL:$1|päev|päeva}}',
 'recentchangescount' => 'Mitut redaktsiooni vaikimisi näidata:',
 'prefs-help-recentchangescount' => 'See käib viimaste muudatuste, lehekülgede ajalugude ja logide kohta.',
-'prefs-help-watchlist-token' => 'Selle välja täitmine tekitab sinu jälgimisloendile RSS-toite.
-Igaüks, kes teab sellel väljal olevat võtit, saab lugeda sinu jälgimisloendit, seega vali turvaline väärtus.
-Siin on juhuslik väärtus, mida saad kasutada: $1',
 'savedprefs' => 'Sinu eelistused on salvestatud.',
 'timezonelegend' => 'Ajavöönd:',
 'localtime' => 'Kohalik aeg:',
@@ -1441,7 +1463,6 @@ Siin on juhuslik väärtus, mida saad kasutada: $1',
 'prefs-reset-intro' => 'Sellel leheküljel saad oma eelistused lähtestada võrgukoha vaike-eelistusteks.
 Toimingut ei saa hiljem tühistada.',
 'prefs-emailconfirm-label' => 'E-posti kinnitus:',
-'prefs-textboxsize' => 'Toimetamisakna suurus',
 'youremail' => 'E-posti aadress:',
 'username' => '{{GENDER:$1|Kasutajanimi}}:',
 'uid' => '{{GENDER:$1|Kasutaja}} ID:',
@@ -1472,7 +1493,9 @@ See ei tohi olla pikem kui {{PLURAL:$1|üks märk|$1 märki}}.',
 'prefs-signature' => 'Allkiri',
 'prefs-dateformat' => 'Kuupäeva vorming',
 'prefs-timeoffset' => 'Ajavahe',
-'prefs-advancedediting' => 'Täpsemad eelistused',
+'prefs-advancedediting' => 'Üldine',
+'prefs-editor' => 'Redaktor',
+'prefs-preview' => 'Eelvaade',
 'prefs-advancedrc' => 'Täpsemad eelistused',
 'prefs-advancedrendering' => 'Täpsemad eelistused',
 'prefs-advancedsearchoptions' => 'Täpsemad eelistused',
@@ -1508,6 +1531,7 @@ See ei tohi olla pikem kui {{PLURAL:$1|üks märk|$1 märki}}.',
 'userrights-changeable-col' => 'Rühmad, mida sa saad muuta',
 'userrights-unchangeable-col' => 'Rühmad, mida sa ei saa muuta',
 'userrights-conflict' => 'Kasutajaõiguste konflikt! Palun tee muudatused uuesti.',
+'userrights-removed-self' => 'Võtsid edukalt endalt õigused. Seetõttu sellele leheküljele sa enam ligi ei pääse.',
 
 # Groups
 'group' => 'Rühm:',
@@ -1551,7 +1575,7 @@ See ei tohi olla pikem kui {{PLURAL:$1|üks märk|$1 märki}}.',
 'right-reupload-shared' => 'Asendada kohalikus vikis jagatud failivaramu faile',
 'right-upload_by_url' => 'Faile internetiaadressilt üles laadida',
 'right-purge' => 'Tühjendada lehekülje vahemälu kinnituseta',
-'right-autoconfirmed' => 'Redigeerida poolkaitstud lehekülgi',
+'right-autoconfirmed' => 'Hoiduda IP-põhistest piirangumääradest',
 'right-bot' => 'Olla koheldud kui automaadistatud toimimisviis',
 'right-nominornewtalk' => 'Teha arutelulehekülgedel pisimuudatusi, ilma et lehekülg märgitaks uuena',
 'right-apihighlimits' => 'Kasutada API-päringutes kõrgemaid limiite',
@@ -1572,15 +1596,23 @@ See ei tohi olla pikem kui {{PLURAL:$1|üks märk|$1 märki}}.',
 'right-ipblock-exempt' => 'Mööduda automaatsetest blokeeringutest ning aadressivahemiku- ja IP-blokeeringutest',
 'right-proxyunbannable' => 'Mööduda automaatsetest puhverserveri blokeeringutest',
 'right-unblockself' => 'Enda blokeeringut eemaldada',
-'right-protect' => 'Muuta kaitsetasemeid ja redigeerida kaitstud lehekülgi',
-'right-editprotected' => 'Muuta kaitstud lehekülgi, millel ei ole kaskaadkaitset',
+'right-protect' => 'Muuta kaitsetasemeid ja redigeerida kaskaadkaitsega lehekülgi',
+'right-editprotected' => 'Muuta lehekülgi kaitsetasemega "{{int:protect-level-sysop}}"',
+'right-editsemiprotected' => 'Muuta lehekülgi kaitsetasemega "{{int:protect-level-autoconfirmed}}"',
 'right-editinterface' => 'Muuta kasutajaliidest',
 'right-editusercssjs' => 'Redigeerida teiste kasutajate CSS- ja JS-faile',
 'right-editusercss' => 'Redigeerida teiste kasutajate CSS-faile',
 'right-edituserjs' => 'Redigeerida teiste kasutajate JS-faile',
+'right-editmyusercss' => 'Redigeerida oma CSS-kasutajafaile',
+'right-editmyuserjs' => 'Redigeerida oma JavaScript-kasutajafaile',
+'right-viewmywatchlist' => 'Vaadata oma jälgimisloendit',
+'right-editmywatchlist' => 'Redigeerida oma jälgimisloendit. Pane tähele, et mõne toiminguga lisatakse lehekülgi siiski ka ilma selle õiguseta.',
+'right-viewmyprivateinfo' => 'Vaadata oma eraandmeid (nt e-posti aadress, pärisnimi)',
+'right-editmyprivateinfo' => 'Redigeerida oma eraandmeid (nt e-posti aadress, pärisnimi)',
+'right-editmyoptions' => 'Muuta oma eelistusi',
 'right-rollback' => 'Tühistada otsekohe lehekülje viimase redigeerija muudatused',
 'right-markbotedits' => 'Märkida muudatuse tühistamine robotimuudatusena',
-'right-noratelimit' => 'Mööduda toimingumäära limiitidest',
+'right-noratelimit' => 'Hoiduda piirangumääradest',
 'right-import' => 'Importida lehekülgi teistest vikidest',
 'right-importupload' => 'Importida XML-dokumendi lehekülgi',
 'right-patrol' => 'Märkida teiste redigeerimised kontrollituks',
@@ -1639,12 +1671,17 @@ See ei tohi olla pikem kui {{PLURAL:$1|üks märk|$1 märki}}.',
 'action-userrights-interwiki' => 'teiste vikide kasutajate õigusi muuta',
 'action-siteadmin' => 'andmebaasi lukustada või avada',
 'action-sendemail' => 'e-kirju saata',
+'action-editmywatchlist' => 'oma jälgimisloendit redigeerida',
+'action-viewmywatchlist' => 'oma jälgimisloendit vaadata',
+'action-viewmyprivateinfo' => 'oma eraandmeid vaadata',
+'action-editmyprivateinfo' => 'oma eraandmeid redigeerida',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|muudatus|muudatust}}',
 'recentchanges' => 'Viimased muudatused',
 'recentchanges-legend' => 'Viimaste muudatuste seaded',
 'recentchanges-summary' => 'Jälgi sellel leheküljel viimaseid muudatusi.',
+'recentchanges-noresult' => 'Selles ajavahemikus pole tehtud neile kriteeriumitele vastavaid muudatusi.',
 'recentchanges-feed-description' => 'Jälgi vikisse tehtud viimaseid muudatusi.',
 'recentchanges-label-newpage' => 'See muudatus lõi uue lehekülje',
 'recentchanges-label-minor' => 'See on pisiparandus',
@@ -1681,7 +1718,6 @@ See ei tohi olla pikem kui {{PLURAL:$1|üks märk|$1 märki}}.',
 'recentchangeslinked-feed' => 'Seotud muudatused',
 'recentchangeslinked-toolbox' => 'Seotud muudatused',
 'recentchangeslinked-title' => 'Leheküljega "$1" seotud muudatused',
-'recentchangeslinked-noresult' => 'Antud ajavahemiku jooksul ei ole lingitud lehekülgedel muudatusi tehtud.',
 'recentchangeslinked-summary' => "Siin on loetletud määratud leheküljelt viidatud (või määratud kategooria) lehekülgedel tehtud viimased muudatused.
 Sinu [[Special:Watchlist|jälgimisloendi]] leheküljed on  '''rasvaselt''' esile toodud.",
 'recentchangeslinked-page' => 'Lehekülje nimi:',
@@ -1693,7 +1729,7 @@ Sinu [[Special:Watchlist|jälgimisloendi]] leheküljed on  '''rasvaselt''' esile
 'reuploaddesc' => 'Tagasi üleslaadimise vormi juurde.',
 'upload-tryagain' => 'Salvesta muudetud faili kirjeldus',
 'uploadnologin' => 'Sisse logimata',
-'uploadnologintext' => 'Kui soovid faile üles laadida, pead [[Special:UserLogin|sisse logima]].',
+'uploadnologintext' => 'Pead $1, et faili üles laadida.',
 'upload_directory_missing' => 'Üleslaadimiskaust $1 puudub ja veebiserver ei saa seda luua.',
 'upload_directory_read_only' => 'Veebiserveril ei õnnestu üleslaadimiste kataloogi ($1) kirjutada.',
 'uploaderror' => 'Faili laadimine ebaõnnestus',
@@ -1938,7 +1974,7 @@ Kui kasutaja järgi filtrida, kuvatakse ainult need failid, mille viimase versio
 'filehist-current' => 'viimane',
 'filehist-datetime' => 'Kuupäev/kellaaeg',
 'filehist-thumb' => 'Pisipilt',
-'filehist-thumbtext' => 'Pisipilt $1 versioonile',
+'filehist-thumbtext' => 'Pisipilt versioonist seisuga $1',
 'filehist-nothumb' => 'Pisipilti ei ole',
 'filehist-user' => 'Kasutaja',
 'filehist-dimensions' => 'Mõõtmed',
@@ -2233,7 +2269,8 @@ Toetatud {{PLURAL:$2|protokoll|protokollid}}: <code>$1</code> (määramata proto
 'listgrouprights' => 'Kasutajarühma õigused',
 'listgrouprights-summary' => 'Siin on loetletud selle viki kasutajarühmad ja rühmaga seotud õigused.
 Üksikute õiguste kohta võib olla [[{{MediaWiki:Listgrouprights-helppage}}|täiendavat teavet]].',
-'listgrouprights-key' => '* <span class="listgrouprights-granted">Väljaantud õigus</span>
+'listgrouprights-key' => 'Legend:
+* <span class="listgrouprights-granted">Väljaantud õigus</span>
 * <span class="listgrouprights-revoked">Äravõetud õigus</span>',
 'listgrouprights-group' => 'Rühm',
 'listgrouprights-rights' => 'Õigused',
@@ -2303,9 +2340,8 @@ Edasised muudatused sellel leheküljel ja seotud aruteluleheküljel tuuakse ära
 'unwatchthispage' => 'Ära jälgi',
 'notanarticle' => 'Pole artikkel',
 'notvisiblerev' => 'Redaktsioon on kustutatud',
-'watchnochange' => 'Valitud ajavahemiku jooksul pole ühelgi jälgitaval leheküljel muudatusi tehtud.',
 'watchlist-details' => 'Jälgimisloendis on {{PLURAL:$1|$1 lehekülg|$1 lehekülge}} (ei arvestata arutelulehekülgi).',
-'wlheader-enotif' => 'E-posti teel teavitamine on aktiveeritud.',
+'wlheader-enotif' => 'E-posti teel teavitamine on lubatud.',
 'wlheader-showupdated' => "Leheküljed, mida on muudetud peale sinu viimast külastust, on '''rasvases kirjas'''.",
 'watchmethod-recent' => 'jälgitud lehekülgedel tehtud viimaste muudatuste läbivaatamine',
 'watchmethod-list' => 'jälgitavate lehekülgede viimased muudatused',
@@ -2410,8 +2446,8 @@ Ettevaatust, selle kustutamine võib esile kutsuda häireid {{GRAMMAR:genitive|{
 Lehte muutis viimasena [[User:$3|$3]] ([[User talk:$3|arutelu]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "Redaktsiooni resümee oli: \"''\$1''\".",
 'revertpage' => 'Tühistati kasutaja [[Special:Contributions/$2|$2]] ([[User talk:$2|arutelu]]) tehtud muudatused ja pöörduti tagasi viimasele muudatusele, mille tegi [[User:$1|$1]].',
-'revertpage-nouser' => 'Tühistati eemaldatud nimega kasutaja tehtud muudatused ja pöörduti tagasi viimasele muudatusele, mille tegi [[User:$1|$1]].',
-'rollback-success' => 'Tühistati $1 muudatus;
+'revertpage-nouser' => 'Tühistati peidetud kasutaja muudatused ja pöörduti tagasi viimasele muudatusele, mille tegi [[User:$1|$1]].',
+'rollback-success' => 'Tühistati muudatused, mille tegi $1;
 pöörduti tagasi viimasele muudatusele, mille tegi $2.',
 
 # Edit tokens
@@ -2556,7 +2592,7 @@ $1',
 'mycontris' => 'Kaastöö',
 'contribsub2' => 'Kasutaja $1 ($2) jaoks',
 'nocontribs' => 'Antud kriteeriumitele vastavaid muudatusi ei leitud.',
-'uctop' => ' (uusim)',
+'uctop' => '(praegune)',
 'month' => 'Alates kuust (ja varasemad):',
 'year' => 'Alates aastast (ja varasemad):',
 
@@ -2880,6 +2916,8 @@ Kui soovid MediaWiki tarkvara tõlkimises osaleda, siis vaata lehti [//www.media
 'thumbnail-more' => 'Suurenda',
 'filemissing' => 'Fail puudub',
 'thumbnail_error' => 'Viga pisipildi loomisel: $1',
+'thumbnail_error_remote' => 'Tõrketeade asukohast $1:
+$2',
 'djvu_page_error' => 'DjVu-failis ei ole sellist lehekülge',
 'djvu_no_xml' => 'DjVu failist XML-i lugemine ebaõnnestus.',
 'thumbnail-temp-create' => 'Ajutist pisipildifaili ei õnnestu luua.',
@@ -3094,6 +3132,7 @@ See on ilmselt põhjustatud linkimisest mustas nimekirjas olevasse välisvõrguk
 'pageinfo-magic-words' => '{{PLURAL:$1|Võlusõna|Võlusõnad}} ($1)',
 'pageinfo-hidden-categories' => 'Peidetud {{PLURAL:$1|kategooria|kategooriad}} ($1)',
 'pageinfo-templates' => 'Kasutatud {{PLURAL:$1|mall|mallid}} ($1)',
+'pageinfo-transclusions' => 'Kasutuses {{PLURAL:$1|leheküljel|lehekülgedel}} ($1)',
 'pageinfo-toolboxlink' => 'Lehekülje andmed',
 'pageinfo-redirectsto' => 'Ümber suunatud leheküljele',
 'pageinfo-redirectsto-info' => 'teave',
@@ -3199,6 +3238,14 @@ Järgnevas loendis, mis on sorteeritud $2, on '''$1''' {{PLURAL:$1|fail|faili}}.
 'hours-ago' => '$1 {{PLURAL:$1|tund|tundi}} tagasi',
 'minutes-ago' => '$1 {{PLURAL:$1|minut|minutit}} tagasi',
 'seconds-ago' => '$1 {{PLURAL:$1|sekund|sekundit}} tagasi',
+'monday-at' => 'Esmaspäeval kell $1',
+'tuesday-at' => 'Teisipäeval kell $1',
+'wednesday-at' => 'Kolmapäeval kell $1',
+'thursday-at' => 'Neljapäeval kell $1',
+'friday-at' => 'Reedel kell $1',
+'saturday-at' => 'Laupäeval kell $1',
+'sunday-at' => 'Pühapäeval kell $1',
+'yesterday-at' => 'Eile kell $1',
 
 # Bad image list
 'bad_image_list' => 'Arvesse võetakse ainult nimekirja ühikud (read, mis algavad sümboliga *).
@@ -3661,6 +3708,7 @@ Selle kinnituskoodi aegumistähtaeg on $4.',
 'invalidateemail' => 'E-posti aadressi kinnituse tühistamine',
 
 # Scary transclusion
+'scarytranscludedisabled' => '[Vikidevaheline mallina kasutamine on keelatud]',
 'scarytranscludetoolong' => '[URL on liiga pikk]',
 
 # Delete conflict
@@ -3761,7 +3809,6 @@ Sa võid [[Special:EditWatchlist|kasutada ka harilikku tekstiredaktorit]].',
 'version-other' => 'Muu',
 'version-mediahandlers' => 'Meediatöötlejad',
 'version-hooks' => 'Haagid',
-'version-extension-functions' => 'Lisafunktsioonid',
 'version-parser-extensiontags' => 'Parseri lisamärgendid',
 'version-parser-function-hooks' => 'Parserifunktsioonid',
 'version-hook-name' => 'Haagi nimi',
@@ -3843,6 +3890,7 @@ GNU Üldise Avaliku Litsentsi [{{SERVER}}{{SCRIPTPATH}}/COPYING eksemplar] peaks
 'tags' => 'Käibivad muudatusmärgised',
 'tag-filter' => '[[Special:Tags|Märgisefilter]]:',
 'tag-filter-submit' => 'Filtri',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Märgis|Märgised}}]]: $2)',
 'tags-title' => 'Märgised',
 'tags-intro' => 'See lehekülg loetleb märgised, millega tarkvara võib muudatused märgistada, ja nende kirjeldused.',
 'tags-tag' => 'Märgise nimi',
@@ -3921,6 +3969,7 @@ GNU Üldise Avaliku Litsentsi [{{SERVER}}{{SCRIPTPATH}}/COPYING eksemplar] peaks
 'logentry-newusers-newusers' => '{{GENDER:$2|Loodud}} kasutajakonto $1',
 'logentry-newusers-create' => '{{GENDER:$2|Loodud}} kasutajakonto $1',
 'logentry-newusers-create2' => '$1 {{GENDER:$2|lõi}} kasutajakonto $3',
+'logentry-newusers-byemail' => '$1 {{GENDER:$2|lõi}} kasutajakonto $3 ja parool saadeti e-kirjatsi',
 'logentry-newusers-autocreate' => 'Konto $1 {{GENDER:$2|loodi}} automaatselt',
 'logentry-rights-rights' => '$1 {{GENDER:$2|muutis}} kasutaja $3 rühmaliikmesust; enne oli $4, nüüd on $5',
 'logentry-rights-rights-legacy' => '$1 {{GENDER:$2|muutis}} kasutaja $3 rühmaliikmesust',
index 4abb732..88642ed 100644 (file)
@@ -14,6 +14,7 @@
  * @author Kaustubh
  * @author Kobazulo
  * @author Malafaya
+ * @author Nemo bis
  * @author Reedy
  * @author Theklan
  * @author Unai Fdz. de Betoño
@@ -232,6 +233,18 @@ $messages = array(
 'oct' => 'Urr',
 'nov' => 'Aza',
 'dec' => 'Abe',
+'january-date' => 'Urtarrilaren $1',
+'february-date' => 'Otsailaren $1',
+'march-date' => 'Martxoaren $1',
+'april-date' => 'Apirilaren $1',
+'may-date' => 'Maiatzaren $1',
+'june-date' => 'Ekainaren $1',
+'july-date' => 'Uztailaren $1',
+'august-date' => 'Abuztuaren $1',
+'september-date' => 'Irailaren $1',
+'october-date' => 'Urriaren $1',
+'november-date' => 'Azaroaren $1',
+'december-date' => 'Abenduaren $1',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategoria|Kategoriak}}',
@@ -243,7 +256,7 @@ $messages = array(
 'hidden-category-category' => 'Kategoria ezkutuak',
 'category-subcat-count' => '{{PLURAL:$2|Kategoria honek beste honako azpikategoria baino ez du.|Kategoria honek honako {{PLURAL:$1|azpikategoria du|$1 azpikategoriak ditu}}, guztira dauden $2tik.}}',
 'category-subcat-count-limited' => 'Kategoria honek {{PLURAL:$1|azpikategoria hau du|$1 azpikategoria hauek ditu}}.',
-'category-article-count' => '{{PLURAL:$2|Kategoria honek ondorengo orri hau baino ez du.|Ondorengo {{PLURAL:$1|orri hau kategoria honetan dago|$1 orriak kategoria honetan daude}}, eta guztira $2 orri dira kategoria honetan.}}',
+'category-article-count' => '{{PLURAL:$2|Kategoria honek ondorengo fitxategi hau baino ez du.|Ondorengo {{PLURAL:$1|fitxategi hau kategoria honetan dago|$1 fitxategiak kategoria honetan daude}}, eta guztira $2 fitxategi dira kategoria honetan.}}',
 'category-article-count-limited' => 'Ondorengo {{PLURAL:$1|orri hau kategoria honetan dago.|$1 orri hauek kategoria honetan daude.}}',
 'category-file-count' => '{{PLURAL:$2|Kategoria honek ondorengo fitxategi hau baino ez du.|Ondorengo {{PLURAL:$1|fitxategi hau kategoria honetan dago|$1 fitxategiak kategoria honetan daude}}, eta guztira $2 fitxategi dira kategoria honetan.}}',
 'category-file-count-limited' => 'Ondorengo {{PLURAL:$1|fitxategia kategoria honetan dago.|$1 fitxategiak kategoria honetan daude.}}',
@@ -313,6 +326,7 @@ $messages = array(
 'create-this-page' => 'Orrialde hau sortu',
 'delete' => 'Ezabatu',
 'deletethispage' => 'Ezabatu orri hau',
+'undeletethispage' => 'Orrialde hau bergaitu',
 'undelete_short' => 'Berreskuratu {{PLURAL:$1|aldaketa bat|$1 aldaketa}}',
 'viewdeleted_short' => 'Ikusi ezabatutako {{PLURAL:$1|bidalketa bat|$1 bidalketa}}',
 'protect' => 'Babestu',
@@ -366,7 +380,6 @@ $1',
 'disclaimers' => 'Mugaketak',
 'disclaimerpage' => 'Project:Erantzukizunen mugaketa orokorra',
 'edithelp' => 'Aldaketak egiteko laguntza',
-'edithelppage' => 'Help:Aldaketak egiteko laguntza',
 'helppage' => 'Help:Laguntza',
 'mainpage' => 'Azala',
 'mainpage-description' => 'Azala',
@@ -514,6 +527,8 @@ $2",
 'namespaceprotected' => "Ez daukazu '''$1''' izen-tarteko orrialdeak aldatzeko baimenik.",
 'customcssprotected' => 'Ez duzu baimenik CSS orrialde hau aldatzeko beste erabiltzaile baten hobespen pertsonalak dituelako.',
 'customjsprotected' => 'Ez duzu baimenik JavaScript orrialde hau aldatzeko beste erabiltzaile baten hobespen pertsonalak dituelako.',
+'mycustomcssprotected' => 'Ez duzu baimenik CSS orrialde hau aldatzeko.',
+'mycustomjsprotected' => 'Ez duzu baimentik JavaScript orrialdea aldatzeko.',
 'ns-specialprotected' => 'Ezin dira {{ns:special}} izen-tarteko orrialdeak editatu.',
 'titleprotected' => "[[User:$1|$1]]ek izenburu hau sortzea ekidin zuen.
 Emandako arrazoia ''$2'' izan zen.",
@@ -523,6 +538,7 @@ Blokeoa ezarri zuen administratzaileak honako arrazoia eman zuen: "$3".',
 'invalidtitle-knownnamespace' => 'Izenburua gaizki dago "$2" izen eremuan eta "$3" testuan',
 'invalidtitle-unknownnamespace' => 'Izenburua gaizki dago "$1" izen eremuan ezezagunean eta "$2" testuan',
 'exception-nologin' => 'Saioa hasi gabe',
+'exception-nologin-text' => 'Ekintza edo orrialde honek wiki honetan sartzea eskatzen du.',
 
 # Virus scanner
 'virus-badscanner' => "Ezarpen txarrak: antibirus ezezaguna: ''$1''",
@@ -535,12 +551,24 @@ Blokeoa ezarri zuen administratzaileak honako arrazoia eman zuen: "$3".',
 Erabiltzaile anonimo bezala jarrai dezakezu {{SITENAME}} erabiltzen, edo <span class='plainlinks'>[$1 saioa has dezakezu berriz]</span> erabiltzaile berdinarekin edo ezberdin batekin.
 Kontuan izan orrialde batzuk saioa hasita bazenu bezala ikus ditzakezula nabigatzailearen katxea garbitu arte.",
 'welcomeuser' => 'Ongi etorri, $1!',
+'welcomecreation-msg' => 'Zure kontua sortua izan da.
+Ez ezazu ahaztu zure [[Special:Preferences|{{SITENAME}} hobespenak]] aldatzea.',
 'yourname' => 'Erabiltzaile izena',
+'userlogin-yourname' => 'Erabiltzale izena',
+'userlogin-yourname-ph' => 'Sartu zure erabiltzaile izena',
 'yourpassword' => 'Pasahitza:',
+'userlogin-yourpassword' => 'Pasahitza',
+'userlogin-yourpassword-ph' => 'Sartu zuren pasahitza',
+'createacct-yourpassword-ph' => 'Sartu pasahitza',
 'yourpasswordagain' => 'Pasahitza berriz',
+'createacct-yourpasswordagain' => 'Pasahitza berridatzi',
+'createacct-yourpasswordagain-ph' => 'Sartu pasahitza berriro ere',
 'remembermypassword' => 'Nire saioa ordenagailu honetan gogoratu ({{PLURAL:$1|egun baterako|$1 egunetarako }} gehienez)',
+'userlogin-remembermypassword' => 'Manten nazazu barruan',
+'userlogin-signwithsecure' => 'Erabili konexio ziurra',
 'securelogin-stick-https' => 'Mantendu konektatua HTTPSra sartu ondoren',
 'yourdomainname' => 'Zure domeinua',
+'password-change-forbidden' => 'Ezin duzu pasahitzarik aldatu wiki honetan.',
 'externaldberror' => 'Kanpoko datu-base autentifikazio errorea gertatu da edo ez duzu zure kanpo kontua eguneratzeko baimenik.',
 'login' => 'Saioa hasi',
 'nav-login-createaccount' => 'Saioa hasi / kontua sortu',
@@ -550,18 +578,38 @@ Kontuan izan orrialde batzuk saioa hasita bazenu bezala ikus ditzakezula nabigat
 'logout' => 'Saioa itxi',
 'userlogout' => 'Saioa itxi',
 'notloggedin' => 'Saioa hasi gabe',
+'userlogin-noaccount' => 'Ez al duzu konturik?',
+'userlogin-joinproject' => 'Batu {{SITENAME}}(r)ekin',
 'nologin' => "Ez duzu erabiltzaile konturik? '''$1'''.",
 'nologinlink' => 'Kontua sortu',
 'createaccount' => 'Kontua sortu',
 'gotaccount' => "Baduzu erabiltzaile kontua? '''$1'''.",
 'gotaccountlink' => 'Saioa hasi',
 'userlogin-resetlink' => 'Saioa hasteko datuak ahaztu dituzu?',
+'userlogin-resetpassword-link' => 'Zure pasahitza berrezarri',
+'helplogin-url' => 'Help:Sarrera',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Barrura sartzeko laguntza]]',
+'createacct-join' => 'Sartu zure informazioa azpian.',
+'createacct-emailrequired' => 'E-posta helbidea',
+'createacct-emailoptional' => 'E-posta helbidea (hautazkoa)',
+'createacct-email-ph' => 'Sartu zure e-posta helbidea',
 'createaccountmail' => 'Erabili behin-behineko pasahitz ausazko bat eta bidali behean agertzeko den e-posta helbidera',
+'createacct-realname' => 'Benetako izena (hautazkoa)',
 'createaccountreason' => 'Arrazoia:',
+'createacct-reason' => 'Arrazoia',
+'createacct-reason-ph' => 'Zergatik ari zaren beste erabiltzaile kontu bat',
+'createacct-captcha' => 'Segurtasun froga',
+'createacct-imgcaptcha-ph' => 'Sartu gainean ikusten duzun testua',
+'createacct-submit' => 'Kontua sortu',
+'createacct-benefit-heading' => '{{SITENAME}} zu bezalako pertsonek egiten dute.',
+'createacct-benefit-body1' => '{{PLURAL:$1|edizio bat|$1 edizio}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|Orrialde 1|$1 orrialde}}',
+'createacct-benefit-body3' => 'azkeneko {{PLURAL:$1|egilea|egileak}}',
 'badretype' => 'Idatzitako pasahitzak ez dira berdinak.',
 'userexists' => 'Aukeratutako erabiltzaile izena hartuta dago.
 Mesedez beste bat aukeratu.',
 'loginerror' => 'Errorea saioa hastean',
+'createacct-error' => 'Kontua sortzerakoan arazoa',
 'createaccounterror' => 'Ezin izan da kontua sortu: $1',
 'nocookiesnew' => 'Erabiltzaile kontua sortu da, baina ez da saioa hasi. {{SITENAME}}(e)k cookieak erabiltzen ditu saioekin eta ezgaituta dauzkazu. Gaitu itzazu mesedez, eta ondoren saiatu saioa hasten zure erabiltzaile izen eta pasahitz berriak erabiliz.',
 'nocookieslogin' => '{{SITENAME}}(e)k cookieak erabiltzen ditu saioekin eta ezgaituta dauzkazu. Gaitu itzazu mesedez, eta saiatu berriz.',
@@ -599,7 +647,7 @@ Mesedez, saioa hasi jasotakoan.',
 'eauthentsent' => 'Egiaztapen mezu bat bidali da zehaztutako e-posta helbidera.
 Helbide horretara beste edozein mezu bidali aurretik, bertan azaltzen diren argibideak jarraitu behar dituzu, e-posta hori zurea dela egiaztatzeko.',
 'throttled-mailpassword' => 'Pasahitz gogorarazle bat bidali da jada azken {{PLURAL:$1|orduan|$1 orduetan}}.
-Bandalismoa saihesteko pasahitz eskaera bat baino ezin da egin {{PLURAL:$1|orduan|$1 orduan}} behin.',
+Bandalismoa sahiesteko pasahitz eskaera bat baino ezin da egin {{PLURAL:$1|orduan|$1 orduan}} behin.',
 'mailerror' => 'Errorea mezua bidaltzerakoan: $1',
 'acct_creation_throttle_hit' => 'Sentitzen dugu, {{PLURAL:$1|erabiltzaile kontu bat sortu duzu|$1 erabiltzaile kontu sortu dituzu}} dagoeneko.
 Ondorioz, ezin duzu kontu gehiago sortu.',
@@ -610,9 +658,10 @@ Ondorioz, ezin duzu kontu gehiago sortu.',
 'invalidemailaddress' => 'Ezin da e-posta helbide hori ontzat eman baliogabeko formatua duela dirudielako.
 
 Mesedez, formatu egokia duen helbide bat zehaztu, edo hutsik utzi.',
+'cannotchangeemail' => 'Kontuen e-posta helbideak ezin dira aldatu wiki honetan.',
 'emaildisabled' => 'Gune honek ezin du e-postarik bidali.',
 'accountcreated' => 'Kontua sortuta',
-'accountcreatedtext' => '$1 erabiltzaile kontua sortu egin da.',
+'accountcreatedtext' => '[[{{ns:User}}:$1|$1]] lankidearentzat ([[{{ns:User talk}}:$1|eztabaida]]) kontua sortu da.',
 'createaccount-title' => '{{SITENAME}}-rako kontua sortu',
 'createaccount-text' => 'Norbaitek zure e-postarekin kontu bat sortu du {{SITENAME}}(e)n ($4) "$2" izenarekin eta "$3" pasahitzarekin.
 Orain bertan sar zaitezke eta zure pasahitza aldatu.
@@ -621,11 +670,14 @@ Kontu honen sorrera akats bat dela uste baduzu mezu honi ez diozu zertan jaramon
 'usernamehasherror' => 'Erabiltzaile-izenak ezin du kuxin-karaktererik eduki',
 'login-throttled' => 'Saioa hasteko saiakera gehiegi egin berri dituzu.
 Berriro saiatu aurretik itxaron ezazu, mesedez.',
+'login-abort-generic' => 'Zure sarrera ez da arrakastatsua izan - Abortatua',
 'loginlanguagelabel' => 'Hizkuntza: $1',
 'suspicious-userlogout' => 'Saioa amaitzeko egin duzun eskaria ukatu da. Izan ere, ematen du eskari hori gaizki dabilen nabigatzaile edo cache proxy batek bidali duela.',
 
 # Email sending
 'php-mail-error-unknown' => 'PHPren mail() funtzioan arazo ezezagun bat egon da.',
+'user-mail-no-addy' => 'E-posta bidaltzen saiatu zara e-posta helbiderik gabe.',
+'user-mail-no-body' => 'E-posta bidaltzen saiatu zara testu gorputzik gabe edo laburregiarekin.',
 
 # Change password dialog
 'resetpass' => 'Pasahitza aldatu',
@@ -644,22 +696,34 @@ Berriro saiatu aurretik itxaron ezazu, mesedez.',
 'resetpass-wrong-oldpass' => 'Behin-behineko edo oraintxuko pasahitza ez da baliagarria.
 Agian dagoeneko ondo aldatu duzu zure pasahitza edo behin-behineko pasahitza bat eskatu duzu.',
 'resetpass-temp-password' => 'Behin-behineko pasahitza:',
+'resetpass-abort-generic' => 'Estentsio batek pasahitza aldatzea ekidin du.',
 
 # Special:PasswordReset
 'passwordreset' => 'Pasahitzaren berrezarpena',
+'passwordreset-text-one' => 'Bete formulario hau zure pasahitza berrezartzeko.',
+'passwordreset-text-many' => '{{PLURAL:$1|Sartu datuetako bat zure pasahitza berrezartzeko.}}',
 'passwordreset-legend' => 'Pasahitza berrezarri',
+'passwordreset-disabled' => 'Pasahitza berrezartzea ez da posible wiki honetan.',
+'passwordreset-emaildisabled' => 'E-posta aukerak ez daude eskuragarri wiki honetan.',
 'passwordreset-username' => 'Lankide izena:',
 'passwordreset-domain' => 'Domeinua:',
+'passwordreset-capture' => 'Bidaliko den e-posta ikusi nahi?',
+'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
 Behin-behineko pasahitza: $2',
-'passwordreset-emailsent' => 'Gogorarazteko e-posta bidali da.',
+'passwordreset-emailsent' => 'Pasahitza berrezartzeko e-posta bidali da.',
 
 # Special:ChangeEmail
 'changeemail' => 'Aldatu e-mail helbidea',
+'changeemail-header' => 'Aldatu kontuko e-posta helbidea',
+'changeemail-text' => 'Bete ezazu formulario hau e-posta helbidea aldatzeko. Zure pasahitza sartu beharko duzu aldaketa hau baieztatzeko.',
+'changeemail-no-info' => 'Orrialde honetara zuzenean sartzeko izena eman behar duzu.',
 'changeemail-oldemail' => 'Egungo e-mail helbidea:',
 'changeemail-newemail' => 'E-posta helbide berria:',
 'changeemail-none' => '(bat ere ez)',
+'changeemail-password' => 'Zure {{SITENAME}}ko pasahitza:',
 'changeemail-submit' => 'E-posta aldatu',
 'changeemail-cancel' => 'Utzi',
 
@@ -834,7 +898,7 @@ Azken erregistroko sarrera ematen da azpian erreferentzia gisa:",
 'nocreate-loggedin' => 'Ez duzu orri berriak sortzeko baimenik.',
 'sectioneditnotsupported-title' => 'Ezin dira atalak aldatu',
 'sectioneditnotsupported-text' => 'Ezin dira atalak aldatu orrialde honetan.',
-'permissionserrors' => 'Baimen erroreak',
+'permissionserrors' => 'Baimenen erroreak',
 'permissionserrorstext' => 'Ez duzu hori egiteko baimenik, hurrengo {{PLURAL:$1|arrazoia dela eta|arrazoiak direla eta}}:',
 'permissionserrorstext-withaction' => 'Ezin duzu $2, ondorengo {{PLURAL:$1|arrazoi hau dela eta:|arrazoi hauek direla eta:}}',
 'recreate-moveddeleted-warn' => "'''Oharra: Lehenago ezabatutako orri bat berriz sortzen ari zara.'''
@@ -849,10 +913,15 @@ Ez du azalpenik eman.',
 'edit-gone-missing' => 'Ezin da orria eguneratu. Ezabatu omen dute.',
 'edit-conflict' => 'Aldaketa gatazka.',
 'edit-no-change' => 'Zure edizioa baztertu da testua aldatu ez duzulako.',
+'postedit-confirmation' => 'Zure aldaketa gorde da.',
 'edit-already-exists' => 'Ezin izan da orri berria sortu.
 Jada existitzen da.',
+'defaultmessagetext' => 'Testu lehenetsia',
+'content-failed-to-parse' => 'Ezin izan da $2(r)en edukia parseatu $1 modeloarentzat: $3',
+'invalid-content-data' => 'Eduki datu baliogabea',
+'content-not-allowed-here' => '"$1" edukia ez dago baimendua [[$2]] orrialdean',
 'editwarning-warning' => 'Orrialde honetatik irteten bazara, egindako aldaketak galdu egingo dira.
-Saioa hasi baduzu, mezu hau kendu dezakezu zure hobespenen orrialdeko "{{int:prefs-editing}}" atalean.',
+Saioa hasi baduzu, mezu hau kendu dezakezu zure hobespenen orrialdeko "Aldatzen" atalean.',
 
 # Content models
 'content-model-wikitext' => 'wikitestua',
@@ -874,6 +943,13 @@ Eztabaidak aipatu gabe utzi dira.',
 'parser-template-loop-warning' => 'Txantiloiaren itzul-biraketa aurkitu da: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Txantiloaren rekurtsio sakoneraren muga gainditu da ($1)',
 'language-converter-depth-warning' => 'Hizkuntza-bihurgailuaren sakonerak ($1) muga gainditu du',
+'node-count-exceeded-category' => 'Nodo-zenbaketa gainditu den orrialdeak',
+'node-count-exceeded-warning' => 'Orrialdeak nodo-zenbaketa gainditu du',
+'expansion-depth-exceeded-category' => 'Orrialdearen espantsio sakonera gainditu da',
+'expansion-depth-exceeded-warning' => 'Espantsio sakonera gainditu duten orrialdeak',
+'parser-unstrip-loop-warning' => 'Loop unstrip bat aurkitu da',
+'parser-unstrip-recursion-limit' => 'Unstrip errekurtsio limitea gainditu da ($1)',
+'converter-manual-rule-error' => 'Akatsa aurkitu da hizkuntzen eskuszko konbertsio arauan',
 
 # "Undo" feature
 'undo-success' => 'Aldaketa desegin daiteke.
@@ -908,8 +984,8 @@ Legenda: (orain) = oraingo bertsioarekiko ezberdintasuna,
 (azkena) = aurreko bertsioarekiko ezberdintasuna, t = aldaketa txikia.',
 'history-fieldset-title' => 'Historia erakutsi',
 'history-show-deleted' => 'Ezabatuak soilik',
-'histfirst' => 'Lehena',
-'histlast' => 'Azkena',
+'histfirst' => 'zaharrena',
+'histlast' => 'berriena',
 'historysize' => '({{PLURAL:$1|byte 1|$1 byte}})',
 'historyempty' => '(hutsik)',
 
@@ -1053,6 +1129,7 @@ Kontura zaitez nabigazio loturek, zutabea ezabatu dezakela.',
 # Diffs
 'history-title' => '"$1" orrialdearen historia berrikuspena',
 'difference-title' => '"$1"-en berrikuspenen arteko aldaketa',
+'difference-title-multipage' => '"$1" eta "$2" orrialdeen arteko ezberditasunak',
 'difference-multipage' => '(Orrialdeen arteko ezberdintasunak)',
 'lineno' => '$1. lerroa:',
 'compareselectedversions' => 'Hautatutako bertsioak alderatu',
@@ -1080,7 +1157,6 @@ Kontura zaitez nabigazio loturek, zutabea ezabatu dezakela.',
 'searchmenu-legend' => 'Bilaketa aukerak',
 'searchmenu-exists' => "'''\"[[:\$1]]\" izena duen orrialde bat badago wiki honetan'''",
 'searchmenu-new' => "'''\"[[:\$1]]\" orrialde sortu wiki honetan!'''",
-'searchhelp-url' => 'Help:Laguntza',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Aurrizki hau duten orrialdeetatik nabigatu]]',
 'searchprofile-articles' => 'Eduki-orriak',
 'searchprofile-project' => 'Laguntza eta Proiektu-orriak',
@@ -1155,7 +1231,6 @@ Saia zaitez zure eskeraren aurretik ''all:'' jartzen eduki guztien artean bilatz
 'resetprefs' => 'Hasieratu',
 'restoreprefs' => 'Konfigurazio lehenetsi guztiak berrezarri',
 'prefs-editing' => 'Aldatzen',
-'prefs-edit-boxsize' => 'Edizio lehioaren tamaina.',
 'rows' => 'Lerroak:',
 'columns' => 'Zutabeak:',
 'searchresultshead' => 'Bilaketa',
@@ -1194,7 +1269,6 @@ Saia zaitez zure eskeraren aurretik ''all:'' jartzen eduki guztien artean bilatz
 'prefs-custom-js' => 'JS pertsonalizatua',
 'prefs-common-css-js' => 'Azal mota guztietan elkarbanatutako CSS/JS:',
 'prefs-emailconfirm-label' => 'E-posta baieztapena:',
-'prefs-textboxsize' => 'Editatze lehioaren tamaina',
 'youremail' => 'E-posta:',
 'username' => '{{GENDER:$1|Erabiltzaile izena}}:',
 'uid' => '{{GENDER:$1|Erabiltzaile}} zenbakia:',
@@ -1308,6 +1382,7 @@ $1 {{PLURAL:$1|karakteretik|karakteretik}} behera izan behar ditu.',
 'right-writeapi' => 'API idaztekoa erabili',
 'right-delete' => 'Orrialdeak ezabatu',
 'right-bigdelete' => 'Historia luzea duten orrialdeak ezabatu',
+'right-deletelogentry' => 'Ezabatu eta berreskuratu log sarrera espezifikoak',
 'right-deleterevision' => 'Orrialdeen berrikuspen espezifikoak ezabatu eta leheneratu',
 'right-deletedhistory' => 'Ezabatutako sarreren historia ikusi, euren atxikitutako testurik gabe',
 'right-deletedtext' => 'Ikusi ezabatutako testua eta ezabatutako berrikuspenen arteko aldaketak',
@@ -1327,6 +1402,8 @@ $1 {{PLURAL:$1|karakteretik|karakteretik}} behera izan behar ditu.',
 'right-editusercssjs' => 'Beste lankideen CSS eta JS fitxategiak aldatu',
 'right-editusercss' => 'Beste lankideen CSS fitxategiak aldatu',
 'right-edituserjs' => 'Beste lankideen JS fitxategiak aldatu',
+'right-editmyusercss' => 'Aldatu zure CSS fitxategi propioak',
+'right-editmyuserjs' => 'Aldatu zure JavaScript fitxategi propioak',
 'right-rollback' => 'Orrialde zehatz bat aldatu zuen azken lankidearen aldaketak modu azkar batean leheneratu',
 'right-markbotedits' => 'Atzera bueltan eginiko aldaketak bot baten aldaketak balira markatu',
 'right-noratelimit' => 'Ez dio eragiten erlazio mugak',
@@ -1342,6 +1419,7 @@ $1 {{PLURAL:$1|karakteretik|karakteretik}} behera izan behar ditu.',
 'right-siteadmin' => 'Databasea blokeatu eta desblokeatu',
 'right-override-export-depth' => '5eko sakonerararteko loturiko orrialdeak barne esportatu',
 'right-sendemail' => 'Beste erabiltzaileei e-posta bidali',
+'right-passwordreset' => 'Ikusi pasahitza berrezartze e-postak',
 
 # Special:Log/newusers
 'newuserlogpage' => 'Erabiltzaile erregistroa',
@@ -1421,13 +1499,13 @@ $1 {{PLURAL:$1|karakteretik|karakteretik}} behera izan behar ditu.',
 'newsectionsummary' => '/* $1 */ atal berria',
 'rc-enhanced-expand' => 'Erakutsi xehetasunak (JavaScript beharrezkoa da)',
 'rc-enhanced-hide' => 'Xehetasunak ezkutatu',
+'rc-old-title' => 'hasiera batean "$1" gisa sortua',
 
 # Recent changes linked
 'recentchangeslinked' => 'Lotutako orrietako aldaketak',
 'recentchangeslinked-feed' => 'Lotutako orrietako aldaketak',
 'recentchangeslinked-toolbox' => 'Lotutako orrietako aldaketak',
 'recentchangeslinked-title' => '"$1"(e)kin harremanetan dauden aldaketak',
-'recentchangeslinked-noresult' => 'Emandako epean ez da egon aldaketarik loturiko orrialdetan.',
 'recentchangeslinked-summary' => "Zerrenda honetan zehazturiko orrialde bati (edo kategoria berezi bateko azkeneko kideei) lotura duten orrietan eginiko azken aldaketak agertzen dira.
 [[Special:Watchlist|Zurre jarraitze zerrenda]]n agertzen diren orrialdeak '''beltze'''z agertzen dira.",
 'recentchangeslinked-page' => 'Orriaren izena:',
@@ -1466,6 +1544,7 @@ Orrialde baten irudi bat txertatzeko, erabili kode hauetako bat:
 'ignorewarnings' => 'Edozein ohar ezikusi.',
 'minlength1' => 'Fitxategi izenek letra bat izan behar dute gutxienez.',
 'illegalfilename' => '"$1" fitxategiaren izenak orrialdeen izenburuetan erabili ezin diren karaktereak ditu. Mesedez, fitxategiari izena aldatu eta saiatu berriz igotzen.',
+'filename-toolong' => 'Fitxategi izenak ezin dira izan 240 byte baino luzeagoak.',
 'badfilename' => 'Irudiaren izena aldatu da: "$1".',
 'filetype-badmime' => 'Ezin dira "$1" MIME motako fitxategiak igo.',
 'filetype-bad-ie-mime' => 'Ezin da fitxategia igo, Internet Explorerek "$1" bezala detektatuko lukeelako, zein fitxategi mota ez onartua eta arriskutsua den.',
@@ -1549,6 +1628,29 @@ $1',
 'upload-unknown-size' => 'Tamaina ezezaguna',
 'upload-http-error' => 'HTTP errorea gertatu da: $1',
 
+# File backend
+'backend-fail-stream' => 'Ezin izan da "$1" fitxategiaren stream egin.',
+'backend-fail-backup' => 'Ezin izan da "$1" fitxategiaren backup egin.',
+'backend-fail-notexists' => '$1 fitxategia ez da existitzen.',
+'backend-fail-hashes' => 'Ezin izan da fitxategien hashak eskuratu konparatzeko.',
+'backend-fail-notsame' => 'Berdina ez den beste fitxategi bat dago "$1"n',
+'backend-fail-invalidpath' => '"$1" ez da gordetzeko helbide baliagarria.',
+'backend-fail-delete' => 'Ezin izan da ezabatu "$1" fitxategia.',
+'backend-fail-alreadyexists' => '"$1" fitxategia jadanik badago.',
+'backend-fail-store' => 'Ezin izan da gorde "$1" fitxategia "$2" helbidean.',
+'backend-fail-copy' => 'Ezin izan da kopiatu "$1" fitxategia "$2" helbidean.',
+'backend-fail-move' => 'Ezin izan da mugitu "$1" fitxategia "$2" helbidean.',
+'backend-fail-opentemp' => 'Ezin izan da behin behineko fitxategia ireki.',
+'backend-fail-writetemp' => 'Ezin da behin behineko fitxategia idatzi.',
+'backend-fail-closetemp' => 'Ezin izan da behin behineko fitxategia itxi.',
+'backend-fail-read' => 'Ezin izan da "$1" fitxategia irakurri.',
+'backend-fail-create' => 'Ezin izan da "$1" fitxategia idatzi.',
+'backend-fail-maxsize' => 'Ezin izan da idatzi "$1" fitxategia {{PLURAL:$2|byte bat|$2 byte}} baino handiagoa delako.',
+
+# Lock manager
+'lockmanager-notlocked' => 'Ezin izan da "$1" askatu; ez dago itxita.',
+'lockmanager-fail-closelock' => 'Ezin izan da "$1" fitxategiaren giltza itxi.',
+
 # ZipDirectoryReader
 'zip-wrong-format' => 'Zehaztutako fitxategia ez zen ZIP motakoa.',
 
@@ -1569,9 +1671,12 @@ Ikusi https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
 Fitxategien sarbidea baino ez da onartzen.',
 'img-auth-streaming' => '"$1" sekuentziatzen.',
 'img-auth-noread' => 'Erabiltzaileak ez du "$1" irakurtzeko sarbiderik.',
+'img-auth-bad-query-string' => 'URLan query esaldi baliogabea dago.',
 
 # HTTP errors
 'http-invalid-url' => 'URL baliogabea: $1',
+'http-invalid-scheme' => '"$1" eskema duten URLak ez dira baliagarriak.',
+'http-request-error' => 'HTTP eskariak akatsa izan du errore ezezagun bat dela eta.',
 'http-read-error' => 'HTTP irakurketa-akatsa.',
 'http-timed-out' => 'HTTP eskaera iraungi da.',
 'http-curl-error' => 'Errorea URLa bilatzerakoan: $1',
@@ -1637,6 +1742,7 @@ Bere [$2 fitxategiaren deskribapen orrialdea] behean dago.',
 'uploadnewversion-linktext' => 'Fitxategi honen bertsio berri bat igo',
 'shared-repo-from' => '$1-tik',
 'shared-repo' => 'elkarbanatutako biltegia',
+'upload-disallowed-here' => 'Ezin duzu fitxategi hau gain-idatzi.',
 
 # File reversion
 'filerevert' => '$1 leheneratu',
@@ -1718,6 +1824,11 @@ Bere [$2 fitxategiaren deskribapen orrialdea] behean dago.',
 Kasu bakoitzean dagokion artikulu zuzenarekin izan beharko lukete lotura.<br />
 Orrialde bat argipen motakoa dela antzeman ohi da [[MediaWiki:Disambiguationspage]] orrialdean agertzen den txantiloietako bat duenean.",
 
+'pageswithprop' => 'Orrialde propietatea duten orrialdeak',
+'pageswithprop-legend' => 'Orrialde propietatea duten orrialdeak',
+'pageswithprop-prop' => 'Ezaugarriaren izena:',
+'pageswithprop-submit' => 'Joan',
+
 'doubleredirects' => 'Birzuzenketa bikoitzak',
 'doubleredirectstext' => 'Lerro bakoitzean lehen eta bigarren birzuzenketetarako loturak ikus daitezke, eta baita edukia daukan edo eduki beharko lukeen orrialderako lotura ere. Lehen birzuzenketak azken honetara <del>zuzendu</del> beharko luke.',
 'double-redirect-fixed-move' => '[[$1]] mugitu da eta orain [[$2]](e)ra birzuzenketa bat da',
@@ -1739,10 +1850,13 @@ Orrialde bat argipen motakoa dela antzeman ohi da [[MediaWiki:Disambiguationspag
 # Miscellaneous special pages
 'nbytes' => '{{PLURAL:$1|byte 1|$1 byte}}',
 'ncategories' => '{{PLURAL:$1|kategoria 1|$1 kategoria}}',
+'ninterwikis' => '{{PLURAL:$1|Interwiki $1|$1 interwiki}}',
 'nlinks' => '{{PLURAL:$1|lotura 1|$1 lotura}}',
 'nmembers' => '{{PLURAL:$1|partaide 1|$1 partaide}}',
 'nrevisions' => '{{PLURAL:$1|berrikuspen 1|$1 berrikuspen}}',
 'nviews' => '{{PLURAL:$1|ikusketa 1|$1 ikusketa}}',
+'nimagelinks' => '{{PLURAL:$1|Orrialde batean erabilia|$1 orrialdetan erabilia}}',
+'ntransclusions' => '{{PLURAL:$1|orrialde batean erabilia|$1 orrialdetan erabilia}}',
 'specialpage-empty' => 'Ez dago emaitzarik bilaketa honetarako.',
 'lonelypages' => 'Orrialde umezurtzak',
 'lonelypagestext' => 'Jarraian zerrendatutako orrialdeek ez daukate {{SITENAME}}(e)n beste orrialdeetatik loturarik.',
@@ -1763,8 +1877,10 @@ Orrialde bat argipen motakoa dela antzeman ohi da [[MediaWiki:Disambiguationspag
 'mostlinkedtemplates' => 'Txantiloi erabilienak',
 'mostcategories' => 'Sailkapenean kategoria gehien dituzten orrialdeak',
 'mostimages' => 'Gehien lotutako irudiak',
+'mostinterwikis' => 'Interwiki gehien dituzten orrialdeak',
 'mostrevisions' => 'Berrikuspen gehien dituzten orrialdeak',
 'prefixindex' => 'Orri guztiak aurrizkiekin',
+'prefixindex-namespace' => '$1 izentartean honako aurrizkia duten orrialde guztiak:',
 'shortpages' => 'Orrialde laburrak',
 'longpages' => 'Orrialde luzeak',
 'deadendpages' => 'Orrialde itsuak',
@@ -1780,7 +1896,7 @@ Orrialde bat argipen motakoa dela antzeman ohi da [[MediaWiki:Disambiguationspag
 'listusers' => 'Erabiltzaileen zerrenda',
 'listusers-editsonly' => 'Aldaketak egin dituzten erabiltzaileak soilik erakutsi',
 'listusers-creationsort' => 'Sorrera dataren arabera sailkatu',
-'usereditcount' => '{{PLURAL:$1|aldaketa $1|$1 aldaketa}}',
+'usereditcount' => '{{PLURAL:$1|edizio bat|$1 edizio}}',
 'usercreated' => '{{GENDER:$3|Sortze data}}: $1, $2',
 'newpages' => 'Orrialde berriak',
 'newpages-username' => 'Erabiltzaile izena:',
@@ -1797,6 +1913,7 @@ Mesedez, kontuan izan beste webgune batzutatik URL zuzena erabiliz lotura izan d
 'pager-newer-n' => '{{PLURAL:$1|berriago den 1|berriagoak diren $1}}',
 'pager-older-n' => '{{PLURAL:$1|zaharragoa den 1|zaharragoak diren $1}}',
 'suppress' => 'Gain-ikuspena',
+'querypage-disabled' => 'Orrialde berezi hau desgaituta dago funtzionamendu arrazoiengatik.',
 
 # Book sources
 'booksources' => 'Iturri liburuak',
@@ -1814,6 +1931,7 @@ Mesedez, kontuan izan beste webgune batzutatik URL zuzena erabiliz lotura izan d
 Erregistro mota, erabiltzailearen izena edota orrialdearen izena iragaziz bistaratu daiteke. Letra larriak eta xeheak bereizten dira.',
 'logempty' => 'Ez dago emaitzarik erregistroan.',
 'log-title-wildcard' => 'Testu honekin hasten diren izenburuak bilatu',
+'showhideselectedlogentries' => 'Erakutsi/izkutatu aukeratutako log sarrerak',
 
 # Special:AllPages
 'allpages' => 'Orri guztiak',
@@ -1857,7 +1975,7 @@ Ikus, gainera [[Special:WantedCategories|kategoriarik eskatuenak]].',
 'linksearch-ok' => 'Bilatu',
 'linksearch-text' => '"*.wikipedia.org" bezalako izartxoak erabil daitezke.
 Gutxienez goi mailako domeinua behar du, adibidez "*.org".<br />
-Baimendutako protokoloak: <code>$1</code> (protokoloa zehazten ez bada http:// hartzen da lehenetsitzat).',
+Baimendutako {{PLURAL:$2|protokoloa|protokoloak}}: <code>$1</code> (protokoloa zehazten ez bada http:// hartzen da lehenetsitzat).',
 'linksearch-line' => '$1, $2(e)tik lotuta',
 'linksearch-error' => 'Komodinak izenaren hasieran bakarrik agertu beharko lirateke.',
 
@@ -1896,9 +2014,10 @@ Badago [[{{MediaWiki:Listgrouprights-helppage}}|informazio osagarria]] banakako
 'mailnologin' => 'Bidalketa helbiderik ez',
 'mailnologintext' => 'Beste erabiltzaileei e-posta mezuak bidaltzeko [[Special:UserLogin|saioa hasi]] eta baliozko e-posta helbidea behar duzu izan zure [[Special:Preferences|hobespenetan]].',
 'emailuser' => 'Erabiltzaile honi e-posta bidali',
+'emailuser-title-target' => '{{GENDER:$1|Erabiltzale}} honi e-posta bidali',
 'emailuser-title-notarget' => 'Erabiltzaileari e-maila bidali',
 'emailpage' => 'Erabiltzaileari e-posta bidali',
-'emailpagetext' => 'Erabiltzaile honek baliozko e-posta helbide bat ezarri badu bere hobespenetan, beheko formularioa erabiliz mezu bat bidal dakioke.
+'emailpagetext' => '{{GENDER:$1|Erabiltzaile}} honek baliozko e-posta helbide bat ezarri badu bere hobespenetan, beheko formularioa erabiliz mezu bat bidal dakioke.
 [[Special:Preferences|Hobespenetan]] daukazun e-posta helbidea azalduko da mezuaren bidaltzaile bezala eta beraz erantzun ahal izango dizu.',
 'usermailererror' => 'Mail objektuak errore hau itzuli du:',
 'defemailsubject' => '{{SITENAME}} e-posta "$1" lankideak',
@@ -1908,6 +2027,7 @@ Badago [[{{MediaWiki:Listgrouprights-helppage}}|informazio osagarria]] banakako
 'noemailtext' => 'Erabiltzaile honek ez du baliozko e-posta helbiderik zehaztu.',
 'nowikiemailtitle' => 'Ezin da e-postarik bidali',
 'nowikiemailtext' => 'Erabiltzaile honek beste erabiltzaileengandik e-postak ez jasotzea hautatu du.',
+'emailtarget' => 'Sartu jasolearen erabiltzaile izena',
 'emailusername' => 'Lankide izena:',
 'emailusernamesubmit' => 'Bidali',
 'email-legend' => 'Bidali e-posta bat {{SITENAME}}(e)ko beste lankide bati',
@@ -1923,6 +2043,7 @@ Badago [[{{MediaWiki:Listgrouprights-helppage}}|informazio osagarria]] banakako
 'emailuserfooter' => 'E-posta hau $1(e)k bidali dio $2(r)i {{SITENAME}}ko "E-posta bidali" funtzioa erabiliz.',
 
 # User Messenger
+'usermessage-summary' => 'Sistema mezua uzten.',
 'usermessage-editor' => 'Sistemako mezularia',
 
 # Watchlist
@@ -1933,9 +2054,11 @@ Badago [[{{MediaWiki:Listgrouprights-helppage}}|informazio osagarria]] banakako
 'watchlistanontext' => 'Mesedez $1 zure jarraipen zerrendako orrialdeak ikusi eta aldatu ahal izateko.',
 'watchnologin' => 'Saioa hasi gabe',
 'watchnologintext' => '[[Special:UserLogin|Saioa hasi]] behar duzu zure jarraipen zerrenda aldatzeko.',
-'addedwatchtext' => "\"<nowiki>\$1</nowiki>\" orrialdea zure [[Special:Watchlist|jarraipen edo zelatatuen zerrendara]] erantsi da. Orrialde honen hurrengo aldaketak zerrenda horretan ageriko dira aurrerantzean, eta gainera [[Special:RecentChanges|aldaketa berrien zerrendan]] beltzez ageriko da, erraztasunez antzeman ahal izateko.
+'addwatch' => 'Jarraipen zerrendara gehitu',
+'addedwatchtext' => '"[[:$1]]" orrialdea zure [[Special:Watchlist|jarraipen edo zelatatuen zerrendara]] erantsi da. 
 
-Jarraipen zerrendatik artikulua kentzeko, artikuluan ''ez jarraitu''ri eman.",
+Orrialde honen hurrengo aldaketak zerrenda horretan ageriko dira aurrerantzean.',
+'removewatch' => 'Kendu zure jarraipen zerrendatik',
 'removedwatchtext' => '"[[:$1]]" orrialdea zure [[Special:Watchlist|jarraipen zerrendatik]] kendu da.',
 'watch' => 'Jarraitu',
 'watchthispage' => 'Orrialde hau jarraitu',
@@ -1943,10 +2066,9 @@ Jarraipen zerrendatik artikulua kentzeko, artikuluan ''ez jarraitu''ri eman.",
 'unwatchthispage' => 'Jarraitzeari utzi',
 'notanarticle' => 'Ez da eduki orrialdea',
 'notvisiblerev' => 'Berrikusketa desegin da',
-'watchnochange' => 'Hautatutako denbora tartean ez da aldaketarik izan zure jarraipen zerrendako orrialdeetan.',
 'watchlist-details' => '{{PLURAL:$1|Orrialde $1|$1 orrialde}} jarraitzen, eztabaida orrialdeak kontuan hartu gabe.',
 'wlheader-enotif' => 'Posta bidezko ohartarazpena gaituta dago.',
-'wlheader-showupdated' => "Bisitatu zenituen azken alditik aldaketak izan dituzten orrialdeak '''beltzez''' nabarmenduta daude",
+'wlheader-showupdated' => "Bisitatu zenituen azken alditik aldaketak izan dituzten orrialdeak '''beltzez''' nabarmenduta daude.",
 'watchmethod-recent' => 'Aldaketa berriak aztertzen jarraipen zerrendako orrialdeen bila',
 'watchmethod-list' => 'jarraipen zerrendako orrialdeak aldaketa berrien bila aztertzen',
 'watchlistcontains' => 'Zure jarraipen zerrendak {{PLURAL:$1|orrialde $1 du|$1 orrialde ditu}}.',
@@ -2034,6 +2156,7 @@ kontu izan.',
 'rollback_short' => 'Desegin',
 'rollbacklink' => 'desegin',
 'rollbacklinkcount' => 'desegin {{PLURAL:$1|edizio bat|$1 edizio}}',
+'rollbacklinkcount-morethan' => 'desegin {{PLURAL:$1|edizio bat|$1 edizio}} baino gehiago',
 'rollbackfailed' => 'Desegiteak huts egin dud',
 'cantrollback' => 'Ezin da aldaketa desegin; erabiltzaile bakarrak hartu du parte.',
 'alreadyrolled' => 'Ezin da [[User:$2|$2]](e)k ([[User talk:$2|Eztabaida]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) [[$1]](e)n egindako azken aldaketa desegin;
@@ -2058,7 +2181,12 @@ Ikusi [[Special:ProtectedPages|babestutako orrialdeen zerrenda]] orrialde babes
 'unprotectedarticle' => '"[[$1]]"-(r)i babesa kendu zaio',
 'movedarticleprotection' => 'babes hobespenak "[[$2]]"tik "[[$1]]"(e)ra mugitu dira',
 'protect-title' => '"$1" babesten',
+'protect-title-notallowed' => '"$1"en babes maila ikusi',
 'prot_1movedto2' => '$1 izenburua $2(r)engatik aldatu da',
+'protect-badnamespace-title' => 'Izen-tarte ez babesgarria',
+'protect-badnamespace-text' => 'Izen-tarte honetako orrialdeak ezin dira babestu.',
+'protect-norestrictiontypes-text' => 'Orrialde hau ezin da babestu ez daudelako mugapen mota eskuragarririk.',
+'protect-norestrictiontypes-title' => 'Izen-tarte ez babesgarria',
 'protect-legend' => 'Babesa baieztatu',
 'protectcomment' => 'Arrazoia:',
 'protectexpiry' => 'Iraungipena:',
@@ -2075,11 +2203,12 @@ Hemen daude '''$1''' orrialderako oraingo ezarpenak:",
 'protect-cascadeon' => 'Orrialde hau babestuta dago orain, ondorengo orrialde {{PLURAL:$1|honek kaskada bidezko babesa aktibatua duelako|hauek kaskada bidezko babesa aktibatua dutelako}}.
 Orrialde honen babes maila alda dezakezu, baina ez du eraginik izango kaskada bidezko babesean.',
 'protect-default' => 'Lankide guztiak baimendu',
-'protect-fallback' => '"$1" baimena eskatu',
-'protect-level-autoconfirmed' => 'Lankide berri eta erregistratu gabekoak blokeatu',
-'protect-level-sysop' => 'Administratzaileak bakarrik',
+'protect-fallback' => '"$1" baimena duten erabiltzaileak bakarrik baimendu',
+'protect-level-autoconfirmed' => 'Baimendu lankide autokonfirmatuei bakarrik',
+'protect-level-sysop' => 'Administratzaileak bakarrik baimendu',
 'protect-summary-cascade' => 'jauzian',
 'protect-expiring' => 'babesaldiaren bukaera: $1 (UTC)',
+'protect-expiring-local' => 'iraungitze data: $1',
 'protect-expiry-indefinite' => 'mugagabea',
 'protect-cascade' => 'Babes masiboa - orrialde honen barneko orrialde guztiak blokeatu.',
 'protect-cantedit' => 'Ezin duzu orrialde honetako babes-maila aldatu, ez duzulako berau aldatzeko eskumenik.',
@@ -2143,7 +2272,7 @@ In such cases, you must uncheck or unhide the newest deleted revision.',
 'undeletedrevisions' => '{{PLURAL:$1|Berrikuspen 1 leheneratu da|$1 berrikuspen leheneratu dira}}',
 'undeletedrevisions-files' => '{{PLURAL:$1|berrikuspen|berrikuspen}} eta {{PLURAL:$2|fitxategi|fitxategi}} leheneratu dira',
 'undeletedfiles' => '{{PLURAL:$1|fitxategi|fitxategi}} leheneratu dira',
-'cannotundelete' => 'Errorea birsortzerakoan; baliteke beste norbaitek lehenago birsortu izana.',
+'cannotundelete' => 'Ezabatutako birgaitzean akatsa: $1',
 'undeletedpage' => "'''$1 leheneratu egin da'''
 
 [[Special:Log/delete|Ezabaketa erregistrora]] jo azken ezabaketa eta leheneraketak ikusteko.",
@@ -2158,6 +2287,7 @@ In such cases, you must uncheck or unhide the newest deleted revision.',
 'undelete-cleanup-error' => 'Erabiltzen ez den "$1" fitxategia ezabatzen arazoa egon da.',
 'undelete-missing-filearchive' => 'Fitxategiaren $1 IDa ezin da leheneratu, ez baitago datu-basean.
 Aurretik ez luke ezabatua izan behar.',
+'undelete-error' => 'Akatsa orrialde ezabatua birgaitzen',
 'undelete-error-short' => 'Errorea fitxategia berreskuratzerakoan: $1',
 'undelete-error-long' => 'Errorea gertatu da hurrengo orrialdea berreskuratzerakoan:
 
@@ -2177,7 +2307,7 @@ $1',
 'mycontris' => 'Ekarpenak',
 'contribsub2' => '$1 ($2)',
 'nocontribs' => 'Ez da ezaugarri horiekin bat datorren aldaketarik aurkitu.',
-'uctop' => ' (Azken aldaketa)',
+'uctop' => '(azken aldaketa)',
 'month' => 'Hilabetea (eta lehenagokoak):',
 'year' => 'Urtea (eta lehenagokoak):',
 
@@ -2261,13 +2391,20 @@ Ikus [[Special:BlockList|blokeoen zerrenda]] blokeoak aztertzeko.',
 'unblockiptext' => 'Erabili beheko formularioa lehenago blokeatutako IP helbide edo erabiltzaile baten idazketa baimenak leheneratzeko.',
 'ipusubmit' => 'Blokeoa ezabatu',
 'unblocked' => '[[User:$1|$1]] desblokeatu egin da',
+'unblocked-range' => '$1 desblokeatuta izan da.',
 'unblocked-id' => '$1 blokeaketa ezabatu da',
 'blocklist' => 'Blokeatutako erabiltzaileak',
 'ipblocklist' => 'Blokeatutako erabiltzaileak',
 'ipblocklist-legend' => 'Blokeatutako erabiltzaile bat bilatu',
+'blocklist-userblocks' => 'Izkutatu kontuaren blokeak',
+'blocklist-tempblocks' => 'Izkutatu behin-behineko blokeoak',
+'blocklist-addressblocks' => 'Izkutatu IP bakarretako blokeoak',
+'blocklist-rangeblocks' => 'Izkuntatu eremu blokeoak',
 'blocklist-timestamp' => 'Eguna eta ordua',
 'blocklist-target' => 'Helburua',
+'blocklist-expiry' => 'Epemuga:',
 'blocklist-by' => 'Blokeoa ezarri duen administratzailea',
+'blocklist-params' => 'Blokeo parametroak',
 'blocklist-reason' => 'Arrazoia',
 'ipblocklist-submit' => 'Bilatu',
 'ipblocklist-localblock' => 'Tokiko blokeoa',
@@ -2312,10 +2449,12 @@ Ikus [[Special:BlockList|blokeoen zerrenda]] aktibo dauden blokeoak eta debekuak
 'ipb_already_blocked' => '"$1" badago blokeatuta',
 'ipb-needreblock' => '$1 dagoeneko blokeaturik dago. Ezarpenak aldatu nahi al dituzu?',
 'ipb-otherblocks-header' => 'Bestelako {{PLURAL:$1|blokeoa|blokeoak}}',
+'unblock-hideuser' => 'Ezin duzu erabiltzaile hau desblokeatu, bere erabiltzaile izena izkutatua izan baita.',
 'ipb_cant_unblock' => 'Errorea: Ez da $1 IDa duen blokeoa aurkitu. Baliteke blokeoa jada kenduta egotea.',
 'ipb_blocked_as_range' => 'Akatsa: $1 IPa ez dago zuzenean blokeatuta eta ezin da blokeoa kendu.
 Hala ere, $2-(r)en parte denez, blokeoa kendu daiteke.',
 'ip_range_invalid' => 'Baliogabeko IP eremua.',
+'ip_range_toolarge' => '/$1 baino handiagoak diren blokeo eremuak ezin dira eskuratu.',
 'blockme' => 'Blokea nazazu',
 'proxyblocker' => 'Proxy blokeatzailea',
 'proxyblocker-disabled' => 'Funtzio hau ez-gaitua dago.',
@@ -2343,6 +2482,7 @@ Hala ere, $2-(r)en parte denez, blokeoa kendu daiteke.',
 'unlockdbsuccesstext' => 'Datu-basea desblokeatu egin da.',
 'lockfilenotwritable' => 'Ezin da datu-baseko blokeo fitxategian idatzi. Datu-basea blokeatu edo desblokeatzeko, zerbitzariak idazteko aukera izan beharra dauka.',
 'databasenotlocked' => 'Datu-basea ez dago blokeatuta.',
+'lockedbyandtime' => '({{GENDER:$1|$1}}k egina $2ko $3(e)tan)',
 
 # Move page
 'move-page' => '$1 mugitu',
@@ -2463,6 +2603,7 @@ Mesedez bisitatu [//www.mediawiki.org/wiki/Localisation MediaWiki] eta [//transl
 'thumbnail_error' => 'Errorea irudi txikia sortzerakoan: $1',
 'djvu_page_error' => 'DjVu orrialdea eremuz kanpo',
 'djvu_no_xml' => 'Ezinezkoa izan da DjVu fitxategiaren XML lortzea',
+'thumbnail-dest-create' => 'Ezin izan da iruditxoa gorde helburuan',
 'thumbnail_invalid_params' => 'Irudi txikiaren ezarpenak ez dira baliagarriak',
 'thumbnail_dest_directory' => 'Ezinezkoa izan da helburu direktorioa sortu',
 'thumbnail_image-type' => 'Irudi mota ez babestua',
@@ -2478,12 +2619,14 @@ Mesedez bisitatu [//www.mediawiki.org/wiki/Localisation MediaWiki] eta [//transl
 'import-interwiki-templates' => 'Txantiloi guztiak sartu',
 'import-interwiki-submit' => 'Inportatu',
 'import-interwiki-namespace' => 'Helburuko izen-tartea:',
+'import-interwiki-rootpage' => 'Helburuko oinarri orrialdea (aukerazkoa):',
 'import-upload-filename' => 'Fitxategiaren izena:',
 'import-comment' => 'Iruzkina:',
 'importtext' => 'Mesedez, jatorrizko wikitik orrialdea esportatzeko [[Special:Export|esportazio tresna]] erabil ezazu, zure diskoan gorde eta jarraian hona igo.',
 'importstart' => 'Orrialdeak inportatzen...',
 'import-revision-count' => '{{PLURAL:$1|berrikuspen 1|$1 berrikuspen}}',
 'importnopages' => 'Ez dago orrialderik inportatzeko.',
+'imported-log-entries' => '{{PLURAL:$1|Log sarrera bat|$1 log sarrera}} inportatu dira.',
 'importfailed' => 'Inportazioak huts egin du: $1',
 'importunknownsource' => 'Inportazio iturri mota ezezaguna',
 'importcantopen' => 'Ezin izan da inportazio fitxategia ireki',
@@ -2514,6 +2657,10 @@ Fitxategiaren atal bat baino ez zen igo.',
 'import-logentry-interwiki' => '$1 wiki artean mugitu da',
 'import-logentry-interwiki-detail' => '$1 {{PLURAL:$1|berrikuspen|berrikuspen}} $2-(e)tik',
 
+# JavaScriptTest
+'javascripttest' => 'JavaScript frogatzen',
+'javascripttest-title' => '$1 frogak egiten',
+
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Nire lankide orria',
 'tooltip-pt-anonuserpage' => 'Zure IParen lankide orrialdea',
@@ -2574,6 +2721,8 @@ Fitxategiaren atal bat baino ez zen igo.',
 'tooltip-diff' => 'Testuari egindako aldaketak erakutsi.',
 'tooltip-compareselectedversions' => 'Orrialde honen bi hautatutako bertsioen arteko ezberdintasunak ikusi.',
 'tooltip-watch' => 'Orrialde hau zure segimendu zerrendan gehitu',
+'tooltip-watchlistedit-normal-submit' => 'Izenburuak kendu',
+'tooltip-watchlistedit-raw-submit' => 'Jarraipen zerrenda gaurkotu',
 'tooltip-recreate' => 'Orrialdea birsortu ezabatu egin den arren',
 'tooltip-upload' => 'Igoera hasi',
 'tooltip-rollback' => '"Desegin" ekintzak orriaren azken egilearen ekarpena ezabatzen du klik batean',
@@ -2614,6 +2763,8 @@ Baliteke zerrenda beltzean dagoen kanpo lotura batek sortzea arazo hori.',
 'spam_blanking' => 'Berrikuspen guztiek $1(e)rako lotura zeukaten, husten',
 
 # Info page
+'pageinfo-title' => '"$1"(r)entzako informazioa',
+'pageinfo-not-current' => 'Barkatu, errebisio zaharretako informazioa eskaintzea ezinezkoa da.',
 'pageinfo-header-basic' => 'Oinarrizko informazioa',
 'pageinfo-header-edits' => 'Aldaketen historia',
 'pageinfo-header-restrictions' => 'Orriaren babesa',
@@ -2628,6 +2779,7 @@ Baliteke zerrenda beltzean dagoen kanpo lotura batek sortzea arazo hori.',
 'pageinfo-robot-noindex' => 'Indexaezina',
 'pageinfo-views' => 'Bistaratze-kopurua',
 'pageinfo-watchers' => 'Orriaren jarraitzaileen kopurua',
+'pageinfo-few-watchers' => '{{PLURAL:$1|Ikusle bat|$1 ikusle}} baino gutxiago',
 'pageinfo-redirects-name' => 'Orri honetara dakarten birzuzenketak',
 'pageinfo-subpages-name' => 'Orri honen azpiorriak',
 'pageinfo-firstuser' => 'Orriaren sortzailea',
@@ -2641,12 +2793,17 @@ Baliteke zerrenda beltzean dagoen kanpo lotura batek sortzea arazo hori.',
 'pageinfo-hidden-categories' => 'Ezkutuko {{PLURAL:$1|kategoria|kategoriak}} ($1)',
 'pageinfo-templates' => 'Txertatutako {{PLURAL:$1|txantiloia|txantiloiak}} ($1)',
 'pageinfo-toolboxlink' => 'Orri honen datuak',
+'pageinfo-redirectsto' => 'Hona birzuzentzen du',
 'pageinfo-redirectsto-info' => 'Informazioa',
 'pageinfo-contentpage' => 'Eduki-orritzat zenbatua',
 'pageinfo-contentpage-yes' => 'Bai',
 'pageinfo-protect-cascading' => 'Serieko babesa, orri honetatik',
 'pageinfo-protect-cascading-yes' => 'Bai',
 'pageinfo-protect-cascading-from' => 'Serieko babesak aktibatuta. Sorburua:',
+'pageinfo-category-info' => 'Kategoria informazioa',
+'pageinfo-category-pages' => 'Orrialde kopurua',
+'pageinfo-category-subcats' => 'Azpikategorien zenbakia',
+'pageinfo-category-files' => 'Fitxategi kopurua',
 
 # Skin names
 'skinname-cologneblue' => 'Cologne Blue',
@@ -2662,6 +2819,8 @@ Baliteke zerrenda beltzean dagoen kanpo lotura batek sortzea arazo hori.',
 'markedaspatrollederror' => 'Ezin da patruilatutzat markatu',
 'markedaspatrollederrortext' => 'Patruilatutzat markatzeko berrikuspen bat hautatu behar duzu.',
 'markedaspatrollederror-noautopatrol' => 'Ez daukazu zeure aldaketak patruilatutzat markatzeko baimenik.',
+'markedaspatrollednotify' => '$1 orrialdeari egindako aldaketa patruilatu moduan markatua izan da.',
+'markedaspatrollederrornotify' => 'Patruilatu gisa markatzean akatsa egon da.',
 
 # Patrol log
 'patrol-log-page' => 'Patrullatze loga',
@@ -2691,8 +2850,10 @@ Zure sisteman exekutatzea arriskutsua izan liteke.",
 'widthheightpage' => '$1 × $2, $3 {{PLURAL:$3|orri|orri}}',
 'file-info' => 'fitxategiaren tamaina: $1, MIME mota: $2',
 'file-info-size' => '$1 × $2 pixel, fitxategiaren tamaina: $3, MIME mota: $4',
+'file-info-size-pages' => '$1 × $2 pixel, fitxategi tamaina: $3, MIME mota: $4, {{PLURAL:$5|orrialde $5|$5 orrialde}}',
 'file-nohires' => 'Ez dago bereizmen handiagorik.',
 'svg-long-desc' => 'SVG fitxategia, nominaldi $1 × $2 pixel, fitxategiaren tamaina: $3',
+'svg-long-error' => 'SVG fitxategi ez baliagarria: $1',
 'show-big-image' => 'Bereizmen handikoa',
 'show-big-image-preview' => 'Aurreikuspen honen neurria: $1.',
 'show-big-image-other' => 'Bestelako {{PLURAL:$2|bereizmena|bereizmenak}}: $1.',
@@ -2700,6 +2861,7 @@ Zure sisteman exekutatzea arriskutsua izan liteke.",
 'file-info-gif-looped' => 'kiribildua',
 'file-info-gif-frames' => '{{PLURAL:$1|Irudi $1|$1 irudi}}',
 'file-info-png-looped' => 'begiztatua',
+'file-info-png-repeat' => '{{PLURAL:$1|Behin|$1 aldiz}} ikusia',
 'file-info-png-frames' => '{{PLURAL:$1|Frame bat|$1 frame}}',
 
 # Special:NewFiles
@@ -2723,7 +2885,24 @@ Zure sisteman exekutatzea arriskutsua izan liteke.",
 'minutes' => '{{PLURAL:$1|minutu $1|$1 minutu}}',
 'hours' => '{{PLURAL:$1|ordu $1|$1 ordu}}',
 'days' => '{{PLURAL:$1|egun $1|$1 egun}}',
+'weeks' => '{{PLURAL: $1|aste $1|$1 aste}}',
+'months' => '{{PLURAL: $1|hilabete $1|$1 hilabete}}',
+'years' => '{{PLURAL: $1|urte $1|$1 urte}}',
 'ago' => 'Duela $1',
+'just-now' => 'orain',
+
+# Human-readable timestamps
+'hours-ago' => 'Orain dela {{PLURAL:$1|ordu bat|$1 ordu}}',
+'minutes-ago' => 'Orain dela {{PLURAL:$1|minutu bat|$1 minutu}}',
+'seconds-ago' => 'Orain dela {{PLURAL:$1|segundu bat|$1 segundu}}',
+'monday-at' => 'Astelehena $1(e)tan',
+'tuesday-at' => 'Asteartea $1(e)tan',
+'wednesday-at' => 'Asteazkena $1(e)tan',
+'thursday-at' => 'Osteguna $1(e)tan',
+'friday-at' => 'Ostirala $1(e)tan',
+'saturday-at' => 'Larunbata $1(e)tan',
+'sunday-at' => 'Igandea $1(e)tan',
+'yesterday-at' => 'Atzo $1(e)tan',
 
 # Bad image list
 'bad_image_list' => 'Formatua hurrengoa da:
@@ -2884,16 +3063,47 @@ Zerrenda elementuak (hasieran * duten lerroak) baino ez dira kontuan hartzen. Le
 'exif-headline' => 'Goiburua',
 'exif-credit' => 'Kreditua/Emalea',
 'exif-source' => 'Jatorria',
+'exif-editstatus' => 'Irudiaren egoera editoriala',
 'exif-urgency' => 'Larrialdia',
+'exif-locationdest' => 'Agertzen den lekua',
+'exif-locationdestcode' => 'Agertzen den lekuaren kodea',
+'exif-objectcycle' => 'Media hau baliagarria den egunaren ordua',
+'exif-contact' => 'Kontratuaren informazioa',
 'exif-writer' => 'Idazlea',
 'exif-languagecode' => 'Hizkuntza',
 'exif-iimversion' => 'IIM bertsioa',
 'exif-iimcategory' => 'Kategoria',
+'exif-iimsupplementalcategory' => 'Kategoria gehigarriak',
+'exif-datetimeexpires' => 'Ez erabili data hau pasata:',
+'exif-datetimereleased' => 'Ekoizpen data:',
+'exif-identifier' => 'Identifikatzailea',
+'exif-lens' => 'Erabilitako lentea',
 'exif-serialnumber' => 'Kameraren serie-zenbakia',
 'exif-cameraownername' => 'Kameraren jabea',
 'exif-label' => 'Etiketa',
+'exif-rating' => 'Balorazioa (5 arte)',
+'exif-rightscertificate' => 'Eskubideen kudeaketa ziurtagiria',
+'exif-copyrighted' => 'Copyright egoera',
 'exif-copyrightowner' => 'Copyright-aren jabea',
 'exif-usageterms' => 'Erabilera baldintzak',
+'exif-webstatement' => 'Copyright azapena sarean',
+'exif-originaldocumentid' => 'Jatorrizko dokumentuaren ID bakarra',
+'exif-licenseurl' => 'Copyright lizentziaren URLa',
+'exif-morepermissionsurl' => 'Lizentziaren informazio alternatiboa',
+'exif-attributionurl' => 'Lan hau berrerabiltzean, mesedez lotura hau erabili',
+'exif-preferredattributionname' => 'Lan hau berrerabiltzean, mesedez aipatu',
+'exif-pngfilecomment' => 'PNG fitxategiaren iruzkina',
+'exif-disclaimer' => 'Mugaketak',
+'exif-contentwarning' => 'Edukiarekin adi',
+'exif-giffilecomment' => 'GIF fitxategiaren iruzkina',
+'exif-intellectualgenre' => 'Elementu mota',
+'exif-subjectnewscode' => 'Gaiaren kodea',
+'exif-scenecode' => 'IPTC eskena kodea',
+'exif-event' => 'Agertzen den ebentoa',
+'exif-organisationinimage' => 'Agertzen den antolakundea',
+'exif-personinimage' => 'Agertzen den pertsona',
+'exif-originalimageheight' => 'Irudiaren altuera moztu aurretik',
+'exif-originalimagewidth' => 'Irudiaren zabalera moztu aurretik',
 
 # Exif attributes
 'exif-compression-1' => 'Konprimatu gabe',
@@ -3070,13 +3280,31 @@ Zerrenda elementuak (hasieran * duten lerroak) baino ez dira kontuan hartzen. Le
 
 'exif-gpsdop-excellent' => 'Bikaina ($1)',
 'exif-gpsdop-good' => 'Ona  ($1)',
+'exif-gpsdop-moderate' => 'Moderatua ($1)',
+'exif-gpsdop-fair' => 'Justua ($1)',
+'exif-gpsdop-poor' => 'Pobrea ($1)',
+
+'exif-objectcycle-a' => 'Goizetan bakarrik',
+'exif-objectcycle-p' => 'Arratsaldetan bakarrik',
+'exif-objectcycle-b' => 'Goiz zein arratsalde',
 
 # Pseudotags used for GPSTrackRef, GPSImgDirectionRef and GPSDestBearingRef
 'exif-gpsdirection-t' => 'Benetako norabidea',
 'exif-gpsdirection-m' => 'Norabide magnetikoa',
 
+'exif-ycbcrpositioning-1' => 'Zentratua',
+
+'exif-dc-contributor' => 'Egileak',
+'exif-dc-date' => 'Data(k)',
 'exif-dc-publisher' => 'Argitaratzailea',
+'exif-dc-relation' => 'Harremana duen media',
 'exif-dc-rights' => 'Eskubideak',
+'exif-dc-source' => 'Jatorrizko media',
+'exif-dc-type' => 'Media mota',
+
+'exif-rating-rejected' => 'Ukatua',
+
+'exif-isospeedratings-overflow' => '65535 baino handiago',
 
 'exif-iimcategory-ace' => 'Arteak, kultura eta aisia',
 'exif-iimcategory-clj' => 'Krimena eta zuzenbidea',
@@ -3085,7 +3313,9 @@ Zerrenda elementuak (hasieran * duten lerroak) baino ez dira kontuan hartzen. Le
 'exif-iimcategory-edu' => 'Hezkuntza',
 'exif-iimcategory-evn' => 'Ingurumena',
 'exif-iimcategory-hth' => 'Osasuna',
+'exif-iimcategory-hum' => 'Gizakientzako interesa',
 'exif-iimcategory-lab' => 'Lana',
+'exif-iimcategory-lif' => 'Bizimoduak eta denborapasak',
 'exif-iimcategory-pol' => 'Politika',
 'exif-iimcategory-rel' => 'Erlijioa eta sinesmenak',
 'exif-iimcategory-sci' => 'Zientzia eta teknologia',
@@ -3234,10 +3464,11 @@ Halaber [[Special:EditWatchlist|aldatzaile estandarra]] erabil dezakezu.',
 'version-specialpages' => 'Aparteko orrialdeak',
 'version-parserhooks' => 'Parser estentsioak',
 'version-variables' => 'Aldagaiak',
+'version-antispam' => 'Spam ekiditea',
+'version-skins' => 'Itxurak',
 'version-other' => 'Bestelakoak',
 'version-mediahandlers' => 'Media gordailuak',
 'version-hooks' => 'Estentsioak',
-'version-extension-functions' => 'Luzapen funtzioak',
 'version-parser-extensiontags' => 'Parser luzapen etiketak',
 'version-parser-function-hooks' => 'Parser funtzio estentsioak',
 'version-hook-name' => 'Estentsioaren izena',
@@ -3249,8 +3480,21 @@ Halaber [[Special:EditWatchlist|aldatzaile estandarra]] erabil dezakezu.',
 'version-software' => 'Instalatutako softwarea',
 'version-software-product' => 'Produktua',
 'version-software-version' => 'Bertsioa',
+'version-entrypoints' => 'Sarrera puntuko URLa',
+'version-entrypoints-header-entrypoint' => 'Sarrera puntua',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
+'redirect' => 'Birzuzendu fitxategi, lankide edo berrikuspen IDaren arabera',
+'redirect-legend' => 'Orrialde edo fitxategi batera birzuzendu',
+'redirect-submit' => 'Joan',
+'redirect-lookup' => 'Ikuskatu:',
+'redirect-value' => 'Balioa:',
+'redirect-user' => 'Erabiltzailearen identifikazioa (ID):',
+'redirect-revision' => 'Orrialdearen berrikuspena',
+'redirect-file' => 'Fitxategiaren izena',
+'redirect-not-exists' => 'Ez da baliorik aurkitu',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Artxibo bikoiztuen bilaketa',
 'fileduplicatesearch-summary' => 'Bikoiztutako fitxategiak bilatu bere hash balioaren arabera.',
@@ -3335,17 +3579,32 @@ Halaber [[Special:EditWatchlist|aldatzaile estandarra]] erabil dezakezu.',
 'htmlform-submit' => 'Bidali',
 'htmlform-reset' => 'Aldaketak desegin',
 'htmlform-selectorother-other' => 'Beste bat',
+'htmlform-no' => 'Ez',
+'htmlform-yes' => 'Bai',
+'htmlform-chosen-placeholder' => 'Aukeratu',
+
+# SQLite database support
+'sqlite-has-fts' => '$1 testu osoan bilatzeko laguntzarekin',
 
 # New logging system
-'logentry-delete-delete' => '$1 wikilariak «$3» orria ezabatu du',
+'logentry-delete-delete' => '$1 wikilariak $3 orria {{GENDER:$2|ezabatu}} du',
+'logentry-delete-restore' => '$1(e)k $3 orrialdea {{GENDER:$2|berrezarri}} du',
 'logentry-delete-event' => '$1 wikilariak ikusgaitasuna aldatu {{PLURAL:$5|dio erregistroko sarrera bati|die erregistroko $5 sarrerari}}, $3 orrian: $4',
+'logentry-suppress-delete' => '$1 erabiltzaileak $3 orrialdea {{GENDER:$2|ezabatu}} du',
 'logentry-suppress-event' => '$1 wikilariak ezkutuan ikusgaitasuna aldatu {{PLURAL:$5|dio erregistroko sarrera bati|die erregistroko $5 sarrerari}}, $3 orrian: $4',
+'revdelete-content-hid' => 'edukia izkutatua',
+'revdelete-summary-hid' => 'aldaketa laburpena izkutatua',
+'revdelete-uname-hid' => 'lankide izena ezkutatua',
+'revdelete-content-unhid' => 'eduki ezkutua erakutsi',
+'revdelete-summary-unhid' => 'aldaketa laburpen izkutua erakutsi',
+'revdelete-uname-unhid' => 'lankide ezkutua erakutsi',
 'revdelete-restricted' => 'administratzaileentzako mugak ezarri dira',
 'revdelete-unrestricted' => 'administratzaileentzako mugak kendu dira',
-'logentry-move-move' => '$1 wikilariak «$3» orria «$4» izenera aldatu du',
-'logentry-move-move-noredirect' => '$1 wikilariak «$3» orria «$4» izenera aldatu du, birzuzenketarik utzi gabe',
-'logentry-move-move_redir' => '$1 wikilariak «$3» orria «$4» izenera aldatu du, birzuzenketaren gainetik',
-'logentry-move-move_redir-noredirect' => '$1 wikilariak «$3» orria «$4» izenera aldatu du, birzuzenketa bat gainidatzita, birzuzenketarik utzi gabe',
+'logentry-move-move' => '$1 {{GENDER:$2|wikilariak}} $3 orria $4 izenera aldatu du',
+'logentry-move-move-noredirect' => '$1 {{GENDER:$2|wikilariak}} $3 orria $4 izenera aldatu du, birzuzenketarik utzi gabe',
+'logentry-move-move_redir' => '$1 {{GENDER:wikilariak}} «$3» orria «$4» izenera aldatu du, birzuzenketaren gainetik',
+'logentry-move-move_redir-noredirect' => '$1 {{GENDER:wikilariak}} «$3» orria «$4» izenera aldatu du, birzuzenketa bat gainidatzita, birzuzenketarik utzi gabe',
+'logentry-patrol-patrol' => '$1(e)k $3 orrialdearen $4 berrikuzpena patruilatutzat {{GENDER:$2|markatu}} du',
 'logentry-newusers-newusers' => '$1 erabiltzaile kontua sortu da',
 'logentry-newusers-create' => '$1 erabiltzaile kontua sortu da',
 'logentry-newusers-create2' => '$1 wikilariak $3 erabiltzaile kontua sortu du',
@@ -3356,9 +3615,39 @@ Halaber [[Special:EditWatchlist|aldatzaile estandarra]] erabil dezakezu.',
 'feedback-message' => 'Mezua:',
 'feedback-cancel' => 'Utzi',
 'feedback-submit' => 'Feedbacka bidali',
+'feedback-error2' => 'Akatsa: Aldaketa ez da egin',
+'feedback-close' => 'Egina',
+'feedback-bugnew' => 'Txekeatu dut. Bug berria bidaliko',
 
 # Search suggestions
 'searchsuggest-search' => 'Bilatu',
 'searchsuggest-containing' => 'edukian...',
 
+# API errors
+'api-error-badaccess-groups' => 'Ez duzu baimendik fitxategi hauek wiki honetara igotzeko.',
+'api-error-badtoken' => 'Barne akatsa: token okerra.',
+'api-error-filename-tooshort' => 'Fitxategiaren izena laburregia da.',
+'api-error-filetype-banned' => 'Mota horretako fitxategiak debekatuta daude.',
+'api-error-illegal-filename' => 'Fitxategiaren izena ez da onartzen.',
+'api-error-unclassified' => 'Ezezaguna den errorea gertatu da.',
+'api-error-unknown-code' => 'Akats ezezaguna: "$1".',
+'api-error-unknown-warning' => 'Ohartarazpen ezezaguna: "$1".',
+'api-error-unknownerror' => 'Akats ezezaguna: "$1".',
+'api-error-uploaddisabled' => 'Wiki honetan ezin dira igoerak egin.',
+'api-error-verification-error' => 'Fitxategia ustela izan daiteke, edo fitxategi luzapen ez egokia du.',
+
+# Durations
+'duration-seconds' => '{{PLURAL:$1|Segundu $1|$1 segundu}}',
+'duration-minutes' => '{{PLURAL:$1|Minutu $1|$1 minutu}}',
+'duration-hours' => '{{PLURAL:$1|Ordu $1|$1 ordu}}',
+'duration-days' => '{{PLURAL:$1|Egun $1|$1 egun}}',
+'duration-weeks' => '{{PLURAL:$1|Aste $1|$1 aste}}',
+'duration-years' => '{{PLURAL:$1|Urte $1|$1 urte}}',
+'duration-decades' => '{{PLURAL:$1|Hamarkada $1|$1 hamarkada}}',
+'duration-centuries' => '{{PLURAL:$1|Mende $1|$1 mende}}',
+'duration-millennia' => '{{PLURAL:$1|Milurteko $1|$1 milurteko}}',
+
+# Image rotation
+'rotate-comment' => 'Irudia erlojuaren norantzan {{PLURAL:$1|gradu 1|$1 gradu}} biratua izan da',
+
 );
index c8ff7ab..7f374bc 100644 (file)
@@ -236,7 +236,6 @@ $messages = array(
 'disclaimers' => 'Avissu legal',
 'disclaimerpage' => 'Project:Arrayu heneral de responsabiliá',
 'edithelp' => "Ayua d'eición",
-'edithelppage' => 'Help:Eitandu',
 'helppage' => 'Help:Continius',
 'mainpage' => 'Página prencipal',
 'mainpage-description' => 'Páhina prencipal',
@@ -766,7 +765,6 @@ Asigurati e qu'esti chambu mantenga la continuiá el estorial la páhina.",
 'viewprevnext' => 'Vel ($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-legend' => 'Ocionis de landeu',
 'searchmenu-new' => "'''Crial el artículu \"[[:\$1]]\"'''",
-'searchhelp-url' => 'Help:Continius',
 'searchprofile-images' => 'Murtimeya',
 'searchprofile-everything' => 'Tó',
 'searchprofile-advanced' => 'Avançau',
@@ -817,7 +815,6 @@ Asigurati e qu'esti chambu mantenga la continuiá el estorial la páhina.",
 'saveprefs' => 'Emburacal',
 'resetprefs' => 'Esborral los chambus nu emburacaus',
 'prefs-editing' => 'Eitandu',
-'prefs-edit-boxsize' => "Grandol de la ventana d'eición.",
 'rows' => 'Filas:',
 'columns' => 'Colunas:',
 'searchresultshead' => 'Landeal',
@@ -997,7 +994,6 @@ Amás premiti qu'otrus ussuárius contatin contigu pol mé la tu página d'ussu
 'recentchangeslinked-feed' => 'Chambus relacionaus',
 'recentchangeslinked-toolbox' => 'Chambus relacionaus',
 'recentchangeslinked-title' => 'Chambus relacionaus con "$1"',
-'recentchangeslinked-noresult' => 'Nu ai chambus enas páhinas atihás nel períu lihiu.',
 'recentchangeslinked-summary' => "Nesta páhina especial ai una lista colos úrtimus chambus en páhinas qu'están atihás dendi una páhina concreta (u en miembrus de una detelminá categoria).
 Las páhinas de la tu [[Special:Watchlist|lista e seguimientu]] están en '''negrina'''.",
 'recentchangeslinked-page' => 'Nombri la páhina:',
@@ -1386,7 +1382,6 @@ Si quieis ehal de vehilal la páhina, pursa sobri \"Ehal de vehilal\".",
 'unwatchthispage' => 'Ehal de vehilal',
 'notanarticle' => 'Nu es un artículu',
 'notvisiblerev' => 'La revisión á siu esborrá',
-'watchnochange' => 'Nu s´eitó denguna e las tus páhinas vehilás nel períu lihiu.',
 'watchlist-details' => '{{PLURAL:$1|$1 artículu|$1 artículus}} vehilaus (sin contal las carabas).',
 'wlheader-enotif' => 'Se premitin notificacionis pol email.',
 'wlheader-showupdated' => "Las páhinas que s'án emburacau dendi la úrtima vezi que las visoreasti son muestrás en '''negrina'''",
@@ -2345,7 +2340,6 @@ Pol favol, confirma si rialmenti quieis gorvel a crial la páhina.",
 'version-specialpages' => 'Páhinas especialis',
 'version-variables' => 'Variabris',
 'version-other' => 'Otru',
-'version-extension-functions' => "Huncionis d'estensionis",
 'version-hook-name' => 'Nombri el Hook',
 'version-hook-subscribedby' => 'Suscritu pol',
 'version-version' => '(Velsión $1)',
index 2d69c26..ee0a256 100644 (file)
  * @author Roozbeh Pournader <roozbeh at gmail.com>
  * @author Sahim
  * @author Surena
+ * @author Taha
  * @author Wayiran
  * @author Zack90
  * @author ZxxZxxZ
  * @author לערי ריינהארט
  * @author جواد
+ * @author درفش کاویانی
  * @author محک
  */
 
@@ -75,29 +77,29 @@ $namespaceAliases = array(
 
 $specialPageAliases = array(
        'Activeusers'               => array( 'کاربران_فعال' ),
-       'Allmessages'               => array( 'تمام_پیام‌ها' ),
-       'Allpages'                  => array( 'تÙ\85اÙ\85¨Ø±Ú¯ه‌ها' ),
-       'Ancientpages'              => array( 'برگه‌های_قدیمی' ),
+       'Allmessages'               => array( 'تÙ\85اÙ\85_Ù¾Û\8cغاÙ\85â\80\8cÙ\87ا' ),
+       'Allpages'                  => array( 'تÙ\85اÙ\85µÙ\81Ø­ه‌ها' ),
+       'Ancientpages'              => array( 'صÙ\81Ø­ه‌های_قدیمی' ),
        'Badtitle'                  => array( 'عنوان_بد' ),
-       'Blankpage'                 => array( 'برگÙ\87â\80\8cÛ\8c_خالی' ),
+       'Blankpage'                 => array( 'صÙ\81Ø­Ù\87_خالی' ),
        'Block'                     => array( 'بستن_نشانی_آی‌پی' ),
        'Blockme'                   => array( 'بستن_من' ),
        'Booksources'               => array( 'منابع_کتاب' ),
        'BrokenRedirects'           => array( 'تغییرمسیرهای_خراب' ),
-       'Categories'                => array( 'دسته‌ها' ),
+       'Categories'                => array( 'رده‌ها' ),
        'ChangeEmail'               => array( 'تغییر_رایانامه' ),
        'ChangePassword'            => array( 'از_نو_کردن_گذرواژه' ),
-       'ComparePages'              => array( 'مقایسه‌ی_برگه‌ها' ),
-       'Confirmemail'              => array( 'پذیرش_رایانامه' ),
+       'ComparePages'              => array( 'مقایسه_صفحات' ),
+       'Confirmemail'              => array( 'تایید_رایانامه' ),
        'Contributions'             => array( 'مشارکت‌ها' ),
        'CreateAccount'             => array( 'ایجاد_حساب_کاربری' ),
-       'Deadendpages'              => array( 'برگه‌های_بن‌بست' ),
-       'DeletedContributions'      => array( 'مشارکت‌های_پاک_شده' ),
+       'Deadendpages'              => array( 'صÙ\81Ø­ه‌های_بن‌بست' ),
+       'DeletedContributions'      => array( 'مشارکت‌های_حذف_شده' ),
        'Disambiguations'           => array( 'ابهام‌زدایی' ),
        'DoubleRedirects'           => array( 'تغییرمسیرهای_دوتایی' ),
        'EditWatchlist'             => array( 'ویرایش_فهرست_پی‌گیری‌ها' ),
        'Emailuser'                 => array( 'نامه_به_کاربر' ),
-       'Export'                    => array( 'برÙ\88Ù\86_برÛ\8c¨Ø±Ú¯ه' ),
+       'Export'                    => array( 'برÙ\88Ù\86_برÛ\8cµÙ\81Ø­ه' ),
        'Fewestrevisions'           => array( 'کمترین_نسخه' ),
        'FileDuplicateSearch'       => array( 'جستجوی_پرونده_تکراری' ),
        'Filepath'                  => array( 'مسیر_پرونده' ),
@@ -114,60 +116,62 @@ $specialPageAliases = array(
        'Listusers'                 => array( 'فهرست_کاربران' ),
        'Lockdb'                    => array( 'قفل_کردن_پایگاه_داده' ),
        'Log'                       => array( 'سیاهه‌ها' ),
-       'Lonelypages'               => array( 'برگÙ\87â\80\8cÙ\87اÛ\8c_بÛ\8câ\80\8cÙ\86اÙ\85â\80\8cÙ\88Ù\86شاÙ\86' ),
-       'Longpages'                 => array( 'برگه‌های_بلند' ),
+       'Lonelypages'               => array( 'صÙ\81Ø­Ù\87â\80\8cÙ\87اÛ\8c\8cتÛ\8cÙ\85' ),
+       'Longpages'                 => array( 'صÙ\81Ø­ه‌های_بلند' ),
        'MergeHistory'              => array( 'ادغام_تاریخچه' ),
        'MIMEsearch'                => array( 'جستجوی_MIME' ),
-       'Mostcategories'            => array( 'بÛ\8cشترÛ\8cÙ\86¯Ø³Øªه' ),
+       'Mostcategories'            => array( 'بÛ\8cشترÛ\8cÙ\86±Ø¯ه' ),
        'Mostimages'                => array( 'بیشترین_تصویر' ),
+       'Mostinterwikis'            => array( 'بیشترین_میان‌ویکی' ),
        'Mostlinked'                => array( 'بیشترین_پیوند' ),
        'Mostlinkedcategories'      => array( 'رده_با_بیشترین_پیوند' ),
        'Mostlinkedtemplates'       => array( 'الگو_با_بیشترین_پیوند' ),
        'Mostrevisions'             => array( 'بیشترین_نسخه' ),
-       'Movepage'                  => array( 'جابجاÛ\8cÛ\8c_برگه' ),
+       'Movepage'                  => array( 'اÙ\86تÙ\82اÙ\84_صÙ\81Ø­ه' ),
        'Mycontributions'           => array( 'مشارکت‌های_من' ),
-       'Mypage'                    => array( 'برگÙ\87â\80\8cÛ\8c_من' ),
-       'Mytalk'                    => array( 'گفتگوی_من' ),
+       'Mypage'                    => array( 'صÙ\81Ø­Ù\87_من' ),
+       'Mytalk'                    => array( 'بحث_من' ),
        'Myuploads'                 => array( 'بارگذاری‌های_من' ),
-       'Newimages'                 => array( 'تصاÙ\88Û\8cر_تازÙ\87' ),
-       'Newpages'                  => array( 'برگه‌های_تازه' ),
+       'Newimages'                 => array( 'تصاÙ\88Û\8cر_جدÛ\8cد' ),
+       'Newpages'                  => array( 'صÙ\81Ø­ه‌های_تازه' ),
        'PasswordReset'             => array( 'بازنشاندن_گذرواژه' ),
        'PermanentLink'             => array( 'پیوند_دائمی' ),
-       'Popularpages'              => array( 'برگه‌های_محبوب' ),
+       'Popularpages'              => array( 'صÙ\81Ø­ه‌های_محبوب' ),
        'Preferences'               => array( 'ترجیحات' ),
        'Prefixindex'               => array( 'نمایه_پیشوندی' ),
-       'Protectedpages'            => array( 'برگه‌های_محافظت_شده' ),
+       'Protectedpages'            => array( 'صÙ\81Ø­ه‌های_محافظت_شده' ),
        'Protectedtitles'           => array( 'عنوان‌های_محافظت_شده' ),
-       'Randompage'                => array( 'برگÙ\87â\80\8cÛ\8c_تصادفی' ),
+       'Randompage'                => array( 'صÙ\81Ø­Ù\87_تصادفی' ),
        'Randomredirect'            => array( 'تغییرمسیر_تصادفی' ),
        'Recentchanges'             => array( 'تغییرات_اخیر' ),
        'Recentchangeslinked'       => array( 'تغییرات_مرتبط' ),
-       'Revisiondelete'            => array( 'پاک_کردن_نسخه' ),
+       'Redirect'                  => array( 'تغییرمسیر' ),
+       'Revisiondelete'            => array( 'حذف_نسخه' ),
        'Search'                    => array( 'جستجو' ),
-       'Shortpages'                => array( 'برگه‌های_کوتاه' ),
-       'Specialpages'              => array( 'برگه‌های_ویژه' ),
+       'Shortpages'                => array( 'صÙ\81Ø­ه‌های_کوتاه' ),
+       'Specialpages'              => array( 'صÙ\81Ø­ه‌های_ویژه' ),
        'Statistics'                => array( 'آمار' ),
        'Tags'                      => array( 'برچسب‌ها' ),
        'Unblock'                   => array( 'باز_کردن' ),
-       'Uncategorizedcategories'   => array( 'دسته‌های_رده‌بندی_نشده' ),
+       'Uncategorizedcategories'   => array( 'رده‌های_رده‌بندی_نشده' ),
        'Uncategorizedimages'       => array( 'تصویرهای_رده‌بندی_‌نشده' ),
        'Uncategorizedpages'        => array( 'صفحه‌های_رده‌بندی_نشده' ),
        'Uncategorizedtemplates'    => array( 'الگوهای_رده‌بندی_نشده' ),
-       'Undelete'                  => array( 'احیای_صفحهٔ_پاک‌شده' ),
+       'Undelete'                  => array( 'احیای_صفحهٔ_حذف‌شده' ),
        'Unlockdb'                  => array( 'باز_کردن_پایگاه_داده' ),
-       'Unusedcategories'          => array( 'دسته‌های_استفاده_نشده' ),
+       'Unusedcategories'          => array( 'رده‌های_استفاده_نشده' ),
        'Unusedimages'              => array( 'تصاویر_استفاده_نشده' ),
        'Unusedtemplates'           => array( 'الگوهای_استفاده_نشده' ),
-       'Unwatchedpages'            => array( 'دسته‌های_پی‌گیری_نشده' ),
+       'Unwatchedpages'            => array( 'صÙ\81Ø­ه‌های_پی‌گیری_نشده' ),
        'Upload'                    => array( 'بارگذاری_پرونده' ),
        'UploadStash'               => array( 'بارگذاری_انبوه' ),
        'Userlogin'                 => array( 'ورود_به_سامانه' ),
        'Userlogout'                => array( 'خروج_از_سامانه' ),
        'Userrights'                => array( 'اختیارات_کاربر' ),
-       'Version'                   => array( 'نگارش' ),
-       'Wantedcategories'          => array( 'دسته‌های_مورد_نیاز' ),
+       'Version'                   => array( 'نسخه' ),
+       'Wantedcategories'          => array( 'رده‌های_مورد_نیاز' ),
        'Wantedfiles'               => array( 'پرونده‌های_مورد_نیاز' ),
-       'Wantedpages'               => array( 'برگه‌های_مورد_نیاز' ),
+       'Wantedpages'               => array( 'صÙ\81Ø­ه‌های_مورد_نیاز' ),
        'Wantedtemplates'           => array( 'الگوهای_مورد_نیاز' ),
        'Watchlist'                 => array( 'فهرست_پی‌گیری' ),
        'Whatlinkshere'             => array( 'پیوند_به_این_صفحه' ),
@@ -538,6 +542,18 @@ $messages = array(
 'oct' => 'اکتبر',
 'nov' => 'نوامبر',
 'dec' => 'دسامبر',
+'january-date' => '$1 ژانویه',
+'february-date' => '$1 فوریه',
+'march-date' => '$1 مارس',
+'april-date' => '$1 آوریل',
+'may-date' => '$1 مه',
+'june-date' => '$1 ژوئن',
+'july-date' => '$1 ژوئیه',
+'august-date' => '$1 اوت',
+'september-date' => '$1 سپتامبر',
+'october-date' => '$1 اکتبر',
+'november-date' => '$1 نوامبر',
+'december-date' => '$1 دسامبر',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|رده|رده‌ها}}',
@@ -619,6 +635,7 @@ $messages = array(
 'create-this-page' => 'ایجاد این صفحه',
 'delete' => 'حذف',
 'deletethispage' => 'حذف این صفحه',
+'undeletethispage' => 'احیای این صفحه',
 'undelete_short' => 'احیای {{PLURAL:$1|یک ویرایش|$1 ویرایش}}',
 'viewdeleted_short' => 'نمایش {{PLURAL:$1|یک ویرایش حذف‌شده|$1 ویرایش حذف‌شده}}',
 'protect' => 'محافظت',
@@ -672,7 +689,6 @@ $1',
 'disclaimers' => 'تکذیب‌نامه‌ها',
 'disclaimerpage' => 'Project:تکذیب‌نامهٔ عمومی',
 'edithelp' => 'راهنمای ویرایش‌کردن',
-'edithelppage' => 'Help:ویرایش',
 'helppage' => 'Help:محتوا',
 'mainpage' => 'صفحهٔ اصلی',
 'mainpage-description' => 'صفحهٔ اصلی',
@@ -683,7 +699,7 @@ $1',
 'privacypage' => 'Project:سیاست محرمانگی',
 
 'badaccess' => 'خطای دسترسی',
-'badaccess-group0' => 'شما اجازهٔ اجرای عملی را که درخواست کرده‌اید ندارید.',
+'badaccess-group0' => 'شما اجازهٔ اجرای عملی که درخواست کرده‌اید را ندارید.',
 'badaccess-groups' => 'عملی که درخواست کرده‌اید منحصر به کاربران {{PLURAL:$2|این گروه|این گروه‌ها}} است: $1.',
 
 'versionrequired' => 'نسخهٔ $1 از نرم‌افزار مدیاویکی لازم است',
@@ -828,6 +844,10 @@ $2',
 'namespaceprotected' => "شما اجازهٔ ویرایش صفحه‌های فضای نام '''$1''' را ندارید.",
 'customcssprotected' => 'شما اجازهٔ ویرایش این صفحهٔ سی‌اس‌اس را ندارید، زیرا حاوی تنظیم‌های شخصی یک کاربر دیگر است.',
 'customjsprotected' => 'شما اجازهٔ ویرایش این صفحهٔ جاوااسکریپت را ندارید، زیرا حاوی تنظیم‌های شخصی یک کاربر دیگر است.',
+'mycustomcssprotected' => 'شما دارای مجوز ویرایش این صفحهٔ سی‌اس‌اس نیستید.',
+'mycustomjsprotected' => 'شما دارای مجوز ویرایش این صفحهٔ جاوااسکریپت نیستید.',
+'myprivateinfoprotected' => 'شما دارای مجوز ویرایش اطلاعات شخصی خود نیستید.',
+'mypreferencesprotected' => 'شما دارای مجوز ویرایش تنظیمات خود نیستید.',
 'ns-specialprotected' => 'صفحه‌های ویژه غیر قابل ویرایش هستند.',
 'titleprotected' => "این عنوان توسط [[User:$1|$1]] در برابر ایجاد محافظت شده‌است.
 دلیل ارائه‌شده این است: «''$2''».",
@@ -853,9 +873,19 @@ $2',
 'welcomecreation-msg' => 'حساب کاربری شما ایجاد شده است.
 فراموش نکنید که [[Special:Preferences|ترجیحات {{SITENAME}}]] خود را تغییر دهید.',
 'yourname' => 'نام کاربری:',
+'userlogin-yourname' => 'نام کاربری',
+'userlogin-yourname-ph' => 'نام کاربریتان را وارد کنید',
+'createacct-another-username-ph' => 'نام کاربریتان را وارد کنید',
 'yourpassword' => 'گذرواژه:',
+'userlogin-yourpassword' => 'گذرواژه',
+'userlogin-yourpassword-ph' => 'گذرواژه را وارد کنید',
+'createacct-yourpassword-ph' => 'یک گذرواژه وارد کنید',
 'yourpasswordagain' => 'تکرار گذرواژه:',
+'createacct-yourpasswordagain' => 'گذرواژه را دوباره وارد کنید',
+'createacct-yourpasswordagain-ph' => 'گذرواژه را وارد کنید برای بار دوم',
 'remembermypassword' => 'گذرواژه را (تا حداکثر $1 {{PLURAL:$1|روز|روز}}) در این رایانه به خاطر بسپار',
+'userlogin-remembermypassword' => 'من را واردشده نگه‌دار',
+'userlogin-signwithsecure' => 'از ورود امن استفاده کنید',
 'securelogin-stick-https' => 'پس از ورود به سامانه به HTTPS متصل بمان',
 'yourdomainname' => 'دامنهٔ شما:',
 'password-change-forbidden' => 'شما نمی‌توانید گذرواژه‌ها را در این ویکی تغییر دهید.',
@@ -868,18 +898,41 @@ $2',
 'logout' => 'خروج از سامانه',
 'userlogout' => 'خروج از سامانه',
 'notloggedin' => 'به سامانه وارد نشده‌اید',
+'userlogin-noaccount' => 'حساب کاربری ندارید؟',
+'userlogin-joinproject' => 'در {{SITENAME}} نام‌نویسی کنید!',
 'nologin' => 'حساب کاربری ندارید؟ $1.',
 'nologinlink' => 'یک حساب کاربری جدید بسازید',
 'createaccount' => 'ایجاد حساب کاربری',
 'gotaccount' => 'حساب کاربری دارید؟ $1.',
 'gotaccountlink' => 'به سامانه وارد شوید',
 'userlogin-resetlink' => 'جزئیات ورود را فراموش کرده‌اید؟',
+'userlogin-resetpassword-link' => 'گذرواژه‌تان را فراموش کردید؟',
+'helplogin-url' => 'Help:ورود به سامانه',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|راهنمای ورود به سامانه]]',
+'createacct-join' => 'اطلاعاتتان را در زیر وارد کنید',
+'createacct-another-join' => 'در زیر اطلاعات کاربری جدیدتان را وارد کنید.',
+'createacct-emailrequired' => 'آدرس رایانامه',
+'createacct-emailoptional' => 'آدرس رایانامه (اختیاری)',
+'createacct-email-ph' => 'آدرس رایانامه را وارد کنید',
+'createacct-another-email-ph' => 'آدرس رایانامه را وارد کنید',
 'createaccountmail' => 'استفاده از رمز عبور موقت تصادفی و ارسال آن به آدرس ایمیل مشخص شده در زیر',
+'createacct-realname' => 'نام واقعی (اختیاری)',
 'createaccountreason' => 'دلیل:',
+'createacct-reason' => 'دلیل',
+'createacct-reason-ph' => 'چرا شما حساب دیگری می‌سازید؟',
+'createacct-captcha' => 'بررسی امنیتی',
+'createacct-imgcaptcha-ph' => 'متن تصویری که در بالا می‌بینید، وارد کنید',
+'createacct-submit' => 'حسابتان را بسازید',
+'createacct-another-submit' => 'ایجاد حساب کاربری دیگر',
+'createacct-benefit-heading' => '{{SITENAME}} توسط افرادی مانند شما ساخته شده‌است',
+'createacct-benefit-body1' => '{{PLURAL:$1|ویرایش|ویرایش‌ها}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|صفحه|صفحه‌ها}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|مشارکت‌کنندهٔ|مشارکت‌کنندگان}} اخیر',
 'badretype' => 'گذرواژه‌هایی که وارد کرده‌اید یکسان نیستند.',
 'userexists' => 'نام کاربری‌ای که وارد کردید قبلاً استفاده شده‌است.
 لطفاً یک نام دیگر انتخاب کنید.',
 'loginerror' => 'خطا در ورود به سامانه',
+'createacct-error' => 'خطای ایجاد حساب کاربری',
 'createaccounterror' => 'امکان ساختن این حساب وجود ندارد: $1',
 'nocookiesnew' => 'حساب کاربری ایجاد شد، اما شما وارد سامانه نشدید.
 {{SITENAME}} برای ورود کاربران به سامانه از کوکی استفاده می‌کند.
@@ -922,8 +975,8 @@ $2',
 'blocked-mailpassword' => 'نشانی آی‌پی شما از ویرایش بازداشته شده‌است و از این رو به منظور جلوگیری از سوءاستفاده اجازهٔ بهره‌گیری از قابلیت بازیابی گذرواژه را ندارد.',
 'eauthentsent' => 'یک نامه برای تأیید نشانی رایانامه به نشانی موردنظر ارسال شد.
 قبل از اینکه نامهٔ دیگری قابل ارسال به این نشانی باشد، باید دستورهایی که در آن نامه آمده است را جهت تأیید این مساله که این نشانی متعلق به شماست، اجرا کنید.',
-'throttled-mailpassword' => 'یک یادآور گذرواژه در $1 {{PLURAL:$1|ساعت|ساعت}} گذشته برای شما فرستاده شده‌است.
-برای جلوگیری از سوءاستفاده هر $1 {{PLURAL:$1|ساعت|ساعت}} تنها یک یادآوری فرستاده می‌شود.',
+'throttled-mailpassword' => 'یک رایانامهٔ بازنشانی گذرواژه در $1 {{PLURAL:$1|ساعت|ساعت}} گذشته فرستاده شده است.
+برای جلوگیری از سوءاستفاده، هر $1 {{PLURAL:$1|ساعت|ساعت}} تنها یک رایانامهٔ بازنشانی گذرواژه فرستاده می‌شود.',
 'mailerror' => 'خطا در فرستادن رایانامه: $1',
 'acct_creation_throttle_hit' => 'بازدیدکنندگان این ویکی که از نشانی آی‌پی شما استفاده می‌کنند در روز گذشته {{PLURAL:$1|یک حساب کاربری|$1 حساب کاربری}} ساخته‌اند، که بیشترین تعداد مجاز در آن بازهٔ زمانی است.
 به همین خاطر، بازدیدکنندگانی که از این نشانی آی‌پی استفاده می‌کنند نمی‌توانند در حال حاضر حساب جدیدی بسازند.',
@@ -937,7 +990,7 @@ $2',
 'cannotchangeemail' => 'نشانی‌های رایانامهٔ حساب کاربری در این ویکی قابل تغییر نیست.',
 'emaildisabled' => 'این وب‌گاه قادر به ارسال رایانامه نیست.',
 'accountcreated' => 'حساب کاربری ایجاد شد',
-'accountcreatedtext' => 'حساب کاربری $1 ایجاد شده‌است.',
+'accountcreatedtext' => 'حساب کاربری برای [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|بحث]]) ایجاد شده است.',
 'createaccount-title' => 'ایجاد حساب کاربری در {{SITENAME}}',
 'createaccount-text' => 'یک نفر برای رایانامه شما یک حساب کاربری در {{SITENAME}} با نام «$2» ایجاد کرده‌است ($4)، که گذرواژهٔ آن چنین است: $3
 شما باید به سامانه وارد شوید تا گذرواژهٔ خود را تغییر بدهید.
@@ -974,37 +1027,38 @@ $2',
 'resetpass-wrong-oldpass' => 'گذرواژهٔ موقت یا اخیر نامعتبر.
 ممکن است که شما همینک گذرواژه‌تان را با موفقیت تغییر داده باشید یا درخواست یک گذرواژهٔ موقت جدید کرده باشید.',
 'resetpass-temp-password' => 'گذرواژهٔ موقت:',
+'resetpass-abort-generic' => 'تغییر گذرواژه به دست یکی از افزونه‌ها لغو شده است.',
 
 # Special:PasswordReset
 'passwordreset' => 'بازنشانی گذرواژه',
-'passwordreset-text' => 'این فرم را برای دریافت نامهٔ یادآور جزئیات حسابتان کامل کنید.',
+'passwordreset-text-one' => 'برای بازنشانی گذرواژه‌تان این فرم را کامل کنید.',
+'passwordreset-text-many' => '{{PLURAL:$1|یکی از موارد را برای بازنشانی گذرواژه‌تان پر کنید.}}',
 'passwordreset-legend' => 'بازنشانی گذرواژه',
 'passwordreset-disabled' => 'بازنشانی گذرواژه در این ویکی غیرفعال شده است.',
-'passwordreset-pretext' => '{{PLURAL:$1||یکی از قطعه‌های داده را در زیر وارد کنید}}',
+'passwordreset-emaildisabled' => 'ویژگی‌های رایانامه در این ویکی نافعال شده‌اند.',
 'passwordreset-username' => 'نام کاربری:',
 'passwordreset-domain' => 'دامنه:',
 'passwordreset-capture' => 'رایانامهٔ نهایی نشان داده شود؟',
 'passwordreset-capture-help' => 'اگر این گزینه را علامت بزنید رایانامهٔ (حاوی گذرواژهٔ موقت) به شما نشان داده خواهد شد و برای کاربر نیز فرستاده خواهد شد.',
 'passwordreset-email' => 'نشانی رایانامه:',
 'passwordreset-emailtitle' => 'جزئیات حساب در {{SITENAME}}',
-'passwordreset-emailtext-ip' => 'شخصÛ\8c (احتÙ\85اÙ\84اÙ\8b Ø´Ù\85اØ\8c Ø¨Ø§ Ù\86شاÙ\86Û\8c Ø¢Û\8câ\80\8cÙ¾Û\8c $1) Ø¯Ø±Ø®Ù\88است Û\8cادآÙ\88رÛ\8c Ø¬Ø²Ø¦Û\8cات Ø­Ø³Ø§Ø¨ Ú©Ø§Ø±Ø¨Ø±Û\8cتاÙ\86 Ø¯Ø± {{SITENAME}} ($4) Ø±Ø§ Ú©Ø±Ø¯Ù\87â\80\8cاست. {{PLURAL:$3|حساب|حسابâ\80\8cÙ\87اÛ\8c}} Ú©Ø§Ø±Ø¨Ø±Û\8c Ø²Û\8cر Ø¨Ø§ Ø§Û\8cÙ\86 Ø±Ø§Û\8cاÙ\86شاÙ\86Û\8c Ù\85رتبط Ù\87ستÙ\86د:
+'passwordreset-emailtext-ip' => 'Û\8cÚ© Ù\86Ù\81ر (احتÙ\85اÙ\84اÙ\8b Ø´Ù\85اØ\8c Ø¨Ø§ Ù\86شاÙ\86Û\8c Ø¢Û\8câ\80\8cÙ¾Û\8c $1) Ø¯Ø±Ø®Ù\88است Ø¨Ø§Ø²Ù\86شاÙ\86Û\8c Ú¯Ø°Ø±Ù\88اÚ\98Ù\87â\80\8cتاÙ\86 Ø¯Ø± {{SITENAME}} ($4) Ø±Ø§ Ú©Ø±Ø¯Ù\87â\80\8cاست. {{PLURAL:$3|حساب|حسابâ\80\8cÙ\87اÛ\8c}} Ú©Ø§Ø±Ø¨Ø±Û\8c Ø²Û\8cر Ø¨Ø§ Ø§Û\8cÙ\86 Ø±Ø§Û\8cاÙ\86شاÙ\86Û\8c Ù\85رتبط Ù\87ستÙ\86د:
 
 $2
 
 {{PLURAL:$3|این گذرواژهٔ موقت|این گذرواژه‌های موقت}} پس از {{PLURAL:$5|یک روز|$5 روز}} باطل خواهند شد.
-شما باید اکنون وارد سایت شوید و گذرواژه‌ای جدید برگزینید. اگر فکر می‌کنید شخص دیگری این درخواست را داده‌است یا اگر گذرواژهٔ اصلی‌تان را به یاد آوردید و دیگر نمی‌خواهید آن را تغییر دهید، می‌توانید این پیغام را نادیده بگیرید و به استفاده از گذرواژهٔ قبلی‌تان ادامه دهید.',
-'passwordreset-emailtext-user' => 'کاربر $1 از {{SITENAME}} درخواست یادآور جزئیات حساب شما را برای {{SITENAME}}
-($4) کرده است. {{PLURAL:$3|حساب|حساب‌های}} کاربری زیر با این رایانشانی مرتبط است:
+شما باید هم‌اکنون ثبت ورود کنید و گذرواژه‌ای جدید برگزینید. اگر فکر می‌کنید شخص دیگری این درخواست را داده‌است یا اگر گذرواژهٔ اصلی‌تان را به یاد آوردید و دیگر نمی‌خواهید آن را تغییر دهید، می‌توانید این پیغام را نادیده بگیرید و به استفاده از گذرواژهٔ قبلی‌تان ادامه دهید.',
+'passwordreset-emailtext-user' => 'کاربر $1 از {{SITENAME}} درخواست بازنشانی گذرواژهٔ شما در {{SITENAME}} ($4) را کرده است. {{PLURAL:$3|حساب|حساب‌های}} کاربری زیر با این رایانشانی مرتبط است:
 
 $2
 
 {{PLURAL:$3|این گذرواژهٔ موقت|این گذرواژه‌های موقت}} تا {{PLURAL:$5|یک روز|$5 روز}} باطل می‌شود.
-شما باید هم‌اکنون وارد شده و یک گذرواژهٔ جدید برگزینید. اگر شخص دیگری این درخواست را داده است، یا اگر گذرواژهٔ اصلی‌تان را به خاطر آوردید، و دیگر نمی‌خواهید که آن را تغییر دهید، می‌توانید این پیغام را نادیده بگیرید و به استفاده از گذرواژهٔ قبلی‌تان ادامه دهید.',
+شما باید هم‌اکنون وارد شده و یک گذرواژهٔ جدید برگزینید. اگر شخص دیگری این درخواست را داده است، یا اگر گذرواژهٔ اصلی‌تان را به خاطر آوردید و دیگر نمی‌خواهید آن را تغییر دهید، می‌توانید این پیغام را نادیده بگیرید و به استفاده از گذرواژهٔ قبلی‌تان ادامه دهید.',
 'passwordreset-emailelement' => 'نام کاربری: $1
 گذرواژهٔ موقت: $2',
-'passwordreset-emailsent' => 'یک نامهٔ یادآور فرستاده شد.',
-'passwordreset-emailsent-capture' => 'رایانامهٔ یادآور فرستاده شد، که به شرح زیر است.',
-'passwordreset-emailerror-capture' => 'رایانامهٔ یادآور همانطور که در زیر مشاهده می‌فرمایید ایجاد شد ولی ارسال آن به کاربر موفقیت‌آمیز نبود: $1',
+'passwordreset-emailsent' => 'یک نامهٔ بازنشانی گذرواژه فرستاده شده است.',
+'passwordreset-emailsent-capture' => 'یک رایانامهٔ بازنشانی که در پایین نمایش داده شده، فرستاده شده است.',
+'passwordreset-emailerror-capture' => 'رایانامهٔ بازنشانی، که در زیر نمایش داده شده، ایجاد شد، ولی ارسال آن به {{GENDER:$2|کاربر}} موفقیت‌آمیز نبود: $1',
 
 # Special:ChangeEmail
 'changeemail' => 'تغییر نشانی رایانامه',
@@ -1224,6 +1278,7 @@ $2
 به نظرمی‌رسد که صفحه حذف شده باشد.',
 'edit-conflict' => 'تعارض ویرایشی.',
 'edit-no-change' => 'ویرایش شما نادیده گرفته شد، زیرا تغییری در متن داده نشده بود.',
+'postedit-confirmation' => 'ویرایش شما ذخیره شد.',
 'edit-already-exists' => 'امکان ساختن صفحهٔ جدید وجود ندارد.
 این صفحه از قبل وجود داشته‌است.',
 'defaultmessagetext' => 'متن پیش‌فرض پیغام',
@@ -1267,6 +1322,7 @@ $2
 'undo-failure' => 'به علت تعارض با ویرایش‌های میانی، این ویرایش را نمی‌توان خنثی کرد.',
 'undo-norev' => 'این ویرایش را نمی‌توان خنثی کرد چون وجود ندارد یا حذف شده‌است.',
 'undo-summary' => 'خنثی‌سازی ویرایش $1 توسط [[Special:Contributions/$2|$2]] ([[User talk:$2|بحث]])',
+'undo-summary-username-hidden' => 'خنثی‌سازی نسخهٔ $1 به دست یک کاربر پنهان‌شده',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'نمی‌توان حساب باز کرد',
@@ -1445,6 +1501,7 @@ $1",
 'compareselectedversions' => 'مقایسهٔ نسخه‌های انتخاب‌شده',
 'showhideselectedversions' => 'نمایش/نهفتن نسخه‌های انتخاب شده',
 'editundo' => 'خنثی‌سازی',
+'diff-empty' => '(بدون تفاوت)',
 'diff-multi' => '({{PLURAL:$1|یک|$1}} ویرایش میانی توسط {{PLURAL:$2|یک|$2}} کاربر نشان داده نشده‌است)',
 'diff-multi-manyusers' => '({{PLURAL:$1|یک|$1}} ویرایش میانی توسط بیش از {{PLURAL:$2|یک|$2}} کاربر نشان داده نشده‌است)',
 'difference-missing-revision' => '{{PLURAL:$2|یک ویرایش|$2 ویرایش}}  از تفاوت نسخه‌ها ($1) {{PLURAL:$2|یافت|یافت}}  نشد.
@@ -1472,7 +1529,6 @@ $1",
 'searchmenu-legend' => 'گزینه‌های جستجو',
 'searchmenu-exists' => "'''صفحه‌ای با عنوان \"[[:\$1]]\" در این ویکی وجود دارد.'''",
 'searchmenu-new' => "'''صفحهٔ «[[:$1]]» را در این ویکی بسازید!'''",
-'searchhelp-url' => 'Help:محتوا',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|مرور صفحه‌های با این پیشوند]]',
 'searchprofile-articles' => 'صفحه‌های محتوایی',
 'searchprofile-project' => 'صفحه‌های راهنما و پروژه',
@@ -1516,6 +1572,7 @@ $1",
 'searchdisabled' => 'جستجو در {{SITENAME}} فعال نیست.
 موقتاً می‌توانید از جستجوی Google استفاده کنید.
 توجه کنید که نتایج حاصل از جستجو با آن روش ممکن است به‌روز نباشند.',
+'search-error' => 'خطایی هنگام جست‌وجو رخ داده است: $1',
 
 # Preferences page
 'preferences' => 'ترجیحات',
@@ -1549,7 +1606,6 @@ $1",
 'resetprefs' => 'صفرکردن ترجیحات',
 'restoreprefs' => 'برگرداندن تمام تنظیمات پیش‌فرض',
 'prefs-editing' => 'در حال ویرایش',
-'prefs-edit-boxsize' => 'اندازهٔ پنجرهٔ ویرایش.',
 'rows' => 'تعداد سطرها:',
 'columns' => 'تعداد ستون‌ها:',
 'searchresultshead' => 'جستجو',
@@ -1560,9 +1616,6 @@ $1",
 'recentchangesdays-max' => 'حداکثر $1 {{PLURAL:$1|روز}}',
 'recentchangescount' => 'تعداد پیش‌فرض ویرایش‌های نمایش یافته:',
 'prefs-help-recentchangescount' => 'این گزینه شامل تغییرات اخیر، تاریخچهٔ صفحه‌ها و سیاهه‌ها می‌شود.',
-'prefs-help-watchlist-token' => 'پرکردن این بخش با یک کلید رمز سبب ایجاد یک خوراک آراس‌اس برای فهرست پی‌گیری شما می‌شود.
-هر کس که این کلید را بداند می‌تواند فهرست پی‌گیری شما را بخواند، پس مقداری ایمن انتخاب کنید.
-مقدار تصادفی که برای شما ایجاد شده‌است: $1',
 'savedprefs' => 'ترجیحات شما ذخیره شد.',
 'timezonelegend' => 'منطقهٔ زمانی:',
 'localtime' => 'زمان محلی:',
@@ -1593,7 +1646,6 @@ $1",
 'prefs-reset-intro' => 'شما می‌توانید از این صفحه برای بازگرداندن تنظیمات خود به پیش‌فرض تارنما استفاده کنید.
 این کار بازگشت‌ناپذیر است.',
 'prefs-emailconfirm-label' => 'تأیید رایانامه:',
-'prefs-textboxsize' => 'اندازهٔ جعبهٔ ویرایش',
 'youremail' => 'رایانامه:',
 'username' => '{{GENDER:$1|نام کاربری}}:',
 'uid' => 'شناسهٔ {{GENDER:$1|کاربری}}:',
@@ -1627,7 +1679,9 @@ $1",
 'prefs-signature' => 'امضا',
 'prefs-dateformat' => 'آرایش تاریخ',
 'prefs-timeoffset' => 'فاصلهٔ زمانی',
-'prefs-advancedediting' => 'گزینه‌های پیشرفته',
+'prefs-advancedediting' => 'عمومی',
+'prefs-editor' => 'ویرایشگر',
+'prefs-preview' => 'پیش‌نمایش',
 'prefs-advancedrc' => 'گزینه‌های پیشرفته',
 'prefs-advancedrendering' => 'گزینه‌های پیشرفته',
 'prefs-advancedsearchoptions' => 'گزینه‌های پیشرفته',
@@ -1638,7 +1692,7 @@ $1",
 'prefs-diffs' => 'تفاوت‌ها',
 
 # User preference: email validation using jQuery
-'email-address-validity-valid' => 'نشانی رایانامه معتبر به نظر می رسد',
+'email-address-validity-valid' => 'نشانی رایانامه معتبر به نظر میرسد',
 'email-address-validity-invalid' => 'نشانی رایانامهٔ معتبر وارد کنید',
 
 # User rights
@@ -1662,6 +1716,8 @@ $1",
 'userrights-notallowed' => 'حساب کاربری شما اجازه افزودن یا حذف کردن اختیارات کاربری را ندارد.',
 'userrights-changeable-col' => 'گروه‌هایی که می‌توانید تغییر دهید',
 'userrights-unchangeable-col' => 'گروه‌هایی که نمی‌توانید تغییر دهید',
+'userrights-conflict' => 'تعارض دسترسی‌های کاربری! لطفاً تغییراتتان را دوباره اعمال کنید.',
+'userrights-removed-self' => 'شما با موفقیت دسترسی‌های خود را واستاندید. به این ترتیب شما دیگر به این صفحه دسترسی ندارید.',
 
 # Groups
 'group' => 'گروه:',
@@ -1705,7 +1761,7 @@ $1",
 'right-reupload-shared' => 'باطل‌کردن محلی پرونده‌های مشترک',
 'right-upload_by_url' => 'بارگذاری پرونده از یک نشانی اینترنتی',
 'right-purge' => 'پاک‌کردن میانگیر صفحه بدون مشاهدهٔ صفحهٔ تأیید',
-'right-autoconfirmed' => 'ویرایش صفحه‌های نیمه‌محافظت‌شده',
+'right-autoconfirmed' => 'از محدودیت‌های سرعت آی‌پی‌-محور تاثیر نمی‌گیرد',
 'right-bot' => 'تلقی‌شده به عنوان یک فرآیند خودکار',
 'right-nominornewtalk' => 'ویرایش جزئی صفحه‌های بحث به شکلی که باعث اعلان پیغام جدید نشود',
 'right-apihighlimits' => 'سقف بالاتر استفاده از API',
@@ -1726,12 +1782,20 @@ $1",
 'right-ipblock-exempt' => 'تاثیر نپذیرفتن از قطع دسترسی‌های آی‌پی، خودکار یا فاصله‌ای',
 'right-proxyunbannable' => 'تاثیر نپذیرفتن از قطع دسترسی خودکار پروکسی‌ها',
 'right-unblockself' => 'دسترسی خود را باز کنند',
-'right-protect' => 'تغییر میزان محافظت صفحه‌ها و ویرایش صفحه‌های محافظت شده',
-'right-editprotected' => 'ویرایش صفحه‌های محافظت شده (به شرط نبود محافظت آبشاری)',
+'right-protect' => 'تغییر میزان محافظت صفحه‌ها و ویرایش صفحه‌های محافظت شده آبشاری',
+'right-editprotected' => 'ویرایش صفحه‌های محافظت شده به عنوان "{{int:protect-level-sysop}}"',
+'right-editsemiprotected' => 'ویرایش صفحه حفاظت‌شده به عنوان "{{int:protect-level-autoconfirmed}}"',
 'right-editinterface' => 'ویرایش واسط کاربری',
 'right-editusercssjs' => 'ویرایش صفحه‌های CSS و JS دیگر کاربرها',
 'right-editusercss' => 'ویرایش صفحه‌های CSS دیگر کاربرها',
 'right-edituserjs' => 'ویرایش صفحه‌های JS دیگر کاربرها',
+'right-editmyusercss' => 'پرونده‌های سی‌اس‌اس کاربری خود را ویرایش کنید',
+'right-editmyuserjs' => 'پرونده‌های جاوااسکریپت کاربری خود را ویرایش کنید',
+'right-viewmywatchlist' => 'فهرست پیگیری‌های خود را ببینید',
+'right-editmywatchlist' => 'فهرست پیگیری‌های خود را ویرایش کنید. توجه داشته باشید برخی از اقدامات حتی بدون این دسترسی هم صفحه‌ها را اضافه می‌کنند.',
+'right-viewmyprivateinfo' => 'داده‌های خصوصی خود را ببینید (مانند رایانشانی و نام واقعی)',
+'right-editmyprivateinfo' => 'داده‌های خصوصی خود را ویرایش کنید (مانند رایانشانی و نام واقعی)',
+'right-editmyoptions' => 'ترجیحات خود را ویرایش',
 'right-rollback' => 'واگردانی سریع ویرایش‌های آخرین کاربری که یک صفحه را ویرایش کرده‌است',
 'right-markbotedits' => 'علامت زدن ویرایش‌های واگردانی شده به عنوان ویرایش ربات',
 'right-noratelimit' => 'تاثیر نپذیرفتن از محدودیت سرعت',
@@ -1793,12 +1857,17 @@ $1",
 'action-userrights-interwiki' => 'ویرایش اختیارات کاربری کاربران یک ویکی دیگر',
 'action-siteadmin' => 'قفل کردن و باز کردن پایگاه داده',
 'action-sendemail' => 'ارسال ایمیل',
+'action-editmywatchlist' => 'فهرست پیگیری‌های خود را ویرایش کنید',
+'action-viewmywatchlist' => 'فهرست پیگیری‌های خود را ببینید',
+'action-viewmyprivateinfo' => 'اطلاعات خصوصی خود را ببینید',
+'action-editmyprivateinfo' => 'اطلاعات خصوصی خود را ویرایش کنید',
 
 # Recent changes
 'nchanges' => '$1 تغییر',
 'recentchanges' => 'تغییرات اخیر',
 'recentchanges-legend' => 'گزینه‌های تغییرات اخیر',
 'recentchanges-summary' => 'آخرین تغییرات ویکی را در این صفحه پی‌گیری کنید.',
+'recentchanges-noresult' => 'هیچ تغییری در طول دورهٔ تعیین‌شده با این معیارها هم‌خوانی نداشت.',
 'recentchanges-feed-description' => 'آخرین تغییرات ویکی را در این خوراک پی‌گیری کنید.',
 'recentchanges-label-newpage' => 'این ویرایش صفحه‌ای جدید ایجاد کرد',
 'recentchanges-label-minor' => 'این ویرایش جزئی‌است',
@@ -1835,7 +1904,6 @@ $1",
 'recentchangeslinked-feed' => 'تغییرات مرتبط',
 'recentchangeslinked-toolbox' => 'تغییرات مرتبط',
 'recentchangeslinked-title' => 'تغییرات مرتبط با $1',
-'recentchangeslinked-noresult' => 'در بازهٔ زمانی داده‌شده تغییری در صفحه‌های پیوندداده رخ نداده‌است.',
 'recentchangeslinked-summary' => "در زیر فهرستی از تغییرات اخیر صفحه‌های پیوند داده شده از این صفحه (یا اعضای رده مورد نظر) را می‌بینید.
 صفحه‌هایی که در [[Special:Watchlist|فهرست پی‌گیری‌هایتان]] باشند به صورت '''پررنگ''' نشان داده می‌شوند.",
 'recentchangeslinked-page' => 'نام صفحه:',
@@ -1847,7 +1915,7 @@ $1",
 'reuploaddesc' => 'بازگشت به فرم بارگذاری',
 'upload-tryagain' => 'ارسال توضیحات تغییر یافته پرونده',
 'uploadnologin' => 'به سامانه وارد نشده‌اید',
-'uploadnologintext' => 'برای بارگذاری پرونده‌ها باید [[Special:UserLogin|به سامانه وارد شوید]].',
+'uploadnologintext' => 'برای بارگذاری پرونده باید $1.',
 'upload_directory_missing' => 'شاخهٔ بارگذاری ($1) وجود ندارد و قابل ایجاد نیست.',
 'upload_directory_read_only' => 'شاخهٔ بارگذاری ($1) از طرف سرور وب قابل نوشتن نیست.',
 'uploaderror' => 'خطای بارگذاری',
@@ -2484,10 +2552,9 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization را ببینید.',
 'unwatchthispage' => 'توقف پی‌گیری',
 'notanarticle' => 'صفحه محتوایی نیست',
 'notvisiblerev' => 'آخرین نسخه توسط کاربری دیگر حذف شده‌است',
-'watchnochange' => 'هیچ یک از موارد در حال پی‌گیری شما در دورهٔ زمانی نمایش‌یافته ویرایش نشده است.',
 'watchlist-details' => 'بدون احتساب صفحه‌های بحث، {{PLURAL:$1|$1 صفحه|$1 صفحه}} در فهرست پی‌گیری‌های شما قرار {{PLURAL:$1|دارد|دارند}}.',
-'wlheader-enotif' => '*اطلاع‌رسانی از طریق رایانامه امکان‌پذیر است.',
-'wlheader-showupdated' => "*صفحه‌هایی که پس از آخرین سرزدنتان به آنها تغییر کرده‌اند '''پررنگ''' نشان داده شده‌اند.",
+'wlheader-enotif' => 'آگاه‌سازی رایانامه‌ای فعال است.',
+'wlheader-showupdated' => "صفحه‌هایی که پس از آخرین بازدید شما تغییر کرده‌اند '''پررنگ''' نمایش داده شده‌اند.",
 'watchmethod-recent' => 'بررسی ویرایش‌های اخیر برای صفحه‌های مورد پی‌گیری',
 'watchmethod-list' => 'بررسی صفحه‌های مورد پی‌گیری برای ویرایش‌های اخیر',
 'watchlistcontains' => 'فهرست پی‌گیری‌های شما حاوی $1 {{PLURAL:$1|صفحه|صفحه}} است.',
@@ -2595,7 +2662,7 @@ $PAGEINTRO $NEWPAGE
 آخرین ویرایش توسط [[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]] انجام داده بود واگردانده شد',
-'revertpage-nouser' => 'ویرایش‌های انجام‌شده توسط (نام کاربری حذف شده‌است) به آخرین ویرایش [[User:$1|$1]] واگردانی شد.',
+'revertpage-nouser' => 'ویرایش‌های انجام‌شده توسط (کاربری پنهان شده) به آخرین ویرایش [[User:$1|$1]] واگردانی شد.',
 'rollback-success' => 'ویرایش‌های $1 واگردانی شد؛
 صفحه به آخرین ویرایش $2 برگردانده شد.',
 
@@ -2909,6 +2976,7 @@ $1',
 'sorbsreason' => 'نشانی آی‌پی شما توسط DNSBL مورد استفاده {{SITENAME}} به عنوان یک پروکسی باز گزارش شده‌است.',
 'sorbs_create_account_reason' => 'نشانی آی‌پی شما توسط DNSBL مورد استفاده {{SITENAME}} به عنوان یک پروکسی باز گزارش شده‌است.
 شما اجازهٔ ساختن حساب کاربری ندارید.',
+'xffblockreason' => 'نشانی آی‌پی در X-Forwarded-For header موجود است و پروکسی شما یا سروری که از آن استفاده می‌کنید بسته‌شده‌است. دلیل بسته‌شدن: $1',
 'cant-block-while-blocked' => 'در مدتی که دسترسی شما بسته است نمی‌توانید دسترسی کاربران دیگر را قطع کنید.',
 'cant-see-hidden-user' => 'کاربری که می‌خواهید ببندید قبلاً بسته شده و پنهان گردیده است. چون شما دسترسی پنهان کردن کاربران را ندارید، نمی‌توانید قطع دسترسی کاربر را ببینید یا ویرایش کنید.',
 'ipbblocked' => 'شما نمی‌توانید دسترسی دیگر کاربران را ببندید یا باز کنید زیرا دسترسی خودتان بسته است.',
@@ -2977,7 +3045,7 @@ $1',
 'cant-move-user-page' => 'شما اجازه ندارید صفحه‌های کاربری سرشاخه را انتقال دهید.',
 'cant-move-to-user-page' => 'شما اجازه ندارید که یک صفحه را به یک صفحهٔ کاربر انتقال دهید (به استثنای زیر صفحه‌های کاربری).',
 'newtitle' => 'به عنوان جدید',
-'move-watch' => 'Ù¾Û\8câ\80\8cÚ¯Û\8cرÛ\8c Ø§Û\8cÙ\86 ØµÙ\81Ø­Ù\87',
+'move-watch' => 'Ù¾Û\8câ\80\8cÚ¯Û\8cرÛ\8c ØµÙ\81Ø­Ù\87â\80\8cÙ\87اÛ\8c Ù\85بدأ Ù\88 Ù\85Ù\82صد',
 'movepagebtn' => 'صفحه منتقل شود',
 'pagemovedsub' => 'انتقال با موفقیت انجام شد',
 'movepage-moved' => "'''«$1» به «$2» منتقل شد'''",
@@ -3075,6 +3143,8 @@ $1',
 'thumbnail-more' => 'بزرگ‌کردن',
 'filemissing' => 'پرونده وجود ندارد',
 'thumbnail_error' => 'خطا در ایجاد بندانگشتی: $1',
+'thumbnail_error_remote' => 'پیام خطای  $1 :
+$2',
 'djvu_page_error' => 'صفحهٔ DjVu خارج از حدود مجاز',
 'djvu_no_xml' => 'امکان پیدا کردن پروندهٔ XML برای استفادهٔ DjVu وجود نداشت.',
 'thumbnail-temp-create' => 'نمی‌توان پروندهٔ بندانگشتی موقت را ساخت',
@@ -3185,7 +3255,7 @@ $1',
 'tooltip-n-mainpage' => 'مشاهدهٔ صفحهٔ اصلی',
 'tooltip-n-mainpage-description' => 'مشاهدهٔ صفحهٔ اصلی',
 'tooltip-n-portal' => 'پیرامون پروژه، آنچه می‌توانید انجام دهید و اینکه چه چیز را کجا پیدا کنید',
-'tooltip-n-currentevents' => 'یافتن اطلاعات پیش‌زمینه پیرامون رویدادهای کنونی',
+'tooltip-n-currentevents' => 'یافتن اطلاعات پس‌زمینه پیرامون رویدادهای کنونی',
 'tooltip-n-recentchanges' => 'فهرستی از تغییرات اخیر ویکی',
 'tooltip-n-randompage' => 'آوردن یک صفحهٔ تصادفی',
 'tooltip-n-help' => 'مکانی برای دریافتن',
@@ -3381,6 +3451,7 @@ $1',
 'minutes' => '{{PLURAL: $1|دقیقه|دقیقه}}',
 'hours' => '{{PLURAL: $1|ساعت|ساعت}}',
 'days' => '{{PLURAL: $1|روز|روز}}',
+'weeks' => '{{PLURAL:$1|$1 هفته|$1 هفته}}',
 'months' => '{{PLURAL:$1|$1 ماه|}}',
 'years' => '{{PLURAL:$1|$1 سال|}}',
 'ago' => '$1 پیش',
@@ -4059,7 +4130,6 @@ $5
 'version-other' => 'غیره',
 'version-mediahandlers' => 'به‌دست‌گیرنده‌های رسانه‌ها',
 'version-hooks' => 'قلاب‌ها',
-'version-extension-functions' => 'عملگرهای افزونه',
 'version-parser-extensiontags' => 'برچسب‌های افزونه تجزیه‌گر',
 'version-parser-function-hooks' => 'قلاب‌های عملگر تجزیه‌گر',
 'version-hook-name' => 'نام قلاب',
@@ -4084,6 +4154,18 @@ $5
 'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath مسیر مقاله]',
 'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath مسیر اسکریپت]',
 
+# Special:Redirect
+'redirect' => 'تغییرمسیر توسط پرونده، کاربر یا شناسهٔ نسخه',
+'redirect-legend' => 'تغییرمسیر به یک پرونده یا صفحه',
+'redirect-summary' => 'این صفحهٔ ویژه به پرونده (نام پرونده داده‌شده)، صفحه (شماره شناسهٔ صفحه داده‌شده) یا صفحهٔ کاربری (شناسهٔ عددی کاربری داده‌شده) تغییرمسیر می‌یابد',
+'redirect-submit' => 'برو',
+'redirect-lookup' => 'جستجو:',
+'redirect-value' => 'مقدار:',
+'redirect-user' => 'شناسهٔ کاربر',
+'redirect-revision' => 'نسخهٔ صفحه',
+'redirect-file' => 'نام پرونده',
+'redirect-not-exists' => 'مقدار پیدا نشد',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'جستجو برای پرونده‌های تکراری',
 'fileduplicatesearch-summary' => 'جستجو برای پرونده‌های تکراری بر اساس مقدار درهم‌شدهٔ آن‌ها صورت می‌گیرد.',
@@ -4131,6 +4213,7 @@ $5
 'tags' => 'برچسب‌های تغییر مجاز',
 'tag-filter' => 'پالایش [[Special:Tags|برچسب‌ها]]:',
 'tag-filter-submit' => 'پالایه',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|برچسب|برچسب}}]]: $2)',
 'tags-title' => 'برچسب‌ها',
 'tags-intro' => 'این صفحه فهرستی‌است از برچسب‌هایی که نرم‌افزار با آن‌ها ویرایش‌ها را علامت‌گذری می‌کند، به همراه معانی آن‌ها.',
 'tags-tag' => 'نام برچسب',
@@ -4173,23 +4256,26 @@ $5
 'htmlform-submit' => 'ارسال',
 'htmlform-reset' => 'خنثی کردن تغییرات',
 'htmlform-selectorother-other' => 'دیگر',
+'htmlform-no' => 'نه',
+'htmlform-yes' => 'بله',
+'htmlform-chosen-placeholder' => 'یک گزینه را انتخاب کنید',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 با پشتیبانی از جستجو در متن کامل',
 'sqlite-no-fts' => '$1 بدون پشتیبانی از جستجو در متن کامل',
 
 # New logging system
-'logentry-delete-delete' => '$1 $3 را حذف کرد',
-'logentry-delete-restore' => '$1 $3 را احیا کرد',
-'logentry-delete-event' => '$1 پیدایی {{PLURAL:$5|یک مورد سیاهه|$5 مورد سیاهه}} را در $3 تغییر داد: $4',
-'logentry-delete-revision' => '$1 پیدایی {{PLURAL:$5|یک نسخه|$5 نسخه}} صفحه $3 را تغییر داد: $4',
-'logentry-delete-event-legacy' => '$1 پیدایی موارد سیاهه را در $3 تغییر داد',
-'logentry-delete-revision-legacy' => '$1 پیدایی نسخه‌های $3 را تغییر داد',
-'logentry-suppress-delete' => '$1 $3 را فرونشانی کرد',
-'logentry-suppress-event' => '$1 پیدایی {{PLURAL:$5|یک مورد سیاهه|$5 مورد سیاهه}} را در $3 مخفیانه تغییر داد: $4',
-'logentry-suppress-revision' => '$1 پیدایی {{PLURAL:$5|یک نسخه|$5 نسخه}} صفحه $3 را مخفیانه تغییر داد: $4',
-'logentry-suppress-event-legacy' => '$1 پیدایی موارد سیاهه را در $3 مخفیانه تغییر داد',
-'logentry-suppress-revision-legacy' => '$1 پیدایی نسخه‌های $3 را مخفیانه تغییر داد',
+'logentry-delete-delete' => '$1 صفحهٔ $3 را {{GENDER:$2|حذف کرد}}',
+'logentry-delete-restore' => '$1 صفحهٔ $3 را {{GENDER:$2|احیا کرد}}',
+'logentry-delete-event' => '$1 پیدایی {{PLURAL:$5|یک مورد سیاهه|$5 مورد سیاهه}} را در $3 {{GENDER:$2|تغییر داد}} : $4',
+'logentry-delete-revision' => '$1 پیدایی {{PLURAL:$5|یک نسخه|$5 نسخه}} صفحه $3 را {{GENDER:$2|تغییر داد}}: $4',
+'logentry-delete-event-legacy' => '$1 پیدایی موارد سیاهه را در $3 {{GENDER:$2|تغییر داد}}',
+'logentry-delete-revision-legacy' => '$1 پیدایی نسخه‌های $3 را {{GENDER:$2|تغییر داد}}',
+'logentry-suppress-delete' => '$1 $3 را {{GENDER:$2| فرونشانی کرد}}',
+'logentry-suppress-event' => '$1 پیدایی {{PLURAL:$5|یک مورد سیاهه|$5 مورد سیاهه}} را در $3 مخفیانه {{GENDER:$2|تغییر داد}}: $4',
+'logentry-suppress-revision' => '$1 پیدایی {{PLURAL:$5|یک نسخه|$5 نسخه}} صفحه $3 را مخفیانه {{GENDER:$2|تغییر داد}}: $4',
+'logentry-suppress-event-legacy' => '$1 پیدایی موارد سیاهه را در $3 مخفیانه {{GENDER:$2|تغییر داد}}',
+'logentry-suppress-revision-legacy' => '$1 پیدایی نسخه‌های $3 را مخفیانه {{GENDER:$2|تغییر داد}}',
 'revdelete-content-hid' => 'محتوا را پنهان کرد',
 'revdelete-summary-hid' => 'خلاصه ویرایش را پنهان کرد',
 'revdelete-uname-hid' => 'نام کاربری را پنهان کرد',
@@ -4198,20 +4284,20 @@ $5
 'revdelete-uname-unhid' => 'نام کاربری را آشکار کرد',
 'revdelete-restricted' => 'مدیران را محدود کرد',
 'revdelete-unrestricted' => 'محدودیت مدیران را لغو کرد',
-'logentry-move-move' => '$1 صفحهٔ $3 را به $4 منتقل کرد',
-'logentry-move-move-noredirect' => '$1 صفحهٔ $3 را بدون برجای‌گذاشتن تغییرمسیر به $4 منتقل کرد',
-'logentry-move-move_redir' => '$1 صفحهٔ $3 را به $4 که تغییرمسیر بود منتقل کرد',
-'logentry-move-move_redir-noredirect' => '$1 صفحهٔ $3 را بدون برجای‌گذاشتن تغییرمسیر به $4 که تغییرمسیر بود منتقل کرد',
-'logentry-patrol-patrol' => '$1 نسخه $4 صفحه $3 را به عنوان گشت خورده علامت زد',
-'logentry-patrol-patrol-auto' => '$1 نسخه $4 صفحه $3 را به طور خودکار به عنوان گشت خورده علامت زد',
-'logentry-newusers-newusers' => 'حساب کاربری $1 ایجاد شد',
-'logentry-newusers-create' => 'حساب کاربری $1 ایجاد شد',
-'logentry-newusers-create2' => 'حساب کاربری $3 توسط $1 ایجاد شد',
-'logentry-newusers-byemail' => 'حساب کاربری  $3  توسط $1 ایجاد شد و رمز عبور به وسیلهٔ ایمیل ارسال شد',
-'logentry-newusers-autocreate' => 'حساب $1  به شکل خودکار ساخته شد',
-'logentry-rights-rights' => '$1 عضویت $3 را از گروه $4 به $5 تغییر داد',
-'logentry-rights-rights-legacy' => '$1 گروه عضویت $3 را تغییر داد',
-'logentry-rights-autopromote' => '$1 به طور خودکار از $4 به $5 ارتقا یافت',
+'logentry-move-move' => '$1 صفحهٔ $3 را به $4 {{GENDER:$2|منتقل کرد}}',
+'logentry-move-move-noredirect' => '$1 صفحهٔ $3 را بدون برجای‌گذاشتن تغییرمسیر به $4 {{GENDER:$2|منتقل کرد}}',
+'logentry-move-move_redir' => '$1 صفحهٔ $3 را به $4 که تغییرمسیر بود {{GENDER:$2|منتقل کرد}}',
+'logentry-move-move_redir-noredirect' => '$1 صفحهٔ $3 را بدون برجای‌گذاشتن تغییرمسیر به $4 که تغییرمسیر بود {{GENDER:$2|منتقل کرد}}',
+'logentry-patrol-patrol' => '$1 نسخه $4 صفحه $3 را به عنوان گشت خورده {{GENDER:$2|علامت زد}}',
+'logentry-patrol-patrol-auto' => '$1 نسخه $4 صفحه $3 را به طور خودکار به عنوان گشت خورده {{GENDER:$2|علامت زد}}',
+'logentry-newusers-newusers' => 'حساب کاربری $1 {{GENDER:$2|ایجاد شد}}',
+'logentry-newusers-create' => 'حساب کاربری $1 {{GENDER:$2|ایجاد شد}}',
+'logentry-newusers-create2' => 'حساب کاربری $3 توسط $1 {{GENDER:$2|ایجاد شد}}',
+'logentry-newusers-byemail' => 'حساب کاربری  $3  توسط $1 {{GENDER:$2|ایجاد شد}} و رمز عبور به وسیلهٔ ایمیل ارسال شد',
+'logentry-newusers-autocreate' => 'حساب $1  به شکل خودکار {{GENDER:$2|ایجاد شد}}',
+'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|ارتقاء داد}}',
 'rightsnone' => '(هیچ)',
 
 # Feedback
@@ -4261,7 +4347,7 @@ $5
 'api-error-mustbeloggedin' => 'برای بارگذاری پرونده‌ها شما باید به سامانه وارد شوید.',
 'api-error-mustbeposted' => 'خطای داخلی: درخواست باید از روش POST HTTP ارسال گردد.',
 'api-error-noimageinfo' => 'بارگذاری موفق بود، ولی کارساز هیچ اطلاعاتی دربارهٔ پرونده به ما نداد.',
-'api-error-nomodule' => 'خطاÛ\8c Ø¯Ø§Ø®Ù\84Û\8c: Ù\87Û\8cÚ\86 Ù\85اÚ\98Ù\88Ù\84 بارگذاری تنظیم نشده‌است.',
+'api-error-nomodule' => 'خطاÛ\8c Ø¯Ø§Ø®Ù\84Û\8c: Ù¾Ù\88دÙ\85اÙ\86 بارگذاری تنظیم نشده‌است.',
 'api-error-ok-but-empty' => 'خطای داخلی : پاسخی از سرور دریافت نشد.',
 'api-error-overwrite' => 'جای نوشتن یک پرونده موجود مجاز نیست.',
 'api-error-stashfailed' => 'خطای داخلی: کارساز نمی‌تواند پرونده موقت را ذخیره کند.',
index 55a9f1f..90dfd70 100644 (file)
@@ -12,6 +12,7 @@
  * @author Cimon Avaro
  * @author Crt
  * @author ElmA
+ * @author Geitost
  * @author Harriv
  * @author Hyperborean
  * @author Jaakonam
@@ -313,7 +314,7 @@ $linkTrail = '/^([a-zäö]+)(.*)$/sDu';
 
 $messages = array(
 # User preference toggles
-'tog-underline' => 'Linkkien alleviivaus',
+'tog-underline' => 'Linkkien alleviivaus:',
 'tog-justify' => 'Tasaa kappaleet',
 'tog-hideminor' => 'Piilota pienet muutokset tuoreet muutokset -listasta',
 'tog-hidepatrolled' => 'Piilota tarkastetut muutokset tuoreet muutokset -listasta',
@@ -420,6 +421,18 @@ $messages = array(
 'oct' => 'lokakuu',
 'nov' => 'marraskuu',
 'dec' => 'joulukuu',
+'january-date' => '$1. tammikuuta',
+'february-date' => '$1. helmikuuta',
+'march-date' => '$1. maaliskuuta',
+'april-date' => '$1. huhtikuuta',
+'may-date' => '$1. toukokuuta',
+'june-date' => '$1. kesäkuuta',
+'july-date' => '$1. heinäkuuta',
+'august-date' => '$1. elokuuta',
+'september-date' => '$1. syyskuuta',
+'october-date' => '$1. lokakuuta',
+'november-date' => '$1. marraskuuta',
+'december-date' => '$1. joulukuuta',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Luokka|Luokat}}',
@@ -501,6 +514,7 @@ $messages = array(
 'create-this-page' => 'Luo tämä sivu',
 'delete' => 'Poista',
 'deletethispage' => 'Poista tämä sivu',
+'undeletethispage' => 'Palauta tämä sivu',
 'undelete_short' => 'Palauta {{PLURAL:$1|yksi muokkaus|$1 muokkausta}}',
 'viewdeleted_short' => 'Näytä {{PLURAL:$1|poistettu muokkaus|$1 poistettua muokkausta}}',
 'protect' => 'Suojaa',
@@ -554,7 +568,6 @@ $1',
 'disclaimers' => 'Vastuuvapaus',
 'disclaimerpage' => 'Project:Vastuuvapaus',
 'edithelp' => 'Muokkausohjeet',
-'edithelppage' => 'Help:Kuinka sivuja muokataan',
 'helppage' => 'Help:Sisällys',
 'mainpage' => 'Etusivu',
 'mainpage-description' => 'Etusivu',
@@ -695,6 +708,10 @@ $2',
 'namespaceprotected' => "Et voi muokata sivuja nimiavaruudessa '''$1'''.",
 'customcssprotected' => 'Sinulla ei ole oikeutta muuttaa tätä CSS-sivua, koska se sisältää toisen käyttäjän henkilökohtaisia asetuksia.',
 'customjsprotected' => 'Sinulla ei ole oikeutta muuttaa tätä JavaScript-sivua, koska se sisältää toisen käyttäjän henkilökohtaisia asetuksia.',
+'mycustomcssprotected' => 'Sinulla ei ole oikeutta muokata tätä CSS-sivua.',
+'mycustomjsprotected' => 'Sinulla ei ole oikeutta muokata tätä JavaScript-sivua.',
+'myprivateinfoprotected' => 'Sinulla ei ole oikeutta muokata omia tietojasi.',
+'mypreferencesprotected' => 'Sinulla ei ole oikeutta muokata omia asetuksiasi.',
 'ns-specialprotected' => 'Toimintosivuja ei voi muokata.',
 'titleprotected' => "Käyttäjä [[User:$1|$1]] on suojannut tämän sivunimen, ja sivua ei voi luoda.
 Syynä on: ''$2''.",
@@ -722,6 +739,7 @@ Huomaa, että jotkut sivut saattavat näkyä edelleen kuin olisit kirjautunut si
 'yourname' => 'Käyttäjätunnus',
 'userlogin-yourname' => 'Käyttäjätunnus',
 'userlogin-yourname-ph' => 'Kirjoita käyttäjätunnus',
+'createacct-another-username-ph' => 'Lisää käyttäjätunnus',
 'yourpassword' => 'Salasana',
 'userlogin-yourpassword' => 'Salasana',
 'userlogin-yourpassword-ph' => 'Kirjoita salasana',
@@ -746,7 +764,7 @@ Huomaa, että jotkut sivut saattavat näkyä edelleen kuin olisit kirjautunut si
 'notloggedin' => 'Et ole kirjautunut',
 'userlogin-noaccount' => 'Eikö sinulla vielä ole käyttäjätunnusta?',
 'userlogin-joinproject' => 'Liity {{GRAMMAR:illative|{{SITENAME}}}}',
-'nologin' => "Jos sinulla ei ole vielä käyttäjätunnusta, '''$1'''.",
+'nologin' => 'Jos sinulla ei ole vielä käyttäjätunnusta, $1.',
 'nologinlink' => 'voit luoda sellaisen',
 'createaccount' => 'Luo uusi käyttäjätunnus',
 'gotaccount' => "Jos sinulla on jo tunnus, voit '''$1'''.",
@@ -756,9 +774,11 @@ Huomaa, että jotkut sivut saattavat näkyä edelleen kuin olisit kirjautunut si
 'helplogin-url' => 'Help:Sisäänkirjautuminen',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Auta sisäänkirjautumisessa]]',
 'createacct-join' => 'Kirjoita tietosi alle.',
+'createacct-another-join' => 'Lisää uuden käyttäjätunnuksen tiedot alle.',
 'createacct-emailrequired' => 'Sähköpostiosoite',
 'createacct-emailoptional' => 'Sähköpostiosoite (vapaaehtoinen)',
 'createacct-email-ph' => 'Anna sähköpostiosoitteesi',
+'createacct-another-email-ph' => 'Lisää sähköpostiosoite',
 'createaccountmail' => 'Käytä satunnaista väliaikaissalasanaa ja lähetä se alla määritettyyn sähköpostiosoitteeseen',
 'createacct-realname' => 'Oikea nimi (valinnainen)',
 'createaccountreason' => 'Syy',
@@ -767,6 +787,7 @@ Huomaa, että jotkut sivut saattavat näkyä edelleen kuin olisit kirjautunut si
 'createacct-captcha' => 'Turvatarkastus',
 'createacct-imgcaptcha-ph' => 'Kirjoita teksti, jonka näet edellä',
 'createacct-submit' => 'Luo tunnus',
+'createacct-another-submit' => 'Luo toinen käyttäjätunnus',
 'createacct-benefit-heading' => '{{SITENAME}} on sinun kaltaisesi ihmisten tekemä.',
 'createacct-benefit-body1' => '{{PLURAL:$1|muokkaus|muokkausta}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|sivu|sivua}}',
@@ -813,7 +834,7 @@ Tästä johtuen tästä IP-osoitteesta ei voi tällä hetkellä luoda uusia tunn
 'cannotchangeemail' => 'Tunnusten sähköpostiosoitteita ei voi muuttaa tässä wikissä.',
 'emaildisabled' => 'Tältä sivustolta ei voi lähettää sähköpostia.',
 'accountcreated' => 'Käyttäjätunnus luotiin',
-'accountcreatedtext' => 'Käyttäjän $1 käyttäjätunnus luotiin.',
+'accountcreatedtext' => 'Käyttäjätunnus [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|keskustelu]]) luotiin.',
 'createaccount-title' => 'Tunnuksen luominen {{GRAMMAR:illative|{{SITENAME}}}}',
 'createaccount-text' => 'Joku on luonut tunnuksen $2 {{GRAMMAR:illative|{{SITENAME}}}} ($4).
 Tunnuksen $2 salasana on $3. Kirjaudu sisään ja vaihda salasanasi.
@@ -852,11 +873,11 @@ Olet saattanut jo onnistuneesti vaihtaa salasanasi tai pyytää uutta väliaikai
 
 # Special:PasswordReset
 'passwordreset' => 'Salasanan alustus',
-'passwordreset-text' => 'Täytä tämä lomake vaihtaaksesi salasanasi.',
+'passwordreset-text-one' => 'Täytä tämä lomake vaihtaaksesi salasanasi.',
+'passwordreset-text-many' => '{{PLURAL:$1|Täytä yksi datakentistä alustaaksesi salasanasi.}}',
 'passwordreset-legend' => 'Salasanan vaihto',
 'passwordreset-disabled' => 'Salasanojen alustus ei ole mahdollista tässä wikissä.',
 'passwordreset-emaildisabled' => 'Sähköpostitoiminnot on poistettu käytöstä tässä wikissä.',
-'passwordreset-pretext' => '{{PLURAL:$1||Kirjoita jokin jäljempänä pyydetty tieto}}',
 'passwordreset-username' => 'Käyttäjätunnus',
 'passwordreset-domain' => 'Verkkotunnus',
 'passwordreset-capture' => 'Näytä lähetettävä sähköpostiviesti',
@@ -886,7 +907,7 @@ voit jättää tämän viestin huomiotta ja jatkaa vanhan salasanan käyttöä.'
 Väliaikainen salasana: $2',
 'passwordreset-emailsent' => 'Salasananpalautusviesti on lähetetty.',
 'passwordreset-emailsent-capture' => 'Salasananpalautusviesti on lähetetty, se näkyy myös alla.',
-'passwordreset-emailerror-capture' => 'Alla näytettävä sähköpostiviesti luotiin, mutta sen lähettäminen käyttäjälle epäonnistui: $1',
+'passwordreset-emailerror-capture' => 'Allaoleva sähköpostiviesti luotiin, mutta sen lähettäminen {{GENDER:$2|käyttäjälle}} epäonnistui: $1',
 
 # Special:ChangeEmail
 'changeemail' => 'Muuta sähköpostiosoitetta',
@@ -1080,6 +1101,7 @@ Harkitse, kannattaako sivua luoda uudelleen. Alla on tämän sivun poisto- ja si
 Se on ilmeisesti poistettu.',
 'edit-conflict' => 'Päällekkäinen muokkaus.',
 'edit-no-change' => 'Muokkauksesi sivuutettiin, koska tekstiin ei tehty mitään muutoksia.',
+'postedit-confirmation' => 'Muokkauksesi on tallennettu.',
 'edit-already-exists' => 'Uuden sivun luominen ei onnistunut.
 Se on jo olemassa.',
 'defaultmessagetext' => 'Viestin oletusteksti',
@@ -1087,7 +1109,7 @@ Se on jo olemassa.',
 'invalid-content-data' => 'Virheellinen sisältö',
 'content-not-allowed-here' => 'Sivun [[$2]] sisältö ei voi olla tyyppiä $1.',
 'editwarning-warning' => 'Tältä sivulta poistuminen saattaa aiheuttaa kaikkien tekemiesi muutosten katoamisen.
-Jos olet kirjautuneena sisään, voit poistaa tämän varoituksen käytöstä asetuksissa osiossa ”{{int:prefs-editing}}”.',
+Jos olet kirjautuneena sisään, voit poistaa tämän varoituksen käytöstä asetuksissa osiossa »Muokkaus».',
 
 # Content models
 'content-model-wikitext' => 'wikiteksti',
@@ -1121,6 +1143,7 @@ Nämä muuttujat on jätetty käsittelemättä.",
 'undo-failure' => 'Muokkausta ei voitu kumota välissä olevien ristiriitaisten muutosten vuoksi. Kumoa muutokset käsin.',
 'undo-norev' => 'Muokkausta ei voitu perua, koska sitä ei ole olemassa tai se on poistettu.',
 'undo-summary' => 'Kumottu muokkaus $1, jonka teki [[Special:Contributions/$2|$2]] ([[User talk:$2|keskustelu]])',
+'undo-summary-username-hidden' => 'Kumoa muutos $1, jonka on tehnyt piilotettu käyttäjä',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Tunnuksen luominen epäonnistui',
@@ -1146,8 +1169,8 @@ Käyttäjän $3 antama syy on ''$2''",
 'histlegend' => 'Merkinnät: (nyk.) = eroavaisuudet nykyiseen versioon, (edell.) = eroavaisuudet edelliseen versioon, <span class="minor">p</span> = pieni muutos',
 'history-fieldset-title' => 'Selaa muutoshistoriaa',
 'history-show-deleted' => 'Vain poistetut',
-'histfirst' => 'Ensimmäiset',
-'histlast' => 'Viimeisimmät',
+'histfirst' => 'vanhimmat',
+'histlast' => 'uusimmat',
 'historysize' => '({{PLURAL:$1|1 tavu|$1 tavua}})',
 'historyempty' => '(tyhjä)',
 
@@ -1295,6 +1318,7 @@ Uuden ja vanhan sivun muutoksien pitää muodostaa jatkumo – ne eivät saa men
 'compareselectedversions' => 'Vertaile valittuja versioita',
 'showhideselectedversions' => 'Näytä tai piilota valitut versiot',
 'editundo' => 'kumoa',
+'diff-empty' => '(ei eroavaisuuksia)',
 'diff-multi' => '(Näytettyjen versioiden välissä on {{PLURAL:$1|yksi muokkaus|$1 versiota, jotka ovat {{PLURAL:$2|yhden käyttäjän tekemiä|$2 eri käyttäjän tekemiä}}}}.)',
 'diff-multi-manyusers' => '(Versioiden välissä on {{PLURAL:$1|yksi muu muokkaus|$1 muuta muokkausta, jotka on tehnyt {{PLURAL:$2|yksi käyttäjä|yli $2 eri käyttäjää}}}}.)',
 'difference-missing-revision' => '{{PLURAL:$2|Yhtä versiota|$2 versiota}} tästä vertailusta ($1) {{PLURAL:$2|ei}} löytynyt.
@@ -1324,7 +1348,6 @@ $1 {{int:pipe-separator}} $2',
 'searchmenu-legend' => 'Hakuasetukset',
 'searchmenu-exists' => "'''Tässä wikissä on sivu nimellä [[:$1]].'''",
 'searchmenu-new' => "'''Luo sivu ''[[:$1]]'' tähän wikiin.'''",
-'searchhelp-url' => 'Help:Sisällys',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Selaa sivuja tällä etuliitteellä]]',
 'searchprofile-articles' => 'Sisältösivut',
 'searchprofile-project' => 'Ohje- ja projektisivut',
@@ -1366,6 +1389,7 @@ Kokeile lisätä haun alkuun ''all:'', niin haku kohdistuu kaikkeen sisältöön
 'powersearch-togglenone' => 'Poista valinnat',
 'search-external' => 'Ulkoinen haku',
 'searchdisabled' => 'Tekstihaku on poistettu toistaiseksi käytöstä suuren kuorman vuoksi. Voit käyttää alla olevaa Googlen hakukenttää sivujen etsimiseen, kunnes haku tulee taas käyttöön. <small>Huomaa, että ulkopuoliset kopiot {{GRAMMAR:genitive|{{SITENAME}}}} sisällöstä eivät välttämättä ole ajan tasalla.</small>',
+'search-error' => 'Virhe ilmaantui haettaessa: $1',
 
 # Preferences page
 'preferences' => 'Asetukset',
@@ -1399,7 +1423,6 @@ Kokeile lisätä haun alkuun ''all:'', niin haku kohdistuu kaikkeen sisältöön
 'resetprefs' => 'Palauta tallennetut asetukset',
 'restoreprefs' => 'Palauta kaikki oletusasetuksiin',
 'prefs-editing' => 'Muokkaus',
-'prefs-edit-boxsize' => 'Muokkauskentän koko.',
 'rows' => 'Rivejä',
 'columns' => 'Sarakkeita',
 'searchresultshead' => 'Haku',
@@ -1410,9 +1433,6 @@ Kokeile lisätä haun alkuun ''all:'', niin haku kohdistuu kaikkeen sisältöön
 'recentchangesdays-max' => 'Enintään $1 {{PLURAL:$1|päivä|päivää}}',
 'recentchangescount' => 'Näytettävien muutoksien määrä oletuksena',
 'prefs-help-recentchangescount' => 'Tämä sisältää tuoreet muutokset, muutoshistoriat ja lokit.',
-'prefs-help-watchlist-token' => 'Tämän kentän täyttäminen salaisella avaimella tuottaa RSS-syötteen tarkkailulistastasi.
-Kaikki, jotka tietävät tähän kenttään kirjoitetun avaimen pystyvät lukemaan tarkkailulistaa, joten valitse turvallinen arvo.
-Tässä satunnaisesti tuotettu arvo, jota voit käyttää: $1',
 'savedprefs' => 'Asetuksesi tallennettiin onnistuneesti.',
 'timezonelegend' => 'Aikavyöhyke',
 'localtime' => 'Paikallinen aika',
@@ -1442,7 +1462,6 @@ Tässä satunnaisesti tuotettu arvo, jota voit käyttää: $1',
 'prefs-common-css-js' => 'Yhteiset CSS- ja JavaScript-sivut kaikille ulkoasuille',
 'prefs-reset-intro' => 'Voit käyttää tätä sivua palauttaaksesi kaikki asetuksesi sivuston oletusasetuksiin. Tätä ei voi kumota.',
 'prefs-emailconfirm-label' => 'Sähköpostin varmistus',
-'prefs-textboxsize' => 'Muokkauskentän koko',
 'youremail' => 'Sähköpostiosoite',
 'username' => '{{GENDER:$1|Käyttäjätunnus}}',
 'uid' => '{{GENDER:$1|Tunniste}}',
@@ -1471,7 +1490,9 @@ Tässä satunnaisesti tuotettu arvo, jota voit käyttää: $1',
 'prefs-signature' => 'Allekirjoitus',
 'prefs-dateformat' => 'Päiväyksen muoto',
 'prefs-timeoffset' => 'Aikavyöhyke',
-'prefs-advancedediting' => 'Lisäasetukset',
+'prefs-advancedediting' => 'Perusasetukset',
+'prefs-editor' => 'Muokkain',
+'prefs-preview' => 'Esikatselu',
 'prefs-advancedrc' => 'Lisäasetukset',
 'prefs-advancedrendering' => 'Lisäasetukset',
 'prefs-advancedsearchoptions' => 'Lisäasetukset',
@@ -1507,6 +1528,7 @@ Tässä satunnaisesti tuotettu arvo, jota voit käyttää: $1',
 'userrights-changeable-col' => 'Ryhmät, joita voit muuttaa',
 'userrights-unchangeable-col' => 'Ryhmät, joita et voi muuttaa',
 'userrights-conflict' => 'Päällekkäinen käyttöoikeuksien muutos! Ole hyvä ja tee muutoksesi uudestaan.',
+'userrights-removed-self' => 'Poistit onnistuneesti omat oikeutesi. Tämän myötä sinulla ei ole enää oikeutta käyttää tätä sivua.',
 
 # Groups
 'group' => 'Ryhmä',
@@ -1550,7 +1572,7 @@ Tässä satunnaisesti tuotettu arvo, jota voit käyttää: $1',
 'right-reupload-shared' => 'Korvata jaettuun mediavarastoon tallennettuja tiedostoja paikallisesti',
 'right-upload_by_url' => 'Tallentaa tiedostoja verkko-osoitteella',
 'right-purge' => 'Päivittää tiedoston välimuistitetun version ilman varmennussivua',
-'right-autoconfirmed' => 'Muokata osittain suojattuja sivuja',
+'right-autoconfirmed' => 'IP-pohjaiset nopeusrajoitukset eivät ole voimassa',
 'right-bot' => 'Kohdellaan automaattisena prosessina',
 'right-nominornewtalk' => 'Tehdä pieniä muokkauksia käyttäjien keskustelusivuille siten, että käyttäjälle ei ilmoiteta siitä uutena viestinä',
 'right-apihighlimits' => 'Käyttää korkeampia rajoja API-kyselyissä',
@@ -1562,7 +1584,7 @@ Tässä satunnaisesti tuotettu arvo, jota voit käyttää: $1',
 'right-deletedhistory' => 'Tarkastella poistettuja versiotietoja ilman niihin liittyvää sisältöä',
 'right-deletedtext' => 'Tarkastella poistettujen sivujen tekstiä ja muutoksia poistettujen versioiden välillä',
 'right-browsearchive' => 'Tarkastella poistettuja sivuja',
-'right-undelete' => 'Palauttaa sivuja',
+'right-undelete' => 'Palauttaa poistettuja sivuja',
 'right-suppressrevision' => 'Tarkastella ja palauttaa ylläpitäjiltä piilotettuja versioita',
 'right-suppressionlog' => 'Tarkastella yksityisiä lokeja',
 'right-block' => 'Asettaa toiselle käyttäjälle muokkausesto',
@@ -1571,12 +1593,20 @@ Tässä satunnaisesti tuotettu arvo, jota voit käyttää: $1',
 'right-ipblock-exempt' => 'Ohittaa IP-, automaattiset ja osoitealue-estot',
 'right-proxyunbannable' => 'Ohittaa automaattiset välityspalvelinestot',
 'right-unblockself' => 'Poistaa esto itseltään',
-'right-protect' => 'Muuttaa sivujen suojauksia ja muokata suojattuja sivuja',
-'right-editprotected' => 'Muokata suojattuja sivuja (pois lukien laajennettu sisällytyssuojaus)',
+'right-protect' => 'Muuttaa suojauksen tasoja ja muokata laajennetusti suojattuja sivuja',
+'right-editprotected' => 'Muokata sivuja, jotka on suojattu tasolle "{{int:protect-level-sysop}}"',
+'right-editsemiprotected' => 'Muokata sivuja, jotka on suojattu tasolle "{{int:protect-level-autoconfirmed}}"',
 'right-editinterface' => 'Muokata käyttöliittymätekstejä',
 'right-editusercssjs' => 'Muokata toisten käyttäjien CSS- ja JavaScript-tiedostoja',
 'right-editusercss' => 'Muokata toisten käyttäjien CSS-tiedostoja',
 'right-edituserjs' => 'Muokata toisten käyttäjien JavaScript-tiedostoja',
+'right-editmyusercss' => 'Muokata omia CSS-tiedostojaan',
+'right-editmyuserjs' => 'Muokata omia JavaScript-tiedostojaan',
+'right-viewmywatchlist' => 'Katsoa tarkkailulistaasi',
+'right-editmywatchlist' => 'Muokata tarkkailulistaasi. Huomaa, että jotkin toiminnot lisäävät yhä sivuja listallesi riippumatta tästä oikeudesta.',
+'right-viewmyprivateinfo' => 'Nähdä omat yksityiset tietosi (esim. sähköpostiosoite, oikea nimi)',
+'right-editmyprivateinfo' => 'Muokata omia yksityisiä tietojasi (esim. sähköpostiosoite, oikea nimi)',
+'right-editmyoptions' => 'Muokata omia asetuksiasi',
 'right-rollback' => 'Palauttaa nopeasti käyttäjän viimeisimmät muokkaukset sivuun',
 'right-markbotedits' => 'Kumota muokkauksia bottimerkinnällä',
 'right-noratelimit' => 'Ohittaa nopeusrajoitukset',
@@ -1638,12 +1668,17 @@ Tässä satunnaisesti tuotettu arvo, jota voit käyttää: $1',
 'action-userrights-interwiki' => 'muokata muiden wikien käyttäjien käyttöoikeuksia',
 'action-siteadmin' => 'lukita tai avata tietokantaa',
 'action-sendemail' => 'lähettää sähköpostia',
+'action-editmywatchlist' => 'muokata tarkkailulistaasi',
+'action-viewmywatchlist' => 'katsoa tarkkailulistaasi',
+'action-viewmyprivateinfo' => 'katsoa omia yksityisiä tietojasi',
+'action-editmyprivateinfo' => 'muokata omia yksityisiä tietojasi',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|muutos|muutosta}}',
 'recentchanges' => 'Tuoreet muutokset',
 'recentchanges-legend' => 'Tuoreiden muutosten asetukset',
 'recentchanges-summary' => 'Tällä sivulla voi seurata tuoreita {{GRAMMAR:illative|{{SITENAME}}}} tehtyjä muutoksia.',
+'recentchanges-noresult' => 'Ei muutoksia, jotka täyttävät nämä kriteerit valitun ajanjakson aikana.',
 'recentchanges-feed-description' => 'Tällä sivulla voi seurata tuoreita {{GRAMMAR:illative|{{SITENAME}}}} tehtyjä muutoksia.',
 'recentchanges-label-newpage' => 'Tämä muutos loi uuden sivun',
 'recentchanges-label-minor' => 'Tämä on pieni muutos',
@@ -1680,7 +1715,6 @@ Tässä satunnaisesti tuotettu arvo, jota voit käyttää: $1',
 'recentchangeslinked-feed' => 'Linkitettyjen sivujen muutokset',
 'recentchangeslinked-toolbox' => 'Linkitettyjen sivujen muutokset',
 'recentchangeslinked-title' => 'Sivulta $1 linkitettyjen sivujen muutokset',
-'recentchangeslinked-noresult' => 'Ei muutoksia linkitettyihin sivuihin annetulla aikavälillä.',
 'recentchangeslinked-summary' => "Tämä toimintosivu näyttää muutokset sivuihin, joihin on viitattu tältä sivulta. [[Special:Watchlist|Tarkkailulistallasi]] olevat sivut on '''lihavoitu'''.",
 'recentchangeslinked-page' => 'Sivu',
 'recentchangeslinked-to' => 'Näytä muutokset sivuihin, joilla on linkki annettuun sivuun',
@@ -1691,7 +1725,7 @@ Tässä satunnaisesti tuotettu arvo, jota voit käyttää: $1',
 'reuploaddesc' => 'Peruuta tallennus ja palaa tallennuslomakkeelle.',
 'upload-tryagain' => 'Lähetä muutettu tiedostokuvaus',
 'uploadnologin' => 'Et ole kirjautunut sisään',
-'uploadnologintext' => 'Sinun pitää olla [[Special:UserLogin|kirjautuneena sisään]], jotta voisit tallentaa tiedostoja.',
+'uploadnologintext' => 'Sinun pitää $1 tallentaaksesi tiedostoja.',
 'upload_directory_missing' => 'Tallennushakemisto $1 puuttuu, eikä palvelin pysty luomaan sitä.',
 'upload_directory_read_only' => 'Palvelimella ei ole kirjoitusoikeuksia tallennushakemistoon $1.',
 'uploaderror' => 'Tallennusvirhe',
@@ -1816,7 +1850,7 @@ $1',
 'upload-file-error' => 'Sisäinen virhe',
 'upload-file-error-text' => 'Väliaikaistiedoston luominen epäonnistui. Ota yhteyttä sivuston [[Special:ListUsers/sysop|ylläpitäjään]].',
 'upload-misc-error' => 'Virhe',
-'upload-misc-error-text' => 'Tiedoston etälähetys ei onnistunut. Varmista, että antamasi osoite on oikein ja toimiva. Jos virhe ei katoa, ota yhteyttä sivuston ylläpitäjään.',
+'upload-misc-error-text' => 'Tiedoston etälähetys ei onnistunut. Varmista, että antamasi osoite on oikein ja toimiva. Jos virhe ei katoa, ota yhteyttä sivuston [[Special:ListUsers/sysop|ylläpitäjään]].',
 'upload-too-many-redirects' => 'URL sisälsi liian monta ohjausta',
 'upload-unknown-size' => 'Tuntematon koko',
 'upload-http-error' => 'HTTP-virhe: $1',
@@ -2311,9 +2345,8 @@ Tulevaisuudessa sivuun ja sen keskustelusivuun tehtävät muutokset listataan t
 'unwatchthispage' => 'Lopeta tarkkailu',
 'notanarticle' => 'Ei ole sivu',
 'notvisiblerev' => 'Versio on poistettu',
-'watchnochange' => 'Valittuna ajanjaksona yhtäkään tarkkailemistasi sivuista ei muokattu.',
 'watchlist-details' => 'Tarkkailulistalla on {{PLURAL:$1|$1 sivu|$1 sivua}} keskustelusivuja mukaan laskematta.',
-'wlheader-enotif' => 'Sähköposti-ilmoitukset ovat käytössä.',
+'wlheader-enotif' => 'Sähköposti-ilmoitus on käytössä.',
 'wlheader-showupdated' => "Sivut, joita on muokattu viimeisen käyntisi jälkeen, on '''lihavoitu'''.",
 'watchmethod-recent' => 'tarkistetaan tuoreimpia muutoksia tarkkailluille sivuille',
 'watchmethod-list' => 'tarkistetaan tarkkailtujen sivujen tuoreimmat muutokset',
@@ -2524,7 +2557,7 @@ $1',
 'undelete-search-prefix' => 'Näytä sivut, jotka alkavat merkkijonolla:',
 'undelete-search-submit' => 'Hae',
 'undelete-no-results' => 'Poistoarkistosta ei löytynyt haettuja sivuja.',
-'undelete-filename-mismatch' => 'Tiedoston version, jonka aikaleima on $1 palauttaminen epäonnistui, koska tiedostonimi ei ole sama.',
+'undelete-filename-mismatch' => 'Tiedoston versiota, jonka aikaleima on $1, ei voi palauttaa, koska tiedostonimi ei ole sama.',
 'undelete-bad-store-key' => 'Tiedoston version, jonka aikaleima on $1 palauttaminen epäonnistui, koska tiedostoa ei ollut ennen poistoa.',
 'undelete-cleanup-error' => 'Käyttämättömän arkistotiedoston $1 poistaminen epäonnistui.',
 'undelete-missing-filearchive' => 'Tiedostoarkiston tunnuksen $1 hakeminen epäonnistui. Tiedosto on saatettu jo palauttaa.',
@@ -2550,13 +2583,13 @@ $1',
 'mycontris' => 'Omat muokkaukset',
 'contribsub2' => 'Käyttäjän $1 ($2) muokkaukset',
 'nocontribs' => 'Näihin ehtoihin sopivia muokkauksia ei löytynyt.',
-'uctop' => ' (uusin)',
+'uctop' => '(uusin)',
 'month' => 'Kuukausi',
 'year' => 'Vuosi',
 
 'sp-contributions-newbies' => 'Näytä uusien tulokkaiden muutokset',
-'sp-contributions-newbies-sub' => 'Uusien tulokkaiden muokkaukset',
-'sp-contributions-newbies-title' => 'Uusien tulokkaiden muokkaukset',
+'sp-contributions-newbies-sub' => 'Uusien käyttäjien muokkaukset',
+'sp-contributions-newbies-title' => 'Uusien käyttäjien muokkaukset',
 'sp-contributions-blocklog' => 'estot',
 'sp-contributions-deleted' => 'poistetut muokkaukset',
 'sp-contributions-uploads' => 'tallennukset',
@@ -2862,6 +2895,8 @@ Jos haluat muokata MediaWikin yleistä kotoistusta, käy [//www.mediawiki.org/wi
 'thumbnail-more' => 'Suurenna',
 'filemissing' => 'Tiedosto puuttuu',
 'thumbnail_error' => 'Pienoiskuvan luominen epäonnistui: $1',
+'thumbnail_error_remote' => 'Virheilmoitus kohteesta $1:
+$2',
 'djvu_page_error' => 'DjVu-tiedostossa ei ole pyydettyä sivua',
 'djvu_no_xml' => 'DjVu-tiedoston XML-vienti epäonnistui',
 'thumbnail-temp-create' => 'Väliaikaisen esikatselukuvan luonti epäonnistui',
@@ -3793,7 +3828,6 @@ Voit myös muokata listaa [[Special:EditWatchlist|tavalliseen tapaan]].',
 'version-other' => 'Muut',
 'version-mediahandlers' => 'Median käsittelijät',
 'version-hooks' => 'Kytköspisteet',
-'version-extension-functions' => 'Laajennusfunktiot',
 'version-parser-extensiontags' => 'Jäsentimen laajennustagit',
 'version-parser-function-hooks' => 'Jäsentimen laajennusfunktiot',
 'version-hook-name' => 'Kytköspisteen nimi',
@@ -3874,6 +3908,7 @@ Sinun olisi pitänyt saada [{{SERVER}}{{SCRIPTPATH}}/COPYING kopio GNU General P
 'tags' => 'Voimassa olevat muutosmerkinnät',
 'tag-filter' => '[[Special:Tags|Merkintäsuodatin]]',
 'tag-filter-submit' => 'Suodata',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Merkintä|Merkinnät}}]]: $2)',
 'tags-title' => 'Merkinnät',
 'tags-intro' => 'Tämä sivu luetteloi merkinnät, joilla ohjelmisto voi merkitä muokkauksia, ja niiden tarkoitukset.',
 'tags-tag' => 'Merkintänimi',
@@ -3917,6 +3952,7 @@ Sinun olisi pitänyt saada [{{SERVER}}{{SCRIPTPATH}}/COPYING kopio GNU General P
 'htmlform-selectorother-other' => 'Muu',
 'htmlform-no' => 'Ei',
 'htmlform-yes' => 'Kyllä',
+'htmlform-chosen-placeholder' => 'Valitse vaihtoehto',
 
 # SQLite database support
 'sqlite-has-fts' => '$1, jossa on tuki kokotekstihaulle',
@@ -3960,7 +3996,7 @@ Sinun olisi pitänyt saada [{{SERVER}}{{SCRIPTPATH}}/COPYING kopio GNU General P
 
 # Feedback
 'feedback-bugornote' => 'Jos voit kuvailla teknisen ongelman tarkasti – [$1 ilmoita ohjelmointivirheestä].
-Muussa tapauksessa voit käyttää alla olevaa helpompaa lomaketta. Kommenttisi lisätään sivulle [$3 $2], ja siinä on mukana käyttäjätunnus ja käyttämäsi selain.',
+Muussa tapauksessa voit käyttää alla olevaa helpompaa lomaketta. Kommenttisi lisätään sivulle [$3 $2], ja siinä on mukana käyttäjätunnuksesi.',
 'feedback-subject' => 'Otsikko',
 'feedback-message' => 'Viesti',
 'feedback-cancel' => 'Peruuta',
@@ -4031,4 +4067,7 @@ Muussa tapauksessa voit käyttää alla olevaa helpompaa lomaketta. Kommenttisi
 'duration-centuries' => '$1 {{PLURAL:$1|vuosisata|vuosisataa}}',
 'duration-millennia' => '$1 {{PLURAL:$1|vuosituhat|vuosituhatta}}',
 
+# Image rotation
+'rotate-comment' => 'Kuvaa käännettiin $1 aste{{PLURAL:$1||tta}} myötäpäivään',
+
 );
index e9738ea..9fd5ec3 100644 (file)
@@ -9,6 +9,7 @@
  *
  * @author Diupwijk
  * @author EileenSanda
+ * @author Geitost
  * @author Krun
  * @author Quackor
  * @author S.Örvarr.S
@@ -218,6 +219,18 @@ $messages = array(
 'oct' => 'okt',
 'nov' => 'nov',
 'dec' => 'des',
+'january-date' => 'Januar $1',
+'february-date' => 'Februar $1',
+'march-date' => 'Mars $1',
+'april-date' => 'Apríl $1',
+'may-date' => 'Maj $1',
+'june-date' => 'Juni $1',
+'july-date' => 'Juli $1',
+'august-date' => 'August $1',
+'september-date' => 'September $1',
+'october-date' => 'Oktober $1',
+'november-date' => 'November $1',
+'december-date' => 'Desember $1',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Bólkur|Bólkar}}',
@@ -299,6 +312,7 @@ $messages = array(
 'create-this-page' => 'Stovna hesa síðuna',
 'delete' => 'Strika',
 'deletethispage' => 'Strika hesa síðuna',
+'undeletethispage' => 'Endurskapað hesa síðuna',
 'undelete_short' => 'Ógilda striking av {{PLURAL:$1|einari rætting|$1 broytingum}}',
 'viewdeleted_short' => 'Vís {{PLURAL:$1|eina strikaða broyting|$1 strikaðar broytingar}}',
 'protect' => 'Friða',
@@ -352,7 +366,6 @@ $1',
 'disclaimers' => 'Fyrivarni',
 'disclaimerpage' => 'Project:Generelt fyrivarni',
 'edithelp' => 'Rættingarhjálp',
-'edithelppage' => 'Help:Rætting',
 'helppage' => 'Help:Innihald',
 'mainpage' => 'Forsíða',
 'mainpage-description' => 'Forsíða',
@@ -503,6 +516,8 @@ $2',
 'namespaceprotected' => 'Tú hevur ikki loyvi til at rætta síður í $1 navnateiginum.',
 'customcssprotected' => 'Tú hevur ikki loyvi til at rætta hesa CSS síðuna, tí hon inniheldur persónligar innstillingar hjá øðrum brúkara.',
 'customjsprotected' => 'Tú hevur ikki loyvir til at rætta hesa JavaScript síðuna, tí hon inniheldur persónligar innstillingar hjá øðrum brúkara.',
+'mycustomcssprotected' => 'Tú hevur ikki loyvi til at rætta hesa CSS síðuna.',
+'mycustomjsprotected' => 'Tú hevur ikki loyvi til at rætta hesa JavaScript síðuna.',
 'ns-specialprotected' => 'Serstakar síður kunnu ikki rættast.',
 'titleprotected' => '[[User:$1|$1]] hevur vart hetta heitið frá skapan.
 Givin orsøk er "\'\'$2\'\'".',
@@ -537,8 +552,8 @@ Gloym ikki at broyta tínar [[Special:Preferences|{{SITENAME}}-innstillingar]].'
 'createacct-yourpasswordagain' => 'Váttað loyniorðið',
 'createacct-yourpasswordagain-ph' => 'Skrivað loyniorðið enn einaferð',
 'remembermypassword' => 'Minst til logg inn hjá mær á hesum kaganum (í mesta lagi í $1 {{PLURAL:$1|dag|dagar}})',
-'userlogin-remembermypassword' => 'Minst til mín',
-'userlogin-signwithsecure' => 'Rita inn við tryggum ambætara',
+'userlogin-remembermypassword' => 'Lat meg vera innritaðan',
+'userlogin-signwithsecure' => 'Nýt trygt samband',
 'securelogin-stick-https' => 'Varðveit sambandið við HTTPS eftir logg inn',
 'yourdomainname' => 'Títt domene:',
 'password-change-forbidden' => 'Tú kanst ikki broyta loyniorð á hesi wiki.',
@@ -553,12 +568,13 @@ Gloym ikki at broyta tínar [[Special:Preferences|{{SITENAME}}-innstillingar]].'
 'notloggedin' => 'Ikki ritað inn',
 'userlogin-noaccount' => 'Hevur tú ikki nakra kontu?',
 'userlogin-joinproject' => 'Meldað teg til {{SITENAME}}',
-'nologin' => "Hevur tú ikki eina kontu? '''$1'''.",
+'nologin' => 'Hevur tú ikki eina kontu? $1.',
 'nologinlink' => 'Stovna eina kontu',
 'createaccount' => 'Stovna nýggja kontu',
 'gotaccount' => "Hevur tú longu eina kontu? '''$1'''.",
 'gotaccountlink' => 'Rita inn',
 'userlogin-resetlink' => 'Hevur tú gloymt tínar logg inn upplýsingar',
+'userlogin-resetpassword-link' => 'Nullstilla títt loyniorð',
 'helplogin-url' => 'Help:Innritan',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hjálp til innritan]]',
 'createacct-join' => 'Skrivað tínar upplýsingar niðanfyri.',
@@ -569,12 +585,14 @@ Gloym ikki at broyta tínar [[Special:Preferences|{{SITENAME}}-innstillingar]].'
 'createacct-realname' => 'Veruligt navn (valfrítt)',
 'createaccountreason' => 'Orsøk:',
 'createacct-reason' => 'Orsøk',
+'createacct-reason-ph' => 'Hví upprættar tú eina nýggja kontu',
 'createacct-captcha' => 'Trygdarkekk',
 'createacct-imgcaptcha-ph' => 'Skriva tekstin ið tú sært omanfyri',
+'createacct-submit' => 'Upprætta tína kontu',
 'createacct-benefit-heading' => '{{SITENAME}} er gjørd av fólki sum tær.',
-'createacct-benefit-body1' => 'rættingar',
-'createacct-benefit-body2' => 'síður',
-'createacct-benefit-body3' => 'seinastu høvundar',
+'createacct-benefit-body1' => '{{PLURAL:$1|rætting|rættingar}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|síða|síður}}',
+'createacct-benefit-body3' => 'seinasti/u {{PLURAL:$1|høvundur|høvundar}}',
 'badretype' => 'Loyniorðið tú hevur skriva er ikki rætt.',
 'userexists' => 'Brúkaranavnið sum tú valdi er longu í nýtslu.
 Vinarliga vel eitt annað navn.',
@@ -635,7 +653,7 @@ Vinarliga skriva t-post bústað í røttum formati ella lat handa teigin vera t
 'cannotchangeemail' => 'T-post adressur, sum eru knýttar at brúkarakontum, kunnu ikki broytast á hesi wiki.',
 'emaildisabled' => 'Henda heimasíðan kann ikki senda teldupostar.',
 'accountcreated' => 'Konto upprættað',
-'accountcreatedtext' => 'Brúkarakontan hjá $1 er nú upprættað.',
+'accountcreatedtext' => 'Henda brúkarakontan fyri [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|kjak]]) er nú upprættað.',
 'createaccount-title' => 'Upprætta brúkarakonto á {{SITENAME}}',
 'createaccount-text' => 'Onkur hevur stovnað eina konto fyri tína teldupost adressu á {{SITENAME}} ($4) nevnd "$2", við loyniorðinum "$3".
 Tú eigur at innrita og broyta loyniorðið nú.
@@ -671,14 +689,15 @@ Nú verður tú ritaður inn...',
 'resetpass-wrong-oldpass' => 'Ógyldug fyribils ella verandi loyniorð.
 Møguliga hevur tú longu broytt títt loyniorð ella biðið um eitt nýtt fyribils loyniorð.',
 'resetpass-temp-password' => 'Fyribils loyniorð',
+'resetpass-abort-generic' => 'Broyting av loyniorði bleiv avbrotin av einari víðkan.',
 
 # Special:PasswordReset
 'passwordreset' => 'Nullstilla loyniorðið',
-'passwordreset-text' => 'Útfyll hetta skjalið fyri at nullstilla títt loyniorð.',
+'passwordreset-text-one' => 'Útfyll henda teigin fyri at nullstilla títt loyniorð.',
+'passwordreset-text-many' => '{{PLURAL:$1|Skriva eitt av pettunum av dáta fyri at nullstilla títt loyniorð.}}',
 'passwordreset-legend' => 'Nulstilla loyniorðið',
 'passwordreset-disabled' => 'Tað ber ikki til at nullstilla loyniorðið á hesi wiki.',
 'passwordreset-emaildisabled' => 'Teldupost funksjónir eru óvirknar á hesi wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Skriva ein av upplýsingunum niðanfyri}}',
 'passwordreset-username' => 'Brúkaranavn:',
 'passwordreset-domain' => 'Umdømi (domain):',
 'passwordreset-capture' => 'Sí tann endaliga t-postin?',
@@ -920,6 +939,7 @@ Ongin frágreiðing finst.',
 Tað sær út til at hon er blivin strikað.',
 'edit-conflict' => 'Rættingar trupulleiki (konflikt).',
 'edit-no-change' => 'Tín rætting var sæð burtur frá, tí ongin broyting varð gjørd í tekstinum.',
+'postedit-confirmation' => 'Tín rætting varð goymd.',
 'edit-already-exists' => 'Tað var ikki møguligt at upprætta nýggja síðu.
 Síðan er longu til.',
 'defaultmessagetext' => 'Standard boðtekstur',
@@ -936,6 +956,9 @@ Um tú hevur ritað inn, so kanst tú sláa hesa ávaring frá í "Rættingar" p
 'content-model-css' => 'CSS',
 
 # Parser/template warnings
+'expensive-parserfunction-warning' => "'''Ávaring:''' Henda síðan inniheldur ov nógvar útrokningstungar parsara-funksjónskall.
+
+Hon eigur at hava minni enn $2 {{PLURAL:$2|kall}}, tað {{PLURAL:$1|er nú $1|eru nú $1 kall}}.",
 'expensive-parserfunction-category' => 'Síður við ov nógvum dýrum parsara funktiónskallum',
 'post-expand-template-inclusion-warning' => "'''Ávaring:''' Tað eru ov nógvar skabilónir á hesi síðu. 
 Nakrar skabilónir vera ikki vístar.",
@@ -944,6 +967,7 @@ Nakrar skabilónir vera ikki vístar.",
 Hetta parametur er tí ikki tikið við.",
 'post-expand-template-argument-category' => 'Síður har skabilón parametur (template arguments) ikki eru tikin við',
 'parser-template-loop-warning' => 'Skapilónssloyfa funnin: [[$1]]',
+'language-converter-depth-warning' => 'Markið fyri dýpd á málkonverteraranum er farið út um mark ($1)',
 'node-count-exceeded-category' => 'Síður har talið av notum (node) er ov høgt',
 'node-count-exceeded-warning' => 'Síðan hevur og høgt tal av notum (node-count)',
 'expansion-depth-exceeded-category' => 'Síður ið fara yvir loyvdu víðkanar-dýpdina',
@@ -1055,6 +1079,9 @@ $1",
 Hon kann ikki fjalast.',
 'revdelete-show-no-access' => 'Feilur tá hesin lutur dagfestur $1 klokkan $2 skuldi vísast:Hesin lutur er blivin markeraður sum "avmarkaður".
 Tú hevur ikki atgongd til hann.',
+'revdelete-modify-no-access' => 'Feilur tá hesin lutur dagfestur $1 klokkan $2 skuldi broytast:Hesin lutur er blivin markeraður sum "avmarkaður".
+Tú hevur ikki atgongd til hann.',
+'revdelete-modify-missing' => 'Feilur hendi undir broytan av luti ID $1: Hann er ikki at finna í dátabasuni!',
 'revdelete-no-change' => "'''Ávaring:''' Pettið ið er dagfest $1, kl. $2 hevði longu tær umbidnu innstillingar fyri sjónligheit.",
 'revdelete-concurrent-change' => 'Ein feilur hendi, meðan tú dagførdi tekstin frá $1, kl. $2: Teksturin sær út til at vera blivin broyttur av onkrum øðrum, meðan tú royndi at rætta hann.',
 'revdelete-otherreason' => 'Onnur orsøk',
@@ -1062,12 +1089,23 @@ Tú hevur ikki atgongd til hann.',
 'revdelete-edit-reasonlist' => 'Rætta strikingar orsøkir',
 'revdelete-offender' => 'Høvundurin av hesi endurskoðan:',
 
+# Suppression log
+'suppressionlog' => 'Samanpressingarloggur',
+'suppressionlogtext' => 'Niðanfyri sæst eitt yvirlit yvir slettingar og sperringar, sum fevnir um innihald, sum er fjalt fyri administratorum.
+Hygg at [[Special:BlockList|sperringslistanum]] fyri at síggja listan yvir verandi bann og sperringar.',
+
 # History merging
 'mergehistory' => 'Samantvinna søgurnar hjá síðunum',
 'mergehistory-header' => 'Henda síðan letur teg samanflætta versjónirnar frá søguni av einari síðu til eina nýggjari síðu.
 Tryggja tær, at henda broyting fer at varðveita framhaldssøguna hjá síðuni.',
 'mergehistory-box' => 'Samantvinna versjónirnar av tveimum síðum:',
 'mergehistory-from' => 'Keldusíða:',
+'mergehistory-into' => 'Komusíða:',
+'mergehistory-list' => 'Rættingarsøgur, sum kunnu samanflættast',
+'mergehistory-go' => 'Vís rættingar ið kunnu samantvinnast',
+'mergehistory-submit' => 'Samanflætta versjónirnar',
+'mergehistory-empty' => 'Ongar versjónir kunnu samanflættast.',
+'mergehistory-success' => '$3 {{PLURAL:$3|versjón|versjónir}} av [[:$1]] er samanflættað við [[:$2]].',
 'mergehistory-no-source' => 'Keldu síðan $1 er ikki til.',
 'mergehistory-no-destination' => 'Destinatiónssíðan $1 er ikki til.',
 'mergehistory-invalid-source' => 'Keldusíðan má hava eitt gyldugt heiti.',
@@ -1115,7 +1153,6 @@ Tryggja tær, at henda broyting fer at varðveita framhaldssøguna hjá síðuni
 'searchmenu-legend' => 'Leiti møguleikar',
 'searchmenu-exists' => "'''Tað er longu ein síða sum eitur \"[[:\$1]]\" á hesi wiki.'''",
 'searchmenu-new' => "'''Stovna síðuna \"[[:\$1]]\" á hesi wiki!'''",
-'searchhelp-url' => 'Help:Innihald',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Leita í síðum við hesum prefiksinum (byrjan av orðinum)]]',
 'searchprofile-articles' => 'Innihaldssíður',
 'searchprofile-project' => 'Hjálpar og verkætlanar síður',
@@ -1159,12 +1196,14 @@ Tú kanst royna at brúka ''all:'' sum fyrsta stavilsi fyri at søkja í øllum
 'searchdisabled' => '{{SITENAME}} leitan er sett úr gildi.
 Tú kanst leita via Google ímeðan.
 Legg til merkis, at teirra innihaldsyvirlit av {{SITENAME}} kann vera gamalt og ikki dagført.',
+'search-error' => 'Ein feilur hendi undir leitanini: $1',
 
 # Preferences page
 'preferences' => 'Innstillingar',
 'mypreferences' => 'Innstillingar',
 'prefs-edits' => 'Tal av rættingum:',
 'prefsnologin' => 'Tú hevur ikki ritað inn',
+'prefsnologintext' => 'Tú mást vera <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} innritað/ur]</span> fyri at broyta brúkarainnstillingar.',
 'changepassword' => 'Broyt loyniorð',
 'prefs-skin' => 'Hamur',
 'skin-preview' => 'Forskoðan',
@@ -1191,7 +1230,6 @@ Legg til merkis, at teirra innihaldsyvirlit av {{SITENAME}} kann vera gamalt og
 'resetprefs' => 'Reinsa ikki goymdar broytingar',
 'restoreprefs' => 'Endurset alt til standard innstillingar',
 'prefs-editing' => 'Broyting av greinum',
-'prefs-edit-boxsize' => 'Støddin á rættingar vindeyganum.',
 'rows' => 'Røð:',
 'columns' => 'Teigar:',
 'searchresultshead' => 'Leita',
@@ -1232,7 +1270,6 @@ Legg til merkis, at teirra innihaldsyvirlit av {{SITENAME}} kann vera gamalt og
 'prefs-reset-intro' => 'Tú kanst brúka hesa síðuna til at nullstilla allar tínar valdu innstillingar, so tað kemur aftur til standard.
 Tú kanst ikki angra, tá tað fyrst er gjørt.',
 'prefs-emailconfirm-label' => 'Vátta tína t-post adressu:',
-'prefs-textboxsize' => 'Støddin á rættingar vindeyganum',
 'youremail' => 'T-postur (sjálvboðið)*:',
 'username' => '{{GENDER:$1|Brúkaranavn}}:',
 'uid' => '{{GENDER:$1|Brúkari}} ID:',
@@ -1240,6 +1277,7 @@ Tú kanst ikki angra, tá tað fyrst er gjørt.',
 'prefs-registration' => 'Skrásett tíðspunkt:',
 'yourrealname' => 'Títt navn*:',
 'yourlanguage' => 'Mál til brúkaraflatu:',
+'yourvariant' => 'Málvariantur fyri innihald:',
 'yournick' => 'Nýggj undirskrift:',
 'prefs-help-signature' => 'Viðmerkingar á kjaksíðum eiga at vera undirskrivaðar við "<nowiki>~~~~</nowiki>", sum verður gjørt um til tína undirskrift og eitt dagfestingarmerki.',
 'badsig' => 'Ógyldug ráð undirskrift.
@@ -1263,7 +1301,7 @@ Tín t-post adressa verður ikki avdúkað, tá aðrir brúkarir seta seg í sam
 'prefs-signature' => 'Undirskrift',
 'prefs-dateformat' => 'Slag av dagfesting',
 'prefs-timeoffset' => 'Tíðarmunur',
-'prefs-advancedediting' => 'Víðkaðir møguleikar',
+'prefs-advancedediting' => 'Sum heild',
 'prefs-advancedrc' => 'Víðkaðir møguleikar',
 'prefs-advancedrendering' => 'Víðkaðir møguleikar',
 'prefs-advancedsearchoptions' => 'Víðkaðir møguleikar',
@@ -1343,24 +1381,37 @@ Tín t-post adressa verður ikki avdúkað, tá aðrir brúkarir seta seg í sam
 'right-autoconfirmed' => 'Rætta hálvt-vardar síður (semi-protected)',
 'right-delete' => 'Strika síður',
 'right-bigdelete' => 'Strika síður við nógvum versjónum',
+'right-deletedtext' => 'Sí strikaðan tekst og broytingar ímillum strikaðar endurskoðanir',
 'right-browsearchive' => 'Leita í strikaðum síðum',
 'right-undelete' => 'Endurstovnað eina síðu',
+'right-suppressrevision' => 'Endurskoða og endurstovna versjónir sum eru fjaldar fyri administratorum',
 'right-suppressionlog' => 'Vís privatar loggar',
 'right-block' => 'Nokta øðrum brúkarum at rætta (blokka)',
 'right-blockemail' => 'Nokta einum brúkara at senda teldupost',
 'right-hideuser' => 'Sperra eitt brúkaranavn og goyma tað burtur fyri almenninginum',
 'right-unblockself' => 'Taka burtur sperring av sær sjálvum',
 'right-protect' => 'Broyt verjustøður og rætta vardar síður',
-'right-editprotected' => 'Rætta vardar síður (uttan niðurarvaða verju)',
+'right-editprotected' => 'Rætta síður sum eru vardar sum "{{int:protect-level-sysop}}"',
+'right-editinterface' => 'Rætta brúkaramarkamótið',
 'right-editusercssjs' => 'Rætta CSS og JavaScript fílur hjá øðrum brúkarum',
 'right-editusercss' => 'Rætta CSS fílur hjá øðrum brúkarum',
 'right-edituserjs' => 'Rætta JavaScript fílur hjá øðrum brúkarum',
+'right-editmyusercss' => 'Rætta tínar egnu brúkara CSS fílur',
+'right-editmyuserjs' => 'Rætta tínar egnu brúkara JavaScript fílur',
+'right-viewmywatchlist' => 'Síggj tín egna eftirlitslista',
+'right-rollback' => 'Rulla skjótt aftur (tak burtur) rættingarnar hjá tí seinasta brúkaranum á einari ávísari síðu',
+'right-markbotedits' => 'Markera afturrullaðar rættingar sum rættingar frá einum botti',
+'right-noratelimit' => 'Ikki ávirkað av hámarksferð',
 'right-import' => 'Innflyt síður frá øðrum wikium',
+'right-importupload' => 'Innflyt síður frá frá einari fílu sum er løgd út',
 'right-patrol' => 'Marka broytingar hjá øðrum sum eftirkannaðar',
+'right-autopatrol' => 'Hava eins egnu rættingar sjálvvirkamdi vístar sum eftirkannaðar',
 'right-unwatchedpages' => 'Sí lista við síðum sum ikki eru eftiransaðar',
 'right-mergehistory' => 'Samanflætta søguna hjá hesum síðum',
 'right-userrights' => 'Rætta øll brúkaraloyvir',
 'right-userrights-interwiki' => 'Broyt brúkara rættindi hjá brúkarum á øðrum wikium',
+'right-siteadmin' => 'Stong og læs upp dátugrunnin',
+'right-override-export-depth' => 'Útflyt síður, eisini slóðaðar síður upp til eina dýpd á 5',
 'right-sendemail' => 'Send t-post til aðrir brúkarar',
 'right-passwordreset' => 'Sí teldupostar til nullstilling av loyniorði',
 
@@ -1384,13 +1435,19 @@ Tín t-post adressa verður ikki avdúkað, tá aðrir brúkarir seta seg í sam
 'action-move-rootuserpages' => 'flyt høvuðs brúkarasíður',
 'action-movefile' => 'flyt hesa fílu',
 'action-upload' => 'send hesa fílu upp',
+'action-reupload' => 'yvirskriva hesa verandi fíluna',
 'action-upload_by_url' => 'legg henda fílin upp frá einari URL-adressu',
 'action-delete' => 'Strika hesa síðu',
+'action-deleterevision' => 'sletta hesa versjónina',
 'action-deletedhistory' => 'hygg at strikingar søguni hjá hesi síðu',
 'action-browsearchive' => 'leita eftir strikaðum síðum',
 'action-undelete' => 'endurstovnað hesa síðu',
+'action-suppressrevision' => 'endurskoða og endurstovna hesa fjaldu versjónina',
+'action-suppressionlog' => 'sí henda privata loggin',
 'action-block' => 'noktað hesum brúkara at rætta',
 'action-protect' => 'broyt verjustøðuna hjá hesi síðu',
+'action-rollback' => 'rulla skjótt aftur rættingarnar hjá tí seinasta brúkaranum, sum rættaði eina ávísa síðu',
+'action-import' => 'innflyt hesa síðu frá aðrari wiki',
 'action-patrol' => 'markað rætting hjá øðrum sum eftirhugda',
 'action-autopatrol' => 'fá tina rætting merkta sum eftirhugda',
 'action-unwatchedpages' => 'Síggj listan yvir síður sum ikki eru eftiransaðar',
@@ -1399,6 +1456,8 @@ Tín t-post adressa verður ikki avdúkað, tá aðrir brúkarir seta seg í sam
 'action-userrights-interwiki' => 'broyt brúkararættindi hjá brúkarum á øðrum wikium',
 'action-siteadmin' => 'stong ella læs upp dátugrunnin',
 'action-sendemail' => 'send teldupostar',
+'action-editmywatchlist' => 'rætta tín eftirlitslista',
+'action-viewmywatchlist' => 'síggja tín eftirlitslista',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|broyting|broytingar}}',
@@ -1428,6 +1487,7 @@ Tín t-post adressa verður ikki avdúkað, tá aðrir brúkarir seta seg í sam
 'newpageletter' => 'N',
 'boteditletter' => 'b',
 'number_of_watching_users_pageview' => '[$1 ansar eftir {{PLURAL:$1|brúkara|brúkarum}}]',
+'rc_categories' => 'Avmarkað til síður frá bólkunum (skil sundur við "|")',
 'rc_categories_any' => 'Nakar',
 'rc-change-size-new' => '$1 {{PLURAL:$1|byte|bytes}} eftir broyting',
 'newsectionsummary' => '/* $1 */ nýtt innlegg',
@@ -1440,7 +1500,6 @@ Tín t-post adressa verður ikki avdúkað, tá aðrir brúkarir seta seg í sam
 'recentchangeslinked-feed' => 'Viðkomandi broytingar',
 'recentchangeslinked-toolbox' => 'Viðkomandi broytingar',
 'recentchangeslinked-title' => 'Broytingar sum vísa til "$1"',
-'recentchangeslinked-noresult' => 'Ongar broytingar á slóðaðar síður í valda tíðarskeiði.',
 'recentchangeslinked-summary' => "Hetta er ein listi við broytingum sum nýliga eru gjørdir á síðum sum víst verður til frá einari serstakari síðu (ella til limir í einum serstøkum bólki).
 Síður á [[Special:Watchlist|tínum eftiransingarlista]] eru skrivaðar við '''feitum'''.",
 'recentchangeslinked-page' => 'Síðu heiti:',
@@ -1452,8 +1511,7 @@ Síður á [[Special:Watchlist|tínum eftiransingarlista]] eru skrivaðar við '
 'reuploaddesc' => 'Angra uppløðu og far aftur til upload formin',
 'upload-tryagain' => 'Goym broytta fílu frágreiðing',
 'uploadnologin' => 'Ikki ritað inn',
-'uploadnologintext' => 'Tú mást hava [[Special:UserLogin|ritað inn]]
-fyri at leggja fílur upp.',
+'uploadnologintext' => 'Tú mást $1 fyri at leggja fílur út.',
 'upload-recreate-warning' => "'''Ávaring: Ein fíla við hasum navninum er blivin strikað ella flutt.'''
 
 Strikingar og flytingar loggurin (søgan) fyri ta síðuna verður vístur her niðanfyri fyri at gera tað lættari hjá tær:",
@@ -1486,11 +1544,15 @@ Vinarliga gev fíluni nýtt navn og royn at senda hana upp (uploada) enn einafer
 'filename-toolong' => 'Fílunøvn mugu ikki vera longri enn 240 bytes.',
 'badfilename' => 'Myndin er umnevnd til "$1".',
 'filetype-badmime' => 'Fílur av slagnum MIME "$1" eru ikki loyvd at verða send up (uploada).',
+'filetype-banned-type' => '\'\'\'".$1"\'\'\' {{PLURAL:$4|er ikki eitt loyvt fíluslag|eru ikki loyvd fílusløg}}.
+Loyvt/loyvd {{PLURAL:$3|fíluslag er|fílusløg eru}} $2.',
 'filetype-missing' => 'Fílan hevur ongan enda (sum t.d. ".jpg").',
 'empty-file' => 'Fílan sum tú sendi upp var tóm.',
 'file-too-large' => 'Fílan sum tú sendi inn var ov stór.',
 'filename-tooshort' => 'Fílunavnið er ov stutt.',
 'filetype-banned' => 'Hetta slagi av fílum er bannað.',
+'verification-error' => 'Henda fílan varð ikki góðkend av fílugóðkenningini.',
+'hookaborted' => 'Broytingin ið tú royndi at gera var tikin burtur av einari leingjan (extension).',
 'illegal-filename' => 'Hetta fílunavnið er ikki loyvt.',
 'overwrite' => 'Tað er ikki loyvi til at yvirskriva eina verandi fílu.',
 'unknown-error' => 'Ein ókend villa kom fyri.',
@@ -1499,6 +1561,9 @@ Vinarliga gev fíluni nýtt navn og royn at senda hana upp (uploada) enn einafer
 'large-file' => 'Tað verður viðmælt, at fílur ikki eru størri enn $1;
 henda fílin er $2.',
 'largefileserver' => 'Henda fílan er størri enn servarin er innstillaður til at loyva.',
+'emptyfile' => 'Fílan ið tú legði út sær út til at vera tóm.
+Hetta kann skyldast ein sláfeil í fílunavninum.
+Vinarliga eftirkanna um tú veruliga ynskir at leggja hesa fíluna út.',
 'windows-nonascii-filename' => "Henda wiki'in stuðlar ikki fílunøvn við serstøkum bókstavum/teknum.",
 'fileexists' => 'Ein fíla við hesum navninum er longu til, vinarliga kanna eftir <strong>[[:$1]]</strong> um tú ivast í, um tú ynskir at broyta tað.
 [[$1|thumb]]',
@@ -1510,11 +1575,26 @@ Fyri at tín frágreiðing skal síggjast á síðuni, noyðist tú at skriva ta
 * Heitið á fíluni tú leggur út: <strong>[[:$1]]</strong>
 * Heitið á fílu ið longu finst: <strong>[[:$2]]</strong>
 Vinarliga vel eitt annað navn.',
+'fileexists-thumbnail-yes' => "Fílan sær út til at vera ein minka stødd ''(thumbnail)''.
+[[$1|thumb]]
+Vinarliga kanna fíluna <strong>[[:$1]]</strong>.
+Um tann kannað fílan er tann sama myndin av einari uppruna stødd, so er tað ikki neyðugt at leggja út ein eyka thumbnail.",
+'file-thumbnail-no' => "Fílunavnið byrjar við <strong>$1</strong>.
+Tað sær út til at vera ein mynd av einari minkaðari stødd ''(thumbnail)''.
+Um tú hevur hesa myndina í fullari upploysn, legg so hesa út, um ikki broyt so vinarliga fílunavnið.",
+'fileexists-forbidden' => 'Ein fíla við hesum navninum finst longu og kann ikki verða yvirskivað.
+Um tú álíkavæl ynskir at leggja út tína fílu, vinarliga far so aftur og vel eitt annað navn.
+[[File:$1|thumb|center|$1]]',
+'fileexists-shared-forbidden' => 'Ein fíla við tí sama navninum finst longu í felags fílusavninum.
+Um tú enn ynskir at leggja út tína fílu, vinarliga far so aftur og vel eitt annað navn.
+[[File:$1|thumb|center|$1]]',
 'file-deleted-duplicate' => 'Ein fíla, sum er líka sum henda ([[:$1]]) er fyrr blivin strikað.
 Tú eigur at kanna eftir strikingarsøguna hjá hesi fílu, áðrenn tú heldur áframm við at leggja hana út enn einaferð.',
 'uploadwarning' => 'Ávaring',
 'savefile' => 'Goym fílu',
 'uploadedimage' => 'sent "[[$1]]" upp',
+'overwroteimage' => 'legði út eina nýggja versjón av "[[$1]]"',
+'uploadfromurl-queued' => 'Tín útlegging er komin í bíðirøð.',
 'uploadvirus' => 'Fílan inniheldur ein virus!
 Smálutir: $1',
 'upload-source' => 'Keldufíla',
@@ -1552,6 +1632,9 @@ Um trupulleikin heldur fram, set teg so vinarliga í samband við ein [[Special:
 'backend-fail-backup' => 'Tað bar ikki til at taka backup av fílu "$1".',
 'backend-fail-notexists' => 'Fílan $1 er ikki til.',
 'backend-fail-notsame' => 'Ein ikki-eins fíla finst longu á "$1".',
+'backend-fail-invalidpath' => '"$1" er ikki ein loyvd goymsluslóð.',
+'backend-fail-delete' => 'Tað bar ikki til at sletta fílu "$1".',
+'backend-fail-describe' => 'Tað bar ikki til at broyta metadáta fyri fílu "$1".',
 'backend-fail-alreadyexists' => 'Fílan "$1" finst longu.',
 'backend-fail-store' => 'Kundi ikki goyma fílu $1 á $2.',
 'backend-fail-copy' => 'Kundi ikki avrita fílu $1 til $2.',
@@ -1562,6 +1645,9 @@ Um trupulleikin heldur fram, set teg so vinarliga í samband við ein [[Special:
 'backend-fail-read' => 'Kundi ikki lesa fílu $1.',
 'backend-fail-create' => 'Kundi ikki skriva fílu $1.',
 'backend-fail-maxsize' => 'Tað bar ikki til at lesa fíluna "$1" tí hon er størri enn {{PLURAL:$2|eitt byte|$2 bytes}}.',
+'backend-fail-readonly' => 'Goymslu backend "$1" er í løtuni í "bara-lesa" støðu. Orsøkin til hetta er: "\'\'$2\'\'"',
+'backend-fail-connect' => 'Tað bar ikki til at fáa samband við goymslu-backend "$1".',
+'backend-fail-internal' => 'Ein ókendur feilur hendi í goymsluskipanini (backend) "$1".',
 
 # Lock manager
 'lockmanager-notlocked' => 'Kundi ikki lata upp "$1"; hon er ikki stongd.',
@@ -1576,6 +1662,7 @@ Um trupulleikin heldur fram, set teg so vinarliga í samband við ein [[Special:
 
 # img_auth script messages
 'img-auth-accessdenied' => 'Atgongd noktað',
+'img-auth-badtitle' => 'Tað bar ikki til at gera eitt heiti útfrá "$1".',
 'img-auth-nologinnWL' => 'Tú ert ikki ritað/ur inn, og "$1" er ikki á hvítalista.',
 'img-auth-nofile' => 'Fílan "$1" er ikki til',
 'img-auth-isdir' => 'Tú roynir at fáa atgongd til mappuna "$1".
@@ -1652,6 +1739,10 @@ Ein [[Special:WhatLinksHere/$2|fullur listi]] er tøkur.',
 Vinarliga hygg at [$2 fílu frágreiðingarsíðu] fyri nærri kunning.',
 'sharedupload-desc-here' => 'Henda fíla er frá $1 og kann verða brúka í øðrum verkætlanum.
 Frágreiðingin á [$2 fílu frágreiðingar síðu] er víst her niðanfyri.',
+'sharedupload-desc-edit' => 'Henda fílan er frá $1 og kann vera brúkt av øðrum verkætlanum.
+Kanska ynskir tú at rætta frágreiðingina hjá fíluni á [$2 fílu frágreiðingarsíðuni] her.',
+'sharedupload-desc-create' => 'Henda fílan er frá $1 og kann vera brúkt av øðrum verkætlanum.
+Kanska ynskir tú at rætta frágreiðingina til fíluna á [$2 fílu frágreiðingarsíðuni] her.',
 'filepage-nofile' => 'Ongin fíla við hesum navninum finst.',
 'filepage-nofile-link' => 'Ongin fíla við hesum navninum finst, men tú kanst [$1 leggja hana út].',
 'uploadnewversion-linktext' => 'Legg eina nýggja versjón av hesi fílu út',
@@ -1660,7 +1751,13 @@ Frágreiðingin á [$2 fílu frágreiðingar síðu] er víst her niðanfyri.',
 'upload-disallowed-here' => 'Tú kanst ikki yvirskriva hesa fílu.',
 
 # File reversion
+'filerevert' => 'Endurstovna $1',
+'filerevert-legend' => 'Endurstovna fílu',
+'filerevert-intro' => "Tú ert í ferð við at endurstovna fílu '''[[Media:$1|$1]]''' til [$4 verssjónina sum hon sá út kl. $3, hin $2].",
 'filerevert-comment' => 'Orsøk:',
+'filerevert-defaultcomment' => 'Endurstovanð til versjón frá kl. $2, hin $1',
+'filerevert-submit' => 'Endurstovna',
+'filerevert-success' => "'''[[Media:$1|$1]]''' er blivið endurstovna til [$4 versjónina frá $2, kl. $3].",
 
 # File deletion
 'filedelete' => 'Strika $1',
@@ -1672,10 +1769,21 @@ Frágreiðingin á [$2 fílu frágreiðingar síðu] er víst her niðanfyri.',
 'filedelete-success' => "'''$1''' er blivin strikað.",
 'filedelete-success-old' => "Versjónin av '''[[Media:$1|$1]]''' frá kl. $3, hin $2 er blivið strikað.",
 'filedelete-nofile' => "'''$1''' er ikki til.",
+'filedelete-otherreason' => 'Onnur/aðrar orsøkir:',
+'filedelete-reason-otherlist' => 'Onnur orsøk',
+'filedelete-reason-dropdown' => '*Vanligar orsøkir til sletting
+** Brot á upphavsrættin
+** Fílan kemur fyri tvær ferðir',
+'filedelete-edit-reasonlist' => 'Rætta orsøkina til striking',
 'filedelete-maintenance-title' => 'Ógjørligt at sletta fílu',
 
 # MIME search
 'mimesearch' => 'MIME-leit',
+'mimetype' => 'MIME slag:',
+'download' => 'tak niður',
+
+# Unwatched pages
+'unwatchedpages' => 'Ikki eftiransaðar síður',
 
 # List redirects
 'listredirects' => 'Sýn ávísingar',
@@ -1709,12 +1817,16 @@ Frágreiðingin á [$2 fílu frágreiðingar síðu] er víst her niðanfyri.',
 'disambiguations' => 'Síður sum vísa til síður við fleirfaldum týdningi',
 'disambiguationspage' => 'Template:fleiri týdningar',
 
+'pageswithprop-submit' => 'Far',
+
 'doubleredirects' => 'Tvífaldað ávísing',
 'doubleredirectstext' => 'Henda síða gevur yvirlit yvir síður, sum vísa víðari til aðrar víðaristillaðar síður.
 Hvør linja inniheldur leinkjur til ta fyrstu og næstu víðaristillingina, eins væl og málið fyri tað næstu víðaristillingina, sum vanliga er tann "veruliga" endamáls síðan, sum tann fyrsta víðaristillingin átti at peika móti.
 <del>Útkrossaðir</del> postar eru loystir.',
 'double-redirect-fixed-move' => '[[$1]] er blivin flutt.
 Víðaristilling verður nú gjørd til [[$2]].',
+'double-redirect-fixed-maintenance' => 'Rætta dupulta umstýring frá [[$1]] til [[$2]].',
+'double-redirect-fixer' => 'Umstýringsrættari',
 
 'brokenredirects' => 'Brotnar ávísingar',
 'brokenredirectstext' => 'Hesar víðaristillingar slóða til síður, ið ikki eru til:',
@@ -1730,10 +1842,15 @@ Víðaristilling verður nú gjørd til [[$2]].',
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|beit}}',
 'ncategories' => '$1 {{PLURAL:$1|bólkur|bólkar}}',
+'ninterwikis' => '$1 {{PLURAL:$1|interwiki|interwikiir}}',
 'nlinks' => '$1 {{PLURAL:$1|slóð|slóðir}}',
 'nmembers' => '$1 {{PLURAL:$1|limur|limir}}',
 'nviews' => '$1 {{PLURAL:$1|skoðan|skoðanir}}',
+'nimagelinks' => 'Brúkt á $1 {{PLURAL:$1|síðu|síðum}}',
+'ntransclusions' => 'brúkt á $1 {{PLURAL:$1|síðu|síðum}}',
+'specialpage-empty' => 'Tað eru ongi úrslit fyri hesa rapportina.',
 'lonelypages' => 'Foreldraleysar síður',
+'lonelypagestext' => 'Hesar síður slóða ikki frá ella eru ikki tiknar við á aðrar síður á {{SITENAME}}.',
 'uncategorizedpages' => 'Óbólkaðar síður',
 'uncategorizedcategories' => 'Óbólkaðir bólkar',
 'uncategorizedimages' => 'Fílir sum ikki eru bólkaðar',
@@ -1747,13 +1864,22 @@ Víðaristilling verður nú gjørd til [[$2]].',
 'wantedtemplates' => 'Ynsktar fyrimyndir',
 'mostlinked' => 'Síður við flest ávísingum',
 'mostlinkedcategories' => 'Bólkar við flestum ávísandi slóðum',
+'mostlinkedtemplates' => 'Mest slóðaðar-til fyrimyndir',
 'mostcategories' => 'Greinir við flest bólkum',
+'mostimages' => 'Mest leinkjaðar-til fílur',
+'mostinterwikis' => 'Síður við flestum interwiki-slóðum',
 'mostrevisions' => 'Greinir við flestum útgávum',
 'prefixindex' => 'Allar síður við forskoyti (prefiks)',
 'shortpages' => 'Stuttar síður',
 'longpages' => 'Langar síður',
 'deadendpages' => 'Gøtubotnssíður',
+'deadendpagestext' => 'Hesar síðurnar slóða ikki til aðrar síður í {{SITENAME}}.',
 'protectedpages' => 'Friðaðar síður',
+'protectedpagestext' => 'Hesar síður eru vardar móti flyting ella rætting',
+'protectedpagesempty' => 'Ongar síður eru í løtuni vardar á henda hátt.',
+'protectedtitles' => 'Vard heiti',
+'protectedtitlestext' => 'Hesi heiti er vard móti upprættan',
+'protectedtitlesempty' => 'Ongi heiti eru í løtuni vard á henda hátt.',
 'listusers' => 'Brúkaralisti',
 'listusers-editsonly' => 'Vís bara brúkarar sum hava gjørt rættingar',
 'listusers-creationsort' => 'Bólkað eftir stovningardegnum',
@@ -1767,6 +1893,7 @@ Víðaristilling verður nú gjørd til [[$2]].',
 'unusedimagestext' => 'Fylgjandi fílur eru til, men eru ikki lagdar inn á nakra síðu.
 Vinarliga legg merki til, at vevsíður kunnu slóða til eina fílu við beinleiðis URL, og tí kann hon enn síggjast her, hóast at hon er í regluligari nýtslu.',
 'notargettitle' => 'Onki mál',
+'nopagetext' => 'Síðan ið tú leitar eftir er ikki til.',
 'pager-newer-n' => '{{PLURAL:$1|nýggjari 1|nýggjari $1}}',
 'pager-older-n' => '{{PLURAL:$1|eldri 1|eldri $1}}',
 'suppress' => 'Yvirlit',
@@ -1817,6 +1944,10 @@ Sí eisini [[Special:WantedCategories|ynsktir bólkar]].',
 'listusers-noresult' => 'Ongin brúkari var funnin.',
 
 # Special:ActiveUsers
+'activeusers' => 'Listi yvir aktivar brúkarar',
+'activeusers-intro' => 'Hetta er ein listi yvir brúkarar, ið høvdu okkurt slag av aktiviteti tann seinasta/teir seinastu $1 {{PLURAL:$1|dagin|dagarnar}}.',
+'activeusers-count' => '$1 {{PLURAL:$1|handling|handlingar}} tann seinasta/teir seinastu {{PLURAL:$3|dagin|$3 dagarnar}}',
+'activeusers-from' => 'Vís brúkarar, ið byrja við:',
 'activeusers-hidebots' => 'Fjal bottar',
 'activeusers-hidesysops' => 'Fjal umboðsstjórar (administratorar)',
 'activeusers-noresult' => 'Ongir brúkarar funnir.',
@@ -1831,6 +1962,7 @@ Møguliga er [[{{MediaWiki:Listgrouprights-helppage}}|meira kunning]] um einstø
 'listgrouprights-rights' => 'Rættindi',
 'listgrouprights-helppage' => 'Help:Bólka rættindi',
 'listgrouprights-members' => '(limalisti)',
+'listgrouprights-addgroup' => 'Legg afturat {{PLURAL:$2|bólk|bólkar}}: $1',
 'listgrouprights-removegroup' => 'Tak burtur {{PLURAL:$2|bólk|bólkar}}: $1',
 'listgrouprights-addgroup-all' => 'Legg til allir bólkar',
 'listgrouprights-removegroup-all' => 'Tak burtur allir bólkar',
@@ -1845,6 +1977,8 @@ Møguliga er [[{{MediaWiki:Listgrouprights-helppage}}|meira kunning]] um einstø
 og hava virkandi teldupostadressu í [[Special:Preferences|innstillingum]] tínum
 fyri at senda teldupost til aðrar brúkarar.',
 '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}}.
 Teldupost 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.',
@@ -1854,7 +1988,12 @@ Teldupost adressan sum tú skrivaði í [[Special:Preferences|tíni brúkara yns
 'noemailtitle' => 'Ongin t-post adressa',
 'noemailtext' => 'Hesin brúkarin hevur ikki upplýst eina gylduga t-post-adressu.',
 'nowikiemailtitle' => 'Ongin t-postur er loyvdur',
+'nowikiemailtext' => 'Hesin brúkarin hevur valt ikki at móttaka teldupost frá øðrum brúkarum.',
+'emailnotarget' => 'Ikki-eksisterandi ella ógyldugt brúkaranavn fyri móttakaran.',
+'emailtarget' => 'Skriva brúkaranavnið hjá móttakaranum',
 'emailusername' => 'Brúkaranavn:',
+'emailusernamesubmit' => 'Send',
+'email-legend' => 'Send eitt teldubræv til ein annan {{SITENAME}} brúkara',
 'emailfrom' => 'Frá:',
 'emailto' => 'Til:',
 'emailsubject' => 'Evni:',
@@ -1864,6 +2003,7 @@ Teldupost adressan sum tú skrivaði í [[Special:Preferences|tíni brúkara yns
 'emailccsubject' => 'Avrit av tínum boðum til $1: $2',
 'emailsent' => 'T-postur sendur',
 'emailsenttext' => 'Títt t-post boð er sent.',
+'emailuserfooter' => 'Hesin teldupostur var sendur av $1 til $2 við "Send teldupost" funksjónini á {{SITENAME}}.',
 
 # Watchlist
 'watchlist' => 'Eftirlitslisti',
@@ -1871,14 +2011,16 @@ Teldupost adressan sum tú skrivaði í [[Special:Preferences|tíni brúkara yns
 'watchlistfor2' => 'Fyri $1 $2',
 'nowatchlist' => 'Tú hevur ongar lutir í eftirlitinum.',
 'watchnologin' => 'Tú hevur ikki ritað inn',
+'addwatch' => 'Legg til eftirlitslista',
 'addedwatchtext' => 'Síðan  "[[:$1]]" er løgd undir [[Special:Watchlist|eftirlitslistan]] hjá tær.
 Framtíðar broytingar á hesi síðu og tilknýttu kjaksíðuni verða at síggja har.',
+'removewatch' => 'Tak burtur frá eftirlistslistanum',
 'removedwatchtext' => 'Síðan "[[:$1]]" er strikað úr [[Special:Watchlist|tínum eftirliti]].',
 'watch' => 'Eygleið',
 'watchthispage' => 'Hav eftirlit við hesi síðuni',
 'unwatch' => 'strika eftirlit',
+'unwatchthispage' => 'Halt uppat við at hava eftirlit',
 'notanarticle' => 'Ongin innihaldssíða',
-'watchnochange' => 'Ongin grein í tínum eftirliti er rætta innanfyri hetta tíðarskeiði.',
 'watchlist-details' => '{{PLURAL:$1|$1 síða|$1 síður}} á tínum vaktarlista, kjaksíður ikki íroknaðar.',
 'watchmethod-list' => 'kannar síður undir eftirliti fyri feskar broytingar',
 'watchlistcontains' => 'Títt eftirlit inniheldur {{PLURAL:$1|eina síðu|$1 síður}}.',
@@ -1890,7 +2032,17 @@ Framtíðar broytingar á hesi síðu og tilknýttu kjaksíðuni verða at sígg
 'watching' => 'Eftirlitir...',
 'unwatching' => 'Strikar eftirlit...',
 
+'enotif_reset' => 'Markera allar síður sum vitjaðar',
 'enotif_impersonal_salutation' => '{{SITENAME}}brúkari',
+'enotif_subject_deleted' => '{{SITENAME}} síðan $1 er blivin {{GENDER:$2|slettað}} av $2',
+'enotif_subject_created' => '{{SITENAME}} síðan $1 er blivin {{GENDER:$2|upprættað}} av $2',
+'enotif_subject_moved' => '{{SITENAME}} síðan $1 er blivin {{GENDER:$2|flutt}} av $2',
+'enotif_subject_restored' => '{{SITENAME}} síðan $1 er blivin {{GENDER:$2|endurupprættað}} av $2',
+'enotif_subject_changed' => '{{SITENAME}} síðan $1 er blivin {{GENDER:$2|broytt}} av $2',
+'enotif_body_intro_deleted' => '{{SITENAME}} síðan $1 er blivin {{GENDER:$2|slettað}} $PAGEEDITDATE av $2, sí $3.',
+'enotif_lastvisited' => 'Sí $1 fyri allar broytingar síðan tína seinastu vitjan.',
+'enotif_lastdiff' => 'Sí $1 fyri at síggja hesa broyting.',
+'enotif_anon_editor' => 'dulnevndur brúkari $1',
 'created' => 'stovnað',
 
 # Delete
@@ -1931,7 +2083,16 @@ Striking av slíkum síðum er avmarkað fyri at forða fyri at onkur av óvart
 'rollback' => 'Rulla broytingar aftur',
 'rollback_short' => 'Rulla aftur',
 'rollbacklink' => 'afturrulling',
+'rollbacklinkcount' => 'rulla aftur $1 {{PLURAL:$1|rætting|rættingar}}',
+'rollbacklinkcount-morethan' => 'rulla aftur meira enn $1 {{PLURAL:$1|rætting|rættingar}}',
 'rollbackfailed' => 'Afturrulling miseydnað',
+'cantrollback' => 'Tað ber ikki til at afturstilla rættingina;
+tann seinasti ið skrivaði her er eisini tann einasti høvundurin á hesi síðu.',
+'alreadyrolled' => 'Tað ber ikki til at rulla aftur seinastu rætting av [[:$1]] hjá [[User:$2|$2]] ([[User talk:$2|talk]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);
+onkur annar hevur longu rættað ella rullað síðuna aftur.
+
+Seinasta broytingin á síðuni var av [[User:$3|$3]] ([[User talk:$3|kjak]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
+'editcomment' => "Rættingarfrágreiðingin var: \"''\$1''\".",
 'revertpage' => 'Tók burtur rættingar hjá [[Special:Contributions/$2|$2]] ([[User talk:$2|kjak]]) til seinastu versjón hjá [[User:$1|$1]]',
 'revertpage-nouser' => 'Tók burtur rættingar hjá (brúkaranavn tikið vekk) til seinastu versjón hjá [[User:$1|$1]]',
 'rollback-success' => 'Tók burtur rættingar hjá $1;
@@ -1985,7 +2146,7 @@ broytti tað aftur til seinastu versjón hjá $2.',
 'contributions-title' => 'Brúkaraíkøst fyri $1',
 'mycontris' => 'Íkøst',
 'contribsub2' => 'Eftir $1 ($2)',
-'uctop' => '(ovast)',
+'uctop' => '(verandi)',
 'month' => 'Frá mánaði (og áðrenn):',
 'year' => 'Frá ár (og áðrenn):',
 
index 2145d25..b6e83ef 100644 (file)
@@ -589,6 +589,7 @@ $messages = array(
 'create-this-page' => 'Créer cette page',
 'delete' => 'Supprimer',
 'deletethispage' => 'Supprimer cette page',
+'undeletethispage' => 'Annuler la suppression de cette page',
 'undelete_short' => 'Restaurer $1 modification{{PLURAL:$1||s}}',
 'viewdeleted_short' => 'Voir {{PLURAL:$1|une modification supprimée|$1 modifications supprimées}}',
 'protect' => 'Protéger',
@@ -642,7 +643,6 @@ $1",
 'disclaimers' => 'Avertissements',
 'disclaimerpage' => 'Project:Avertissements généraux',
 'edithelp' => 'Aide',
-'edithelppage' => 'Help:Comment modifier une page',
 'helppage' => 'Help:Accueil',
 'mainpage' => 'Accueil',
 'mainpage-description' => 'Accueil',
@@ -652,7 +652,7 @@ $1",
 'privacy' => 'Politique de confidentialité',
 'privacypage' => 'Project:Confidentialité',
 
-'badaccess' => 'Erreur de permission',
+'badaccess' => 'Erreur de permissions',
 'badaccess-group0' => "Vous n'avez pas les droits suffisants pour réaliser l'action demandée.",
 'badaccess-groups' => "L'action que vous essayez de réaliser n'est accessible qu'aux utilisateurs {{PLURAL:$2|du groupe|des groupes}} : $1.",
 
@@ -789,6 +789,10 @@ $2",
 'namespaceprotected' => "Vous n'avez pas la permission de modifier les pages de l'espace de noms « '''$1''' ».",
 'customcssprotected' => "Vous n'avez pas la permission de modifier cette page de CSS, car elle contient les paramètres personnels d'un autre utilisateur.",
 'customjsprotected' => "Vous n'avez pas la permission de modifier cette page de JavaScript, car elle contient les paramètres personnels d'un autre utilisateur.",
+'mycustomcssprotected' => 'Vous n’avez pas le droit de modifier cette page CSS.',
+'mycustomjsprotected' => 'Vous n’avez pas le droit de modifier cette page JavaScript.',
+'myprivateinfoprotected' => 'Vous n’avez pas les droits pour modifier vos informations personnelles.',
+'mypreferencesprotected' => 'Vous n’avez pas les droits pour modifier vos préférences.',
 'ns-specialprotected' => "Les pages dans l'espace de noms « {{ns:special}} » ne peuvent pas être modifiées.",
 'titleprotected' => "Ce titre a été protégé à la création par [[User:$1|$1]].
 Le motif avancé est « ''$2'' ».",
@@ -816,6 +820,7 @@ N'oubliez pas de modifier [[Special:Preferences|vos préférences pour {{SITENAM
 'yourname' => "Nom d'utilisateur :",
 'userlogin-yourname' => "Nom d'utilisateur",
 'userlogin-yourname-ph' => "Entrez votre nom d'utilisateur",
+'createacct-another-username-ph' => 'Saisir le nom d’utilisateur',
 'yourpassword' => 'Mot de passe&nbsp;:',
 'userlogin-yourpassword' => 'Mot de passe',
 'userlogin-yourpassword-ph' => 'Entrez votre mot de passe',
@@ -850,9 +855,11 @@ N'oubliez pas de modifier [[Special:Preferences|vos préférences pour {{SITENAM
 'helplogin-url' => 'Help:Connexion',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Aide à la connexion]]',
 'createacct-join' => 'Entrez vos informations ci-dessous.',
+'createacct-another-join' => 'Saisir les informations du nouveau compte ci-dessous.',
 'createacct-emailrequired' => 'Adresse de courriel',
 'createacct-emailoptional' => 'Adresse de courriel (facultative)',
 'createacct-email-ph' => 'Entrez votre adresse de courriel',
+'createacct-another-email-ph' => 'Saisir l’adresse de courriel',
 'createaccountmail' => "Utiliser un mot de passe aléatoire temporaire et l'envoyer à l'adresse de courriel spécifiée ci-dessous",
 'createacct-realname' => 'Nom réel (facultatif)',
 'createaccountreason' => 'Motif :',
@@ -861,6 +868,7 @@ N'oubliez pas de modifier [[Special:Preferences|vos préférences pour {{SITENAM
 'createacct-captcha' => 'Contrôle de sécurité',
 'createacct-imgcaptcha-ph' => 'Entrez le texte que vous voyez ci-dessus',
 'createacct-submit' => 'Créez votre compte',
+'createacct-another-submit' => 'Créer un autre compte',
 'createacct-benefit-heading' => '{{SITENAME}} est écrit par des gens comme vous.',
 'createacct-benefit-body1' => '{{PLURAL:$1|modification|modifications}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|article|articles}}',
@@ -919,7 +927,7 @@ Entrez une adresse bien formatée ou laissez ce champ vide.',
 'cannotchangeemail' => 'Les adresses de courriel des comptes ne peuvent pas être modifiées sur ce wiki.',
 'emaildisabled' => 'Ce site ne peut pas envoyer de courriels.',
 'accountcreated' => 'Compte créé',
-'accountcreatedtext' => 'Le compte utilisateur pour $1 a été créé.',
+'accountcreatedtext' => 'Le compte utilisateur pour [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|discussion]]) a été créé.',
 'createaccount-title' => "Création d'un compte pour {{SITENAME}}",
 'createaccount-text' => "Quelqu'un a créé un compte pour votre adresse de courriel sur {{SITENAME}} ($4) intitulé « $2 », avec le mot de passe « $3 ».
 Vous devriez ouvrir une session et modifier dès à présent votre mot de passe.
@@ -958,11 +966,11 @@ Vous avez peut-être déjà changé votre mot de passe ou demandé un nouveau mo
 
 # Special:PasswordReset
 'passwordreset' => 'Remise à zéro du mot de passe',
-'passwordreset-text' => 'Remplissez ce formulaire pour réinitialiser votre mot de passe.',
+'passwordreset-text-one' => 'Remplissez ce formulaire pour réinitialiser votre mot de passe.',
+'passwordreset-text-many' => '{{PLURAL:$1|Remplissez un des champs pour réinitialiser votre mot de passe.}}',
 'passwordreset-legend' => 'Remise à zéro du mot de passe',
 'passwordreset-disabled' => 'La réinitialisation des mots de passe a été désactivée sur ce wiki.',
 'passwordreset-emaildisabled' => 'Les fonctionnalités e-mail ont été désactivées sur ce wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Entrez un élément de données ci-dessous}}',
 'passwordreset-username' => "Nom d'utilisateur :",
 'passwordreset-domain' => 'Domaine :',
 'passwordreset-capture' => 'Voir le courriel résultant?',
@@ -997,6 +1005,19 @@ Mot de passe temporaire : $2",
 'changeemail-submit' => "Changer l'adresse de courriel",
 'changeemail-cancel' => 'Annuler',
 
+# Special:ResetTokens
+'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.
+
+Vous 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.',
+'resettokens-legend' => 'Réinitialiser les jetons',
+'resettokens-tokens' => 'Jetons :',
+'resettokens-token-label' => '$1 (valeur actuelle : $2)',
+'resettokens-watchlist-token' => 'Jeton de flux Web liste de suivi',
+'resettokens-done' => 'Jetons réinitialisés.',
+'resettokens-resetbutton' => 'Réinitialiser les jetons sélectionnés',
+
 # Edit page toolbar
 'bold_sample' => 'Texte gras',
 'bold_tip' => 'Texte gras',
@@ -1022,11 +1043,11 @@ Mot de passe temporaire : $2",
 'subject' => 'Sujet / titre :',
 'minoredit' => 'Modification mineure',
 'watchthis' => 'Suivre cette page',
-'savearticle' => 'Publier',
+'savearticle' => 'Enregistrer',
 'preview' => 'Prévisualisation',
 'showpreview' => 'Prévisualiser',
 'showlivepreview' => 'Aperçu rapide',
-'showdiff' => 'Modifications en cours',
+'showdiff' => 'Voir les modifications',
 'anoneditwarning' => "'''Attention :''' vous n'êtes pas identifié(e). Votre adresse IP sera enregistrée dans l'historique de cette page.",
 'anonpreviewwarning' => "''Vous n'êtes pas identifié. Sauvegarder enregistrera votre adresse IP dans l'historique des modifications de la page.''",
 'missingsummary' => "'''Rappel :''' vous n'avez pas encore fourni le résumé de votre modification.
@@ -1191,6 +1212,7 @@ Cause inconnue',
 Il semble qu'elle ait été supprimée.",
 'edit-conflict' => 'Conflit de modification.',
 'edit-no-change' => "Votre modification a été ignorée car aucun changement n'a été fait au texte.",
+'postedit-confirmation' => 'Votre modification a été enregistrée.',
 'edit-already-exists' => "La nouvelle page n'a pas pu être créée.
 Elle existe déjà.",
 'defaultmessagetext' => 'Message par défaut',
@@ -1198,7 +1220,7 @@ Elle existe déjà.",
 'invalid-content-data' => 'Données du contenu non valides',
 'content-not-allowed-here' => 'Le contenu "$1" n\'est pas autorisé sur la page [[$2]]',
 'editwarning-warning' => 'Quitter cette page vous fera perdre toutes les modifications que vous avez faites.
-Si vous êtes connecté avec votre compte, vous pouvez retirer cet avertissement dans la section « {{int:prefs-editing}} » de vos préférences.',
+Si vous êtes connecté, vous pouvez désactiver cet avertissement dans la section « Modification » de vos préférences.',
 
 # Content models
 'content-model-wikitext' => 'wikitexte',
@@ -1231,6 +1253,7 @@ Il devrait y avoir moins de $2 appel{{PLURAL:$2||s}}, alors qu'il y en a mainten
 'undo-failure' => 'Cette modification ne peut pas être défaite : cela entrerait en conflit avec les modifications intermédiaires.',
 'undo-norev' => "La modification n'a pas pu être défaite parce qu'elle est inexistante ou qu'elle a été supprimée.",
 'undo-summary' => 'Annulation des modifications $1 de [[Special:Contributions/$2|$2]] ([[User talk:$2|discussion]])',
+'undo-summary-username-hidden' => 'Annuler la révision $1 par un utilisateur masqué',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Vous ne pouvez pas créer de compte.',
@@ -1256,8 +1279,8 @@ La raison donnée était ''$2''.",
 'histlegend' => 'Légende : ({{int:cur}}) = différence avec la version actuelle, ({{int:last}}) = différence avec la version précédente, <b>{{int:minoreditletter}}</b> = modification mineure',
 'history-fieldset-title' => "Naviguer dans l'historique",
 'history-show-deleted' => 'Masqués seulement',
-'histfirst' => 'première page',
-'histlast' => 'dernière page',
+'histfirst' => 'le plus ancien',
+'histlast' => 'le plus récent',
 'historysize' => '($1 octet{{PLURAL:$1||s}})',
 'historyempty' => '(vide)',
 
@@ -1406,7 +1429,8 @@ Assurez-vous que cette opération conservera la continuité de l'historique de l
 'lineno' => 'Ligne $1 :',
 'compareselectedversions' => 'Comparer les versions sélectionnées',
 'showhideselectedversions' => 'Afficher/masquer les versions sélectionnées',
-'editundo' => 'défaire',
+'editundo' => 'annuler',
+'diff-empty' => '(Aucune différence)',
 'diff-multi' => '({{PLURAL:$1|Une révision intermédiaire|$1 révisions intermédiaires}} par {{PLURAL:$2|un utilisateur|$2 utilisateurs}} {{PLURAL:$1|est masquée|sont masquées}})',
 'diff-multi-manyusers' => "({{PLURAL:$1|Une révision intermédiaire|$1 révisions intermédiaires}} par plus {{PLURAL:$2|d'un utilisateur|de $2 utilisateurs}} {{PLURAL:$1|est masquée|sont masquées}})",
 'difference-missing-revision' => "{{PLURAL:$2|Une révision|$2 révisions}} de cette différence ($1) {{PLURAL:$2|n'a pas été trouvée|n'ont pas été trouvées}}.
@@ -1434,7 +1458,6 @@ Vous pouvez trouver des détails dans le [{{fullurl:{{#Special:Log}}/delete|page
 'searchmenu-legend' => 'Options de recherche',
 'searchmenu-exists' => "'''Il existe une page nommée « [[:$1]] » sur ce wiki'''",
 'searchmenu-new' => "'''Créer la page « [[:$1|$1]] » sur ce wiki !'''",
-'searchhelp-url' => 'Help:Accueil',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Rechercher les pages commençant par ce préfixe]]',
 'searchprofile-articles' => 'Pages de contenu',
 'searchprofile-project' => "Pages d'aide et de projet",
@@ -1510,7 +1533,6 @@ Essayez en utilisant le préfixe ''all:'' pour rechercher dans tout le contenu (
 'resetprefs' => 'Rétablir les préférences',
 'restoreprefs' => 'Restaurer toutes les valeurs par défaut',
 'prefs-editing' => 'Modification',
-'prefs-edit-boxsize' => 'Taille de la fenêtre de modification.',
 'rows' => 'Rangées :',
 'columns' => 'Colonnes :',
 'searchresultshead' => 'Filtrer avec cette valeur',
@@ -1521,9 +1543,9 @@ Essayez en utilisant le préfixe ''all:'' pour rechercher dans tout le contenu (
 'recentchangesdays-max' => '(maximum $1 jour{{PLURAL:$1||s}})',
 'recentchangescount' => 'Nombre de modifications à afficher par défaut :',
 'prefs-help-recentchangescount' => "Ceci inclut les modifications récentes, les pages d'historiques et les journaux.",
-'prefs-help-watchlist-token' => 'Remplissez ce champ avec une valeur secrète et un flux RSS sera généré pour votre liste de suivi.
-Toute personne connaissant ce jeton pourra lire votre liste de suivi, choisissez donc une valeur sécurisée.
-Voici une valeur générée aléatoirement que vous pouvez utiliser : $1',
+'prefs-help-watchlist-token2' => 'Voici la clé secrète du flux Web de votre liste de suivi.
+Toute personne la connaissant pourra lire votre liste de suivi, ne la communiquez donc pas.
+[[Special:ResetTokens|Cliquez ici si vous devez la réinitialiser]].',
 'savedprefs' => 'Les préférences ont été sauvegardées.',
 'timezonelegend' => 'Fuseau horaire :',
 'localtime' => 'Heure locale :',
@@ -1553,7 +1575,6 @@ Voici une valeur générée aléatoirement que vous pouvez utiliser : $1',
 'prefs-common-css-js' => 'JavaScript et CSS partagé pour tous les habillages :',
 'prefs-reset-intro' => 'Vous pouvez utiliser cette page pour restaurer vos préférences aux valeurs par défaut du site. Ceci ne peut pas être défait.',
 'prefs-emailconfirm-label' => 'Confirmation du courriel :',
-'prefs-textboxsize' => 'Taille de la fenêtre de modification',
 'youremail' => 'Courriel :',
 'username' => "{{GENDER:$1|Nom d'utilisateur|Nom d'utilisatrice}} :",
 'uid' => "Numéro d'{{GENDER:$1|utilisateur|utilisatrice}}:",
@@ -1584,7 +1605,9 @@ Elle ne doit pas dépasser $1 caractère{{PLURAL:$1||s}}.',
 'prefs-signature' => 'Signature',
 'prefs-dateformat' => 'Format des dates',
 'prefs-timeoffset' => 'Décalage horaire',
-'prefs-advancedediting' => 'Options avancées',
+'prefs-advancedediting' => 'Général',
+'prefs-editor' => 'Éditeur',
+'prefs-preview' => 'Aperçu',
 'prefs-advancedrc' => 'Options avancées',
 'prefs-advancedrendering' => 'Options avancées',
 'prefs-advancedsearchoptions' => 'Options avancées',
@@ -1592,6 +1615,7 @@ Elle ne doit pas dépasser $1 caractère{{PLURAL:$1||s}}.',
 'prefs-displayrc' => "Options d'affichage",
 'prefs-displaysearchoptions' => "Options d'affichage",
 'prefs-displaywatchlist' => "Options d'affichage",
+'prefs-tokenwatchlist' => 'Jeton',
 'prefs-diffs' => 'Différences',
 
 # User preference: email validation using jQuery
@@ -1620,6 +1644,7 @@ Elle ne doit pas dépasser $1 caractère{{PLURAL:$1||s}}.',
 'userrights-changeable-col' => 'Les groupes que vous pouvez modifier',
 'userrights-unchangeable-col' => 'Les groupes que vous ne pouvez pas modifier',
 'userrights-conflict' => 'Conflit de droits utilisateur ! Veuillez appliquer de nouveau vos modifications.',
+'userrights-removed-self' => 'Vous avez bien supprimé vos propres droits. Du coup, vous ne pouvez plus accéder à cette page.',
 
 # Groups
 'group' => 'Groupe :',
@@ -1663,7 +1688,7 @@ Elle ne doit pas dépasser $1 caractère{{PLURAL:$1||s}}.',
 'right-reupload-shared' => 'Écraser localement un fichier présent sur un dépôt partagé',
 'right-upload_by_url' => 'Importer un fichier depuis une adresse URL',
 'right-purge' => 'Purger le cache des pages sans demande de confirmation',
-'right-autoconfirmed' => 'Modifier les pages semi-protégées',
+'right-autoconfirmed' => 'Ne pas être affecté par les limitations de débit liées aux adresses IP',
 'right-bot' => 'Être traité comme un processus automatisé',
 'right-nominornewtalk' => "Ne pas déclencher la notification de nouveau message lorsqu'on effectue une modification mineure sur la page de discussion d'un utilisateur",
 'right-apihighlimits' => 'Utiliser des limites plus élevées dans les requêtes API',
@@ -1684,12 +1709,20 @@ Elle ne doit pas dépasser $1 caractère{{PLURAL:$1||s}}.',
 'right-ipblock-exempt' => "Ne pas être affecté par les IP bloquées, les blocages automatiques et les blocages de plages d'IP",
 'right-proxyunbannable' => 'Ne pas être affecté par les blocages automatiques de serveurs mandataires',
 'right-unblockself' => 'Se débloquer eux-mêmes',
-'right-protect' => 'Modifier le niveau de protection des pages et modifier les pages protégées',
-'right-editprotected' => 'Modifier les pages protégées (sans protection en cascade)',
+'right-protect' => 'Modifier les niveaux de protection et modifier les pages protégées en cascade',
+'right-editprotected' => 'Modifier les pages protégées avec « {{int:protect-level-sysop}} »',
+'right-editsemiprotected' => 'Modifier les pages protégées avec « {{int:protect-level-autoconfirmed}} »',
 'right-editinterface' => "Modifier l'interface utilisateur",
 'right-editusercssjs' => "Modifier les fichiers CSS et JavaScript d'autres utilisateurs",
 'right-editusercss' => "Modifier les fichiers CSS d'autres utilisateurs",
 'right-edituserjs' => "Modifier les fichiers JavaScript d'autres utilisateurs",
+'right-editmyusercss' => 'Modifier vos propres fichiers CSS utilisateur',
+'right-editmyuserjs' => 'Modifier vos propres fichiers JavaScript utilisateur',
+'right-viewmywatchlist' => 'Afficher votre propre liste de suivi',
+'right-editmywatchlist' => 'Modifier votre propre liste de suivi. Remarquez que certaines actions ajouteront encore des pages sans ce droit.',
+'right-viewmyprivateinfo' => 'Voir vos données personnelles (exemple adresse, vrai nom)',
+'right-editmyprivateinfo' => 'Modifier vos données personnelles (exemple adresse, vrai nom)',
+'right-editmyoptions' => 'Modifier vos préférences',
 'right-rollback' => "Révoquer rapidement les modifications du dernier contributeur d'une page particulière",
 'right-markbotedits' => 'Marquer des modifications révoquées comme ayant été faites par un robot.',
 'right-noratelimit' => 'Ne pas être affecté par les limites de taux',
@@ -1751,12 +1784,17 @@ Elle ne doit pas dépasser $1 caractère{{PLURAL:$1||s}}.',
 'action-userrights-interwiki' => "modifier les droits des utilisateurs sur d'autres wikis",
 'action-siteadmin' => 'verrouiller ou déverrouiller la base de données',
 'action-sendemail' => 'envoyer des courriels',
+'action-editmywatchlist' => 'modifier votre liste de suivi',
+'action-viewmywatchlist' => 'afficher votre liste de suivi',
+'action-viewmyprivateinfo' => 'voir vos informations personnelles',
+'action-editmyprivateinfo' => 'modifier vos informations personnelles',
 
 # Recent changes
 'nchanges' => '$1 modification{{PLURAL:$1||s}}',
 'recentchanges' => 'Modifications récentes',
 'recentchanges-legend' => 'Options des modifications récentes',
 'recentchanges-summary' => 'Piste les changements les plus récents du wiki sur cette page.',
+'recentchanges-noresult' => 'Aucune modification correspondant à ces critères sur la période indiquée.',
 'recentchanges-feed-description' => 'Suivre les dernières modifications de ce wiki dans un flux.',
 'recentchanges-label-newpage' => 'Cette modification a créé une nouvelle page',
 'recentchanges-label-minor' => 'Cette modification est mineure',
@@ -1793,7 +1831,6 @@ Elle ne doit pas dépasser $1 caractère{{PLURAL:$1||s}}.',
 'recentchangeslinked-feed' => 'Suivi des pages liées',
 'recentchangeslinked-toolbox' => 'Suivi des pages liées',
 'recentchangeslinked-title' => 'Suivi des pages associées à « $1 »',
-'recentchangeslinked-noresult' => "Il n'y a pas de modification des pages liées pendant la période choisie.",
 'recentchangeslinked-summary' => "Cette page spéciale montre les modifications récentes sur les pages qui sont liées. Les pages de votre liste de suivi sont '''en gras'''.",
 'recentchangeslinked-page' => 'Nom de la page :',
 'recentchangeslinked-to' => "Afficher les modifications des pages qui comportent un lien vers la page donnée plutôt que l'inverse",
@@ -1804,7 +1841,7 @@ Elle ne doit pas dépasser $1 caractère{{PLURAL:$1||s}}.',
 'reuploaddesc' => "Annuler et retourner au formulaire d'import",
 'upload-tryagain' => 'Envoyer la description du fichier modifiée',
 'uploadnologin' => 'Non connecté(e)',
-'uploadnologintext' => 'Vous devez être [[Special:UserLogin|connecté(e)]] pour importer des fichiers sur le serveur.',
+'uploadnologintext' => 'Vous devez $1 pour importer des fichiers.',
 'upload_directory_missing' => "Le répertoire d'import de fichier ($1) est introuvable et n'a pas pu être créé par le serveur web.",
 'upload_directory_read_only' => "Le répertoire d'import de fichier ($1) n'est pas accessible en écriture depuis le serveur web.",
 'uploaderror' => "Erreur lors de l'import",
@@ -2196,6 +2233,8 @@ Une page est considérée comme une page d'homonymie si elle utilise un modèle
 'pageswithprop-text' => 'Cette page liste les pages qui utilisent une propriété de page particulière.',
 'pageswithprop-prop' => 'Nom de la propriété:',
 'pageswithprop-submit' => 'Aller',
+'pageswithprop-prophidden-long' => 'valeur de propriété de texte long masquée ($1 ko)',
+'pageswithprop-prophidden-binary' => 'valeur de propriété binaire masquée ($1 ko)',
 
 'doubleredirects' => 'Doubles redirections',
 'doubleredirectstext' => 'Voici une liste des pages qui redirigent vers des pages qui sont elles-mêmes des pages de redirection.
@@ -2241,8 +2280,8 @@ Les entrées <del>barrées</del> ont été résolues.',
 'wantedpages' => 'Pages les plus demandées',
 'wantedpages-badtitle' => 'Titre invalide dans les résultats : $1',
 'wantedfiles' => 'Fichiers les plus demandés',
-'wantedfiletext-cat' => "Les fichiers suivants sont utilisés, mais n'existent pas. Les fichiers d'autres dépôts peuvent être listés malgré qu'ils existent. Tous ces faux positifs seront <del>barrés</del>. En outre, les pages qui intègrent des fichiers qui n'existent pas sont répertoriées dans [[:$1]].",
-'wantedfiletext-nocat' => "Les fichiers suivants sont utilisés, mais n'existent pas. Les fichiers d'autres dépôts peuvent être listés malgré qu'ils existent. Tous ces faux positifs seront <del>barrés</del>.",
+'wantedfiletext-cat' => "Les fichiers suivants sont utilisés, mais n'existent pas localement. S'ils se trouvent sur un dépôt partagé, ils peuvent être listés ici, bien qu'ils soient, de fait, déjà disponibles. Tous ces faux positifs seront <del>barrés</del>. En outre, les pages qui intègrent des fichiers qui n'existent pas sont répertoriées dans [[:$1]].",
+'wantedfiletext-nocat' => "Les fichiers suivants sont utilisés, mais n'existent pas localement. S'ils se trouvent sur un dépôt partagé, ils peuvent être listés ici, bien qu'ils soient, de fait, déjà disponibles. Tous ces faux positifs seront <del>barrés</del>.",
 'wantedtemplates' => 'Modèles demandés',
 'mostlinked' => 'Pages les plus liées',
 'mostlinkedcategories' => 'Catégories les plus utilisées',
@@ -2253,6 +2292,7 @@ Les entrées <del>barrées</del> ont été résolues.',
 'mostrevisions' => 'Pages les plus modifiées',
 'prefixindex' => 'Toutes les pages commençant par…',
 'prefixindex-namespace' => 'Toutes les pages avec préfixe (espace de noms $1)',
+'prefixindex-strip' => 'Enlever le préfixe dans la liste',
 'shortpages' => 'Pages courtes',
 'longpages' => 'Pages longues',
 'deadendpages' => 'Pages en impasse',
@@ -2373,7 +2413,8 @@ Ils nécessitent au moins un domaine de niveau supérieur, par exemple « *.org
 'listgrouprights' => "Droits des groupes d'utilisateurs",
 'listgrouprights-summary' => "Cette page contient une liste des groupes définis sur ce wiki ainsi que les droits d'accès qui leur sont associés.
 Des [[{{MediaWiki:Listgrouprights-helppage}}|informations additionnelles]] peuvent exister au sujet des droits individuels.",
-'listgrouprights-key' => '*<span class="listgrouprights-granted">Droit octroyé</span>
+'listgrouprights-key' => 'Légende :
+*<span class="listgrouprights-granted">Droit octroyé</span>
 *<span class="listgrouprights-revoked">Droit révoqué</span>',
 'listgrouprights-group' => 'Groupe',
 'listgrouprights-rights' => 'Droits associés',
@@ -2444,7 +2485,6 @@ Les prochaines modifications de cette page et de la page de discussion associée
 'unwatchthispage' => 'Ne plus suivre',
 'notanarticle' => "Ce n'est pas une page de contenu",
 'notvisiblerev' => 'La version a été supprimée',
-'watchnochange' => "Aucun des éléments que vous suivez n'a été modifié durant la période affichée.",
 'watchlist-details' => 'Votre liste de suivi référence $1 page{{PLURAL:$1||s}}, sans compter les pages de discussion.',
 'wlheader-enotif' => 'La notification par courriel est activée.',
 'wlheader-showupdated' => "Les pages qui ont été modifiées depuis votre dernière visite sont affichées en '''gras'''.",
@@ -2554,7 +2594,7 @@ quelqu'un d'autre a déjà modifié ou révoqué la page.
 La dernière modification de la page a été effectuée par [[User:$3|$3]] ([[User talk:$3|Discuter]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
 'editcomment' => "Le résumé de la modification était : « ''$1'' ».",
 'revertpage' => 'Révocation des modifications de [[Special:Contributions/$2|$2]] ([[User talk:$2|discussion]]) vers la dernière version de [[User:$1|$1]]',
-'revertpage-nouser' => "Révocation des modifications par (nom d'utilisateur supprimé) à la dernière version par [[User:$1|$1]]",
+'revertpage-nouser' => 'Révocation des modifications par un utilisateur masqué à la dernière version par [[User:$1|$1]]',
 'rollback-success' => 'Révocation des modifications effectuées par $1 ;
 rétablissement de la dernière version par $2.',
 
@@ -2701,7 +2741,7 @@ $1',
 'mycontris' => 'Contributions',
 'contribsub2' => 'Pour $1 ($2)',
 'nocontribs' => "Aucune modification correspondant à ces critères n'a été trouvée.",
-'uctop' => '(dernière)',
+'uctop' => '(actuel)',
 'month' => 'À partir du mois (et précédents) :',
 'year' => "À partir de l'année (et précédentes) :",
 
@@ -2918,7 +2958,7 @@ Ceci peut provoquer un changement radical et imprévu pour une page souvent cons
 
 Dans ces cas-là, vous devrez renommer ou fusionner cette page de discussion manuellement si vous le désirez.",
 'movearticle' => 'Renommer la page :',
-'moveuserpage-warning' => "'''Attention :''' Vous êtes sur le point de renommer une page d'utilisateur. Veuillez noter que seul la page sera renommée et que l'utilisateur '''ne''' sera '''pas''' renommé.",
+'moveuserpage-warning' => "'''Attention :''' Vous êtes sur le point de renommer une page d’utilisateur. Veuillez noter que seule la page sera renommée et que l’utilisateur '''ne''' sera '''pas''' renommé.",
 'movenologin' => "Vous n'êtes pas identifié{{GENDER:||e|(e)}}.",
 'movenologintext' => "Pour pouvoir renommer une page, vous devez être [[Special:UserLogin|identifié{{GENDER:||e|(e)}}]] avec un compte utilisateur enregistré et d'ancienneté suffisante.",
 'movenotallowed' => "Vous n'avez pas la permission de renommer les pages.",
@@ -3160,9 +3200,9 @@ Vous pouvez toutefois en visualiser la source.',
 'tooltip-ca-nstab-help' => "Voir la page d'aide",
 'tooltip-ca-nstab-category' => 'Voir la page de la catégorie',
 'tooltip-minoredit' => 'Marquer mes modifications comme mineures',
-'tooltip-save' => 'Publier vos modifications',
+'tooltip-save' => 'Enregister vos modifications',
 'tooltip-preview' => 'Merci de prévisualiser vos modifications avant de les publier',
-'tooltip-diff' => 'Permet de visualiser les changements que vous avez effectués',
+'tooltip-diff' => 'Affiche les modifications que vous avez apportées au texte',
 'tooltip-compareselectedversions' => 'Afficher les différences entre deux versions de cette page',
 'tooltip-watch' => 'Ajouter cette page à votre liste de suivi',
 'tooltip-watchlistedit-normal-submit' => 'Enlever les titres',
@@ -3216,7 +3256,7 @@ Permet de rétablir la version précédente et d'ajouter un motif dans la boîte
 
 # Spam protection
 'spamprotectiontitle' => 'Filtre de protection anti-pollution',
-'spamprotectiontext' => "La page que vous avez voulu sauvegarder a été bloquée par le filtre anti-pollution. Ceci est probablement dû à l'introduction d'un lien vers un site externe apparaissant sur la liste noire. Cette dernière utilise les expressions rationnelles suivantes :",
+'spamprotectiontext' => "La page que vous avez voulu sauvegarder a été bloquée par le filtre anti-pollution. Ceci est probablement dû à l'introduction d'un lien vers un site externe apparaissant sur la liste noire.",
 'spamprotectionmatch' => "La chaîne de caractères « '''$1''' » a déclenché le détecteur de spam.",
 'spambot_username' => 'Nettoyage de spams par MediaWiki',
 'spam_reverting' => 'Rétablissement de la dernière version ne contenant pas de lien vers $1',
@@ -3899,7 +3939,6 @@ Veuillez confirmer que vous désirez réellement recréer cette page.",
 # Separators for various lists, etc.
 'semicolon-separator' => '&nbsp;;&#32;',
 'colon-separator' => '&nbsp;:&#32;',
-'autocomment-prefix' => '&#32;–&#32;',
 'percent' => '$1&nbsp;%',
 
 # Multipage image navigation
@@ -4047,7 +4086,6 @@ Vous pouvez aussi [[Special:EditWatchlist|utiliser l'éditeur normal]].",
 'version-other' => 'Divers',
 'version-mediahandlers' => 'Manipulateurs de médias',
 'version-hooks' => 'Greffons',
-'version-extension-functions' => "Fonctions d'extension internes",
 'version-parser-extensiontags' => "Balises étendues de l'analyseur syntaxique",
 'version-parser-function-hooks' => "Fonctions étendues de l'analyseur syntaxique",
 'version-hook-name' => 'Nom du greffon',
@@ -4131,6 +4169,7 @@ Vous devriez avoir reçu [{{SERVER}}{{SCRIPTPATH}}/COPYING une copie de la Licen
 'tags' => 'Balises des modifications valides',
 'tag-filter' => 'Filtrer les [[Special:Tags|balises]] :',
 'tag-filter-submit' => 'Filtrer',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Balise|Balises}}]] : $2)',
 'tags-title' => 'Balises',
 'tags-intro' => 'Cette page liste les balises que le logiciel peut utiliser pour marquer une modification et la signification de chacune.',
 'tags-tag' => 'Nom de la balise',
index 35ee834..9ce3705 100644 (file)
@@ -380,18 +380,18 @@ $messages = array(
 'thu' => 'dj',
 'fri' => 'dv',
 'sat' => 'ds',
-'january' => 'de janviér',
-'february' => 'de fevriér',
-'march' => 'de mârs',
+'january' => 'janviér',
+'february' => 'fevriér',
+'march' => 'mârs',
 'april' => 'd’avril',
 'may_long' => 'de mê',
 'june' => 'de jouen',
-'july' => 'de julyèt',
-'august' => 'd’oût',
-'september' => 'de septembro',
-'october' => 'd’octobro',
-'november' => 'de novembro',
-'december' => 'de dècembro',
+'july' => 'julyèt',
+'august' => 'oût',
+'september' => 'septembro',
+'october' => 'octobro',
+'november' => 'novembro',
+'december' => 'dècembro',
 'january-gen' => 'de janviér',
 'february-gen' => 'de fevriér',
 'march-gen' => 'de mârs',
@@ -416,6 +416,18 @@ $messages = array(
 'oct' => 'oct',
 'nov' => 'nov',
 'dec' => 'dèc',
+'january-date' => '$1 de janviér',
+'february-date' => '$1 de fevriér',
+'march-date' => '$1 de mârs',
+'april-date' => '$1 d’avril',
+'may-date' => '$1 de mê',
+'june-date' => '$1 de jouen',
+'july-date' => '$1 de julyèt',
+'august-date' => '$1 d’oût',
+'september-date' => '$1 de septembro',
+'october-date' => '$1 d’octobro',
+'november-date' => '$1 de novembro',
+'december-date' => '$1 de dècembro',
 
 # Categories related messages
 'pagecategories' => 'Catègorie{{PLURAL:$1||s}}',
@@ -497,6 +509,7 @@ $messages = array(
 'create-this-page' => 'Fâre cela pâge',
 'delete' => 'Suprimar',
 'deletethispage' => 'Suprimar ceta pâge',
+'undeletethispage' => 'Refâre cela pâge',
 'undelete_short' => 'Refâre {{PLURAL:$1|un changement|$1 changements}}',
 'viewdeleted_short' => 'Vêre {{PLURAL:$1|un changement suprimâ|$1 changements suprimâs}}',
 'protect' => 'Protègiér',
@@ -550,7 +563,6 @@ $1',
 'disclaimers' => 'Semonces',
 'disclaimerpage' => 'Project:Semonces g·ènèrales',
 'edithelp' => 'Éde',
-'edithelppage' => 'Help:Coment changiér na pâge',
 'helppage' => 'Help:Somèro',
 'mainpage' => 'Reçua',
 'mainpage-description' => 'Reçua',
@@ -701,6 +713,10 @@ $2',
 'namespaceprotected' => "Vos éd pas la pèrmission de changiér les pâges de l’èspâço de noms « '''$1''' ».",
 'customcssprotected' => 'Vos éd pas la pèrmission de changiér cela pâge CSS, contint la configuracion a sè d’un ôtr’utilisator.',
 'customjsprotected' => 'Vos éd pas la pèrmission de changiér cela pâge JavaScript, contint la configuracion a sè d’un ôtr’utilisator.',
+'mycustomcssprotected' => 'Vos éd pas la pèrmission de changiér cela pâge CSS.',
+'mycustomjsprotected' => 'Vos éd pas la pèrmission de changiér cela pâge JavaScript.',
+'myprivateinfoprotected' => 'Vos éd pas la pèrmission de changiér voutres enformacions a sè.',
+'mypreferencesprotected' => 'Vos éd pas la pèrmission de changiér voutres prèferences.',
 'ns-specialprotected' => 'Les pâges spèciâles pôvont pas étre changiêes.',
 'titleprotected' => "Cél titro est étâ protègiê a la crèacion per [[User:$1|$1]].
 La rêson balyêe est « ''$2'' ».",
@@ -726,9 +742,19 @@ Notâd qu’y at des pâges que pôvont étre oncor fêtes vêre coment se vos 
 'welcomecreation-msg' => 'Voutron compto est étâ fêt.
 Oubliâd pas de changiér voutres [[Special:Preferences|prèferences dessus {{SITENAME}}]].',
 'yourname' => 'Nom d’utilisator :',
+'userlogin-yourname' => 'Nom d’utilisator',
+'userlogin-yourname-ph' => 'Buchiéd voutron nom d’utilisator',
+'createacct-another-username-ph' => 'Buchiéd lo nom d’utilisator',
 'yourpassword' => 'Contresegno :',
+'userlogin-yourpassword' => 'Contresegno',
+'userlogin-yourpassword-ph' => 'Buchiéd voutron contresegno',
+'createacct-yourpassword-ph' => 'Buchiéd un contresegno',
 'yourpasswordagain' => 'Confirmâd lo contresegno :',
+'createacct-yourpasswordagain' => 'Confirmâd lo contresegno',
+'createacct-yourpasswordagain-ph' => 'Tornâd buchiér lo contresegno',
 'remembermypassword' => 'Sè rapelar de mon contresegno sur ceti navigator (por lo més $1 jorn{{PLURAL:$1||s}})',
+'userlogin-remembermypassword' => 'Gouardar ma sèance activa',
+'userlogin-signwithsecure' => 'Empleyér un branchement sècurisâ',
 'securelogin-stick-https' => 'Réstar branchiê en HTTPS aprés lo branchement',
 'yourdomainname' => 'Voutron domêno :',
 'password-change-forbidden' => 'Vos pouede pas changiér los contresegnos sur ceti vouiqui.',
@@ -741,18 +767,41 @@ Oubliâd pas de changiér voutres [[Special:Preferences|prèferences dessus {{SI
 'logout' => 'Sè dèbranchiér',
 'userlogout' => 'Dèbranchement',
 'notloggedin' => 'Pas branchiê',
+'userlogin-noaccount' => 'Vos éd p’oncor un compto ?',
+'userlogin-joinproject' => 'Rejuegnéd {{SITENAME}}',
 'nologin' => "Vos éd p’oncor un compto ? '''$1.'''",
 'nologinlink' => 'Féte un compto',
 'createaccount' => 'Fâre un compto',
 'gotaccount' => "Vos éd ja un compto ? '''$1.'''",
 'gotaccountlink' => 'Branchiéd-vos',
 'userlogin-resetlink' => 'Vos éd oubliâ voutros dètalys de branchement ?',
+'userlogin-resetpassword-link' => 'Rebetar a zérô lo contresegno',
+'helplogin-url' => 'Help:Branchement',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Éde u branchement]]',
+'createacct-join' => 'Buchiéd voutres enformacions ce-desot.',
+'createacct-another-join' => 'Buchiéd les enformacions sur lo compto novél ce-desot.',
+'createacct-emailrequired' => 'Adrèce èlèctronica',
+'createacct-emailoptional' => 'Adrèce èlèctronica (u chouèx)',
+'createacct-email-ph' => 'Buchiéd voutron adrèce èlèctronica',
+'createacct-another-email-ph' => 'Buchiéd l’adrèce èlèctronica',
 'createaccountmail' => 'Empleyér un contresegno temporèro fêt per hasârd et lo mandar a l’adrèce èlèctronica spècifiâye ce-desot',
+'createacct-realname' => 'Veré nom (u chouèx)',
 'createaccountreason' => 'Rêson :',
+'createacct-reason' => 'Rêson',
+'createacct-reason-ph' => 'Porquè féte-vos un ôtro compto',
+'createacct-captcha' => 'Contrôlo de sècuritât',
+'createacct-imgcaptcha-ph' => 'Buchiéd lo tèxto que vos vêde ce-dessus',
+'createacct-submit' => 'Féte voutron compto',
+'createacct-another-submit' => 'Féte un ôtro compto',
+'createacct-benefit-heading' => '{{SITENAME}} est ècrit per des coment vos.',
+'createacct-benefit-body1' => 'changement{{PLURAL:$1||s}}',
+'createacct-benefit-body2' => 'pâge{{PLURAL:$1||s}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|novél contributor|novéls contributors}}',
 'badretype' => 'Los contresegnos que vos éd buchiês sont pas pariérs.',
 'userexists' => 'Lo nom d’utilisator buchiê est ja empleyê.
 Se vos plét, chouèsésséd-nen un ôtro.',
 'loginerror' => 'Fôta de branchement',
+'createacct-error' => 'Fôta pendent la crèacion du compto',
 'createaccounterror' => 'Y at pas moyen de fâre lo compto : $1',
 'nocookiesnew' => "Lo compto utilisator est étâ fêt, mas vos éte pas branchiê{{GENDER:||e|(e)}}.
 {{SITENAME}} emplèye des tèmouens (''cookies'') por lo branchement mas vos los éd dèsactivâs.
@@ -811,7 +860,7 @@ Se vos plét, buchiéd un’adrèce bien formatâye ou ben lèssiéd cél champ
 'cannotchangeemail' => 'Les adrèces èlèctroniques des comptos pôvont pas étre changiêes sur ceti vouiqui.',
 'emaildisabled' => 'Ceti seto pôt pas mandar des mèssâjos.',
 'accountcreated' => 'Compto fêt',
-'accountcreatedtext' => 'Lo compto utilisator por $1 est étâ fêt.',
+'accountcreatedtext' => 'Lo compto utilisator por [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|discussion]]) est étâ fêt.',
 'createaccount-title' => 'Crèacion d’un compto por {{SITENAME}}',
 'createaccount-text' => 'Yon at fêt un compto por voutron adrèce èlèctronica dessus {{SITENAME}} ($4) apelâ « $2 », avouéc lo contresegno « $3 ».
 Vos vos devriâd branchiér et pués changiér dês ora voutron contresegno.
@@ -848,13 +897,15 @@ Branchement en côrs...',
 'resetpass-wrong-oldpass' => 'Contresegno temporèro ou ben d’ora pas justo.
 Pôt-étre vos éd ja changiê voutron contresegno avouéc reusséta ou ben demandâ un contresegno temporèro novél.',
 'resetpass-temp-password' => 'Contresegno temporèro :',
+'resetpass-abort-generic' => 'Lo changement du contresegno est étâ anulâ per un’èxtension.',
 
 # Special:PasswordReset
 'passwordreset' => 'Remês’a zérô du contresegno',
-'passwordreset-text' => 'Rempléd ceti formulèro por rebetar a zérô voutron contresegno.',
+'passwordreset-text-one' => 'Rempléd ceti formulèro por rebetar a zérô voutron contresegno.',
+'passwordreset-text-many' => '{{PLURAL:$1|Rempléd yon des champs por rebetar a zérô voutron contresegno.}}',
 'passwordreset-legend' => 'Rebetar a zérô lo contresegno',
 'passwordreset-disabled' => 'La remês’a zérô des contresegnos est étâye dèsactivâye sur ceti vouiqui.',
-'passwordreset-pretext' => '{{PLURAL:$1||Buchiéd yona de les piéces de balyês ce-desot}}',
+'passwordreset-emaildisabled' => 'Les fonccionalitâts de mèssageria èlèctronica sont étâyes dèsactivâyes sur ceti vouiqui.',
 'passwordreset-username' => 'Nom d’utilisator :',
 'passwordreset-domain' => 'Domêno :',
 'passwordreset-capture' => 'Est-o que vos voléd vêre lo mèssâjo que rèsulte ?',
@@ -885,7 +936,7 @@ vos pouede ignorar ceti mèssâjo et continuar a empleyér voutron viely contres
 Contresegno temporèro : $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’utilisator at pas reussi : $1',
+'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',
 
 # Special:ChangeEmail
 'changeemail' => 'Changiér l’adrèce èlèctronica',
@@ -1011,7 +1062,7 @@ La dèrriére entrâ du jornal des blocâjos est disponibla ce-desot :',
 * '''Internet Explorer :''' mantegnéd la toche ''Ctrl'' en cliquent sur lo boton ''Rafrèchir'' (''Refresh'') ou ben prèssâd ''Ctrl-F5''
 * '''Opera :''' èfaciéd lo cacho dedens ''Outils → Prèferences''",
 'usercssyoucanpreview' => "'''Combina :''' empleyéd lo boton « {{int:showpreview}} » por èprovar voutra fôlye CSS novèla devant que l’encartar.",
-'userjsyoucanpreview' => "'''Combina :''' empleyéd lo boton « {{int:showpreview}} » por èprovar voutra fôlye JS novèla devant que l’encartar.",
+'userjsyoucanpreview' => "'''Combina :''' empleyéd lo boton « {{int:showpreview}} » por èprovar voutra fôlye JavaScript novèla devant que l’encartar.",
 'usercsspreview' => "'''Rapelâd-vos que vos éte ren qu’aprés prèvêre voutra prôpra fôlye CSS.'''
 '''El est p’oncor étâye encartâye !'''",
 'userjspreview' => "'''Rapelâd-vos que vos éte ren qu’aprés èprovar / prèvêre voutron code JavaScript.'''
@@ -1091,7 +1142,7 @@ Vos pouede tornar arriér et pués changiér na pâge ègzistenta ou ben [[Speci
 'nocreate-loggedin' => 'Vos éd pas la pèrmission de fâre de pâges novèles.',
 'sectioneditnotsupported-title' => 'Changement de sèccion pas recognu',
 'sectioneditnotsupported-text' => 'Lo changement d’una sèccion est pas recognu dens cela pâge.',
-'permissionserrors' => 'Fôta de pèrmissions',
+'permissionserrors' => 'Fôta de pèrmission',
 'permissionserrorstext' => 'Vos éd pas la pèrmission de fâre l’accion demandâye por {{PLURAL:$1|ceta rêson|cetes rêsons}} :',
 'permissionserrorstext-withaction' => 'Vos éd pas la pèrmission de $2 por {{PLURAL:$1|ceta rêson|cetes rêsons}} :',
 'recreate-moveddeleted-warn' => "'''Atencion : vos éte aprés refâre na pâge qu’est étâye suprimâye dês devant.'''
@@ -1107,6 +1158,7 @@ Nion’èxplicacion est étâye balyêe.',
 Semble que seye étâye suprimâye.',
 'edit-conflict' => 'Conflit de changement.',
 'edit-no-change' => 'Voutron changement est étâ ignorâ, nion changement est étâ fêt u tèxto.',
+'postedit-confirmation' => 'Voutron changement est étâ encartâ.',
 'edit-already-exists' => 'Y at pas moyen de fâre na pâge novèla.
 Ègziste ja.',
 'defaultmessagetext' => 'Mèssâjo per dèfôt',
@@ -1150,6 +1202,7 @@ Se vos plét, controlâd la comparèson ce-desot por vos assurar qu’o est fran
 'undo-failure' => 'Lo changement at pas possu étre dèfêt a côsa d’un conflit avouéc des changements entèrmèdièros.',
 'undo-norev' => 'Lo changement at pas possu étre dèfêt perce qu’il est pas ègzistent ou ben qu’il est étâ suprimâ.',
 'undo-summary' => 'Dèfêta du changement $1 de [[Special:Contributions/$2|$2]] ([[User talk:$2|discutar]])',
+'undo-summary-username-hidden' => 'Dèfêta du changement $1 d’un utilisator cachiê',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Y at pas moyen de fâre lo compto',
@@ -1176,8 +1229,8 @@ La rêson balyêe per $3 ére ''$2''.",
 Lègenda : '''({{int:cur}})''' = difèrence avouéc la vèrsion d’ora, '''({{int:last}})''' = difèrence avouéc la vèrsion devant, '''{{int:minoreditletter}}''' = petiôt changement.",
 'history-fieldset-title' => 'Fâre dèfelar l’historico',
 'history-show-deleted' => 'Ren que les suprimâyes',
-'histfirst' => 'premiére',
-'histlast' => 'Dèrriére',
+'histfirst' => 'la ples vielye',
+'histlast' => 'La ples novèla',
 'historysize' => '($1 octèt{{PLURAL:$1||s}})',
 'historyempty' => '(voueda)',
 
@@ -1332,6 +1385,7 @@ Notâd que l’usâjo des lims de navigacion rebeterat a zérô cela colona.',
 'compareselectedversions' => 'Comparar les vèrsions chouèsies',
 'showhideselectedversions' => 'Montrar / cachiér les vèrsions chouèsies',
 'editundo' => 'dèfâre',
+'diff-empty' => '(Niona difèrence)',
 'diff-multi' => '({{PLURAL:$1|Na vèrsion entèrmèdièra|$1 vèrsions entèrmèdières}} per {{PLURAL:$2|un utilisator|$2 utilisators}} {{PLURAL:$1|est pas montrâye|sont pas montrâyes}})',
 'diff-multi-manyusers' => '({{PLURAL:$1|Na vèrsion entèrmèdièra|$1 vèrsions entèrmèdières}} per més de $2 utilisator{{PLURAL:$2||s}} {{PLURAL:$1|est pas montrâye|sont pas montrâyes}})',
 'difference-missing-revision' => '{{PLURAL:$2|Na vèrsion|$2 vèrsions}} de cela difèrence ($1) {{PLURAL:$2|est pas étâye trovâye|sont pas étâyes trovâyes}}.
@@ -1359,7 +1413,6 @@ Vos pouede trovar més de dètalys sur lo [{{fullurl:{{#Special:Log}}/delete|pag
 'searchmenu-legend' => 'Chouèx de rechèrche',
 'searchmenu-exists' => "'''Y at na pâge apelâye « [[:$1]] » sur ceti vouiqui.'''",
 'searchmenu-new' => "'''Fâre la pâge « [[:$1|$1]] » sur ceti vouiqui !'''",
-'searchhelp-url' => 'Help:Somèro',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Fâre dèfelar les pâges que començont per ceti prèfixo]]',
 'searchprofile-articles' => 'Pâges de contegnu',
 'searchprofile-project' => 'Pâges d’éde et pâges projèt',
@@ -1403,6 +1456,7 @@ Vos pouede trovar més de dètalys sur lo [{{fullurl:{{#Special:Log}}/delete|pag
 'searchdisabled' => 'La rechèrche dessus {{SITENAME}} est dèsactivâye.
 Pendent cél temps, vos pouede fâre na rechèrche avouéc Google.
 Notâd que lor endèxacion du contegnu de {{SITENAME}} pôt pas étre a jorn.',
+'search-error' => 'Na fôta est arrevâye en rechèrchient : $1',
 
 # Preferences page
 'preferences' => 'Prèferences',
@@ -1436,7 +1490,6 @@ Notâd que lor endèxacion du contegnu de {{SITENAME}} pôt pas étre a jorn.',
 'resetprefs' => 'Èfaciér los changements pas encartâs',
 'restoreprefs' => 'Rètablir tota la configuracion per dèfôt',
 'prefs-editing' => 'Changement',
-'prefs-edit-boxsize' => 'Talye de la fenétra de changement.',
 'rows' => 'Renches :',
 'columns' => 'Colones :',
 'searchresultshead' => 'Rechèrche',
@@ -1447,9 +1500,6 @@ Notâd que lor endèxacion du contegnu de {{SITENAME}} pôt pas étre a jorn.',
 'recentchangesdays-max' => 'Por lo més $1 jorn{{PLURAL:$1||s}}',
 'recentchangescount' => 'Nombro de changements a montrar per dèfôt :',
 'prefs-help-recentchangescount' => 'Los dèrriérs changements, los historicos de pâges et los jornals avouéc.',
-'prefs-help-watchlist-token' => 'Rempléd ceti champ avouéc na cllâf secrèta et pués un flux RSS serat fêt por voutra lista de siuvu.
-Tôs celos que cognessont cela cllâf porront liére voutra lista de siuvu, chouèsésséd vêr na valor sècurisâye.
-Vê-que na valor fêta per hasârd que vos pouede empleyér : $1',
 'savedprefs' => 'Voutres prèferences sont étâyes encartâyes.',
 'timezonelegend' => 'Fus horèro :',
 'localtime' => 'Hora locâla :',
@@ -1480,7 +1530,6 @@ Vê-que na valor fêta per hasârd que vos pouede empleyér : $1',
 'prefs-reset-intro' => 'Vos pouede empleyér ceta pâge por rètablir voutres prèferences a les valors du seto per dèfôt.
 Cen pôt pas étre dèfêt.',
 'prefs-emailconfirm-label' => 'Confirmacion de l’adrèce èlèctronica :',
-'prefs-textboxsize' => 'Talye de la fenétra de changement',
 'youremail' => 'Adrèce èlèctronica :',
 'username' => 'Nom d’utilisat{{GENDER:$1|or|rice}} :',
 'uid' => 'Identifient d’utilisat{{GENDER:$1|or|rice}} :',
@@ -1721,7 +1770,6 @@ Se vos chouèsésséd de lo balyér, serat empleyê por vos atribuar voutres ôv
 'recentchangeslinked-feed' => 'Changements liyês',
 'recentchangeslinked-toolbox' => 'Changements liyês',
 'recentchangeslinked-title' => 'Changements liyês a « $1 »',
-'recentchangeslinked-noresult' => 'Y at gins de changement sur les pâges liyêes pendent lo temps chouèsi.',
 'recentchangeslinked-summary' => "O est na lista des dèrriérs changements sur les pâges liyêes a na pâge spècifiâye (sur los membros d’una catègorie spècifiâye).
 Les pâges de voutra [[Special:Watchlist|lista de siuvu]] sont en '''grâs'''.",
 'recentchangeslinked-page' => 'Nom de la pâge :',
@@ -2387,7 +2435,6 @@ Los changements que vegnont de ceta pâge et de la sina pâge de discussion y se
 'unwatchthispage' => 'Pas més siuvre',
 'notanarticle' => 'O est pas na pâge de contegnu',
 'notvisiblerev' => 'La dèrriére vèrsion per un ôtr’utilisator est étâye suprimâye',
-'watchnochange' => 'Pas yona de les piéces que vos siude est étâye changiêe pendent lo temps fêt vêre.',
 'watchlist-details' => 'Y at $1 pâge{{PLURAL:$1||s}} dedens voutra lista de siuvu, sen comptar les pâges de discussion.',
 'wlheader-enotif' => 'La notificacion per mèssageria èlèctronica est activâye.',
 'wlheader-showupdated' => "Les pâges que sont étâyes changiêes dês voutra dèrriére visita sont montrâyes en '''grâs'''.",
@@ -3819,7 +3866,6 @@ Volyéd confirmar que vos voléd franc refâre cela pâge.",
 # Separators for various lists, etc.
 'semicolon-separator' => '&nbsp;;&#32;',
 'colon-separator' => '&nbsp;:&#32;',
-'autocomment-prefix' => '&#32;–&#32;',
 'percent' => '$1&nbsp;%',
 
 # Multipage image navigation
@@ -3967,7 +4013,6 @@ Vos pouede asse-ben utilisar l’[[Special:EditWatchlist|èditor normal]].',
 'version-other' => 'De totes sôrtes',
 'version-mediahandlers' => 'Maneyors de mèdia',
 'version-hooks' => 'Grèfons',
-'version-extension-functions' => 'Fonccions d’èxtension de dedens',
 'version-parser-extensiontags' => 'Balises d’èxtension du parsor',
 'version-parser-function-hooks' => 'Grèfons de les fonccions du parsor',
 'version-hook-name' => 'Nom du grèfon',
index c1a3dd8..5416d00 100644 (file)
@@ -7,6 +7,7 @@
  * @ingroup Language
  * @file
  *
+ * @author Geitost
  * @author Inkowik
  * @author Maartenvdbent
  * @author Merlissimo
@@ -20,60 +21,60 @@ $linkTrail = '/^([a-zäöüßåāđē]+)(.*)$/sDu';
 
 $messages = array(
 # User preference toggles
-'tog-underline' => 'Linke unerstrike:',
-'tog-justify' => 'Täkst ås blokseeting',
-'tog-hideminor' => 'Latje änringe fersteege',
-'tog-hidepatrolled' => 'Latje änringe fersteege',
-'tog-newpageshidepatrolled' => 'Kontroliirde side aw e list "Naie side" fersteege',
-'tog-extendwatchlist' => 'Ütwidede wåchelist tun wisen foon åle änringe',
-'tog-usenewrc' => "Ütwidede deerstaling foon da ''Leeste Änringe'' än aw da ''Eefterkiikliste'' (brükt JavaScript)",
-'tog-numberheadings' => 'Ouerschrafte automatisch numeriire',
-'tog-showtoolbar' => 'Beårbe-wärktjüch wise',
-'tog-editondblclick' => 'Side ma dööweltklik beårbe (brükt JavaScript)',
-'tog-editsection' => 'Ferbininge tun wisen foon änkelte oufsnaase',
-'tog-editsectiononrightclick' => 'Änkelte stöögne ma ruchts kliken beårbe (brükt JavaScript)',
-'tog-showtoc' => 'Wis en inhåltsferteeknis for side ma mäs ås trii ouerschrafte',
-'tog-rememberpassword' => 'Aw diheere komputer foon duur önjmälde (maksimool for $1 {{PLURAL:$1|däi|deege}})',
+'tog-underline' => 'Ferwisangen onerstrik:',
+'tog-justify' => 'Tekst üs blook saat',
+'tog-hideminor' => 'Letj anrangen fersteeg',
+'tog-hidepatrolled' => 'Letj anrangen fersteeg',
+'tog-newpageshidepatrolled' => 'Kontroliaret sidjen bi a "Nei sidjen" fersteeg',
+'tog-extendwatchlist' => "Ütjwidjet list faan sidjen, diar dü uun't uug behual wel",
+'tog-usenewrc' => "Ütjwidjet uunwisin faan a ''Leetst feranrangen'' an bi a sidjen, diar dü ''Uun't uug behual'' wel (brükt JavaScript)",
+'tog-numberheadings' => 'Auerskraften automaatisk numeriare',
+'tog-showtoolbar' => 'Werktjüch tu bewerkin wise (brükt JavaScript)',
+'tog-editondblclick' => 'Sidjen mä dobelklik bewerke (brükt JavaScript)',
+'tog-editsection' => "Ferwisangen tu't bewerkin faan enkelt kirwer",
+'tog-editsectiononrightclick' => 'Enkelt kirwer mä rochtsklik bewerke (brükt JavaScript)',
+'tog-showtoc' => 'Üüb sidjen mä muar üs trii auerskraften en indeks uunwise',
+'tog-rememberpassword' => 'Üüb diheer reegner üüb düür uunmelde (maksimaal för $1 {{PLURAL:$1|dai|daar}})',
 'tog-watchcreations' => "Salew maaget sidjen an huuchlooset datein leewen uun't uug behual",
 'tog-watchdefault' => "Salew feranert sidjen an datein leewen uun't uug behual",
 'tog-watchmoves' => "Salew fersköwen sidjen an datein leewen uun't uug behual",
 'tog-watchdeletion' => "Salew stregen sidjen an datein leewen uun't uug behual",
-'tog-minordefault' => 'Äine änringe gewöönlik ås latj mårkiire',
-'tog-previewontop' => 'Forbekiiken boowen dåt beårbingswaning wise',
-'tog-previewonfirst' => 'Bai dåt jarst beårben åltens dåt forbekiiken wise',
-'tog-nocache' => 'Sidecache foon e browser deaktiwiire',
+'tog-minordefault' => 'Aanj feranrangen üs "letjen" kääntiakne',
+'tog-previewontop' => '"Iarst ans luke" boowen faan\'t wönang tu bewerkin',
+'tog-previewonfirst' => 'Bi\'t iarst bewerkin "iarst ans luke" uunwise',
+'tog-nocache' => 'Sidjencache faan di browser deaktiwiare',
 'tog-enotifwatchlistpages' => "Schüür mi en e-mail, wan sidjen of datein feranert wurd, diar ik uun't uug behual wal",
-'tog-enotifusertalkpages' => 'Bi fernarangen üüb min brüker-diskusjuunssidj en e-mail sjüür',
+'tog-enotifusertalkpages' => 'Bi feranrangen üüb min brüker-diskusjuunssidj en e-mail schüür',
 'tog-enotifminoredits' => 'Schüür mi uk bi letj feranrangen faan sidjen an datein en e-mail',
 'tog-enotifrevealaddr' => 'Min e-mail adres uun e-mail noorachten uunwise',
-'tog-shownumberswatching' => 'Wis di tål foon wåchende brükere',
+'tog-shownumberswatching' => "Taal faan brükern uunwise, diar det sidj uun't uug haa",
 'tog-oldsig' => 'Aktuel signatuur:',
-'tog-fancysig' => 'Signatuur behoonle ås wikitäkst',
-'tog-showjumplinks' => '"Schafte tu"-ferbininge aktiwiire',
-'tog-uselivepreview' => 'Live-forbekiik ferwiinje (brükt JavaScript) (äksperimentäl)',
-'tog-forceeditsummary' => 'Woorschoue, wan bai dåt spiikern jü tuhuupefooting breecht',
-'tog-watchlisthideown' => 'Äine beårbinge önj e bekiiklist fersteege',
-'tog-watchlisthidebots' => 'Beårbinge döör bots önj e bekiiklist fersteege',
-'tog-watchlisthideminor' => 'Latje beårbinge önj e bekiiklist fersteege',
-'tog-watchlisthideliu' => 'Beårbinge foon önjmäldede brükere önj e bekiikliste fersteege',
-'tog-watchlisthideanons' => 'Beårbinge foon ai önjmäldede brükere önj e bekiikliste fersteege',
-'tog-watchlisthidepatrolled' => 'Eefterkiikede beårbinge önj e bekiiklist fersteege',
+'tog-fancysig' => 'Signatuur üs wikitekst uunsä (saner ferwisangen)',
+'tog-showjumplinks' => '"Waksle tu"-ferwisangen aktiwiare',
+'tog-uselivepreview' => 'Live-"iarst ans luke" funktjuun brük (brükt JavaScript, eksperimentel)',
+'tog-forceeditsummary' => "Wäärne, wan bi't seekrin nian tuupfaadang uunden woort",
+'tog-watchlisthideown' => "Aanj feranrangen bi a sidjen, diar ik uun't uug behual wal, fersteeg",
+'tog-watchlisthidebots' => "Feranrangen faan bots bi a sidjen, diar ik uun't uug behual wal, fersteeg",
+'tog-watchlisthideminor' => "Letj feranrangen bi a sidjen, diar ik uun't uug behual wal, fersteeg",
+'tog-watchlisthideliu' => "Feranrangen faan uunmeldet brükern bi sidjen, diar ik uun't uug behual wal, fersteeg",
+'tog-watchlisthideanons' => "Feranrangen faan anonüüm brükern (IPs) bi sidjen, diar ik uun't uug behual wal, fersteeg",
+'tog-watchlisthidepatrolled' => "Kontroliaret feranrangen bi a sidjen, diar ik uun't uug behual wal, fersteeg",
 'tog-ccmeonemails' => 'Schüür mi kopiin faan e-mails, diar ik tu ööder brükern schüür',
-'tog-diffonly' => 'Wis bai di fersjoonsferglik bloot da unerschiise, ai jü hiilj sid',
-'tog-showhiddencats' => 'Wis ferstäägene kategoriie',
-'tog-norollbackdiff' => 'Unerschiis eefter dåt tübäägseeten unerdrüke',
+'tog-diffonly' => 'Bi en werjuunsferglik bluas di ferskeel uunwise, ei det hialer sidj',
+'tog-showhiddencats' => 'Ferbürgen kategoriin uunwise',
+'tog-norollbackdiff' => "Ferskeel efter't turagsaaten fersteeg",
 'tog-useeditwarning' => 'Waarskaue mi, wan en sidj slööden woort, huar noch ünseekert feranrangen maaget wurden san',
 
-'underline-always' => 'Åltens',
-'underline-never' => 'uler',
+'underline-always' => 'Leewen',
+'underline-never' => 'Nimer',
 'underline-default' => 'Komt üüb dan browser uun',
 
 # Font style option in Special:Preferences
-'editfont-style' => 'Schraftfamiili for di takst onj dåt beårbingswaning:',
-'editfont-default' => 'oufhingi foon browser-önjstaling',
-'editfont-monospace' => 'Schraft ma fååst tiikenbrååtj',
-'editfont-sansserif' => 'Seriifen-lüüse grotäskschraft',
-'editfont-serif' => 'Schraft ma seriife',
+'editfont-style' => "Skraftoort för di tekst uun't werkfial:",
+'editfont-default' => 'Hinget faan browser-iinstelangen uf',
+'editfont-monospace' => 'Skraft mä en fääst tiakenbreetje',
+'editfont-sansserif' => 'Skraft saner seriifen (fiin onerstreger)',
+'editfont-serif' => 'Skraft mä seriifen (fiin onerstreger)',
 
 # Dates
 'sunday' => 'Saandi',
@@ -140,122 +141,123 @@ $messages = array(
 'december-date' => '$1. Detsember',
 
 # Categories related messages
-'pagecategories' => '{{PLURAL:$1|Kategorii|Kategoriie}}',
-'category_header' => 'Side önj e kategorii "$1"',
-'subcategories' => 'Unerkategoriie',
-'category-media-header' => 'Meedia önj e kategorii "$1"',
-'category-empty' => '"Jüdeer kategorii önjhüült nütutids niinj side unti meedie."',
-'hidden-categories' => '{{PLURAL:$1|Ferstäägen Kategorii|Ferstäägene Kategoriie}}',
-'hidden-category-category' => 'Ferstäägene kategoriie',
-'category-subcat-count' => '{{PLURAL:$2|Jüdeer kategorii önjthålt füliend unerkategorii:|{{PLURAL:$1|Füliend unerkategorii as iinj foon inåål $2 unerkategoriie önj jüdeer kategorii:|Deer wårde $1 foon inåål $2 unerkategoriie önj jüdeer kategorii wised:}}}}',
-'category-subcat-count-limited' => 'Jüdeer kategorii önjthålt füliende {{PLURAL:$1|unerkategorii|$1 unerkategoriie}}:',
-'category-article-count' => '{{PLURAL:$2|Jüdeer kategorii önjthålt füliende sid:|{{PLURAL:$1|Füliende sid as iinj foon inåål $2 side önj jüdeer kategorii:|Deer wårde $1 foon inåål $2 side önj jüdeer kategorii wised:}}}}',
-'category-article-count-limited' => 'Füliende {{PLURAL:$1|sid as|$1 side san}} önj jüheer kategorii önjthülen:',
-'category-file-count' => '{{PLURAL:$2|Jüdeer kategorii önjthålt füliende dootäi:|{{PLURAL:$1|Füliende dootäi as iinj foon inåål $2 side önj jüdeer kategorii:|Deer wårde $1 foon inåål $2 dootäie önj jüdeer kategorii wised:}}}}',
-'category-file-count-limited' => 'Füliende {{PLURAL:$1|Dootäi as|$1 Dootäie san}} önj jüdeer kategorii önjthülen:',
-'listingcontinuesabbrev' => '(fortseeting)',
-'index-category' => 'Indisiirde side',
-'noindex-category' => 'Ai indisiirde side',
+'pagecategories' => '{{PLURAL:$1|Kategorii|Kategoriin}}',
+'category_header' => 'Sidjen uun kategorii "$1"',
+'subcategories' => 'Onerkategoriin',
+'category-media-header' => 'Meedien uun kategorii "$1"',
+'category-empty' => '"Uun detdiar kategorii san uun uugenblak nian sidjen of meedien."',
+'hidden-categories' => '{{PLURAL:$1|Ferbürgen kategorii|Ferbürgen kategoriin}}',
+'hidden-category-category' => 'Ferbürgen kategoriin',
+'category-subcat-count' => "{{PLURAL:$2|Detdiar kategorii hää ian onerkategorii.|Uun detdiar kategorii {{PLURAL:$1|stäänt ian onerkategorii|stun $1 onerkategoriin}} faan $2 uun't gehial.}}",
+'category-subcat-count-limited' => 'Detdiar kategorii hää {{PLURAL:$1|ian onerkategorii|$1 onerkategoriin}}:',
+'category-article-count' => "{{PLURAL:$2|Uun detdiar kategorii stäänt ian sidj.|Uun detdiar kategorii {{PLURAL:$1|stäänt ian sidj|stun jodiar $1 sidjen}} faan $2 uun't gehial.}}",
+'category-article-count-limited' => '{{PLURAL:$1|Detdiar sidj stäänt|Jodiar $1 sidjen stun}} uun detdiar kategorii.',
+'category-file-count' => "{{PLURAL:$2|Uun detdiar kategorii stäänt ian datei.|Uun detdiar kategorii {{PLURAL:$1|stäänt ian datei|stun jodiar $1 datein}} faan $2 uun't gehial.}}",
+'category-file-count-limited' => '{{PLURAL:$1|Detdiar datei stäänt|Jodiar $1 datein stun}} uun detdiar kategorii.',
+'listingcontinuesabbrev' => '(gongt widjer)',
+'index-category' => 'Indisiaret sidjen',
+'noindex-category' => 'Ei indisiaret sidjen',
 'broken-file-category' => 'Sid ma önjstöögne ferwisinge',
 
-'about' => 'Ouer',
-'article' => 'Sid',
-'newwindow' => '(wårt önj en nai waning ääm mååged)',
-'cancel' => 'Oufbreege',
-'moredotdotdot' => 'Mör ...',
+'about' => 'Auer',
+'article' => 'Artiikel',
+'newwindow' => '(woort uun en nei wönang eeben maaget)',
+'cancel' => 'Ufbreeg',
+'moredotdotdot' => 'Muar ...',
 'morenotlisted' => 'Öödern, ei apfeerd ...',
 'mypage' => 'Sidj',
 'mytalk' => 'Diskusjuun',
-'anontalk' => 'Diskusjoonssid foon jüdeer IP',
-'navigation' => 'Navigasjoon',
-'and' => '&#32;än',
+'anontalk' => 'Diskusjuunssidj faan detdiar IP',
+'navigation' => 'Nawigatjuun',
+'and' => '&#32;an',
 
 # Cologne Blue skin
-'qbfind' => 'Fine',
-'qbbrowse' => 'Bleese',
-'qbedit' => 'Änre',
-'qbpageoptions' => 'Jüdeer sid',
-'qbmyoptions' => 'Min side',
-'qbspecialpages' => 'Spetsjåålside',
+'qbfind' => 'Finj',
+'qbbrowse' => 'Schük',
+'qbedit' => 'Bewerke',
+'qbpageoptions' => 'Detdiar sidj',
+'qbmyoptions' => 'Min sidjen',
+'qbspecialpages' => 'Spezial-sidjen',
 'faq' => 'FAQ',
 'faqpage' => 'Project:FAQ',
 
 # Vector skin
-'vector-action-addsection' => 'Stuk haanetufoue',
-'vector-action-delete' => 'Strike',
-'vector-action-move' => 'Ferschüwe',
-'vector-action-protect' => 'Sääkere',
-'vector-action-undelete' => 'Wi mååge',
-'vector-action-unprotect' => 'Frijeewe unti späre',
-'vector-simplesearch-preference' => 'Ianfacher sjüklist iinstel (bluas bi Vector)',
-'vector-view-create' => 'Mååge',
-'vector-view-edit' => 'Beårbe',
-'vector-view-history' => 'Dootäifärsjoone',
+'vector-action-addsection' => 'Nei kirew began',
+'vector-action-delete' => 'Strik',
+'vector-action-move' => 'Fersküüw',
+'vector-action-protect' => 'Seekre',
+'vector-action-undelete' => 'Weder iinstel',
+'vector-action-unprotect' => 'Sidjenseekerhaid',
+'vector-simplesearch-preference' => 'Ianfacher schüklist iinstel (bluas bi Vector)',
+'vector-view-create' => 'Maage',
+'vector-view-edit' => 'Bewerke',
+'vector-view-history' => 'Ferluup uunluke',
 'vector-view-view' => 'Lees',
-'vector-view-viewsource' => 'Kwältäkst önjkiike',
-'actions' => 'Aksjoone',
-'namespaces' => 'Noomerüme',
-'variants' => 'Fariante',
+'vector-view-viewsource' => 'Kweltekst uunluke',
+'actions' => 'Aktjuunen',
+'namespaces' => 'Nöömrümer',
+'variants' => 'Warianten',
 
 'navigation-heading' => 'Nawigatsjuun',
-'errorpagetitle' => 'Fäägel',
-'returnto' => 'Tubääg tu jü side $1.',
-'tagline' => 'Üt {{SITENAME}}',
-'help' => 'Heelp',
-'search' => 'Säk',
-'searchbutton' => 'Säke',
-'go' => 'Ütfääre',
-'searcharticle' => 'Sid',
-'history' => 'Färsjoone',
-'history_short' => 'Färsjoone/autoore',
-'updatedmarker' => 'änred sunt man leest besäk',
-'printableversion' => 'Prantfärsjoon',
-'permalink' => 'Permanänten link',
-'print' => 'Prante',
+'errorpagetitle' => 'Diar as wat skiaf gingen',
+'returnto' => 'Turag tu sidj $1.',
+'tagline' => 'Faan {{SITENAME}}',
+'help' => 'Halep',
+'search' => 'Schük',
+'searchbutton' => 'Schük',
+'go' => 'Widjer',
+'searcharticle' => 'Sidj',
+'history' => 'Werjuunen',
+'history_short' => 'Ferluup',
+'updatedmarker' => 'feranert sant man leetst beschük',
+'printableversion' => 'Ütjdrük maage',
+'permalink' => 'Permanent link',
+'print' => 'Drük',
 'view' => 'Lees',
-'edit' => 'Beårbe',
-'create' => 'Mååge',
-'editthispage' => 'Sid beårbe',
-'create-this-page' => 'Sid mååge',
-'delete' => 'Strike',
-'deletethispage' => 'Jüdeer sid strike',
-'undelete_short' => '{{PLURAL:$1|1 färsjoon|$1 färsjoone}} widermååge',
-'viewdeleted_short' => '$1 {{PLURAL:$1|iinj sträägen färsjoon|$1 sträägene färsjoone}} önjkiike',
-'protect' => 'Sääkere',
-'protect_change' => 'änre',
-'protectthispage' => 'Sid önj ferbading hüülje',
-'unprotect' => 'Frijeewe unti späre',
+'edit' => 'Bewerke',
+'create' => 'Maage',
+'editthispage' => 'Sidj bewerke',
+'create-this-page' => 'Nei sidj maage',
+'delete' => 'Strik',
+'deletethispage' => 'Detdiar sidj strik',
+'undeletethispage' => 'Detdiar stregen sidj turaghaale',
+'undelete_short' => '{{PLURAL:$1|1 werjuun|$1 werjuunen}} weder iinstel',
+'viewdeleted_short' => '{{PLURAL:$1|Ian stregen werjuun|$1 stregen werjuunen}} uunluke',
+'protect' => 'Seekre',
+'protect_change' => 'feranre',
+'protectthispage' => 'Sidj seekre',
+'unprotect' => 'Sidjenseekerhaid',
 'unprotectthispage' => 'Sääkering aphääwe',
-'newpage' => 'Nai sid',
-'talkpage' => 'Jüdeer sid diskutiire',
-'talkpagelinktext' => 'diskusjoon',
-'specialpage' => 'Spetsjåålsid',
-'personaltools' => 'Persöönlike räischupe',
-'postcomment' => 'Nai oufsnaas',
-'articlepage' => 'Inhåltsid wise',
-'talk' => 'Diskusjoon',
-'views' => 'Önjsichte',
-'toolbox' => 'Räischape',
-'userpage' => 'Brükersid wise',
-'projectpage' => 'Prujäktsid wise',
-'imagepage' => 'Dååtäisid wise',
-'mediawikipage' => 'Mäldingssid wise',
-'templatepage' => 'Forlåågesid wise',
-'viewhelppage' => 'Heelpsid wise',
-'categorypage' => 'Kategoriisid wise',
-'viewtalkpage' => 'Diskusjoon',
-'otherlanguages' => 'Önj oudere spräke',
-'redirectedfrom' => '(Widerliidjet foon $1)',
-'redirectpagesub' => 'Widerliidjing',
-'lastmodifiedat' => 'Jüdeer sid wörd tuleest aw $1 am jü klook $2 änred.',
+'newpage' => 'Nei sidj',
+'talkpage' => 'Detdiar sidj diskutiare',
+'talkpagelinktext' => 'Diskusjuun',
+'specialpage' => 'Spezial-sidj',
+'personaltools' => 'Min werktjüügen',
+'postcomment' => 'Nei kirew',
+'articlepage' => 'Artiikel wise',
+'talk' => 'Diskusjuun',
+'views' => 'Uunsichten',
+'toolbox' => 'Werktjüügen',
+'userpage' => 'Brükersidj uunwise',
+'projectpage' => 'Projektsidj wise',
+'imagepage' => 'Dateisidj uunwise',
+'mediawikipage' => 'Mädialangssidj uunwise',
+'templatepage' => 'Föörlaagensidj uunwise',
+'viewhelppage' => 'Halepsidj uunwise',
+'categorypage' => 'Kategoriisidj uunwise',
+'viewtalkpage' => 'Diskusjuun uunluke',
+'otherlanguages' => 'Uun ööder spriaken',
+'redirectedfrom' => '(Widjerfeerd faan $1)',
+'redirectpagesub' => 'Widjerfeerang',
+'lastmodifiedat' => 'Detdiar sidj as tuleetst di $1, am a klook $2 anert wurden.',
 'viewcount' => 'Aw jüdeer sid as  {{PLURAL:$1|iinjsen|$1 tunge}} tugram wörden.',
 'protectedpage' => 'Sääkerd sid',
-'jumpto' => 'Schaft tu:',
-'jumptonavigation' => 'Navigasjoon',
-'jumptosearch' => 'k',
-'view-pool-error' => 'Önjschüliing, da särwere san nütutids ouerlååsted.
-Tufoole brükere fersäke, jüdeer sid tu besäken.
-Wees sü gödj än täiw hu minuute, iir dü dåt nuch iinjsen ferseechst.
+'jumpto' => 'Waksle tu:',
+'jumptonavigation' => 'Navigatsjuun',
+'jumptosearch' => 'Schük',
+'view-pool-error' => 'Det dää üs iarag, a servers san auerläästet.
+Tuföl brükern ferschük, det sidj tu beschüken.
+Wees so gud an teew en uugenblak, iar dü det noch ans ferschükst.
 
 $1',
 'pool-timeout' => "Tidj uflepen bi't teewen üüb't sperang",
@@ -263,168 +265,172 @@ $1',
 'pool-errorunknown' => 'Ünbekäänd feeler',
 
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
-'aboutsite' => 'Ouer {{SITENAME}}',
-'aboutpage' => 'Project:Ouer',
-'copyright' => 'Inhålt stoont tu rädj uner jü $1.',
-'copyrightpage' => '{{ns:project}}:Uurhiiwerruchte',
-'currentevents' => 'Aktuäle schaiinge',
-'currentevents-url' => 'Project:Aktuäle schaiinge',
-'disclaimers' => 'Impressum',
-'disclaimerpage' => 'Project:Impressum',
-'edithelp' => 'Beårbingsheelp',
-'edithelppage' => 'Help:Beårbe',
-'helppage' => 'Help:Inhåltsfertiiknis',
-'mainpage' => 'Hoodsid',
-'mainpage-description' => 'Hoodsid',
-'policy-url' => 'Project:Ruchtliinje',
-'portal' => 'Gemiinschaps-portåål',
-'portal-url' => 'Project:Gemiinschaps-portåål',
-'privacy' => 'Dootenschuts',
-'privacypage' => 'Project:Dootenschuts',
-
-'badaccess' => 'Niinj tulingende ruchte',
-'badaccess-group0' => 'Dü hääst ai jü nüsie beruchtiging for jüdeer aksjoon',
-'badaccess-groups' => 'Jüdeer aksjoon as begränsed aw brükere, da tu {{PLURAL:$2|di grupe|åån foon da grupe}} „$1“ hiire.',
-
-'versionrequired' => 'Färsjoon $1 foon MediaWiki as nüsi.',
-'versionrequiredtext' => 'Färsjoon $1 foon MediaWiki as nüsi, am jüdeer sid tu brüken.
-Sii jü [[Special:Version|Färsjoonssid]]',
+'aboutsite' => 'Auer {{SITENAME}}',
+'aboutpage' => 'Project:Auer',
+'copyright' => 'Det stäänt oner det lisens $1.',
+'copyrightpage' => '{{ns:project}}:Copyrights',
+'currentevents' => 'Aktuels',
+'currentevents-url' => 'Project:Aktuels',
+'disclaimers' => 'Disclaimers',
+'disclaimerpage' => 'Project:Disclaimers',
+'edithelp' => "Halep bi't bewerkin",
+'helppage' => 'Help:Auersicht',
+'mainpage' => 'Hoodsidj',
+'mainpage-description' => 'Hoodsidj',
+'policy-url' => 'Project:Reegeln',
+'portal' => 'Gemianskap',
+'portal-url' => 'Project:Gemianskap',
+'privacy' => 'Persöönelk dooten',
+'privacypage' => 'Project:Persöönelk dooten',
+
+'badaccess' => 'Brükerrochten ling ei',
+'badaccess-group0' => 'För detdiar aktjuun heest dü ei nooch brükerrochten.',
+'badaccess-groups' => 'Detdiar aktjuun mut bluas faan brükern uun {{PLURAL:$2|det skööl|ian faan jodiar sköölen}} „$1“ ütjfeerd wurd.',
+
+'versionrequired' => 'Werjuun $1 faan MediaWiki woort brükt.',
+'versionrequiredtext' => "Werjuun $1 faan MediaWiki woort brükt, am detdiar sidj tu brüken.
+Luke efter bi't [[Special:Version|werjuunssidj]]",
 
 'ok' => 'OK',
 'pagetitle' => '$1 – {{SITENAME}}',
 'pagetitle-view-mainpage' => '{{SITENAME}}',
 'backlinksubtitle' => '← $1',
-'retrievedfrom' => 'Foon „$1“',
-'youhavenewmessages' => 'Dü hääst $1 aw din diskusjoonssid ($2).',
-'newmessageslink' => 'naie tisinge',
+'retrievedfrom' => 'Faan „$1“',
+'youhavenewmessages' => 'Dü heest $1 ($2).',
+'newmessageslink' => 'nei bööd',
 'newmessagesdifflink' => 'Leest änring',
 'youhavenewmessagesfromusers' => 'Dü heest $1 faan {{PLURAL:$3|en öödern brüker|$3 ööder brükern}} ($2).',
 'youhavenewmessagesmanyusers' => 'Dü heest $1 faan flook ööder brükern ($2).',
 'newmessageslinkplural' => '{{PLURAL:$1|ian nei nooracht|nei noorachten}}',
 'newmessagesdifflinkplural' => 'leetst {{PLURAL:$1|feranrang|feranrangen}}',
-'youhavenewmessagesmulti' => 'Dü hääst nai tisinge aw $1',
-'editsection' => 'Beårbe',
-'editsection-brackets' => '[$1]',
-'editold' => 'Beårbe',
-'viewsourceold' => 'kwältakst wise',
-'editlink' => 'beårbe',
-'viewsourcelink' => 'kwältakst wise',
-'editsectionhint' => 'Säksjoon beårbe: $1',
-'toc' => 'Inhåltsfertiiknis',
+'youhavenewmessagesmulti' => 'Dü heest nei bööd üüb $1',
+'editsection' => 'Bewerke',
+'editold' => 'Bewerke',
+'viewsourceold' => 'kweltekst uunwise',
+'editlink' => 'bewerke',
+'viewsourcelink' => 'kweltekst uunwise',
+'editsectionhint' => 'Kirew bewerke: $1',
+'toc' => 'Auersicht',
 'showtoc' => 'Wise',
-'hidetoc' => 'Ferbärje',
+'hidetoc' => 'Fersteeg',
 'collapsible-collapse' => 'Tuupdoble',
-'collapsible-expand' => 'Ütjenööderdoble',
-'thisisdeleted' => '$1 önjkiike unti widermååge?',
-'viewdeleted' => '$1 wise?',
-'restorelink' => '$1 {{PLURAL:$1|sträägen Färsjoon|sträägene Färsjoone}}',
+'collapsible-expand' => 'Wise',
+'thisisdeleted' => '$1 uunluke of weder iinstel',
+'viewdeleted' => '$1 uunluke?',
+'restorelink' => '$1 {{PLURAL:$1|stregen werjuun|stregen werjuunen}}',
 'feedlinks' => 'Feed:',
-'feed-invalid' => 'Üngülti feed-abonemänt-typ.',
-'feed-unavailable' => 'Deer stönje niinj feeds tu rädj.',
-'site-rss-feed' => 'RSS-feed for $1',
-'site-atom-feed' => 'Atom-feed for $1',
-'page-rss-feed' => 'RSS-feed for „$1“',
-'page-atom-feed' => 'Atom-feed for „$1“',
+'feed-invalid' => 'Feed-abonement-typ as ferkiard.',
+'feed-unavailable' => 'Diar san nian feeds.',
+'site-rss-feed' => 'RSS-feed för $1',
+'site-atom-feed' => 'Atom-feed för $1',
+'page-rss-feed' => 'RSS-feed för „$1“',
+'page-atom-feed' => 'Atom-feed för „$1“',
 'feed-atom' => 'Atom',
 'feed-rss' => 'RSS',
-'red-link-title' => '$1 (sid ai deer)',
+'red-link-title' => '$1 (sidj ei diar)',
 'sort-descending' => 'Sortiare faan boowen tu onern',
 'sort-ascending' => 'Sortiare faan onern tu boowen',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'Sid',
-'nstab-user' => 'Brükersid',
-'nstab-media' => 'Meediesid',
-'nstab-special' => 'Spetsjåålsid',
-'nstab-project' => 'Prujäktsid',
-'nstab-image' => 'Dååtäi',
-'nstab-mediawiki' => 'Berucht',
-'nstab-template' => 'Forlååge',
-'nstab-help' => 'Heelpsid',
+'nstab-user' => 'Brükersidj',
+'nstab-media' => 'Meediensidj',
+'nstab-special' => 'Spezial-sidj',
+'nstab-project' => 'Projektsidj',
+'nstab-image' => 'Datei',
+'nstab-mediawiki' => 'Bööd',
+'nstab-template' => 'Föörlaag',
+'nstab-help' => 'Halepsidj',
 'nstab-category' => 'Kategorii',
 
 # Main script and global functions
-'nosuchaction' => "Ai sü'n aksjoon",
-'nosuchactiontext' => 'Jü aksjoon spesifisiird döör di URL jült ai.
-Dü koost di URL ferkiird tipt hääwe, unti dü hääst en ferkiirden link fülied.
-Dåt koon uk en fäägel önjjeewe önj e software, jü {{SITENAME}} brúkt.',
-'nosuchspecialpage' => "Ai sü'n spetsjäl sid",
-'nospecialpagetext' => '<strong>Jü önjfrååged spetsjåålsid as ai deer.</strong>
+'nosuchaction' => 'Son aktjuun jaft at ei',
+'nosuchactiontext' => 'Son aktjuun jaft at üüb MediaWiki ei.
+Ferlicht heest dü det URL ferkiard apskrewen, of dü beest en ferkiard ferwisang fulagt.
+Ferlicht as det uk en feeler uun det software faan {{SITENAME}}.',
+'nosuchspecialpage' => 'Son spezial-sidj jaft at ei.',
+'nospecialpagetext' => '<strong>Son spezial-sidj jaft at ei.</strong>
 
-Åle ferfäigboore spetsjåålside san önj e [[Special:SpecialPages|List foon da spetsjåålside]] tu finen.',
+En list mä aal a spezial-sidjen fanjst dü üüb [[Special:SpecialPages|{{int:specialpages}}]].',
 
 # General errors
-'error' => 'Fäägel',
-'databaseerror' => 'Dootebånkfäägel',
+'error' => 'Feeler',
+'databaseerror' => 'Dootenbeenkfeeler',
 'dberrortext' => 'Diar as wat skiaf gingen mä det dootenbeenk.
 Ferlicht as det software ei bi a rä.
 Det leetst uunfraag tu\'t dootenbeenk wiar:
 <blockquote><code>$1</code></blockquote>
 faan det funktsjuun "<code>$2</code>".
 Det dootenbeenk swaaret mä "<samp>$3: $4</samp>".',
-'dberrortextcl' => 'Dåt jäif en süntaksfäägel önj e dootebånk-ouffrååch.
-Jü leest dootebånkouffrååch wus  „$1“ üt e funksjoon „<tt>$2</tt>“.
-Jü dootebånk mälded jü fäägel: „<tt>$3: $4</tt>“.',
-'laggedslavemode' => "''''Woarschauing:''' Jü wised sid köö uner amstånde ai da leeste beåarbinge önjthüülje.",
-'readonly' => 'Dootebånk späred',
-'enterlockreason' => 'Wees swü gödj än jeew en grün önj, weeram jü dootebånk späred wårde schal än en schåting ouer e duur foon jü späre',
-'readonlytext' => 'Jü dootebånk as forluupi späred for naie önjdreege än änringe. Wees sü gödj än fersäk dåt lääser nuch iinjsen.
-
-Grün foon e späre: $1',
-'missing-article' => 'Di täkst for „$1“ $2 wörd ai önj e dååtenbånk fünen.
-
-Jü sid as möölikerwise tuninte mååged unti ferschääwen wörden.
-
-Wan dåt ai di fål as, hääst dü eewäntuäl en fäägel önj e software fünen. Mäld dåt hål en  [[Special:ListUsers/sysop|administrator]] unner nååming foon jü URL.',
-'missingarticle-rev' => '(Färsjoonsnumer: $1)',
-'missingarticle-diff' => '(Ferschääl twasche färsjoone: $1, $2)',
-'readonly_lag' => 'Jü dootebånk wörd automaatisch for schriwtugraawe späred, deerma da ferdiiljde dootebånke (slaves) jam ma di hooddootebånksärwer (master) oufglike koone.',
-'internalerror' => 'Intärn fäägel',
-'internalerror_info' => 'Intärne fäägel: $1',
-'fileappenderrorread' => '"$1" köö wilert dåt baitufäigen ai leesen wårde.',
-'fileappenderror' => 'Köö ai "$1" tu "$2" önjhinge.',
-'filecopyerror' => 'Jü dootäi "$1" köö ai eefter "$2" kopiiird wårde.',
-'filerenameerror' => 'Jü dootäi "$1" köö ai eefter "$2" amnååmd wårde.',
-'filedeleteerror' => 'Jü dootäi "$1" köö ai straagen wårde.',
-'directorycreateerror' => 'Dåt fertiiknis "$1" köö ai mååged wårde.',
-'filenotfound' => 'Köö dootäi "$1" ai fine.',
-'fileexistserror' => 'Ai möölik, eefter dootäi "$1" tu schriwen: dootäi bestoont ål',
-'unexpected' => 'Ünfermousene wjart: "$1"="$2".',
-'formerror' => 'Fäägel: köö jü form ai lääwere',
-'badarticleerror' => 'Jüdeer aksjoon koon ai aw jüdeer sid mååged wårde.',
-'cannotdelete' => 'Jü sid unti dootäi "$1" köö ai straagen wårde.
-Dåt as flicht ål straagen foon huum ouders.',
+'dberrortextcl' => "Bi't uffraagin faan a dootenbeenk as wat skiaf gingen. Det leetst uffraag wiar:
+„$1“
+ütj det funktjuun „$2“.
+At dootebeenk swaaret: „$3: $4“.",
+'laggedslavemode' => "'''Paase üüb:''' Ferlicht wiset detdiar sidj ei a leetst stant.",
+'readonly' => 'Dootenbeenk speret.',
+'enterlockreason' => 'Wees so gud an du en grünj uun, huaram det dootenbeenk speret wurd skal, an hü loong det (amanbi) speret wurd skal.',
+'readonlytext' => "Det dootenbeenk as iarst ans speret för nei iindracher an feranrangen, woorskiinelk, auer diar jüst apredet woort. Ferschük det leeder man noch ans.
+
+Grünj för't sperin: $1",
+'missing-article' => "Di tekst för „$1“ $2 as ei fünjen wurden uun't dootenbeenk.
+
+Ferlicht as det sidj stregen of fersköwen wurden.
+
+Wan't det ei as, do heest dü ferlicht en feeler uun't software fünjen. Wees so gud an skriiw det tu en [[Special:ListUsers/sysop|administraator]] an fertel ham, am hün URL det gongt.",
+'missingarticle-rev' => '(Werjuunsnumer: $1)',
+'missingarticle-diff' => '(Ferskeel tesken $1 an $2)',
+'readonly_lag' => 'Det dootenbeenk as speret wurden, amdat jo ferdiald dootenbeenken (slaves) jo mä di hoodserver (master) ufglik kön.',
+'internalerror' => 'Süsteemfeeler',
+'internalerror_info' => 'Süsteemfeeler: $1',
+'fileappenderrorread' => '"$1" küd ei leesen wurd, auer diar jüst üüb skrewen woort.',
+'fileappenderror' => '"$1" küd ei bi "$2" bihinget wurd.',
+'filecopyerror' => 'Det datei $1 küd ei efter $2 kopiaret wurd.',
+'filerenameerror' => 'Det datei $1 küd ei efter $2 amnäämd wurd.',
+'filedeleteerror' => 'Det datei $1 küd ei stregen wurd.',
+'directorycreateerror' => 'Det fertiaknis "$1" küd ei iinracht wurd.',
+'filenotfound' => 'Det datei $1 küd ei fünjen wurd.',
+'fileexistserror' => 'Uun det datei "$1" küd ei skrewen wurd: Hat as al diar.',
+'unexpected' => 'Mä di wäärs stemet wat ei: "$1"="$2".',
+'formerror' => 'Feeler: Di iindrach küd ei ferwerket wurd.',
+'badarticleerror' => 'Son aktjuun koon üüb detdiar sidj ei föörnimen wurd.',
+'cannotdelete' => 'Det sidj of datei "$1" küd ei stregen wurd.
+Det as ferlicht al faan hoker ööders stregen wurden.',
 'cannotdelete-title' => 'Sidj „$1“ koon ei stregen wurd.',
-'delete-hook-aborted' => 'Det striken as faan en software-feranerang faan MediaWiki ferhanert wurden. Di grünj as ei bekäänd.',
-'badtitle' => 'Ferkiirde tiitel',
-'badtitletext' => 'Di tiitel foon jü anfrååged sid as üngülti, lääsi unti n üngültigen spräklink foon en ouder wiki.',
-'perfcached' => 'Jodiar dooten kem faan a cache an san ferlicht ei muar aktuel. Huuchstens {{PLURAL:$1|ian resultoot as|$1 resultooten san}} uun a cache.',
-'perfcachedts' => 'Jodiar dooten kem faan a cache, leetst tooch nei: $1. Huuchstens {{PLURAL:$4|ian resultoot as|$4 resultooten san}} uun a cache.',
-'querypage-no-updates' => "'''Jü aktualisiiringsfunksjoon for jüdeer sid as nütutids deaktiwiird. Da doote wårde tujarst ai fernaierd.'''",
-'wrong_wfQuery_params' => 'Ferkiirde parameetere for wfQuery()<br />
-Funksjoon: $1<br />
-Ouffrååch: $2',
-'viewsource' => 'Kwältäkst önjkiike',
+'delete-hook-aborted' => 'Det striken as faan en software-feranrang faan MediaWiki ferhanert wurden. Di grünj as ei bekäänd.',
+'badtitle' => 'Ferkiard tiitel',
+'badtitletext' => 'Didiar sidjennööm gongt ei. Hi as ferlicht leesag of as en ferkiard ferwisang faan en ööder projekt.',
+'perfcached' => 'Jodiar dooten kem faan a cache an san ferlicht ei muar aktuel. Ei muar üs {{PLURAL:$1|ian resultoot as|$1 resultooten san}} uun a cache.',
+'perfcachedts' => 'Jodiar dooten kem faan a cache, leetst tooch nei: $1. Ei muar üs {{PLURAL:$4|ian resultoot as|$4 resultooten san}} uun a cache.',
+'querypage-no-updates' => 'Dü könst detdiar sidj uun uugenblak ei aktualisiare. A dooten wurd iarst ans ei iinsteld.',
+'wrong_wfQuery_params' => 'Ferkiard dooten för wfQuery()<br />
+Funktjuun: $1<br />
+Uffraag: $2',
+'viewsource' => 'Kweltekst uunluke',
 'viewsource-title' => 'Code faan sidj $1 uunluke',
-'actionthrottled' => 'Aksjoonstål limitiird',
-'actionthrottledtext' => 'Dü hääst jüdeer aksjoon tu oofding bane en kort tidrüm ütfjard. Wees sü gödj än täiw en påår minuute än fersäk dåt et dan foon naien.',
+'actionthrottled' => 'Taal faan aktjuunen limitiaret',
+'actionthrottledtext' => 'Dü heest detdiar aktjuun tufölsis uun en kurten tidjrüm ütjfeerd.
+Wees so gud an ferschük det glik noch ans weder.',
 'protectedpagetext' => 'Detdiar sidj as seekert wurden, am dat diar näämen wat feranert.',
-'viewsourcetext' => 'Dü koost jü kwäle foon jüdeer sid bekiike än kopiire.',
+'viewsourcetext' => 'Dü könst di kweltekst faan det sidj uunluke an ham uk kopiare:',
 'viewyourtext' => "Dü könst di code faan '''din feranrang''' faan detdiar sidj uunluke an kopiare:",
 'protectedinterface' => 'Üüb detdiar sidj stäänt tekst för det software faan detheer wiki an as seekert wurden, am dat näämen diar wat feranert.
 Dü könst [//translatewiki.net/ translatewiki.net] faan MediaWiki brük, am auersaatangen för ale wiki projekten tu maagin.',
-'editinginterface' => "'''Paase üüb:''' Üüb detdiar sidj stäänt tekst, diar faan't MediaWiki software brükt woort. Wan dü diar wat feranerst, feranerst dü di skak faan't Nuurdfresk Wikipedia.
+'editinginterface' => "'''Paase üüb:''' Üüb detdiar sidj stäänt tekst, diar faan't MediaWiki software brükt woort. Wan dü diar wat feranerst, feranerst dü di skak faan't Nordfriisk Wikipedia.
 Wan dü wat auersaat wel, maage det mä [//translatewiki.net/ translatewiki.net], det as det MediaWiki lokalisiarangsprojekt.",
-'sqlhidden' => 'SCL-ouffrååg ferstäägen',
-'cascadeprotected' => 'Jüdeer sid as for beårbing spärd. Jü as önj {{PLURAL:$1|e füliende sid|da füliende side}}
-önjbünen, {{PLURAL:$1|jü|da}} madels e kaskaadespäropsjoon önj febading hüüljen {{PLURAL:$1|as|san}}:
+'sqlhidden' => 'SQL-uffraag as ferbürgen',
+'cascadeprotected' => 'Detdiar sidj koon ei bewerket wurd. Hat as uun {{PLURAL:$1|detdiar sidj|jodiar sidjen}}
+iinbünjen, diar auer kaskaadenseekerhaid seekert {{PLURAL:$1|as|san}}:
 $2',
-'namespaceprotected' => "Dü hääst niinj beruchtiging, jü sid önj di '''$1'''-noomerüm tu beårben.",
+'namespaceprotected' => "Dü heest ei det brükerrocht, am sidjen uun di nöömrüm '''$1''' tu bewerkin.",
 'customcssprotected' => 'Dü mutst detheer CSS sidj ei bewerke, auer det hoker ööders hiart.',
 'customjsprotected' => 'Dü mutst detheer JavaScript sidj ei bewerke, auer det hoker ööders hiart.',
-'ns-specialprotected' => 'Spetsjåålside koone ai beårbed wårde.',
-'titleprotected' => 'En sid ma dideer noome koon ai önjläid wårde.
-Jü späre wörd döör [[User:$1|$1]] ma grün "$2" inruchted.',
+'mycustomcssprotected' => 'Dü mutst detdiar CSS-sidj ei bewerke.',
+'mycustomjsprotected' => 'Dü mutst detdiar JavaScript-sidj ei bewerke.',
+'myprivateinfoprotected' => 'Dü heest ei det brükerrocht, am din priwoot dooten tu feranrin.',
+'mypreferencesprotected' => 'Dü heest ei det brükerrocht, am din iinstelangen tu feranrin.',
+'ns-specialprotected' => 'Spezial-sidjen kön ei bewerket wurd.',
+'titleprotected' => 'En sidj mä didiar nööm koon ei uunlaanj wurd.
+Di brüker [[User:$1|$1]] hää det sidj speret, an di grünj as: "\'\'$2\'\'".',
 'filereadonlyerror' => 'Det datei „$1“ koon ei feranert wurd, auer uun det fertiaknis „$2“ bluas leesen wurd koon.
 Di grünj faan di administraator as: „$3“.',
 'invalidtitle-knownnamespace' => 'Ferkiard auerskraft uun di nöömrüm „$2“ an tekst „$3“',
@@ -433,99 +439,105 @@ Di grünj faan di administraator as: „$3“.',
 'exception-nologin-text' => 'Det könst dü bluas bewerke, wan dü uunmeldet beest.',
 
 # Virus scanner
-'virus-badscanner' => "Hiinje konfigurasjoon: ünbekånde fiirusscanner: ''$1''",
-'virus-scanfailed' => 'scan fäägelsloin (code $1)',
-'virus-unknownscanner' => 'Ã\9cnbekÃ¥nde fiirusscanner:',
+'virus-badscanner' => "Ferkiard iinstelang: Ünbekäänd wiirenscanner: ''$1''",
+'virus-scanfailed' => 'scan ging skiaf (code $1)',
+'virus-unknownscanner' => 'Ã\9cnbekäänd wiirenscanner:',
 
 # Login and logout pages
-'logouttext' => "'''Dü bast nü oufmälded.'''
+'logouttext' => "'''Dü beest nü ufmeldet.'''
 
-Dü koost {{SITENAME}} nü anonüüm widerbrüke, unti de wider uner diseelew unti en oudern brükernoome <span class='plainlinks'>[$1 önjmälde]</span>.
-Påås aw, dåt hu side nuch wise koone, dåt dü önjmälded bast, sülung dü ai dan browsercache lääsimååged heest.",
+Dü könst {{SITENAME}} nü anonüüm widjerbrük, of di weder <span class='plainlinks'>[$1 uunmelde]</span>.
+Enkelt sidjen wise ferlicht noch uun, dat dü uunmeldet beest, so loong dü dan browser-cache ei leesag maaget heest.",
 'welcomeuser' => 'Welkimen, $1!',
 'welcomecreation-msg' => 'Din brükerkonto as iinracht wurden.
 Ferjid det ei, an aachte üüb din [[Special:Preferences|{{SITENAME}} iinstelangen]].',
-'yourname' => 'Brükernoome:',
+'yourname' => 'Brükernööm:',
 'userlogin-yourname' => 'Brükernööm',
 'userlogin-yourname-ph' => 'Du dan Brükernööm iin',
-'yourpassword' => 'Pååsuurd:',
+'createacct-another-username-ph' => 'Brükernööm iindu',
+'yourpassword' => 'Paaswurd:',
 'userlogin-yourpassword' => 'Paaswurd',
 'userlogin-yourpassword-ph' => 'Paaswurd iindu',
 'createacct-yourpassword-ph' => 'Paaswurd iindu',
-'yourpasswordagain' => 'Schriw pååsuurd nuch iinjsen:',
+'yourpasswordagain' => 'Skriiw det paaswurd noch ans weder hen:',
 'createacct-yourpasswordagain' => 'Paaswurd gudkään',
 'createacct-yourpasswordagain-ph' => 'Du det paaswurd noch ans iin',
-'remembermypassword' => 'Aw diheere komputer foon duur önjmälde (maksimool for $1 {{PLURAL:$1|däi|deege}})',
+'remembermypassword' => 'Üüb diheer reegner üüb düür uunmelde (maksimaal för $1 {{PLURAL:$1|dai|daar}})',
 'userlogin-remembermypassword' => 'Uunmeldet bliiw',
 'userlogin-signwithsecure' => 'Seeker ferbinjang brük',
-'securelogin-stick-https' => 'Eefter önjmälding ma HTTPS ferbünen bliwe',
+'securelogin-stick-https' => "Efter't uunmeldin auer HTTPS ferbünjen bliiw",
 'yourdomainname' => 'Din domain:',
 'password-change-forbidden' => 'Üüb detheer wiki könst dü nian paaswurden feranre.',
 'externaldberror' => 'Deer läit en fäägel bai jü äkstärn autentifisiiring for, unti dü möist din äkstärn brükerkonto äi aktualisiire.',
-'login' => 'Önjmälde',
-'nav-login-createaccount' => 'Önjmälde',
-'loginprompt' => 'For jü önjmälding monje cookies aktiwiird weese.',
-'userlogin' => 'Önjmälde / brükerkonte mååge',
-'userloginnocreate' => 'Önjmälde',
-'logout' => 'Oufmälde',
-'userlogout' => 'Oufmälde',
-'notloggedin' => 'Ai önjmälded',
-'userlogin-noaccount' => 'Dü heest noch nään brükerkonto ?',
+'login' => 'Uunmelde',
+'nav-login-createaccount' => 'Melde di uun of skriiw di iin',
+'loginprompt' => "För't uunmeldin tu {{SITENAME}} skel bi dan browser cookies aktiwiaret wees.",
+'userlogin' => 'Melde di uun of skriiw di iin',
+'userloginnocreate' => 'Uunmelde',
+'logout' => 'Ufmelde',
+'userlogout' => 'Ufmelde',
+'notloggedin' => 'Ei uunmeldet',
+'userlogin-noaccount' => 'Dü heest noch nian brükerkonto ?',
 'userlogin-joinproject' => 'Bi {{SITENAME}} mämaage',
-'nologin' => "Dü hääst niinj brükerkonto? '''$1'''.",
-'nologinlink' => 'Nai brükerkonto inruchte',
-'createaccount' => 'Brükerkonto inruchte',
+'nologin' => 'Dü heest nian brükerkonto? $1.',
+'nologinlink' => 'Nei brükerkonto iinracht',
+'createaccount' => 'Brükerkonto iinracht',
 'gotaccount' => "Dü hääst ål en brükerkonto? '''$1'''.",
-'gotaccountlink' => 'Önjmälde',
+'gotaccountlink' => 'Uunmelde',
 'userlogin-resetlink' => 'Heest dü din login dooten ferjiden?',
 'userlogin-resetpassword-link' => 'Paaswurd turagsaat',
 'helplogin-url' => 'Help:Uunmelde',
 'userlogin-helplink' => "[[{{MediaWiki:helplogin-url}}|Halep bi't uunmeldin]]",
 'createacct-join' => 'Du oner din dooten iin.',
+'createacct-another-join' => "Skriiw oner a dooten för't nei brükerkonto hen",
 'createacct-emailrequired' => 'E-mail adres',
 'createacct-emailoptional' => 'E-mail adres (optional)',
 'createacct-email-ph' => 'Du din e-mail adres iin',
+'createacct-another-email-ph' => 'E-Mail-adres uundu',
 'createaccountmail' => 'E-mail tu det adres oner ferschüür mä en tufelag paaswurd',
 'createacct-realname' => 'Rocht nööm (optional)',
-'createaccountreason' => 'Grün:',
+'createaccountreason' => 'Grünj:',
 'createacct-reason' => 'Grünj',
 'createacct-reason-ph' => 'Huaram dü en ööder brükerkonto iinrachtst',
 'createacct-captcha' => 'Seekerhaidspreew',
 'createacct-imgcaptcha-ph' => 'Skriiw di tekst, diar dü boowen schochst',
 'createacct-submit' => 'Din brükerkonto iinracht',
+'createacct-another-submit' => 'En ööder brükerkonto iinracht',
 'createacct-benefit-heading' => '{{SITENAME}} woort faan lidj üs di maaget.',
 'createacct-benefit-body1' => '{{PLURAL:$1|feranrang|feranrangen}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|sidj|sidjen}}',
 'createacct-benefit-body3' => 'aktiif {{PLURAL:$1|skriiwer|skriiwern}}',
-'badretype' => 'Da biise pååsuurde stime ai oueriinj.',
+'badretype' => 'Jo tau paaswurden san ei likedenang.',
 'userexists' => 'Dideer brükernoome as ål ferjääwen.
 Wees sü gödj en kiis en ouderen.',
-'loginerror' => 'Fäägel bai önjmälding',
+'loginerror' => "Bi't uunmeldin as wat skiaf gingen",
 'createacct-error' => "Bi't iinrachten faan det brükerkonto as wat skiaf gingen",
-'createaccounterror' => 'Brükerkonto köö ai mååged wårde: $1',
-'nocookiesnew' => 'Di benjütertugung wörd mååged, ouers dü bast ai önjmälded. {{SITENAME}} brükt for jüdeer funksjoon cookies.
-Wees sü gödj än aktiwiir da än mäld de dan ma dan naien benjüternoome än dåt tuhiirend pååsuurd önj.',
-'nocookieslogin' => '{{SITENAME}} benjütet cookies tu e önjmälding foon da benjütere. Dü heest Cookis deaktiwiird.
-Wees sü gödj än aktiwiir da än fersäk dåt wider.',
+'createaccounterror' => 'Brükerkonto küd ei iinracht wurd: $1',
+'nocookiesnew' => 'Det brükerkonto as iinracht wurden, oober dü beest ei uunmeldet.
+{{SITENAME}} brükt cookies för detdiar aktjuun.
+Wees so gud an aktiwiare jo uun dan browser, an do melde di mä dan nei brükernööm an det nei paaswurd uun.',
+'nocookieslogin' => "{{SITENAME}} brükt cookies för't uunmeldin faan brükern.
+Dü heest cookies deaktiwiaret.
+Wees so gud an aktiwiare jo uun dan browser, an do ferschük det noch ans.",
 'nocookiesfornew' => 'Det brükerkonto as ei iinracht wurden, auer wi ei witj, huar a dooten faan kem.
 Üüb dan kompjuuter skel cookies aktiwiaret wees. Do rep detheer sidj noch ans nei ap.',
-'noname' => 'Dü möist en gültigen brükernooem önjjeewe.',
-'loginsuccesstitle' => 'Önjmälding erfolchrik',
-'loginsuccess' => "'''Dü bast nü ås „$1“ bai {{SITENAME}} önjmälded.'''",
-'nosuchuser' => 'Di brükernoome „$1“ bestoont ai.
-Präiw jü schriwwise (grut-/latjschriwing beåchte) unti [[Special:UserLogin/signup|mäld de ås naie brüker önj]].',
-'nosuchusershort' => 'Deer as nåån brüker ma noome  "$1".
-Präiw din ruchtschriwing.',
-'nouserspecified' => 'Dü schäät en brükernoome spesifisiire.',
-'login-userblocked' => 'Dideer brüker as spärd. Niinj ferloof tu önjmälding.',
-'wrongpassword' => 'Ferkiird pååsuurd önjjeewen.
-Wees sü gödje än fersäk dåt nuch iinjsen.',
-'wrongpasswordempty' => 'Deer wörd niinj pååsuurd önjjääwen. Fersäk dåt foon naien.',
-'passwordtooshort' => 'Pååsuurde mönje tu t manst {{PLURAL:$1|1 tiiken|$1 tiikne}} lung weese.',
-'password-name-match' => 'Din pååsuurd mätj ferschääle foon dan brükernoome.',
+'noname' => 'Dü skel en rochten brükernööm uundu.',
+'loginsuccesstitle' => 'Uunmeldin hää loket.',
+'loginsuccess' => "'''Dü beest nü üs „$1“ bi {{SITENAME}} uunmeldet.'''",
+'nosuchuser' => 'Di brükernööm „$1“ jaft at ei. Aachte üüb det skriiwwiis (an uk üüb grat- an letjskriiwang), an do [[Special:UserLogin/signup|melde di nei uun]].',
+'nosuchusershort' => 'Diar as nään brüker mä di nööm "$1".
+Heest dü ham uk rocht skrewen?',
+'nouserspecified' => 'Dü skel en brükernööm uundu.',
+'login-userblocked' => 'Didiar brüker as speret wurden. Hi mut ham ei uunmelde.',
+'wrongpassword' => 'Det paaswurd as ferkiard.
+Wees so gud an ferschük det noch ans.',
+'wrongpasswordempty' => 'Dü heest nian paaswurd iinden.
+Ferschük det man noch ans.',
+'passwordtooshort' => 'Paaswurden skel tumanst {{PLURAL:$1|1 tiaken|$1 tiakens}} lung wees.',
+'password-name-match' => 'Dü könst dan brükernööm ei üs paaswurd nem.',
 'password-login-forbidden' => 'Jüdeer brükernoome än paasuurd as ferbin.',
-'mailmypassword' => 'Nai pååsuurd tusiinje',
-'passwordremindertitle' => 'Nai tidwise pååsuurd for {{SITENAME}}',
+'mailmypassword' => 'Schüür mi en nei paaswurd.',
+'passwordremindertitle' => 'Nei tidjwiis paaswurd för {{SITENAME}}',
 'passwordremindertext' => 'En brüker (woorskiinelk dü, faan IP adres $1) hää am en nei paaswurd för {{SITENAME}} ($4) fraaget.
 En nei paaswurd för di brüker "$2" as maaget wurden an het nü "$3".
 
@@ -534,70 +546,72 @@ Wan dü det würelk so haa wel, do melde di nü uun an feranere det paaswurd. De
 Wan dü ei salew am en nei paaswurd fraaget heest, do säärst dü di am niks widjer komre. Do könst dü din ual paaswurd widjer brük.',
 'noemail' => 'Diar as nian e-mail adres bekäänd för di brüker "$1".',
 'noemailcreate' => 'Dü skel en rocht e-mail adres uundu.',
-'passwordsent' => 'En nai pååsuurd as sånd tu jü e-mail-adräs registriird for "$1".
-Mälde wi önj eefter dü jü füngen heest.',
-'blocked-mailpassword' => 'Jü foon de ferwånde IP-adräs as for dåt änren foon side späred. Am en masbrük tu ferhanern, wórd jü möölikhäid tu dåt önjfråågen foon en nai pååsuurd uk späred.',
-'eauthentsent' => 'En bestääsiings-e-mail wörd önj jü önjjääwen adräs sånd.
+'passwordsent' => 'En nei tidjwiis paaswurd as tu det e-mail-adres faan di brüker "$1" schüürd wurden.
+Melde di diarmä uun, wan dü det füngen heest. Det ual paaswurd blaft iarst ans bestunen.',
+'blocked-mailpassword' => 'Det IP-adres, wat dü brükst, as speret wurden. Am dat diar nian dom tjüch mä maaget woort, as uk det uffraagin faan paaswurden speret wurden.',
+'eauthentsent' => 'Diar as en e-mail tu det uunjiwen adres schüürd wurden.
 
-Iir en e-mail foon oudere brükere ouer jü e-mail-funksjoon emfångd wårde koon, mötj jü adräs än har wörklike tuhiirihäid tu dåtheer brükerkonto jarst bestääsied wårde. Wees sü gödj än befülie da haanewisinge önj di bestääsiings-e-mail.',
-'throttled-mailpassword' => 'Deer wörd önj da leeste {{PLURAL:$1|stün|$1 stüne}} ål en nai pååsuurd önjfrååged. Am en masbrük foon jüdeer funksjoon tu ferhanren, koon bloot {{PLURAL:$1|iinjsen pro stün|åle $1 stüne}} en nai pååsuurd önjfrååged wårde.',
+Iar en e-mail faan ööder brükern auer det e-mail-funktjuun uunnimen wurd koon, skal seeker steld wurd, dat det e-mail-adres uk würelk tu di brüker hiart. Wees so gud an befulge jo uunwisangen uun det e-mail, wat dü jüst füngen heest.',
+'throttled-mailpassword' => 'Diar as uun a leetst {{PLURAL:$1|stünj|$1 stünj}} al ans am en nei paaswurd uunfraaget wurden. Am dat diar nään masbrük mä drewen woort, koon bluas {{PLURAL:$1|iansis per stünj|iansis per $1 stünj}} am en nei paaswurd uunfraaget wurd.',
 'mailerror' => 'Fäägel bai dåt siinjen foon e e-mail: $1',
-'acct_creation_throttle_hit' => 'Besäkere foon jüheer Wiki, da din IP-adräse brüke, heewe önj e leeste däi {{PLURAL:$1|1 brükerkonto|$1 brükerkontos}} mååged, wat jü maksimool tuleet tål önj jüdeer tidperioode as.
+'acct_creation_throttle_hit' => 'Beschükern faan detheer wiki mä din IP-adres haa di leetst dai {{PLURAL:$1|1 brükerkonto|$1 brükerkontos}} iinracht. Muar san ei tuläät.
 
-Besäkere, da jüheer IP-adräse brüke, koone tutids niinj brükerkonto mör inruchte.',
-'emailauthenticated' => 'Din e-mail-adräs word di $2 am e klook $3 bestääsied.',
-'emailnotauthenticated' => 'Din E-mail-adräs as nuch ai bestääsied. Da füliende E-mail-funksjoone stönje jarst eefter erfolchrike bestääsiing tu ferfäiging.',
-'noemailprefs' => 'Jeew en E-mail-adräs önj da önjstalinge önj, deerma da füliende funksjoone tu ferfäiging stönje.',
-'emailconfirmlink' => 'E-mail-adräs bestääsie (autäntifisiire).',
+Beschükern mä detdiar IP-adres kön daalang nian brükerkontos muar iinracht.',
+'emailauthenticated' => 'Din e-mail-adres as di $2 am a klook $3 gudkäänd wurden.',
+'emailnotauthenticated' => 'Din e-mail-adres as noch ei gudkäänd. Jodiar e-mail-funktjuunen kön iarst brükt wurd, wan det adres gudkäänd wurden as.',
+'noemailprefs' => 'Du en e-mail-adres uun din iinstelangen iin, amdat dü jodiar funktjuunen brük könst.',
+'emailconfirmlink' => 'E-mail-adres gudkään',
 'invalidemailaddress' => 'Jü E-mail adräs wörd ai aksäptiird, ouerdåt jü en üngülti formoot (ewentuäl üngültie tiikne) tu heewen scheent.
 Wees sü gödj än jeef en koräkt adräs önj unti mäág dåt fäalj lääsi.',
 'cannotchangeemail' => 'E-mail-adresen kön uun detheer wiki ei feranert wurd.',
 'emaildisabled' => 'Fann detdiar sidj kön nian E-Mails fersjüürd wurd',
-'accountcreated' => 'Benjüterkonto mååged',
-'accountcreatedtext' => 'Dåt benjüteraccount for $1 as mååged wörden.',
-'createaccount-title' => 'Måågen foon en benjüterkonto for {{SITENAME}}',
-'createaccount-text' => 'Deer wörd for de en benjüterkonto "$2" aw {{SITENAME}} ($4) mååged. Dåt automaatisch generiird pååsuurd for "$2" as "$3".
-Dü schöist de nü önjmälde än dåt pååsuurd änre.
-
-Fåls dåt benjüterkonto üt fersiinj önjläid wörd, koost dü jüdeer tising ignoriire.',
-'usernamehasherror' => 'Benjüternoome mötje niinj rütetiikne önjthüulje',
-'login-throttled' => 'Dü heest tu oofding fersoocht, di önjtumälden.
-Wees sü gödj än täif, bit dü wider ferseechst.',
-'login-abort-generic' => 'Din önjmälding wus ei erfolchrik - Oufbräägen',
-'loginlanguagelabel' => 'Spräke: $1',
-'suspicious-userlogout' => 'Dan Oufmäldönjfrååge wörd ferwaigred, deer ja fermouslik foon en defäkte browser unti en cache-proxy sånd wörd.',
+'accountcreated' => 'Brükerkonto as iinracht wurden',
+'accountcreatedtext' => 'Det brükerkonto för [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) as iinracht wurden.',
+'createaccount-title' => 'En brükerkonto üüb {{SITENAME}} iinracht',
+'createaccount-text' => 'Diar as mä din e-mail adres för di en brükerkonto "$2" üüb {{SITENAME}} ($4) maaget wurden. För "$2" as automaatisk det paaswurd "$3" iinracht wurden.
+Dü skulst di nü uunmelde an det paaswurd anre.
+
+Wan det brükerkonto ütj fersen uunlaanj wurden as, säärst dü niks widjer onernem.',
+'usernamehasherror' => 'Uun brükernöömer mut nian rütjen föörkem.',
+'login-throttled' => 'Dü heest tufölsis fersoocht, di uuntumeldin.
+Wees so gud an teew en uugenblak, iar dü det noch ans ferschükst.',
+'login-abort-generic' => 'Det uunmeldin hää ei loket - Ufbreegen',
+'loginlanguagelabel' => 'Spriak: $1',
+'suspicious-userlogout' => 'Din ufmeldang as ei föörnimen wurden, auer det uunfraag ferlicht faan en uunstakenen browser of faan en cache-proxy kaam.',
 
 # Email sending
 'php-mail-error-unknown' => 'Ünbekäänd feeler mä det funktsjuun mail() faan PHP.',
-'user-mail-no-addy' => 'Köö niinj e-mail schake suner e-mail-adres.',
+'user-mail-no-addy' => 'Küd nian e-mail schüür saner e-mail-adres.',
 'user-mail-no-body' => 'Dü wulst en e-mail saner tekst wechsjüür.',
 
 # Change password dialog
-'resetpass' => 'Pååsuurd änre',
-'resetpass_announce' => 'Önjmälding ma di ouer E-mail tusånde kode. Am e önjmälding ouftusliten, möist dü en nai pååsuurd kiise.',
-'resetpass_header' => 'Account pååsuurd änre',
-'oldpassword' => 'Üülj pååsuurd:',
-'newpassword' => 'Nai pååsuurd:',
-'retypenew' => 'Tip nai pååsuurd nuch iinjsen:',
-'resetpass_submit' => 'Seet pååsuurd än mäld önj',
-'resetpass_success' => 'Din pååsuurd as ma resultoot änred!
-Nü wårst dü önjmälded...',
-'resetpass_forbidden' => 'Pååsuurde koone ai änred wårde',
-'resetpass-no-info' => 'Dü möist önjmälded weese am ju sid diräkt tu tu gripen.',
-'resetpass-submit-loggedin' => 'Pååsuurd änre',
-'resetpass-submit-cancel' => 'Oufbreege',
-'resetpass-wrong-oldpass' => 'Üngülti tämporäär unti antuäl pååsuurd.
-Möölikerwise heest dü din pååsuurd ål ma erfolch änred heest unti en nai tämporäär pååsuurd beönjdräägen.',
-'resetpass-temp-password' => 'Tidwise pååsuurd:',
+'resetpass' => 'Paaswurd feranre',
+'resetpass_announce' => 'Dü heest di mä di code uunmeldet, di dü per e-mail tuschüürd füngen heest.
+Am det uunmeldin uftuslütjen, skel dü en nei paaswurd iindu.',
+'resetpass_header' => 'Paaswurd feranre',
+'oldpassword' => 'Ual paaswurd:',
+'newpassword' => 'Nei paaswurd:',
+'retypenew' => 'Skriiw det paaswurd noch ans weder hen:',
+'resetpass_submit' => 'Paaswurd saat an uunmelde',
+'resetpass_success' => 'Din paaswurd as feranert wurden!
+Dü woorst nü uunmeldet ...',
+'resetpass_forbidden' => 'Det paaswurd koon ei feranert wurd.',
+'resetpass-no-info' => 'Dü skel di uunmelde, am üüb det sidj tutugripen.',
+'resetpass-submit-loggedin' => 'Paaswurd feranre',
+'resetpass-submit-cancel' => 'Ufbreeg',
+'resetpass-wrong-oldpass' => 'Detdiar paaswurd docht niks.
+Ferlicht heest dü jüst din paaswurd feranert
+of am en nei paaswurd uunfraaget.',
+'resetpass-temp-password' => 'Tidjwiis paaswurd:',
 'resetpass-abort-generic' => 'Det paaswurd-anerang as ferhanert wurden.',
 
 # Special:PasswordReset
-'passwordreset' => 'Paasuurd tubääg seete',
-'passwordreset-text' => 'Fal detheer formulaar ütj, am din paaswurd turag tu saaten.',
-'passwordreset-legend' => 'Paasuurd tubääg seete',
-'passwordreset-disabled' => 'Dü koost din paasuurd aw jüdeer wiki ai tubääg seete',
+'passwordreset' => 'Paaswurd turagsaat',
+'passwordreset-text-one' => 'Fal detheer formulaar ütj, am din paaswurd turag tu saaten.',
+'passwordreset-text-many' => '{{PLURAL:$1|Fal ian fial ütj, am din paaswurd turag tu saaten.}}',
+'passwordreset-legend' => 'Paaswurd turagsaat',
+'passwordreset-disabled' => 'Dü könst din paaswurd uun detdiar wiki ei turagsaat.',
 'passwordreset-emaildisabled' => 'E-mail as üüb detheer Wiki ufknipset wurden.',
-'passwordreset-pretext' => '{{PLURAL:$1||Du ian faan jo dooten oner iin}}',
 'passwordreset-username' => 'Brükernoome:',
 'passwordreset-domain' => 'Domain:',
 'passwordreset-capture' => 'Wel dü det e-mail nooracht uunluke?',
@@ -634,43 +648,43 @@ Tidwis paasuurd: $2',
 'changeemail-cancel' => 'Ufbreeg',
 
 # Edit page toolbar
-'bold_sample' => 'FÃ¥ten täkst',
-'bold_tip' => 'FÃ¥ten täkst',
-'italic_sample' => 'Kursiiwen täkst',
-'italic_tip' => 'Kursiiwen täkst',
-'link_sample' => 'Link-täkst',
-'link_tip' => 'Intärnen link',
-'extlink_sample' => 'http://www.example.com link-täkst',
-'extlink_tip' => 'Äkstärnen link (http:// beåchte)',
-'headline_sample' => 'Schuchte 2 ouerschraft',
-'headline_tip' => 'Schuchte 2 ouerschraft',
-'nowiki_sample' => 'Ünformatiirden täkst heer önjfäige',
-'nowiki_tip' => 'Ünformatiirden täkst',
-'image_tip' => 'Dååtäilink',
-'media_tip' => 'Meediendååtäi-link',
-'sig_tip' => 'Din signatuur ma tidståmp',
-'hr_tip' => 'Horizontool liinje (spårsoom ferwiinje)',
+'bold_sample' => 'Fäät buksteewen',
+'bold_tip' => 'Fäät buksteewen',
+'italic_sample' => 'Kursiif buksteewen',
+'italic_tip' => 'Kursiif buksteewen',
+'link_sample' => 'Link-tekst',
+'link_tip' => 'Intern ferwisang',
+'extlink_sample' => 'http://www.example.com link-tekst',
+'extlink_tip' => 'Ekstern ferwisang (seenk am http:// prefix)',
+'headline_sample' => 'Auerskraft (grate 2)',
+'headline_tip' => 'Auerskraft (grate 2)',
+'nowiki_sample' => 'Ünformatiaret tekst diar tusaat.',
+'nowiki_tip' => 'Ünformatiaret tekst',
+'image_tip' => 'Iinbünjen datei',
+'media_tip' => 'Meediendatei-link',
+'sig_tip' => 'Din onerskraft mä tidjstempel',
+'hr_tip' => 'Horisontaal streg (ei auerdriiw diarmä)',
 
 # Edit pages
-'summary' => 'Tuhuupefooting:',
-'subject' => 'Bedrååwet:',
-'minoredit' => 'Bloot kleenihäide wörden feränred',
-'watchthis' => 'Kiike eefter jüdeer sid',
+'summary' => 'Tuupfaadet:',
+'subject' => 'Auerskraft:',
+'minoredit' => 'Det as man en letj feranrang',
+'watchthis' => "Detdiar sidj uun't uug behual",
 'savearticle' => 'Sidj seekre',
 'preview' => 'Iarst ans luke',
 'showpreview' => 'Iarst ans luke',
 'showlivepreview' => 'Glik uunluke',
 'showdiff' => 'Feranrangen wise',
-'anoneditwarning' => "Dü beårbest jüdeer sid ünönjmälded. Wan dü spikerst, wård din aktuäle IP-adräs önj e fesjoonshistoori aptiikned än as deerma for åltens '''ålgemiin''' sichtboor.",
-'anonpreviewwarning' => "''Dü bast ai önjmälded. Bai t spiikern wårt din IP-adräs önj e fersjoonshistoori awtiikned.''",
-'missingsummary' => "'''Haanewising:\"' Dü heest niinj tuhuupefooting önjjääwen.
-Wan dü wider aw \"Sid spiikre\" klikst, wårt din änring suner tuhuupefooting ouernümen.",
-'missingcommenttext' => 'Jeew en tuhuupefooting önj.',
-'missingcommentheader' => "'''PÅÅS AW:''' dü heest niinj keer/ouerschraft önjjääwen.
-Wan dü wider aw \"{{int:savearticle}}\" klakst, wårt din beårbing suner ouerschaft spiikerd.",
-'summary-preview' => 'Forlök foon jü tuhuupfootingssid:',
-'subject-preview' => 'Forkiik foon dåt subjäkt:',
-'blockedtitle' => 'Brüker as späred',
+'anoneditwarning' => "'''Paase üüb:''' Dü bewerkest detdiar sidj anonüüm. Wan dü det seekerst, woort din aktuel IP-adres uun a ferluup aptiakent, an as diarmä '''för arken''' iintusen.",
+'anonpreviewwarning' => '"Dü beest ei uunmeldet. Bi\'t seekrin woort din IP-adres uun a ferluup faan werjuunen aptiakent."',
+'missingsummary' => "'''Paase üüb:''' Dü heest det ei tuupfaadet.
+Wan dü det sidj seekerst, woort det saner en kurtfaadet beskriiwang auernimen.",
+'missingcommenttext' => 'Faade det oner tuup.',
+'missingcommentheader' => "'''Paase üüb:''' Dü heest nian auerskraft uunden.
+Wan dü det sidj seekerst, woort det saner auerskraft auernimen.",
+'summary-preview' => 'Föörskau faan det tuupfaadang:',
+'subject-preview' => 'Föörskau faan det auerskraft:',
+'blockedtitle' => 'Brüker as speret',
 'blockedtext' => "'''Dan brükernööm of IP adres as speret wurden.'''
 
 Det as maaget wurden faan $1.
@@ -701,102 +715,104 @@ Dü könst ei det E-Mail-funktsjuun 'E-mail tu dideere brüker' brük, so loong
 
 Uugenblakelk as din IP addres $3, an det sper ID as #$5.
 För arke uunfraag wurd aal jo informatsjuunen boowen brükt.",
-'blockednoreason' => 'niinj grün önjjääwen',
-'whitelistedittext' => 'Dü möist de $1, am side beårbe tu koonen.',
-'confirmedittext' => 'Dü möist din E-mail-adräs jarst bestääsie, iir dü beårbinge döörfääre koost. Mååg din årbe radi än bestääsie din E-mail önj da  [[Special:Preferences|önjstalinge]].',
-'nosuchsectiontitle' => 'Stuk ai fünen',
-'nosuchsectiontext' => 'Dü fersoochst en stuk tu änren, dåt dåt ai jeeft.
-Dåt koon ferschääwen unti wächhååld weese, wilt dü jü sid bekiikedest.',
-'loginreqtitle' => 'Önjmälden nüsi.',
-'loginreqlink' => 'Önjmälde',
-'loginreqpagetext' => 'Dü möist $1 am oudere side tu bekiiken.',
-'accmailtitle' => 'Pååsuurd sånd.',
-'accmailtext' => "En tufäli generiird pååsuurd for [[User talk:$1|$1]] wörd tu $2 fersånd.
-
-Dåt pååsuurd for jüdeer nai benjüterkonto koon aw e spetsjoolsid ''[[Special:ChangePassword|Pååsuurd änre]]'' änred wårde.",
-'newarticle' => '(Nai)',
-'newarticletext' => "Dü bast en link tu en sid fülied, jü nuch ai bestoont.
-Am jü sid tu måågen, dreeg dan täkst önj e unerstönjene box in (sii jü
-[[{{MediaWiki:Helppage}}|heelpsid]] for mör informasjoon).
-Bast üt fersiien heer, klik di '''tubääg'''-klänkfläche foon dan browser.",
+'blockednoreason' => 'nään grünj uunden',
+'whitelistedittext' => 'Dü skel di $1, am sidjen tu bewerkin.',
+'confirmedittext' => 'Dü skel iarst din e-mail-adres gudkään, iar dü began könst tu werkin. Maage det üüb det sidj mä din persöönelk [[Special:Preferences|iinstelangen]].',
+'nosuchsectiontitle' => 'Kirew ei fünjen',
+'nosuchsectiontext' => "Dü wulst en kirew feranre, diar't goorei jaft.
+Ferlicht as det stregen of fersköwen wurden, jüst üs dü det sidj bewerke wulst.",
+'loginreqtitle' => 'Dü skel di uunmelde.',
+'loginreqlink' => 'Uunmelde',
+'loginreqpagetext' => 'Dü skel di $1, am ööder sidjen uuntulukin.',
+'accmailtitle' => 'Paaswurd as ferschüürd wurden.',
+'accmailtext' => "En tufelag iinracht paaswurd för [[User talk:$1|$1]] as tu $2 ferschüürd wurden.
+
+Det paaswurd för det nei brükerkonto koon üüb det spezial-sidj ''[[Special:ChangePassword|Paaswurd anre]]'' feranert wurd.",
+'newarticle' => '(Nei)',
+'newarticletext' => "Dü beest en ferwisang tu en sidj fulagt, diar't noch ei jaft.
+Am det sidj iinturachten, skriiw dan tekst uun det fial för't bewerkin iin.
+Üüb det [[{{MediaWiki:Helppage}}|halepsidj]] fanjst dü halep.
+Wan dü ütj fersen heer beest, trak ianfach üüb di '''turag'''-knoop faan dan browser.",
 'anontalkpagetext' => "----''Üüb detheer sidj könst dü en ünbekäänden brüker en nooracht du. Det lääpt auer sin IP adres. IP adresen kön faan flook brükern brükt wurd. Wan dü mä detheer nooracht niks began könst, do as det ferlicht för hoker ööders mend weesen. Dü säärst niks widjer onernem. Wan dü en aanj [[Special:UserLogin/signup|brükerkonto iinrachst]] of di [[Special:UserLogin|uunmeldest]], komt sowat ei weder föör.",
-'noarticletext' => 'Jüdeer sid önjhålt uugenblaklik nuch nån täkst.
-Dü koost dideere tiitel aw da ouder side [[Special:Search/{{PAGENAME}}|säke]],
-<span class="plainlinks">önj da deertuhiirende [{{fullurl:{{#special:Log}}|page={{FULLPAGENAMEE}}}} logböke säke] unti jüdeer sid [{{fullurl:{{FULLPAGENAME}}|action=edit}} beårbe]</span>.',
+'noarticletext' => 'Üüb detdiar sidj stäänt noch niks.
+Dü könst didiar tiitel üüb ööder sidjen [[Special:Search/{{PAGENAME}}|schük]],
+<span class="plainlinks">uun [{{fullurl:{{#special:Log}}|page={{FULLPAGENAMEE}}}} logbuken schük] of detdiar sidj [{{fullurl:{{FULLPAGENAME}}|action=edit}} bewerke]</span>.',
 'noarticletext-nopermission' => 'Üüb detdiar sidj stäänt noch niks, oober dü mutst diar uk niks iinskriiw.
-Dü könst diar üüb ööder sidjen efter [[Special:Search/{{PAGENAME}}|sjük]] of a <span class="plainlinks">[{{fullurl:{{#special:Log}}|page={{FULLPAGENAME}}}} logbuken uunluke].</span>',
+Dü könst diar üüb ööder sidjen efter [[Special:Search/{{PAGENAME}}|schük]] of a <span class="plainlinks">[{{fullurl:{{#special:Log}}|page={{FULLPAGENAME}}}} logbuken uunluke].</span>',
 'missing-revision' => 'Det werjuun #$1 faan det sidj "{{PAGENAME}}" jaft at ei.
 
 Det komt diar miast faan, dat en ual ferwisang stregen wurden as.
 Dü könst det uun\'t [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} logbuk faan stregen sidjen] efterlees.',
 'userpage-userdoesnotexist' => "Det brükerkonto ''$1'' as ei diar.
 Wel dü detdiar sidj würelk maage/bewerke?",
-'userpage-userdoesnotexist-view' => 'Benjüterkonto "$1" bestoont ai.',
-'blocked-notice-logextract' => 'Dideer benjüter as tutids spärd.
-For informasjoon füliet di leeste üttooch üt dåt benjüterspär-logbök:',
+'userpage-userdoesnotexist-view' => 'Son brükerkonto "$1" jaft at ei.',
+'blocked-notice-logextract' => "Didiar brüker as speret. Det stäänt uun't sper-logbuk:",
 'clearyourcache' => "'''Beaachte:''' Maage di cache faan dan browser leesag, wan dü a feranrangen sä wel.
 * '''Firefox / Safari:''' Hual ''Shift'' bi't aktualisiarin, of trak ''Strg an F5'' of ''Strg an R'' (''⌘an R'' üüb en Mac)
 * '''Google Chrome:''' Trak ''Strg an Shift an R'' (''⌘an Shift an R'' üüb en Mac)
 * '''Internet Explorer:''' Hual ''Strg'' bi't aktualisiarin, of trak ''Strg an F5''
 * '''Opera:''' ''Extras - Internetspuren löschen - Individuelle Auswahl - Den kompletten Cache löschen''",
-'usercssyoucanpreview' => "'''Tip:''' Brük di „{{int:showpreview}}“-knoop, am din nai CSS for dåt spiikern tu tästen.",
-'userjsyoucanpreview' => "'''Tip:''' Brük di „{{int:showpreview}}“-knoop, am din nai JavaScript for dåt spiikern tu tästen.",
-'usercsspreview' => "'''Påås aw dåt dü bloot din brüker CSS forbekiikest.'''
-'''Dåt as nuch ai spiikerd!'''",
-'userjspreview' => "'''Påås aw dåt dü bloot din brüker JavaScript präiwest/forbekiikest.'''
-'''Dåt as nuch ai spiikerd!'''",
+'usercssyoucanpreview' => "'''Tip:''' Brük di „{{int:showpreview}}“-knoop, am din nei CSS föör det seekrin tu testin.",
+'userjsyoucanpreview' => "'''Tip:''' Brük di „{{int:showpreview}}“-knoop, am din nei JavaScript föör det seekrin tu testin.",
+'usercsspreview' => "'''Seenk diaram, dat det bluas en föörskau faan din CSS as.'''
+'''Det as noch ei seekert wurden!'''",
+'userjspreview' => "'''Seenk diaram, dat det bluas en föörskau faan din JavaScript as.'''
+'''Det as noch ei seekert wurden!'''",
 'sitecsspreview' => "'''Påås aw dåt dü jüdeer CSS bloot forbekiikest.'''
 '''Dåt as nuch ai spiikerd!'''",
 'sitejspreview' => "'''Påås aw dåt dü jüdeer JavaScript code bloot forbekiikest.'''
 '''Dåt as nuch ai spiikerd!'''",
-'userinvalidcssjstitle' => "''Woorschauing:''' Skin \"\$1\"jeeft dåt ai. Betånk, dåt brükerspetsiifische .css- än .js-side ma en latj bökstääw önjfånge mönje, ålsü biispelswise ''{{ns:user}}:Münsterkjarl/vector.css'' önj stää foon ''{{ns:user}}:Münsterkjarl/Vector.css''.",
-'updated' => '(Änred)',
-'note' => "'''Påås aw:'''",
+'userinvalidcssjstitle' => "''Paase üüb:''' Skak \"\$1\" jaft at ei.
+Seenk diaram, dat faan en brüker iinracht .css- an .js-sidjen mä en letjen buksteew began skel. Bispal:
+''{{ns:user}}:Münsterkjarl/vector.css'' uunsteed faan ''{{ns:user}}:Münsterkjarl/Vector.css''.",
+'updated' => '(Feranert)',
+'note' => "'''Paase üüb:'''",
 'previewnote' => "'''Heer könst dü sä, hü det sidj wurd skal.'''
 Det sidj as oober noch ei seekert!",
 'continue-editing' => "Gung tu't fial för't bewerkin",
-'previewconflict' => 'Dideer forbekiik jeeft di inhålt foon dåt boowerst takstfälj wider. Sü wårt jü sid ütsiinj, wan dü nü spiikerst.',
+'previewconflict' => 'Detdiar föörskau wiset di boowenst dial faan dan tekst. So schocht hi ütj, wan dü ham nü seekerst.',
 'session_fail_preview' => "'''Din werk küd ei ufseekert wurd, diar as wat skiaf gingen.'''
-Fersjük det man noch ans an trak do üüb ''Sid spiikre''.
+Ferschük det man noch ans an trak do üüb ''Sidj seekre''.
 Wan't do imer noch ei loket, [[Special:UserLogout|melde di uf]] an weder uun.",
 'session_fail_preview_html' => "'''Din werk küd ei seekert wurd. Diar as wat skiaf gingen.'''
 
 ''Uun {{SITENAME}} as HTML aktiwiaret, an diaram as JavaScript deaktiwiaret wurden.''
 
-Fersjük det man noch ans an trak do üüb ''Sid spiikre''.
+Ferschük det man noch ans an trak do üüb ''Sidj seekre''.
 Wan't do imer noch ei loket, [[Special:UserLogout|melde di uf]] an weder uun.",
 'token_suffix_mismatch' => "'''Din werk küd ei ufseekert wurd, auer diar frääm tiaken uun san.'''
 
 Det komt flooksis föör, wan Dan anonym Proxy-siinst ei rocht werket.",
 'edit_form_incomplete' => "'''Enkelt dialen faan det formulaar san ei rocht uunkimen.'''
 Wees so gud an kontroliare ales noch ans.",
-'editing' => 'Beårbe foon $1',
+'editing' => 'Bewerkin faan $1',
 'creating' => 'Maage $1',
-'editingsection' => 'Beårben foon $1 (oufsnaas)',
-'editingcomment' => 'Beårben foon $1 (naien oufsnaas)',
-'editconflict' => 'Beårbingskonflikt: $1',
+'editingsection' => 'Bewerke $1 (kirew)',
+'editingcomment' => 'Bewerke $1 (nei kirew)',
+'editconflict' => "Konflikt bi't bewerkin (BK): $1",
 'explainconflict' => "Hoker ööders hää detheer sidj feranert, üs dü jüst diarmä uun a gang wiarst.
 Boowen könst dü di aktuel stant sä. Oner stun din fernanrangen.
 Bluas wat '''boowen''' stäänt, woort seekert. Diaram kopiare din feranrangen boowen iin.
 An do trak „{{int:savearticle}}“.",
-'yourtext' => 'Din täkst',
-'storedversion' => 'Spiikerd färsjoon',
-'nonunicodebrowser' => "'''Påås aw:''' Dan browser koon unicode-tiikne ai rucht ferårbe. Brük hål en oudern browser am side tu ferårben.",
-'editingold' => "'''PÅÅS AW: Dü beårbest en üülj färsjoon foon jüdeer sid. \"
-Wan dü spiikerst, wårde åle naiere färsjoone ouerschraawen.",
-'yourdiff' => 'Ferschääle',
-'copyrightwarning' => "''' Hål kopiir niinj webside, da ai din äine san, brük niinj uurhääwerruchtlik schütsede wärke suner ferloof foon di uurhääwer!'''<br />
-Dü jeefst üs heerma dan tusååge, dåt dü di täkst '''seelew ferfooted''' hääst, dåt di täkst ålgemiingödj '''(public domain)''' as, unti dåt di '''uurhääwer''' sin '''tustiming''' jääwen heet. For di fål jüdeer täkst ål ouersweer ütdänj wörd, wis hål aw jü diskusjoonssid deeraw haane. <i>Beåcht hål, dåt åle {{SITENAME}}-tujeefte automaatisch uner jü „$2“ stönje (sii $1 for detaile). For di fål dü ai mååst, dåt diin årbe heer foon oudere feränred än språåt wårt, dan kröög ai aw „sid spikre“.</i>",
+'yourtext' => 'Dan tekst',
+'storedversion' => 'Seekert werjuun',
+'nonunicodebrowser' => "'''Paase üüb:''' Dan browser komt ei mä unicode-tiakens turocht. Wees so gud an brük en öödern browser.",
+'editingold' => "'''Paase üüb: Dü bewerkest en ual werjuun faan detdiar sidj.
+Wan dü det seekerst, wurd aal a nei werjuunen auerskrewen.'''",
+'yourdiff' => 'Ferskeeler',
+'copyrightwarning' => "Seenk diaram, dat bidracher tu {{SITENAME}} oner det \$1 ütjden wurd (muar stäänt bi \$2).
+Wan dü ei wel, dat öödern dan bidrach widjer bewerke, do trak ei üüb \"Seekre\".<br />
+Dü ferspräächst, dat dü di tekst salew skrewen heest of dat diar nian kopiarrochten üüb lei.
+'''Dü mutst nian werk mä kopiarrochten saner ferloof heer iinstel!'''",
 'copyrightwarning2' => "Seenk diaram, dat det sidj {{SITENAME}} faan öödern bewerket, feranert of uk stregen wurd koon. Wan dü det ei wel, do skriiw heer niks iin! 
 
 Wan dü heer wat iinskrafst, do beest dü diarmä iinferstenen an seekerst tu, dat dü det '''salew skrewen''' heest of faan en steed auernimen heest, huar '''nian rochten''' üüb lei. (Luke bi $1, wan dü muar wed wel.)
 
 '''Auerdreeg nään frääm teksten an bilen saner ferloof!'''",
 'longpageerror' => "'''Error: Dan tekst as {{PLURAL:$1|ian kilobyte|$1 kilobytes}} lung, hi mut oober ei linger wees üs {{PLURAL:$2|ian kilobyte|$2 kilobytes}}.'''Hi koon ei ufspiikerd wurd.",
-'readonlywarning' => "'''PÅÅS AW: Jü dootenbånk wörd for unerhult spärd, sü dåt din änringe tutids ai spiikerd wårde koone.
-Wees sü gödj än sääkre di täkst lokool aw din kompjuuter än fersäk tun lääsern tidpunkt, da änringe tu ouerdreegen.'''.
+'readonlywarning' => "'''Paase üüb: Dü könst uun uugenblak ei üüb det dootenbeenk tugrip. Din dooten kön ei seekert wurd.''' Wees so gud an seekre dan tekst iarst ans üüb dan reegner, an ferschük leederhen, ham tu auerdreegen.
 
-Grün for jü späre: $1",
+Grünj för det sperin: $1",
 'protectedpagewarning' => "'''Paase üüb: Detdiar sidj as speret wurden. Bluas administratooren kön det bewerke.'''
 Uun't logbuk stäänt muar diartu:",
 'semiprotectedpagewarning' => "'''Paase üüb: Detdiar sidj as dialwiis tu't bewerkin speret wurden. Bluas gudkäänd brükern kön det bewerke.'''
@@ -804,33 +820,32 @@ Uun't logbuk stäänt muar diartu:",
 'cascadeprotectedwarning' => "'''Paase üüb:''' Detdiar sidj koon bluas faan administratooren bewerket wurd. Hat as uun {{PLURAL:$1|detdiar ööder sidj|jodiar ööder sidjen}} iinbünjen, diar troch en kaskaaden-optsjuun seekert {{PLURAL:$1|as|san}}:",
 'titleprotectedwarning' => "'''Paase üüb: \"Detdiar sidj mä didiar nööm koon ei faan arken bewerket wurd. Bluas enkelt brükern mä [[Special:ListGroupRights|was brükerrochten]] kön detdiar sidj nei maage of bewerke.'''
 Uun't logbuk stäänt muar diartu:",
-'templatesused' => '{{PLURAL:$1|Jü füliend forlååg wårt|Da füliende forlååge wårde}} foon jüdeer sid ferwånd:',
-'templatesusedpreview' => '{{PLURAL:$1|Jü füliend forlååg wårt|Da füliende forlååge wårde}} foon diheere sideforlök ferwånd:',
-'templatesusedsection' => '{{PLURAL:$1|Jü füliend forlååg wårt|Da füliende forlååge wårde}} foon dideer oufsnaas ferwånd:',
+'templatesused' => '{{PLURAL:$1|Detdiar föörlaag woort|Jodiar föörlaagen wurd}} üüb detdiar sidj brükt:',
+'templatesusedpreview' => '{{PLURAL:$1|Detdiar föörlaag woort|Jodiar föörlaagen wurd}} uun detdiar sidjenföörskau brükt:',
+'templatesusedsection' => '{{PLURAL:$1|Detdiar föörlaag woort|Jodiar föörlaagen wurd}} uun didiar kirew brükt:',
 'template-protected' => '(seekert)',
 'template-semiprotected' => '(hualew-seekert)',
-'hiddencategories' => 'Jüdeer sid as lasmoot foon {{PLURAL:$1|1 ferstäägen kategorii|$1 ferstäägene kategoriie}}:',
-'nocreatetext' => 'Aw {{SITENAME}} wörd dåt måågen foon naie side begränsed.
-Dü koost bestönjene side änre unti de [[Special:UserLogin|önjmälde unti mååg en account]].',
-'nocreate-loggedin' => 'Dü heest niinj beruchtiging, naie side tu måågen.',
-'sectioneditnotsupported-title' => 'Jü beårbing foon oufsnaase wårt ai unerstüted',
-'sectioneditnotsupported-text' => 'Jü beårbing foon oufsnaase wårt aw jüdeer beårbingssid ai stiped.',
-'permissionserrors' => 'Beruchtigingsfäägel',
-'permissionserrorstext' => 'Dü bast ai beruchted, jü aksjoon üttufäären. {{PLURAL:$1|grün|grüne}}:',
+'hiddencategories' => 'Detdiar sidj hiart tu {{PLURAL:$1|1 ferbürgen kategorii|$1 ferbürgen kategoriin}}:',
+'nocreatetext' => 'Üüb {{SITENAME}} könst dü nian nei sidjen maage, oober dü könst sidjen feranre. [[Special:UserLogin|Melde di uun of racht en brükerkonto iin]].',
+'nocreate-loggedin' => 'Dü mutst nian nei sidjen maage.',
+'sectioneditnotsupported-title' => 'Det bewerkin faan enkelt kirwer as ei mögelk.',
+'sectioneditnotsupported-text' => 'Det bewerkin faan enkelt kirwer gongt üüb detdiar sidj ei.',
+'permissionserrors' => 'Brükerrochten ling ei',
+'permissionserrorstext' => 'Dü heest diar ei a brükerrochten för. {{PLURAL:$1|Grünj|Grünjer}}:',
 'permissionserrorstext-withaction' => 'Dü heest ei det rocht, $2.
 {{PLURAL:$1|Grünj|Grünjer}}:',
 'recreate-moveddeleted-warn' => "'''Paase üüb: Dü wel en artiikel maage, diar iar al ans stregen wurden as.'''
 Auerlei di det gud, amdat dü niks ferkiard maagest.
 Uun't logbuk stäänt muar diartu:",
-'moveddeleted-notice' => 'Jüheer sid wörd sleeked. Deer füliet en üttooch üt dåt sleek- än ferschüwingslogbök for jüheer sid.',
-'log-fulllog' => 'Åle logbük-önjdrååge önjkiike',
-'edit-hook-aborted' => 'Jü beårbing wörd suner ferklååring döör en snaasstää oufbräägen.',
-'edit-gone-missing' => 'Jü sid köö ai aktualisiird wårde.
-Jü wörd önjscheened sleeked.',
-'edit-conflict' => 'Beårbingskonflikt.',
-'edit-no-change' => 'Din beårbing wörd ignoriird, deer niinj änring an e täkst fornümen wörd.',
-'edit-already-exists' => 'Köö niinj nai sid mååge.
-Dåt bestöö ål.',
+'moveddeleted-notice' => "Detdiar sidj as stregen wurden.
+Uun't strik- an fersküüw-logbuk oner stäänt muar diartu.",
+'log-fulllog' => 'Logbuk-iindracher uunluke',
+'edit-hook-aborted' => "Det bewerkin as faan't software ufbreegen wurden. Di grünj as ei bekäänd.",
+'edit-gone-missing' => 'Detdiar sidj küd ei aktualisiaret wurd. Ferlicht as det stregen wurden.',
+'edit-conflict' => "Konflikt bi't bewerkin (BK).",
+'edit-no-change' => 'Din feranrang woort ei seekert, auer dü di tekst ei feranert heest.',
+'postedit-confirmation' => 'Din feranrang as seekert wurden.',
+'edit-already-exists' => 'Det nei sidj küd ei iinracht wurd. Son sidj as al diar.',
 'defaultmessagetext' => 'Standard tekst',
 'content-failed-to-parse' => "Parsing faan $2 för't model $1 ging skiaf: $3",
 'invalid-content-data' => 'Diar stäänt wat uun, wat diar ei hen hiart',
@@ -845,17 +860,17 @@ Dåt bestöö ål.',
 'content-model-css' => 'CSS',
 
 # Parser/template warnings
-'expensive-parserfunction-warning' => 'Woorschauing: Jüdeer sid önjthålt tu fool apteele foon widluftie parserfunksjoone.
-
-Deer {{PLURAL:$2|mötj ai mör ås 1 apteel|mönje ai mör ås $1 apteele}} weese.',
-'expensive-parserfunction-category' => 'Side, da widluftie parserfunksjoone tu oofding apteele',
-'post-expand-template-inclusion-warning' => "'''Woorschauing:''' Jü grutelse foon da önjbünene forlååge as tu grut, hu forlååge koone ai önjbünen wårde.",
-'post-expand-template-inclusion-category' => 'Side, önj da jü maksimoole grutelse foon önjbünene forlååge ouerschran as',
-'post-expand-template-argument-warning' => 'Påås aw: Jüdeer sid enthålt tumanst en argumänt önj en forlååge, dåt äkspandiird tu grut as. Dadeere argumänte wårde ignoriird.',
-'post-expand-template-argument-category' => 'Side, da ignoriirde forlååge-argumänte önjthüülje',
-'parser-template-loop-warning' => 'Forlåågesloif önjtdäkt: [[$1]]',
-'parser-template-recursion-depth-warning' => 'Forloagerekursjoonsdiipgränse ouerschran ($1)',
-'language-converter-depth-warning' => 'Spräkekonwärsjoonsdiipdegränse ouerschren ($1)',
+'expensive-parserfunction-warning' => "'''Paase üüb:''' Detdiar sidj brükt tuföl widjloftag server-funktjuunen.
+
+Diar mut ei muar üs {{PLURAL:$2|1|$2}} brükt wurd. Nü {{PLURAL:$1|woort diar 1|wurd diar $1}} brükt.",
+'expensive-parserfunction-category' => 'Sidjen mä tuföl parser-funktjuunen.',
+'post-expand-template-inclusion-warning' => "'''Paase üüb:''' Enkelt föörlaagen san tu grat, jo kön ei uun det sidj iinbünjen wurd.",
+'post-expand-template-inclusion-category' => 'Sidjen mä muar üs det maksimaal taal faan iinbünjen föörlaagen.',
+'post-expand-template-argument-warning' => "'''Paase üüb:''' Üüb detdiar sidj stäänt tumanst ään iindrach för en föörlaag, diar tu grat as. Sok iindracher wurd ei ferwerket.",
+'post-expand-template-argument-category' => 'Sidjen mä föörlaagen, huar ei arke iindrach brükt wurd koon.',
+'parser-template-loop-warning' => 'Diar as en föörlaagensleuf: [[$1]]',
+'parser-template-recursion-depth-warning' => 'Tuföl föörlaagen uun föörlaagen ($1)',
+'language-converter-depth-warning' => 'Spriakenkonwerter auerläästet ($1)',
 'node-count-exceeded-category' => 'Jodiar sidjen haa tuföl ferbinjangen (nodes)',
 'node-count-exceeded-warning' => 'Detdiar sidj hää tuföl ferbinjangen (nodes)',
 'expansion-depth-exceeded-category' => 'Jodiar sidjen haa tuföl ütjwidjangen (expansion)',
@@ -867,187 +882,184 @@ Deer {{PLURAL:$2|mötj ai mör ås 1 apteel|mönje ai mör ås $1 apteele}} wees
 # "Undo" feature
 'undo-success' => 'Detdiar feranrang koon turag nimen wurd. 
 Luke oner, of dü det uk würelk du wel, an do seekre din feranrangen.',
-'undo-failure' => 'Jü änring köö ai tunintemååged wårde, deer di bedrååwede oufsnaas intwasche feränred wörd.',
-'undo-norev' => 'Jü beårbing köö ai tunintemååged wårde, deer jü ai bestoont unti sleeked wörd.',
-'undo-summary' => 'Änring $1 foon [[Special:Contributions/$2|$2]] ([[User talk:$2|Diskusjoon]]) tunintemååged.',
+'undo-failure' => 'Det feranrang küd ei stregen wurd, auer di kirew uuntesken feranert wurden as.',
+'undo-norev' => 'Det feranrang küd ei turagsaat wurd, auer diar niks as of auer det sidj stregen wurden as.',
+'undo-summary' => 'Feranrang $1 faan [[Special:Contributions/$2|$2]] ([[User talk:$2|Diskusjuun]]) turagsaat.',
+'undo-summary-username-hidden' => 'Feranrang $1 faan en ferbürgenen brüker turagsaat',
 
 # Account creation failure
-'cantcreateaccounttitle' => 'Benjüterkonto köö ai mååged wårde',
-'cantcreateaccount-text' => "Dår måågen foon en brükerkonto foon jü IP-adräs '''($1)''' üt wörd döör [[User:$3|$3]] späred.
+'cantcreateaccounttitle' => 'Det brükerkonto koon ei iinracht wurd',
+'cantcreateaccount-text' => "Det iinrachten faan en brükerkonto faan det IP-adres '''($1)''' as faan [[User:$3|$3]] speret wurden.
 
-Grün foon jü späre: ''$2''",
+Grünj för det sper: ''$2''",
 
 # History pages
-'viewpagelogs' => 'Logböke for jüdeer sid wise',
-'nohistory' => 'Deer as niinj beårbingshistoori for jüdeer sid.',
-'currentrev' => 'Aktäle färsjoon.',
-'currentrev-asof' => 'Aktuäl färsjoon foon $2 am e klook $3',
-'revisionasof' => 'Färsjoon foon e klook $2, $3',
-'revision-info' => 'Färsjoon foon di $4 am e klook $5 foon $2',
-'previousrevision' => '← Näistålere färsjoon',
-'nextrevision' => 'Näistjunger färsjoon →',
-'currentrevisionlink' => 'Aktuäle färsjoon',
-'cur' => 'aktuäl',
-'next' => 'ist',
-'last' => 'leest',
+'viewpagelogs' => 'Logbuken faan detdiar sidj uunwise',
+'nohistory' => 'Detdiar sidj hää nään ferluup faan werjuunen.',
+'currentrev' => 'Leetst werjuun',
+'currentrev-asof' => 'Leetst werjuun faan di $2, am a klook $3',
+'revisionasof' => 'Werjuun faan a $2, klook $3',
+'revision-info' => 'Werjuun faan di $4 am a klook $5 faan $2',
+'previousrevision' => '← Naistääler werjuun:',
+'nextrevision' => 'Naistjonger werjuun →',
+'currentrevisionlink' => 'Leetst werjuun',
+'cur' => 'Aktuel',
+'next' => 'Naist',
+'last' => 'Leetst',
 'page_first' => 'Began',
-'page_last' => 'Iinje',
-'histlegend' => 'Tu wising foon da änringe iinjfåch da tu ferglikene Färsjoone ütwääle än di klänkfläche „{{int:compareselectedversions}}“ klikke.<br />
-* (Aktuäl) = unerschiis tu e aktuäle färsjoon, (Leeste) = unerschiis tu e leeste färsjoon
-* Klook/dootem = färsjoon tu jüdeer tid, brükernoome/IP-adräs foon di beårber, L = latje änring.',
-'history-fieldset-title' => 'Säk önj e färsjoonshistoori',
-'history-show-deleted' => 'bloot straagene färsjoone',
-'histfirst' => 'Ålste',
-'histlast' => 'Naiste',
-'historysize' => '({{PLURAL:$1|1 Byte|$1 Bytes}})',
-'historyempty' => '(lääsi)',
+'page_last' => 'Aanj',
+'histlegend' => "Am a feranrangen uuntuwisin, schük tau werjuunen ütj an trak üüb „{{int:compareselectedversions}}“.<br />
+* '''({{int:cur}})''' = ferskeel tu't aktuel werjuun, '''({{int:last}})''' = ferskeel tu't leetst werjuun, '''{{int:minoreditletter}}''' = letj feranrang.",
+'history-fieldset-title' => 'Schük uun a ferluup',
+'history-show-deleted' => 'Bluas stregen werjuunen',
+'histfirst' => 'Äälst',
+'histlast' => 'Neist',
+'historysize' => '({{PLURAL:$1|1 byte|$1 bytes}})',
+'historyempty' => '(leesag)',
 
 # Revision feed
-'history-feed-title' => 'Färsjoonshistoori',
-'history-feed-description' => 'Färsjoonshistoori for jüdeer sid önj {{SITENAME}}',
-'history-feed-item-nocomment' => '$1 bit $2',
-'history-feed-empty' => 'Jü önjfordied sid bestoont ai. Flicht wörd jü sleeked unti ferschääwen.  [[Special:Search|Döörsäk]] {{SITENAME}} aw pååsende naie side.',
+'history-feed-title' => 'Ferluup faan werjuunen',
+'history-feed-description' => 'Ferluup faan werjuunen faan detdiar sidj uun {{SITENAME}}',
+'history-feed-item-nocomment' => '$1 di $3 am a klook $4',
+'history-feed-empty' => 'Son sidj jaft at ei. Ferlicht as det stregen of fersköwen wurden. [[Special:Search|Schük]] üüb {{SITENAME}} efter nei sidjen, diar diartu paase.',
 
 # Revision deletion
-'rev-deleted-comment' => '(Tuhuupefooting wächnümen)',
-'rev-deleted-user' => '(Brükernoome wächhååld)',
-'rev-deleted-event' => '(Logbökaksjoon wächhååld)',
-'rev-deleted-user-contribs' => '[Benjüternoome unti IP-adräs wächhååld - beårbing üt baidråge ferstäägen]',
-'rev-deleted-text-permission' => "Judeer Färsjoon wörd '''straagen'''.
-Näre önjgoowen tu di strikforgung ås uk en begrüning fant huum önj dåt [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} strik-logbök].",
-'rev-deleted-text-unhide' => "Jüdeer färsjoon as '''straagen''' wörden.
-Ainkelthäide fant huum önj dåt [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} strik-logbök].
-Dü koost nuch [$1 jüdeer färsjoon bekiike], wan dü wider gunge mååst.",
-'rev-suppressed-text-unhide' => "Jüdeer färsjoon as '''unerdrükt''' wörden.
-Ainkelthäide fant huum önj dåt [{{fullurl:{{#special:Log}}/suppress|page={{FULLPAGENAMEE}}}} strik-logbök].
-Dü koost nuch [$1 jüdeer färsjoon bekiike], wan dü wider gunge mååst.",
-'rev-deleted-text-view' => "Jüdeer Färsjoon as '''straagen''' wörden.
-Dü koost da wider önjkiike. Näre önjgoowen tu di sleekforgung ås uk en begrüning fant huum önj dåt [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} strik-logbök].",
-'rev-suppressed-text-view' => "Jüdeer färsjoon as '''unerdrükd''' wörden.
-Dü koost da önjkiike. Ainkelthäide stönje önj dåt [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} unerdrukings-logbök].",
-'rev-deleted-no-diff' => "Dü koost jüdeer ferschääl ai bekiike, dan iinj foon da änringe wörd '''straagen'''. Näre önjgoowen tu di strikforgung ås uk en begrüning fant huum önj dåt [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} strik-logbök].",
-'rev-suppressed-no-diff' => "Dü koost jüdeer ferschääl ai bekiike, dan iinj foon da änringe wörd '''straagen'''.",
-'rev-deleted-unhide-diff' => "Iinj foon da änringe doon jüdeer ferschääl as '''straagen''' wörden.
-Ainkelthäide fant huum önj dåt [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} strik-logbök].
-Dü koost nuch [$1 jüdeer färsjoon bekiike], wan dü wider gunge mååst.",
-'rev-suppressed-unhide-diff' => "Iinj foon da färsjoone foon dåtdeer ferschääl wörd '''unerdrükd'''.
-Ainkelthäide fant huum önj dåt [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} unerdruk-logbök].
-Dü koost nuch [$1 dåtdeer ferschääl bekiike], wan dü wider gunge mååst.",
-'rev-deleted-diff-view' => "En Färsjoon foon dåtdeer färsjoonsferschääl wörd '''straagen'''.
-Dü koost dåt färsjoonsferschääl siinj.
-Näre önjgoowen fant huum önj dåt [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} strik-logbök].",
-'rev-suppressed-diff-view' => "Iinj foon da färsjoone foon dåtdeer färsjoonsferschääl wörd '''unerdrükd'''.
-Dü koost dåtheer färsjoonsferschääl siinj. Ainkelthäide stönje önj dåt [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} unerdrukings-logbök].",
-'rev-delundel' => 'wis/fersteeg',
+'rev-deleted-comment' => '(Tuupfaadet beskriiwang wechnimen)',
+'rev-deleted-user' => '(Brükernööm stregen)',
+'rev-deleted-event' => '(Logbuk-iindrach stregen)',
+'rev-deleted-user-contribs' => '[Brükernööm of IP-adres wechnimen - Feranrangen uun bidracher ferbürgen]',
+'rev-deleted-text-permission' => "Detdiar werjuun as '''stregen''' wurden.
+Uun't [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} strik-logbuk] stäänt muar diartu.",
+'rev-deleted-text-unhide' => "Detdiar werjuun as '''stregen''' wurden.
+Uun't [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} strik-logbuk] stäänt muar diartu.
+Dü könst [$1 detdiar werjuun uunluke], wan dü wel.",
+'rev-suppressed-text-unhide' => "Detdiar werjuun as '''ferbürgen''' wurden.
+Uun't [{{fullurl:{{#special:Log}}/suppress|page={{FULLPAGENAMEE}}}} fersteeg-logbuk] stäänt muar diartu.
+Dü könst [$1 detdiar werjuun uunluke], wan dü wel.",
+'rev-deleted-text-view' => "Detdiar werjuun as '''stregen''' wurden.
+Dü könst det noch uunluke. Uun't [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} strik-logbuk] stäänt muar diartu.",
+'rev-suppressed-text-view' => "Detdiar werjuun as '''ferbürgen''' wurden.
+Dü könst det noch uunluke. Uun't [{{fullurl:{{#special:Log}}/suppress|page={{FULLPAGENAMEE}}}} fersteeg-logbuk] stäänt muar diartu.",
+'rev-deleted-no-diff' => "Dü könst di ferskeel ei uunluke, auer ian werjuun '''stregen''' wurden as.
+Wan dü muar wed wel, luke iin uun't [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} strik-logbuk].",
+'rev-suppressed-no-diff' => "Dü könst di ferskeel ei uunluke, auer ian werjuun '''stregen''' wurden as.",
+'rev-deleted-unhide-diff' => "Ian faan jodiar werjuunen as '''stregen''' wurden. Wan dü muar wed wel, luke iin uun't [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} strik-logbuk].
+Dü könst [$1 di ferskeel uunluke], wan dü wel.",
+'rev-suppressed-unhide-diff' => "Ian faan jodiar werjuunen as '''ferbürgen''' wurden. Wan dü muar wed wel, luke iin uun't [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} fersteeg-logbuk].
+Dü könst [$1 di ferskeel uunluke], wan dü wel.",
+'rev-deleted-diff-view' => "Ian faan jodiar werjuunen as '''stregen''' wurden.
+Dü könst di ferskeel uunluke. Wan dü muar wed wel, luke iin uun't [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} strik-logbuk].",
+'rev-suppressed-diff-view' => "Ian faan jodiar werjuunen as '''ferbürgen''' wurden. Dü könst di ferskeel uunluke. Wan dü muar wed wel, luke iin uun't [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} fersteeg-logbuk].",
+'rev-delundel' => 'wise/fersteeg',
 'rev-showdeleted' => 'wise',
-'revisiondelete' => 'Färsjoone strike/wider mååge',
-'revdelete-nooldid-title' => 'Niinj färsjoon önjjääwen',
+'revisiondelete' => 'Werjuunen strik of weder iinstel',
+'revdelete-nooldid-title' => 'Nian werjuun uunden',
 'revdelete-nooldid-text' => 'Dü heest nian werjuun för detheer aktjuun uunden, of det werjuun jaft at ei, of dü ferschükst, en aktuel werjuun tu striken.',
-'revdelete-nologtype-title' => 'Niinj logtüüp önjjääwen',
-'revdelete-nologtype-text' => 'Deer wörd niinj logtüüp for jüheer aksjoon önjjääwen.',
-'revdelete-nologid-title' => 'Üngülti logönjdråch',
-'revdelete-nologid-text' => 'Deer wör niinj logtüüp ütkiisd unti di kiisde logtüüp bestoont ai.',
-'revdelete-no-file' => 'Jü önjjääwen dootäi bestoont ai.',
-'revdelete-show-file-confirm' => 'Bast dü sääker, dåt de jü sleeked färsjoon foon e dootäi „<nowiki>$1</nowiki>“ foon e $2 am e klook $3 önjsiinj wäät?',
-'revdelete-show-file-submit' => 'Jåå',
+'revdelete-nologtype-title' => 'Nian log-typ uunden',
+'revdelete-nologtype-text' => 'Dü heest nään log-typ för detdiar aktjuun uunden.',
+'revdelete-nologid-title' => 'Ferkiard log-iindrach',
+'revdelete-nologid-text' => 'Dü heest nään log-typ uunden of di log-typ as ferkiard.',
+'revdelete-no-file' => 'Son dateinööm as ei diar.',
+'revdelete-show-file-confirm' => 'Wel dü würelk det stregen werjuun faan det datei „<nowiki>$1</nowiki>“ faan di $2, am a klook $3 uunluke?',
+'revdelete-show-file-submit' => 'Ja',
 'revdelete-selected' => "'''{{PLURAL:$2|Ütjsoocht werjuun|Ütjsoocht werjuunen}} faan [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Ütjsoocht logbukiindrach|Ütjsoocht logbukiindracher}}:'''",
-'revdelete-text' => "'''Stregen werjuunen an aktjuunen bliiw uun det werjuunshistoore an uun a logbuken, man det koon ei arken efterlees.'''
+'revdelete-text' => "'''Stregen werjuunen an aktjuunen bliiw uun di ferluup an uun a logbuken, man det koon ei arken efterlees.'''
 
-Ööder administratooren üüb {{SITENAME}} kön oober üüb det ferbürgen histoore tugrip an tu nuad en ual werjuun weder iinstel.",
+Ööder administratooren üüb {{SITENAME}} kön oober üüb di ferbürgen ferluup tugrip an tu nuad en ual werjuun weder iinstel.",
 'revdelete-confirm' => 'Ferseekre noch ans, dat dü det würelk du wel, dat dü witjst, wat dü dääst, an dat det mä a [[{{MediaWiki:Policy-url}}|bestemangen]] auerian stemet.',
 'revdelete-suppress-text' => "Det skul '''bluas''' onertrakt wurd bi:
 * Persöönelk informatsjuunen, diar näämen wat uungung
 *: ''Adresen, Tilefoonnumern, Ferseekerangsnumern an sowat''",
-'revdelete-legend' => 'Seeten foon da sachtboorhäids-gränse',
-'revdelete-hide-text' => 'Täkst foon e färsjoon fersteege',
-'revdelete-hide-image' => 'Fersteege wat önj e Dootäi stoont',
-'revdelete-hide-name' => 'Logbök-aksjoon fersteege',
-'revdelete-hide-comment' => 'Beårbingskomäntoor fersteege',
-'revdelete-hide-user' => 'Benjüternoome//IP-adräse foon e beårber fersteege',
-'revdelete-hide-restricted' => 'Doote uk for administratoore än oudere unerdrüke',
-'revdelete-radio-same' => '(ai änre)',
-'revdelete-radio-set' => 'Jåå',
-'revdelete-radio-unset' => 'Nåån',
-'revdelete-suppress' => 'Grün foon dåt striken uk for administratoore fersteege',
-'revdelete-unsuppress' => 'Gränse for wi måågede färsjoone wächnaame',
-'revdelete-log' => 'Begrüning:',
-'revdelete-submit' => 'Aw {{PLURAL:$1|kiisd färsjoon|kiisde färsjoone}} önjwiinje',
-'revdelete-success' => "'''Jü färsjoonsönjsicht wörd aktualisiird.'''",
+'revdelete-legend' => 'Iinstelangen, hüföl tu sen wees skal',
+'revdelete-hide-text' => 'Tekst faan det werjuun fersteeg',
+'revdelete-hide-image' => 'Fersteeg, wat uun det datei stäänt',
+'revdelete-hide-name' => 'Logbuk-aktjuun fersteeg',
+'revdelete-hide-comment' => 'Tuupfaadet beskriiwang fersteeg',
+'revdelete-hide-user' => 'Brükernööm/IP-adres faan di brüker fersteeg',
+'revdelete-hide-restricted' => 'Dooten uk för administratooren an öödern fersteeg',
+'revdelete-radio-same' => '(ei feranre)',
+'revdelete-radio-set' => 'Ja',
+'revdelete-radio-unset' => 'Naan',
+'revdelete-suppress' => "Grünj för't striken uk för administratooren an öödern fersteeg",
+'revdelete-unsuppress' => 'Weder iinsteld werjuunen luasmaage',
+'revdelete-log' => 'Grünj:',
+'revdelete-submit' => 'Widjer för {{PLURAL:$1|ütjsoocht werjuun|ütjsoocht werjuunen}}',
+'revdelete-success' => "'''Det werjuunsuunsicht as aktualisiaret wurden.'''",
 'revdelete-failure' => "'''Jü färsjoonsönjsicht köö ai aktualisiird wårde:'''
 $1",
-'logdelete-success' => "'''Logbökönjsicht ma erfolch aktualisiird.'''",
-'logdelete-failure' => "'''Logböksachtboorhäid köö ai änred wårde:'''
+'logdelete-success' => "'''Logbukuunsicht as aktualisiaret wurden.'''",
+'logdelete-failure' => "'''Det logbukuunsicht küd ei feranert wurd:'''
 $1",
-'revdel-restore' => 'sichtboorhäid änre',
-'revdel-restore-deleted' => 'sleekede färsjoone',
-'revdel-restore-visible' => 'sachtboore färsjoone',
-'pagehist' => 'Färsjoonshistoori',
-'deletedhist' => 'Straagene färsjoone',
-'revdelete-hide-current' => 'Fäägel bai t fersteegen foon di önjdråch foon e klook $1, $2; ditheer as jü aktuäl färsjoon,
-jü koon ai ferstäägen wårde.',
-'revdelete-show-no-access' => 'Fäägel bai t wisen foon di önjdråch foon $1, e klook $2: diheer önjdråch wörd ås "begränsed" markiird.
-Dü heest deeraw nåån tugraawe.',
+'revdel-restore' => 'Feranre, wat tu sen wees skal',
+'revdel-restore-deleted' => 'stregen werjuunen',
+'revdel-restore-visible' => 'sichtboor werjuunen',
+'pagehist' => 'Ferluup faan werjuunen',
+'deletedhist' => 'Stregen werjuunen',
+'revdelete-hide-current' => 'Di iindrach faan $1, klook $2 koon ei ferbürgen wurd. Det as det aktuel werjuun.',
+'revdelete-show-no-access' => 'Bi\'t bewerkin di $1, am a klook $2 as wat skiaf gingen: Didiar iindrach as üs "hualew klaar" markiaret.
+Dü könst diar ei üüb tugrip.',
 'revdelete-modify-no-access' => 'Bi\'t bewerkin di $1, am a klook $2 as wat skiaf gingen: Diheer iindrach as üs "hualew klaar" markiaret. Dü könst diar ei üüb tugrip.',
 'revdelete-modify-missing' => "Bi't bewerkin faan ID $1 as wat skiaf gingen: At waant uun a dootenbeenk!",
 'revdelete-no-change' => "'''Waarskau:''' Di iindrach faan di $1, am a klook $2 hää al jodiar iinstelangen.",
-'revdelete-concurrent-change' => "Bi't bewerkin faan di iindrach di $1, am a klook $2 as wat skiaf gingen: At sjocht so ütj, üs wan hoker ööders det bewerket hää, iar dü det bewerke wulst. Luke iin uun a logbuken.",
+'revdelete-concurrent-change' => "Bi't bewerkin faan di iindrach di $1, am a klook $2 as wat skiaf gingen: At schocht so ütj, üs wan hoker ööders det bewerket hää, iar dü det bewerke wulst. Luke iin uun a logbuken.",
 'revdelete-only-restricted' => "Bi't fersteegen faan di iindrach di $1, am a klook $2 as wat skiaf gingen: Dü könst di iindrach ei föör administratooren fersteeg, saner ööder iinstelangen tu feranrin.",
 'revdelete-reason-dropdown' => "*Grünjer för't striken san miast
 ** Copyright woort ei iinhäälen
 ** Persöönelk informatsjuunen, diar näämen wat uungung
 ** Brükernööm as ei tuläät
 ** Fülk informatsjuunen",
-'revdelete-otherreason' => 'Ouderen/tubaikaamenden grün:',
-'revdelete-reasonotherlist' => 'Ouderen grün',
-'revdelete-edit-reasonlist' => 'Strikgrüne beårbe',
-'revdelete-offender' => 'Autoor foon jüdeer färsjoon:',
+'revdelete-otherreason' => 'Ööder/noch en grünj:',
+'revdelete-reasonotherlist' => 'Ööder grünj',
+'revdelete-edit-reasonlist' => "Grünjer för't striken bewerke",
+'revdelete-offender' => 'Skriiwer faan detdiar werjuun:',
 
 # Suppression log
-'suppressionlog' => 'Oversight-logbök',
+'suppressionlog' => 'Oversight-logbuk',
 'suppressionlogtext' => 'Detheer as det logbuk faan oversighter aktsjuunen.
 Luke bi [[Special:BlockList|List faan speret IP-adresen an brükernöömer]] för aktuel sperangen.',
 
 # History merging
-'mergehistory' => 'Fersjoonshistoorie feriine',
-'mergehistory-header' => 'Ma jüdeer spetsjåålsid koost dü jü färsjoonshistoori foon en jurtkamstsid ma jü färsjoonshistoori foon en müüljsid feriine.
-Stal sääker, dåt jü färsjoonshistoori foon en sid histoorisch koräkt as.',
-'mergehistory-box' => 'Rewisjoone foon tou side feriine:',
-'mergehistory-from' => 'Jurtkamstsid:',
-'mergehistory-into' => 'Müüljsid:',
-'mergehistory-list' => 'Färsjoone, da feriind wårde koone',
+'mergehistory' => 'Ferluup faan werjuunen tuupfeer',
+'mergehistory-header' => 'Mä detdiar spezial-sidj könst dü di werjuunsferluup faan ian sidj mä di ferluup faan en ööder sidj tuupfeer.
+Aachte diarüüb, dat di ferluup faan det sidj uk rocht as.',
+'mergehistory-box' => 'Ferluup faan tau sidjen tuupfeer:',
+'mergehistory-from' => 'Iarst sidj:',
+'mergehistory-into' => 'Ööder sidj:',
+'mergehistory-list' => 'Werjuunen, diar tuupfeerd wurd kön.',
 'mergehistory-merge' => 'Jodiar werjuunen faan „[[:$1]]“ kön efter „[[:$2]]“ auerdraanj wurd.
 Kääntiakne det wersjuun, wat üs leetst mä auerdraanj wurd skal.
 A nawigatjuun links saat ales weder turag üüb di ual stant.',
-'mergehistory-go' => 'Wis färsjoone da feriind wårde koone',
-'mergehistory-submit' => 'Feriinde färsjoone',
-'mergehistory-empty' => 'Niinj färsjoone koone feriind wårde.',
-'mergehistory-success' => '$3 {{PLURAL:$3|färsjoon|färsjoone}} foon [[:$1]] ma erfolch feriind tu [[:$2]].',
-'mergehistory-fail' => 'Färsjoone koone ai feriind wårde, wees sü gödj än kontroliir jü sid än da tidönjgoowe.',
-'mergehistory-no-source' => 'Jurtkamstsid "$1" as ai deer.',
-'mergehistory-no-destination' => 'Müüljsid „$1“ bestoont ai.',
+'mergehistory-go' => 'Wise werjuunen, diar tuupfeerd wurd kön.',
+'mergehistory-submit' => 'Werjuunen tuupfeer',
+'mergehistory-empty' => 'Nian werjuunen kön tuupfeerd wurd.',
+'mergehistory-success' => '$3 {{PLURAL:$3|werjuun|werjuunen}} faan [[:$1]] tuupfeerd tu [[:$2]].',
+'mergehistory-fail' => 'Werjuunen kön ei tuupfeerd wurd. Luke noch ans efter at sidj an a tidjen.',
+'mergehistory-no-source' => 'Det iarst sidj "$1" as ai diar.',
+'mergehistory-no-destination' => 'Det ööder sidj „$1“ as ei diar.',
 'mergehistory-invalid-source' => 'Jurtkamstsid mötj en gülti sidnoome heewe.',
 'mergehistory-invalid-destination' => 'Müüljsid mötj en gülti sidnoome weese.',
 'mergehistory-autocomment' => '„[[:$1]]“ feriind eefter „[[:$2]]“',
-'mergehistory-comment' => '„[[:$1]]“ feriind eefter „[[:$2]]“: $3',
-'mergehistory-same-destination' => 'Jurtkamst- än müüljsid mönje ai idäntisch weese',
-'mergehistory-reason' => 'Grün:',
+'mergehistory-comment' => '„[[:$1]]“ tuupfeerd tu „[[:$2]]“: $3',
+'mergehistory-same-destination' => 'Det iarst an det ööder sidj mut ei detsalew wees',
+'mergehistory-reason' => 'Grünj:',
 
 # Merge log
 'mergelog' => 'Feriin-logbök',
-'pagemerge-logentry' => 'feriind [[$1]] eefter [[$2]] (färsjoonen bit $3)',
-'revertmerge' => 'Feriining tuninte mååge',
-'mergelogpagetext' => 'Dåtheer as dåt logbök foon da feriinde färsjoonshistoorie.',
+'pagemerge-logentry' => '[[$1]] efter [[$2]] tuupfeerd (werjuunen bit $3)',
+'revertmerge' => 'Det tuupfeeren turagsaat',
+'mergelogpagetext' => 'Diar as det logbuk faan a tuupfeerd sidjen.',
 
 # Diffs
 'history-title' => '$1: Ferluup faan a werjuunen',
 'difference-title' => 'Ferskeel tesken a werjuunen faan "$1"',
 'difference-title-multipage' => 'Ferskeel tesken a sidjen "$1" an "$2"',
-'difference-multipage' => '(Ferschääl twasche side)',
-'lineno' => 'Ra $1:',
-'compareselectedversions' => 'Wäälde färsjoone ferglike',
-'showhideselectedversions' => 'Wäälde färsjoone wise/fersteege',
-'editundo' => 'tunintemååge',
+'difference-multipage' => '(Ferskeel tesken sidjen)',
+'lineno' => 'Rä $1:',
+'compareselectedversions' => 'Werjuunen ferglik',
+'showhideselectedversions' => 'Werjuunen wise of fersteeg',
+'editundo' => 'turagsaat',
+'diff-empty' => '(nään ferskeel)',
 'diff-multi' => '({{PLURAL:$1|Ian werjuun diartesken|$1 werjuunen diartesken}} faan {{PLURAL:$2|ään brüker|$2 brükern}} {{PLURAL:$1|woort|wurd}} ei uunwiset)',
 'diff-multi-manyusers' => '({{PLURAL:$1|Ian werjuun diartesken|$1 werjuunen diartesken}} faan muar üs $2 {{PLURAL:$2|brüker|brükern}} wurd ei uunwiset)',
 'difference-missing-revision' => "{{PLURAL:$2|Ian werjuun|$2 werjuunen}} faan di ferskeel ($1) {{PLURAL:$2|as|san}} ei fünjen wurden.
@@ -1056,104 +1068,102 @@ Det komt diar miast faan, dat en ual ferwisang stregen wurden as.
 Dü könst det uun't [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} logbuk faan stregen sidjen] efterlees.",
 
 # Search results
-'searchresults' => 'Säkjresultoote',
-'searchresults-title' => 'Säkjresultoote for „$1“',
-'searchresulttext' => 'For mör informasjoon tu jü säkj sii jü [[{{MediaWiki:Helppage}}|heelpsid]].',
-'searchsubtitle' => 'Din säkönjfrååg: „[[:$1|$1]]“ ([[Special:Prefixindex/$1|åle ma „$1“ beganende side]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|åle side, da eefter „$1“ ferlinke]])',
-'searchsubtitleinvalid' => 'Din säkönjfrååg: "$1".',
-'toomanymatches' => 'Diar kaam tuföl resultooten üüb din uunfraag. Fersjük det ööders.',
-'titlematches' => 'Oueriinjstiminge ma sidetiitle',
-'notitlematches' => 'Niinj oueriinjstiming ma sidetiitle',
-'textmatches' => 'Oueriinjstiminge ma inhålte',
-'notextmatches' => 'Niinj oueriinjstiming ma inhålte',
-'prevn' => '{{PLURAL:$1|leesten|leeste $1}}',
-'nextn' => '{{PLURAL:$1|näisten|näiste $1}}',
-'prevn-title' => 'Leeste $1 {{PLURAL:$1|resultoot|resultoote}}',
-'nextn-title' => 'Näiste $1 {{PLURAL:$1|resultoot|resultoote}}',
-'shown-title' => 'Wis $1 {{PLURAL:$1|resultoot|resultoote}} pro sid',
-'viewprevnext' => 'Wis ($1 {{int:pipe-separator}} $2) ($3)',
+'searchresults' => 'Fünjen sidjen',
+'searchresults-title' => 'Fünjen sidjen för „$1“',
+'searchresulttext' => "Wan dü muar auer't schüken uun {{SITENAME}} wed wel, luke efter bi [[{{MediaWiki:Helppage}}|{{int:help}}]].",
+'searchsubtitle' => 'Din uunfraag: „[[:$1|$1]]“ ([[Special:Prefixindex/$1|sidjen, diar mä „$1“ began]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|sidjen, diar efter „$1“ ferwise]])',
+'searchsubtitleinvalid' => 'Din uunfraag: "$1".',
+'toomanymatches' => 'Diar kaam tuföl resultaaten üüb din uunfraag. Ferschük det ööders.',
+'titlematches' => 'Auerianstemangen mä sidjennöömer',
+'notitlematches' => 'Nian auerianstemangen mä sidjennöömer',
+'textmatches' => 'Auerianstemangen mä teksten',
+'notextmatches' => 'Nian auerianstemangen mä teksten',
+'prevn' => '{{PLURAL:$1|leetst|leetst $1}}',
+'nextn' => '{{PLURAL:$1|naist|naist $1}}',
+'prevn-title' => 'Leetst $1 {{PLURAL:$1|resultaat|resultaaten}}',
+'nextn-title' => 'Naist $1 {{PLURAL:$1|resultaat|resultaaten}}',
+'shown-title' => 'Wise $1 {{PLURAL:$1|resultaat|resultaaten}} per sidj',
+'viewprevnext' => 'Wise ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-legend' => 'Säkmöölikhäide',
 'searchmenu-exists' => "'''Deer as en sid nååmd \"[[:\$1]]\" önj jüdeer Wiki'''",
-'searchmenu-new' => "'''Mååg jü sid „[[:$1|$1]]“ önj jüdeer Wiki.'''",
-'searchhelp-url' => 'Help:Inhåltsfertiiknis',
+'searchmenu-new' => "'''Maage det sidj „[[:$1]]“ uun detheer wiki.'''",
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Wise aal jo sidjen, diar so began]]',
-'searchprofile-articles' => 'Artiikle',
-'searchprofile-project' => 'Heelp än Prujäktside',
+'searchprofile-articles' => 'Artiikler',
+'searchprofile-project' => 'Halep- an Projektsidjen',
 'searchprofile-images' => 'Multimedia',
 'searchprofile-everything' => 'Ales',
-'searchprofile-advanced' => 'Ütwided',
-'searchprofile-articles-tooltip' => 'Säk önj $1',
-'searchprofile-project-tooltip' => 'Säk önj $1',
-'searchprofile-images-tooltip' => 'Bilen sjük',
-'searchprofile-everything-tooltip' => 'Sjük aueraal (uk diskusjuunssidjen)',
-'searchprofile-advanced-tooltip' => 'Onj mör noomerüme säke',
-'search-result-size' => '$1 ({{PLURAL:$2|1 uurd|$2 uurde}})',
+'searchprofile-advanced' => 'Ütjwidjet',
+'searchprofile-articles-tooltip' => 'Schük uun $1',
+'searchprofile-project-tooltip' => 'Schük uun $1',
+'searchprofile-images-tooltip' => 'Bilen schük',
+'searchprofile-everything-tooltip' => 'Schük aueraal (uk diskusjuunssidjen)',
+'searchprofile-advanced-tooltip' => 'Uun ööder nöömrümer schük',
+'search-result-size' => '$1 ({{PLURAL:$2|1 wurd|$2 wurden}})',
 'search-result-category-size' => '{{PLURAL:$1|1 sidj|$1 sidjen}} ({{PLURAL:$2|1 onerkategorii|$2 onerkategoriin}}, {{PLURAL:$3|1 datei|$3 datein}})',
-'search-result-score' => 'Relevans: $1 %',
-'search-redirect' => '(widerliidjing foon „$1“)',
-'search-section' => '(oufsnaas $1)',
-'search-suggest' => 'Miinjdst dü „$1“?',
-'search-interwiki-caption' => 'Süsterprujäkte',
-'search-interwiki-default' => '$1 resultoote:',
-'search-interwiki-more' => '(widere)',
-'search-relatedarticle' => 'früne',
-'mwsuggest-disable' => "Föörslacher för't sjüken deaktiwiare",
-'searcheverything-enable' => 'Onj ål noomerüme säke',
-'searchrelated' => 'früne',
-'searchall' => 'åle',
-'showingresults' => "Heer {{PLURAL:$1|as '''1''' resultoot|san '''$1''' resultoote}}, beganend ma numer '''$2.'''",
-'showingresultsnum' => "Heer {{PLURAL:$3|as '''1''' resultoot|san '''$3''' resultoote}}, beganend ma numer '''$2.'''",
-'showingresultsheader' => "{{PLURAL:$5|resultoot '''$1''' foon '''$3'''|resultoote '''$1-$2''' foon '''$3'''}}, for '''$4.'''",
-'nonefound' => "'''Haanewising:''' Deer wårde ståndardmääsi man ainkelde noomerüme döörsoocht. Seet ''all:'' for din Säkbegrip, am åle side (inkl. diskusjoonside, forlååge, äsw.) tu döörsäken unti gesiilt di noome foon di tu döörsäkende noomerüm.",
-'search-nonefound' => 'For din säkanfrååg würden niinj resultoote fünen.',
-'powersearch' => 'ütwided säkj',
-'powersearch-legend' => 'ütwided säkj',
-'powersearch-ns' => 'Säkj önj noomerüme:',
-'powersearch-redir' => 'Widerliidjinge anwise',
-'powersearch-field' => 'Säk eefter:',
-'powersearch-togglelabel' => 'Wääl üt:',
-'powersearch-toggleall' => 'Åle',
-'powersearch-togglenone' => 'Niinj',
-'search-external' => 'Extern säkj',
-'searchdisabled' => 'Jü {{SITENAME}}-säkj as deaktiviird. Dü koost intwasche ma Google säke. Betånk, dåt di säkindäks for {{SITENAME}} ferüüljet weese koon.',
+'search-result-score' => 'Relewans: $1 %',
+'search-redirect' => '(widjerfeerd faan „$1“)',
+'search-section' => '(kirew $1)',
+'search-suggest' => 'Mendst dü „$1“?',
+'search-interwiki-caption' => 'Saster-projekten',
+'search-interwiki-default' => '$1 resultaaten:',
+'search-interwiki-more' => '(muar)',
+'search-relatedarticle' => 'Ferbünjen',
+'mwsuggest-disable' => "Föörslacher för't schüken deaktiwiare",
+'searcheverything-enable' => 'Uun arke nöömrüm schük',
+'searchrelated' => 'ferbünjen',
+'searchall' => 'aaltumaal',
+'showingresults' => "Heer {{PLURAL:$1|as '''1''' resultaat|san '''$1''' resultaaten}}, jo began mä numer '''$2.'''",
+'showingresultsnum' => "Heer {{PLURAL:$3|as '''1''' resultaat|san '''$3''' resultaaten}}, jo began mä numer '''$2.'''",
+'showingresultsheader' => "{{PLURAL:$5|resultaat '''$1''' faan '''$3'''|resultaaten '''$1-$2''' faan '''$3'''}}, för '''$4.'''",
+'nonefound' => "'''Paase üüb:''' Diar wurd man enkelt nöömrümer trochsoocht. Wan dü ''all:'' föör din wurd skraft, do woort uk uun aal a nöömrümer (datein, kategoriin, föörlaagen asw.) soocht. Dü könst uk en wasen nöömrüm föörwechstel.",
+'search-nonefound' => 'För din uunfraag san nian resultaaten fünjen wurden.',
+'powersearch' => 'Ã\9ctjwidjet schüken',
+'powersearch-legend' => 'Ã\9ctjwidjet schüken',
+'powersearch-ns' => 'Schük uun nöömrümer:',
+'powersearch-redir' => 'Widjerfeerangen uunwise',
+'powersearch-field' => 'Schük efter:',
+'powersearch-togglelabel' => 'Schük uun:',
+'powersearch-toggleall' => 'Aaltumaal',
+'powersearch-togglenone' => 'Nianen',
+'search-external' => 'Schük ekstern',
+'searchdisabled' => 'Det schüken üüb {{SITENAME}} as ei aktiif. Dü könst uuntesken mä Google schük. Seenk diaram, dat Google sin steegwurden miast ei üüb a leetst stant san.',
 'search-error' => "Diar as wat skiaf gingen bi't schüken: $1",
 
 # Preferences page
-'preferences' => 'Önjstalinge',
+'preferences' => 'Iinstelangen',
 'mypreferences' => 'Iinstelangen',
 'prefs-edits' => 'Taal faan feranrangen:',
-'prefsnologin' => 'Ai önjmälded',
+'prefsnologin' => 'Ei uunmeldet',
 'prefsnologintext' => 'Dü skel <span class="plainlinks">[{{fullurl:{{#special:UserLogin}}|returnto=$1}} uunmeldet]</span> wees, am din iinstelangen tu feranrin.',
-'changepassword' => 'Pååsuurd änre',
+'changepassword' => 'Paaswurd feranre',
 'prefs-skin' => 'Skak',
-'skin-preview' => 'Forlök',
-'datedefault' => 'Foor-önjstaling',
+'skin-preview' => 'Föörskau',
+'datedefault' => 'Föör-iinstelang',
 'prefs-beta' => 'Beta mögelkhaiden',
 'prefs-datetime' => 'Dai an klooktidj',
 'prefs-labs' => 'Alpha mögelkhaiden',
 'prefs-user-pages' => 'Brükersidjen',
 'prefs-personal' => 'Brüker dooten',
-'prefs-rc' => 'Leeste änringe',
+'prefs-rc' => 'Leetst feranrangen',
 'prefs-watchlist' => "Uun't uug behual",
 'prefs-watchlist-days' => "So föl daar uun't uug behual:",
 'prefs-watchlist-days-max' => 'Ei muar üs {{PLURAL:$1|ään dai|$1 daar}}',
 'prefs-watchlist-edits' => 'Ei muar feranrangen üs:',
 'prefs-watchlist-edits-max' => 'Ai mör as 1000',
 'prefs-watchlist-token' => "Token för uun't uug behualen:",
-'prefs-misc' => 'Dit än dat',
-'prefs-resetpass' => 'Pååsuurd änre',
+'prefs-misc' => 'Dit an dat',
+'prefs-resetpass' => 'Paaswurd feranre',
 'prefs-changeemail' => 'Feranre det E-Mail-adres',
 'prefs-setemail' => 'E-Mail-adres fäästlei:',
 'prefs-email' => 'E-Mail iinstelangen',
 'prefs-rendering' => 'Skak',
-'saveprefs' => 'Önjstalinge sääkere',
+'saveprefs' => 'Iinstelangen seekre',
 'resetprefs' => 'Wech diarmä',
 'restoreprefs' => 'Normool iinstelangen weder haale',
 'prefs-editing' => 'Bewerke',
-'prefs-edit-boxsize' => "Grate faan't wönang tu't bewerkin:",
 'rows' => 'Räen:',
 'columns' => 'Spleder:',
-'searchresultshead' => 'Sjük',
+'searchresultshead' => 'Schük',
 'resultsperpage' => 'So fölsis komt det föör per sidj:',
 'stub-threshold' => 'Formatiarang faan links <a href="#" class="stub">för letj sidjen</a> (uun Byte):',
 'stub-threshold-disabled' => 'Ufsteld',
@@ -1161,10 +1171,9 @@ Dü könst det uun't [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}
 'recentchangesdays-max' => 'Ei muar üs {{PLURAL:$1|ään dai|$1 daar}}',
 'recentchangescount' => 'Soföl feranrangen skel uunwiset wurd:',
 'prefs-help-recentchangescount' => 'Det san a leetst feranrangen, werjuunen an logbuken.',
-'prefs-help-watchlist-token' => "Wan dü detdiar fial mä en hiamelken code ütjfalst, woort en RSS-feed iinracht. Arken mä didiar code koon do sä, wat dü uun't uug behual wel. Diaram skul hi ei so ianfach wees, nem dach didiar: $1",
 'savedprefs' => 'Din iinstelangen san seekert wurden.',
 'timezonelegend' => 'Tidjsoon:',
-'localtime' => 'lokaal tid',
+'localtime' => 'Lokaal tidj:',
 'timezoneuseserverdefault' => 'Wiki standard tidj brük ($1)',
 'timezoneuseoffset' => 'Öödern (ferskeel uundu)',
 'timezoneoffset' => 'Ferskeel¹:',
@@ -1180,29 +1189,28 @@ Dü könst det uun't [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}
 'timezoneregion-europe' => 'Euroopa',
 'timezoneregion-indian' => 'Indik',
 'timezoneregion-pacific' => 'Pasiifik',
-'allowemail' => 'E-Mail foon oudere brükere tulätje',
-'prefs-searchoptions' => 'Sjük',
-'prefs-namespaces' => 'Noomerüme',
-'defaultns' => 'Ouers säk önj jüheer noomerüme:',
-'default' => 'Forinstaling',
-'prefs-files' => 'Dååtäie',
+'allowemail' => 'E-mail faan ööder brükern tuläät',
+'prefs-searchoptions' => 'Schük',
+'prefs-namespaces' => 'Nöömrümer',
+'defaultns' => 'Ööders schük uun jodiar nöömrümer:',
+'default' => 'Fööriinstelang',
+'prefs-files' => 'Datein',
 'prefs-custom-css' => 'Salew maaget CSS',
 'prefs-custom-js' => 'Salew maaget JavaScript',
 'prefs-common-css-js' => 'CSS / JavaScript för arke skak:',
 'prefs-reset-intro' => 'Üüb detdiar sidj könst dü weder a normool iinstelangen iinracht.
 Do san jo ual iinstelangen wech.',
 'prefs-emailconfirm-label' => 'E-Mail gudkäänd:',
-'prefs-textboxsize' => "Grate faan't wönang tu bewerkin",
 'youremail' => 'E-mail:',
 'username' => '{{GENDER:$1|Brükernööm}}:',
 'uid' => '{{GENDER:$1|Brükerkäänang}}:',
 'prefs-memberingroups' => '{{GENDER:$2|Lasmoot}} faan {{PLURAL:$1|brükerskööl|brükersköölen}}:',
 'prefs-registration' => 'Uunmelde-tidj',
 'yourrealname' => 'Rocht nööm:',
-'yourlanguage' => 'Spräke:',
+'yourlanguage' => 'Spriak:',
 'yourvariant' => 'Spriak:',
 'prefs-help-variant' => 'Uun hün skriiwwiis skel a sidjen uunwiset wurd:',
-'yournick' => 'Nai signatuur:',
+'yournick' => 'Nei signatuur:',
 'prefs-help-signature' => 'Wees so gud an onerskriiw üüb diskusjuunssidjen mä „<nowiki>~~~~</nowiki>“. Diar komt do dan brükernööm an det klooktidj bi ütj.',
 'badsig' => "Diar stemet wat ei mä't signatuur. Preewe at HTML.",
 'badsiglength' => 'Din signatuur mut ei muar üs $1 {{PLURAL:$1|tiaken|tiakens}} haa.',
@@ -1212,7 +1220,7 @@ Do san jo ual iinstelangen wech.',
 'gender-female' => 'Wüf',
 'prefs-help-gender' => "Stäänt tu wool: Det woort brükt för't paasin uunspreegen faan maaner an wüfen. Arken koon det lees.",
 'email' => 'E-mail',
-'prefs-help-realname' => 'Stäänt tu wool. Wan dü dan rochten nööm uundääst, koon hi mä din bewerkangen ferbünjen wurd.',
+'prefs-help-realname' => 'Stäänt tu wool. Wan dü dan rochten nööm uundääst, koon hi mä din feranrangen ferbünjen wurd.',
 'prefs-help-email' => 'Dü säärst din e-mail-adres ei uundu, oober do könst dü uk nian mädialangen fu, wan dü ans din paaswurd ferjiden heest.',
 'prefs-help-email-others' => 'Mä ööder brükern könst dü uk auer hör an din brükersidj kontakt apnem. Diarför woort din e-mail-adres ei brükt.',
 'prefs-help-email-required' => 'Du en rocht E-Mail-adres uun.',
@@ -1221,11 +1229,13 @@ Do san jo ual iinstelangen wech.',
 'prefs-signature' => 'Signatuur',
 'prefs-dateformat' => "Formaat faan't dootem",
 'prefs-timeoffset' => 'Ferskeel faan a klooktidj',
-'prefs-advancedediting' => 'Ütwided möölikhäide',
-'prefs-advancedrc' => 'Ütwided möölikhäide',
-'prefs-advancedrendering' => 'Ütwided möölikhäide',
-'prefs-advancedsearchoptions' => 'Ütwided möölikhäide',
-'prefs-advancedwatchlist' => 'Ütwided möölikhäide',
+'prefs-advancedediting' => 'Algemian',
+'prefs-editor' => 'Skriiwer',
+'prefs-preview' => 'Föörskau',
+'prefs-advancedrc' => 'Ütjwidjet mögelkhaiden',
+'prefs-advancedrendering' => 'Ütjwidjet mögelkhaiden',
+'prefs-advancedsearchoptions' => 'Ütjwidjet mögelkhaiden',
+'prefs-advancedwatchlist' => 'Ütjwidjet mögelkhaiden',
 'prefs-displayrc' => "Mögelkhaiden för't uunwisin",
 'prefs-displaysearchoptions' => "Mögelkhaiden för't uunwisin",
 'prefs-displaywatchlist' => "Mögelkhaiden för't uunwisin",
@@ -1257,6 +1267,7 @@ Do san jo ual iinstelangen wech.',
 'userrights-changeable-col' => 'Lasmootskapen, diar dü feranre könst',
 'userrights-unchangeable-col' => 'Lasmootskapen, diar dü ei feranre könst',
 'userrights-conflict' => 'Brükerrochten konflikt! Du din feranrangen noch ans iin.',
+'userrights-removed-self' => 'Dü heest din aanj brükerrochtem stregen. Dü könst nü ei muar üüb det sidj tugrip.',
 
 # Groups
 'group' => 'Skööl:',
@@ -1296,11 +1307,11 @@ Do san jo ual iinstelangen wech.',
 'right-suppressredirect' => "Bi't fersküüwen nian widjerfeerang iinracht",
 'right-upload' => 'Datein huuchschüür',
 'right-reupload' => 'Datein auerskriiw',
-'right-reupload-own' => 'En datei auerskriiw, diar dü salew huuchsjüürd heest',
+'right-reupload-own' => 'En datei auerskriiw, diar dü salew huuchschüürd heest',
 'right-reupload-shared' => 'En datei auerskriiw, diar uun en gemiansoom archiif leit',
 'right-upload_by_url' => 'Datein faan en URL-adres huuchschüür',
 'right-purge' => 'Sidjen-cache leesag maage saner efterfraagin',
-'right-autoconfirmed' => 'Hualew-seekert sidjen bewerke',
+'right-autoconfirmed' => 'Ei troch IP-limits beskäären',
 'right-bot' => 'Automatisiaret bewerke',
 'right-nominornewtalk' => 'Letj feranrangen üüb diskusjuunssidjen wurd ei üs „nei noorachten“ uunwiset.',
 'right-apihighlimits' => 'Huuger taalen für API-uunfraagen brük',
@@ -1310,8 +1321,8 @@ Do san jo ual iinstelangen wech.',
 'right-deletelogentry' => 'Enkelt werjuunen faan en logbuk-iindrach strik of turaghaale',
 'right-deleterevision' => 'Enkelt werjuunen faan en sidj strik of turaghaale',
 'right-deletedhistory' => 'Stregen iindracher uun a ferluup uunluke, saner di tekst, di diartu hiart',
-'right-deletedtext' => 'Stregen tekst an feranerangen tesken stregen werjuunen uunluke',
-'right-browsearchive' => 'Sjük stregen sidjen',
+'right-deletedtext' => 'Stregen tekst an feranrangen tesken stregen werjuunen uunluke',
+'right-browsearchive' => 'Schük stregen sidjen',
 'right-undelete' => 'Stregen sidjen turaghaale',
 'right-suppressrevision' => 'Werjuunen uunluke an turaghaale, diar uk för administratooren ei tu sen san',
 'right-suppressionlog' => 'Priwoot logbuken uunluke',
@@ -1321,13 +1332,21 @@ Do san jo ual iinstelangen wech.',
 'right-ipblock-exempt' => 'Ütjnoom faan IP-speren, automaatisk speren an range-speren',
 'right-proxyunbannable' => 'Ütjnoom faan automaatisk proxy-speren',
 'right-unblockself' => 'Sper apheew för ään salew',
-'right-protect' => 'Det seekerhaid faan sidjen feranre an seekerd sidjen bewerke',
-'right-editprotected' => 'Seekerd sidjen bewerke (saner kaskaaden-seekerhaid)',
+'right-protect' => 'Sidjenseekerhaid feranre an kaskaaden-seekert sidjen bewerke',
+'right-editprotected' => 'Sidjen bewerke, diar mä „{{int:protect-level-sysop}}“ seekert san.',
+'right-editsemiprotected' => 'Sidjen bewerke, diar mä „{{int:protect-level-autoconfirmed}}“ seekert san.',
 'right-editinterface' => 'Brüker-skak bewerke',
 'right-editusercssjs' => 'CSS- an JavaScript-datein faan ööder brükern bewerke',
 'right-editusercss' => 'CSS-datein faan ööder brükern bewerke',
 'right-edituserjs' => 'JavaScript-datein faan ööder brükern bewerke',
-'right-rollback' => 'Feranerangen faan di leetst brüker gau turagsaat',
+'right-editmyusercss' => 'Aanj CSS-datein bewerke',
+'right-editmyuserjs' => 'Aanj JavaScript-datein bewerke',
+'right-viewmywatchlist' => "Sidjen uunluke, diar ik uun't uug behual wal",
+'right-editmywatchlist' => "Sidjen bewerke, diar dü uun't uug behual wel. Enkelt aktjuunen kön diar wat saner din dun feranre.",
+'right-viewmyprivateinfo' => 'Aanj priwoot dooten uunluke (t.b. e-mail-adres, rocht nööm)',
+'right-editmyprivateinfo' => 'Aanj priwoot dooten bewerke (t.b. e-mail-adres, rocht nööm)',
+'right-editmyoptions' => 'Aanj iinstelangen bewerke',
+'right-rollback' => 'Feranrangen faan di leetst brüker gau turagsaat',
 'right-markbotedits' => 'Gau turagsaatangen üs bot-iindracher kääntiakne',
 'right-noratelimit' => 'Ei troch limits beskäären',
 'right-import' => 'Bilen faan ööder Wikis importiare',
@@ -1336,27 +1355,27 @@ Do san jo ual iinstelangen wech.',
 'right-autopatrol' => 'Aanj werk aleewen üs kontroliaret kääntiakne',
 'right-patrolmarks' => 'Kontrolkääntiaken uun a leetst feranrangen uunwise',
 'right-unwatchedpages' => 'List faan sidjen uunluke, diar näämen üüb aachtet',
-'right-mergehistory' => 'Werjuunshistoore faan sidjen tuupfeer',
+'right-mergehistory' => 'Ferluup faan sidjen tuupfeer',
 'right-userrights' => 'Brükerrochten bewerke',
 'right-userrights-interwiki' => 'Brükerrochten uun ööder Wikis bewerke',
 'right-siteadmin' => 'Dootenbeenk spere an eebenmaage',
 'right-override-export-depth' => 'Sidjen an onersidjen bit tu en jipde faan 5 eksportiare',
-'right-sendemail' => 'E-mails tu oudere brükere schake',
-'right-passwordreset' => 'Paaswurd faan en brüker turagsaat an det E-Mail diartu uunluke',
+'right-sendemail' => 'E-mails tu ööder brükern schüür',
+'right-passwordreset' => 'Paaswurd faan en brüker turagsaat an det e-mail diartu uunluke',
 
 # Special:Log/newusers
-'newuserlogpage' => 'Nai-önjmäldings-logbök',
+'newuserlogpage' => 'Neiuunmeldangs-logbuk',
 'newuserlogpagetext' => 'Detheer as en logbuk faan nei iinracht brükerkonten.',
 
 # User rights log
-'rightslog' => 'Ruchte-logbök',
-'rightslogtext' => 'Det as det logbuk auer feranerangen faan brükerrochten.',
+'rightslog' => 'Brükerrochten-logbuk',
+'rightslogtext' => 'Det as det logbuk auer feranrangen faan brükerrochten.',
 
 # Associated actions - in the sentence "You do not have permission to X"
 'action-read' => 'jüdeer sid leese',
-'action-edit' => 'jüdeer sid beårbe',
-'action-createpage' => 'side mååge',
-'action-createtalk' => 'diskusjoonside mååge',
+'action-edit' => 'detdiar sidj tu bewerkin',
+'action-createpage' => 'nei sidjen tu maagin',
+'action-createtalk' => 'diskusjuunssidjen maage',
 'action-createaccount' => 'jüdeer brükerkonto mååge',
 'action-minoredit' => 'detdiar feranrang üs letj kääntiakne',
 'action-move' => 'jüdeer sid ferschüwe',
@@ -1371,48 +1390,53 @@ Do san jo ual iinstelangen wech.',
 'action-delete' => 'detdiar sidj strik',
 'action-deleterevision' => 'werjuunen tu striken',
 'action-deletedhistory' => 'det list mä stregen werjuunen uuntulukin',
-'action-browsearchive' => 'sjük stregen sidjen',
+'action-browsearchive' => 'schük stregen sidjen',
 'action-undelete' => 'detdiar sidj weder iinstel',
 'action-suppressrevision' => 'det ferbürgen werjuun uuntulukin an weder turagtuhaalin',
 'action-suppressionlog' => 'iin uun det priwoot logbuk tu lukin',
 'action-block' => 'di brüker tu sperin',
 'action-protect' => 'det seekerhaid faan sidjen tu feranrin',
-'action-rollback' => 'feranerangen faan di leetst brüker gau turagtusaaten',
+'action-rollback' => 'feranrangen faan di leetst brüker gau turagtusaaten',
 'action-import' => 'sidjen faan en ööder Wiki tu importiarin',
 'action-importupload' => 'sidjen auer det huuchschüüren faan datein tu importiarin',
 'action-patrol' => 'det werk faan ööder brükern üs kontroliaret tu kääntiaknin',
-'action-autopatrol' => 'aanj feranerangen üs kontroliaret tu kääntiaknin',
+'action-autopatrol' => 'aanj feranrangen üs kontroliaret tu kääntiaknin',
 'action-unwatchedpages' => 'det list faan sidjen uuntulukin, diar näämen üüb aachtet',
 'action-mergehistory' => 'werjuunshistoorin faan sidjen tuuptufeeren',
 'action-userrights' => 'brükerrochten tu bewerkin',
 'action-userrights-interwiki' => 'brükerrochten uun ööder Wikis tu bewerkin',
 'action-siteadmin' => 'det dootenbeenk tu sperin an eebentumaagin',
-'action-sendemail' => 'e-mails sjüür',
+'action-sendemail' => 'e-mails tu schüüren',
+'action-editmywatchlist' => "sidjen, diar dü uun't uug behual wel, tu bewerkin",
+'action-viewmywatchlist' => "sidjen uuntulukin, diar dü uun't uug behual wel",
+'action-viewmyprivateinfo' => 'din priwoot dooten uuntulukin',
+'action-editmyprivateinfo' => 'din priwoot dooten tu bewerkin',
 
 # Recent changes
-'nchanges' => '$1 {{PLURAL:$1|änring|änringe}}',
-'recentchanges' => 'Leeste änringe',
-'recentchanges-legend' => 'Wis-opsjoone',
-'recentchanges-summary' => "Üüb detdiar sidj könst dü a leetst feranrangen faan't Nuurdfresk Wikipedia ferfulge.",
-'recentchanges-feed-description' => 'Ferfülie ma dåtheer feed da leeste änringe önj {{SITENAME}}.',
+'nchanges' => '$1 {{PLURAL:$1|feranrang|feranrangen}}',
+'recentchanges' => 'Leetst feranrangen',
+'recentchanges-legend' => "Iinstelangen för't uunwisin",
+'recentchanges-summary' => "Üüb detdiar sidj könst dü a leetst feranrangen faan't Nordfriisk Wikipedia ferfulge.",
+'recentchanges-noresult' => 'Uun di uunjiwen tidjrüm san sok feranrangen ei föörnimen wurden.',
+'recentchanges-feed-description' => "Mä didiar feed könst dü a leetst feranrangen faan't Nordfriisk Wikipedia ferfulge.",
 'recentchanges-label-newpage' => 'Nei sidj uunlaanj',
 'recentchanges-label-minor' => 'Letj feranrang',
 'recentchanges-label-bot' => 'Feranrang faan en bot',
 'recentchanges-label-unpatrolled' => 'Detdiar feranrang as noch ei efterluket wurden',
-'rcnote' => "Wised {{PLURAL:\$1|wård '''1''' änring|wårde da leeste '''\$''' änringe}} {{PLURAL:\$2|foon e leest däi|foon da leeste '''\$2''' deege}}. Stånd: \$4, am e klook \$5.",
+'rcnote' => "Diar {{PLURAL:$1|stäänt det leetst feranrang|stun a leetst '''$1''' feranrangen}} faan a leetst {{PLURAL:$2|dai|'''$2''' daar}}. Stant: $4, am a klook $5.",
 'rcnotefrom' => "Diar wurd a feranrangen sant '''$2'''uunwiset (ei muar üs '''$1''' feranrangen).",
-'rclistfrom' => 'Bloot änringe sunt $1 wise.',
-'rcshowhideminor' => 'Latje änringe $1',
-'rcshowhidebots' => 'Bots $1',
-'rcshowhideliu' => 'Önjmäldede brükere $1',
-'rcshowhideanons' => 'Anonymen brüker $1',
-'rcshowhidepatr' => '$1 efterluket feranrangen',
-'rcshowhidemine' => 'Äine tujeefte $1',
-'rclinks' => 'Wis da leeste $1 änringe foon da leeste $2 deege.<br />$3',
-'diff' => 'ferschääl',
-'hist' => 'färsjoone',
-'hide' => 'ütbläne',
-'show' => 'önjbläne',
+'rclistfrom' => 'Bluas feranrangen sant $1 wise.',
+'rcshowhideminor' => '$1 letj feranrangen',
+'rcshowhidebots' => '$1 bots',
+'rcshowhideliu' => '$1 uunmeldet brükern',
+'rcshowhideanons' => '$1 anonüüm brükern',
+'rcshowhidepatr' => 'Efterluket feranrangen $1',
+'rcshowhidemine' => '$1 min bidracher',
+'rclinks' => 'Wise a leetst $1 feranrangen faan a leetst $2 daar.<br />$3',
+'diff' => 'ferskeel',
+'hist' => 'werjuunen',
+'hide' => 'Fersteeg',
+'show' => 'Wise',
 'minoreditletter' => 'L',
 'newpageletter' => 'N',
 'boteditletter' => 'B',
@@ -1420,31 +1444,30 @@ Do san jo ual iinstelangen wech.',
 'rc_categories' => 'Bluas sidjen ütj jo kategoriin (apdiald mä „|“):',
 'rc_categories_any' => 'Arke',
 'rc-change-size-new' => "$1 {{PLURAL:$1|byte|bytes}} efter't feranrin",
-'newsectionsummary' => 'Nei ufdialang /* $1 */',
-'rc-enhanced-expand' => 'Detaile wise (JavaScript as nüsi)',
-'rc-enhanced-hide' => 'Detaile fersteege',
+'newsectionsummary' => 'Nei kirew /* $1 */',
+'rc-enhanced-expand' => 'Enkelthaiden wise (brükt JavaScript)',
+'rc-enhanced-hide' => 'Enkelthaiden fersteeg',
 'rc-old-title' => 'tuiarst maaget üs „$1“',
 
 # Recent changes linked
 'recentchangeslinked' => 'Feranrangen bi ferlinket sidjen',
 'recentchangeslinked-feed' => 'Feranrangen bi ferlinket sidjen',
 'recentchangeslinked-toolbox' => 'Feranrangen bi ferlinket sidjen',
-'recentchangeslinked-title' => 'Feranrangen bi sidjen, diar faan "$1" ferlinket san',
-'recentchangeslinked-noresult' => 'Uun detdiar tidj san jo ferlinket sidjen ei feranert wurden.',
-'recentchangeslinked-summary' => "Jüdeer speetsjoolsid listet da leeste änringe bai da ferlinked side ap (btw. bai kategoriie tu da lasmoote foon jüdeer kategorii). Side aw din [[Special:Watchlist|eefterkiikliste]] san '''fåt''' deerstald.",
-'recentchangeslinked-page' => 'Sid:',
-'recentchangeslinked-to' => 'Wis änringe aw side, da heerjurt ferlinke',
+'recentchangeslinked-title' => 'Feranrangen bi sidjen, huar faan "$1" üüb ferwiset woort',
+'recentchangeslinked-summary' => "Detdiar spezial-sidj wiset a leetst feranrangen faan ferwiset sidjen (of faan sidjen uun en was kategorii). Sidjen, diar dü [[Special:Watchlist|uun't uug behual]] wel, san '''fäät''' skrewen.",
+'recentchangeslinked-page' => 'Sidjennööm:',
+'recentchangeslinked-to' => 'Wise feranrangen üüb sidjen, diar heerhen ferwise.',
 
 # Upload
-'upload' => 'Huuchschake',
+'upload' => 'Datei huuchschüür',
 'uploadbtn' => 'Datei huuchsjüür',
 'reuploaddesc' => "Ufbreeg an turag tu't sidj för't huuchsjüüren",
 'upload-tryagain' => 'Feranert dateibeskriiwang ufsjüür',
-'uploadnologin' => 'Ai önjmälded',
-'uploadnologintext' => 'Dü möist [[Special:UserLogin|önjmälded weese]], am dat dü dootäie huuchsiinje koost.',
-'upload_directory_missing' => 'Dåt aplees-fertiiknis ($1) breecht än köö ai foon di wäbsärwer mååged wårde.',
-'upload_directory_read_only' => 'Dåt aplees-fertiiknis ($1) koon ai foon e wäbsärver beschraawen wårde.',
-'uploaderror' => 'Aplees-fäägel',
+'uploadnologin' => 'Ei uunmeldet',
+'uploadnologintext' => 'Dü skel di $1, amdat dü datein huuchschüür könst.',
+'upload_directory_missing' => 'Det archiif-fertiaknis ($1) as ei diar, an küd faan di webserver uk ei iinracht wurd.',
+'upload_directory_read_only' => 'Uun det archiif-fertiaknis ($1) küd faan di webserver ei skrewen wurd.',
+'uploaderror' => "Bi't huuchschüüren as wat skiaf gingen",
 'upload-recreate-warning' => "'''Paase üüb: En datei mä didiar nööm as al ans stregen of fersköwen wurden.'''
 
 Wat nü komt, as ütj det logbuk för't striken an fersküüwen faan detdiar datei.",
@@ -1460,12 +1483,12 @@ Am en '''bil''' uun en artiikel tu brüken, brük en link faan det furem:
 'upload-preferred' => 'Slacher faan datein, diar dü brük skulst: $1.',
 'upload-prohibited' => 'Ei tuläät slacher faan datein: $1.',
 'uploadlog' => 'datei logbuk',
-'uploadlogpage' => 'Dåtäi-logbök',
+'uploadlogpage' => 'Datei-logbuk',
 'uploadlogpagetext' => 'Detheer as det logbuk för huuchschüürd datein. Dü könst uk det [[Special:NewFiles|galerii faan nei datein]] uunluke.',
 'filename' => 'Dateinööm',
 'filedesc' => 'Beskriiwang',
 'fileuploadsummary' => 'Beskriiwang',
-'filereuploadsummary' => 'Feranerangen faan det datei:',
+'filereuploadsummary' => 'Feranrangen faan det datei:',
 'filestatus' => 'Copyright-Status:',
 'filesource' => 'Kwel',
 'uploadedfiles' => 'Huuchschüürd datein',
@@ -1487,7 +1510,7 @@ Am en '''bil''' uun en artiikel tu brüken, brük en link faan det furem:
 'filename-tooshort' => 'Di dateinööm as tu kurt.',
 'filetype-banned' => 'Son slach faan datei as ei tuläät.',
 'verification-error' => 'Det datei hää det seekerhaidspreew ei bestenen.',
-'hookaborted' => 'Det feranerang, wat dü maage wulst, as ufbreegen wurden.',
+'hookaborted' => 'Det feranrang, wat dü maage wulst, as faan en ütjwidjet software-funktjuun ufbreegen wurden.',
 'illegal-filename' => 'Didiar dateinööm as ei tuläät.',
 'overwrite' => 'Dü könst nian datei auerskriiw, wat al diar as.',
 'unknown-error' => 'Diar as irgentwat skiaf gingen.',
@@ -1509,8 +1532,10 @@ Wees so gud an nem en öödern nööm.',
 Luke di det datei <strong>[[:$1]]</strong> noch ans uun.
 Wan det det originaal bil as, säärst dü nään letjer maaget bil huuchsjüür.",
 'file-thumbnail-no' => "Di dateinööm begant mä <strong>$1</strong>. Det as was en letjer maaget bil ''(thumbnail)''.
-Luke noch ans efter, of dü det bil uun fol grate diar heest, an do sjüür det huuch.",
-'fileexists-forbidden' => 'En datei mä didiar nööm jaft at al an koon ei auerskrewen wurd. Gung noch ans turag an sjüür det datei mä en öödern nööm huuch. [[File:$1|thumb|center|$1]]',
+Luke noch ans efter, of dü det bil uun fol grate diar heest, an do schüür det huuch.",
+'fileexists-forbidden' => 'En datei mä didiar nööm jaft at al an koon ei auerskrewen wurd.
+Gung noch ans turag an schüür det datei mä en öödern nööm huuch.
+[[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => "En datei mä didiar nööm stäänt al uun't gemiansoom archiif. Wan dü det bil likes huuchsjüür wel, gung turag nem en öödern nööm.
 [[File:$1|thumb|center|$1]]",
 'file-exists-duplicate' => 'Detdiar datei as en duplikaat faan {{PLURAL:$1|detdiar datei|$1 datein}}:',
@@ -1518,7 +1543,7 @@ Luke noch ans efter, of dü det bil uun fol grate diar heest, an do sjüür det
 'uploadwarning' => 'Wäärnang',
 'uploadwarning-text' => 'Feranre det datei-beskriiwang an fersjük det noch ans nei.',
 'savefile' => 'Datei seekre',
-'uploadedimage' => 'heet "[[$1]]" huuchsånd',
+'uploadedimage' => 'hää "[[$1]]" huuchschüürd',
 'overwroteimage' => 'hää en nei werjuun faan „[[$1]]“ huuchsjüürd',
 'uploaddisabled' => 'Huuchsjüüren as ei aktiwiaret',
 'copyuploaddisabled' => 'Huuchsjüüren faan URLs as ei aktiwiaret.',
@@ -1624,7 +1649,7 @@ Wan det goorei wal, do skriiw tu en [[Special:ListUsers/sysop|administraator]]."
 # img_auth script messages
 'img-auth-accessdenied' => 'Tugrip ei mögelk',
 'img-auth-nopathinfo' => 'Diar as nään PATH_INFO.
-Di server koon detdiar informatsjuun ei widjerdu.
+Di server koon detdiar informatjuun ei widjerdu.
 Ferlicht as det uun CGI iinbünjen an komt diaram uk ei mä „img_auth“ turocht.
 Üüb det sidj https://www.mediawiki.org/wiki/Manual:Image_Authorization (ingelsk) stäänt diar muar auer.',
 'img-auth-notindir' => 'Detdiar fertiaknis as ei föörsen tu huuchsjüüren.',
@@ -1663,7 +1688,7 @@ För a seekerhaid as img_auth.php ei aktiwiaret.',
 
 # Special:ListFiles
 'listfiles-summary' => 'Üüb detdiar spezialsidj wurd aal a huuchschüürd datein uunwiset. Dü könst uk efter brükern filtre, diar datein tuleetst bewerket haa.',
-'listfiles_search_for' => 'Sjük efter det datei:',
+'listfiles_search_for' => 'Schük efter det datei:',
 'imgfile' => 'datei',
 'listfiles' => 'List faan datein',
 'listfiles_thumb' => 'Letjer bil',
@@ -1676,23 +1701,23 @@ För a seekerhaid as img_auth.php ei aktiwiaret.',
 
 # File description page
 'file-anchor-link' => 'Datei',
-'filehist' => 'Dååtäifärsjoone',
-'filehist-help' => 'Klik aw en tidpunkt, am jüdeer färsjoon önjiinjtunaamen.',
-'filehist-deleteall' => 'åle färsjoone strike',
-'filehist-deleteone' => 'jüdeer färsjoon strike',
-'filehist-revert' => 'tubääg seete',
-'filehist-current' => 'aktuäl',
-'filehist-datetime' => 'Färsjoon foon e',
-'filehist-thumb' => 'Forlökbil',
-'filehist-thumbtext' => 'Forlökbil for Färsjoon foon $2, am e klook $3',
-'filehist-nothumb' => 'Niinj forlökbil deer',
-'filehist-user' => 'brüker',
-'filehist-dimensions' => 'Mätje',
+'filehist' => 'Dateiwerjuunen',
+'filehist-help' => 'Klike üüb en tidjponkt, am detdiar werjuun uuntulukin.',
+'filehist-deleteall' => 'aal a werjuunen strik',
+'filehist-deleteone' => 'detdiar werjuun strik',
+'filehist-revert' => 'turagsaat',
+'filehist-current' => 'aktuel',
+'filehist-datetime' => 'Werjuun faan a',
+'filehist-thumb' => 'Föörskaubil',
+'filehist-thumbtext' => 'Föörskau för det werjuun faan $2, klook $3',
+'filehist-nothumb' => 'Diar as nian föörskaubil',
+'filehist-user' => 'Brüker',
+'filehist-dimensions' => 'Miaten',
 'filehist-filesize' => 'Dateigrate',
-'filehist-comment' => 'Komentoor',
+'filehist-comment' => 'Komentaar',
 'filehist-missing' => 'Datei ei diar',
 'imagelinks' => 'Hü det datei brükt woort',
-'linkstoimage' => '{{PLURAL:$1|Jü füliend sid ferwånt|Da füliende $1 side ferwiinje}} jüdeer dååtäi:',
+'linkstoimage' => '{{PLURAL:$1|Detdiar sidj brükt|Jodiar $1 sidjen brük}} detdiar datei:',
 'linkstoimage-more' => 'Muar üs $1 {{PLURAL:$1|sidj ferwiset|sidjen ferwise}} üüb detdiar datei.
 Det list wiset {{PLURAL:$1|at iarst ferwisang|a iarst $1 ferwisangen}} üüb detdiar datei.
 Dü könst uk det [[Special:WhatLinksHere/$2|hial list]] uunluke.',
@@ -1700,7 +1725,7 @@ Dü könst uk det [[Special:WhatLinksHere/$2|hial list]] uunluke.',
 'morelinkstoimage' => 'Dü könst [[Special:WhatLinksHere/$1|muar ferwisangen]] üüb detdiar datei uunwise läät.',
 'linkstoimage-redirect' => '$1 (widjerfeerang) $2',
 'duplicatesoffile' => '{{PLURAL:$1|Detdiar datei as en kopii|$1 datein san kopiin}} faan det datei ([[Special:FileDuplicateSearch/$2|muar diartu]]):',
-'sharedupload' => 'Jüdeer dååtäi ståmt üt $1 än mötj foon ouder prujäkte brükt wårde.',
+'sharedupload' => 'Detdiar datei komt faan $1 an mut uk för ööder projekten brükt wurd.',
 'sharedupload-desc-there' => 'Detdiar datei as faan $1 an koon faan ööder projekten brükt wurd.
 Üüb det [$2 beskriiwangssidj] stäänt muar diartu.',
 'sharedupload-desc-here' => "Detheer bil as faan $1 an koon faan ööder projekten brükt wurd. 
@@ -1711,7 +1736,7 @@ Ferlicht wel dü det [$2 beskriiwangssidj] feranre.',
 Ferlicht wel dü det [$2 beskriiwangssidj] feranre.',
 'filepage-nofile' => 'En datei mä didiar nööm jaft at ei.',
 'filepage-nofile-link' => 'En datei mä didiar nööm jaft at ei, man dü könst det [$1 huuchsjüür].',
-'uploadnewversion-linktext' => 'En nai färsjoon foon jüdeer dåtäi huuchsiinje',
+'uploadnewversion-linktext' => 'En nei werjuun faan detdiar datei huuchschüür',
 'shared-repo-from' => 'foon $1',
 'shared-repo' => 'en gemiansoom archiif',
 'upload-disallowed-here' => 'Dü könst detdiar datei ei auerskriiw.',
@@ -1766,7 +1791,7 @@ Iar dü ian strikst, stel seeker, dat diar nian ferwisangen üüb detdetdiar fö
 'unusedtemplateswlh' => 'Ööder ferwisangen',
 
 # Random page
-'randompage' => 'Tufali sid',
+'randompage' => 'Tufelag sidj',
 'randompage-nopages' => 'Diar san nian sidjen uun {{PLURAL:$2|nöömrüm|nöömrümer}}: $1.',
 
 # Random redirect
@@ -1776,7 +1801,7 @@ Iar dü ian strikst, stel seeker, dat diar nian ferwisangen üüb detdetdiar fö
 # Statistics
 'statistics' => 'Statistik',
 'statistics-header-pages' => 'Sidjenstatistik',
-'statistics-header-edits' => 'Statistik faan bewerkangen',
+'statistics-header-edits' => 'Statistik faan feranrangen',
 'statistics-header-views' => 'Statistik faan kliks üüb sidjen',
 'statistics-header-users' => 'Brükerstatistik',
 'statistics-header-hooks' => 'Ööder statistiken',
@@ -1784,11 +1809,11 @@ Iar dü ian strikst, stel seeker, dat diar nian ferwisangen üüb detdetdiar fö
 'statistics-pages' => 'Sidjen',
 'statistics-pages-desc' => 'Aal a sidjen uun det wiki, mä diskusjuunssidjen, widjerfeerangen asw.',
 'statistics-files' => 'Huuchschüürd datein',
-'statistics-edits' => 'Bewerkangen, sant det sidj {{SITENAME}} maaget wurden as',
-'statistics-edits-average' => "Bewerkangen per sidj uun't madel",
+'statistics-edits' => 'Feranrangen, sant {{SITENAME}} maaget wurden as',
+'statistics-edits-average' => "Feranrangen per sidj uun't madel",
 'statistics-views-total' => 'Kliks üüb det sidj',
 'statistics-views-total-desc' => 'Kliks üüb sidjen, diar\'t goorei jaft of "Spezial-"sidjen wurd ei mätääld.',
-'statistics-views-peredit' => 'Kliks per bewerkang',
+'statistics-views-peredit' => 'Kliks per feranrang',
 'statistics-users' => 'Registriaret [[Special:ListUsers|brükern]]',
 'statistics-users-active' => 'Aktiif brükern',
 'statistics-users-active-desc' => 'Brükern, diar wat bewerket haa uun a leetst {{PLURAL:$1|dai|$1 daar}}',
@@ -1830,7 +1855,7 @@ Uun arke rä stun ferwisangen tu't iarst an ööder widjerfeerang an uk tu det s
 'ncategories' => '{{PLURAL:$1|kategorii|kategoriie}}',
 'ninterwikis' => '$1 {{PLURAL:$1|interwiki|interwikis}}',
 'nlinks' => '$1 {{PLURAL:$1|link|links}}',
-'nmembers' => '{{PLURAL:$1|1 önjdraag|$1 önjdraage}}',
+'nmembers' => '{{PLURAL:$1|1 iindrach|$1 iindracher}}',
 'nrevisions' => '$1 {{PLURAL:$1|feranrang|feranrangen}}',
 'nviews' => '$1 {{PLURAL:$1|klik|kliks}}',
 'nimagelinks' => 'Brükt üüb $1 {{PLURAL:$1|sidj|sidjen}}',
@@ -1859,7 +1884,7 @@ Uun arke rä stun ferwisangen tu't iarst an ööder widjerfeerang an uk tu det s
 'mostimages' => 'Datein, huar a miast sidjen üüb ferwise',
 'mostinterwikis' => 'Sidjen mä a miast ferwisangen tu ööder spriaken',
 'mostrevisions' => 'Sidjen mä miast feranrangen',
-'prefixindex' => 'Åle side (ma prefiks)',
+'prefixindex' => 'Aal a sidjen (mä prefix)',
 'prefixindex-namespace' => 'Aal a sidjen mä prefix (nöömrüm $1)',
 'shortpages' => 'Kurt sidjen',
 'longpages' => 'Lung sidjen',
@@ -1878,53 +1903,53 @@ Uun arke rä stun ferwisangen tu't iarst an ööder widjerfeerang an uk tu det s
 'listusers-creationsort' => 'Sortiare efter dootem',
 'usereditcount' => '{{PLURAL:$1|feranrang|$1 feranrangen}}',
 'usercreated' => '{{GENDER:$3|Maaget}} di $1 am a klook $2',
-'newpages' => 'Naie side',
+'newpages' => 'Nei sidjen',
 'newpages-username' => 'Brükernoome:',
 'ancientpages' => 'Al loong ei muar bewerket sidjen',
-'move' => 'Ferschüwe',
-'movethispage' => 'Sid ferschüwe',
+'move' => 'Fersküüw',
+'movethispage' => 'Detdiar sidj fersküüw',
 'unusedimagestext' => "Jodiar datein san uun nään artiikel iinbünjen. Det koon oober lacht wees, dat ööder wääbsidjen diarüüb ferwise. Sodenang wurd jo heer apfeerd, uk wan's huarööders brükt wurd.",
 'unusedcategoriestext' => "Jodiar kategorii-sidjen san diar, likes dat's leesag san an uun uugenblak ei brükt wurd.",
 'notargettitle' => 'Nian sidj uunden',
 'notargettext' => 'Dü heest nian sidj uunden, huar det funktjuun werke skal.',
 'nopagetitle' => 'Kwelsidj as ei diar',
 'nopagetext' => 'Det sidj, wat fersköwen wurd skal, as ei diar.',
-'pager-newer-n' => '{{PLURAL:$1|näisten|näiste $1}}',
-'pager-older-n' => '{{PLURAL:$1|åleren|ålere $1}}',
+'pager-newer-n' => '{{PLURAL:$1|1 neier|$1 neier}}',
+'pager-older-n' => '{{PLURAL:$1|1 ääler|$1 ääler}}',
 'suppress' => 'Oversight',
 'querypage-disabled' => 'Detdiar spezial-sidj as ei aktiif, am det süsteem ei tu auerläästin.',
 
 # Book sources
-'booksources' => 'ISBN-säkj',
-'booksources-search-legend' => 'Säk eefter betii-kwäle for böke',
-'booksources-go' => 'Säke',
+'booksources' => 'Schük efter ISBN-numer',
+'booksources-search-legend' => 'Schük efter bukloodens',
+'booksources-go' => 'Widjer',
 'booksources-text' => 'Detdiar list ferwiset üüb wääbsteeden, diar nei an brükt buken ferkuupe. Diar feist dü uk muar tu weden. {{SITENAME}} hää mo jodiar kuuplidj oober niks tu dun.',
 'booksources-invalid-isbn' => 'Detdiar ISBN as woorskiinelk ferkiard. Luke noch ans efter, of det rocht auerdraanj wurden as.',
 
 # Special:Log
 'specialloguserlabel' => 'Brüker:',
 'speciallogtitlelabel' => 'Mual (sidjennööm of brüker):',
-'log' => 'Logböke',
+'log' => 'Logbuken',
 'all-logs-page' => 'Aal a öfentelk logbuken',
-'alllogstext' => 'Diar wuad aal a logbuken faan {{SITENAME}} uunwiset.
+'alllogstext' => 'Diar wurd aal a logbuken faan {{SITENAME}} uunwiset.
 Det woort efter logbukslach, brüker of sidjennööm uunwiset. Grat- an letjskriiwang skel beaachtet wurd.',
 'logempty' => 'Diar as niks uun.',
 'log-title-wildcard' => 'Sidjennööm begant mä ...',
 'showhideselectedlogentries' => 'Wise/fersteeg jodiar logbukiindracher',
 
 # Special:AllPages
-'allpages' => 'Åle side',
+'allpages' => 'Aal a sidjen',
 'alphaindexline' => '$1 bit $2',
 'nextpage' => 'Näist sid ($1)',
-'prevpage' => 'Leest sid ($1)',
-'allpagesfrom' => 'Side wise sunt:',
-'allpagesto' => 'Side wise bit:',
-'allarticles' => 'Åle side',
+'prevpage' => 'Leetst sidj ($1)',
+'allpagesfrom' => 'Sidjen wise sant:',
+'allpagesto' => 'Sidjen wise bit:',
+'allarticles' => 'Aal a sidjen',
 'allinnamespace' => 'Aal a sidjen (nöömrüm: $1)',
 'allnotinnamespace' => 'Aal a sidjen (saner nöömrüm $1)',
 'allpagesprev' => 'Leest',
 'allpagesnext' => 'Näist',
-'allpagessubmit' => 'Önjwiinje',
+'allpagessubmit' => 'Widjer',
 'allpagesprefix' => 'Sidjen uunwise mä prefix:',
 'allpagesbadtitle' => 'Didiar sidjennööm gongt ei. Hi hed ferlicht en spriak-prefix of diar san ei tuläät tiakens uun.',
 'allpages-bad-ns' => 'Di nöömrüm „$1“ komt uun {{SITENAME}} ei föör.',
@@ -1950,10 +1975,10 @@ Luke uk bi det list faan [[Special:WantedCategories|nuadag kategoriin]].',
 'sp-deletedcontributions-contribs' => 'Bidracher',
 
 # Special:LinkSearch
-'linksearch' => "Sjük efter ferwisangen uun't näät",
+'linksearch' => "Schük efter ferwisangen uun't näät",
 'linksearch-pat' => 'Schükmünster:',
-'linksearch-ns' => 'Noomerüm:',
-'linksearch-ok' => 'Säk',
+'linksearch-ns' => 'Nöömrüm:',
+'linksearch-ok' => 'Schük',
 'linksearch-text' => 'Diar kön wariaabeln üs t.b. "*.bispal.de" brükt wurd. Tumanst ian TLD üs t.b. "*.org" skal uunden wurd.<br />{{PLURAL:$2|Protokol|Protokolen}}: <code>$1</code> (Diar woort http nimen, wan niks ööders uunden as.)',
 'linksearch-line' => '$2 ferwiset üüb $1',
 'linksearch-error' => 'Wariaabeln ("*") mut bluas bi a began faan en URL uunden wurd.',
@@ -1982,7 +2007,7 @@ Muar diartu fanjst dü üüb  [[{{MediaWiki:Listgrouprights-helppage}}|detdiar s
 'listgrouprights-group' => 'Skööl',
 'listgrouprights-rights' => 'Rochten',
 'listgrouprights-helppage' => 'Help:Brükersköölrochten',
-'listgrouprights-members' => '(lasmoote-list)',
+'listgrouprights-members' => '(lasmooten)',
 'listgrouprights-addgroup' => 'Brüker tu {{PLURAL:$2|detdiar skööl|jodiar sköölen}} tuwise: $1',
 'listgrouprights-removegroup' => 'Brüker ütj {{PLURAL:$2|detdiar skööl|jodiar sköölen}} ütjnem: $1',
 'listgrouprights-addgroup-all' => 'Brüker tu aal a sköölen tuwise',
@@ -1995,7 +2020,7 @@ Muar diartu fanjst dü üüb  [[{{MediaWiki:Listgrouprights-helppage}}|detdiar s
 # Email user
 'mailnologin' => "Bi't e-mail ferschüüren as wat skiaf gingen",
 'mailnologintext' => 'Dü skel [[Special:UserLogin|uunmeldet wees]] an en gudkäänd e-mail-adres uun din [[Special:Preferences|iinstelangen]] haa, am dat dü ööder brükern en e-mail schüür könst.',
-'emailuser' => 'E-mail tu dideere brüker',
+'emailuser' => 'E-mail tu didiar brüker',
 'emailuser-title-target' => 'E-mail tu {{GENDER:$1|didiar brüker|detdiar brükerin}} schüür',
 'emailuser-title-notarget' => 'E-mail tu brüker',
 'emailpage' => 'E-mail tu brüker',
@@ -2019,7 +2044,7 @@ Din aanj e-mail adres faan din [[Special:Preferences|iinstelangen]] woort uunwis
 'emailsubject' => 'Teemo:',
 'emailmessage' => 'Mädialang:',
 'emailsend' => 'Schüür',
-'emailccme' => 'Sjüür mi en kopii faan det e-mail',
+'emailccme' => 'Schüür mi en kopii faan det e-mail.',
 'emailccsubject' => 'Kopii faan din mädialang tu $1: $2',
 'emailsent' => 'E-mail as wechschüürd wurden',
 'emailsenttext' => 'Din e-mail as wechsjüürd wurden.',
@@ -2039,17 +2064,16 @@ Din aanj e-mail adres faan din [[Special:Preferences|iinstelangen]] woort uunwis
 'watchnologintext' => "Dü skel [[Special:UserLogin|uunmeldet]] wees, am iindracher tu bewerkin, diar dü uun't uug behual wel.",
 'addwatch' => "Uk uun't uug behual",
 'addedwatchtext' => "Det sidj „[[:$1]]“ wel dü [[Special:Watchlist|uun't uug behual]].
-Feranerangen faan detdiar sidj wurd üüb detdiar list fäästhäälen.",
+Feranrangen faan detdiar sidj wurd üüb detdiar list fäästhäälen.",
 'removewatch' => "Ei muar uun't uug behual",
-'removedwatchtext' => 'Jü sid „[[:$1]]“ wörd foon din [[Special:Watchlist|eefterkiiklist]] wächhååld.',
-'watch' => 'Kiike eefter',
-'watchthispage' => 'Side eefterkiike',
-'unwatch' => 'ai mör eefter kiike',
+'removedwatchtext' => "Det sidj „[[:$1]]“ as faan a sidjen, diar dü [[Special:Watchlist|uun't uug behual]] wel, wechnimen wurden.",
+'watch' => "Uun't uug behual",
+'watchthispage' => "Detdiar sidj uun't uug behual",
+'unwatch' => "Ei muar uun't uug behual",
 'unwatchthispage' => "Ei muar uun't uug behual",
 'notanarticle' => 'Nään artiikel',
 'notvisiblerev' => 'Det werjuun faan en öödern brüker as stregen wurden.',
-'watchnochange' => "A sidjen, diar dü uun't uug heest, san uun di uunwiset tidjrüm ei bewerket wurden.",
-'watchlist-details' => 'Dü kiikst eefter {{PLURAL:$1|1 sid|$1 side}}.',
+'watchlist-details' => "Dü heest {{PLURAL:$1|1 sidj|$1 sidjen}} uun't uug.",
 'wlheader-enotif' => 'Di e-mail siinst as aktiif.',
 'wlheader-showupdated' => "Nei feranert sidjen wurd '''fäät''' uunwiset.",
 'watchmethod-recent' => "Leetst feranrangen faan sidjen, diar dü uun't uug heest",
@@ -2057,12 +2081,12 @@ Feranerangen faan detdiar sidj wurd üüb detdiar list fäästhäälen.",
 'watchlistcontains' => "Dü häälst $1 {{PLURAL:$1|sidj|sidjen}} uun't uug.",
 'iteminvalidname' => 'Mä di iindrach „$1“ stemet wat ei, di nööm as ferkiard.',
 'wlnote' => "Diar {{PLURAL:$1|stäänt det leetst feranrang|stun a leetst '''$1''' feranrangen}} faan a leetst {{PLURAL:$2|stünj|'''$2''' stünjen}}. Stant: $3, klook $4.",
-'wlshowlast' => 'Wis da änringe foon da leeste $1 stüne, $2 deege unti $3.',
-'watchlist-options' => 'Wis-opsjoone',
+'wlshowlast' => 'Wise a feranrangen faan leetst $1 stünjen, $2 daar of $3.',
+'watchlist-options' => "Iinstelangen för't uunwisin",
 
 # Displayed when you click the "watch" button and it is in the process of watching
-'watching' => 'Eefter kiike...',
-'unwatching' => 'Ai eefter kiike...',
+'watching' => "Uun't uug behual ...",
+'unwatching' => "Ei uun't uug behual ...",
 'watcherrortext' => "Bi't anrin faan iinstelangen för „$1“ as wat skiaf gingen.",
 
 'enotif_mailer' => '{{SITENAME}}-e-mail-noorachten siinst',
@@ -2103,9 +2127,11 @@ Am iinstelangen am sidjen, diar dü uun\'t uug behual wel, gung tu {{canonicalur
 Am det sidj ei linger uun\'t uug tu behualen, gung tu $UNWATCHURL.
 
 Halep an muar diartu: {{canonicalurl:{{MediaWiki:Helppage}}}}',
+'created' => 'maaget',
+'changed' => 'feranert',
 
 # Delete
-'deletepage' => 'Sid tunintemååge',
+'deletepage' => 'Sidj strik',
 'confirm' => 'Gudkään',
 'excontent' => 'diar sted: „$1“',
 'excontentauthor' => 'diar sted: „$1“ (iansagst bewerker: [[Special:Contributions/$2|$2]])',
@@ -2114,17 +2140,17 @@ Halep an muar diartu: {{canonicalurl:{{MediaWiki:Helppage}}}}',
 'delete-confirm' => 'Strik "$1"',
 'delete-legend' => 'Strike',
 'historywarning' => "'''Paase üüb:''' Det sidj, wat dü strik wel, hää amanbi $1 {{PLURAL:$1|werjuun|werjuunen}}:",
-'confirmdeletetext' => 'Dü bast deerbai, en sid ma åle tuhiirende ålere färsjoone tuninte tu måågen. Bestääsie hål deertu, dåt dü de foon da konsekwänse bewust bast, än dåt dü önj oueriinjstiming ma da [[{{MediaWiki:Policy-url}}|ruchtliinjen]] hoonelst.',
-'actioncomplete' => 'Aksjoon beånd',
+'confirmdeletetext' => 'Dü wel en sidj mä aal sin werjuunen strik. Dü skel gudkään, dat dü witjst, wat dü dääst an dat din dun mä a [[{{MediaWiki:Policy-url}}|brükerreegeln]] auerian stemet.',
+'actioncomplete' => 'Klaar',
 'actionfailed' => 'Diar ging wat skiaf',
-'deletedtext' => '„$1“ wörd tunintemååged. In e $2 fanst dü en list foon da tuleest tunintemåågede side.',
-'dellogpage' => 'Tunintemååg-Logbök',
+'deletedtext' => "„$1“ as stregen wurden. Uun't $2 fanjst dü a sidjen, diar tuleetst stregen wurden san.",
+'dellogpage' => 'Strik-logbuk',
 'dellogpagetext' => 'Diar stun a leetst stregen sidjen an datein.',
 'deletionlog' => "logbuk faan't striken",
 'reverted' => 'Üüb en ual werjuun turagsaat',
-'deletecomment' => 'Grün:',
-'deleteotherreason' => 'Ouderen/tubaikaamenden grün:',
-'deletereasonotherlist' => 'Ouderen grün',
+'deletecomment' => 'Grünj:',
+'deleteotherreason' => 'Ööder/noch en grünj:',
+'deletereasonotherlist' => 'Ööder grünj',
 'deletereason-dropdown' => "*Algemian grünjer för't striken
 ** Di skriiwer wul det so
 ** Copyright as ei beaachtet
@@ -2136,7 +2162,7 @@ Halep an muar diartu: {{canonicalurl:{{MediaWiki:Helppage}}}}',
 # Rollback
 'rollback' => 'Feranrangen turagsaat',
 'rollback_short' => 'Turagsaat',
-'rollbacklink' => 'tubäägseete',
+'rollbacklink' => 'turagsaat',
 'rollbacklinkcount' => '$1 {{PLURAL:$1|feranrang|feranrangen}} turagsaat',
 'rollbacklinkcount-morethan' => 'Muar üs $1 {{PLURAL:$1|werjuun|werjuunen}} turagsaat',
 'rollbackfailed' => "Bi't turagsaaten as wat skiaf gingen.",
@@ -2146,7 +2172,7 @@ Halep an muar diartu: {{canonicalurl:{{MediaWiki:Helppage}}}}',
 Det leetst feranrang as faan [[User:$3|$3]] ([[User talk:$3|Diskusjuun]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "Tuupfaadet feranrang: ''„$1“''.",
 'revertpage' => 'Feranrangen faan [[Special:Contributions/$2|$2]] ([[User talk:$2|Diskusjuun]]) san üüb di leetst stant faan [[User:$1|$1]] turagsaat wurden.',
-'revertpage-nouser' => 'Feranrangen faan (brükernööm wechnimen) turagsaat an leetst werjuun faan [[User:$1|$1]] weder iinsteld.',
+'revertpage-nouser' => 'Feranrangen faan en ferbürgenen brüker turagsaat an det leetst werjuun faan [[User:$1|$1]] weder iinsteld.',
 'rollback-success' => 'Feranrangen faan $1 turagsaat an det leetst werjuun faan $2 weder iinsteld.',
 
 # Edit tokens
@@ -2156,11 +2182,11 @@ Am dat diar ei noch muar skiaf gongt, as det aktjuun ufbreegen wurden.
 Gung turag, an began faan föören.",
 
 # Protect
-'protectlogpage' => 'Sideschütse-logbök',
+'protectlogpage' => 'Sidjenseekerangs-logbuk',
 'protectlogtext' => 'Detheer as det logbuk mä seekert sidjen.
 Üüb [[Special:ProtectedPages|detdiar list]] stun a seekert sidjen.',
-'protectedarticle' => 'schütsed „[[$1]]“',
-'modifiedarticleprotection' => 'änred e schüts for "[[$1]]"',
+'protectedarticle' => 'hää „[[$1]]“ seekert.',
+'modifiedarticleprotection' => 'hää det seekerhaid faan "[[$1]]" feranert',
 'unprotectedarticle' => 'Seekerang faan „[[$1]]“ apheewen',
 'movedarticleprotection' => 'hää det seekerang faan „[[$2]]“ üüb „[[$1]]“ auerdraanj',
 'protect-title' => 'Seekerang feranre för „$1“',
@@ -2171,26 +2197,28 @@ Gung turag, an began faan föören.",
 'protect-norestrictiontypes-text' => 'Detdiar sidj koon ei seekert wurd, auer diar nian mögelkhaiden san.',
 'protect-norestrictiontypes-title' => 'Sidj koon ei seekert wurd',
 'protect-legend' => 'Sidjenseekerang feranre',
-'protectcomment' => 'Grün:',
-'protectexpiry' => 'Spärduur:',
-'protect_expiry_invalid' => 'Jü önjjääwen duur as üngülti.',
-'protect_expiry_old' => 'Jü spärtid lait in jü jütid.',
+'protectcomment' => 'Grünj:',
+'protectexpiry' => 'Sperdüür:',
+'protect_expiry_invalid' => 'Didiar tidjrüm gongt ei.',
+'protect_expiry_old' => 'Det spertidj leit uun a jütidj.',
 'protect-unchain-permissions' => 'Separaat speren aktiwiare',
-'protect-text' => 'Heer koost dü e schütsstatus for jü sid "$1" önjkiike än änre.',
+'protect-text' => 'Heer könst dü det seekerhaid faan "$1" uunluke an feranre.',
 'protect-locked-blocked' => "Dü könst det sidjenseekerang ei feranre, auer din brükerkonto speret as. So as det sidj '''„$1“:''' seekert wurden.",
 'protect-locked-dblock' => "Det dootenbeenk as speret, det sidjenseekerang koon ei feranert wurd. So as det sidj '''„$1“:''' seekert wurden.",
-'protect-locked-access' => "Din brükerkonto ferfäiget ai ouer da nüsie ruchte tu jü änring foon e sideschüts. Heer san da aktuäle sideschütsönjstalinge fon jü sid '''„$1“:'''",
-'protect-cascadeon' => 'Jüdeer sid as nütutids diilj foon e kaskaadenspäre. Jü as önj {{PLURAL:$1|jü füliende sid|da füliende side}} önjbünen, huk döör jü kaskaadenspäropsjoon schütsed {{PLURAL:$1|as|san}}. Di sideschütsstatus koon for jüdeer sid änred wårde, dåtdeer heet ouers nån influs aw jü kaskaadenspäre:',
-'protect-default' => 'Åle brükere',
+'protect-locked-access' => "Dü heest ei det brükerrocht, am det sidjenseekerhaid tu feranrin.
+Det sidj '''„$1“:''' as sodenang seekert wurden:",
+'protect-cascadeon' => 'Detdiar sidj as auer en kaskaadensper seekert wurden. Hat as uun {{PLURAL:$1|detdiar seekert sidj|jodiar seekert sidjen}} iinbünjen.
+Dü könst det seekerhaid feranre, det feranert oober ei det seekerhaid faan jo ööder sidjen.',
+'protect-default' => 'Arke brüker',
 'protect-fallback' => 'Ferloof bluas för brükern mä "$1"-rochten.',
 'protect-level-autoconfirmed' => 'Ferloof bluas för registriaret brükern.',
 'protect-level-sysop' => 'Ferloof bluas för administratooren.',
-'protect-summary-cascade' => 'kaskadiirend',
-'protect-expiring' => 'bit $2, am e klook $3 (UTC)',
+'protect-summary-cascade' => 'kaskadiirin',
+'protect-expiring' => 'bit $2, am a klook $3 (UTC)',
 'protect-expiring-local' => 'bit $1',
 'protect-expiry-indefinite' => 'saner aanj',
-'protect-cascade' => 'Kaskadiirende späre - åle önj jüdeer sid önjbünene forlååge wårde uk spärd.',
-'protect-cantedit' => 'Dü koost jü späre foon jüheer sid ai änre, deer dü niinj beruchtiging tu beårben foon jü sid hääst.',
+'protect-cascade' => 'Kaskaadensper - aal a föörlaagen faan detdiar sidj wurd uk speret',
+'protect-cantedit' => 'Dü könst det sper faan detdiar sidj ei feranre, auer dü det sidj ei bewerke mutst.',
 'protect-othertime' => 'Ööder sperdüür:',
 'protect-othertime-op' => 'ööder sperdüür',
 'protect-existing-expiry' => 'Sidjenseekerang lääpt uf: $2, klook $3',
@@ -2204,8 +2232,8 @@ Gung turag, an began faan föören.",
 ** Sidj mä föl beschük',
 'protect-edit-reasonlist' => "Grünjer för't seekrin bewerke",
 'protect-expiry-options' => '1 stünj:1 hour,1 dai:1 day,1 weg:1 week,2 wegen:2 weeks,1 muun:1 month,3 muuner:3 months,6 muuner:6 months,1 juar:1 year,saner aanj:infinite',
-'restriction-type' => 'Schütsstatus',
-'restriction-level' => 'Schütshöögde',
+'restriction-type' => 'Seekerhaidsiinstelangen:',
+'restriction-level' => 'Seekerhaidspeegel:',
 'minimum-size' => 'Minimaal grate:',
 'maximum-size' => 'Maksimaal grate:',
 'pagesize' => '(bytes)',
@@ -2228,8 +2256,8 @@ Gung turag, an began faan föören.",
 'viewdeletedpage' => 'Stregen sidjen uunwise',
 'undeletepagetext' => "{{PLURAL:$1|Detdiar sidj as stregen wurden, oober koon|Jodiar $1 sidjen san stregen wurden, oober kön}} faan administratooren weder iinsteld wurd, wan jo noch uun't archiif san.",
 'undelete-fieldset-title' => 'Weder iinstel',
-'undeleteextrahelp' => '* Am det sidj mä aal jo werjuunen weder iintustelen, sjük nian enkelt werjuun ütj, du en grünj uun an trak do üüb „{{int:undeletebtn}}“.*
-* Am en was werjuun weder iintustelen, sjük det werjuun ütj, du en grünj uun an trak do üüb „{{int:undeletebtn}}“.',
+'undeleteextrahelp' => '* Am det sidj mä aal jo werjuunen weder iintustelen, schük nian enkelt werjuun ütj, du en grünj uun an trak do üüb „{{int:undeletebtn}}“.*
+* Am en was werjuun weder iintustelen, schük det werjuun ütj, du en grünj uun an trak do üüb „{{int:undeletebtn}}“.',
 'undeleterevisions' => '{{PLURAL:$1|1 werjuun|$1 werjuunen}} archiwiaret',
 'undeletehistory' => 'Wan dü detdiar sidj weder iinstelst, wurd uk jo ual werjuunen weder iinsteld. 
 Wan sant det striken en nei sidj mä di salew nööm iinsteld wurden as, wurd jo ual werjuunen bi det nei sidj mä iinwerket.',
@@ -2242,9 +2270,9 @@ Di tekst faan det stregen sidj fu bluas administratooren uunwiset.',
 'undeleterevision-missing' => 'Mä detdiar werjuun stemet wat ei. Ferlicht as di link ferkiard of det werjuun as ei muar diar.',
 'undelete-nodiff' => 'Nian föörgunger-werjuun diar.',
 'undeletebtn' => 'Weder iinstel',
-'undeletelink' => 'wise/widermååge',
+'undeletelink' => 'wise / weder iinstel',
 'undeleteviewlink' => 'Uunluke',
-'undeletereset' => 'Turag saat',
+'undeletereset' => 'Turagsaat',
 'undeleteinvert' => 'Ütjwool amdrei',
 'undeletecomment' => 'Grünj:',
 'undeletedrevisions' => '{{PLURAL:$1|1 werjuun|$1 werjuunen}} weder iinsteld',
@@ -2255,10 +2283,10 @@ $1',
 'undeletedpage' => "'''„$1“''' as weder iinsteld wurden.
 Uun't [[Special:Log/delete|logbuk faan stregen sidjen]] stun a stregen an weder iinsteld sidjen.",
 'undelete-header' => "Luke uun't [[Special:Log/delete|logbuk för stregen sidjen]] efter stregen sidjen faan a leetst tidj.",
-'undelete-search-title' => 'Sjük stregen sidjen',
-'undelete-search-box' => 'Sjük stregen sidjen',
-'undelete-search-prefix' => 'Sjük sidjen, diar began mä:',
-'undelete-search-submit' => 'Sjük',
+'undelete-search-title' => 'Schük stregen sidjen',
+'undelete-search-box' => 'Schük stregen sidjen',
+'undelete-search-prefix' => 'Schük sidjen, diar began mä:',
+'undelete-search-submit' => 'Schük',
 'undelete-no-results' => "Uun't archiif wiar nian paasen sidjen.",
 'undelete-filename-mismatch' => 'Det werjuun faan $1 koon ei weder iinsteld wurd. Di dateinööm paaset ei.',
 'undelete-bad-store-key' => "Det dateiwersjuun faan $1 koon ei weder iinsteld wurd. Det datei wiar al föör't striken ei muar diar.",
@@ -2273,55 +2301,55 @@ $1",
 'undelete-show-file-submit' => 'Ja',
 
 # Namespace form on various pages
-'namespace' => 'Noomerüm:',
-'invert' => 'Ütwool amkiire',
+'namespace' => 'Nöömrüm:',
+'invert' => 'Ütjwool amkiir',
 'tooltip-invert' => 'Saat diar en tiaken, am feranrangen faan sidjen uun didiar nöömrüm ei uuntuwisin.',
 'namespace_association' => 'Ferbünjen nöömrüm',
 'tooltip-namespace_association' => 'Saat diar en tiaken, am di ferbünjen nöömrüm of diskusjuunsnöömrüm mä iintubetjin.',
-'blanknamespace' => '(Side)',
+'blanknamespace' => '(Sidjen)',
 
 # Contributions
 'contributions' => '{{GENDER:$1|Brüker}} bidracher',
-'contributions-title' => 'Brükertujeefte foon "$1"',
+'contributions-title' => 'Brükerbidracher för "$1"',
 'mycontris' => 'Bidracher',
-'contribsub2' => 'For $1 ($2)',
+'contribsub2' => 'För $1 ($2)',
 'nocontribs' => 'Diar wiar nian paasin brükerbidracher',
-'uctop' => '(aktuäl)',
-'month' => 'än moune:',
-'year' => 'bit iir:',
+'uctop' => '(aktuel)',
+'month' => 'faan muun (of iarer):',
+'year' => 'faan juar (of iarer):',
 
-'sp-contributions-newbies' => 'Wis bloot tujeefte foon naie brükere',
+'sp-contributions-newbies' => 'Wise bluas bidracher faan nei brükern',
 'sp-contributions-newbies-sub' => 'Faan nei brükern',
 'sp-contributions-newbies-title' => 'Brükerbidracher faan nei brükern',
-'sp-contributions-blocklog' => 'Spär-logbök',
+'sp-contributions-blocklog' => 'Sper-logbuk',
 'sp-contributions-deleted' => 'Stregen bidracher',
-'sp-contributions-uploads' => 'Huuchsjüürd bilen',
-'sp-contributions-logs' => 'logbuken',
-'sp-contributions-talk' => 'diskusjuun',
+'sp-contributions-uploads' => 'Huuchschüürd bilen',
+'sp-contributions-logs' => 'Logbuken',
+'sp-contributions-talk' => 'Diskusjuun',
 'sp-contributions-userrights' => 'Brükerrochten',
 'sp-contributions-blocked-notice' => "Didiar brüker as speret. Det stäänt uun't sperlogbuk:",
 'sp-contributions-blocked-notice-anon' => "Detdiar IP-adres as speret. Det stäänt uun't sperlogbuk:",
-'sp-contributions-search' => 'Säkj eefter brükertujeefte',
-'sp-contributions-username' => 'IP-adräs unti brükernoome',
+'sp-contributions-search' => 'Schük efter brükerbidracher',
+'sp-contributions-username' => 'IP-adres of brükernööm:',
 'sp-contributions-toponly' => 'Bluas aktuel werjuunen wise',
-'sp-contributions-submit' => 'Säike',
+'sp-contributions-submit' => 'Schük',
 
 # What links here
-'whatlinkshere' => 'Links aw jüdeer sid',
-'whatlinkshere-title' => 'Side, da aw "$1" ferlinke',
-'whatlinkshere-page' => 'sid:',
-'linkshere' => "Da füliende side ferlinke aw '''„[[:$1]]“''':",
+'whatlinkshere' => 'Ferwisangen üüb detdiar sidj',
+'whatlinkshere-title' => 'Sidjen, diar üüb "$1" ferwise',
+'whatlinkshere-page' => 'Sidj:',
+'linkshere' => "Jodiar sidjen ferwise üüb '''„[[:$1]]“''':",
 'nolinkshere' => 'Nian sidj ferwiset üüb [[:$1]]',
 'nolinkshere-ns' => "Nian sidj ferwiset üüb '''„[[:$1]]“''' uun di ütjsoocht nöömrüm.",
-'isredirect' => 'widerliidjingssid',
-'istemplate' => 'forlåågeninbining',
-'isimage' => 'Dåtäilink',
-'whatlinkshere-prev' => '{{PLURAL:$1|leesten|leeste $1}}',
-'whatlinkshere-next' => '{{PLURAL:$1|näisten|näiste $1}}',
-'whatlinkshere-links' => '← links',
-'whatlinkshere-hideredirs' => 'Widerliidjinge $1',
-'whatlinkshere-hidetrans' => 'Forlåågenönjbininge $1',
-'whatlinkshere-hidelinks' => 'Links $1',
+'isredirect' => 'widjerfeerang',
+'istemplate' => 'iinbünjen föörlaagen',
+'isimage' => 'Dateilink',
+'whatlinkshere-prev' => '{{PLURAL:$1|leetst|leetst $1}}',
+'whatlinkshere-next' => '{{PLURAL:$1|naist|naist $1}}',
+'whatlinkshere-links' => '← ferwisangen',
+'whatlinkshere-hideredirs' => '$1 widjerfeerangen',
+'whatlinkshere-hidetrans' => '$1 iinbünjen föörlaagen',
+'whatlinkshere-hidelinks' => '$1 ferwisangen',
 'whatlinkshere-hideimages' => 'Ferwisangen tu datein $1',
 'whatlinkshere-filters' => 'Filtere',
 
@@ -2329,7 +2357,7 @@ $1",
 'autoblockid' => 'Automaatisk sper #$1',
 'block' => 'Brüker spere',
 'unblock' => 'Brüker ei muar spere',
-'blockip' => 'IP-adräs/brüker späre',
+'blockip' => 'IP-adres/brüker spere',
 'blockip-title' => 'Brüker spere',
 'blockip-legend' => 'IP-adres/brüker spere',
 'blockiptext' => 'Mä detdiar formulaar sperest dü en IP-adres of en brükernööm, so dat faan diar nian feranrangen muar maaget wurd kön. 
@@ -2353,10 +2381,10 @@ Skriiw en guden grünj för det sper ap.',
 'ipbenableautoblock' => 'Spere det IP-adres faan di brüker, an automaatisk uk aal a öödern, huar di brüker mä werket.',
 'ipbsubmit' => 'IP-adres/brüker spere',
 'ipbother' => 'Ööder sperdüür (ingelsk):',
-'ipboptions' => '2 stüne:2 hours,1 däi:1 day,3 deege:3 days,1 wääg:1 week,2 wääge:2 weeks,1 moune:1 month,3 moune:3 months,6 moune:6 months,1 iir:1 year,suner iinje:infinite',
+'ipboptions' => '2 stünj:2 hours,1 dai:1 day,3 daar:3 days,1 weg:1 week,2 weg:2 weeks,1 muun:1 month,3 muuner:3 months,6 muuner:6 months,1 juar:1 year,saner aanj:infinite',
 'ipbotheroption' => 'Ööder sperdüür',
 'ipbotherreason' => 'Ööder/noch en grünj:',
-'ipbhidename' => 'Brükernööm uun bewerkangen an listen fersteeg',
+'ipbhidename' => 'Brükernööm uun feranrangen an listen fersteeg',
 'ipbwatchuser' => "Hual di brüker sin brüker- an diskusjuunssidj uun't uug",
 'ipb-disableusertalk' => 'Ferhanre, dat di brüker sin diskusjuunssidj bewerket, so loong hi speret as.',
 'ipb-change-block' => 'Mä jodiar iinstelangen widjer spere',
@@ -2378,9 +2406,9 @@ Am det aptuheewen, gung tu't [[Special:BlockList|sperlist]].",
 'unblocked' => '[[User:$1|$1]] woort ei muar speret.',
 'unblocked-range' => 'Sper för $1 as apheewen wurden.',
 'unblocked-id' => 'Sperang $1 as apheewen',
-'blocklist' => 'Spärd brükere',
-'ipblocklist' => 'Spärd brükere',
-'ipblocklist-legend' => 'Spärd brükere fine',
+'blocklist' => 'Speret brükern',
+'ipblocklist' => 'Speret brükern',
+'ipblocklist-legend' => 'Speret brüker finj',
 'blocklist-userblocks' => 'Brükersperen ei uunwise',
 'blocklist-tempblocks' => 'Tidjwiis speren ei uunwise',
 'blocklist-addressblocks' => 'Speren faan enkelt IP-adresen ei uunwise',
@@ -2391,11 +2419,11 @@ Am det aptuheewen, gung tu't [[Special:BlockList|sperlist]].",
 'blocklist-by' => 'Speret faan',
 'blocklist-params' => 'Speriinstelangen',
 'blocklist-reason' => 'Grünj',
-'ipblocklist-submit' => 'Sjük',
+'ipblocklist-submit' => 'Schük',
 'ipblocklist-localblock' => 'Lokaal sper',
 'ipblocklist-otherblocks' => 'Ööder {{PLURAL:$1|sper|speren}}',
 'infiniteblock' => 'saner aanj',
-'expiringblock' => 'iinjet aw e $1 am e klook $2',
+'expiringblock' => 'lääpt di $1 am a klook $2 uf',
 'anononlyblock' => 'bluas anonüümen',
 'noautoblockblock' => 'autoblock ei aktiif',
 'createaccountblock' => 'brükerkontos kön ei iinracht wurd.',
@@ -2403,34 +2431,34 @@ Am det aptuheewen, gung tu't [[Special:BlockList|sperlist]].",
 'blocklist-nousertalk' => 'koon sin aanj diskusjuunssidj ei bewerke',
 'ipblocklist-empty' => 'Det sperlist as leesag',
 'ipblocklist-no-results' => 'Detdiar IP-adres/di brükernööm as ei speret.',
-'blocklink' => 'späre',
-'unblocklink' => 'frijeewe',
-'change-blocklink' => 'Späring änre',
-'contribslink' => 'tujeefte',
-'emaillink' => 'e-mail schake',
-'autoblocker' => 'Automatische spär, deer dü en gemiinsoom IP-adräs ma [[User:$1|brüker:$1]] brükst. Grün foon brükerspär: „$2“.',
-'blocklogpage' => 'Brükerspär-logbök',
+'blocklink' => 'Spere',
+'unblocklink' => 'Ei muar spere',
+'change-blocklink' => 'Sper feranre',
+'contribslink' => 'Bidracher',
+'emaillink' => 'E-mail schüür',
+'autoblocker' => 'Automaatisk speret, auer dü en gemiansoom IP-adres mä [[User:$1|brüker:$1]] brükst. Grünj för det brükersper: „$2“.',
+'blocklogpage' => 'Brükersper-logbuk',
 'blocklog-showlog' => "Didiar brüker as al ans speret wurden.
 Uun't sperlogbuk stäänt:",
 'blocklog-showsuppresslog' => "Didiar brüker as al ans speret an ferbürgen wurden.
 Uun't logbuk stäänt:",
-'blocklogentry' => 'spärd „[[$1]]“ for di tidrüm: $2 $3',
-'reblock-logentry' => 'änerd jü spär for „[[$1]]“ for di tidrüm: $2 $3',
+'blocklogentry' => 'hää „[[$1]]“ speret för di tidjrüm: $2 $3',
+'reblock-logentry' => 'hää det sper för „[[$1]]“ anert för di tidjrüm: $2 $3',
 'blocklogtext' => "Detdiar as det logbuk auer sperangen an apheewen sperangen faan brükernöömer an IP-adresen.
 Automaatisk sperd IP-adresen wurd ei uunwiset.
 Luke bi't [[Special:BlockList|sperlist]] för aal jo aktuel speren.",
-'unblocklogentry' => 'heet jü späre foon „$1“ aphääwen',
-'block-log-flags-anononly' => 'bloot anonyme',
-'block-log-flags-nocreate' => 'Måågen foon brükerkonte spärd',
-'block-log-flags-noautoblock' => 'autoblock deaktiviird',
-'block-log-flags-noemail' => 'e-mail-fersiinjing spärd',
-'block-log-flags-nousertalk' => 'mötj äine diskusjoonssid ai beårbe',
-'block-log-flags-angry-autoblock' => 'ütbrååt autoblock aktiviird',
-'block-log-flags-hiddenname' => 'brükernoome ferstäägen',
-'range_block_disabled' => 'Jü möölikhäid, hiilj adräsrüme tu spären, as ai aktiviird.',
-'ipb_expiry_invalid' => 'Jü önjjääwen duur as üngülti.',
-'ipb_expiry_temp' => 'Ferstäägen brükernoome-späre schan pärmanänt weese.',
-'ipb_hide_invalid' => 'Ditheer konto koon ai unerdrükd wårde, deer dåt tufoole beårbinge apwist.',
+'unblocklogentry' => 'hää det sper faan „$1“ apheewen',
+'block-log-flags-anononly' => 'bluas IPs/anonüümen',
+'block-log-flags-nocreate' => 'brükerkontos kön ei iinracht wurd.',
+'block-log-flags-noautoblock' => 'autoblock ei aktiif',
+'block-log-flags-noemail' => 'e-mail fersjüüren ufsteld',
+'block-log-flags-nousertalk' => 'koon sin aanj diskusjuunssidj ei bewerke',
+'block-log-flags-angry-autoblock' => 'ütjwidjet autoblock aktiwiaret',
+'block-log-flags-hiddenname' => 'brükernööm ferbürgen',
+'range_block_disabled' => 'Det mögelkhaid, hialer adresrümer tu sperin, as ei aktiif.',
+'ipb_expiry_invalid' => 'Didiar tidjrüm gongt ei.',
+'ipb_expiry_temp' => 'Ferbürgen brükernööm-speren skel permanent wees.',
+'ipb_hide_invalid' => 'Detdiar brükerkonto koon ei ferbürgen wurd, auer diar tuföl feranrangen uun a ferluup stun.',
 'ipb_already_blocked' => '„$1“ as al speret',
 'ipb-needreblock' => '$1 as al speret. Wel dü a speriinstelangen feranre?',
 'ipb-otherblocks-header' => 'Ööder {{PLURAL:$1|sper|speren}}',
@@ -2472,30 +2500,37 @@ Fertel det dan ISP of dan süsteemsiinst. Eeben proxys stel det seekerhaid uun f
 'lockedbyandtime' => '(faan $1 di $2 am a klook $3)',
 
 # Move page
-'move-page' => 'Ferschüw $1',
+'move-page' => 'Fersüw $1',
 'move-page-legend' => 'Sid ferschüwe',
-'movepagetext' => "Ma dideere formulaar koost de en sid ambenååme (masamt åle färsjoone).
-Di üülje tiitel wårt tu di naie widerliidje.
-Dü koost widerliidjinge, da ap e originooltiitel ferlinke, automatisch korrigiire lätje.
-For di fål dåt dü dåt ai dääst, präiw aw [[Special:DoubleRedirects|dööwelte]] unti [[Special:BrokenRedirects|önjstööge widerliidjinge]].
-Dü bast deerfor feroontuurdlik, dåt links fortönj ap dåt koräkt muul wise.
-
-Jü sid wårt '''ai''' ferschääwen, wan dåt ål en sid ma di seelew noome jeeft,
-süwid jüdeer ai bloots en widerliidjing suner färsjoonshistoori as. Dåtdeer bedjüset,
-dåt dü jü sid tubääg ferschüwe koost, wan dü en fäägel mååged heest. Dü koost
-deeriinj niinj sid ouerschriwe.
-
-'''Woorschouing!'''
-Jü ferschüwing koon widlingende än ünfermousene fülie for beliifte side heewe.
-Dü schöist deerfor da konsekwänse ferstönjen heewe, iir dü baiblafst.",
-'movepagetalktext' => "Jü deertu hiirende diskusjoonssid wård, süwid deer, maferschääwen, '''unti dåt moost weese:'''
-*Deer bestoont ål en diskusjoonssid ma dideere noome, unti
-*dü wäälst jü uner stönjene opsjoon ouf.
-
-Önj dadeere fåle möist dü, wan wansched, di önjhålt foon jü sid foon hönj ferschüwe unti tuhuupefääre.
-
-Hål di '''naie''' tiitel uner '''muul''' önjdreege, deeruner jü ambenååming hål '''begrüne.'''",
-'movearticle' => 'Sid ferschüwe:',
+'movepagetext' => "Mä detdiar formulaar könst dü en sidj mä aal sin werjuunen amnääm.
+Di ual tiitel woort üüb di nei widjerfeerd.
+Dü könst widjerfeerangen, diar üüb di ual tiitel wise, automaatisk üüb di nei tiitel widjerfeer läät.
+Wan dü det oober ei dääst, paase üüb, dat dü aal a [[Special:DoubleRedirects|dobelt]] of [[Special:BrokenRedirects|breegen]] widjerfeerangen noch ans efterlukest.
+Bluas dü könst diarför surge, dat ferwisangen widjerhen rocht werke.
+
+Det sidj woort '''ei''' fersköwen, wan't al en sidj mä di nei nööm jaft. Det loket bluas do, wan di nei nööm salew en widjerfeerang as. Det ment, dat dü det amnäämen turagsaat könst, wan dü niks ferkiard maaget heest. Dü könst oober nian sidj, diar't al jaft, auerskriiw.
+
+'''Paase üüb!'''
+Det fersküüwen hää widjloftag fulgen för ööder sidjen. Dü skulst begreben haa, wat dü diar maage wel.",
+'movepagetext-noredirectfixer' => "Mä detdiar formulaar könst dü en sidj mä aal sin werjuunen amnääm.
+Di ual tiitel woort üüb di nei widjerfeerd.
+Dü könst widjerfeerangen, diar üüb di ual tiitel wise, automaatisk üüb di nei tiitel widjer feer läät.
+Wan dü det oober ei dääst, paase üüb, dat dü aal a [[Special:DoubleRedirects|dobelt]] of [[Special:BrokenRedirects|breegen]] widjerfeerangen noch ans efterlukest.
+Bluas dü könst diarför surge, dat ferwisangen widjerhen rocht werke.
+
+Det sidj woort '''ei''' fersköwen, wan't al en sidj mä di nei nööm jaft. Det loket bluas do, wan di nei nööm salew en widjerfeerang as. Det ment, dat dü det amnäämen turagsaat könst, wan dü niks ferkiard maaget heest. Dü könst oober nian sidj, diar't al jaft, auerskriiw.
+
+'''Paase üüb!'''
+Det fersküüwen hää widjloftag fulgen för ööder sidjen. Dü skulst begreben haa, wat dü diar maage wel.",
+'movepagetalktext' => "Uk det diskusjuunssidj woort fersköwen, wan det diar as, '''oober ei, wan:'''
+*Diar al en diskusjuunssidj mä didiar nööm as, of
+*Dü detdiar mögelkhaid ütjslotst.
+
+Uun didiar faal skel dü a diskusjuunssidjen faan hun tuupfeer.
+
+Dreeg di '''nei''' tiitel bi '''ööder sidj''' iin, an diaroner '''en grünj''' för't amnäämen.",
+'movearticle' => 'Sidj fersküüw:',
+'moveuserpage-warning' => "'''Paase üüb:''' Dü wel en brükersidj fersküüw. Seenk diaram, dat bluas det brükersidj amnäämd woort, oober '''ei''' di brüker. Hi behäält san ual nööm.",
 'movenologin' => 'Ei uunmeldet',
 'movenologintext' => 'Dü skel registriaret an [[Special:UserLogin|uunmeldet]] wees, am en sidj tu fersküüwen.',
 'movenotallowed' => 'Dü mutst nian sidjen fersküüw.',
@@ -2503,30 +2538,30 @@ Hål di '''naie''' tiitel uner '''muul''' önjdreege, deeruner jü ambenååming
 'cant-move-user-page' => 'Dü mutst nian brükersidjen fersküüw (bluas onersidjen).',
 'cant-move-to-user-page' => 'Dü mutst nian sidjen üüb en brükersidj fersküüw (bluas üüb onersidjen).',
 'newtitle' => 'Müülj:',
-'move-watch' => 'Lök eefter jüdeer sid',
-'movepagebtn' => 'Sid ferschüwe',
+'move-watch' => "Jodiar sidjen uun't uug behual",
+'movepagebtn' => 'Sidj fersküüw',
 'pagemovedsub' => 'Ferschüwing luket',
-'movepage-moved' => "'''Jü sid „$1“ wörd eefter „$2“ ferschääwen.'''",
+'movepage-moved' => "'''Det sidj „$1“ as efter „$2“ fersköwen wurden.'''",
 'movepage-moved-redirect' => 'En widjerfeerang as iinracht wurden.',
 'movepage-moved-noredirect' => 'Det maagin faan en widjerfeerang as ferhanert wurden.',
-'articleexists' => 'Uner dideere noome bestoont ål en sid. Wääl hål en nai noome.',
+'articleexists' => 'En sidj mä didiar nööm jaft at al. Wees so gud an nem en öödern nööm.',
 'cantmove-titleprotected' => 'Dü könst det sidj ei so fersküüw, auer di nei nööm speret as.',
-'talkexists' => 'Jü sid seelew wörd erfolchrik ferschääwen, ouers jü deertu hiirende diskusjoonssid ai, deer ål iinj ma di nai tiitel bestoont. Glik hål da önjhålte foon hönj ouf.',
-'movedto' => 'ferschääwen eefter',
-'movetalk' => 'Jü diskusjoonssid maferschüwe, wan möölik',
+'talkexists' => 'Detdiar sidj as fersköwen wurden, oober det diskusjuunssidj ei, auer diar al son diskusjuunssidj wiar. Fal det salew mä bidracher faan det ual sidj ap.',
+'movedto' => 'fersköwen efter',
+'movetalk' => "Uk det diskusjuunssidj fersküüw, wan't gongt",
 'move-subpages' => 'Onersidjen fersküüw (bit $1)',
 'move-talk-subpages' => "Onersidjen faan't diskusjuunssidj fersküüw (bit $1)",
 'movepage-page-exists' => 'Det sidj „$1“ as al diar an koon ei automaatisk auerskrewen wurd.',
 'movepage-page-moved' => 'Det sidj $1 as efter $2 fersköwen wurden.',
 'movepage-page-unmoved' => 'Det sidj $1 küd ei efter $2 fersköwen wurd.',
 'movepage-max-pages' => 'Diar kön ei muar üs {{PLURAL:$1|sidj|sidjen}} fersköwen wurd. Muar sidjen kön ei automaatisk fersköwen wurd.',
-'movelogpage' => 'Ferschüwingslogbök',
+'movelogpage' => 'Fersküüw-logbuk',
 'movelogpagetext' => 'Det as en list mä fersköwen sidjen.',
-'movesubpage' => '{{PLURAL:$1|onersidj|onersidjen}}',
+'movesubpage' => '{{PLURAL:$1|Onersidj|Onersidjen}}',
 'movesubpagetext' => 'Det sidj hää {{PLURAL:$1|detdiar $1 onersidj|jodiar $1 onersidjen}}.',
 'movenosubpage' => 'Det sidj hää nian onersidjen.',
-'movereason' => 'Begrüning:',
-'revertmove' => 'tubääg ferschüwe',
+'movereason' => 'Grünj:',
+'revertmove' => 'turag fersküüw',
 'delete_and_move' => 'Strik an fersküüw',
 'delete_and_move_text' => '== Striken nuadag  ==
 
@@ -2539,107 +2574,386 @@ Det sidj „[[:$1]]“ as al diar. Wel dü det strik, am det sidj tu fersküüwe
 'immobile-target-namespace-iw' => 'Dü könst nian sidj üüb en interwiki-link fersküüw.',
 'immobile-source-page' => 'Detdiar sidj koon ei fersköwen wurd.',
 'immobile-target-page' => 'Üüb detdiar sidj koon ei fersköwen wurd.',
+'bad-target-model' => 'Det nei sidj hää en ööder münster üs det ual. Det münster faan $1 koon ei tu det münster faan $2 feranert wurd.',
+'imagenocrossnamespace' => 'Datein kön ei ütj di {{ns:file}}-nöömrüm ütj fersköwen wurd.',
+'nonfile-cannot-move-to-file' => 'Det as nian datei, wat dü iin uun di {{ns:file}}-nöönmrüm fersküüw wel. Det gongt ei.',
+'imagetypemismatch' => 'Det nei dateiaanj as ei detsalew üs det ual.',
+'imageinvalidfilename' => 'Didiar dateinööm gongt ei.',
+'fix-double-redirects' => "Efter't fersküüwen aal a widjerfeerangen hen tu det ual sidj ferbeedre",
+'move-leave-redirect' => 'Widjerfeerang iinracht',
+'protectedpagemovewarning' => "'''Paase üüb: Detdiar sidj as speret wurden. Bluas administratooren kön det fersküüw.'''
+Uun't logbuk stäänt muar diartu:",
+'semiprotectedpagemovewarning' => "'''Paase üüb:''' Detdiar sidj as dialwiis tu't bewerkin speret wurden. Bluas gudkäänd brükern kön det fersküüw.
+Uun't logbuk stäänt muar diartu:",
+'move-over-sharedrepo' => '== Datei as al diar ==
+[[:$1]] stäänt uun en gemiansoom brükt archiif. Det fersküüwen üüb didiar nööm auerskraft det gemiansoom brükt datei.',
+'file-exists-sharedrepo' => 'Didiar dateinööm woort al uun en gemiansoom archiif brükt. Wees so gud, an nem en öödern nööm.',
 
 # Export
-'export' => 'Side äksportiire',
+'export' => 'Sidjen eksportiare',
+'exporttext' => 'Mä detdiar spezial-sidj könst dü di tekst mä aal sin werjuunen tu en XML-datei eksportiare. Det nei datei koon do faan en ööder MediaWiki-Wiki [[Special:Import|importiaret]] wurd.
+
+Skriiw a sidjennöömer iin uun det tekstfial (man bluas ään noom uun arke rä).
+
+Di eksport as uk mä [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] mögelk, tun bispal för det [[{{MediaWiki:Mainpage}}]].',
+'exportall' => 'Aal a sidjen eksportiare',
+'exportcuronly' => 'Bluas det aktuel werjuun eksportiare, ei jo ual werjuunen',
+'exportnohistory' => "----
+'''Paase üüb:''' Di eksport faan di hial ferluup as uun uugenblak ei mögelk.",
+'exportlistauthors' => 'För arke sidj det hial list faan bewerkern mänem',
+'export-submit' => 'Eksport',
+'export-addcattext' => 'Sidjen faan detdiar kategorii diartunem:',
+'export-addcat' => 'Diartunem',
+'export-addnstext' => 'Sidjen faan didiar nöömrüm diartunem:',
+'export-addns' => 'Diartunem',
+'export-download' => 'Üs XML-datei seekre',
+'export-templates' => 'Mä föörlaagen',
+'export-pagelinks' => 'Ferwiset sidjen mänem bit tu en jipde faan:',
 
 # Namespace 8 related
+'allmessages' => 'MediaWiki-Süsteemnoorachten',
 'allmessagesname' => 'Nööm',
 'allmessagesdefault' => 'Standard tekst',
+'allmessagescurrent' => 'Aktuel tekst',
+'allmessagestext' => "Det as en list mä MediaWiki-süsteemteksten.
+Wees so gud an beschük a sidjen [//www.mediawiki.org/wiki/Localisation MediaWiki-auersaatang] an [//translatewiki.net translatewiki.net], wan dü bi't auersaaten mähalep meest.",
+'allmessagesnotsupportedDB' => 'Detdiar spezial-sidj koon ei brükt wurd, auer <tt>$wgUseDatabaseMessages</tt> ei aktiif as.',
+'allmessages-filter-legend' => 'Filter',
+'allmessages-filter' => 'Filter för di uunpaaset stant:',
+'allmessages-filter-unmodified' => 'Ünferanert',
+'allmessages-filter-all' => 'Aaltumaal',
+'allmessages-filter-modified' => 'Feranert',
+'allmessages-prefix' => 'Filter mä prefix:',
+'allmessages-language' => 'Spriak:',
+'allmessages-filter-submit' => 'Widjer',
 
 # Thumbnails
-'thumbnail-more' => 'fergrutre',
-'thumbnail_error' => "Bi't maagin faan't sümnaielbil ging wat skiaf: $1",
+'thumbnail-more' => 'Fergratre',
+'filemissing' => 'Datei ei diar',
+'thumbnail_error' => "Bi't skriiwen faan det föörskaubil as wat skiaf gingen: $1",
+'thumbnail_error_remote' => 'Feeler faan $1:
+$2',
+'djvu_page_error' => 'DjVu-sidj as bütjen faan a sidjenrüm',
+'djvu_no_xml' => 'XML-dooten för det DjVu-datei kön ei ufrepen wurd',
+'thumbnail-temp-create' => 'Det datei för det tidjwiis sümnaielbil küd ei skrewen wurd',
+'thumbnail-dest-create' => 'Det föörskaubil küd diar ei seekert wurd.',
+'thumbnail_invalid_params' => 'Sümnaieldooten steme ei',
+'thumbnail_dest_directory' => 'Det fertiaknis koon ei skrewen wurd.',
+'thumbnail_image-type' => 'Sok bilen kön ei brükt wurd',
+'thumbnail_gd-library' => 'GD-bibleteek ei gans diar: Det funktjuun $1 waant',
+'thumbnail_image-missing' => 'Det datei as wel ei diar: $1',
 
 # Special:Import
-'import' => 'Side importiire',
+'import' => 'Sidjen importiare',
 'importinterwiki' => 'Transwiki import',
+'import-interwiki-text' => "Schük en Wiki an en sidj tu importiarin ütj. A werjuunen an brükernöömer bliiw erhäälen.
+Transwiki-import-aktjuunen wurd uun't [[Special:Log/import|Import-logbuk]] fäästhäälen.",
+'import-interwiki-source' => 'Faan hün Wiki/sidj:',
+'import-interwiki-history' => 'Aal a werjuunen faan det sidj importiare',
+'import-interwiki-templates' => 'Mä aal a föörlaagen',
 'import-interwiki-submit' => 'Import',
+'import-interwiki-namespace' => 'Tu hün nöömrüm:',
+'import-interwiki-rootpage' => 'Tu hün sidj (optional):',
+'import-upload-filename' => 'Dateinööm:',
+'import-comment' => 'Komentaar:',
+'importtext' => 'Wees so gud an eksportiare det datei mä det spezial-sidj [[Special:Export|Eksport]] ütj det ööder Wiki. Det seekerst dü üüb dan reegner an schüürst det do heer huuch.',
+'importstart' => 'Importiare sidjen ...',
+'import-revision-count' => '$1 {{PLURAL:$1|werjuun|werjuunen}}',
+'importnopages' => 'Diar san nian sidjen tu importiarin.',
+'imported-log-entries' => '$1 {{PLURAL:$1|logbukiindrach|logbukiindracher}} importiaret.',
+'importfailed' => 'Import as skiaf gingen: <nowiki>$1</nowiki>',
+'importunknownsource' => 'Ünbekäänd importkwel',
+'importcantopen' => 'Det import-datei küd ei eeben maaget wurd.',
+'importbadinterwiki' => 'Ferkiard interwiki-link',
+'importnotext' => 'Leesag of nään tekst',
+'importsuccess' => 'Import klaar!',
+'importhistoryconflict' => 'Diar san al ääler werjuunen diar. Ferlicht as det sidj al ans importiaret wurden.',
+'importnosources' => 'För di transwiki-import san nian kwelen uunden. Dü könst werjuunen ei direkt huuchschüür.',
+'importnofile' => 'Diar as nian importdatei bestemet wurden.',
+'importuploaderrorsize' => "Bi't huuchschüüren faan det importdatei as wat skiaf gingen. Det datei as tu grat.",
+'importuploaderrorpartial' => "Bi't huuchschüüren faan det importdatei as wat skiaf gingen. Det datei as bluas dialwiis huuchschüürd wurden.",
+'importuploaderrortemp' => "Bi't huuchschüüren faan det importdatei as wat skiaf gingen. Diar as nian tidjwiis fertiaknis.",
+'import-parse-failure' => "Bi't importiarin faan det XML-datei as wat skiaf gingen.",
+'import-noarticle' => 'Diar as nian sidj tu importiarin bestemet wurden.',
+'import-nonewrevisions' => 'Aal jodiar werjuunen san al ans importiaret wurden.',
+'xml-error-string' => '$1 uun rä $2, türn $3 (byte $4): $5',
+'import-upload' => 'XML-datein importiare',
+'import-token-mismatch' => 'Session dooten san wech. Ferschük det noch ans weder.',
+'import-invalid-interwiki' => 'Faan detdiar Wiki koon ik ei importiare.',
+'import-error-edit' => 'Det sidj „$1“ as ei importiaret wurden, auer dü det ei bewerke mutst.',
+'import-error-create' => 'Det sidj „$1“ as ei importiaret wurden, auer dü det ei maage mutst.',
+'import-error-interwiki' => 'Det sidj „$1“ as ei importiaret wurden, auer di nööm för ferwisangen (interwiki) föörsen as.',
+'import-error-special' => 'Det sidj „$1“ as ei importiaret wurden, auer hat tu en nöömrüm hiart, huar nian sidjen mögelk san.',
+'import-error-invalid' => 'Det sidj „$1“ as ei importiaret wurden, auer di nööm ei stemet.',
+'import-error-unserialize' => 'Det werjuun $2 faan det sidj „$1“ küd ei deserialisiaret wurd. Det werjuun woort mä det münster $3 brükt, an det as mä $4 serialisiaret.',
+'import-options-wrong' => 'Ferkiard {{PLURAL:$2|iinstelang|iinstelangen}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'Didiar sidjennööm as ferkiard.',
+'import-rootpage-nosubpage' => 'Uun di nöömrüm „$1“ jaft at nian onersidjen.',
+
+# Import log
+'importlogpage' => 'Import-logbuk',
+'importlogpagetext' => 'Administratiif import faan sidjen mä aal a werjuunen faan ööder Wikis.',
+'import-logentry-upload' => '„[[$1]]“ faan en datei importiaret',
+'import-logentry-upload-detail' => '$1 {{PLURAL:$1|werjuun|werjuunen}}',
+'import-logentry-interwiki' => '„$1“ mä transwiki importiaret',
+'import-logentry-interwiki-detail' => '$1 {{PLURAL:$1|werjuun|werjuunen}} faan $2',
+
+# JavaScriptTest
+'javascripttest' => 'JavaScript-test',
+'javascripttest-title' => '$1-tests wurd ütjfeerd.',
+'javascripttest-pagetext-noframework' => 'Detdiar sidj as för JavaScript-tests föörsen.',
+'javascripttest-pagetext-unknownframework' => 'Ünbekäänd test-framework „$1“.',
+'javascripttest-pagetext-frameworks' => 'Schük ian faan jodiar test-frameworks ütj: $1',
+'javascripttest-pagetext-skins' => 'Schük en brüker-skak ütj, am di test ütjtufeeren:',
+'javascripttest-qunit-intro' => 'Luke efter bi [$1 test dokumentatjuun] üüb mediawiki.org',
+'javascripttest-qunit-heading' => 'JavaScript-QUnit-tester faan MediaWiki',
 
 # Tooltip help for the actions
-'tooltip-pt-userpage' => 'Din brükersid',
-'tooltip-pt-mytalk' => 'Din diskusjoonssid',
-'tooltip-pt-preferences' => 'Äine önjstalinge',
-'tooltip-pt-watchlist' => 'List foon eefterkiikede side',
-'tooltip-pt-mycontris' => 'List foon din tujeefte',
-'tooltip-pt-login' => 'Ham önjmälde wårt wälj hål sänj, ouers as niinj plächt.',
-'tooltip-pt-anonlogin' => 'Ham önjmälde wårt wälj hål sänj, ouers as niinj plächt.',
-'tooltip-pt-logout' => 'Oufmälde',
-'tooltip-ca-talk' => 'Diskusjoon ouer jü sidinhålt',
-'tooltip-ca-edit' => 'Sid beårbe. Hål for dåt spikern jü forlökfunksjoon brüke.',
-'tooltip-ca-addsection' => 'Nai oufsnaas begane',
-'tooltip-ca-viewsource' => 'Jüdeer sid wårt uner ferbading hülen. Di kwältäkst koon önjkiiked wårde.',
-'tooltip-ca-history' => 'Iire färsjoone foon jüdeer sid',
-'tooltip-ca-protect' => 'Jüdeer sid schütse',
+'tooltip-pt-userpage' => 'Din brükersidj',
+'tooltip-pt-anonuserpage' => 'Brükersidj faan det IP-adres, faan huar ütj dü werkest',
+'tooltip-pt-mytalk' => 'Din diskusjuunssidj',
+'tooltip-pt-anontalk' => 'Diskusjuun auer feranrangen faan detdiar IP-adres',
+'tooltip-pt-preferences' => 'Min iinstelangen',
+'tooltip-pt-watchlist' => "Sidjen, diar dü uun't uug behual wel",
+'tooltip-pt-mycontris' => 'List mä aanj bidracher',
+'tooltip-pt-login' => 'Wan dü di uunmeldest, heest dü muar mögelkhaiden. Dü säärst det oober ei.',
+'tooltip-pt-anonlogin' => 'Wan dü di uunmeldest, heest dü muar mögelkhaiden. Dü säärst det oober ei.',
+'tooltip-pt-logout' => 'Ufmelde',
+'tooltip-ca-talk' => 'Diskusjuun auer di artiikel',
+'tooltip-ca-edit' => 'Sidj bewerke. Luke di det iarst ans uun, iar dü det seekerst.',
+'tooltip-ca-addsection' => 'Nei kirew began',
+'tooltip-ca-viewsource' => 'Detdiar sidj as seekert wurden.
+Dü könst di kweltekst uunluke.',
+'tooltip-ca-history' => 'Ääler werjuunen faan detdiar sidj',
+'tooltip-ca-protect' => 'Detdiar sidj seekre',
 'tooltip-ca-unprotect' => 'Seekerang feranere',
-'tooltip-ca-delete' => 'Jüdeer sid tunintemååge',
-'tooltip-ca-move' => 'Jüdeer sid ferschüwe',
-'tooltip-ca-watch' => 'Jüdeer sid tu jü persöönlike eefterkiiksid baitufäige',
-'tooltip-ca-unwatch' => 'Jüdeer sid foon jü persöönlike eefterkiikliste wächnaame',
-'tooltip-search' => '{{SITENAME}} döörsäke',
-'tooltip-search-go' => 'Gung matiinjs tu jü sid, jü äksakt di injääwen noome önjtspreecht.',
-'tooltip-search-fulltext' => 'Säk eefter side, da dideere täkst öjnthüülje',
-'tooltip-p-logo' => 'Besäk jü hoodsid',
-'tooltip-n-mainpage' => 'Hoodsid wise',
-'tooltip-n-mainpage-description' => 'Hoodsid besäke',
-'tooltip-n-portal' => 'Ouer dåt portåål, wat dü düünj koost, weer wat tu finen as',
-'tooltip-n-currentevents' => 'Äädergrüninformasjoone tu aktuäle schaiinge',
-'tooltip-n-recentchanges' => 'List foon da leeste änringe önj {{SITENAME}}',
-'tooltip-n-randompage' => 'Tufali sid',
-'tooltip-n-help' => 'Heelpsid wise',
-'tooltip-t-whatlinkshere' => 'List foon ål da side, da heer jurt wise',
-'tooltip-t-recentchangeslinked' => 'Leest änringen bai side, da foon heer ferlinkd san',
-'tooltip-feed-rss' => 'RSS-feed for jüdeer sid',
-'tooltip-feed-atom' => 'Atom-feed for jüdeer sid',
-'tooltip-t-contributions' => 'List foon tujeefte foon dideere brüker önjkiike',
-'tooltip-t-emailuser' => 'En e-mail tu dideere brüker siinje',
-'tooltip-t-upload' => 'Bile huuchschake',
-'tooltip-t-specialpages' => 'List foon ål da spesjåålside',
-'tooltip-t-print' => 'Prantönjsacht foon jüdeer sid',
-'tooltip-t-permalink' => 'Wååri link tu jüdeer sidfärsjoon',
-'tooltip-ca-nstab-main' => 'Sidinhålt wise',
-'tooltip-ca-nstab-user' => 'Brükersid wise',
-'tooltip-ca-nstab-special' => 'Jüdeer sid as en spetsjåålsid. Jü koon ai beåarbed wårde.',
-'tooltip-ca-nstab-project' => 'Portoolsid wise',
-'tooltip-ca-nstab-image' => 'Dååtäisid wise',
-'tooltip-ca-nstab-template' => 'Forlååge wise',
+'tooltip-ca-delete' => 'Detdiar sidj strik',
+'tooltip-ca-undelete' => 'Iindracher faan det sidj turaghaale, iar det stregen wurden as.',
+'tooltip-ca-move' => 'Detdiar sidj fersküüw',
+'tooltip-ca-watch' => "Detdiar sidj uk uun't uug behual",
+'tooltip-ca-unwatch' => "Detdiar sidj ei muar uun't uug behual",
+'tooltip-search' => 'Schük uun {{SITENAME}}',
+'tooltip-search-go' => 'Gung tu det sidj, diar jüst so het.',
+'tooltip-search-fulltext' => 'Schük efter sidjen mä didiar tekst',
+'tooltip-p-logo' => 'Hoodsidj beschük',
+'tooltip-n-mainpage' => 'Hoodsidj wise',
+'tooltip-n-mainpage-description' => 'Hoodsidj beschük',
+'tooltip-n-portal' => 'Auer det projekt, wat dü maage könst, an huar dü wat fanjst.',
+'tooltip-n-currentevents' => 'Muar auer a "miilstianer", diar det wurden an waaksen faan\'t Nordfriisk Wikipedia eftertiakne',
+'tooltip-n-recentchanges' => 'Leetst feranrangen faan {{SITENAME}}',
+'tooltip-n-randompage' => 'Tufelag sidj',
+'tooltip-n-help' => 'Halepsidj uunwise',
+'tooltip-t-whatlinkshere' => 'Aal a sidjen, diar heerhen ferwise',
+'tooltip-t-recentchangeslinked' => 'Leetst feranrangen faan sidjen, huar faan heer üüb ferwiset woort',
+'tooltip-feed-rss' => 'RSS-feed för detdiar sidj',
+'tooltip-feed-atom' => 'Atom-feed för detdiar sidj',
+'tooltip-t-contributions' => 'List mä bidracher faan didiar brüker uunluke',
+'tooltip-t-emailuser' => 'En e-mail tu didiar brüker schüür',
+'tooltip-t-upload' => 'Datein huuchschüür',
+'tooltip-t-specialpages' => 'Auersicht auer aal a spezial-sidjen',
+'tooltip-t-print' => 'Drükföörskau',
+'tooltip-t-permalink' => 'Permanent ferwisang tu detdiar werjuun faan det sidj.',
+'tooltip-ca-nstab-main' => 'Sidj uunluke',
+'tooltip-ca-nstab-user' => 'Brükersidj uunluke',
+'tooltip-ca-nstab-media' => 'Mediendateisidj uunwise',
+'tooltip-ca-nstab-special' => 'Det as en spezial-sidj. Hat koon ei bewerket wurd.',
+'tooltip-ca-nstab-project' => 'Projektsidj uunluke',
+'tooltip-ca-nstab-image' => 'Dateisidj uunluke',
+'tooltip-ca-nstab-mediawiki' => 'MediaWiki-süsteemtekst uunwise',
+'tooltip-ca-nstab-template' => 'Föörlaag uunluke',
 'tooltip-ca-nstab-help' => 'Heelpsid wise',
-'tooltip-ca-nstab-category' => 'Kategoriisid wise',
-'tooltip-minoredit' => 'Jüdeer änring as latj markiire.',
-'tooltip-save' => 'Feranerangen seekre',
-'tooltip-preview' => 'Forlök foon da änringe bai jüdeer sid. Hål for dåt spikern brüke!',
-'tooltip-diff' => 'Änringe bai di täkst wise',
-'tooltip-compareselectedversions' => 'Ferschääl twasche tou ütwäälde färsjoone foon jüdeer sid wise.',
-'tooltip-watch' => 'Fäig jüdeer sid foon din eefterkiikliste tubai',
-'tooltip-rollback' => 'Mååget åle leeste änringe foon jü sid, da foon di lik brüker fornümen wörden san, döör iinj klik tuninte.',
-'tooltip-undo' => 'Mååget bloot jüdeer iinje änring tuninte än wist dåt resultoot önj e forlöksid önj, deerma önj e tukuupefootingssid en begrüning önjjääwen wårde koon.',
+'tooltip-ca-nstab-category' => 'Kategoriisidj uunluke',
+'tooltip-minoredit' => 'Detdiar feranrang üs letj kääntiakne.',
+'tooltip-save' => 'Feranrangen seekre',
+'tooltip-preview' => 'Föörskau faan feranrangen üüb detdiar sidj. Iarst noch ans luke, iar dü det sidj seekerst!',
+'tooltip-diff' => 'Feranrangen bi a tekst wise',
+'tooltip-compareselectedversions' => 'Ferskeel tesken tau werjuunen faan detdiar sidj uunwise.',
+'tooltip-watch' => "Detdiar sidj uk uun't uug behual",
+'tooltip-watchlistedit-normal-submit' => 'Iindracher wechnem',
+'tooltip-watchlistedit-raw-submit' => "List mä sidjen, diar dü uun't uug behual wel, aktualisiare",
+'tooltip-recreate' => 'Sidj nei maage, likes dat det al ans stregen wurden as',
+'tooltip-upload' => 'Huuchsjüüren began',
+'tooltip-rollback' => 'Saat aal a leetst feranrangen faan disalew brüker mä ään klik turag.',
+'tooltip-undo' => 'Saat bluas det leetst feranrang turag an wiset det resultoot uun en föörskau uun. Uun det tuupfaadet beskriiwang skul en grünj för det turagsaaten uunden wurd.',
+'tooltip-preferences-save' => 'Iinstelangen seekre',
 'tooltip-summary' => 'Faade det kurt tuup',
 
+# Metadata
+'notacceptable' => 'Di Wiki-server koon a dooten ei för dan aperoot apwerke.',
+
+# Attribution
+'anonymous' => '{{PLURAL:$1|anonüümen brüker|anonüüm brükern}} üüb {{SITENAME}}',
+'siteuser' => '{{SITENAME}}-brüker $1',
+'anonuser' => 'Anonüüm {{SITENAME}}-brüker $1',
+'lastmodifiedatby' => 'Det sidj as tuleetst di $1 am a klook $2 faan $3 feranert wurden.',
+'othercontribs' => 'Üüb grünjlaag faan det werk faan $1.',
+'others' => 'öödern',
+'siteusers' => '{{SITENAME}} {{PLURAL:$2|brüker|brükern}} $1',
+'anonusers' => '{{PLURAL:$2|anonüümen|anonüüm}} {{SITENAME}}-{{PLURAL:$2|brüker|brükern}} $1',
+'creditspage' => 'Sidjeninformatsjuunen',
+'nocredits' => 'Diar san nian sidjeninformatsjuunen',
+
+# Spam protection
+'spamprotectiontitle' => 'Spam-filter',
+'spamprotectiontext' => 'Di tekst, diar dü seekre wulst, as ei troch a spam-filter kimen. Det leit was uun en ferwisang üüb en sidj efter bütjen.',
+'spamprotectionmatch' => "'''Didiar tekst as faan a spam-filter fünjen wurden: ''$1'''''",
+'spambot_username' => 'MediaWiki-spam apklaarin',
+'spam_reverting' => 'Leetst werjuun saner ferwisangen tu $1 weder iinsteld.',
+'spam_blanking' => 'Aal a werjuunen mä en ferwisang tu $1 san apklaaret wurden.',
+'spam_deleting' => 'Aal a werjuunen mä en ferwisung tu $1 san stregen wurden.',
+
+# Info page
+'pageinfo-title' => 'Informatjuun tu „$1“',
+'pageinfo-not-current' => 'Det informatjuun jaft at ei för ual werjuunen.',
+'pageinfo-header-basic' => 'Grünjdooten',
+'pageinfo-header-edits' => 'Ferluup bewerke',
+'pageinfo-header-restrictions' => 'Sidjenseekerhaid',
+'pageinfo-header-properties' => 'Sidjeniinstelangen',
+'pageinfo-display-title' => 'Uunwiset sidjennööm',
+'pageinfo-default-sort' => 'Normool sortiariinstelang',
+'pageinfo-length' => 'Sidjenlengde (uun bytes)',
+'pageinfo-article-id' => 'Sidjenkäännumer (ID)',
+'pageinfo-language' => 'Sidjenspriak',
+'pageinfo-robot-policy' => 'Schükmaskiin-stant',
+'pageinfo-robot-index' => 'Koon indisiaret wurd',
+'pageinfo-robot-noindex' => 'Koon ei indisiaret wurd',
+'pageinfo-views' => 'Taal faan kliks üüb det sidj',
+'pageinfo-watchers' => "Taal faan brükern, diar det sidj uun't uug haa",
+'pageinfo-few-watchers' => "Maner üs {{PLURAL:$1|ään brüker|$1 brükern}}, diar det sidj uun't uug haa",
+'pageinfo-redirects-name' => 'Widjerfeerangen tu detdiar sidj',
+'pageinfo-subpages-name' => 'Onersidjen faan detdiar sidj',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|widjerfeerang|widjerfeerangen}}; $3 {{PLURAL:$3|onersidj|onersidjen}})',
+'pageinfo-firstuser' => 'Hoker det sidj maaget hää',
+'pageinfo-firsttime' => 'Wan det sidj maaget wurden as',
+'pageinfo-lastuser' => 'Leetst skriiwer',
+'pageinfo-lasttime' => "Dootem faan't leetst feranrang",
+'pageinfo-edits' => 'Taal faan feranrangen',
+'pageinfo-authors' => 'Taal faan skriiwern',
+'pageinfo-recent-edits' => 'Taal faan a leetst feranrangen (uun a leetst $1)',
+'pageinfo-recent-authors' => 'Taal faan skriiwern',
+'pageinfo-magic-words' => 'Maagisk {{PLURAL:$1|wurd|wurden}} ($1)',
+'pageinfo-hidden-categories' => 'Ferbürgen {{PLURAL:$1|kategorii|kategoriin}} ($1)',
+'pageinfo-templates' => 'Iinbünjen {{PLURAL:$1|föörlaag|föörlaagen}} ($1)',
+'pageinfo-transclusions' => 'Iinbünjen uun {{PLURAL:$1|1 sidj|$1 sidjen}}',
+'pageinfo-toolboxlink' => 'Sidjendooten',
+'pageinfo-redirectsto' => 'Widjerfeerangen tu',
+'pageinfo-redirectsto-info' => 'Informatjuun',
+'pageinfo-contentpage' => 'Üs artiikel tääld',
+'pageinfo-contentpage-yes' => 'Ja',
+'pageinfo-protect-cascading' => 'Sidjen mä kaskaadenseekerhaid faan heer',
+'pageinfo-protect-cascading-yes' => 'Ja',
+'pageinfo-protect-cascading-from' => 'Sidjen mä kaskaadenseekerhaid faan',
+'pageinfo-category-info' => 'Kategorii-informatjuun',
+'pageinfo-category-pages' => 'Taal faan sidjen',
+'pageinfo-category-subcats' => 'Taal faan onerkategoriin',
+'pageinfo-category-files' => 'Taal faan datein',
+
+# Patrolling
+'markaspatrolleddiff' => 'Üs kontroliaret kääntiakne',
+'markaspatrolledtext' => 'Sidj üs kontroliaret kääntiakne',
+'markedaspatrolled' => 'Üs kontroliaret kääntiakne',
+'markedaspatrolledtext' => 'Detdiar werjuun faan [[:$1]] as üs kontroliaret kääntiakent wurden.',
+'rcpatroldisabled' => 'A leetst feranrangen kön ei kontroliaret wurd.',
+'rcpatroldisabledtext' => 'A leetst feranrangen kön tu tidj ei kontroliaret wurd.',
+'markedaspatrollederror' => "Koon ei üs '''kontroliaret''' kääntiakent wurd.",
+'markedaspatrollederrortext' => 'Dü mutst en werjuun besteme, diar dü üs köntroliaret kääntiakne wel.',
+'markedaspatrollederror-noautopatrol' => 'Dü könst ei din aanj feranrangen üs kontroliaret kääntiakne.',
+'markedaspatrollednotify' => 'Det feranrang faan $1 as üs kontroliaret kääntiakent wurden.',
+'markedaspatrollederrornotify' => 'Det werjuun küd ei üs kontroliaret kääntiakent wurd.',
+
+# Patrol log
+'patrol-log-page' => 'Kontrol-logbuk',
+'patrol-log-header' => 'Det as det kontrol-logbuk.',
+'log-show-hide-patrol' => 'Kontrol-logbuk $1',
+
+# Image deletion
+'deletedrevision' => 'Ual werjuun $1 stregen',
+'filedeleteerror-short' => "Bi't striken faan det datei $1 as wat skiaf gingen.",
+'filedeleteerror-long' => "Bi't striken faan det datei as wat skiaf gingen:
+
+$1",
+'filedelete-missing' => 'Det datei „$1“ koon ei stregen wurd, auer hat goorei diar as.',
+'filedelete-old-unregistered' => 'Det datei-werjuun „$1“ as ei diar uun a dootenbeenk.',
+'filedelete-current-unregistered' => 'Det datei „$1“ as ei diar uun a dootenbeenk.',
+'filedelete-archive-read-only' => 'Det archiif-fertiaknis "$1" koon faan a webserver ei beskrewen wurd.',
+
 # Browsing diffs
-'previousdiff' => '← Tu di leest färsjoonsferschääl',
+'previousdiff' => '← Leetst feranrang',
 'nextdiff' => 'Tu di näist färsjoonsferschääl →',
 
 # Media information
-'file-info-size' => '$1 × $2 pixele, dååtäigrutelse: $3, MIME-typ: $4',
-'file-nohires' => 'Niinj huuger apliising as deer.',
-'svg-long-desc' => 'SVG-dåtäi, basisgrutelse: $1 × $2 pixel, dåtäigrutelse: $3',
-'show-big-image' => 'Färsjon önj huuger apliising',
+'mediawarning' => "'''Paase üüb:''' Son datei koon fülk programcode haa. Bi't deelloosin an eeben maagin koon dan reegner komer fu.",
+'imagemaxsize' => "Bil mut ei grater wees üs:<br />''(för datei-beskriiwangen)''",
+'thumbsize' => 'Grate faan sümnaielbilen:',
+'widthheightpage' => '$1 × $2, {{PLURAL:$3|1 sidj|$3 sidjen}}',
+'file-info' => 'Dateigrate: $1, MIME-typ: $2',
+'file-info-size' => '$1 × $2 pixels, dateigrate: $3, MIME-typ: $4',
+'file-info-size-pages' => '$1 × $2 pixel, dateigrate: $3, MIME-typ: $4, $5 {{PLURAL:$5|sidj|sidjen}}',
+'file-nohires' => 'Diar as nian huuger apliasang diar.',
+'svg-long-desc' => 'SVG-datei, grate: $1 × $2 pixel, dateigrate: $3',
+'svg-long-desc-animated' => 'Animiaret SVG-datei, grate $1 × $2 pixel, dateigrate: $3',
+'svg-long-error' => 'Ferkiard SVG-datei: $1',
+'show-big-image' => 'Huuger apliasang',
+'show-big-image-preview' => 'Grate faan detdiar föörskaubil: $1.',
+'show-big-image-other' => 'Ööder {{PLURAL:$2|apliasang|apliasangen}}: $1.',
+'show-big-image-size' => '$1 × $2 pixel',
+'file-info-gif-looped' => 'sleuf saner aanj',
+'file-info-gif-frames' => '$1 {{PLURAL:$1|bil|bilen}}',
+'file-info-png-looped' => 'sleuf saner aanj',
+'file-info-png-repeat' => '$1 {{PLURAL:$1|-sis}} ufspelet',
+'file-info-png-frames' => '$1 {{PLURAL:$1|bil|bilen}}',
+'file-no-thumb-animation' => "'''Paase üüb: Ütj technisk grünjer wurd sümnaielbilen ei animiaret uunwiset.'''",
+'file-no-thumb-animation-gif' => "'''Paase üüb: Ütj technisk grünjer wurd sümnaielbilen faan huuchapliasin GIF-datein ei animiaret uunwiset.'''",
 
 # Special:NewFiles
-'ilsubmit' => 'Sjük',
+'newimages' => 'Nei datein',
+'imagelisttext' => "Diar as en list faan '''$1''' {{PLURAL:$1|datei|datein}}, sortiaret $2.",
+'newimages-summary' => 'Detdiar spezial-sidj wiset a tuleetst huuchsjüürd datein uun.',
+'newimages-legend' => 'Filter',
+'newimages-label' => 'Dateinööm (of en dial diarfaan):',
+'showhidebots' => '(Bots $1)',
+'noimages' => 'Niks tu sen.',
+'ilsubmit' => 'Schük',
+'bydate' => 'efter dootem',
+'sp-newimages-showfrom' => 'Wise nei datein efter $1, klook $2',
+
+# Video information, used by Language::formatTimePeriod() to format lengths in the above messages
+'seconds' => '{{PLURAL:$1|$1 sekund|$1 sekunden}}',
+'minutes' => '{{PLURAL:$1|$1 minüüt|$1 minüüten}}',
+'hours' => '{{PLURAL:$1|$1 stünj|$1 stünjen}}',
+'days' => '{{PLURAL:$1|$1 dai|$1 daar}}',
+'weeks' => '{{PLURAL:$1|$1 weg|$1 wegen}}',
+'months' => '{{PLURAL:$1|$1 muun|$1 muuner}}',
+'years' => '{{PLURAL:$1|$1 juar|$1 juaren}}',
+'ago' => 'föör $1',
+'just-now' => 'jüst nü',
+
+# Human-readable timestamps
+'hours-ago' => 'föör {{PLURAL:$1|ian stünj|$1 stünjen}}',
+'minutes-ago' => 'föör {{PLURAL:$1|ian minüüt|$1 minüüten}}',
+'seconds-ago' => 'föör {{PLURAL:$1|ian sekund|$1 sekunden}}',
+'monday-at' => 'Mundai am a klook $1',
+'tuesday-at' => 'Teisdai am a klook $1',
+'wednesday-at' => 'Wäärnsdai am a klook $1',
+'thursday-at' => 'Süürsdai am a klook $1',
+'friday-at' => 'Freidai am a klook $1',
+'saturday-at' => 'Saninj am a klook $1',
+'sunday-at' => 'Söndai am a klook $1',
+'yesterday-at' => 'Jister am a klook $1',
 
 # Bad image list
-'bad_image_list' => 'Formååt:
+'bad_image_list' => 'Formaat:
 
-Bloot rae, da ma en * begane, wårde ütwjarted. As jarste eefter dåt * mötj en link aw en ai wansched dååtäi stönje.
-Deeraw föliende sidelinke önj dåtseelwi ra definiire ütnååme, önj di kontäkst weerfoon jü dååtäi duch tu schüns kaame mötj.',
+Bluas räen, diar mä en * began, wurd mätääld.
+Det skal bääft di * began mä en ferwisang üüb en ferkiard datei. 
+Ferwisangen uun det salew rä wurd üs ütjnoomen uunsen, huar det datei dach uunwiset wurd mut.',
 
 # Metadata
-'metadata' => 'Metadååte',
-'metadata-help' => 'Jüdeer dåtäi önjthålt widere informasjoon, jü önj e räigel foon jü digitoolamera unti di ferwånd scanner ståme. Döör eefterdräägen beårbing foon jü originooldåtäi koone hu detaile feränret wörden weese.',
-'metadata-expand' => 'Ütbriidede detaile wise',
-'metadata-collapse' => 'Ütbriidede detaile fersteege',
-'metadata-fields' => 'Da füliende fälje foon da EXIF-metadååte, da önj dideere MediaWiki-systeemtäkst önjjääwen san, wårde aw bilbeschriwingsside ma inklapede metadååtetabäle wist. Widere wårde standardmääsi ai wised.
+'metadata' => 'Metadooten',
+'metadata-help' => 'Uun detdiar datei stun muar dooten, jo kem miast faan en digitaal knipskasche of faan en scanner. Ferlicht san hög dooten uk leederhen feranert wurden.',
+'metadata-expand' => 'Ütjwidjet dooten wise',
+'metadata-collapse' => 'Ütjwidjet dooten fersteeg',
+'metadata-fields' => 'Jodiar EXIF-metadooten wurd uunwiset, wan det metadootentabel ferbürgen as. Jo öödern san iarst ans ferbürgen.
 * make
 * model
 * datetimeoriginal
@@ -2655,21 +2969,505 @@ Deeraw föliende sidelinke önj dåtseelwi ra definiire ütnååme, önj di kont
 * gpsaltitude',
 
 # Exif tags
+'exif-imagewidth' => 'Breetje',
+'exif-imagelength' => 'Hööchde',
+'exif-bitspersample' => 'Bits per klöör',
+'exif-compression' => 'Komprimiarang',
+'exif-photometricinterpretation' => 'Pixel bonk',
+'exif-orientation' => 'Perspektiiw',
+'exif-samplesperpixel' => 'Taal faan komponenten',
+'exif-planarconfiguration' => 'Dooten skak',
+'exif-ycbcrsubsampling' => 'subsampling rate faan Y bit C',
+'exif-ycbcrpositioning' => 'Y an C positjuun',
+'exif-xresolution' => 'Wairocht apliasang',
+'exif-yresolution' => 'Luadrocht apliasang',
+'exif-stripoffsets' => 'Image data location',
+'exif-rowsperstrip' => 'Taal faan rän per strimel',
+'exif-stripbytecounts' => 'Bytes per komprimiaret strimel',
+'exif-jpeginterchangeformat' => 'Offset tu JPEG SOI',
+'exif-jpeginterchangeformatlength' => 'Bytes faan JPEG-dooten',
+'exif-whitepoint' => 'White point chromaticity',
+'exif-primarychromaticities' => 'Chromaticities of primarities',
+'exif-ycbcrcoefficients' => 'Color space transformation matrix coefficients',
+'exif-referenceblackwhite' => 'Suart/witj referens ponkter',
+'exif-datetime' => "Dootem an klooktidj faan't seekrin",
+'exif-imagedescription' => "Nööm faan't bil",
+'exif-make' => 'Knipser onernemen',
+'exif-model' => 'Knipser marke/model',
+'exif-software' => 'Software',
+'exif-artist' => 'Fotogroof',
+'exif-copyright' => 'Bilrochten',
 'exif-exifversion' => 'Stant faan Exif',
+'exif-flashpixversion' => 'Flashpix-werjuun',
+'exif-colorspace' => 'Klöörenrüm',
+'exif-componentsconfiguration' => 'Enkelt komponenten',
+'exif-compressedbitsperpixel' => 'Komprimiaret bits per pixel',
+'exif-pixelydimension' => 'Bilbreetje',
+'exif-pixelxdimension' => 'Bilhööchde',
+'exif-usercomment' => 'Brüker komentaaren',
+'exif-relatedsoundfile' => 'Ferbünjen tuundatei',
+'exif-datetimeoriginal' => "Dootem an klooktidj faan't knipsin",
+'exif-datetimedigitized' => "Dootem an klooktidj faan't digitalisiarin",
+'exif-subsectime' => 'Tidjponkt faan seekrin (1/100 s)',
+'exif-subsectimeoriginal' => "Tidjponkt faan't knipsin (1/100 s)",
+'exif-subsectimedigitized' => "Tidjponkt faan't digitalisiarin (1/100 s)",
+'exif-exposuretime' => 'Belaachtangstidj',
+'exif-exposuretime-format' => '$1 sekunden ($2)',
+'exif-fnumber' => 'F numer (blend)',
+'exif-exposureprogram' => 'Belaachtangsprogram',
+'exif-spectralsensitivity' => 'Spectral sensitivity',
+'exif-isospeedratings' => 'ISO emfintelkhaid',
+'exif-shutterspeedvalue' => 'APEX shutter speed',
+'exif-aperturevalue' => 'APEX aperture',
+'exif-brightnessvalue' => 'APEX brightness',
+'exif-exposurebiasvalue' => 'APEX exposure bias',
+'exif-maxaperturevalue' => 'Gratst blend',
+'exif-subjectdistance' => "Wai tu't subjekt",
+'exif-meteringmode' => 'Meed muude',
+'exif-lightsource' => 'Laachtkwel',
+'exif-flash' => 'Laid',
+'exif-focallength' => 'Braanwidjens',
+'exif-subjectarea' => 'Rüm',
+'exif-flashenergy' => 'Laidmäächt',
+'exif-focalplanexresolution' => 'Focal plane X resolution',
+'exif-focalplaneyresolution' => 'Focal plane Y resolution',
+'exif-focalplaneresolutionunit' => 'Focal plane resolution unit',
+'exif-subjectlocation' => "Steed faan't motiif",
+'exif-exposureindex' => 'Belaachtangsindex',
+'exif-sensingmethod' => 'Meed muude',
+'exif-filesource' => 'Dateikwel',
+'exif-scenetype' => 'Scene type',
+'exif-customrendered' => 'Custom image processing',
+'exif-exposuremode' => 'Belaachtangsmuude',
+'exif-whitebalance' => 'Witjufglik',
+'exif-digitalzoomratio' => 'Digital zoom ratio',
+'exif-focallengthin35mmfilm' => 'Braanwidjens bi en 35 mm film',
+'exif-scenecapturetype' => 'Scene capture type',
+'exif-gaincontrol' => 'Scene control',
+'exif-contrast' => 'Kontrast',
+'exif-saturation' => 'Intensiteet faan klöören',
+'exif-sharpness' => 'Skarepens',
+'exif-devicesettingdescription' => 'Iinstelangen',
+'exif-subjectdistancerange' => "Wai uf faan't motiif",
+'exif-imageuniqueid' => 'Bil-ID',
+'exif-gpsversionid' => 'GPS tag werjuun',
+'exif-gpslatituderef' => 'Nuurdelk of süüdelk breetje',
+'exif-gpslatitude' => 'Geograafisk Breetje',
+'exif-gpslongituderef' => 'Uastelk of waastelk lengde',
+'exif-gpslongitude' => 'Geograafisk lengde',
+'exif-gpsaltituderef' => 'Hööchde uun ferglik mä',
+'exif-gpsaltitude' => 'Hööchde',
+'exif-gpstimestamp' => 'GPS-tidj',
+'exif-gpssatellites' => "För't meeden brükt sateliten",
+'exif-gpsstatus' => 'Receiver status',
+'exif-gpsmeasuremode' => "Muude för't meeden",
+'exif-gpsdop' => "Nauhaid faan't meeden",
+'exif-gpsspeedref' => "Ianhaid faan't faard",
+'exif-gpsspeed' => 'Faard faan a GPS-aperoot',
+'exif-gpstrackref' => "Referens för di kurs faan't faard",
+'exif-gpstrack' => "Kurs faan't faard",
+'exif-gpsimgdirectionref' => "Referens för't ütjrachtang",
+'exif-gpsimgdirection' => "Ütjrachtang faan't bil",
+'exif-gpsmapdatum' => 'Geodeetisk referens-süsteem',
+'exif-gpsdestlatituderef' => "Referens för't geograafisk breetje",
+'exif-gpsdestlatitude' => "Geograafisk breetje faan't aanj",
+'exif-gpsdestlongituderef' => "Referens för't geograafisk lengde",
+'exif-gpsdestlongitude' => "Geograafisk lengde faan't aanj",
+'exif-gpsdestbearingref' => "Referens för di kurs faan't aanj",
+'exif-gpsdestbearing' => "Kurs faan't aanj",
+'exif-gpsdestdistanceref' => "Referens för di wai tu't motiif",
+'exif-gpsdestdistance' => "Wai tu't motiif",
+'exif-gpsprocessingmethod' => 'GPS muude',
+'exif-gpsareainformation' => 'GPS rüm',
+'exif-gpsdatestamp' => 'GPS dootem',
+'exif-gpsdifferential' => 'GPS diferential korektuur',
+'exif-jpegfilecomment' => 'JPEG dateikomentaar',
+'exif-keywords' => 'Steegwurden',
+'exif-worldregioncreated' => 'Weltregiuun, huar det bil apnimen wurden as',
+'exif-countrycreated' => 'Lun, huar det bil apnimen wurden as',
+'exif-countrycodecreated' => 'ISO-code faan det lun',
+'exif-provinceorstatecreated' => 'Prowins of federaalstoot, huar det bil aonimen wurden as',
+'exif-citycreated' => 'Stääd, huar det bil apnimen wurden as',
+'exif-sublocationcreated' => 'Stäädregiuun, huar det bil apnimen wurden as',
+'exif-worldregiondest' => 'Uunwiset weltregiuun',
+'exif-countrydest' => 'Uunwiset lun',
+'exif-countrycodedest' => 'ISO-code för det uunwiset lun',
+'exif-provinceorstatedest' => 'Prowins of federaalstoot',
+'exif-citydest' => 'Uunwiset stääd',
+'exif-sublocationdest' => 'Uunwiset stäädregiuun',
+'exif-objectname' => 'Kurt tiitel',
+'exif-specialinstructions' => 'Ekstra uunwisangen',
+'exif-headline' => 'Auerskraft',
+'exif-credit' => 'Faan hoker',
+'exif-source' => 'Faan huar',
+'exif-editstatus' => 'Hüwidj bewerket',
+'exif-urgency' => 'Hü nuadag',
+'exif-fixtureidentifier' => 'Ööders wat',
+'exif-locationdest' => 'Steed üüb det bil',
+'exif-locationdestcode' => "ISO-code faan det steed üüb't bil",
+'exif-objectcycle' => "Tidj üüb a dai för't iinstelen",
+'exif-contact' => 'Kontaktdooten',
+'exif-writer' => 'Skriiwer',
+'exif-languagecode' => 'Spriak',
+'exif-iimversion' => 'IIM werjuun',
+'exif-iimcategory' => 'Kategorii',
+'exif-iimsupplementalcategory' => 'Muar kategooriin',
+'exif-datetimeexpires' => 'Ei muar tu brüken efter',
+'exif-datetimereleased' => 'Ütjden di',
+'exif-originaltransmissionref' => 'ISO-code faan det steed, huar det bil auerdraanj wurden as',
+'exif-identifier' => 'Käänang',
+'exif-lens' => 'Hün objektiif',
+'exif-serialnumber' => 'Luupen numer faan a knipser',
+'exif-cameraownername' => 'Hoker di knipser hiart',
+'exif-label' => 'Betiaknang',
+'exif-datetimemetadata' => 'Leetst feranrang faan meta-dooten',
+'exif-nickname' => 'Nööm för det bil',
+'exif-rating' => 'Wäärdaghaid (1 tu 5, 5 as best)',
+'exif-rightscertificate' => 'Rights management certificate',
+'exif-copyrighted' => 'Copyright-Status:',
+'exif-copyrightowner' => 'Bilrochten lei bi',
+'exif-usageterms' => 'Brükerreegeln',
+'exif-webstatement' => 'Online copyright statement',
+'exif-originaldocumentid' => "Iandüüdag käänang (ID) faan't dokument",
+'exif-licenseurl' => 'URL for copyright license',
+'exif-morepermissionsurl' => 'Muar lisensen',
+'exif-attributionurl' => 'Wan dü det bil brük wel, saat en ferwisang üüb:',
+'exif-preferredattributionname' => 'Wan dü det bil brük wel, nääm:',
+'exif-pngfilecomment' => 'PNG dateikomentaar',
+'exif-disclaimer' => 'Disclaimer',
+'exif-contentwarning' => 'Wäärnang',
+'exif-giffilecomment' => 'GIF dateikomentaar',
+'exif-intellectualgenre' => 'Slach faan bil',
+'exif-subjectnewscode' => 'Motiif-code',
+'exif-scenecode' => 'IPTC-code',
+'exif-event' => 'Begeebenhaid',
+'exif-organisationinimage' => 'Organisatjuun',
+'exif-personinimage' => 'Persuun',
+'exif-originalimageheight' => "Hööchde faan't bil föör't beklapen",
+'exif-originalimagewidth' => "Breetje faan't bil föör't beklapen",
+
+# Exif attributes
+'exif-compression-1' => 'Ünkomprimiaret',
+'exif-compression-2' => 'CCITT Group 3 1-Dimensional Modified Huffman run length encoding',
+'exif-compression-3' => 'CCITT Group 3 fax encoding',
+'exif-compression-4' => 'CCITT Group 4 fax encoding',
+
+'exif-copyrighted-true' => 'Mä kopiarrocht',
+'exif-copyrighted-false' => 'Saner kopiarrocht',
+
+'exif-unknowndate' => 'Ünbekäänd dootem',
+
+'exif-orientation-1' => 'Normool',
+'exif-orientation-2' => 'Wairocht speegelt',
+'exif-orientation-3' => 'Am 180° dreid',
+'exif-orientation-4' => 'Luadrocht speegelt',
+'exif-orientation-5' => 'Jin a klook am 90° dreid an luadrocht speegelt.',
+'exif-orientation-6' => 'Jin a klook am 90° dreid',
+'exif-orientation-7' => 'Mä a klook am 90° dreid an luadrocht speegelt.',
+'exif-orientation-8' => 'Mä a klook am 90° dreid',
+
+'exif-planarconfiguration-1' => 'Grööw formaat',
+'exif-planarconfiguration-2' => 'Planaar formaat',
+
+'exif-colorspace-65535' => 'Ei kalibriaret',
+
+'exif-componentsconfiguration-0' => 'as ei diar',
+
+'exif-exposureprogram-0' => 'ei bekäänd',
+'exif-exposureprogram-1' => 'Manuel',
+'exif-exposureprogram-2' => 'Normool program',
+'exif-exposureprogram-3' => 'Tidjautomaatik',
+'exif-exposureprogram-4' => 'Blendenautomaatik',
+'exif-exposureprogram-5' => 'Kreatiifprogram mä jip skarepens',
+'exif-exposureprogram-6' => 'Aktjuunsprogram mä kurt belaachtangstidj',
+'exif-exposureprogram-7' => 'Portree-muude mä skarepen föörgrünj',
+'exif-exposureprogram-8' => 'Loonskap-muude mä skarepen bääftgrünj',
+
+'exif-subjectdistance-value' => '$1 meetern',
+
+'exif-meteringmode-0' => 'Ünbekäänd',
+'exif-meteringmode-1' => 'Madel',
+'exif-meteringmode-2' => 'Skarep maden',
+'exif-meteringmode-3' => 'Spot',
+'exif-meteringmode-4' => 'Multi-Spot',
+'exif-meteringmode-5' => 'Münster',
+'exif-meteringmode-6' => 'Bil-dial',
+'exif-meteringmode-255' => 'Ööder',
+
+'exif-lightsource-0' => 'Ünbekäänd',
+'exif-lightsource-1' => 'Dailaacht',
+'exif-lightsource-2' => 'Fluorescent',
+'exif-lightsource-3' => 'Konstlaacht',
+'exif-lightsource-4' => 'Laid',
+'exif-lightsource-9' => 'Smok weder',
+'exif-lightsource-10' => 'Betaanj',
+'exif-lightsource-11' => 'Skaad',
+'exif-lightsource-12' => 'Daylight fluorescent (D 5700 – 7100K)',
+'exif-lightsource-13' => 'Day white fluorescent (N 4600 – 5400K)',
+'exif-lightsource-14' => 'Cool white fluorescent (W 3900 – 4500K)',
+'exif-lightsource-15' => 'White fluorescent (WW 3200 – 3700K)',
+'exif-lightsource-17' => 'Standard light A',
+'exif-lightsource-18' => 'Standard light B',
+'exif-lightsource-19' => 'Standard light C',
+'exif-lightsource-24' => 'ISO studio konstlaacht',
+'exif-lightsource-255' => 'Ööder laacht',
+
+# Flash modes
+'exif-flash-fired-0' => 'Nään laid',
+'exif-flash-fired-1' => 'Laid ütjliaset',
+'exif-flash-return-0' => 'Laid schüürt nian dooten',
+'exif-flash-return-2' => 'Nään laid tu sen',
+'exif-flash-return-3' => 'Laid wiar tu sen',
+'exif-flash-mode-1' => 'Mä twüngen laid',
+'exif-flash-mode-2' => 'Laid ufsteld',
+'exif-flash-mode-3' => 'Automaatik',
+'exif-flash-function-1' => 'Nään laid mögelk',
+'exif-flash-redeye-1' => 'Nian ruad uugen muude',
+
+'exif-focalplaneresolutionunit-2' => 'tol',
+
+'exif-sensingmethod-1' => 'Ei bekäänd',
+'exif-sensingmethod-2' => 'One-chip color area sensor',
+'exif-sensingmethod-3' => 'Two-chip color area sensor',
+'exif-sensingmethod-4' => 'Three-chip color area sensor',
+'exif-sensingmethod-5' => 'Color sequential area sensor',
+'exif-sensingmethod-7' => 'Trilinear sensor',
+'exif-sensingmethod-8' => 'Color sequential linear sensor',
+
+'exif-filesource-3' => 'Digitaal stunbilknipser',
+
+'exif-scenetype-1' => 'Normool',
+
+'exif-customrendered-0' => 'Normool',
+'exif-customrendered-1' => 'Brüker-iinsteld',
+
+'exif-exposuremode-0' => 'Automaatisk belaachtang',
+'exif-exposuremode-1' => 'Manuel belaachtang',
+'exif-exposuremode-2' => 'Belaachtangsrä',
+
+'exif-whitebalance-0' => 'Automaatisk',
+'exif-whitebalance-1' => 'Manuel',
+
+'exif-scenecapturetype-0' => 'Normool',
+'exif-scenecapturetype-1' => 'Loonskap',
+'exif-scenecapturetype-2' => 'Portree',
+'exif-scenecapturetype-3' => 'Naacht',
+
+'exif-gaincontrol-0' => 'Nian',
+'exif-gaincontrol-1' => 'Letjet ap',
+'exif-gaincontrol-2' => 'Föl ap',
+'exif-gaincontrol-3' => 'Letjet deel',
+'exif-gaincontrol-4' => 'Föl deel',
+
+'exif-contrast-0' => 'Normool',
+'exif-contrast-1' => 'Swaak',
+'exif-contrast-2' => 'Stark',
+
+'exif-saturation-0' => 'Normool',
+'exif-saturation-1' => 'Letjet',
+'exif-saturation-2' => 'Huuch',
+
+'exif-sharpness-0' => 'Normool',
+'exif-sharpness-1' => 'Swaak',
+'exif-sharpness-2' => 'Stark',
+
+'exif-subjectdistancerange-0' => 'Ünbekäänd',
+'exif-subjectdistancerange-1' => 'Makro',
+'exif-subjectdistancerange-2' => 'Nai bi',
+'exif-subjectdistancerange-3' => 'Widj wech',
+
+# Pseudotags used for GPSLatitudeRef and GPSDestLatitudeRef
+'exif-gpslatitude-n' => 'Nuurdelk breetje',
+'exif-gpslatitude-s' => 'Süüdelk breetje',
+
+# Pseudotags used for GPSLongitudeRef and GPSDestLongitudeRef
+'exif-gpslongitude-e' => 'Uastelk lengde',
+'exif-gpslongitude-w' => 'Waastelk lengde',
+
+# Pseudotags used for GPSAltitudeRef
+'exif-gpsaltitude-above-sealevel' => '{{PLURAL:$1|Ään meeter|$1 meetern}} auer siapeegel',
+'exif-gpsaltitude-below-sealevel' => '{{PLURAL:$1|Ään meeter|$1 meetern}} oner siapeegel',
+
+'exif-gpsstatus-a' => 'Measurement in progress',
+'exif-gpsstatus-v' => 'Measurement interoperability',
+
+'exif-gpsmeasuremode-2' => '2-dimensional measurement',
+'exif-gpsmeasuremode-3' => '3-dimensional measurement',
+
+# Pseudotags used for GPSSpeedRef
+'exif-gpsspeed-k' => 'km/h',
+'exif-gpsspeed-m' => 'mph',
+'exif-gpsspeed-n' => 'kn',
+
+# Pseudotags used for GPSDestDistanceRef
+'exif-gpsdestdistance-k' => 'Kilomeetern',
+'exif-gpsdestdistance-m' => 'Miilen',
+'exif-gpsdestdistance-n' => 'Siamiilen',
+
+'exif-gpsdop-excellent' => 'Auer a miaten ($1)',
+'exif-gpsdop-good' => 'Gud ($1)',
+'exif-gpsdop-moderate' => 'Madel ($1)',
+'exif-gpsdop-fair' => 'Gongt so ($1)',
+'exif-gpsdop-poor' => 'Ei so dol ($1)',
+
+'exif-objectcycle-a' => 'Bluas am maarlem',
+'exif-objectcycle-p' => 'Bluas am injem',
+'exif-objectcycle-b' => 'Eder am maarlam an am injem',
+
+# Pseudotags used for GPSTrackRef, GPSImgDirectionRef and GPSDestBearingRef
+'exif-gpsdirection-t' => 'Rochtwisin kurs',
+'exif-gpsdirection-m' => 'Magneetisk kurs',
+
+'exif-ycbcrpositioning-1' => 'Sentriaret',
+'exif-ycbcrpositioning-2' => 'Uun naiberskap',
+
+'exif-dc-contributor' => 'Bidracher faan',
+'exif-dc-coverage' => 'Spatial or temporal scope of media',
+'exif-dc-date' => 'Dootem',
+'exif-dc-publisher' => 'Ütjden faan',
+'exif-dc-relation' => 'Ferbünjen meedien',
+'exif-dc-rights' => 'Rochten',
+'exif-dc-source' => 'Meeedienkwel',
+'exif-dc-type' => 'Meedienslach',
+
+'exif-rating-rejected' => 'Turagwiset',
+
+'exif-isospeedratings-overflow' => 'Grater üs 65535',
+
+'exif-iimcategory-ace' => 'Konst, kultüür an onerhualang',
+'exif-iimcategory-clj' => 'Rocht an ferbreegen',
+'exif-iimcategory-dis' => 'Katastroofen an ünfaaler',
+'exif-iimcategory-fin' => 'Wiartskap an bedriiwer',
+'exif-iimcategory-edu' => 'Onerracht',
+'exif-iimcategory-evn' => 'Natüür an amwelt',
+'exif-iimcategory-hth' => 'Sünjhaid',
+'exif-iimcategory-hum' => 'Persöönelk intresen',
+'exif-iimcategory-lab' => 'Werk',
+'exif-iimcategory-lif' => 'Freitidj an muude',
+'exif-iimcategory-pol' => 'Politik',
+'exif-iimcategory-rel' => 'Religioon an gluuw',
+'exif-iimcategory-sci' => 'Wedenskap an technologii',
+'exif-iimcategory-soi' => 'Mäenööder',
+'exif-iimcategory-spo' => 'Sport',
+'exif-iimcategory-war' => 'Kriich, stridj an ünrau',
+'exif-iimcategory-wea' => 'Weder',
+
+'exif-urgency-normal' => 'Normool ($1)',
+'exif-urgency-low' => 'Liach ($1)',
+'exif-urgency-high' => 'Huuch ($1)',
+'exif-urgency-other' => 'Faan a brüker fäästlaanj prioriteet ($1)',
 
 # External editor support
-'edit-externally' => 'Jüdeer dåtäi ma en äkstärn prugram beårbe',
-'edit-externally-help' => '(Sii da [//www.mediawiki.org/wiki/Manual:External_editors Installationsanweisungen] for widere Informasjoon)',
+'edit-externally' => 'Detdiar datei mä en ekstern program bewerke',
+'edit-externally-help' => "(Luk efter uun't [//www.mediawiki.org/wiki/Manual:External_editors hoonbuk] am muar diartu)",
 
 # 'all' in various places, this might be different for inflected languages
-'watchlistall2' => 'åle',
-'namespacesall' => 'åle',
-'monthsall' => 'åle',
+'watchlistall2' => 'aaltumaal',
+'namespacesall' => 'aaltumaal',
+'monthsall' => 'aaltumaal',
 'limitall' => 'åle',
 
+# Email address confirmation
+'confirmemail' => 'E-mail-adres gudkään',
+'confirmemail_noemail' => 'Dü heest nian gud e-mail-adres uun din [[Special:Preferences|persöönelk iinstelangen]] iindraanj.',
+'confirmemail_text' => '{{SITENAME}} ferlangt, dat dü din e-mail-adres gudkäänst, iar dü a ütjwidjet e-mail-funktjuunen brük könst. Trak üüb det fial „E-mail-code tusjüür“, am dat dü en e-mail tuschüürd feist, huar di code uun stäänt an en URL, am din adres gudtukäänen.',
+'confirmemail_pending' => 'Dü heest al en e-mail mä di e-mail-code tuschüürd füngen. Teew noch en uugenblak, det komt wel noch. Bluas wan det goorei loket, ferlang efter en neien code.',
+'confirmemail_send' => 'E-mail-code tuschüür',
+'confirmemail_sent' => 'E-mail-code as wechschüürd wurden.',
+'confirmemail_oncreate' => "En e-mail mä di e-mail-code as tu din e-mail-adres schüürd wurden. Hi as ei nuadag tu uunmeldin, oober hi woort brükt för ütjwidjet e-mail-funktjuunen uun't Wiki.",
+'confirmemail_sendfailed' => '{{SITENAME}} küd det e-mail mä di e-mail-code ei wechschüür.
+Luke noch ans, of dü det e-mail-adres rocht apskrewen heest.
+
+Di mail-server swaaret: $1',
+'confirmemail_invalid' => 'Di e-mail-code as ei gud. Ferlicht as hi tu ual.
+Ferschük det man noch ans.',
+'confirmemail_needlogin' => 'Dü skel di $1, am din e-mail-adres gudtukäänen.',
+'confirmemail_success' => 'Din e-mail-adres as gudkäänd wurden.
+Dü könst di nü [[Special:UserLogin|uunmelde]].',
+'confirmemail_loggedin' => 'Din e-mail-adres as gudkäänd wurden.',
+'confirmemail_error' => "Bi't gudkäänen faan din e-mail-adres as wat skiaf gingen.",
+'confirmemail_subject' => '[{{SITENAME}}] E-mail-adres gudkään',
+'confirmemail_body' => 'Gud dai,
+
+hoker mä det IP-adres $1 (woorskiinelk dü salew) hää det brükerkonto „$2“ bi {{SITENAME}} iinracht.
+
+Am a e-mail-funktjuunen faan {{SITENAME}} (weder) aktiif tu fun, an am seeker tu stelen, dat det brükerkonto uk würelk mä din e-mail-adres tuuphiart, gung tu detdiar ferwisang:
+
+$3
+
+Wan dü det brükerkonto *ei* iinracht hast, do gung tu detdiar ferwisang, am det gudkäänen uftubreegen:
+
+$5
+
+Didiar code täält bit $6, am a klook $7.',
+'confirmemail_body_changed' => 'Hoker mä det IP-adres $1 (woorskiinelk dü salew) hää det e-mail-adres faan det brükerkonto „$2“ bi {{SITENAME}} feranert.
+
+Am seeker tu stelen, dat det brükerkonto uk würelk di hiart, an am a e-mail-funktjuunen bi {{SITENAME}} weder uun a gang tu fun, gung tu detdiar ferwisang:
+
+$3
+
+Wan det *ei* din brükerkonto as, do gung tu detdiar ferwisang, am det gudkäänen uftubreegen:
+
+$5
+
+Didiar code täält bit $4.',
+'confirmemail_body_set' => "Hoker mä det IP-adres $1 (woorskiinelk dü salew) hää det e-mail-adres faan't brükerkonto „$2“ üüb {{SITENAME}} tu detdiar e-mail-adres amanert.
+
+Am seeker tu stelen, dat det brükerkonto würelk di hiart, an am a e-mail-funktjuunen üüb {{SITENAME}} weder uun a gang tu fun, gung tu detdiar ferwisang:
+
+$3
+
+Wan det *ei* din konto as, do gung tu detdiar ferwisang, am det gudkäänen uftubreegen:
+
+$5
+
+Didiar code täält bit $4.",
+'confirmemail_invalidated' => "Det gudkäänen faan't e-mail-adres as ufbreegen wurden.",
+'invalidateemail' => "Breeg gudkäänen faan't e-mail-adres uf",
+
+# Scary transclusion
+'scarytranscludedisabled' => '[Iinbinjen faan interwikis as ei aktiif]',
+'scarytranscludefailed' => '[Iinbinjen faan föörlaagen för $1 as skiaf gingen]',
+'scarytranscludefailed-httpstatus' => '[Ufrepen faan föörlaagen för $1 as skiaf gingen: HTTP  $2]',
+'scarytranscludetoolong' => '[URL as tu lung]',
+
+# Delete conflict
+'deletedwhileediting' => "'''Paase üüb:''' Det sidj as stregen wurden, üs dü diar jüst bi werket heest!
+Uun't [{{fullurl:{{#special:Log}}|type=delete&page={{FULLPAGENAMEE}}}} Strik-logbuk] fanjst dü di grünj för't striken. Wan dü det sidj seekerst, woort det nei uunlaanj.",
+'confirmrecreate' => "Di brüker [[User:$1|$1]] ([[User talk:$1|Diskusjuun]]) hää det sidj stregen, üs dü diar jüst bi werket heest. Di grünj wiar:
+:''$2''
+Ferseekre, dat dü det sidj würelk nei maage wel.",
+'confirmrecreate-noreason' => 'Di brüker [[User:$1|$1 ]] ([[User talk:$1|Diskusjuun]]) hää det sidj stregen, huar dü jüst bi werket heest. Ferseekre, dat dü det sidj würelk nei maage wel.',
+'recreate' => 'Nei maage',
+
+# action=purge
+'confirm_purge_button' => 'OK',
+'confirm-purge-top' => 'Det sidj ütj a cache strik?',
+'confirm-purge-bottom' => 'Maaget di cache leesag an wiset det neist werjuun uun.',
+
+# action=watch/unwatch
+'confirm-watch-button' => 'OK',
+'confirm-watch-top' => "Wel dü detdiar sidj uun't uug behual?",
+'confirm-unwatch-button' => 'OK',
+'confirm-unwatch-top' => "Wel dü detdiar sidj ei muar uun't uug behual?",
+
+# Multipage image navigation
+'imgmultipageprev' => '← leetst sidj (turag)',
+'imgmultipagenext' => 'naist sidj →',
+'imgmultigo' => 'Widjer',
+'imgmultigoto' => 'Gung tu sidj $1',
+
 # Table pager
 'ascending_abbrev' => 'ap',
 'descending_abbrev' => 'deel',
+'table_pager_next' => 'Naist sidj',
+'table_pager_prev' => 'Leetst sidj (turag)',
+'table_pager_first' => 'Iarst sidj',
+'table_pager_last' => 'Leetst sidj',
+'table_pager_limit' => 'Wise $1 iindracher per sidj',
+'table_pager_limit_label' => 'Iindracher per sidj:',
+'table_pager_limit_submit' => 'Widjer',
+'table_pager_empty' => 'Diar wiar niks',
 
 # Auto-summaries
 'autosumm-blank' => 'Det sidj as leesag maaget wurden.',
@@ -2677,25 +3475,126 @@ Deeraw föliende sidelinke önj dåtseelwi ra definiire ütnååme, önj di kont
 'autoredircomment' => 'Sidj tu [[$1]] widjerfeerd',
 'autosumm-new' => 'Det sidj as nei uunlaanj wurden: "$1"',
 
+# Live preview
+'livepreview-loading' => 'Loose ...',
+'livepreview-ready' => 'Loosin ... Klaar!',
+'livepreview-failed' => 'Live-preview wul ei!
+Ferschük det üüb di normool wai.',
+'livepreview-error' => 'Küd ei ferbinj: $1 "$2".
+Ferschük det üüb di normool wai.',
+
+# Friendlier slave lag warnings
+'lag-warn-normal' => 'Feranrangen faan {{PLURAL:$1|at leetst sekund|a leetst $1 sekunden}} kön noch ei uunwiset wurd.',
+'lag-warn-high' => 'Auer det huuch dootenbeenklääst kön a feranrangen faan {{PLURAL:$1|at leetst sekund|a leetst $1 sekunden}} noch ei uunwiset wurd.',
+
+# Watchlist editor
+'watchlistedit-numitems' => "Dü heest {{PLURAL:$1|ian sidj|$1 sidjen}} uun't uug. A diskusjuunssidjen wurd ei mätääld.",
+'watchlistedit-noitems' => "Dü heest nian sidjen, diar dü uun't uug behual wel.",
+'watchlistedit-normal-title' => "List mä sidjen, diar dü uun't uug behual wel, bewerke",
+'watchlistedit-normal-legend' => "Ei muar uun't uug behual",
+'watchlistedit-normal-explain' => "Jodiar sidjen wel dü uun't uug behual. Am iindracher tu striken, kääntiakne a kaschin üüb sidj faan di iindrach an trak oner üüb „{{int:Watchlistedit-normal-submit}}“. Dü könst det list uk uun't [[Special:EditWatchlist/raw|listenformoot]] bewerke.",
+'watchlistedit-normal-submit' => 'Iindracher wechnem',
+'watchlistedit-normal-done' => '{{PLURAL:$1|Ään iindrach as|$1 iindracher san}} faan det list wechnimen wurden:',
+'watchlistedit-raw-title' => "Uun't listenformoot bewerke",
+'watchlistedit-raw-legend' => "Uun't listenformoot bewerke",
+'watchlistedit-raw-explain' => "Jodiar sidjen, diar dü uun't uug behual wel, san uun't listenformoot apskrewen. A iindracher kön räwiis stregen of ütjwidjet wurd.
+Uun arke rä mut ään iindrach stun. Wan dü klaar beest, trak oner üüb „{{int:Watchlistedit-raw-submit}}“.
+Dü könst uk det [[Special:EditWatchlist|normool sidj]] tu bewerkin nem.",
+'watchlistedit-raw-titles' => 'Iindracher:',
+'watchlistedit-raw-submit' => "List mä sidjen, diar dü uun't uug behual wel, aktualisiare",
+'watchlistedit-raw-done' => "Det list mä sidjen, diar dü uun't uug behual wel, as nü üüb di neist stant.",
+'watchlistedit-raw-added' => '{{PLURAL:$1|Ään iindrach as|$1 iindracher san}} diartu skrewen wurden:',
+'watchlistedit-raw-removed' => '{{PLURAL:$1|Ään iindrach as|$1 iindracher san}} wechnimen wurden:',
+
 # Watchlist editing tools
-'watchlisttools-view' => 'Eefterkiiklist: änringe',
-'watchlisttools-edit' => 'normåål beårbe',
-'watchlisttools-raw' => 'Listeformoot beårbe (import/äksport)',
+'watchlisttools-view' => "Uun't uug behual: Feranrangen",
+'watchlisttools-edit' => 'Normool bewerke',
+'watchlisttools-raw' => "Uun't listenformoot bewerke",
+
+# Signatures
+'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|Diskusjuun]])',
 
 # Core parser functions
+'unknown_extension_tag' => "Ünbekäänd ''tag'' „$1“",
 'duplicate-defaultsort' => '\'\'\'Paase üüb:\'\'\' Di sortiarkai "$2" auerskraft di ual sortiarkai "$1"',
 
 # Special:Version
+'version' => 'Werjuun',
+'version-extensions' => 'Instaliaret ütjwidjangen',
+'version-specialpages' => 'Spezial-sidjen',
+'version-parserhooks' => 'Ütjwidjet parserfunktjuunen',
+'version-variables' => 'Wariaabeln',
+'version-antispam' => "''Spam''seekerangen",
+'version-skins' => 'Brükerskaker',
+'version-other' => 'Ööders wat',
+'version-mediahandlers' => 'Ütjwidjet medien-funktjuunen',
+'version-hooks' => 'Hooks',
+'version-parser-extensiontags' => 'Parser extension tags',
+'version-parser-function-hooks' => 'Parser function hooks',
+'version-hook-name' => 'Hook nööm',
+'version-hook-subscribedby' => 'Aprepen faan',
+'version-version' => '(Werjuun $1)',
+'version-license' => 'Lisens',
+'version-poweredby-credits' => "Detheer wääbsteed werket mä '''[//www.mediawiki.org/wiki/MediaWiki/de MediaWiki]''', Copyright © 2001–$1 $2.",
+'version-poweredby-others' => 'öödern',
+'version-credits-summary' => 'Wi besoonke üs bi jodiar persuunen för hör bidracher tu [[Special:Version|MediaWiki]].',
+'version-license-info' => 'MediaWiki 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.
+
+MediaWiki 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 [{{SERVER}}{{SCRIPTPATH}}/COPYING 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 or [//www.gnu.org/licenses/old-licenses/gpl-2.0.html read it online].',
 'version-software' => 'Instaliird software',
 'version-software-product' => 'Produkt',
-'version-software-version' => 'Färsjoon',
+'version-software-version' => 'Werjuun',
+'version-entrypoints' => 'URLs faan hüsdörsidjen',
+'version-entrypoints-header-entrypoint' => 'Hüsdörsidj',
+'version-entrypoints-header-url' => 'URL',
+
+# Special:Redirect
+'redirect' => 'Widjerfeerang üüb en brükersidj, sidjenwerjuun of datei.',
+'redirect-legend' => 'Widjerfeerang üüb en sidjenwerjuun of datei.',
+'redirect-summary' => 'Det spezial-sidj feert widjer üüb en brükersidj, sidjenwerjuun of datei.',
+'redirect-submit' => 'Widjer',
+'redirect-lookup' => 'Schük:',
+'redirect-value' => 'Käänang of dateinööm:',
+'redirect-user' => 'Brüker-ID',
+'redirect-revision' => 'Sidjenwerjuun',
+'redirect-file' => 'Dateinööm',
+'redirect-not-exists' => 'Wäärs ei fünjen',
 
 # Special:FileDuplicateSearch
-'fileduplicatesearch-submit' => 'Sjük',
+'fileduplicatesearch' => 'Schük dobelt datein',
+'fileduplicatesearch-summary' => 'Dobelt datein schük üüb grünjlaag faan hör hash-wäärs',
+'fileduplicatesearch-legend' => 'Dobelt datein schük',
+'fileduplicatesearch-filename' => 'Dateinööm:',
+'fileduplicatesearch-submit' => 'Schük',
+'fileduplicatesearch-info' => '$1 × $2 pixel<br />Dateigrate: $3<br />MIME-typ: $4',
+'fileduplicatesearch-result-1' => 'Diar san nian dobelt datein faan „$1“.',
+'fileduplicatesearch-result-n' => 'Det datei „$1“ hää {{PLURAL:$2|1 dobelt ütjfeerang|$2 dobelt ütjfeerangen}}.',
+'fileduplicatesearch-noresults' => 'Nian datei mä di nööm „$1“ fünjen.',
 
 # Special:SpecialPages
-'specialpages' => 'Spetsjåålside',
+'specialpages' => 'Spezial-sidjen',
+'specialpages-note' => '----
+* Normool spezial-sidjen
+* <span class="mw-specialpagerestricted">Spezial-sidjen mä tugripsrochten</span>
+* <span class="mw-specialpagecached">Spezial-sidjen uun a cache (As ferlicht ei muar aktuel.)</span>',
+'specialpages-group-maintenance' => 'Werksteedsidjen',
+'specialpages-group-other' => 'Ööder spezial-sidjen',
 'specialpages-group-login' => 'Melde di uun of skriiw di iin',
+'specialpages-group-changes' => 'Leetst feranrangen an logbuken',
+'specialpages-group-media' => 'Medien',
+'specialpages-group-users' => 'Brükern an rochten',
+'specialpages-group-highuse' => 'Flooksis brükt sidjen',
+'specialpages-group-pages' => 'Sidjen',
+'specialpages-group-pagetools' => 'Sidjenwerktjüch',
+'specialpages-group-wiki' => 'Dooten an werktjüch',
+'specialpages-group-redirects' => 'Spezial-sidjen, diar widjer feer',
+'specialpages-group-spam' => "''Spam'' werktjüch",
+
+# Special:BlankPage
+'blankpage' => 'Leesag sidj',
+'intentionallyblankpage' => 'Det sidj as mä walem leesag. Hat woort för benchmarks brükt.',
 
 # External image whitelist
 'external_image_whitelist' => " #Feranere detheer rä ei<pre>
@@ -2708,10 +3607,58 @@ Deeraw föliende sidelinke önj dåtseelwi ra definiire ütnååme, önj di kont
 #Skriiw dialen faan reguleer ütjdrüker auer detheer rä. Feranere detheer rä ei</pre>",
 
 # Special:Tags
+'tags' => 'Feranrangskääntiaken',
 'tag-filter' => '[[Special:Tags|Kääntiaken]] filter:',
+'tag-filter-submit' => 'Filter',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Kääntiaken|Kääntiakens}}]]: $2)',
+'tags-title' => 'Kääntiaken',
+'tags-intro' => "Det sidj wiset kääntiaken, diar för't bewerkin brükt wurd, an wat jo men.",
+'tags-tag' => 'Kääntiaken-nööm',
+'tags-display-header' => 'Nööm üüb feranrangslisten',
+'tags-description-header' => 'Widjloftag beskriiwang',
+'tags-hitcount-header' => 'Kääntiakent feranrangen',
+'tags-edit' => 'bewerke',
+'tags-hitcount' => '$1 {{PLURAL:$1|feranrang|feranrangen}}',
+
+# Special:ComparePages
+'comparepages' => 'Sidjen ferglik',
+'compare-selector' => 'Sidjenwerjuunen ferglik',
+'compare-page1' => 'Sidj 1',
+'compare-page2' => 'Sidj 2',
+'compare-rev1' => 'Werjuun 1',
+'compare-rev2' => 'Werjuun 2',
+'compare-submit' => 'Ferglik',
+'compare-invalid-title' => 'Didiar sidjennööm gongt ei.',
+'compare-title-not-exists' => 'Son sidjennööm as diar ei.',
+'compare-revision-not-exists' => 'Son werjuun as diar ei.',
+
+# Database error messages
+'dberr-header' => 'Det Wiki hää komer.',
+'dberr-problems' => 'Dää mi iarag! Det sidj hää technisk komer.',
+'dberr-again' => 'Teew en uugenblak an ferschük det noch ans.',
+'dberr-info' => '(Koon ei mä a dootenbeenk-server ferbinj: $1)',
+'dberr-usegoogle' => 'Uun a teskentidj küdst dü det mä Google ferschük.',
+'dberr-outofdate' => 'Seenk diaram, dat Google ferlicht ual dooten uunwiset.',
+'dberr-cachederror' => 'Detheer komt ütj en cache an as ferlicht ei muar aktuel.',
 
 # HTML forms
-'htmlform-selectorother-other' => 'Oudere',
+'htmlform-invalid-input' => 'Diar as wat skiaf gingen mä din uunfraag.',
+'htmlform-select-badoption' => 'Didiar wäärs as ei tuläät.',
+'htmlform-int-invalid' => 'Didiar wäärs as nian hial taal.',
+'htmlform-float-invalid' => 'Didiar wäärs as nian taal.',
+'htmlform-int-toolow' => 'Didiar wäärs as letjer üs det minimum faan $1.',
+'htmlform-int-toohigh' => 'Didiar wäärs as grater üs det maximum faan $1.',
+'htmlform-required' => 'Di wäärs woort brükt.',
+'htmlform-submit' => 'Auerdreeg',
+'htmlform-reset' => 'Feranrangen turagsaat.',
+'htmlform-selectorother-other' => 'Öödern',
+'htmlform-no' => 'Naan',
+'htmlform-yes' => 'Ja',
+'htmlform-chosen-placeholder' => 'Schük ütj',
+
+# SQLite database support
+'sqlite-has-fts' => "Werjuun $1 mä halep för't schüken uun di hialer tekst.",
+'sqlite-no-fts' => "Werjuun $1 saner halep för't schüken uun di hialer tekst.",
 
 # New logging system
 'logentry-delete-delete' => '$1 {{Gender:$2}} hää det sidj $3 stregen',
@@ -2725,21 +3672,92 @@ Deeraw föliende sidelinke önj dåtseelwi ra definiire ütnååme, önj di kont
 'logentry-suppress-revision' => '$1 {{GENDER:$2}} hää stalswigin det uunsicht feranert faan {{PLURAL:$5|ian werjuun|$5 werjuunen}} faan det sidj $3: $4',
 'logentry-suppress-event-legacy' => '$1 {{GENDER:$2}} hää stalswigin det uunsicht feranert faan logbuk iindracher üüb $3',
 'logentry-suppress-revision-legacy' => '$1 {{GENDER:$2}} hää stalswigin det uunlukin feranert faan werjuunen faan det sidj $3',
+'revdelete-content-hid' => 'Ferbürgen',
+'revdelete-summary-hid' => 'Ferbürgen tuupfaadang',
 'revdelete-uname-hid' => 'brükernoome ferstäägen',
+'revdelete-content-unhid' => 'Ei muar ferberag',
+'revdelete-summary-unhid' => 'Tuupfaadang ei muar ferberag',
 'revdelete-uname-unhid' => 'brükernoome frijääwen',
-'revdelete-restricted' => 'gränse jüle uk for administratoore',
-'revdelete-unrestricted' => 'gränse for administratoore wächnümen',
+'revdelete-restricted' => 'mögelkhaiden för administratooren wechnimen',
+'revdelete-unrestricted' => 'mögelkhaiden för administratooren ütjwidjet',
 'logentry-move-move' => '$1 {{GENDER:$2}} hää det sidj $3 efter $4 fersköwen.',
 'logentry-move-move-noredirect' => '$1 {{GENDER:$2}} hää det sidj $3 efter $4 saner widjerfeerang fersköwen.',
 'logentry-move-move_redir' => '$1 {{GENDER:$2}} hää det sidj $3 efter $4 fersköwen an diarbi en widjerfeerang auerskrewen.',
 'logentry-move-move_redir-noredirect' => '$1 {{GENDER:$2}} hää det sidj $3 efter $4 fersköwen an diarbi en widjerfeerang auerskrewen saner salew en widjerfeerang uuntuleien.',
+'logentry-patrol-patrol' => '$1 {{GENDER:$2|hää}} det werjuun $4 faan sidj $3 üs kontroliaret kääntiakent.',
+'logentry-patrol-patrol-auto' => '$1 {{GENDER:$2|hää}} det werjuun $4 faan sidj $3 automaatisk üs kontroliaret kääntiakent.',
 'logentry-newusers-newusers' => 'Brükerkonto $1 as {{GENDER:$2|iinracht}} wurden',
+'logentry-newusers-create' => 'Brükerkonto as faan $1 {{GENDER:$2|iinracht}} wurden.',
 'logentry-newusers-create2' => 'Brükerkonto $3 as faan $1 {{GENDER:$2|iinracht}} wurden',
+'logentry-newusers-byemail' => 'Brükerkonto $3 as faan $1 {{GENDER:$2|iinracht}} wurden, an det paaswurd as per e-mail tuschüürd wurden.',
 'logentry-newusers-autocreate' => 'Brükerkonto $1 as automaatisk {{GENDER:$2|iinracht}} wurden',
+'logentry-rights-rights' => '$1 {{GENDER:$2|hää}} det brükerskööl för $3 faan $4 tu $5 feranert.',
+'logentry-rights-rights-legacy' => '$1 {{GENDER:$2|hää}} det brükerskööl för $3 feranert.',
+'logentry-rights-autopromote' => '$1 as automaatisk faan $4 tu $5 {{GENDER:$2|tuwiset}} wurden.',
 'rightsnone' => '(-)',
 
+# Feedback
+'feedback-bugornote' => 'Wan dü en technisk probleem beskriiw wel, wees so gud an skriiw [$1 am di feeler].
+Ööders könst dü uk det formulaar oner brük. Dan komentaar woort tuup mä dan brükernööm an det werjuun faan dan browser üüb det sidj „[$3 $2]“ skrewen.',
+'feedback-subject' => 'Teemo:',
+'feedback-message' => 'Mädialang:',
+'feedback-cancel' => 'Ufbreeg',
+'feedback-submit' => 'Komentaar ufsjüür',
+'feedback-adding' => 'Komentaar woort tu det sidj skrewen ...',
+'feedback-error1' => 'Feeler: Ünbekäänd API-bööd',
+'feedback-error2' => 'Feeler: Bewerkin as skiaf gingen.',
+'feedback-error3' => 'Feeler: Nian API-oonswaar',
+'feedback-thanks' => 'Föl soonk. Dan komentaar as üüb det sidj „[$2 $1]“ skrewen wurden.',
+'feedback-close' => 'Klaar',
+'feedback-bugcheck' => 'Gud! Luke noch ans efter, of det ei ferlicht en [$1 bekäänden feeler] as.',
+'feedback-bugnew' => 'Haa ik efterluket. Nei feeler melde.',
+
 # Search suggestions
-'searchsuggest-search' => 'Sjük',
+'searchsuggest-search' => 'Schük',
+'searchsuggest-containing' => 'diar banen as ...',
+
+# API errors
+'api-error-badaccess-groups' => 'Dü mutst nian datein tu detdiar Wiki huuchschüür.',
+'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-empty-file' => 'Det datei, wat dü huuchsjüü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.",
+'api-error-fileexists-forbidden' => 'En datei mä di nööm „$1“ as al diar. Hat koon ei auerskrewen wurd.',
+'api-error-fileexists-shared-forbidden' => "En date mä di nööm „$1“ as al uun't gemiansoom archiif an koon ei auerskrewen wurd.",
+'api-error-file-too-large' => 'Det datei, wat dü huuchsjüürd heest, as tu grat.',
+'api-error-filename-tooshort' => 'Di dateinööm as tu kurt.',
+'api-error-filetype-banned' => 'Son slach faan datei as ei tuläät.',
+'api-error-filetype-banned-type' => '$1 {{PLURAL:$4|as nään tuläät slach faan datein|san nian tuläät slacher faan datein}}.
+{{PLURAL:$3|En tuläät slach as|Tuläät slacher san}} $2.',
+'api-error-filetype-missing' => 'Det datei, wat dü huuchschüür wel, hää nian dateiaanj.',
+'api-error-hookaborted' => 'Det feranrang, wat dü maage wulst, as faan en ütjwidjet software-funktjuun ufbreegen wurden.',
+'api-error-http' => 'Intern feeler: Ferbinjang tu a server as skiaf gingen.',
+'api-error-illegal-filename' => 'Didiar dateinööm as ei tuläät.',
+'api-error-internal-error' => "Intern feeler: diar as wat skiaf gingen bi't huuchschüüren faan det datei tu det Wiki.",
+'api-error-invalid-file-key' => 'Intern feeler: Det datei as uun det tidjwiis archiif ei fünjen wurden.',
+'api-error-missingparam' => 'Intern feeler: Det uunfraag as ei hial uunkimen.',
+'api-error-missingresult' => 'Intern feeler: Küd ei luke, of det kopiarin loket hää.',
+'api-error-mustbeloggedin' => 'Dü skel di uunmelde, am datein huuchtuschüüren.',
+'api-error-mustbeposted' => 'Intern feeler: Ferkiard HTTP-muude.',
+'api-error-noimageinfo' => 'Det huuchschüüren hää loket, oober di server hää nian datei-dooten.',
+'api-error-nomodule' => 'Intern feeler: Diar as nian modul tu huuchsjüüren fäästlaanj wurden.',
+'api-error-ok-but-empty' => 'Intern feeler: Di server sait niks.',
+'api-error-overwrite' => 'Dü könst nian datei auerskriiw, wat al diar as.',
+'api-error-stashfailed' => 'Intern feeler: Di server küd nian tidjwiis datei seekre.',
+'api-error-publishfailed' => 'Intern feeler: Di server küd det tidjwiis datei ei widjer schüür.',
+'api-error-timeout' => 'Di server hää ei rochttidjag swaaret (time-out).',
+'api-error-unclassified' => 'Diar as irgentwat skiaf gingen.',
+'api-error-unknown-code' => 'Ünbekäänd feeler: „$1“',
+'api-error-unknown-error' => "Intern feeler: Bi't huuchschüüren faan det datei as wat skiaf gingen.",
+'api-error-unknown-warning' => 'Ünbekäänd wäärnang: $1',
+'api-error-unknownerror' => 'Ünbekäänd feeler: „$1“',
+'api-error-uploaddisabled' => 'Uun detdiar Wiki könst dü niks huuchschüür.',
+'api-error-verification-error' => 'Det datei, wat dü huuchschüür wel, as uunstaken of hää en ferkiard dateiaanj.',
 
 # Durations
 'duration-seconds' => '$1 {{PLURAL:$1|sekund|sekunden}}',
@@ -2752,4 +3770,7 @@ Deeraw föliende sidelinke önj dåtseelwi ra definiire ütnååme, önj di kont
 'duration-centuries' => '$1 {{PLURAL:$1|juarhunert|juarhunerten}}',
 'duration-millennia' => '$1 {{PLURAL:$1|juardüüsen|juardüüsenen}}',
 
+# Image rotation
+'rotate-comment' => 'Bil am $1 {{PLURAL:$1|graad}} mä a klook dreid.',
+
 );
index 93ce1c3..facdfc9 100644 (file)
@@ -325,7 +325,6 @@ $messages = array(
 'disclaimers' => 'Avîs legâi',
 'disclaimerpage' => 'Project:Avîs gjenerâi',
 'edithelp' => 'Jutori pai cambiaments',
-'edithelppage' => 'Help:Cambiaments',
 'helppage' => 'Help:Contignûts',
 'mainpage' => 'Pagjine principâl',
 'mainpage-description' => 'Pagjine principâl',
@@ -667,7 +666,6 @@ Leiende: (cur) = difarencis cun la version atuâl, (prec) = difarencis cun la ve
 'searchmenu-legend' => 'Opzions de ricercje',
 'searchmenu-exists' => "'''E je une pagjine di non \"[[:\$1]]\" su cheste wiki'''",
 'searchmenu-new' => "'''Cree la pagjine \"[[:\$1]]\" su cheste wiki!'''",
-'searchhelp-url' => 'Help:Contignûts',
 'searchprofile-articles' => 'Pagjinis di contignûts',
 'searchprofile-project' => 'Pagjinis di jutori e sul progjet',
 'searchprofile-images' => 'Multimedia',
@@ -726,7 +724,6 @@ Leiende: (cur) = difarencis cun la version atuâl, (prec) = difarencis cun la ve
 'resetprefs' => 'Predeterminât',
 'restoreprefs' => 'Torne a lis impostazions predeterminadis',
 'prefs-editing' => 'Cambiament',
-'prefs-edit-boxsize' => 'Dimensions dal barcon pai cambiaments.',
 'rows' => 'Riis',
 'columns' => 'Colonis:',
 'searchresultshead' => 'Ricercje',
@@ -855,7 +852,6 @@ La tô direzion di pueste no ven mostrade cuant che i utents ti contatin.',
 'recentchangeslinked-feed' => 'Cambiaments leâts',
 'recentchangeslinked-toolbox' => 'Cambiaments leâts',
 'recentchangeslinked-title' => 'Cambiaments leâts a "$1"',
-'recentchangeslinked-noresult' => 'Nissun cambiament aes pagjinis leadis tal periodi specificât.',
 'recentchangeslinked-summary' => "Cheste pagjine speciâl e mostre i cambiaments plui recents aes pagjinis leadis a chê specificade (o leadis ai elements intune categorie specificade). Lis [[Special:Watchlist|pagjinis tignudis di voli]] a son mostradis in '''gruessut'''.",
 'recentchangeslinked-page' => 'Non de pagjine:',
 'recentchangeslinked-to' => 'Mostre dome i cambiaments aes pagjinis leadis a chê specificade',
@@ -1148,7 +1144,6 @@ e la pagjine e sarà '''gruessute''' te [[Special:RecentChanges|liste dai ultins
 'unwatch' => 'No stâ tignî di voli',
 'unwatchthispage' => 'No stâ tignî di voli plui',
 'notanarticle' => 'Cheste pagjine no je une vôs',
-'watchnochange' => 'Nissun element di chei tignûts di voli al è stât cambiât tal periodi mostrât.',
 'watchlist-details' => '{{PLURAL:$1|E je $1 pagjine tignude|A son $1 pagjinis tignudis}} di voli, cence contâ lis pagjinis di discussion.',
 'wlheader-enotif' => 'Notifiche par pueste eletroniche ativade.',
 'wlheader-showupdated' => "Lis pagjinis gambiadis de ultime volte che tu lis âs cjaladis a son mostradis in '''gruessut'''",
index 756e74a..941e141 100644 (file)
@@ -7,6 +7,7 @@
  * @ingroup Language
  * @file
  *
+ * @author Geitost
  * @author Maartenvdbent
  * @author Purodha
  * @author Pyt
@@ -367,7 +368,6 @@ $1",
 'disclaimers' => 'Foarbehâld',
 'disclaimerpage' => 'Project:Algemien foarbehâld',
 'edithelp' => 'Bewurk-help',
-'edithelppage' => 'Help:Bewurk-rie',
 'helppage' => 'Help:Help',
 'mainpage' => 'Haadside',
 'mainpage-description' => 'Haadside',
@@ -516,7 +516,7 @@ Mûglik wurdt noch in tal siden werjûn as wiene Jo oanmeld, oant Jo de cache fa
 'logout' => 'Ofmelde',
 'userlogout' => 'Ofmelde',
 'notloggedin' => 'Net oanmelde',
-'nologin' => "Noch net oanmelden as meidogger? '''$1'''.",
+'nologin' => 'Noch net oanmelden as meidogger? $1.',
 'nologinlink' => 'Meitsje in brûker oan',
 'createaccount' => 'Nije ynstellings oanmeitsje',
 'gotaccount' => "Hawwe jo jo al as meidogger oanmelde? '''$1'''.",
@@ -916,7 +916,6 @@ Prebearje in oare sykopdracht.',
 'searchmenu-legend' => 'Sykopsjes',
 'searchmenu-exists' => "'''Der is in side mei namme \"[[:\$1]]\" yn dizze wiki'''",
 'searchmenu-new' => "'''Meitsje de side \"[[:\$1]]\" yn dizze wiki!'''",
-'searchhelp-url' => 'Help:Help',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Sidenammen mei dit foarheaksel werjaan]]',
 'searchprofile-articles' => 'Ynhâldlike siden',
 'searchprofile-project' => 'Projektsiden',
@@ -982,7 +981,6 @@ Jo kinne ek in nammerûmte as foarheaksel brûke.",
 'resetprefs' => 'Ynstellings werom sette',
 'restoreprefs' => 'Tebek nei de standertynstellings',
 'prefs-editing' => 'Siden bewurkje',
-'prefs-edit-boxsize' => 'Ofmjittings fan it bewurkingsfinster',
 'rows' => 'Rigen',
 'columns' => 'Kolommen',
 'searchresultshead' => 'Sykje',
@@ -1017,7 +1015,6 @@ Jo kinne ek in nammerûmte as foarheaksel brûke.",
 'prefs-files' => 'Triemen',
 'prefs-custom-js' => 'Persoanlik JS',
 'prefs-emailconfirm-label' => 'Netpostbefêstiging:',
-'prefs-textboxsize' => 'Ofmjittings bewurkingsskerm',
 'youremail' => 'Jo netpostadres:',
 'username' => 'Meidochnamme:',
 'uid' => 'Wikinûmer:',
@@ -1226,7 +1223,6 @@ Jo kinne ek oaren de mûglikheid jaan kontakt mei jo op te nimmen troch in ferwi
 'recentchangeslinked-feed' => 'Folgje keppelings',
 'recentchangeslinked-toolbox' => 'Folgje keppelings',
 'recentchangeslinked-title' => 'Feroarings yn ferbân mei "$1"',
-'recentchangeslinked-noresult' => "Der hawwe gjin bewurkings yn 'e bedoelde perioade west op'e siden dy't hjirwei linke wurde.",
 'recentchangeslinked-summary' => "Dizze spesjale side lit de lêste bewurkings sjen op siden dy't keppele wurde fan in spesifisearre side ôf (of fan in spesifisearre Kategory ôf). Siden dy't op [[Special:Watchlist|jo folchlist]] steane, wurde '''tsjûk''' werjûn.",
 'recentchangeslinked-page' => 'Sidenamme:',
 'recentchangeslinked-to' => 'Feroarings oan siden mei ferwizings nei dizze side besjen',
@@ -1340,12 +1336,12 @@ PICT # ferskaat
 'upload-proto-error-text' => "Oanbieden mei dizze metoade freget URL's dy't begjinne mei <code>http://</code> of <code>ftp://</code>.",
 'upload-file-error' => 'Ynterne fout',
 'upload-file-error-text' => "Der wie in ynterne fout doe't in tydlike triem op'e server oanmakke waard.
-Nim kontakt op mei in [[Special:ListUsers/sysop|systeembehearder]].",
+Nim kontakt op mei in [[Special:ListUsers/sysop|behearder]].",
 'upload-misc-error' => 'Unbekende oanbiedfout',
 'upload-misc-error-text' => 'Der is by it oanbieden in ûnbekende fout optreden.
 Kontrolearje of de URL krekt en beskikber is en besykje it nochris.
 As it probleem oanhâldt, nim dan kontakt op mei in
-[[Special:ListUsers/sysop|systeembehearder]].',
+[[Special:ListUsers/sysop|behearder]].',
 'upload-unknown-size' => 'Unbekinde grutte',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
@@ -1686,7 +1682,6 @@ At jo letter in side net mear folgje wolle, dan brûke jo op dy side de keppelin
 'unwatch' => 'Ferjit',
 'unwatchthispage' => 'Ferjit dizze side',
 'notanarticle' => 'Dit kin net folge wurde.',
-'watchnochange' => "Fan de siden dy't jo folgje is der yn dizze perioade net ien feroare.",
 'watchlist-details' => 'Jo folchlist hat {{PLURAL:$1|$1 side|$1 siden}}, oerlissiden net meiteld.',
 'watchmethod-recent' => 'Koartlyn feroare ...',
 'watchmethod-list' => 'Folge ...',
index 2fbaa9d..1300506 100644 (file)
@@ -324,7 +324,6 @@ $messages = array(
 'disclaimers' => 'Séanadh',
 'disclaimerpage' => 'Project:Séanadh_ginearálta',
 'edithelp' => 'Cabhair eagarthóireachta',
-'edithelppage' => 'Help:Eagarthóireacht',
 'helppage' => 'Help:Clár_ábhair',
 'mainpage' => 'Príomhleathanach',
 'mainpage-description' => 'Príomhleathanach',
@@ -350,7 +349,6 @@ $messages = array(
 'newmessagesdifflink' => 'difear ón leasú leathdhéanach',
 'youhavenewmessagesmulti' => 'Tá teachtaireachtaí nua agat ar $1',
 'editsection' => 'athraigh',
-'editsection-brackets' => '[$1]',
 'editold' => 'athraigh',
 'viewsourceold' => 'féach ar foinse',
 'editlink' => 'cur in eagar',
@@ -785,7 +783,6 @@ Treoir: (rth) = difríocht ón leagan reatha, (rmh) = difríocht ón leagan roim
 'viewprevnext' => 'Taispeáin ($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-legend' => 'Sainroghanna cuardaithe',
 'searchmenu-new' => "'''Cruthaigh an leathanach \"[[:\$1]]\" ar an vicí seo!'''",
-'searchhelp-url' => 'Help:Clár_ábhair',
 'searchprofile-articles' => 'Leathanaigh ábhair',
 'searchprofile-project' => 'Leathanaigh thionscadail agus cabhair',
 'searchprofile-images' => 'Ilmheáin',
@@ -991,7 +988,6 @@ do chuid dreachtaí a chur i leith tusa.',
 'recentchangeslinked-feed' => 'Athruithe gaolmhara',
 'recentchangeslinked-toolbox' => 'Athruithe gaolmhara',
 'recentchangeslinked-title' => 'Athruithe gaolmhara le "$1"',
-'recentchangeslinked-noresult' => 'Níl aon athraithe ar na leathanaigh naiscthe le linn an tréimhse tugtha.',
 'recentchangeslinked-summary' => "Seo liosta na n-athruithe atá deanta is déanaí le leathanaigh atá naiscthe as leathanach sonraithe (nó baill an chatagóir sonraithe).
 Tá na leathanaigh ar do [[Special:Watchlist|liosta faire]] i '''gcló trom'''.",
 'recentchangeslinked-page' => 'Ainm leathanaigh:',
@@ -1284,8 +1280,6 @@ agus beidh '''cló trom''' ar a theideal san [[Special:RecentChanges|liosta de n
 'unwatchthispage' => 'Ná fair fós',
 'notanarticle' => 'Níl alt ann',
 'notvisiblerev' => 'Scriosadh an leagan',
-'watchnochange' => 'Níor athraíodh ceann ar bith de na leathanaigh atá ar do liosta faire,
-taobh istigh den tréimhse atá roghnaithe agat.',
 'watchlist-details' => 'Tá tú ag faire ar {{PLURAL:$1|leathanach amháin|$1 leathanaigh}}, gan leathanaigh phlé a chur san áireamh.',
 'wlheader-enotif' => 'Cumasaíodh fógraí riomhphoist.',
 'wlheader-showupdated' => "Tá '''cló trom''' ar leathanaigh a athraíodh ón uair is deireanaí a d'fhéach tú orthu.",
index a52e9a3..3352027 100644 (file)
@@ -288,7 +288,6 @@ $messages = array(
 'disclaimers' => 'Cuvapçılık reti',
 'disclaimerpage' => 'Project:Genel cuvapçılık reti',
 'edithelp' => 'Nesoy var nicä diiştirmää?',
-'edithelppage' => 'Help:Nesoy var nicä sayfa diiştirmää',
 'helppage' => 'Help:İçindekilär',
 'mainpage' => 'Baş yaprak',
 'mainpage-description' => 'Baş yaprak',
@@ -574,7 +573,6 @@ Nışannar: (bitki) = şindiki versiyalan aradaki fark,
 'prevn' => 'ilerki {{PLURAL:$1|$1}}',
 'nextn' => 'geeriki {{PLURAL:$1|$1}}',
 'viewprevnext' => '($1 {{int:pipe-separator}} $2) ($3).',
-'searchhelp-url' => 'Help:İçindekilär',
 'search-result-size' => '$1 ({{PLURAL:$2|1 laf|$2 laf}})',
 'search-redirect' => '(göndermää $1)',
 'search-section' => '(bölüm $1)',
@@ -653,7 +651,6 @@ Aaramaanızın önünä ''all:'' prefiksini koyun da deneyin hepsi içlii aarama
 'recentchangeslinked-feed' => 'İlgili diişilmäklär',
 'recentchangeslinked-toolbox' => 'İlgili diişilmäklär',
 'recentchangeslinked-title' => '"$1" ilgili diişmäklär',
-'recentchangeslinked-noresult' => 'Baalantılı sayfalarda verilmiş devirde diişmäk olmadı.',
 'recentchangeslinked-summary' => "Bu maasus sayfa baalantılı sayfalardaki diişmäkleri sayêr.
 Sizin bakmaa [[Special:Watchlist|listasındaki]] sayfalar verildi '''kalın''' bukvalarnan.",
 'recentchangeslinked-page' => 'Yaprak adı:',
index 3456d6e..f5b7abd 100644 (file)
@@ -266,7 +266,6 @@ $1',
 'disclaimers' => '免责声明',
 'disclaimerpage' => 'Project:免责声明',
 'edithelp' => '编写帮助',
-'edithelppage' => 'Help:啷编写文章',
 'helppage' => 'Help:说明',
 'mainpage' => '封面',
 'mainpage-description' => '封面',
@@ -741,7 +740,6 @@ $2',
 'viewprevnext' => '眵吖($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-exists' => "'''个只wiki已有一只叫「[[:$1]]」𠮶页。'''",
 'searchmenu-new' => "'''嘚个只wiki上建立「[[:$1]]」页!'''",
-'searchhelp-url' => 'Help:说明',
 'searchprofile-articles' => '内容页',
 'searchprofile-project' => '帮助同得计划页',
 'searchprofile-images' => '多媒体',
@@ -906,7 +904,6 @@ $2',
 'recentchangeslinked-feed' => '链接页𠮶更改',
 'recentchangeslinked-toolbox' => '链接页𠮶更改',
 'recentchangeslinked-title' => '链接页𠮶改动到 "$1"',
-'recentchangeslinked-noresult' => '个段时间𠮶链接页冇更改。',
 'recentchangeslinked-summary' => "个只特殊页列出个页连出去页面𠮶最晏改动(或系某只分类𠮶页面)。
 [[Special:Watchlist|倷𠮶监视列表]]页面会用'''粗体'''显到。",
 'recentchangeslinked-page' => '页面名子:',
@@ -1259,7 +1256,6 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'unwatch' => '莫眏到',
 'unwatchthispage' => '莫眏到个页',
 'notanarticle' => '伓系文章',
-'watchnochange' => '一径到显示𠮶时间之内,倷眏到𠮶页面冇改动。',
 'watchlist-details' => '$1只页面(伓算讨论页) 拖眏到哩',
 'wlheader-enotif' => '启动嘞email通知功能。',
 'wlheader-showupdated' => "上回倷眵𠮶页面改动𠮶部分用'''粗体'''显到",
@@ -2214,7 +2210,6 @@ $3
 'version-variables' => '变量',
 'version-other' => '别𠮶',
 'version-mediahandlers' => '媒体处理程序',
-'version-extension-functions' => '扩展功能',
 'version-parser-extensiontags' => '解析器扩展标签',
 'version-hook-name' => '钩子名',
 'version-hook-subscribedby' => '订阅人',
index 158f01f..3fde8c7 100644 (file)
@@ -288,7 +288,6 @@ $1',
 'disclaimers' => '免責聲明',
 'disclaimerpage' => 'Project:免責聲明',
 'edithelp' => '編寫幫助',
-'edithelppage' => 'Help:啷編寫文章',
 'helppage' => 'Help:説明',
 'mainpage' => '封面',
 'mainpage-description' => '封面',
@@ -763,7 +762,6 @@ $2',
 'viewprevnext' => '望下($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-exists' => "'''箇隻wiki已有一隻叫「[[:$1]]」嗰頁。'''",
 'searchmenu-new' => "'''到箇隻wiki上建立「[[:$1]]」頁!'''",
-'searchhelp-url' => 'Help:説明',
 'searchprofile-articles' => '內容頁',
 'searchprofile-project' => '幫助同得計劃頁',
 'searchprofile-images' => '多媒體',
@@ -928,7 +926,6 @@ $2',
 'recentchangeslinked-feed' => '連結頁嗰更改',
 'recentchangeslinked-toolbox' => '連結頁嗰更改',
 'recentchangeslinked-title' => '連結頁嗰改動到 "$1"',
-'recentchangeslinked-noresult' => '箇段時間嗰連結頁冇更改。',
 'recentchangeslinked-summary' => "箇隻特殊頁列出箇頁連出去頁面嗰頂晏嗰改動(或係某隻分類嗰頁面)。
 [[Special:Watchlist|汝嗰監視列表]]頁面會用'''粗體'''顯到。",
 'recentchangeslinked-page' => '頁面名子:',
@@ -1281,7 +1278,6 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'unwatch' => '莫眏到',
 'unwatchthispage' => '莫眏到箇頁',
 'notanarticle' => '伓係文章',
-'watchnochange' => '一徑到顯示嗰時間之內,倷眏到嗰頁面冇改動。',
 'watchlist-details' => '$1隻頁面(伓算討論頁) 拕眏到哩',
 'wlheader-enotif' => '啟動哩email通知功能。',
 'wlheader-showupdated' => "上回倷眵嗰頁面改動嗰部分用'''粗體'''顯到",
@@ -2236,7 +2232,6 @@ $3
 'version-variables' => '變量',
 'version-other' => '別嗰',
 'version-mediahandlers' => '媒體處理程序',
-'version-extension-functions' => '擴展功能',
 'version-parser-extensiontags' => '解析器擴展標籤',
 'version-hook-name' => '鉤子名',
 'version-hook-subscribedby' => '訂閱人',
index 03d5744..58c29f3 100644 (file)
@@ -276,7 +276,6 @@ $1",
 'disclaimers' => 'Aithrisean-àichidh',
 'disclaimerpage' => 'Project:Aithris-àichidh choitcheann',
 'edithelp' => 'Cobhair deasachaidh',
-'edithelppage' => 'Help:Deasachadh',
 'helppage' => 'Help:Susbaint',
 'mainpage' => 'Prìomh dhuilleag',
 'mainpage-description' => 'Prìomh dhuilleag',
@@ -572,10 +571,8 @@ Saoil an do dh'atharraich thu am facal-faire agad mu thràth no an do dh'iarr th
 
 # Special:PasswordReset
 'passwordreset' => 'Ath-shuidhich am facal-faire',
-'passwordreset-text' => 'Lìon am foirm seo gus am facal-faire agad ath-shuidheachadh.',
 'passwordreset-legend' => 'Ath-shuidhich am facal-faire',
 'passwordreset-disabled' => 'Chaidh ath-shuidheachadh nam faclan-faire a chur à comas air an uicipeid seo.',
-'passwordreset-pretext' => '{{PLURAL:$1||Cuir a-steach aon dhe na pìosan dàta gu h-ìosal}}',
 'passwordreset-username' => 'Ainm-cleachdaiche:',
 'passwordreset-domain' => 'Àrainn-lìn:',
 'passwordreset-capture' => "A bheil thu airson coimhead air a' phost-d?",
@@ -942,7 +939,6 @@ Feuch is [[Special:Search|lorg duilleagan ùra iomachaidh air an uici]]",
 'searchmenu-legend' => 'Roghainnean luirg',
 'searchmenu-exists' => "'''Tha duilleag air a bheil \"[[:\$1]]\" air an uicipeid seo.'''",
 'searchmenu-new' => "'''Cruthaich an duilleag \"[[:\$1]]\" air an uicipeid seo!'''",
-'searchhelp-url' => 'Help:Cuideachadh',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Rùraich duilleagan aig a bheil an ro-leasachan seo]]',
 'searchprofile-articles' => 'Duilleagan susbainte',
 'searchprofile-project' => "Duilleagan nan cobharach 's nam pròiseactan",
@@ -1015,7 +1011,6 @@ Faodaidh gum bi inneacsan susbaint {{SITENAME}} tuilleadh 's sean ge-tà.",
 'resetprefs' => 'Falamhaich atharrachaidhean nach deach a shàbhaladh fhathast',
 'restoreprefs' => 'Aisig na roghainnean bunaiteach uile',
 'prefs-editing' => "A' deasachadh",
-'prefs-edit-boxsize' => 'Meud uinneag an deasachaidh.',
 'rows' => 'Sreathan',
 'columns' => 'Colbhan',
 'searchresultshead' => 'Lorg',
@@ -1042,7 +1037,6 @@ Faodaidh gum bi inneacsan susbaint {{SITENAME}} tuilleadh 's sean ge-tà.",
 'prefs-common-css-js' => 'CSS/JavaScript ann an coitcheann do gach craiceann:',
 'prefs-reset-intro' => "'S urrainn dhut bun-roghainnean na làraich ath-shuidheachadh air an duilleag seo. Cha ghabh seo a neo-dhèanamh.",
 'prefs-emailconfirm-label' => 'Dearbhadh puist-d:',
-'prefs-textboxsize' => 'Meud na h-uinneige deasachaidh',
 'youremail' => 'Post-dealain:',
 'username' => '{{GENDER:$1|Ainm-cleachdaiche}}:',
 'uid' => "ID {{GENDER:$1|a' chleachdaiche}}:",
@@ -1179,7 +1173,6 @@ Chan fhaicear an seòladh fhèin nuair a chuireas cuideigin post-dealain thugad.
 'recentchangeslinked-feed' => 'Mùthaidhean buntainneach',
 'recentchangeslinked-toolbox' => 'Mùthaidhean buntainneach',
 'recentchangeslinked-title' => 'Mùthaidhean co-cheangailte ri "$1"',
-'recentchangeslinked-noresult' => 'Cha dàinig atharrachadh air duilleag cho-cheangailte am broinn na h-ùine a thagh thu.',
 'recentchangeslinked-summary' => "Seo liosta nam mùthaidhean a chaidh a chur air duilleagan a tha a' ceangal o dhuilleag shònraichte (no ri buill de roinn shònraichte).
 Tha duilleagan air [[Special:Watchlist|do chlàr-faire]] ann an litrichean '''troma'''.",
 'recentchangeslinked-page' => 'Ainm na duilleige:',
@@ -1326,7 +1319,6 @@ Nochdaidh mùthaidhean a nithear air an duilleag seo \'s air an duilleag deasbai
 'unwatch' => 'Na cum sùil tuilleadh',
 'unwatchthispage' => 'Na cum sùil tuilleadh',
 'notanarticle' => 'Chan e duilleag susbaint a tha ann',
-'watchnochange' => "Cha deach na duilleagan air d' fhaire a dheasachadh anns a' chuairt ùine taisbeanta.",
 'watchlist-details' => 'Tha {{PLURAL:$1|$1 duilleag|$1 dhuilleag|$1 duilleagan|$1 duilleag}} air do chlàr-faire, gun luaidh air na duilleagan deasbaireachd.',
 'wlheader-showupdated' => "Tha clò '''trom''' air duilleagan a chaidh atharrachadh on turas mu dheireadh a thadhail thu orra.",
 'watchmethod-recent' => "A' sgrùdadh deasachaidhean ùra airson duilleagan air d' fhaire",
index 5e37b7d..f19d7cd 100644 (file)
@@ -11,6 +11,7 @@
  * @author Dferg
  * @author Elisardojm
  * @author Gallaecio
+ * @author Geitost
  * @author Gustronico
  * @author Kaganer
  * @author Lameiro
@@ -135,6 +136,7 @@ $specialPageAliases = array(
        'Randomredirect'            => array( 'Redirección_aleatoria' ),
        'Recentchanges'             => array( 'Cambios_recentes' ),
        'Recentchangeslinked'       => array( 'Cambios_relacionados' ),
+       'Redirect'                  => array( 'Redirección' ),
        'Revisiondelete'            => array( 'Revisións_borradas' ),
        'Search'                    => array( 'Procurar' ),
        'Shortpages'                => array( 'Páxinas_curtas' ),
@@ -260,7 +262,7 @@ $messages = array(
 'tog-extendwatchlist' => 'Expandir a lista de vixilancia para mostrar todos os cambios e non só os máis recentes',
 'tog-usenewrc' => 'Agrupar as modificacións por páxina nos cambios recentes e na lista de vixilancia (cómpre JavaScript)',
 'tog-numberheadings' => 'Numerar automaticamente as cabeceiras',
-'tog-showtoolbar' => 'Mostrar a caixa de ferramentas de edición (cómpre JavaScript)',
+'tog-showtoolbar' => 'Mostrar a barra de ferramentas de edición (cómpre JavaScript)',
 'tog-editondblclick' => 'Editar as páxinas logo de facer dobre clic (cómpre JavaScript)',
 'tog-editsection' => 'Permitir a edición de seccións mediante as ligazóns "[editar]"',
 'tog-editsectiononrightclick' => 'Permitir a edición de seccións premendo co botón dereito nos títulos das seccións (cómpre JavaScript)',
@@ -452,6 +454,7 @@ $messages = array(
 'create-this-page' => 'Crear esta páxina',
 'delete' => 'Borrar',
 'deletethispage' => 'Borrar esta páxina',
+'undeletethispage' => 'Restaurar esta páxina',
 'undelete_short' => 'Restaurar {{PLURAL:$1|unha edición|$1 edicións}}',
 'viewdeleted_short' => 'Ver {{PLURAL:$1|unha edición borrada|$1 edicións borradas}}',
 'protect' => 'Protexer',
@@ -505,7 +508,6 @@ $1',
 'disclaimers' => 'Advertencias',
 'disclaimerpage' => 'Project:Advertencia xeral',
 'edithelp' => 'Axuda de edición',
-'edithelppage' => 'Help:Como editar unha páxina',
 'helppage' => 'Help:Axuda',
 'mainpage' => 'Portada',
 'mainpage-description' => 'Portada',
@@ -651,9 +653,13 @@ Para engadir ou modificar as traducións en todos os wikis utilice [//translatew
 'sqlhidden' => '(Procura SQL agochada)',
 'cascadeprotected' => 'Esta páxina foi protexida fronte á edición debido a que está incluída {{PLURAL:$1|na seguinte páxina protexida, que ten|nas seguintes páxinas protexidas, que teñen}} a "protección en serie" activada:
 $2',
-'namespaceprotected' => "Non dispón de permisos para modificar páxinas no espazo de nomes '''$1'''.",
-'customcssprotected' => 'Non dispón de permisos para modificar esta páxina de CSS, dado que contén a configuración persoal doutro usuario.',
-'customjsprotected' => 'Non dispón de permisos para modificar esta páxina de JavaScript, dado que contén a configuración persoal doutro usuario.',
+'namespaceprotected' => "Non ten os permisos necesarios para modificar páxinas no espazo de nomes '''$1'''.",
+'customcssprotected' => 'Non ten os permisos necesarios para modificar esta páxina de CSS, dado que contén a configuración persoal doutro usuario.',
+'customjsprotected' => 'Non ten os permisos necesarios para modificar esta páxina de JavaScript, dado que contén a configuración persoal doutro usuario.',
+'mycustomcssprotected' => 'Non ten os permisos necesarios para editar esta páxina de CSS.',
+'mycustomjsprotected' => 'Non ten os permisos necesarios para editar esta páxina de JavaScript.',
+'myprivateinfoprotected' => 'Non ten os permisos necesarios para editar a súa información privada.',
+'mypreferencesprotected' => 'Non ten os permisos necesarios para editar as súas preferencias.',
 'ns-specialprotected' => 'Non se poden editar as páxinas no espazo de nomes "{{ns:special}}".',
 'titleprotected' => "Este título foi protexido da creación por [[User:$1|$1]].
 O motivo achegado é ''$2''.",
@@ -681,6 +687,7 @@ Non esqueza personalizar as súas [[Special:Preferences|preferencias de {{SITENA
 'yourname' => 'Nome de usuario:',
 'userlogin-yourname' => 'Nome de usuario',
 'userlogin-yourname-ph' => 'Insira o seu nome de usuario',
+'createacct-another-username-ph' => 'Insira o nome de usuario',
 'yourpassword' => 'Contrasinal:',
 'userlogin-yourpassword' => 'Contrasinal',
 'userlogin-yourpassword-ph' => 'Insira o seu contrasinal',
@@ -715,9 +722,11 @@ Non esqueza personalizar as súas [[Special:Preferences|preferencias de {{SITENA
 'helplogin-url' => 'Help:Rexistro',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Axuda co rexistro]]',
 'createacct-join' => 'Insira a súa información embaixo.',
+'createacct-another-join' => 'Insira a información da nova conta embaixo.',
 'createacct-emailrequired' => 'Enderezo de correo electrónico',
 'createacct-emailoptional' => 'Enderezo de correo electrónico (opcional)',
 'createacct-email-ph' => 'Insira o seu enderezo de correo electrónico',
+'createacct-another-email-ph' => 'Insira o enderezo de correo electrónico',
 'createaccountmail' => 'Utilizar un contrasinal aleatorio temporal e envialo ao enderezo de correo electrónico especificado embaixo',
 'createacct-realname' => 'Nome real (opcional)',
 'createaccountreason' => 'Motivo:',
@@ -726,6 +735,7 @@ Non esqueza personalizar as súas [[Special:Preferences|preferencias de {{SITENA
 'createacct-captcha' => 'Comprobación de seguridade',
 'createacct-imgcaptcha-ph' => 'Insira o texto que ve enriba',
 'createacct-submit' => 'Crear a conta',
+'createacct-another-submit' => 'Crear outra conta',
 'createacct-benefit-heading' => 'Xente coma vostede elabora {{SITENAME}}.',
 'createacct-benefit-body1' => '{{PLURAL:$1|edición|edicións}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|páxina|páxinas}}',
@@ -794,7 +804,7 @@ Insira un enderezo cun formato válido ou baleire ese campo.',
 'cannotchangeemail' => 'Neste wiki non se poden mudar os enderezos de correo electrónico asociados a unha conta.',
 'emaildisabled' => 'Este sitio non pode enviar correos electrónicos.',
 'accountcreated' => 'Conta creada',
-'accountcreatedtext' => 'Creouse a conta de usuario para "$1".',
+'accountcreatedtext' => 'Creouse a conta de usuario para [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|conversa]]).',
 'createaccount-title' => 'Creación dunha conta para {{SITENAME}}',
 'createaccount-text' => 'Alguén creou unha conta chamada "$2" para o seu enderezo de correo electrónico en {{SITENAME}} ($4), e con contrasinal "$3".
 Debe acceder ao sistema e mudar o contrasinal agora.
@@ -834,11 +844,11 @@ Pode ser que xa cambiase o seu contrasinal ou que solicitase un novo contrasinal
 
 # Special:PasswordReset
 'passwordreset' => 'Restablecer o contrasinal',
-'passwordreset-text' => 'Encha este formulario para restablecer o seu contrasinal.',
+'passwordreset-text-one' => 'Encha este formulario para restablecer o seu contrasinal.',
+'passwordreset-text-many' => '{{PLURAL:$1|Encha un dos campos para restablecer o seu contrasinal.}}',
 'passwordreset-legend' => 'Restablecer o contrasinal',
 'passwordreset-disabled' => 'O restablecemento de contrasinais está desactivado neste wiki.',
 'passwordreset-emaildisabled' => 'As funcións do correo electrónico están desactivadas neste wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Introduza un dos datos a continuación}}',
 'passwordreset-username' => 'Nome de usuario:',
 'passwordreset-domain' => 'Dominio:',
 'passwordreset-capture' => 'Quere ollar o correo electrónico?',
@@ -953,14 +963,14 @@ Teña en conta que non pode empregar a característica "Enviar un correo electr
 O seu enderezo IP actual é $3 e o ID do bloqueo é #$5.
 Por favor, inclúa eses datos nas consultas que faga.',
 'blockednoreason' => 'non se deu ningunha razón',
-'whitelistedittext' => 'Ten que $1 para poder editar páxinas.',
+'whitelistedittext' => 'Debe $1 para poder editar páxinas.',
 'confirmedittext' => 'Debe confirmar o correo electrónico antes de comezar a editar. Por favor, configure e dea validez ao correo mediante as súas [[Special:Preferences|preferencias de usuario]].',
 'nosuchsectiontitle' => 'Non se pode atopar a sección',
 'nosuchsectiontext' => 'Intentou editar unha sección que non existe.
 Poida que a movesen ou borrasen mentres ollaba a páxina.',
 'loginreqtitle' => 'Cómpre acceder ao sistema',
 'loginreqlink' => 'acceder ao sistema',
-'loginreqpagetext' => 'Debe $1 para ver outras páxinas.',
+'loginreqpagetext' => 'Debe $1 para poder ver outras páxinas.',
 'accmailtitle' => 'Enviouse o contrasinal',
 'accmailtext' => 'Un contrasinal xerado ao chou para "[[User talk:$1|$1]]" foi enviado a "$2".
 
@@ -985,8 +995,8 @@ O [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} rexistro de borrad
 'blocked-notice-logextract' => 'Este usuario está bloqueado.
 Velaquí está a última entrada do rexistro de bloqueos, por se quere consultala:',
 'clearyourcache' => "'''Nota:''' Despois de gardar, cómpre limpar a memoria caché do seu navegador para ver os cambios.
-* '''Firefox / Safari:''' Prema ''Maiúsculas'' á vez que en ''Recargar'', ou prema en ''Ctrl-F5'' ou ''Ctrl-R'' (''⌘-R'' nos Mac)
-* '''Google Chrome:''' Prema en ''Ctrl-Shift-R'' (''⌘-Shift-R'' nos Mac)
+* '''Firefox/Safari:''' Prema ''Maiúsculas'' á vez que en ''Recargar'', ou prema en ''Ctrl-F5'' ou ''Ctrl-R'' (''⌘-R'' nos Mac)
+* '''Google Chrome:''' Prema en ''Ctrl-Maiús-R'' (''⌘-Maiús-R'' nos Mac)
 * '''Internet Explorer:''' Prema ''Ctrl'' ao tempo que fai clic en ''Refrescar'', ou prema en ''Ctrl-F5''
 * '''Opera:''' Limpe a súa memoria caché en ''Ferramentas → Preferencias''",
 'usercssyoucanpreview' => "'''Nota:''' Use o botón \"{{int:showpreview}}\" para verificar o novo CSS antes de gardalo.",
@@ -1067,7 +1077,7 @@ Pode volver e editar unha páxina que xa existe ou, se non, [[Special:UserLogin|
 'nocreate-loggedin' => 'Non dispón dos permisos necesarios para crear páxinas novas.',
 'sectioneditnotsupported-title' => 'A edición de seccións non está soportada',
 'sectioneditnotsupported-text' => 'A edición de seccións non está soportada nesta páxina.',
-'permissionserrors' => 'Erros de permisos',
+'permissionserrors' => 'Erro de permisos',
 'permissionserrorstext' => 'Non dispón de permiso para facelo por {{PLURAL:$1|esta razón|estas razóns}}:',
 'permissionserrorstext-withaction' => 'Non ten os permisos necesarios para $2, {{PLURAL:$1|pola seguinte razón|polas seguintes razóns}}:',
 'recreate-moveddeleted-warn' => "'''Atención: Vai volver crear unha páxina que xa foi eliminada anteriormente.'''
@@ -1083,6 +1093,7 @@ Este non deu ningunha explicación.',
 Semella que foi borrada.',
 'edit-conflict' => 'Conflito de edición.',
 'edit-no-change' => 'A súa edición foi ignorada dado que non fixo ningún cambio no texto.',
+'postedit-confirmation' => 'Gardouse a súa edición.',
 'edit-already-exists' => 'Non se pode crear a nova páxina.
 Esta xa existe.',
 'defaultmessagetext' => 'Texto predeterminado',
@@ -1126,6 +1137,7 @@ Comprobe a comparación que aparece a continuación para confirmar que isto é o
 'undo-failure' => 'Non se pode desfacer a edición debido a un conflito con algunha das edicións intermedias.',
 'undo-norev' => 'A edición non se pode desfacer porque non existe ou foi eliminada.',
 'undo-summary' => 'Desfíxose a edición $1 de [[Special:Contributions/$2|$2]] ([[User talk:$2|conversa]])',
+'undo-summary-username-hidden' => 'Desfíxose a edición $1 dun usuario agochado',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Non pode crear unha conta de usuario',
@@ -1152,8 +1164,8 @@ A razón dada por $3 foi ''$2''",
 Lenda: '''({{int:cur}})''' = diferenza coa versión actual, '''({{int:last}})''' = diferenza coa versión precedente, '''{{int:minoreditletter}}''' = edición pequena.",
 'history-fieldset-title' => 'Navegar polo historial',
 'history-show-deleted' => 'Borrados soamente',
-'histfirst' => 'Primeiras',
-'histlast' => 'Últimas',
+'histfirst' => 'as máis antigas',
+'histlast' => 'as máis novas',
 'historysize' => '({{PLURAL:$1|1 byte|$1 bytes}})',
 'historyempty' => '(baleiro)',
 
@@ -1305,6 +1317,7 @@ Asegúrese de que esta modificación da páxina mantén a continuidade históric
 'compareselectedversions' => 'Comparar as versións seleccionadas',
 'showhideselectedversions' => 'Mostrar/Agochar as versións seleccionadas',
 'editundo' => 'desfacer',
+'diff-empty' => '(Sen diferenzas)',
 'diff-multi' => '(Non se {{PLURAL:$1|mostra unha revisión|mostran $1 revisións}} do historial {{PLURAL:$1|feita|feitas}} por {{PLURAL:$2|un usuario|$2 usuarios}}.)',
 'diff-multi-manyusers' => '(Non se {{PLURAL:$1|mostra unha revisión|mostran $1 revisións}} do historial {{PLURAL:$1|feita|feitas}} por máis {{PLURAL:$2|dun usuario|de $2 usuarios}}.)',
 'difference-missing-revision' => 'Non se {{PLURAL:$2|atopou revisión ningunha|atoparon $2 revisións}} desta diferenza ($1).
@@ -1332,7 +1345,6 @@ O [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} rexistro de borrad
 'searchmenu-legend' => 'Opcións de busca',
 'searchmenu-exists' => "* Páxina \"'''[[\$1]]'''\"",
 'searchmenu-new' => "'''Crear a páxina \"[[:\$1]]\" neste wiki!'''",
-'searchhelp-url' => 'Help:Contidos',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Navegue polas páxinas que comezan coas mesmas iniciais]]',
 'searchprofile-articles' => 'Páxinas de contido',
 'searchprofile-project' => 'Páxinas do proxecto e de axuda',
@@ -1410,7 +1422,6 @@ Note que os seus índices do contido de {{SITENAME}} poden estar desactualizados
 'resetprefs' => 'Eliminar os cambios non gardados',
 'restoreprefs' => 'Restaurar todas as preferencias por defecto',
 'prefs-editing' => 'Edición',
-'prefs-edit-boxsize' => 'Tamaño da caixa de edición.',
 'rows' => 'Filas:',
 'columns' => 'Columnas:',
 'searchresultshead' => 'Procurar',
@@ -1421,9 +1432,6 @@ Note que os seus índices do contido de {{SITENAME}} poden estar desactualizados
 'recentchangesdays-max' => 'Máximo: $1 {{PLURAL:$1|día|días}}',
 'recentchangescount' => 'Número de edicións a mostrar por defecto:',
 'prefs-help-recentchangescount' => 'Isto inclúe os cambios recentes, os historiais e mais os rexistros.',
-'prefs-help-watchlist-token' => 'Ao encher este campo cunha clave secreta xerarase unha fonte de novas RSS para a súa lista de vixilancia.
-Calquera que saiba esta clave poderá ler a súa lista de vixilancia, así que escolla un valor seguro.
-Velaquí un valor xerado ao chou que pode usar: $1',
 'savedprefs' => 'Gardáronse as súas preferencias.',
 'timezonelegend' => 'Zona horaria:',
 'localtime' => 'Hora local:',
@@ -1454,7 +1462,6 @@ Velaquí un valor xerado ao chou que pode usar: $1',
 'prefs-reset-intro' => 'Pode usar esta páxina para restablecer as súas preferencias ás que veñen dadas por defecto.
 Este cambio non se poderá desfacer.',
 'prefs-emailconfirm-label' => 'Confirmación do correo:',
-'prefs-textboxsize' => 'Tamaño da caixa de edición',
 'youremail' => 'Correo electrónico:',
 'username' => 'Nome de {{GENDER:$1|usuario|usuaria}}:',
 'uid' => 'ID de {{GENDER:$1|usuario|usuaria}}:',
@@ -1484,7 +1491,9 @@ Ha de ter menos {{PLURAL:$1|dun carácter|de $1 caracteres}}.',
 'prefs-signature' => 'Sinatura',
 'prefs-dateformat' => 'Formato da data',
 'prefs-timeoffset' => 'Desprazamento horario',
-'prefs-advancedediting' => 'Opcións avanzadas',
+'prefs-advancedediting' => 'Xeral',
+'prefs-editor' => 'Editor',
+'prefs-preview' => 'Vista previa',
 'prefs-advancedrc' => 'Opcións avanzadas',
 'prefs-advancedrendering' => 'Opcións avanzadas',
 'prefs-advancedsearchoptions' => 'Opcións avanzadas',
@@ -1520,6 +1529,7 @@ Ha de ter menos {{PLURAL:$1|dun carácter|de $1 caracteres}}.',
 'userrights-changeable-col' => 'Os grupos que pode cambiar',
 'userrights-unchangeable-col' => 'Os grupos que non pode cambiar',
 'userrights-conflict' => 'Hai un conflito cos dereitos de usuario! Aplique de novo os seus cambios.',
+'userrights-removed-self' => 'Retirou correctamente os seus propios dereitos. Polo tanto, xa non ten acceso a esta páxina.',
 
 # Groups
 'group' => 'Grupo:',
@@ -1563,7 +1573,7 @@ Ha de ter menos {{PLURAL:$1|dun carácter|de $1 caracteres}}.',
 'right-reupload-shared' => 'Sobrescribir localmente ficheiros do repositorio multimedia',
 'right-upload_by_url' => 'Cargar ficheiros desde un enderezo URL',
 'right-purge' => 'Purgar a caché dunha páxina do wiki sen a páxina de confirmación',
-'right-autoconfirmed' => 'Editar páxinas semiprotexidas',
+'right-autoconfirmed' => 'Non ser afectado polos límites de frecuencia ligados aos enderezos IP',
 'right-bot' => 'Ser tratado coma un proceso automatizado',
 'right-nominornewtalk' => 'As edicións pequenas nas páxinas de conversa non lanzan o aviso de mensaxes novas',
 'right-apihighlimits' => 'Usar os límites superiores nas peticións API',
@@ -1584,15 +1594,23 @@ Ha de ter menos {{PLURAL:$1|dun carácter|de $1 caracteres}}.',
 'right-ipblock-exempt' => 'Evitar bloqueos de IPs, autobloqueos e bloqueos de rango',
 'right-proxyunbannable' => 'Evitar os bloqueos autamáticos a proxies',
 'right-unblockself' => 'Desbloqueárense a si mesmos',
-'right-protect' => 'Trocar os niveis de protección e editar páxinas protexidas',
-'right-editprotected' => 'Editar páxinas protexidas (que non teñan protección en serie)',
+'right-protect' => 'Cambiar os niveis de protección e editar páxinas protexidas coa opción "protección en serie"',
+'right-editprotected' => 'Editar páxinas protexidas con "{{int:protect-level-sysop}}"',
+'right-editsemiprotected' => 'Editar páxinas protexidas con "{{int:protect-level-autoconfirmed}}"',
 'right-editinterface' => 'Editar a interface de usuario',
-'right-editusercssjs' => 'Editar os ficheiros CSS e JS doutros usuarios',
+'right-editusercssjs' => 'Editar os ficheiros CSS e JavaScript doutros usuarios',
 'right-editusercss' => 'Editar os ficheiros CSS doutros usuarios',
-'right-edituserjs' => 'Editar os ficheiros JS doutros usuarios',
+'right-edituserjs' => 'Editar os ficheiros JavaScript doutros usuarios',
+'right-editmyusercss' => 'Editar os ficheiros CSS propios',
+'right-editmyuserjs' => 'Editar os ficheiros JavaScript propios',
+'right-viewmywatchlist' => 'Ver a lista de vixilancia propia',
+'right-editmywatchlist' => 'Editar a lista de vixilancia propia. Teña en conta que algunhas accións engadirán páxinas igualmente mesmo sen este dereito.',
+'right-viewmyprivateinfo' => 'Ver os datos privados propios (por exemplo, o enderezo de correo electrónico ou o nome real)',
+'right-editmyprivateinfo' => 'Editar os datos privados propios (por exemplo, o enderezo de correo electrónico ou o nome real)',
+'right-editmyoptions' => 'Editar as preferencias propias',
 'right-rollback' => 'Reverter rapidamente as edicións do último usuario que editou unha páxina en particular',
 'right-markbotedits' => 'Marcar as edicións desfeitas como edicións dun bot',
-'right-noratelimit' => 'Non lle afectan os límites de frecuencia',
+'right-noratelimit' => 'Non ser afectado polos límites de frecuencia',
 'right-import' => 'Importar páxinas doutros wikis',
 'right-importupload' => 'Importar páxinas desde un ficheiro cargado',
 'right-patrol' => 'Marcar edicións como patrulladas',
@@ -1651,12 +1669,17 @@ Ha de ter menos {{PLURAL:$1|dun carácter|de $1 caracteres}}.',
 'action-userrights-interwiki' => 'editar os permisos de usuario dos usuarios doutros wikis',
 'action-siteadmin' => 'bloquear ou desbloquear a base de datos',
 'action-sendemail' => 'enviar correos electrónicos',
+'action-editmywatchlist' => 'editar a súa lista de vixilancia',
+'action-viewmywatchlist' => 'ver a súa lista de vixilancia',
+'action-viewmyprivateinfo' => 'ver a súa información privada',
+'action-editmyprivateinfo' => 'editar a súa información privada',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|modificación|modificacións}}',
 'recentchanges' => 'Cambios recentes',
 'recentchanges-legend' => 'Opcións dos cambios',
 'recentchanges-summary' => 'Nesta páxina pode seguir as modificacións máis recentes feitas no wiki.',
+'recentchanges-noresult' => 'Non se produciron cambios que coincidisen con eses criterios durante o período especificado.',
 'recentchanges-feed-description' => 'Nesta fonte de novas pode seguir as modificacións máis recentes feitas no wiki.',
 'recentchanges-label-newpage' => 'Esta edición creou unha nova páxina',
 'recentchanges-label-minor' => 'Esta é unha edición pequena',
@@ -1693,7 +1716,6 @@ Ha de ter menos {{PLURAL:$1|dun carácter|de $1 caracteres}}.',
 'recentchangeslinked-feed' => 'Cambios relacionados',
 'recentchangeslinked-toolbox' => 'Cambios relacionados',
 'recentchangeslinked-title' => 'Cambios relacionados con "$1"',
-'recentchangeslinked-noresult' => 'Non se produciron cambios nas páxinas vinculadas a esta durante o período de tempo seleccionado.',
 'recentchangeslinked-summary' => "Esta é unha lista dos cambios que se realizaron recentemente nas páxinas vinculadas a esta (ou nos membros da categoría especificada).
 As páxinas da súa [[Special:Watchlist|lista de vixilancia]] aparecen en '''negra'''.",
 'recentchangeslinked-page' => 'Nome da páxina:',
@@ -1705,7 +1727,7 @@ As páxinas da súa [[Special:Watchlist|lista de vixilancia]] aparecen en '''neg
 'reuploaddesc' => 'Cancelar a carga e volver ao formulario de carga',
 'upload-tryagain' => 'Enviar a descrición do ficheiro modificada',
 'uploadnologin' => 'Non accedeu ao sistema',
-'uploadnologintext' => 'Debe [[Special:UserLogin|acceder ao sistema]] para poder cargar ficheiros.',
+'uploadnologintext' => 'Debe $1 para poder cargar ficheiros.',
 'upload_directory_missing' => 'Falta o directorio de carga ($1) e non pode ser creado polo servidor da páxina web.',
 'upload_directory_read_only' => 'O servidor web non pode escribir no directorio de carga ($1).',
 'uploaderror' => 'Erro ao cargar',
@@ -1842,11 +1864,11 @@ $1',
 'upload-proto-error-text' => 'A carga remota require enderezos URL que comecen por <code>http://</code> ou <code>ftp://</code>.',
 'upload-file-error' => 'Erro interno',
 'upload-file-error-text' => 'Produciuse un erro interno ao intentar crear un ficheiro temporal no servidor.
-Por favor, contacte cun [[Special:ListUsers/sysop|administrador]] do sistema.',
+Por favor, póñase en contacto cun [[Special:ListUsers/sysop|administrador]].',
 'upload-misc-error' => 'Erro de carga descoñecido',
 'upload-misc-error-text' => 'Ocorreu un erro descoñecido durante a carga.
 Comprobe que o enderezo URL é válido e accesible e, despois, inténteo de novo.
-Se o problema persiste, póñase en contacto cun [[Special:ListUsers/sysop|administrador]] do sistema.',
+Se o problema persiste, póñase en contacto cun [[Special:ListUsers/sysop|administrador]].',
 'upload-too-many-redirects' => 'O enderezo URL contiña moitas redireccións',
 'upload-unknown-size' => 'Tamaño descoñecido',
 'upload-http-error' => 'Produciuse un erro HTTP: $1',
@@ -2103,6 +2125,8 @@ Unha páxina trátase como páxina de homónimos cando nela se usa un modelo que
 'pageswithprop-text' => 'Esta páxina lista aquelas páxinas que utilizan unha propiedade de páxina determinada.',
 'pageswithprop-prop' => 'Nome da propiedade:',
 'pageswithprop-submit' => 'Mostrar',
+'pageswithprop-prophidden-long' => 'agochouse o valor de propiedade de texto longo ($1 kilobytes)',
+'pageswithprop-prophidden-binary' => 'agochouse o valor de propiedade binaria ($1 kilobytes)',
 
 'doubleredirects' => 'Redireccións dobres',
 'doubleredirectstext' => 'Esta lista contén as páxinas que redirixen cara a outras páxinas de redirección.
@@ -2280,7 +2304,8 @@ Cómpre, polo menos, un dominio de nivel superior; por exemplo, "*.org".<br />
 'listgrouprights' => 'Dereitos dun usuario segundo o seu grupo',
 'listgrouprights-summary' => 'A seguinte lista mostra os grupos de usuario definidos neste wiki, cos seus dereitos de acceso asociados.
 Se quere máis información acerca dos dereitos individuais, pode atopala [[{{MediaWiki:Listgrouprights-helppage}}|aquí]].',
-'listgrouprights-key' => '* <span class="listgrouprights-granted">Dereito concedido</span>
+'listgrouprights-key' => 'Lenda:
+* <span class="listgrouprights-granted">Dereito concedido</span>
 * <span class="listgrouprights-revoked">Dereito revogado</span>',
 'listgrouprights-group' => 'Grupo',
 'listgrouprights-rights' => 'Dereitos',
@@ -2351,7 +2376,6 @@ Os cambios futuros nesta páxina e na súa páxina de conversa asociada serán l
 'unwatchthispage' => 'Deixar de vixiar',
 'notanarticle' => 'Non é unha páxina de contido',
 'notvisiblerev' => 'A revisión foi borrada',
-'watchnochange' => 'Ningún dos elementos baixo vixilancia foi editado no período de tempo indicado.',
 'watchlist-details' => 'Hai {{PLURAL:$1|unha páxina|$1 páxinas}} na súa lista de vixilancia, sen contar as de conversa.',
 'wlheader-enotif' => 'A notificación por correo electrónico está activada.',
 'wlheader-showupdated' => "As páxinas que cambiaron desde a súa última visita móstranse en '''negra'''.",
@@ -2461,7 +2485,7 @@ proceda con coidado.',
 A última edición fíxoa [[User:$3|$3]] ([[User talk:$3|conversa]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "O resumo de edición foi: \"''\$1''\".",
 'revertpage' => 'Desfixéronse as edicións de [[Special:Contributions/$2|$2]] ([[User talk:$2|conversa]]); cambiado á última versión feita por [[User:$1|$1]]',
-'revertpage-nouser' => 'Desfixéronse as edicións de (nome eliminado); cambiado á última versión feita por [[User:$1|$1]]',
+'revertpage-nouser' => 'Desfixéronse as edicións dun usuario agochado; cambiado á última versión feita por [[User:$1|$1]]',
 'rollback-success' => 'Desfixéronse as edicións de $1;
 volveuse á última edición, feita por $2.',
 
@@ -2798,7 +2822,7 @@ Lembre [[Special:UnlockDB|eliminar o bloqueo]] unha vez completado o seu manteme
 
 # Move page
 'move-page' => 'Mover "$1"',
-'move-page-legend' => 'Mover páxina',
+'move-page-legend' => 'Mover unha páxina',
 'movepagetext' => "Ao usar o formulario inferior vai cambiar o nome da páxina, movendo todo o seu historial ao novo nome.
 O título vello vaise converter nunha páxina de redirección ao novo título.
 Pode actualizar automaticamente as redireccións que van dar ao título orixinal.
@@ -3802,7 +3826,7 @@ Por favor, confirme que realmente quere recrear esta páxina.",
 
 # Multipage image navigation
 'imgmultipageprev' => '← páxina anterior',
-'imgmultipagenext' => 'seguinte páxina →',
+'imgmultipagenext' => 'páxina seguinte →',
 'imgmultigo' => 'Ir!',
 'imgmultigoto' => 'Ir á páxina $1',
 
@@ -3882,7 +3906,6 @@ Tamén pode [[Special:EditWatchlist|empregar o editor normal]].',
 'version-other' => 'Outros',
 'version-mediahandlers' => 'Executadores de multimedia',
 'version-hooks' => 'Asociadores',
-'version-extension-functions' => 'Funcións das extensións',
 'version-parser-extensiontags' => 'Etiquetas das extensións do analizador',
 'version-parser-function-hooks' => 'Asociadores da función do analizador',
 'version-hook-name' => 'Nome do asociador',
@@ -3965,6 +3988,7 @@ Debería recibir [{{SERVER}}{{SCRIPTPATH}}/COPYING unha copia da licenza públic
 'tags' => 'Etiquetas de cambios válidas',
 'tag-filter' => 'Filtrar as [[Special:Tags|etiquetas]]:',
 'tag-filter-submit' => 'Filtro',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Etiqueta|Etiquetas}}]]: $2)',
 'tags-title' => 'Etiquetas',
 'tags-intro' => 'Esta páxina lista as etiquetas coas que o software pode marcar unha edición, e mailos seus significados.',
 'tags-tag' => 'Nome da etiqueta',
index 6023729..89f7137 100644 (file)
@@ -271,7 +271,6 @@ $1',
 'disclaimers' => 'Ἀποποιήσεις',
 'disclaimerpage' => 'Project:Γενικὴ ἀποποίησις',
 'edithelp' => 'Βοήθεια περὶ τοῦ μεταγράφειν',
-'edithelppage' => 'Help:Βοήθεια περὶ τοῦ μεταγράφειν',
 'helppage' => 'Help:Περιεχόμενα',
 'mainpage' => 'Κυρία Δέλτος',
 'mainpage-description' => 'Κυρία Δέλτος',
@@ -796,7 +795,6 @@ $1",
 'searchmenu-legend' => 'Ἐπιλογαὶ ζητήσεως',
 'searchmenu-exists' => "'''Ὑπάρχει δέλτος τις ὀνόματι \"[[:\$1]]\" ἐν τῷδε τῷ βίκι'''",
 'searchmenu-new' => "'''Ποιεῖν τὴν δέλτον \"[[:\$1]]\" ἐν τῷδε τῷ βίκι'''",
-'searchhelp-url' => 'Help:Περιεχόμενα',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Ζήτησις δέλτων ἐχουσῶν τόδε τὸ πρόθεμα]]',
 'searchprofile-articles' => 'Δέλτοι περιεχομένων',
 'searchprofile-project' => 'Βοήθεια  καὶ δέλτοι ἐγχειρήματος',
@@ -866,7 +864,6 @@ $1",
 'resetprefs' => 'Ἐκκαθαίρειν ἀσώτους ἀλλαγάς',
 'restoreprefs' => 'Ἐπανιστάναι ἁπάσας τὰς προκαθωρισμένας ῥυθμίσεις',
 'prefs-editing' => 'Τὸ μεταγράφειν',
-'prefs-edit-boxsize' => 'Μέγεθος τῆς θυρίδος μεταγραφῆς.',
 'rows' => 'Σειραί:',
 'columns' => 'Στῆλαι:',
 'searchresultshead' => 'Ζητεῖν',
@@ -904,7 +901,6 @@ $1",
 'prefs-custom-css' => 'CSS παραγγελτόν',
 'prefs-custom-js' => 'JS παραγγελτόν',
 'prefs-emailconfirm-label' => 'Ἐπιβεβαίωσις ἠλ.-διευθύνσεως:',
-'prefs-textboxsize' => 'Μέγεθος τῆς θυρίδος μεταγραφῆς',
 'youremail' => 'Ἠλεκτρονικαὶ ἐπιστολαί:',
 'username' => 'Ὄνομα χρωμένου:',
 'uid' => 'Ταυτότης χρωμένου:',
@@ -1117,7 +1113,6 @@ $1",
 'recentchangeslinked-feed' => 'Οἰκεῖαι μεταβολαί',
 'recentchangeslinked-toolbox' => 'Οἰκεῖαι μεταβολαί',
 'recentchangeslinked-title' => 'Μεταβολαὶ οἰκεῖαι "$1"',
-'recentchangeslinked-noresult' => 'Οὐδεμία ἀλλαγὴ τῶν συνδεδεμένων δέλτων ἐν τῇ δεδομένῃ χρονικῇ περιόδῳ.',
 'recentchangeslinked-summary' => "Ὅδε ἐστὶ κατάλογος τῶν νέων μεταβόλων κατὰ δέλτους συνδεδεμένας σὺν δέλτῳ τινί (ἢ κατὰ μέλη κατηγορίας τινός).
 Δέλτοι ἐν τῷ [[Special:Watchlist|καταλόγῳ ἐφορωμένων]] σου '''ἔντονοι''' εἰσίν.",
 'recentchangeslinked-page' => 'Ὄνομα δέλτου:',
@@ -1532,7 +1527,6 @@ $1",
 'unwatchthispage' => 'Παῦσαι τὸ ἐφορᾶν',
 'notanarticle' => 'Μὴ δέλτος χρήματος',
 'notvisiblerev' => 'Ἀναθεώρησις διαγεγραμμένη',
-'watchnochange' => 'Οὐδὲν ἐκ τῶν ἐφορωμένων τεμαχίων σου μετεγράφη τῷ δεικνυμένῳ χρόνῳ.',
 'watchlist-details' => '{{PLURAL:$1|$1 δέλτος|$1 δέλτοι}} ἐφορωμέναι, ἄνευ τῶν δέλτων διαλέξεως περιλαμβανομένων.',
 'wlheader-enotif' => 'Σύστημα εἰδήσεως μέσῳ ἠλ-ἐπιστολῶν ἐνεργόν.',
 'watchmethod-recent' => 'ἐλέγχειν προσφάτους μεταγραφὰς περὶ ἐφορωμένων δέλτων',
@@ -2592,7 +2586,6 @@ $5
 'version-other' => 'Ἄλλα',
 'version-mediahandlers' => 'Χειρισταὶ μέσων',
 'version-hooks' => 'Ἀγγύλαι',
-'version-extension-functions' => 'Ἐνέργειαι ἐπεκτάσεων',
 'version-parser-extensiontags' => 'Σἠμαντρα ἐπεκτάσεων λεξιαναλυτικοῦ προγράμματος',
 'version-parser-function-hooks' => 'Ἀγγύλαι ἐνεργειῶν λεξιαναλυτικοῦ προγράμματος',
 'version-hook-name' => 'Ὄνομα ἀγκύλης',
index a248e0d..b5bfa6c 100644 (file)
@@ -16,6 +16,7 @@
  * @author MaxSem
  * @author Melancholie
  * @author MichaelFrey
+ * @author Nemo bis
  * @author Purodha
  * @author Remember the dot
  * @author Spacebirdy
@@ -373,7 +374,6 @@ Di maximal Wartezyt fir e Lock isch umme',
 'disclaimers' => 'Impressum',
 'disclaimerpage' => 'Project:Impressum',
 'edithelp' => 'Rotschläg fir s Bearbeite',
-'edithelppage' => 'Help:Ändere',
 'helppage' => 'Help:Hilf',
 'mainpage' => 'Houptsyte',
 'mainpage-description' => 'Houptsyte',
@@ -552,7 +552,7 @@ Ochat: s cha syy, ass bstimmti Syte eso aazeigt wäre, wie wänn Du allno aagmä
 'logout' => 'Abmälde',
 'userlogout' => 'Abmälde',
 'notloggedin' => 'Nit aagmäldet',
-'nologin' => "No kei Benutzerkonto? '''$1'''.",
+'nologin' => 'No kei Benutzerkonto? $1.',
 'nologinlink' => '»Konto aaleege«',
 'createaccount' => 'Nöis Benutzerkonto aalege',
 'gotaccount' => "Du häsch scho a Konto? '''$1'''",
@@ -653,10 +653,8 @@ Villicht hesch Dyy Passwort scho gänderet oder e nej temporär Passwort aagford
 
 # Special:PasswordReset
 'passwordreset' => 'Passwort zruggsetze',
-'passwordreset-text' => 'Bitte des Formular uusfille, ass De E-Mail e Erinnerig zue dr Aamäldeinformatione vu Dyym Benutzerkonto iberchunnsch.',
 'passwordreset-legend' => 'Passwort zrucksetze',
 'passwordreset-disabled' => 'S Zrucksetze vu Passwerter isch in däm Wiki deaktiviert wore.',
-'passwordreset-pretext' => '{{PLURAL:$1||Gib eis vu däne Daten aa}}',
 'passwordreset-username' => 'Benutzername:',
 'passwordreset-domain' => 'Domain:',
 'passwordreset-capture' => 'Die E-Mail aaluege?',
@@ -1129,7 +1127,6 @@ Einzelheite chasch im [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}
 'searchmenu-legend' => 'Suechoptione',
 'searchmenu-exists' => "* Syte '''[[$1]]'''",
 'searchmenu-new' => "'''[[:$1|Leg d Syte ''$1'' in dem Wiki aa!]]'''",
-'searchhelp-url' => 'Help:Hilf',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Zeige alli Syte, wu mit dem Suechbegriff aafange]]',
 'searchprofile-articles' => 'Inhaltssyte',
 'searchprofile-project' => 'Hilf- un Projäktsyte',
@@ -1203,7 +1200,6 @@ Einzelheite chasch im [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}
 'resetprefs' => 'Änderige doch nid spychere',
 'restoreprefs' => 'Alli Standardyystellige widerhärstelle',
 'prefs-editing' => 'Tekscht-Ygab',
-'prefs-edit-boxsize' => 'Gressi vum Bearbeitigsfänschter.',
 'rows' => 'Zylene',
 'columns' => 'Spaltene',
 'searchresultshead' => 'Suech-Ergäbnis',
@@ -1214,9 +1210,6 @@ Einzelheite chasch im [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}
 'recentchangesdays-max' => '(Maximal $1 {{PLURAL:$1|Tag|Täg}})',
 'recentchangescount' => 'Aazahl vu Bearbeitige, wu standardmässig aazeigt wäre:',
 'prefs-help-recentchangescount' => 'Des umfasst d Lischt vu dr letschte Änderige, d Versionsgschicht un d Logbiecher.',
-'prefs-help-watchlist-token' => 'S Uusfille vu däm Fäld mit eme gheime Schlissel generiert e RSS-Feed fir Dyy Beobachtigslischt.
-E jede, wu dää Schlissel chännt, chaa Dyy Beobachtigslischt bschaue. Wehl wäge däm e sichere Wärt.
-Do het s e zuefellig generierte Wärt, wu du chasch bruche: $1',
 'savedprefs' => 'Dyni Ystellige sy gspycheret worde.',
 'timezonelegend' => 'Zytzone:',
 'localtime' => 'Ortszyt:',
@@ -1247,7 +1240,6 @@ Do het s e zuefellig generierte Wärt, wu du chasch bruche: $1',
 'prefs-reset-intro' => 'Du chasch die Syte verwände go d Yystellige uf dr Standard zrucksetze.
 Des cha nimmi ruckgängig gmacht wäre.',
 'prefs-emailconfirm-label' => 'E-Mail-Bstätigung:',
-'prefs-textboxsize' => 'Greßi vum Bearbeitigsfänschter',
 'youremail' => 'E-Mail-Adräss:',
 'username' => 'Benutzername:',
 'uid' => 'Benutzer-ID:',
@@ -1483,7 +1475,6 @@ Des cha nimmi ruckgängig gmacht wäre.',
 'recentchangeslinked-feed' => 'Verlinktes prüefe',
 'recentchangeslinked-toolbox' => 'Verlinktes prüefe',
 'recentchangeslinked-title' => 'Änderigen a Sytene, wo „$1“ druf verlinkt',
-'recentchangeslinked-noresult' => 'Kener Änderigen a verlinkte Sytenen im usgwählte Zytruum.',
 'recentchangeslinked-summary' => "Die Spezialsyte zeigt d Änderige vo allne Syte, wo ei vo dir bestimmti Syte druf verlinkt, bzw. vo allne Syte, wo zu eire vo dir bestimmte Kategorie ghöre.
 Sytene, wo zu dyre [[Special:Watchlist|Beobachtigslischte]] ghöre, erschyne '''fett'''.",
 'recentchangeslinked-page' => 'Syte:',
@@ -2106,7 +2097,6 @@ Wänn Du d Syte speter wider vu dr Lischt witt stryyche, deno druck eifach uf 
 'unwatchthispage' => 'Nimmi beobachte',
 'notanarticle' => 'Kei Syte',
 'notvisiblerev' => 'Version isch glescht wore',
-'watchnochange' => 'Vo den Artikle, wo du beobachtisch, isch im aazeigte Zytruum kene veränderet worde.',
 'watchlist-details' => '{{PLURAL:$1|1 Syte wird|$1 Sytene wärde}} beobachtet (Diskussionssyte nid zelt, aber ou beobachtet).',
 'wlheader-enotif' => 'Dr E-Mail-Benochrichtigungsdienscht isch aktiviert.',
 'wlheader-showupdated' => "Syte mit Anderige, wu no nit aagluegt sin, sin '''fett''' dargstellt.",
@@ -3520,7 +3510,6 @@ Du chasch au d [[Special:EditWatchlist|Standard-Bearbeitigssyte]] bruuche.',
 'version-other' => 'Anders',
 'version-mediahandlers' => 'Medie-Handler',
 'version-hooks' => "Schnittstelle ''(Hook)''",
-'version-extension-functions' => 'Funktionsufruef',
 'version-parser-extensiontags' => "Parser-Erwyterige ''(tags)''",
 'version-parser-function-hooks' => 'Parser-Funktione',
 'version-hook-name' => 'Schnittstellename',
index daefa62..ba5080d 100644 (file)
@@ -148,15 +148,17 @@ $digitTransformTable = array(
 
 $digitGroupingPattern = "##,##,###";
 
+$linkTrail = '/^((?:[a-z]|ક્|ખ્|ગ્|ઘ્|ચ્|છ્|જ્|ઝ્|ટ્|ઠ્|ડ્|ઢ્|ણ્|ત્|થ્|દ્|ધ્|ન્|પ્|ફ્|બ્|ભ્|મ્|ય્|ર્|લ્|વ્|સ્|શ્|ષ્|હ્|ળ્|ક્ષ્|જ્ઞ્|અ|આ|ઇ|ઈ|ઉ|ઊ|એ|ઐ|ઓ|ઔ|અં|અઃ|અઁ|ઍ|ઑ|ઋ|ઁ|઼|।|્|ા|િ|ી|ુ|ૂ|ે|ૈ|ો|ૌ|ં|ઃ|ઁ|ૅ|ૉ|ૃ)+)(.*)$/sDu';
+
 $messages = array(
 # User preference toggles
-'tog-underline' => 'કડીઓની નીચે લીટી (અંડરલાઇન) ઉમેરો:',
+'tog-underline' => 'કડીઓની નીચે લીટી (અંડરલાઇન):',
 'tog-justify' => 'ફકરો લાઇનસર કરો',
 'tog-hideminor' => 'હાલમાં થયેલા ફેરફારમાં નાના ફેરફારો છુપાવો',
 'tog-hidepatrolled' => 'હાલના સલામતી માટે કરવામાં આવેલાં થયેલા ફેરફારો છુપાવો.',
 'tog-newpageshidepatrolled' => 'નવાં પાનાંની યાદીમાંથી દેખરેખ હેઠળનાં પાનાં છુપાવો',
 'tog-extendwatchlist' => 'ધ્યાનસૂચિને વિસ્તૃત કરો જેથી,ફક્ત તાજેતરનાજ નહીં, બધા આનુષાંગિક ફેરફારો જોઇ શકાય',
-'tog-usenewrc' => 'તાàª\9cà«\87તરનાàª\82 àªµàª°à«\8dધિત àª«à«\87રફારà«\8b àªµàª¾àªªàª°à«\8b(જાવાસ્ક્રીપ્ટ જરૂરી)',
+'tog-usenewrc' => 'તાàª\9cા àª«à«\87રફારà«\8bમાàª\82 àª\85નà«\87 àª§à«\8dયાનસà«\82àª\9aિમાàª\82 àª«à«\87રફારà«\8bનà«\87 àªªàª¾àª¨àª¾àª\82 àª\85નà«\81સાર àª\9cà«\82થમાàª\82 àª\97à«\8bઠવà«\8b (જાવાસ્ક્રીપ્ટ જરૂરી)',
 'tog-numberheadings' => 'મથાળાંઓને આપો-આપ ક્રમ (ઑટો નંબર) આપો',
 'tog-showtoolbar' => 'ફેરફારો માટેનો ટૂલબાર બતાવો (જાવા સ્ક્રિપ્ટ)',
 'tog-editondblclick' => 'ડબલ ક્લિક દ્વારા ફેરફાર કરો (જાવાસ્ક્રિપ્ટ જરૂરી)',
@@ -164,20 +166,20 @@ $messages = array(
 'tog-editsectiononrightclick' => 'વિભાગના મથાળાં ને રાઇટ ક્લિક દ્વારા ફેરફાર કરવાની રીત અપનાવો. (જાવાસ્ક્રિપ્ટ જરૂરી)',
 'tog-showtoc' => 'અનુક્રમણિકા દર્શાવો (૩થી વધુ પેટા-મથાળા વાળા લેખો માટે)',
 'tog-rememberpassword' => 'આ કમ્પ્યૂટર પર મારી લોગ-ઇન વિગતો યાદ રાખો (મહત્તમ $1 {{PLURAL:$1|દિવસ|દિવસ}} માટે)',
-'tog-watchcreations' => 'મà«\87àª\82 àª\89મà«\87રà«\87લા àªªàª¾àª¨àª¾àª\82àª\93 àª\85નà«\87 àª\85પલà«\8bડ àª\95રà«\87લ àª«àª¾àª\87લà«\8dસ મારી ધ્યાનસૂચિમાં ઉમેરો',
+'tog-watchcreations' => 'મà«\87àª\82 àª¬àª¨àª¾àªµà«\87લાàª\82 àªªàª¾àª¨àª¾àª\82 àª\85નà«\87 àª\85પલà«\8bડ àª\95રà«\87લà«\80 àª«àª¾àª\87લà«\8b મારી ધ્યાનસૂચિમાં ઉમેરો',
 'tog-watchdefault' => 'હું ફેરફાર કરૂં તે પાનાં અને ફાઇલ્સ મારી ધ્યાનસૂચિમાં ઉમેરો',
 'tog-watchmoves' => 'હું ખસેડું તે પાનાં અને ફાઇલ્સ મારી ધ્યાનસૂચિમાં ઉમેરો',
 'tog-watchdeletion' => 'હું દૂર કરું તે પાનાં અને ફાઇલ્સ મારી ધ્યાનસૂચિમાં ઉમેરો',
 'tog-minordefault' => 'બધા નવા ફેરફારો નાના તરીકે માર્ક કરો.',
-'tog-previewontop' => 'àª\8fડà«\80àª\9f àª¬à«\8bàª\95à«\8dસ àªªàª¹à«\87લાàª\82 àªªà«\8dરિવà«\8dયà«\81 àª¬àª¤àª¾àªµà«\8b.',
-'tog-previewonfirst' => 'પà«\8dરથમ àª«à«\87રફાર àªµàª\96તà«\87 àªªà«\8dરિવà«\8dયà«\81 àª¬àª¤àª¾àªµà«\8b.',
-'tog-nocache' => 'બ્રાઉઝરનું પેજ કેશિંગ અક્રિય કરો',
+'tog-previewontop' => 'ફà«\87રફાર àªªà«\87àª\9fà«\80 àªªàª¹à«\87લાàª\82 àªªà«\82રà«\8dવાલà«\8bàª\95ન àª¦àª°à«\8dશાવà«\8b',
+'tog-previewonfirst' => 'પà«\8dરથમ àª«à«\87રફાર àªµàª\96તà«\87 àªªà«\82રà«\8dવાલà«\8bàª\95ન àª¬àª¤àª¾àªµà«\8b',
+'tog-nocache' => 'બà«\8dરાàª\89àª\9dરનà«\81àª\82 àªªà«\87àª\9c àª\95à«\87શિàª\82àª\97 àª\85સàª\95à«\8dરિય àª\95રà«\8b',
 'tog-enotifwatchlistpages' => 'મારી ધ્યાનસૂચિમાંનું પાનુ અને ફાઇલમાં ફેરફાર થાય ત્યારે મને ઇ-મેલ મોકલો',
 'tog-enotifusertalkpages' => 'મારી ચર્ચાનાં પાનામાં ફેરફાર થાય ત્યારે મને ઇ-મેલ મોકલો',
 'tog-enotifminoredits' => 'પાનાં અને ફાઇલ્સમાં નાનાં ફેરફાર થાય તો પણ મને ઇ-મેલ મોકલો',
 'tog-enotifrevealaddr' => 'નોટીફીકેશનના ઇમેલમાં મારૂ ઇમેલ એડ્રેસ બતાવો',
-'tog-shownumberswatching' => 'ધ્યાનમાં રાખતા સભ્યોની સંખ્યા બતાવો',
-'tog-oldsig' => 'હાલના હસ્તાક્ષર',
+'tog-shownumberswatching' => 'ધ્યાન રાખતા સભ્યોની સંખ્યા બતાવો',
+'tog-oldsig' => 'હાલના હસ્તાક્ષર:',
 'tog-fancysig' => 'હસ્તાક્ષરનો વિકિલખાણ તરીકે ઉપયોગ કરો (સ્વચાલિત કડી વગર)',
 'tog-showjumplinks' => "''આના પર જાવ'' કડીને સક્રીય કરો.",
 'tog-uselivepreview' => 'લાઇવ પ્રિવ્યુ જુઓ (જાવાસ્ક્રીપ્ટ જરૂરી) (પ્રાયોગીક)',
@@ -257,6 +259,18 @@ $messages = array(
 'oct' => 'ઓકટો',
 'nov' => 'નવે',
 'dec' => 'ડિસે',
+'january-date' => 'જાન્યુઆરી $1',
+'february-date' => 'ફેબ્રુઆરી $1',
+'march-date' => 'માર્ચ $1',
+'april-date' => 'એપ્રિલ $1',
+'may-date' => 'મે $1',
+'june-date' => 'જુન $1',
+'july-date' => 'જુલાઈ $1',
+'august-date' => 'ઓગસ્ટ $1',
+'september-date' => 'સપ્ટેમ્બર $1',
+'october-date' => 'ઓક્ટોબર $1',
+'november-date' => 'નવેમ્બર $1',
+'december-date' => 'ડિસેમ્બર $1',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|શ્રેણી|શ્રેણીઓ}}',
@@ -341,6 +355,7 @@ $messages = array(
 'create-this-page' => 'આ પાનું બનાવો.',
 'delete' => 'રદ કરો',
 'deletethispage' => 'આ પાનું હટાવો',
+'undeletethispage' => 'આ પાનું પુનર્જીવીત કરો',
 'undelete_short' => 'હટાવેલ {{PLURAL:$1|એક ફેરફાર|$1 ફેરફારો}} પરત લાવો.',
 'viewdeleted_short' => '{{PLURAL:$1|ભૂંસી નાખેલો એક|ભૂંસી નાખેલા $1}} ફેરફાર જુઓ',
 'protect' => 'સુરક્ષિત કરો',
@@ -396,7 +411,6 @@ $1',
 'disclaimers' => 'જાહેર ઇનકાર',
 'disclaimerpage' => 'Project:સામાન્ય જાહેર ઇનકાર',
 'edithelp' => 'ફેરફારો માટે મદદ',
-'edithelppage' => 'Help:ફેરફાર',
 'helppage' => 'Help:સૂચિ',
 'mainpage' => 'મુખપૃષ્ઠ',
 'mainpage-description' => 'મુખપૃષ્ઠ',
@@ -426,7 +440,6 @@ $1',
 'newmessagesdifflinkplural' => 'છેલ્લા {{PLURAL:$1|ફેરફાર|ફેરફારો}}',
 'youhavenewmessagesmulti' => '$1 ઉપર તમારા માટે નવો સંદેશ છે.',
 'editsection' => 'ફેરફાર કરો',
-'editsection-brackets' => '[$1]',
 'editold' => 'ફેરફાર કરો',
 'viewsourceold' => 'સ્રોત જુઓ',
 'editlink' => 'ફેરફાર',
@@ -548,6 +561,10 @@ $2',
 'namespaceprotected' => "તમને '''$1''' નામાવકાશનાં પાનાંમાં ફેરફાર કરવાની પરવાનગી નથી.",
 'customcssprotected' => 'તમને આ પાનું બદલવાની પરવાનગી નથી કારણકે આ પાનામાં બીજા સભ્યની પસંદગીના સેટીંગ્સ છે.',
 'customjsprotected' => 'તમને આ JavaScript પાનું બદલવાની પરવાનગી નથી કારણકે આ પાનામાં બીજા સભ્યની પસંદગીના સેટીંગ્સ છે.',
+'mycustomcssprotected' => 'તમને આ CSS ફાઇલમાં ફેરફાર કરવાની પરવાનગી નથી.',
+'mycustomjsprotected' => 'તમને આ જાવાસ્ક્રિપ્ટ ફાઇલમાં ફેરફાર કરવાની પરવાનગી નથી.',
+'myprivateinfoprotected' => 'તમને તમારી અંગત માહિતીમાં ફેરફાર કરવાની પરવાનગી નથી.',
+'mypreferencesprotected' => 'તમને તમારી પ્રાથમિકતાઓમાં ફેરફાર કરવાની પરવાનગી નથી.',
 'ns-specialprotected' => 'ખાસ પાનાંમાં ફેરફાર ન થઇ શકે.',
 'titleprotected' => 'આ મથાળું (વિષય) [[User:$1|$1]] બનાવવા માટે સુરક્ષિત કરવામાં આવ્યો છે.
 આ માટેનું કારણ છે-- "\'\'$2\'\'".',
@@ -572,6 +589,7 @@ $2',
 'yourname' => 'સભ્ય નામ:',
 'userlogin-yourname' => 'સભ્ય નામ',
 'userlogin-yourname-ph' => 'તમારૂં સભ્ય નામ દાખલ કરો',
+'createacct-another-username-ph' => 'તમારૂં સભ્યનામ દાખલ કરો',
 'yourpassword' => 'ગુપ્ત સંજ્ઞા:',
 'userlogin-yourpassword' => 'ગુપ્ત સંજ્ઞા',
 'userlogin-yourpassword-ph' => 'ગુપ્ત સંજ્ઞા લખો',
@@ -602,13 +620,14 @@ $2',
 'gotaccount' => "પહેલેથી ખાતું ખોલેલું છે? '''$1'''.",
 'gotaccountlink' => 'પ્રવેશ કરો',
 'userlogin-resetlink' => 'પોતાની પ્રવેશ માહિતી ભૂલી ગયા છો?',
-'userlogin-resetpassword-link' => 'તમારà«\8b àªªàª¾àª¸àªµàª°à«\8dડ બદલો',
+'userlogin-resetpassword-link' => 'તમારà«\80 àª\97à«\81પà«\8dતસàª\82àª\9cà«\8dàª\9eા બદલો',
 'helplogin-url' => 'Help:પ્રવેશ માટે',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|પ્વેશવા માટેની મદદ]]',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|પà«\8dરવà«\87શવા àª®àª¾àª\9fà«\87નà«\80 àª®àª¦àª¦]]',
 'createacct-join' => 'તમારી માહિતી નીચે દાખલ કરો.',
 'createacct-emailrequired' => 'ઇમેલ સરનામું',
 'createacct-emailoptional' => 'ઇમેલ સરનામું (વૈકલ્પિક)',
 'createacct-email-ph' => 'તમારું ઇમેલ સરનામું દાખલ કરો',
+'createacct-another-email-ph' => 'તમારું ઇમેલ સરનામું દાખલ કરો',
 'createaccountmail' => 'કામચલાઉ ગમે-તેમ પાસવર્ડ વાપરો અને તેને નીચે આપેલ ઇમેલ સરનામા પર મોકલો',
 'createacct-realname' => 'સાચું નામ (વૈકલ્પિક)',
 'createaccountreason' => 'કારણ:',
@@ -619,10 +638,10 @@ $2',
 'createacct-submit' => 'તમારું ખાતું બનાવો',
 'createacct-benefit-heading' => '{{SITENAME}} એ તમારા જેવા લોકો વડે બનાવેલ છે.',
 'createacct-benefit-body1' => '{{PLURAL:$1|ફેરફાર|ફેરફારો}}',
-'createacct-benefit-body2' => '{{PLURAL:$1|પાનું|પાનાં}}',
-'createacct-benefit-body3' => 'તાજેતરના {{PLURAL:$1|યોગદાનકર્તા|યોગદાનકર્તાઓ}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|પાનું|પાનાં}}',
+'createacct-benefit-body3' => 'તાજેતરના {{PLURAL:$1|યોગદાનકર્તા|યોગદાનકર્તાઓ}}',
 'badretype' => 'તમે દાખલ કરેલ ગુપ્તસંજ્ઞા મળતી આવતી નથી.',
-'userexists' => 'દાખલ કરેલું સભ્ય નુ નામ વપરાશમાં છે.</br>
+'userexists' => 'દાખલ કરેલું સભ્યનામ વપરાશમાં છે.</br>
 કૃપયા અન્ય નામ પસંદ કરો.',
 'loginerror' => 'પ્રવેશ ત્રુટિ',
 'createacct-error' => 'ખાતું બનાવવામાં ક્ષતિ આવી',
@@ -684,7 +703,7 @@ $2',
 'cannotchangeemail' => 'એકાઉન્ટ ઈ મેલ એડ્રસ આ વીકી પર નહિ બદલી શકાય.',
 'emaildisabled' => 'આ સાઇટ ઇ-મેલ્સ મોકલી શકતી નથી.',
 'accountcreated' => 'ખાતું ખોલવામાં આવ્યું છે',
-'accountcreatedtext' => '$1 માટે સભ્ય ખાતુ બનાવ્યું.',
+'accountcreatedtext' => '[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) માટે સભ્ય ખાતું બનાવવામાં આવ્યું છે.',
 'createaccount-title' => '{{SITENAME}} માટે ખાતુ બનાવ્યું',
 'createaccount-text' => 'કોઇકે {{SITENAME}} ($4) પર, નામ "$2", ગુપ્તસંજ્ઞા "$3", શાથે તમારા ઇ-મેઇલ એડ્રેસ માટે ખાતુ બનાવેલ છે.
 
@@ -724,11 +743,10 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'પાસવર્ડ રીસેટ કરો',
-'passwordreset-text' => 'તમારો પાસવર્ડ બદલવા માટે આ ફોર્મ પૂરુ કરો.',
+'passwordreset-text-one' => 'તમારો પાસવર્ડ બદલવા માટે આ ફોર્મ પૂરુ કરો.',
 'passwordreset-legend' => 'પાસવર્ડ રીસેટ કરો',
 'passwordreset-disabled' => 'આ વિકી પર પાસવર્ડ રીસેટ કરવા પર પ્રતિબંધ છે.',
 'passwordreset-emaildisabled' => 'આ વિકિ પર ઇમેઇલ સગવડ બંધ છે.',
-'passwordreset-pretext' => '{{PLURAL: $1| | એક નીચે માહિતીના ટુકડાઓ દાખલ}}',
 'passwordreset-username' => 'સભ્ય નામ:',
 'passwordreset-domain' => 'ડોમેઈન:',
 'passwordreset-capture' => 'પરિણામી ઈ મેલ જોવો છે ?',
@@ -948,7 +966,7 @@ $2
 'nocreate-loggedin' => 'તમને નવાં પાનાં બનાવવાની પરવાનગી નથી.',
 'sectioneditnotsupported-title' => 'ખંડીય સંપાદન શક્ય નથી',
 'sectioneditnotsupported-text' => 'આ પાના પર ખંડીય સંપાદન શક્ય નથી',
-'permissionserrors' => 'પરવાનગીની ખામી',
+'permissionserrors' => 'પરવાનગી ક્ષતિ',
 'permissionserrorstext' => 'તમને નીચેનાં {{PLURAL:$1|કારણ|કારણો}} સર  આ કાર્ય કરવાની પરવાનગીનથી.',
 'permissionserrorstext-withaction' => '$2 પરવાનગી તમને નીચેનાં {{PLURAL:$1|કારણ|કારણો}} સર નથી:',
 'recreate-moveddeleted-warn' => "'''ચેતવણી: તમે જે પાનું નવું બનાવવા જઇ રહ્યાં છો તે પહેલાં દૂર કરવામાં આવ્યું છે.'''
@@ -964,6 +982,7 @@ $2
 લાગે છે કોઇએ આ પાનું હટાવી દીધું છે',
 'edit-conflict' => 'સંપાદન સંઘર્ષ.',
 'edit-no-change' => 'તમારા ફેરફારો અવગણાયા, કેમકે અક્ષરકાયામાં કોઈ ફેરફારાના હતો',
+'postedit-confirmation' => 'તમે કરેલો ફેરફાર સચવાઈ ગયો છે.',
 'edit-already-exists' => 'નવું પાનું બનાવી ન શકાયું
 તે પહેલેથી હાજર છે.',
 'defaultmessagetext' => 'મૂળભૂત સંદેશ લખાણ',
@@ -1025,8 +1044,8 @@ $3 દ્વારા અપાયેલ કારણ છે ''$2''",
 સમજૂતી:'''({{int:cur}})''' = વર્તમાન અને સુધારેલી આવૃતિનો તફાવત, '''({{int:last}})''' = પૂર્વવર્તી ફેરફારનો તફાવત, '''{{int:minoreditletter}}''' = નાનો ફેરફાર.",
 'history-fieldset-title' => 'ઇતિહાસ ઉખેળો',
 'history-show-deleted' => 'માત્ર હટાવાયેલા',
-'histfirst' => 'સà«\8cથà«\80 જુનું',
-'histlast' => 'સà«\8cથà«\80 નવું',
+'histfirst' => 'àª\9cà«\81નામાàª\82 જુનું',
+'histlast' => 'નવામાàª\82 નવું',
 'historysize' => '({{PLURAL:$1|1 byte|$1 bytes}})',
 'historyempty' => '(ખાલી)',
 
@@ -1180,6 +1199,7 @@ $1",
 'compareselectedversions' => 'પસંદ કરેલા સરખાવો',
 'showhideselectedversions' => 'પસંદ કરેલા બતાવો / સંતાડો',
 'editundo' => 'રદ કરો',
+'diff-empty' => '(કોઇ ભેદ નહી)',
 'diff-multi' => '{{PLURAL:$2|એક સભ્યએ કરેલું|$2 સભ્યોએ કરેલા}} ({{PLURAL:$1|વચગાળાનું એક પુનરાવર્તન દર્શાવ્યં|વચગાળાનાં $1 પુનરાવર્તનો દર્શાવ્યાં}} નથી.)',
 'diff-multi-manyusers' => '{{PLURAL:$2|એક સભ્યએ કરેલું|$2 સભ્યોએ કરેલા}} ({{PLURAL:$1|વચગાળાનું એક પુનરાવર્તન દર્શાવ્યં|વચગાળાનાં $1 પુનરાવર્તનો દર્શાવ્યાં}} નથી.)',
 
@@ -1203,7 +1223,6 @@ $1",
 'searchmenu-legend' => 'શોધ વિકલ્પો',
 'searchmenu-exists' => "''' આ વિકિ પર  \"[[:\$1]]\" નામે પાનું પહેલેથી અસ્તિત્વમાં છે.'''",
 'searchmenu-new' => "'''આ વિકિ પર \"[[:\$1]]\" નામે પાનું બનાવો!'''",
-'searchhelp-url' => 'Help:સૂચિ',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|આ પૂર્વાક્ષર વાળા પાનાં જુઓ]]',
 'searchprofile-articles' => 'લેખનું પાનું',
 'searchprofile-project' => 'મદદ અને યોજના પાનું',
@@ -1281,7 +1300,6 @@ $1",
 'resetprefs' => 'બીન સાચવેલ ફેરફારો સાફ કરો',
 'restoreprefs' => 'મૂળ વિકલ્પો ફરી ગોઠવો',
 'prefs-editing' => 'ફેરફાર જારી છે',
-'prefs-edit-boxsize' => 'ફેરફાર ફલકનું માપ',
 'rows' => 'પંક્તિઓ',
 'columns' => 'સ્તંભ',
 'searchresultshead' => 'શોધો',
@@ -1292,9 +1310,6 @@ $1",
 'recentchangesdays-max' => 'મહત્તમ  $1 {{PLURAL:$1|દિવસ|દિવસો}}',
 'recentchangescount' => 'સમાન્ય પણે ફલકમાં બતાવવાના ફેરફારોની સંખ્યા',
 'prefs-help-recentchangescount' => 'આમાં તાજા ફેરફારો,  ઇતિહાસ અને લોગ શામિલ છે.',
-'prefs-help-watchlist-token' => 'ગુપ્ત સંજ્ઞા આ ખાનામાં ભરતા તમારી ધ્યાનસૂચિ માટે RSS માહિતીનું નિર્માણ થશે.
-જેની પાસે તમારી આ ગુપ્ત સંજ્ઞા હશે ત તમારી ધ્યાનસૂચિ વપરે શકશે. આથી સુરક્ષિત એવો શબ્દ પસંદ કરશો.
-તમે વાપરી શકો તેવી અસંગત રચાયેલી રીતે સંજ્ઞા અહીં અપેલ છે : $1',
 'savedprefs' => 'તમારી પસંદગી સચવાઈ ગઈ છે.',
 'timezonelegend' => 'સમય ક્ષેત્ર:',
 'localtime' => 'સ્થાનીક સમય:',
@@ -1325,9 +1340,8 @@ $1",
 'prefs-reset-intro' => 'તમી આ પાનાનો ઉપયોગ કરીને તમારા વિકલ્પો ની ગોઠવણી મૂળના વિકલ્પો સમાન ગોઠવી શકો છો.
 આને ઉલટાવી ન શકાય.',
 'prefs-emailconfirm-label' => 'ઇ-મેલ પુષ્ટી',
-'prefs-textboxsize' => 'ફેરફાર ફલકનું માપ',
 'youremail' => 'ઇ-મેઇલ:',
-'username' => '{{GENDER:$1|સભ્ય નામ}}:',
+'username' => '{{GENDER:$1|સભ્યનામ}}:',
 'uid' => '{{GENDER:$1|સભ્ય}} ઓળખ:',
 'prefs-memberingroups' => '{{PLURAL:$1|સમુહ|સમુહો}}ના {{GENDER:$2|સભ્ય}}:',
 'prefs-registration' => 'નોંધણી સમય',
@@ -1358,7 +1372,9 @@ HTML નાકું ચકાસો',
 'prefs-signature' => 'હસ્તાક્ષર',
 'prefs-dateformat' => 'તારીખ લખવાની શૈલિ',
 'prefs-timeoffset' => 'સમય ખંડ',
-'prefs-advancedediting' => 'અદ્યતન વિકલ્પો',
+'prefs-advancedediting' => 'સામાન્ય',
+'prefs-editor' => 'સંપાદક',
+'prefs-preview' => 'પૂર્વાવલોકન',
 'prefs-advancedrc' => 'અદ્યતન વિકલ્પો',
 'prefs-advancedrendering' => 'અદ્યતન વિકલ્પો',
 'prefs-advancedsearchoptions' => 'અદ્યતન વિકલ્પો',
@@ -1436,7 +1452,7 @@ HTML નાકું ચકાસો',
 'right-reupload-shared' => 'સર્વસામાન્ય સ્થાનીયા દ્રશ્યશ્રાવ્ય ફાઈલ સંચને અવગણી આગળ વધો.',
 'right-upload_by_url' => 'URL પરથી ફાઇલ ચઢાવો',
 'right-purge' => 'પુષ્ટિકરણ ન થયેલ પાનાની સાઇટ સંબંધી માહિતી મીટાવો.',
-'right-autoconfirmed' => 'અર્ધ સંરક્ષિત પાના સંપાદિત કરો',
+'right-autoconfirmed' => 'IP-આધારિત મર્યાદા દરથી અસર પામેલ નથી.',
 'right-bot' => 'આને સ્વયં ચાલિત પ્રિયા ગણો',
 'right-nominornewtalk' => 'ચર્ચાના પાનામાં લઘુ ફેરફારો તરીકે કરેલ ફેરફારની સૂચના ન મોકલાશે.',
 'right-apihighlimits' => 'API ક્વેરીઝની ચઢિયાતી સીમા વાપરો',
@@ -1457,7 +1473,7 @@ HTML નાકું ચકાસો',
 'right-proxyunbannable' => 'અવેજીના અવયંચાલિત ખંડોને ટાળો',
 'right-unblockself' => 'તેમને જાતે અપ્રતિબંધિત થવા દો',
 'right-protect' => 'સંરક્ષણ સ્તર બદલો અને સંરક્ષિત પાનાઓમાં ફેરફાર કરો.',
-'right-editprotected' => 'સàª\82રàª\95à«\8dષિત àªªàª¾àª¨àª¾àª®àª¾àª\82 àª«à«\87રફાર àª\95રà«\8b (પàª\97થિયામય àª¸à«\81રàª\95à«\8dષા àªµàª\97ર)',
+'right-editprotected' => 'પાનામાàª\82 "{{int:protect-level-sysop}}" àª¤àª°à«\80àª\95à«\87 àª«à«\87રફાર àª\95રà«\8b',
 'right-editinterface' => 'સભ્ય સંભાષણ પટલમાં ફેરફાર કરો',
 'right-editusercssjs' => 'અન્ય સભ્યોની CSS અને JavaScript ફાઇલમાં ફેરફાર કરો',
 'right-editusercss' => 'અન્ય સભ્યોની CSS ફાઇલમાં ફેરફાર કરો',
@@ -1523,6 +1539,8 @@ HTML નાકું ચકાસો',
 'action-userrights-interwiki' => 'અન્ય વિકિ પરના સભ્યોના હક્કો સંપાદિત કરો.',
 'action-siteadmin' => 'માહિતી સંચયને ઉઘાડો અને વાસો.',
 'action-sendemail' => 'ઈ-મેલ મોકલો',
+'action-viewmyprivateinfo' => 'તમારી અંગત માહિતી જુઓ',
+'action-editmyprivateinfo' => 'તમારી અંગત માહિતીમાં ફેરફાર કરો',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|ફેરફાર|ફેરફારો}}',
@@ -1564,7 +1582,6 @@ HTML નાકું ચકાસો',
 'recentchangeslinked-feed' => 'આની સાથે જોડાયેલા ફેરફાર',
 'recentchangeslinked-toolbox' => 'આની સાથે જોડાયેલા ફેરફાર',
 'recentchangeslinked-title' => '"$1" ને લગતા ફેરફારો',
-'recentchangeslinked-noresult' => 'સંકળાયેલાં પાનાંમાં સુચવેલા સમય દરમ્યાન કોઇ ફેરફાર થયાં નથી.',
 'recentchangeslinked-summary' => "આ એવા ફેરફારોની યાદી છે જે આ ચોક્કસ પાના (કે શ્રેણીનાં સભ્ય પાનાઓ) સાથે જોડાયેલા પાનાઓમાં તાજેતરમાં કરવામાં આવ્યા હોય.
 <br />[[Special:Watchlist|તમારી ધ્યાનસૂચિમાં]] હોય તેવા પાનાં '''ઘાટા અક્ષર'''માં વર્ણવ્યાં છે",
 'recentchangeslinked-page' => 'પાનાનું નામ:',
@@ -1576,7 +1593,7 @@ HTML નાકું ચકાસો',
 'reuploaddesc' => 'ફાઇલ ચઢાવવાનું રદ કરો અને ફાઇલ ચઢાવવાના પાના પર પાછા જાવ',
 'upload-tryagain' => 'સુધારીત ફાઇલ વર્ણન ચડાવો',
 'uploadnologin' => 'પ્રવેશ કરેલ નથી',
-'uploadnologintext' => 'ફાàª\87લ àª\9aઢાવવા àª®àª¾àª\9fà«\87  [[Special:UserLogin|logged in]] àªªà«\8dરવà«\87શ àª\95રà«\87લà«\8b àª¹à«\8bવà«\8b àª\9cà«\8bàª\87àª\8f',
+'uploadnologintext' => 'તમારà«\87 àª«àª¾àª\87લà«\8dસ àª\9aડાવવા àª®àª¾àª\9fà«\87 $1 àª¹à«\8bવà«\81àª\82 àª\9c àª\9cà«\8bàª\87àª\8f.',
 'upload_directory_missing' => 'ફાઇલ ચડાવવાની ડાયરેક્ટરી ($1) ગાયબ છે  અને વેબસર્વર દ્વારા તેની રચના ન કરી શકાઇ.',
 'upload_directory_read_only' => 'ચઢાવેલી ડાયરેક્ટરી ($1) એ વેબ બ્રાઉઝર દ્વારા લેખન યોગ્ય નથી.',
 'uploaderror' => 'ફાઇલ ચઢાવમાં ચૂક',
@@ -2023,7 +2040,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization. જુઓ',
 'usereditcount' => '$1 {{PLURAL:$1|ફેરફાર|ફેરફારો}}',
 'usercreated' => '$1 તારીખે $2 વાગ્યે {{GENDER:$3|બનાવ્યું}}',
 'newpages' => 'નવાં પાનાં',
-'newpages-username' => 'સભ્ય નામ:',
+'newpages-username' => 'સભ્યનામ:',
 'ancientpages' => 'સૌથી જૂનાં પાનાં',
 'move' => 'નામ બદલો',
 'movethispage' => 'આ પાનું ખસેડો',
@@ -2195,10 +2212,9 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization. જુઓ',
 'unwatchthispage' => 'નીરીક્ષણ બંધ કરો',
 'notanarticle' => 'માહિતી વિનાનું પાનું',
 'notvisiblerev' => 'અન્ય સભ્ય દ્વારા થયેલું સંપાદન ભૂંસી નખાયું છે.',
-'watchnochange' => 'તમારા દ્વારા નિરીક્ષિત પાના આપેલ સમય ગાળામાં ફેરફારીત થયા',
 'watchlist-details' => 'ચર્ચાનાં પાનાં ન ગણતા {{PLURAL:$1|$1 પાનું|$1 પાનાં}} ધ્યાનસૂચીમાં છે.',
-'wlheader-enotif' => '*ઈ-મેલ સૂચના પદ્ધતિ સક્રીય કરાઈ.',
-'wlheader-showupdated' => "*તમારી મુલાકાત લીધા પછી બદલાયેલા પાના  '''ઘાટા''' અક્ષરો વડે દર્શાવ્યાં છે",
+'wlheader-enotif' => 'મેલ સૂચના પદ્ધતિ સક્રીય કરાઈ.',
+'wlheader-showupdated' => "તમારી છેલ્લી મુલાકાત પછી બદલાયેલાં પાના  '''ઘાટા''' અક્ષરો વડે દર્શાવ્યાં છે.",
 'watchmethod-recent' => 'હાલમાં ફેરફાર થયેલ પાનાની ચકાસણી જારી',
 'watchmethod-list' => 'હાલમાં થયેલ ફેરફાર માટે નીરીક્ષીત પાના તપાસાય છે',
 'watchlistcontains' => 'તમારી ધ્યાનસૂચીમાં $1 {{PLURAL:$1|પાનું|પાનાં}} છે.',
@@ -2309,7 +2325,7 @@ Deleting it may disrupt database operations of {{SITENAME}};',
 આ પાના પર ના છેલ્લા ફેરફારો [[User:$3|$3]] ([[User talk:$3|talk]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]) દ્વારા કરવામાં આવ્યાં હતાં.',
 'editcomment' => "ફેરફાર સારાંશ હતી: \"''\$1''\".",
 'revertpage' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|talk]])દ્વારા ફેરફરોને  [[User:$1|$1]] દ્વારા કરેલા છેલ્લા સુધારા સુધી ઉલટાવાયા.',
-'revertpage-nouser' => ' (સભ્ય નામ હટાવ્યું) દ્વારા થયેલ ફેરફારને  [[User:$1|$1]]ના દ્વારા થયેલ છેલ્લા પુનરાવર્તન પર પાછા લઇ જવાયા',
+'revertpage-nouser' => 'ગુપ્ત સભ્ય વડે કરાયેલ ફેરફારને [[User:$1|$1]] વડે કરેલ છેલ્લા પુનરાવર્તન પર પાછા લઇ જવાયું.',
 'rollback-success' => '$1 દ્વારા થયેલા ફેરફારો ઉલટાવાયા
 તેને $2 દ્વારા થયેલ સંપાદન સુધી લઇ જવાયું',
 
@@ -2455,7 +2471,7 @@ $1',
 'mycontris' => 'યોગદાન',
 'contribsub2' => '$1 માટે ($2)',
 'nocontribs' => 'આ પરિમાણને મળતી પરિણામ નથી મળ્યાં',
-'uctop' => '(àª\9bà«\87àª\95 àª\89પર)',
+'uctop' => '(વરà«\8dતમાન)',
 'month' => ':મહિનાથી (અને પહેલાનાં)',
 'year' => ':વર્ષથી (અને પહેલાનાં)',
 
@@ -3671,7 +3687,6 @@ $5
 'version-other' => 'અન્ય',
 'version-mediahandlers' => 'દ્રશ્યશ્રાવ્ય માધ્યમના ધારક',
 'version-hooks' => 'ખૂંટા',
-'version-extension-functions' => 'વિસ્તારક કાર્ય',
 'version-parser-extensiontags' => 'પૃથક્કરણ વિસ્તારક ટૅગ્સ',
 'version-parser-function-hooks' => 'પદચ્છેદ કાર્ય ખૂંટા',
 'version-hook-name' => 'ખૂંટાનું નામ્',
@@ -3800,14 +3815,14 @@ $5
 'logentry-delete-delete' => '$1 દ્વારા પાનું $3 {{GENDER:$2|દૂર કરવામાં આવ્યું}}',
 'logentry-delete-restore' => '$1 {{GENDER:$2|પુનઃસંગ્રહ}} પાનું $3',
 'logentry-delete-event' => '$1 એ {{PLURAL:$5|લૉગ ઘટના|$5 લૉગ ઘટનાઓ}} ની દ્રશ્યતા $3 પર {{GENDER:$2|બદલેલ}} છે: $4',
-'logentry-delete-revision' => '$1 બદલાઈ ના દૃશ્યતા {{PLURAL: $5 | સુધારણા | $5 આવૃત્તિઓ}} $3 પાનાં પર: $4',
-'logentry-delete-event-legacy' => '$1 બદલાઈ $3 પર લોગ ઘટનાઓ દૃશ્યતા',
-'logentry-delete-revision-legacy' => '$1 બદલાઈ પાનાં પર આવૃત્તિઓની દૃશ્યતા $3',
+'logentry-delete-revision' => '$1 {{GENDER:$2|બદલેલ}} બદલાઈ ના દૃશ્યતા {{PLURAL: $5 | સુધારણા | $5 આવૃત્તિઓ}} $3 પાનાં પર: $4',
+'logentry-delete-event-legacy' => '$1 {{GENDER:$2|બદલેલ}} બદલાઈ $3 પર લોગ ઘટનાઓ દૃશ્યતા',
+'logentry-delete-revision-legacy' => '$1 {{GENDER:$2|બદલેલ}} બદલાઈ પાનાં પર આવૃત્તિઓની દૃશ્યતા $3',
 'logentry-suppress-delete' => '$1 એ $3 પાનું {{GENDER:$2|દબાવ્યું}}',
-'logentry-suppress-event' => '$1  (છાની માહિતી) બદલાઈ {{PLURAL: $5 | લોગ ઘટના | $5 લોગ}} ની દ્રશ્યતા $3 : $4',
-'logentry-suppress-revision' => '$1 બદલાઈ ના દૃશ્યતા {{PLURAL: $5 | આવૃત્તિ એ | $5 આવૃત્તિઓ}}: $4 $3 પાનાં પર',
-'logentry-suppress-event-legacy' => '$1 ગુપ્ત બદલો $3 પર લોગ ઘટનાઓ દૃશ્યતા',
-'logentry-suppress-revision-legacy' => '$1 ગુપ્ત બદલાઈ પાનાં પર આવૃત્તિઓની દૃશ્યતા $3',
+'logentry-suppress-event' => '$1  (છાની માહિતી) {{GENDER:$2|બદલેલ}} બદલાઈ {{PLURAL: $5 | લોગ ઘટના | $5 લોગ}} ની દ્રશ્યતા $3 : $4',
+'logentry-suppress-revision' => '$1 àª\9bાનà«\80 àª®àª¾àª¹àª¿àª¤à«\80 {{GENDER:$2|બદલà«\87લ}} àª¬àª¦àª²àª¾àª\88 àª¨àª¾ àª¦à«\83શà«\8dયતા {{PLURAL: $5 | àª\86વà«\83તà«\8dતિ àª\8f | $5 àª\86વà«\83તà«\8dતિàª\93}}: $4 $3 àªªàª¾àª¨àª¾àª\82 àªªàª°',
+'logentry-suppress-event-legacy' => '$1 ગુપ્ત {{GENDER:$2|બદલેલ}} બદલો $3 પર લોગ ઘટનાઓ દૃશ્યતા',
+'logentry-suppress-revision-legacy' => '$1 ગુપ્ત {{GENDER:$2|બદલેલ}} બદલાઈ પાનાં પર આવૃત્તિઓની દૃશ્યતા $3',
 'revdelete-content-hid' => 'સામગ્રી છુપાયેલા',
 'revdelete-summary-hid' => 'ફેરફાર સાર છુપાયેલા',
 'revdelete-uname-hid' => 'વપરાશકર્તા નામ છુપાયેલા',
@@ -3816,7 +3831,7 @@ $5
 'revdelete-uname-unhid' => 'વપરાશકર્તા નામ છુપાવેલ નથીં',
 'revdelete-restricted' => 'પ્રબઁધકોના ફેરફાર કરવા પર પ્રતિબંધ મુકાયો',
 'revdelete-unrestricted' => 'પ્રબંધકોના ફેરફાર કરવા પર પ્રતિબંધ હટાવાયો.',
-'logentry-move-move' => '$1એ પાના $3ને $4 પર ખસેડ્યું',
+'logentry-move-move' => '$1એ {{GENDER:$2|ખસેડાયું }} પાના $3ને $4 પર ખસેડ્યું',
 'logentry-move-move-noredirect' => '$1એ દિશાનિર્દેશન છોડ્યા વગર પાના $3ને $4 પર વાળ્યું',
 'logentry-move-move_redir' => '$1એ દિશાનિર્દેશન કરીને પાના $3ને $4 પર ખસેડ્યું',
 'logentry-move-move_redir-noredirect' => '$1એ દિશાનિર્દેશન કરીને પાના $3ને $4 પર વાળ્યું પણ પાછળ દિશાનિર્દેશન છોડ્યું નહી',
index bc75fe0..15a1474 100644 (file)
@@ -87,16 +87,16 @@ $messages = array(
 'thursday' => 'Jerdein',
 'friday' => 'Jeheiney',
 'saturday' => 'Jesarn',
-'sun' => 'Doon',
-'mon' => 'Lune',
-'tue' => 'Mayrt',
-'wed' => 'Crean',
-'thu' => 'Dein',
-'fri' => 'Hein',
-'sat' => 'Sarn',
+'sun' => 'Jedoonee',
+'mon' => 'Jelune',
+'tue' => 'Jemayrt',
+'wed' => 'Jecrean',
+'thu' => 'Jerdein',
+'fri' => 'Jeheiney',
+'sat' => 'Jesarn',
 'january' => 'Jerrey Geuree',
 'february' => 'Toshiaght Arree',
-'march' => 'Mart',
+'march' => 'Mayrnt',
 'april' => 'Averil',
 'may_long' => 'Boaldyn',
 'june' => 'Mean Souree',
@@ -108,7 +108,7 @@ $messages = array(
 'december' => 'Mee ny Nollick',
 'january-gen' => 'Jerrey Geuree',
 'february-gen' => 'Toshiaght Arree',
-'march-gen' => 'Mart',
+'march-gen' => 'Mayrnt',
 'april-gen' => 'Averil',
 'may-gen' => 'Boaldyn',
 'june-gen' => 'Mean Souree',
@@ -120,7 +120,7 @@ $messages = array(
 'december-gen' => 'Mee ny Nollick',
 'jan' => 'JGeu',
 'feb' => 'TArr',
-'mar' => 'Mart',
+'mar' => 'Mayrnt',
 'apr' => 'Ave',
 'may' => 'Boal',
 'jun' => 'MSou',
@@ -139,9 +139,9 @@ $messages = array(
 'category-empty' => "''Cha nel duillagyn ny meanyn 'sy ronney shoh ec y traa t'ayn.''",
 'hidden-categories' => '{{PLURAL:$1|Ronney follit|Ronnaghyn follit}}',
 'hidden-category-category' => 'Ronnaghyn follit',
-'category-subcat-count' => "{{PLURAL:$2|Ta{{PLURAL:$1|&nbsp;ny $1 fo-ronney|'n $1 'o-ronney|'n $1 'o-ronney|&nbsp;ny $1 fo-ronnaghyn}} shoh ec y ronney shoh, jeh'n lane-sym $2.}}",
+'category-subcat-count' => "{{PLURAL:$2|Ta {{PLURAL:$1|ny $1 fo-ronney|yn $1 'o-ronney|yn $1 'o-ronney|ny $1 fo-ronnaghyn}} shoh ec y ronney shoh, jeh'n lane-sym $2.}}",
 'category-subcat-count-limited' => "{{PLURAL:$1|Ta{{PLURAL:$1|&nbsp;ny $1 fo-ronney|'n $1 'o-ronney|'n $1 'o-ronney|&nbsp;ny $1 fo-ronnaghyn}} shoh ec y ronney shoh.}}",
-'category-article-count' => "Ta{{PLURAL:$1|'n $1 duillag|'n $1 duillag|'n $1 ghuillag| ny $1 duillagyn}} heese 'sy ronney shoh, jeh'n lame-sym $2.",
+'category-article-count' => "Ta {{PLURAL:$1|yn $1 duillag|yn $1 duillag|yn $1 ghuillag| ny $1 duillagyn}} heese 'sy ronney shoh, jeh'n lane-sym $2.",
 'category-article-count-limited' => "Ta{{PLURAL:$1|'n $1 duillag|'n $1 duillag|'n $1 ghuillag|&nbsp;ny $1 duillagyn}} heese 'sy ronney shoh.",
 'category-file-count-limited' => "Ta{{PLURAL:$1|'n $1 coadan|'n $1 choadan|'n $1 choadan|&nbsp;ny $1 coadanyn}} heese 'sy ronney shoh.",
 'listingcontinuesabbrev' => 'tooil.',
@@ -171,7 +171,7 @@ $messages = array(
 'faqpage' => 'Project:FC',
 
 # Vector skin
-'vector-action-addsection' => 'Cooish noa',
+'vector-action-addsection' => 'Cur cooish noa rish',
 'vector-action-delete' => 'Scryss',
 'vector-action-move' => 'Scugh',
 'vector-action-protect' => 'Coadee',
@@ -182,7 +182,7 @@ $messages = array(
 'vector-view-history' => 'Jeeagh er shennaghys',
 'vector-view-view' => 'Lhaih',
 'vector-view-viewsource' => 'Jeeagh er bun',
-'actions' => 'Obbraghyn',
+'actions' => 'Jantyssyn',
 'namespaces' => 'Reamyssyn',
 'variants' => 'Cummaghyn elley',
 
@@ -194,10 +194,10 @@ $messages = array(
 'searchbutton' => 'Ronsee',
 'go' => 'Gow',
 'searcharticle' => 'Gow',
-'history' => 'Shennaghys ny duillag',
+'history' => 'Shennaghys y duillag',
 'history_short' => 'Shennaghys',
 'printableversion' => 'Lhieggan clou',
-'permalink' => 'Kiangley yiarn',
+'permalink' => 'Kiangley beayn',
 'print' => 'Clou',
 'view' => 'Lhaih',
 'edit' => 'Reagh',
@@ -209,7 +209,7 @@ $messages = array(
 'undelete_short' => 'Jee-scryss {{PLURAL:$1|$1 caghlaa|$1 chaghlaa|$1 chaghlaa|$1 caghlaaghyn}}',
 'viewdeleted_short' => 'Jeeagh er {{PLURAL:$1|$1 caghlaa scryssit magh|$1 chaghlaa scryssit magh|$1 chaghlaa scryssit magh|$1 caghlaaghyn scryssit magh}}',
 'protect' => 'Coadee',
-'protect_change' => 'caghlaa',
+'protect_change' => 'ceaghil',
 'protectthispage' => 'Coadee yn duillag shoh',
 'unprotect' => 'Jee-choadee',
 'unprotectthispage' => 'Jee-choadee yn duillag shoh',
@@ -251,7 +251,6 @@ $messages = array(
 'disclaimers' => 'Jiooldeyderyn',
 'disclaimerpage' => 'Project:Obbalys cadjin',
 'edithelp' => 'Cooney reaghee',
-'edithelppage' => 'Help:Reaghey',
 'helppage' => 'Help:Cummal',
 'mainpage' => 'Ard-ghuillag',
 'mainpage-description' => 'Ard-ghuillag',
@@ -288,15 +287,15 @@ $messages = array(
 'site-atom-feed' => 'Scoltey Atom $1',
 'page-rss-feed' => 'Scoltey RSS "$1"',
 'page-atom-feed' => 'Atom Feed "$1"',
-'red-link-title' => '$1 (cha nel y duillag shoh ayn)',
+'red-link-title' => '$1 (cha nel y duillag ayn)',
 'sort-descending' => 'Sorçhee veih smoo',
 'sort-ascending' => 'Sorçhee veih sloo',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'Duillag',
-'nstab-user' => 'Duillag yn ymmydeyr',
+'nstab-user' => 'Duillag ymmydeyr',
 'nstab-special' => 'Er lheh',
-'nstab-project' => 'Duillag shalee',
+'nstab-project' => 'Duillag halee',
 'nstab-image' => 'Coadan',
 'nstab-mediawiki' => 'Çhaghteraght',
 'nstab-template' => 'Clowan',
@@ -313,10 +312,10 @@ $messages = array(
 'readonly' => 'Stoyr-fysseree fo ghlass',
 'missing-article' => 'Cha row teks duillag, lhisagh ve er ngeddyn lesh yn ennym "$1" $2, feddynit ec y stoyr-fysseree.
 
-Dy cadjin, shen eiyrtys criggal er kiangley caghlaaee ny shennaghys ta ass date as kianglt rish dys duillag t\'er ny scryssey.
+Dy cadjin, shen eiyrtys criggal er kiangley caghlaaee ny shennaghys ta ass daayt as kianglt rish dys duillag va scryssit magh roish shoh.
 
-Mannagh vel, foddee dy vel doghan \'sy chooid vog feddynit magh ayd.<br />
-Cur coontey jeh da [[Special:ListUsers/sysop|reireyder]], as goaill stiagh yn URL my saillt.',
+Mannagh vel, foddee dy vel doghan \'sy chooid vog feddynit magh eu.<br />
+Cur-shiu coontey jeh da [[Special:ListUsers/sysop|reireyder]], as goaill stiagh yn URL my sailliu.',
 'missingarticle-rev' => '(caghlaa#: $1)',
 'missingarticle-diff' => '(Caghlaa: $1, $2)',
 'internalerror' => 'Marranys ynveanagh',
@@ -326,7 +325,7 @@ Cur coontey jeh da [[Special:ListUsers/sysop|reireyder]], as goaill stiagh yn UR
 'badarticleerror' => 'Cha nod oo jannoo yn obbyr shen er y duillag shoh.',
 'cannotdelete-title' => 'Gyn jargaght y duillag "$1" y scryssey',
 'badtitle' => 'Drogh-ennym',
-'badtitletext' => "Va marranys ayn bentyn rish ennym ny duillag v'ou shirrey. Foddee dy row eh follym ny gyn vree, ny kianglt dy moal myr kiangley eddyr-wiki. Foddee dy vel cowraghyn 'syn ennym nagh nod oo jannoo ymmyd jeu ayns enmyn.",
+'badtitletext' => "Va marranys ayn bentyn rish ennym y duillag v'ou shirrey. Foddee dy row eh follym ny gyn vree, ny kianglt dy moal myr kiangley eddyr-wiki. Foddee dy vel cowraghyn 'syn ennym nagh nod oo jannoo ymmyd jej ayns enmyn.",
 'viewsource' => 'Jeeagh er bun',
 'viewsource-title' => 'Jeeagh er bun $1',
 'actionthrottled' => 'Obbyr er ny phlooghey',
@@ -345,7 +344,7 @@ Cur coontey jeh da [[Special:ListUsers/sysop|reireyder]], as goaill stiagh yn UR
 # Login and logout pages
 'yourname' => "Dt'ennym ymmydeyr:",
 'yourpassword' => 'Fockle yn arrey:',
-'yourpasswordagain' => "Aascreeu d'ockle arrey:",
+'yourpasswordagain' => "Aascreeu dt'ockle arrey:",
 'remembermypassword' => "Cooinnee m'ockle arrey (rish wheesh as $1 {{PLURAL:$1|laa|laa|laa|laaghyn}})",
 'login' => 'Log stiagh',
 'nav-login-createaccount' => 'Log stiagh / croo coontys',
@@ -426,7 +425,7 @@ Fockle arrey shallidagh: $2',
 'headline_sample' => 'Teks y chione-linney',
 'headline_tip' => 'Kione-linney corrym 2',
 'nowiki_sample' => 'Cur stiagh teks gyn cummey ayns shoh',
-'nowiki_tip' => 'Ny chur tastey da cummey wikiagh',
+'nowiki_tip' => 'Ny chur tastey da cummey wiki',
 'image_tip' => 'Coadan jingit',
 'media_tip' => 'Kiangley yn choadan',
 'sig_tip' => "Dt'ennym screeuit lesh clouag hraa",
@@ -435,15 +434,15 @@ Fockle arrey shallidagh: $2',
 # Edit pages
 'summary' => 'Giare-choontey:',
 'subject' => 'Cooish/kione-linney:',
-'minoredit' => 'She myn-arraghey eh shoh',
+'minoredit' => 'She myn-reaghey eh shoh',
 'watchthis' => 'Freill arrey er y duillag shoh',
 'savearticle' => 'Sauail y duillag',
 'preview' => 'Roie-haishbynys',
 'showpreview' => 'Taishbyn roie-haishbynys',
 'showlivepreview' => 'Roie-haishbynys bio',
 'showdiff' => 'Taishbyn caghlaaghyn',
-'anoneditwarning' => "'''Raaue:''' Cha nel ou loggit stiagh.
-Bee dt'enmys IP recortyssit ayns shennaghys reaghey yn duillag shoh.",
+'anoneditwarning' => "'''Raaue:''' Cha nel oo loggit stiagh.
+Bee dt'enmys IP recortyssit ayns shennaghys reaghee yn duillag shoh.",
 'missingcommenttext' => 'Taggloo er heese, my sailt.',
 'summary-preview' => 'Roie-haishbynys y ghiare-choontey:',
 'subject-preview' => 'Roie-haishbynys cooish/kione-linney:',
@@ -469,17 +468,21 @@ She $3 dt'enmys IP roie, as she dt'enney ghlass na #$5. Cur ad lesh dagh ooilley
 Foddee oo ceaghley yn fockle arrey noa da'n choontys noa shoh er duillag ''[[Special:ChangePassword|cheaghley fockle yn arrey]]'' lurg loggal stiagh.",
 'newarticle' => '(Noa)',
 'newarticletext' => 'T’ou er jeet trooid kiangley dys duillag nagh vel ayn foast.
-Son dy chroo y duillag, gow toshiaght screeuyn ‘sy chishtey çheu heese jeh shoh (jeeagh er [[{{MediaWiki:Helppage}}|duillag y chooney]] son ny smoo fys).
-My haink oo dys shoh trooid marranys, crig er cramman ‘erash’ yn jeeagheyder ayd.',
+My vel oo geearree yn duillah shoh y chroo, gow toshiaght screeuyn ‘sy chishtey çheu heese jeh shoh (jeeagh er [[{{MediaWiki:Helppage}}|y duillag choonee]] son tooilley oayllys).
+My haink oo dys shoh fo marranys, crig er cramman ‘erash’ jeh’n jeeagheyder ayd.',
 'noarticletext' => "Cha nel teks 'sy duillag shoh ec y traa t'ayn.
-Foddee oo [[Special:Search/{{PAGENAME}}|ronsaghey enmys ny duillag shoh]] ayns duillagyn elley,
+Foddee oo [[Special:Search/{{PAGENAME}}|ronsaghey enmys y duillag shoh]] ayns duillagyn elley,
 <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} jannoo ronsaghey 'sy lioaryn cooishyn ta bentyn r'ee],
 ny [{{fullurl:{{FULLPAGENAME}}|action=edit}} reaghey yn duillag shoh]</span>.",
+'noarticletext-nopermission' => "Cha nel teks 'sy duillag shoh ec y traa t'ayn.
+Foddee oo [[Special:Search/{{PAGENAME}}|ronsaghey enmys y duillag shoh]] ayns duillagyn elley,
+<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ny jannoo ronsaghey 'sy lioaryn cooishyn ta bentyn r'ee]</span>,
+agh cha nel kied ayd yn duillag y chroo.",
 'note' => "'''Note:'''",
 'previewnote' => "'''Cooinnee nagh vel agh roie-haishbynys eh shoh;
 cha nel dty chaghlaaghyn sauailt foast!'''",
 'editing' => 'Reaghey $1',
-'editingsection' => 'Reaghey $1 (meer)',
+'editingsection' => 'Reaghey $1 (rheynn)',
 'editingcomment' => 'Reaghey $1 (meer noa)',
 'yourtext' => 'Dty heks',
 'storedversion' => 'Lhieggan stoyrit',
@@ -497,7 +500,7 @@ Chammah as shen, t’ou gialdyn dooin dy screeu oo hene eh, ny ren oo coip jeh n
 Foddee shiu goll er ash as reaghey duillag t'ayn nish, ny [[Special:UserLogin|loggal stiagh ny croo coontys]].",
 'nocreate-loggedin' => 'Cha nel kied ayd duillagyn noa y chroo er {{SITENAME}}.',
 'permissionserrorstext-withaction' => 'Cha nel kiart ayd $2, er {{PLURAL:$1|y fa|y fa|y fa|ny faghyn}} heese:',
-'recreate-moveddeleted-warn' => "'''Raaue: Ta shiu aachroo duillag as eh er ve scrysst roie.'''
+'recreate-moveddeleted-warn' => "'''Raaue: T’ou aachroo duillag as eh er ve scrysst hannah hene.'''
 
 By chair dhyt smooinagh vel eh kiart goll er oai lesh reaghey yn duillag shoh.<br />
 Ta lioar ny scryssaghyn magh kiarit ayns shoh rere dty chaays hene:",
@@ -508,22 +511,22 @@ My t'ou uss loggalt stiagh, foddee oo lhiettal y raaue shoh 'sy tosheeaghtyn ayd
 'cantcreateaccounttitle' => 'Cha nod coontys y chroo',
 
 # History pages
-'viewpagelogs' => 'Jeeagh er lioaryn cooishyn ny duillag shoh',
+'viewpagelogs' => 'Jeeagh er ny lioaryn cooishyn son y duillag shoh',
 'currentrev' => 'Aavriwnys roie',
-'currentrev-asof' => 'Aavriwnys roie er $1',
+'currentrev-asof' => "Aavriwnys s'noa er $1",
 'revisionasof' => 'Aavriwnys veih $1',
 'revision-info' => 'Aavriwnys veih $1 ec $2',
 'previousrevision' => '←Aavriwnys ny shinney',
 'nextrevision' => 'Aavriwnys ny saa→',
-'currentrevisionlink' => 'Aavriwnys roie',
-'cur' => 'traa',
+'currentrevisionlink' => 'Aavriwnys s’noa',
+'cur' => 'bio',
 'next' => 'nah',
 'last' => 'roish',
 'page_first' => 'Kied',
 'page_last' => 'roish',
 'histlegend' => "Reih anchaslys: jean reih kiarkil reih ny lhiegganyn by vie lhiat cosoylaghey ad, as crig er \"enter\", ny er y cramman ec cass y rolley.<br />
 Ogher: '''({{int:cur}})''' = anchaslyssyn rish y lhieggan t'ayn nish,
-'''({{int:last}})''' = anchaslyssyn rish y lhieggan roish, '''{{int:minoreditletter}}''' = mynchaghlaa",
+'''({{int:last}})''' = anchaslyssyn rish y lhieggan roish, '''{{int:minoreditletter}}''' = myn-reaghey",
 'history-fieldset-title' => 'Femblal shennaghys',
 'histfirst' => 'By hoshee',
 'histlast' => 'By yerree',
@@ -541,7 +544,7 @@ Ogher: '''({{int:cur}})''' = anchaslyssyn rish y lhieggan t'ayn nish,
 'rev-showdeleted' => 'taishbyn',
 'revdelete-hide-image' => 'Follee cummal y choadan',
 'revdelete-log' => 'Fa:',
-'revdel-restore' => 'ceaghley leayrid',
+'revdel-restore' => 'ceaghil leayrid',
 'pagehist' => 'Shennaghys y duillag',
 'deletedhist' => 'Shennaghys scryssit',
 
@@ -560,12 +563,12 @@ Ogher: '''({{int:cur}})''' = anchaslyssyn rish y lhieggan t'ayn nish,
 # Diffs
 'history-title' => 'Shennaghys aavriwnys dy "$1"',
 'lineno' => 'Linney $1:',
-'compareselectedversions' => 'Cosoylaghey ny lhiegganyn reiht',
-'editundo' => 'rassey',
+'compareselectedversions' => 'Cosoylee ny lhiegganyn reiht',
+'editundo' => 'rass',
 
 # Search results
-'searchresults' => 'Eiyrtyssyn y ronsaghey',
-'searchresults-title' => 'Eiyrtyssyn y ronsaghey er son "$1"',
+'searchresults' => 'Eiyrtyssyn y ronsee',
+'searchresults-title' => 'Eiyrtyssyn y ronsee son "$1"',
 'searchresulttext' => 'Son ny smoo oayllys mychione ronsaghtyn er {{SITENAME}}, jeeagh er [[{{MediaWiki:Helppage}}|{{int:help}}]].',
 'searchsubtitle' => 'Ren oo ronsaghey er \'\'\'[[:$1]]\'\'\' ([[Special:Prefixindex/$1|dagh duillag ta toshiaghey lesh "$1"]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|dagh duillag ta kianglt rish "$1"]])',
 'searchsubtitleinvalid' => "Ren oo ronsaghey er '''$1'''",
@@ -573,9 +576,16 @@ Ogher: '''({{int:cur}})''' = anchaslyssyn rish y lhieggan t'ayn nish,
 'notextmatches' => 'Cha nel shen ry-lhaih er duillag erbee',
 'prevn' => '{{PLURAL:$1|$1}} roish shoh',
 'nextn' => 'nah {{PLURAL:$1|$1}}',
+'shown-title' => 'Taishbyn $1 {{PLURAL:$1|eiyrtys|eiyrtyssyn}} er dagh duillag',
 'viewprevnext' => 'Jeeagh er ($1 {{int:pipe-separator}} $2) ($3)',
-'searchhelp-url' => 'Help:Cummal',
+'searchmenu-new' => "'''Croo yn duillag \"[[:\$1]]\" er y wiki shoh!'''",
+'searchprofile-articles' => 'Duillagyn cummal',
 'searchprofile-project' => 'Duillagyn Coonee as Shalee',
+'searchprofile-everything' => 'Dagh red',
+'searchprofile-articles-tooltip' => 'Ronsee ayns $1',
+'searchprofile-project-tooltip' => 'Ronsee ayns $1',
+'searchprofile-images-tooltip' => 'Ronsee coadanyn',
+'searchprofile-everything-tooltip' => 'Ronsee dagh red (goaill stiagh duillagyn resoonaght)',
 'search-result-size' => "$1 ({{PLURAL:$2|1 fockle|$2 'ockle|$2 'ockle|$2 focklyn}})",
 'search-result-score' => 'Bentynys: $1%',
 'search-redirect' => '(aa-enmyssit ass $1)',
@@ -734,9 +744,9 @@ My bailliu eh y chiarail, bee eh ymmydit son cur gys lieh y chur dhyt er son yn
 'recentchanges' => "Caghlaaghyn s'noa",
 'recentchanges-legend' => "Reihyssyn da ny caghlaaghyn s'noa",
 'recentchanges-summary' => "Shirrey ny caghlaaghyn s'noa da'n wiki er y duillag shoh.",
-'recentchanges-feed-description' => "Shirr ny caghlaaghyn jeianagh er y wiki 'sy scoltey shoh.",
+'recentchanges-feed-description' => "Shirr ny caghlaaghyn s'noa er y wiki 'sy scoltey shoh.",
 'recentchanges-label-newpage' => 'Ren y reaghey shoh croo duillag noa',
-'recentchanges-label-minor' => "She myn-arraghey t'ayn",
+'recentchanges-label-minor' => 'She myn-reaghey eh shoh',
 'recentchanges-label-bot' => 'Ren bot y reaghey shoh',
 'rcnote' => "Ny ta heese, she {{PLURAL:$1|ny '''$1''' caghlaa|yn '''$1''' chaghlaa|ny '''$1''' chaghlaa|ny '''$1''' caghlaaghyn}} s'jerree ayns {{PLURAL:$2|ny '''$2''' laa|yn '''$2''' laa|ny '''$2''' laa|ny '''$2''' laaghyn}} s'jerree, kiart ec $4, $5.",
 'rcnotefrom' => "Shoh heese ny caghlaaghyn veih '''$2''' (gys '''$1''' taishbynit).",
@@ -745,7 +755,7 @@ My bailliu eh y chiarail, bee eh ymmydit son cur gys lieh y chur dhyt er son yn
 'rcshowhidebots' => '{{PLURAL:$1|$1 robot|$1 robot|$1 robot|$1 robotyn}}',
 'rcshowhideliu' => '{{PLURAL:$1|$1 ymmydeyr|$1 ymmydeyr|$1 ymmydeyr|$1 ymmydeyryn}} ta loggit stiagh',
 'rcshowhideanons' => '{{PLURAL:$1|$1 ymmydeyr|$1 ymmydeyr|$1 ymmydeyr|$1 ymmydeyryn}} neuenmyssit',
-'rcshowhidepatr' => '$1 arraghyn patrolaghit',
+'rcshowhidepatr' => '$1 arraghyn patrolit',
 'rcshowhidemine' => "$1 m'arraghyn",
 'rclinks' => "Soilshee {{PLURAL:$1|ny $1 caghlaa|yn $1 chaghlaa|ny $1 chaghlaa|ny $1 caghlaaghyn}} s'jerree ayns {{PLURAL:$2|ny $2 laa|yn $2 laa|ny $2 laa|ny $2 laaghyn}} s'jerree<br />$3",
 'diff' => 'anch',
@@ -756,25 +766,24 @@ My bailliu eh y chiarail, bee eh ymmydit son cur gys lieh y chur dhyt er son yn
 'newpageletter' => 'N',
 'boteditletter' => 'r',
 'rc_categories_any' => 'Ronney erbee',
-'rc-enhanced-expand' => 'Taishbyn sonreeaghtyn (ta JavaScript er shirrey)',
+'rc-enhanced-expand' => 'Taishbyn sonreeaghtyn (ta feme er JavaScript)',
 'rc-enhanced-hide' => 'Follee sonreeaghtyn',
 
 # Recent changes linked
-'recentchangeslinked' => 'Caghlaaghyn-vooinjerys',
+'recentchangeslinked' => 'Caghlaaghyn conastagh',
 'recentchangeslinked-feed' => 'Caghlaaghyn-vooinjerys',
-'recentchangeslinked-toolbox' => 'Caghlaaghyn-vooinjerys',
+'recentchangeslinked-toolbox' => 'Caghlaaghyn conastagh',
 'recentchangeslinked-title' => 'Caghlaaghyn bentyn rish "$1"',
-'recentchangeslinked-noresult' => 'Cha nel caghlaa erbee er duillagyn kianglt car y traa taishbynit.',
 'recentchangeslinked-summary' => "Shoh rolley caghlaaghyn va jeant er duillagyn kianglt veih duillag sonrit (ny er olteynyn ronney sonrit).<br />
 Ta duillagyn er [[Special:Watchlist|dty rolley arrey]] ayns '''clou trome'''.",
 'recentchangeslinked-page' => 'Ennym y duillag:',
 'recentchangeslinked-to' => 'Taishbyn caghlaaghyn da ny duillagyn ta kianglt rish y duillag hene, ayns ynnyd jeh shoh',
 
 # Upload
-'upload' => 'Laadey neese coadan',
+'upload' => 'Laad neese coadan',
 'uploadbtn' => 'Laadey neese coadan',
 'uploadnologin' => 'Cha nel oo loggit stiagh',
-'uploadlogpage' => 'Lioar laadyn neese',
+'uploadlogpage' => 'Lioar ny laadyn neese',
 'filename' => 'Ennym y choadan',
 'filedesc' => 'Giare-choontey',
 'fileuploadsummary' => 'Giare-choontey:',
@@ -806,16 +815,16 @@ Ta duillagyn er [[Special:Watchlist|dty rolley arrey]] ayns '''clou trome'''.",
 # File description page
 'file-anchor-link' => 'Coadan',
 'filehist' => 'Shennaghys y choadan',
-'filehist-help' => 'Crig er date/traa ennagh son dy ‘akin y coadan myr v’eh ec y traa shen.',
+'filehist-help' => 'Crig er daayt/am ennagh son fakin er y choadan myr v’eh ec y traa shen.',
 'filehist-deleteall' => 'scryss ooilley',
 'filehist-deleteone' => 'scryss eh shoh',
-'filehist-revert' => 'goll er ash',
+'filehist-revert' => 'cur er ash',
 'filehist-current' => 'bio',
-'filehist-datetime' => 'Date/Am',
+'filehist-datetime' => 'Daayt/Am',
 'filehist-thumb' => 'Ingin-ordaag',
 'filehist-thumbtext' => "Ingin-ordaag da'n lhieggan shoh ec $1",
 'filehist-user' => 'Ymmydeyr',
-'filehist-dimensions' => 'Mooadyssyn',
+'filehist-dimensions' => 'Towshanyn',
 'filehist-filesize' => 'Mooadys y choadan',
 'filehist-comment' => 'Cohaggloo',
 'imagelinks' => 'Ymmyd y choadan',
@@ -914,7 +923,7 @@ Ta duillagyn er [[Special:Watchlist|dty rolley arrey]] ayns '''clou trome'''.",
 'newpages' => 'Duillagyn noa',
 'newpages-username' => 'Ennym ymmydeyr:',
 'ancientpages' => 'Duillagyn by hinney',
-'move' => 'Scughey',
+'move' => 'Scugh',
 'movethispage' => 'Yn duillag shoh y scughey',
 'pager-newer-n' => "{{PLURAL:$1|1 ny s'noa|$1 ny s'noa}}",
 'pager-older-n' => '{{PLURAL:$1|1 ny shinney|$1 ny shinney}}',
@@ -922,7 +931,7 @@ Ta duillagyn er [[Special:Watchlist|dty rolley arrey]] ayns '''clou trome'''.",
 
 # Book sources
 'booksources' => 'Bun-gheillyn lioar',
-'booksources-search-legend' => 'Jean ronsaghey er farraneyn lioar',
+'booksources-search-legend' => 'Jean ronsaghey er bun-gheillyn lioar',
 'booksources-go' => 'Gow',
 
 # Special:Log
@@ -1040,10 +1049,10 @@ Aaveaghey as cooney s\'odjey:
 'historywarning' => 'Raaue: Ta shennaghys ec y duillag ta shiu er-chee scryssey magh, as mysh $1 {{PLURAL:$1|caghlaa|chaghlaa|chaghlaa|caghlaaghyn}} er:',
 'confirmdeletetext' => 'Ta shiu er-çhee scryssey magh duillag myrane lesh y shennaghys eck.<br />
 Feeraghey dy vel eh y çhalee ayd eh y yannoo, dy vel ny scanshyn toiggit ayd, as dy vel oo jannoo eh ayns coardailys rish [[{{MediaWiki:Policy-url}}|y pholasee]].',
-'actioncomplete' => 'Obbraghey creaghnit',
+'actioncomplete' => 'Jantys creaghnit',
 'deletedtext' => 'Ta "$1" scrysst.<br />
 Jeeagh er $2 son recortys ny scryssaghyn magh jeianagh.',
-'dellogpage' => 'Lioar scryssaghyn magh',
+'dellogpage' => 'Lioar ny scryssaghyn magh',
 'deletecomment' => 'Fa:',
 'deleteotherreason' => 'Fa elley/tooilley:',
 'deletereasonotherlist' => 'Fa elley',
@@ -1054,7 +1063,7 @@ Jeeagh er $2 son recortys ny scryssaghyn magh jeianagh.',
 
 # Rollback
 'rollback_short' => 'Aahogherys',
-'rollbacklink' => 'aahogherys',
+'rollbacklink' => 'aahogher',
 'editcomment' => "V'eh \"''\$1''\" giare-choontys y reaghey.",
 
 # Protect
@@ -1097,28 +1106,29 @@ Shoh ny reaghaghyn roie da'n duillag '''$1''':",
 'viewdeletedpage' => 'Jeeagh er duillagyn scrysst',
 'undeletebtn' => 'Cur er ash',
 'undeletelink' => 'jeeagh/cur er ash',
+'undeleteviewlink' => 'jeeagh',
 'undeletereset' => 'Aahoiaghey',
 'undeletecomment' => 'Fa:',
 'undelete-search-box' => 'Ronsee ny duillagyn scrysst',
 'undelete-search-submit' => 'Ronsee',
 
 # Namespace form on various pages
-'namespace' => 'Boayl-ennym:',
-'invert' => 'Cur y teiy bun ry-skyn',
+'namespace' => 'Reamys:',
+'invert' => 'Cur y reih bun ry-skyn',
 'blanknamespace' => '(Cadjin)',
 
 # Contributions
 'contributions' => 'Cohortyssyn ymmydeyr',
-'contributions-title' => 'Cohortyssyn ymmydeyr liorish $1',
+'contributions-title' => 'Cohortyssyn liorish $1',
 'mycontris' => 'My chohortyssyn',
 'contribsub2' => 'Da $1 ($2)',
-'uctop' => ' (baare)',
-'month' => "Veih mee (as ny s'aa):",
-'year' => "Veih blein (as ny s'aa):",
+'uctop' => '(baare)',
+'month' => "Veih'n vee (as ny s'aa):",
+'year' => "Veih'n vlein (as ny s'aa):",
 
 'sp-contributions-newbies' => 'Taishbyn cohortyssyn ec coontyssyn noa ny lomarcan',
 'sp-contributions-newbies-sub' => 'Son coontyssyn noa',
-'sp-contributions-blocklog' => 'Lioar chooishyn ghlassaghyn magh',
+'sp-contributions-blocklog' => 'Lioar chooishyn ny glassaghyn magh',
 'sp-contributions-talk' => 'resoonaght',
 'sp-contributions-userrights' => 'Reireydys kiartyn ymmydeyr',
 'sp-contributions-search' => 'Ronsee cohortyssyn',
@@ -1126,7 +1136,7 @@ Shoh ny reaghaghyn roie da'n duillag '''$1''':",
 'sp-contributions-submit' => 'Ronsee',
 
 # What links here
-'whatlinkshere' => 'Cre ta kianglt rish shoh',
+'whatlinkshere' => 'Cre ta kiangley rish shoh',
 'whatlinkshere-title' => 'Duillagyn ta kianglt rish $1',
 'whatlinkshere-page' => 'Duillag:',
 'linkshere' => "Ta ny duillagyn shoh kianglt rish '''[[:$1]]''':",
@@ -1137,9 +1147,9 @@ Shoh ny reaghaghyn roie da'n duillag '''$1''':",
 'whatlinkshere-prev' => '{{PLURAL:$1|roish|y $1 roish}}',
 'whatlinkshere-next' => '{{PLURAL:$1|y nah|y nah $1}}',
 'whatlinkshere-links' => '← kianglaghyn',
-'whatlinkshere-hideredirs' => 'duillagyn aa-enmyssit $1',
+'whatlinkshere-hideredirs' => '$1 duillagyn aa-enmyssit',
 'whatlinkshere-hidetrans' => '$1 duillagyn er nyn ngoaill stiagh',
-'whatlinkshere-hidelinks' => 'kianglaghyn $1',
+'whatlinkshere-hidelinks' => '$1 kianglaghyn',
 'whatlinkshere-filters' => 'Shollaneyn',
 
 # Block/unblock
@@ -1171,11 +1181,11 @@ Shoh ny reaghaghyn roie da'n duillag '''$1''':",
 'ipblocklist-submit' => 'Ronsee',
 'infiniteblock' => 'neuyerrinagh',
 'createaccountblock' => 'crooaght coontys glasst',
-'blocklink' => 'glassey magh',
-'unblocklink' => 'foshley',
-'change-blocklink' => 'caghlaa glass',
+'blocklink' => 'glass magh',
+'unblocklink' => 'jee-ghlass',
+'change-blocklink' => 'ceaghil glass',
 'contribslink' => 'cohortyssyn',
-'blocklogpage' => 'Lioar chooishyn ghlassaghyn magh',
+'blocklogpage' => 'Lioar chooishyn ny glassaghyn magh',
 'blocklogentry' => 'er nglassey magh [[$1]] rish/derrey $2 $3',
 'unblocklogentry' => '$1 er ny neughlassey magh',
 'block-log-flags-anononly' => 'ymmydeyryn neuenmyssit ynrican',
@@ -1213,9 +1223,9 @@ Reih ennym elley, my sailliu.',
 Jean covestey eddyr oc er laueyn, my sailliu.'''",
 'movedto' => 'aa-enmyssit myr',
 'movetalk' => 'Scugh yn duillag resoonaght eck',
-'movelogpage' => 'Lioar chooishyn y scughey',
+'movelogpage' => 'Scugh y Lioar chooishyn',
 'movereason' => 'Fa:',
-'revertmove' => 'goll er ash',
+'revertmove' => 'cur er ash',
 'delete_and_move' => 'Scryss as scughey',
 'delete_and_move_confirm' => 'Ta, scryss magh y duillag',
 
@@ -1231,7 +1241,7 @@ Jean covestey eddyr oc er laueyn, my sailliu.'''",
 'allmessagescurrent' => 'Teks roie',
 
 # Thumbnails
-'thumbnail-more' => 'Mooadaghey',
+'thumbnail-more' => 'Mooadee',
 'filemissing' => 'Coadan ersooyl',
 'thumbnail_error' => 'Marranys ingin-ordaag y chroo: $1',
 
@@ -1247,59 +1257,60 @@ Jean covestey eddyr oc er laueyn, my sailliu.'''",
 'tooltip-pt-userpage' => 'My ghuillag ymmydeyr',
 'tooltip-pt-mytalk' => 'My ghuillag resoonaght',
 'tooltip-pt-preferences' => 'My hosheeaghtyn',
-'tooltip-pt-watchlist' => 'Rolley duillagyn ta er dty rolley arrey',
+'tooltip-pt-watchlist' => "Rolley ny duillagyn t'er dty rolley arrey",
 'tooltip-pt-mycontris' => 'Rolley my chohortyssyn',
-'tooltip-pt-login' => 'Ta greinnaghey shiu loggal stiagh, cha nel eh anneydagh, ansherbee.',
+'tooltip-pt-login' => 'Ta shin greinnaghey shiu loggal stiagh; ansherbee, cha nel feme er.',
 'tooltip-pt-logout' => 'Log magh',
-'tooltip-ca-talk' => 'Resoonaght mychione ny duillag cummal',
+'tooltip-ca-talk' => 'Resoonaght mychione y duillag chummal',
 'tooltip-ca-edit' => 'Foddee oo reaghey yn duillag shoh. Crig er y chramman roie-haishbynys roish eh y hauail.',
-'tooltip-ca-addsection' => 'Jean rheynn noa',
+'tooltip-ca-addsection' => 'Cur toshiaght rish rheynn noa',
 'tooltip-ca-viewsource' => "Ta'n duillag shoh fo ghlass. Foddee oo jeeagh er e bun.",
 'tooltip-ca-history' => "Shenn aavriwnyssyn jeh'n duillag shoh",
 'tooltip-ca-protect' => 'Coadee yn duillag shoh',
 'tooltip-ca-delete' => 'Scryss y duillag shoh',
-'tooltip-ca-move' => 'Yn duillag y scughey',
+'tooltip-ca-move' => 'Scugh y duillag',
 'tooltip-ca-watch' => 'Cur y duillag shoh rish dty rolley arrey',
-'tooltip-ca-unwatch' => 'Scughey y duillag shoh ass dty rolley arrey',
+'tooltip-ca-unwatch' => 'Gow y duillag shoh magh ass dty rolley arrey',
 'tooltip-search' => 'Ronsee {{SITENAME}}',
-'tooltip-search-go' => 'Immee dys duillag as yn ennym cruinn shoh er, my vees eh ayn',
+'tooltip-search-go' => 'Immee gys duillag as yn ennym cruinn shoh er, my vees eh ayn',
 'tooltip-search-fulltext' => 'Ronsee ny duillagyn er son y teks shoh',
-'tooltip-p-logo' => 'Ard-ghuillag',
-'tooltip-n-mainpage' => 'Cur keayrt er yn Ard-ghuillag',
-'tooltip-n-mainpage-description' => 'Cur keayrt er yn ard-ghuillag',
-'tooltip-n-portal' => "Mychione y çhalee, jean dty chooid share, c'raad reddyn dy feddyn",
-'tooltip-n-currentevents' => 'Fow oayllys shaghadys fo chooishyn yn laa',
-'tooltip-n-recentchanges' => "Rolley caghlaaghyn s'noa ayns y wiki.",
-'tooltip-n-randompage' => 'Duillag gyn tort y laadey',
+'tooltip-p-logo' => 'Gow gys yn ard-ghuillag',
+'tooltip-n-mainpage' => 'Gow gys yn ard-ghuillag',
+'tooltip-n-mainpage-description' => 'Gow gys yn ard-ghuillag',
+'tooltip-n-portal' => "Mychione y çhalee, jean dty chooid share, c'raad reddyn y gheddyn",
+'tooltip-n-currentevents' => 'Fow fysseree shaghadys er cooishyn yn laa',
+'tooltip-n-recentchanges' => "Rolley ny caghlaaghyn s'noa er y wiki.",
+'tooltip-n-randompage' => 'Laad duillag gyn tort',
 'tooltip-n-help' => 'Boayl gys feddyn magh.',
-'tooltip-t-whatlinkshere' => 'Rolley dagh ooilley ghuillag wiki ta kianglt rish shoh',
+'tooltip-t-whatlinkshere' => 'Rolley dagh ooilley ghuillag wiki ta kiangley rish shoh',
 'tooltip-t-recentchangeslinked' => "Caghlaaghyn s'noa er ny duillagyn ta kianglt rish y duillag shoh",
 'tooltip-feed-rss' => "Beaghey RSS da'n duillag shoh",
 'tooltip-feed-atom' => "Beaghey Atom da'n duillag shoh",
 'tooltip-t-contributions' => 'Jeeagh er cohortyssyn yn ymmydeyr shoh',
 'tooltip-t-emailuser' => "Cur post-L da'n ymmydeyr shoh",
-'tooltip-t-upload' => 'Laadey neese coadanyn',
+'tooltip-t-upload' => 'Laad neese coadanyn',
 'tooltip-t-specialpages' => 'Rolley dagh ooilley ghuillag er lheh',
 'tooltip-t-print' => "Lhieggan so-chlou jeh'n duillag shoh",
-'tooltip-t-permalink' => 'Kiangley beayn da aavriwnys ny duillag shoh',
-'tooltip-ca-nstab-main' => 'Jeeagh er duillag y chummal',
+'tooltip-t-permalink' => 'Kiangley beayn da aavriwnys y duillag shoh',
+'tooltip-ca-nstab-main' => 'Jeeagh er y duillag chummal',
 'tooltip-ca-nstab-user' => 'Jeeagh er duillag yn ymmydeyr',
 'tooltip-ca-nstab-special' => "She duillag er lheh t'ayn; cha nod oo reaghey y duillag hene",
-'tooltip-ca-nstab-project' => 'Jeeagh er duillag y halee',
+'tooltip-ca-nstab-project' => 'Jeeagh er y duillag halee',
 'tooltip-ca-nstab-image' => 'Jeeagh er duillag y choadan',
 'tooltip-ca-nstab-mediawiki' => 'Jeeagh er çhaghteraght y chorys',
-'tooltip-ca-nstab-template' => 'Jeeagh er y clowan',
+'tooltip-ca-nstab-template' => 'Jeeagh er y chlowan',
 'tooltip-ca-nstab-help' => 'Jeeagh er duillag y chooney',
 'tooltip-ca-nstab-category' => 'Jeeagh er duillag y ronney',
-'tooltip-minoredit' => 'She myn-arraghey eh shoh',
+'tooltip-minoredit' => 'She myn-reaghey eh shoh',
 'tooltip-save' => 'Sauail dty chaghlaaghyn',
-'tooltip-preview' => 'Roie-haishbyney ny caghlaaghyn ayd; jannoo ymmyd jeh roish sauail, my saillt!',
-'tooltip-diff' => 'Taishbyn caghlaaghyn y teks ta jeant ayd.',
-'tooltip-compareselectedversions' => 'Jeeagh er ny caghlaaghyn eddyr y daa lhieggan reiht y ghuillag shoh.',
+'tooltip-preview' => 'Roie-haishbyn ny caghlaaghyn eu; jean-shiu ymmyd jeh roish sauail, my sailliu!',
+'tooltip-diff' => 'Taishbyn caghlaaghyn y teks ta jeant eu.',
+'tooltip-compareselectedversions' => "Jeeagh er ny caghlaaghyn eddyr y daa lhieggan reiht jeh'n ghuillag shoh.",
 'tooltip-watch' => 'Cur y duillag shoh rish dty rolley arrey',
-'tooltip-rollback' => 'Ta "aahogherys" rassey dagh cohoyrtys yn ymmydeyr s\'jerree da\'n duillag shoh.',
-'tooltip-undo' => "Ta \"rassey\" cur y reaghey shoh er ash as t'eh fosley yn form reaghee ayns mod roie-haishbynys.<br />
+'tooltip-rollback' => 'Ta "aahogher" rassey dagh cohoyrtys jeh\'n ymmydeyr s\'jerree er y duillag shoh.',
+'tooltip-undo' => "Ta \"rass\" cur y reaghey shoh er ash as t'eh foshley yn form reaghee ayns mod roie-haishbynys.<br />
 T'eh lhiggey da oyr y chur 'sy ghiare-choontey.",
+'tooltip-summary' => 'Cur giare-choontey stiagh',
 
 # Attribution
 'anonymous' => '{{PLURAL:$1|Ymmeyder|Ymmeyderny}} neuenmyssit dy {{SITENAME}}',
@@ -1333,7 +1344,7 @@ Kianglaghyn eiyrtyssagh erbee er yn linney shoh, t'ad goll er loaghtey myr lhimm
 
 # Metadata
 'metadata' => 'Metadata',
-'metadata-help' => "Ta'n coadan shoh goaill tooilley oayllys stiagh, currit veih'n shamraig bun-earrooagh ny yn scanreyder as eh ymmydit dys y coadan y chroo ny y yannoo bun-earrooagh, foddee.<br />
+'metadata-help' => "Ta'n coadan shoh goaill tooilley fysseree stiagh, currit veih'n çhamraig vun-earrooagh ny yn scanreyder, as eh ymmydit dys y coadan y chroo ny y yannoo bun-earrooagh, s'liklee.<br />
 My vel y coadan ceaghlit veih'n chummey bunneydagh, foddee nagh beagh mynphoyntyn ennagh cohoilshaghey yn coadan ceaghlit.",
 'metadata-expand' => 'Taishbyn ny sonreeaghtyn sheeynt',
 'metadata-collapse' => 'Follee ny sonreeaghtyn sheeynt',
@@ -1403,7 +1414,7 @@ Bee adsyn elley follit dy seyr-obbragh.<br />
 'exif-gpsspeed-m' => "Meeillaghyn 'syn oor",
 
 # External editor support
-'edit-externally' => 'Reaghey yn coadan shoh lesh sheeyntagh mooie',
+'edit-externally' => 'Reagh yn coadan shoh lesh sheeyntagh mooie',
 'edit-externally-help' => 'Jeeagh er [//www.mediawiki.org/wiki/Manual:External_editors saraghyn soiaghey seose] son tooilley oayllys.',
 
 # 'all' in various places, this might be different for inflected languages
@@ -1439,9 +1450,9 @@ Bee adsyn elley follit dy seyr-obbragh.<br />
 'watchlistedit-raw-titles' => 'Enmyn:',
 
 # Watchlist editing tools
-'watchlisttools-view' => 'Jeeagh er caghlaaghyn bentynagh',
-'watchlisttools-edit' => 'Jeeagh er as reaghey yn rolley arrey',
-'watchlisttools-raw' => 'Reaghey aw-rolley arrey',
+'watchlisttools-view' => 'Jeeagh er caghlaaghyn conastagh',
+'watchlisttools-edit' => 'Jeeagh er as reagh yn rolley arrey',
+'watchlisttools-raw' => 'Reagh yn aw-rolley arrey',
 
 # Special:Version
 'version' => 'Lhieggan',
index 205a178..df1d66c 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Hakka (Hak-kâ-fa)
+/** Hakka (客家語/Hak-kâ-ngî)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -132,12 +132,12 @@ $messages = array(
 'category-empty' => "''邇隻分類目前還吂包含頁面或者媒體文件。''",
 'hidden-categories' => '$1隻隱藏分類',
 'hidden-category-category' => '隱藏分類',
-'category-subcat-count' => '{{PLURAL:$2|é\82\87é\9a»å\88\86é¡\9eæ\9c\89以ä¸\8bä¸\80é\9a»å­\90å\88\86é¡\9eã\80\82\82\87é\9a»å\88\86é¡\9eæ\9c\89$2é\9a»å­\90å\88\86é¡\9eï¼\8c以ä¸\8b列出矣$1隻。}}',
-'category-subcat-count-limited' => 'é\82\87é\9a»å\88\86é¡\9eæ\9c\89以ä¸\8b $1 隻子分類。',
-'category-article-count' => '{{PLURAL:$2|æ\9c¬å\88\86é¡\9eæ\9c\89以ä¸\8bä¸\80é\9a»é \81é\9d¢ã\80\82\9c¬å\88\86é¡\9eæ\9c\89$2é\9a»é \81é\9d¢ï¼\8c以ä¸\8b列出矣$1隻。}}',
-'category-article-count-limited' => 'é\82\87é\9a»å\88\86é¡\9eæ\9c\89以ä¸\8b $1 隻頁面。',
-'category-file-count' => '{{PLURAL:$2|é\82\87é\9a»å\88\86é¡\9eæ\9c\89以ä¸\8bä¸\80é\9a»æ\96\87件ã\80\82\82\87é\9a»å\88\86é¡\9eæ\9c\89$2é\9a»æ\96\87件ï¼\8c以ä¸\8b列出矣$1隻。}}',
-'category-file-count-limited' => '邇隻分類有 $1 隻文件。',
+'category-subcat-count' => '{{PLURAL:$2|é\82\87é\9a»å\88\86é¡\9eæ\9c\89ä¸\8bè\83\8cä¸\80é\9a»å­\90å\88\86é¡\9eã\80\82\82\87é\9a»å\88\86é¡\9eæ\9c\89$2é\9a»å­\90å\88\86é¡\9eï¼\8cä¸\8bè\83\8c列出矣$1隻。}}',
+'category-subcat-count-limited' => 'é\82\87é\9a»å\88\86é¡\9eæ\9c\89ä¸\8bè\83\8c$1隻子分類。',
+'category-article-count' => '{{PLURAL:$2|æ\9c¬å\88\86é¡\9eæ\9c\89ä¸\8bè\83\8cä¸\80é\9a»é \81é\9d¢ã\80\82\9c¬å\88\86é¡\9eæ\9c\89$2é\9a»é \81é\9d¢ï¼\8cä¸\8bè\83\8c列出矣$1隻。}}',
+'category-article-count-limited' => 'é\82\87é\9a»å\88\86é¡\9eæ\9c\89ä¸\8bè\83\8c$1隻頁面。',
+'category-file-count' => '{{PLURAL:$2|é\82\87é\9a»å\88\86é¡\9eæ\9c\89ä¸\8bè\83\8cä¸\80é\9a»æ\96\87件ã\80\82\82\87é\9a»å\88\86é¡\9eæ\9c\89$2é\9a»æ\96\87件ï¼\8cä¸\8bè\83\8c列出矣$1隻。}}',
+'category-file-count-limited' => '邇隻分類有$1隻文件。',
 'listingcontinuesabbrev' => '續',
 'index-category' => '既索引嘅頁面',
 'noindex-category' => '還無索引嘅頁面',
@@ -255,7 +255,6 @@ $1',
 'disclaimers' => '免責聲明',
 'disclaimerpage' => 'Project:一般免責聲明',
 'edithelp' => '編寫幫手',
-'edithelppage' => 'Help:編寫',
 'helppage' => 'Help:目錄',
 'mainpage' => '頭頁',
 'mainpage-description' => '頭頁',
@@ -479,7 +478,7 @@ $2',
 'createacct-benefit-body1' => '$1次編寫',
 'createacct-benefit-body2' => '$1頁',
 'createacct-benefit-body3' => '近期$1隻貢獻人',
-'badretype' => '汝所撳入嘅密碼並相同',
+'badretype' => '汝所撳入嘅密碼並相同',
 'userexists' => '汝所填入嘅用戶名稱已經存在。
 請另選一隻名稱。',
 'loginerror' => '登入差錯',
@@ -497,12 +496,12 @@ $2',
 檢查汝嘅拼寫,或者用下面嘅表格[[Special:UserLogin/signup|建立一隻新賬號]]。',
 'nosuchusershort' => '無有喊做“$1”嘅用戶。請檢查汝輸入嘅文字係毋係有差錯。',
 'nouserspecified' => '汝愛指定一隻用戶名。',
-'login-userblocked' => '邇隻用戶已封鎖。毋做得登入。',
+'login-userblocked' => '邇隻用戶已封鎖。毋做得登入。',
 'wrongpassword' => '汝輸入嘅密碼有錯,請再試一擺。',
-'wrongpasswordempty' => '還輸入密碼!請重試。',
+'wrongpasswordempty' => '還輸入密碼!請重試。',
 'passwordtooshort' => '汝嘅密碼毋得少過$1隻字符。',
 'password-name-match' => '汝嘅密碼必須撈汝嘅用戶名毋相同。',
-'password-login-forbidden' => '邇隻用戶名稱及密碼嘅使用係禁止嘅。',
+'password-login-forbidden' => '邇隻用戶名稱及密碼嘅使用係禁止嘅。',
 'mailmypassword' => '用電郵寄新密碼分亻厓',
 'passwordremindertitle' => '{{SITENAME}}嘅新臨時密碼',
 'passwordremindertext' => '有人(可能係汝本人,來自IP地址$1)已請求{{SITENAME}}嘅新密碼 ($4)。
@@ -510,7 +509,7 @@ $2',
 係話邇隻動作係汝所指示嘅,汝就愛立即登入並選擇一隻新嘅密碼。
 汝嘅臨時密碼將於{{PLURAL:$5|一|$5}}日之內過期。
 
¦\82æ\9e\9c係其他人發出邇隻請求,或者汝已經回想起汝嘅密碼,故所毋準備改變其,
\81\87使係其他人發出邇隻請求,或者汝已經回想起汝嘅密碼,故所毋準備改變其,
 汝可以忽略略邇條消息並且繼續使用汝嘅舊密碼。',
 'noemail' => '用戶“$1”無登記電子郵件地址。',
 'noemailcreate' => '汝愛提供一隻有效嘅電子郵件地址。',
@@ -569,11 +568,9 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => '重設密碼',
-'passwordreset-text' => '完成邇隻表格以重置汝嘅密碼。',
 'passwordreset-legend' => '重置密码',
 'passwordreset-disabled' => '邇隻維基上已禁止矣重設密碼。',
 'passwordreset-emaildisabled' => '電子郵件功能在此 wiki 上已禁用。',
-'passwordreset-pretext' => '{{PLURAL:$1||輸入下列其中一隻}}',
 'passwordreset-username' => '用戶名:',
 'passwordreset-domain' => '域名:',
 'passwordreset-capture' => '查看生成嘅電子郵件係無?',
@@ -861,7 +858,6 @@ Liá-chhṳ chhà-fûng he yù $1 só fûng ke. Tông-chûng ke ngièn-yîn he '
 'viewprevnext' => '查看($1 {{int:pipe-separator}} $2)($3)',
 'searchmenu-exists' => "'''在邇隻wiki上已經有一頁喊做“[[:$1]]”。'''",
 'searchmenu-new' => "'''在本wiki上建立邇隻頁面“[[:$1]]”!'''",
-'searchhelp-url' => 'Help:目錄',
 'searchprofile-articles' => '內容頁面',
 'searchprofile-project' => '幫助撈計劃頁面',
 'searchprofile-images' => '多媒體',
@@ -1026,7 +1022,6 @@ Tshòng-tón pit-sî chhai $1-ke sṳ-ngièn yî-ha.',
 'recentchangeslinked-feed' => '相關更改',
 'recentchangeslinked-toolbox' => '相關更改',
 'recentchangeslinked-title' => '撈“$1”有關嘅更改',
-'recentchangeslinked-noresult' => '在邇一段時間肚鏈接嘅頁面並無更改。',
 'recentchangeslinked-summary' => "邇一隻特殊頁面列示''由''所分出嘅一隻頁面之鏈接到頁面嘅最近更改(或者是對於指定分類嘅成員)。
 在[[Special:Watchlist|汝嘅監視列表]]肚嘅頁面會用'''粗體'''顯示。",
 'recentchangeslinked-page' => '頁面名:',
@@ -1319,7 +1314,6 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'unwatch' => '取消監視',
 'unwatchthispage' => '停止監視',
 'notanarticle' => '毋係內容頁面',
-'watchnochange' => '在顯示嘅時間段內汝所監視嘅頁面無更改。',
 'watchlist-details' => '毋包含交流頁,汝嘅監視列表上有$1隻頁面。',
 'wlheader-enotif' => 'Yí-kîn khí-thung email thûng-tî kûng-nèn.',
 'wlheader-showupdated' => "Chhai ngì song-chhṳ kiám-sṳ heu yû pûn chhùng-siû ko ke vùn-chông chiông-voi hién-sṳ vi '''chhû-thí'''.",
@@ -1369,18 +1363,18 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'deletereasonotherlist' => '其它理由',
 
 # Rollback
-'rollback' => '編寫轉頭',
-'rollback_short' => '轉頭',
+'rollback' => '編寫轉頭',
+'rollback_short' => '轉頭',
 'rollbacklink' => '打轉頭',
-'rollbackfailed' => '無法轉頭',
+'rollbackfailed' => '無法轉頭',
 'cantrollback' => '編寫無法打轉頭;最後嘅貢獻者人本文嘅唯一作者。',
 'alreadyrolled' => 'Mò-fap fî-fu̍k yù [[User:$2|$2]] ([[User talk:$2|thó-lun]]) chin-hàng ke [[$1]] ke chui-heu phiên-si̍p; khì-thâ ngìn yí-kîn phiên-siá fe̍t-he fî-fu̍k liáu ke-hong. Chui-heu phiên-si̍p-chá: [[User:$3|$3]] ([[User talk:$3|Thó-lun]])。',
 'editcomment' => "Phiên-siá sot-mìn he: \"''\$1''\"。",
 'revertpage' => 'Fî-fu̍k yù [[Special:Contributions/$2|$2]] ([[User talk:$2|tui-fa]]) ke phiên-cho; kiên-kói fì-fu̍k [[User:$1|$1]] ke chui-heu yit-ke pán-pún',
 
 # Edit tokens
-'sessionfailure' => '汝嘅登會話好像有問題;
-為到防止會話劫持,邇個操作已經分取消。
+'sessionfailure' => '汝嘅登會話好像有問題;
+為到防止會話劫持,邇次操作已經畀取消。
 請轉到先前嘅頁面,重新載入邇頁面,然後重試。',
 
 # Protect
@@ -1389,74 +1383,73 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'protectedarticle' => '已保護“[[$1]]”',
 'modifiedarticleprotection' => '已經更改“[[$1]]”嘅保護等級',
 'unprotectedarticle' => 'yí-kîn kié-chhù pó-fu "[[$1]]"',
-'protect-title' => 'Chang-chhai pó-fu "$1"',
-'prot_1movedto2' => '[[$1]] yì-thung to [[$2]]',
-'protect-legend' => 'Khok-ngin pó-fu',
-'protectcomment' => 'Ngièn-yîn:',
-'protectexpiry' => 'Chûng-chṳ́ sṳ̀-kiên',
-'protect_expiry_invalid' => 'Sû-ngi̍p ke chûng-chṳ́ sṳ̀-kiên mò-háu.',
-'protect_expiry_old' => 'Chûng-chṳ́ sṳ̀-kiên yí-kîn ko-hi.',
-'protect-text' => "Ngì khó-yî chhai liá-piên chhùng-siû tui vùn-chông '''$1''' ke pó-fu kip-phe̍t.",
-'protect-locked-blocked' => "Ngì put-nèn chhai pûn chhà-fûng sṳ̀ kiên-kói pó-fu khi̍p-phe̍t. Yî-ha he '''$1''' hien-sṳ̀ ke pó-fu khi̍p-phe̍t:",
-'protect-locked-dblock' => "Chhai chṳ̂-liau-khu só-thin sṳ̀ mò-fap kiên-kói pó-fu khi̍p-phe̍t.
-Yî-ha he '''$1''' hien-sṳ̀ ke pó-fu khi̍p-phe̍t:",
-'protect-locked-access' => "Ngì-ke chong-fu khièn-han put-nèn kói-chho pó-fu khi̍p-phe̍t, Yî-ha he '''$1''' hien-sṳ̀ ke pó-fu khi̍p-phe̍t:",
-'protect-cascadeon' => 'Yî-ha ke {{PLURAL:$1|yit-ke|tô-ke}} hong-mien pâu-hàm pún vùn-chông ke thùng-sṳ̀, khí-thung liáu lièn-só pó-fu, só-yî pún vùn-chông muk-chhièn ya-he pûn pó-fu, vù-nèn phiên-siá. Ngì hí-khó sat-thin pún hong-mien ke pó-fu khi̍p-phe̍t, than liá put tui lièn-só pó-fu yû yáng-hióng.',
-'protect-default' => 'Yùng-chún só-yû yung-fu',
+'protect-title' => '更改“$1”嘅保護等級',
+'prot_1movedto2' => '[[$1]]移動到[[$2]]',
+'protect-legend' => '確認保護',
+'protectcomment' => '理由:',
+'protectexpiry' => '到期:',
+'protect_expiry_invalid' => '輸入嘅終止時間無效。',
+'protect_expiry_old' => '終止時間既經過去。',
+'protect-text' => "汝做得在邇位瀏覽同修改對頁面'''$1'''嘅保護級別。",
+'protect-locked-blocked' => "汝做毋得在分查封時更改保護級別。
+下背係'''$1'''今下嘅保護級別:",
+'protect-locked-dblock' => "在數據庫鎖定時無法更改保護級別。
+下背係'''$1'''今下嘅保護級別:",
+'protect-locked-access' => "汝嘅賬戶權限做毋得修改保護級別。
+下背係'''$1'''今下嘅保護級別:",
+'protect-cascadeon' => '下背嘅{{PLURAL:$1|一個|多個}}頁面包含緊本頁面嘅同時,啟動矣連鎖保護,故所本頁面目前也分保護,還吂做得編寫。汝做得設定本頁面嘅保護級別,毋過邇並不會對連鎖保護有所影響。',
+'protect-default' => '容許所有用戶',
 'protect-fallback' => 'Sî-yeu "$1" ke hí-khó',
 'protect-level-autoconfirmed' => 'Kim-chṳ́  sîn-ke lâu hàn-mò chu-chhak ke yung-fu',
 'protect-level-sysop' => 'Kón-lî-yèn chôn-cho',
-'protect-summary-cascade' => 'Lièn-só',
-'protect-expiring' => 'Chûng-chṳ́ chhai-yî $1 (UTC)',
-'protect-cascade' => 'Lièn-só pó-fu - pún-chông pâu-hàm ke só-yû hong-mien kiûn yit-phîn pó-fu.',
+'protect-summary-cascade' => '連鎖',
+'protect-expiring' => '終止於$1(UTC)',
+'protect-cascade' => '保護本頁中包含嘅頁面(連鎖保護)',
 'protect-cantedit' => '汝無法更改邇隻頁面嘅保護等級,因為汝無權限去編寫其。',
-'protect-expiry-options' => '1 séu-sṳ̀:1 hour, 1 thiên:1 day,1 chû:1 week,2 chû:2 weeks,1-ke ngie̍t:1 month,3-ke ngie̍t:3 months,6-ke ngie̍t:6 months,1-ngièn:1 year, yún-kiú:infinite',
-'restriction-type' => 'Khièn-han:',
-'restriction-level' => 'Han-chṳ khi̍p-phe̍t:',
-'minimum-size' => 'Chui-séu thai-séu',
-'maximum-size' => 'Chui-thai thai-séu:',
-'pagesize' => '(Vi-ngièn-chû)',
+'protect-expiry-options' => '1小時:1 hour,1天:1 day,1周:1 week,2周:2 weeks,1隻月:1 month,3隻月:3 months,6隻月:6 months,1年:1 year,永久:infinite',
+'restriction-type' => '權限:',
+'restriction-level' => '限制級別:',
+'minimum-size' => '最細大細',
+'maximum-size' => '最大大細:',
+'pagesize' => '(字節)',
 
 # Restrictions (nouns)
 'restriction-edit' => '編寫',
-'restriction-move' => 'Yì-thung',
-'restriction-create' => 'Tshóng-kien',
+'restriction-move' => '移動',
+'restriction-create' => '建立',
 
 # Restriction levels
-'restriction-level-sysop' => 'Chhiòn pó-fu',
-'restriction-level-autoconfirmed' => 'Pan pó-fu',
-'restriction-level-all' => 'Ngim-hò khi̍p-phe̍t',
+'restriction-level-sysop' => '全保護',
+'restriction-level-autoconfirmed' => '半保護',
+'restriction-level-all' => '任何級別',
 
 # Undelete
-'undelete' => 'Fî-fu̍k pûn chhù-hi vùn-chông',
-'undeletepage' => 'Fî-fu̍k pûn chhù-thet vùn-chông',
-'viewdeletedpage' => 'Kiám-sṳ pûn chhù-thet ke vùn-chông',
+'undelete' => '恢復分刪頁面',
+'undeletepage' => '瀏覽及恢復分刪頁面',
+'viewdeletedpage' => '查看分刪除嘅頁面',
 'undeletepagetext' => 'Yî-ha vùn-chông yí-kîn pûn chhù-thet, than yî-yèn chhai tóng-on chûng pin khó-yî pûn fî-fu̍k. Tóng-on-khu khó-nèn pûn thin-sṳ̀ chhîn-lî.',
 'undeleteextrahelp' => "Fî-fu̍k cháng-ke vùn-chông sṳ̀, chhiáng chhîn-chhù só-yû fu̍k-sién khiông-heu on '''''fî-fu̍k'''''.  Fî-fu̍k thi̍t-thin pán-pún sṳ̀, chhiáng sién-chet siông-yin pán-pún chhièn-ke fu̍k-sién khiông-heu on '''''fî-fu̍k'''''. On '''''chhûng-sat''''' chiông chhîn-chhù phìn-lun nui-yùng khi̍p só-yû fu̍k-sién khiông.",
-'undeleterevisions' => '$1 pán-pún chhùn-tong',
+'undeleterevisions' => '$1版本存檔',
 'undeletehistory' => 'Kó-yèn ngì fî-fu̍k liáu ke-vùn-chông, só-yû pán-pún chiông-voi pûn fî-fu̍k to siû-thin li̍t-sṳ́ chûng. Kó-yèn pún-chông chhù-hi heu yû yit-ke thùng-miàng ke sîn vùn-chông kien-li̍p, pûn fî-fu̍k ke pán-pún chiông-voi chhṳ̂n-vi kha-sîn ke li̍t-sṳ́, sîn vùn-chông ke tong-chhièn pán-pún chiông mò-fap pûn chhṳ-thung fu̍k-ngièn.',
 'undeleterevdel' => 'Kó-yèn pá chui-sîn siû-thin phu-fun chhù-thet, fán chhù-hi phien mò-fap chin-hàng. Kó-yèn ngi-to liá-chúng chhìn-khóng, ngì pit-sî fán-sién fe̍t-chá fán-chhòng chui-sîn yí-kîn chhù-hi ke siû-thin. Tui-yî ngì mò-yû khièn-han hi kiám-sṳ ke siû-thin he mò-fap fî-fu̍k ke.',
-'undeletehistorynoadmin' => 'Liá-ke vùn-chông yí-kîn pûn chhù-thet, chhù-hi ngièn-yîn hién-sṳ chhai hâ-fông phiên-si̍p chak-yeu chûng.
-Pûn chhù-thet chhièn ke só-yû siû-thin pán-pún, lièn-thùng chhù-thet chhièn kung-hien yung-fu tén-tén se-chiet chṳ́-yû kón-lî-yèn khó-yî khon-kien.',
+'undeletehistorynoadmin' => '邇隻頁面已經分刪除,刪除原因顯示在下方編寫摘要肚。分刪除前嘅所有修訂版本,連同刪除前貢獻用戶等等細節單淨管理員做得看見。',
 'undelete-revision' => 'Chhù-thet pán-pún $1 chhṳ $2:',
-'undeleterevision-missing' => 'Chhṳ́ pán-pún ke nui-yùng put chṳn-khok fe̍t-chá yí-kîn yì-sṳt. Khó-nèn lièn-kiet chho-ngu, pûn yì-chhù fe̍t-he yí-kîn pûn fî-fu̍k.',
-'undeletebtn' => 'Fî-fu̍k',
+'undeleterevision-missing' => '無效或者丟失嘅修訂版本。汝可能使用矣有差錯嘅鏈接,或者本修訂版本既經分從存檔肚恢復或移除。',
+'undeletebtn' => '恢復',
 'undeletelink' => '查看/恢復',
 'undeleteviewlink' => '查看',
-'undeletereset' => 'Chhùng-sat',
+'undeletereset' => '重設',
 'undeletecomment' => 'Ngièn-yîn:',
-'undeletedrevisions' => '$1-ke siû-thin pán-pún yí-kîn fî-fu̍k',
-'undeletedrevisions-files' => '$1-ke pán-pún lâu $2-ke vùn-khien pûn fî-fu̍k',
-'undeletedfiles' => '$1-ke vùn-khien pûn fî-fu̍k',
+'undeletedrevisions' => '$1隻修訂版本已經恢復',
+'undeletedrevisions-files' => '$1隻版本撈$2隻文件分恢復',
+'undeletedfiles' => '$1隻文件分恢復',
 'cannotundelete' => 'Fî-fu̍k sṳt-phai; khó-nèn chṳ̂-chhièn yí-kîn pûn khì-thâ-ngìn fî-fu̍k.',
-'undeletedpage' => "'''$1 yí-kîn pûn fî-fu̍k '''
-
-Chhiáng chhâm-kháu [[Special:Log/delete|chhù-hi ngit-ki]] lòi chhà-chhut chhù-thet khi̍p fî-fu̍k ki-liu̍k.",
-'undelete-header' => 'Kó-yèn yeu chhà-chhut chui-khiûn ke ki-liu̍k chhiáng chhâm-siòng [[Special:Log/delete|Chhù-thet ngit-ki]].',
-'undelete-search-box' => 'Chhìm-cháu yí-kîn chhù-hi vùn-chông',
-'undelete-search-prefix' => 'Hién-sṳ vùn-chông chhṳ:',
-'undelete-search-submit' => 'Chhìm-cháu',
-'undelete-no-results' => 'Chhù-thet ki-liu̍k lî mò-yû fù-ha̍p ke kiet-kó.',
+'undeletedpage' => "'''$1已經分恢復''' 請參考[[Special:Log/delete|刪除日誌]]來查詢刪除撈恢復記錄。",
+'undelete-header' => '假使愛查詢最近嘅記錄請參看[[Special:Log/delete|刪除日誌]]。',
+'undelete-search-box' => '搜尋已刪除頁面',
+'undelete-search-prefix' => '展示頁面自:',
+'undelete-search-submit' => '搜尋',
+'undelete-no-results' => '刪除記錄肚無符合嘅結果。',
 
 # Namespace form on various pages
 'namespace' => '名字空間:',
@@ -1491,7 +1484,7 @@ Chhiáng chhâm-kháu [[Special:Log/delete|chhù-hi ngit-ki]] lòi chhà-chhut c
 'whatlinkshere-page' => '頁面:',
 'linkshere' => '下背頁面鏈接到[[:$1]]:',
 'nolinkshere' => "無頁面鏈接到'''[[:$1]]'''。",
-'nolinkshere-ns' => 'Chhai só-sién ke miàng-sṳ khûng-kiên nui  mò-yû vùn-chông lièn-kiet to[[:$1]].',
+'nolinkshere-ns' => '在所選嘅名字空間肚無頁面連接到[[:$1]]。',
 'isredirect' => '重定向頁',
 'istemplate' => '包含',
 'isimage' => '文件鏈接',
@@ -1505,49 +1498,51 @@ Chhiáng chhâm-kháu [[Special:Log/delete|chhù-hi ngit-ki]] lòi chhà-chhut c
 'whatlinkshere-filters' => '過濾器',
 
 # Block/unblock
-'blockip' => 'chhà-fûng IP thi-tiám',
-'blockiptext' => 'Yung ha-mien ke péu-tân kim-chṳ́ lòi-chhṳ mêu-yit thi̍t-thin IP thi-tiám ke kiên-kói hí-khó-khièn. Chṳ́-yû chhai-vi fòng-chṳ́ pho-fái, khi̍p fù-ha̍p [[{{MediaWiki:Policy-url}}|Sú-chet]] ke chhìn-khóng hâ chhòi khó chhái-chhí chhṳ́ hàng-thung. Chhiáng chhai ha-mien sû-ngi̍p yit-ke khí-thí ke lî-yù (chhiong-he yîn-sut yit-ke pûn-ngìn pho-fái ke hong-mien).',
-'ipadressorusername' => 'IP thi-tiám fe̍t-he yung-fu-miàng',
-'ipbexpiry' => 'Khì-han:',
-'ipbreason' => 'Ngièn-yîn:',
-'ipbreasonotherlist' => 'Khì-thâ ngièn-yîn',
-'ipbreason-dropdown' => '*Yit-pân ke fûng-kim lî-yù
-** Su-chhṳ chen-kâ put-sṳ̍t chṳ̂-liau
-** Chhù-thet vùn-chông nui-yùng
-** Ngoi-phu lièn-kiet kóng-ko
-** Chhai vùn-chông chûng chen-kâ mò yi-ngi vùn-sṳ
-** Mò-lî ke hàng-vì, kûng-kit/sâu-yéu phe̍t-ngìn
-** Lam-yung tô-ke chong-ho
-** Put-nèn chiap-su ke yung-fu-miàng',
-'ipbcreateaccount' => 'Chú-chṳ́ chhóng-li̍p sîn chong-ho',
-'ipbenableautoblock' => 'Chhṳ-thung chhà-fûng ke-yung-fu sṳ́-yung-ko ke IP thi-tiám',
-'ipbsubmit' => 'Chhà-fûng ke-yung-fu',
+'blockip' => '封禁用戶',
+'blockiptext' => '用下背嘅表單來禁止來自某一特定IP地址嘅修改許可權。
+單淨在為防止破壞,撈符合[[{{MediaWiki:Policy-url}}|守則]]嘅情況下正做得採取邇行動。
+請在下背輸入一隻具體嘅理由(例如引述一隻分破壞嘅頁面)。',
+'ipadressorusername' => 'IP地址或用戶名:',
+'ipbexpiry' => '期限:',
+'ipbreason' => '原因:',
+'ipbreasonotherlist' => '其他理由',
+'ipbreason-dropdown' => '*一般嘅封禁理由
+** 多次加入虛假資料
+** 刪除頁面內容
+** 外部鏈接廣告
+** 在頁面肚增加無意義文字
+** 無禮嘅行為、攻擊/騷擾別儕
+** 濫用多隻賬號
+** 做毋得接受嘅用戶名',
+'ipbcreateaccount' => '阻止創建新賬號',
+'ipbenableautoblock' => '自動查封邇用戶最後所用嘅IP地址,撈後來試圖編寫所用嘅所有地址',
+'ipbsubmit' => '查封邇用戶',
 'ipbother' => '其它時間:',
 'ipboptions' => '2小時:2 hours,1日:1 day,3日:3 days,1星期:1 week,2星期:2 weeks,1隻月:1 month,3隻月:3 months,6隻月:6 months,1年:1 year,無限期:infinite',
-'ipbotheroption' => 'khì-thâ',
-'ipbotherreason' => 'Khì-thâ lî-yù:',
+'ipbotheroption' => '其他',
+'ipbotherreason' => '其他/附加理由:',
 'ipbhidename' => 'Chhai chhà-fûng ngit-ki, fa̍t-chhiok chhà-fûng lie̍t-péu yî-khi̍p yung-fu lie̍t-péu chûng yún-chhòng yung-fu-miàng.',
-'badipaddress' => 'IP-ke thi-tiám mò chṳn-khok.',
-'blockipsuccesssub' => 'chhà-fûng sṳ̀n-kûng',
+'badipaddress' => '無效IP地址',
+'blockipsuccesssub' => '查封成功',
 'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] yí-kîn pûn chhà-fûng. <br />Chhâm-siòng [[Special:BlockList|pûn-fûng IP thi-tiám lie̍t-péu]] yî fu̍k-sṳ́m chhà-fûng.',
-'ipb-edit-dropdown' => 'Phiên-siá chhà-fûng ngièn-yîn',
-'ipb-unblock-addr' => 'Kié-chhù fûng-kim $1',
-'ipb-unblock' => 'Kié-chhù kim-fûng yung-fu miàng fe̍t-chá IP thi-tiám',
-'ipb-blocklist' => 'Kiám-sṳ fûng-kim lie̍t-péu',
-'unblockip' => 'Kié-chhù kim-fûng IP thi-tiám',
-'unblockiptext' => 'Yung ha-mien ke péu-tân lòi fî-fu̍k siên-chhièn pûn kim-fûng ke IP thi-tiám ke siá-sû-khièn.',
+'ipb-edit-dropdown' => '編寫查封原因',
+'ipb-unblock-addr' => '解封$1',
+'ipb-unblock' => '解封用戶名或IP地址',
+'ipb-blocklist' => '查看今下嘅封禁',
+'unblockip' => '解封用戶',
+'unblockiptext' => '用下背嘅表單來恢復先前分查封嘅IP地址或用戶嘅寫權限。',
 'ipusubmit' => 'Kié-chhù kim-fûng',
 'unblocked' => '[[User:$1|$1]]已經分解封。',
-'unblocked-id' => 'Fûng-kim $1 yí-kîn pûn yì-chhù',
+'unblocked-id' => '封禁$1已經分移除',
 'ipblocklist' => '分封用戶列表',
-'ipblocklist-submit' => 'Chhìm-cháu',
-'infiniteblock' => 'yún-kiú',
+'ipblocklist-submit' => '搜尋',
+'infiniteblock' => '無限期',
 'expiringblock' => '$1 $2 to-khì',
-'anononlyblock' => 'Han-chṳ ngia̍k-miàng yung-fu.',
-'noautoblockblock' => 'Kim-yung chhṳ-thung chhà-fûng',
-'createaccountblock' => 'Kim-chṳ́ chhóng-kien chong-ho',
-'ipblocklist-empty' => 'Chhà-fûng lie̍t-péu he khûng-hî.',
-'ipblocklist-no-results' => 'Só yêu-khiù ke IP thi-tiám/yung-fu-miàng mò-yû pûn chhà-fûng.',
+'anononlyblock' => '單淨匿名用戶',
+'noautoblockblock' => '禁用自動查封',
+'createaccountblock' => '禁止創建賬戶',
+'ipblocklist-empty' => '查封列表係空嘅。',
+'ipblocklist-no-results' => '所請求嘅IP地址/用戶名無分查封。',
 'blocklink' => '查封',
 'unblocklink' => '解封',
 'change-blocklink' => '更改封禁',
@@ -1557,17 +1552,17 @@ Chhiáng chhâm-kháu [[Special:Log/delete|chhù-hi ngit-ki]] lòi chhà-chhut c
 'blocklogentry' => '封禁[[$1]],到期時間係$2$3',
 'blocklogtext' => 'Liá-he kôan-yî yung-fu fûng-kim lâu kié-chhù fûng-kim chhâu-chok ke ki-liu̍k. Pûn chhṳ-thung fûng-kim ke IP thi-tiám mò-yû lie̍t-chhut. Chhiáng chhâm-kháu [[Special:BlockList|Pûn chhà-fûng ke IP thi-tiám lâu yung-fu lie̍t-péu]].',
 'unblocklogentry' => '$1已分解封',
-'block-log-flags-anononly' => 'Han-chṳ ngia̍k-miàng ke yung-fu',
+'block-log-flags-anononly' => '單淨匿名用戶',
 'block-log-flags-nocreate' => '帳號建立已禁',
-'block-log-flags-noautoblock' => 'Thìn-chṳ́ yung chhṳ-thung fûng-kim',
-'range_block_disabled' => 'Chṳ́-yû kón-lî-yèn chhòi-nèn kien-chho kim-chṳ́ chhà-fûng ke fam-vì.',
+'block-log-flags-noautoblock' => '禁用自動查封',
+'range_block_disabled' => '單淨管理員正做得創建禁止查封嘅範圍。',
 'ipb_expiry_invalid' => '無效嘅終止時間。',
 'ipb_already_blocked' => 'Yí-kîn fûng-só "$1"',
-'ipb_cant_unblock' => 'Chho-ngu: Mò-yû fat-hien Block ID $1. Ke-IP khó-nèn yí-kîn pûn kié-fûng.',
-'ip_range_invalid' => 'Mò-háu ke IP fam-vì.',
-'proxyblocker' => 'Thoi-lî fûng-só hi-khí',
-'proxyblockreason' => 'Ngì-ke IP thi-tiám he yit-ke khôi-fong ke thoi-lî, kì yí-kîn pûn fûng-só. Chhiáng lièn-kiê Ngì-ke mióng-chi mióng-lu fu̍k-vu thì-kiûng-sông fe̍t-he kî-su̍t kî-yèn-chá pin lo-tî ke-ngiàm-chhung ke ôn-chhiòn mun-thì.',
-'proxyblocksuccess' => 'Vàn-sṳ̀n.',
+'ipb_cant_unblock' => '差錯: 尋毋到查封ID$1。可能已經解除封禁。',
+'ip_range_invalid' => '無效嘅IP範圍。',
+'proxyblocker' => '代理封鎖器',
+'proxyblockreason' => '汝嘅IP地址係一隻開放嘅代理,其已經分封鎖。請聯繫汝嘅網際網路服務提供商或技術支援者並講佢兜聽邇隻嚴重嘅安全問題。',
+'proxyblocksuccess' => '完成。',
 'sorbsreason' => 'Ngì-ke IP chhô-vi pûn DNSBL lie̍t-vi su̍k-yî khôi-fong thoi-lî fu̍k-vu-khí.',
 'sorbs_create_account_reason' => 'Ngì-ke IP chhô-vi pûn DNSBL lie̍t-vi su̍k-yî khôi-fong thoi-lî fu̍k-vu-khí. Só-yî ngì mò-fap kien-li̍p chong-ho.',
 
@@ -1621,13 +1616,12 @@ chhiáng chhai hàng-thung chṳ̂-chhièn siên liáu-kié khì-thâ khó-nèn
 'movetalk' => 'Chhiáng thùng-sṳ̀ yì-thung tui-fa-chông',
 'movelogpage' => '移動日誌',
 'movelogpagetext' => 'Yî-ha he yí-kîn yì-thung ke vùn-chông chhîn-tân.',
-'movereason' => 'Ngièn-yîn:',
+'movereason' => '原因:',
 'revertmove' => '恢復',
-'delete_and_move' => 'Chhù-chhîn lâu yì-thung',
-'delete_and_move_text' => '==Sî-yeu chhù-thet==
+'delete_and_move' => '刪除並移動',
+'delete_and_move_text' => '==愛刪除==
 
-Muk-phêu vùn-chông "[[:$1]]" yí-kîn chhùn-chhai.
-Ngì khok-ngin sî-yeu chhù-thet ngièn hong-mien khi̍p chin-hàng yì-thung mâ?',
+目標頁面"[[:$1]]"已經存在。汝確認愛刪除原頁面並進行移動係無?',
 'delete_and_move_confirm' => '著,刪除邇頁',
 'delete_and_move_reason' => 'Chhù-thet yî-phien yì-thung',
 'selfmove' => 'Ngièn-sṳ́ phêu-thì khi̍p muk-phêu phêu-thì siông-thùng, vù-nèn yì-thung yit-chông fu̍k-koi pún-sṳ̂n.',
index d3f835d..cf3e1f6 100644 (file)
@@ -262,7 +262,6 @@ $messages = array(
 'disclaimers' => 'Palapala hoʻokuʻu kuleana',
 'disclaimerpage' => 'Project:Palapala hoʻokuʻu kuleana',
 'edithelp' => 'Kōkua me ka ho‘ololi ‘ana',
-'edithelppage' => 'Help:Ho‘ololi',
 'helppage' => 'Help:Papa kuhikuhi',
 'mainpage' => "Kahua pa'a",
 'mainpage-description' => 'Ka papa kinohi',
@@ -464,7 +463,6 @@ E ʻoluʻolu, e hōʻoia i ka hoʻokūkū ʻana i lalo, a laila, e mālama i nā
 'prevn' => '{{PLURAL:$1|$1}} ma mua',
 'nextn' => '{{PLURAL:$1|$1}} ma hope',
 'viewprevnext' => 'Nānā i nā ($1 {{int:pipe-separator}} $2) ($3)',
-'searchhelp-url' => 'Help:Papa kuhikuhi',
 'search-result-size' => '$1 ({{PLURAL:$2|1 huaʻōlelo|$2 huaʻōlelo}})',
 'search-section' => '(māhele $1)',
 'search-suggest' => 'ʻO kēia paha kou manaʻo: $1',
index 64691f6..e1cb5b5 100644 (file)
@@ -19,7 +19,9 @@
  * @author Rotem Liss (March 2006 on)
  * @author Rotemliss
  * @author YaronSh
+ * @author אור שפירא
  * @author ערן
+ * @author פדיחה
  * @author שומבלע
  * @author תומר ט
  */
@@ -104,7 +106,7 @@ $specialPageAliases = array(
        'MIMEsearch'                => array( 'חיפוש_MIME' ),
        'Mostcategories'            => array( 'הקטגוריות_הרבות_ביותר', 'הדפים_מרובי-הקטגוריות_ביותר' ),
        'Mostimages'                => array( 'הקבצים_המקושרים_ביותר', 'התמונות_המקושרות_ביותר' ),
-       'Mostinterwikis'            => array( 'ק×\99ש×\95ר×\99©×¤×\94_ביותר' ),
+       'Mostinterwikis'            => array( 'ק×\99ש×\95ר×\99\94שפ×\94\94ר×\91×\99×\9d_ביותר' ),
        'Mostlinked'                => array( 'הדפים_המקושרים_ביותר', 'המקושרים_ביותר' ),
        'Mostlinkedcategories'      => array( 'הקטגוריות_המקושרות_ביותר' ),
        'Mostlinkedtemplates'       => array( 'התבניות_המקושרות_ביותר' ),
@@ -116,6 +118,7 @@ $specialPageAliases = array(
        'Myuploads'                 => array( 'ההעלאות_שלי' ),
        'Newimages'                 => array( 'קבצים_חדשים', 'תמונות_חדשות', 'גלריית_קבצים_חדשים', 'גלריית_תמונות_חדשות' ),
        'Newpages'                  => array( 'דפים_חדשים' ),
+       'PagesWithProp'             => array( 'דפים_עם_מאפיינים', 'דפים_לפי_מאפיינים' ),
        'PasswordReset'             => array( 'איפוס_סיסמה' ),
        'PermanentLink'             => array( 'קישור_קבוע' ),
        'Popularpages'              => array( 'הדפים_הנצפים_ביותר', 'דפים_פופולריים' ),
@@ -127,6 +130,7 @@ $specialPageAliases = array(
        'Randomredirect'            => array( 'הפניה_אקראית' ),
        'Recentchanges'             => array( 'שינויים_אחרונים' ),
        'Recentchangeslinked'       => array( 'שינויים_בדפים_המקושרים' ),
+       'Redirect'                  => array( 'הפניה' ),
        'Revisiondelete'            => array( 'מחיקת_ושחזור_גרסאות' ),
        'Search'                    => array( 'חיפוש' ),
        'Shortpages'                => array( 'דפים_קצרים' ),
@@ -555,6 +559,7 @@ $messages = array(
 'create-this-page' => 'יצירת דף זה',
 'delete' => 'מחיקה',
 'deletethispage' => 'מחיקת דף זה',
+'undeletethispage' => 'שחזור דף זה',
 'undelete_short' => 'שחזור {{PLURAL:$1|עריכה אחת|$1 עריכות}}',
 'viewdeleted_short' => 'צפייה ב{{PLURAL:$1|עריכה מחוקה אחת|־$1 עריכות מחוקות}}',
 'protect' => 'הגנה',
@@ -608,7 +613,6 @@ $1',
 'disclaimers' => 'הבהרה משפטית',
 'disclaimerpage' => 'Project:הבהרה משפטית',
 'edithelp' => 'עזרה לעריכה',
-'edithelppage' => 'Help:עריכת דף',
 'helppage' => 'Help:תפריט ראשי',
 'mainpage' => 'עמוד ראשי',
 'mainpage-description' => 'עמוד ראשי',
@@ -758,6 +762,10 @@ $2',
 'namespaceprotected' => "אינכם מורשים לערוך דפים במרחב השם '''$1'''.",
 'customcssprotected' => 'אינכם מורשים לערוך דף CSS זה, כיוון שהוא כולל את ההגדרות האישיות של משתמש אחר.',
 'customjsprotected' => 'אינכם מורשים לערוך דף JavaScript זה, כיוון שהוא כולל את ההגדרות האישיות של משתמש אחר.',
+'mycustomcssprotected' => 'אינכם מורשים לערוך דף CSS זה.',
+'mycustomjsprotected' => 'אינכם מורשים לערוך דף JavaScript זה.',
+'myprivateinfoprotected' => 'אין לך הרשאות לערוך את המידע הפרטי שלך',
+'mypreferencesprotected' => 'אין לך הרשאה לערוך את ההעדפות שלך.',
 'ns-specialprotected' => 'לא ניתן לערוך דפים מיוחדים.',
 'titleprotected' => 'לא ניתן ליצור דף זה, כיוון שהמשתמש [[User:$1|$1]] הגן עליו מפני יצירה.
 הסיבה שניתנה לכך היא "$2".',
@@ -785,6 +793,7 @@ $2',
 'yourname' => 'שם משתמש:',
 'userlogin-yourname' => 'שם משתמש',
 'userlogin-yourname-ph' => 'יש להקליד את שם המשתמש',
+'createacct-another-username-ph' => 'נא להזין את שם המשתמש',
 'yourpassword' => 'סיסמה:',
 'userlogin-yourpassword' => 'סיסמה',
 'userlogin-yourpassword-ph' => 'יש להקליד את הסיסמה',
@@ -793,7 +802,7 @@ $2',
 'createacct-yourpasswordagain' => 'אימות הסיסמה',
 'createacct-yourpasswordagain-ph' => 'יש להקליד את הסיסמה שנית',
 'remembermypassword' => 'שמירת הכניסה שלי בדפדפן הזה (ל{{PLURAL:$1|יום אחד|יומיים|־$1 ימים}} לכל היותר)',
-'userlogin-remembermypassword' => '×\9c×\94ש×\90×\99ר ×\90×\95ת×\99 ×\9e×\97×\95×\91ר',
+'userlogin-remembermypassword' => '×\9c×\96×\9b×\95ר ×©× ×\9bנסת×\99',
 'userlogin-signwithsecure' => 'שימוש בחיבור מאובטח',
 'securelogin-stick-https' => 'המשך שימוש ב־HTTPS אחרי הכניסה',
 'yourdomainname' => 'המתחם שלך:',
@@ -819,9 +828,11 @@ $2',
 'helplogin-url' => 'Help:כניסה לחשבון',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|עזרה בכניסה לחשבון]]',
 'createacct-join' => 'נא להקליד להלן את הפרטים שלך.',
+'createacct-another-join' => 'נא להזין את המידע על החשבון החדש להלן.',
 'createacct-emailrequired' => 'כתובת דוא"ל',
 'createacct-emailoptional' => 'כתובת דוא"ל (לא חובה)',
 'createacct-email-ph' => 'יש להקליד את כתובת הדוא"ל שלך',
+'createacct-another-email-ph' => 'נא להזין כתובת דואר אלקטרוני',
 'createaccountmail' => 'שימוש בסיסמה זמנית אקראית ושליחתה לכתובת הדוא"ל המצוינת להלן',
 'createacct-realname' => 'שם אמיתי (לא חובה)',
 'createaccountreason' => 'סיבה:',
@@ -830,7 +841,8 @@ $2',
 'createacct-captcha' => 'בדיקת אבטחה',
 'createacct-imgcaptcha-ph' => 'יש להקליד את הטקסט המופיע למעלה',
 'createacct-submit' => 'יצירת החשבון',
-'createacct-benefit-heading' => 'את האתר {{SITENAME}} יוצרים אנשים כמוך.',
+'createacct-another-submit' => 'יצירת חשבון אחר',
+'createacct-benefit-heading' => 'אנשים כמוך יוצרים את {{SITENAME}}.',
 'createacct-benefit-body1' => '{{PLURAL:$1|עריכה|עריכות}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|דף|דפים}}',
 'createacct-benefit-body3' => '{{PLURAL:$1|תורם|תורמים}} לאחרונה',
@@ -896,7 +908,7 @@ $2',
 'cannotchangeemail' => 'לא ניתן לשנות את כתובות הדוא"ל של חשבונות באתר ויקי זה.',
 'emaildisabled' => 'אתר זה לא יכול לשלוח דואר אלקטרוני.',
 'accountcreated' => 'החשבון נוצר',
-'accountcreatedtext' => 'חשבון המשתמש $1 נוצר.',
+'accountcreatedtext' => 'חשבון המשתמש [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|שיחה]]) נוצר.',
 'createaccount-title' => 'יצירת חשבון ב{{grammar:תחילית|{{SITENAME}}}}',
 'createaccount-text' => 'מישהו יצר חשבון בשם $2 ב{{grammar:תחילית|{{SITENAME}}}} ($4), והסיסמה הזמנית של החשבון היא "$3". עליכם להיכנס ולשנות עכשיו את הסיסמה.
 
@@ -935,11 +947,11 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'איפוס סיסמה',
-'passwordreset-text' => 'מלאו טופס זה כדי לאפס את הסיסמה.',
+'passwordreset-text-one' => 'מלאו טופס זה כדי לאפס את הסיסמה.',
+'passwordreset-text-many' => '{{PLURAL:$1||נא למלא אחד מהשדות הבאים כדי לאפס את הסיסמה שלך.}}',
 'passwordreset-legend' => 'איפוס סיסמה',
 'passwordreset-disabled' => 'איפוסי סיסמה בוטלו באתר ויקי זה.',
 'passwordreset-emaildisabled' => 'שירותי הדוא"ל בוטלו באתר ויקי זה.',
-'passwordreset-pretext' => '{{PLURAL:$1||הקלידו אחד מפריטי המידע למטה}}',
 'passwordreset-username' => 'שם משתמש:',
 'passwordreset-domain' => 'תחום:',
 'passwordreset-capture' => 'לצפות בדוא"ל הנשלח?',
@@ -1051,7 +1063,7 @@ $2
 'confirmedittext' => 'עליכם לאמת את כתובת הדוא"ל שלכם לפני שתוכלו לערוך דפים. אנא הגדירו ואמתו את כתובת הדוא"ל שלכם באמצעות [[Special:Preferences|העדפות המשתמש]] שלכם.',
 'nosuchsectiontitle' => 'הפסקה לא נמצאה',
 'nosuchsectiontext' => 'ניסיתם לערוך פסקה שאינה קיימת. ייתכן שהיא הועברה או נמחקה בעת שצפיתם בדף.',
-'loginreqtitle' => '×\9b× ×\99ס×\94 ×\9c×\97ש×\91×\95×\9f × ×\93רשת',
+'loginreqtitle' => '× ×\93רשת ×\9b× ×\99ס×\94 ×\9c×\97ש×\91×\95×\9f',
 'loginreqlink' => 'להיכנס לחשבון',
 'loginreqpagetext' => 'עליכם $1 כדי לצפות בדפים אחרים.',
 'accmailtitle' => 'הסיסמה נשלחה',
@@ -1161,7 +1173,7 @@ $2
 'nocreate-loggedin' => 'אינכם מורשים ליצור דפים חדשים.',
 'sectioneditnotsupported-title' => 'עריכת פסקאות אינה נתמכת',
 'sectioneditnotsupported-text' => 'עריכת פסקאות אינה נתמכת בדף זה.',
-'permissionserrors' => 'ש×\92×\99×\90×\95ת ×\94רש×\90×\94',
+'permissionserrors' => 'שגיאת הרשאה',
 'permissionserrorstext' => 'אינכם מורשים לבצע פעולה זו, {{PLURAL:$1|מהסיבה הבאה|מהסיבות הבאות}}:',
 'permissionserrorstext-withaction' => 'אינכם מורשים $2, {{PLURAL:$1|מהסיבה הבאה|מהסיבות הבאות}}:',
 'recreate-moveddeleted-warn' => "'''אזהרה: הנכם יוצרים דף חדש שנמחק בעבר.'''
@@ -1177,6 +1189,7 @@ $2
 נראה שהוא נמחק.',
 'edit-conflict' => 'התנגשות עריכה.',
 'edit-no-change' => 'המערכת התעלמה מעריכתכם, כיוון שלא נעשה שינוי בטקסט.',
+'postedit-confirmation' => 'עריכתך נשמרה.',
 'edit-already-exists' => 'לא ניתן ליצור דף חדש.
 הוא כבר קיים.',
 'defaultmessagetext' => 'טקסט ההודעה המקורי',
@@ -1219,6 +1232,7 @@ $2
 'undo-failure' => 'לא ניתן היה לבטל את העריכה עקב התנגשות עם עריכות מאוחרות יותר.',
 'undo-norev' => 'לא ניתן היה לבטל את העריכה כי היא אינה קיימת או כי היא נמחקה.',
 'undo-summary' => 'ביטול גרסה $1 של [[Special:Contributions/$2|$2]] ([[User talk:$2|שיחה]])',
+'undo-summary-username-hidden' => 'ביטול גרסה $1 של משתמש מוסתר',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'לא ניתן ליצור את החשבון',
@@ -1243,8 +1257,8 @@ $2
 מקרא: '''({{int:cur}})''' = השוואה עם הגרסה הנוכחית, '''({{int:last}})''' = השוואה עם הגרסה הקודמת, '''{{int:minoreditletter}}''' = שינוי משני.",
 'history-fieldset-title' => 'חיפוש בהיסטוריית הדף',
 'history-show-deleted' => 'רק מחוקות',
-'histfirst' => 'ר×\90ש×\95× ×\95ת',
-'histlast' => '×\90×\97ר×\95× ×\95ת',
+'histfirst' => '×\94×\99ש×\9f ×\91×\99×\95תר',
+'histlast' => '×\94×\97×\93ש ×\91×\99×\95תר',
 'historysize' => '({{PLURAL:$1|בית אחד|$1 בתים}})',
 'historyempty' => '(ריק)',
 
@@ -1398,6 +1412,7 @@ $1",
 'compareselectedversions' => 'השוואת הגרסאות שנבחרו',
 'showhideselectedversions' => 'הצגת/הסתרת הגרסאות שנבחרו',
 'editundo' => 'ביטול',
+'diff-empty' => '(אין הבדל)',
 'diff-multi' => '({{PLURAL:$1|גרסת ביניים אחת|$1 גרסאות ביניים}} של {{PLURAL:$2|משתמש אחד|$2 משתמשים}} {{PLURAL:$1|אינה מוצגת|אינן מוצגות}})',
 'diff-multi-manyusers' => '({{PLURAL:$1|גרסת ביניים אחת|$1 גרסאות ביניים}} של יותר {{PLURAL:$2|ממשתמש אחד|מ־$2 משתמשים}} {{PLURAL:$1|אינה מוצגת|אינן מוצגות}})',
 'difference-missing-revision' => '{{PLURAL:$2|גרסה אחת|$2 גרסאות}} של ההבדל הזה בין שתי גרסאות ($1) {{PLURAL:$2|לא נמצאה|לא נמצאו}}.
@@ -1425,7 +1440,6 @@ $1",
 'searchmenu-legend' => 'אפשרויות חיפוש',
 'searchmenu-exists' => "'''קיים דף בשם \"[[:\$1]]\" באתר זה.'''",
 'searchmenu-new' => "'''יצירת הדף \"[[:\$1]]\" באתר זה.'''",
-'searchhelp-url' => 'Help:תפריט ראשי',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|מציאת דפים עם קידומת זו]]',
 'searchprofile-articles' => 'דפי תוכן',
 'searchprofile-project' => 'עזרה ודפי המיזם',
@@ -1502,7 +1516,6 @@ $1",
 'resetprefs' => 'מחיקת שינויים שלא נשמרו',
 'restoreprefs' => 'שחזור ההגדרות ההתחלתיות',
 'prefs-editing' => 'עריכה',
-'prefs-edit-boxsize' => 'גודל חלון העריכה.',
 'rows' => 'שורות:',
 'columns' => 'עמודות:',
 'searchresultshead' => 'חיפוש',
@@ -1513,9 +1526,6 @@ $1",
 'recentchangesdays-max' => 'לכל היותר {{PLURAL:$1|יום אחד|יומיים|$1 ימים}}',
 'recentchangescount' => 'מספר העריכות שיוצגו כברירת מחדל:',
 'prefs-help-recentchangescount' => 'כולל שינויים אחרונים, היסטוריית הדף ויומנים.',
-'prefs-help-watchlist-token' => 'מילוי השדה הזה במפתח סודי ייצור הזנת RSS עבור רשימת המעקב שלכם.
-כל מי שיודע את המפתח שבשדה זה יוכל לקרוא את רשימת המעקב שלכם, לכן עליכם לבחור ערך בטוח.
-תוכלו להשתמש בערך הבא, שנוצר באופן אקראי: $1',
 'savedprefs' => 'העדפותיך נשמרו.',
 'timezonelegend' => 'אזור זמן:',
 'localtime' => 'זמן מקומי:',
@@ -1546,7 +1556,6 @@ $1",
 'prefs-reset-intro' => 'באפשרותכם להשתמש בדף זה כדי להחזיר את ההעדפות שלכם להגדרות ברירת המחדל של האתר.
 לא ניתן לבטל פעולה זו.',
 'prefs-emailconfirm-label' => 'אימות כתובת דוא"ל:',
-'prefs-textboxsize' => 'גודל חלון העריכה',
 'youremail' => 'דואר אלקטרוני:',
 'username' => 'שם {{GENDER:$1|המשתמש|המשתמשת}}:',
 'uid' => 'המספר הסידורי של {{GENDER:$1|המשתמש|המשתמשת}}:',
@@ -1579,7 +1588,9 @@ $1",
 'prefs-signature' => 'חתימה',
 'prefs-dateformat' => 'מבנה תאריך',
 'prefs-timeoffset' => 'הפרש זמנים',
-'prefs-advancedediting' => 'אפשרויות מתקדמות',
+'prefs-advancedediting' => 'כללי',
+'prefs-editor' => 'חלון העריכה',
+'prefs-preview' => 'תצוגה מקדימה',
 'prefs-advancedrc' => 'אפשרויות מתקדמות',
 'prefs-advancedrendering' => 'אפשרויות מתקדמות',
 'prefs-advancedsearchoptions' => 'אפשרויות מתקדמות',
@@ -1615,6 +1626,7 @@ $1",
 'userrights-changeable-col' => 'קבוצות שבאפשרותכם לשנות',
 'userrights-unchangeable-col' => 'קבוצות שאין באפשרותכם לשנות',
 'userrights-conflict' => 'התנגשות הרשאות משתמש! אנא בצעו את השינויים שלכם שוב.',
+'userrights-removed-self' => 'הסרת בהצלחה את הרשאות המשתמש שלך. לכן אין לך כעת אפשרות לגשת לדף זה.',
 
 # Groups
 'group' => 'קבוצה:',
@@ -1658,7 +1670,7 @@ $1",
 'right-reupload-shared' => 'דריסה מקומית של קבצים מאתר קובצי המדיה המשותף',
 'right-upload_by_url' => 'העלאת קובץ מכתובת אינטרנט',
 'right-purge' => 'רענון זיכרון המטמון של האתר לדף מסוים ללא דף אישור',
-'right-autoconfirmed' => 'ער×\99×\9bת ×\93פ×\99×\9d ×\9e×\95×\92× ×\99×\9d ×\97×\9cק×\99ת',
+'right-autoconfirmed' => 'פ×\98×\95ֹר ×\9e×\94×\92×\91×\9c×\95ת ×§×¦×ª ×\9e×\91×\95סס×\95ת ×\9bת×\95×\91ת IP',
 'right-bot' => 'טיפול בעריכות כאוטומטיות',
 'right-nominornewtalk' => 'ביטול הודעת ההודעות החדשות בעת עריכה משנית בדפי שיחה',
 'right-apihighlimits' => 'שימוש ב־API עם פחות הגבלות',
@@ -1680,11 +1692,19 @@ $1",
 'right-proxyunbannable' => 'עקיפת חסימות אוטומטיות של שרתי פרוקסי',
 'right-unblockself' => 'שחרור חסימה של עצמם',
 'right-protect' => 'שינוי רמות הגנה ועריכת דפים מוגנים',
-'right-editprotected' => 'עריכת דפים מוגנים (ללא הגנה מדורגת)',
+'right-editprotected' => 'עריכת דפים שמוגנים ברמת "{{int:protect-level-sysop}}"',
+'right-editsemiprotected' => 'עריכת דפים שמוגנים ברמת "{{int:protect-level-autoconfirmed}}"',
 'right-editinterface' => 'עריכת ממשק המשתמש',
 'right-editusercssjs' => 'עריכת דפי CSS ו־JavaScript של משתמשים אחרים',
 'right-editusercss' => 'עריכת דפי CSS של משתמשים אחרים',
 'right-edituserjs' => 'עריכת דפי JavaScript של משתמשים אחרים',
+'right-editmyusercss' => 'עריכת דפי CSS של עצמך',
+'right-editmyuserjs' => 'עריכת דפי JavaScript של עצמך',
+'right-viewmywatchlist' => 'צפייה ברשימת המעקב של עצמך',
+'right-editmywatchlist' => 'עריכת רשימת המעקב של עצמך. יצוין שמספר פעולות עדיין יוסיפו דפים גם ללא הרשאה זו.',
+'right-viewmyprivateinfo' => 'צפיה במידע הפרטי שלך (למשל: כתובת דוא"ל, שם אמתי ועוד)',
+'right-editmyprivateinfo' => 'עריכת המידע האישי שלך (למשל דוא"ל, שם אמתי)',
+'right-editmyoptions' => 'עריכת ההעדפות שלך',
 'right-rollback' => 'שחזור מהיר של עריכות המשתמש האחרון שערך דף מסוים',
 'right-markbotedits' => 'סימון עריכות משוחזרות כעריכות של בוט',
 'right-noratelimit' => 'עקיפת הגבלת קצב העריכות',
@@ -1746,12 +1766,17 @@ $1",
 'action-userrights-interwiki' => 'לערוך את ההרשאות של משתמשים באתרי ויקי אחרים',
 'action-siteadmin' => 'לנעול או לבטל את נעילת בסיס הנתונים',
 'action-sendemail' => 'לשלוח דואר אלקטרוני',
+'action-editmywatchlist' => 'לערוך את רשימת המעקב שלך',
+'action-viewmywatchlist' => 'לצפות ברשימת המעקב שלך',
+'action-viewmyprivateinfo' => 'צפייה במידע הפרטי שלך',
+'action-editmyprivateinfo' => 'לערוך את המידע הפרטי שלך',
 
 # Recent changes
 'nchanges' => '{{PLURAL:$1|שינוי אחד|$1 שינויים}}',
 'recentchanges' => 'שינויים אחרונים',
 'recentchanges-legend' => 'אפשרויות בשינויים האחרונים',
 'recentchanges-summary' => 'ניתן לעקוב אחרי השינויים האחרונים באתר בדף זה.',
+'recentchanges-noresult' => 'אין שינויים במהלך התקופה הנתונה התאמת קריטריונים אלה.',
 'recentchanges-feed-description' => 'ניתן לעקוב אחרי השינויים האחרונים באתר בדף זה.',
 'recentchanges-label-newpage' => 'בעריכה זו נוצר דף חדש',
 'recentchanges-label-minor' => 'זוהי עריכה משנית',
@@ -1788,7 +1813,6 @@ $1",
 'recentchangeslinked-feed' => 'שינויים בדפים המקושרים',
 'recentchangeslinked-toolbox' => 'שינויים בדפים המקושרים',
 'recentchangeslinked-title' => 'שינויים בדפים המקושרים מהדף $1',
-'recentchangeslinked-noresult' => 'לא היו שינויים בדפים המקושרים בתקופה זו.',
 'recentchangeslinked-summary' => "בדף מיוחד זה רשומים השינויים האחרונים בדפים המקושרים מתוך הדף (או בדפים הכלולים בקטגוריה).
 דפים ב[[Special:Watchlist|רשימת המעקב שלכם]] מוצגים ב'''הדגשה'''.",
 'recentchangeslinked-page' => 'שם הדף:',
@@ -1800,7 +1824,7 @@ $1",
 'reuploaddesc' => 'ביטול ההעלאה וחזרה לטופס העלאת קבצים לשרת',
 'upload-tryagain' => 'שליחת התיאור החדש של הקובץ',
 'uploadnologin' => 'לא נכנסתם לחשבון',
-'uploadnologintext' => 'עליכם [[Special:UserLogin|להיכנס לחשבון]] כדי להעלות קבצים.',
+'uploadnologintext' => 'עליכם $1 כדי להעלות קבצים.',
 'upload_directory_missing' => 'שרת האינטרנט אינו יכול ליצור את תיקיית ההעלאות ($1) החסרה.',
 'upload_directory_read_only' => 'שרת האינטרנט אינו יכול לכתוב בתיקיית ההעלאות ($1).',
 'uploaderror' => 'שגיאה בהעלאת הקובץ',
@@ -2441,7 +2465,6 @@ $1',
 'unwatchthispage' => 'הפסקת המעקב אחרי דף זה',
 'notanarticle' => 'זהו אינו דף תוכן',
 'notvisiblerev' => 'הגרסה האחרונה שנוצרה על ידי משתמש אחר נמחקה',
-'watchnochange' => 'אף אחד מהדפים ברשימת המעקב לא עודכן בפרק הזמן המצוין למעלה.',
 'watchlist-details' => 'ברשימת המעקב יש {{PLURAL:$1|דף אחד|$1 דפים}} (לא כולל דפי שיחה).',
 'wlheader-enotif' => 'הודעות דוא"ל מאופשרות.',
 'wlheader-showupdated' => "דפים שהשתנו מאז ביקורכם האחרון בהם מוצגים ב'''הדגשה'''.",
@@ -2549,7 +2572,7 @@ $UNWATCHURL
 העריכה האחרונה הייתה של [[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]]',
-'revertpage-nouser' => 'שוחזר מעריכות של (שם המשתמש הוסר) לעריכה האחרונה של [[User:$1|$1]]',
+'revertpage-nouser' => 'שוחזר מעריכות של משתמש שהוסר לעריכה האחרונה של [[User:$1|$1]]',
 'rollback-success' => 'שוחזר מעריכה של $1 לעריכה האחרונה של $2',
 
 # Edit tokens
@@ -2690,7 +2713,7 @@ $1',
 'mycontris' => 'תרומות',
 'contribsub2' => 'עבור $1 ($2)',
 'nocontribs' => 'לא נמצאו שינויים המתאימים לקריטריונים אלו.',
-'uctop' => '(×\90×\97ר×\95×\9f)',
+'uctop' => '(× ×\95×\9b×\97×\99)',
 'month' => 'עד החודש:',
 'year' => 'עד השנה:',
 
@@ -4028,7 +4051,6 @@ $5
 'version-other' => 'אחר',
 'version-mediahandlers' => 'מציגי מדיה',
 'version-hooks' => 'מבני Hook',
-'version-extension-functions' => 'פונקציות של הרחבות',
 'version-parser-extensiontags' => 'תגיות של הרחבות מפענח',
 'version-parser-function-hooks' => 'משתנים',
 'version-hook-name' => 'שם ה־Hook',
@@ -4109,6 +4131,7 @@ $5
 'tags' => 'התגיות הקיימות לסימון שינויים',
 'tag-filter' => 'מסנן [[Special:Tags|תגיות]]:',
 'tag-filter-submit' => 'סינון',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|תג|תגים}}]]: $2)',
 'tags-title' => 'תגיות',
 'tags-intro' => 'דף זה מכיל רשימה של תגיות שהתוכנה יכולה לסמן איתן עריכה, ומשמעויותיהן.',
 'tags-tag' => 'שם התגית',
index 6f034a3..98c2bfa 100644 (file)
@@ -182,7 +182,7 @@ $digitTransformTable = array(
        '8' => '८', # &#x096e;
        '9' => '९', # &#x096f;
 );
-$linkTrail = "/^([a-z]+)(.*)$/sD";
+$linkTrail = "/^([a-z\x{0900}-\x{0963}\x{0966}-\x{A8E0}-\x{A8FF}]+)(.*)$/sDu";
 
 $digitGroupingPattern = "##,##,###";
 
@@ -195,7 +195,7 @@ $messages = array(
 'tog-newpageshidepatrolled' => 'नए पृष्ठों की सूची में से जाँचे हुए पृष्ठों को छिपाएँ',
 'tog-extendwatchlist' => 'केवल हालिया ही नहीं, बल्कि सभी परिवर्तनों को दिखाने के लिए ध्यानसूची को विस्तारित करें',
 'tog-usenewrc' => 'हाल में हुए परिवर्तनों में और ध्यानसूची में परिवर्तनों को पृष्ठ अनुसार समूहों में बाँटें (जावास्क्रिप्ट आवश्यक)',
-'tog-numberheadings' => 'शीर्षक स्वयं-क्रमांकित करें',
+'tog-numberheadings' => 'शीर्षक स्व-क्रमांकित करें',
 'tog-showtoolbar' => 'सम्पादन औज़ारपट्टी दिखाएँ (जावास्क्रिप्ट की आवश्यकता है)',
 'tog-editondblclick' => 'दुगुने क्लिक पर पृष्ठ संपादित करें (जावास्क्रिप्ट की आवश्यकता है)',
 'tog-editsection' => '[संपादित करें] कड़ियों द्वारा अनुभाग संपादन सक्षम करें',
@@ -216,10 +216,10 @@ $messages = array(
 'tog-enotifrevealaddr' => 'अधिसूचना ई-मेल में मेरा ई-मेल पता दर्शाएँ',
 'tog-shownumberswatching' => 'ध्यान रखने वाले सदस्यों की संख्या दिखाएँ',
 'tog-oldsig' => 'वर्तमान हस्ताक्षर:',
-'tog-fancysig' => 'हसà¥\8dताà¤\95à¥\8dषर à¤\95ा à¤µà¤¿à¤\95िपाठ à¤\95à¥\87 à¤¸à¤®à¤¾à¤¨ à¤\89पयà¥\8bà¤\97 à¤\95रें (बिना स्वचालित कड़ी के)',
+'tog-fancysig' => 'हसà¥\8dताà¤\95à¥\8dषर à¤\95ा à¤µà¤¿à¤\95िपाठ à¤\95à¥\87 à¤¸à¤®à¤¾à¤¨ à¤®à¤¾à¤¨ें (बिना स्वचालित कड़ी के)',
 'tog-showjumplinks' => '"की ओर जाएं" कड़ियाँ उपलब्ध कराएँ',
 'tog-uselivepreview' => 'सजीवन झलक का उपयोग करें (जावास्क्रिप्ट चाहिए) (प्रयोगक्षम)',
-'tog-forceeditsummary' => 'यदि à¤¬à¤¦à¤²à¤¾à¤µ सारांश ना दिया गया हो तो मुझे सूचित करें',
+'tog-forceeditsummary' => 'यदि à¤¸à¤®à¥\8dपादन सारांश ना दिया गया हो तो मुझे सूचित करें',
 'tog-watchlisthideown' => 'मेरी ध्यानसूची से मेरे किए परिवर्तन छिपाएँ',
 'tog-watchlisthidebots' => 'मेरी ध्यानसूची से बॉटों द्वारा किए परिवर्तन छिपाएँ',
 'tog-watchlisthideminor' => 'मेरी ध्यानसूची से छोटे परिवर्तन छिपाएँ',
@@ -230,6 +230,7 @@ $messages = array(
 'tog-diffonly' => 'अवतरणों में अन्तर दर्शाते समय पुराने अवतरण न दिखाएँ',
 'tog-showhiddencats' => 'छिपाई हुई श्रेणियाँ दिखाएँ',
 'tog-norollbackdiff' => 'सम्पादन वापस लेने के बाद अन्तर न दिखाएँ',
+'tog-useeditwarning' => 'जब मैं किसी सम्पादन पृष्ठ को बिना सहेजे बदलावों के साथ छोड़ूँ तो मुझे सूचित करें।',
 
 'underline-always' => 'सदैव',
 'underline-never' => 'कभी नहीं',
@@ -293,6 +294,18 @@ $messages = array(
 'oct' => 'अक्टू॰',
 'nov' => 'नव॰',
 'dec' => 'दिस॰',
+'january-date' => 'जनवरी $1',
+'february-date' => 'फ़रवरी $1',
+'march-date' => 'मार्च $1',
+'april-date' => 'अप्रैल $1',
+'may-date' => 'मई $1',
+'june-date' => 'जून $1',
+'july-date' => 'जुलाई $1',
+'august-date' => 'अगस्त $1',
+'september-date' => 'सितम्बर $1',
+'october-date' => 'अक्टूबर $1',
+'november-date' => 'नवम्बर $1',
+'december-date' => 'दिसम्बर $1',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|श्रेणी|श्रेणियाँ}}',
@@ -311,7 +324,7 @@ $messages = array(
 'listingcontinuesabbrev' => 'आगे.',
 'index-category' => 'सूचीबद्ध पृष्ठ',
 'noindex-category' => 'असूचीबद्ध पृष्ठ',
-'broken-file-category' => 'à¤\9fà¥\82à¤\9fà¥\80 à¤¹à¥\81à¤\88 à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ा कड़ियों वाले पृष्ठ',
+'broken-file-category' => 'à¤\9fà¥\82à¤\9fà¥\80 à¤¹à¥\81à¤\88 à¤«à¤¼à¤¾à¤\87ल कड़ियों वाले पृष्ठ',
 
 'about' => 'के बारे में',
 'article' => 'लेख',
@@ -327,11 +340,11 @@ $messages = array(
 # Cologne Blue skin
 'qbfind' => 'खोज',
 'qbbrowse' => 'ब्राउज़',
-'qbedit' => 'बदलà¥\87à¤\82',
+'qbedit' => 'समà¥\8dपादन',
 'qbpageoptions' => 'यह पृष्ठ',
 'qbmyoptions' => 'मेरे पृष्ठ',
 'qbspecialpages' => 'विशेष पृष्ठ',
-'faq' => 'बहà¥\81धा à¤ªà¥\82à¤\9bित प्रश्न',
+'faq' => 'बहà¥\81धा à¤ªà¥\82à¤\9bà¥\87 प्रश्न',
 'faqpage' => 'Project:अक्सर पूछे जाने वाले सवाल',
 
 # Vector skin
@@ -355,7 +368,7 @@ $messages = array(
 'errorpagetitle' => 'त्रुटि',
 'returnto' => '$1 को लौटें।',
 'tagline' => '{{SITENAME}} से',
-'help' => 'मदद',
+'help' => 'सहायता',
 'search' => 'खोज',
 'searchbutton' => 'खोजें',
 'go' => 'जाएँ',
@@ -373,13 +386,14 @@ $messages = array(
 'create-this-page' => 'यह पृष्ठ बनाएँ',
 'delete' => 'हटाएँ',
 'deletethispage' => 'इस पृष्ठ को हटायें',
+'undeletethispage' => 'इस पृष्ठ को पुनर्स्थापित करें।',
 'undelete_short' => '{{PLURAL:$1|एक हटाया गया|$1 हटाए गए}} बदलाव वापस लायें',
 'viewdeleted_short' => 'देखें {{PLURAL:$1|एक हटाया गया सम्पादन|$1 हटाए गए सम्पादन}}',
 'protect' => 'सुरक्षित करें',
 'protect_change' => 'बदलें',
 'protectthispage' => 'इस पृष्ठ को सुरक्षित करें',
 'unprotect' => 'असुरक्षित',
-'unprotectthispage' => 'à¤\87स à¤ªà¥\83षà¥\8dठ à¤\95à¥\8b à¤¸à¥\81रà¤\95à¥\8dषित à¤\95रà¥\88',
+'unprotectthispage' => 'à¤\87स à¤ªà¥\83षà¥\8dठ à¤\95ा à¤¸à¥\81रà¤\95à¥\8dषा à¤¸à¥\8dतर à¤¬à¤¦à¤²à¥\87à¤\82',
 'newpage' => 'नया पृष्ठ',
 'talkpage' => 'इस पृष्ठ के बारे में चर्चा करें',
 'talkpagelinktext' => 'चर्चा',
@@ -409,7 +423,7 @@ $messages = array(
 'jumptosearch' => 'खोज',
 'view-pool-error' => 'क्षमा करें, इस समय सर्वरों पर अतिभार है।
 बहुत सारे प्रयोक्ता इस पृष्ठ को देखने का प्रयास कर रहे हैं।
-à¤\95à¥\83पया à¤\95à¥\81à¤\9b à¤¸à¤®à¤¯ à¤ªà¥\8dरतà¥\80à¤\95à¥\8dषा à¤\95र à¤«à¤¿à¤° à¤¸à¥\87 à¤\87स à¤ªà¥\83षà¥\8dठ à¤¤à¤\95 à¤\9cाने का प्रयास करें।
+à¤\95à¥\83पया à¤\95à¥\81à¤\9b à¤¸à¤®à¤¯ à¤ªà¥\8dरतà¥\80à¤\95à¥\8dषा à¤\95र à¤«à¤¿à¤° à¤¸à¥\87 à¤\87स à¤ªà¥\83षà¥\8dठ à¤\95à¥\8b à¤¦à¥\87à¤\96ने का प्रयास करें।
 
 $1',
 'pool-timeout' => 'तालाबन्दी के लिए प्रतीक्षा समय समाप्त',
@@ -426,10 +440,9 @@ $1',
 'disclaimers' => 'अस्वीकरण',
 'disclaimerpage' => 'Project:साधारण अस्वीकरण',
 'edithelp' => 'सम्पादन सहायता',
-'edithelppage' => 'Help:संपादन',
 'helppage' => 'Help:सहायता',
-'mainpage' => 'मà¥\81à¤\96à¥\8dय à¤ªà¥\83षà¥\8dठ',
-'mainpage-description' => 'मà¥\81à¤\96à¥\8dय à¤ªà¥\83षà¥\8dठ',
+'mainpage' => 'मुखपृष्ठ',
+'mainpage-description' => 'मुखपृष्ठ',
 'policy-url' => 'Project:नीति',
 'portal' => 'समाज मुखपृष्ठ',
 'portal-url' => 'Project:समाज मुखपृष्ठ',
@@ -446,13 +459,13 @@ $1',
 
 'ok' => 'ठीक है',
 'retrievedfrom' => '"$1" से लिया गया',
-'youhavenewmessages' => 'आपके लिए $1 है। ($2)',
+'youhavenewmessages' => 'à¤\86पà¤\95à¥\87 à¤²à¤¿à¤\8f $1 à¤¹à¥\88à¤\82। ($2)',
 'newmessageslink' => 'नए सन्देश',
 'newmessagesdifflink' => 'पिछला बदलाव',
-'youhavenewmessagesfromusers' => 'आपके लिये {{PLURAL:$3|एक अन्य सदस्य का सन्देश है|$3 अन्य सदस्यों के सन्देश हैं}}। ($2)',
+'youhavenewmessagesfromusers' => 'आपके लिये {{PLURAL:$3|एक अन्य सदस्य|$3 अन्य सदस्यों}} के $1 हैं। ($2)',
 'youhavenewmessagesmanyusers' => 'आपके लिये $1 हैं। ($2)',
 'newmessageslinkplural' => '{{PLURAL:$1|एक नया सन्देश|नये सन्देश}}',
-'newmessagesdifflinkplural' => 'पिछले {{PLURAL:$1|परिवर्तन}}',
+'newmessagesdifflinkplural' => '{{PLURAL:$1|पिछला|पिछले}} बदलाव',
 'youhavenewmessagesmulti' => '$1 पर आपके लिए नया संदेश है',
 'editsection' => 'सम्पादन',
 'editold' => 'सम्पादन',
@@ -568,20 +581,29 @@ $1',
 'viewyourtext' => "आप इस पृष्ठ में ''अपने सम्पादन'' का स्रोत देख सकते हैं और उसकी नकल उतार सकते हैं:",
 'protectedinterface' => 'यह पृष्ठ इस विकी के सॉफ़्टवेयर का इंटरफ़ेस पाठ देता है, और इसे गलत प्रयोग से बचाने के लिये सुरक्षित कर दिया गया है।
 सभी विकियों के लिए अनुवाद जोड़ने या बदलने के लिए कृपया मीडियाविकि के क्षेत्रीयकरण प्रकल्प [//translatewiki.net/ translatewiki.net] का प्रयोग करें।',
-'editinginterface' => "'''चेतावनी:''' आप एक ऐसे पृष्ठ को बदल रहे हैं जो सॉफ़्टवेयर का इंटरफ़ेस पाठ प्रदान करता है।
-इस पृष्ठ को बदलने से अन्य सदस्यों को प्रदर्शित इंटरफ़ेस की शक्लोसूरत में बदलाव आएगा। अनुवादों के लिए कृपया [//translatewiki.net/wiki/Main_Page?setlang=hi translatewiki.net] का प्रयोग करें, यह मीडियाविकि की क्षेत्रीयकरण परियोजना है।",
+'editinginterface' => "'''चेतावनी:''' आप एक ऐसे पृष्ठ को बदल रहे हैं जो सॉफ़्टवेयर का इंटरफ़ेस पाठ प्रदान करता है।
+इस पृष्ठ को बदलने से अन्य सदस्यों को प्रदर्शित इंटरफ़ेस की शक्लोसूरत में बदलाव आएगा।
+सभी विकियों के लिए अनुवाद बदलने या जोड़ने के लिए कृपया मीडियाविकि की क्षेत्रीयकरण परियोजना [//translatewiki.net/wiki/Main_Page?setlang=hi translatewiki.net] का प्रयोग करें।",
 'sqlhidden' => '(छुपाई हुई SQL पृच्छा)',
 'cascadeprotected' => 'यह पृष्ठ सुरक्षित हैं, क्योंकी यह निम्नलिखित {{PLURAL:$1|पृष्ठ|पृष्ठों}} की सुरक्षा-सीढ़ी में समाविष्ट है:
 $2',
 'namespaceprotected' => "आपको '''$1''' नामस्थान में समाविष्ट पृष्ठों को बदलने की अनुमति नहीं है।",
 'customcssprotected' => 'आपको इस CSS पृष्ठ को संपादित करने की अनुमति नहीं है, क्योंकि इसमें अन्य सदस्य की व्यक्तिगत सेटिंग्स शामिल हैं।',
 'customjsprotected' => 'आपको इस जावास्क्रिप्ट पृष्ठ को संपादित करने की अनुमति नहीं है, क्योंकि इसमें अन्य सदस्य की व्यक्तिगत सेटिंग्स शामिल हैं।',
+'mycustomcssprotected' => 'आपके पास इस CSS पृष्ठ को सम्पादित करने का अधिकार नहीं है।',
+'mycustomjsprotected' => 'आपके पास इस जावास्क्रिप्ट पृष्ठ को सम्पादित करने का अधिकार नहीं है।',
+'myprivateinfoprotected' => 'आपके पास अपनी व्यक्तिगत जानकारी बदलने की अनुमति नहीं है।',
+'mypreferencesprotected' => 'आपके पास अपनी वरीयताएँ बदलने की अनुमति नहीं है।',
 'ns-specialprotected' => 'विशेष पृष्ठ सम्पादित नहीं किये जा सकते।',
 'titleprotected' => 'सदस्य [[User:$1|$1]] ने इस शीर्षक का पृष्ठ बनाने से सुरक्षित किया हुआ है।
 इसके लिये निम्न कारण दिया गया है: "\'\'$2\'\'"',
+'filereadonlyerror' => '"$1" फ़ाइल को बदलने में असक्षम क्योंकि भण्डार "$2" इस समय \'केवल पाठन हेतु\' (रीड ओनली) है।
+
+जिस प्रबंधक ने ये प्रबंध लगाया है उन्होंने निम्न विवरण प्रदान किया है: "$3"।',
 'invalidtitle-knownnamespace' => '"$2" नामस्थान और "$3" नाम वाला गलत शीर्षक',
 'invalidtitle-unknownnamespace' => 'अज्ञात नामस्थान संख्या $1 और नाम "$2" वाला गलत शीर्षक',
 'exception-nologin' => 'लॉग इन नहीं किया है',
+'exception-nologin-text' => 'इस पृष्ठ अथवा कार्य के लिए आपको विकि में लॉग्ड इन होना आवश्यक है।',
 
 # Virus scanner
 'virus-badscanner' => "गलत जमाव: अज्ञात वायरस जाँचक: ''$1''",
@@ -597,9 +619,18 @@ $2',
 'welcomecreation-msg' => 'आपका खाता बना दिया गया है।
 अपनी [[Special:Preferences|{{SITENAME}} वरीयताएँ]] बदलना ना भूलियेगा।',
 'yourname' => 'सदस्यनाम:',
+'userlogin-yourname' => 'सदस्यनाम',
+'userlogin-yourname-ph' => 'अपना सदस्यनाम लिखें',
 'yourpassword' => 'कूटशब्द:',
+'userlogin-yourpassword' => 'कूटशब्द (पासवर्ड)',
+'userlogin-yourpassword-ph' => 'अपना कूटशब्द लिखें',
+'createacct-yourpassword-ph' => 'कूटशब्द दर्ज करें',
 'yourpasswordagain' => 'कूटशब्द दुबारा लिखें:',
+'createacct-yourpasswordagain' => 'कूटशब्द की पुष्टि करें',
+'createacct-yourpasswordagain-ph' => 'कूटशब्द पुनः लिखें',
 'remembermypassword' => 'इस ब्राउज़र पर मेरा लॉगिन याद रखें (अधिकतम $1 {{PLURAL:$1|दिन|दिनों}} के लिए)',
+'userlogin-remembermypassword' => 'मुझे लॉग्ड इन रखें',
+'userlogin-signwithsecure' => 'सुरक्षित कनेक्शन का प्रयोग करें',
 'securelogin-stick-https' => 'प्रवेश के बाद HTTPS से जुड़े रहें',
 'yourdomainname' => 'आपका डोमेन:',
 'password-change-forbidden' => 'आप इस विकि पर कूटशब्द नहीं बदल सकते हैं।',
@@ -612,18 +643,38 @@ $2',
 'logout' => 'सत्रांत',
 'userlogout' => 'सत्रांत',
 'notloggedin' => 'लॉग इन नहीं किया है',
+'userlogin-noaccount' => 'खाता नहीं है?',
+'userlogin-joinproject' => '{{SITENAME}} से जुड़ें',
 'nologin' => "क्या आपने सदस्यता नहीं ली है? '''$1'''।",
 'nologinlink' => 'नया खाता बनाएँ',
 'createaccount' => 'खाता बनाएँ',
 'gotaccount' => "पहले से आपका खाता है? '''$1''' करें।",
 'gotaccountlink' => 'लॉग इन',
 'userlogin-resetlink' => 'अपनी प्रवेश जानकारी भूल गए हैं?',
-'createaccountmail' => 'ई-मेल द्वारा',
+'userlogin-resetpassword-link' => 'अपना कूटशब्द रीसेट करें',
+'helplogin-url' => 'Help:लॉगिंग इन',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|लॉग इन करने में सहायता]]',
+'createacct-join' => 'अपनी जानकारी नीचे लिखें',
+'createacct-emailrequired' => 'ई-मेल पता',
+'createacct-emailoptional' => 'ई-मेल पता (वैकल्पिक)',
+'createacct-email-ph' => 'अपना ई-मेल पता लिखें',
+'createaccountmail' => 'एक अस्थायी यादृच्छिक (रैंडम) कूटशब्द चुनें और उसे निम्नलिखित ई-मेल पते पर भेज दें',
+'createacct-realname' => 'असली नाम (वैकल्पिक)',
 'createaccountreason' => 'कारण:',
+'createacct-reason' => 'कारण',
+'createacct-reason-ph' => 'आप एक अन्य खाता क्यों बना रहे हैं',
+'createacct-captcha' => 'सुरक्षा जाँच',
+'createacct-imgcaptcha-ph' => 'उपरोक्त पाठ लिखें',
+'createacct-submit' => 'अपना खाता बनाएँ',
+'createacct-benefit-heading' => '{{SITENAME}} आपके जैसे लोगों द्वारा बनायी गई है।',
+'createacct-benefit-body1' => '{{PLURAL:$1|सम्पादन}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|पृष्ठ}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|योगदानकर्ता}}',
 'badretype' => 'आपने जो कूटशब्द दिये हैं वे एक दूसरे से नहीं मिलते। फिर से लिखें।',
 'userexists' => 'आपका दिया सदस्यनाम पहले से प्रयोग में है।
 कृपया कोई अन्य सदस्यनाम चुनें।',
 'loginerror' => 'लॉग इन त्रुटि',
+'createacct-error' => 'खाता निर्माण त्रुटि',
 'createaccounterror' => 'खाता नहीं बन पाया: $1',
 'nocookiesnew' => 'आपका खाता खोल दिया गया है, पर आप लॉग इन नहीं हुए हैं।
 {{SITENAME}} पर लॉग इन करने के लिये कुकीज़ का प्रयोग होता है।
@@ -663,8 +714,8 @@ $2',
 'blocked-mailpassword' => 'आपके आइ॰पी पते को सम्पादन करने से अवरुद्ध कर दिया गया है, और गलत इस्तेमाल रोकने के लिये कूटशब्द पुनः प्राप्ति की सुविधा इस आइ॰पी पर बंद कर दी गई है।',
 'eauthentsent' => 'दर्ज किये हुए ई-मेल पते पर एक सत्यापन ई-मेल भेजा गया है।
 आपको उस ई-मेल में दिये हुए निर्देशों के अनुसार क्रियाएँ कर के ई-मेल पते का सत्यापन करना होगा, उसके पश्चात ही यहाँ से कोई दूसरा ई-मेल भेजा जाएगा।',
-'throttled-mailpassword' => 'पिछले {{PLURAL:$1|घंटे|$1 घंटों}} के दरमियान एक कूटशब्द स्मरण-पत्र भेजा जा चुका है।
-दुरुपयोग से बचाव के लिए हर {{PLURAL:$1|घंटे|$1 घंटों}} में एक कूटशब्द स्मरण-पत्र ही भेजा जाता है।',
+'throttled-mailpassword' => 'पिà¤\9bलà¥\87 {{PLURAL:$1|à¤\8fà¤\95 à¤\98à¤\82à¤\9fà¥\87|$1 à¤\98à¤\82à¤\9fà¥\8bà¤\82}} à¤\95à¥\87 à¤¦à¤°à¤®à¤¿à¤¯à¤¾à¤¨ à¤\8fà¤\95 à¤\95à¥\82à¤\9fशबà¥\8dद à¤¸à¥\8dमरण-पतà¥\8dर à¤­à¥\87à¤\9cा à¤\9cा à¤\9aà¥\81à¤\95ा à¤¹à¥\88।
+दà¥\81रà¥\81पयà¥\8bà¤\97 à¤¸à¥\87 à¤¬à¤\9aाव à¤\95à¥\87 à¤²à¤¿à¤\8f à¤¹à¤° {{PLURAL:$1|à¤\8fà¤\95 à¤\98à¤\82à¤\9fà¥\87|$1 à¤\98à¤\82à¤\9fà¥\8bà¤\82}} à¤®à¥\87à¤\82 à¤\8fà¤\95 à¤\95à¥\82à¤\9fशबà¥\8dद à¤¸à¥\8dमरण-पतà¥\8dर à¤¹à¥\80 à¤­à¥\87à¤\9cा à¤\9cाता à¤¹à¥\88।',
 'mailerror' => 'ई-मेल भेजने में त्रुटि: $1',
 'acct_creation_throttle_hit' => 'आपके आइ॰पी पते से आए आगंतुक पिछले चौबीस घंटों में इस विकि पर {{PLURAL:$1|एक खाता|$1 खाते}} बना चुके हैं, इस समयावधि में यही अधिकतम सीमा है।
 अतः इस समय इस आइ॰पी पते का प्रयोग करने वाले आगंतुक और खाते नहीं खोल सकेंगे।',
@@ -678,7 +729,7 @@ $2',
 'cannotchangeemail' => 'इस विकी पर सदस्य खाते का ई-मेल पता नहीं बदला जा सकता।',
 'emaildisabled' => 'यह साइट ई-मेल नहीं भेज सकती।',
 'accountcreated' => 'खाता निर्मित',
-'accountcreatedtext' => '$1 के लिये खाता निर्मित कर दिया गया है।',
+'accountcreatedtext' => '[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|वार्ता]]) के लिये खाता निर्मित कर दिया गया है।',
 'createaccount-title' => '{{SITENAME}} के लिये खाता बनाएँ',
 'createaccount-text' => 'आपके ई-मेल पते के लिये किसी ने {{SITENAME}} ($4) पर "$2" सदस्य नाम से "$3" कूटशब्द (पासवर्ड) सहित खाता खोला है।
 आपको लॉग इन कर के अपना कूटशब्द (पासवर्ड) तुरंत बदल लेना चाहिये।
@@ -694,6 +745,7 @@ $2',
 # Email sending
 'php-mail-error-unknown' => 'PHP के mail() फ़ंक्शन में अज्ञात त्रुटि हुई।',
 'user-mail-no-addy' => 'ई-मेल पते के बिना ई-मेल भेजने की कोशिश की।',
+'user-mail-no-body' => 'एक खाली अथवा बहुत छोटी ई-मेल भेजने की कोशिश की गयी।',
 
 # Change password dialog
 'resetpass' => 'कूटशब्द बदलें',
@@ -714,38 +766,42 @@ $2',
 'resetpass-wrong-oldpass' => 'अवैध अस्थायी या वर्तमान कूटशब्द।
 संभव है कि या तो आपने पहले ही सफलतापूर्वक अपना कूटशब्द बदल लिया हो, या आपने एक नए अस्थायी कूटशब्द का अनुरोध किया हो।',
 'resetpass-temp-password' => 'अस्थायी कूटशब्द:',
+'resetpass-abort-generic' => 'कूटशब्द में बदलाव किसी एक्सटेंशन द्वारा रोक दिया गया है।',
 
 # Special:PasswordReset
 'passwordreset' => 'कूटशब्द रीसेट',
-'passwordreset-text' => 'अपने खाते के विवरण का एक ई-मेल अनुस्मारक प्राप्त करने के लिए इस फ़ॉर्म को पूरा करें।',
+'passwordreset-text-one' => 'अपना कूटशब्द रीसेट करने के लिए यह फ़ॉर्म भरें।',
+'passwordreset-text-many' => '{{PLURAL:$1|अपना कूटशब्द रीसेट करने के लिए निम्न में से कोई एक भरें।}}',
 'passwordreset-legend' => 'कूटशब्द रीसेट करें',
 'passwordreset-disabled' => 'कूटशब्द रीसेट करना इस विकी पर अक्षम है।',
-'passwordreset-pretext' => '{{PLURAL:$1||नीचे पूछे गए डेटा में से एक लिखें}}',
+'passwordreset-emaildisabled' => 'इस विकि पर ई-मेल सुविधा अक्षम कर दी गयी है।',
 'passwordreset-username' => 'सदस्यनाम:',
 'passwordreset-domain' => 'डोमेन:',
 'passwordreset-capture' => 'परिणामस्वरूप बना ई-मेल देखें?',
 'passwordreset-capture-help' => 'अगर आप इस चेकबॉक्स को टिक करते हैं तो ई-मेल (अस्थायी कूटशब्द के साथ) आप को दिखया जाएगा और सदस्य को भेजा भी जयेगा।',
 'passwordreset-email' => 'ई-मेल पता:',
 'passwordreset-emailtitle' => '{{SITENAME}} पर खाते का विवरण',
-'passwordreset-emailtext-ip' => 'à¤\95िसà¥\80 à¤¨à¥\87 (शायद à¤\86पनà¥\87 à¤¹à¥\80, $1 à¤\86à¤\87॰पà¥\80 à¤ªà¤¤à¥\87 à¤¸à¥\87) {{SITENAME}} ($4) à¤ªà¤° à¤\85पनà¥\87 {{PLURAL:$3|à¤\96ातà¥\87|à¤\96ातà¥\8bà¤\82}} à¤\95à¥\87 à¤µà¤¿à¤µà¤°à¤£ à¤\95à¥\87 à¤¸à¥\8dमरणपतà¥\8dर का अनुरोध किया है। इस ई-मेल पते से निम्न {{PLURAL:$3|खाता जुड़ा है|खाते जुड़े हैं}}:
+'passwordreset-emailtext-ip' => 'à¤\95िसà¥\80 à¤¨à¥\87 (शायद à¤\86पनà¥\87 à¤¹à¥\80, $1 à¤\86à¤\87॰पà¥\80 à¤ªà¤¤à¥\87 à¤¸à¥\87) {{SITENAME}} ($4) à¤ªà¤° à¤\85पनà¥\87 {{PLURAL:$3|à¤\95à¥\82à¤\9fशबà¥\8dद|à¤\95à¥\82à¤\9fशबà¥\8dदà¥\8bà¤\82}} à¤\95à¥\8b à¤°à¥\80सà¥\87à¤\9f à¤\95रनà¥\87 का अनुरोध किया है। इस ई-मेल पते से निम्न {{PLURAL:$3|खाता जुड़ा है|खाते जुड़े हैं}}:
 
 $2
 
 {{PLURAL:$3|यह|ये}} अस्थायी कूटशब्द {{PLURAL:$5|एक दिन|$5 दिनों}} के बाद काम नहीं करेंगे। आपको लॉग इन करके एक नया कूटशब्द अभी चुन लेना चाहिए। यदि यह अनुरोध किसी और ने किया है, या फिर आपको अपना मूल कूटशब्द याद आ गया है, और आप {{PLURAL:$3|अपना|अपने}} कूटशब्द नहीं बदलना चाहते, आप इस संदेश को अनदेखा कर के अपने पुराने कूटशब्द का प्रयोग जारी रख सकते हैं।',
-'passwordreset-emailtext-user' => '{{SITENAME}} ($4) à¤ªà¤° à¤¸à¤¦à¤¸à¥\8dय $1 à¤¨à¥\87 à¤\86पà¤\95à¥\87 {{PLURAL:$3|à¤\96ातà¥\87|à¤\96ातà¥\8bà¤\82}} à¤\95à¥\87 à¤µà¤¿à¤µà¤°à¤£ à¤\95à¥\87 à¤¸à¥\8dमरणपतà¥\8dर का अनुरोध किया है। इस ई-मेल पते से निम्न {{PLURAL:$3|खाता जुड़ा है|खाते जुड़े हैं}}:
+'passwordreset-emailtext-user' => '{{SITENAME}} ($4) à¤ªà¤° à¤¸à¤¦à¤¸à¥\8dय $1 à¤¨à¥\87 à¤\86पà¤\95à¥\87 {{PLURAL:$3|à¤\96ातà¥\87|à¤\96ातà¥\8bà¤\82}} à¤\95à¥\87 à¤\95à¥\82à¤\9fशबà¥\8dद à¤\95à¥\8b à¤°à¥\80सà¥\87à¤\9f à¤\95रनà¥\87 का अनुरोध किया है। इस ई-मेल पते से निम्न {{PLURAL:$3|खाता जुड़ा है|खाते जुड़े हैं}}:
 
 $2
 
-{{PLURAL:$3|यह|ये}} अस्थायी कूटशब्द {{PLURAL:$5|एक दिन|$5 दिनों}} के बाद काम नहीं करेंगे। आपको लॉग इन करके एक नया कूटशब्द अभी चुन लेना चाहिए। यदि यह अनुरोध किसी और ने किया है, या फिर आपको अपना मूल कूटशब्द याद आ गया है, और आप {{PLURAL:$3|अपना|अपने}} कूटशब्द नहीं बदलना चाहते, आप इस संदेश को अनदेखा कर के अपने पुराने कूटशब्द का प्रयोग जारी रख सकते हैं।',
+{{PLURAL:$3|यह|ये}} अस्थायी कूटशब्द {{PLURAL:$5|एक दिन|$5 दिनों}} के बाद काम नहीं करेंगे।
+आपको लॉग इन करके एक नया कूटशब्द अभी चुन लेना चाहिए। यदि यह अनुरोध किसी और ने किया है, या फिर आपको अपना मूल कूटशब्द याद आ गया है, और आप {{PLURAL:$3|अपना|अपने}} कूटशब्द नहीं बदलना चाहते, आप इस संदेश को अनदेखा कर के अपने पुराने कूटशब्द का प्रयोग जारी रख सकते हैं।',
 'passwordreset-emailelement' => 'सदस्यनाम: $1
 अस्थायी कूटशब्द: $2',
-'passwordreset-emailsent' => 'एक अनुस्मारक ई-मेल भेज दिया गया है।',
-'passwordreset-emailsent-capture' => 'नीचे दिखाया गया अनुस्मारक ई-मेल भेज दिया गया है।',
-'passwordreset-emailerror-capture' => 'नीचे दृष्टित अनुस्मारक ई-मेल उत्पन्न किया गया था, परंतु उसे $1 सदस्य को भेजना असफल रहा।',
+'passwordreset-emailsent' => 'एक कूटशब्द रीसेट ई-मेल भेज दिया गया है।',
+'passwordreset-emailsent-capture' => 'नीचे दिखाया गया कूटशब्द रीसेट ई-मेल भेज दिया गया है।',
+'passwordreset-emailerror-capture' => 'नीचे दृष्टित कूटशब्द रीसेट ई-मेल उत्पन्न किया गया था, परंतु उसे {{GENDER:$2|सदस्य}} को भेजना असफल रहा।
+त्रुटि: $1',
 
 # Special:ChangeEmail
 'changeemail' => 'ई-मेल पता परिवर्तित करें',
-'changeemail-header' => 'à¤\96ातà¥\87 à¤\95à¥\87 ई-मेल पता परिवर्तित करें',
+'changeemail-header' => 'à¤\96ातà¥\87 à¤\95ा ई-मेल पता परिवर्तित करें',
 'changeemail-text' => 'अपना ई-मेल पता परिवर्तित करने के लिए इस फ़ॉर्म को पूरा करें। इस बदलाव की पुष्टि करने के लिये आपको अपना कूटशब्द पुनः लिखना पड़ेगा।',
 'changeemail-no-info' => 'इस पृष्ठ का सीधे प्रयोग करने के लिए आपको लॉग इन करना होगा।',
 'changeemail-oldemail' => 'वर्तमान ई-मेल पता:',
@@ -764,14 +820,14 @@ $2
 'link_tip' => 'आंतरिक कड़ी',
 'extlink_sample' => 'http://www.example.com कड़ी शीर्षक',
 'extlink_tip' => 'बाहरी कड़ी (उपसर्ग http:// अवश्य लगाएँ)',
-'headline_sample' => 'शीर्षक',
+'headline_sample' => 'शीर्षक पाठ',
 'headline_tip' => 'द्वितीय-स्तर शीर्षक',
 'nowiki_sample' => 'अप्रारूपित पाठ यहाँ डालें',
 'nowiki_tip' => 'विकि प्रारूपण नज़रंदाज़ करें',
 'image_sample' => 'उदाहरण.jpg',
 'image_tip' => 'एम्बेड की हुई फ़ाइल',
 'media_sample' => 'उदाहरण.ogg',
-'media_tip' => 'सà¤\82à¤\9aिà¤\95ा की कड़ी',
+'media_tip' => 'फ़ाà¤\87ल की कड़ी',
 'sig_tip' => 'आपका हस्ताक्षर व समय',
 'hr_tip' => 'हॉरिज़ौंटल लाइन (कम इस्तेमाल करें)',
 
@@ -852,6 +908,10 @@ $2
 'noarticletext-nopermission' => 'फ़िलहाल इस पृष्ठ पर कोई सामग्री नहीं है।
 आप अन्य पृष्ठों में [[Special:Search/{{PAGENAME}}|इस शीर्षक की खोज]] कर सकते हैं,
 या <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} संबंधित लॉग खोज सकते हैं]</span>, परन्तु आपको यह पृष्ठ बनाने की अनुमति नहीं है।',
+'missing-revision' => '"{{PAGENAME}}" पृष्ठ का अवतरण #$1 मौजूद नहीं है।
+
+आम तौर पर यह एक हटाए गए पृष्ठ के पुराने लिंक पर क्लिक करने से होता है।
+अधिक जानकारी के लिए आप [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} हटाने का लॉग] देख सकते हैं।',
 'userpage-userdoesnotexist' => 'सदस्य खाता "$1" पंजीकृत नहीं है।
 कृपया जाँच लें कि आप यह पृष्ठ संपादित अथवा निर्मित करना चाहते हैं या नहीं।',
 'userpage-userdoesnotexist-view' => 'सदस्य "$1" पंजीकृत नहीं है।',
@@ -921,9 +981,9 @@ $2
 'longpageerror' => "'''त्रुटि: आपका दिया हुआ पाठ {{PLURAL:|$1 किलोबाइट|$1 किलोबाइट}} लंबा है, जो {{PLURAL:|$2 किलोबाइट|$2 किलोबाइट}} की सीमा से बाहर है।
 इसे संजोया नहीं जा सकता।'''",
 'readonlywarning' => "'''सावधान: डाटाबेस को रख-रखाव के लिये बंद कर दिया गया है, इसलिये अभी आपके बदलाव संजोए नहीं जा सकते।
-à¤\85à¤\97र à¤\86प à¤\9aाहतà¥\87à¤\82 à¤¹à¥\88à¤\82 à¤¤à¥\8b à¤\87स à¤¸à¤¾à¤®à¤\97à¥\8dरà¥\80 à¤\95à¥\80 à¤¨à¤\95लà¤\9aिपà¥\8dपà¥\80 à¤\95र à¤\95à¥\87 à¤\95िसà¥\80 à¤¸à¤\82à¤\9aिà¤\95ा à¤®à¥\87à¤\82 à¤¬à¤¾à¤¦ à¤\95à¥\87 à¤²à¤¿à¤\8f à¤¡à¤¾à¤² à¤\95à¥\87 रख सकते हैं।'''
+à¤\85à¤\97र à¤\86प à¤\9aाहà¥\87à¤\82 à¤¤à¥\8b à¤\87स à¤¸à¤¾à¤®à¤\97à¥\8dरà¥\80 à¤\95à¥\8b à¤¬à¤¾à¤¦ à¤\95à¥\87 à¤²à¤¿à¤\8f à¤\95à¥\89पà¥\80-पà¥\87सà¥\8dà¤\9f à¤\95र à¤\95à¥\87 à¤\95िसà¥\80 à¤\9fà¥\87à¤\95à¥\8dसà¥\8dà¤\9f à¤«à¤¼à¤¾à¤\87ल à¤®à¥\87à¤\82 रख सकते हैं।'''
 
-बà¤\82द à¤\95रनà¥\87 à¤µà¤¾à¤²à¥\87 à¤ªà¥\8dरबà¤\82धà¤\95 à¤¨à¥\87 à¤¯à¤¹ à¤¬à¤\82द à¤\95रनà¥\87 à¤\95ा à¤¯à¤¹ à¤\95ारण à¤¦à¤¿à¤¯à¤¾ à¤¹à¥\88: $1",
+बंद करने वाले प्रबंधक ने बंद करने का यह कारण दिया है: $1",
 'protectedpagewarning' => "'''चेतावनी: इस पृष्ठ को सुरक्षित कर दिया गया है और इसे केवल प्रबंधक ही सम्पादित कर सकते हैं।'''
 नवीनतम लॉग प्रविष्टि संदर्भ के लिये नीचे दी है:",
 'semiprotectedpagewarning' => "'''सूचना:''' यह पृष्ठ सुरक्षित कर दिया गया है और इसे केवल पंजीकृत सदस्य ही सम्पादित कर सकते हैं।
@@ -959,13 +1019,21 @@ $2
 लगता है यह हटा दिया गया है।',
 'edit-conflict' => 'संपादन अंतर्विरोध',
 'edit-no-change' => 'आपने कोई बदलाव ही नहीं किए, अतः आपके इस संपादन को नज़रंदाज़ कर दिया गया है।',
+'postedit-confirmation' => 'आपका सम्पादन सहेजा गया है।',
 'edit-already-exists' => 'नया पृष्ठ बनाया नहीं जा सका।
 यह पहले से मौजूद है।',
 'defaultmessagetext' => 'संदेश का डिफ़ॉल्ट पाठ',
+'content-failed-to-parse' => '$1 के लिए $2 सामग्री को पार्स करने में विफल, त्रुटि: $3',
+'invalid-content-data' => 'अवैध डाटा सामग्री',
+'content-not-allowed-here' => '[[$2]] पृष्ठ पर "$1" सामग्री मना है।',
+'editwarning-warning' => 'इस पृष्ठ को छोड़ने पर आपके द्वारा किये गए कोई भी बदलाव गायब हो जाएँगे।
+यदि आपने लॉग इन किया हुआ है तो आप इस सूचना का दिखना अपनी वरीयताओं के "संपादन" भाग में बंद कर सकते हैं।',
 
 # Content models
 'content-model-wikitext' => 'विकिटेक्स्ट',
+'content-model-text' => 'सामान्य पाठ',
 'content-model-javascript' => 'जावास्क्रिप्ट',
+'content-model-css' => 'सी॰एस॰एस',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => "'''चेतावनी:''' इस पृष्ठ पर बहुत अधिक संख्या में कीमती पार्सर फ़ंक्शनों का प्रयोग किया गया है।
@@ -981,13 +1049,20 @@ $2
 'parser-template-loop-warning' => 'साँचा चक्र मिला: [[$1]]',
 'parser-template-recursion-depth-warning' => 'साँचा पुनरावर्ती गहराई सीमा पार ($1)',
 'language-converter-depth-warning' => 'भाषा कन्वर्टर गहराई सीमा से बाहर गया ( $1 )',
+'node-count-exceeded-category' => 'पृष्ठ जिनमें नोड-संख्या पार की गई है',
+'node-count-exceeded-warning' => 'पृष्ठ ने नोड-संख्या पार की है',
+'expansion-depth-exceeded-category' => 'पृष्ठ जिनमें विस्तार गहराई पार की गई है',
+'expansion-depth-exceeded-warning' => 'पृष्ठ में विस्तार गहराई पार की गई है',
+'parser-unstrip-loop-warning' => 'Unstrip लूप पाया गया',
+'parser-unstrip-recursion-limit' => 'Unstrip पुनरावर्तन सीमा पार की गई ($1)',
 
 # "Undo" feature
 'undo-success' => 'यह संपादन पूर्ववत किया जा सकता है।
 ऐसा करने के लिये कृपया निम्नलिखित पाठ को ध्यान से देखकर बदलाव संजोयें।',
 'undo-failure' => 'इस बीच अन्य बदलाव होने के कारण यह संपादन पूर्ववत करना संभव नहीं है।',
 'undo-norev' => 'यह बदलाव वापिस नहीं कर पाये हैं क्योंकि या तो इसे पहले से पलटा दिया गया है या फिर पृष्ठ हटा दिया गया है।',
-'undo-summary' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|वार्ता]]) द्वारा किए बदलाव $1 को पूर्ववत करें',
+'undo-summary' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|वार्ता]]) द्वारा किए बदलाव $1 को पूर्ववत किये',
+'undo-summary-username-hidden' => 'छुपाए गए सदस्य द्वारा किये संशोधन $1 को पूर्ववत किया',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'खाता खोल नहीं सकते',
@@ -1005,7 +1080,7 @@ $2
 'previousrevision' => '← पुराना अवतरण',
 'nextrevision' => 'नया अवतरण →',
 'currentrevisionlink' => 'वर्तमान अवतरण',
-'cur' => 'à¤\9aालà¥\82',
+'cur' => 'सदà¥\8dय',
 'next' => 'अगला',
 'last' => 'पिछला',
 'page_first' => 'पहला',
@@ -1029,9 +1104,9 @@ $2
 [[Special:Search|विकि पर खोज]] का प्रयोग करें।',
 
 # Revision deletion
-'rev-deleted-comment' => '(à¤\9fिपà¥\8dपणà¥\80 à¤¸à¤¾à¤°à¤¾à¤\82श à¤¹à¤\9fाà¤\88)',
+'rev-deleted-comment' => '(समà¥\8dपादन à¤¸à¤¾à¤°à¤¾à¤\82श à¤¹à¤\9fाया)',
 'rev-deleted-user' => '(सदस्यनाम हटाया)',
-'rev-deleted-event' => '(à¤\95ारà¥\8dयà¤\95à¥\80 à¤¨à¥\8bà¤\82द à¤¹à¤\9fाà¤\88)',
+'rev-deleted-event' => '(लà¥\89à¤\97 à¤\95ारà¥\8dय à¤¹à¤\9fाया)',
 'rev-deleted-user-contribs' => 'संशोधन उपयोगकर्ता योगदान नष्ट',
 'rev-deleted-text-permission' => 'यह पृष्ठ अवतरण हटाया गया है।
 इसकी अधिक जानकारी [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} हटाने की लॉग] में पाई जा सकती है।',
@@ -1066,7 +1141,7 @@ $2
 'revdelete-nologtype-text' => 'इस क्रिया के लिए आपने लॉग प्रकार निर्दिष्ट नहीं किया है।',
 'revdelete-nologid-title' => 'अवैध लॉग प्रविष्टि',
 'revdelete-nologid-text' => 'आपने या तो इस कार्यकलाप को करने के लिए लक्ष्यित लॉग प्रसंग नहीं दिया है या यह प्रविष्टि मौजूद नहीं है।',
-'revdelete-no-file' => 'निरà¥\8dदिषà¥\8dà¤\9f à¤¸à¤\82à¤\9aिà¤\95ा मौजूद नहीं है।',
+'revdelete-no-file' => 'निरà¥\8dदिषà¥\8dà¤\9f à¤«à¤¼à¤¾à¤\87ल मौजूद नहीं है।',
 'revdelete-show-file-confirm' => 'क्या आप वाकई फ़ाइल "<nowiki>$1</nowiki>" के $2 को $3 बजे बने, हटाए जा चुके अवतरण को देखना चाहते हैं?',
 'revdelete-show-file-submit' => 'हाँ',
 'revdelete-selected' => "'''[[:$1]] {{PLURAL:$2|का चुना हुआ|के चुने हुए}} अवतरण:'''",
@@ -1163,6 +1238,7 @@ $1",
 # Diffs
 'history-title' => '"$1" का अवतरण इतिहास',
 'difference-title' => '"$1" के अवतरणों में अंतर',
+'difference-title-multipage' => '"$1" और "$2" पृष्ठों में अंतर',
 'difference-multipage' => '(पृष्ठों के बीच अन्तर)',
 'lineno' => 'पंक्ति $1:',
 'compareselectedversions' => 'चुने हुए अवतरणों की तुलना करें',
@@ -1170,6 +1246,9 @@ $1",
 'editundo' => 'पूर्ववत करें',
 'diff-multi' => '({{PLURAL:$2|एक योगदानकर्ता|$2 योगदानकर्ताओं}} द्वारा {{PLURAL:$1|किया बीच का एक|किए बीच के $1}} अवतरण दर्शाए नहीं हैं।)',
 'diff-multi-manyusers' => '({{PLURAL:$2|एक योगदानकर्ता|$2 योगदानकर्ताओं}} द्वारा {{PLURAL:$1|किया बीच का एक|किए बीच के $1}} अवतरण दर्शाए नहीं हैं।)',
+'difference-missing-revision' => 'इस अंतर {{PLURAL:$2|का एक अवतरण|के $2 अवतरण}} ($1) नहीं {{PLURAL:$2|पाया गया|पाए गए}}।
+
+यह आम तौर पर एक हटाए गए पृष्ठ के अवतरणों में अंतर ढूँढने पर होता है। अधिक जानकारी [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} हटाने के लॉग] में पायी जा सकती है।',
 
 # Search results
 'searchresults' => 'खोज परिणाम',
@@ -1191,7 +1270,6 @@ $1",
 'searchmenu-legend' => 'खोज विकल्प',
 'searchmenu-exists' => "'''इस विकि पर \"[[:\$1]]\" नाम का एक पृष्ठ है'''",
 'searchmenu-new' => "'''इस विकि पर \"[[:\$1]]\" नाम का पृष्ठ बनाएँ!'''",
-'searchhelp-url' => 'Help:सहायता',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|इस उपसर्ग वाले पृष्ठ देखें]]',
 'searchprofile-articles' => 'सामग्री पृष्ठ',
 'searchprofile-project' => 'सहायता और परियोजना पृष्ठ',
@@ -1213,7 +1291,7 @@ $1",
 'search-interwiki-default' => '$1 के परिणाम:',
 'search-interwiki-more' => '(और)',
 'search-relatedarticle' => 'सम्बंधित',
-'mwsuggest-disable' => 'AJAX सुझाव बंद करें',
+'mwsuggest-disable' => 'खोज सुझाव बंद करें',
 'searcheverything-enable' => 'सभी नामस्थानों में खोजें',
 'searchrelated' => 'सम्बंधित',
 'searchall' => 'सभी',
@@ -1234,6 +1312,7 @@ $1",
 'searchdisabled' => '{{SITENAME}} पर खोज अक्षम है।
 आप गूगल से खोज कर सकते हैं।
 ध्यान रखें कि उनकी {{SITENAME}} सामग्री की सूची पुरानी हो सकती है।',
+'search-error' => 'खोजते समय निम्न त्रुटि उत्पन्न हुई है: $1',
 
 # Preferences page
 'preferences' => 'मेरी वरीयताएँ',
@@ -1267,7 +1346,6 @@ $1",
 'resetprefs' => 'ना संजोये गये बदलाव रद्द करें',
 'restoreprefs' => 'वापस मूल जमावों पर आ जाएँ',
 'prefs-editing' => 'संपादन',
-'prefs-edit-boxsize' => 'संपादन झरोखे का आकार।',
 'rows' => 'कतारें:',
 'columns' => 'कॉलम:',
 'searchresultshead' => 'खोज',
@@ -1278,9 +1356,6 @@ $1",
 'recentchangesdays-max' => 'अधिकतम $1 {{PLURAL:$1|दिन}}',
 'recentchangescount' => 'मूल रूप से कितने संपादन दिखाएँ:',
 'prefs-help-recentchangescount' => 'इसमें हाल के बदलाव, पृष्ठ इतिहास व लॉग शामिल हैं।',
-'prefs-help-watchlist-token' => 'इस कोष्ठक में गुप्त कुंजी प्रदान करने से आपकी ध्यानसूची के लिए एक आर॰एस॰एस फ़ीड बन जाएगी।
-जो भी इस कोष्ठक में मौजूद कुंजी को जानता है वह आपकी ध्यानसूची को पढ़ सकेगा, अतः कोई सुरक्षित कुंजी चुनें।
-यह है आपके लिए एक यंत्रजनित कुंजी जिसका आप चाहें तो प्रयोग कर सकते हैं: $1',
 'savedprefs' => 'आपकी वरीयताएँ संजोई गई हैं।',
 'timezonelegend' => 'समयमंडल:',
 'localtime' => 'स्थानीय समय:',
@@ -1300,7 +1375,7 @@ $1",
 'timezoneregion-indian' => 'हिंद महासागर',
 'timezoneregion-pacific' => 'प्रशांत महासागर',
 'allowemail' => 'अन्य सदस्यों से ई-मेल सक्षम करें',
-'prefs-searchoptions' => 'खोज ऑप्शन्स',
+'prefs-searchoptions' => 'खोज',
 'prefs-namespaces' => 'नामस्थान',
 'defaultns' => 'अन्यथा इन नामस्थानों में खोजें:',
 'default' => 'डिफ़ॉल्ट',
@@ -1311,11 +1386,10 @@ $1",
 'prefs-reset-intro' => 'आप इस पृष्ठ के ज़रिए अपनी वरीयताओं को साइट की मूल वरीयताओं के समान बना सकते हैं।
 इसके बाद आप वापस पुरानी स्थिति पर नहीं आ सकेंगे।',
 'prefs-emailconfirm-label' => 'ई-मेल पुष्टिकरण:',
-'prefs-textboxsize' => 'संपादन झरोखे का आकार:',
 'youremail' => 'आपका ई-मेल पता:',
-'username' => 'सदस्यनाम:',
-'uid' => 'सदस्य क्रमांक:',
-'prefs-memberingroups' => 'निम्नलिखित {{PLURAL:$1|समूह|समूहों}} के सदस्य:',
+'username' => '{{GENDER:$1|सदस्यनाम}}:',
+'uid' => '{{GENDER:$1|सदस्य}} क्रमांक:',
+'prefs-memberingroups' => 'निम्नलिखित {{PLURAL:$1|समूह|समूहों}} के {{GENDER:$2|सदस्य}}:',
 'prefs-registration' => 'पंजीकरण समय:',
 'yourrealname' => 'वास्तविक नाम:',
 'yourlanguage' => 'भाषा:',
@@ -1344,7 +1418,9 @@ HTML टैग की जाँच करें।',
 'prefs-signature' => 'हस्ताक्षर',
 'prefs-dateformat' => 'तिथि प्रारूप',
 'prefs-timeoffset' => 'समयांतर',
-'prefs-advancedediting' => 'उन्नत विकल्प',
+'prefs-advancedediting' => 'सामान्य',
+'prefs-editor' => 'सम्पादक',
+'prefs-preview' => 'पूर्वावलोकन',
 'prefs-advancedrc' => 'उन्नत विकल्प',
 'prefs-advancedrendering' => 'उन्नत विकल्प',
 'prefs-advancedsearchoptions' => 'उन्नत विकल्प',
@@ -1379,6 +1455,8 @@ HTML टैग की जाँच करें।',
 'userrights-notallowed' => 'आपके खाते को सदस्य अधिकार जोड़ने या हटाने की अनुमति नहीं है।',
 'userrights-changeable-col' => 'समूह जिन्हें आप बदल सकते हैं',
 'userrights-unchangeable-col' => 'समूह जिन्हें आप नहीं बदल सकते हैं',
+'userrights-conflict' => 'सदस्य अधिकार टकराव! कृपया अपने बदलाव दोबारा लागू करें।',
+'userrights-removed-self' => 'आपने सफलतापूर्वक अपने अधिकार हटा दिए हैं। अतः आप अब यह पृष्ठ नहीं देख सकते हैं।',
 
 # Groups
 'group' => 'समूह:',
@@ -1422,13 +1500,14 @@ HTML टैग की जाँच करें।',
 'right-reupload-shared' => 'शेअर्ड इमेज भण्डार में मौजूद फ़ाइलों पर पुनर्लेखन करें',
 'right-upload_by_url' => 'यू॰आर॰एल से फ़ाइल अपलोड करें',
 'right-purge' => 'पृष्ठ की कैश मेमोरी खाली करें',
-'right-autoconfirmed' => 'à¤\85रà¥\8dध-सà¥\81रà¤\95à¥\8dषित à¤ªà¥\83षà¥\8dठ à¤¸à¤®à¥\8dपादित à¤\95रà¥\87ं',
+'right-autoconfirmed' => 'à¤\86à¤\88॰पà¥\80 à¤ªà¤¤à¤¾ à¤\86धारित à¤°à¥\87à¤\9f à¤²à¤¿à¤®à¤¿à¤\9fà¥\8dस à¤¸à¥\87 à¤¬à¥\87à¤\85सर à¤¹à¥\8bं',
 'right-bot' => 'स्वचलित प्रणाली माने जाएँ',
 'right-nominornewtalk' => 'वार्ता पृष्ठों पर छोटे बदलाव करने पर सदस्यों को "आपके लिये नया सन्देश है" पट्टी न दिखाएँ',
 'right-apihighlimits' => 'API पृच्छाओं में ऊँची सीमाएँ प्रयोग करें',
 'right-writeapi' => 'write API का प्रयोग करें',
 'right-delete' => 'पृष्ठ हटाएँ',
 'right-bigdelete' => 'अधिक इतिहास वाले पृष्ठ हटाएँ',
+'right-deletelogentry' => 'विशिष्ट लॉग प्रविष्टियाँ छुपाएँ और दिखाएँ',
 'right-deleterevision' => 'पृष्ठों के विशिष्ट अवतरण हटाएँ एवं पुनर्स्थापित करें',
 'right-deletedhistory' => 'हटाई गई इतिहास सूची, उसके साथ पाये जाने वाले पाठ के बिना देखें',
 'right-deletedtext' => 'हटाया गया पाठ और हटाए गए अवतरणों के बीच अंतर देखें',
@@ -1442,12 +1521,20 @@ HTML टैग की जाँच करें।',
 'right-ipblock-exempt' => 'आइ॰पी ब्लॉक्स, ऑटो-ब्लॉक्स और रेंज ब्लॉक्स को नज़रंदाज़ करें',
 'right-proxyunbannable' => 'स्वचालित प्रौक्सी ब्लॉक्स को नज़रंदाज़ करें',
 'right-unblockself' => 'स्वयं को अनब्लॉक करें',
-'right-protect' => 'सुरक्षा स्तर बदलें और सुरक्षित पृष्ठ सम्पादित करें',
-'right-editprotected' => 'सुरक्षित पृष्ठ सम्पादित करें (बिना सीढ़ी सुरक्षा वाले)',
+'right-protect' => 'सुरक्षा स्तर बदलें और सीढ़ी-सुरक्षित पृष्ठ सम्पादित करें',
+'right-editprotected' => 'उन सुरक्षित पृष्ठ सम्पादित करें जिनके सम्पादन की "{{int:protect-level-sysop}}"',
+'right-editsemiprotected' => 'उन पृष्ठों को सम्पादित करें जिनका सुरक्षा स्तर है "{{int:protect-level-autoconfirmed}}"',
 'right-editinterface' => 'सॉफ़्टवेयर इंटरफ़ेस सम्पादित करें',
 'right-editusercssjs' => 'अन्य सदस्यों के सी॰एस॰एस और जावास्क्रिप्ट पृष्ठ सम्पादित करें',
 'right-editusercss' => 'अन्य सदस्यों के सी॰एस॰एस पृष्ठ सम्पादित करें',
 'right-edituserjs' => 'अन्य सदस्यों के जावास्क्रिप्ट पृष्ठ सम्पादित करें',
+'right-editmyusercss' => 'अपनी सदस्य स्तर की सी॰एस॰एस फ़ाइलें सम्पादित करें',
+'right-editmyuserjs' => 'अपनी सदस्य स्तर की जावास्क्रिप्ट फ़ाइलें सम्पादित करें',
+'right-viewmywatchlist' => 'अपनी ध्यानसूची देखें',
+'right-editmywatchlist' => 'अपनी ध्यानसूची सम्पादित करें। ध्यान दें कि कुछ कार्य इस अधिकार के बिना भी ध्यानसूची में पृष्ठ जोड़ेंगे।',
+'right-viewmyprivateinfo' => 'अपना व्यक्तिगत डाटा देखें (जैसे ई-मेल पता, असली नाम)',
+'right-editmyprivateinfo' => 'अपना व्यक्तिगत डाटा सम्पादित करें (जैसे ई-मेल पता, असली नाम)',
+'right-editmyoptions' => 'अपनी वरीयताएँ सम्पादित करें',
 'right-rollback' => 'किसी पृष्ठ का अंतिम सम्पादन करने वाले सदस्य के सम्पादन वापिस लें',
 'right-markbotedits' => 'वापिस लेने में हुए संपादनों को बॉट सम्पादन चिन्हित करें',
 'right-noratelimit' => 'रेट लिमिट्स से बेअसर हों',
@@ -1509,12 +1596,16 @@ HTML टैग की जाँच करें।',
 'action-userrights-interwiki' => 'अन्य विकियों पर सदस्य अधिकार बदलने',
 'action-siteadmin' => 'डाटाबेस को ताला लगाने या खोलने',
 'action-sendemail' => 'ई-मेल भेजने',
+'action-editmywatchlist' => 'ध्यानसूची सम्पादित करने',
+'action-viewmywatchlist' => 'अपनी ध्यानसूची देखने',
+'action-viewmyprivateinfo' => 'अपनी व्यक्तिगत जानकारी देखने',
+'action-editmyprivateinfo' => 'अपनी व्यक्तिगत जानकारी बदलने',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|बदलाव}}',
 'recentchanges' => 'हाल में हुए बदलाव',
 'recentchanges-legend' => 'हाल के परिवर्तन संबंधी विकल्प',
-'recentchanges-summary' => 'इस विकिपर हाल में हुए बदलाव इस पन्ने पर देखें जा सकतें हैं।',
+'recentchanges-summary' => 'इस विकि पर हाल में हुए बदलाव इस पन्ने पर देखे जा सकते हैं।',
 'recentchanges-feed-description' => 'इस विकि पर हाल में हुए बदलाव इस फ़ीड में देखे जा सकते हैं।',
 'recentchanges-label-newpage' => 'इस संपादन से नया पृष्ठ बना',
 'recentchanges-label-minor' => 'यह एक छोटा सम्पादन है',
@@ -1551,7 +1642,6 @@ HTML टैग की जाँच करें।',
 'recentchangeslinked-feed' => 'पृष्ठ से जुड़े बदलाव',
 'recentchangeslinked-toolbox' => 'पृष्ठ से जुड़े बदलाव',
 'recentchangeslinked-title' => '"$1" से जुड़े बदलाव',
-'recentchangeslinked-noresult' => 'जुड़े हुए पृष्ठों में दी हुई अवधि में कोई भी बदलाव नहीं हुए हैं।',
 'recentchangeslinked-summary' => "यह पृष्ठ किसी विशिष्ट पृष्ठ से जुड़े पृष्ठों (या किसी श्रेणी में श्रेणीबद्ध पृष्ठों) में हाल में हुए बदलावों की सूची दर्शाता है।
 [[Special:Watchlist|आपकी ध्यानसूची]] में मौजूद पृष्ठ '''मोटे''' अक्षरों में दिखेंगे।",
 'recentchangeslinked-page' => 'पृष्ठ नाम:',
@@ -1563,7 +1653,7 @@ HTML टैग की जाँच करें।',
 'reuploaddesc' => 'अपलोड रद्द करें और पुनः अपलोड फ़ॉर्म पर जाएँ',
 'upload-tryagain' => 'संशोधित फ़ाइल विवरण भेजें',
 'uploadnologin' => 'लॉग इन नहीं किया है',
-'uploadnologintext' => 'फ़ाइलें अपलोड करने के लिये [[Special:UserLogin|लॉग इन]] करना आवश्यक है।',
+'uploadnologintext' => 'फ़ाइलें अपलोड करने के लिये $1 करना आवश्यक है।',
 'upload_directory_missing' => 'अपलोड डाइरेक्टरी ($1) मौजूद नहीं है, और वेबसर्वर इसका निर्माण नहीं कर पाया।',
 'upload_directory_read_only' => 'अपलोड डाइरेक्टरी ($1) में वेबसर्वर लिख नहीं पा रहा है।',
 'uploaderror' => 'अपलोड त्रुटि',
@@ -1718,6 +1808,7 @@ $1',
 'backend-fail-notsame' => 'एक ग़ैर-समान फ़ाइल $1 पर पहले से मौजूद है।',
 'backend-fail-invalidpath' => '$1 मान्य भंडारण पथ नहीं है।',
 'backend-fail-delete' => 'फ़ाइल $1 हटाई नहीं जा सकी।',
+'backend-fail-describe' => 'फ़ाइल "$1" का मेटाडाटा बदल नहीं पाए।',
 'backend-fail-alreadyexists' => 'फ़ाइल $1 पहले से मौजूद है।',
 'backend-fail-store' => 'फ़ाइल $1, $2 पर संग्रहीत नहीं हो पाई।',
 'backend-fail-copy' => 'फ़ाइल $1 की $2 पर प्रतिलिपि नहीं बन पाई।',
@@ -2116,7 +2207,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization देखें।',
 # Special:ActiveUsers
 'activeusers' => 'सक्रिय सदस्यों की सूची',
 'activeusers-intro' => 'यह सक्रिय सदस्यों की सूची है जिन्होंने पिछले $1 {{PLURAL:$1|दिन|दिनों}} में कुछ गतिविधि करी है।',
-'activeusers-count' => '$1 {{PLURAL:$1|समà¥\8dपादन}} पिछले $3 {{PLURAL:$3|दिन|दिनों}} में',
+'activeusers-count' => '$1 {{PLURAL:$1|à¤\95ारà¥\8dय}} पिछले $3 {{PLURAL:$3|दिन|दिनों}} में',
 'activeusers-from' => 'इस अक्षर से शुरू होने वाले सदस्य दिखाएँ:',
 'activeusers-hidebots' => 'बॉट छुपाएँ',
 'activeusers-hidesysops' => 'प्रबंधक छुपाएँ',
@@ -2179,7 +2270,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization देखें।',
 'usermessage-editor' => 'सिस्टम दूत',
 
 # Watchlist
-'watchlist' => 'मà¥\87रà¥\80 à¤§à¥\8dयानसà¥\82à¤\9aà¥\80',
+'watchlist' => 'ध्यानसूची',
 'mywatchlist' => 'ध्यानसूची',
 'watchlistfor2' => '$1 $2 के लिए',
 'nowatchlist' => 'आपकी ध्यानसूची में कोई भी पृष्ठ नहीं हैं।',
@@ -2197,10 +2288,9 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization देखें।',
 'unwatchthispage' => 'ध्यानसूची से हटाएँ',
 'notanarticle' => 'सामग्री पृष्ठ नहीं',
 'notvisiblerev' => 'किसी अन्य सदस्य द्वारा किया अन्तिम अवतरण हटाया गया है',
-'watchnochange' => 'दिये गये समय में आपके ध्यानसूची में मौजूद पृष्ठों में कोई भी बदलाव नहीं हुए हैं।',
 'watchlist-details' => 'वार्ता पृष्ठों के अलावा {{PLURAL:$1|$1 पृष्ठ}} आपकी ध्यानसूची में हैं।',
-'wlheader-enotif' => 'ई-मेल नोटिफिकेशन सक्षम हैं।',
-'wlheader-showupdated' => "पृष्ठ जो आपके द्वारा देखे जाने के बाद बदले गये हैं, '''बोल्ड''' दिखेंगे।",
+'wlheader-enotif' => 'à¤\88-मà¥\87ल à¤¨à¥\8bà¤\9fिफ़िà¤\95à¥\87शन à¤¸à¤\95à¥\8dषम à¤¹à¥\88à¤\82।',
+'wlheader-showupdated' => "पृष्ठ जो आपके द्वारा देखे जाने के बाद बदले गये हैं '''बोल्ड''' दिखेंगे।",
 'watchmethod-recent' => 'ध्यानसूची में दिये गये पृष्ठों में हाल में हुए बदलाव देख रहे हैं',
 'watchmethod-list' => 'ध्यानसूची में दिये गये पृष्ठों में हाल में हुए बदलाव देख रहे हैं',
 'watchlistcontains' => 'आपकी ध्यानसूची में $1 {{PLURAL:$1|पृष्ठ}} हैं।',
@@ -2347,9 +2437,9 @@ $2 द्वारा संपादित अन्तिम अवतरण 
 '''$1''' का वर्तमान सुरक्षा-स्तर यह है:",
 'protect-cascadeon' => 'यह पृष्ठ अभी सुरक्षित है क्योंकि यह {{PLURAL:$1|इस पृष्ठ की|इन पृष्ठों की}} सुरक्षा-सीढ़ी में है। आप इस पृष्ठ का सुरक्षा-स्तर बदल सकते हैं, पर उससे सुरक्षा-सीढ़ी में बदलाव नहीं होंगे।',
 'protect-default' => 'सभी सदस्यों को अनुमति दें',
-'protect-fallback' => '"$1" अधिकार आवश्यक है',
-'protect-level-autoconfirmed' => 'नà¤\8f à¤µ à¤\85पà¤\82à¤\9cà¥\80à¤\95à¥\83त à¤¸à¤¦à¤¸à¥\8dयà¥\8bà¤\82 à¤\95à¥\8b à¤°à¥\8bà¤\95ें',
-'protect-level-sysop' => 'केवल प्रबन्धक',
+'protect-fallback' => 'केवल "$1" अधिकार वाले सदस्यों को अनुमति दें',
+'protect-level-autoconfirmed' => 'à¤\95à¥\87वल à¤¸à¥\8dवतà¤\83 à¤¸à¥\8dथापित à¤¸à¤¦à¤¸à¥\8dयà¥\8bà¤\82 à¤\95à¥\8b à¤\85नà¥\81मति à¤¦ें',
+'protect-level-sysop' => 'केवल प्रबन्धकों को अनुमति दें',
 'protect-summary-cascade' => 'सीढ़ी',
 'protect-expiring' => 'समाप्ती $1 (UTC)',
 'protect-expiring-local' => 'समाप्ती $1',
@@ -2454,7 +2544,7 @@ $1',
 'mycontris' => 'योगदान',
 'contribsub2' => '$1 के लिये ($2)',
 'nocontribs' => 'इन कसौटियों से मिलनेवाले बदलाव मिले नहीं।',
-'uctop' => '(à¤\89पर)',
+'uctop' => '(मà¥\8cà¤\9cà¥\82दा)',
 'month' => 'इस महिनेसे (और पुरानें):',
 'year' => 'इस सालसे (और पुराने):',
 
@@ -2561,7 +2651,7 @@ $1',
 'blocklist-reason' => 'कारण',
 'ipblocklist-submit' => 'खोजें',
 'ipblocklist-localblock' => 'स्थानीय अवरोध',
-'ipblocklist-otherblocks' => 'à¤\86à¤\88पà¥\80 à¤¬à¥\8dलà¥\89à¤\95 à¤¸à¥\82à¤\9aà¥\80 à¤¸à¥\87 à¤\85नà¥\8dय à¤¬à¥\8dलà¥\89à¤\95à¥\8bà¤\82',
+'ipblocklist-otherblocks' => 'à¤\85नà¥\8dय {{PLURAL:$1|बà¥\8dलà¥\89à¤\95}}',
 'infiniteblock' => 'इनफाईनाईट',
 'expiringblock' => '$1 को $2 बजे मियाद खत्म होती है',
 'anononlyblock' => 'केवल अनाम सदस्य',
@@ -2648,22 +2738,18 @@ $1 को बाध्य करने का कारण है: "$2"',
 # Move page
 'move-page' => '$1 ले जाएं',
 'move-page-legend' => 'पृष्ठ स्थानांतरण',
-'movepagetext' => "नà¥\80à¤\9aà¥\87 à¤¦à¤¿à¤¯à¤¾ à¤¹à¥\81à¤\86 à¤ªà¤°à¥\8dà¤\9aा पृष्ठ का नाम बदल देगा, उसका सारा इतिहास भी नए नाम से दिखना शुरू हो जाएगा।
-पà¥\81राना à¤¶à¥\80रà¥\8dषà¤\95 à¤¨à¤¯à¥\87 à¤¨à¤¾à¤® à¤\95à¥\8b à¤\85नà¥\81पà¥\8dरà¥\87षित à¤\95रà¥\87à¤\97ा 
-मà¥\82ल à¤¶à¥\80रà¥\8dषà¤\95 à¤\95à¥\80 à¤\93र à¤²à¥\87 à¤\9cानà¥\87 à¤µà¤¾à¤²à¥\87 à¤\85à¤\97à¥\8dरà¥\87षणों को आप स्वचालित रूप से बदल सकते हैं।
-यदि आप ऐसा नहीं करते हैं तो कृपया [[Special:DoubleRedirects|दोहरे]] पुनर्निर्देशण या [[Special:BrokenRedirects|टूटे पुनर्निर्देशन]] के लिए ज़रूर जाँच करें।
-कड़ियाँ सही जगह इंगित करती रहें, यह सुनिश्चित करना आपकी जिम्मेदारी है।
+'movepagetext' => "नà¥\80à¤\9aà¥\87 à¤¦à¤¿à¤¯à¤¾ à¤¹à¥\81à¤\86 à¤«à¤¼à¥\89रà¥\8dम पृष्ठ का नाम बदल देगा, उसका सारा इतिहास भी नए नाम से दिखना शुरू हो जाएगा।
+पà¥\81राना à¤¶à¥\80रà¥\8dषà¤\95 à¤¨à¤¯à¥\87 à¤¨à¤¾à¤® à¤\95à¥\8b à¤ªà¥\81नरà¥\8dनिरà¥\8dदà¥\87शित à¤\95र à¤¦à¤¿à¤¯à¤¾ à¤\9cाà¤\8fà¤\97ा
+मà¥\82ल à¤¶à¥\80रà¥\8dषà¤\95 à¤\95à¥\80 à¤\93र à¤²à¥\87 à¤\9cानà¥\87 à¤µà¤¾à¤²à¥\87 à¤ªà¥\81नारà¥\8dनिरà¥\8dदà¥\87शों को आप स्वचालित रूप से बदल सकते हैं।
+यदि आप ऐसा नहीं करते हैं तो कृपया [[Special:DoubleRedirects|दोहरे पुनर्निर्देशन]] या [[Special:BrokenRedirects|टूटे पुनर्निर्देशन]] के लिए ज़रूर जाँच करें।
+à¤\95ड़ियाà¤\81 à¤¸à¤¹à¥\80 à¤\9cà¤\97ह à¤\87à¤\82à¤\97ित à¤\95रतà¥\80 à¤°à¤¹à¥\87à¤\82, à¤¯à¤¹ à¤¸à¥\81निशà¥\8dà¤\9aित à¤\95रना à¤\86पà¤\95à¥\80 à¤\9c़िमà¥\8dमà¥\87दारà¥\80 à¤¹à¥\88।
 
-à¤\85à¤\97र à¤¨à¤¯à¥\87 à¤¶à¥\80रà¥\8dषà¤\95 à¤\95ा à¤²à¥\87à¤\96 à¤ªà¤¹à¤²à¥\87 à¤¸à¥\87 à¤¹à¥\88 à¤¤à¥\8b à¤¸à¥\8dथानाà¤\82तरण '''नहà¥\80à¤\82''' à¤¹à¥\8bà¤\97ा। à¤ªà¤° à¤\85à¤\97र à¤¨à¤¯à¥\87 à¤¶à¥\80रà¥\8dषà¤\95 à¤µà¤¾à¤²à¤¾ à¤²à¥\87à¤\96 à¤\96ालà¥\80 à¤¹à¥\88 à¤\85थवा à¤\95हà¥\80à¤\82 à¤\94र à¤\85नà¥\81पà¥\8dरà¥\87षित à¤\95रता à¤¹à¥\88 à¤\94र à¤¸à¤¾à¤¥ à¤¹à¥\80 à¤\89सà¤\95à¥\87 à¤ªà¥\81रानà¥\87 à¤¸à¤\82सà¥\8dà¤\95रण à¤¨à¤¹à¥\80à¤\82 à¤¹à¥\88à¤\82 à¤¤à¥\8b à¤¸à¥\8dथानाà¤\82तरण à¤¹à¥\8b à¤\9cायà¥\87à¤\97ा 
+à¤\85à¤\97र à¤¨à¤¯à¥\87 à¤¶à¥\80रà¥\8dषà¤\95 à¤\95ा à¤²à¥\87à¤\96 à¤ªà¤¹à¤²à¥\87 à¤¸à¥\87 à¤¹à¥\88 à¤¤à¥\8b à¤¸à¥\8dथानाà¤\82तरण '''नहà¥\80à¤\82''' à¤¹à¥\8bà¤\97ा। à¤ªà¤° à¤\85à¤\97र à¤¨à¤¯à¥\87 à¤¶à¥\80रà¥\8dषà¤\95 à¤µà¤¾à¤²à¤¾ à¤²à¥\87à¤\96 à¤\95हà¥\80à¤\82 à¤\94र à¤\85नà¥\81पà¥\8dरà¥\87षित à¤\95रता à¤¹à¥\88 à¤\94र à¤¸à¤¾à¤¥ à¤¹à¥\80 à¤\89सà¤\95à¥\87 à¤ªà¥\81रानà¥\87 à¤¸à¤\82सà¥\8dà¤\95रण à¤¨à¤¹à¥\80à¤\82 à¤¹à¥\88à¤\82 à¤¤à¥\8b à¤¸à¥\8dथानाà¤\82तरण à¤¹à¥\8b à¤\9cायà¥\87à¤\97ा
 इसका मतलब कि यदि आपसे गलती हो जाए तो आप वापस पुराने नाम पर इस पृष्ठ का स्थानांतरण कर सकेंगे, और साथ ही आप किसी मौजूदा पृष्ठ के बदले यह स्थानांतरण नहीं कर सकते हैं।
 
 '''चेतावनी!'''
 यदि पृष्ठ काफ़ी लोकप्रिय है तो उसके लिए यह एक बहुत बड़ा व अकस्मात् परिवर्तन हो सकता है;
-आगे बढ़ने से पहले इसका अंजाम अच्छी तरह समझ लें।
-
-'''सूचना!'''
-स्थानांतरण करनेसे कोई भी महत्वपूर्ण लेख में अनपेक्षित बदलाव हो सकते है ।
-आपसे अनुरोध है कि आप इसके परिणाम जान लें ।",
+आगे बढ़ने से पहले इसका अंजाम अच्छी तरह समझ लें।",
 'movepagetext-noredirectfixer' => "नीचे दिया हुआ पर्चा पृष्ठ का नाम बदल देगा, उसका सारा इतिहास भी नए नाम से दिखना शुरू हो जाएगा।
 पुराना शीर्षक नये नाम को अनुप्रेषित करेगा ।
 मूल शीर्षक की ओर ले जाने वाले अग्रेषणों को आप स्वचालित रूप से बदल सकते हैं।
@@ -2725,7 +2811,7 @@ $1 को बाध्य करने का कारण है: "$2"',
 लक्ष्य पृष्ठ "[[:$1]]" पहले से अस्तित्वमें हैं।
 नाम बदलने के लिये क्या आप इसे हटाना चाहतें हैं?',
 'delete_and_move_confirm' => 'जी हां, पृष्ठ हटाईयें',
-'delete_and_move_reason' => 'स्थानांतरण करने के लिये जगह बनाई गयी है',
+'delete_and_move_reason' => '"[[$1]]" से स्थानांतरण करने के लिये जगह बनाई गयी है',
 'selfmove' => 'स्रोत और लक्ष्य शीर्षक समान हैं;
 पृष्ठ अपने ही जगह पर स्थानांतरित नहीं हो सकता।',
 'immobile-source-namespace' => 'नामस्थान "$1" के पन्नों का स्थानंतरण नहीं किया जा सकता है।',
@@ -2788,7 +2874,8 @@ $1 को बाध्य करने का कारण है: "$2"',
 # Thumbnails
 'thumbnail-more' => 'बड़ा करें',
 'filemissing' => 'फ़ाईल मिली नहीं',
-'thumbnail_error' => 'थंबनेल बनानेमें असुविधा हुई है: $1',
+'thumbnail_error' => 'थंबनेल बनाने में त्रुटि हुई है: $1',
+'thumbnail_error_remote' => '$1 से त्रुटि सन्देश: $2',
 'djvu_page_error' => 'DjVu पृष्ठ रेंजके बाहर हैं',
 'djvu_no_xml' => 'DjVu फ़ाईलके लिये XML नहीं मिल पाया',
 'thumbnail_invalid_params' => 'गलत अंगूठानख मापदण्ड',
@@ -2851,6 +2938,16 @@ $1 को बाध्य करने का कारण है: "$2"',
 'import-logentry-interwiki' => 'ट्रान्सविकि कर दिया $1',
 'import-logentry-interwiki-detail' => '$2 से $1 {{PLURAL:$1|अवतरण|अवतरण}}',
 
+# JavaScriptTest
+'javascripttest' => 'जावास्क्रिप्ट परीक्षण',
+'javascripttest-title' => '$1 परीक्षण चल रहे हैं',
+'javascripttest-pagetext-noframework' => 'यह पृष्ठ जावास्क्रिप्ट परीक्षण चलाने के लिए है।',
+'javascripttest-pagetext-unknownframework' => 'अज्ञात परीक्षण ढाँचा "$1"',
+'javascripttest-pagetext-frameworks' => 'कृपया निम्न परीक्षण ढाँचों में से एक चुनें: $1',
+'javascripttest-pagetext-skins' => 'परीक्षण करने के लिए त्वचा चुनें:',
+'javascripttest-qunit-intro' => 'mediawiki.org पर [$1 परीक्षण के प्रलेखन] देखें।',
+'javascripttest-qunit-heading' => 'मीडियाविकि जावास्क्रिप्ट क्यू-युनिट परीक्षण ढाँचा',
+
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'आपका प्रयोक्ता पृष्ठ',
 'tooltip-pt-anonuserpage' => 'आप जिस आईपी से बदलाव कर रहें हैं उसका सदस्य पान',
@@ -2897,7 +2994,7 @@ $1 को बाध्य करने का कारण है: "$2"',
 'tooltip-t-print' => 'इस पृष्ठका छपानेलायक अवतरण',
 'tooltip-t-permalink' => 'पृष्ठ के इस संस्करण की स्थायी कड़ी',
 'tooltip-ca-nstab-main' => 'सामग्री वाला पृष्ठ देखें',
-'tooltip-ca-nstab-user' => 'सदसà¥\8dय à¤ªà¥\83षà¥\8dठ à¤¦à¥\87à¤\96ियà¥\87à¤\82',
+'tooltip-ca-nstab-user' => 'सदस्य पृष्ठ देखें',
 'tooltip-ca-nstab-media' => 'मीडिया पृष्ठ देखें',
 'tooltip-ca-nstab-special' => 'यह एक खास पृष्ठ है, आप इसे बदल नहीं सकतें हैं',
 'tooltip-ca-nstab-project' => 'प्रोजेक्ट पृष्ठ देखियें',
@@ -2953,6 +3050,7 @@ $1 को बाध्य करने का कारण है: "$2"',
 'spambot_username' => 'मीडियाविकि स्पॅम स्वच्छता',
 'spam_reverting' => '$1 को कड़ी ना होने वाले पुराने अवतरण को पुनर्स्थापित कर रहें हैं',
 'spam_blanking' => 'सभी अवतरणोंमें $1 को कड़ियां हैं, पूरा पाठ निकाल रहें हैं',
+'spam_deleting' => 'सभी अवतरणों में $1 की कड़ी थी, हटाया जा रहा है',
 
 # Info page
 'pageinfo-title' => '"$1" के लिये जानकारी',
@@ -2966,10 +3064,15 @@ $1 को बाध्य करने का कारण है: "$2"',
 'pageinfo-length' => 'पृष्ठ आकार (बाइट्स में)',
 'pageinfo-article-id' => 'पृष्ठ आइ॰डी',
 'pageinfo-language' => 'पृष्ठ सामग्री भाषा',
+'pageinfo-robot-policy' => 'सर्च इंजन स्थिति',
+'pageinfo-robot-index' => 'अनुक्रमणीय',
+'pageinfo-robot-noindex' => 'नहीं अनुक्रमणीय',
 'pageinfo-views' => 'दर्शाव की संख्या',
 'pageinfo-watchers' => 'पृष्ठ पर नज़र रखने वालों की संख्या',
+'pageinfo-few-watchers' => '$1 से कम ध्यान देने {{PLURAL:$1|वाला|वाले}}',
 'pageinfo-redirects-name' => 'इस पृष्ठ को पुनर्निर्देश',
 'pageinfo-subpages-name' => 'इस पृष्ठ के उप-पृष्ठ',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|पुनर्निर्देश}}; $3 {{PLURAL:$3|ग़ैर-पुनर्निर्देश}})',
 'pageinfo-firstuser' => 'पृष्ठ निर्माता',
 'pageinfo-firsttime' => 'पृष्ठ निर्माण तिथि',
 'pageinfo-lastuser' => 'नवीनतम सम्पादक',
@@ -2977,9 +3080,11 @@ $1 को बाध्य करने का कारण है: "$2"',
 'pageinfo-edits' => 'संपादन की कुल संख्या',
 'pageinfo-authors' => 'लेखकों की संख्या',
 'pageinfo-recent-edits' => 'हाल में हुए सम्पादनों की संख्या (पिछ्ले $1 में)',
+'pageinfo-recent-authors' => 'हाल ही में लेखकों की संख्या',
 'pageinfo-magic-words' => 'जादुई {{PLURAL:$1|शब्द}} ($1)',
 'pageinfo-hidden-categories' => 'छुपी {{PLURAL:$1|श्रेणी|श्रेणियाँ}} ($1)',
 'pageinfo-templates' => 'प्रयुक्त {{PLURAL:$1|साँचा|साँचे}} ($1)',
+'pageinfo-transclusions' => '$1 {{PLURAL:$1|पृष्ठ|पृष्ठों}} पर ट्रांस्कलूडिड',
 'pageinfo-toolboxlink' => 'इस पृष्ठ पर जानकारी',
 'pageinfo-redirectsto' => 'पुनर्निर्देशन लक्ष्य',
 'pageinfo-redirectsto-info' => 'जानकारी',
@@ -3034,6 +3139,8 @@ $1',
 'file-info-size-pages' => '$1 × $2  पिक्सेल, फ़ाइल का आकार:  $3 , MIME प्रकार:  $4 ,  $5   {{PLURAL:$5| page|pages}}',
 'file-nohires' => 'इससे ज्यादा रिज़ोल्यूशन उपलब्ध नहीं हैं.',
 'svg-long-desc' => 'SVG फ़ाईल, साधारणत: $1 × $2 पीक्सेल्स, फ़ाईलका आकार: $3',
+'svg-long-desc-animated' => 'ऐनिमेटिड एस॰वी॰जी फ़ाइल, $1 × $2 पिक्सेल, फ़ाइल साइज़: $3',
+'svg-long-error' => 'अमान्य एस॰वी॰जी फ़ाइल: $1',
 'show-big-image' => 'सम्पूर्ण रिज़ोल्यूशन',
 'show-big-image-preview' => 'इस पूर्वावलोकन का आकार:  $1 ।',
 'show-big-image-other' => 'अन्य  {{PLURAL:$2| resolution|resolutions}}:  $1 ।',
@@ -3043,6 +3150,8 @@ $1',
 'file-info-png-looped' => 'चक्रित',
 'file-info-png-repeat' => 'प्ले हो चुका  $1   {{PLURAL:$1| time|times}}',
 'file-info-png-frames' => '$1 {{PLURAL:$1|frame|frames}}',
+'file-no-thumb-animation' => "'''सूचना: तकनीकी समस्याओं के कारण इस फ़ाइल के थम्बनेल ऐनिमेटिड नहीं होंगे।'''",
+'file-no-thumb-animation-gif' => "'''सूचना:तकनीकी समस्याओं के कारण इस फ़ाइल जैसे अधिक रेज़ोल्यूशन गिफ़ चित्रों के थम्बनेल ऐनिमेटिड नहीं होंगे।'''",
 
 # Special:NewFiles
 'newimages' => 'नई फ़ाईल्सकी गैलरी',
@@ -3061,10 +3170,24 @@ $1',
 'minutes' => '{{PLURAL:$1|$1 minute|$1 minutes}}',
 'hours' => '{{PLURAL:$1|$1 hour|$1 hours}}',
 'days' => '{{PLURAL:$1|$1 day|$1 days}}',
+'weeks' => '{{PLURAL:$1|$1 सप्ताह}}',
 'months' => '{{PLURAL:$1|महीना|महीने}}',
+'years' => '{{PLURAL:$1|$1 वर्ष}}',
 'ago' => '$1 पहले',
 'just-now' => 'अभी-अभी',
 
+# Human-readable timestamps
+'hours-ago' => '$1 {{PLURAL:$1|घंटा|घंटे}} पहले',
+'minutes-ago' => '$1 {{PLURAL:$1|मिनट}} पहले',
+'seconds-ago' => '$1 {{PLURAL:$1|सॅकेंड}} पहले',
+'monday-at' => 'सोमवार को $1 बजे',
+'tuesday-at' => 'मंगलवार को $1 बजे',
+'thursday-at' => 'गुरूवार को $1 बजे',
+'friday-at' => 'शुक्रवार को $1 बजे',
+'saturday-at' => 'शनिवार को $1 बजे',
+'sunday-at' => 'रविवार को $1 बजे',
+'yesterday-at' => 'कल $1 बजे',
+
 # Bad image list
 'bad_image_list' => 'प्रारूप इस प्रकार है:
 
@@ -3567,7 +3690,6 @@ $5
 
 # Separators for various lists, etc.
 'semicolon-separator' => ';',
-'autocomment-prefix' => '-',
 
 # Multipage image navigation
 'imgmultipageprev' => '← पिछला पृष्ठ',
@@ -3600,7 +3722,7 @@ $5
 'size-gigabytes' => '$1 GB',
 
 # Live preview
-'livepreview-loading' => 'लोड हो रहा है...',
+'livepreview-loading' => 'लोड हो रहा है...',
 'livepreview-ready' => 'लोड हो रहा हैं... तैयार!',
 'livepreview-failed' => 'लाइव झलक नहीं दिखा पायें। साधारण झलक देखें।',
 'livepreview-error' => 'संपर्क नहीं कर पायें: $1 "$2"। साधारण झलक देखें।',
@@ -3698,7 +3820,6 @@ $5
 'version-other' => 'अन्य',
 'version-mediahandlers' => 'मीडिया संचालक',
 'version-hooks' => 'हूक',
-'version-extension-functions' => 'विस्तार प्रकार्यात्मकता',
 'version-parser-extensiontags' => 'पार्सर एक्स्टेंशन टैग',
 'version-parser-function-hooks' => 'पार्सर कार्य हूक',
 'version-hook-name' => 'हूक नाम',
@@ -3712,6 +3833,11 @@ $5
 'version-software-version' => 'अवतरण',
 'version-entrypoints-header-url' => 'यू॰आर॰एल',
 
+# Special:Redirect
+'redirect-user' => 'सदस्य आई॰डी',
+'redirect-revision' => 'पृष्ठ अवतरण संख्या',
+'redirect-file' => 'फ़ाइल नाम',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'फ़ाईल द्विरावृत्ति खोजें',
 'fileduplicatesearch-summary' => 'हैश वैल्यू के अनुसार फ़ाईल की द्विरावृत्ति खोजें।',
@@ -3737,7 +3863,7 @@ $5
 'specialpages-group-highuse' => 'अत्यधिक उपयोगी पृष्ठ',
 'specialpages-group-pages' => 'पन्नों की सूचियाँ',
 'specialpages-group-pagetools' => 'पृष्ठ औज़ार',
-'specialpages-group-wiki' => 'विà¤\95ि à¤¡à¤¾à¤\9fा à¤\94र à¤\94à¤\9c़ार',
+'specialpages-group-wiki' => 'डाटा और औज़ार',
 'specialpages-group-redirects' => 'विशेष पृष्ठ अनुप्रेषित कर रहें हैं',
 'specialpages-group-spam' => 'स्पैम औज़ार',
 
@@ -3759,6 +3885,7 @@ $5
 'tags' => 'वैध बदलाव चिप्पियाँ',
 'tag-filter' => '[[Special:Tags|चिप्पी]] छननी:',
 'tag-filter-submit' => 'छननी',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|टैग}}]]: $2)',
 'tags-title' => 'चिप्पियाँ',
 'tags-intro' => 'यह पृष्ठ अर्थ सहित वह चिप्पियाँ दर्शाता है जिनका कोई तंत्रांश किसी संपादन पर निशान लगाने के लिए इस्तेमाल कर सकता है।',
 'tags-tag' => 'चिप्पी का नाम',
@@ -3800,23 +3927,26 @@ $5
 'htmlform-submit' => 'जमा करें',
 'htmlform-reset' => 'बदलाव पुरानी स्थिति पर लाएँ',
 'htmlform-selectorother-other' => 'अन्य',
+'htmlform-no' => 'नहीं',
+'htmlform-yes' => 'हाँ',
+'htmlform-chosen-placeholder' => 'एक विकल्प चुनें',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 पूर्ण पाठ खोज समर्थन के साथ',
 'sqlite-no-fts' => '$1पूर्ण-पाठ खोज समर्थन के बिना',
 
 # New logging system
-'logentry-delete-delete' => '$1 ने पृष्ठ $3 हटा दिया',
-'logentry-delete-restore' => '$1 à¤¬à¤¹à¤¾à¤² à¤ªà¥\83षà¥\8dठ $3',
-'logentry-delete-event' => '$1 changed दृश्यता के  {{PLURAL:$5|a log event|$5 log events}} पर $3: $4',
-'logentry-delete-revision' => '$1 ने $3 पृष्ठ के {{PLURAL:$5|एक अवतरण|$5 अवतरणों}} की दृश्यता बदली: $4',
-'logentry-delete-event-legacy' => '$1 ने $3 पृष्ठ पर लॉग क्रियाओं की दृश्यता बदली',
-'logentry-delete-revision-legacy' => '$1 ने $3 पृष्ठ पर अवतरणों की दृश्यता बदली',
-'logentry-suppress-delete' => '$1 suppressed पृष्ठ $3',
-'logentry-suppress-event' => '$1 ने गुप्त रूप से $3 पृष्ठ पर निम्न {{PLURAL:$5|एक लॉग क्रिया|$5 लॉग क्रियाओं}} की दृश्यता बदली: $4',
-'logentry-suppress-revision' => '$1 à¤\9aà¥\81पà¤\95à¥\87 à¤¸à¥\87  changed à¤\95à¥\80 à¤¦à¥\83शà¥\8dयता {{PLURAL:$5|a revision|$5 revisions}} à¤ªà¥\83षà¥\8dठ à¤ªà¤° $3: $4',
-'logentry-suppress-event-legacy' => '$1 à¤\9aà¥\81पà¤\95à¥\87 à¤¸à¥\87  changed à¤ªà¤° à¤²à¥\89à¤\97 à¤\87न à¤\98à¤\9fनाà¤\93à¤\82 à¤\95à¥\80 à¤¦à¥\83शà¥\8dयता $3',
-'logentry-suppress-revision-legacy' => '$1 à¤\9aà¥\81पà¤\95à¥\87 à¤¸à¥\87 changed à¤ªà¥\83षà¥\8dठ à¤ªà¤° à¤¸à¤\82शà¥\8bधन à¤\95à¥\80 à¤¦à¥\83शà¥\8dयता $3',
+'logentry-delete-delete' => '$1 ने पृष्ठ $3 {{GENDER:$2|हटा}} दिया',
+'logentry-delete-restore' => '$1 à¤¨à¥\87 à¤ªà¥\83षà¥\8dठ $3 à¤\95à¥\8b {{GENDER:$2|पà¥\81नरà¥\8dसà¥\8dथापित}} à¤\95र à¤¦à¤¿à¤¯à¤¾',
+'logentry-delete-event' => '$1 ने $3 पृष्ठ की लॉग {{PLURAL:$5|प्रविष्टि|प्रविष्टियों}} की दृश्यता {{GENDER:$2|बदली}}: $4',
+'logentry-delete-revision' => '$1 ने $3 पृष्ठ के {{PLURAL:$5|एक अवतरण|$5 अवतरणों}} की दृश्यता {{GENDER:$2|बदली}}: $4',
+'logentry-delete-event-legacy' => '$1 ने $3 पृष्ठ पर लॉग क्रियाओं की दृश्यता {{GENDER:$2|बदली}}',
+'logentry-delete-revision-legacy' => '$1 ने $3 पृष्ठ पर अवतरणों की दृश्यता {{GENDER:$2|बदली}}',
+'logentry-suppress-delete' => '$1 ने $3 पृष्ठ को {{GENDER:$2|छुपाया}}',
+'logentry-suppress-event' => '$1 ने गुप्त रूप से $3 पृष्ठ पर निम्न {{PLURAL:$5|एक लॉग क्रिया|$5 लॉग क्रियाओं}} की दृश्यता {{GENDER:$2|बदली}}: $4',
+'logentry-suppress-revision' => '$1 à¤¨à¥\87 à¤\97à¥\81पà¥\8dत à¤°à¥\82प à¤¸à¥\87 $3 à¤ªà¥\83षà¥\8dठ à¤\95à¥\87 {{PLURAL:$5|à¤\8fà¤\95 à¤\85वतरण|$5 à¤\85वतरणà¥\8bà¤\82}} à¤\95à¥\80 à¤¦à¥\83शà¥\8dयता {{GENDER:$2|बदलà¥\80}}: $4',
+'logentry-suppress-event-legacy' => '$1 à¤¨à¥\87 à¤\97à¥\81पà¥\8dत à¤°à¥\82प à¤¸à¥\87 $3 à¤ªà¥\83षà¥\8dठ à¤ªà¤° à¤²à¥\89à¤\97 à¤\95à¥\8dरियाà¤\93à¤\82 à¤\95à¥\80 à¤¦à¥\83शà¥\8dयता {{GENDER:$2|बदलà¥\80}}',
+'logentry-suppress-revision-legacy' => '$1 à¤¨à¥\87 à¤\97à¥\81पà¥\8dत à¤°à¥\82प à¤¸à¥\87 $3 à¤ªà¥\83षà¥\8dठ à¤\95à¥\87 à¤\85वतरणà¥\8bà¤\82 à¤\95à¥\80 à¤¦à¥\83शà¥\8dयता {{GENDER:$2|बदलà¥\80}}',
 'revdelete-content-hid' => 'सामग्री छिपाई गई',
 'revdelete-summary-hid' => 'सम्पादन सारांश छिपाया गया',
 'revdelete-uname-hid' => 'सदस्यनाम छिपाया गया',
@@ -3825,19 +3955,20 @@ $5
 'revdelete-uname-unhid' => 'सदस्यनाम फिर सार्वजनिक किया गया',
 'revdelete-restricted' => 'प्रबंधकोंको प्रतिबंधित किया',
 'revdelete-unrestricted' => 'प्रबंधकोंके प्रबंधन हटायें',
-'logentry-move-move' => '$1 ने $3 पृष्ठ $4 पर स्थानांतरित किया',
-'logentry-move-move-noredirect' => '$1 ने $3 पर पुनर्निर्देश छोड़े बिना उसे $4 पर स्थानांतरित किया',
-'logentry-move-move_redir' => '$1 ने $4 से पुनर्निर्देश हटाकर $3 को उसपर स्थानांतरित किया',
-'logentry-move-move_redir-noredirect' => '$1 ने $4 से पुनार्निर्देश हटाकर $3 पर पुनर्निर्देश छोड़े बिना $3 को $4 पर स्थानांतरित किया',
-'logentry-patrol-patrol' => '$1 ने $3 पृष्ठ के $4 अवतरण को देखा हुआ चिन्हित किया',
-'logentry-patrol-patrol-auto' => '$1 ने $3 पृष्ठ के $4 अवतरण को स्वचालित रूप से देखा हुआ चिन्हित किया',
-'logentry-newusers-newusers' => 'सदस्य खाता $1 बनाया गया',
-'logentry-newusers-create' => 'सदस्य खाता $1 बनाया गया',
-'logentry-newusers-create2' => 'सदस्य खाता $3 $1 द्वारा बनाया गया था',
-'logentry-newusers-autocreate' => 'खाते $1 स्वचालित रूप से बनाया गया',
-'logentry-rights-rights' => '$1 ने $3 के सदस्य समूह $4 से बदलकर $5 किये',
-'logentry-rights-rights-legacy' => '$1 ने $3 के सदस्य समूह बदले',
-'logentry-rights-autopromote' => '$1 के सदस्य समूह स्वतः $4 से बदलकर $5 किये गए',
+'logentry-move-move' => '$1 ने $3 पृष्ठ $4 पर {{GENDER:$2|स्थानांतरित}} किया',
+'logentry-move-move-noredirect' => '$1 ने $3 पर पुनर्निर्देश छोड़े बिना उसे $4 पर {{GENDER:$2|स्थानांतरित}} किया',
+'logentry-move-move_redir' => '$1 ने $4 से पुनर्निर्देश हटाकर $3 को उसपर {{GENDER:$2|स्थानांतरित}} किया',
+'logentry-move-move_redir-noredirect' => '$1 ने $4 से पुनार्निर्देश हटाकर $3 पर पुनर्निर्देश छोड़े बिना $3 को $4 पर {{GENDER:$2|स्थानांतरित}} किया',
+'logentry-patrol-patrol' => '$1 ने $3 पृष्ठ के $4 अवतरण को देखा हुआ {{GENDER:$2|चिन्हित}} किया',
+'logentry-patrol-patrol-auto' => '$1 ने $3 पृष्ठ के $4 अवतरण को स्वचालित रूप से देखा हुआ {{GENDER:$2|चिन्हित}} किया',
+'logentry-newusers-newusers' => 'सदस्य खाता $1 {{GENDER:$2|बनाया}} गया',
+'logentry-newusers-create' => 'सदस्य खाता $1 {{GENDER:$2|बनाया}} गया',
+'logentry-newusers-create2' => 'सदस्य खाता $3 $1 द्वारा {{GENDER:$2|बनाया}} गया था',
+'logentry-newusers-byemail' => '$1 द्वारा सदस्य खाता $3 {{GENDER:$2|बनाया}} गया एवं पासवर्ड ई-मेल द्वारा भेजा गया था',
+'logentry-newusers-autocreate' => 'खाते $1 स्वचालित रूप से {{GENDER:$2|बनाया}} गया था',
+'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|किये}} गए',
 'rightsnone' => '(कोई नहीं)',
 
 # Feedback
index b36a153..f23421c 100644 (file)
@@ -78,6 +78,7 @@ $messages = array(
 'tog-diffonly' => 'Diff ke niche panna ke content ke nai dekhao',
 'tog-showhiddencats' => 'Lukawal waala vibhag ke dekhao',
 'tog-norollbackdiff' => 'Rollback kare ke baad diff ke mitae do',
+'tog-useeditwarning' => 'Jab ham koi panna se bina bachae nikaltaa hae, tab hamke warning do',
 
 'underline-always' => 'Sab time',
 'underline-never' => 'Kabhi nai',
@@ -141,6 +142,18 @@ $messages = array(
 'oct' => 'Oct',
 'nov' => 'Nov',
 'dec' => 'Dec',
+'january-date' => 'January $1',
+'february-date' => 'February $1',
+'march-date' => 'March $1',
+'april-date' => 'April $1',
+'may-date' => 'May $1',
+'june-date' => 'June $1',
+'july-date' => 'July $1',
+'august-date' => 'August $1',
+'september-date' => 'September $1',
+'october-date' => 'October $1',
+'november-date' => 'November $1',
+'december-date' => 'December $1',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Vibhag|Vibhag}}',
@@ -166,6 +179,7 @@ $messages = array(
 'newwindow' => '(Nawaa window me khule hai)',
 'cancel' => 'Nai karo',
 'moredotdotdot' => 'Aur...',
+'morenotlisted' => 'Au ke nai list karaa gais hae...',
 'mypage' => 'Panna',
 'mytalk' => 'Baat',
 'anontalk' => 'Ii IP khatir bichar',
@@ -221,6 +235,7 @@ $messages = array(
 'create-this-page' => 'Ii panna ke banao',
 'delete' => 'Mitao',
 'deletethispage' => 'Ii panna ke mitao',
+'undeletethispage' => 'Ii panna ke undelete karo',
 'undelete_short' => '{{PLURAL:$1|ek badlao|$1 badlao}} ke pahile jaise karo',
 'viewdeleted_short' => 'Dekho {{PLURAL:$1|ek mitawal badlao|$1 mitawal badlao}}',
 'protect' => 'Bachao',
@@ -274,7 +289,6 @@ $1',
 'disclaimers' => 'Jimmewari se chhutkaari',
 'disclaimerpage' => 'Project:Saadharan jimmewari nai lo',
 'edithelp' => 'Badlao pe madat',
-'edithelppage' => 'Help:Badle me',
 'helppage' => 'Help:Madat',
 'mainpage' => 'Pahila Panna',
 'mainpage-description' => 'Pahila Panna',
@@ -421,6 +435,10 @@ $2',
 'namespaceprotected' => "Aap ke paas '''$1''' namespace me panna ke badle ke adhikar nai hai.",
 'customcssprotected' => 'Aap ke ii CSS panna ke badle ke ijaajat nai hae, kaahe ki isme duusra sadasya ke personal settings hae.',
 'customjsprotected' => 'Aap ke ii JavaScript panna ke badle ke ijaajat nai hae, kaahe ki isme duusra sadasya ke personal settings hae.',
+'mycustomcssprotected' => 'Ii panna ke badle ke khatir aap ke lage iajaajat nai hae.',
+'mycustomjsprotected' => 'Sadasya ke naam',
+'myprivateinfoprotected' => 'Aap ke aapan private jaankari ke badle ke ijaajat nai hae.',
+'mypreferencesprotected' => 'Aap ke aapan preferences ke badle ke ijaajat nai hae.',
 'ns-specialprotected' => 'Khaas panna ke badla nai jae sake hai.',
 'titleprotected' => "Ii title ke banae se [[User:$1|$1]] rokis hai.
 Iske kaaran hai ''$2''.",
@@ -445,9 +463,19 @@ Yaad rakhna ki kuch panna wahi rakam se dekhai jaise ki aap log in bhaya hai, ja
 'welcomecreation-msg' => 'Aap ke account banae dewa gais hai.
 Aapan [[Special:Preferences|{{SITENAME}} pasand]]  ke badle nai bhulna.',
 'yourname' => 'Username:',
+'userlogin-yourname' => 'Aapan username ke likho',
+'userlogin-yourname-ph' => 'Password',
+'createacct-another-username-ph' => 'Username ke likho',
 'yourpassword' => 'Password:',
+'userlogin-yourpassword' => 'Aapan password ke likho',
+'userlogin-yourpassword-ph' => 'Aapan password ke likho',
+'createacct-yourpassword-ph' => 'Aapan password ke likho',
 'yourpasswordagain' => 'Password fir se type karo:',
+'createacct-yourpasswordagain' => 'Aapan password ke confirm karo',
+'createacct-yourpasswordagain-ph' => 'Hame lagged in rahan do',
 'remembermypassword' => 'Ii computer pe hamaar login yaad rakho (jaada se jaada $1 {{PLURAL:$1|din|din}} talak)',
+'userlogin-remembermypassword' => 'Secure connection ke kaam me lao',
+'userlogin-signwithsecure' => 'Secure connection ke kaam me lao',
 'securelogin-stick-https' => 'Login kare ke baad HTTPS se connected raho',
 'yourdomainname' => 'Aap ke domain:',
 'password-change-forbidden' => 'Aap ii wiki me password nai badle saktaa hae.',
@@ -460,18 +488,41 @@ Aapan [[Special:Preferences|{{SITENAME}} pasand]]  ke badle nai bhulna.',
 'logout' => 'Log out',
 'userlogout' => 'Sadasya logout',
 'notloggedin' => 'Aap logged in nai hai',
+'userlogin-noaccount' => 'Aap ke lage account hae?',
+'userlogin-joinproject' => '{{SITENAME}} ke join karo',
 'nologin' => "Account nai hai? '''$1'''.",
 'nologinlink' => 'Nawaa account banao',
 'createaccount' => 'Nawaa account banao',
 'gotaccount' => "Aap ke pas pahile se account hai ki nai? '''$1'''.",
 'gotaccountlink' => 'Log in',
 'userlogin-resetlink' => 'Ka aap aapan login kare waala jaankari ke bhulae gaya hae?',
+'userlogin-resetpassword-link' => 'Aapan password ke reset karo',
+'helplogin-url' => 'Help:Logging in',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Aap ke login khatir madat]]',
+'createacct-join' => 'Aapan jankari niche likho',
+'createacct-another-join' => 'Account ke baare me jaankari niche likho',
+'createacct-emailrequired' => 'Email address',
+'createacct-emailoptional' => 'Email address (jaruri nai hae)',
+'createacct-email-ph' => 'Aapan mail address ke likho',
+'createacct-another-email-ph' => 'Email address ke likho',
 'createaccountmail' => 'Ek temporary password ke kaam me laao aur iske niche dekhawa gais Email pe bhej do',
+'createacct-realname' => 'Aslii naam (jaruri nai hae)',
 'createaccountreason' => 'Kaaran:',
+'createacct-reason' => 'Kaaran',
+'createacct-reason-ph' => 'Aap ke ii account ke banae ke kaaran',
+'createacct-captcha' => 'Security check',
+'createacct-imgcaptcha-ph' => 'Niche dekhae waala text ke likho',
+'createacct-submit' => 'Aapan account banao',
+'createacct-another-submit' => 'Duusra account banao',
+'createacct-benefit-heading' => 'Aap ke rakam log {{SITENAME}} ke banain hae.',
+'createacct-benefit-body1' => '{{PLURAL:$1|badlao}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|panna}}',
+'createacct-benefit-body3' => 'haali ke {{PLURAL:$1|yogdaan de waala}}',
 'badretype' => 'Jon duuno password aap likha hai uu ek rakam nai hae.',
 'userexists' => 'Ii sadasya ke naam aur koi ke hae.
 Duusra sadasya ke naam ke choose karo.',
 'loginerror' => 'Login me kuchh wrong hae',
+'createacct-error' => 'Account ke banae me galti',
 'createaccounterror' => 'Account ke nai banae sakaa hae: $1',
 'nocookiesnew' => 'Aap ke account banae dewa gais hae lekin aap logged in nai hae.
 {{SITENAME}} me sadasya ke login khatir cookies hae.
@@ -526,7 +577,7 @@ Meharbaani kar ke achchha address ke enter karo nai to uu field ke khali kar do.
 'cannotchangeemail' => 'Ii wiki me account e-mail ke badla nai jaawe sake hae',
 'emaildisabled' => 'Ii site e-mail nai bheje sake hae.',
 'accountcreated' => 'Account banae dewa gais hai',
-'accountcreatedtext' => '$1 khatir user account banae dewa gais hai.',
+'accountcreatedtext' => '[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]])  khatir user account banae dewa gais hae.',
 'createaccount-title' => '{{SITENAME}} khatir account creation',
 'createaccount-text' => 'Koi aap ke e-mail katir {{SITENAME}} ($4) named "$2" me account banais hai jiske password hai "$3".
 Aap ke chaahi ki aap login kar ke password ke badal do.
@@ -561,13 +612,15 @@ Login khatam kare khatir, aap ke nawaa password set kare ke parri hian:',
 'resetpass-wrong-oldpass' => 'Temporary nai to abhi ke password valid nai hai.
 Sait aap password ke safalta se badal sia hoga nai to nawaa temporary password ke maang karaa hoga.',
 'resetpass-temp-password' => 'Kachcha password:',
+'resetpass-abort-generic' => 'Ek extension password ke badlao ke rokis hae.',
 
 # Special:PasswordReset
 'passwordreset' => 'Password ke badlo',
-'passwordreset-text' => 'Password ke reset kare ke khatir ii form ke bharo.',
+'passwordreset-text-one' => 'Aapan password ke reset kare ke khatir ii form ke bharo.',
+'passwordreset-text-many' => '{{PLURAL:$1|Aapan password ke reset kare ke khatir ek field me likho}}',
 'passwordreset-legend' => 'Password ke badlo',
 'passwordreset-disabled' => 'II wiki me password ke badle ke ijaajat nai hae.',
-'passwordreset-pretext' => '{{PLURAL:$1||Niche ke ek data ke likho}}',
+'passwordreset-emaildisabled' => 'Ii wiki me email ke band kar dewa gais hae.',
 'passwordreset-username' => 'Sadasya ke naam:',
 'passwordreset-domain' => 'Domain:',
 'passwordreset-capture' => 'Banawa gais e-mail ke dekho',
@@ -588,9 +641,9 @@ Sadasya $1 {{SITENAME}} pe aap ke account details ke {{SITENAME}} $4 ke khaatir
 Aap 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
 Kuchh din ke khatir password: $2',
-'passwordreset-emailsent' => 'Aap ke yaad karae ke khatir ek e-mail ke bhej dewa gais hae.',
-'passwordreset-emailsent-capture' => 'Ek yaad karae waala e-mail, jiske niche dekhawa jaawe hae, ke bhej dewa gais hae.',
-'passwordreset-emailerror-capture' => 'Ek yaad karae waala e-mail ke banawa gais hae, jiske niche dekhawa jaawe hae, lekin jiske bheje nai jawa sake hae: $1',
+'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',
 
 # Special:ChangeEmail
 'changeemail' => 'E-mail address ke badlo',
@@ -769,10 +822,9 @@ Aap ii bhi kasam khata hai ki aap iske apne se likha hai aur kahin se copy nai k
 ''' COPYRIGHT WORK KE BINA AUNUMATI KE SUBMIT NAI KARNA!'''",
 'longpageerror' => "!'''ERROR: Jon text aap submit karaa hai uu {{PLURAL:$1|ek kilobyte|$1 kilobytes}} lamba hai, jon ki maximum {{PLURAL:$2|ek kilobyte|$2 kilobytes}} se lamba hai.'''
 Iske bajawa nai karaa jae sake hai.",
-'readonlywarning' => "'''WARNING: Database ke maintenance khatir band kar dewa gais hai, tab abhi aap aapan badlao ke save nai kare paega.
-Aap sait aapan badlao ke ek text file me cut-n-paste kar ke baad me use kare khatir save kae le sakta hai.'''
-
-Administrator jon ki iske lock karis hai ii kaaran diis hai: $1",
+'readonlywarning' => "'''Chetauni: Database ke maintenance khatir band kar dewa gais hai, tab abhi aap aapan badlao ke save nai kare paega.'''
+Aap saait aapan badlao ke ek text file me cut-n-paste kar ke baad me use kare khatir save kar le sakta hai.
+Administrator jon ki iske lock karis hai ii kaaran diis :hai: $1",
 'protectedpagewarning' => "'''CHETAUNI: Ii panna ke band kar dewa gais hai jisse ke khaali uu sadasya jiske sysop adhikaar hai iske badle sake hai.'''
 Niche sab se nawaa suchi aap ke dekhe ke khatir dewa gais hae:",
 'semiprotectedpagewarning' => "'''Suchna:''' Ii panna ke band kar dewa gais hai jisse ki khali registered sadasya iske badle sake hai.
@@ -808,12 +860,15 @@ Ii koi kaaran nai diis hai.',
 Janae hai ki iske koi mitae dii hai.',
 'edit-conflict' => 'Badlao me conflict hai.',
 'edit-no-change' => 'Aap ke badle ke kosis ke ignore kar dewa gais hai, kahe ki text ke badla nai gais hai.',
+'postedit-confirmation' => 'Aap ke badlao ke bachae lewa gais hae.',
 'edit-already-exists' => 'Nawaa panna nai banae sakaa hai.
 Ii naam ke panna abhi hai.',
 'defaultmessagetext' => 'Default message text',
 'content-failed-to-parse' => '$1 model ke khatir $2 ke parse nai kare sakaa hae: $3',
 'invalid-content-data' => 'Panna me likha gais chij right nai hae',
 'content-not-allowed-here' => 'Panna [[$2]] me "$1" likhe ke ijaajat nai hae',
+'editwarning-warning' => 'Ii panna ke chore se jetna changes aap  karaa hae nai save hoi.
+Agar aap logged in hae, tab aap ii chetauni ke "Editing" vibhag me disable kare saktaa hae.',
 
 # Content models
 'content-model-wikitext' => 'wikitext',
@@ -849,6 +904,7 @@ Niche ke comparison ke check kar ke dekho ki aap yahi kare mangta rahaa, aur fir
 'undo-failure' => 'Ii badalo ke paile jaise nai karaa jaae sake hai kahe ki biich me badlao hai.',
 'undo-norev' => 'Ii badlao ke pahile jaise nai karaa jaae sake hai kahe ki ii badalo abhi nai hai nai to iske mitae dewa gais hai.',
 'undo-summary' => '$1 badlao [[Special:Contributions/$2|$2]] se, ke pahile jaise karo ([[User talk:$2|Talk]])',
+'undo-summary-username-hidden' => 'Hidden sadasya ke badalo $1 ke pahile jaise karo',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Account nai banae sakta hai',
@@ -1029,6 +1085,7 @@ Ii baat ke dhyan me rakhna ki navigation jorr ke kaam me laae se ii column reset
 'compareselectedversions' => 'Chuna gae version ke compare karo',
 'showhideselectedversions' => 'Chuna gae versions ke dekhao/lukao',
 'editundo' => 'Pahile jaise kar do',
+'diff-empty' => '(ek rakam)',
 'diff-multi' => '({{PLURAL:$1|Ek biich waala badlao|$1 biich waala badlao}} jiske {{PLURAL:$2|sadasya|$2 sadasya}} karis hae, ke  nai dekhawa jae hai.)',
 'diff-multi-manyusers' => '({{PLURAL:$1|Ek biich waala badlao|$1 biich waala badlao}} jiske {{PLURAL:$2|sadasya|$2 sadasya}} se jaada log karin hae, ke  nai dekhawa jae hai.)',
 'difference-missing-revision' => 'Ii badlao ($1) {{PLURAL:$2|was|were}} pe {{PLURAL:$2|One revision|$2 revisions}} nai pawa gais hae
@@ -1055,7 +1112,6 @@ Iske baare me aur jaankari [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAM
 'searchmenu-legend' => 'Khoje ke option',
 'searchmenu-exists' => "'''Ii wiki me \"[[\$1]]\" naam ke panna hai'''",
 'searchmenu-new' => "'''Ii wiki me \"[[:\$1]]\" panna ke banao!'''",
-'searchhelp-url' => 'Help:Madat',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Ii prefix ke panna ke browse karo]]',
 'searchprofile-articles' => 'Content panna',
 'searchprofile-project' => 'Madat aur Project panna',
@@ -1077,7 +1133,7 @@ Iske baare me aur jaankari [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAM
 'search-interwiki-default' => '$1 ke result:',
 'search-interwiki-more' => '(aur)',
 'search-relatedarticle' => 'sambandh rakkhe hai',
-'mwsuggest-disable' => 'AJAX sughao ke beasar karo',
+'mwsuggest-disable' => 'AJAX sughao ke disable karo',
 'searcheverything-enable' => 'Sab namespaces me khojo',
 'searchrelated' => 'sambhand rakkhe hai',
 'searchall' => 'sab',
@@ -1099,6 +1155,7 @@ Aapan query ke ''all:'' se suruu kar ke visay suchi me khojo (including talk pag
 'searchdisabled' => '{{SITENAME}} me abhi khoje ke anumati nai hai.
 Aap tab tak Google se khoje sakta hai.
 Yaad rakhna ki uu log ke {{SITENAME}} ke index saait purana hoi.',
+'search-error' => 'Khoje ke tim ek error hoe gais hae:$1',
 
 # Preferences page
 'preferences' => 'Pasand',
@@ -1132,7 +1189,6 @@ Yaad rakhna ki uu log ke {{SITENAME}} ke index saait purana hoi.',
 'resetprefs' => 'Binaa bachawa gias badlao ke mitao',
 'restoreprefs' => 'Sab default settings ke pahile jaise karo',
 'prefs-editing' => 'Badaltaa hai',
-'prefs-edit-boxsize' => 'Edit window ke size.',
 'rows' => 'Line:',
 'columns' => 'Column:',
 'searchresultshead' => 'Khojo',
@@ -1143,9 +1199,6 @@ Yaad rakhna ki uu log ke {{SITENAME}} ke index saait purana hoi.',
 'recentchangesdays-max' => '(sab se jaada $1 {{PLURAL:$1|din|din}})',
 'recentchangescount' => 'Default se ketnaa badlao ke dekhae ke chaahi:',
 'prefs-help-recentchangescount' => 'Isme hai haali ke badlao, panna ke itihaas aur loga.',
-'prefs-help-watchlist-token' => 'Ii jaankari me gupt sabd bhare se aap ke dhyan suchi ke khatir ek RSS feed ban jaai.
-Koi bhi jan, jon ki ii gupt sabd ke jaanat hoi, aap ke dhyan suchi ke parre saki, tab aap achchha se gupt sabd ke sochna.
-Hian pe ek, apne se banaa sabd hae, jiske aap kaam me laae saktaa hae: $1',
 'savedprefs' => 'Aap ke pasand ke save kar lewa gais hai.',
 'timezonelegend' => 'Time ke zone:',
 'localtime' => 'Sthaniye samay:',
@@ -1176,7 +1229,6 @@ Hian pe ek, apne se banaa sabd hae, jiske aap kaam me laae saktaa hae: $1',
 'prefs-reset-intro' => 'Aap ii panna ke kaam me laae ke site defaults ke aapan preferences ke reset kare sakta hai.
 Iske pahile jaise nai karaa jaawe sake hai.',
 'prefs-emailconfirm-label' => 'E-mail ke confirm karaa jaawe hai:',
-'prefs-textboxsize' => 'editing window ke size',
 'youremail' => 'E-mail:',
 'username' => '{{GENDER:$1|Sadasya ke naam}}:',
 'uid' => '{{GENDER:$1|Sadasya}} ID:',
@@ -1206,7 +1258,9 @@ Iske $1 {{PLURAL:$1|character|characters}} se kamti rahe ke chaahi.',
 'prefs-signature' => 'Chinh',
 'prefs-dateformat' => 'Tarik ke format',
 'prefs-timeoffset' => 'Time ke offset',
-'prefs-advancedediting' => 'Uchchaa pasand',
+'prefs-advancedediting' => 'General',
+'prefs-editor' => 'Sampaadak',
+'prefs-preview' => 'Preview',
 'prefs-advancedrc' => 'Uchchaa pasand',
 'prefs-advancedrendering' => 'Uchchaa pasand',
 'prefs-advancedsearchoptions' => 'Uchchaa pasand',
@@ -1241,6 +1295,8 @@ Iske $1 {{PLURAL:$1|character|characters}} se kamti rahe ke chaahi.',
 'userrights-notallowed' => 'Aap ke account ke user rights de aur hatae ke adhikar nai hai.',
 'userrights-changeable-col' => 'Groups jiske aap badle sakta hai',
 'userrights-unchangeable-col' => 'Groups jiske aap badle nai sakta hai',
+'userrights-conflict' => 'User right me conflict hae. Meharbaani kar ke aapan balao ke fir se apply karo.',
+'userrights-removed-self' => 'App appan ijaajat ke hatae dia hae. Iske natija ii hoi ki app ii panna ke ab nai access kare sakegaa',
 
 # Groups
 'group' => 'Jhund:',
@@ -1284,7 +1340,7 @@ Iske $1 {{PLURAL:$1|character|characters}} se kamti rahe ke chaahi.',
 'right-reupload-shared' => 'Share media repository ke file ke uppar likh do',
 'right-upload_by_url' => 'URL address se ek file ke upload karo',
 'right-purge' => 'Site cache se ek panna ke mina fir se puchhe mitae do',
-'right-autoconfirmed' => 'Semi-protected panna ke badlo',
+'right-autoconfirmed' => 'Ispe IP-based rate limit ke koi asar nai rahii',
 'right-bot' => 'Automated process ke rakam treat karo',
 'right-nominornewtalk' => 'Salah waalaa panaa me chhota badlao ke kaaran nawaa sandes ke prompt nai dekhao',
 'right-apihighlimits' => 'API queries me uppar ke limit ke kaam me lao',
@@ -1305,12 +1361,20 @@ Iske $1 {{PLURAL:$1|character|characters}} se kamti rahe ke chaahi.',
 'right-ipblock-exempt' => 'IP blocks, auto-blocks aur range blocks ke bagal se aae jao',
 'right-proxyunbannable' => 'Proxies ke automatic blocks ke bypass karo',
 'right-unblockself' => 'Apne ke unblock karo',
-'right-protect' => 'Protection level ke badlo aur bachawa gais panna ke badlo',
-'right-editprotected' => 'Bachawa gais panna ke badlo (without cascading protection)',
+'right-protect' => 'Protection level ke badlo aur cascade-protected panna ke badlo',
+'right-editprotected' => 'Badla gais panna ke "{{int:protect-level-sysop}}" ke rakam bachawa gais hae',
+'right-editsemiprotected' => 'Badla gais panna ke "{{int:protect-level-autoconfirmed}}" ke rakam bachawa gais hae',
 'right-editinterface' => 'User interface ke badlo',
 'right-editusercssjs' => 'Duusra sadsya ke CSS aur JS files ke badlo',
 'right-editusercss' => 'Duusra sadsya ke CSS files ke badlo',
 'right-edituserjs' => 'Duusra sadsya ke JS files ke badlo',
+'right-editmyusercss' => 'Aapan CSS files ke badlo',
+'right-editmyuserjs' => 'Aapan JacaScript file ke edit karo',
+'right-viewmywatchlist' => 'Appan dhyan suchi ke dekho',
+'right-editmywatchlist' => 'Aapan dhyan suchi ke edit karo. Note karna ki app ke kuchh action bina ii rights ke nawaa panna jorri.',
+'right-viewmyprivateinfo' => 'Aapn private data ke dekho (jaise ki email address, aslii naam)',
+'right-editmyprivateinfo' => 'Aapn private data ke badlo (jaise ki email address, aslii naam)',
+'right-editmyoptions' => 'Aapan preferences ke badlo',
 'right-rollback' => 'Jaldi se ek khaas panna ke pichhla sadasya ke badlao ke ulta kar do',
 'right-markbotedits' => 'Rolled-back edits ke bot edits mark karo',
 'right-noratelimit' => 'Rrate limits se koi asar nai hai',
@@ -1372,12 +1436,17 @@ Iske $1 {{PLURAL:$1|character|characters}} se kamti rahe ke chaahi.',
 'action-userrights-interwiki' => 'duusra wiki ke sadasya ke adhikar ke badlo',
 'action-siteadmin' => 'database ke band karo nai to kholo',
 'action-sendemail' => 'E-mail bhejo',
+'action-editmywatchlist' => 'Aapan dhyan suchi ke badlo',
+'action-viewmywatchlist' => 'Aapan dhyan suchi ke dekho',
+'action-viewmyprivateinfo' => 'Aapan private jaankari ke dekho',
+'action-editmyprivateinfo' => 'Aapan private jaankari ke badlo',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|badlao|badlao}}',
 'recentchanges' => 'Nawaa badlao',
 'recentchanges-legend' => 'Nawaa badlao options',
 'recentchanges-summary' => 'Wiki me ii panna ke nawaa badlao pe dhyan rakho.',
+'recentchanges-noresult' => 'Ii criteria ke match kare waala ii period me koi badlao nai hae.',
 'recentchanges-feed-description' => 'Abhi haali me bhae ii wiki ke feed me ke track karo.',
 'recentchanges-label-newpage' => 'Ii badlao ek nawaa panna banais hae',
 'recentchanges-label-minor' => 'Ii ek chhota badlao hae',
@@ -1414,7 +1483,6 @@ Iske $1 {{PLURAL:$1|character|characters}} se kamti rahe ke chaahi.',
 'recentchangeslinked-feed' => 'Panna ke jurraa badlao',
 'recentchangeslinked-toolbox' => 'Panna ke jurraa badlao',
 'recentchangeslinked-title' => '"$1" ke badlao',
-'recentchangeslinked-noresult' => 'Linked pages me ii time ke bhitar koi changes nai bhae.',
 'recentchangeslinked-summary' => "Ii panna pahile waala badlao jon panna hian pe jurra hae ke suchi de hae (nai to vises vibhag ke sadasya).
 Panna jon [[Special:Watchlist|aap ke dhyan suchi]] me hae  '''mota''' kara gais hae.",
 'recentchangeslinked-page' => 'Panna ke naam:',
@@ -1426,7 +1494,7 @@ Panna jon [[Special:Watchlist|aap ke dhyan suchi]] me hae  '''mota''' kara gais
 'reuploaddesc' => 'Upload ke cancel kar ke upload form pe lauto',
 'upload-tryagain' => 'Badla gais file ke description bhejo',
 'uploadnologin' => 'Aap abhi loged in nai hai',
-'uploadnologintext' => 'Aap ke [[Special:UserLogin|logged in]] kare ke chaahi, file upload kare ke khatir.',
+'uploadnologintext' => 'Aap ke file upload kare ke khatir $1 kare ke parri.',
 'upload_directory_missing' => 'Upload directory ($1) nai hai aur webserver iske nai banae sakis hai.',
 'upload_directory_read_only' => 'Upload directory ($1) ke webserver nai likhe sake hai.',
 'uploaderror' => 'Upload nai hoe paais hai',
@@ -1802,6 +1870,14 @@ Templates ke delete kare se pahile duusra links ke bhi check kare ke nai bhulna.
 Saait isse aur achchha panna se link hoi. <br />
 Ek panna ke disambiguation panna maana jaae hae jab ki ii ek template ke kaam me laae hae jon ki [[MediaWiki:Disambiguationspage]] se link hoe hae.",
 
+'pageswithprop' => 'Panna, aapan property ke saathe',
+'pageswithprop-legend' => 'Panna, aapan poperty ke saathe',
+'pageswithprop-text' => 'Ii panaa, uu panna ke list kare hae jon ki koi khaas panna ke property ke use kare hae.',
+'pageswithprop-prop' => 'Property ke naam:',
+'pageswithprop-submit' => 'Jaao',
+'pageswithprop-prophidden-long' => 'lamba text property value hidden ($1 kilobytes)',
+'pageswithprop-prophidden-binary' => 'binary property ke hidden value ($1 kilobytes)',
+
 'doubleredirects' => 'Dugna redirects',
 'doubleredirectstext' => 'Ii panna uu panna ke suchi de hai jon ki duusra redirect panna pe redirect kare hai.
 Sab row me pahila aur duusra redirect ke jorr hae, aur isme duusra redirect ke nisana bhi hae, jon ki jaada kar ke "aslii" nisana waala panna, jon ki pahila redirect ke dekhae hae.
@@ -1954,9 +2030,9 @@ Is me ek nai to jaada akchhar hai jiske title me nai kaam me lawa jaae sake hai.
 'linksearch-pat' => 'Khoje ke pattern:',
 'linksearch-ns' => 'Namespace:',
 'linksearch-ok' => 'Khojo',
-'linksearch-text' => 'Wildcard jaise ki "*.wikipedia.org" ke kaam me lawa jaae sake hai.
+'linksearch-text' => 'Wildcard jaise ki "*.wikipedia.org" ke kaam me lawa jaae sake hae.
 Iske khatir ek top-level domain, jaise ki "*.org" ke jaruri hae.<br /> 
-Support karaa gais protocol: <code>$1</code> (defaults to http:// if no protocol is specified).',
+Support karaa gais {{PLURAL:$2|protocol|protocols}}: <code>$1</code> (defaults to http:// if no protocol is specified).',
 'linksearch-line' => '$1, $2 se jurraa hai',
 'linksearch-error' => 'Wildcards khaali hostname ke suruu me hoe ke chaahi.',
 
@@ -1969,7 +2045,7 @@ Support karaa gais protocol: <code>$1</code> (defaults to http:// if no protocol
 # Special:ActiveUsers
 'activeusers' => 'Active sadasya ke list',
 'activeusers-intro' => 'Ii suchi uu sadasya ke hae jon ki pahile {{PLURAL:$1|din|din}} me kuchh karin hae.',
-'activeusers-count' => '$1 haali ke {{PLURAL:$1|badlao|badlao}} pichhle {{PLURAL:$3|din|$3 din}} me',
+'activeusers-count' => '$1 haali ke {{PLURAL:$1|badlao}} pichhle {{PLURAL:$3|din}} me',
 'activeusers-from' => 'Sadasya jon ki hian se suruu hoe hai ke dekhao:',
 'activeusers-hidebots' => 'Bots ke lukao',
 'activeusers-hidesysops' => 'Administrator log ke lukao',
@@ -2032,7 +2108,7 @@ Jon e-mail address aap [[Special:Preferences|your user preferences]] me enter ka
 'usermessage-editor' => 'System ke sandes de waala',
 
 # Watchlist
-'watchlist' => 'Hamaar dhyan suchi',
+'watchlist' => 'Dhyan suchi',
 'mywatchlist' => 'Dhyaan suchi',
 'watchlistfor2' => '$1 $2 ke khatir',
 'nowatchlist' => 'Aap ke dhyan suchi me koi chij nai hai.',
@@ -2050,10 +2126,9 @@ Ii panna ke aage ke badlao aur usse jurra baat waala panna ki suchi hian pe hae.
 'unwatchthispage' => 'Ab dhyan nai rakkho',
 'notanarticle' => 'Ii content panna nai hai',
 'notvisiblerev' => 'Badlao ke mitae dewa gais hai',
-'watchnochange' => 'Aap ke koi bhi dhyan me rakkhaa gae chij ke ii time me badla nai gais hai.',
 'watchlist-details' => '{{PLURAL:$1|$1 panna|$1 panna}} pe dhyan dewa jae hai, baat waala panna ke chhorr ke.',
 'wlheader-enotif' => 'E-mail notification ke enable kar dewa gais hai.',
-'wlheader-showupdated' => "Panna jiske aap ke pichhla visit ke ke baad badal dewa gais hia ke '''bold''' me dekhawa gais hai",
+'wlheader-showupdated' => "Panna jiske aap ke pichhla visit ke ke baad badal dewa gais hia ke '''bold''' me dekhawa jaawe hai.",
 'watchmethod-recent' => 'Dhyan me rakkhaa gais panna ke nawaa badlao ke check karaa jaawe hai',
 'watchmethod-list' => 'dhyan me rakkha gais panna ke nawaa badlao ke khatir check karaa jaawe hai',
 'watchlistcontains' => 'Aap ke dhyan suchi me  $1 {{PLURAL:$1|panna|panna}} hai.',
@@ -2165,7 +2240,7 @@ aur koi ii panna ke badal nai to pahile jaise kar diis hai.
 Ii panna ke pichla badla [[User:$3|$3]] ([[User talk:$3|Talk]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]) se rahaa',
 'editcomment' => "Badlao ke summary rahaa: \"''\$1''\".",
 'revertpage' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|Talk]]) ke badlao ke [[User:$1|$1]] ke aakhri badlao ke jaise kar dewa gais hai.',
-'revertpage-nouser' => '(sadasya ke namm ke hatae dewa gais hae) se karaa gais badlao ke  [[User:$1|$1]] ke badlao ke rakam kar dewa gais hae.',
+'revertpage-nouser' => 'badlao ke  [[User:$1|$1]] ke badlao ke rakam kar dewa gais hae.',
 'rollback-success' => '$1 ke badlao ke pahile jaise kar dewa gais hai;
 badal ke $2 ke aakhri version kar dewa gais hai.',
 
@@ -2188,6 +2263,8 @@ Abhi ke laabu panna surakchha ke dekho [[Special:ProtectedPages|protected pages
 'prot_1movedto2' => '[[$1]] ke naam badal ke [[$2]] kar dewa gae hai',
 'protect-badnamespace-title' => 'Bachae nai jaae sake waala namespace',
 'protect-badnamespace-text' => 'Ii namespace me panna ke bachawa nai jaae sake hae.',
+'protect-norestrictiontypes-text' => 'Ii panna ke protect nai karaa jaae sake hae kaahe ki koi restriction types abhi nai hae.',
+'protect-norestrictiontypes-title' => 'Bina protedt karaa gais panna',
 'protect-legend' => 'Protection ke confirm karo',
 'protectcomment' => 'Kaaran:',
 'protectexpiry' => 'Khalas hoe hai:',
@@ -2206,9 +2283,9 @@ Panna ke abhi ke settings hian hai '''$1''':",
 
 Aap ii panna ke ijaajat level badle sakta hai, lekin ii cascading protection nai affect kari.',
 'protect-default' => 'Sab sadasya ke allow karo',
-'protect-fallback' => '"$1" permission chaahi',
-'protect-level-autoconfirmed' => 'Nawaa aur unregistered sadasya ke roko',
-'protect-level-sysop' => 'Khali sysops',
+'protect-fallback' => 'Khaali uu sadasya ke ijaajat do jiske "$1" permission hae',
+'protect-level-autoconfirmed' => 'Khaali autoconfirmed sadasya ke ijaajat do',
+'protect-level-sysop' => 'Khali administrators ke ijaajat do',
 'protect-summary-cascade' => 'cascading',
 'protect-expiring' => '$1 khalaas hoe hai (UTC)',
 'protect-expiring-local' => '$1 ke khalaas hoe hae',
@@ -2314,7 +2391,7 @@ $1',
 'mycontris' => 'Yogdaan',
 'contribsub2' => '$1 ($2) ke khatir',
 'nocontribs' => 'Ii critera ke rakam ke koi badlao nai pawa gais hai.',
-'uctop' => '(uppar)',
+'uctop' => '(abhi waala)',
 'month' => 'Mahina se (aur pahile):',
 'year' => 'Saal se (aur pahile):',
 
@@ -2482,6 +2559,7 @@ Meharbaani kar ke aap aapan Internet service provider, nai to tech support, ke c
 'sorbsreason' => 'DNSBL used by {{SITENAME}} me aap ke IP address ke as an open proxy list karaa gais hai.',
 'sorbs_create_account_reason' => 'DNSBL used by {{SITENAME}} me aap ke IP address ke as an open proxy list karaa gais hai.
 Aap ke ek account banae ke ijajat nai hai',
+'xffblockreason' => 'Ek IP address jon ki X-Forwarded-For header me hae, chaahe aap ke nai to jon proxy server ke aap use kartaa hae ke, ke block kar dewa gais hae. Suruu waala block kare ke kaaran rahaa:$1',
 'cant-block-while-blocked' => 'Aap, jab ki apne blocked hai, duusra sadasya ke block nai kare sakta hai.',
 'cant-see-hidden-user' => 'Jon sadasya ke aap roke mangtaa hae ke pahile rok ke lukae dewa gais hae.
 Jab ki aap ke lage hideuser adhikaar nai hae, tab aap ii sadasya ke rukawat ke nai dekhe aur badle saktaa hae.',
@@ -2646,6 +2724,8 @@ Agar aap generic MediaWiki localisation ke yogdaan de mangtaa hai tab meharbani
 'thumbnail-more' => 'Barraa karo',
 'filemissing' => 'File missing',
 'thumbnail_error' => 'Thumbnail banae me galti hoe gais: $1',
+'thumbnail_error_remote' => 'Error ke sandes from $1:
+$2',
 'djvu_page_error' => 'DjVu panna range me nai hae',
 'djvu_no_xml' => ' DjVu file ke XML ke nai paawe sakaa hae',
 'thumbnail-temp-create' => 'Temporary thumbnail file ke nai banae sakaa hae',
@@ -2854,6 +2934,7 @@ Ii saait ii kaaran se hoi ki panna ke ek jorr koi blacklisted external site se h
 'pageinfo-magic-words' => 'Magic {{PLURAL:$1|sabd}} ($1)',
 'pageinfo-hidden-categories' => 'Lukawa gais {{PLURAL:$1|category|categories}} ($1)',
 'pageinfo-templates' => 'Transcluded {{PLURAL:$1|template|templates}} ($1)',
+'pageinfo-transclusions' => '{{PLURAL:$1|Panna}} transcluded on ($1)',
 'pageinfo-toolboxlink' => 'Panna ke jaankari',
 'pageinfo-redirectsto' => 'Redirects to',
 'pageinfo-redirectsto-info' => 'jaankari',
@@ -2862,6 +2943,10 @@ Ii saait ii kaaran se hoi ki panna ke ek jorr koi blacklisted external site se h
 'pageinfo-protect-cascading' => 'Protections hian se cascade hoe hae',
 'pageinfo-protect-cascading-yes' => 'Haan',
 'pageinfo-protect-cascading-from' => 'Protections isse cascade hoe hae',
+'pageinfo-category-info' => 'Category ke bare me jaankari',
+'pageinfo-category-pages' => 'Ketnaa panna hae',
+'pageinfo-category-subcats' => 'Etnaa subcategories hae',
+'pageinfo-category-files' => 'Etnaa file hae',
 
 # Patrolling
 'markaspatrolleddiff' => 'Mark karo ke pahraa dewa jaawe hai',
@@ -2938,9 +3023,25 @@ Iske execute kare se aap ke system me garrbarr hoe sake hae.",
 'minutes' => '{{PLURAL:$1|$1 second|$1 seconds}}',
 'hours' => '{{PLURAL:$1|$1 ghanta}}',
 'days' => '{{PLURAL:$1|$1 din}}',
+'weeks' => '{{PLURAL:$1|$1 haftaa}}',
+'months' => '{{PLURAL:$1|$1 mahina}}',
+'years' => '{{PLURAL:$1saal}}',
 'ago' => '$1 pahile',
 'just-now' => 'ekdam abhi',
 
+# Human-readable timestamps
+'hours-ago' => '$1 {{PLURAL:$1|ghanta}} ago',
+'minutes-ago' => '$1 {{PLURAL:$1|minute}} bhais',
+'seconds-ago' => '$1 {{PLURAL:$1|second}} bhais',
+'monday-at' => 'Sombar ke $1 baje',
+'tuesday-at' => 'Mangar ke $1 baje',
+'wednesday-at' => 'Budh ke $1 baje',
+'thursday-at' => 'Bif ke $1 baje',
+'friday-at' => 'Suk ke $1 baje',
+'saturday-at' => 'Sanichar ke $1 baje',
+'sunday-at' => 'Etwaar ke $1 baje',
+'yesterday-at' => 'Kal $1 baje',
+
 # Bad image list
 'bad_image_list' => 'Format ii rakam hai:
 
@@ -3036,6 +3137,7 @@ Wahii line pe aur koi jorr exception consider karaa jai i.e. jahaan pe panna sak
 'exif-sensingmethod' => 'Sense kare waala method',
 'exif-filesource' => 'File ke source',
 'exif-scenetype' => 'Kon rakam ke scene hae',
+'exif-customrendered' => 'Custom image processing',
 'exif-exposuremode' => 'Custom image processing',
 'exif-whitebalance' => 'White balance',
 'exif-digitalzoomratio' => 'Digital zoom ratio',
@@ -3048,19 +3150,46 @@ Wahii line pe aur koi jorr exception consider karaa jai i.e. jahaan pe panna sak
 'exif-devicesettingdescription' => 'Device settings ke description',
 'exif-subjectdistancerange' => 'Custom image processing',
 'exif-imageuniqueid' => 'Unique image ID',
+'exif-gpsversionid' => 'GPS tag version',
 'exif-gpslatituderef' => 'Uttar aur dakchhin latitude',
+'exif-gpslatitude' => 'Latitude',
 'exif-gpslongituderef' => 'Purab aur pachchhim longitude',
+'exif-gpslongitude' => 'Longitude',
+'exif-gpsaltituderef' => 'Altitude reference',
 'exif-gpsaltitude' => 'Uunchai',
+'exif-gpstimestamp' => 'GPS ke time (atomic clock)',
+'exif-gpssatellites' => 'Satellites jieke ii naap me kaam me lawa gais hae',
+'exif-gpsstatus' => 'Receiver ke status',
+'exif-gpsmeasuremode' => 'Measurement ke mode',
+'exif-gpsdop' => 'Measurement ke precision',
 'exif-gpsspeedref' => 'Raftar ke unit',
+'exif-gpsspeed' => 'GPS receiver ke raftaar',
+'exif-gpstrackref' => 'Direction aur movement ke khatir reference',
+'exif-gpstrack' => 'Movement ke direction',
+'exif-gpsimgdirectionref' => 'Chaapa ke direction ke reference',
+'exif-gpsimgdirection' => 'Chaapa ke direction',
+'exif-gpsmapdatum' => 'Kon geodetic survey data ke kaam me lawa gais hae',
+'exif-gpsdestlatituderef' => 'Reference for latitude of destination',
+'exif-gpsdestlatitude' => 'Latitude ke manjil',
+'exif-gpsdestlongituderef' => 'Destination ke longitude ke reference',
+'exif-gpsdestlongitude' => 'Destination ke longitude',
+'exif-gpsdestbearingref' => 'Destination ke bearing ke destination',
+'exif-gpsdestbearing' => 'Destination ke bearing',
+'exif-gpsdestdistanceref' => 'Destination talak distance ke reference',
 'exif-gpsdestdistance' => 'Manjil se duuri',
+'exif-gpsprocessingmethod' => 'GPS processing method ke naam',
 'exif-gpsareainformation' => 'GPS ilaka ke naam',
 'exif-gpsdatestamp' => 'GPS ke taarik',
+'exif-gpsdifferential' => 'GPS differential correction',
+'exif-jpegfilecomment' => 'JPEG file comment',
+'exif-keywords' => 'Khaas sabd',
 'exif-worldregioncreated' => 'Duniya ke hissa jahan pe ii chhapa lewa gais hae',
 'exif-countrycreated' => 'Des jahan pe ii chhapa lewa gais hae',
 'exif-countrycodecreated' => 'Des ke code jahan pe ii chhapa lewa gais hae',
 'exif-provinceorstatecreated' => 'Province nai to state jahan pe ii chhapa lewa gais hae',
 'exif-citycreated' => 'City jahan pe ii chhapa lewa gais hae',
 'exif-sublocationcreated' => 'City ke hissa jahan pe ii chhapa lewa gais hae',
+'exif-worldregiondest' => 'Dunia ke region dekhawa jaawe hae',
 'exif-countrydest' => 'Des dekhawa gais',
 'exif-countrycodedest' => 'Des ke code dekhawa gais',
 'exif-provinceorstatedest' => 'Province, nai to state dekhawa gais',
@@ -3074,12 +3203,61 @@ Wahii line pe aur koi jorr exception consider karaa jai i.e. jahaan pe panna sak
 'exif-editstatus' => 'Chhapa ke editorial status',
 'exif-urgency' => 'Urgency',
 'exif-fixtureidentifier' => 'Fixture ke naam',
+'exif-locationdest' => 'Location depicted',
+'exif-locationdestcode' => 'Code of location depicted',
+'exif-objectcycle' => 'Time of day that media is intended for',
+'exif-contact' => 'Contact ke jaankari.',
+'exif-writer' => 'Likhe waala',
 'exif-languagecode' => 'Bhasa',
+'exif-iimversion' => 'IIM ke version',
 'exif-iimcategory' => 'Vibhag',
+'exif-iimsupplementalcategory' => 'Supplemental categories',
+'exif-datetimeexpires' => 'Nai use karnaa ii time kebaad',
+'exif-datetimereleased' => 'Release karaa gais',
+'exif-originaltransmissionref' => 'Pahile waala transmission location code',
+'exif-identifier' => 'Identifier',
+'exif-lens' => 'Kaam me laawa gais lens',
+'exif-serialnumber' => 'Camera ke serial number',
+'exif-cameraownername' => 'Camera ke owner',
+'exif-label' => 'Label',
+'exif-datetimemetadata' => 'Metadata ke pichhla dafe bala gais',
+'exif-nickname' => 'Chaapa ke informal naam',
+'exif-rating' => 'Rating (out of 5)',
+'exif-rightscertificate' => 'Rights management certificate',
 'exif-copyrighted' => 'Copyright ke haalat:',
 'exif-copyrightowner' => 'Copyright ke adhikar rakkhe waala',
 'exif-usageterms' => 'Use kare ke shart',
-
+'exif-webstatement' => 'Online copyright statement',
+'exif-originaldocumentid' => 'Unique ID of original document',
+'exif-licenseurl' => 'Copyright licence ke khatir URl',
+'exif-morepermissionsurl' => 'Duusra licencing jaankari',
+'exif-attributionurl' => 'Iske fir se use kare ke time, link karo',
+'exif-preferredattributionname' => 'Ii jaankari ke kaam me laae se phile, credit do',
+'exif-pngfilecomment' => 'PNG file ke bare me comment',
+'exif-disclaimer' => 'Jimwaari nai leta',
+'exif-contentwarning' => 'Content ke bare me chetauni',
+'exif-giffilecomment' => 'GIG file ke bare me comment',
+'exif-intellectualgenre' => 'Item ke rakam',
+'exif-subjectnewscode' => 'Subject ke code',
+'exif-scenecode' => 'IPTC scene ke code',
+'exif-event' => 'Ghatna',
+'exif-organisationinimage' => 'Sanstha',
+'exif-personinimage' => 'Log',
+'exif-originalimageheight' => 'Crop kare se pahile, chaapa ke uunchai',
+'exif-originalimagewidth' => 'Crop kare se pahike, chhapa ke churrai',
+
+# Exif attributes
+'exif-compression-1' => 'Bina compres karaa gais',
+'exif-compression-2' => 'CCITT Group 3 1-Dimensional Modified Huffman run length ke encoding',
+'exif-compression-3' => 'CCITT Group 3 fax ke encoding',
+'exif-compression-4' => 'CCITT Group 4 fax ke encoding',
+
+'exif-copyrighted-true' => 'Copyright karaa gais hae',
+'exif-copyrighted-false' => 'Janata ke khatir',
+
+'exif-unknowndate' => 'Taarik nai maalum',
+
+'exif-orientation-1' => 'Saamaan',
 'exif-orientation-2' => 'Baraabar ultawa gais hae',
 'exif-orientation-3' => '180° ghumawa gais hae',
 'exif-orientation-4' => 'Khrraa ultawa gais hae',
@@ -3088,36 +3266,197 @@ Wahii line pe aur koi jorr exception consider karaa jai i.e. jahaan pe panna sak
 'exif-orientation-7' => '90° CW ghumawa aur kharraa ultawa gais hae',
 'exif-orientation-8' => '90° CW ghumawa gais hae',
 
+'exif-planarconfiguration-1' => 'dekhe me chunky hae',
+'exif-planarconfiguration-2' => ' planar format',
+
+'exif-colorspace-65535' => 'Bina calibrate karaa gais',
+
+'exif-componentsconfiguration-0' => 'nai hae',
+
+'exif-exposureprogram-0' => 'define nai karaa gais hae',
+'exif-exposureprogram-1' => 'Haanth se',
+'exif-exposureprogram-2' => 'Saamaan program',
+'exif-exposureprogram-3' => 'Aperture ke priority',
+'exif-exposureprogram-4' => 'Shutter ke priority',
+'exif-exposureprogram-5' => 'Creative program (field ke deph ke bagal biased hae)',
+'exif-exposureprogram-6' => 'Action program (fast shutter speed ke bagal biased)',
+'exif-exposureprogram-7' => 'Portrait mode (uu closeup photo ke khatir jisme  background out of focus hae)',
+'exif-exposureprogram-8' => 'Landscape mode (landscape photo ke khatir jisme  background focus me nai hae)',
+
+'exif-subjectdistance-value' => '$1 meter',
+
 'exif-meteringmode-0' => 'Nai maluum',
+'exif-meteringmode-1' => 'Biich waala',
+'exif-meteringmode-2' => 'Biich waala weighted average',
+'exif-meteringmode-3' => 'Jagha',
+'exif-meteringmode-4' => 'Dher jagha',
+'exif-meteringmode-5' => 'Design',
 'exif-meteringmode-6' => 'Puura nai',
 'exif-meteringmode-255' => 'Duusra',
 
 'exif-lightsource-0' => 'Nai maluum',
 'exif-lightsource-1' => 'Din',
+'exif-lightsource-2' => 'Chamke waala',
+'exif-lightsource-3' => 'Tungsten (incandescent batti)',
 'exif-lightsource-4' => 'Chamak',
 'exif-lightsource-9' => 'Achchhaa mausam',
 'exif-lightsource-10' => 'Baadal ke mausam',
 'exif-lightsource-11' => 'Chhanhi',
+'exif-lightsource-12' => 'Din ke unjer fluorescent (D 5700 – 7100K)',
+'exif-lightsource-13' => 'Din waala ujjarfluorescent (N 4600 – 5400K)',
+'exif-lightsource-14' => 'Cool ujjar fluorescent (W 3900 – 4500K)',
+'exif-lightsource-15' => 'Ujjar fluorescent (WW 3200 – 3700K)',
+'exif-lightsource-17' => 'Standard batti A',
+'exif-lightsource-18' => 'Standard batti B',
+'exif-lightsource-19' => 'Standard batti C',
+'exif-lightsource-24' => 'ISO studio tungsten dhaatu',
+'exif-lightsource-255' => 'Dusra light ke source',
 
 # Flash modes
 'exif-flash-fired-0' => 'Flash nai chalaa',
 'exif-flash-fired-1' => 'Flash chal gais hae',
+'exif-flash-return-0' => 'koi strobe return detection function nai hae',
+'exif-flash-return-2' => 'strobe return light ke detect nai karaa gais hae',
+'exif-flash-return-3' => 'strobe return light ke detect nai karaa gais hae',
 'exif-flash-mode-1' => 'flash ke kaam me laae ke jaruri hae',
 'exif-flash-mode-2' => 'flash ke kaam me nai laae ke chaahi',
+'exif-flash-mode-3' => 'apne se hoe waala mode',
 'exif-flash-function-1' => 'Flash nai hae',
 'exif-flash-redeye-1' => 'laal-aankhi ke kamti kare waala mode',
 
+'exif-focalplaneresolutionunit-2' => 'inch',
+
+'exif-sensingmethod-1' => 'Define nai karaa gais hae',
+'exif-sensingmethod-2' => 'Ek-chip rang area sensor',
+'exif-sensingmethod-3' => 'Dui-chip rang area sensor',
+'exif-sensingmethod-4' => 'Tiin-chip rang area sensor',
+'exif-sensingmethod-5' => 'Rang sequential area sensor',
+'exif-sensingmethod-7' => 'Tiinlinear sensor',
+'exif-sensingmethod-8' => 'Rang sequential linear sensor',
+
+'exif-filesource-3' => 'Digital still waala camera',
+
+'exif-scenetype-1' => 'Directly utaara gais chaapa',
+
+'exif-customrendered-0' => 'Saamaan process',
+'exif-customrendered-1' => 'Custom kare waala process',
+
+'exif-exposuremode-0' => 'Apne se hoe waala exposure',
+'exif-exposuremode-1' => 'Haanth se adjust kare waala exposure',
+'exif-exposuremode-2' => 'Different exposure ke dher chhaapa utaro',
+
+'exif-whitebalance-0' => 'Apne se ujjar balance',
+'exif-whitebalance-1' => 'Haanth se ujjar balance',
+
+'exif-scenecapturetype-0' => 'Ek rakam',
+'exif-scenecapturetype-1' => 'Chaklaa',
+'exif-scenecapturetype-2' => 'Patraa',
+'exif-scenecapturetype-3' => 'Raat waala scene',
+
+'exif-gaincontrol-0' => 'Kuchh bhi nai',
+'exif-gaincontrol-1' => 'Brightness level ke uppar karo',
+'exif-gaincontrol-2' => 'Brightness level ke uppar karo',
+'exif-gaincontrol-3' => 'Brightness level ke niche karo',
+'exif-gaincontrol-4' => 'Brightness level ke niche karo',
+
+'exif-contrast-0' => 'Saamaan',
 'exif-contrast-1' => 'Naram',
+'exif-contrast-2' => 'Karraa',
+
+'exif-saturation-0' => 'Saamaan',
+'exif-saturation-1' => 'Kamti saturation',
+'exif-saturation-2' => 'Jaada saturation',
 
+'exif-sharpness-0' => 'Saamaan',
 'exif-sharpness-1' => 'Naram',
 'exif-sharpness-2' => 'Karraa',
 
+'exif-subjectdistancerange-0' => 'nai maalum',
+'exif-subjectdistancerange-1' => 'Macro hae',
 'exif-subjectdistancerange-2' => 'Najdik se dekho',
 'exif-subjectdistancerange-3' => 'Duur se dekho',
 
+# Pseudotags used for GPSLatitudeRef and GPSDestLatitudeRef
+'exif-gpslatitude-n' => 'Uttar latitude',
+'exif-gpslatitude-s' => 'Dakchhin latitude',
+
+# Pseudotags used for GPSLongitudeRef and GPSDestLongitudeRef
+'exif-gpslongitude-e' => 'Purab latitude',
+'exif-gpslongitude-w' => 'Pachhim latitude',
+
+# Pseudotags used for GPSAltitudeRef
+'exif-gpsaltitude-above-sealevel' => '$1 {{PLURAL:$1|meter}} samundar se uppar',
+'exif-gpsaltitude-below-sealevel' => '$1 {{PLURAL:$1|meter}} samundar se niche',
+
+'exif-gpsstatus-a' => 'Naapa jaawe hae',
+'exif-gpsstatus-v' => 'Naapa nai jaae sake hae',
+
+'exif-gpsmeasuremode-2' => '2-dimensional naap',
+'exif-gpsmeasuremode-3' => '3-dimensional naap',
+
 # Pseudotags used for GPSSpeedRef
+'exif-gpsspeed-k' => 'Kilometer har ghantaa',
+'exif-gpsspeed-m' => 'Mile har ghantaa',
 'exif-gpsspeed-n' => 'Knots',
 
+# Pseudotags used for GPSDestDistanceRef
+'exif-gpsdestdistance-k' => 'Kilometer',
+'exif-gpsdestdistance-m' => 'Mile',
+'exif-gpsdestdistance-n' => 'Nautical mile',
+
+'exif-gpsdop-excellent' => 'Be haal ($1)',
+'exif-gpsdop-good' => 'Achchhaa ($1)',
+'exif-gpsdop-moderate' => 'Thiik hae ($1)',
+'exif-gpsdop-fair' => 'Chal jaai ($1)',
+'exif-gpsdop-poor' => 'Kharaab ($1)',
+
+'exif-objectcycle-a' => 'Khaali sabere',
+'exif-objectcycle-p' => 'Khaali sanjhaa ke',
+'exif-objectcycle-b' => 'Duuno sabere aur sanjhaa',
+
+# Pseudotags used for GPSTrackRef, GPSImgDirectionRef and GPSDestBearingRef
+'exif-gpsdirection-t' => 'Aslii direction',
+'exif-gpsdirection-m' => 'Magnet waala direction',
+
+'exif-ycbcrpositioning-1' => 'Biich me karaa gais',
+'exif-ycbcrpositioning-2' => 'Ekke saathe',
+
+'exif-dc-contributor' => 'Yogdaan de waala',
+'exif-dc-coverage' => 'Spatial nai to temporal scope of media',
+'exif-dc-date' => 'Taarik',
+'exif-dc-publisher' => 'Chhaape waala',
+'exif-dc-relation' => 'Saathe waala media',
+'exif-dc-rights' => 'Adhikaar',
+'exif-dc-source' => 'Media ke source',
+'exif-dc-type' => 'Media ke rakam',
+
+'exif-rating-rejected' => 'Namanjuur',
+
+'exif-isospeedratings-overflow' => '65535 se barraa',
+
+'exif-iimcategory-ace' => 'Arts, culture aur entertainment',
+'exif-iimcategory-clj' => 'Crime aur law',
+'exif-iimcategory-dis' => 'Disasters aur accidents',
+'exif-iimcategory-fin' => 'Economy aur business',
+'exif-iimcategory-edu' => 'Parrhai',
+'exif-iimcategory-evn' => 'Mausam',
+'exif-iimcategory-hth' => 'Haal',
+'exif-iimcategory-hum' => 'Insaan ke interest',
+'exif-iimcategory-lab' => 'Kaam',
+'exif-iimcategory-lif' => 'Lifestyle aur leisure',
+'exif-iimcategory-pol' => 'Politics ke baare me',
+'exif-iimcategory-rel' => 'Religion aur belief',
+'exif-iimcategory-sci' => 'Science aur technology',
+'exif-iimcategory-soi' => 'Samaj ke issue',
+'exif-iimcategory-spo' => 'Khel',
+'exif-iimcategory-war' => 'War, conflict aur unrest',
+'exif-iimcategory-wea' => 'Mausam',
+
+'exif-urgency-normal' => 'Saamaan ($1)',
+'exif-urgency-low' => 'Kamti ($1)',
+'exif-urgency-high' => 'Jaada ($1)',
+'exif-urgency-other' => 'Sadasya-defined priority ($1)',
+
 # External editor support
 'edit-externally' => 'Ii file ke bahaari program me kaam me laae ke badlo',
 'edit-externally-help' => '(Aur jaankari khatir [//www.mediawiki.org/wiki/Manual:External_editors setup instructions] ke dekho)',
@@ -3130,14 +3469,81 @@ Wahii line pe aur koi jorr exception consider karaa jai i.e. jahaan pe panna sak
 
 # Email address confirmation
 'confirmemail' => 'E-mail address ke pakka karo',
+'confirmemail_noemail' => 'Aap ke lage ek valid email address [[Special:Preferences|user preferences]] me set nai hae.',
+'confirmemail_text' => '{{SITENAME}} ii maange hae ki aap email ke features ke kaam me laae se pahile aapan email ke validate karo. 
+Aapan address me confirmation email bheje ke khatir, niche ke button ke activate karo.
+Ii email me ek link rahi jisme ek code hae;
+ii email ke aapan browser me upload kar ke ii confirm karo ki aap ke email thiik hae.',
+'confirmemail_pending' => 'Confirmation code ke aap ke lage email kar dewa gais hae;
+agar aap abhi haali aapan account banaya hae, tab aap ke thorraa deri wait kare ke chaahi, nawaa code ke maange se pahile.',
+'confirmemail_send' => 'Confirmation code ke mail karo',
+'confirmemail_sent' => 'Confirmation email ke bhej dewa gais hae.',
+'confirmemail_oncreate' => 'Ek confirmation code ke aap ke email email address pe bhej dewa gais hae.
+Log in kare ke khatir, ii code ke jaruri nai hae, lekin ii wiki me koi email-based features ke enable kare ke khatir aap ke ii code ke de ke parri.',
+'confirmemail_sendfailed' => '{{SITENAME}} confirmation mail ke nai bheje sakis hae.
+Aap aapan email address me dekho ki koi invalid characters to nai hae.
+
+Mailer returned: $1',
+'confirmemail_invalid' => 'Confirmation code valid nai hae.
+Ii code saait expire hoe gais hae.',
+'confirmemail_needlogin' => 'Aap ke email confirm kare ke khatir $1 kare ke chaahi.',
+'confirmemail_success' => 'Aap ke email address ke confirm kar dewa gais hae.
+Aap [[Special:UserLogin|log in]] kar ke ii wiki ke majaa le saktaa hae.',
+'confirmemail_loggedin' => 'Aap ke email address ke ap confirm kar dewa gais hae.',
+'confirmemail_error' => 'Aap ke confirmation me kuchh garrbarri hoe gais hae.',
+'confirmemail_body' => 'Koi, hoe sake aap IP address $1 se, ek account "$2" with this email address on {{SITENAME}} ke register karis hae.
+
+Ii confirm kare ke khatir ki asliyat me ii acount aap ke hae, {{SITENAME}} me email features ke activate karo, aur aapan browser me ii link ke kholo:
+
+$3
+
+Agar aapa ii account ke nai register karaa hae, ii link ke follow karo aur email address confirmation ke cancel karo:
+
+$5
+
+Ii confirmation code $4 ke expire hoi.',
+'confirmemail_body_changed' => 'Koi, hoe sake aap IP address $1 se, ek account "$2" with this email address on {{SITENAME}} ke badlis hae.
+
+Ii confirm kare ke khatir ki asliyat me ii acount aap ke hae, {{SITENAME}} me email features ke activate karo, aur aapan browser me ii link ke kholo:
+
+$3
+
+Agar aapa ii account ke nai register karaa hae, ii link ke follow karo aur email address confirmation ke cancel karo:
+
+$5
+
+Ii confirmation code $4 ke expire hoi.',
+'confirmemail_body_set' => 'Koi, hoe sake aap IP address $1 se, ek account "$2" with this email address on {{SITENAME}} ke set karis hae.
+
+Ii confirm kare ke khatir ki asliyat me ii acount aap ke hae, {{SITENAME}} me email features ke activate karo, aur aapan browser me ii link ke kholo:
+
+$3
+
+Agar aapa ii account ke nai register karaa hae, ii link ke follow karo aur email address confirmation ke cancel karo:
+
+$5
+
+Ii confirmation code $4 ke expire hoi.',
+'invalidateemail' => 'Email confirmation ke cancel karo',
+
+# Scary transclusion
+'scarytranscludedisabled' => '[Interwiki transcluding ke disable kar dewa gais hae]',
+'scarytranscludefailed' => '[Template fetch $1 ke khatir fail hoe gais hae]',
+'scarytranscludefailed-httpstatus' => '[$1: HTTP $2 ke khatir template fetch fail hoe gais hae]',
+'scarytranscludetoolong' => '[URL bahut lambaa hae]',
 
 # Delete conflict
+'deletedwhileediting' => "'''Chetauni:''' Aap ke editing suruu kare ke baad ii panna ke delete kar dewa gais hae!",
 'recreate' => 'Fir se banao',
 
 # action=purge
 'confirm_purge_button' => 'Thik hae',
 'confirm-purge-top' => 'Ii panna ke cache ke mitao',
 
+# action=watch/unwatch
+'confirm-watch-button' => 'Thiik hae',
+'confirm-unwatch-button' => 'Thiik hae',
+
 # Multipage image navigation
 'imgmultipageprev' => '← pahile waala panna',
 'imgmultipagenext' => 'aage waala panna →',
@@ -3145,6 +3551,8 @@ Wahii line pe aur koi jorr exception consider karaa jai i.e. jahaan pe panna sak
 'imgmultigoto' => '$1 panna pe jaao',
 
 # Table pager
+'ascending_abbrev' => 'chhota se barraa',
+'descending_abbrev' => 'barraa se chhota',
 'table_pager_next' => 'Aage waala panna',
 'table_pager_prev' => 'Pahile waala panna',
 'table_pager_first' => 'Pahila panna',
@@ -3152,9 +3560,21 @@ Wahii line pe aur koi jorr exception consider karaa jai i.e. jahaan pe panna sak
 'table_pager_limit' => 'Ek panna pe $1 chij dekhao',
 'table_pager_limit_label' => 'Ek panna me etna chij rahe hae:',
 'table_pager_limit_submit' => 'Jaao',
+'table_pager_empty' => 'koi result nai',
 
 # Auto-summaries
 'autosumm-blank' => 'Panna ke mitae dia hae',
+'autosumm-replace' => 'Contwnt ke "$1" se replace kar dewa gais hae',
+'autoredircomment' => 'Panna ke [[$1]] pe redirect kar dewa gais hae',
+'autosumm-new' => 'Panna jisme "$1" hae ke banae dewa gais hae.',
+
+# Live preview
+'livepreview-loading' => 'load karaa jaae hae...',
+'livepreview-ready' => 'Load karaa jaae hae... Ready!',
+'livepreview-failed' => 'Live preview fail hoe gais hae!
+Normal preview try karo.',
+'livepreview-error' => 'Connect nai kare sakaa hae: $1 "$2".
+Normal preview ke try karo.',
 
 # Watchlist editor
 'watchlistedit-noitems' => 'Aap ke dhyan suchi me koi naam nai hae',
index 28f3ee3..d209e44 100644 (file)
@@ -258,7 +258,6 @@ $1',
 'disclaimers' => 'Diskleymer',
 'disclaimerpage' => 'Project:Kabilogan nga diskleymer',
 'edithelp' => 'Bulig sa pag Ilis',
-'edithelppage' => 'Help:I-husto',
 'helppage' => 'Help:Mga Unod',
 'mainpage' => 'Mayor nga Panid',
 'mainpage-description' => 'Mayor nga Panid',
@@ -559,10 +558,8 @@ Mahimo nga madinalag-on mo nga nga gin-ilisan ang imo pasword ukon nagpangabay k
 
 # Special:PasswordReset
 'passwordreset' => 'Liwaton ang pasword',
-'passwordreset-text' => 'Taposon ang ini nga formas agod nga makabaton sang e-mail nga nagapahanumdom sang mga detalye sang imo akawnt.',
 'passwordreset-legend' => 'Liwaton ang pasword',
 'passwordreset-disabled' => 'Ang mga pagliwat sang pasword gin-untat sa sini nga wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Magbutang sang isa sang mga datos sa idalom}}',
 'passwordreset-username' => 'Ngalan sang Manog-gamit"',
 'passwordreset-domain' => 'Domeyn:',
 'passwordreset-capture' => 'Lantawon ang nagresuta nga e-mail?',
@@ -1063,7 +1060,6 @@ Ang mga detalye mahimo nga makita sa [{{fullurl:{{#Special:Log}}/delete|page={{F
 'searchmenu-legend' => 'Mga pililian sa pagpangita',
 'searchmenu-exists' => "'''May yara sang panid nga ginhingalanan nga \"[[:\$1]]\" sa sini nga wiki.'''",
 'searchmenu-new' => "'''Gintuga ang panid nga \"[[:\$1]]\" sa sini nga wiki!'''",
-'searchhelp-url' => 'Help:Mga Unod',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Magbasa-basa sang mga panid gamit ang ini nga unpali]]',
 'searchprofile-articles' => 'Mga panid sang unod',
 'searchprofile-project' => 'Mga panid sang Bulig kag Proyekto',
@@ -1140,7 +1136,6 @@ Tandai nga ang ila nga palasulundan sang mga unod sang {{SITENAME}} mahimo nga m
 'resetprefs' => 'Panason ang mga wala matipon nga mga pagbag-o',
 'restoreprefs' => 'Ibalik ang tanan nga default settings',
 'prefs-editing' => 'Pag-ilis',
-'prefs-edit-boxsize' => 'Ang kadakoon sang bintana sang pag-ilis.',
 'rows' => 'Mga linya:',
 'columns' => 'Mga kulumna:',
 'searchresultshead' => 'Pangita-a',
@@ -1184,7 +1179,6 @@ Ini isa ka wala pinilian nga balor nga imo mahimo gamiton: $1',
 'prefs-reset-intro' => 'Indi mo magamit ang ini nga panid agod mailisan ang imo mga pagpalabi sa mga default sang site.
 Indi na ini maliwat pa.',
 'prefs-emailconfirm-label' => 'Paagkumperma sang e-mail:',
-'prefs-textboxsize' => 'Kadakoon sang bintana sang pag-ilis',
 'youremail' => 'E-mail:',
 'username' => 'Ngalan sang Manog-gamit:',
 'uid' => 'ID sang manuggamit:',
@@ -1422,7 +1416,6 @@ Ang imo adres sang e-mail wala ginapakita kon kontakon ka sang iban.',
 'recentchangeslinked-feed' => 'May labot nga pag-ilis',
 'recentchangeslinked-toolbox' => 'May labot nga pag-ilis',
 'recentchangeslinked-title' => 'Mga ginlain nga kapareho kay "$1"',
-'recentchangeslinked-noresult' => 'Wala mga pagbag-o sa mga sugpon nga mga panid sa ginhatag nga tiempo.',
 'recentchangeslinked-summary' => "Ini ang mga lista sang mga bag-o lang gid nga nahimo nga mga pahina nga gintabid halin sa gin klaro nga pahina (o mga katapo sa mga kategorya nga gin klaro).
 Mga Pahina sa [[Special:Watchlist|imo lista-lantaw]] ay '''dukot'''.",
 'recentchangeslinked-page' => 'Ngalan ka Pahina:',
index a5b13c8..11188f5 100644 (file)
  * @author Dalibor Bosits
  * @author Demicx
  * @author Dnik
+ * @author DzWiki
  * @author Ex13
  * @author Excaliboor
  * @author FriedrickMILBarbarossa
+ * @author Geitost
  * @author Herr Mlinka
  * @author Kaganer
  * @author Luka Krstulovic
  * @author MayaSimFan
  * @author Meno25
  * @author Mvrban
+ * @author Nemo bis
  * @author Roberta F.
  * @author SpeedyGonsales
  * @author Tivek
@@ -420,6 +423,18 @@ $messages = array(
 'oct' => 'lis',
 'nov' => 'stu',
 'dec' => 'pro',
+'january-date' => '$1. siječnja',
+'february-date' => '$1. veljače',
+'march-date' => '$1. ožujka',
+'april-date' => '$1. travnja',
+'may-date' => '$1. svibnja',
+'june-date' => '$1. lipnja',
+'july-date' => '$1. srpnja',
+'august-date' => '$1. kolovoza',
+'september-date' => '$1. rujna',
+'october-date' => '$1. listopada',
+'november-date' => '$1. studenoga',
+'december-date' => '$1. prosinca',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategorija|Kategorije}}',
@@ -553,7 +568,6 @@ $1',
 'disclaimers' => 'Odricanje od odgovornosti',
 'disclaimerpage' => 'Project:General_disclaimer',
 'edithelp' => 'Kako uređivati stranicu',
-'edithelppage' => 'Help:Kako_uređivati_stranicu',
 'helppage' => 'Help:Pomoć',
 'mainpage' => 'Glavna stranica',
 'mainpage-description' => 'Glavna stranica',
@@ -721,9 +735,18 @@ Neke se stranice mogu prikazivati kao da ste još uvijek prijavljeni, sve dok ne
 'welcomecreation-msg' => 'Vaš je suradnički račun otvoren.
 Ne zaboravite prilagoditi Vaše [[Special:Preferences|{{SITENAME}} postavke]].',
 'yourname' => 'Suradničko ime',
+'userlogin-yourname' => 'Suradničko ime',
+'userlogin-yourname-ph' => 'Unesite Vaše suradničko ime',
 'yourpassword' => 'Lozinka:',
+'userlogin-yourpassword' => 'Zaporka',
+'userlogin-yourpassword-ph' => 'Unesite Vašu zaporku',
+'createacct-yourpassword-ph' => 'Unesite zaporku',
 'yourpasswordagain' => 'Ponovno upišite lozinku',
+'createacct-yourpasswordagain' => 'Potvrdi zaporku',
+'createacct-yourpasswordagain-ph' => 'Unesite zaporku ponovno',
 'remembermypassword' => 'Zapamti moju lozinku na ovom računalu (najduže $1 {{PLURAL:$1|dan|dana}})',
+'userlogin-remembermypassword' => 'Zapamti me',
+'userlogin-signwithsecure' => 'Rabi sigurnu vezu',
 'securelogin-stick-https' => 'Ostani spojen na HTTPS nakon prijave',
 'yourdomainname' => 'Vaša domena',
 'password-change-forbidden' => 'Ne možete promjeniti zaporku na ovom projektu.',
@@ -736,14 +759,29 @@ Ne zaboravite prilagoditi Vaše [[Special:Preferences|{{SITENAME}} postavke]].',
 'logout' => 'Odjavi se',
 'userlogout' => 'Odjavi se',
 'notloggedin' => 'Niste prijavljeni',
-'nologin' => "Nemate suradnički račun? '''$1'''.",
+'userlogin-noaccount' => 'Nemate suradnički račun?',
+'userlogin-joinproject' => 'Pridružite se {{SITENAME}}',
+'nologin' => 'Nemate suradnički račun? $1.',
 'nologinlink' => 'Otvorite račun',
 'createaccount' => 'Otvori novi suradnički račun',
 'gotaccount' => "Već imate suradnički račun? '''$1'''.",
 'gotaccountlink' => 'Prijavite se',
 'userlogin-resetlink' => 'Zaboravili ste detalje vaše prijave?',
-'createaccountmail' => 'poštom',
+'userlogin-resetpassword-link' => 'Ponovno postavi zaporku',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Pomoć pri prijavi]]',
+'createacct-emailrequired' => 'Adresa e-pošte',
+'createacct-emailoptional' => 'Adresa e-pošte',
+'createacct-email-ph' => 'Upišite svoju adresu e-pošte',
+'createaccountmail' => 'Uporabite nasumice odabranu privremenu zaporku i pošaljite ju na dolje navedenu adresu e-pošte',
+'createacct-realname' => 'Stvarno ime (neobvezatno)',
 'createaccountreason' => 'Razlog:',
+'createacct-reason' => 'Razlog',
+'createacct-reason-ph' => 'Zašto stvarate drugi račun',
+'createacct-imgcaptcha-ph' => 'Unesite tekst koji vidite iznad',
+'createacct-submit' => 'Stvorite svoj suradnički račun',
+'createacct-benefit-heading' => '{{SITENAME}} su stvorili ljudi poput Vas.',
+'createacct-benefit-body1' => '{{PLURAL:$1|uređivanje|uređivanja}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|stranica|stranice|stranica}}',
 'badretype' => 'Unesene lozinke nisu istovjetne.',
 'userexists' => 'Uneseno suradničko ime već je u upotrebi.
 Unesite neko drugo ime.',
@@ -783,8 +821,8 @@ koristiti staru lozinku.',
 'blocked-mailpassword' => 'Vašoj IP adresi je blokirano uređivanje stranica, a da bi se spriječila nedopuštena radnja, mogućnost zahtijevanja nove lozinke je također onemogućena.',
 'eauthentsent' => 'Na navedenu adresu poslan je e-mail s potvrdom.
 Prije nego što pošaljemo daljnje poruke, molimo Vas da otvorite e-mail i slijedite u njemu sadržana uputstva kako biste potvrdili da je e-mail adresa zaista Vaša.',
-'throttled-mailpassword' => 'Već Vam je poslan e-mail za promjenu lozinke, u {{PLURAL:$1|zadnjih sat vremena|zadnja $1 sata|zadnjih $1 sati}}.
-Da bi spriječili zloupotrebu, moguće je poslati samo jedan e-mail za promjenu lozinke {{PLURAL:$1|svakih sat vremena|svaka $1 sata|svakih $1 sati}}.',
+'throttled-mailpassword' => 'Već Vam je poslan e-mail za promjenu zaporke, u {{PLURAL:$1|zadnjih sat vremena|zadnja $1 sata|zadnjih $1 sati}}.
+Da bi spriječili zloupotrebu, moguće je poslati samo jedan e-mail za promjenu zaporke {{PLURAL:$1|svakih sat vremena|svaka $1 sata|svakih $1 sati}}.',
 'mailerror' => 'Pogrješka pri slanju e-pošte: $1',
 'acct_creation_throttle_hit' => 'Posjetitelji ovog wikija koji rabe Vašu IP adresu napravili su {{PLURAL:$1|1 račun|$1 računa}} u posljednjem danu, što je najveći dopušteni broj u tom vremenskom razdoblju.
 Zbog toga posjetitelji s ove IP adrese trenutačno ne mogu otvoriti nove suradničke račune.',
@@ -798,7 +836,7 @@ Molim unesite ispravno oblikovanu adresu ili ostavite polje praznim.',
 'cannotchangeemail' => 'Na ovom wikiju ne možete promijeniti adresu e-pošte.',
 'emaildisabled' => 'Slanje e-pošte na ovom projektu nije moguće.',
 'accountcreated' => 'Suradnički račun otvoren',
-'accountcreatedtext' => 'Suradnički račun za $1 je otvoren.',
+'accountcreatedtext' => 'Suradnički je račun [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) stvoren.',
 'createaccount-title' => 'Otvaranje suradničkog računa za {{SITENAME}}',
 'createaccount-text' => 'Netko je stvorio suradnički račun s Vašom adresom elektronske pošte na {{SITENAME}} ($4) nazvan "$2", s lozinkom "$3". Trebali biste se prijaviti i odmah promijeniti lozinku.
 
@@ -830,13 +868,13 @@ Molimo Vas da pričekate prije nego što pokušate ponovo.',
 'resetpass-wrong-oldpass' => 'Pogrešna privremena ili trenutačna lozinka.
 Možda ste već uspješno promijenili Vašu lozinku ili ste zatražili novu privremenu lozinku.',
 'resetpass-temp-password' => 'Privremena lozinka:',
+'resetpass-abort-generic' => 'Poništena je promjena zaporke.',
 
 # Special:PasswordReset
 'passwordreset' => 'Ponovno postavi lozinku',
-'passwordreset-text' => 'Ispunite ovaj obrazac da biste dobili e-mail podsjetnik o vašim detaljima računa.',
+'passwordreset-text-one' => 'Ispunite ovaj obrazac ako želite ponovno postaviti Vašu zaporku.',
 'passwordreset-legend' => 'Poništi lozinku',
 'passwordreset-disabled' => 'Poništavanje lozinke je onemogućeno na ovom wikiju.',
-'passwordreset-pretext' => '{{PLURAL:$1||Unesite jedan od dijelova podataka u nastavku}}',
 'passwordreset-username' => 'Suradničko ime:',
 'passwordreset-domain' => 'Domena:',
 'passwordreset-capture' => 'Pogledati krajnju poruku?',
@@ -864,7 +902,7 @@ zahtjev, ili ako ste sjeti Vaše izvorne lozinke, a vi je više ne želite promi
 možete zanemariti ovu poruku i nastavite koristiti staru lozinku.',
 'passwordreset-emailelement' => 'Suradničko ime: $1
 Privremena lozinka: $2',
-'passwordreset-emailsent' => 'E-mail podsjetnik je poslan.',
+'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' => 'Napravljen je podsjetnik za slanje e-pošte (prikazan dolje), ali njegovo slanje nije uspjelo: $1',
 
@@ -1069,6 +1107,7 @@ Razlog nije ponuđen.',
 Čini se kako je obrisana.',
 'edit-conflict' => 'Sukob uređivanja.',
 'edit-no-change' => 'Vaše uređivanje je zanemareno, jer nikakva promjena sadržaja nije napravljena.',
+'postedit-confirmation' => 'Vaše je uređivanje sačuvano.',
 'edit-already-exists' => 'Neuspješno stvaranje nove stranice.
 Stranica već postoji.',
 'defaultmessagetext' => 'Prvotni tekst poruke',
@@ -1136,8 +1175,8 @@ Razlog koji je dao/la $3 je ''$2''",
 (pret) = razlika od prethodne inačice, m = manja promjena',
 'history-fieldset-title' => 'Pretraži povijest',
 'history-show-deleted' => 'Samo izbrisane',
-'histfirst' => 'Najstarije',
-'histlast' => 'Najnovije',
+'histfirst' => 'najstarije',
+'histlast' => 'najnovije',
 'historysize' => '({{PLURAL:$1|$1 bajt|$1 bajta|$1 bajtova}})',
 'historyempty' => '(prazna stranica)',
 
@@ -1315,7 +1354,6 @@ Više informacija možete pronaći u [{{fullurl:{{#Special:Log}}/delete|page={{F
 'searchmenu-legend' => 'Mogućnosti pretraživanja',
 'searchmenu-exists' => "* Stranica '''[[$1]]'''",
 'searchmenu-new' => "'''Stvori stranicu \"[[:\$1]]\" na ovoj wiki!'''",
-'searchhelp-url' => 'Help:Pomoć',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Pretraži stranice s ovim prefiksom]]',
 'searchprofile-articles' => 'Stranice sa sadržajem',
 'searchprofile-project' => 'Pomoć i stranice projekta',
@@ -1389,7 +1427,6 @@ Više informacija možete pronaći u [{{fullurl:{{#Special:Log}}/delete|page={{F
 'resetprefs' => 'Vrati na prvotne postavke',
 'restoreprefs' => 'Vrati sve postavke na prvotno zadane',
 'prefs-editing' => 'Širina okvira za uređivanje',
-'prefs-edit-boxsize' => 'Veličina prozora za uređivanje.',
 'rows' => 'Redova',
 'columns' => 'Stupaca',
 'searchresultshead' => 'Prikaz rezultata pretrage',
@@ -1400,7 +1437,6 @@ Više informacija možete pronaći u [{{fullurl:{{#Special:Log}}/delete|page={{F
 'recentchangesdays-max' => '(maksimalno $1 {{PLURAL:$1|dan|dana}})',
 'recentchangescount' => 'Broj izmjena za prikaz kao zadano:',
 'prefs-help-recentchangescount' => 'Ovo uključuje nedavne promjene, stare izmjene, i evidencije.',
-'prefs-help-watchlist-token' => 'Popunjavanjem ovog polja tajnim ključem generirat će se RSS redak za Vaš popis praćenja. Svatko tko zna ključ moći će čitati Vaš popis praćenih stranica, slijedom toga odaberite sigurnu vrijednost. Ovdje su nasumično generirane vrijednosti koje možete rabiti: $1',
 'savedprefs' => 'Vaše postavke su sačuvane.',
 'timezonelegend' => 'Vremenska zona:',
 'localtime' => 'Lokalno vrijeme:',
@@ -1430,7 +1466,6 @@ Više informacija možete pronaći u [{{fullurl:{{#Special:Log}}/delete|page={{F
 'prefs-common-css-js' => 'Dijeljeni CSS/JS za sve izglede:',
 'prefs-reset-intro' => 'Možete koristiti ovu stranicu za povrat Vaših postavki na prvotne postavke. Ovo se ne može poništiti.',
 'prefs-emailconfirm-label' => 'Potvrda e-mail adrese:',
-'prefs-textboxsize' => 'Veličina prozora za uređivanje',
 'youremail' => 'Vaša elektronska pošta *',
 'username' => 'Ime {{GENDER:$1|suradnika|suradnice}}:',
 'uid' => 'ID-broj {{GENDER:$1|suradnika|suradnice}}:',
@@ -1461,6 +1496,8 @@ Ne smije biti duži od $1 {{PLURAL:$1|znaka|znaka|znakova}}.',
 'prefs-dateformat' => 'Format datuma',
 'prefs-timeoffset' => 'Vremensko poravnavanje',
 'prefs-advancedediting' => 'Napredne opcije',
+'prefs-editor' => 'Uređivač',
+'prefs-preview' => 'Prikaži kako će izgledati',
 'prefs-advancedrc' => 'Napredne opcije',
 'prefs-advancedrendering' => 'Napredne opcije',
 'prefs-advancedsearchoptions' => 'Napredne opcije',
@@ -1560,11 +1597,15 @@ Ne smije biti duži od $1 {{PLURAL:$1|znaka|znaka|znakova}}.',
 'right-proxyunbannable' => 'Imunitet na automatska blokiranja posrednika (proxya)',
 'right-unblockself' => 'Odblokirati se',
 'right-protect' => 'Mijenjanje razina zaštićivanja i uređivanje zaštićenih stranica',
-'right-editprotected' => 'Uređivanje zaštićenih stranica (s prenosivom zaštitom)',
+'right-editprotected' => 'Uređivanje zaštićenih stranica (bez prenosive zaštite)',
 'right-editinterface' => 'Uređivanje suradničkog sučelja',
 'right-editusercssjs' => 'Uređivanje CSS i JS stranica drugih suradnika',
 'right-editusercss' => 'Uređivanje CSS stranica drugih suradnika',
 'right-edituserjs' => 'Uređivanje JS stranica drugih suradnika',
+'right-viewmywatchlist' => 'Pregled svojeg popisa praćenih stranica',
+'right-viewmyprivateinfo' => 'Vidite svoje privatne podatke (npr. adresu e-pošte, stvarno ime)',
+'right-editmyprivateinfo' => 'Uredite svoje privatne podatke (npr. adresa e-pošte, stvarno ime)',
+'right-editmyoptions' => 'Uredite svoje postavke',
 'right-rollback' => 'Brzo uklanjanje izmjena zadnjeg suradnika na određenoj stranici',
 'right-markbotedits' => 'Označavanje uklonjenih izmjena kao izmjenu bota',
 'right-noratelimit' => 'Bez vremenskog ograničenja uređivanja',
@@ -1626,6 +1667,10 @@ Ne smije biti duži od $1 {{PLURAL:$1|znaka|znaka|znakova}}.',
 'action-userrights-interwiki' => 'uređivanje suradničkih prava suradnika na drugim wikijima',
 'action-siteadmin' => 'zaključavanje ili otključavanje baze podataka',
 'action-sendemail' => 'pošalji e-poštu',
+'action-editmywatchlist' => 'uredite svoj popis praćenih stranica',
+'action-viewmywatchlist' => 'pregled popisa Vaših praćenih stranica',
+'action-viewmyprivateinfo' => 'pregled Vaših privatnih podataka',
+'action-editmyprivateinfo' => 'uredite svoje privatne podatke',
 
 # Recent changes
 'nchanges' => '{{PLURAL:$1|$1 promjena|$1 promjene|$1 promjena}}',
@@ -1668,7 +1713,6 @@ Ne smije biti duži od $1 {{PLURAL:$1|znaka|znaka|znakova}}.',
 'recentchangeslinked-feed' => 'Povezane stranice',
 'recentchangeslinked-toolbox' => 'Povezane stranice',
 'recentchangeslinked-title' => 'Povezane promjene sa "$1"',
-'recentchangeslinked-noresult' => 'Nema promjena na povezanim stranicama u zadanom periodu.',
 'recentchangeslinked-summary' => "Ova posebna stranica pokazuje nedavne promjene na povezanim stranicama (ili stranicama određene kategorije). Stranice koje su na [[Special:Watchlist|Vašem popisu praćenja]] su '''podebljane'''.",
 'recentchangeslinked-page' => 'Naslov stranice:',
 'recentchangeslinked-to' => 'Pokaži promjene na stranicama s poveznicom na ovu stranicu',
@@ -1679,7 +1723,7 @@ Ne smije biti duži od $1 {{PLURAL:$1|znaka|znaka|znakova}}.',
 'reuploaddesc' => 'Vratite se u obrazac za postavljanje.',
 'upload-tryagain' => 'Pošalji izmijenjeni opis datoteke',
 'uploadnologin' => 'Niste prijavljeni',
-'uploadnologintext' => 'Za postavljanje datoteka morate biti  [[Special:UserLogin|prijavljeni]].',
+'uploadnologintext' => 'Za postavljanje datoteka morate biti $1.',
 'upload_directory_missing' => 'Mapa za datoteke ($1) nedostaje i webserver ju ne može napraviti.',
 'upload_directory_read_only' => 'Server ne može pisati u direktorij za postavljanje ($1).',
 'uploaderror' => 'Pogreška kod postavljanja',
@@ -2041,6 +2085,8 @@ Možda želite urediti njen opis na [$2 stranici opisa datoteke].',
 Umjesto toga bi trebale povezivati na prikladnu temu.<br />
 Stranica se tretira kao razdvojbena stranica ako rabi predložak na kojega vodi [[MediaWiki:Disambiguationspage]]",
 
+'pageswithprop-submit' => 'Idi',
+
 'doubleredirects' => 'Dvostruka preusmjeravanja',
 'doubleredirectstext' => 'Ova stranica sadrži popis stranica koje preusmjeravju na druge stranice za preusmjeravanje.
 Svaki redak sadrži poveznice na prvo i drugo preusmjeravanje, kao i odredište drugog preusmjeravanja
@@ -2291,9 +2337,8 @@ Promjene na toj stranici i njenoj stranici za razgovor bit će prikazane na popi
 'unwatchthispage' => 'Prekini praćenje',
 'notanarticle' => 'Nije članak',
 'notvisiblerev' => 'Izmjena je obrisana',
-'watchnochange' => 'Niti jedna od praćenih stranica nije promijenjena od Vašeg zadnjeg posjeta.',
 'watchlist-details' => '{{PLURAL:$1|$1 stranica|$1 stranice|$1 stranica}} se nalazi na popisu praćenja, ne brojeći stranice za razgovor.',
-'wlheader-enotif' => 'Uključeno je izvješćivanje e-mailom.',
+'wlheader-enotif' => 'Uključeno je izvješćivanje e-poštom.',
 'wlheader-showupdated' => "Stranice koje su promijenjene od Vašeg zadnjeg posjeta prikazane su '''podebljano'''",
 'watchmethod-recent' => 'provjera nedavnih promjena praćenih stranica',
 'watchmethod-list' => 'provjera praćanih stranica za nedavne promjene',
@@ -2538,7 +2583,7 @@ $1',
 'mycontris' => 'Moji doprinosi',
 'contribsub2' => 'Za $1 ($2)',
 'nocontribs' => 'Nema promjena koje udovoljavaju ovim kriterijima.',
-'uctop' => ' (vrh)',
+'uctop' => '(vrh)',
 'month' => 'Od mjeseca (i ranije):',
 'year' => 'Od godine (i ranije):',
 
@@ -2823,11 +2868,11 @@ Molimo odaberite drugo ime.',
 
 # Export
 'export' => 'Izvezi stranice',
-'exporttext' => 'Možete izvesti tekst i prijašnje promjene jedne ili više stranica uklopljene u kȏd XML. U budućim inačicama MediaWiki softvera bit će moguće uvesti ovakvu stranicu u neki drugi wiki. Trenutačna inačica to još ne podržava.
+'exporttext' => 'Možete izvesti tekst i prijašnje promjene jedne ili više stranica uklopljene u kȏd XML. U budućim inačicama MediaWiki softvera bit će moguće uvesti ovakvu stranicu u neki drugi wiki pomoću [[Special:Import|import page]]. Trenutačna inačica to još ne podržava.
 
 Za izvoz stranica unesite njihove naslove u polje ispod, jedan naslov po retku, i označite želite li trenutačnu inačicu zajedno sa svim prijašnjima, ili samo trenutačnu inačicu s informacijom o zadnjoj promjeni.
 
-U potonjem slučaju možete koristiti i poveznicu, npr. [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] za članak [[{{MediaWiki:Mainpage}}]].',
+U potonjem slučaju možete rabiti i poveznicu, npr. [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] za članak [[{{MediaWiki:Mainpage}}]].',
 'exportall' => 'Izvezi sve stranice',
 'exportcuronly' => 'Uključi samo trenutačnu inačicu, ne i sve prijašnje',
 'exportnohistory' => "----
@@ -3080,6 +3125,9 @@ Razlog je vjerojatno vanjska poveznica koja se nalazi na crnom popisu.',
 'pageinfo-protect-cascading' => 'Prenosiva zaštita počinje od ove stranice',
 'pageinfo-protect-cascading-yes' => 'Da',
 'pageinfo-protect-cascading-from' => 'Prenosiva zaštita počinje od',
+'pageinfo-category-pages' => 'Broj stranica',
+'pageinfo-category-subcats' => 'Broj podkategorija',
+'pageinfo-category-files' => 'Broj datoteka',
 
 # Skin names
 'skinname-cologneblue' => 'Kölnska plava',
@@ -3160,9 +3208,17 @@ Njegovim izvršavanjem mogli biste oštetiti svoj sustav.",
 'minutes' => '{{PLURAL:$1|$1 minuta|$1 minute|$1 minuta}}',
 'hours' => '{{PLURAL:$1|$1 sat|$1 sata|$1 sati}}',
 'days' => '{{PLURAL:$1|$1 dan|$1 dana|$1 dana}}',
+'weeks' => '{{PLURAL:$1|$1 tjedan|$1 tjedna|$1 tjedana}}',
+'months' => '{{PLURAL:$1|$1 mjesec|$1 mjeseca|$1 mjeseci}}',
+'years' => '{{PLURAL:$1|$1 godina|$1 godine|$1 godina}}',
 'ago' => 'prije $1',
 'just-now' => 'upravo',
 
+# Human-readable timestamps
+'hours-ago' => 'prije $1 {{PLURAL:$1|sat|sata|sati}}',
+'minutes-ago' => 'prije $1 {{PLURAL:$1|minute|minuta}}',
+'seconds-ago' => 'prije $1 {{PLURAL:$1|sekunde|sekundi}}',
+
 # Bad image list
 'bad_image_list' => "Rabi se sljedeći format:
 
@@ -3818,7 +3874,6 @@ Također možete koristiti [[Special:EditWatchlist|standardni editor]].',
 'version-other' => 'Ostalo',
 'version-mediahandlers' => 'Rukovatelji medijima',
 'version-hooks' => 'Kuke',
-'version-extension-functions' => 'Funkcije proširenja',
 'version-parser-extensiontags' => 'Oznake proširenja parsera',
 'version-parser-function-hooks' => 'Kuke funkcija parsera',
 'version-hook-name' => 'Ime kuke',
@@ -3840,6 +3895,12 @@ Trebali ste primiti [{{SERVER}}{{SCRIPTPATH}}/COPYING kopiju GNU opće javne lic
 'version-entrypoints-header-entrypoint' => 'Početna adresa',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
+'redirect-submit' => 'Idi',
+'redirect-value' => 'Vrijednost:',
+'redirect-user' => 'ID suradnika',
+'redirect-file' => 'Datotečno ime',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Traži kopije datoteka',
 'fileduplicatesearch-summary' => 'Traži kopije datoteka na temelju njihove hash vrijednosti.',
@@ -3928,23 +3989,25 @@ Trebali ste primiti [{{SERVER}}{{SCRIPTPATH}}/COPYING kopiju GNU opće javne lic
 'htmlform-submit' => 'Pošalji',
 'htmlform-reset' => 'Poništi izmjene',
 'htmlform-selectorother-other' => 'Drugi',
+'htmlform-no' => 'Ne',
+'htmlform-yes' => 'Da',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 s podrškom pretraživanja cijelog teksta',
 'sqlite-no-fts' => '$1 bez podrške pretraživanja cijelog teksta',
 
 # New logging system
-'logentry-delete-delete' => '$1 obrisao je stranicu $3',
-'logentry-delete-restore' => '$1 je vratio stranicu $3',
-'logentry-delete-event' => '$1 je promijenio vidljivost {{PLURAL:$5|zapisa u evidenciji|$5 zapisa u evidenciji}} na $3: $4',
-'logentry-delete-revision' => '$1 je promijenio vidljivost {{PLURAL:$5|uređivanja|$5 uređivanja}} na stranici $3: $4',
-'logentry-delete-event-legacy' => '$1 je promijenio vidljivost zapisa u evidenciji na $3',
-'logentry-delete-revision-legacy' => '$1 je promijenio vidljivost uređivanja stranice $3',
-'logentry-suppress-delete' => '$1 je potisnuo stranicu $3',
-'logentry-suppress-event' => '$1 je tajno promijenio vidljivost {{PLURAL:$5|zapisa u evidenciji|$5 zapisa u evidenciji}} na $3: $4',
+'logentry-delete-delete' => '$1 je {{GENDER:$2|obrisao|obrisala}} stranicu $3',
+'logentry-delete-restore' => '$1 je {{GENDER:$2|vratio|vratila}} stranicu $3',
+'logentry-delete-event' => '$1 je {{GENDER:$2|promijenio|promijenila}} vidljivost {{PLURAL:$5|zapisa u evidenciji|$5 zapisa u evidenciji}} na $3: $4',
+'logentry-delete-revision' => '$1 je {{GENDER:$2|promijenio|promijenila}} vidljivost {{PLURAL:$5|uređivanja|$5 uređivanja}} na stranici $3: $4',
+'logentry-delete-event-legacy' => '$1 je {{GENDER:$2|promijenio|promijenila}} vidljivost zapisa u evidenciji na $3',
+'logentry-delete-revision-legacy' => '$1 je {{GENDER:$2|promijenio|promijenila}} vidljivost uređivanja stranice $3',
+'logentry-suppress-delete' => '$1 je {{GENDER:$2|potisnuo|potisnula}} stranicu $3',
+'logentry-suppress-event' => '$1 je tajno {{GENDER:$2|promijenio|promijenila}} vidljivost {{PLURAL:$5|zapisa u evidenciji|$5 zapisa u evidenciji}} na $3: $4',
 'logentry-suppress-revision' => '$1 je tajno promijenio vidljivost {{PLURAL:$5|uređivanja|$5 uređivanja}} na stranici $3: $4',
-'logentry-suppress-event-legacy' => '$1 je tajno promijenio vidljivost zapisa u evidenciji na $3',
-'logentry-suppress-revision-legacy' => '$1 je tajno promijenio vidljivost uređivanja na stranici $3',
+'logentry-suppress-event-legacy' => '$1 je tajno {{GENDER:$2|promijenio|promijenila}} vidljivost zapisa u evidenciji na $3',
+'logentry-suppress-revision-legacy' => '$1 je tajno {{GENDER:$2|promijenio|promijenila}} vidljivost uređivanja na stranici $3',
 'revdelete-content-hid' => 'sadržaj je sakriven',
 'revdelete-summary-hid' => 'sažetak uređivanja je sakriven',
 'revdelete-uname-hid' => 'suradničko ime skriveno',
@@ -3953,19 +4016,20 @@ Trebali ste primiti [{{SERVER}}{{SCRIPTPATH}}/COPYING kopiju GNU opće javne lic
 'revdelete-uname-unhid' => 'suradničko ime je otkriveno',
 'revdelete-restricted' => 'primijenjeno ograničenje za administratore',
 'revdelete-unrestricted' => 'uklonjeno ograničenje za administratore',
-'logentry-move-move' => '$1 je premjestio stranicu $3 na $4',
-'logentry-move-move-noredirect' => '$1 je premjestio stranicu $3 na $4 bez preusmjeravanja',
-'logentry-move-move_redir' => '$1 je premjestio stranicu $3 na $4 preko preusmjeravanja',
-'logentry-move-move_redir-noredirect' => '$1 je premjestio stranicu $3 na $4 preko preusmjeravanja bez ostavljanja preusmjeravanja',
-'logentry-patrol-patrol' => '$1 je označio uređivanje $4 stranice $3 pregledanim',
-'logentry-patrol-patrol-auto' => '$1 je automatski označio uređivanje $4 stranice $3 pregledanim',
-'logentry-newusers-newusers' => 'Suradnički račun $1 je otvoren',
-'logentry-newusers-create' => 'Suradnički račun $1 je otvoren.',
-'logentry-newusers-create2' => '$1 je  {{GENDER:$2|otvorio|otvorila}} suradnički račun $3',
-'logentry-newusers-autocreate' => 'Suradnički račun $1 je automatski stvoren',
+'logentry-move-move' => '$1 je {{GENDER:$2|premjestio|premjestila}} stranicu $3 na $4',
+'logentry-move-move-noredirect' => '$1 je {{GENDER:$2|premjestio|premjestila}} stranicu $3 na $4 bez preusmjeravanja',
+'logentry-move-move_redir' => '$1 je {{GENDER:$2|premjestio|premjestila}} stranicu $3 na $4 preko preusmjeravanja',
+'logentry-move-move_redir-noredirect' => '$1 je {{GENDER:$2|premjestio|premjestila}} stranicu $3 na $4 preko preusmjeravanja bez ostavljanja preusmjeravanja',
+'logentry-patrol-patrol' => '$1 je {{GENDER:$2|označio|označila}} uređivanje $4 stranice $3 pregledanim',
+'logentry-patrol-patrol-auto' => '$1 je automatski {{GENDER:$2|označio|označila}} uređivanje $4 stranice $3 pregledanim',
+'logentry-newusers-newusers' => '$1 je {{GENDER:$2|otvorio|otvorila}} suradnički račun',
+'logentry-newusers-create' => '$1 je {{GENDER:$2|stvorio|stvorila}} suradnički račun.',
+'logentry-newusers-create2' => '$1 je {{GENDER:$2|otvorio|otvorila}} suradnički račun $3',
+'logentry-newusers-byemail' => '$1 je {{GENDER:$2|otvorio|otvorila}} suradnički račun $3 i zaporka je poslana e-porukom.',
+'logentry-newusers-autocreate' => 'Suradnički je račun $1 automatski {{GENDER:$2|stvoren|stvorila}}.',
 'logentry-rights-rights' => '$1 {{GENDER:$2|je promijenio|je promijenila}} suradnička prava računa $3 iz $4 u $5',
-'logentry-rights-rights-legacy' => '$1 {{GENDER:$2|je promijenio|je promijenila|je promijenio}} članstvo grupe suradničkog računa $3',
-'logentry-rights-autopromote' => 'Suradničkom računu $1 {{GENDER:$1|je automatski promijenjeno članstvo|su automatski promijenjena članstva}} iz $4 u $5',
+'logentry-rights-rights-legacy' => '$1 {{GENDER:$2|je promijenio|je promijenila}} članstvo skupine suradničkog računa $3',
+'logentry-rights-autopromote' => 'Suradničkom računu $1 {{GENDER:$1| automatski je promijenjeno članstvo|automatski su promijenjena članstva}} iz $4 u $5',
 'rightsnone' => '(suradnik)',
 
 # Feedback
@@ -4040,4 +4104,7 @@ Inače, možete ispuniti jednostavan obrazac u nastavku. Vaš komentar biti će
 'duration-centuries' => '$1 {{PLURAL:$1|stoljeće|stoljeća}}',
 'duration-millennia' => '$1 {{PLURAL:$1|milenij|milenija}}',
 
+# Image rotation
+'rotate-comment' => 'Sliku je $1 zaokrenuo za {{PLURAL:$1|stupanj|stupnja|stupnjeva}} u smjeru kazaljke na satu.',
+
 );
index ebec077..1ffdd49 100644 (file)
@@ -11,6 +11,7 @@
  * @author J budissin
  * @author Kaganer
  * @author Michawiki
+ * @author Nemo bis
  * @author Shirayuki
  * @author Tchoř
  * @author Tlustulimu
@@ -261,6 +262,18 @@ $messages = array(
 'oct' => 'okt',
 'nov' => 'now',
 'dec' => 'dec',
+'january-date' => '$1. januara',
+'february-date' => '$1. februara',
+'march-date' => '$1. měrca',
+'april-date' => '$1. apryla',
+'may-date' => '$1. meje',
+'june-date' => '$1. junija',
+'july-date' => '$1. julija',
+'august-date' => '$1. awgusta',
+'september-date' => '$1. septembra',
+'october-date' => '$1. oktobra',
+'november-date' => '$1. nowembra',
+'december-date' => '$1. decembra',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategorija|Kategoriji|Kategorije|Kategorije}}',
@@ -342,6 +355,7 @@ $messages = array(
 'create-this-page' => 'Stronu wutworić',
 'delete' => 'wušmórnyć',
 'deletethispage' => 'Stronu wušmórnyć',
+'undeletethispage' => 'Tutu stronu wobnowić',
 'undelete_short' => '{{PLURAL:$1|jednu wersiju|$1 wersiji|$1 wersije|$1 wersijow}} wobnowić',
 'viewdeleted_short' => '{{PLURAL:$1|jednu wušmórnjenu změnu|$1 wušmórnjenej změnje|$1 wušmórnjene změny|$1 wušmórnjenych změnow}} sej wobhladać',
 'protect' => 'škitać',
@@ -395,7 +409,6 @@ $1',
 'disclaimers' => 'Licencne postajenja',
 'disclaimerpage' => 'Project:Impresum',
 'edithelp' => 'Pomoc za wobdźěłowanje',
-'edithelppage' => 'Help:Wobdźěłowanje',
 'helppage' => 'Help:Wobsah',
 'mainpage' => 'Hłowna strona',
 'mainpage-description' => 'Hłowna strona',
@@ -539,6 +552,10 @@ $2',
 'namespaceprotected' => "Nimaš dowolnosć, zo by stronu w mjenowym rumje '''$1''' wobdźěłał.",
 'customcssprotected' => 'Nimaš prawo, zo by tutu CSS-stronu wobdźěłał, dokelž wosobinske nastajenja druheho wužiwarja wobsahuje.',
 'customjsprotected' => 'Nimaš prawo, zo by tutu JavaScript-stronu wobdźěłał, dokelž wosobinske nastajenja druheho wužiwarja wobsahuje.',
+'mycustomcssprotected' => 'Nimaš prawo tutu CSS-stronu wobdźěłać.',
+'mycustomjsprotected' => 'Nimaš prawo tutu JavaScript-stronu wobdźěłać.',
+'myprivateinfoprotected' => 'Nimaš prawo swoje priwatne informacije wobdźěłać.',
+'mypreferencesprotected' => 'Nimaš prawo swoje nastajenja wobdźěłać.',
 'ns-specialprotected' => 'Specialne strony njedadźa so wobdźěłać.',
 'titleprotected' => 'Tutón titul bu přećiwo wutworjenju přez [[User:$1|$1]] škitany.
 Podata přičina je \'\'"$2"\'\'.',
@@ -572,7 +589,10 @@ Njezabudź swoje [[Special:Preferences|nastajenja za {{GRAMMAR:akuzatiw|{{SITENA
 'createacct-yourpassword-ph' => 'Zapodaj hesło',
 'yourpasswordagain' => 'Hesło znowa zapodać:',
 'createacct-yourpasswordagain' => 'Hesło wobkrućić',
+'createacct-yourpasswordagain-ph' => 'Zapodaj hesło hišće raz',
 'remembermypassword' => 'Na tutym ličaku přizjewjeny wostać (za maksimalnje $1 {{PLURAL:$1|dźeń|dnjej|dny|dnjow}})',
+'userlogin-remembermypassword' => 'Přizjewjeny wostać',
+'userlogin-signwithsecure' => 'Wěsty zwisk wužiwać',
 'securelogin-stick-https' => 'Po přizjewjenju z HTTPS zwjazany wostać',
 'yourdomainname' => 'Twoja domejna:',
 'password-change-forbidden' => 'Njemóžeš hesła na tutym wikiju změnić.',
@@ -585,23 +605,38 @@ Njezabudź swoje [[Special:Preferences|nastajenja za {{GRAMMAR:akuzatiw|{{SITENA
 'logout' => 'wotzjewić',
 'userlogout' => 'wotzjewić',
 'notloggedin' => 'Njepřizjewjeny',
+'userlogin-noaccount' => 'Nimaš žane konto?',
+'userlogin-joinproject' => 'Konto za {{GRAMMAR:akuzatiw|{{SITENAME}}}} załožić',
 'nologin' => 'Nimaš žane konto? $1.',
 'nologinlink' => 'Konto załožić',
 'createaccount' => 'Konto załožić',
 'gotaccount' => 'Maš hižo wužiwarske konto? $1.',
 'gotaccountlink' => 'Přizjewić',
 'userlogin-resetlink' => 'Přizjewjenske daty zabył?',
+'userlogin-resetpassword-link' => 'Hesło anulować',
+'helplogin-url' => 'Help:Přizjewić',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Pomoc za přizjewjenje]]',
+'createacct-join' => 'Zapodaj deleka swoje informacije.',
 'createacct-emailrequired' => 'E-mejlowa adresa',
+'createacct-emailoptional' => 'E-mejlowa adresa (opcionalny)',
+'createacct-email-ph' => 'Zapodaj swoju e-mejlowu adresu',
 'createaccountmail' => 'Nachwilne přidatne hesło wužiwać a jo na slědowacu e-mejlowu adresu pósłać',
+'createacct-realname' => 'Woprawdźite mjeno (opcionalny)',
 'createaccountreason' => 'Přičina:',
 'createacct-reason' => 'Přičina',
+'createacct-reason-ph' => 'Čehodla załožuješ druhe konto?',
+'createacct-captcha' => 'Wěstotna kontrola',
 'createacct-imgcaptcha-ph' => 'Zapodaj tekst, kotryž deleka widźiš',
-'createacct-benefit-body1' => 'změny',
-'createacct-benefit-body2' => 'strony',
+'createacct-submit' => 'Twoje konto załožić',
+'createacct-benefit-heading' => '{{SITENAME}} je so wot ludźi kaž ty wutworił.',
+'createacct-benefit-body1' => '{{PLURAL:$1|změna|změnje|změny|změnow}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|strona|stronje|strony|stronow}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|aktiwny sobuskutkowar|aktiwnej sobuskutkowarjej|aktiwni sobuskutkowarjo}}',
 'badretype' => 'Hesle, kotrejž sy zapodał, so njekryjetej.',
 'userexists' => 'Wužiwarske mjeno, kotrež sy zapodał, so hižo wužiwa.
 Prošu wubjer druhe mjeno.',
 'loginerror' => 'Zmylk při přizjewjenju',
+'createacct-error' => 'Zmylk při załožowanju konta',
 'createaccounterror' => 'Wužiwarske konto njeda so załožić: $1',
 'nocookiesnew' => 'Wužiwarske konto bu załožene, njejsy pak přizjewjeny. {{SITENAME}} wužiwa placki (cookies), zo bychu so wužiwarjo přizjewili. Sy placki znjemóžnił. Prošu zmóžń je a přizjew so potom ze swojim nowym wužiwarskim mjenom a hesłom.',
 'nocookieslogin' => '{{SITENAME}} wužiwa placki za přizjewjenje wužiwarjow.
@@ -646,7 +681,7 @@ Prjedy hač so druha e-mejlka na konto pósćele, dyrbiš so po instrukcijach w
 'cannotchangeemail' => 'Kontowe e-mejlowe adresy njehodźa so na tutym wikiju změnić.',
 'emaildisabled' => 'Tute sydło njemóže e-mejle pósłać.',
 'accountcreated' => 'Wužiwarske konto załožene',
-'accountcreatedtext' => 'Wužiwarske konto za $1 bu załožene.',
+'accountcreatedtext' => 'Wužiwarske konto za [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|diskusiju]]) bu załožene.',
 'createaccount-title' => 'Wutworjenje wužiwarskeho konta za {{SITENAME}}',
 'createaccount-text' => 'Něchtó je wužiwarske konto za twoju e-mejlowu adresu na {{SITENAME}} ($4) z mjenom "$2" z hesłom "$3" wutworił. Ty měł so nětko přizjewić a swoje hesło změnić.
 
@@ -679,13 +714,15 @@ Móžeš tutu zdźělenku ignorować, jeli so wužiwarske konto zmylnje wutwori
 'resetpass-wrong-oldpass' => 'Njepłaćiwe nachwilne abo aktualne hesło.
 Snano sy swoje hesło hižo wuspěšnje změnił abo nowe nachwilne hesło požadał.',
 'resetpass-temp-password' => 'Nachwilne hesło:',
+'resetpass-abort-generic' => 'Měnjenje hesła je so přez rozšěrjenje přetorhnyło.',
 
 # Special:PasswordReset
 'passwordreset' => 'Hesło wróćo stajić',
-'passwordreset-text' => 'Wupjelń tutón formular, zo by swoje hesło anulował.',
+'passwordreset-text-one' => 'Wupjelń tutón formular, zo by swoje hesło anulował.',
+'passwordreset-text-many' => '{{PLURAL:$1|Zapodaj jedyn z datow, zo by swoje hesło anulował.}}',
 'passwordreset-legend' => 'Hesło wróćo stajić',
 'passwordreset-disabled' => 'Wróćostajenje hesłow je so na  tutym wikiju znjemóžniło.',
-'passwordreset-pretext' => '{{PLURAL:$1||Zapodaj deleka jedne ze slědowacych datowych podaćow}}',
+'passwordreset-emaildisabled' => 'E-mejlowe funkcije su so na tutym wikiju znjemóžnili.',
 'passwordreset-username' => 'Wužiwarske mjeno:',
 'passwordreset-domain' => 'Domena:',
 'passwordreset-capture' => 'E-mejlku sej wobhladać?',
@@ -893,7 +930,7 @@ Najnowši protokolowy zapisk je deleka jako referenca podaty:",
 'nocreate-loggedin' => 'Nimaš prawo, zo by nowe strony wutworił.',
 'sectioneditnotsupported-title' => 'Wobdźěłowanje wotrězka so njepodpěruje',
 'sectioneditnotsupported-text' => 'Wobdźěłowanje wotrězka so na tutej wobdźěłowanskej stronje njepodpěruje.',
-'permissionserrors' => 'Woprawnjenske zmylki',
+'permissionserrors' => 'Woprawnjenski zmylk',
 'permissionserrorstext' => 'Nimaš prawo, zo by tutu akciju wuwjedł. {{PLURAL:$1|Přičina|Přičiny}}:',
 'permissionserrorstext-withaction' => 'Nimaš prawo $2. {{PLURAL:$1|Přičina|Přičinje|Přičiny|Přičiny}}:',
 'recreate-moveddeleted-warn' => "'''Kedźbu: Wutworiš stronu, kiž bu prjedy wušmórnjena.'''
@@ -908,13 +945,14 @@ Njeje žane wujasnjenje podała.',
 Zda so, zo je hîžo wušmórnjena.',
 'edit-conflict' => 'Wobdźěłanski konflikt.',
 'edit-no-change' => 'Waše wobdźěłanje bu ignorowane, dokelž tekst njebu zm,ěnjeny.',
+'postedit-confirmation' => 'Twoja změna je so składowała.',
 'edit-already-exists' => 'Njebě móžno nowu stronu wutworić.
 Eksistuje hižo.',
 'defaultmessagetext' => 'Standardny tekst zdźělenki',
 'content-failed-to-parse' => 'Parsowanje wobsaha $2 za model $1 je so njeporadźiło: $3',
 'invalid-content-data' => 'Njepłaćiwe wobsahowe daty',
 'content-not-allowed-here' => 'Wobsah "$1" njeje na stronje [[$2]] dowoleny',
-'editwarning-warning' => 'Hdyž so strona wopušća, móžeja so změny zhubić, kotrež sy přewjedł. Jeli sy přizjewjeny, móžeš tute warnowanje we wotrězku {{int:prefs-editing}} swojich nastajenjow znjemóžnić.',
+'editwarning-warning' => 'Hdyž so strona wopušća, móža so změny zhubić, kotrež sy přewjedł. Jeli sy přizjewjeny, móžeš tute warnowanje we wotrězku "Wobdźěłowanje" swojich nastajenjow znjemóžnić.',
 
 # Content models
 'content-model-wikitext' => 'wikitekst',
@@ -947,6 +985,7 @@ Dyrbjała mjenje hač $2 {{PLURAL:$2|wołanje|wołanjej|wołanja|wołanjow}} mě
 'undo-failure' => 'Wobdźěłanje njehodźeše so wotstronić, dokelž wotpowědny wotrězk bu mjeztym změnjeny.',
 'undo-norev' => 'Změna njeda so cofnyć, dokelž njeeksistuje abo bu wušmórnjena.',
 'undo-summary' => 'Změna $1 [[Special:Contributions/$2|$2]] ([[User talk:$2|diskusija]]) bu cofnjena.',
+'undo-summary-username-hidden' => 'Změna $1 schowaneho wužiwarja je so anulowała',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Wužiwarske konto njeda so wutworić.',
@@ -1151,7 +1190,6 @@ Podrobnosće móžeš w [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}
 'searchmenu-legend' => 'Pytanske opcije',
 'searchmenu-exists' => "'''Je strona z mjenom \"[[\$1]]\" na tutym wikiju'''",
 'searchmenu-new' => "'''Wutwor stronu \"[[:\$1|\$1]]\" na tutym wikiju!'''",
-'searchhelp-url' => 'Help:Wobsah',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Strony z tutym prefiksom přepytać]]',
 'searchprofile-articles' => 'Wobsahowe strony',
 'searchprofile-project' => 'Pomoc a projektowe strony',
@@ -1193,6 +1231,7 @@ Spytaj swoje naprašowanje z prefiksom ''all:'' wužiwać, zo by wšón wobsah (
 'powersearch-togglenone' => 'Žadyn',
 'search-external' => 'Eksterne pytanje',
 'searchdisabled' => 'Pytanje w {{GRAMMAR:lokatiw|{{SITENAME}}}} tuchwilu móžne njeje. Móžeš mjeztym z Google pytać. Wobkedźbuj, zo móža wuslědki z wobsaha {{GRAMMAR:genitiw|{{SITENAME}}}} zestarjene być.',
+'search-error' => 'Při pytanju je so zmylk wustupił: $1',
 
 # Preferences page
 'preferences' => 'Nastajenja',
@@ -1226,7 +1265,6 @@ Spytaj swoje naprašowanje z prefiksom ''all:'' wužiwać, zo by wšón wobsah (
 'resetprefs' => 'Njeskładowane změny zaćisnyć',
 'restoreprefs' => 'Wšě standardne nastajenja wobnowić',
 'prefs-editing' => 'Wobdźěłowanje',
-'prefs-edit-boxsize' => 'Wulkosć wobdźěłowanskeho wokna.',
 'rows' => 'Rjadki:',
 'columns' => 'Stołpiki:',
 'searchresultshead' => 'Pytać',
@@ -1237,9 +1275,6 @@ Spytaj swoje naprašowanje z prefiksom ''all:'' wužiwać, zo by wšón wobsah (
 'recentchangesdays-max' => '(Maksimalnje $1 {{PLURAL:$1|dźeń|dnjej|dny|dnjow}})',
 'recentchangescount' => 'Ličba stronow, kotraž ma so po standardźe pokazać:',
 'prefs-help-recentchangescount' => 'To zapřijima aktualne změny, stawizny stronow a protokole.',
-'prefs-help-watchlist-token' => 'Wupjelnjenje tutoho pola z tajnym klučom budźe RSS-kanal za twoje wobkedźbowanki wupłodźić.
-Něchtó, kiž kluč w tutym polu znaje, móže twoje wobkedźbowanki čitać, wubjer tohodla wěstu hódnotu.
-Tu je připadnje wupłodźena hódnota, kotruž móžeš wužiwać: $1',
 'savedprefs' => 'Nastajenja buchu składowane.',
 'timezonelegend' => 'Časowe pasmo:',
 'localtime' => 'Lokalny čas:',
@@ -1270,7 +1305,6 @@ Tu je připadnje wupłodźena hódnota, kotruž móžeš wužiwać: $1',
 'prefs-reset-intro' => 'You can use this page to reset your preferences to the site defaults. This cannot be undone.
 Móžeš tutu stronu wužiwać, zo by swoje nastajenja na standardne hódnoty sydła wróćo stajić. To njeda so anulować.',
 'prefs-emailconfirm-label' => 'E-mejlowe wobkrućenje:',
-'prefs-textboxsize' => 'Wulkosć wobdźěłowanskeho wokna',
 'youremail' => 'E-mejl:',
 'username' => 'Mjeno {{GENDER:$1|wužiwarja|wužiwarki}}:',
 'uid' => 'ID {{GENDER:$1|wužiwarja|wužiwarki}}:',
@@ -1300,7 +1334,9 @@ Smě mjenje hač $1 {{PLURAL:$1|znamješko|znamješce|znamješka|znamješkow}} d
 'prefs-signature' => 'Podpis',
 'prefs-dateformat' => 'Datumowy format',
 'prefs-timeoffset' => 'Časowe wotchilenje',
-'prefs-advancedediting' => 'Rozšěrjene opcije',
+'prefs-advancedediting' => 'Powšitkowny',
+'prefs-editor' => 'Editor',
+'prefs-preview' => 'Přehlad',
 'prefs-advancedrc' => 'Rozšěrjene opcije',
 'prefs-advancedrendering' => 'Rozšěrjene opcije',
 'prefs-advancedsearchoptions' => 'Rozšěrjene opcije',
@@ -1335,6 +1371,8 @@ Smě mjenje hač $1 {{PLURAL:$1|znamješko|znamješce|znamješka|znamješkow}} d
 'userrights-notallowed' => 'Twoje konto nima trěbne prawa, zo by wužiwarske prawa přidźěliło abo zebrało.',
 'userrights-changeable-col' => 'Skupiny, kotrež móžeš změnić',
 'userrights-unchangeable-col' => 'Skupiny, kotrež njemóžeš změnić',
+'userrights-conflict' => 'Konflikt wužiwarskich prawow! Prošu čiń swoje změny hišće raz.',
+'userrights-removed-self' => 'Sy swoje prawa wuspěšnje wotstronił. Tohodla nimaš hižo přistup na tutu stronu měć.',
 
 # Groups
 'group' => 'Skupina:',
@@ -1400,11 +1438,19 @@ Smě mjenje hač $1 {{PLURAL:$1|znamješko|znamješce|znamješka|znamješkow}} d
 'right-proxyunbannable' => 'Automatiske blokowanja proksyjow wobeńć',
 'right-unblockself' => 'Swójske blokowanje zběhnyć',
 'right-protect' => 'Škitowe schodźenki změnić a škitanu stronu wobdźěłać',
-'right-editprotected' => 'Škitane strony wobdźěłać (bjez kaskadoweho škita)',
+'right-editprotected' => 'Strony wobdźěłać, kotrež su přez "{{int:protect-level-sysop}}" škitane',
+'right-editsemiprotected' => 'Strony wobdźěłać, kotrež su přez "{{int:protect-level-autoconfirmed}}" škitane',
 'right-editinterface' => 'Wužiwarski powjerch wobdźěłać',
 'right-editusercssjs' => 'Dataje CSS a JS druhich wužiwarjow wobdźěłać',
 'right-editusercss' => 'Dataje CSS druhich wužiwarjow wobdźěłać',
 'right-edituserjs' => 'Dataje JS druhich wužiwarjow wobdźěłać',
+'right-editmyusercss' => 'Twoje swójske wužiwarske CSS-dataje wobdźěłać',
+'right-editmyuserjs' => 'Twoje swójske wužiwarske JavaScript-dataje wobdźěłać',
+'right-viewmywatchlist' => 'Sej swójske wobkedźbowanki wobhladać',
+'right-editmywatchlist' => 'Swoje wobkedźbowanki wobdźěłać. Wobkedźbuj, zo někotre akcije hišće bjez tutoho prawa strony přidawaja.',
+'right-viewmyprivateinfo' => 'Swójske priwatne daty sej wobhladać (na př. e-mejlowu adresu, woprawdźite mjeno)',
+'right-editmyprivateinfo' => 'Swójske priwatne daty wobdźěłać (na př. e-mejlowu adresu, woprawdźite mjeno)',
+'right-editmyoptions' => 'Twoje swójske nastajenja wobdźěłać',
 'right-rollback' => 'Poslednjeho wužiwarja, kotryž wěstu stronu wobdźěła, spěšnje rewertować',
 'right-markbotedits' => 'Rewertowane změny jako botowe změny markěrować',
 'right-noratelimit' => 'Přez žane limity wobmjezowane',
@@ -1466,12 +1512,17 @@ Smě mjenje hač $1 {{PLURAL:$1|znamješko|znamješce|znamješka|znamješkow}} d
 'action-userrights-interwiki' => 'Wužiwarske prawa wužiwarjow w druhich wikijach wobdźěłać',
 'action-siteadmin' => 'Datowu banku zawrěć abo wotewrić',
 'action-sendemail' => 'E-mejle pósłać',
+'action-editmywatchlist' => 'twoje wobkedźbowanki wobdźěłać',
+'action-viewmywatchlist' => 'Sej swójske wobkedźbowanki wobhladać',
+'action-viewmyprivateinfo' => 'twoje priwatne informacije sej wobhladać',
+'action-editmyprivateinfo' => 'twoje priwatne informacije wobdźěłać',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|změna|změnje|změny|změnow}}',
 'recentchanges' => 'Aktualne změny',
 'recentchanges-legend' => 'Opcije aktualnych změnow',
 'recentchanges-summary' => 'Na tutej stronje móžeš najaktualniše změny w {{GRAMMAR:lokatiw|{{SITENAME}}}} wobkedźbować.',
+'recentchanges-noresult' => 'Žane změny za daty čas tutym kriterijam njewotpowěduja.',
 'recentchanges-feed-description' => 'Slěduj najaktualniše změny {{GRAMMAR:genitiw|{{SITENAME}}}} w tutym kanalu.',
 'recentchanges-label-newpage' => 'Tuta změna je nowu stronu wutworiła',
 'recentchanges-label-minor' => 'To je snadna změna',
@@ -1509,7 +1560,6 @@ Smě mjenje hač $1 {{PLURAL:$1|znamješko|znamješce|znamješka|znamješkow}} d
 'recentchangeslinked-feed' => 'Změny zwjazanych stron',
 'recentchangeslinked-toolbox' => 'Změny na zwjazanych stronach',
 'recentchangeslinked-title' => 'Změny na stronach, kotrež su z „$1“ wotkazane',
-'recentchangeslinked-noresult' => 'Njejsu změny zwajzanych stron we wubranej dobje.',
 'recentchangeslinked-summary' => "Tuta strona nalistuje poslednje změny na wotkazanych stronach (resp. pola kategorijow na čłonach kategorije).
 Strony na [[Special:Watchlist|wobkedźbowankach]] su '''tučne'''.",
 'recentchangeslinked-page' => 'Mjeno strony:',
@@ -1521,7 +1571,7 @@ Strony na [[Special:Watchlist|wobkedźbowankach]] su '''tučne'''.",
 'reuploaddesc' => 'Nahraće přetorhnyć a so k nahrawanskemu formularej wróćić.',
 'upload-tryagain' => 'Změnjene datajowe wopisanje wotpósłać',
 'uploadnologin' => 'Njepřizjewjeny',
-'uploadnologintext' => 'Dyrbiš [[Special:UserLogin|přizjewjeny]] być, zo by dataje nahrawać móhł.',
+'uploadnologintext' => 'Dyrbiš so $1, zo by dataje nahrawać móhł.',
 'upload_directory_missing' => 'Zapis nahraćow ($1) faluje a njeda so přez webserwer wutworić.',
 'upload_directory_read_only' => 'Nahrawanski zapis ($1) njehodźi so přez webserwer popisować.',
 'uploaderror' => 'Zmylk při nahrawanju',
@@ -2144,10 +2194,9 @@ Přichodne změny tuteje strony a přisłušneje diskusijneje strony budu so tam
 'unwatchthispage' => 'wobkedźbowanje skónčić',
 'notanarticle' => 'njeje nastawk',
 'notvisiblerev' => 'Wersija bu wušmórnjena',
-'watchnochange' => 'Žana z twojich wobkedźbowanych stron njebu w podatej dobje wobdźěłana.',
 'watchlist-details' => '{{PLURAL:$1|$1 wobkedźbowana strona|$1 wobkedźbowanej stronje|$1 wobkedźbowane strony|$1 wobkedźbowanych stronow}}, diskusijne strony wuwzate.',
-'wlheader-enotif' => 'E-mejlowe zdźělenje je zmóžnjene.',
-'wlheader-showupdated' => 'Strony, kotrež buchu po twojim poslednim wopyće změnjene so <b>tučne</b> pokazuja.',
+'wlheader-enotif' => 'E-mejlowa zdźělenska słužba je zmóžnjena.',
+'wlheader-showupdated' => "Strony, kotrež su so po twojim poslednim wopyće změnili, so '''tučne''' pokazuja.",
 'watchmethod-recent' => 'Aktualne změny za wobkedźbowane strony přepruwować',
 'watchmethod-list' => 'Wobkedźbowanki za aktualnymi změnami přepruwować',
 'watchlistcontains' => 'Maš $1 {{PLURAL:$1|stronu|stronje|strony|stronow}} w swojich wobkedźbowankach.',
@@ -2388,7 +2437,7 @@ $1',
 'mycontris' => 'Přinoški',
 'contribsub2' => 'za wužiwarja $1 ($2)',
 'nocontribs' => 'Žane změny, kotrež podatym kriterijam wotpowěduja.',
-'uctop' => '(aktualnje)',
+'uctop' => '(aktualny)',
 'month' => 'wot měsaca (a do toho):',
 'year' => 'wot lěta (a do toho):',
 
@@ -2696,6 +2745,8 @@ W poslednim padźe móžeš tež wotkaz wužiwać, na př. „[[{{#Special:Expor
 'thumbnail-more' => 'powjetšić',
 'filemissing' => 'Dataja pobrachuje',
 'thumbnail_error' => 'Zmylk při wutworjenju miniaturki: $1',
+'thumbnail_error_remote' => 'Zmylkowa zdźělenka wot $1:
+$2',
 'djvu_page_error' => 'Strona DjVU zwonka wobłuka strony',
 'djvu_no_xml' => 'Daty XML njemóža so za dataju DjVU wotwołać',
 'thumbnail-temp-create' => 'Temporerna dataja za miniaturny wobrazk njeda so wutworić',
@@ -3005,9 +3056,9 @@ $1',
 'just-now' => 'runje',
 
 # Human-readable timestamps
-'hours-ago' => 'před $1 {{PLURAL:$1|hodźinu|hodźinomaj|hodźinami|hodźinami}}',
-'minutes-ago' => 'před $1 {{PLURAL:$1|mjeńšinu|mjeńšinomaj|mjeńšinami|mjeńšinami}}',
-'seconds-ago' => 'před $1 {{PLURAL:$1|sekundu|sekundomaj|sekundami|sekundami}}',
+'hours-ago' => 'před $1 {{PLURAL:$1|hodźinu|hodźinomaj|hodźinami}}',
+'minutes-ago' => 'před $1 {{PLURAL:$1|mjeńšinu|mjeńšinomaj|mjeńšinami}}',
+'seconds-ago' => 'před $1 {{PLURAL:$1|sekundu|sekundomaj|sekundami}}',
 'monday-at' => 'Póndźela $1',
 'tuesday-at' => 'Wutora $1',
 'wednesday-at' => 'Srjeda $1',
@@ -3607,7 +3658,6 @@ Móžeš tež [[Special:EditWatchlist|standardnu wobdźěłowansku stronu]] wuž
 'version-other' => 'Druhe',
 'version-mediahandlers' => 'Předźěłaki medijow',
 'version-hooks' => 'Hoki',
-'version-extension-functions' => 'Funkcije rozšěrjenjow',
 'version-parser-extensiontags' => "Parserowe rozšěrjenja ''(taflički)''",
 'version-parser-function-hooks' => 'Parserowe funkcije',
 'version-hook-name' => 'Mjeno hoki',
@@ -3629,6 +3679,18 @@ Ty měł [{{SERVER}}{{SCRIPTPATH}}/COPYING kopiju licency GNU General Public Lic
 'version-entrypoints-header-entrypoint' => 'Zastupny dypk',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
+'redirect' => 'Po datajowym mjenje, wužiwarju abo wersijowym ID dale sposrědkować',
+'redirect-legend' => 'Do dataje abo strony dale sposrědkować',
+'redirect-summary' => 'Tuta specialna strona so do dataje (datajowe mjeno je podate), strony (wersijowy ID je podaty) abo wužiwarskeje strony (numeriski wužiwarski ID je podaty) dale sposrědkuje.',
+'redirect-submit' => 'Los',
+'redirect-lookup' => 'Pytać:',
+'redirect-value' => 'Hódnota:',
+'redirect-user' => 'ID wužiwarja',
+'redirect-revision' => 'Wersija strony',
+'redirect-file' => 'Datajowe mjeno',
+'redirect-not-exists' => 'Hódnota njeje so namakała',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Dwójne dataje pytać',
 'fileduplicatesearch-summary' => 'Pytanje za duplikatnymi datajemi na zakładźe jich hašoweje hódnoty.',
@@ -3720,6 +3782,7 @@ Ty měł [{{SERVER}}{{SCRIPTPATH}}/COPYING kopiju licency GNU General Public Lic
 'htmlform-selectorother-other' => 'Druhe',
 'htmlform-no' => 'Ně',
 'htmlform-yes' => 'Haj',
+'htmlform-chosen-placeholder' => 'Wubjer móžnosć',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 połnotekstowe pytanje podpěruje.',
index 433c889..979d283 100644 (file)
@@ -378,7 +378,6 @@ $1',
 'disclaimers' => 'Avètisman',
 'disclaimerpage' => 'Project:Avètisman jeneral yo',
 'edithelp' => 'Èd pou modifye paj',
-'edithelppage' => 'Help:Modifye yon paj',
 'helppage' => 'Help:Èd',
 'mainpage' => 'Paj prensipal',
 'mainpage-description' => 'Paj prensipal',
@@ -888,7 +887,6 @@ Lejand : ({{MediaWiki:Cur}}) = diferans ak vèsyon kounye a, ({{MediaWiki:Last}}
 'prevn' => '{{PLURAL:$1|$1}} anvan yo',
 'nextn' => '{{PLURAL:$1|$1}} swivan yo',
 'viewprevnext' => 'Wè ($1 {{int:pipe-separator}} $2) ($3).',
-'searchhelp-url' => 'Help:Èd',
 'searchprofile-everything' => 'Tout',
 'search-result-size' => '$1 ({{PLURAL:$2| mo|$2 mo yo}})',
 'search-redirect' => '(redireksyon depi $1)',
@@ -970,7 +968,6 @@ Si ou mete li, n ap itilize li pou nou ka nonmen ou pou kontribisyon ou yo.',
 'recentchangeslinked-feed' => 'Swivi pou lyen yo',
 'recentchangeslinked-toolbox' => 'Swivi pou lyen yo',
 'recentchangeslinked-title' => 'Chanjman ki an relasyon ak "$1"',
-'recentchangeslinked-noresult' => 'Pa genyen pyès chanjman nan paj lye sa yo pou peryòd ou bay la.',
 'recentchangeslinked-summary' => "Paj espesyal sa a ap montre dènye chanjman nan paj ki genyen lyen depi yon paj spesifie (oubyen pou manm you kategori spesifie) yo. Paj yo ki nan [[Special:Watchlist|lis swivi]] ou an ap ekri '''fonse'''",
 'recentchangeslinked-page' => 'Non paj la :',
 'recentchangeslinked-to' => 'Afiche modifikasyon yo ki genyen yon lyen vè paj yo ba ou a plito',
index 03661da..68a5ce7 100644 (file)
  * @author Dj
  * @author Dorgan
  * @author Enbéká
+ * @author Geitost
  * @author Glanthor Reviol
  * @author Gondnok
  * @author Hunyadym
  * @author Kaganer
  * @author KossuthRad
  * @author Misibacsi
+ * @author Nemo bis
  * @author R-Joe
  * @author Samat
  * @author Sucy
@@ -513,6 +515,7 @@ $messages = array(
 'create-this-page' => 'Oldal létrehozása',
 'delete' => 'Törlés',
 'deletethispage' => 'Lap törlése',
+'undeletethispage' => 'Lap helyreállítása',
 'undelete_short' => '{{PLURAL:$1|Egy|$1}} szerkesztés helyreállítása',
 'viewdeleted_short' => '{{PLURAL:$1|Egy|$1}} törölt szerkesztés megtekintése',
 'protect' => 'Lapvédelem',
@@ -565,7 +568,6 @@ $1',
 'disclaimers' => 'Jogi nyilatkozat',
 'disclaimerpage' => 'Project:Jogi nyilatkozat',
 'edithelp' => 'Szerkesztési segítség',
-'edithelppage' => 'Help:Szerkesztés',
 'helppage' => 'Help:Tartalom',
 'mainpage' => 'Kezdőlap',
 'mainpage-description' => 'Kezdőlap',
@@ -588,8 +590,8 @@ További információkat a [[Special:Version|verzióinformációs lapon]] talál
 'youhavenewmessages' => '$1 a vitalapodon! ($2 külön is megtekintheted.)',
 'newmessageslink' => 'új üzenet vár',
 'newmessagesdifflink' => 'az utolsó üzenetet',
-'youhavenewmessagesfromusers' => "'''$2''' kaptál {{PLURAL:$3|egy|$3}} szerkesztőtől $1!",
-'youhavenewmessagesmanyusers' => '$1ed van több szerkesztőtől ($2).',
+'youhavenewmessagesfromusers' => '$2 kaptál {{PLURAL:$3|egy|$3}} szerkesztőtől $1!',
+'youhavenewmessagesmanyusers' => '$2 kaptál több szerkesztőtől $1.',
 'newmessageslinkplural' => 'a vitalapodon',
 'newmessagesdifflinkplural' => '{{PLURAL:$1|Új üzenetet|Új üzeneteket}}',
 'youhavenewmessagesmulti' => 'Új üzenet vár a(z) $1 wikin',
@@ -760,7 +762,7 @@ Ne felejtsd el módosítani a [[Special:Preferences|{{SITENAME}} beállításaid
 'notloggedin' => 'Nem vagy bejelentkezve',
 'userlogin-noaccount' => 'Nem rendelkezel még felhasználói fiókkal?',
 'userlogin-joinproject' => 'Csatlakozz a(z) {{SITENAME}} wikihez',
-'nologin' => "Nem rendelkezel még felhasználói fiókkal? '''$1'''.",
+'nologin' => 'Nem rendelkezel még felhasználói fiókkal? $1.',
 'nologinlink' => 'Itt regisztrálhatsz',
 'createaccount' => 'Regisztráció',
 'gotaccount' => "Ha már korábban regisztráltál, '''$1'''.",
@@ -771,7 +773,7 @@ Ne felejtsd el módosítani a [[Special:Preferences|{{SITENAME}} beállításaid
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Segítség a bejelentkezéshez]]',
 'createacct-join' => 'Add meg az alábbi információkat.',
 'createacct-emailrequired' => 'E-mail cím',
-'createacct-emailoptional' => 'E-mail cím (opcionáis)',
+'createacct-emailoptional' => 'E-mail cím (opcionális)',
 'createacct-email-ph' => 'Add meg e-mail címed',
 'createaccountmail' => 'Átmeneti, véletlenszerű jelszó használata és kiküldése az alábbi e-mail címre',
 'createacct-realname' => 'Igazi neved (nem kötelező)',
@@ -781,10 +783,15 @@ Ne felejtsd el módosítani a [[Special:Preferences|{{SITENAME}} beállításaid
 'createacct-captcha' => 'Biztonsági ellenőrzés',
 'createacct-imgcaptcha-ph' => 'Írd be a szöveget, amit fent látsz',
 'createacct-submit' => 'Felhasználói fiók létrehozása',
+'createacct-benefit-heading' => 'A(z) {{SITENAME}}-t hozzád hasonló emberek készítik.',
+'createacct-benefit-body1' => '{{PLURAL:$1|szerkesztés|szerkesztés}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|lap|lap}}',
+'createacct-benefit-body3' => 'aktív {{PLURAL:$1|szerkesztő|szerkesztő}}',
 'badretype' => 'A megadott jelszavak nem egyeznek.',
 'userexists' => 'A megadott felhasználónév már foglalt.
 Kérlek, válassz másikat!',
 'loginerror' => 'Hiba történt a bejelentkezés során',
+'createacct-error' => 'Fióklétrehozási hiba',
 'createaccounterror' => 'Nem sikerült létrehozni a felhasználói fiókot: $1',
 'nocookiesnew' => 'A felhasználói fiókod létrejött, de nem vagy bejelentkezve. A wiki sütiket („cookie”) használ a szerkesztők azonosítására. Nálad ezek le vannak tiltva. Kérlek, engedélyezd őket a böngésződben, majd lépj be az új azonosítóddal és jelszavaddal.',
 'nocookieslogin' => 'A wiki sütiket („cookie”) használ a szerkesztők azonosításhoz.
@@ -869,14 +876,15 @@ Várj egy kicsit, mielőtt újra próbálkozol.',
 'resetpass-wrong-oldpass' => 'Nem megfelelő ideiglenes vagy jelenlegi jelszó.
 Lehet, hogy már sikeresen megváltoztattad a jelszavad, vagy pedig időközben új ideiglenes jelszót kértél.',
 'resetpass-temp-password' => 'Ideiglenes jelszó:',
+'resetpass-abort-generic' => 'A jelszómódosítást megszakította egy kiterjesztés.',
 
 # Special:PasswordReset
 'passwordreset' => 'Jelszó törlése',
-'passwordreset-text' => 'Az alábbi űrlap kitöltése után egy jelszóemlékeztető e-mailt kapsz a fiókod adataival.',
+'passwordreset-text-one' => 'A jelszavad alaphelyzetbe állításához töltsd ki az űrlapot.',
+'passwordreset-text-many' => '{{PLURAL:$1|A jelszavad alaphelyzetbe állításához töltsd ki az alábbi mezők egyikét.}}',
 'passwordreset-legend' => 'Új jelszó kérése',
 'passwordreset-disabled' => 'Új jelszó kérése nem engedélyezett ezen a wikin.',
 'passwordreset-emaildisabled' => 'Az e-mail funkció le van tiltva ezen a wikin.',
-'passwordreset-pretext' => '{{PLURAL:$1||Írd be az alábbi adatok egyikét}}',
 'passwordreset-username' => 'Felhasználónév:',
 'passwordreset-domain' => 'Tartomány:',
 'passwordreset-capture' => 'Meg szeretnéd nézni az elkészült üzenetet?',
@@ -897,7 +905,7 @@ $2
 Ideiglenes jelszó: $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' => 'Az emlékeztető levél generálása megtörtént, mint az alább látszik, de elküldése a szerkesztőnek nem sikerült: $1',
+'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',
 
 # Special:ChangeEmail
 'changeemail' => 'E-mail cím megváltoztatása',
@@ -1105,6 +1113,7 @@ Nem lett magyarázat csatolva.',
 Úgy tűnik, hogy törölve lett.',
 'edit-conflict' => 'Szerkesztési ütközés.',
 'edit-no-change' => 'A szerkesztésed figyelmen kívül lett hagyva, mivel nem változtattál a lap szövegén.',
+'postedit-confirmation' => 'A szerkesztésedet elmentettük.',
 'edit-already-exists' => 'Az új lap nem készíthető el.
 Már létezik.',
 'defaultmessagetext' => 'Alapértelmezett szöveg',
@@ -1112,7 +1121,7 @@ Már létezik.',
 'invalid-content-data' => 'Érvénytelen tartalom adat',
 'content-not-allowed-here' => '"$1" tartalom nem engedélyezett a [[$2]] oldalon',
 'editwarning-warning' => 'A lap elhagyásával az összes itt végzett változtatás elveszhet.
-Ha be vagy jelentkezve letilthatod ezt a figyelmeztetést a beállításaid „{{int:prefs-editing}}” szakaszában.',
+Ha be vagy jelentkezve letilthatod ezt a figyelmeztetést a beállításaid „Szerkesztés” szakaszában.',
 
 # Content models
 'content-model-wikitext' => 'wikiszöveg',
@@ -1347,7 +1356,6 @@ Ezt általában egy elavult, törölt oldalra mutató laptörténeti hivatkozás
 'searchmenu-legend' => 'Keresési beállítások',
 'searchmenu-exists' => "'''A wikin már van „[[:$1]]” nevű lap'''",
 'searchmenu-new' => "'''Hozd létre a(z) „[[:$1]]” nevű lapot ezen a wikin!'''",
-'searchhelp-url' => 'Help:Tartalom',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Ilyen előtagú lapok listázása]]',
 'searchprofile-articles' => 'Tartalmi oldalak',
 'searchprofile-project' => 'Segítség- és projektlapok',
@@ -1388,6 +1396,7 @@ Ezt általában egy elavult, törölt oldalra mutató laptörténeti hivatkozás
 'powersearch-togglenone' => 'Egyik sem',
 'search-external' => 'Külső kereső',
 'searchdisabled' => 'Elnézésed kérjük, de a teljes szöveges keresés terhelési okok miatt átmenetileg nem használható. Ezidő alatt használhatod a lenti Google keresést, mely viszont lehetséges, hogy nem teljesen friss adatokkal dolgozik.',
+'search-error' => 'A keresés közben hiba történt: $1',
 
 # Preferences page
 'preferences' => 'Beállítások',
@@ -1421,7 +1430,6 @@ Ezt általában egy elavult, törölt oldalra mutató laptörténeti hivatkozás
 'resetprefs' => 'Alaphelyzet',
 'restoreprefs' => 'A beállítások alaphelyzetbe állítása',
 'prefs-editing' => 'Szerkesztés',
-'prefs-edit-boxsize' => 'A szerkesztőablak mérete.',
 'rows' => 'Sor',
 'columns' => 'Oszlop',
 'searchresultshead' => 'Keresés',
@@ -1432,9 +1440,6 @@ Ezt általában egy elavult, törölt oldalra mutató laptörténeti hivatkozás
 'recentchangesdays-max' => '(maximum {{PLURAL:$1|egy|$1}} nap)',
 'recentchangescount' => 'Az alapértelmezettként mutatott szerkesztések száma:',
 'prefs-help-recentchangescount' => 'Ez vonatkozik a friss változtatásokra, laptörténetekre és naplókra is.',
-'prefs-help-watchlist-token' => 'Ha ebbe a mezőbe beírsz egy titkos kulcsot, RSS feed fog készülni a figyelőlistádról.
-Bárki, aki tudja a fenti mezőbe beírt kulcsot, látni fogja a figyelőlistádat, így válassz egy titkos értéket.
-Itt van egy véletlenszerűen generált érték, amit használhatsz: $1',
 'savedprefs' => 'Az új beállításaid érvénybe léptek.',
 'timezonelegend' => 'Időzóna:',
 'localtime' => 'Helyi idő:',
@@ -1465,7 +1470,6 @@ Itt van egy véletlenszerűen generált érték, amit használhatsz: $1',
 'prefs-reset-intro' => 'Ezen a lapon állíthatod vissza a beállításaidat az oldal alapértelmezett értékeire.
 A műveletet nem lehet visszavonni.',
 'prefs-emailconfirm-label' => 'E-mail cím megerősítése:',
-'prefs-textboxsize' => 'A szerkesztőablak mérete',
 'youremail' => 'Az e-mail címed:',
 'username' => '{{GENDER:$1|Szerkesztőnév}}:',
 'uid' => '{{GENDER:$1|Azonosító}}:',
@@ -1495,7 +1499,9 @@ A műveletet nem lehet visszavonni.',
 'prefs-signature' => 'Aláírás',
 'prefs-dateformat' => 'Dátumformátum',
 'prefs-timeoffset' => 'Időeltérés',
-'prefs-advancedediting' => 'Haladó beállítások',
+'prefs-advancedediting' => 'Általános',
+'prefs-editor' => 'Szerkesztő',
+'prefs-preview' => 'Előnézet',
 'prefs-advancedrc' => 'Haladó beállítások',
 'prefs-advancedrendering' => 'Haladó beállítások',
 'prefs-advancedsearchoptions' => 'Haladó beállítások',
@@ -1529,6 +1535,7 @@ A műveletet nem lehet visszavonni.',
 'userrights-notallowed' => 'Nincs jogosultságod jogosultságok adására vagy elvételére.',
 'userrights-changeable-col' => 'Megváltoztatható csoportok',
 'userrights-unchangeable-col' => 'Nem megváltoztatható csoportok',
+'userrights-conflict' => 'Felhasználói jogok ütközése! Kérlek, végez el újra a változtatásokat.',
 
 # Groups
 'group' => 'Csoport:',
@@ -1593,8 +1600,8 @@ A műveletet nem lehet visszavonni.',
 'right-ipblock-exempt' => 'IP-, auto- és tartományblokkok megkerülése',
 'right-proxyunbannable' => 'proxyk automatikus blokkjainak megkerülése',
 'right-unblockself' => 'saját felhasználói fiók blokkjának feloldása',
-'right-protect' => 'védelmi szintek megváltoztatása és védett lapok szerkesztése',
-'right-editprotected' => 'kaszkád védelem nélküli védett lapok szerkesztése',
+'right-protect' => 'védelmi szintek megváltoztatása és kaszkádolt védelemmel rendelkező lapok szerkesztése',
+'right-editprotected' => '"{{int:protect-level-sysop}}" védelmi szintű lapok szerkesztése',
 'right-editinterface' => 'felhasználói felület szerkesztése',
 'right-editusercssjs' => 'más felhasználók CSS és JS fájljainak szerkesztése',
 'right-editusercss' => 'más felhasználók CSS fájljainak szerkesztése',
@@ -1702,7 +1709,6 @@ A műveletet nem lehet visszavonni.',
 'recentchangeslinked-feed' => 'Kapcsolódó változtatások',
 'recentchangeslinked-toolbox' => 'Kapcsolódó változtatások',
 'recentchangeslinked-title' => 'A(z) $1 laphoz kapcsolódó változtatások',
-'recentchangeslinked-noresult' => 'A megadott időtartam alatt nem történt változtatás a kapcsolódó lapokon.',
 'recentchangeslinked-summary' => "Alább azon lapoknak a legutóbbi változtatásai láthatóak, amelyekre hivatkozik egy megadott lap (vagy tagjai a megadott kategóriának).
 A [[Special:Watchlist|figyelőlistádon]] szereplő lapok '''félkövérrel''' vannak jelölve.",
 'recentchangeslinked-page' => 'Lap neve:',
@@ -1714,7 +1720,7 @@ A [[Special:Watchlist|figyelőlistádon]] szereplő lapok '''félkövérrel''' v
 'reuploaddesc' => 'Visszatérés a feltöltési űrlaphoz.',
 'upload-tryagain' => 'Módosított fájl-leírás elküldése',
 'uploadnologin' => 'Nem vagy bejelentkezve',
-'uploadnologintext' => 'Csak regisztrált felhasználók tölthetnek fel fájlokat. [[Special:UserLogin|Jelentkezz be]] vagy regisztrálj!',
+'uploadnologintext' => '{{UCFIRST:$1}} fájlok feltöltéséhez.',
 'upload_directory_missing' => 'A feltöltési könyvtár ($1) nem létezik vagy nem tudja létrehozni a kiszolgáló.',
 'upload_directory_read_only' => 'A kiszolgálónak nincs írási jogosultsága a feltöltési könyvtárban ($1).',
 'uploaderror' => 'Feltöltési hiba',
@@ -1847,7 +1853,7 @@ $1',
 'upload-file-error-text' => 'Belső hiba történt egy ideiglenes fájl szerveren történő létrehozásakor.
 Kérjük, hogy lépj kapcsolatba egy  [[Special:ListUsers/sysop|adminisztrátorral]].',
 'upload-misc-error' => 'Ismeretlen feltöltési hiba',
-'upload-misc-error-text' => 'A feltöltés során ismeretlen hiba történt.  Kérjük, ellenőrizd, hogy az URL érvényes-e és hozzáférhető-e, majd próbáld újra.  Ha a probléma továbbra is fennáll, akkor lépj kapcsolatba a rendszergazdával.',
+'upload-misc-error-text' => 'A feltöltés során ismeretlen hiba történt.  Kérjük, ellenőrizd, hogy az URL érvényes-e és hozzáférhető-e, majd próbáld újra.  Ha a probléma továbbra is fennáll, akkor lépj kapcsolatba a [[Special:ListUsers/sysop|adminisztrátorral]].',
 'upload-too-many-redirects' => 'Az URL túl sokszor volt átirányítva',
 'upload-unknown-size' => 'Ismeretlen méretű',
 'upload-http-error' => 'HTTP-hiba történt: $1',
@@ -1882,6 +1888,7 @@ Kérjük, hogy lépj kapcsolatba egy  [[Special:ListUsers/sysop|adminisztrátorr
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'Nem sikerült csatlakozni a napló adatbázis "$1 " háttér tárolójához.',
+'filejournal-fail-dbquery' => 'Nem sikerült frissíteni a naplóadatbázis "$1 " háttértárolóját.',
 
 # Lock manager
 'lockmanager-notlocked' => 'Nem lehet a zárolást feloldani: „$1”; nincs zárolva.',
@@ -2336,7 +2343,6 @@ Ezután minden, a lapon vagy annak vitalapján történő változást ott fogsz
 'unwatchthispage' => 'Figyelés leállítása',
 'notanarticle' => 'Nem szócikk',
 'notvisiblerev' => 'A változat törölve lett',
-'watchnochange' => 'Egyik figyelt lap sem változott a megadott időintervallumon belül.',
 'watchlist-details' => 'A vitalapokon kívül {{PLURAL:$1|egy|$1}} lap van a figyelőlistádon.',
 'wlheader-enotif' => 'Az e-mailen keresztül történő értesítés engedélyezve.',
 'wlheader-showupdated' => "Azok a lapok, amelyek megváltoztak, mióta utoljára megnézted őket, '''vastagon''' láthatóak.",
@@ -2587,7 +2593,7 @@ $1',
 'mycontris' => 'Közreműködések',
 'contribsub2' => '$1 ($2)',
 'nocontribs' => 'Nem található a feltételeknek megfelelő változtatás.',
-'uctop' => ' (utolsó)',
+'uctop' => '(aktuális)',
 'month' => 'E hónap végéig:',
 'year' => 'Eddig az évig:',
 
@@ -3833,7 +3839,6 @@ minden egyes sor egy figyelt lap címe. Ha kész vagy, kattints a lista alatt ta
 'version-other' => 'Egyéb',
 'version-mediahandlers' => 'Médiafájl-kezelők',
 'version-hooks' => 'Hookok',
-'version-extension-functions' => 'A kiterjesztések függvényei',
 'version-parser-extensiontags' => 'Az értelmező kiterjesztéseinek tagjei',
 'version-parser-function-hooks' => 'Az értelmező függvényeinek hookjai',
 'version-hook-name' => 'Hook neve',
@@ -3943,6 +3948,8 @@ A MediaWikit abban a reményben terjesztjük, hogy hasznos lesz, de GARANCIA NÉ
 'htmlform-submit' => 'Elküldés',
 'htmlform-reset' => 'Változtatások visszavonása',
 'htmlform-selectorother-other' => 'egyéb',
+'htmlform-no' => 'Nem',
+'htmlform-yes' => 'Igen',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 teljes szöveges keresés támogatással',
index 4aade05..adc2b96 100644 (file)
@@ -8,6 +8,7 @@
  * @file
  *
  * @author Chaojoker
+ * @author Nemo bis
  * @author Pandukht
  * @author Reedy
  * @author Ruben Vardanyan (me@RubenVardanyan.com)
@@ -380,6 +381,18 @@ $messages = array(
 'oct' => 'հոկ',
 'nov' => 'նոյ',
 'dec' => 'դեկ',
+'january-date' => 'Հունվարի $1',
+'february-date' => 'Փետրվարի $1',
+'march-date' => 'Մարտի $1',
+'april-date' => 'Ապրիլի $1',
+'may-date' => 'Մայիսի $1',
+'june-date' => 'Հունիսի $1',
+'july-date' => 'Հուլիսի $1',
+'august-date' => 'Օգոստոսի $1',
+'september-date' => 'Սեպտեմբերի $1',
+'october-date' => 'Հոկտեմբերի $1',
+'november-date' => 'Նոյեմբերի $1',
+'december-date' => 'Դեկտեմբերի $1',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Կատեգորիա|Կատեգորիաներ}}',
@@ -400,7 +413,7 @@ $messages = array(
 'noindex-category' => 'Ինդեքսավորված էջեր չկան',
 'broken-file-category' => 'Կոտրված ֆայլի հղումով էջեր',
 
-'about' => 'Էությունը',
+'about' => 'Նախագծի մասին',
 'article' => 'Հոդված',
 'newwindow' => '(բացվելու է նոր պատուհանի մեջ)',
 'cancel' => 'Բեկանել',
@@ -427,7 +440,8 @@ $messages = array(
 'vector-action-move' => 'Տեղափոխել այս էջը',
 'vector-action-protect' => 'Պաշտպանել',
 'vector-action-undelete' => 'Վերականգնել',
-'vector-action-unprotect' => 'Հանել պաշտպանումից',
+'vector-action-unprotect' => 'Փոխել պաշտպանումը',
+'vector-simplesearch-preference' => 'Միացնել պարզեցված որոնման դաշտը (միայն Վեկտոր թեմայի դեպքում)',
 'vector-view-create' => 'Ստեղծել',
 'vector-view-edit' => 'Խմբագրել',
 'vector-view-history' => 'Դիտել պատմությունը',
@@ -510,7 +524,6 @@ $1',
 'disclaimers' => 'Ազատում պատասխանատվությունից',
 'disclaimerpage' => 'Project:Ազատում պատասխանատվությունից',
 'edithelp' => 'Խմբագրման ուղեցույց',
-'edithelppage' => 'Help:Խմբագրում',
 'helppage' => 'Help:Գլխացանկ',
 'mainpage' => 'Գլխավոր էջ',
 'mainpage-description' => 'Գլխավոր էջ',
@@ -671,9 +684,19 @@ $2',
 'welcomecreation-msg' => 'Ձեր հաշիվն ստեղծված է։
 Չմոռանաք փոփոխել ձեր [[Special:Preferences|նախընտրությունները]]։',
 'yourname' => 'Մասնակցի անուն՝',
+'userlogin-yourname' => 'Մասնակցային անուն',
+'userlogin-yourname-ph' => 'Մուտքագրեք ձեր մասնակցային անունը',
 'yourpassword' => 'Գաղտնաբառ՝',
+'userlogin-yourpassword' => 'Գաղտնաբառ',
+'userlogin-yourpassword-ph' => 'Մուտքագրեք ձեր գաղտնաբառը',
+'createacct-yourpassword-ph' => 'Մուտքագրեք գաղտնաբառը',
 'yourpasswordagain' => 'Կրկնեք գաղտնաբառը',
-'remembermypassword' => 'Հիշել իմ մուտքագրված տվյալները այս համակարգչում ($1 {{PLURAL:$1|օրից|օրից}} ոչ ավել ժամկետով)',
+'createacct-yourpasswordagain' => 'Հաստատեք գաղտնաբառը',
+'createacct-yourpasswordagain-ph' => 'Կրկին մուտքագրեք գաղտնաբառը',
+'remembermypassword' => 'Հիշել իմ մուտքը այս դիտարկչում ($1 {{PLURAL:$1|օրից}} ոչ ավել ժամկետով)',
+'userlogin-remembermypassword' => 'Մուտք գործած մնալ',
+'userlogin-signwithsecure' => 'Օգտագործել անվտանգ միացում',
+'securelogin-stick-https' => 'Մուտք գործելուց հետո շարունակել աշխատանքը HTTPS–ով',
 'yourdomainname' => 'Ձեր դոմենը՝',
 'password-change-forbidden' => 'Այս վիքիում չեք կարող փոխել գաղտնաբառ։',
 'externaldberror' => 'Տեղի է ունեցել վավերացման արտաքին տվյալների բազայի սխալ, կամ դուք չունեք բավարար իրավունքներ ձեր արտաքին հաշվի փոփոխման համար։',
@@ -685,25 +708,31 @@ $2',
 'logout' => 'Դուրս գալ համակարգից',
 'userlogout' => 'Ելնել համակարգից',
 'notloggedin' => 'Դուք չեք մտել համակարգ',
-'userlogin-joinproject' => 'Միցել է {{SITENAME}}-{{grammar:genitive|ը}}',
-'nologin' => "Դեռևս չե՞ք գրանցվել '''$1'''։",
-'nologinlink' => 'Ստեղծեք մասնակցային հաշիվ',
+'userlogin-noaccount' => 'Հաշիվ չունե՞ք։',
+'userlogin-joinproject' => 'Միացեք {{SITENAME}} նախագծին',
+'nologin' => "Չունե՞ք հաշիվ '''$1'''։",
+'nologinlink' => 'Ստեղծել մասնակցային հաշիվ',
 'createaccount' => 'Ստեղծել նոր հաշիվ',
 'gotaccount' => "Դուք արդեն գրանցվա՞ծ եք։ '''$1'''։",
 'gotaccountlink' => 'Մուտք գործեք համակարգ',
-'userlogin-resetlink' => 'Մոռացե՞լ եք Ձեր լոգին տվյալները։',
-'createacct-emailrequired' => 'Էլ-փոստի հասցեն',
-'createaccountmail' => 'էլ-փոստով',
+'userlogin-resetlink' => 'Մոռացե՞լ եք Ձեր հաշվի տվյալները։',
+'userlogin-resetpassword-link' => 'Զրոյացնել ձեր գաղտնաբառը։',
+'createacct-join' => 'Մուտքագրեք Ձեր տեղեկությունները ստորև',
+'createacct-emailrequired' => 'Էլ–փոստի հասցե',
+'createacct-emailoptional' => 'Էլ–փոստի հասցե (ոչ պարտադիր)',
+'createacct-email-ph' => 'Մուտքագրեք ձեր էլ–փոստի հասցեն',
+'createaccountmail' => 'Օգտագործել ժամանակավոր պատահական գաղտնաբառ, որը կուղարկվի ձեր էլ–փոստի հասցեին։',
+'createacct-realname' => 'Իրական անուն (պարտադիր չէ)',
 'createaccountreason' => 'Պատճառը՝',
 'createacct-reason' => 'Պատճառ',
-'createacct-reason-ph' => 'Ինչու եք ստեղծել մեկ այլ հաշիվ',
+'createacct-reason-ph' => 'Ինչո՞ւ եք փորձում ստեղծել մեկ այլ հաշիվ',
 'createacct-captcha' => 'Անվտանգության ստուգում',
-'createacct-imgcaptcha-ph' => 'Õ\84Õ¸Ö\82Õ¿Ö\84Õ¡Õ£Ö\80Õ¥Ö\84 Õ¿Õ¥Ö\84Õ½Õ¿Õ¨ Õ¿Õ¥Õ½Õ¶Õ¸Ö\82Õ´ Õ¥Ö\84 Õ¾Õ¥Ö\80Õ¨ Õ¶Õ·Õ¾Õ¡Õ®ը',
-'createacct-submit' => 'Ստեղծեք ձեր հաշիվը',
-'createacct-benefit-heading' => '{{SITENAME}}-ը կատարվում է նման մարդկանց համար:',
-'createacct-benefit-body1' => '{{PLURAL:$1|Õ­Õ´Õ¢Õ¡Õ£Ö\80Õ¥Õ¬|Õ­Õ´Õ¢Õ¡Õ£Ö\80Õ¸Ö\82Õ´Õ¶Õ¥Ö\80}}',
-'createacct-benefit-body2' => '{{PLURAL:$1|էջ|էջեր}}',
-'createacct-benefit-body3' => 'Õ¾Õ¥Ö\80Õ»Õ«Õ¶ {{PLURAL:$1|Õ¶Õ¥Ö\80Õ¤Ö\80Õ¸Ö\82Õ´Õ¨|Õ¶Õ¥Ö\80Õ¤Ö\80Õ¸Ö\82Õ´Õ¶Õ¥Ö\80Õ¨}}',
+'createacct-imgcaptcha-ph' => 'Õ\84Õ¸Ö\82Õ¿Ö\84Õ¡Õ£Ö\80Õ¥Ö\84 Õ¾Õ¥Ö\80Õ¨ Õ¢Õ¥Ö\80Õ¾Õ¡Õ® Õ£Ö\80Õ¾Õ¡Õ®Ö\84ը',
+'createacct-submit' => 'Ստեղծել ձեր հաշիվը',
+'createacct-benefit-heading' => '{{SITENAME}}՝ ստեղծված ձեր պես մարդկանց կողմից։',
+'createacct-benefit-body1' => '{{PLURAL:$1|Õ­Õ´Õ¢Õ¡Õ£Ö\80Õ¸Ö\82Õ´}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|էջ}}',
+'createacct-benefit-body3' => 'Õ¾Õ¥Ö\80Õ»Õ¥Ö\80Õ½ Õ¡Õ¯Õ¿Õ«Õ¾ {{PLURAL:$1|Õ´Õ¡Õ½Õ¶Õ¡Õ¯Õ«Ö\81}}',
 'badretype' => 'Ձեր մուտքագրած գաղտնաբառերը չեն համընկնում։',
 'userexists' => 'Այս մասնակցի անունը արդեն զբաղված է։ Խնդրում ենք ընտրել մեկ այլ անուն։',
 'loginerror' => 'Մուտքի սխալ',
@@ -784,7 +813,6 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'Վերականգնել գաղտնաբառը',
-'passwordreset-text' => 'Լրացրեք ձևը՝ էլ-փոստով ձեր տվյալների մասին հիշեցում ստանալու համար։',
 'passwordreset-legend' => 'Վերականգնել գաղտնաբառը',
 'passwordreset-disabled' => 'Գաղտնաբառի վերականգնումը այս վիքիում թույլատրված չէ։',
 'passwordreset-username' => 'Մասնակցի անուն՝',
@@ -1015,6 +1043,7 @@ $2',
 'log-fulllog' => 'Դիտել ամբողջական տեղեկամատյանը',
 'edit-conflict' => 'Խմբագրման ընհարում։',
 'edit-no-change' => 'Ձեր խմբագրումը անտեսվել է, քանի որ ոչ մի փոփոխություն չի կատարվել տեքստի մեջ։',
+'postedit-confirmation' => 'Ձեր խմբագրումը պահպանված է:',
 'defaultmessagetext' => 'Լռելյան տեքստը',
 'editwarning-warning' => 'Այս էջը լքելով դուք կարող եք կորցնել ձեր կատարած փոփոխությունները։
 Եթե դուք գրանցված եք համակարգում, կարող եք անջատել այս նախազգուշացումը ձեր նախընրությունների «{{int:prefs-editing}}» բաժնում։',
@@ -1153,7 +1182,6 @@ $3 մասնակիցը տվել է հետևյալ պատճառը. ''$2''",
 'searchmenu-legend' => 'Որոնման ընտրանքներ',
 'searchmenu-exists' => "'''Այս վիքիում, գոյություն ունի \"[[:\$1]]\" անվանումով էջը։'''",
 'searchmenu-new' => "'''Ստեղծե՛լ \"[[:\$1]]\" էջը այս վիքիում'''",
-'searchhelp-url' => 'Help:Գլխացանկ',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Ցուցադրել այս նախածանցով սկսվող էջերը]]',
 'searchprofile-articles' => 'Հիմնական էջեր',
 'searchprofile-project' => 'Օգնության և նախագծերի էջեր',
@@ -1224,7 +1252,6 @@ $3 մասնակիցը տվել է հետևյալ պատճառը. ''$2''",
 'resetprefs' => 'Անտեսել փոփոխությունները',
 'restoreprefs' => 'Զրոյացնել, բերելով իլռելայն նախընտրանքներին',
 'prefs-editing' => 'Խմբագրում',
-'prefs-edit-boxsize' => 'Խմբագրման պատուհանի չափը։',
 'rows' => 'Տողեր`',
 'columns' => 'Սյունակներ',
 'searchresultshead' => 'Որոնում',
@@ -1234,9 +1261,6 @@ $3 մասնակիցը տվել է հետևյալ պատճառը. ''$2''",
 'recentchangesdays-max' => '($1 {{PLURAL:$1|օրից|օրից}} ոչ ավել)',
 'recentchangescount' => 'Խմբագրումների թիվը ըստ լռության.',
 'prefs-help-recentchangescount' => 'Ներառում է վերջին փոփոխությունները, էջերի պատմությունը և տեղեկամատյանները։',
-'prefs-help-watchlist-token' => 'Այս դաշտը գաղտնի բանալիով լռացնելը կբերի ձեր հսկողության ցանկի RSS ժապավենի ստեղծմանը։
-Ցանկացած մեկը, ով գիտի այս բանալին, կարող է կարդալ ձեր հսկողության ցանկը, այդ պատճառով ընտրեք գաղտնի արժեք։
-Դուք կարող եք օգտագործել այս պատահականորեն գեներացված բանալին՝ $1',
 'savedprefs' => 'Ձեր նախընտրությունները հիշված են։',
 'timezonelegend' => 'Ժամային գոտի.',
 'localtime' => 'Տեղական ժամանակ.',
@@ -1266,7 +1290,6 @@ $3 մասնակիցը տվել է հետևյալ պատճառը. ''$2''",
 'prefs-reset-intro' => 'Այս էջում հնաարավոր է զրոյացնել ձեր բոլոր նախընրանքները, փոխելով դրանք իլռելայն նախընտրանքների։
 Գործողությունը հաստատելուց հետո, նածընտրանքները հնաարվոր չի լինելու հետ բերել։',
 'prefs-emailconfirm-label' => 'Էլ-փոստի վավերացում․',
-'prefs-textboxsize' => 'Խմբագրման պատուհանի չափը',
 'youremail' => 'Էլեկտրոնային փոստ.',
 'username' => '{{GENDER:$1|Մասնակցի անուն}}՝',
 'uid' => 'Մասնակցի իդենտիֆիկատոր.',
@@ -1418,7 +1441,6 @@ $3 մասնակիցը տվել է հետևյալ պատճառը. ''$2''",
 'recentchangeslinked-feed' => 'Կապված փոփոխություններ',
 'recentchangeslinked-toolbox' => 'Կապված փոփոխություններ',
 'recentchangeslinked-title' => '«$1» էջին կապված փոփոխությունները',
-'recentchangeslinked-noresult' => 'Կապակցված էջերում նշված ժամանակաընթացքում փոփոխություններ չեն եղել։',
 'recentchangeslinked-summary' => "Այս սպասարկող էջում բերված են հղվող էջերում կատարված վերջին փոփոխությունները։ Ձեր հսկացանկի էջերը ներկայացված են '''թավատառ'''։",
 'recentchangeslinked-page' => 'Էջի անվանումը՝',
 'recentchangeslinked-to' => 'Հակառա՛կը. ցույց տալ այս էջին հղող էջերի փոփոխությունները։',
@@ -1817,7 +1839,6 @@ $1-ը հղվել է $2 ից',
 'unwatch' => 'Հանել հսկումից',
 'unwatchthispage' => 'Հանել հսկումից',
 'notanarticle' => 'Հոդված չէ',
-'watchnochange' => 'Ոչ մի հսկվող էջ չի փոփոխվել ցուցադրվող ժամանակահատվածում։',
 'watchlist-details' => 'Ձեր հսկացանկում կա {{PLURAL:$1|$1 էջ|$1 էջ}}` քննարկման էջերը չհաշված։',
 'wlheader-enotif' => 'Էլ-փոստով տեղեկացումը միացված է։',
 'wlheader-showupdated' => "Էջերը, որոնք փոփոխվել են ձեր դրանց վերջին այցից հետո բերված են '''թավատառ'''։",
index c244a2b..9cf9914 100644 (file)
@@ -7,10 +7,12 @@
  * @ingroup Language
  * @file
  *
+ * @author Geitost
  * @author Julian Mendez
  * @author Kaganer
  * @author Malafaya
  * @author McDutchie
+ * @author Nemo bis
  * @author Reedy
  * @author Yfdyh000
  * @author לערי ריינהארט
@@ -343,6 +345,7 @@ $messages = array(
 'create-this-page' => 'Crear iste pagina',
 'delete' => 'Deler',
 'deletethispage' => 'Deler iste pagina',
+'undeletethispage' => 'Restaurar iste pagina',
 'undelete_short' => 'Restaurar {{PLURAL:$1|un modification|$1 modificationes}}',
 'viewdeleted_short' => 'Vider {{PLURAL:$1|un modification|$1 modificationes}} delite',
 'protect' => 'Proteger',
@@ -396,7 +399,6 @@ $1',
 'disclaimers' => 'Declaration de non-responsabilitate',
 'disclaimerpage' => 'Project:Declaration general de non-responsabilitate',
 'edithelp' => 'Adjuta de modification',
-'edithelppage' => 'Help:Modification',
 'helppage' => 'Help:Contento',
 'mainpage' => 'Pagina principal',
 'mainpage-description' => 'Pagina principal',
@@ -545,6 +547,10 @@ $2',
 'namespaceprotected' => "Tu non ha le permission de modificar paginas in le spatio de nomines '''$1'''.",
 'customcssprotected' => 'Tu non ha le permission de modificar iste pagina de CSS perque illo contine le configuration personal de un altere usator.',
 'customjsprotected' => 'Tu non ha le permission de modificar iste pagina de JavaScript perque illo contine le configuration personal de un altere usator.',
+'mycustomcssprotected' => 'Tu non ha le permission de modificar iste pagina de CSS.',
+'mycustomjsprotected' => 'Tu non ha le permission de modificar iste pagina de JavaScript.',
+'myprivateinfoprotected' => 'Tu non ha le permission de modificar le proprie information private.',
+'mypreferencesprotected' => 'Tu non ha le permission de modificar le proprie preferentias.',
 'ns-specialprotected' => 'Le paginas special non es modificabile.',
 'titleprotected' => "Iste titulo ha essite protegite contra creation per [[User:$1|$1]].
 Le motivo specificate es ''$2''.",
@@ -572,6 +578,7 @@ Non oblida personalisar tu [[Special:Preferences|preferentias in {{SITENAME}}]].
 'yourname' => 'Nomine de usator:',
 'userlogin-yourname' => 'Nomine de usator�',
 'userlogin-yourname-ph' => 'Entra tu nomine de usator',
+'createacct-another-username-ph' => 'Entra le nomine de usator',
 'yourpassword' => 'Contrasigno:',
 'userlogin-yourpassword' => 'Contrasigno',
 'userlogin-yourpassword-ph' => 'Entra tu contrasigno',
@@ -596,7 +603,7 @@ Non oblida personalisar tu [[Special:Preferences|preferentias in {{SITENAME}}]].
 'notloggedin' => 'Tu non ha aperite un session',
 'userlogin-noaccount' => 'Non ha un conto?',
 'userlogin-joinproject' => 'Crear un conto in {{SITENAME}}',
-'nologin' => "Tu non ha un conto? '''$1'''.",
+'nologin' => 'Tu non ha un conto? $1.',
 'nologinlink' => 'Crear un conto',
 'createaccount' => 'Crear conto',
 'gotaccount' => "Tu jam ha un conto? '''$1'''.",
@@ -606,9 +613,11 @@ Non oblida personalisar tu [[Special:Preferences|preferentias in {{SITENAME}}]].
 'helplogin-url' => 'Help:Aperir session',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Adjuta a aperir session]]',
 'createacct-join' => 'Specifica tu information hic infra.',
+'createacct-another-join' => 'Specifica le informationes del nove conto ci infra.',
 'createacct-emailrequired' => 'Adresse de e-mail',
 'createacct-emailoptional' => 'Adresse de e-mail (optional)',
 'createacct-email-ph' => 'Entra tu adresse de e-mail',
+'createacct-another-email-ph' => 'Entra adresse de e-mail',
 'createaccountmail' => 'Usar un contrasigno aleatori temporari e inviar lo al adresse de e-mail specificate hic infra',
 'createacct-realname' => 'Nomine real (optional)',
 'createaccountreason' => 'Motivo:',
@@ -617,6 +626,7 @@ Non oblida personalisar tu [[Special:Preferences|preferentias in {{SITENAME}}]].
 'createacct-captcha' => 'Controlo de securitate',
 'createacct-imgcaptcha-ph' => 'Scribe le texto que tu vide hic supra',
 'createacct-submit' => 'Crear tu conto',
+'createacct-another-submit' => 'Crear un altere conto',
 'createacct-benefit-heading' => '{{SITENAME}} es facite per gente como tu.',
 'createacct-benefit-body1' => '{{PLURAL:$1|modification|modificationes}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|pagina|paginas}}',
@@ -685,7 +695,7 @@ Entra un adresse ben formatate, o vacua ille campo.',
 'cannotchangeemail' => 'Le adresses de e-mail associate al contos non pote esser cambiate in iste wiki.',
 'emaildisabled' => 'Iste sito non pote inviar e-mail.',
 'accountcreated' => 'Conto create',
-'accountcreatedtext' => 'Le conto del usator $1 ha essite create.',
+'accountcreatedtext' => 'Le conto de usator [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|discussion]]) ha essite create.',
 'createaccount-title' => 'Creation de un conto pro {{SITENAME}}',
 'createaccount-text' => 'Un persona ha create un conto in tu adresse de e-mail a {{SITENAME}} ($4) denominate "$2", con le contrasigno "$3".
 Tu deberea aperir un session e cambiar tu contrasigno ora.
@@ -725,11 +735,11 @@ Es possibile que tu ha ja cambiate tu contrasigno o requestate un nove contrasig
 
 # Special:PasswordReset
 'passwordreset' => 'Reinitialisar contrasigno',
-'passwordreset-text' => 'Completa iste formulario pro reinitialisar tu contrasigno.',
+'passwordreset-text-one' => 'Completa iste formulario pro reinitialisar tu contrasigno.',
+'passwordreset-text-many' => '{{PLURAL:$1|Completa un de iste campos pro reinitialisar tu contrasigno.}}',
 'passwordreset-legend' => 'Reinitialisar contrasigno',
 'passwordreset-disabled' => 'Le reinitialisation de contrasignos ha essite disactivate in iste wiki.',
 'passwordreset-emaildisabled' => 'Le functionalitate de e-mail ha essite disactivate in iste wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Entra un del elementos de datos hic infra}}',
 'passwordreset-username' => 'Nomine de usator:',
 'passwordreset-domain' => 'Dominio:',
 'passwordreset-capture' => 'Vider le e-mail resultante?',
@@ -775,6 +785,19 @@ Contrasigno temporari: $2',
 'changeemail-submit' => 'Cambiar e-mail',
 'changeemail-cancel' => 'Cancellar',
 
+# Special:ResetTokens
+'resettokens' => 'Reinitialisar indicios',
+'resettokens-text' => 'Hic tu pote reinitialisar le indicios que permitte le accesso a certe datos private associate a tu conto.
+
+Tu 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.',
+'resettokens-legend' => 'Reinitialisar indicios',
+'resettokens-tokens' => 'Indicios:',
+'resettokens-token-label' => '$1 (valor actual: $2)',
+'resettokens-watchlist-token' => 'Indicio pro syndication web del observatorio',
+'resettokens-done' => 'Indicios reinitialisate.',
+'resettokens-resetbutton' => 'Reinitialisar le indicios seligite',
+
 # Edit page toolbar
 'bold_sample' => 'Texto grasse',
 'bold_tip' => 'Texto grasse',
@@ -966,7 +989,7 @@ Tu pote retornar e modificar un pagina existente, o [[Special:UserLogin|aperir u
 'nocreate-loggedin' => 'Tu non ha le permission de crear nove paginas.',
 'sectioneditnotsupported-title' => 'Modification de sectiones non supportate',
 'sectioneditnotsupported-text' => 'Non es possibile modificar sectiones individual in iste pagina de modification.',
-'permissionserrors' => 'Errores de permissiones',
+'permissionserrors' => 'Error de permission',
 'permissionserrorstext' => 'Tu non ha le permission de facer isto, pro le sequente {{PLURAL:$1|motivo|motivos}}:',
 '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 esseva anteriormente delite.'''
@@ -982,6 +1005,7 @@ Nulle explication disponibile.',
 Pare que illo ha essite delite.',
 'edit-conflict' => 'Conflicto inter modificationes.',
 'edit-no-change' => 'Tu modification ha essite ignorate, proque nulle cambio esseva facite in le texto.',
+'postedit-confirmation' => 'Tu modification ha essite salveguardate.',
 'edit-already-exists' => 'Non poteva crear un nove pagina.
 Illo existe ja.',
 'defaultmessagetext' => 'Texto predefinite del message',
@@ -989,7 +1013,7 @@ Illo existe ja.',
 'invalid-content-data' => 'Datos de contento invalide',
 'content-not-allowed-here' => 'Le contento "$1" non es permittite in le pagina [[$2]]',
 'editwarning-warning' => 'Quitar iste pagina pote causar le perdita de omne modificationes que tu ha facite.
-Si tu ha aperite un session, tu pote disactivar iste aviso in le section "{{int:prefs-editing}}" de tu preferentias.',
+Si tu ha aperite un session, tu pote disactivar iste aviso in le section "Modification" de tu preferentias.',
 
 # Content models
 'content-model-wikitext' => 'wikitexto',
@@ -1025,6 +1049,7 @@ Per favor controla le comparation infra pro verificar que tu vole facer isto, e
 'undo-failure' => 'Le modification non poteva esser annullate a causa de conflicto con modificationes intermedie.',
 'undo-norev' => 'Impossibile annullar le modification proque illo non existe o esseva delite.',
 'undo-summary' => 'Annullava le version $1 per [[Special:Contributions/$2|$2]] ([[User talk:$2|Discussion]] | [[Special:Contributions/$2|{{MediaWiki:Contribslink}}]])',
+'undo-summary-username-hidden' => 'Disfacer le revision $1 facite per un usator celate',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Non pote crear conto',
@@ -1052,8 +1077,8 @@ Legenda: '''({{int:cur}})''' = comparar con le version actual,
 '''({{int:last}})''' = comparar con le version precedente, '''{{int:minoreditletter}}''' = modification minor.",
 'history-fieldset-title' => 'Examinar historia',
 'history-show-deleted' => 'Delite solmente',
-'histfirst' => 'Prime',
-'histlast' => 'Ultime',
+'histfirst' => 'le plus ancian',
+'histlast' => 'le plus nove',
 'historysize' => '({{PLURAL:$1|1 byte|$1 bytes}})',
 'historyempty' => '(vacue)',
 
@@ -1208,6 +1233,7 @@ Nota que le uso del ligamines de navigation causara le perdita de tote cambios i
 'compareselectedversions' => 'Comparar versiones seligite',
 'showhideselectedversions' => 'Revelar/celar le versiones seligite',
 'editundo' => 'disfacer',
+'diff-empty' => '(Nulle differentia)',
 'diff-multi' => '({{PLURAL:$1|Un version intermedie|$1 versiones intermedie}} facite per {{PLURAL:$2|un usator|$2 usatores}} non es monstrate)',
 'diff-multi-manyusers' => '({{PLURAL:$1|Un version intermedie|$1 versiones intermedie}} facite per plus de $2 {{PLURAL:$2|usator|usatores}} non es monstrate)',
 'difference-missing-revision' => '{{PLURAL:$2|Un version|$2 versiones}} de iste differentia ($1) non ha essite trovate.
@@ -1235,7 +1261,6 @@ Detalios se trova in le [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}
 'searchmenu-legend' => 'Optiones de recerca',
 'searchmenu-exists' => "'''Existe un pagina nominate \"[[\$1]]\" in iste wiki'''",
 'searchmenu-new' => "'''Crea le pagina \"[[:\$1]]\" in iste wiki!'''",
-'searchhelp-url' => 'Help:Contento',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Navigar per le paginas con iste prefixo]]',
 'searchprofile-articles' => 'Paginas de contento',
 'searchprofile-project' => 'Paginas de adjuta e del projecto',
@@ -1313,7 +1338,6 @@ Nota que lor indices del contento de {{SITENAME}} pote esser obsolete.',
 'resetprefs' => 'Reverter cambios',
 'restoreprefs' => 'Restaurar tote le configurationes predefinite',
 'prefs-editing' => 'Modification',
-'prefs-edit-boxsize' => 'Dimensiones del fenestra de modification.',
 'rows' => 'Lineas:',
 'columns' => 'Columnas:',
 'searchresultshead' => 'Recerca',
@@ -1324,9 +1348,9 @@ Nota que lor indices del contento de {{SITENAME}} pote esser obsolete.',
 'recentchangesdays-max' => '(non plus de $1 {{PLURAL:$1|die|dies}})',
 'recentchangescount' => 'Numero de modificationes a monstrar per predefinition:',
 'prefs-help-recentchangescount' => 'Isto include modificationes recente, historias de paginas, e registros.',
-'prefs-help-watchlist-token' => 'Le insertion de un clave secrete in iste campo generara un syndication RSS de tu observatorio.
-Omnes persona cognoscente le clave in iste campo potera leger tu observatorio. Selige ergo un valor secur!
-Ecce un valor aleatorimente generate que tu pote usar: $1',
+'prefs-help-watchlist-token2' => 'Isto es le clave secrete pro le syndication web de tu observatorio.
+Omne persona qui lo cognosce pote leger tu observatorio, dunque, non divide lo.
+[[Special:ResetTokens|Clicca hic pro reinitialisar lo]].',
 'savedprefs' => 'Tu preferentias ha essite confirmate.',
 'timezonelegend' => 'Fuso horari:',
 'localtime' => 'Hora local:',
@@ -1357,7 +1381,6 @@ Ecce un valor aleatorimente generate que tu pote usar: $1',
 'prefs-reset-intro' => 'Iste pagina es pro reinitialisar tu preferentias al valores predefinite del sito.
 Le operation non pote esser disfacite.',
 'prefs-emailconfirm-label' => 'Confirmation del e-mail:',
-'prefs-textboxsize' => 'Dimension del fenestra de modification',
 'youremail' => 'E-mail:',
 'username' => '{{GENDER:$1|Nomine de usator}}:',
 'uid' => 'ID del {{GENDER:$1|usator}}:',
@@ -1388,7 +1411,9 @@ Si tu opta pro dar lo, isto essera usate pro dar te attribution pro tu contribut
 'prefs-signature' => 'Signatura',
 'prefs-dateformat' => 'Formato de data',
 'prefs-timeoffset' => 'Differentia de tempore',
-'prefs-advancedediting' => 'Optiones avantiate',
+'prefs-advancedediting' => 'General',
+'prefs-editor' => 'Editor',
+'prefs-preview' => 'Previsualisation',
 'prefs-advancedrc' => 'Optiones avantiate',
 'prefs-advancedrendering' => 'Optiones avantiate',
 'prefs-advancedsearchoptions' => 'Optiones avantiate',
@@ -1396,6 +1421,7 @@ Si tu opta pro dar lo, isto essera usate pro dar te attribution pro tu contribut
 'prefs-displayrc' => 'Optiones de presentation',
 'prefs-displaysearchoptions' => 'Optiones de presentation',
 'prefs-displaywatchlist' => 'Optiones de presentation',
+'prefs-tokenwatchlist' => 'Indicio',
 'prefs-diffs' => 'Differentias',
 
 # User preference: email validation using jQuery
@@ -1424,6 +1450,7 @@ Si tu opta pro dar lo, isto essera usate pro dar te attribution pro tu contribut
 'userrights-changeable-col' => 'Gruppos que tu pote modificar',
 'userrights-unchangeable-col' => 'Gruppos que tu non pote modificar',
 'userrights-conflict' => 'Conflicto inter derectos de usator! Per favor applica tu cambiamentos de novo.',
+'userrights-removed-self' => 'Tu ha removite con successo tu proprie derectos. In consequentia, tu non plus pote acceder a iste pagina.',
 
 # Groups
 'group' => 'Gruppo:',
@@ -1467,7 +1494,7 @@ Si tu opta pro dar lo, isto essera usate pro dar te attribution pro tu contribut
 'right-reupload-shared' => 'Supplantar localmente le files del respositorio commun de media',
 'right-upload_by_url' => 'Incargar un file ab un adresse URL',
 'right-purge' => 'Purgar le cache de un pagina in le sito sin confirmation',
-'right-autoconfirmed' => 'Modificar paginas semiprotegite',
+'right-autoconfirmed' => 'Non esser subjecte al limites de frequentia a base de adresse IP',
 'right-bot' => 'Esser tractate como processo automatic',
 'right-nominornewtalk' => 'Non reciper notification de nove messages quando se face modificationes minor in le pagina de discussion',
 'right-apihighlimits' => 'Usar limites plus alte in consultas via API',
@@ -1488,12 +1515,20 @@ Si tu opta pro dar lo, isto essera usate pro dar te attribution pro tu contribut
 'right-ipblock-exempt' => 'Contornar le blocadas de adresses IP, blocadas automatic e blocadas de intervallos IP',
 'right-proxyunbannable' => 'Contornar le blocadas automatic de proxy',
 'right-unblockself' => 'Disblocar se mesme',
-'right-protect' => 'Cambiar nivellos de protection e modificar paginas protegite',
-'right-editprotected' => 'Modificar paginas protegite (sin cascada)',
+'right-protect' => 'Cambiar nivellos de protection e modificar paginas protegite in cascada',
+'right-editprotected' => 'Modificar paginas protegite con "{{int:protect-level-sysop}}"',
+'right-editsemiprotected' => 'Modificar paginas protegite como "{{int:protect-level-autoconfirmed}}"',
 'right-editinterface' => 'Modificar le interfacie de usator',
 'right-editusercssjs' => 'Modificar le files CSS e JS de altere usatores',
 'right-editusercss' => 'Modificar le files CSS de altere usatores',
 'right-edituserjs' => 'Modificar le files JS de altere usatores',
+'right-editmyusercss' => 'Modificar le proprie files CSS de usator',
+'right-editmyuserjs' => 'Modificar le proprie files JavaScript de usator',
+'right-viewmywatchlist' => 'Vider le proprie observatorio',
+'right-editmywatchlist' => 'Modificar le proprie observatorio. Remarca que alcun actiones totevia adde paginas mesmo sin iste derecto.',
+'right-viewmyprivateinfo' => 'Vider le proprie datos private (p.ex. adresse de e-mail, nomine real)',
+'right-editmyprivateinfo' => 'Modificar le proprie datos private (p.ex. adresse de e-mail, nomine real)',
+'right-editmyoptions' => 'Modificar le proprie preferentias',
 'right-rollback' => 'Rapidemente revocar le modificationes del ultime usator que modificava un pagina particular',
 'right-markbotedits' => 'Marcar modificationes de reversion como facite per un bot',
 'right-noratelimit' => 'Non esser subjecte al limites de frequentia de actiones',
@@ -1555,12 +1590,17 @@ Si tu opta pro dar lo, isto essera usate pro dar te attribution pro tu contribut
 'action-userrights-interwiki' => 'modificar le derectos de usatores in altere wikis',
 'action-siteadmin' => 'blocar e disblocar le base de datos',
 'action-sendemail' => 'inviar e-mail',
+'action-editmywatchlist' => 'modificar le proprie observatorio',
+'action-viewmywatchlist' => 'vider le proprie observatorio',
+'action-viewmyprivateinfo' => 'vider le proprie information private',
+'action-editmyprivateinfo' => 'modificar le proprie information private',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|modification|modificationes}}',
 'recentchanges' => 'Modificationes recente',
 'recentchanges-legend' => 'Optiones del modificationes recente',
 'recentchanges-summary' => 'Seque le plus recente modificationes a {{SITENAME}} in iste pagina.',
+'recentchanges-noresult' => 'Nulle modification facite in le periodo specificate que corresponde a iste criterios.',
 'recentchanges-feed-description' => 'Seque le modificationes le plus recente al wiki in iste syndication.',
 'recentchanges-label-newpage' => 'Iste modification creava un nove pagina',
 'recentchanges-label-minor' => 'Isto es un modification minor',
@@ -1597,7 +1637,6 @@ Si tu opta pro dar lo, isto essera usate pro dar te attribution pro tu contribut
 'recentchangeslinked-feed' => 'Modificationes ligate',
 'recentchangeslinked-toolbox' => 'Modificationes ligate',
 'recentchangeslinked-title' => 'Modificationes associate a "$1"',
-'recentchangeslinked-noresult' => 'Nulle modificationes in paginas ligate durante iste periodo.',
 'recentchangeslinked-summary' => "Isto es un lista de modificationes facite recentemente in paginas ligate ab un pagina specific (o in membros de un categoria specific).
 Le paginas presente in [[Special:Watchlist|tu observatorio]] appare in litteras '''grasse'''.",
 'recentchangeslinked-page' => 'Nomine del pagina:',
@@ -1609,7 +1648,7 @@ Le paginas presente in [[Special:Watchlist|tu observatorio]] appare in litteras
 'reuploaddesc' => 'Cancellar e retornar al formulario de incargamento',
 'upload-tryagain' => 'Submitter description modificate del file',
 'uploadnologin' => 'Tu non ha aperite un session',
-'uploadnologintext' => 'Tu debe [[Special:UserLogin|aperir un session]] pro poter incargar files.',
+'uploadnologintext' => 'Tu debe $1 pro poter incargar files.',
 'upload_directory_missing' => 'Le directorio de incargamento ($1) manca, e le servitor de web non poteva crear lo.',
 'upload_directory_read_only' => 'Le servitor web non ha le permission de scriber in le directorio de incargamento ($1).',
 'uploaderror' => 'Error de incargamento',
@@ -2007,6 +2046,8 @@ Un pagina se tracta como pagina de disambiguation si illo usa un patrono que es
 'pageswithprop-text' => 'Iste pagina lista le paginas que usa un certe proprietate de pagina.',
 'pageswithprop-prop' => 'Nomine del proprietate:',
 'pageswithprop-submit' => 'Va',
+'pageswithprop-prophidden-long' => 'valor de proprietate de texto longe celate ($1 kilobytes)',
+'pageswithprop-prophidden-binary' => 'valor de proprietate binari celate ($1 kilobytes)',
 
 'doubleredirects' => 'Redirectiones duple',
 'doubleredirectstext' => 'Iste pagina lista paginas de redirection verso altere paginas de redirection.
@@ -2064,6 +2105,7 @@ Le entratas <del>cancellate</del> ha essite resolvite.',
 'mostrevisions' => 'Paginas le plus modificate',
 'prefixindex' => 'Tote le paginas con prefixo',
 'prefixindex-namespace' => 'Tote le paginas con prefixo (spatio de nomines $1)',
+'prefixindex-strip' => 'Remover prefixo in lista',
 'shortpages' => 'Paginas curte',
 'longpages' => 'Paginas longe',
 'deadendpages' => 'Paginas sin exito',
@@ -2185,7 +2227,8 @@ Isto necessita specificar al minus le dominio de nivello superior, per exemplo "
 'listgrouprights' => 'Derectos del gruppos de usatores',
 'listgrouprights-summary' => 'Lo sequente es un lista de gruppos de usatores definite in iste wiki, con lor derectos de accesso associate.
 Il pote haber [[{{MediaWiki:Listgrouprights-helppage}}|informationes additional]] super derectos individual.',
-'listgrouprights-key' => '* <span class="listgrouprights-granted">Derecto concedite</span>
+'listgrouprights-key' => 'Legenda:
+* <span class="listgrouprights-granted">Derecto concedite</span>
 * <span class="listgrouprights-revoked">Derecto revocate</span>',
 'listgrouprights-group' => 'Gruppo',
 'listgrouprights-rights' => 'Derectos',
@@ -2259,7 +2302,6 @@ Le modificationes futur in iste pagina e in le pagina de discussion associate es
 'unwatchthispage' => 'Disobservar',
 'notanarticle' => 'Non es un articulo',
 'notvisiblerev' => 'Le version ha essite delite',
-'watchnochange' => 'Nulle articulo que tu observa esseva modificate durante le periodo de tempore indicate.',
 'watchlist-details' => '{{PLURAL:$1|$1 pagina|$1 paginas}} es in tu observatorio, sin contar le paginas de discussion.',
 'wlheader-enotif' => 'Le notification via e-mail es active.',
 'wlheader-showupdated' => "Le paginas que ha essite modificate post tu ultime visita se monstra in litteras '''grasse'''.",
@@ -2371,7 +2413,7 @@ un altere persona ha ja modificate o revocate le pagina.
 Le ultime modification esseva facite per [[User:$3|$3]] ([[User talk:$3|discussion]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "Le summario del modification esseva: \"''\$1''\".",
 'revertpage' => 'Reverteva modificationes per [[Special:Contributions/$2|$2]] ([[User talk:$2|Discussion]]) al ultime version per [[User:$1|$1]]',
-'revertpage-nouser' => 'Reverteva modificationes per (nomine de usator removite) al ultime version per [[User:$1|$1]]',
+'revertpage-nouser' => 'Reverteva modificationes per un usator celate al ultime version per [[User:$1|$1]]',
 'rollback-success' => 'Revocava modificationes per $1;
 retornava al version per $2.',
 
@@ -3793,7 +3835,6 @@ Tu pote etiam [[Special:EditWatchlist|usar le editor standard]].',
 'version-other' => 'Altere',
 'version-mediahandlers' => 'Executores de media',
 'version-hooks' => 'Uncinos',
-'version-extension-functions' => 'Functiones de extensiones',
 'version-parser-extensiontags' => 'Etiquettas de extension del analysator syntactic',
 'version-parser-function-hooks' => 'Uncinos de functiones del analysator syntactic',
 'version-hook-name' => 'Nomine del uncino',
@@ -3877,6 +3918,7 @@ Vos deberea haber recipite [{{SERVER}}{{SCRIPTPATH}}/COPYING un exemplar del Lic
 'tags' => 'Etiquettas valide de modification',
 'tag-filter' => 'Filtro de [[Special:Tags|etiquettas]]:',
 'tag-filter-submit' => 'Filtrar',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Etiquetta|Etiquettas}}]]: $2)',
 'tags-title' => 'Etiquettas',
 'tags-intro' => 'Iste pagina lista le etiquettas con le quales le software pote marcar un modification, e lor significato.',
 'tags-tag' => 'Nomine del etiquetta',
index 40a442a..4668f03 100644 (file)
@@ -17,6 +17,7 @@
  * @author Borgx
  * @author Dosmiin Barsbold
  * @author Farras
+ * @author Geitost
  * @author Gombang
  * @author Irwangatot
  * @author IvanLanin
@@ -540,6 +541,7 @@ $messages = array(
 'create-this-page' => 'Buat halaman ini',
 'delete' => 'Hapus',
 'deletethispage' => 'Hapus halaman ini',
+'undeletethispage' => 'Batalkan penghapusan',
 'undelete_short' => 'Batal hapus {{PLURAL:$1|$1 suntingan}}',
 'viewdeleted_short' => 'Lihat {{PLURAL:$1|$1 suntingan}} yang dihapus',
 'protect' => 'Lindungi',
@@ -549,7 +551,7 @@ $messages = array(
 'unprotectthispage' => 'Ubah perlindungan halaman ini',
 'newpage' => 'Halaman baru',
 'talkpage' => 'Bicarakan halaman ini',
-'talkpagelinktext' => 'Bicara',
+'talkpagelinktext' => 'bicara',
 'specialpage' => 'Halaman istimewa',
 'personaltools' => 'Peralatan pribadi',
 'postcomment' => 'Bagian baru',
@@ -593,7 +595,6 @@ $1',
 'disclaimers' => 'Penyangkalan',
 'disclaimerpage' => 'Project:Penyangkalan umum',
 'edithelp' => 'Bantuan penyuntingan',
-'edithelppage' => 'Help:Penyuntingan',
 'helppage' => 'Help:Isi',
 'mainpage' => 'Halaman Utama',
 'mainpage-description' => 'Halaman Utama',
@@ -624,7 +625,6 @@ $1',
 'newmessagesdifflinkplural' => '{{PLURAL:$1|perubahan}} terakhir',
 'youhavenewmessagesmulti' => 'Anda mendapat pesan baru pada $1',
 'editsection' => 'sunting',
-'editsection-brackets' => '[$1]',
 'editold' => 'sunting',
 'viewsourceold' => 'lihat sumber',
 'editlink' => 'sunting',
@@ -738,6 +738,10 @@ $2',
 'namespaceprotected' => "Anda tak memiliki hak akses untuk menyunting halaman di ruang nama '''$1'''.",
 'customcssprotected' => 'Anda tidak memiliki izin untuk menyunting halaman CSS ini, karena berisi pengaturan pribadi pengguna lain.',
 'customjsprotected' => 'Anda tidak memiliki izin untuk menyunting halaman JavaScript ini, karena berisi pengaturan pribadi pengguna lain.',
+'mycustomcssprotected' => 'Anda tidak memiliki izin untuk menyunting halaman CSS ini.',
+'mycustomjsprotected' => 'Anda tidak memiliki izin untuk menyunting halaman JavaScript ini.',
+'myprivateinfoprotected' => 'Anda tidak memiliki izin untuk menyunting informasi pribadi Anda.',
+'mypreferencesprotected' => 'Anda tidak memiliki izin untuk menyunting preferensi Anda.',
 'ns-specialprotected' => 'Halaman pada ruang nama {{ns:special}} tidak dapat disunting.',
 'titleprotected' => "Judul ini dilindungi dari pembuatan oleh [[User:$1|$1]].
 Alasan yang diberikan adalah ''$2''.",
@@ -788,7 +792,7 @@ Perhatikan bahwa beberapa halaman mungkin masih terus menunjukkan bahwa Anda mas
 'notloggedin' => 'Belum masuk log',
 'userlogin-noaccount' => 'Belum punya akun?',
 'userlogin-joinproject' => 'Join {{SITENAME}}',
-'nologin' => "Belum mempunyai akun? '''$1'''.",
+'nologin' => 'Belum mempunyai akun? $1.',
 'nologinlink' => 'Daftarkan akun baru',
 'createaccount' => 'Buat akun baru',
 'gotaccount' => "Sudah terdaftar sebagai pengguna? '''$1'''.",
@@ -865,7 +869,7 @@ Harap masukkan alamat surel dalam format yang benar atau kosongkan isian tersebu
 'cannotchangeemail' => 'Alamat surel akun tidak dapat diubah di wiki ini.',
 'emaildisabled' => 'Situs ini tidak dapat mengirim surel.',
 'accountcreated' => 'Akun dibuat',
-'accountcreatedtext' => 'Akun pengguna untuk $1 telah dibuat.',
+'accountcreatedtext' => 'Akun pengguna untuk [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|bicara]]) telah dibuat.',
 'createaccount-title' => 'Pembuatan akun untuk {{SITENAME}}',
 'createaccount-text' => 'Seseorang telah membuat sebuah akun untuk alamat surel Anda di {{SITENAME}} ($4) dengan nama "$2" dan kata sandi "$3". Anda dianjurkan untuk masuk log dan mengganti kata sandi Anda sekarang.
 
@@ -902,12 +906,12 @@ Anda mungkin telah berhasil mengganti kata sandi Anda atau telah meminta kata sa
 'resetpass-abort-generic' => 'Perubahan kata sandi telah dibatalkan oleh ekstensi.',
 
 # Special:PasswordReset
-'passwordreset' => 'Setel ulang sandi',
-'passwordreset-text' => 'Lengkapi formulir ini untuk menyetel ulang kata sandi.',
-'passwordreset-legend' => 'Setel ulang sandi',
+'passwordreset' => 'Setel ulang kata sandi',
+'passwordreset-text-one' => 'Lengkapi formulir ini untuk menyetel ulang kata sandi.',
+'passwordreset-text-many' => '{{PLURAL:$1|Isi salah satu kotak di bawah ini untuk menyetel ulang kata sandi Anda.}}',
+'passwordreset-legend' => 'Setel ulang kata sandi',
 'passwordreset-disabled' => 'Penyetelan ulang sandi telah dimatikan di wiki ini.',
 'passwordreset-emaildisabled' => 'Fitur surel telah dinonaktifkan pada wiki ini.',
-'passwordreset-pretext' => '{{PLURAL:$1||Masukkan salah satu data di bawah ini}}',
 'passwordreset-username' => 'Nama pengguna:',
 'passwordreset-domain' => 'Domain:',
 'passwordreset-capture' => 'Lihat surel yang dihasilkan?',
@@ -1146,6 +1150,7 @@ tanpa ada keterangan.',
 Halaman kemungkinan telah dihapus.',
 'edit-conflict' => 'Konflik penyuntingan.',
 'edit-no-change' => 'Suntingan diabaikan, karena Anda tidak melakukan perubahan atas teks.',
+'postedit-confirmation' => 'Suntingan Anda tersimpan.',
 'edit-already-exists' => 'Tidak dapat membuat halaman baru
 karena telah ada.',
 'defaultmessagetext' => 'Teks baku',
@@ -1153,7 +1158,7 @@ karena telah ada.',
 'invalid-content-data' => 'Data konten tidak sah',
 'content-not-allowed-here' => 'Konten "$1" tidak diizinkan di halaman [[$2]]',
 'editwarning-warning' => 'Meninggalkan halaman ini dapat menyebabkan semua perubahan yang belum tersimpan hilang.
-Jika Anda telah masuk log, Anda dapat mematikan peringatan ini lewat "{{int:prefs-editing}}" pada halaman preferensi Anda.',
+Jika Anda telah masuk log, Anda dapat mematikan peringatan ini lewat bagian "Penyuntingan" pada halaman preferensi Anda.',
 
 # Content models
 'content-model-wikitext' => 'teks wiki',
@@ -1187,6 +1192,7 @@ Beberapa templat akan diabaikan.',
 'undo-failure' => 'Suntingan ini tidak dapat dibalikkan karena konflik penyuntingan antara.',
 'undo-norev' => 'Suntingan ini tidak dapat dibalikkan karena halaman tidak ditemukan atau telah dihapuskan.',
 'undo-summary' => 'Membalikkan revisi $1 oleh [[Special:Contributions/$2|$2]] ([[User talk:$2|bicara]])',
+'undo-summary-username-hidden' => 'Batalkan revisi $1 oleh seorang pengguna tersembunyi',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Akun tak dapat dibuat',
@@ -1212,8 +1218,8 @@ Alasan yang diberikan oleh $3 adalah ''$2''",
 'histlegend' => "Pilih dua tombol radio lalu tekan tombol ''bandingkan'' untuk membandingkan versi. Klik suatu tanggal untuk melihat versi halaman pada tanggal tersebut.<br />(skr) = perbedaan dengan versi sekarang, (akhir) = perbedaan dengan versi sebelumnya, '''k''' = suntingan kecil, '''b''' = suntingan bot, → = suntingan bagian, ← = ringkasan otomatis",
 'history-fieldset-title' => 'Menjelajah versi terdahulu',
 'history-show-deleted' => 'Hanya yang dihapus',
-'histfirst' => 'Terlama',
-'histlast' => 'Terbaru',
+'histfirst' => 'terlama',
+'histlast' => 'terbaru',
 'historysize' => '($1 {{PLURAL:$1|bita|bita}})',
 'historyempty' => '(kosong)',
 
@@ -1365,6 +1371,7 @@ Pastikan bahwa perubahan ini tetap mempertahankan kontinuitas versi terdahulu ha
 'compareselectedversions' => 'Bandingkan versi terpilih',
 'showhideselectedversions' => 'Tampilkan/sembunyikan versi terpilih',
 'editundo' => 'balikkan',
+'diff-empty' => '(Tidak ada perbedaan)',
 'diff-multi' => '({{PLURAL:$1|Satu|$1}} revisi antara oleh {{PLURAL:$2|satu|$2}} pengguna tak ditampilkan)',
 'diff-multi-manyusers' => '({{PLURAL:$1|Satu|$1}} revisi antara oleh lebih dari $2 {{PLURAL:$2|satu|$2}} pengguna tak ditampilkan)',
 'difference-missing-revision' => '{{PLURAL:$2|Satu revisi|$2 revisi}} dari perbedaan ini ($1) {{PLURAL:$2|tidak|tidak}} ditemukan.
@@ -1392,7 +1399,6 @@ Rinciannya dapat ditemukan di [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGE
 'searchmenu-legend' => 'Opsi pencarian',
 'searchmenu-exists' => "* Halaman '''[[$1]]'''",
 'searchmenu-new' => "'''Buat halaman \"[[:\$1]]\" di wiki ini!'''",
-'searchhelp-url' => 'Help:Isi',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Lihat daftar halaman dengan awalan ini]]',
 'searchprofile-articles' => 'Halaman isi',
 'searchprofile-project' => 'Halaman Bantuan dan Proyek',
@@ -1469,7 +1475,6 @@ Perlu diingat bahwa indeks Google untuk konten {{SITENAME}} mungkin belum mencak
 'resetprefs' => 'Batalkan perubahan',
 'restoreprefs' => 'Kembalikan semua setelan bawaan',
 'prefs-editing' => 'Penyuntingan',
-'prefs-edit-boxsize' => 'Ukuran kotak penyuntingan.',
 'rows' => 'Baris:',
 'columns' => 'Kolom:',
 'searchresultshead' => 'Cari',
@@ -1480,8 +1485,6 @@ Perlu diingat bahwa indeks Google untuk konten {{SITENAME}} mungkin belum mencak
 'recentchangesdays-max' => '(maksimum $1 {{PLURAL:$1|hari|hari}})',
 'recentchangescount' => 'Standar jumlah suntingan yang ditampilkan:',
 'prefs-help-recentchangescount' => 'Opsi ini berlaku untuk perubahan terbaru, versi terdahulu halaman, dan log.',
-'prefs-help-watchlist-token' => 'Mengisi kotak ini dengan kunci rahasia (PIN) akan menghasilkan sindikasi RSS untuk daftar pantauan Anda. Siapa pun yang mengetahui kunci ini dapat membaca daftar pantauan Anda, jadi pilihlah nilainya dengan hati-hati
-Berikut ini adalah nilai acak yang dapat Anda gunakan: $1',
 'savedprefs' => 'Preferensi Anda telah disimpan',
 'timezonelegend' => 'Zona waktu:',
 'localtime' => 'Waktu setempat:',
@@ -1512,7 +1515,6 @@ Berikut ini adalah nilai acak yang dapat Anda gunakan: $1',
 'prefs-reset-intro' => 'Anda dapat menggunakan halaman ini untuk mengembalikan preferensi Anda ke setelan baku situs.
 Pengembalian preferensi tidak dapat dibatalkan.',
 'prefs-emailconfirm-label' => 'Konfirmasi surel:',
-'prefs-textboxsize' => 'Ukuran kotak suntingan',
 'youremail' => 'Surel:',
 'username' => '{{GENDER:$1|Nama pengguna}}:',
 'uid' => 'ID {{GENDER:$1|pengguna}}:',
@@ -1545,7 +1547,9 @@ Jika Anda memberikannya, nama asli Anda akan digunakan untuk memberi pengenalan
 'prefs-signature' => 'Tanda tangan',
 'prefs-dateformat' => 'Format tanggal',
 'prefs-timeoffset' => 'Format waktu',
-'prefs-advancedediting' => 'Opsi lanjutan',
+'prefs-advancedediting' => 'Umum',
+'prefs-editor' => 'Penyunting',
+'prefs-preview' => 'Pratayang',
 'prefs-advancedrc' => 'Opsi lanjutan',
 'prefs-advancedrendering' => 'Opsi lanjutan',
 'prefs-advancedsearchoptions' => 'Opsi lanjutan',
@@ -1583,6 +1587,7 @@ Jika Anda memberikannya, nama asli Anda akan digunakan untuk memberi pengenalan
 'userrights-unchangeable-col' => 'Kelompok yang tidak dapat Anda ubah',
 'userrights-irreversible-marker' => '$1*',
 'userrights-conflict' => 'Konflik hak pengguna! Silakan ubah kembali.',
+'userrights-removed-self' => 'Anda berhasil mencabut hak-hak Anda. Anda tidak bisa lagi mengakses halaman ini.',
 
 # Groups
 'group' => 'Kelompok:',
@@ -1626,7 +1631,7 @@ Jika Anda memberikannya, nama asli Anda akan digunakan untuk memberi pengenalan
 'right-reupload-shared' => 'Menolak berkas-berkas pada penyimpanan media lokal bersama',
 'right-upload_by_url' => 'Memuatkan berkas dari sebuah alamat URL',
 'right-purge' => 'Menghapus singgahan suatu halaman tanpa halaman konfirmasi',
-'right-autoconfirmed' => 'Menyunting halaman yang semidilindungi',
+'right-autoconfirmed' => 'Tidak dipengaruhi rate limit berbasis IP',
 'right-bot' => 'Diperlakukan sebagai sebuah proses otomatis',
 'right-nominornewtalk' => 'Ketiadaan suntingan kecil di halaman pembicaraan memicu tampilan pesan baru',
 'right-apihighlimits' => 'Menggunakan batasan yang lebih tinggi dalam kueri API',
@@ -1647,12 +1652,20 @@ Jika Anda memberikannya, nama asli Anda akan digunakan untuk memberi pengenalan
 'right-ipblock-exempt' => 'Mengabaikan pemblokiran IP, pemblokiran otomatis, dan rentang pemblokiran',
 'right-proxyunbannable' => 'Mengabaikan pemblokiran otomatis atas proksi',
 'right-unblockself' => 'Melepaskan blokir diri sendiri',
-'right-protect' => 'Mengubah tingkat pelindungan dan menyunting halaman yang dilindungi',
-'right-editprotected' => 'Menyunting halaman yang dilindungi (tanpa pelindungan runtun)',
+'right-protect' => 'Ubah tingkat pelindungan dan sunting halaman yang dilindungi beruntun',
+'right-editprotected' => 'Sunting halaman yang dilindungi sebagai "{{int:protect-level-sysop}}"',
+'right-editsemiprotected' => 'Sunting halaman yang dilindungi sebagai "{{int:protect-level-autoconfirmed}}"',
 'right-editinterface' => 'Menyunting antarmuka pengguna',
 'right-editusercssjs' => 'Menyunting arsip CSS dan JS pengguna lain',
 'right-editusercss' => 'Menyunting berkas CSS pengguna lain',
 'right-edituserjs' => 'Menyunting berkas JS pengguna lain',
+'right-editmyusercss' => 'Sunting berkas CSS pengguna Anda',
+'right-editmyuserjs' => 'Sunting berkas JavaScript pengguna Anda',
+'right-viewmywatchlist' => 'Lihat daftar pantau Anda',
+'right-editmywatchlist' => 'Sunting daftar pantau Anda. Masih ada cara menambahkan halaman tanpa harus memiliki hak ini.',
+'right-viewmyprivateinfo' => 'Lihat data pribadi Anda (alamat surel, nama asli, dll.)',
+'right-editmyprivateinfo' => 'Sunting data pribadi Anda (alamat surel, nama asli, dll.)',
+'right-editmyoptions' => 'Sunting preferensi Anda',
 'right-rollback' => 'Mengembalikan dengan cepat suntingan-suntingan pengguna terakhir yang menyunting halaman tertentu',
 'right-markbotedits' => 'Menandai pengembalian revisi sebagai suntingan bot',
 'right-noratelimit' => 'Tidak dipengaruhi oleh pembatasan jumlah suntingan',
@@ -1714,13 +1727,18 @@ Jika Anda memberikannya, nama asli Anda akan digunakan untuk memberi pengenalan
 'action-userrights-interwiki' => 'menyunting hak akses dari pengguna di wiki lain',
 'action-siteadmin' => 'mengunci atau membuka kunci basis data',
 'action-sendemail' => 'kirim surel',
+'action-editmywatchlist' => 'sunting daftar pantau Anda',
+'action-viewmywatchlist' => 'lihat daftar pantau Anda',
+'action-viewmyprivateinfo' => 'lihat informasi pribadi Anda',
+'action-editmyprivateinfo' => 'sunting informasi pribadi Anda',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|perubahan|perubahan}}',
 'recentchanges' => 'Perubahan terbaru',
 'recentchanges-legend' => 'Opsi perubahan terbaru',
-'recentchanges-summary' => "Temukan perubahan terbaru dalam wiki di halaman ini. Keterangan: (beda) = perubahan, (versi) = sejarah revisi, '''B''' = halaman baru, '''k''' = suntingan kecil, '''b''' = suntingan bot, (± ''bita'') = jumlah penambahan/pengurangan isi, → = suntingan bagian, ← = ringkasan otomatis.
-----",
+'recentchanges-summary' => "Temukan perubahan terbaru dalam wiki di halaman ini.<br />
+;Keterangan:(<span style=\"color:blue;\">beda</span>) perubahan, (<span style=\"color:blue;\">versi</span>) sejarah revisi, '''B''' halaman baru, '''b''' suntingan bot, '''k''' suntingan kecil, <span class=\"unpatrolled\">!</span> perubahan belum dipatroli,<br /><span style=\"color:green;\">'''(+ ''bita'')'''</span> isi konten bertambah, <span style=\"color:red;\">(- ''bita'')</span> isi konten berkurang, (← Ringkasan otomatis), (→ <span style=\"color:grey;\">Suntingan bagian</span>)",
+'recentchanges-noresult' => 'Tidak ada perubahan dalam rentang waktu ini yang cocok dengan kriteria.',
 'recentchanges-feed-description' => 'Temukan perubahan terbaru dalam wiki di umpan ini.',
 'recentchanges-label-newpage' => 'Suntingan ini membuat halaman baru',
 'recentchanges-label-minor' => 'Ini adalah suntingan kecil',
@@ -1759,7 +1777,6 @@ Jika Anda memberikannya, nama asli Anda akan digunakan untuk memberi pengenalan
 'recentchangeslinked-feed' => 'Perubahan terkait',
 'recentchangeslinked-toolbox' => 'Perubahan terkait',
 'recentchangeslinked-title' => 'Perubahan yang terkait dengan "$1"',
-'recentchangeslinked-noresult' => 'Tidak terjadi perubahan pada halaman-halaman terkait selama periode yang telah ditentukan.',
 'recentchangeslinked-summary' => "Halaman istimewa ini memberikan daftar perubahan terakhir pada halaman-halaman terkait. Halaman yang Anda pantau ditandai dengan '''cetak tebal'''.",
 'recentchangeslinked-page' => 'Nama halaman:',
 'recentchangeslinked-to' => 'Perlihatkan perubahan dari halaman-halaman yang terhubung dengan halaman yang disajikan',
@@ -1770,7 +1787,7 @@ Jika Anda memberikannya, nama asli Anda akan digunakan untuk memberi pengenalan
 'reuploaddesc' => 'Kembali ke formulir pemuatan',
 'upload-tryagain' => 'Kirim perubahan keterangan berkas',
 'uploadnologin' => 'Belum masuk log',
-'uploadnologintext' => 'Anda harus [[Special:UserLogin|masuk log]] untuk dapat memuatkan berkas.',
+'uploadnologintext' => 'Anda harus $1 untuk dapat mengunggah berkas.',
 'upload_directory_missing' => 'Direktori pemuatan ($1) tidak ditemukan dan tidak dapat dibuat oleh server web.',
 'upload_directory_read_only' => 'Direktori pemuatan ($1) tidak dapat ditulis oleh server web.',
 'uploaderror' => 'Kesalahan pemuatan',
@@ -2404,7 +2421,6 @@ Perubahan-perubahan berikutnya pada halaman tersebut dan halaman pembicaraan ter
 'unwatchthispage' => 'Batal pantau halaman ini',
 'notanarticle' => 'Bukan sebuah halaman isi',
 'notvisiblerev' => 'Revisi telah dihapus',
-'watchnochange' => 'Tak ada halaman pantauan Anda yang telah berubah dalam jangka waktu yang dipilih.',
 'watchlist-details' => 'Terdapat {{PLURAL:$1|$1 halaman|$1 halaman}} di daftar pantauan Anda, tidak termasuk halaman pembicaraan.',
 'wlheader-enotif' => 'Notifikasi surel diaktifkan.',
 'wlheader-showupdated' => "Halaman-halaman yang telah berubah sejak kunjungan terakhir Anda ditampilkan dengan '''huruf tebal'''.",
@@ -2513,7 +2529,7 @@ pengguna lain telah menyunting atau melakukan pengembalian terhadap halaman ini.
 Suntingan terakhir dilakukan oleh [[User:$3|$3]] ([[User talk:$3|bicara]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "Komentar penyuntingan adalah: \"''\$1''\".",
 'revertpage' => '←Suntingan [[Special:Contributions/$2|$2]] ([[User talk:$2|bicara]]) dibatalkan ke versi terakhir oleh [[User:$1|$1]]',
-'revertpage-nouser' => 'Pengembalian suntingan oleh (pengguna dihapus) ke suntingan terakhir oleh [[User:$1|$1]]',
+'revertpage-nouser' => 'Mengembalikan suntingan oleh pengguna tersembunyi ke suntingan terakhir oleh [[User:$1|$1]]',
 'rollback-success' => 'Pembatalan suntingan oleh $1; dibatalkan ke versi terakhir oleh $2.',
 
 # Edit tokens
@@ -2651,7 +2667,7 @@ $1',
 'mycontris' => 'Kontribusi',
 'contribsub2' => 'Untuk $1 ($2)',
 'nocontribs' => 'Tidak ada perubahan yang sesuai dengan kriteria tersebut.',
-'uctop' => ' (atas)',
+'uctop' => '(saat ini)',
 'month' => 'Sejak bulan (dan sebelumnya):',
 'year' => 'Sejak tahun (dan sebelumnya):',
 
@@ -2974,6 +2990,8 @@ Silakan kunjungi [//www.mediawiki.org/wiki/Localisation Pelokalan MediaWiki] dan
 'thumbnail-more' => 'Perbesar',
 'filemissing' => 'Berkas tak ditemukan',
 'thumbnail_error' => 'Gagal membuat miniatur: $1',
+'thumbnail_error_remote' => 'Pesan kesalahan dari $1:
+$2',
 'djvu_page_error' => 'Halaman DjVu di luar rentang',
 'djvu_no_xml' => 'XML untuk berkas DjVu tak dapat diperoleh',
 'thumbnail-temp-create' => 'Tidak dapat membuat berkas kecil temporer',
@@ -3916,7 +3934,6 @@ Silakan konfirmasi jika Anda ingin membuat ulang halaman ini.",
 'semicolon-separator' => ';&#32;',
 'comma-separator' => ',&#32;',
 'colon-separator' => ':&#32;',
-'autocomment-prefix' => '-&#32;',
 'pipe-separator' => '&#32;|&#32;',
 'word-separator' => '&#32;',
 'ellipsis' => '...',
@@ -4044,7 +4061,6 @@ Anda juga dapat [[Special:EditWatchlist|menggunakan penyunting standar Anda]].',
 'version-other' => 'Lain-lain',
 'version-mediahandlers' => 'Penanganan media',
 'version-hooks' => 'Kait',
-'version-extension-functions' => 'Fungsi ekstensi',
 'version-parser-extensiontags' => 'Tag ekstensi parser',
 'version-parser-function-hooks' => 'Kait fungsi parser',
 'version-hook-name' => 'Nama kait',
@@ -4072,7 +4088,14 @@ Anda seharusnya telah menerima [{{SERVER}}{{SCRIPTPATH}}/COPYING salinan Lisensi
 # Special:Redirect
 'redirect' => 'Pengalihan oleh berkas, pengguna atau ID revisi',
 'redirect-legend' => 'Pengalihan ke sebuah berkas atau halaman',
+'redirect-summary' => 'Halaman istimewa ini beralih ke berkas (sesuai nama berkasnya), halaman (sesuai ID revisinya), atau halaman pengguna (sesuai ID numerik penggunanya).',
 'redirect-submit' => 'Lanjut',
+'redirect-lookup' => 'Pencarian:',
+'redirect-value' => 'Nilai:',
+'redirect-user' => 'ID pengguna',
+'redirect-revision' => 'Revisi halaman',
+'redirect-file' => 'Nama berkas',
+'redirect-not-exists' => 'Nilai tidak ditemukan',
 
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Pencarian berkas duplikat',
@@ -4121,6 +4144,7 @@ Anda seharusnya telah menerima [{{SERVER}}{{SCRIPTPATH}}/COPYING salinan Lisensi
 'tags' => 'Tag perubahan yang valid',
 'tag-filter' => 'Filter [[Special:Tags|tag]]:',
 'tag-filter-submit' => 'Penyaring',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Tag}}]]: $2)',
 'tags-title' => 'Tanda',
 'tags-intro' => 'Halaman ini berisi daftar tag yang dapat ditandai oleh perangkat lunak terhadap suatu suntingan berikut artinya.',
 'tags-tag' => 'Nama tag',
index 31f7d1f..f05b636 100644 (file)
@@ -346,7 +346,6 @@ $1',
 'disclaimers' => 'Advertimentes',
 'disclaimerpage' => 'Project:Advertimentes comun',
 'edithelp' => 'Redacter auxilie',
-'edithelppage' => 'Help:Redactant',
 'helppage' => 'Help:Contenete',
 'mainpage' => 'Págine principal',
 'mainpage-description' => 'Págine principal',
@@ -624,7 +623,6 @@ Vider li [[Special:IPBlockList|liste de bloc de IP]] por li liste de bloces e ba
 'viewprevnext' => 'Vider ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-exists' => "'''Vi un págine nominat \"[[:\$1]]\" in ti wiki.'''",
 'searchmenu-new' => "'''Crear li págine \"[[:\$1]]\" in ti wiki!'''",
-'searchhelp-url' => 'Help:Contenete',
 'searchprofile-articles' => 'Págines de contenete',
 'searchprofile-project' => 'Auxilie e Págines de projecte',
 'searchprofile-images' => 'Multimedia',
@@ -754,7 +752,6 @@ Tui adresse de e-mail ne es revelat quande altri usatores contacter vu.',
 'recentchangeslinked-feed' => 'Relatet modificationes',
 'recentchangeslinked-toolbox' => 'Changes referet',
 'recentchangeslinked-title' => 'Changes relatet por "$1"',
-'recentchangeslinked-noresult' => 'Nequant change in págines ligat durante li periode anunciat.',
 'recentchangeslinked-summary' => "Ti es un liste de changes fat recentmen por págines ligat de un págine specificat (o por membres de un categorie specificat).
 Págines in [[Special:Watchlist|tui liste de págines vigilat]] es '''nigri'''.",
 'recentchangeslinked-page' => 'Nómine de págine:',
@@ -989,7 +986,6 @@ Li descrition es in li [$2 págine de descrition del file] ta e es monstrat in i
 'watch' => 'Vigilar',
 'watchthispage' => 'Vigilar ti págine',
 'unwatch' => 'Desvigilar',
-'watchnochange' => 'Nequant de tui tui partes vigilat esset redactet in li periode de témpor monstrat.',
 'watchlist-details' => '{{PLURAL:$1|$1 págine|$1 págines}} in tui liste de págines vigilat, sin págines de discussion.',
 'wlheader-enotif' => 'Li notification de e-mail es permisset.',
 'wlheader-showupdated' => "Págines quel hat esset mutat desde tui ultim visitation es monstrat in '''nigri'''",
@@ -1355,7 +1351,6 @@ Vu posse anc [[Special:EditWatchlist|usar li redactor uniform]].',
 'version-other' => 'Altri',
 'version-mediahandlers' => 'Manuettes de media',
 'version-hooks' => 'Croces',
-'version-extension-functions' => 'Functiones de extension',
 'version-parser-extensiontags' => 'Puntales de extension analisatores',
 'version-parser-function-hooks' => 'Croces de functiones analisatores',
 'version-hook-name' => 'Nómine de croc',
index 0157257..0873601 100644 (file)
@@ -312,7 +312,6 @@ $1',
 'disclaimers' => 'Ihe anyí chọrọ ki ma',
 'disclaimerpage' => 'Project:Ihe I kweshiri ma',
 'edithelp' => 'Inyetuáká I rüwa',
-'edithelppage' => 'Help: I rüwa',
 'helppage' => 'Help: Ihe di ime',
 'mainpage' => 'Ihü Mbu',
 'mainpage-description' => 'Ihü Mbu',
@@ -713,7 +712,6 @@ Okwu ụmà: '''({{int:cur}})''' = gbánwe na nké orü mbu, '''({{int:last}})''
 'viewprevnext' => 'Lé ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-legend' => 'Màkà nchöwa',
 'searchmenu-new' => "'''Ké ihü \"[[:\$1]]\" na wiki nke á!'''",
-'searchhelp-url' => 'Help:Ihe di ime',
 'searchprofile-articles' => 'Ihü ihe dị',
 'searchprofile-project' => 'Ihü Nkwádo na Orürü',
 'searchprofile-images' => 'Nkaníle',
index 3f2b7e3..de32589 100644 (file)
@@ -45,9 +45,9 @@ $messages = array(
 'tog-usenewrc' => 'Dagiti grupo a panagbaliw babaen ti panid kadagiti kinaudi a panagbaliw ken banbantayan  (masapul ti JavaScript)',
 'tog-numberheadings' => 'Automatiko a pabilangan dagiti paulo',
 'tog-showtoolbar' => 'Ipakita ti ramit ti panag-urnos (masapul ti JavaScript)',
-'tog-editondblclick' => 'Urnosen dagiti panid iti mamindua a panagtakla (masapul ti JavaScript)',
-'tog-editsection' => 'Pakabaelan ti paset a panag-urnos babaen kadagiti [urnosen] a  panilpo',
-'tog-editsectiononrightclick' => 'Pakabaelan ti paset  a panag-urnos babaen ti panagtakla ti kanawan kadagiti paset a titulo (masapul ti JavaScript)',
+'tog-editondblclick' => 'Urnosen dagiti panid iti mamindua a panagpindut (masapul ti JavaScript)',
+'tog-editsection' => 'Pakabaelan ti paset a panag-urnos babaen kadagiti silpo nga [urnosen]',
+'tog-editsectiononrightclick' => 'Pakabaelan ti paset  a panag-urnos babaen ti panagpindut ti kanawan kadagiti paset a titulo (masapul ti JavaScript)',
 'tog-showtoc' => 'Ipakita ti tabla dagiti linaon (para kadagiti panid nga adda ti ad-adu ngem dagiti 3 a paulo)',
 'tog-rememberpassword' => 'Laglagipem ti iseserrekko iti daytoy a pagbasabasa (iti kapaut nga $1 {{PLURAL:$1|aldaw|al-aldaw}})',
 'tog-watchcreations' => 'Agnayon kadagiti panid a pinartuatko ken papeles nga inpanko idiay listaan ti bambantayak',
@@ -142,6 +142,18 @@ $messages = array(
 'oct' => 'Okt',
 'nov' => 'Nob',
 'dec' => 'Dis',
+'january-date' => 'Enero $1',
+'february-date' => 'Pebrero $1',
+'march-date' => 'Marso $1',
+'april-date' => 'Abril $1',
+'may-date' => 'Mayo $1',
+'june-date' => 'Hunio $1',
+'july-date' => 'Hulio $1',
+'august-date' => 'Agosto $1',
+'september-date' => 'Septiembre $1',
+'october-date' => 'Oktubre $1',
+'november-date' => 'Nobiembre $1',
+'december-date' => 'Disiembre $1',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategoria|Katkategoria}}',
@@ -223,6 +235,7 @@ $messages = array(
 'create-this-page' => 'Aramidem daytoy a panid',
 'delete' => 'Ikkaten',
 'deletethispage' => 'Ikkaten daytoy a panid',
+'undeletethispage' => 'Isubli ti pannakaikkat daytoy a panid',
 'undelete_short' => 'Isubli ti naikkat a  {{PLURAL:$1|maysa a naurnos|$1 a naururnos}}',
 'viewdeleted_short' => 'Kitaen {{PLURAL:$1|ti maysa a naikkat a naurnos|dagiti $1 a naikkat a naurnos}}',
 'protect' => 'Salakniban',
@@ -276,7 +289,6 @@ $1',
 'disclaimers' => 'Dagiti renunsia',
 'disclaimerpage' => 'Project:Sapasap ti karbengan ken rebbeng',
 'edithelp' => 'Tulong ti panag-urnos',
-'edithelppage' => 'Help:Panag-urnos',
 'helppage' => 'Help:Dagiti linaon',
 'mainpage' => 'Umuna a Panid',
 'mainpage-description' => 'Umuna a Panid',
@@ -427,6 +439,10 @@ $2',
 'namespaceprotected' => "Awan ti pammalubosmo nga agurnos kadagiti panid iti '''$1''' a nagan ti lugar.",
 'customcssprotected' => 'Awan ti pammalubosmo nga agurnos ditoy panid ti CSS, ngamin ket adda linaonna a tagikua dagiti agar-aramat ti sabali a kasasaad.',
 'customjsprotected' => 'Awan ti pammalubosmo nga agurnos ditoy panid ti JavaScript, ngamin ket adda linaonna a tagikua dagiti agar-aramat ti sabali a kasasaad.',
+'mycustomcssprotected' => 'Awan pammalubosmo nga agurnos iti daytoy a panid ti CSS.',
+'mycustomjsprotected' => 'Awan pammalubosmo nga agurnos iti daytoy a panid ti JavaScript.',
+'myprivateinfoprotected' => 'Awan pammalubosmo nga agurnos iti pribado a pakaammom.',
+'mypreferencesprotected' => 'Awan pammalubosmo nga agurnos kadagiti kakaykayatam.',
 'ns-specialprotected' => 'Saan a mabalin nga urnosen dagiti espesial a panid.',
 'titleprotected' => "Daytoy a titulo ket nasalakniban manipud ti panakapartuat babaen ni [[User:$1|$1]].
 Ti naited a rason ket ''$2''.",
@@ -452,9 +468,19 @@ Laglagipem a sumagmamano a pampanid ti mabalin a nakaparang latta a kasla nakase
 'welcomecreation-msg' => 'Naaramiden ti pakabilangam.
 Dimo liplipatan a sukatan dagiti kakaykayatam idiay [[Special:Preferences|{{SITENAME}} kakaykayatan]].',
 'yourname' => 'Nagan ti agar-aramat:',
+'userlogin-yourname' => 'Nagan ti agar-aramat',
+'userlogin-yourname-ph' => 'Ikabil ti naganmo nga agar-aramat',
+'createacct-another-username-ph' => 'Ikabil ti nagan ti agar-aramat',
 'yourpassword' => 'Kontrasenias:',
+'userlogin-yourpassword' => 'Kontrasenias',
+'userlogin-yourpassword-ph' => 'Ikabilmo ti kontrasenias',
+'createacct-yourpassword-ph' => 'Agikabil ti kontrasenias',
 'yourpasswordagain' => 'Uliten ti kontrasenias:',
+'createacct-yourpasswordagain' => 'Pasingkedan ti kontrasenias',
+'createacct-yourpasswordagain-ph' => 'Ikabil manen ti kontrasenias',
 'remembermypassword' => 'Laglagipem ti iseserrekko iti daytoy a pagbasabasa (para iti kapaut iti $1 {{PLURAL:$1|nga aldaw|nga al-aldaw}})',
+'userlogin-remembermypassword' => 'Taginayonennak nga iserrek',
+'userlogin-signwithsecure' => 'Usaren ti natalged a pannakaikapet',
 'securelogin-stick-https' => 'Agyanka a nakasilpo iti HTTPS kalpasan no nakastrekka',
 'yourdomainname' => 'Ti bukodmo a pagturayan:',
 'password-change-forbidden' => 'Saanmo a mabalin ti mangbaliw kadagiti kontrasenias iti daytoy a wiki.',
@@ -467,18 +493,41 @@ Dimo liplipatan a sukatan dagiti kakaykayatam idiay [[Special:Preferences|{{SITE
 'logout' => 'Rummuar',
 'userlogout' => 'Rummuar',
 'notloggedin' => 'Saan a nakastrek',
-'nologin' => "Awan kadi pay ti pakabilangam? '''$1'''.",
+'userlogin-noaccount' => 'Awan ti pakabilangam?',
+'userlogin-joinproject' => 'Tumipon iti {{SITENAME}}',
+'nologin' => "Awan ti pakabilangam? '''$1'''.",
 'nologinlink' => 'Agaramid ti pakabilangan',
 'createaccount' => 'Agaramid ti pakabilangan',
 'gotaccount' => "Addaanka kadin ti pakabilangam? '''$1'''.",
 'gotaccountlink' => 'Sumrek',
-'userlogin-resetlink' => 'Nalipatam dagiti salaysay ti pagserrek mo?',
+'userlogin-resetlink' => 'Nalipatam dagiti salaysay ti pagserrekmo?',
+'userlogin-resetpassword-link' => 'Iyasentar manen ti kontrasenias',
+'helplogin-url' => 'Help:Panagserrek',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Tulong iti panagserrek]]',
+'createacct-join' => 'Ikabil ti pakaammom dita baba.',
+'createacct-another-join' => 'Ikabil ti pakaammo ti baro a pakabilangan dita baba.',
+'createacct-emailrequired' => 'Esurat a pagtaengan',
+'createacct-emailoptional' => 'Esurat a pagtaengan (pagpilian)',
+'createacct-email-ph' => 'Ikabil ti esurat a pagtaengam',
+'createacct-another-email-ph' => 'Ikabil ti esurat a pagtaengan',
 'createaccountmail' => 'Agusar ti maysa a temporario a pugto a kontrasenias ken ipatulod idiay esurat a pagtaengan a nainaganan dita baba',
+'createacct-realname' => 'Pudno a nagan (pagpilian)',
 'createaccountreason' => 'Rason:',
+'createacct-reason' => 'Rason',
+'createacct-reason-ph' => 'Apay nga agparpartuatka manen ti pakabilangam',
+'createacct-captcha' => 'Panagkita ti pannakatalinaay',
+'createacct-imgcaptcha-ph' => 'Ikabil ti testo a makitam dita ngato',
+'createacct-submit' => 'Partuatem ti pakabilangam',
+'createacct-another-submit' => 'Agaramid ti sabali pay a pakabilangan',
+'createacct-benefit-heading' => 'Ti {{SITENAME}} ket inar-aramid babaen ti tattao a kasla kenka.',
+'createacct-benefit-body1' => '{{PLURAL:$1|nga inurnos|nga inur-urnos}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|a panid|a pampanid}}',
+'createacct-benefit-body3' => 'nga agdama a {{PLURAL:$1|nagparawad|nagparparawad}}',
 'badretype' => 'Saan nga agpada dagiti impanmo a kontrasenias.',
 'userexists' => 'Maus-usaren ti nagan a kayatmo.
 Pangngaasi nga agpilika ti sabali a nagan.',
 'loginerror' => 'Biddut ti sumrek',
+'createacct-error' => 'Biddut a panagpartuat ti pakabilangan',
 'createaccounterror' => 'Saan a makaaramid ti pakabilangan: $1',
 'nocookiesnew' => 'Naaramid ti pakabilangan ti agar-aramat, ngem saanka a nakastrek.
 Ti {{SITENAME}} ket agususar kadagiti "galietas" tapno maiserrek dagiti agaramat.
@@ -539,7 +588,7 @@ Pangngaasi nga ikkam ti nasayaat a nakabuklan a pagtaengan wenno ikkatem amin da
 'cannotchangeemail' => 'Dagiti pakabilangan nga esurat a pagtaengan ket saan a mabaliwan ditoy a wiki.',
 'emaildisabled' => 'Daytoy a pagsaaadan ket saan a makaipatulod kadagiti esurat.',
 'accountcreated' => 'Naaramiden ti pakabilangan',
-'accountcreatedtext' => 'Ti pakabilangan ti agar-aramat para iti  $1 ket naaramiden.',
+'accountcreatedtext' => 'Ti pakabilangan ti agar-aramat para kenni [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|tungtungan]]) ket napartuaten.',
 'createaccount-title' => 'Panagaramid iti pakabilangan para iti {{SITENAME}}',
 'createaccount-text' => 'Adda nagaramid ti pakabilangan para iti esurat a pagtaengam idiay {{SITENAME}} ($4) nga agnagan  ti "$2", iti kontrasenias a "$3".
 Nasken a sumrekka ken sukatam ti kontraseniasmo tattan.
@@ -566,7 +615,7 @@ Tapno malpaska a makastrek, nasken a mangikabilka ti baro a kontrasenias ditoy:'
 'newpassword' => 'Baro a kontrasenias:',
 'retypenew' => 'Imakinilya manen ti baro a kontrasenias:',
 'resetpass_submit' => 'Ikabil ti kontrasenias ken sumrek',
-'resetpass_success' => 'Nagballigi a nabaliwan ti kontrasenias mo! 
+'resetpass_success' => 'Nagballigi a nabaliwan ti kontraseniasmo! 
 </br>
 Iserrek kan...',
 'resetpass_forbidden' => 'Saan a masukatan dagiti kontrasenias',
@@ -576,13 +625,15 @@ Iserrek kan...',
 'resetpass-wrong-oldpass' => 'Imbalido ti temporario wenno agdama a kontrasenias.
 Mabalin a nagballigi ti panagsukatmo ti kontrasenias wenno nagkiddaw ti baro a temporario a kontrasenias.',
 'resetpass-temp-password' => 'Temporario a kontrasenias:',
+'resetpass-abort-generic' => 'Ti panagsukat ti kontrasenias ket pinasardeng babaen ti pagpaatiddog.',
 
 # Special:PasswordReset
 'passwordreset' => 'Ipasubli ti kontrasenias',
-'passwordreset-text' => 'Lippasem daytoy a porma tapno maidisso manen ti bukodmo a kontrasenias.',
+'passwordreset-text-one' => 'Lippasem daytoy a porma tapno maidisso manen ti bukodmo a kontrasenias.',
+'passwordreset-text-many' => '{{PLURAL:$1|Agikabil ti maysa kadagiti pagikabilan tapno maiyasentar manen ti bukodmo a kontrasenias.}}',
 'passwordreset-legend' => 'Ipasubli ti kontrasenias',
 'passwordreset-disabled' => 'Nabaldado dagiti panagisubli ti kontrasenias iti daytoy a wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Ikabil ti maysa a piraso ti datos dita baba}}',
+'passwordreset-emaildisabled' => 'Dagiti langa ti esurat ket nabaldado iti daytoy a wiki.',
 'passwordreset-username' => 'Nagan ti agar-aramat:',
 'passwordreset-domain' => 'Pagturayan:',
 'passwordreset-capture' => 'Kitaem ti nagbanagan ti esurat?',
@@ -612,7 +663,7 @@ agtuloykan nga agusar ti daan a kontraseniasmo.',
 Temporario a kontrasenias: $2',
 'passwordreset-emailsent' => 'Ti maysa nga esurat ti panangidisso manen ti kontrasenias ket naipatuloden.',
 'passwordreset-emailsent-capture' => 'Ti maysa nga esurat ti panangidisso manen ti kontrasenias ket naipatuloden, a napaikita dita baba.',
-'passwordreset-emailerror-capture' => 'Ti maysa nga esurat ti panangidisso manen ti kontrasenias ket naaramiden, a napaikita dita baba, ngem napaay a napaitulod iti agar-aramat: $1',
+'passwordreset-emailerror-capture' => 'Naaramid ti maysa nga esurat a panangyasentar manen ti kontrasenias, a napaikita dita baba, ngem ti panangitulod kenni {{GENDER:$2|agar-aramat}} ket napaay: $1',
 
 # Special:ChangeEmail
 'changeemail' => 'Sukatan ti esurat a pagtaengan',
@@ -816,7 +867,7 @@ Mabalinmo ti agsubli ken urnosen ti adda a panid, wenno [[Special:UserLogin|sumr
 'nocreate-loggedin' => 'Awan ti pammalubosmo nga agpartuat kadagiti baro a panid.',
 'sectioneditnotsupported-title' => 'Saan a mabalin ti agurnos ti paset',
 'sectioneditnotsupported-text' => 'Saan a mabalin ti panag-urnos ti paset iti daytoy a panid.',
-'permissionserrors' => 'Dagiti biddut ti pammalubos',
+'permissionserrors' => 'Biddut ti pammalubos',
 'permissionserrorstext' => 'Awan ti pammalubosmo nga agaramid iti dayta, gapu ti sumaganad {{PLURAL:$1|a rason|a rasrason}}:',
 'permissionserrorstext-withaction' => 'Awan ti pammalubosmo nga $2, gapu ti sumaganad {{PLURAL:$1|a rason|rasrason}}:',
 'recreate-moveddeleted-warn' => "'''Ballaag: Agparpartuatka manen ti naikkat idi a panid'''
@@ -832,6 +883,7 @@ Awan ti intedna a palawag.',
 Kasla met naikkaten.',
 'edit-conflict' => 'Adda kasinnungat ti panag-urnos.',
 'edit-no-change' => 'Ti inurnosmo ket saan a naikaskaso, ngamin ket awan ti nasukatan a testo.',
+'postedit-confirmation' => 'Ti inurnosmo ket naidulinen.',
 'edit-already-exists' => 'Saan a makaaramid ti baro a panid.
 Adda met daytoyen.',
 'defaultmessagetext' => 'Kasisigud a testo ti mensahe',
@@ -873,8 +925,9 @@ Dagitoy a panangipalawag ket naikkaten.",
 'undo-success' => 'Ti panag-urnos ket saan a maisubli.
 Pangngaasi a kitaen ti pagipadaan dita baba tapno maamuan no agpaypayso ti kayatmo nga aramiden, ken idulin dagiti sinukatan dita baba tapno malpas ti panagsubli ti inurnos.',
 'undo-failure' => 'Ti inurnos ket saan a maipasubli gaputa adda dagiti nakisinnungat a patingnga a naurnos.',
-'undo-norev' => 'Saan a maibabawi ti naurnos ngamin ket awan met daytoy wenno mabalin a naikkat.',
+'undo-norev' => 'Saan a maibabawi ti naurnos ngamin ket awan daytoy wenno mabalin a naikkaten.',
 'undo-summary' => 'Ibabawi ti $1 a binaliwan babaen ni [[Special:Contributions/$2|$2]] ([[User talk:$2|tungtungan]])',
+'undo-summary-username-hidden' => 'Isubli ti $1 a binaliwan babaen ti nailemmeng nga agar-aramat',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Saan a makaaramid ti pakabilangan',
@@ -901,8 +954,8 @@ Ti inted a rason babaen ni $3 ket ''$2''",
 Sarita: '''({{int:cur}})''' = naggidiatan ti kinaudi a panagbaliw, '''({{int:last}})''' = naggidiatan ti sarsarunuen a panagbaliw , '''{{int:minoreditletter}}''' = bassit a panagbaliw.",
 'history-fieldset-title' => 'Agbasabasa ti pakasaritaan',
 'history-show-deleted' => 'Naikkat laeng',
-'histfirst' => 'Kaunaan',
-'histlast' => 'Kaudian',
+'histfirst' => 'kadaanan',
+'histlast' => 'kabaruan',
 'historysize' => '({{PLURAL:$1|1 byte|$1 bytes}})',
 'historyempty' => '(blanko)',
 
@@ -1056,6 +1109,7 @@ Usaren ti radio a buton a tukol ti pinagtipon iti laeng panagbaliw a naaramid id
 'compareselectedversions' => 'Ipada dagiti pinili a binaliwan',
 'showhideselectedversions' => 'Ipakita/ilemmeng dagiti napili a nabaliwan',
 'editundo' => 'ibabawi',
+'diff-empty' => '(Awan ti paggiddiatan)',
 'diff-multi' => '({{PLURAL:$1|Maysa nga agtengnga a panangbalbaliw|Dagiti $1 nga agtennga a panangbalbaliw}} babaen {{PLURAL:$2|ti agararamat|dagiti $2 nga agararamat}} ti saan a naipakita)',
 'diff-multi-manyusers' => '({{PLURAL:$1|Maysa nga agtengnga a panangbalbaliw|Dagiti $1 nga agtengnga a panangbalbaliw}} babaen ti ad-adu ngem $2 {{PLURAL:$2|nga agar-aramat|kadagiti agar-aramat}} ti saan a naipakita)',
 'difference-missing-revision' => '{{PLURAL:$2|Maysa a panagbalbaliw|$2 kadagiti panagbalbaliw}} iti daytoy a paggiddiatan ($1) {{PLURAL:$2|ket ti|ket dagiti}} saan a naburikan.
@@ -1083,7 +1137,6 @@ Dagiti salaysay ket mabalin a mabirukan idiay [{{fullurl:{{#Special:Log}}/delete
 'searchmenu-legend' => 'Pagpilian ti panagbiruk',
 'searchmenu-exists' => "'''Adda panid a nanaganan ti \"[[:\$1]]\" iti daytoy a wiki.'''",
 'searchmenu-new' => "'''Partuaten ti panid ti \"[[:\$1]]\" iti daytoy a wiki!'''",
-'searchhelp-url' => 'Help:Dagiti linaon',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Kitaem dagiti panid nga adda kastoy a naipasaruno]]',
 'searchprofile-articles' => 'Dagiti naglaon a panid',
 'searchprofile-project' => 'Tulong ken Gandat a pam-panid',
@@ -1127,6 +1180,7 @@ Padasem a  pasarunuan ti panagbiruk mo ti ''all:'' tapno birukem amin a nagyan (
 'searchdisabled' => 'Ti panagbiruk iti {{SITENAME}} ket nabaldado.
 Mabalin mo ti agbiruk idiay Google tattan.
 Laglagipem laeng a dagiti pagsurotan nagyan ti {{SITENAME}} ket baka baak.',
+'search-error' => 'Adda maysa a biddut  napasamak bayat nga agbirbiruk:$1',
 
 # Preferences page
 'preferences' => 'Kakaykayatan',
@@ -1160,21 +1214,16 @@ Laglagipem laeng a dagiti pagsurotan nagyan ti {{SITENAME}} ket baka baak.',
 'resetprefs' => 'Dalusan dagiti saan a naidulin a sinuksukatan',
 'restoreprefs' => 'Isublim amin dagiti kinasigud a kasasaad',
 'prefs-editing' => 'Ururnosen',
-'prefs-edit-boxsize' => 'Kadakkel ti tawa ti panag-urnos.',
 'rows' => 'Ar-aray:',
 'columns' => 'Tuk-tukol:',
 'searchresultshead' => 'Biruken',
 'resultsperpage' => 'Nabirukan ti tunggal maysa a panid:',
 'stub-threshold' => 'Pangruggian ti <a href="#" class="stub">pungol a panilpo</a>panagporma (dagiti byte):',
 'stub-threshold-disabled' => 'Nabaldado',
-'recentchangesdays' => 'Alaldaw nga ipakita dagiti kinaudi a binalbaliwan:',
+'recentchangesdays' => 'Al-aldaw nga ipakita dagiti kinaudi a binalbaliwan:',
 'recentchangesdays-max' => 'Kabayag nga $1 {{PLURAL:$1|nga aldaw|nga al-aldaw}}',
 'recentchangescount' => 'Dagiti bilang dagiti naurnos a kinasigud a maiparang:',
 'prefs-help-recentchangescount' => 'Nairaman dagiti kinaudian a baliwan, dagiti pakasaritaan ti panid, ken dagiti listaan.',
-'prefs-help-watchlist-token' => 'No ikkam daytoy pagikabilan ti sekreto a tulbek, agaramid ti pakan a RSS para ti binambantayam.
-No adda makaammo daytoy a tulbek ditoy a pagikabilan ket mabalin da a basaen ti binambantayam, masapul nga agpilika ti pateg a seguridad.
-
-Adda ditoy ti pugto a pateg a mausarmo: $1',
 'savedprefs' => 'Naidulinen dagiti kakaykayatam.',
 'timezonelegend' => 'Sona ti oras:',
 'localtime' => 'Lokal nga oras:',
@@ -1205,7 +1254,6 @@ Adda ditoy ti pugto a pateg a mausarmo: $1',
 'prefs-reset-intro' => 'Mabalinmo nga usaren daytoy a panid tapno maisublim dagita kakaykayatam iti kasisigud ti daytoy a wiki.
 Ngem saanto a mabalinen nga ipasubli.',
 'prefs-emailconfirm-label' => 'Pammasingked ti esurat:',
-'prefs-textboxsize' => 'Ti kadakkel ti pagurnosan a tawa',
 'youremail' => 'Esurat:',
 'username' => '{{GENDER:$1|Nagan ti agar-aramat}}:',
 'uid' => 'ID ti {{GENDER:$1|Agar-aramat}}:',
@@ -1239,7 +1287,9 @@ Ti esurat a pagtaengam ket saan a maipakita kadagiti agar-aramat nga agkontak ke
 'prefs-signature' => 'Pirma',
 'prefs-dateformat' => 'Kita ti petsa',
 'prefs-timeoffset' => 'Tangda ti oras',
-'prefs-advancedediting' => 'Dagiti napasayaat a pagpilian',
+'prefs-advancedediting' => 'Sapasap',
+'prefs-editor' => 'Mannurat',
+'prefs-preview' => 'Naipadas',
 'prefs-advancedrc' => 'Dagiti napasayaat a pagpilian',
 'prefs-advancedrendering' => 'Dagiti napasayaat a pagpilian',
 'prefs-advancedsearchoptions' => 'Dagiti napasayaat a pagpilian',
@@ -1274,6 +1324,8 @@ Ti esurat a pagtaengam ket saan a maipakita kadagiti agar-aramat nga agkontak ke
 'userrights-notallowed' => 'Awan ti pammalubos ti pakabilangam a mangted iti kakaberngan ti agar-aramat.',
 'userrights-changeable-col' => 'Dagiti grupo a mabalinmo a baliwan',
 'userrights-unchangeable-col' => 'Dagiti grupo a dimo mabalin a baliwan',
+'userrights-conflict' => 'Suppiat ti karbengan ti agar-aramat! Pangngaasi nga ipakatmo manen dagiti sinuksukatam.',
+'userrights-removed-self' => 'Nagballigika a nagikkat kadagiti karbengam. Isu a kastoyen ket saanmo a mabalin a pastrekan daytoy a panid.',
 
 # Groups
 'group' => 'Grupo:',
@@ -1317,7 +1369,7 @@ Ti esurat a pagtaengam ket saan a maipakita kadagiti agar-aramat nga agkontak ke
 'right-reupload-shared' => 'Paawanen dagiti papeles idiay pagbingayan ti nakaikabilan ti midia a lokal',
 'right-upload_by_url' => 'Pag-ipan ti papeles a naggapu ti URL',
 'right-purge' => 'Purgaen ti pagidulinan ti pagsaadan a ti panid nga awan ti panagpasingked',
-'right-autoconfirmed' => 'Urnosen dagiti nasalakniban-bassit a panid',
+'right-autoconfirmed' => 'Saanto a mabanagan babaen dagiti patingga ti gatad a naibatay ti IP',
 'right-bot' => 'Matrato a kas automatiko a pamay-an',
 'right-nominornewtalk' => 'Nga awanan ti bassit a panagurnos dagiti tungtungan a panid ti mangkalbit dagiti agpakabil ti baro a mensahe',
 'right-apihighlimits' => 'Agusar ti nangatngato a patingga kadagiti panagsapul ti API.',
@@ -1338,12 +1390,20 @@ Ti esurat a pagtaengam ket saan a maipakita kadagiti agar-aramat nga agkontak ke
 'right-ipblock-exempt' => 'Labsan dagiti IP a serra, dagiti automatiko a serra ken dagiti nasakup a serra.',
 'right-proxyunbannable' => 'Labsan dagiti automatiko a serra dagiti proxie',
 'right-unblockself' => 'Ikkaten ti pannaka-serra kaniada',
-'right-protect' => 'Sukatan dagiti lessaad ti salaknib ken dagiti panid a nasalakniban ti panag-urnos',
-'right-editprotected' => 'Urnosen dagiti nasalakniban a panid (nga awan ti sariap a salaknib")',
+'right-protect' => 'Sukatan dagiti agpang ti salaknib ken urnosen dagiti nasalakniban ti sariap a panid',
+'right-editprotected' => 'Urnosen dagiti panid a nasalakniban a kas "{{int:protect-level-sysop}}"',
+'right-editsemiprotected' => 'Urnosen dagiti panid a nasalakniban a kas "{{int:protect-level-autoconfirmed}}"',
 'right-editinterface' => 'Urnosen ti "interface" ti agar-aramat',
 'right-editusercssjs' => 'Urnosen  dagiti CSS ken JavaScript a papeles dagiti sabsabali nga agar-aramat',
 'right-editusercss' => 'Urnosen  dagiti CSS a papeles dagiti sabsabali nga agar-aramat',
 'right-edituserjs' => 'Urnosen  dagiti JavaScript a papeles dagiti sabsabali nga agar-aramat',
+'right-editmyusercss' => 'Urnosem dagiti bukodmo a papeles ti CSS ti agar-aramat',
+'right-editmyuserjs' => 'Urnosem dagiti bukodmo a papeles ti JavaScript ti agar-aramat',
+'right-viewmywatchlist' => 'Kitaem ti bukodmo a listaan ti banbantayan',
+'right-editmywatchlist' => 'Urnosem ti bukodmo a listaan ti agar-aramat. Laglagipen nga adda dagiti tignay a mangnayonto pay laeng ti pampanid urayno awan daytoy a karbengan.',
+'right-viewmyprivateinfo' => 'Kitaem ti bukodmo a pribado a datos (kasla ti esurat a pagtaengan, pudno a nagan)',
+'right-editmyprivateinfo' => 'Urnosem ti bukodmo a pribado a datos (kasla ti esurat a pagtaengan, pudno a nagan)',
+'right-editmyoptions' => 'Urnosem dagiti bukodmo a kakaykayatan',
 'right-rollback' => 'Pardasan nga ipasubli dagiti inurnos ti naudi nga agar-aramat a nagurnos ti kaskasta a panid',
 'right-markbotedits' => 'Markaan dagiti napasubli nga urnos a kas inurnos dagiti bot',
 'right-noratelimit' => 'Saan a maaringan kadagiti patingga a pagpataray',
@@ -1405,12 +1465,17 @@ Ti esurat a pagtaengam ket saan a maipakita kadagiti agar-aramat nga agkontak ke
 'action-userrights-interwiki' => 'urnosen dagiti karbengan ti agar-aramat iti agar-aramat kadagiti sabsabali a wiki',
 'action-siteadmin' => 'kandaduan wenno lukatan daytoy "database"',
 'action-sendemail' => 'agipatulod kadagiti esurat',
+'action-editmywatchlist' => 'urnosem ti bukodmo a listaan ti banbantayan',
+'action-viewmywatchlist' => 'kitaem ti bukodmo a listaan ti banbantayan',
+'action-viewmyprivateinfo' => 'kitaem ti bukodmo a pribado a pakaammo',
+'action-editmyprivateinfo' => 'urnosem ti bukodmo a pribado a pakaammo',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|sinukatan|dagiti sinukatan}}',
 'recentchanges' => 'Kaudian a balbaliw',
 'recentchanges-legend' => 'Pagpilian kadagiti kaudian a balbaliw',
 'recentchanges-summary' => 'Siputen dagiti kinaudi a panagbalbaliw ti wiki iti daytoy a panid.',
+'recentchanges-noresult' => 'Awan ti nasuksukatan iti las-ud ti naited a paset ti panawen a kapada dagitoy a kriteria.',
 'recentchanges-feed-description' => 'Siputen dagiti kinaudi a panagbalbaliw ti wiki iti daytoy a pakan.',
 'recentchanges-label-newpage' => 'Daytoy a panag-urnos ket nakapartuat ti baro a panid',
 'recentchanges-label-minor' => 'Daytoy ket bassit a panag-urnos',
@@ -1447,7 +1512,6 @@ Ti esurat a pagtaengam ket saan a maipakita kadagiti agar-aramat nga agkontak ke
 'recentchangeslinked-feed' => 'Mainaig a sinukatan',
 'recentchangeslinked-toolbox' => 'Mainaig a sinuksukatan',
 'recentchangeslinked-title' => 'Sinukatan a mainaig iti "$1"',
-'recentchangeslinked-noresult' => 'Awan ti sinukatan kadagiti naisilpo a pampanid kabayatan ti naited a panawen.',
 'recentchangeslinked-summary' => "Listaan daytoy dagiti kaudian a sinukatan kadagiti pampanid a nakasilpo manipud iti maysa a napili a panid (wenno kadagiti kameng ti maysa a nainagan a kategoria).
 Dagiti panid iti [[Special:Watchlist|listaan ti bambantayam]] ket '''napuskol'''.",
 'recentchangeslinked-page' => 'Nagan ti panid:',
@@ -1459,7 +1523,7 @@ Dagiti panid iti [[Special:Watchlist|listaan ti bambantayam]] ket '''napuskol'''
 'reuploaddesc' => 'Ukasen ti pag-ipan ken agsubli idiay kabuklan ti pag-ipan',
 'upload-tryagain' => 'Ited ti napabaro a panagipalawag ti papeles',
 'uploadnologin' => 'Saan a nakastrek',
-'uploadnologintext' => 'Masapul a [[Special:UserLogin|nakaserrekka]] tapno makaipanka iti papeles.',
+'uploadnologintext' => 'Nasken ti $1 tapno makaipanka iti papeles.',
 'upload_directory_missing' => 'Ti direktorio ti pag-ipan ($1) ket napukaw ken saan a mabalin nga aramiden iti webserver.',
 'upload_directory_read_only' => 'Ti pagipanan a direktoria ($1) ket saan a masuratan ti webserver.',
 'uploaderror' => 'Biddut ti panang-ipan',
@@ -1872,7 +1936,7 @@ Tattan ket naibaw-ing idiay [[$2]].',
 'ncategories' => '$1 {{PLURAL:$1|a kategoria|kadagiti kategoria}}',
 'ninterwikis' => '$1 {{PLURAL:$1|interwiki|dagiti interwiki}}',
 'nlinks' => '$1 {{PLURAL:$1|a panilpo|kadagiti panilpo}}',
-'nmembers' => '$1 {{PLURAL:$1|a kameng|kadagiti kameng}}',
+'nmembers' => '$1 {{PLURAL:$1|a kameng|kamkameng}}',
 'nrevisions' => '$1 {{PLURAL:$1|a panagbalbaliw|kadagiti panagbalbaliw}}',
 'nviews' => '$1 {{PLURAL:$1|a panangkita|kadagiti panangkita}}',
 'nimagelinks' => 'Inusar idiay $1 {{PLURAL:$1|a panid|a pampanid}}',
@@ -2093,10 +2157,9 @@ Dagiti masakbayan a panagsukat iti daytoy a panid ken dagiti mainaig a tungtunga
 'unwatchthispage' => 'Isardeng a bantayan daytoy a panid',
 'notanarticle' => 'Saan a naglaon a panid',
 'notvisiblerev' => 'Ti panagbalbaliw ti sabali nga agar-aramat ket naikkaten',
-'watchnochange' => 'Awan dagiti binambantayam ket naurnos dita panawen a naipakita.',
 'watchlist-details' => '{{PLURAL:$1|$1 panid|$1 dagiti panid}} a bambantayam, saan a mairaman dagiti panid ti tungtongan.',
-'wlheader-enotif' => 'Napakabaelan ti pakiammo ti esurat.',
-'wlheader-showupdated' => "Dagiti panid a nasukatan manipud ti kinaudi a panagsarungkarmo ket naipakita iti '''napuskol'''",
+'wlheader-enotif' => 'Napakabaelan ti panangipakaammo ti esurat.',
+'wlheader-showupdated' => "Dagiti panid a nasukatanen manipud ti kinaudi a panagsarungkarmo ket naipakita iti '''napuskol'''",
 'watchmethod-recent' => 'kitkitaen dagiti kinaudi nga inurnos kadagiti bambantayan a panid',
 'watchmethod-list' => 'kitkitaen dagiti bambantayan a panid kadagiti kinaudi nga inurnos',
 'watchlistcontains' => 'Ti listaan ti bambantayam ket aglaon ti $1 {{PLURAL:$1|a panid|a pampanid}}.',
@@ -2204,7 +2267,7 @@ adda sabali a naurnos wenno nagipasubli ti panid.
 Ti kinaudi a panagurnos ti daytoy a panid ket babaen ni [[User:$3|$3]] ([[User talk:$3|tungtungan]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "Ti panagurnos a pakabuklan idi ket: \"''\$1''\".",
 'revertpage' => 'Insubli ti panagurnos babaen ni [[Special:Contributions/$2|$2]] ([[User talk:$2|tungtungan]]), naisubli ti kinaudi a panagbaliw babaen ni [[User:$1|$1]]',
-'revertpage-nouser' => 'Naisubli ti panagurnos babaen ni (naikkat ti nagan ti agar-aramat) ti kinaudi a panagbaliw babaen ni [[User:$1|$1]]',
+'revertpage-nouser' => 'Naisubli ti panagurnos babaen ti nailemmeng nga agar-aramat iti kinaudi a panagbalbaliw babaen ni [[User:$1|$1]]',
 'rollback-success' => 'Naibabawi dagiti panag-urnos babaen ni $1;
 naisubli manen ti naudi a panagbaliw babaen ni $2.',
 
@@ -2352,7 +2415,7 @@ $1',
 'mycontris' => 'Naar-aramid',
 'contribsub2' => 'Para iti $1 ($2)',
 'nocontribs' => 'Awan ti nasarakan a nasukatan a kapada daytoy a kita.',
-'uctop' => '(rabaw)',
+'uctop' => '(agdama)',
 'month' => 'Manipud iti bulan ti (ken nasapsapa pay):',
 'year' => 'Manipud iti tawen (ken nasapsapa pay):',
 
@@ -2518,6 +2581,7 @@ Pangngaasi ta kontakem ti agit-ited ti serbisio ti Internet mo wenno teknikal a
 'sorbsreason' => 'Ti IP a pagtaengam ket nakalista a kasla "nalukatan a proxy" idiay DNSBL nga inusar ti {{SITNAME}}.',
 'sorbs_create_account_reason' => 'Ti IP a pagtaengam ket nakalista a kasla "nalukatan proxy" idiay DNSBL nga inusar ti {{SITNAME}}.
 Saanka a makaaramid ti pakabilangan',
+'xffblockreason' => 'Ti maysa nga IP a pagtaengan nga adda iti X-Forwarded-For header, mabalin a kukuam wenno ti pannakbagi a server nga us-usarem, ket naserraan. Ti kasisigud a rason ti pannakaserra idi ket: $1',
 'cant-block-while-blocked' => 'Saanmo a maserraan dagiti sabali nga agar-aramat no naserraanka met.',
 'cant-see-hidden-user' => 'Ti agar-aramat a kayatmo a serraan ket naserraan ken nailemmeng.
 Ket awan met ti karbengam nga agilemming ti agar-aramat, saan mo a makita wenno mabaliwan ti serra ti agar-aramat.',
@@ -2684,6 +2748,8 @@ Pangngaasi a bisitaen ti [//www.mediawiki.org/wiki/Localisation Lokalisasion ti
 'thumbnail-more' => 'Padakkelen',
 'filemissing' => 'Mapukpukaw ti papeles',
 'thumbnail_error' => 'Biddut ti panagaramid ti bassit nga imahen: $1',
+'thumbnail_error_remote' => 'Biddut a mensahe manipud ti $1: 
+$2',
 'djvu_page_error' => 'Ti DjVu a panid ket saan a nasakup',
 'djvu_no_xml' => 'Saan a naala ti XML iti DjVu a papeles',
 'thumbnail-temp-create' => 'Saan a makaaramid ti temporario a bassit a papeles',
@@ -2980,11 +3046,25 @@ No usarem daytoy, baka makompromiso ti sistema.",
 'minutes' => '{{PLURAL:$1|$1 minuto|$1 minutos}}',
 'hours' => '{{PLURAL:$1|$1 oras$1 oras}}',
 'days' => '{{PLURAL:$1|$1 aldaw|$1 al-aldaw}}',
+'weeks' => '{{PLURAL:$1|$1 a lawas|$1 a law-lawas}}',
 'months' => '{{PLURAL:$1|$1 a bulan|$1 a bulbulan}}',
 'years' => '{{PLURAL:$1|$1 a tawen|$1 a tawtawen}}',
 'ago' => '$1 nagtapos',
 'just-now' => 'tatta laeng',
 
+# Human-readable timestamps
+'hours-ago' => '$1 nga {{PLURAL:$1|oras|or-oras}} idi ugma',
+'minutes-ago' => '$1 a {{PLURAL:$1|minuto|minutos}} idi ugma',
+'seconds-ago' => '$1 a {{PLURAL:$1|segundo|seg-segundo}} idi ugma',
+'monday-at' => 'Lunes idiay $1',
+'tuesday-at' => 'Martes idiay $1',
+'wednesday-at' => 'Mierkoles idiay $1',
+'thursday-at' => 'Huebes idiay $1',
+'friday-at' => 'Biernes idiay $1',
+'saturday-at' => 'Sabado idiay $1',
+'sunday-at' => 'Dominggo idiay $1',
+'yesterday-at' => 'Idi kalman idiay $1',
+
 # Bad image list
 'bad_image_list' => 'Ti kinabuklan ket kas iti sumaganad:
 
@@ -3582,7 +3662,6 @@ Mabalinmo pay nga [[Special:EditWatchlist|usaren ti dati a panagurnos]].',
 'version-other' => 'Sabali',
 'version-mediahandlers' => 'Agtengtengngel kadagiti midia',
 'version-hooks' => 'Dagiti kawit',
-'version-extension-functions' => 'Dagiti pagpaatiddog a pamay-an',
 'version-parser-extensiontags' => 'Dagiti parser a pagpaatiddog nga etiketa',
 'version-parser-function-hooks' => 'Parser a pamay-an dagiti kawit',
 'version-hook-name' => 'Nagan ti kawit',
@@ -3604,6 +3683,18 @@ Naka-awatka koman ti [{{SERVER}}{{SCRIPTPATH}}/COPYING kopia iti GNU Sapasap a
 'version-entrypoints-header-entrypoint' => 'Pagserrekan a puntos',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
+'redirect' => 'Ibaw-ing babaen ti papeles, agar-aramat, wenno ID ti panagbaliw',
+'redirect-legend' => 'Ibaw-ing iti papeles wenno panid',
+'redirect-summary' => 'Daytoy nga espesial a panid ket maibaw-ing iti papeles (iti nagan ti papeles), ti panid (iti ID ti panagbaliw), wenno ti panid ti agar-aramat (iti numeriko nga ID ti agar-aramat).',
+'redirect-submit' => 'Inkan',
+'redirect-lookup' => 'Kitaen:',
+'redirect-value' => 'Pateg:',
+'redirect-user' => 'ID ti agar-aramat',
+'redirect-revision' => 'Panagbaliw ti panid',
+'redirect-file' => 'Nagan ti papeles',
+'redirect-not-exists' => 'Saan a nabirukan ti pateg',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Agbiruk kadagiti duplikado a papeles',
 'fileduplicatesearch-summary' => 'Agbiruk kadagiti duplikado a papeles a naibasta kadagiti "hash" a kuwenta.',
@@ -3652,6 +3743,7 @@ Naka-awatka koman ti [{{SERVER}}{{SCRIPTPATH}}/COPYING kopia iti GNU Sapasap a
 'tags' => 'Umisu a sukatan dagiti etiketa',
 'tag-filter' => '[[Special:Tags|Ti etiketa]] a sagat:',
 'tag-filter-submit' => 'Sagat',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Etiketa|Et-etiketa}}]]: $2)',
 'tags-title' => 'Dagiti etiketa',
 'tags-intro' => 'Daytoy a panid ket ilistana dagiti etiketa nga usaren ti software nga agmarka ti panag-urnos, ken dagiti kayatda a saoen.',
 'tags-tag' => 'Nagan ti etiketa',
@@ -3694,6 +3786,9 @@ Daytoy a pagsaadan ket agdadama ti teknikal a pagrigrigatan.',
 'htmlform-submit' => 'Ited',
 'htmlform-reset' => 'Ibabawi ti sinukatan',
 'htmlform-selectorother-other' => 'Sabali',
+'htmlform-no' => 'Saan',
+'htmlform-yes' => 'Wen',
+'htmlform-chosen-placeholder' => 'Agpili ti pagpilian',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 adda ti suporta ti napno a testo ti panagbiruk',
@@ -3719,7 +3814,7 @@ Daytoy a pagsaadan ket agdadama ti teknikal a pagrigrigatan.',
 'revdelete-uname-unhid' => 'saan a nailemmeng ti nagan ti agar-aramat',
 'revdelete-restricted' => 'naipakat dagiti pammarit kadagiti administrador',
 'revdelete-unrestricted' => 'naikkat dagiti pammarit para kadagiti administrador',
-'logentry-move-move' => 'Ni $1 ket {{GENDER:$2|inyalisna}}ti panid $3 idiay $4',
+'logentry-move-move' => 'Ni $1 ket {{GENDER:$2|inyalisna}} ti panid $3 idiay $4',
 'logentry-move-move-noredirect' => 'Ni $1 ket {{GENDER:$2|inyalisna}} ti panid ti $3 idiay $4 a saan a nangibati ti baw-ing',
 'logentry-move-move_redir' => 'Ni $1 ket {{GENDER:$2|inyalisna}} ti panid ti $3 idiay $4 nga adda iti maysa a baw-ing',
 'logentry-move-move_redir-noredirect' => 'Ni $1 ket {{GENDER:$2|inyalisna}} ti panid ti $3 idiay $4 nga adda iti maysa a baw-ing a saan a nangibati ti baw-ing',
index 7e69b43..c92c57d 100644 (file)
@@ -246,7 +246,6 @@ $messages = array(
 'disclaimers' => 'Бокъонах юхавалаp',
 'disclaimerpage' => 'Project:Бокъонах юхавалаp',
 'edithelp' => 'Хувцама куцтохкам',
-'edithelppage' => 'Help:ГӀалатнийсдар',
 'helppage' => 'Help:Чулоацам',
 'mainpage' => 'Кертера оагӀув',
 'mainpage-description' => 'Кертера оагӀув',
@@ -521,7 +520,6 @@ $messages = array(
 'viewprevnext' => '($1 {{int:pipe-separator}} $2) ($3) хьажа',
 'searchmenu-exists' => "'''Укх масса-хьахьоадайтамач ер оаг|ув \"[[:\$1]]\" я'''",
 'searchmenu-new' => "'''Укх \"[[:\$1]]\" масса-хьахоадайтамач оагIув хьае!'''",
-'searchhelp-url' => 'Help:Чулоацам',
 'searchprofile-articles' => 'Гомлен оагIувнаш',
 'searchprofile-project' => 'Дагарлеи хьахоадайтами оагIувнаш',
 'searchprofile-images' => 'Медифаг',
@@ -674,7 +672,6 @@ $messages = array(
 'recentchangeslinked-feed' => 'Гаргалон хувцамаш',
 'recentchangeslinked-toolbox' => 'Гаргалон хувцамаш',
 'recentchangeslinked-title' => '$1ца хьалаьца хувцамаш',
-'recentchangeslinked-noresult' => 'Укх заманашка гаргарон оагIувнаш тIа хувцамаш хиннаяц.',
 'recentchangeslinked-summary' => "Ер, Iинк яь йола оагIув (е укх цатегачу чуйоагIараш), дукха ха йоацаш хьийца оагIувнашкий дагарле я.
 [[Special:Watchlist|Шун теркама дагарленашках]] чуйоагIа оагIувнаш '''белгалаяь я'''.",
 'recentchangeslinked-page' => 'ОагIува цIи',
index c2b2f50..cefe164 100644 (file)
@@ -9,6 +9,7 @@
  *
  * @author Albonio
  * @author Artomo
+ * @author Geitost
  * @author Kaganer
  * @author Lakaoso
  * @author Malafaya
@@ -224,7 +225,7 @@ $messages = array(
 'cancel' => 'Anular',
 'moredotdotdot' => 'Plus...',
 'mypage' => 'Mea pagino',
-'mytalk' => 'Mea diskuti',
+'mytalk' => 'Diskuti',
 'anontalk' => 'Diskuto relatant ad ica IP',
 'navigation' => 'Navigado',
 'and' => '&#32;ed',
@@ -316,7 +317,6 @@ $messages = array(
 'disclaimers' => 'Legala averto',
 'disclaimerpage' => 'Project:Generala des-agnosko',
 'edithelp' => 'Helpo pri redaktado',
-'edithelppage' => 'Help:Redaktado',
 'helppage' => 'Help:Helpo',
 'mainpage' => 'Frontispico',
 'mainpage-description' => 'Frontispico',
@@ -422,7 +422,7 @@ Atencez ke kelka pagini posible duras montresar semblante ke vu ne ekirus, til v
 'logout' => 'Ekirar',
 'userlogout' => 'Ekirar',
 'notloggedin' => 'Sesiono ne esas iniciata',
-'nologin' => "Ka vu ne havas konto? '''$1'''.",
+'nologin' => 'Ka vu ne havas konto? $1.',
 'nologinlink' => 'Kreez konto',
 'createaccount' => 'Krear nova konto',
 'gotaccount' => "Ka vu ja havas konto? '''$1'''.",
@@ -474,6 +474,9 @@ Voluntez enirar altrafoye pos recevar ol.',
 # Special:PasswordReset
 'passwordreset-username' => 'Uzantonomo:',
 
+# Special:ChangeEmail
+'changeemail' => 'Chanjar e-adreso*',
+
 # Edit page toolbar
 'bold_sample' => 'Dika literi',
 'bold_tip' => 'Dika literi',
@@ -596,6 +599,7 @@ La efaco-registraro e movo-registraro dil pagino provizesar sequante por refero.
 Surskriburo: '''({{int:cur}})''' = diferi kun l'aktuala versiono,
 '''({{int:last}})''' = diferi kun l'antea versiono,
 '''{{int:minoreditletter}}''' = mikra redakto.",
+'history-show-deleted' => 'Nur efacita',
 'histfirst' => 'Maxim anciena',
 'histlast' => 'Maxim nova',
 'historysize' => '({{PLURAL:$1|1 bicoko|$1 bicoki}})',
@@ -648,9 +652,10 @@ Surskriburo: '''({{int:cur}})''' = diferi kun l'aktuala versiono,
 'notextmatches' => 'Nula paginala texto fitas',
 'prevn' => 'antea {{PLURAL:$1|$1}}',
 'nextn' => 'sequanta {{PLURAL:$1|$1}}',
+'prevn-title' => 'Antea $1 {{PLURAL:$1|rezultajo|rezultaji}}',
+'nextn-title' => 'Sequanta $1 {{PLURAL:$1|rezultajo|rezultaji}}',
 'viewprevnext' => 'Vidar ($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-new' => "'''Kreez la pagino \"[[:\$1]]\" in ca wiki!'''",
-'searchhelp-url' => 'Help:Helpo',
 'searchprofile-articles' => 'Temala pagini',
 'searchprofile-project' => 'Helpo',
 'searchprofile-images' => "''Media''",
@@ -669,6 +674,7 @@ Surskriburo: '''({{int:cur}})''' = diferi kun l'aktuala versiono,
 'searchall' => 'omna',
 'showingresults' => "Montrante infre {{PLURAL:$1|'''1''' rezulto|'''$1''' rezulti}}, qui komencas kun numero #'''$2'''.",
 'showingresultsnum' => "Montrante infre {{PLURAL:$3|'''1''' rezulto|'''$3''' rezulti}}, qui komencas kun numero #'''$2'''.",
+'showingresultsheader' => "{{PLURAL:$5|Rezultajo '''$1''' ek '''$3'''|Rezultaji '''$1 - $2''' ek '''$3'''}} di '''$4'''",
 'nonefound' => "'''Atencez''': Nespecigite, nur ula nomari esas serchata.
 Probez prefixizar vua demando kun ''all:'' por serchar omna kontenajo (inkluzanta debato-pagini, shabloni, edc.), od uzar la dezirata nomaro kom prefixo.",
 'powersearch' => 'Avancita sercho',
@@ -683,7 +689,7 @@ Probez prefixizar vua demando kun ''all:'' por serchar omna kontenajo (inkluzant
 
 # Preferences page
 'preferences' => 'Preferaji',
-'mypreferences' => 'Mea preferaji',
+'mypreferences' => 'Preferaji',
 'prefs-edits' => 'Nombro di redaktaji:',
 'prefsnologin' => 'Vu ne eniris',
 'prefsnologintext' => 'Vu mustas <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} enirir]</span> por establisar la preferaji.',
@@ -889,7 +895,7 @@ Volutez kontrolar <strong>[[:$1]]</strong> se vu ne esas certa pri chanjar olu.
 'filehist-dimensions' => 'Dimensioni',
 'filehist-filesize' => 'Grandeso dil arkivo',
 'filehist-comment' => 'Komento',
-'imagelinks' => 'Ligili al arkivo',
+'imagelinks' => 'Uzadi di arkivo',
 'linkstoimage' => 'La {{PLURAL:$1|pagino|$1 pagini}} infre ligas a ca arkivo:',
 'nolinkstoimage' => 'Nula pagino ligas a ca pagino.',
 'sharedupload' => 'Ca arkivo esas de $1 e posible esas uzata da altra projekti.',
@@ -970,7 +976,7 @@ Volutez kontrolar <strong>[[:$1]]</strong> se vu ne esas certa pri chanjar olu.
 'protectedtitles' => 'Protektita tituli',
 'listusers' => 'Uzanto-listo',
 'usereditcount' => '$1 {{PLURAL:$1|redakto|redakti}}',
-'usercreated' => 'Kreita ye $1 $2',
+'usercreated' => '{{GENDER:$3|Kreita}} ye $1 $2',
 'newpages' => 'Nova pagini',
 'newpages-username' => 'Uzantonomo:',
 'ancientpages' => 'Maxim anciena artikli',
@@ -1046,8 +1052,8 @@ Volutez kontrolar <strong>[[:$1]]</strong> se vu ne esas certa pri chanjar olu.
 'emailsenttext' => 'Vua e-posto sendesis.',
 
 # Watchlist
-'watchlist' => 'Mea surveyaji',
-'mywatchlist' => 'Mea surveyaji',
+'watchlist' => 'Surveyaji',
+'mywatchlist' => 'Surveyaji',
 'nowatchlist' => 'Vu ne havas objekti en vua listo di surveyaji.',
 'watchnologin' => 'Vu ne startis sesiono',
 'watchnologintext' => 'Vu mustas [[Special:UserLogin|enirir]] por modifikar vua surveyaji.',
@@ -1060,7 +1066,6 @@ Volutez kontrolar <strong>[[:$1]]</strong> se vu ne esas certa pri chanjar olu.
 'unwatch' => 'Ne plus surveyar',
 'unwatchthispage' => 'Ne plus surveyar',
 'notanarticle' => 'Ne esas artiklo',
-'watchnochange' => 'Nula artikli ek vua listo di surveyaji redaktesis dum la tempo montrata.',
 'watchmethod-recent' => 'serchante recenta chanji en la listo di surveyaji',
 'watchmethod-list' => 'serchante recenta redakti en la listo di surveyaji',
 'watchlistcontains' => 'Vua listo di surveyaji kontenas $1 {{PLURAL:$1|pagino|pagini}}.',
@@ -1165,12 +1170,12 @@ restauris ad lasta versiono da $2.',
 'blanknamespace' => '(Chefa)',
 
 # Contributions
-'contributions' => 'Kontributadi dil uzanto',
+'contributions' => 'Kontributadi dil {{GENDER:$1|uzanto}}',
 'contributions-title' => 'Uzanto-kontributadi di $1',
-'mycontris' => 'Mea kontributadi',
+'mycontris' => 'Kontributadi',
 'contribsub2' => 'Pro $1 ($2)',
 'nocontribs' => 'Ne trovesis chanji qui fitez ita kriterii.',
-'uctop' => ' (lasta modifiko)',
+'uctop' => '(aktuala)',
 'month' => 'De monato (e plu frue):',
 'year' => 'De yaro (e plu frue):',
 
@@ -1178,6 +1183,7 @@ restauris ad lasta versiono da $2.',
 'sp-contributions-newbies-sub' => 'Di nova konti',
 'sp-contributions-blocklog' => 'blokusar-registraro',
 'sp-contributions-deleted' => 'efacita uzanto-kontributadi',
+'sp-contributions-logs' => 'registrari',
 'sp-contributions-talk' => 'diskutez',
 'sp-contributions-search' => 'Serchar kontributadi',
 'sp-contributions-username' => 'IP-adreso od uzantonomo:',
@@ -1191,13 +1197,14 @@ restauris ad lasta versiono da $2.',
 'nolinkshere' => "Nula pagino ligas ad '''[[:$1]]'''.",
 'isredirect' => 'ridirektanta pagino',
 'istemplate' => 'inkluzo',
-'isimage' => 'imajo-ligilo',
+'isimage' => 'arkivo-ligilo',
 'whatlinkshere-prev' => '{{PLURAL:$1|antea|antea $1}}',
 'whatlinkshere-next' => '{{PLURAL:$1|sequanta|sequanta $1}}',
 'whatlinkshere-links' => '← ligili',
 'whatlinkshere-hideredirs' => '$1 ridirektili',
+'whatlinkshere-hidetrans' => '$1 inkluzi',
 'whatlinkshere-hidelinks' => '$1 ligili',
-'whatlinkshere-hideimages' => '$1 ligili di imaji',
+'whatlinkshere-hideimages' => '$1 ligili di arkivi',
 'whatlinkshere-filters' => 'Filtrili',
 
 # Block/unblock
@@ -1229,7 +1236,7 @@ Videz [[Special:BlockList|IP-blokuslisto]] por revizor blokusadi.',
 'unblockip' => 'Desblokusar uzanto',
 'unblockiptext' => 'Uzez la sequanta formularo por restaurar la skribo-aceso ad IP-adreso qua blokusesis antee.',
 'ipusubmit' => 'Desblokusar',
-'ipblocklist' => 'Blokusita IP-adresi ed uzantonomi',
+'ipblocklist' => 'Blokusita uzanti',
 'ipblocklist-submit' => 'Serchar',
 'blocklink' => 'blokusar',
 'unblocklink' => 'desblokusar',
index 6ef6b04..b9476d1 100644 (file)
@@ -10,6 +10,7 @@
  * @author Bjarki S
  * @author Cessator
  * @author Friðrik Bragi Dýrfjörð
+ * @author Geitost
  * @author Gott wisst
  * @author Jóna Þórunn
  * @author Kaganer
@@ -315,10 +316,10 @@ $messages = array(
 'october' => 'október',
 'november' => 'nóvember',
 'december' => 'desember',
-'january-gen' => 'janúars',
-'february-gen' => 'febrúars',
+'january-gen' => 'janúar',
+'february-gen' => 'febrúar',
 'march-gen' => 'mars',
-'april-gen' => 'apríls',
+'april-gen' => 'apríl',
 'may-gen' => 'maí',
 'june-gen' => 'júní',
 'july-gen' => 'júlí',
@@ -434,6 +435,7 @@ $messages = array(
 'create-this-page' => 'Skapa þessari síðu',
 'delete' => 'Eyða',
 'deletethispage' => 'Eyða þessari síðu',
+'undeletethispage' => 'Endurvekja þessa síðu',
 'undelete_short' => 'Endurvekja {{PLURAL:$1|eina breytingu|$1 breytingar}}',
 'viewdeleted_short' => 'Skoða {{PLURAL:$1|eina eydda breytingu|$1 eyddar breytingar}}',
 'protect' => 'Vernda',
@@ -487,7 +489,6 @@ $1',
 'disclaimers' => 'Fyrirvarar',
 'disclaimerpage' => 'Project:Almennur fyrirvari',
 'edithelp' => 'Breytingarhjálp',
-'edithelppage' => 'Help:Breyta',
 'helppage' => 'Help:Efnisyfirlit',
 'mainpage' => 'Forsíða',
 'mainpage-description' => 'Forsíða',
@@ -634,6 +635,8 @@ $2',
 'namespaceprotected' => "Þú hefur ekki leyfi til að breyta síðum í '''$1''' nafnrýminu.",
 'customcssprotected' => 'Þú hefur ekki leyfi að breyta þessari CSS-umbrotsíðu, því hún hefur notendastillingar annars notanda.',
 'customjsprotected' => 'Þú hefur ekki leyfi til að breyta þessari JavaScript síðu, því hún hefur notendastillingar annars notanda.',
+'mycustomcssprotected' => 'Þú hefur ekki leyfi til þess að breyta þessari CSS-síðu.',
+'mycustomjsprotected' => 'Þú hefur ekki leyfi til þess að breyta þessari JavaScript-síðu.',
 'ns-specialprotected' => 'Kerfissíðum er ekki hægt að breyta.',
 'titleprotected' => "Þessi titill hefur verið verndaður fyrir sköpun af [[User:$1|$1]].
 Ástæðan sem gefin var ''$2''.",
@@ -659,9 +662,18 @@ Athugaðu að sumar síður kunna að birtast líkt og þú sért ennþá skrá
 'welcomecreation-msg' => 'Aðgangurinn þinn hefur verið búinn til.
 Ekki gleyma að breyta [[Special:Preferences|{{SITENAME}} stillingunum]] þínum.',
 'yourname' => 'Notandanafn:',
+'userlogin-yourname' => 'Notandanafn',
+'userlogin-yourname-ph' => 'Skrifaðu inn notendanafnið þitt',
 'yourpassword' => 'Lykilorð:',
+'userlogin-yourpassword' => 'Lykilorð',
+'userlogin-yourpassword-ph' => 'Skrifaðu niður lykilorðið þitt',
+'createacct-yourpassword-ph' => 'Skrifaðu niður lykilorð',
 'yourpasswordagain' => 'Endurrita lykilorð:',
+'createacct-yourpasswordagain' => 'Staðfestu lykilorðið',
+'createacct-yourpasswordagain-ph' => 'Sláðu inn lykilorðið aftur',
 'remembermypassword' => 'Muna innskráninguna mína í þessum vafra (í allt að $1 {{PLURAL:$1|dag|daga}})',
+'userlogin-remembermypassword' => 'Muna innskráningu mína',
+'userlogin-signwithsecure' => 'Nota örugga tengingu',
 'securelogin-stick-https' => 'Halda öllum samskiptum áfram yfir HTTPS eftir að þú skráir þig inn',
 'yourdomainname' => 'Þitt lén:',
 'password-change-forbidden' => 'Þú getur ekki breytt lykilorðum á þessum wiki.',
@@ -674,18 +686,38 @@ Ekki gleyma að breyta [[Special:Preferences|{{SITENAME}} stillingunum]] þínum
 'logout' => 'Útskráning',
 'userlogout' => 'Útskrá',
 'notloggedin' => 'Ekki innskráð(ur)',
-'nologin' => "Ekki með aðgang? '''$1'''.",
+'userlogin-noaccount' => 'Áttu ekki aðgang?',
+'userlogin-joinproject' => 'Sameina {{SITENAME}}',
+'nologin' => 'Ekki með aðgang? $1.',
 'nologinlink' => 'Stofnaðu aðgang',
 'createaccount' => 'Nýskrá',
 'gotaccount' => "Nú þegar með notandanafn? '''$1'''.",
 'gotaccountlink' => 'Skráðu þig inn',
 'userlogin-resetlink' => 'Gleymdir þú notendaupplýsingunum þínum?',
+'userlogin-resetpassword-link' => 'Endursetja lykilorð',
+'helplogin-url' => 'Help:Innskráning',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hjálp við innskráningu]]',
+'createacct-join' => 'Sláðu inn þínar upplýsingar fyrir neðan.',
+'createacct-emailrequired' => 'Netfang',
+'createacct-emailoptional' => 'Netfang (valfrjálst)',
+'createacct-email-ph' => 'Skrifaðu niður netfangið þitt',
 'createaccountmail' => 'Nota handahófsvalið bráðabirgðalykilorð og senda það á netfangið sem er tilgreint hér fyrir neðan',
+'createacct-realname' => 'Raunverulegt nafn (valfrjálst)',
 'createaccountreason' => 'Ástæða:',
+'createacct-reason' => 'Ástæða',
+'createacct-reason-ph' => 'Afhverju ertu að búa til annan aðgang',
+'createacct-captcha' => 'Öryggis athugun',
+'createacct-imgcaptcha-ph' => 'Sláðu inn textann að ofan',
+'createacct-submit' => 'Búa til aðganginn',
+'createacct-benefit-heading' => '{{SITENAME}} er skrifuð af fólki eins og þér.',
+'createacct-benefit-body1' => '{{PLURAL:$1|breyting|breytingar}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|síða|síður}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|nýlegur stuðningsaðili|nýlegir stuðningsaðilar}}',
 'badretype' => 'Lykilorðin sem þú skrifaðir eru ekki eins.',
 'userexists' => 'Þetta notandanafn er þegar í notkun.
 Vinsamlegast veldu þér annað.',
 'loginerror' => 'Innskráningarvilla',
+'createacct-error' => 'Stofnun aðgangs mistókst',
 'createaccounterror' => 'Gat ekki búið til notanda: $1',
 'nocookiesnew' => 'Innskráningin var búin til, en þú ert ekki skráð(ur) inn.
 {{SITENAME}} notar vefkökur til að skrá inn notendur.
@@ -738,7 +770,7 @@ Gjörðu svo vel og settu inn netfang á gildu formi eða tæmdu reitinn.',
 'cannotchangeemail' => 'Ekki er hægt að breyta netföngum notenda á þessum wiki',
 'emaildisabled' => 'Þessi síða getur ekki sent tölvupóst.',
 'accountcreated' => 'Aðgangur búinn til',
-'accountcreatedtext' => 'Notandaaðgangur fyrir $1 er tilbúinn.',
+'accountcreatedtext' => 'Notandaaðgangurinn fyrir [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|spjall]]) hefur verið búinn til.',
 'createaccount-title' => 'Innskráningagerð á {{SITENAME}}',
 'createaccount-text' => 'Einhver bjó til aðgang fyrir netfangið þitt á {{SITENAME}} ($4) undir nafninu „$2“, með lykilorðið „$3“.
 Þú ættir að skrá þig inn og breyta lykilorðinu núna.
@@ -774,13 +806,14 @@ Til að klára að skrá þig inn, verður þú að endurstilla lykilorðið hé
 'resetpass-wrong-oldpass' => 'Vitlaust tímabundið eða núverandi lykilorð.
 Þú gætir þegar verið búin/n að breyta lykilorðinu eða sótt um nýtt tímabundið lykilorð',
 'resetpass-temp-password' => 'Tímabundið lykilorð:',
+'resetpass-abort-generic' => 'Breytingum á lykilorðum hefur verið hætt með viðbót.',
 
 # Special:PasswordReset
 'passwordreset' => 'Endurstilla lykilorð',
-'passwordreset-text' => 'Fylltu út þennan reit til að endursetja lykilorðið þitt.',
+'passwordreset-text-one' => 'Útfylltu þetta eyðublað til þess að endursetja lykilorðið.',
 'passwordreset-legend' => 'Endurstilla lykilorð',
 'passwordreset-disabled' => 'Lokað hefur verið fyrir að endurstilla lykilorð á þessum wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Sláðu inn einn hluta gagnanna hér fyrir neðan}}',
+'passwordreset-emaildisabled' => 'Tölvupósteiginleikar hafa verið gerðir óvirkir á þessum wiki.',
 'passwordreset-username' => 'Notandanafn:',
 'passwordreset-domain' => 'Lén:',
 'passwordreset-capture' => 'Sjá áminninguna sem var send í tölvupósti?',
@@ -1015,6 +1048,7 @@ Engin skýring gefin.',
 Svo virðist sem henni hafi verið eytt.',
 'edit-conflict' => 'Breytingaárekstur.',
 'edit-no-change' => 'Breyting þín var hunsuð, því engin breyting var á textanum.',
+'postedit-confirmation' => 'Breytingin þín var vistuð.',
 'edit-already-exists' => 'Gat ekki skapað nýja síðu.
 Hún er nú þegar til.',
 'defaultmessagetext' => 'Sjálfgefinn skilaboða texti',
@@ -1266,7 +1300,6 @@ Frekari upplýsingar eru í [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENA
 'searchmenu-legend' => 'Leitarvalmöguleikar',
 'searchmenu-exists' => "'''Það er síða að nafni „[[:$1]]“ á þessum wiki'''",
 'searchmenu-new' => "'''Skapaðu síðuna \"[[:\$1]]\" á þessum wiki!'''",
-'searchhelp-url' => 'Help:Efnisyfirlit',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Leita að síðum með þessu forskeyti]]',
 'searchprofile-articles' => 'Efnissíður',
 'searchprofile-project' => 'Hjálpar- og verkefnasíður',
@@ -1309,6 +1342,7 @@ Frekari upplýsingar eru í [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENA
 'searchdisabled' => '{{SITENAME}}-leit er óvirk.
 Þú getur leitað í genum Google á meðan.
 Athugaðu að skrár þeirra yfir {{SITENAME}}-efni kunna að vera úreltar.',
+'search-error' => 'Villa kom upp við leit að: $1',
 
 # Preferences page
 'preferences' => 'Stillingar',
@@ -1342,7 +1376,6 @@ Athugaðu að skrár þeirra yfir {{SITENAME}}-efni kunna að vera úreltar.',
 'resetprefs' => 'Endurstilla valmöguleika',
 'restoreprefs' => 'Endurheimta allar stillingar',
 'prefs-editing' => 'Breytingarflipinn',
-'prefs-edit-boxsize' => 'Stærð breytingagluggans.',
 'rows' => 'Raðir',
 'columns' => 'Dálkar',
 'searchresultshead' => 'Leit',
@@ -1353,8 +1386,6 @@ Athugaðu að skrár þeirra yfir {{SITENAME}}-efni kunna að vera úreltar.',
 'recentchangesdays-max' => '(hámark $1 {{PLURAL:$1|dag|daga}})',
 'recentchangescount' => 'Fjöldi síðna:',
 'prefs-help-recentchangescount' => 'Taldar eru með nýlegar breytingar, breytingarskrár og aðgerðarskrár.',
-'prefs-help-watchlist-token' => 'Með því að fylla út þennan reit með leynilegum lykli býr til RSS-efnistraum fyrir vaktlistann þinn. Allir sem vita hver lykillinn er geta lesið vaktlistann þinn, svo veldu öruggt eigindargildi.
-Hér er gildi sem var valið af handahófi sem þú getur notað: $1',
 'savedprefs' => 'Stillingarnar þínar hafa verið vistaðar.',
 'timezonelegend' => 'Tímabelti:',
 'localtime' => 'Staðartími:',
@@ -1385,7 +1416,6 @@ Hér er gildi sem var valið af handahófi sem þú getur notað: $1',
 'prefs-reset-intro' => 'Þessi síða er til að endurstilla stillingarnar til sjálfgefnum gildum.
 Ekki er hægt að taka þessa breytingu til baka.',
 'prefs-emailconfirm-label' => 'Staðfesting netfangs:',
-'prefs-textboxsize' => 'Stærð breytingarglugga',
 'youremail' => 'Netfang:',
 'username' => '{{Gender:$1|Notandanafn}}:',
 'uid' => 'Raðnúmer {{GENDER:$1|notanda}}:',
@@ -1522,6 +1552,8 @@ Tölvupóstfang þitt er ekki gefið upp þegar aðrir notendur hafa samband vi
 'right-editusercssjs' => 'Breyta CSS- og JS-skrám annarra',
 'right-editusercss' => 'Breyta CSS-skrám annarra',
 'right-edituserjs' => 'Breyta JS-skrám annarra',
+'right-editmyusercss' => 'Breyta þinni eigin CSS-notandaskrá',
+'right-editmyuserjs' => 'Breyta þinni eigin JavaScript-notandaskrá',
 'right-rollback' => 'Taka snögglega aftur breytingar síðasta notanda sem breytti síðunni',
 'right-markbotedits' => 'Merkja endurtektar breytingar sem vélmennabreytingar',
 'right-noratelimit' => 'Sneiða hjá takmörkunum',
@@ -1625,7 +1657,6 @@ Tölvupóstfang þitt er ekki gefið upp þegar aðrir notendur hafa samband vi
 'recentchangeslinked-feed' => 'Skyldar breytingar',
 'recentchangeslinked-toolbox' => 'Skyldar breytingar',
 'recentchangeslinked-title' => 'Breytingar tengdar "$1"',
-'recentchangeslinked-noresult' => 'Engar breytingar á tengdum síðum á þessu tímabili.',
 'recentchangeslinked-summary' => "Þetta er listi yfir nýlega gerðar breytingar á síðum sem tengt er í frá tilgreindri síðu (eða á meðlimum úr tilgreindum flokki).
 Síður á [[Special:Watchlist|vaktlistanum þínum]] eru '''feitletraðar'''.",
 'recentchangeslinked-page' => 'Nafn á síða:',
@@ -1760,7 +1791,7 @@ $1',
 'upload-proto-error-text' => 'Upphlöðun frá öðrum vefþjón þarfnast vefslóðar sem byrjar á <code>http://</code> eða <code>ftp://</code>.',
 'upload-file-error' => 'Innri villa',
 'upload-file-error-text' => 'Innri villa: Gat ekki búið til tímabundna skrá á vefþjóni.
-Vinsamlegast hafðu samband við [[Special:ListUsers/sysop|möppudýr]].',
+Vinsamlegast hafðu samband við [[Special:ListUsers/sysop|stjórnanda]].',
 'upload-misc-error' => 'Óþekkt innhleðsluvilla',
 'upload-misc-error-text' => 'Upphal þitt mistókst vegna óþekktrar villu.
 Athugaðu hvort vefslóðin sé rétt og aðgengileg og að því loknu reyndu aftur.
@@ -2016,6 +2047,8 @@ Leitarstrengurinn á að vera á þessu formi: efnistag/myndasnið, t.d. <code>i
 Laga ætti tenglanna og láta þá vísa á rétta síðu.<br />
 Farið er með síðu sem aðgreiningarsíðu ef að hún inniheldur snið sem vísað er í frá [[MediaWiki:Disambiguationspage]]",
 
+'pageswithprop-submit' => 'Áfram',
+
 'doubleredirects' => 'Tvöfaldar tilvísanir',
 'doubleredirectstext' => 'Þessi síða er listi yfir skrár sem eru tilvísanir á aðrar tilvísanir.
 Hver lína inniheldur tengla á fyrstu og aðra tilvísun auk þeirrar síðu sem seinni tilvísunin beinist að, sem er oftast sú síða sem allar tilvísanirnar eiga að benda á.
@@ -2254,7 +2287,7 @@ Póstfangið sem þú tilgreindir í [[Special:Preferences|stillingunum þínum]
 'watchnologintext' => 'Þú verður að vera [[Special:UserLogin|innskáð(ur)]] til að geta breytt vaktlistanum.',
 'addwatch' => 'Bæta á vaktlistann',
 'addedwatchtext' => 'Síðunni „[[:$1]]“ hefur verið bætt á [[Special:Watchlist|vaktlistann]] þinn.
-Frekari breytingar á henni eða spallsíðu hennar munu verða sýndar þar.',
+Frekari breytingar á henni eða spjallsíðu hennar munu verða sýndar þar.',
 'removewatch' => 'Fjarlægja af vaktlistanum',
 'removedwatchtext' => 'Síðan „[[:$1]]“ hefur verið fjarlægð af [[Special:Watchlist|vaktlistanum þínum]].',
 'watch' => 'Vakta',
@@ -2263,7 +2296,6 @@ Frekari breytingar á henni eða spallsíðu hennar munu verða sýndar þar.',
 'unwatchthispage' => 'Hætta vöktun',
 'notanarticle' => 'Ekki efnisleg síða',
 'notvisiblerev' => 'Síðasta breyting eftir annan notanda hefur verið eytt.',
-'watchnochange' => 'Engri síðu á vaktlistanum þínum hefur verið breytt á tilgreindu tímabili.',
 'watchlist-details' => '{{PLURAL:$1|$1 síða|$1 síður}} á vaktlistanum þínum, fyrir utan spjallsíður.',
 'wlheader-enotif' => 'Tilkynning með tölvupósti er virk.',
 'wlheader-showupdated' => "Síðum sem hefur verið breytt síðan þú skoðaðir þær síðast eru '''feitletraðar'''.",
@@ -2520,7 +2552,7 @@ $1',
 'mycontris' => 'Framlög',
 'contribsub2' => 'Eftir $1 ($2)',
 'nocontribs' => 'Engar breytingar fundnar sem passa við þessa viðmiðun.',
-'uctop' => '(nýjast)',
+'uctop' => '(núverandi)',
 'month' => 'Frá mánuðinum (og fyrr):',
 'year' => 'Frá árinu (og fyrr):',
 
@@ -2845,6 +2877,8 @@ Vinsamlegast heimsæktu [//www.mediawiki.org/wiki/Localisation MediaWiki-staðf
 'thumbnail-more' => 'Stækka',
 'filemissing' => 'Skrá vantar',
 'thumbnail_error' => 'Villa við gerð smámyndar: $1',
+'thumbnail_error_remote' => 'Villumelding frá $1:
+$2',
 'djvu_page_error' => 'DjVu-blaðsíða er utan marka',
 'djvu_no_xml' => 'Mistókst að sækja XML-gögn fyrir DjVu skrá',
 'thumbnail-temp-create' => 'Mistókst að búa til tímabundna smámynd.',
@@ -3149,11 +3183,25 @@ Vinsamlegast reyndu aftur.',
 'minutes' => '{{PLURAL:$1|einni mínútu|$1 mínútum}}',
 'hours' => '{{PLURAL:$1|einum klukkutíma|$1 klukkutímum}}',
 'days' => '{{PLURAL:$1|einum degi|$1 dögum}}',
+'weeks' => '{{PLURAL:$1|$1 vika|$1 vikur}}',
 'months' => '{{PLURAL:$1|$1 mánuði|$1 mánuðum}}',
 'years' => '{{PLURAL:$1|$1 ári|$1 árum}}',
 'ago' => '$1 síðan',
 'just-now' => 'akkúrat núna',
 
+# Human-readable timestamps
+'hours-ago' => '$1 {{PLURAL:$1|klukkutíma|klukkutímum}} síðan',
+'minutes-ago' => '$1 {{PLURAL:$1|mínútu|mínútum}} síðan',
+'seconds-ago' => '$1 {{PLURAL:$1|sekúndu|sekúndum}} síðan',
+'monday-at' => 'Mánudag klukkan $1',
+'tuesday-at' => 'Þriðjudag klukkan $1',
+'wednesday-at' => 'Miðvikudag klukkan $1',
+'thursday-at' => 'Fimmtudag klukkan $1',
+'friday-at' => 'Föstudag klukkan $1',
+'saturday-at' => 'Laugardag klukkan $1',
+'sunday-at' => 'Sunnudag klukkan $1',
+'yesterday-at' => 'Í gær klukkan $1',
+
 # Bad image list
 'bad_image_list' => 'Sniðið er eftirfarandi:
 
@@ -3702,7 +3750,6 @@ einn titil í hverri línu.
 'version-skins' => 'Þemu',
 'version-other' => 'Aðrar',
 'version-mediahandlers' => 'Rekill margmiðlunarskráa',
-'version-extension-functions' => 'Aðgerðir smáforrita',
 'version-parser-extensiontags' => 'Þáttuð smáforrita tög',
 'version-hook-subscribedby' => 'Í áskrift af',
 'version-version' => '(Útgáfa $1)',
@@ -3719,6 +3766,14 @@ MediaWiki er útgefin í þeirri von að hann sé gagnlegur, en ÁN ALLRAR ÁBYR
 'version-software-version' => 'Útgáfa',
 'version-entrypoints-header-url' => 'vefslóð',
 
+# Special:Redirect
+'redirect-submit' => 'Áfram',
+'redirect-lookup' => 'Fletta upp:',
+'redirect-value' => 'Gildi:',
+'redirect-user' => 'Notandanúmer',
+'redirect-file' => 'Skráarnafn',
+'redirect-not-exists' => 'Gildi fannst ekki',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Leita að afriti',
 'fileduplicatesearch-summary' => 'Leita að afritum sem hafa sama hakk gildi.',
@@ -3808,6 +3863,9 @@ Tæknilegir örðugleikar eru á þessari síðu.',
 'htmlform-submit' => 'Senda',
 'htmlform-reset' => 'Taka aftur breytingu',
 'htmlform-selectorother-other' => 'Annað',
+'htmlform-no' => 'Nei',
+'htmlform-yes' => 'Já',
+'htmlform-chosen-placeholder' => 'Veldu valmöguleika',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 með fullum texta leitar stuðningi',
index 741edfc..cb76268 100644 (file)
@@ -28,6 +28,7 @@
  * @author F. Cosoleto
  * @author Felis
  * @author FollowTheMedia
+ * @author Geitost
  * @author Gianfranco
  * @author HalphaZ
  * @author Jasonbleinel
@@ -487,6 +488,7 @@ $messages = array(
 'create-this-page' => 'Crea questa pagina',
 'delete' => 'Cancella',
 'deletethispage' => 'Cancella questa pagina',
+'undeletethispage' => 'Recupera questa pagina',
 'undelete_short' => 'Recupera {{PLURAL:$1|una revisione|$1 revisioni}}',
 'viewdeleted_short' => 'Vedi {{PLURAL:$1|una modifica cancellata|$1 modifiche cancellate}}',
 'protect' => 'Proteggi',
@@ -540,7 +542,6 @@ $1',
 'disclaimers' => 'Avvertenze',
 'disclaimerpage' => 'Project:Avvertenze generali',
 'edithelp' => 'Guida',
-'edithelppage' => 'Help:Modifica',
 'helppage' => 'Help:Indice',
 'mainpage' => 'Pagina principale',
 'mainpage-description' => 'Pagina principale',
@@ -687,6 +688,10 @@ $2',
 'namespaceprotected' => "Non si dispone dei permessi necessari per modificare le pagine del namespace '''$1'''.",
 'customcssprotected' => 'Non si dispone dei permessi necessari alla modifica di questa pagina CSS, in quanto contiene le impostazioni personali di un altro utente.',
 'customjsprotected' => 'Non si dispone dei permessi necessari alla modifica di questa pagina JavaScript, in quanto contiene le impostazioni personali di un altro utente.',
+'mycustomcssprotected' => 'Non si dispone dei permessi necessari per modificare questa pagina CSS.',
+'mycustomjsprotected' => 'Non si dispone dei permessi necessari per modificare questa pagina JavaScript.',
+'myprivateinfoprotected' => 'Non si dispone dei permessi necessari per modificare i propri dati personali.',
+'mypreferencesprotected' => 'Non si dispone dei permessi necessari per modificare le proprie preferenze.',
 'ns-specialprotected' => 'Non è possibile modificare le pagine speciali.',
 'titleprotected' => "La creazione di una pagina con questo titolo è stata bloccata da [[User:$1|$1]].
 La motivazione è la seguente: ''$2''.",
@@ -714,6 +719,7 @@ Non dimenticare di personalizzare le [[Special:Preferences|preferenze di {{SITEN
 'yourname' => 'Nome utente:',
 'userlogin-yourname' => 'Nome utente',
 'userlogin-yourname-ph' => 'Inserisci il tuo nome utente',
+'createacct-another-username-ph' => 'Inserisci il nome utente',
 'yourpassword' => 'Password:',
 'userlogin-yourpassword' => 'Password',
 'userlogin-yourpassword-ph' => 'Inserisci la tua password',
@@ -740,7 +746,7 @@ Non dimenticare di personalizzare le [[Special:Preferences|preferenze di {{SITEN
 'userlogin-joinproject' => 'Registrati su {{SITENAME}}',
 'nologin' => 'Non hai ancora un accesso? $1.',
 'nologinlink' => 'Registrati',
-'createaccount' => "Crea un'utenza",
+'createaccount' => 'Registrati',
 'gotaccount' => 'Hai già un accesso? $1.',
 'gotaccountlink' => 'Entra',
 'userlogin-resetlink' => 'Hai dimenticato i tuoi dati di accesso?',
@@ -748,9 +754,11 @@ Non dimenticare di personalizzare le [[Special:Preferences|preferenze di {{SITEN
 'helplogin-url' => 'Help:Login',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Aiuto con il login]]',
 'createacct-join' => 'Inserisci i tuoi dati qui sotto.',
+'createacct-another-join' => 'Inserisci le informazioni per il nuovo account qui sotto.',
 'createacct-emailrequired' => 'Indirizzo email',
 'createacct-emailoptional' => 'Indirizzo di posta elettronica (opzionale)',
 'createacct-email-ph' => 'Inserisci il tuo indirizzo email',
+'createacct-another-email-ph' => "Inserisci l'indirizzo email",
 'createaccountmail' => "Usa una password casuale temporanea e inviala all'indirizzo e-mail specificato sotto",
 'createacct-realname' => 'Nome reale (opzionale)',
 'createaccountreason' => 'Motivo:',
@@ -759,6 +767,7 @@ Non dimenticare di personalizzare le [[Special:Preferences|preferenze di {{SITEN
 'createacct-captcha' => 'Controllo di sicurezza',
 'createacct-imgcaptcha-ph' => 'Inserisci il testo che vedi sopra',
 'createacct-submit' => 'Crea la tua utenza',
+'createacct-another-submit' => 'Crea un altro account',
 'createacct-benefit-heading' => '{{SITENAME}} è fatta da persone come te.',
 'createacct-benefit-body1' => '{{PLURAL:$1|modifica|modifiche}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|pagina|pagine}}',
@@ -813,7 +822,7 @@ Non verranno inviati messaggi email per le funzioni elencate di seguito.",
 'cannotchangeemail' => 'Gli indirizzi e-mail non possono essere modificati in questo wiki.',
 'emaildisabled' => 'Questo sito non può inviare messaggi di posta elettronica.',
 'accountcreated' => 'Accesso creato',
-'accountcreatedtext' => "È stato creato un accesso per l'utente $1.",
+'accountcreatedtext' => "È stata creata un'utenza per [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|msg]]).",
 'createaccount-title' => 'Creazione di un accesso a {{SITENAME}}',
 'createaccount-text' => 'Qualcuno ha creato un accesso a {{SITENAME}} ($4) a nome di $2, associato a questo indirizzo di posta elettronica. La password per l\'utente "$2" è impostata a "$3".
 È opportuno eseguire un accesso quanto prima e cambiare la password immediatamente.
@@ -852,11 +861,11 @@ La password potrebbe essere stata già cambiata, oppure potrebbe essere stata ri
 
 # Special:PasswordReset
 'passwordreset' => 'Reimposta password',
-'passwordreset-text' => 'Compila questo modulo per reimpostare la tua password.',
+'passwordreset-text-one' => 'Compila questo modulo per reimpostare la tua password.',
+'passwordreset-text-many' => '{{PLURAL:$1|Compila uno dei campi per reimpostare la tua password.}}',
 'passwordreset-legend' => 'Reimposta password',
 'passwordreset-disabled' => 'La reimpostazione delle password è stata disabilitata su questa wiki',
 'passwordreset-emaildisabled' => 'Le funzionalità di posta elettronica sono state disabilitate su questa wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Immetti uno dei dati richiesti qui sotto}}',
 'passwordreset-username' => 'Nome utente:',
 'passwordreset-domain' => 'Dominio:',
 'passwordreset-capture' => 'Visualizzare il contenuto del messaggio e-mail?',
@@ -897,6 +906,19 @@ Password temporanea: $2',
 'changeemail-submit' => 'Modifica e-mail',
 'changeemail-cancel' => 'Annulla',
 
+# Special:ResetTokens
+'resettokens' => 'Reset token',
+'resettokens-text' => "È possibile reimpostare i token che permettono l'accesso a determinati dati privati associati al tuo account qui.
+
+Dovresti farlo se li hai accidentalmente condivisi con qualcuno o se il tuo account è stato compromesso.",
+'resettokens-no-tokens' => 'Non ci sono token da reimpostare.',
+'resettokens-legend' => 'Reset token',
+'resettokens-tokens' => 'Token:',
+'resettokens-token-label' => '$1 (valore attuale: $2)',
+'resettokens-watchlist-token' => 'Token per il feed web dei tuoi osservati speciali',
+'resettokens-done' => 'Token reimpostati.',
+'resettokens-resetbutton' => 'Reset token selezionati',
+
 # Edit page toolbar
 'bold_sample' => 'Grassetto',
 'bold_tip' => 'Grassetto',
@@ -981,7 +1003,8 @@ La password per questo nuovo account può essere modificata all'accesso nella pa
 'newarticletext' => "Il collegamento appena seguito corrisponde ad una pagina non ancora esistente.
 Se vuoi creare la pagina ora, basta cominciare a scrivere il testo nella casella qui sotto (vedi la [[{{MediaWiki:Helppage}}|pagina di aiuto]] per maggiori informazioni).
 Se il collegamento è stato aperto per errore, è sufficiente fare clic sul pulsante '''Indietro''' del proprio browser.",
-'anontalkpagetext' => "----''Questa è la pagina di discussione di un utente anonimo, che non ha ancora creato un accesso o comunque non lo usa. Per identificarlo è quindi necessario usare il numero del suo indirizzo IP. Gli indirizzi IP possono però essere condivisi da più utenti. Se sei un utente anonimo e ritieni che i commenti presenti in questa pagina non si riferiscano a te, [[Special:UserLogin/signup|crea un nuovo accesso]] o [[Special:UserLogin|entra con quello che già hai]] per evitare di essere confuso con altri utenti anonimi in futuro.''",
+'anontalkpagetext' => "----
+''Questa è la pagina di discussione di un utente anonimo, che non ha ancora creato un'utenza o comunque non la sta usando. Per identificarlo è quindi necessario usare il numero del suo indirizzo IP. Gli indirizzi IP possono però essere condivisi da più utenti. Se sei un utente anonimo e ritieni che i commenti presenti in questa pagina non si riferiscano a te, [[Special:UserLogin/signup|crea una nuova utenza]] o [[Special:UserLogin|entra con quella che già hai]] per evitare di essere confuso con altri utenti anonimi in futuro.''",
 'noarticletext' => 'In questo momento la pagina richiesta è vuota. È possibile [[Special:Search/{{PAGENAME}}|cercare questo titolo]] nelle altre pagine del sito, <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} cercare nei registri correlati] oppure [{{fullurl:{{FULLPAGENAME}}|action=edit}} modificare la pagina ora]</span>.',
 'noarticletext-nopermission' => 'In questo momento la pagina richiesta è vuota. È possibile [[Special:Search/{{PAGENAME}}|cercare questo titolo]] nelle altre pagine del sito o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} cercare nei registri correlati]</span>, ma non hai i permessi per creare questa pagina.',
 'missing-revision' => 'La revisione #$1 della pagina "{{PAGENAME}}" non esiste.
@@ -1068,7 +1091,7 @@ L'ultimo elemento del registro è riportato di seguito per informazione:",
 'nocreate-loggedin' => 'Non si dispone dei permessi necessari a creare nuove pagine.',
 'sectioneditnotsupported-title' => 'Modifica delle sezioni non supportata',
 'sectioneditnotsupported-text' => 'La modifica delle sezioni non è supportata in questa pagina.',
-'permissionserrors' => 'Errore nei permessi',
+'permissionserrors' => 'Permessi non sufficienti',
 'permissionserrorstext' => "Non si dispone dei permessi necessari ad eseguire l'azione richiesta, per {{PLURAL:$1|il seguente motivo|i seguenti motivi}}:",
 'permissionserrorstext-withaction' => 'Non si dispone dei permessi necessari per $2, per {{PLURAL:$1|il seguente motivo|i seguenti motivi}}:',
 'recreate-moveddeleted-warn' => "'''Attenzione: si sta per ricreare una pagina già cancellata in passato.'''
@@ -1083,14 +1106,15 @@ Non è stata restituita alcuna spiegazione.",
 Sembra che sia stata cancellata.',
 'edit-conflict' => 'Conflitto di edizione.',
 'edit-no-change' => 'La modifica è stata ignorata poiché non sono stati apportati cambiamenti al testo.',
+'postedit-confirmation' => 'La modifica è stata salvata.',
 'edit-already-exists' => 'Impossibile creare una nuova pagina.
 Esiste già.',
 'defaultmessagetext' => 'Testo predefinito',
 'content-failed-to-parse' => 'Impossibile analizzare $2 per il modello $1: $3',
 'invalid-content-data' => 'Dati contenuti non validi',
 'content-not-allowed-here' => 'Contenuto in "$1" non consentito nella pagine [[$2]]',
-'editwarning-warning' => 'Lasciare questa pagina potrebbe costarti la perdita di tutti i cambiamenti effettuati.
-Se sei loggato, puoi disattivare questo avviso nella sezione "{{int:prefs-editing}}" delle tue preferenze.',
+'editwarning-warning' => 'Lasciare questa pagina potrebbe causare la perdita di tutte le modifiche fatte.
+Se hai effettuato l\'accesso, puoi disattivare questo avviso nella sezione "Casella di modifica" delle tue preferenze.',
 
 # Content models
 'content-model-wikitext' => 'wikitesto',
@@ -1125,6 +1149,7 @@ Controlla le differenze mostrate sotto fra le due versioni per essere certo che
 'undo-failure' => 'Impossibile annullare la modifica a causa di un conflitto con modifiche intermedie.',
 'undo-norev' => 'La modifica non può essere annullata perché non esiste o è stata cancellata.',
 'undo-summary' => 'Annullata la modifica $1 di [[Special:Contributions/$2|$2]] ([[User talk:$2|discussione]])',
+'undo-summary-username-hidden' => 'Annullata la modifica $1 di un utente nascosto',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Impossibile registrare un utente',
@@ -1150,10 +1175,10 @@ La motivazione del blocco fornita da $3 è la seguente: ''$2''",
 'histlegend' => "Confronto tra versioni: selezionare le caselle corrispondenti alle versioni desiderate e premere Invio o il pulsante in basso.
 
 Legenda: '''({{int:cur}})''' = differenze con la versione attuale, '''({{int:last}})''' = differenze con la versione precedente, '''{{int:minoreditletter}}''' = modifica minore",
-'history-fieldset-title' => 'Scorri nella cronologia',
+'history-fieldset-title' => 'Naviga nella cronologia',
 'history-show-deleted' => 'Solo quelli cancellati',
-'histfirst' => 'Prima',
-'histlast' => 'Ultima',
+'histfirst' => 'prima',
+'histlast' => 'ultima',
 'historysize' => '({{PLURAL:$1|1 byte|$1 byte}})',
 'historyempty' => '(vuota)',
 
@@ -1298,6 +1323,7 @@ Vedi l'[[Special:BlockList|elenco dei blocchi]] per l'elenco dei bandi e dei blo
 'compareselectedversions' => 'Confronta le versioni selezionate',
 'showhideselectedversions' => 'Mostra/nascondi versioni selezionate',
 'editundo' => 'annulla',
+'diff-empty' => '(Nessuna differenza)',
 'diff-multi' => '({{PLURAL:$1|Una revisione intermedia|$1 revisioni intermedie}} di {{PLURAL:$2|un utente|$2 utenti}} non {{PLURAL:$1|mostrata|mostrate}})',
 'diff-multi-manyusers' => '({{PLURAL:$1|Una revisione intermedia|$1 revisioni intermedie}} di oltre $2 {{PLURAL:$2|utente|utenti}} non {{PLURAL:$1|mostrata|mostrate}})',
 'difference-missing-revision' => '{{PLURAL:$2|Una versione|$2 versioni}} di questa differenza ($1) {{PLURAL:$2|non è stata trovata|non sono state trovate}}.
@@ -1325,7 +1351,6 @@ I dettagli possono essere trovati nel [{{fullurl:{{#Special:Log}}/delete|page={{
 'searchmenu-legend' => 'Opzioni di ricerca',
 'searchmenu-exists' => "'''Sul sito esiste una pagina il cui nome è \"[[:\$1]]\"'''",
 'searchmenu-new' => 'Crea la pagina "[[:$1]]" su questo sito',
-'searchhelp-url' => 'Help:Indice',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Visualizza le pagine con questo prefisso]]',
 'searchprofile-articles' => 'Pagine di contenuti',
 'searchprofile-project' => 'Pagine di aiuto e relative al progetto',
@@ -1400,7 +1425,6 @@ I dettagli possono essere trovati nel [{{fullurl:{{#Special:Log}}/delete|page={{
 'resetprefs' => 'Reimposta le preferenze',
 'restoreprefs' => 'Ripristina le impostazioni predefinite',
 'prefs-editing' => 'Casella di modifica',
-'prefs-edit-boxsize' => 'Dimensioni della finestra di modifica.',
 'rows' => 'Righe:',
 'columns' => 'Colonne:',
 'searchresultshead' => 'Ricerca',
@@ -1411,7 +1435,8 @@ I dettagli possono essere trovati nel [{{fullurl:{{#Special:Log}}/delete|page={{
 'recentchangesdays-max' => '(massimo $1 {{PLURAL:$1|giorno|giorni}})',
 'recentchangescount' => 'Numero di modifiche da mostrare per default:',
 'prefs-help-recentchangescount' => 'Comprende ultime modifiche, cronologie e registri.',
-'prefs-help-watchlist-token' => "Compilando questo campo con una chiave segreta verrà generato un feed RSS per i propri osservati speciali. Chiunque conosca la chiave in questo campo potrà leggere gli osservati speciali, quindi assicurasi di inserire un valore sicuro. Qui c'è un valore generato casualmente che si può usare: $1",
+'prefs-help-watchlist-token2' => 'Questa è la chiave segreta per il feed web dei tuoi osservati speciali.
+Chiunque la conosce sarà in grado di leggere i tuoi osservati speciali, per cui non condividerla. [[Special:ResetTokens|Clicca qui se hai bisogno di reimpostarla]].',
 'savedprefs' => 'Le preferenze sono state salvate.',
 'timezonelegend' => 'Fuso orario:',
 'localtime' => 'Ora locale:',
@@ -1442,7 +1467,6 @@ I dettagli possono essere trovati nel [{{fullurl:{{#Special:Log}}/delete|page={{
 'prefs-reset-intro' => "È possibile usare questa pagina per reimpostare le proprie preferenze a quelle predefinite del sito.
 L'operazione non può essere annullata.",
 'prefs-emailconfirm-label' => "Conferma dell'e-mail:",
-'prefs-textboxsize' => 'Dimensione della finestra di modifica',
 'youremail' => 'Indirizzo e-mail:',
 'username' => '{{GENDER:$1|Nome utente}}:',
 'uid' => '{{GENDER:$1|ID utente}}:',
@@ -1472,7 +1496,9 @@ Il tuo indirizzo non viene rivelato quando gli altri utenti ti contattano.',
 'prefs-signature' => 'Firma',
 'prefs-dateformat' => 'Formato data',
 'prefs-timeoffset' => 'Ore di differenza',
-'prefs-advancedediting' => 'Opzioni avanzate',
+'prefs-advancedediting' => 'Generale',
+'prefs-editor' => 'Editore',
+'prefs-preview' => 'Anteprima',
 'prefs-advancedrc' => 'Opzioni avanzate',
 'prefs-advancedrendering' => 'Opzioni avanzate',
 'prefs-advancedsearchoptions' => 'Opzioni avanzate',
@@ -1508,6 +1534,7 @@ Il tuo indirizzo non viene rivelato quando gli altri utenti ti contattano.',
 'userrights-changeable-col' => 'Gruppi modificabili',
 'userrights-unchangeable-col' => 'Gruppi non modificabili',
 'userrights-conflict' => 'Conflitto di diritti utente! Applica nuovamente le tue modifiche.',
+'userrights-removed-self' => 'Hai rimosso con successo i tuoi diritti. E quindi, non sarai più in grado di accedere a questa pagina.',
 
 # Groups
 'group' => 'Gruppo:',
@@ -1517,7 +1544,7 @@ Il tuo indirizzo non viene rivelato quando gli altri utenti ti contattano.',
 'group-sysop' => 'Amministratori',
 'group-bureaucrat' => 'Burocrati',
 'group-suppress' => 'Oversight',
-'group-all' => 'Utenti',
+'group-all' => '(tutti)',
 
 'group-user-member' => '{{GENDER:$1|utente}}',
 'group-autoconfirmed-member' => '{{GENDER:$1|utente autoconvalidato|utente autoconvalidata|utente autoconvalidato/a}}',
@@ -1540,10 +1567,10 @@ Il tuo indirizzo non viene rivelato quando gli altri utenti ti contattano.',
 'right-createtalk' => 'Crea pagine di discussione',
 'right-createaccount' => 'Crea nuovi account utente',
 'right-minoredit' => 'Segna le modifiche come minori',
-'right-move' => 'Sposta pagine',
+'right-move' => 'Sposta le pagine',
 'right-move-subpages' => 'Sposta le pagine insieme alle relative sottopagine',
 'right-move-rootuserpages' => 'Sposta le pagine principali degli utenti',
-'right-movefile' => 'Sposta file',
+'right-movefile' => 'Sposta file',
 'right-suppressredirect' => 'Non crea un redirect automatico quando si sposta una pagina',
 'right-upload' => 'Carica file',
 'right-reupload' => 'Sovrascrive un file esistente',
@@ -1551,7 +1578,7 @@ Il tuo indirizzo non viene rivelato quando gli altri utenti ti contattano.',
 'right-reupload-shared' => "Sovrascrive localmente file presenti nell'archivio condiviso",
 'right-upload_by_url' => 'Carica un file da un indirizzo URL',
 'right-purge' => 'Pulisce la cache del sito senza conferma',
-'right-autoconfirmed' => 'Modifica le pagine semiprotette',
+'right-autoconfirmed' => 'Non soggetto al limite di azioni per IP',
 'right-bot' => 'Da trattare come processo automatico',
 'right-nominornewtalk' => "Fa sì che le modifiche minori alle pagine di discussione non facciano comparire l'avviso di nuovo messaggio",
 'right-apihighlimits' => 'Usa limiti più alti per le interrogazioni API',
@@ -1570,14 +1597,22 @@ Il tuo indirizzo non viene rivelato quando gli altri utenti ti contattano.',
 'right-blockemail' => 'Impedisce a un utente di inviare email',
 'right-hideuser' => 'Blocca un nome utente, nascondendolo al pubblico',
 'right-ipblock-exempt' => 'Ignora i blocchi degli IP, i blocchi automatici e i blocchi di range di IP',
-'right-proxyunbannable' => 'Scavalca i blocchi sui proxy',
+'right-proxyunbannable' => 'Ignora i blocchi automatici dei proxy',
 'right-unblockself' => 'Sblocca se stesso',
-'right-protect' => 'Cambia i livelli di protezione e modifica pagine protette',
-'right-editprotected' => 'Modifica pagine protette',
+'right-protect' => 'Cambia i livelli di protezione e modifica pagine protette ricorsivamente',
+'right-editprotected' => 'Modifica pagine protette con "{{int:protect-level-sysop}}"',
+'right-editsemiprotected' => 'Modifica pagine protette con "{{int:protect-level-autoconfirmed}}"',
 'right-editinterface' => "Modifica l'interfaccia utente",
 'right-editusercssjs' => 'Modifica i file CSS e JS di altri utenti',
 'right-editusercss' => 'Modifica i file CSS di altri utenti',
 'right-edituserjs' => 'Modifica i file JS di altri utenti',
+'right-editmyusercss' => 'Modifica il file CSS del proprio utente',
+'right-editmyuserjs' => 'Modifica il file JavaScript del proprio utente',
+'right-viewmywatchlist' => 'Visualizza i propri osservati speciali',
+'right-editmywatchlist' => 'Modifica i propri osservati speciali. Da notare che alcune azioni potranno ancora aggiungere pagine anche senza questo diritto.',
+'right-viewmyprivateinfo' => 'Visualizza i propri dati personali (ad esempio: indirizzo email, nome vero)',
+'right-editmyprivateinfo' => 'Modifica i propri dati personali (ad esempio: indirizzo email, nome vero)',
+'right-editmyoptions' => 'Modifica le proprie preferenze',
 'right-rollback' => "Annulla rapidamente le modifiche dell'ultimo utente che ha modificato una particolare pagina",
 'right-markbotedits' => 'Segna le modifiche soggette a rollback come effettuate da bot',
 'right-noratelimit' => 'Non soggetto al limite di azioni',
@@ -1623,7 +1658,7 @@ Il tuo indirizzo non viene rivelato quando gli altri utenti ti contattano.',
 'action-deleterevision' => 'cancellare questa versione',
 'action-deletedhistory' => 'visualizzare la cronologia cancellata di questa pagina',
 'action-browsearchive' => 'cercare pagine cancellate',
-'action-undelete' => 'recuperare custa pàgina',
+'action-undelete' => 'recuperare questa pagina',
 'action-suppressrevision' => 'rivedere e ripristinare le modifiche nascoste',
 'action-suppressionlog' => 'visionare questo log privato',
 'action-block' => 'bloccare questo utente in scrittura',
@@ -1639,12 +1674,17 @@ Il tuo indirizzo non viene rivelato quando gli altri utenti ti contattano.',
 'action-userrights-interwiki' => 'modificare i diritti degli utenti su altre wiki',
 'action-siteadmin' => 'bloccare e sbloccare il database',
 'action-sendemail' => 'inviare e-mail',
+'action-editmywatchlist' => 'modificare i propri osservati speciali',
+'action-viewmywatchlist' => 'vedere i propri osservati speciali',
+'action-viewmyprivateinfo' => 'vedere i propri dati personali',
+'action-editmyprivateinfo' => 'modificare i propri dati personali',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|modifica|modifiche}}',
 'recentchanges' => 'Ultime modifiche',
 'recentchanges-legend' => 'Opzioni ultime modifiche',
 'recentchanges-summary' => 'Questa pagina presenta le modifiche più recenti ai contenuti del sito.',
+'recentchanges-noresult' => 'Nessuna modifica durante il periodo inserito che soddisfa questi criteri.',
 'recentchanges-feed-description' => 'Questo feed riporta le modifiche più recenti ai contenuti del sito.',
 'recentchanges-label-newpage' => 'Questa modifica ha creato una nuova pagina',
 'recentchanges-label-minor' => 'Questa è una modifica minore',
@@ -1681,7 +1721,6 @@ Il tuo indirizzo non viene rivelato quando gli altri utenti ti contattano.',
 'recentchangeslinked-feed' => 'Modifiche correlate',
 'recentchangeslinked-toolbox' => 'Modifiche correlate',
 'recentchangeslinked-title' => 'Modifiche correlate a "$1"',
-'recentchangeslinked-noresult' => 'Nessuna modifica alle pagine collegate nel periodo specificato.',
 'recentchangeslinked-summary' => "Questa pagina speciale mostra le modifiche più recenti alle pagine collegate da quella specificata (o contenute nella categoria specificata).
 Le pagine contenute nella propria lista degli [[Special:Watchlist|Osservati speciali]] sono evidenziate in '''grassetto'''.",
 'recentchangeslinked-page' => 'Nome della pagina:',
@@ -1693,7 +1732,7 @@ Le pagine contenute nella propria lista degli [[Special:Watchlist|Osservati spec
 'reuploaddesc' => 'Torna al modulo per il caricamento.',
 'upload-tryagain' => 'Invia la descrizione del file modificato',
 'uploadnologin' => 'Accesso non effettuato',
-'uploadnologintext' => "Il caricamento dei file è consentito solo agli utenti registrati che hanno eseguito [[Special:UserLogin|l'accesso]] al sito.",
+'uploadnologintext' => 'Per caricare file è necessario $1.',
 'upload_directory_missing' => 'La directory di upload ($1) non esiste e non può essere creata dal server web.',
 'upload_directory_read_only' => 'Il server web non è in grado di scrivere nella directory di upload ($1).',
 'uploaderror' => 'Errore nel caricamento',
@@ -1814,9 +1853,9 @@ $1',
 'upload-proto-error' => 'Protocollo errato',
 'upload-proto-error-text' => "Per l'upload remoto è necessario specificare URL che iniziano con <code>http://</code> oppure <code>ftp://</code>.",
 'upload-file-error' => 'Errore interno',
-'upload-file-error-text' => 'Si è verificato un errore interno durante la creazione di un file temporaneo sul server. Contattare un [[Special:ListUsers/sysop|amministratore]] del sito.',
+'upload-file-error-text' => 'Si è verificato un errore interno durante la creazione di un file temporaneo sul server. Contattare un [[Special:ListUsers/sysop|amministratore]].',
 'upload-misc-error' => 'Errore di caricamento sconosciuto',
-'upload-misc-error-text' => 'Si è verificato un errore non identificato durante il caricamento del file. Verificare che la URL sia corretta e accessibile e provare di nuovo. Se il problema persiste, contattare un [[Special:ListUsers/sysop|amministratore]] del sito.',
+'upload-misc-error-text' => 'Si è verificato un errore non identificato durante il caricamento del file. Verificare che la URL sia corretta e accessibile e provare di nuovo. Se il problema persiste, contattare un [[Special:ListUsers/sysop|amministratore]].',
 'upload-too-many-redirects' => "L'URL conteneva troppi redirect",
 'upload-unknown-size' => 'Dimensione sconosciuta',
 'upload-http-error' => 'Si è verificato un errore HTTP: $1',
@@ -2245,7 +2284,8 @@ Vedi anche le [[Special:WantedCategories|categorie richieste]].',
 'listgrouprights' => 'Diritti del gruppo utente',
 'listgrouprights-summary' => "Di seguito sono elencati i gruppi utente definiti per questo sito, con i diritti d'accesso loro associati.
 Potrebbero esserci [[{{MediaWiki:Listgrouprights-helppage}}|ulteriori informazioni]] sui diritti individuali.",
-'listgrouprights-key' => '* <span class="listgrouprights-granted">Diritto assegnato</span>
+'listgrouprights-key' => 'Legenda:
+* <span class="listgrouprights-granted">Diritto assegnato</span>
 * <span class="listgrouprights-revoked">Diritto revocato</span>',
 'listgrouprights-group' => 'Gruppo',
 'listgrouprights-rights' => 'Diritti',
@@ -2316,7 +2356,6 @@ D\'ora in poi, le modifiche apportate alla pagina e alla sua discussione verrann
 'unwatchthispage' => 'Smetti di seguire',
 'notanarticle' => 'Questa pagina non è una voce',
 'notvisiblerev' => 'La revisione è stata cancellata',
-'watchnochange' => 'Nessuna delle pagine osservate è stata modificata nel periodo selezionato.',
 'watchlist-details' => 'La lista degli osservati speciali contiene {{PLURAL:$1|una pagina (e la rispettiva pagina di discussione)|$1 pagine (e le rispettive pagine di discussione)}}.',
 'wlheader-enotif' => 'La notifica via email è attiva.',
 'wlheader-showupdated' => "Le pagine che sono state modificate dopo l'ultima visita sono evidenziate in '''grassetto'''.",
@@ -2421,7 +2460,7 @@ Consultare il log delle $2 per un elenco delle pagine cancellate di recente.',
 La modifica più recente alla pagina è stata apportata da [[User:$3|$3]] ([[User talk:$3|discussione]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "L'oggetto della modifica era: \"''\$1''\".",
 'revertpage' => 'Annullate le modifiche di [[Special:Contributions/$2|$2]] ([[User talk:$2|discussione]]), riportata alla versione precedente di [[User:$1|$1]]',
-'revertpage-nouser' => 'Annullate le modifiche di (nome utente rimosso), riportata alla versione precedente di [[User:$1|$1]]',
+'revertpage-nouser' => 'Annullate le modifiche di un utente nascosto, riportata alla versione precedente di [[User:$1|$1]]',
 'rollback-success' => "Annullate le modifiche di $1; pagina riportata all'ultima versione di $2.",
 
 # Edit tokens
@@ -2458,7 +2497,7 @@ Le impostazioni correnti per la pagina sono '''$1''':",
 'protect-cascadeon' => 'Al momento questa pagina è bloccata perché viene inclusa {{PLURAL:$1|nella pagina indicata di seguito, per la quale|nelle pagine indicate di seguito, per le quali}} è attiva la protezione ricorsiva. È possibile modificare il livello di protezione individuale della pagina, ma le impostazioni derivanti dalla protezione ricorsiva non saranno modificate.',
 'protect-default' => 'Autorizza tutti gli utenti',
 'protect-fallback' => 'Consentito solo agli utenti con permesso "$1"',
-'protect-level-autoconfirmed' => 'Consentito solo agli utenti "autoconfermati"',
+'protect-level-autoconfirmed' => 'Consentito solo agli utenti autoconvalidati',
 'protect-level-sysop' => 'Consentito solo agli amministratori',
 'protect-summary-cascade' => 'ricorsiva',
 'protect-expiring' => 'scade il $2 alle $3 (UTC)',
@@ -2560,7 +2599,7 @@ $1',
 'mycontris' => 'contributi',
 'contribsub2' => 'Per $1 ($2)',
 'nocontribs' => 'Non sono state trovate modifiche che soddisfino i criteri di ricerca.',
-'uctop' => '(ultima per la pagina)',
+'uctop' => '(attuale)',
 'month' => 'Dal mese (e precedenti):',
 'year' => "Dall'anno (e precedenti):",
 
@@ -3821,7 +3860,6 @@ Si noti che è anche possibile [[Special:EditWatchlist|modificare la lista con l
 'version-other' => 'Altro',
 'version-mediahandlers' => 'Gestori di contenuti multimediali',
 'version-hooks' => 'Hook',
-'version-extension-functions' => 'Funzioni introdotte da estensioni',
 'version-parser-extensiontags' => 'Tag riconosciuti dal parser introdotti da estensioni',
 'version-parser-function-hooks' => 'Hook per funzioni del parser',
 'version-hook-name' => "Nome dell'hook",
@@ -3905,6 +3943,7 @@ Questo programma deve essere distribuito assieme ad [{{SERVER}}{{SCRIPTPATH}}/CO
 'tags' => 'Etichette di modifiche valide',
 'tag-filter' => 'Filtra per [[Special:Tags|etichetta]]:',
 'tag-filter-submit' => 'Filtra',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Etichetta|Etichette}}]]: $2)',
 'tags-title' => 'Etichette',
 'tags-intro' => 'Questa pagina elenca le etichette che il software potrebbe associare a una modifica e il loro significato.',
 'tags-tag' => "Nome dell'etichetta",
index cca59d4..0feed0a 100644 (file)
@@ -133,7 +133,7 @@ $specialPageAliases = array(
        'Deadendpages'              => array( '有効なページへのリンクがないページ', '行き止まりページ' ),
        'DeletedContributions'      => array( '削除された投稿記録', '削除された投稿履歴', '削除歴' ),
        'Disambiguations'           => array( '曖昧さ回避のページ', '曖昧さ回避' ),
-       'DoubleRedirects'           => array( '二重リダイレクト' ),
+       'DoubleRedirects'           => array( '二重リダイレクト', '二重転送' ),
        'EditWatchlist'             => array( 'ウォッチリストの編集', 'ウォッチリスト編集' ),
        'Emailuser'                 => array( 'メール送信', 'ウィキメール' ),
        'Export'                    => array( 'データ書き出し', 'データー書き出し', 'エクスポート' ),
@@ -568,6 +568,7 @@ $messages = array(
 'create-this-page' => 'このページを作成',
 'delete' => '削除',
 'deletethispage' => 'このページを削除',
+'undeletethispage' => 'このページを復元',
 'undelete_short' => '{{PLURAL:$1|$1 編集}}を復元',
 'viewdeleted_short' => '{{PLURAL:$1|削除された $1 編集}}を閲覧',
 'protect' => '保護',
@@ -621,7 +622,6 @@ $1',
 'disclaimers' => '免責事項',
 'disclaimerpage' => 'Project:免責事項',
 'edithelp' => '編集の仕方',
-'edithelppage' => 'Help:編集',
 'helppage' => 'Help:目次',
 'mainpage' => 'メインページ',
 'mainpage-description' => 'メインページ',
@@ -774,6 +774,10 @@ $2',
 'namespaceprotected' => "'''$1'''名前空間にあるページを編集する権限がありません。",
 'customcssprotected' => 'この CSS ページは他の利用者の個人設定を含んでいるため、あなたには編集する権限がありません。',
 'customjsprotected' => 'この JavaScript ページは他の利用者の個人設定を含んでいるため、あなたには編集する権限がありません。',
+'mycustomcssprotected' => 'あなたには CSS ページを編集する権限がありません。',
+'mycustomjsprotected' => 'あなたには JavaScript ページを編集する権限がありません。',
+'myprivateinfoprotected' => 'あなたには自身の非公開情報を編集する権限がありません。',
+'mypreferencesprotected' => 'あなたには自身の個人設定を編集する権限がありません。',
 'ns-specialprotected' => '特別ページは編集できません。',
 'titleprotected' => "[[User:$1|$1]]によりこのページ名を持つページの作成は保護されています。
 理由は「''$2''」です。",
@@ -801,6 +805,7 @@ $2',
 'yourname' => '利用者名:',
 'userlogin-yourname' => '利用者名',
 'userlogin-yourname-ph' => '利用者名を入力',
+'createacct-another-username-ph' => '利用者名を入力',
 'yourpassword' => 'パスワード:',
 'userlogin-yourpassword' => 'パスワード',
 'userlogin-yourpassword-ph' => 'パスワードを入力',
@@ -810,7 +815,7 @@ $2',
 'createacct-yourpasswordagain-ph' => 'パスワードを再入力',
 'remembermypassword' => 'このブラウザーにログイン情報を保存 (最長 $1 {{PLURAL:$1|日|日間}})',
 'userlogin-remembermypassword' => 'ログイン状態を保持',
-'userlogin-signwithsecure' => 'セキュリティで保護された接続を使用',
+'userlogin-signwithsecure' => 'SSL (https) 接続を使用',
 'securelogin-stick-https' => 'ログイン後にHTTPS接続を維持',
 'yourdomainname' => 'ドメイン:',
 'password-change-forbidden' => 'このウィキではパスワードを変更できません。',
@@ -835,9 +840,11 @@ $2',
 'helplogin-url' => 'Help:ログイン',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|ログインのヘルプ]]',
 'createacct-join' => '以下の情報を入力してください。',
+'createacct-another-join' => '新しいアカウントの情報を以下に記入してください。',
 'createacct-emailrequired' => 'メールアドレス',
 'createacct-emailoptional' => 'メールアドレス (省略可能)',
 'createacct-email-ph' => 'メールアドレスを入力',
+'createacct-another-email-ph' => 'メールアドレスを入力',
 'createaccountmail' => '一時的でランダムなパスワードを生成して、以下に指定したメールアドレスに送信する',
 'createacct-realname' => '本名 (省略可能)',
 'createaccountreason' => '理由:',
@@ -846,6 +853,7 @@ $2',
 'createacct-captcha' => '自動作成防止チェック',
 'createacct-imgcaptcha-ph' => '上に表示されている文字列を入力',
 'createacct-submit' => 'アカウントを作成',
+'createacct-another-submit' => '別アカウントを作成',
 'createacct-benefit-heading' => '{{SITENAME}}は、あなたのような人々が創っています。',
 'createacct-benefit-body1' => '{{PLURAL:$1|編集}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|ページ}}',
@@ -914,7 +922,7 @@ Cookieを有効にしていることを確認して、このページを再読
 'cannotchangeemail' => 'このウィキではアカウントのメールアドレスを変更できません。',
 'emaildisabled' => 'このサイトではメールを送信できません。',
 'accountcreated' => 'アカウントを作成しました',
-'accountcreatedtext' => '利用者アカウント「$1」を作成しました。',
+'accountcreatedtext' => '利用者アカウント [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|トーク]]) を作成しました。',
 'createaccount-title' => '{{SITENAME}}のアカウント作成',
 'createaccount-text' => '誰か (おそらくあなた) が、{{SITENAME}} ($4) にあなたのメールアドレスのアカウントを作成しました。
 アカウント名「$2」、パスワード「$3」です。
@@ -956,11 +964,11 @@ Cookieを有効にしていることを確認して、このページを再読
 
 # Special:PasswordReset
 'passwordreset' => 'パスワードの再設定',
-'passwordreset-text' => 'このフォームに記入すると、パスワードを再設定できます。',
+'passwordreset-text-one' => 'パスワードを再設定するにはこのフォームに記入してください。',
+'passwordreset-text-many' => '{{PLURAL:$1|パスワードを再設定するにはいずれかの欄に記入してください。}}',
 'passwordreset-legend' => 'パスワードの再設定',
 'passwordreset-disabled' => 'パスワードの再設定は、このウィキでは無効になっています。',
 'passwordreset-emaildisabled' => 'メール機能は、このウィキでは無効化されています。',
-'passwordreset-pretext' => '{{PLURAL:$1||下記のデータのいずれか 1 つを入力してください}}',
 'passwordreset-username' => '利用者名:',
 'passwordreset-domain' => 'ドメイン:',
 'passwordreset-capture' => 'お送りするメールの内容を表示しますか?',
@@ -1007,6 +1015,19 @@ $2
 'changeemail-submit' => 'メールアドレスを変更',
 'changeemail-cancel' => '中止',
 
+# Special:ResetTokens
+'resettokens' => 'トークンの再設定',
+'resettokens-text' => 'ここでは、アカウントに関連付けられた特定の非公開データにアクセスするためのトークンを再設定できます。
+
+トークンを誤って他人に教えてしまった場合やあなたのアカウントが侵害された場合は、必ず再設定してください。',
+'resettokens-no-tokens' => '再設定できるトークンはありません。',
+'resettokens-legend' => 'トークンの再設定',
+'resettokens-tokens' => 'トークン:',
+'resettokens-token-label' => '$1 (現在の値: $2)',
+'resettokens-watchlist-token' => 'ウォッチリストのフィード トークン',
+'resettokens-done' => 'トークンを再設定しました。',
+'resettokens-resetbutton' => '選択したトークンを再設定',
+
 # Edit page toolbar
 'bold_sample' => '太字',
 'bold_tip' => '太字',
@@ -1199,7 +1220,7 @@ $1または他の[[{{MediaWiki:Grouppage-sysop}}|管理者]]にこのブロッ
 'nocreate-loggedin' => '新しいページを作成する権限がありません。',
 'sectioneditnotsupported-title' => '節単位編集はサポートされていません',
 'sectioneditnotsupported-text' => 'このページでは節単位編集はサポートされません。',
-'permissionserrors' => '認証エラー',
+'permissionserrors' => '権限エラー',
 'permissionserrorstext' => 'あなたにはこの操作を行う権限はありません。{{PLURAL:$1|理由}}は以下の通りです:',
 'permissionserrorstext-withaction' => 'あなたには「$2」を行う権限はありません。{{PLURAL:$1|理由}}は以下の通りです:',
 'recreate-moveddeleted-warn' => "'''警告: 以前削除されたページを再作成しようとしています。'''
@@ -1215,6 +1236,7 @@ $1または他の[[{{MediaWiki:Grouppage-sysop}}|管理者]]にこのブロッ
 既に削除されているようです。',
 'edit-conflict' => '編集が競合。',
 'edit-no-change' => '文章が変更されていないため、編集は無視されました。',
+'postedit-confirmation' => '編集を保存しました。',
 'edit-already-exists' => '新しいページを作成できませんでした。
 そのページは既に存在します。',
 'defaultmessagetext' => '既定のメッセージ文',
@@ -1258,6 +1280,7 @@ $1または他の[[{{MediaWiki:Grouppage-sysop}}|管理者]]にこのブロッ
 'undo-failure' => '中間の版での編集と競合したため、取り消せませんでした。',
 'undo-norev' => '取り消そうとした編集が存在しないか削除済みのため取り消せませんでした。',
 'undo-summary' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|トーク]]) による版 $1 を取り消し',
+'undo-summary-username-hidden' => '秘匿された利用者による版 $1 を取り消し',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'アカウントを作成できません',
@@ -1439,6 +1462,7 @@ $1",
 'compareselectedversions' => '選択した版同士を比較',
 'showhideselectedversions' => '選択した版を表示/非表示',
 'editundo' => '取り消し',
+'diff-empty' => '(相違点なし)',
 'diff-multi' => '({{PLURAL:$2|$2人の利用者}}による、{{PLURAL:$1|間の$1版}}が非表示)',
 'diff-multi-manyusers' => '({{PLURAL:$2|$2人を超える利用者}}による、{{PLURAL:$1|間の$1版}}が非表示)',
 'difference-missing-revision' => '指定された{{PLURAL:$2|$2版}}の差分 ($1) が見つかりませんでした。
@@ -1466,7 +1490,6 @@ $1",
 'searchmenu-legend' => '検索オプション',
 'searchmenu-exists' => "'''このウィキには「[[:$1]]」という名前のページがあります'''",
 'searchmenu-new' => "'''このウィキでページ「[[:$1]]」を新規作成する'''",
-'searchhelp-url' => 'Help:目次',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|この文字列から始まる名前のページを見る]]',
 'searchprofile-articles' => '本文ページ',
 'searchprofile-project' => 'ヘルプとプロジェクトページ',
@@ -1544,7 +1567,6 @@ $1",
 'resetprefs' => '保存していない変更を破棄',
 'restoreprefs' => '初期設定に戻す',
 'prefs-editing' => '編集',
-'prefs-edit-boxsize' => '編集ウィンドウのサイズ。',
 'rows' => '行数:',
 'columns' => '列数:',
 'searchresultshead' => '検索',
@@ -1555,9 +1577,9 @@ $1",
 'recentchangesdays-max' => '(最大 $1 {{PLURAL:$1|日|日間}})',
 'recentchangescount' => '既定で表示する件数:',
 'prefs-help-recentchangescount' => 'この設定は最近の更新、ページの履歴、および記録に適用されます。',
-'prefs-help-watchlist-token' => 'この欄に秘密鍵を入力すると、あなたのウォッチリストのRSSフィードが生成されます。
-この欄に入力されている鍵を知っている人は誰でもこのウォッチリストを閲覧できるようになるため、他人に分からない値を選んでください。
-乱数によって生成された次の値を使うこともできます: $1',
+'prefs-help-watchlist-token2' => 'これはあなたのウォッチリスト フィードの秘密のコードです。
+このトークンを知っている人は誰でもあなたのウォッチリストを読めてしまうため、他の人に教えないでください。
+[[Special:ResetTokens|トークンを再設定する必要がある場合はここをクリックしてください]]。',
 'savedprefs' => '個人設定を保存しました。',
 'timezonelegend' => 'タイムゾーン:',
 'localtime' => 'ローカルの時刻:',
@@ -1588,7 +1610,6 @@ $1",
 'prefs-reset-intro' => 'このページを使用すると、自分の個人設定をこのサイトの初期設定に戻せます。
 この操作は取り消せません。',
 'prefs-emailconfirm-label' => 'メールアドレスの確認:',
-'prefs-textboxsize' => '編集画面の大きさ',
 'youremail' => 'メールアドレス:',
 'username' => '{{GENDER:$1|利用者名}}:',
 'uid' => '{{GENDER:$1|利用者}} ID:',
@@ -1624,7 +1645,9 @@ $1 {{PLURAL:$1|文字}}以下である必要があります。',
 'prefs-signature' => '署名',
 'prefs-dateformat' => '日付と時刻の形式',
 'prefs-timeoffset' => '時差',
-'prefs-advancedediting' => '詳細設定',
+'prefs-advancedediting' => '全般',
+'prefs-editor' => 'エディター',
+'prefs-preview' => 'プレビュー',
 'prefs-advancedrc' => '詳細設定',
 'prefs-advancedrendering' => '詳細設定',
 'prefs-advancedsearchoptions' => '詳細設定',
@@ -1632,6 +1655,7 @@ $1 {{PLURAL:$1|文字}}以下である必要があります。',
 'prefs-displayrc' => '表示の設定',
 'prefs-displaysearchoptions' => '表示の設定',
 'prefs-displaywatchlist' => '表示の設定',
+'prefs-tokenwatchlist' => 'トークン',
 'prefs-diffs' => '差分',
 
 # User preference: email validation using jQuery
@@ -1662,6 +1686,7 @@ $1 {{PLURAL:$1|文字}}以下である必要があります。',
 'userrights-unchangeable-col' => '変更できないグループ',
 'userrights-irreversible-marker' => '$1*',
 'userrights-conflict' => '利用者権限に競合があります! 変更内容をもう一度適用してください。',
+'userrights-removed-self' => 'あなた自身の権限を除去しました。そのため、このページにはもうアクセスできません。',
 
 # Groups
 'group' => 'グループ:',
@@ -1705,7 +1730,7 @@ $1 {{PLURAL:$1|文字}}以下である必要があります。',
 'right-reupload-shared' => '共有メディアリポジトリ上のファイルにローカルで上書き',
 'right-upload_by_url' => 'URL からファイルをアップロード',
 'right-purge' => '確認なしでサイトのキャッシュを破棄',
-'right-autoconfirmed' => '半保護されたページを編集',
+'right-autoconfirmed' => 'IPベースの速度制限を受けない',
 'right-bot' => '自動処理と認識させる',
 'right-nominornewtalk' => '議論ページの細部の編集をした際に、新着メッセージとして通知しない',
 'right-apihighlimits' => 'API要求でより高い制限値を使用',
@@ -1726,12 +1751,20 @@ $1 {{PLURAL:$1|文字}}以下である必要があります。',
 'right-ipblock-exempt' => 'IPブロック、自動ブロック、広域ブロックを回避',
 'right-proxyunbannable' => 'プロキシの自動ブロックを回避',
 'right-unblockself' => '自身に対するブロックを解除',
-'right-protect' => '保護レベルを変更し、保護されたページを編集',
-'right-editprotected' => '保護ページ (カスケード保護を除く) を編集',
+'right-protect' => '保護レベルを変更し、カスケード保護されたページを編集',
+'right-editprotected' => '「{{int:protect-level-sysop}}」の保護を設定されたページを編集',
+'right-editsemiprotected' => '「{{int:protect-level-autoconfirmed}}」の保護を設定されたページを編集',
 'right-editinterface' => 'ユーザーインターフェースを編集',
 'right-editusercssjs' => '他の利用者のCSSファイル/JavaScriptファイルを編集',
 'right-editusercss' => '他の利用者のCSSファイルを編集',
 'right-edituserjs' => '他の利用者のJavaScriptファイルを編集',
+'right-editmyusercss' => '自身のCSSファイルを編集',
+'right-editmyuserjs' => '自身のJavaScriptファイルを編集',
+'right-viewmywatchlist' => 'ウォッチリストを閲覧',
+'right-editmywatchlist' => '自身のウォッチリストを編集 (注: この権限がなくてもページを追加できる権限が他にもあります)',
+'right-viewmyprivateinfo' => '自身の非公開データ (例: メールアドレス、本名) を閲覧',
+'right-editmyprivateinfo' => '自身の非公開データ (例: メールアドレス、本名) を編集',
+'right-editmyoptions' => '自身の個人設定を編集',
 'right-rollback' => '特定ページを最後に編集した利用者の編集を即時巻き戻し',
 'right-markbotedits' => '巻き戻しをボットの編集として扱う',
 'right-noratelimit' => '速度制限を受けない',
@@ -1793,12 +1826,17 @@ $1 {{PLURAL:$1|文字}}以下である必要があります。',
 'action-userrights-interwiki' => '他のウィキの利用者の利用者権限変更',
 'action-siteadmin' => 'データベースのロックまたはロック解除',
 'action-sendemail' => 'メールの送信',
+'action-editmywatchlist' => '自身のウォッチリストの編集',
+'action-viewmywatchlist' => '自身のウォッチリストの閲覧',
+'action-viewmyprivateinfo' => '自分の非公開情報の閲覧',
+'action-editmyprivateinfo' => '自分の非公開情報の編集',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|回の変更}}',
 'recentchanges' => '最近の更新',
 'recentchanges-legend' => '最近の更新のオプション',
 'recentchanges-summary' => 'このページでは、このウィキでの最近の更新を確認できます。',
+'recentchanges-noresult' => '指定した条件に該当する期間の変更はありません。',
 'recentchanges-feed-description' => 'このフィードでこのウィキの最近の更新を追跡できます。',
 'recentchanges-label-newpage' => 'この編集で新しいページが作成されました',
 'recentchanges-label-minor' => 'これは細部の編集です',
@@ -1837,7 +1875,6 @@ $1 {{PLURAL:$1|文字}}以下である必要があります。',
 'recentchangeslinked-feed' => '関連ページの更新状況',
 'recentchangeslinked-toolbox' => '関連ページの更新状況',
 'recentchangeslinked-title' => '「$1」と関連する変更',
-'recentchangeslinked-noresult' => '指定期間中に指定ページのリンク先に変更はありませんでした。',
 'recentchangeslinked-summary' => "これは指定したページからリンクされている (または指定したカテゴリに含まれている) ページの最近の変更の一覧です。
 [[Special:Watchlist|自分のウォッチリスト]]にあるページは'''太字'''で表示されます。",
 'recentchangeslinked-page' => 'ページ名:',
@@ -1849,7 +1886,7 @@ $1 {{PLURAL:$1|文字}}以下である必要があります。',
 'reuploaddesc' => 'アップロードを中止してアップロードフォームへ戻る',
 'upload-tryagain' => '修正したファイル解説を投稿',
 'uploadnologin' => 'ログインしていません',
-'uploadnologintext' => 'ファイルをアップロードするには[[Special:UserLogin|ログイン]]する必要があります。',
+'uploadnologintext' => 'ファイルをアップロードするには$1する必要があります。',
 'upload_directory_missing' => 'アップロード先ディレクトリ ($1) が見つかりませんでした。ウェブ サーバーによる作成もできませんでした。',
 'upload_directory_read_only' => 'アップロード先ディレクトリ ($1) には、ウェブサーバーが書き込めません。',
 'uploaderror' => 'アップロードのエラー',
@@ -2139,7 +2176,7 @@ URLが正しいものであり、ウェブサイトが稼働していること
 'filehist-comment' => 'コメント',
 'filehist-missing' => 'ファイルがありません',
 'imagelinks' => 'ファイルの使用状況',
-'linkstoimage' => '以下の{{PLURAL:1|ページ|&#32;$1 ページ}}がこのファイルにリンクしています:',
+'linkstoimage' => '以下の{{PLURAL:$1|ページ|&#32;$1 ページ}}がこのファイルにリンクしています:',
 'linkstoimage-more' => 'このファイルへは $1 を超える数のページからリンクがあります。
 以下の一覧ではこのファイルにリンクしている最初の $1 ページのみを表示しています。
 [[Special:WhatLinksHere/$2|完全な一覧]]も参照してください。',
@@ -2254,6 +2291,8 @@ contenttype/subtypeの形式で入力してください (例: <code>image/jpeg</
 'pageswithprop-text' => 'このページでは、特定のページプロパティを持つページを列挙します。',
 'pageswithprop-prop' => 'プロパティ名:',
 'pageswithprop-submit' => '実行',
+'pageswithprop-prophidden-long' => 'プロパティ値のテキストが長いため非表示 ($1 キロバイト)',
+'pageswithprop-prophidden-binary' => 'プロパティ値のバイナリが長いため非表示 ($1キロバイト)',
 
 'doubleredirects' => '二重転送',
 'doubleredirectstext' => 'このページでは、転送ページへの転送ページを列挙します。
@@ -2312,6 +2351,7 @@ contenttype/subtypeの形式で入力してください (例: <code>image/jpeg</
 'mostrevisions' => '版の多いページ',
 'prefixindex' => '先頭が同じ全ページ',
 'prefixindex-namespace' => '先頭が同じ全ページ ($1名前空間)',
+'prefixindex-strip' => '一覧で接頭辞を省略',
 'shortpages' => '短いページ',
 'longpages' => '長いページ',
 'deadendpages' => '行き止まりページ',
@@ -2433,7 +2473,8 @@ contenttype/subtypeの形式で入力してください (例: <code>image/jpeg</
 'listgrouprights' => '利用者グループの権限',
 'listgrouprights-summary' => '以下は、このウィキに登録されている利用者グループと、それぞれに割り当てられている権限の一覧です。
 個々の権限に関する更なる情報は[[{{MediaWiki:Listgrouprights-helppage}}|追加情報]]を見てください。',
-'listgrouprights-key' => '* <span class="listgrouprights-granted">与えられた権限</span>
+'listgrouprights-key' => '凡例:
+* <span class="listgrouprights-granted">与えられた権限</span>
 * <span class="listgrouprights-revoked">取り消された権限</span>',
 'listgrouprights-group' => 'グループ',
 'listgrouprights-rights' => '権限',
@@ -2506,7 +2547,6 @@ contenttype/subtypeの形式で入力してください (例: <code>image/jpeg</
 'unwatchthispage' => 'ウォッチをやめる',
 'notanarticle' => '記事ではありません',
 'notvisiblerev' => '別の利用者による最終版は削除されました',
-'watchnochange' => 'ウォッチリストに登録しているページで、指定期間内に編集されたものはありません。',
 'watchlist-details' => 'ウォッチリストには {{PLURAL:$1|$1 ページ}}が登録されています (トークページを除く)。',
 'wlheader-enotif' => 'メール通知が有効になっています。',
 'wlheader-showupdated' => "最終訪問以降に変更されたページは、'''太字'''で表示されます。",
@@ -2617,7 +2657,7 @@ $UNWATCHURL
 このページの最後の編集は[[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]]による直前の版へ差し戻しました',
-'revertpage-nouser' => '(利用者名削除) による編集を[[User:$1|$1]]による直前の版へ差し戻しました',
+'revertpage-nouser' => '非表示の利用者による編集を[[User:$1|$1]]による直前の版へ差し戻しました',
 'rollback-success' => '$1による編集を差し戻しました。
 $2による直前の版へ変更されました。',
 
@@ -2792,9 +2832,9 @@ $1',
 'whatlinkshere' => 'リンク元',
 'whatlinkshere-title' => '「$1」へリンクしているページ',
 'whatlinkshere-page' => 'ページ:',
-'linkshere' => "以下のページが、'''[[:$1]]'''にリンクしています:",
-'nolinkshere' => "'''[[:$1]]'''にリンクしているページはありません。",
-'nolinkshere-ns' => "指定した名前空間内に、'''[[:$1]]'''にリンクしているページはありません。",
+'linkshere' => "以下のページが、'''[[:$1]]''' にリンクしています:",
+'nolinkshere' => "'''[[:$1]]''' にリンクしているページはありません。",
+'nolinkshere-ns' => "指定した名前空間内に、'''[[:$1]]''' にリンクしているページはありません。",
 'isredirect' => '転送ページ',
 'istemplate' => '参照読み込み',
 'isimage' => 'ファイルへのリンク',
@@ -3160,7 +3200,7 @@ $2',
 'import-error-interwiki' => 'ページ名が外部リンク (ウィキ間リンク) に予約されているため、ページ「$1」を取り込みませんでした。',
 'import-error-special' => 'ページ「$1」は、ページが許可されない特別名前空間に属しているため取り込みません。',
 'import-error-invalid' => '名前が正しくないため、ページ「$1」を取り込みませんでした。',
-'import-error-unserialize' => 'ページ「$1」の版 $2 は直列化復元できませんでした。この版は $4 として直列化されたコンテンツモデル $3 を使用していると報告されています。',
+'import-error-unserialize' => 'ページ「$1」の版 $2 はシリアライズ解除できませんでした。この版は $4 としてシリアライズされたコンテンツモデル $3 を使用していると報告されています。',
 'import-options-wrong' => '間違った{{PLURAL:$2|オプション}}です: <nowiki>$1</nowiki>',
 'import-rootpage-invalid' => '入力したルートページの名前は無効です。',
 'import-rootpage-nosubpage' => 'ルートページの名前空間「$1」では、下位ページが許可されていません。',
@@ -3956,7 +3996,7 @@ Variants for Chinese language
 メールサーバーからの返答: $1',
 'confirmemail_invalid' => '確認用コードが正しくありません。
 このコードの有効期限が切れている可能性があります。',
-'confirmemail_needlogin' => 'ã\83¡ã\83¼ã\83«ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92確èª\8dã\81\99ã\82\8bã\81\9fã\82\81ã\81«$1ã\81\8cå¿\85è¦\81ã\81§す。',
+'confirmemail_needlogin' => 'ã\83¡ã\83¼ã\83«ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92確èª\8dã\81\99ã\82\8bã\81«ã\81¯$1ã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8aã\81¾す。',
 'confirmemail_success' => 'メールアドレスは確認されました。
 [[Special:UserLogin|ログイン]]してウィキを使用できます。',
 'confirmemail_loggedin' => 'メールアドレスは確認されました。',
@@ -4190,7 +4230,6 @@ $5
 'version-other' => 'その他',
 'version-mediahandlers' => 'メディアハンドラー',
 'version-hooks' => 'フック',
-'version-extension-functions' => '拡張機能関数',
 'version-parser-extensiontags' => '構文解析拡張機能タグ',
 'version-parser-function-hooks' => 'パーサー関数フック',
 'version-hook-name' => 'フック名',
@@ -4273,6 +4312,7 @@ MediaWikiは、有用であることを期待して配布されていますが
 'tags' => '有効な変更タグ',
 'tag-filter' => '[[Special:Tags|タグ]]絞り込み:',
 'tag-filter-submit' => '絞り込み',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|タグ}}]]: $2)',
 'tags-title' => 'タグ',
 'tags-intro' => 'このページは、ソフトウェアが編集に対して付けるタグとその意味の一覧です。',
 'tags-tag' => 'タグ名',
index b8e50b5..8ec6c93 100644 (file)
@@ -251,7 +251,6 @@ $1',
 'disclaimers' => 'Diskliema',
 'disclaimerpage' => 'Project: Jinaral diskliema',
 'edithelp' => 'Editin elp',
-'edithelppage' => 'Help: Editin',
 'helppage' => 'Help: Kantent',
 'mainpage' => 'Mien piej',
 'mainpage-description' => 'Mien piej',
index 3f4e01f..b0b0ff3 100644 (file)
@@ -7,6 +7,7 @@
  * @ingroup Language
  * @file
  *
+ * @author Geitost
  * @author Huslåke
  * @author Urhixidur
  * @author Ælsån
@@ -203,7 +204,6 @@ $messages = array(
 'disclaimers' => 'Førbeholt',
 'disclaimerpage' => 'Project:Huses førbeholt',
 'edithelp' => 'Hjælp til redigærenge',
-'edithelppage' => "Help:Vordan redigærer a'n side",
 'helppage' => 'Help:Hjælpførside',
 'mainpage' => 'Førsit',
 'mainpage-description' => 'Førsit',
@@ -311,7 +311,7 @@ Førespørgsel: $2',
 'userlogin' => 'Åpret æ konto æller loĝ på',
 'logout' => 'Loĝ åf',
 'userlogout' => 'Loĝ åf',
-'nologin' => "Du har engen brugerkonto? '''$1'''.",
+'nologin' => 'Du har engen brugerkonto? $1.',
 'nologinlink' => 'Åpret ny brugerkonto',
 'createaccount' => 'Åpret en ny konto',
 'gotaccount' => "Du har ålerede en brugerkonto? '''$1'''.",
@@ -438,7 +438,6 @@ hersenenge, (førge) = førskel til den førge hersenenge, l = lile til mendre 
 'prevn' => 'førge {{PLURAL:$1|$1}}',
 'nextn' => 'nægste {{PLURAL:$1|$1}}',
 'viewprevnext' => 'Ves ($1 {{int:pipe-separator}} $2) ($3)',
-'searchhelp-url' => 'Help:Hjælpførside',
 'searchall' => 'ål',
 'powersearch' => 'Søĝ',
 
@@ -486,7 +485,6 @@ hersenenge, (førge) = førskel til den førge hersenenge, l = lile til mendre 
 'recentchangeslinked-feed' => 'Relaterede ændrenger',
 'recentchangeslinked-toolbox' => 'Relaterede ændrenger',
 'recentchangeslinked-title' => 'Ændrenger der vegånde til "$1"',
-'recentchangeslinked-noresult' => 'I det udvalgte tidsrum blev der ekke føretaget ændrenger på siderne der henveses til.',
 '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
index 1c19744..f97e902 100644 (file)
@@ -158,6 +158,10 @@ $messages = array(
 'oct' => 'Okt',
 'nov' => 'Nov',
 'dec' => 'Des',
+'may-date' => '$1 Mèi',
+'september-date' => '$1 Sèptèmber',
+'november-date' => '$1 Novèmber',
+'december-date' => '$1 Dèsèmber',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategori|Kategori}}',
@@ -239,6 +243,7 @@ $messages = array(
 'create-this-page' => 'Nggawé kaca iki',
 'delete' => 'Busak',
 'deletethispage' => 'Busak kaca iki',
+'undeletethispage' => 'Wurung busak kaca iki',
 'undelete_short' => 'Batal busak $1 {{PLURAL:$1|suntingan|suntingan}}',
 'viewdeleted_short' => 'Pirsani {{PLURAL:$1|suntingan|suntingan}} ingkang sampun kabusak',
 'protect' => 'Reksanen',
@@ -292,7 +297,6 @@ $1',
 'disclaimers' => 'Pamaidonan',
 'disclaimerpage' => 'Project:Panyangkalan umum',
 'edithelp' => 'Pitulung panyuntingan',
-'edithelppage' => 'Help:panyuntingan',
 'helppage' => 'Help:Isi',
 'mainpage' => 'Kaca Utama',
 'mainpage-description' => 'Kaca Utama',
@@ -429,6 +433,7 @@ $2',
 'namespaceprotected' => "Panjenengan ora kagungan idin kanggo nyunting kaca ing bilik nama '''$1'''.",
 'customcssprotected' => 'Sampéyan ora dililakaké nyunting kaca CSS iki amarga kaisi pangaturan pribadi saka panganggo liya.',
 'customjsprotected' => 'Sampéyan ora dililakaké nyunting kaca JavaScript iki amarga kaisi pangaturan pribadi saka panganggo liya.',
+'mycustomcssprotected' => 'Sampèyan ora duwé idin kanggo ngowah kaca CSS iki.',
 'ns-specialprotected' => 'Kaca ing bilik nama astaméwa utawa kusus, ora bisa disunting.',
 'titleprotected' => "Irah-irahan iki direksa ora olèh digawé déning [[User:$1|$1]].
 Alesané yaiku ''$2''.",
@@ -525,7 +530,7 @@ Amarga saka kuwi., tamu kanthi alamat IP iki ora bisa gawé akun manèh kanggo s
 'cannotchangeemail' => 'Alamat layang èlèktronik akun ora bisa diganti nèng wiki iki.',
 'emaildisabled' => 'Situs iki ora bisa ngirim layang èlèktronik.',
 'accountcreated' => 'Akun wis kacipta.',
-'accountcreatedtext' => 'Akun kanggo $1 wis kacipta.',
+'accountcreatedtext' => 'Akun kanggo $1 wis digawé.',
 'createaccount-title' => 'Gawé rékening kanggo {{SITENAME}}',
 'createaccount-text' => 'Ana wong sing nggawé sawijining akun utawa rékening kanggo alamat e-mail panjenengan ing {{SITENAME}} ($4) mawa jeneng "$2" lan tembung sandi "$3". Panjenengan disaranaké kanggo mlebu log lan ngganti tembung sandi panjenengan saiki.
 
@@ -559,13 +564,12 @@ Tulung nunggu dhisik sadurungé njajal manèh.',
 'resetpass-wrong-oldpass' => 'Tembung sandi ora sah.
 Panjengen manawa wis kasil ganti tembung sandi utawa nyuwun tembung sandi sauntara sing anyar.',
 'resetpass-temp-password' => 'Tembung sandi sauntara:',
+'resetpass-abort-generic' => 'Ngowah tembung sandhi diwurungaké déning èkstènsi.',
 
 # Special:PasswordReset
 'passwordreset' => 'Balèni setèl tembung sandhi',
-'passwordreset-text' => 'Jangkepi pormulir iki kanggo mbalèkaké tembung sandhiné Sampéyan.',
 'passwordreset-legend' => 'Balèni setèl tembung sandhi',
 'passwordreset-disabled' => 'Piranti kanggo mbalèni nyetèl tembung sandhi dipatèni nèng wiki iki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Lebokaké siji bagéyan data ngisor iki}}',
 'passwordreset-username' => 'Jeneng panganggo:',
 'passwordreset-domain' => 'Domain:',
 'passwordreset-capture' => 'Delok layang èlèktronik sing diasilaké?',
@@ -770,7 +774,7 @@ Entri cathetan pungkasan disadiakake ing ngisor kanggo referensi:",
 'nocreate-loggedin' => 'Panjenengan ora kagungan idin kanggo nggawé kaca anyar.',
 'sectioneditnotsupported-title' => 'Panyuntingan bagéyan ora kasengkuyungan',
 'sectioneditnotsupported-text' => 'Panyuntingan sapérangan ora disengkuyung ing kaca suntingan iki.',
-'permissionserrors' => 'Kaluputan Idin Aksès',
+'permissionserrors' => 'Palilan ora diolèhaké',
 'permissionserrorstext' => 'Panjengan ora kagungan idin kanggo nglakoni sing panjenengan gayuh amerga {{PLURAL:$1|alesan|alesan-alesan}} iki:',
 'permissionserrorstext-withaction' => 'Panjenengan ora duwé hak aksès kanggo $2, amarga {{PLURAL:$1|alasan|alasan}} ing ngisor iki:',
 'recreate-moveddeleted-warn' => "'''Pènget: Panjenengan gawé manèh sawijining kaca sing wis tau dibusak.'''
@@ -850,8 +854,8 @@ Alesané miturut $3 yaiku ''$2''",
 'histlegend' => "Pilihen rong tombol radhio banjur pencèten tombol ''bandhingna'' kanggo mbandhingaké versi. Klik sawijining tanggal kanggo ndeleng versi kaca ing tanggal iku.<br />(skr) = prabédan karo vèrsi saiki, (akir) = prabédan karo vèrsi sadurungé, '''s''' = suntingan sithik, '''b''' = suntingan bot, → = suntingan bagian, ← = ringkesan otomatis",
 'history-fieldset-title' => 'Njlajah sajarah vèrsi sadhurungé',
 'history-show-deleted' => 'Namung sing dibusak',
-'histfirst' => 'Suwé dhéwé',
-'histlast' => 'Anyar dhéwé',
+'histfirst' => 'suwé dhéwé',
+'histlast' => 'anyar dhéwé',
 'historysize' => '($1 {{PLURAL:$1|bita|bita}})',
 'historyempty' => '(kosong)',
 
@@ -1028,7 +1032,6 @@ Rinciané bisa ditemokaké nèng [{{fullurl:{{#Special:Log}}/delete|page={{FULLP
 'searchmenu-legend' => 'Pilihan panggolèkan',
 'searchmenu-exists' => "'''Ana kaca kanthi jeneng \"[[\$1]]\" ing wiki iki'''",
 'searchmenu-new' => "'''Gawé kaca \"[[:\$1]]\" ing wiki iki!'''",
-'searchhelp-url' => 'Help:Isi',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Tlusuri kaca-kaca kanthi tembung-wiwitan iki]]',
 'searchprofile-articles' => 'Kaca isi',
 'searchprofile-project' => 'Kaca pitulung lan proyèk',
@@ -1102,7 +1105,6 @@ Rinciané bisa ditemokaké nèng [{{fullurl:{{#Special:Log}}/delete|page={{FULLP
 'resetprefs' => 'Resikana owah-owahan sing ora disimpen',
 'restoreprefs' => 'Balèkna kabèh setèlan baku',
 'prefs-editing' => 'Panyuntingan',
-'prefs-edit-boxsize' => 'Ukuran kothak panyuntingan.',
 'rows' => 'Larikan:',
 'columns' => 'Kolom:',
 'searchresultshead' => 'Panggolèkan',
@@ -1113,9 +1115,6 @@ Rinciané bisa ditemokaké nèng [{{fullurl:{{#Special:Log}}/delete|page={{FULLP
 'recentchangesdays-max' => '(maksimum $1 {{PLURAL:$1|dina|dina}})',
 'recentchangescount' => 'Cacahé suntingan sing ditampilaké:',
 'prefs-help-recentchangescount' => 'Iki klebu owah-owahan pungkasan, kaca sajarah, lan log.',
-'prefs-help-watchlist-token' => 'Ngisi kothak iki nganggo kunci wadi (PIN) bakal ngasilaké sindikasi RSS kanggo daftar pantauan panjenengan.
-Sapa waé sing meruhi kunci iki bisa maca daftar pantauan panjenengan, mula pilihen isi sing aman.
-Iki aji acak sing bisa panjenengan gunakaké: $1',
 'savedprefs' => 'Préferènsi Panjenengan wis disimpen',
 'timezonelegend' => 'Zona wektu:',
 'localtime' => 'Wektu saenggon:',
@@ -1146,7 +1145,6 @@ Iki aji acak sing bisa panjenengan gunakaké: $1',
 'prefs-reset-intro' => 'Panjenengan bisa migunakaké kaca iki kanggo mbalèkaké préferensi panjenengan marang setèlan baku situs.
 Pembalikan ora bisa dibatalaké.',
 'prefs-emailconfirm-label' => 'Konfirmasi layang-e:',
-'prefs-textboxsize' => 'Ukuran kothak suntingan',
 'youremail' => 'Layang élèktronik (E-mail):',
 'username' => '{{GENDER:$1|Asma panganggo}}:',
 'uid' => '{{GENDER:$1|ID panganggo}}:',
@@ -1178,7 +1176,7 @@ Alamat layang èlèktronik Sampéyan ora dituduhaké nalika wong liya ngubungi S
 'prefs-signature' => 'Tapak asma',
 'prefs-dateformat' => 'Format tanggal',
 'prefs-timeoffset' => 'Format wektu',
-'prefs-advancedediting' => 'Opsi lanjutan',
+'prefs-advancedediting' => 'Pilihan sabanjuré',
 'prefs-advancedrc' => 'Opsi lanjutan',
 'prefs-advancedrendering' => 'Opsi lanjutan',
 'prefs-advancedsearchoptions' => 'Opsi lanjutan',
@@ -1256,7 +1254,7 @@ Alamat layang èlèktronik Sampéyan ora dituduhaké nalika wong liya ngubungi S
 'right-reupload-shared' => 'Timpanana berkas-berkas ing khazanah binagi sacara lokal',
 'right-upload_by_url' => 'Ngunggahaké berkas saka sawijining alamat URL',
 'right-purge' => "Kosongna ''cache'' situs iki kanggo sawijining kaca tanpa kaca konfirmasi",
-'right-autoconfirmed' => 'Sunting kaca-kaca sing disémi-reksa',
+'right-autoconfirmed' => 'Owah kaca-kaca sémi-reksa',
 'right-bot' => 'Anggepen minangka prosès otomatis',
 'right-nominornewtalk' => "Suntingan sithik (''minor'') ora ngwetokaké prompt pesen anyar",
 'right-apihighlimits' => 'Nganggo wates sing luwih dhuwur ing kwéri API',
@@ -1277,8 +1275,8 @@ Alamat layang èlèktronik Sampéyan ora dituduhaké nalika wong liya ngubungi S
 'right-ipblock-exempt' => 'Bypass pamblokiran IP, pamblokiran otomatis lan pamblokiran rangkéan',
 'right-proxyunbannable' => 'Bypass pamblokiran otomatis proxy-proxy',
 'right-unblockself' => 'Bukak blokirané dhéwéké',
-'right-protect' => 'Ganti tingkatan pangreksan lan sunting kaca-kaca sing direksa',
-'right-editprotected' => 'Sunting kaca-kaca sing direksa (tanpa pangreksan runtun)',
+'right-protect' => 'Ganti undhaking pangreksan lan owah kaca-kaca sing direksa',
+'right-editprotected' => 'Owah kaca-kaca sing direksa (tanpa pangreksan runtun)',
 'right-editinterface' => 'Sunting interface (antarmuka) panganggo',
 'right-editusercssjs' => 'Sunting berkas-berkas CSS lan JS panganggo liya',
 'right-editusercss' => 'Sunting berkas-berkas CSS panganggo liya',
@@ -1386,7 +1384,6 @@ Alamat layang èlèktronik Sampéyan ora dituduhaké nalika wong liya ngubungi S
 'recentchangeslinked-feed' => 'Pranala Pilihan',
 'recentchangeslinked-toolbox' => 'Pranala Pilihan',
 'recentchangeslinked-title' => 'Owah-owahan sing ana gandhèngané karo "$1"',
-'recentchangeslinked-noresult' => 'Ora ana owah-owahan ing kaca-kaca kagandhèng iki salawasé periode sing wis ditemtokaké.',
 'recentchangeslinked-summary' => "Kaca astaméwa (kaca kusus) iki mènèhi daftar owah-owahan pungkasan ing kaca-kaca sing kagandhèng (utawa anggota sawijining kateogri). Kaca sing [[Special:Watchlist|panjenengan awasi]] ditandhani '''kandel'''.",
 'recentchangeslinked-page' => 'Jeneng kaca:',
 'recentchangeslinked-to' => 'Nuduhaké owah-owahan menyang kaca sing disambung menyang kaca-kaca iki',
@@ -1397,7 +1394,7 @@ Alamat layang èlèktronik Sampéyan ora dituduhaké nalika wong liya ngubungi S
 'reuploaddesc' => 'Bali ing formulir pamotan',
 'upload-tryagain' => 'Kirim déskripsi berkas sing wis diowah',
 'uploadnologin' => 'Durung mlebu log',
-'uploadnologintext' => 'Panjenengan kudu [[Special:UserLogin|mlebu log]] supaya olèh ngunggahaké gambar utawa berkas liyané.',
+'uploadnologintext' => 'Sampéyan kudu [[Special:UserLogin|mlebu log]] supaya bisa ngunggah berkas.',
 'upload_directory_missing' => 'Direktori pamunggahan ($1) ora ditemokaké lan ora bisa digawé déning server wèb.',
 'upload_directory_read_only' => 'Dirèktori pangunggahan ($1) ora bisa ditulis déning server wèb.',
 'uploaderror' => 'Kaluputan pangunggahan berkas',
@@ -2016,7 +2013,6 @@ Owah-owahan sing dumadi ing tembé ing kaca iku lan kaca dhiskusi sing kagandhè
 'unwatchthispage' => 'Batalna olèhé ngawasi kaca iki',
 'notanarticle' => 'Dudu kaca artikel',
 'notvisiblerev' => 'Révisi wis dibusak',
-'watchnochange' => 'Ora ana kaca ing daftar pangawasan panjenengan sing diowahi ing mangsa wektu sing dipilih.',
 'watchlist-details' => 'Ngawasaké {{PLURAL:$1|$1 kaca|$1 kaca}}, ora kalebu kaca-kaca dhiskusi.',
 'wlheader-enotif' => 'Notifikasi e-mail diaktifaké.',
 'wlheader-showupdated' => "Kaca-kaca sing wis owah wiwit ditiliki panjenengan kaping pungkasan, dituduhaké mawa '''aksara kandel'''",
@@ -2264,7 +2260,7 @@ $1',
 'mycontris' => 'Kontribusi',
 'contribsub2' => 'Kanggo $1 ($2)',
 'nocontribs' => 'Ora ditemokaké owah-owahan sing cocog karo kritéria kasebut iku.',
-'uctop' => ' (dhuwur)',
+'uctop' => '(saiki)',
 'month' => 'Wiwit sasi (lan sadurungé):',
 'year' => 'Wiwit taun (lan sadurungé):',
 
@@ -3463,7 +3459,6 @@ Panjenengan uga bisa [[Special:EditWatchlist|nganggo éditor standar panjenengan
 'version-other' => 'Liyané',
 'version-mediahandlers' => 'Pananganan média',
 'version-hooks' => 'Canthèlan-canthèlan',
-'version-extension-functions' => 'Fungsi-fungsi èkstènsi',
 'version-parser-extensiontags' => 'Rambu èkstènsi parser',
 'version-parser-function-hooks' => 'Canthèlan fungsi parser',
 'version-hook-name' => 'Jeneng canthèlan',
index d54e8d3..f434447 100644 (file)
@@ -16,6 +16,7 @@
  * @author ITshnik
  * @author Kaganer
  * @author Malafaya
+ * @author Nemo bis
  * @author Nodar Kherkheulidze
  * @author Reedy
  * @author Sopho
@@ -210,7 +211,7 @@ $messages = array(
 'tog-diffonly' => 'დამალე გვერდის შიგთავსი ცვლილების ქვევით',
 'tog-showhiddencats' => 'დამალული კატეგორიების ჩვენება',
 'tog-noconvertlink' => 'სათაურის გარდაქმნის ბმულის გამორთვა',
-'tog-norollbackdiff' => 'á\83\92á\83\90á\83\9bá\83\9dá\83¢á\83\9dá\83\95á\83\94á\83\97 á\83ªá\83\95á\83\9aá\83\98á\83\9aá\83\94á\83\91á\83\90 á\83\92á\83\90á\83£á\83¥á\83\9bá\83\94á\83\91á\83\98á\83¡á\83\90á\83¡',
+'tog-norollbackdiff' => 'á\83\92á\83\90á\83£á\83¥á\83\9bá\83\94á\83\91á\83\98á\83¡á\83\90á\83¡ á\83\92á\83\90á\83\9bá\83\9dá\83¢á\83\9dá\83\95á\83\94á\83\97 á\83ªá\83\95á\83\9aá\83\98á\83\9aá\83\94á\83\91á\83\90á\83\97á\83\90 á\83\92á\83\90á\83\9cá\83¡á\83®á\83\95á\83\90á\83\95á\83\94á\83\91á\83\90',
 'tog-useeditwarning' => 'გამაფრთხილე, როდესაც დავტოვებ რედაქტირებად გვერდს, დაუმახსოვრებელი ცვლილებებით',
 
 'underline-always' => 'მუდამ',
@@ -338,8 +339,8 @@ $messages = array(
 'vector-action-move' => 'გადატანა',
 'vector-action-protect' => 'დაცვა',
 'vector-action-undelete' => 'აღდგენა',
-'vector-action-unprotect' => 'á\83\93á\83\90á\83ªá\83\95á\83\98á\83¡ á\83\93á\83\9dá\83\9cá\83\98á\83¡ á\83¨á\83\94á\83ªá\83\95á\83\9aá\83\90',
-'vector-simplesearch-preference' => 'á\83«á\83\94á\83\91á\83\9cის გაფართოებული ველის ჩართვა (მხოლოდ ვექტორული იერსახისთვის)',
+'vector-action-unprotect' => 'დაცვის შეცვლა',
+'vector-simplesearch-preference' => 'á\83«á\83\98á\83\94á\83\91ის გაფართოებული ველის ჩართვა (მხოლოდ ვექტორული იერსახისთვის)',
 'vector-view-create' => 'შექმნა',
 'vector-view-edit' => 'რედაქტირება',
 'vector-view-history' => 'ისტორია',
@@ -371,12 +372,13 @@ $messages = array(
 'create-this-page' => 'ამ გვერდის შექმნა',
 'delete' => 'წაშლა',
 'deletethispage' => 'გვერდის წაშლა',
+'undeletethispage' => 'ამ გვერდის აღდგენა',
 'undelete_short' => 'გააუქმე წაშლა {{PLURAL:$1|ერთი რედაქტირება|$1 რედაქტირება}}',
 'viewdeleted_short' => '{{PLURAL:$1|წაშლილი რედაქტირების|$1 წაშლილი რედაქტირებების}} ხილვა',
 'protect' => 'დაბლოკე',
 'protect_change' => 'შეცვლა',
 'protectthispage' => 'დაბლოკე ეს გვერდი',
-'unprotect' => 'á\83\93á\83\90á\83ªá\83\95á\83\98á\83¡ á\83\93á\83\9dá\83\9cá\83\98á\83¡ á\83¨á\83\94á\83ªá\83\95á\83\9aá\83\90',
+'unprotect' => 'დაცვის შეცვლა',
 'unprotectthispage' => 'შეცვალე ამ გვერდის დაცვის დონე',
 'newpage' => 'ახალი გვერდი',
 'talkpage' => 'მოცემული გვერდის განხილვა',
@@ -424,7 +426,6 @@ $1',
 'disclaimers' => 'პასუხისმგებლობის მოხსნა',
 'disclaimerpage' => 'Project:პასუხისმგებლობის უარყოფა',
 'edithelp' => 'დახმარება',
-'edithelppage' => 'Help:ტექსტის რედაქტირება (მარტივი)',
 'helppage' => 'Help:დახმარება',
 'mainpage' => 'მთავარი გვერდი',
 'mainpage-description' => 'მთავარი გვერდი',
@@ -455,7 +456,6 @@ $1',
 'newmessagesdifflinkplural' => 'ბოლო {{PLURAL:$1|ცვლილება|ცვლილება}}',
 'youhavenewmessagesmulti' => 'თქვენ გაქვთ ახალი შეტყობინება $1-ზე',
 'editsection' => 'რედაქტირება',
-'editsection-brackets' => '[$1]',
 'editold' => 'რედაქტირება',
 'viewsourceold' => 'წყაროს ჩვენება',
 'editlink' => 'რედაქტირება',
@@ -577,6 +577,8 @@ $2',
 'namespaceprotected' => "თქვენ არ გაქვთ '''$1''' სახელთა სივრცეში გვერდების რედაქტირების უფლება.",
 'customcssprotected' => 'თქვენ არ გაქვთ ამ CSS გვერდის რედაქტირების უფლება, ვინაიდან ის სხვა მომხმარებლის პირად კონფიგურაციას შეიცავს.',
 'customjsprotected' => 'თქვენ არ გაქვთ ამ JavaScript გვერდის რედაქტირების უფლება, ვინაიდან ის სხვა მომხმარებლის პირად კონფიგურაციას შეიცავს.',
+'mycustomcssprotected' => 'თქვენ არ გაქვთ ამ CSS-გვერდის რედაქტირების უფლება.',
+'mycustomjsprotected' => 'თქვენ არ გაქვთ ამ JavaScript-გვერდის რედაქტირების უფლება.',
 'ns-specialprotected' => 'გვერდების რედაქტირება სახელთა სივრცეში {{ns:special}} შეუძლებელია.',
 'titleprotected' => "შემდეგი გვერდის შექმნა აკრძალულია მომხმარებელ [[User:$1|$1]]-ს მიერ.
 მოცემულია შემდეგი ახსნა: „''$2''“.",
@@ -636,16 +638,29 @@ $2',
 'gotaccountlink' => 'შესვლა',
 'userlogin-resetlink' => 'ავტორიზაციის მონაცემები დაგავიწყდათ?',
 'userlogin-resetpassword-link' => 'პაროლის მოცილება',
+'helplogin-url' => 'Help:შესვლა',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|დახმარება სისტემაში შესასვლელად]]',
+'createacct-join' => 'ქვემოთ მიუთითეთ ინფორმაცია თქვენ შესახებ.',
+'createacct-emailrequired' => 'ელ. ფოსტის მისამართი',
+'createacct-emailoptional' => 'ელ. ფოსტის მისამართი (არასავალდებულო)',
+'createacct-email-ph' => 'შეიყვანეთ თქვენი ელ. ფოსტის მისამართი',
 'createaccountmail' => 'გამოიყენეთ შემთხვევითობის მეთოდით შერჩეული დროებითი პაროლი და მისი გაგზავნა ქვემოთ მითითებულ ელ. ფოსტის მისამართზე:',
+'createacct-realname' => 'ნამდვილი სახელი (არააუცილებელი)',
 'createaccountreason' => 'მიზეზი:',
+'createacct-reason' => 'მიზეზი',
+'createacct-reason-ph' => 'რატომ ქმნით ახალ ანგარიშს?',
+'createacct-captcha' => 'უსაფრთხოების შემოწმება',
+'createacct-imgcaptcha-ph' => 'შეიყვანეთ ზემოთ მოცემული ტექსტი',
 'createacct-submit' => 'შექმენით თქვენი ანგარიში',
 'createacct-benefit-heading' => '{{SITENAME}} შექმნილია თქვენნაირი ადამიანების მიერ.',
 'createacct-benefit-body1' => '{{PLURAL:$1|რედაქტირება|რედაქტირება}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|გვერდი|გვერდი}}',
+'createacct-benefit-body3' => 'ბოლო {{PLURAL:$1|მომხმარებელი|მომხმარებელი}}',
 'badretype' => 'თქვენს მიერ შეყვანილი პაროლები ერთმანეთს არ ემთხვევა.',
 'userexists' => 'ეს სახელი უკვე გამოყენებულია.
 გთხოვთ, აირჩიეთ სხვა.',
 'loginerror' => 'შეცდომა შესვლაში',
+'createacct-error' => 'ანგარიშის შექმნის შეცდომა',
 'createaccounterror' => '$1 ანგარიშის შექმნა ვერ მოხერხდა.',
 'nocookiesnew' => 'მომხმარებლის ჩანაწერი შექმნილია, მაგრამ თქვენ არ გაგივლიათ რეგისტრაცია. {{SITENAME}} იყენებს cookies, რომლებიც თქვენს ბრაუზერში გათიშულია. გთხოვთ, აამოქმედოთ ისინი და შემდგომ ხელახლა გაიარეთ რეგისტრაცია.',
 'nocookieslogin' => '{{SITENAME}} მომხმარებლების შესვლისთვის იყენებს "ქუქის ჩანაწერს". თქვენ იგი გათიშეთ. გთხოვთ, ჩართოთ ისინი და ხელმეორედ მოსინჯოთ.',
@@ -700,7 +715,7 @@ $2',
 'cannotchangeemail' => 'ანგარიშის ელ-ფოსტის მისამართების შეცვლა ამ ვიკიში შეუძლებელია.',
 'emaildisabled' => 'ამ საიტს არ შეუძლია ელ.ფოსტის გაგზავნა.',
 'accountcreated' => 'ანგარიში შეიქმნა',
-'accountcreatedtext' => 'á\83¨á\83\94á\83¥á\83\9bá\83\9cá\83\98á\83\9aá\83\98á\83\90 á\83\9bá\83\9dá\83\9bá\83®á\83\9bá\83\90á\83 á\83\94á\83\91á\83\9aá\83\98á\83¡ á\83\90á\83\9cá\83\92á\83\90á\83 á\83\98á\83¨á\83\98 $1.',
+'accountcreatedtext' => 'á\83\9bá\83\9dá\83\9bá\83®á\83\9bá\83\90á\83 á\83\94á\83\91á\83\9aá\83\98á\83¡ á\83\90á\83\9cá\83\92á\83\90á\83 á\83\98á\83¨á\83\98 [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|á\83\92á\83\90á\83\9cá\83®á\83\98á\83\9aá\83\95á\83\90]]) á\83¨á\83\94á\83¥á\83\9bá\83\9cá\83\98á\83\9aá\83\98á\83\90.',
 'createaccount-title' => 'ანგარიშის შექმნა {{SITENAME}}-თვის',
 'createaccount-text' => 'ვიღაცამ შექმნა ანგარიში სახელით „$2“ და პაროლით „$3“ თქვენი ელექტრონული ფოსტისთვის {{SITENAME}}-ში ($4). გთხოვთ დარეგისტრირდეთ და შეცვალოთ პაროლი.
 
@@ -734,13 +749,15 @@ $2',
 'resetpass-wrong-oldpass' => 'არასწორი დროებითი ან მოქმედი პაროლი.
 შესაძლოა თქვენ წარმატებით შეცვალეთ პაროლი ან მოითხოვეთ ახალი.',
 'resetpass-temp-password' => 'დროებითი პაროლი:',
+'resetpass-abort-generic' => 'პაროლის შეცვლა შეჩერდა გაფართოების მიერ.',
 
 # Special:PasswordReset
 'passwordreset' => 'პაროლის აღდგენა',
-'passwordreset-text' => 'შეავსეთ ეს ფორმა, რათა კვლავ დააყენოთ თქვენი პაროლი.',
+'passwordreset-text-one' => 'შეავსეთ ეს ფორმა, რათა კვლავ დააყენოთ თქვენი პაროლი.',
+'passwordreset-text-many' => '{{PLURAL:$1|პაროლის თავიდან დასაყენებლად შეიყვანეთ მონაცემთა ერთ-ერთი ნაწილი.}}',
 'passwordreset-legend' => 'პაროლის აღდგენა',
 'passwordreset-disabled' => 'ამ ვიკიში პაროლის კვლავ დაყენების ფუნქცია გამორთულია.',
-'passwordreset-pretext' => '{{PLURAL:$1||შეიყვანეთ ქვემოთ მოცემულ მონაცემთა ერთ-ერთი ნაწილი.}}',
+'passwordreset-emaildisabled' => 'ამ ვიკიში ელ.ფოსტის ფუნქციები გამორთულია.',
 'passwordreset-username' => 'მომხმარებლის სახელი:',
 'passwordreset-domain' => 'დომენი:',
 'passwordreset-capture' => 'გამოსული ელ-ფოსტის ხილვა?',
@@ -986,6 +1003,7 @@ $2
 შესაძლოა, იგი წაიშალა.',
 'edit-conflict' => 'რედაქციების კონფლიქტი.',
 'edit-no-change' => 'თქვენი შესწორება არ იქნა შენახული, რადგანაც ტექსტის ცვლილება არ მოხდა.',
+'postedit-confirmation' => 'თქვენი რედაქტირება შენახულია.',
 'edit-already-exists' => 'ახალი გვერდის შექმნა არ მოხერხდა.
 ის უკვე არსებობს.',
 'defaultmessagetext' => 'შეტყობინების სტანდარტული ტექსტი',
@@ -993,7 +1011,7 @@ $2
 'invalid-content-data' => 'დაუშვებელი მონაცემები',
 'content-not-allowed-here' => '„$1“-ის შინაარსი დაუშვებელია [[$2]] გვერდზე',
 'editwarning-warning' => 'სხვა გვერდზე გადასვლამ შესაძლოა გამოიწვიოს ცვლილებების დაკარგვა.
-თუკი თქვენ დარეგისტრირებული ხართ სისტემაში, მაში შეგიძლიათ გამორთოთ ეს გაფრთხილება „{{int:prefs-editing}}“ თქვენი კონფიგურაციის განყოფილებაში.',
+თუკი თქვენ დარეგისტრირებული ხართ სისტემაში, მაშინ შეგიძლიათ გამორთოთ ეს გაფრთხილება თქვენი კონფიგურაციის განყოფილებაში „რედაქტირება“ .',
 
 # Content models
 'content-model-wikitext' => 'ვიკიტექსტი',
@@ -1234,7 +1252,6 @@ $1",
 'searchmenu-legend' => 'ძიების დაწყობა:',
 'searchmenu-exists' => "'''ამ ვიკიპროექტში არის გვერდი «[[:$1]]»'''",
 'searchmenu-new' => "'''შექმენით გვერდი „[[:$1]]“ ამ ვიკიში!'''",
-'searchhelp-url' => 'Help:დახმარება',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|აჩვენეთ გვერდები ამ პრეფიქსით]]',
 'searchprofile-articles' => 'ძირითადი გვერდები',
 'searchprofile-project' => 'დახმარების და პროექტის გვერდები',
@@ -1276,6 +1293,7 @@ $1",
 'powersearch-togglenone' => 'არაფერი',
 'search-external' => 'გარე ძიება',
 'searchdisabled' => '{{SITENAME}}ში ძებნა გაუქმებულია. თქვენ შეგიძლიათ დროის შუალედით Google-ით ძებნა. მიაქციეთ ყურადღება, რომ {{SITENAME}}ში შესაძლებელია მათი ინდექსები აქტუალური არ არის.',
+'search-error' => 'ძიებისას მოხდა შეცდომა: $1',
 
 # Preferences page
 'preferences' => 'კონფიგურაცია',
@@ -1296,7 +1314,7 @@ $1",
 'prefs-watchlist' => 'კონტროლის სია',
 'prefs-watchlist-days' => 'კონტროლის სიაში საჩვენებელი დღეები:',
 'prefs-watchlist-days-max' => 'მაქსიმუმ $1 {{PLURAL:$1|დღე|დღე}}',
-'prefs-watchlist-edits' => 'á\83ªá\83\95á\83\9aá\83\98á\83\9aá\83\94á\83\91á\83\94á\83\91á\83\98á\83¡ á\83\9bá\83\90á\83¥á\83¡á\83\98á\83\9bá\83\90á\83\9aá\83£á\83 á\83\98 á\83 á\83\90á\83\9dá\83\93á\83\94á\83\9cá\83\9dá\83\91á\83\98á\83¡ á\83©á\83\95á\83\94á\83\9cá\83\94á\83\91á\83\90 á\83\95á\83 á\83ªá\83\94á\83\9a á\83\99á\83\9dá\83\9cá\83¢á\83 á\83\9dá\83\9aá\83\98á\83¡ á\83¡á\83\98á\83\90á\83¨á\83\98:',
+'prefs-watchlist-edits' => 'á\83\92á\83\90á\83¤á\83\90á\83 á\83\97á\83\9dá\83\94á\83\91á\83£á\83\9a á\83\99á\83\9dá\83\9cá\83¢á\83 á\83\9dá\83\9aá\83\98á\83¡ á\83¡á\83\98á\83\90á\83¨á\83\98 á\83¡á\83\90á\83©á\83\95á\83\94á\83\9cá\83\94á\83\91á\83\94á\83\9aá\83\98 á\83ªá\83\95á\83\9aá\83\98á\83\9aá\83\94á\83\91á\83\94á\83\91á\83\98á\83¡ á\83\9bá\83\90á\83¥á\83¡á\83\98á\83\9bá\83\90á\83\9aá\83£á\83 á\83\98 á\83 á\83\90á\83\9dá\83\93á\83\94á\83\9cá\83\9dá\83\91á\83\90:',
 'prefs-watchlist-edits-max' => 'მაქსიმალური რაოდენობა: 1000',
 'prefs-watchlist-token' => 'კონტროლის სიის ტოკენი:',
 'prefs-misc' => 'სხვადასხვა',
@@ -1309,20 +1327,16 @@ $1",
 'resetprefs' => 'გადატვირთვა',
 'restoreprefs' => 'კონფიგურაციის საწყისზე დაბრუნება',
 'prefs-editing' => 'რედაქტირება',
-'prefs-edit-boxsize' => 'რედაქტირების ფანჯრის ზომა.',
 'rows' => 'რიგები:',
 'columns' => 'სვეტები',
 'searchresultshead' => 'ძიება',
 'resultsperpage' => 'შედეგები გვერდის მიხედვით:',
 'stub-threshold' => 'გაფორმების გასაუმჯობესებლად <a href="#" class="stub"> მოცემულია ესკიზების ბმულები</a> (ბაიტებში):',
 'stub-threshold-disabled' => 'გათიშულია',
-'recentchangesdays' => 'á\83\93á\83¦á\83\94á\83\94á\83\91á\83\98á\83¡ á\83©á\83\95á\83\94á\83\9cá\83\94á\83\91á\83\90 á\83\91á\83\9dá\83\9aá\83\9d á\83ªá\83\95á\83\9aá\83\98á\83\9aá\83\94á\83\91á\83\94á\83\91á\83¨ი:',
+'recentchangesdays' => 'á\83\91á\83\9dá\83\9aá\83\9d á\83ªá\83\95á\83\9aá\83\98á\83\9aá\83\94á\83\91á\83\94á\83\91á\83¨á\83\98 á\83¡á\83\90á\83©á\83\95á\83\94á\83\9cá\83\94á\83\91á\83\94á\83\9aá\83\98 á\83\93á\83¦á\83\94á\83\94á\83\91ი:',
 'recentchangesdays-max' => 'მაქსიმუმ $1 {{PLURAL:$1|დღე}}',
-'recentchangescount' => 'á\83 á\83\94á\83\93á\83\90á\83¥á\83ªá\83\98á\83\94á\83\91á\83\98á\83¡ á\83 á\83\90á\83\9dá\83\93á\83\94á\83\9cá\83\9dá\83\91á\83\90 á\83¡á\83\90á\83©á\83\95á\83\94á\83\9cá\83\94á\83\91á\83\9aá\83\90á\83\93:',
+'recentchangescount' => 'á\83¡á\83\90á\83©á\83\95á\83\94á\83\9cá\83\94á\83\91á\83\94á\83\9aá\83\98 á\83ªá\83\95á\83\9aá\83\98á\83\9aá\83\94á\83\91á\83\94á\83\91á\83\98á\83¡ á\83 á\83\90á\83\9dá\83\93á\83\94á\83\9cá\83\9dá\83\91á\83\90:',
 'prefs-help-recentchangescount' => 'შეიცავს ახალ შესწორებებს, გვერდების ისტორიებს, ჟურნალებს.',
-'prefs-help-watchlist-token' => 'ამ ველის შევსება საიდუმლო გასაღებით შექმნის RSS ტრანსლაციას თქვენი კონტროლის სიისთვის.
-ყველა, ვინც იცის გასაღები, შესძლებს იხილოს თქვენი კონტროლის სია. ფრთხილად იყავით საიდუმლო მნიშვნელობის არჩევისას.
-თქვენ შეგიძლიათ გამოიყენოთ ასევე შემთვევითი მნიშვნელობა: $1',
 'savedprefs' => 'თქვენ მიერ შერჩეული პარამეტრები დამახსოვრებულია.',
 'timezonelegend' => 'სასაათო სარტყელი:',
 'localtime' => 'ადგილობრივი დრო:',
@@ -1352,7 +1366,6 @@ $1",
 'prefs-common-css-js' => 'ზოგადი CSS/JS ყველა თემისთვის:',
 'prefs-reset-intro' => 'ეს გვერდი შეიძლება გამოყენებული იქნეს თქვენი კონფიგურაციის შესაცვლელად საწყის კონფიგურაციაზე. ამ მოქმედების დადასტურების შემთხვევაში, თქვენ ვეღარ შეძლებთ მის გაუქმებას.',
 'prefs-emailconfirm-label' => 'ელ–ფოსტის დადასტურება:',
-'prefs-textboxsize' => 'რედაქტირების ფანჯრის ზომა',
 'youremail' => 'ელექტრონული ფოსტა:',
 'username' => '{{GENDER:$1|მომხმარებლის სახელი}}:',
 'uid' => '{{GENDER:$1|მომხმარებლის}} იდენტიფიკატორი:',
@@ -1384,8 +1397,9 @@ $1",
 'prefs-i18n' => 'ინტერნაციონალიზაცია',
 'prefs-signature' => 'ხელმოწერა',
 'prefs-dateformat' => 'თარიღის ფორმატი',
-'prefs-timeoffset' => 'á\83\93á\83 á\83\9dá\83\98á\83¡ á\83\92á\83\90á\83 á\83\93á\83\90á\83\90á\83\93á\83\92ილება',
+'prefs-timeoffset' => 'á\83¡á\83\90á\83¡á\83\90á\83\90á\83\97á\83\9d á\83¡á\83\90á\83 á\83¢á\83§á\83\9aá\83\98á\83¡ á\83ªá\83\95á\83\9aილება',
 'prefs-advancedediting' => 'გაფართოებული პარამეტრები',
+'prefs-editor' => 'რედაქტორი',
 'prefs-advancedrc' => 'გაფართოებული პარამეტრები',
 'prefs-advancedrendering' => 'გაფართოებული პარამეტრები',
 'prefs-advancedsearchoptions' => 'გაფართოებული პარამეტრები',
@@ -1422,6 +1436,7 @@ $1",
 'userrights-changeable-col' => 'ჯგუფები, რომლებიც შეგიძლიათ შეცვალოთ',
 'userrights-unchangeable-col' => 'ჯგუფები, რომლებიც არ შეგიძლიათ შეცვალოთ',
 'userrights-irreversible-marker' => '$1*',
+'userrights-conflict' => 'მომხმარებელთა უფლებების კონფლიქტი! გთხოვთ, ხელმეორედ შეინახოთ თქვენი ცვლილებები.',
 
 # Groups
 'group' => 'ჯგუფი:',
@@ -1492,6 +1507,8 @@ $1",
 'right-editusercssjs' => 'სხვა მომხმარებლების CSS- и JS- ფაილების შესწორება',
 'right-editusercss' => 'სხვა მომხმარებლების CSS- ფაილების შესწორება',
 'right-edituserjs' => 'სხვა მომხმარებლების JS- ფაილების შესწორება',
+'right-editmyusercss' => 'თქვენი საკუთარი CSS-ფაილების რედაქტირება',
+'right-editmyuserjs' => 'თქვენი საკუთარი JavaScript-ფაილების რედაქტირება',
 'right-rollback' => 'გარკვეულ გვერდზე ბოლო მომხმარებლის რედაქტირების სწრაფი გაუქმება',
 'right-markbotedits' => 'გაუქმებული შესწორებების მონიშვნა როგორც ბოტის',
 'right-noratelimit' => 'სიჩქარის შეზღუდვის არ არსებობა',
@@ -1553,6 +1570,8 @@ $1",
 'action-userrights-interwiki' => 'მომხმარებლების უფლებების შეცვლა სხვა ვიკიებში',
 'action-siteadmin' => 'მონაცემთა ბაზის დაბლოკვა და განბლოკვა',
 'action-sendemail' => 'ელ-ფოსტების გაგზავნა',
+'action-editmywatchlist' => 'თქვენი კონტროლის სიის რედაქტირება',
+'action-editmyprivateinfo' => 'თქვენი პირადი ინფორმაციის რედაქტირება',
 
 # Recent changes
 'nchanges' => '$1 ცვლილება',
@@ -1597,7 +1616,6 @@ $1",
 'recentchangeslinked-feed' => 'დაკავშირებული ცვლილებები',
 'recentchangeslinked-toolbox' => 'დაკავშირებული ცვლილებები',
 'recentchangeslinked-title' => '„$1“-თან დაკავშირებული ცვლილებები',
-'recentchangeslinked-noresult' => 'მითითებულ პერიოდში ცვლილებები დაკავშირებულ გვერდებზე არ მომხდარა.',
 'recentchangeslinked-summary' => "ეს არის მითითებულ გვერდთან (ან მითითებული კატეგორიის წევრებთან) დაკავშირებულ გვერდებში ბოლო დროს განხორციელებული ცვლილებების სია.
 გვერდები [[Special:Watchlist|თქვენი კონტროლის სიაში]] გამოყოფილია '''სქლად'''.",
 'recentchangeslinked-page' => 'გვერდის დასახელება:',
@@ -1609,7 +1627,7 @@ $1",
 'reuploaddesc' => 'გააუქმეთ ატვირთვა და დაუბრუნდით ატვირთვის ფორმას.',
 'upload-tryagain' => 'შეინახეთ ფაილის შეცვლილი აღწერა',
 'uploadnologin' => 'რეგისტრაცია არ გაქვთ გავლილი',
-'uploadnologintext' => 'á\83¤á\83\90á\83\98á\83\9aá\83\98á\83¡ á\83\90á\83¢á\83\95á\83\98á\83 á\83\97á\83\95á\83\98á\83¡á\83\97á\83\95á\83\98á\83¡ á\83\97á\83¥á\83\95á\83\94á\83\9c á\83£á\83\9cá\83\93á\83\90 [[Special:UserLogin|á\83¨á\83\94á\83®á\83\95á\83\98á\83\93á\83\94á\83\97]].',
+'uploadnologintext' => 'á\83¤á\83\90á\83\98á\83\9aá\83\98á\83¡ á\83\90á\83¡á\83\90á\83¢á\83\95á\83\98á\83 á\83\97á\83\90á\83\93 á\83\97á\83¥á\83\95á\83\94á\83\9c á\83£á\83\9cá\83\93á\83\90 [[Special:UserLogin|á\83¨á\83\94á\83®á\83\95á\83\98á\83\93á\83\94á\83\97]] á\83¡á\83\98á\83¡á\83¢á\83\94á\83\9bá\83\90á\83¨á\83\98.',
 'upload_directory_missing' => 'შესანახი დირექტორია ($1) არ არსებობს და მისი აღდგენა ვებ-სერვერის მიერ შეუძლებელია.',
 'upload_directory_read_only' => 'ვებსერვერი ვერ იწერს ატვირთვის დირექტორიაში ($1).',
 'uploaderror' => 'ატვირთვის შეცდომა',
@@ -2238,10 +2256,9 @@ $1',
 'unwatchthispage' => 'შეაჩერეთ კონტროლი',
 'notanarticle' => 'შიგთავსის გვერდი არ არის',
 'notvisiblerev' => 'შესწორება წაშლილია',
-'watchnochange' => 'არც ერთი თქვენი კონტროლის ქვეშ მყოფი ერთეული არ იქნა რედაქტირებული ნაჩვენებ დროში.',
 'watchlist-details' => '$1 გვერდია თქვენი კონტროლის სიაში განხილვის გვერდების ჩაუთვლელად.',
-'wlheader-enotif' => 'ელ. ფოსტით შეტყობინება ჩართულია.',
-'wlheader-showupdated' => 'გვერდები, რომლებშიც შეტანილ იქნა ცვლილებები თქვენი ბოლო ვიზიტის შემდეგ, აღნიშნულია მუქად.',
+'wlheader-enotif' => 'ელ.ფოსტით შეტყობინება ჩართულია.',
+'wlheader-showupdated' => "თქვენი ბოლო ვიზიტის შემდეგ შეცვლილი გვერდები, აღნიშნულია '''მუქად'''.",
 'watchmethod-recent' => 'მიმდინარეობს უახლესი შესწორებების შემოწმება კონტროლის ქვეშ მყოფი გვერდების მიხედვით.',
 'watchmethod-list' => 'მიმდინარეობს თქვენი კონტროლის ქვეშ მყოფი გვერდების შემოწმება უახლესი შესწორებების მიხედვით.',
 'watchlistcontains' => 'თქვენი კონტროლის სია შეიცავს $1 გვერდს.',
@@ -2491,7 +2508,7 @@ $1',
 'mycontris' => 'წვლილი',
 'contribsub2' => '$1 ($2) თვის',
 'nocontribs' => 'ძებნისას მითითებული პარამეტრების შესაბამისი არც ერთი ცვლილება ნაპოვნი არ არის',
-'uctop' => '(á\83\97á\83\90á\83\95á\83\98)',
+'uctop' => '(á\83\9bá\83\98á\83\9bá\83\93á\83\98á\83\9cá\83\90á\83 á\83\94)',
 'month' => 'თვე:',
 'year' => 'წელი:',
 
@@ -2574,7 +2591,7 @@ $1',
 'blockipsuccesssub' => 'ბლოკირება შესრულებულია',
 'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] ბლოკირებულ იქნა.<br />
 იხილეთ [[Special:BlockList|ბლოკირებული IP მისამართების სია]].',
-'ipb-blockingself' => 'á\83\97á\83¥á\83\95á\83\94á\83\9c á\83\90á\83\9eá\83\98á\83 á\83\94á\83\91á\83\97 á\83\93á\83\90á\83\91á\83\9aá\83\9dá\83\99á\83\9dá\83\97 á\83¡á\83\90á\83\99á\83£á\83\97á\83\90á\83 á\83\98 á\83\97á\83\90á\83\95á\83\98! დარწმუნებული ხართ, რომ გსურთ ამის გაკეთება?',
+'ipb-blockingself' => 'á\83\97á\83¥á\83\95á\83\94á\83\9c á\83\90á\83\9eá\83\98á\83 á\83\94á\83\91á\83\97 á\83¡á\83\90á\83\99á\83£á\83\97á\83\90á\83 á\83\98 á\83\97á\83\90á\83\95á\83\98á\83¡ á\83\93á\83\90á\83\91á\83\9aá\83\9dá\83\99á\83\95á\83\90á\83¡! დარწმუნებული ხართ, რომ გსურთ ამის გაკეთება?',
 'ipb-confirmhideuser' => 'თქვენ აპირებთ მომხმარებლის დაბლოკვას და ჩართული გაქვთ ოპცია „დამალე მომხმარებელი“. ასეთი ქმედება აღკვეთს მომხმარებლის სახელს ყველა სიიდან და ჟურნალების ჩანაწერებიდან. დარწმუნებული ხართ, რომ ამის გაკეთება გსურთ?',
 'ipb-edit-dropdown' => 'დაბლოკვის მიზეზების რედაქტირება',
 'ipb-unblock-addr' => 'ბლოკის მოხსნა $1',
@@ -2814,6 +2831,8 @@ $1',
 'thumbnail-more' => 'გაზარდე',
 'filemissing' => 'ფაილი აკლია',
 'thumbnail_error' => 'ესკიზის შექმნის შეცდომა: $1',
+'thumbnail_error_remote' => 'შეცდომის შეტყობინება მომხმარებლისაგან $1:
+$2',
 'djvu_page_error' => 'DjVu გვერდის ნომერი',
 'djvu_no_xml' => 'შეუძლებელია XML-ის მიღება DjVu-სთვის',
 'thumbnail-temp-create' => 'დროებითი ესკიზის ფაილის შექმნა ვერ ხერხდება',
@@ -3467,7 +3486,7 @@ $8',
 'exif-flash-function-1' => 'ფლეშის გათიშვა',
 'exif-flash-redeye-1' => 'წითელი თვალების მოშორების რეჟიმი',
 
-'exif-focalplaneresolutionunit-2' => 'á\83\93á\83\98á\83£მი',
+'exif-focalplaneresolutionunit-2' => 'á\83\93á\83£á\83\98მი',
 
 'exif-sensingmethod-1' => 'განუსაზღვრელი',
 'exif-sensingmethod-2' => 'ერთჩიპიანი მატრიცული ფერადი სენსორი',
@@ -3713,7 +3732,6 @@ $5
 'semicolon-separator' => ';&#32;',
 'comma-separator' => ',&#32;',
 'colon-separator' => ':&#32;',
-'autocomment-prefix' => '-&#32;',
 'pipe-separator' => '&#32;|&#32;',
 'word-separator' => '&#32;',
 'ellipsis' => '...',
@@ -3824,7 +3842,6 @@ $5
 'version-other' => 'სხვა',
 'version-mediahandlers' => 'მედია დამუშავება',
 'version-hooks' => 'ჰუკები',
-'version-extension-functions' => 'გაფართოებათა ფუნქციები',
 'version-parser-extensiontags' => 'სინტაქსური ანალიზატორის თეგი',
 'version-parser-function-hooks' => 'სინტაქსური ანალიზატორის ჰუკი',
 'version-hook-name' => 'ჰუკის სახელი',
@@ -3850,9 +3867,15 @@ MediaWiki ვრცელდება იმ იმედით, რომ ი
 'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath გზა სკრიპტისაკენ]',
 
 # Special:Redirect
+'redirect' => 'გადამისამართება ფაილიდან, მომხმარებლიდან ან ვერსიის იდენტიფიკატორიდან',
+'redirect-legend' => 'გადამისამართება ფაილზე ან გვერდზე',
 'redirect-submit' => 'მიდი',
+'redirect-lookup' => 'ძიება:',
+'redirect-value' => 'მნიშვნელობა:',
 'redirect-user' => 'მომხმარებლის იდენტიფიკატორი',
+'redirect-revision' => 'გვერდის ვერსია',
 'redirect-file' => 'ფაილის სახელი',
+'redirect-not-exists' => 'მნიშვნელობა ვერ მოიძებნა',
 
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'ერთნაირი ფაილების ძიება',
index 0555201..091d809 100644 (file)
@@ -368,7 +368,6 @@ $messages = array(
 'disclaimers' => 'Juwapkershilikten bas tartıw',
 'disclaimerpage' => 'Project:Juwapkershilikten bas tartıw',
 'edithelp' => "O'zgertiw anıqlaması",
-'edithelppage' => "Help:O'zgertiw",
 'helppage' => 'Help:Mazmunı',
 'mainpage' => 'Bas bet',
 'mainpage-description' => 'Bas bet',
@@ -825,7 +824,6 @@ Sha'rtli belgiler: (ha'z.) = ha'zirgi nusqasi menen parqı,
 'searchmenu-legend' => 'İzlew sazlawları',
 'searchmenu-exists' => "'''Bul wikide \"[[:\$1]]\" atamalı bet bar'''",
 'searchmenu-new' => "'''Bul wikide \"[[:\$1]]\" betin jaratıw!'''",
-'searchhelp-url' => 'Help:Mazmunı',
 'searchmenu-prefix' => "[[Special:PrefixIndex/$1|Usı prefiks penen baslanıwshı betlerdi ko'rset]]",
 'searchprofile-articles' => "Mag'lıwmat betleri",
 'searchprofile-project' => "Ja'rdem ha'm Proekt betleri",
@@ -884,7 +882,6 @@ Barlıq mag'lıwmat tu'rin (sonın' ishinde sa'wbet betlerdi, shablonlardı h.t.
 'saveprefs' => 'Saqla',
 'resetprefs' => "Saqlanbag'an o'zgerislerdi o'shir",
 'prefs-editing' => "O'zgertiw",
-'prefs-edit-boxsize' => "O'zgertiw aynasının' o'lshemi.",
 'rows' => 'Qatarlar:',
 'columns' => "Bag'analar:",
 'searchresultshead' => 'İzlew',
@@ -1084,7 +1081,6 @@ Barlıq mag'lıwmat tu'rin (sonın' ishinde sa'wbet betlerdi, shablonlardı h.t.
 'recentchangeslinked-feed' => "Baylanıslı o'zgerisler",
 'recentchangeslinked-toolbox' => "Baylanıslı o'zgerisler",
 'recentchangeslinked-title' => '"$1" ushın baylanıslı o\'zgerisler',
-'recentchangeslinked-noresult' => "Siltelgen betlerde berilgen waqıt dawamında hesh qanday o'zgeris bolmag'an.",
 'recentchangeslinked-summary' => "Bul arnawlı bette siltelgen betlerdegi aqırg'ı o'zgerisler dizimi ko'rsetilgen. [[Special:Watchlist|Baqlaw dizimin'izdegi]] betler '''juwan''' ha'ribi menen ko'rsetilgen.",
 'recentchangeslinked-page' => 'Bet ataması:',
 'recentchangeslinked-to' => "Kerisinshe, berilgen betke silteytug'ın betlerdegi o'zgerislerdi ko'rset",
index 8ce650e..9d0e42d 100644 (file)
@@ -86,6 +86,7 @@ $messages = array(
 'tog-diffonly' => 'Ur temliḍ-iyi-d ara ayen yellan seddaw imgerraden',
 'tog-showhiddencats' => 'Beqqeḍ taggayin yeffren',
 'tog-norollbackdiff' => 'Ur beqqeḍ ara "diff" ma yella usemmet',
+'tog-useeditwarning' => 'Σeggen iyid mi ara fγaγ seg usebter mebla ma skeslaγ ibeddilen.',
 
 'underline-always' => 'Daymen',
 'underline-never' => 'Abaden',
@@ -281,7 +282,6 @@ $1',
 'disclaimers' => 'Iɣtalen',
 'disclaimerpage' => 'Project:Iɣtalen',
 'edithelp' => 'Tallat deg ubeddel',
-'edithelppage' => 'Help:Abeddel',
 'helppage' => 'Help:Agbur',
 'mainpage' => 'Asebter amenzawi',
 'mainpage-description' => 'Asebter amenzawi',
@@ -551,10 +551,8 @@ Ahat ilaq ad beddeleḍ awal ik/im n uɛaddi naɣ ad ssutereḍ awal n uɛaddi a
 
 # Special:PasswordReset
 'passwordreset' => 'Awennez tikkelt nniḍen n awal uɛaddi',
-'passwordreset-text' => 'Ččur tiferkit agi iwakken ad eṭṭfeḍ tirawt n usmekti  deg-es tilɣa n umiḍan inek/inem.',
 'passwordreset-legend' => 'Awennez tikkelt nniḍen n awal uɛaddi',
 'passwordreset-disabled' => 'Awennez n awal uɛaddi yensa deg uwiki agi.',
-'passwordreset-pretext' => '{{PLURAL:$1||Sekcem aferdis n isefka ddaw agi}}',
 'passwordreset-username' => 'Isem n useqdac',
 'passwordreset-domain' => 'Talɣut :',
 'passwordreset-capture' => 'Ẓeṛ tirawt ?',
@@ -1015,7 +1013,6 @@ Tzemreḍ ad affeḍ tilɣa deg [{{fullurl:{{#Special:Log}}/delete|page={{FULLPA
 'searchmenu-legend' => 'Tixtiṛiyin n unadi',
 'searchmenu-exists' => "'''Yella asebter s isem \"[[:\$1]]\" deg wiki agi.'''",
 'searchmenu-new' => "'''Snulfud asebter « [[:$1|$1]] » deg wiki agi !'''",
-'searchhelp-url' => 'Help:Agbur',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Nadi isebtar i zwaren s adat agi]]',
 'searchprofile-articles' => 'Isebtar n ugbur',
 'searchprofile-project' => 'Isebtaren n tallat dɣa n usenfa',
@@ -1090,7 +1087,6 @@ Tzemreḍ ad affeḍ tilɣa deg [{{fullurl:{{#Special:Log}}/delete|page={{FULLPA
 'resetprefs' => 'Asfeḍ n ibeddilen ur ḥrezen ara',
 'restoreprefs' => 'Err akkw azalen s lexṣas',
 'prefs-editing' => 'Abedddil',
-'prefs-edit-boxsize' => 'Lqedd n usfaylu n ubeddel.',
 'rows' => 'Ijerriḍen:',
 'columns' => 'Tigejda:',
 'searchresultshead' => 'Anadi',
@@ -1101,9 +1097,6 @@ Tzemreḍ ad affeḍ tilɣa deg [{{fullurl:{{#Special:Log}}/delete|page={{FULLPA
 'recentchangesdays-max' => 'Afellay $1 {{PLURAL:$1|ass|ussan}}',
 'recentchangescount' => 'Amḍan n ibeddilen i ubeqqeḍ s lexṣas :',
 'prefs-help-recentchangescount' => 'Wagi yesɛa deg-es ibeddilen ineggura, isebtar n umezruy d iɣmisen.',
-'prefs-help-watchlist-token' => 'Ččuṛ taɣzut agi s azal lbaḍna dɣa asuddem RSS ad yetwarew i umuɣ inek/inem n uɛassi.
-Akkw amdan yesnen tiddest agi ad yezmer ad i ɣeṛ umuɣ inek/inem n uɛassi, ihi ilaq ad xtiṛeḍ azal yegdelen.
-Ha-t-an azal agacuran i tzemreḍ ad seqdeceḍ : $1',
 'savedprefs' => 'Isemyifiyen inek yettusmektan.',
 'timezonelegend' => 'Iẓḍi n ukud :',
 'localtime' => 'Asrag adigan :',
@@ -1134,7 +1127,6 @@ Ha-t-an azal agacuran i tzemreḍ ad seqdeceḍ : $1',
 'prefs-reset-intro' => 'Tzemreḍ ad seqdeceḍ asebter agi iwakken ad erreḍ iɣewwaren inek/inem ar azalen n lexṣas n usmel.
 Wagi ur yezmer ara ad yetwekkes.',
 'prefs-emailconfirm-label' => 'Aragag n tirawt :',
-'prefs-textboxsize' => 'Tiddi n usfaylu n ubeddel',
 'youremail' => 'E-mail *:',
 'username' => 'Isem n wemseqdac:',
 'uid' => 'Amseqdac ID:',
@@ -1372,7 +1364,6 @@ Ur ilaq ara ad i sɛu ugar n $1 {{PLURAL:$1|asekkil|isekkilen}}.',
 'recentchangeslinked-feed' => 'Ibeddlen imaynuten n isebtar myezdin',
 'recentchangeslinked-toolbox' => 'Ibeddlen imaynuten n isebtar myezdin',
 'recentchangeslinked-title' => 'Tiḍefri n isebtaren iqqenen ar « $1 »',
-'recentchangeslinked-noresult' => 'Ulac abeddel deg isebtar myezdin deg tawala i textareḍ.',
 'recentchangeslinked-summary' => "Asebter uslig agi i sekned ibeddlen imaynuten ɣef isebtaren iqqenen. Isebtaren n [[Special:Watchlist|umuɣ n uḍfar]] llan s '''ufuyan'''.",
 'recentchangeslinked-page' => 'Isen n usebter :',
 'recentchangeslinked-to' => 'Beqqeḍ ibeddilen n isebtareb i sɛan azday ɣer asebter nni wala anemgal',
@@ -1998,7 +1989,6 @@ Ma tebɣiḍ ad tekkseḍ asebter seg wumuɣ n uɛessi inek, wekki ɣef \"Fakk a
 'unwatchthispage' => 'Fakk aɛassi',
 'notanarticle' => 'Mačči d amagrad',
 'notvisiblerev' => 'Lqem tetwemḥa',
-'watchnochange' => 'Ulaḥedd n yiferdas n wumuɣ n uɛessi inek ma yettubeddel deg tawala i textareḍ.',
 'watchlist-details' => 'ttɛassaɣ {{PLURAL:$1|$1 usebter|$1 n isebtaren}} mebla isebtaren "amyannan".',
 'wlheader-enotif' => 'Yeǧǧa Email n talɣut.',
 'wlheader-showupdated' => "Isebtar ttubeddlen segwasmi tkecmeḍ tikelt taneggarut ttbanen-d s '''uḍris aberbuz'''",
index e39a75f..89755d5 100644 (file)
@@ -292,7 +292,6 @@ $1',
 'disclaimers' => 'Жэуап Ӏыгъыныр зыщхьэщыхын',
 'disclaimerpage' => 'Project:Пщэрылъу къэмыштэн',
 'edithelp' => 'Гъэтэрэзыным и щӀэупщӀэ',
-'edithelppage' => 'Help:Гъэтэрэзыным и дэIэпыкъуэгъу',
 'helppage' => 'Help:ДэӀэпыкъуэгъу',
 'mainpage' => 'НапэкӀуэцӀ нэхъыщхьэ',
 'mainpage-description' => 'НапэкӀуэцӀ нэхъыщхьэ',
@@ -1002,7 +1001,6 @@ $1",
 'prefs-email' => 'Электронэ почтэм и опциэхэр',
 'prefs-rendering' => 'Сурэтыр',
 'prefs-editing' => 'Гъэтэрэзыгъуэ',
-'prefs-edit-boxsize' => 'Гъэтэрэзыгъуэм и нэкӀубгъум и инагъыр',
 'searchresultshead' => 'Къэгъуэтын',
 
 # Groups
index 57caf22..7c987ae 100644 (file)
  * @author לערי ריינהארט
  */
 
+$namespaceNames = array(
+       NS_TALK             => 'Disolo',
+       NS_USER             => 'Kisadi',
+       NS_USER_TALK        => 'Disolo_kisadi',
+       NS_PROJECT_TALK     => 'Disolo_$1',
+       NS_FILE             => 'Fisye',
+       NS_FILE_TALK        => 'Disolo_fisye',
+       NS_HELP             => 'Lusadisu',
+       NS_HELP_TALK        => 'Disolo_lusadisu',
+       NS_CATEGORY         => 'Kalasi',
+       NS_CATEGORY_TALK    => 'Disolo_kalasi',
+);
+
 $messages = array(
 'underline-always' => 'Bambala nyonso',
 'underline-never' => 'Ata mbala mosi ve',
index 38f2da2..6a1d29d 100644 (file)
@@ -11,7 +11,6 @@
  */
 
 $fallback = 'ur';
-
 $rtl = true;
 
 $messages = array(
@@ -248,7 +247,6 @@ $1',
 'disclaimers' => 'اعلانات',
 'disclaimerpage' => 'Project:عام کھوار اعلان',
 'edithelp' => 'مدد براۓ ترمیم',
-'edithelppage' => 'Help:ترمیم',
 'helppage' => 'Help:فھرست',
 'mainpage' => 'آویلو صفحہ',
 'mainpage-description' => 'سرورق',
@@ -276,7 +274,6 @@ $1',
 'newmessagesdifflink' => 'تـجـدیـد مـاقـبل آخـراری فـرق',
 'youhavenewmessagesmulti' => 'ء$1 تہ بچے نوغ نوغ پیغامات شینی',
 'editsection' => 'ترمیم',
-'editsection-brackets' => '[$1]',
 'editold' => 'ترمیم',
 'viewsourceold' => 'مآخذو لوڑے',
 'editlink' => 'تدوین کورے',
@@ -742,7 +739,6 @@ HTML tags لوڑے.',",
 'recentchangeslinked' => 'متعلقہ تبدیلی',
 'recentchangeslinked-toolbox' => 'موقعی تبدیلی',
 'recentchangeslinked-title' => 'متعلقہ تبدیلی "$1"',
-'recentchangeslinked-noresult' => 'ھمی صفحا موجودہ وختہ کیہ تبدیلی نیکی۔',
 'recentchangeslinked-summary' => "ھیہ ھتے تبدیلیان لسٹ شیر کہ ھیتان پھوک مدا پروشٹی ساوزینو بیتی شینی وا ھے صفحان سوم جستہ خور کیہ صفحہ چوکی شینی یا کیہ خاص زمرہ جاتو ممبرانن سوم چوکی شینی<br />
 ساوزیرو [[Special:Watchlist|موڑا صفحہ]] '''بولڈ''' شینی",
 'recentchangeslinked-page' => 'کھوار ویکیپیڈیو منصوبو صفحو لوڑے',
index 5454422..a9c1d7d 100644 (file)
@@ -292,7 +292,6 @@ $1',
 'disclaimers' => 'Diwanê mesulêti',
 'disclaimerpage' => 'Project:Diwanê mesuliyetê bıngey',
 'edithelp' => 'Phoştdariya vurnaişi',
-'edithelppage' => 'Help:Pele çıturi vurnina',
 'helppage' => 'Help:Tedeestey',
 'mainpage' => 'Pela Seri',
 'mainpage-description' => 'Pela seri',
@@ -317,7 +316,6 @@ $1',
 'newmessagesdifflink' => 'vurnaiso peyên',
 'youhavenewmessagesmulti' => '$1 de mesacê sımaê newey estê',
 'editsection' => 'bıvurne',
-'editsection-brackets' => '[$1]',
 'editold' => 'bıvurne',
 'viewsourceold' => 'çımey bıvêne',
 'editlink' => 'bıvurne',
@@ -741,7 +739,6 @@ Eke şertê ilawekerdey ke niyê ro, idarekerê bini {{SITENAME}} de nêşikinê
 'viewprevnext' => 'Bıvêne ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-exists' => "''Ena 'Wikipediya de ser \"[[:\$1]]\" yew pel esto'''",
 'searchmenu-new' => "'''Nê wiki de pela \"[[:\$1]]\" baferne!'''",
-'searchhelp-url' => 'Help:Tedeestey',
 'searchprofile-articles' => 'Pelê tedeesteu',
 'searchprofile-project' => 'Pelê yardımi u procey',
 'searchprofile-images' => 'Multimedya',
@@ -948,7 +945,6 @@ Kaberê bini ke şıma de kewti irtıbat, adresa e-postey şıma eşkera nêbena
 'recentchangeslinked' => 'Ney sero vurnayene',
 'recentchangeslinked-toolbox' => 'Ney sero vurnayene',
 'recentchangeslinked-title' => 'Heqa "$1"i de vurnais',
-'recentchangeslinked-noresult' => 'Pelanê ke link biye ey vurnayîşî çino.',
 'recentchangeslinked-summary' => "Lista cêrêne, pela bêlikerdiye rê (ya ki karberunê kategoriya bêlikerdiye rê) pelunê girêdaoğu de lista de vurnaisê peyênuna.
 [[Special:Watchlist|Lista sımawa şêrkedişi de]] peli be nusto '''qolınd''' bêli kerdê.",
 'recentchangeslinked-page' => 'Namê pele:',
index c757c53..be675cb 100644 (file)
@@ -587,7 +587,6 @@ $messages = array(
 'disclaimers' => 'جاۋاپكەرشىلىكتەن باس تارتۋ',
 'disclaimerpage' => 'Project:جاۋاپكەرشىلىكتەن باس تارتۋ',
 'edithelp' => 'وندەۋ انىقتاماسى',
-'edithelppage' => 'Help:وڭدەۋ',
 'helppage' => 'Help:مازمۇنى',
 'mainpage' => 'باستى بەت',
 'mainpage-description' => 'باستى بەت',
@@ -1112,7 +1111,6 @@ $3 كەلتىرىلگەن سەبەبى: ''$2''",
 'prevn' => 'الدىڭعى {{PLURAL:$1|$1}}',
 'nextn' => 'كەلەسى {{PLURAL:$1|$1}}',
 'viewprevnext' => 'كورسەتىلۋى: ($1 {{int:pipe-separator}} $2) ($3) جازبا',
-'searchhelp-url' => 'Help:مازمۇنى',
 'search-result-size' => '$1 ($2 ٴسوز)',
 'search-result-score' => 'اراقاتىناستىلىعى: $1 %',
 'search-redirect' => '(ايداعىش $1)',
@@ -1333,7 +1331,6 @@ $3 كەلتىرىلگەن سەبەبى: ''$2''",
 'recentchangeslinked-feed' => 'قاتىستى وزگەرىستەر',
 'recentchangeslinked-toolbox' => 'قاتىستى وزگەرىستەر',
 'recentchangeslinked-title' => '«$1» دەگەنگە قاتىستى وزگەرىستەر',
-'recentchangeslinked-noresult' => 'سىلتەلگەن بەتتەردە كەلتىرىلگەن مەرزىمدە ەشقانداي وزگەرىس بولماعان.',
 'recentchangeslinked-summary' => "بۇل تىزىمدە وزىندىك بەتتەن سىلتەلگەن بەتتەردەگى (نە وزىندىك سانات مۇشەلەرىندەگى) ىستەلگەن جۋىقتاعى وزگەرىستەر بەرىلەدى.
 [[Special:Watchlist|باقىلاۋ تىزىمىڭىزدەگى]] بەتتەر '''جۋان''' بولىپ بەلگىلەنەدى.",
 'recentchangeslinked-page' => 'بەت اتاۋى:',
@@ -1720,7 +1717,6 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'unwatchthispage' => 'باقىلاۋدى توقتاتۋ',
 'notanarticle' => 'ماعلۇمات بەتى ەمەس',
 'notvisiblerev' => 'تۇزەتۋ جويىلدى',
-'watchnochange' => 'كورسەتىلگەن مەرزىمدە ەش باقىلانعان دانا وڭدەلگەن جوق.',
 'watchlist-details' => 'تالقىلاۋ بەتتەرىن ساناماعاندا $1 بەت باقلانىلادى.',
 'wlheader-enotif' => 'ەسكەرتۋ حات جىبەرۋى قوسىلعان.',
 'wlheader-showupdated' => "سوڭعى كەلىپ-كەتۋىڭىزدەن بەرى وزگەرتىلگەن بەتتەردى '''جۋان''' قارىپىمەن كورسەت",
@@ -2822,7 +2818,6 @@ $5
 'version-other' => 'تاعى باسقالار',
 'version-mediahandlers' => 'تاسپا وڭدەتكىشتەرى',
 'version-hooks' => 'جەتە تۇزاقتارى',
-'version-extension-functions' => 'كەڭەيتىمدەر جەتەلەرى',
 'version-parser-extensiontags' => 'قۇرىلىمدىق تالداتقىش كەڭەيتىمدەرىنىڭ بەلگىلەمەرى',
 'version-parser-function-hooks' => 'قۇرىلىمدىق تالداتقىش جەتەلەرىنىڭ تۇزاقتارى',
 'version-hook-name' => 'تۇزاق اتاۋى',
index 108dd9e..06779b7 100644 (file)
@@ -9,9 +9,11 @@
  *
  * @author AlefZet
  * @author Alibek Kisybay
+ * @author Arystanbek
  * @author Daniyar
  * @author GaiJin
  * @author Kaztrans
+ * @author Nemo bis
  * @author Urhixidur
  */
 
@@ -382,7 +384,7 @@ $messages = array(
 'tog-previewonfirst' => 'Бірінші өңдегенде қарап шығу',
 'tog-nocache' => 'Бет бүркемелеуін өшір',
 'tog-enotifwatchlistpages' => 'Бақылауыңыздағы бет өзгергенде е-поштаға хабарлама жіберу',
-'tog-enotifusertalkpages' => 'Талқылауым өзгергенде маған хат жібер',
+'tog-enotifusertalkpages' => 'Талқылау бетім өзгергенде маған хат жібер',
 'tog-enotifminoredits' => 'Шағын өңдеме туралы да маған хат жібер',
 'tog-enotifrevealaddr' => 'Е-поштамның мекенжайын ескерту хаттарда аш',
 'tog-shownumberswatching' => 'Бақылап тұрған қатысушылардың санын көрсет',
@@ -402,6 +404,7 @@ $messages = array(
 'tog-showhiddencats' => 'Жасырын санаттарды көрсету',
 'tog-noconvertlink' => 'Сілтеме атауларын ауыстырма',
 'tog-norollbackdiff' => 'Шегіндіруден кейін нұсқалардың айырмашылығын көрсетпеу',
+'tog-useeditwarning' => 'Өңдемесі сақталмаған парақшадан шығар кезде ескерту',
 
 'underline-always' => 'Әрқашан',
 'underline-never' => 'Ешқашан',
@@ -465,20 +468,32 @@ $messages = array(
 'oct' => 'қаз',
 'nov' => 'қар',
 'dec' => 'жел',
+'january-date' => 'Қаңтар $1',
+'february-date' => 'Ақпан $1',
+'march-date' => 'Наурыз $1',
+'april-date' => 'Сәуір $1',
+'may-date' => 'Мамыр $1',
+'june-date' => 'Маусым $1',
+'july-date' => 'Шілде $1',
+'august-date' => 'Тамыз $1',
+'september-date' => 'Қыркүйек $1',
+'october-date' => 'Қазан $1',
+'november-date' => 'Қараша $1',
+'december-date' => 'Желтоқсан $1',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Санат|Санаттар}}',
-'category_header' => '«$1» санатындағы беттер',
+'category_header' => '"$1" санатындағы беттер',
 'subcategories' => 'Санатшалар',
-'category-media-header' => '«$1» санатындағы таспалар',
-'category-empty' => "''Бұл санатта ағымда еш бет не таспа жоқ.''",
+'category-media-header' => '"$1" санатындағы медиа',
+'category-empty' => "''Бұл санатта ағымда еш бет немесе медиа жоқ.''",
 'hidden-categories' => '{{PLURAL:$1|Жасырын санат|Жасырын санаттар}}',
 'hidden-category-category' => 'Жасырын санаттар',
 'category-subcat-count' => '{{PLURAL:$2|Бұл санатта тек келесі санатша бар.|Бұл санатта келесі $1 санатша бар (не барлығы $2).}}',
 'category-subcat-count-limited' => 'Бұл санатта келесі $1 санатша бар.',
-'category-article-count' => '{{PLURAL:$2|Бұл санатта тек келесі бет бар.|Бұл санатта келесі $1 бет бар (не барлығы $2).}}',
+'category-article-count' => '{{PLURAL:$2|Бұл санатта тек келесі бет бар.|Бұл санатта келесі {{PLURAL:$1|бет|$1 беттер}} бар, барлығы $2 сыртында.}}',
 'category-article-count-limited' => 'Ағымдағы санатта келесі $1 бет бар.',
-'category-file-count' => '{{PLURAL:$2|Ð\91ұд Ñ\81анаÑ\82Ñ\82а Ñ\82ек ÐºÐµÐ»ÐµÑ\81Ñ\96 Ñ\84айл Ð±Ð°Ñ\80.|Ð\91ұл Ñ\81анаÑ\82Ñ\82а ÐºÐµÐ»ÐµÑ\81Ñ\96 $1 Ñ\84айл Ð±Ð°Ñ\80 (не Ð±Ð°Ñ\80лÑ\8bÒ\93Ñ\8b $2).}}',
+'category-file-count' => '{{PLURAL:$2|Ð\91ұл Ñ\81анаÑ\82Ñ\82а Ñ\82ек ÐºÐµÐ»ÐµÑ\81Ñ\96 Ñ\84айл Ð±Ð°Ñ\80.|Ð\91ұл Ñ\81анаÑ\82Ñ\82а ÐºÐµÐ»ÐµÑ\81Ñ\96 {{PLURAL:$1|Ñ\84айл|$1 Ñ\84айл}} Ð±Ð°Ñ\80, Ð±Ð°Ñ\80лÑ\8bÒ\93Ñ\8b $2 Ñ\81Ñ\8bÑ\80Ñ\82Ñ\8bнда.}}',
 'category-file-count-limited' => 'Ағымдағы санатта келесі $1 файл бар.',
 'listingcontinuesabbrev' => '(жалғ.)',
 'index-category' => 'Индекстелген беттер',
@@ -490,21 +505,22 @@ $messages = array(
 'newwindow' => '(жаңа терезеде)',
 'cancel' => 'Болдырмау',
 'moredotdotdot' => 'Көбірек…',
-'mypage' => 'Жеке бетім',
-'mytalk' => 'Талқылауым',
+'morenotlisted' => 'Басқасы көрсетілмеген...',
+'mypage' => 'Жеке бет',
+'mytalk' => 'Талқылау',
 'anontalk' => 'IP талқылауы',
 'navigation' => 'Бағыттау',
 'and' => '&#32;және',
 
 # Cologne Blue skin
-'qbfind' => 'Ð\86здеу',
+'qbfind' => 'Табу',
 'qbbrowse' => 'Шолу',
 'qbedit' => 'Өңдеу',
 'qbpageoptions' => 'Бұл бет',
 'qbmyoptions' => 'Беттерім',
 'qbspecialpages' => 'Арнайы беттер',
-'faq' => 'Жиі қойылған сауалдар',
-'faqpage' => 'Project:Жиі қойылған сауалдар',
+'faq' => 'Жиі қойылатын сұрақтар',
+'faqpage' => 'Project:Жиі қойылатын сұрақтар',
 
 # Vector skin
 'vector-action-addsection' => 'Тақырып қосу',
@@ -516,13 +532,14 @@ $messages = array(
 'vector-simplesearch-preference' => 'Кеңейтілген іздеу құралын қосу (Векторлық безендіру үшін ғана)',
 'vector-view-create' => 'Бастау',
 'vector-view-edit' => 'Өңдеу',
-'vector-view-history' => 'Тарихы',
+'vector-view-history' => 'Тарихын қарау',
 'vector-view-view' => 'Оқу',
 'vector-view-viewsource' => 'Қайнарын қарау',
 'actions' => 'Әрекеттер',
 'namespaces' => 'Есім кеңістігі',
 'variants' => 'Нұсқалар',
 
+'navigation-heading' => 'Бағыттау',
 'errorpagetitle' => 'Қате',
 'returnto' => '$1 дегенге қайта келу.',
 'tagline' => '{{SITENAME}} жобасынан алынған мәлімет',
@@ -544,12 +561,13 @@ $messages = array(
 'create-this-page' => 'Осы бетті бастау',
 'delete' => 'Жою',
 'deletethispage' => 'Бетті жою',
-'undelete_short' => '$1 өңдеме жоюын болдырмау',
+'undeletethispage' => 'Жойылған бетті қайтару',
+'undelete_short' => '{{PLURAL:$1|өңдеме|$1 өңдемелер}} жоюын болдырмау',
 'viewdeleted_short' => 'Көру {{PLURAL:$1|жойылған өңдеуді $1|жойылған өңдеулерді $1| жойылған өңдеулерді $1}}',
 'protect' => 'Қорғау',
 'protect_change' => 'өзгерту',
 'protectthispage' => 'Бетті қорғау',
-'unprotect' => 'Қорғауын өзгерту',
+'unprotect' => 'Қорғалуын өзгерту',
 'unprotectthispage' => 'Бұл беттің қорғауын өзгерту',
 'newpage' => 'Жаңа бет',
 'talkpage' => 'Бетті талқылау',
@@ -572,8 +590,8 @@ $messages = array(
 'otherlanguages' => 'Басқа тілдерде',
 'redirectedfrom' => '($1 бетінен айдатылған)',
 'redirectpagesub' => 'Айдату беті',
-'lastmodifiedat' => 'Бұл беттің өзгертілген соңғы кезі: $2, $1.',
-'viewcount' => 'Бұл бет $1 рет қатыналған.',
+'lastmodifiedat' => 'Бұл беттің соңғы өзгертілген кезі: $2, $1.',
+'viewcount' => 'Бұл бет {{PLURAL:$1|бір рет|$1 уақыт}} қатыналған.',
 'protectedpage' => 'Қорғалған бет',
 'jumpto' => 'Мында өту:',
 'jumptonavigation' => 'шарлау',
@@ -597,7 +615,6 @@ $1',
 'disclaimers' => 'Жауапкершіліктен бас тарту',
 'disclaimerpage' => 'Project:Жауапкершіліктен бас тарту',
 'edithelp' => 'Өндеу анықтамасы',
-'edithelppage' => 'Help:Өңдеу',
 'helppage' => 'Help:Мазмұны',
 'mainpage' => 'Басты бет',
 'mainpage-description' => 'Басты бет',
@@ -619,7 +636,11 @@ $1',
 'retrievedfrom' => '«$1» бетінен алынған',
 'youhavenewmessages' => 'Сізде $1 бар ($2).',
 'newmessageslink' => 'жаңа хабарламалар',
-'newmessagesdifflink' => 'соңғы өзгерiс',
+'newmessagesdifflink' => 'соңғы өзгерiсіне',
+'youhavenewmessagesfromusers' => 'Сіз {{PLURAL:$3|басқа қатысушыдан|$3 қатысушылардан}} $1 алдыңыз ($2).',
+'youhavenewmessagesmanyusers' => 'Сіз бірнеше қатысушыдан $1 алдыңыз ($2).',
+'newmessageslinkplural' => '{{PLURAL:$1|жаңа хабарлама|жаңа хабарламалар}}',
+'newmessagesdifflinkplural' => 'соңғы {{PLURAL:$1|өзгеріс|өзгерістер}}',
 'youhavenewmessagesmulti' => '$1 дегенде жаңа хабарламалар бар',
 'editsection' => 'өңдеу',
 'editold' => 'өңдеу',
@@ -712,6 +733,8 @@ $1',
 'cannotdelete' => '«$1» бетін немесе файлын жою мүмкін емес. 
 Мұны әлдекім жойған болуы мүмкін.',
 'cannotdelete-title' => '«$1» бетін жою мүмкін емес',
+'delete-hook-aborted' => 'Түзету ілмек арқылы тоқтатылды.
+Қосымша түсіндірмелер көрсетілмеген.',
 'badtitle' => 'Жарамсыз тақырып аты',
 'badtitletext' => 'Сұралған бет тақырыбының аты жарамсыз, бос, тіларалық сілтемесі не уики-аралық тақырып аты бұрыс енгізілген.
 Мында тақырып атында қолдалмайтын бірқатар таңбалар болуы мүмкін.',
@@ -726,28 +749,37 @@ $1',
 'actionthrottled' => 'Әрекет бәсеңдетілді',
 'actionthrottledtext' => 'Спамға қарсы күрес есебінде, осы әрекетті қысқа уақытта тым көп рет орындауыңыз шектелінді, және бұл шектеу шамасынан асып кеткенсіз.
 Бірнеше минуттан қайта байқап көріңіз.',
-'protectedpagetext' => 'Өңдеуді қақпайлау үшін бұл бет құлыпталынған.',
+'protectedpagetext' => 'Бұл бет өңдеу немесе басқа өзгерістер енгізілмес үшін қорғалған.',
 'viewsourcetext' => 'Бұл беттің қайнарын қарауыңызға және көшіріп алуыңызға болады:',
 'viewyourtext' => 'Осы бет арқылы "өзіңіз жасаған өңдеулердің" бастапқы мәтінін көруге және көшіруге мүмкіндігіңіз болады.',
-'protectedinterface' => 'Бұл бет бағдарламалық жасақтаманың тілдесу мәтінін жетістіреді, сондықтан қиянатты қақпайлау үшін өзгертуі құлыпталған.',
-'editinginterface' => "'''Құлақтандыру:''' Бағдарламалық жасақтаманың тілдесу мәтінін жетістіретін бетін өңдеп жатырсыз.
+'protectedinterface' => 'Бұл бет бағдарламалық жасақтаманың тілдесу мәтінін жетістіреді, сондықтан қиянатты қақпайлау үшін өзгертуі құлыпталған. 
+Барлық уикилер үшін аудармаларды өзгерту немесе қосу үшін [//translatewiki.net/ translatewiki.net] МедиаУики жерлестіру жобасын пайдаланыңыз.',
+'editinginterface' => "'''Ескерту:''' Бағдарламалық жасақтаманың тілдесу мәтінін жетістіретін бетін өңдеп жатырсыз.
 Бұл беттің өзгертуі басқа қатысушыларға пайдаланушылық тілдесуі қалай көрінетіне әсер етеді.
\90Ñ\83даÑ\80малаÑ\80 Ò¯Ñ\88Ñ\96н, MediaWiki Ð±Ð°Ò\93даÑ\80ламаÑ\81Ñ\8bн Ð¶ÐµÑ\80Ñ\81Ñ\96ндÑ\96Ñ\80Ñ\83 [//translatewiki.net/wiki/Main_Page?setlang=kk translatewiki.net Ð¶Ð¾Ð±Ð°Ñ\81Ñ\8b] Ð°Ñ\80Ò\9bÑ\8bлÑ\8b Ò\9bаÑ\80ап Ñ\88еÑ\88Ñ\96Ò£Ñ\96з.",
\91аÑ\80лÑ\8bÒ\9b Ñ\83икилеÑ\80 Ò¯Ñ\88Ñ\96н Ð°Ñ\83даÑ\80малаÑ\80дÑ\8b Ó©Ð·Ð³ÐµÑ\80Ñ\82Ñ\83 Ð½ÐµÐ¼ÐµÑ\81е Ò\9bоÑ\81Ñ\83 Ò¯Ñ\88Ñ\96н [//translatewiki.net/ translatewiki.net] Ð\9cедиаУики Ð¶ÐµÑ\80леÑ\81Ñ\82Ñ\96Ñ\80Ñ\83 Ð¶Ð¾Ð±Ð°Ñ\81Ñ\8bн Ð¿Ð°Ð¹Ð´Ð°Ð»Ð°Ð½Ñ\8bÒ£Ñ\8bз.",
 'sqlhidden' => '(SQL сұранымы жасырылған)',
 'cascadeprotected' => 'Бұл бет өңдеуден қорғалған, себебі бұл келесі «баулы қорғауы» қосылған {{PLURAL:$1|беттің|беттердің}} кірікбеті:
 $2',
 'namespaceprotected' => "'''$1''' есім аясындағы беттерді өңдеу үшін рұқсатыңыз жоқ.",
 'customcssprotected' => 'Сіздің бұл CSS-бетті өңдеуге рұқсатыңыз жоқ, себебі мұнда өзге қатысушының жеке баптаулары бар.',
 'customjsprotected' => 'Сіздің бұл JavaScript бетін өңдеуге рұқсатыңыз жоқ, себебі мұнда өзге қатысушының жеке баптаулары бар.',
-'ns-specialprotected' => '{{ns:special}} есім аясындағы беттер өңделінбейді',
-'titleprotected' => "Бұл тақырып аты бастаудан [[{{ns:user}}:$1|$1]] қорғады.
+'mycustomcssprotected' => 'Сізде CSS бетін өңдеуге рұқсатыңыз жоқ.',
+'mycustomjsprotected' => 'Сізде JavaScript бетін өңдеуге рұқсатыңыз жоқ.',
+'myprivateinfoprotected' => 'Сізде жеке ақпараттарыңызды өңдеу рұқсатыңыз жоқ.',
+'mypreferencesprotected' => 'Сізде баптауларыңызды өңдеуге рұқсатыңыз жоқ.',
+'ns-specialprotected' => '{{ns:special}} есім аясындағы беттер өңдеуге келмейді.',
+'titleprotected' => "Бұл тақырып аты бастаудан [[User:$1|$1]] қорғады.
 Келтірілген себебі: ''$2''.",
 'filereadonlyerror' => "«$2» сақтамасы «тек қана оқу» тәртіптемесінде тұрғасын, «$1» файлын өзгерту мүмкін емес.
 Бұл тәртіптемені қондырған әкімші келесі түсіндірмені қалдырды: «''$3''»",
+'invalidtitle-knownnamespace' => '"$2" есім кеңістік түрі және  "$3" мәтіні жарамсыз',
+'invalidtitle-unknownnamespace' => 'Нөмері $1 белгісіз есім кеңістік түрі және "$2" мәтіні жарамсыз',
+'exception-nologin' => 'Кірмегенсіз',
+'exception-nologin-text' => 'Бұл бет немесе әрекет бұл уикиге кіріуіңізді міндеттейді.',
 
 # Virus scanner
-'virus-badscanner' => 'Ð\91апÑ\82аÑ\83 Ò\9bаÑ\82елÑ\96гÑ\96. Белгісіз вирус сканері: $1',
-'virus-scanfailed' => 'сканерлеу қатесі (код $1)',
+'virus-badscanner' => 'Ð\94Ò±Ñ\80Ñ\8bÑ\81 ÐµÐ¼ÐµÑ\81 Ñ\96Ñ\88Ò\9bÒ±Ñ\80Ñ\8bлÑ\8bм. Белгісіз вирус сканері: $1',
+'virus-scanfailed' => 'сканерлеу орындалмады (код $1)',
 'virus-unknownscanner' => 'белгісіз антивирус:',
 
 # Login and logout pages
@@ -755,12 +787,26 @@ $2',
 
 Жүйеге кірместен де {{SITENAME}} жобасын пайдалана аласыз, немесе баяғы не өзге қатысушы ретінде жүйеге <span class='plainlinks'>[$1 қайта кіруіңізге]</span> болады.
 Аңғартпа: Кейбір беттер шолғышыңыздың кэшін тазартқанша әлі де жүйеге кіріп отырғаныңыздай көрінуі мүмкін.",
+'welcomeuser' => 'Қош келдіңіз, $1!',
+'welcomecreation-msg' => 'Сіздің тіркеліміңіз жасалынды.
+[[Special:Preferences|{{SITENAME}} баптауларыңызды]] өзгертуді ұмытпаңыз.',
 'yourname' => 'Қатысушы аты:',
+'userlogin-yourname' => 'Қатысушы есіміңіз',
+'userlogin-yourname-ph' => 'Қатысушы есіміңізді еңгізіңіз',
+'createacct-another-username-ph' => 'Қатысушы есіміңізді еңгізіңіз',
 'yourpassword' => 'Құпия сөз:',
+'userlogin-yourpassword' => 'Құпия сөз',
+'userlogin-yourpassword-ph' => 'Құпия сөздіңізді енгізіңіз',
+'createacct-yourpassword-ph' => 'Құпия сөзді енгізу',
 'yourpasswordagain' => 'Құпия сөзді қайталаңыз:',
+'createacct-yourpasswordagain' => 'Құпия сөзді құптаңыз',
+'createacct-yourpasswordagain-ph' => 'Құпия сөзіңізді қайтадан енгізіңіз',
 'remembermypassword' => 'Тіркелгімді осы браузерде ұмытпа (ең көбі $1 {{PLURAL:$1|күн|күн}})',
+'userlogin-remembermypassword' => 'Мені жүйеде сақтап қою',
+'userlogin-signwithsecure' => 'Құпия байланысуды қолдану',
 'securelogin-stick-https' => 'Кіргеннен кейін HTTPS бойынша байланысты жалғастыру',
 'yourdomainname' => 'Желі үйшігіңіз:',
+'password-change-forbidden' => 'Сіз бұл уикиде құпия сөзіңізді өзгерте алмайсыз.',
 'externaldberror' => 'Осы арада не шеттік растау дерекқорында қате болды, немесе шеттік тіркелгіңізді жаңалау рұқсаты жоқ.',
 'login' => 'Кіру',
 'nav-login-createaccount' => 'Кіру / Тіркелу',
@@ -770,18 +816,41 @@ $2',
 'logout' => 'Шығу',
 'userlogout' => 'Шығу',
 'notloggedin' => 'Кірмегенсіз',
+'userlogin-noaccount' => 'Тіркелгіңіз жоқ па?',
+'userlogin-joinproject' => '{{SITENAME}} жобасына тіркелу',
 'nologin' => "Тіркелгіңіз бар ма? '''$1'''.",
-'nologinlink' => 'Тіркеліңіз',
+'nologinlink' => 'Тіркелгіңізді жасаңыз',
 'createaccount' => 'Жаңа тіркелгі',
-'gotaccount' => "Бұған дейін тіркеліп пе едіңіз бе? '''$1'''.",
+'gotaccount' => "Бұған дейін тіркеліп пе едіңіз? '''$1'''.",
 'gotaccountlink' => 'Кіріңіз',
 'userlogin-resetlink' => 'Қатысушы атын не құпия сөзді ұмыттыңыз ба?',
+'userlogin-resetpassword-link' => 'Құпия сөздіңізді ысыру',
+'helplogin-url' => 'Help:Тіркелу',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Тіркелуге көмек]]',
+'createacct-join' => 'Төменге өзіңіз туралы ақпарат енгізіңіз.',
+'createacct-another-join' => 'Төменге жаңа тіркелгі туралы ақпарат енгізіңіз.',
+'createacct-emailrequired' => 'Е-поштаның мекен-жайы:',
+'createacct-emailoptional' => 'Е-поштаның мекен-жайы (міндетті емес)',
+'createacct-email-ph' => 'Е-пошта мекен-жайыңызды енгізіңіз',
+'createacct-another-email-ph' => 'Е-пошта мекен-жайын енгізіңіз',
 'createaccountmail' => 'Е-поштамен',
+'createacct-realname' => 'Нақты атыңыз (ерікті)',
 'createaccountreason' => 'Себебі:',
+'createacct-reason' => 'Себебі:',
+'createacct-reason-ph' => 'Неге басқа тіркегі жасамақшысыз',
+'createacct-captcha' => 'Құпиялық тексеруі',
+'createacct-imgcaptcha-ph' => 'Жоғарғыдағы көріп тұрған мәтінді енгізіңіз',
+'createacct-submit' => 'Тіркелгіңізді жасаңыз',
+'createacct-another-submit' => 'Бөлек жаңа тіркелгі жасау',
+'createacct-benefit-heading' => '{{SITENAME}} сіз сияқты қызығатын адамдар арқылы жасалады.',
+'createacct-benefit-body1' => '{{PLURAL:$1|өңдеме|өңдеме}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|бет|бет}}',
+'createacct-benefit-body3' => 'жуықтағы {{PLURAL:$1|қатысушы|қатысушы}}',
 'badretype' => 'Енгізген құпия сөздеріңіз бір-біріне сәйкес емес.',
 'userexists' => 'Енгізген қатысушы атыңыз әлдеқашан пайдалануда.
 Өзге атауды таңдаңыз.',
 'loginerror' => 'Кіру қатесі',
+'createacct-error' => 'Тіркелгі жасауада қате кетті',
 'createaccounterror' => 'Тіркелгіні жасау мүмкін емес: $1',
 'nocookiesnew' => 'Жаңа қатысушы тіркелгісі жасалды, бірақ кірмегенсіз.
 Қатысушы кіру үшін {{SITENAME}} торабында «cookie» файлдары қолданылады.
@@ -793,9 +862,10 @@ $2',
 'nocookiesfornew' => 'Оның қайнарын растай алмағандықтан қатысушының аккаунты тіркелмеді. «Cookies» қосылып тұрғанына көз жеткізіңіз, бетті қайта жаңартыңыз және тағы байқап көріңіз.',
 'noname' => 'Жарамды қатысушы атын енгізбедіңіз.',
 'loginsuccesstitle' => 'Кіруіңіз сәтті өтті',
-'loginsuccess' => "'''Сіз енді {{SITENAME}} жобасына «$1» ретінде кіріп отырсыз.'''",
+'loginsuccess' => "'''Сіз енді {{SITENAME}} жобасына «$1» ретінде кірдіңіз.'''",
 'nosuchuser' => '«$1» деген қатысушы тіркелмеген.
-Емлеңізді тексеріңіз, немесе жаңа тіркелгі жасаңыз.',
+Қатысушы аттары кіші әріптерден тұру керек.
+Емлеңізді тексеріңіз, немесе [[Special:UserLogin/signup|жаңа тіркелгі жасаңыз]].',
 'nosuchusershort' => 'Мында «$1» деп аталған қатысушы жоқ.
 Емлеңізді тексеріңіз.',
 'nouserspecified' => 'Қатысушы атын келтіруіңіз жөн.',
@@ -803,17 +873,17 @@ $2',
 'wrongpassword' => 'Бұрыс құпия сөз енгізілген. Қайта байқап көріңіз.',
 'wrongpasswordempty' => 'Құпия сөз бос болған. Қайта байқап көріңіз.',
 'passwordtooshort' => 'Құпия сөзіңіз жарамсыз немесе тым қысқа.
\91ұнда ÐµÒ£ ÐºÐµÐ¼Ñ\96нде $1 Ñ\82аңба Ð±Ð¾Ð»Ñ\83Ñ\8b Ð¶Ó\99не Ð´Ðµ Ò\9bаÑ\82Ñ\8bÑ\81Ñ\83Ñ\88Ñ\8b Ð°Ñ\82Ñ\8bÒ£Ñ\8bздан Ó©Ð·Ð³Ðµ Ð±Ð¾Ð»Ñ\83Ñ\8b Ð¶Ó©Ð½.',
\91ұнда ÐµÒ£ ÐºÐµÐ¼Ñ\96нде $1 Ñ\82аңба Ð±Ð¾Ð»Ñ\83Ñ\8b ÐºÐµÑ\80ек.',
 'password-name-match' => 'Енгізген құпия сөзіңіз қатысушы атынан өзгеше болуы қажет.',
 'password-login-forbidden' => 'Бұл қатысушы аты мен құпия сөзін пайдалануға тыйым салынған.',
-'mailmypassword' => 'Құпия сөзімді электронды поштама жібер',
+'mailmypassword' => 'Жаңа құпия сөзді хатпен жіберу',
 'passwordremindertitle' => '{{SITENAME}} үшін жаңа уақытша құпия сөз',
 'passwordremindertext' => 'Біреу (IP мекенжайы: $1, бәлкім өзіңіз боларсыз) {{SITENAME}} үшін жаңа құпия сөз жөнелету сұранымын жасаған ($4).
 Қатысушы «$2» үшін уақытша құпия сөз жасалды: «$3». Егер бұл Сіздің сұранымыңыз болса, жүйеге кіріп құпия сөзді өзгертуіңіз керек. Сіздің уақытша құпия сөзіңіз $5 дейін белсенді болады.
 
 Егер бұл сұранымды Сіз жасамасыңыз, не құпия сөзді еске түсіріп енді өзгерткіңіз келмесе, ескі құпия сөзді қолдануды жалғастырып осы хатқа аңғармауыңызға да болады.',
 'noemail' => 'Осы арада «$1» қатысушының е-пошта мекенжайы жоқ.',
-'noemailcreate' => 'Сізге нақты электрондық пошта есімін көрсету керек.',
+'noemailcreate' => 'Сізге нақты жарамды электрондық пошта мекен-жайын көрсету керек.',
 'passwordsent' => 'Жаңа құпия сөз «$1» үшін тіркелген е-пошта мекенжайына жөнелтілді.
 Қабылдағаннан кейін кіргенде соны енгізіңіз.',
 'blocked-mailpassword' => 'IP мекенжайыңыздан өңдеу бұғатталған, сондықтан қиянатты қақпайлау үшін құпия сөзді қалпына келтіру жетесін қолдануына рұқсат етілмейді.',
@@ -824,17 +894,17 @@ $2',
 'mailerror' => 'Хат жөнелту қатесі: $1',
 'acct_creation_throttle_hit' => 'Ғафу етіңіз, сіз алдақашан $1 рет тіркелгі жасапсыз. Онан артық жасай алмайсыз.
 Нәтижесінде, осы IP-мекенжаймен кірушілер дәл қазіргі уақытта бірнеше тіркелгі жасай алмайды.',
-'emailauthenticated' => 'Е-пошта мекенжайыңыз расталған кезі: $3, $2.',
-'emailnotauthenticated' => 'Е-пошта мекенжайыңыз әлі расталған жоқ.
+'emailauthenticated' => 'Е-пошта мекен-жайыңыз расталған кезі: $3, $2.',
+'emailnotauthenticated' => 'Е-пошта мекен-жайыңыз әлі расталған жоқ.
 Келесі әрбір мүмкіндіктер үшін еш хат жөнелтілмейді.',
-'noemailprefs' => 'Осы мүмкіндіктер істеуі үшін е-пошта мекенжайыңызды енгізіңіз.',
-'emailconfirmlink' => 'Е-пошта мекенжайыңызды құптаңыз',
+'noemailprefs' => 'Осы мүмкіндіктер істеуі үшін е-пошта мекен-жайыңызды енгізіңіз.',
+'emailconfirmlink' => 'Е-пошта мекен-жайыңызды құптаңыз',
 'invalidemailaddress' => 'Бұл е-пошта есімі пішімге сәйкес келмегендіктен қабылданбайды.
 Дұрыс пішімделген е-пошта есімін енгізіңіз, немесе аумақты бос қалдырыңыз.',
 'cannotchangeemail' => 'Тіркелгінің е-поштасының мекен-жайы бұл уикиде өзгертілмейді.',
 'emaildisabled' => 'Бұл сайт е-поштаның хабарламасын жібере алмайды.',
 'accountcreated' => 'Жаңа тіркелгі жасалды',
-'accountcreatedtext' => '$1 үшін жаңа қатысушы тіркелгісі жасалды.',
+'accountcreatedtext' => '[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|талқылауы]]) үшін жаңа қатысушы тіркелгісі жасалды.',
 'createaccount-title' => '{{SITENAME}} үшін тіркелу',
 'createaccount-text' => 'Кейбіреу е-пошта мекенжайыңызды пайдаланып {{SITENAME}} жобасында ($4) «$2» атауымен, «$3» құпия сөзімен тіркелгі жасаған.
 Жобаға кіріуіңіз және құпия сөзіңізді өзгертуіңіз тиісті.
@@ -855,7 +925,7 @@ $2',
 'resetpass_announce' => 'Хатпен жіберілген уақытша кодымен кіргенсіз.
 Кіруіңізді бітіру үшін, жаңа құпия сөзіңізді мында енгізуіңіз жөн:',
 'resetpass_header' => 'Құпия сөзді өзгерту',
-'oldpassword' => 'Ð\90Ò\93Ñ\8bмдÑ\8bÒ\9b құпия сөзіңіз:',
+'oldpassword' => 'Ð\95Ñ\81кÑ\96 құпия сөзіңіз:',
 'newpassword' => 'Жаңа құпия сөзіңіз:',
 'retypenew' => 'Жаңа құпия сөзіңізді қайталаңыз:',
 'resetpass_submit' => 'Құпия сөзді қойыңыз да кіріңіз',
@@ -867,13 +937,15 @@ $2',
 'resetpass-wrong-oldpass' => 'Уақытша немесе ағымдағы құпия сөзіңіз дұрыс емес.
 Мүмкін Сіз құпия сөзді сәтті өзгерткенсіз, немесе жаңа уақытша құпия сөзге сұраным жасағансыз.',
 'resetpass-temp-password' => 'Уақытша құпия сөз:',
+'resetpass-abort-generic' => 'Құпия сөзді өзгерту кеңейтпенің әсерінен аяқталмады.',
 
 # Special:PasswordReset
 'passwordreset' => 'Құпия сөзді қайтару',
-'passwordreset-text' => 'Сіздің тіркелгіңіздің баптаулары туралы хабарламаларды алу үшін мына пішінді толтырыңыз.',
+'passwordreset-text-one' => 'Құпия сөзіңізді түзеу үшін бұл пішінді толтырыңыз.',
+'passwordreset-text-many' => '{{PLURAL:$1|Құпия сөзді қайтару үшін жолақтарды толтырыңыз.}}',
 'passwordreset-legend' => 'Құпия сөзді қайтару',
 'passwordreset-disabled' => 'Бұл уикиде құпия сөзді қайтару ажыратылған.',
-'passwordreset-pretext' => '{{PLURAL:$1||Төменде көрсетілгендердің ішіндегі біреуін жазыңыз}}',
+'passwordreset-emaildisabled' => 'E-mail мүмкіндігі бұл уикиде өшірілген.',
 'passwordreset-username' => 'Қатысушы аты:',
 'passwordreset-domain' => 'Домен:',
 'passwordreset-capture' => 'Келген хатты қарау керек пе?',
@@ -882,8 +954,8 @@ $2',
 'passwordreset-emailtitle' => '{{SITENAME}} тіркелгісі туралы анықтама',
 'passwordreset-emailelement' => 'Қатысушы есімі: $1
 Уақытша құпия сөз: $2',
-'passwordreset-emailsent' => 'Электронды пошта арқылы ескертпе жөнелтілді.',
-'passwordreset-emailsent-capture' => 'Жөнелтілген ескертпе-хат төменде көрсетілген.',
+'passwordreset-emailsent' => 'Құпия сөзді өзгерту электронды пошта арқылы жөнелтілді.',
+'passwordreset-emailsent-capture' => 'Құпия сөзді өзгерту электронды пошта арқылы жөнелтілді, ол төменде көрсетілген.',
 'passwordreset-emailerror-capture' => 'Жазылған ескертпе-хат төменде көрсетілген, оның жөнелтілмеу себебі: $1',
 
 # Special:ChangeEmail
@@ -894,6 +966,7 @@ $2',
 'changeemail-oldemail' => 'Е-поштаның ағымдағы мекен-жайы:',
 'changeemail-newemail' => 'Е-поштаның жаңа мекен жайы:',
 'changeemail-none' => '(ешкім)',
+'changeemail-password' => 'Сіздің {{SITENAME}} жобасындағы құпия сөзіңіз:',
 'changeemail-submit' => 'Е-поштаны өзгерту',
 'changeemail-cancel' => 'Болдырмау',
 
@@ -904,36 +977,37 @@ $2',
 'italic_tip' => 'Қиғаш мәтін',
 'link_sample' => 'Сілтеме тақырыбының аты',
 'link_tip' => 'Ішкі сілтеме',
-'extlink_sample' => 'http://www.example.com сілтеме тақырыбының аты',
+'extlink_sample' => 'http://www.мысал.com сілтеме тақырыбының аты',
 'extlink_tip' => 'Шеттік сілтеме (алдынан http:// енгізуін ұмытпаңыз)',
 'headline_sample' => 'Бас жол мәтіні',
 'headline_tip' => '2-ші деңгейлі бас жол',
 'nowiki_sample' => 'Пішімделінбеген мәтінді мында енгізіңіз',
 'nowiki_tip' => 'Уики пішімін елемеу',
+'image_sample' => 'Мысал.jpg',
 'image_tip' => 'Ендірілген файл',
 'media_tip' => 'Файл сілтемесі',
 'sig_tip' => 'Қолтаңбаңыз және уақыт белгісі',
-'hr_tip' => 'Ð\94еÑ\80елей сызық (үнемді қолданыңыз)',
+'hr_tip' => 'Ð\9aөлденең сызық (үнемді қолданыңыз)',
 
 # Edit pages
-'summary' => 'Өзгертпе мазмұны:',
+'summary' => 'Түйіндемесі:',
 'subject' => 'Тақырыбы/бас жолы:',
-'minoredit' => 'Шағын өңдеме',
-'watchthis' => 'Бетті бақылау',
+'minoredit' => 'Ð\91ұл Ñ\88ағын өңдеме',
+'watchthis' => 'Бұл бетті бақылау',
 'savearticle' => 'Бетті сақтау',
 'preview' => 'Қарап шығу',
 'showpreview' => 'Алдын ала қарау',
 'showlivepreview' => 'Жылдам қарау',
 'showdiff' => 'Өзгерістерді көрсет',
-'anoneditwarning' => "'''Ескертпе:''' Сіз жүйеге кірмегенсіз.
+'anoneditwarning' => "'''Ескерту:''' Сіз жүйеге кірмегенсіз.
 IP-мекенжайыңыз бұл беттің түзету тарихында жазылып алынады.",
-'anonpreviewwarning' => '"Сіз жүйеге кірмегенсіз. IP-мекенжайыңыз бұл беттің түзету тарихында жазылып алынады."',
-'missingsummary' => "'''Ескертпе:''' Өңдеменің қысқаша мазмұндамасын енгізбепсіз.
-«Сақтау» түймесін тағы бассаңыз, өңденмеңіз мәндемесіз сақталады.",
+'anonpreviewwarning' => '"Сіз жүйеге кірмегенсіз. IP-мекенжайыңыз бұл беттің өңдеу тарихында жазылып алынады."',
+'missingsummary' => "'''Ескерту:''' Өңдеменің қысқаша түйіндемесін енгізбепсіз.
+«Сақтау» түймесін қайта бассаңыз, өңденмеңіз түйіндемесіз сақталады.",
 'missingcommenttext' => 'Мәндемеңізді төменде енгізіңіз.',
-'missingcommentheader' => "'''Ескертпе:''' Бұл мәндемеге тақырып/басжол жазбапсыз.
-«{{int:savearticle}}» түймесін тағы бассаңыз, өңдемеңіз тақырыпсыз жазылады.",
-'summary-preview' => 'Қысқаша мазмұндамасын қарап шығу:',
+'missingcommentheader' => "'''Ескерту:''' Бұл мәндемеге тақырып/басжол жазбапсыз.
+«{{int:savearticle}}» түймесін тағы бассаңыз, өңдемеңіз түйіндемесіз жазылады.",
+'summary-preview' => 'Қысқаша түйіндемесін қарап шығу:',
 'subject-preview' => 'Тақырыбын/бас жолын қарап шығу:',
 'blockedtitle' => 'Қатысушы бұғатталған',
 'blockedtext' => "'''Қатысушы атыңыз не IP мекенжайыңыз бұғатталған.'''
@@ -961,9 +1035,9 @@ IP-мекенжайыңыз бұл беттің түзету тарихында
 Ағымдық IP мекенжайыңыз: $3, және бұғатау нөмірі: $5.
 Сұраным жасағанда осының екеуін де кірістіруіңізді сұраймыз.",
 'blockednoreason' => 'еш себебі келтірілмеген',
-'whitelistedittext' => 'Беттерді өңдеу үшін $1 жөн.',
+'whitelistedittext' => 'Беттерді өңдеу үшін сізде $1 болуы керек.',
 'confirmedittext' => 'Беттерді өңдеу үшін алдын ала Е-пошта мекенжайыңызды құптауыңыз жөн.
-Е-пошта мекенжайыңызды [[{{#special:Preferences}}|пайдаланушылық бапталымдарыңыз]] арқылы қойыңыз да жарамдылығын тексеріп шығыңыз.',
+Е-пошта мекенжайыңызды [Special:Preferences}}|қатысушы бапталымдарыңыз]] арқылы қойыңыз да жарамдылығын тексеріп шығыңыз.',
 'nosuchsectiontitle' => 'Бұл бөлімді табу мүмкін емес',
 'nosuchsectiontext' => 'Сіз бұрын болмаған бөлімді өзгертпекшісіз.
 Мүмкін бұл бетті қарап жатқаныңызда ол бөлім жойылған немесе басқа орынға көшірілген.',
@@ -971,7 +1045,8 @@ IP-мекенжайыңыз бұл беттің түзету тарихында
 'loginreqlink' => 'кіру',
 'loginreqpagetext' => 'Басқа беттерді көру үшін сіз $1 болуыңыз жөн.',
 'accmailtitle' => 'Құпия сөз жөнелтілді.',
-'accmailtext' => '$2 жайына «$1» құпия сөзі жөнелтілді.',
+'accmailtext' => "$2 жайына [[User talk:$1|$1]] үшін құпия сөзі жөнелтілді.
+Бұл жаңа қатысушы үшін құпия сөз ''[[Special:ChangePassword|құпия сөзді өзгерту]]'' бетінде кіру үстінде өзгертілген.",
 'newarticle' => '(Жаңа)',
 'newarticletext' => 'Сілтемеге еріп әлі басталмаған бетке келіпсіз.
 Бетті бастау үшін, төменгі терезеде мәтініңізді теріңіз (көбірек ақпарат үшін [[{{MediaWiki:Helppage}}|анықтама бетін]] қараңыз).
@@ -987,17 +1062,22 @@ IP-мекенжайыңыз бұл беттің түзету тарихында
 'userpage-userdoesnotexist-view' => '«$1» қатысушы есімі тіркелмеген.',
 'blocked-notice-logextract' => 'Бұл қатысушы қазіргі уақытта  бұғатталған.
 Төменде бұғаттау журналындағы соңғы жазбалар көрсетілген.',
-'clearyourcache' => "'''Ескертпе:''' Сақтағаннан кейін, өзгерістерді көру үшін шолғыш бүркемесін орағыту ықтимал. '''Mozilla / Firefox / Safari:''' ''Қайта жүктеу'' батырмасын нұқығанда ''Shift'' тұтыңыз, не ''Ctrl-Shift-R'' басыңыз (Apple Mac — ''Cmd-Shift-R''); '''IE:''' ''Жаңарту'' батырмасын нұқығанда ''Ctrl'' тұтыңыз, не ''Ctrl-F5'' басыңыз; '''Konqueror:''': ''Жаңарту'' батырмасын жай нұқыңыз, не ''F5'' басыңыз; '''Opera''' пайданушылары ''Құралдар→Бапталымдар'' дегенге барып бүркемесін толық тазарту жөн.",
+'clearyourcache' => "'''Ескерту:''' Сақтағаннан кейін, өзгерістерді көру үшін шолғыш бүркемесін орағыту ықтимал. 
+*'''Firefox / Safari:''' ''Қайта жүктеу'' батырмасын нұқығанда ''Shift'' тұтыңыз, не ''Ctrl-Shift-R'' басыңыз (Apple Mac — ''Cmd-Shift-R''); 
+* '''Google Chrome:'''  ''Ctrl-Shift-R'' басыңыз (Mac — ''⌘-Shift-R'')
+*'''IE:''' ''Жаңарту'' батырмасын нұқығанда ''Ctrl'' тұтыңыз, не ''Ctrl-F5'' басыңыз;  не ''F5'' басыңыз; *'''Opera''' пайданушылары ''Құралдар→Бапталымдар'' дегенге барып бүркемесін толық тазарту жөн.",
 'usercssyoucanpreview' => "'''Кеңес:''' Жаңа CSS файлын сақтау алдында «Қарап шығу» батырмасын қолданып сынақтаңыз.",
 'userjsyoucanpreview' => "'''Ақыл-кеңес:''' Жаңа JS файлын сақтау алдында «Қарап шығу» батырмасын қолданып сынақтаңыз.",
 'usercsspreview' => "'''Мынау CSS мәтінін тек қарап шығу екенін ұмытпаңыз, ол әлі сақталған жоқ!'''",
 'userjspreview' => "'''Мынау JavaScript қатысушы бағдарламасын тексеру/қарап шығу екенін ұмытпаңыз, ол әлі сақталған жоқ!'''",
-'userinvalidcssjstitle' => "'''Құлақтандыру:''' Осы арада «$1» деген еш мәнер жоқ.
+'sitecsspreview' => "'''Мынау CSS қатысушы бағдарламасын тексеру/қарап шығу екенін ұмытпаңыз, ол әлі сақталған жоқ!'''",
+'sitejspreview' => "'''Мынау JavaScript кодын тексеру/қарап шығу екенін ұмытпаңыз, ол әлі сақталған жоқ!'''",
+'userinvalidcssjstitle' => "'''Ескерту:''' Осы арада «$1» деген еш мәнер жоқ.
 Қатысушының .css және .js файл атауы кіші әріпппен жазылу тиісті екенін ұмытпаңыз, мысалға {{ns:user}}:Foo/vector.css дегенді {{ns:user}}:Foo/Vector.css дегенмен салыстырып қараңыз.",
 'updated' => '(Жаңартылған)',
 'note' => "'''Аңғартпа:'''",
-'previewnote' => "Бұл тек '''қарап шығу''' екенін ұмытпаңыз, өзгерістер әлі сақталған жоқ!",
-'continue-editing' => 'Өңдемені жалғастыру',
+'previewnote' => "Бұл тек '''қарап шығу''' екенін ұмытпаңыз, сіздің өзгертулеріңіз әлі сақталған жоқ!",
+'continue-editing' => 'Өңдеу аумағына өту',
 'previewconflict' => 'Бұл қарап шығу беті жоғарғы кірістіру орнындағы мәтінді қамтиды да және сақталғандағы өңді көрсетпек.',
 'session_fail_preview' => "'''Ғафу етіңіз! Сессия деректері жоғалуы салдарынан өңдемеңізді бітіре алмаймыз.
 Қайта байқап көріңіз. Егер бұл әлі істелмесе, шығуды және қайта кіруді байқап көріңіз.'''",
@@ -1021,42 +1101,43 @@ IP-мекенжайыңыз бұл беттің түзету тарихында
 «Бетті сақта! батырмасын басқанда '''тек''' жоғарғы кірістіру орнындағы мәтін сақталады.",
 'yourtext' => 'Мәтініңіз',
 'storedversion' => 'Сақталған нұсқасы',
-'nonunicodebrowser' => "'''ҚҰЛАҚТАНДЫРУ: Шолғышыңыз Unicode белгілеуіне үйлесімді емес, сондықтан латын емес әріптері бар беттерді өңдеу зіл болу мүмкін.
+'nonunicodebrowser' => "'''ЕСКЕРТУ: Шолғышыңыз Unicode белгілеуіне үйлесімді емес, сондықтан латын емес әріптері бар беттерді өңдеу зіл болу мүмкін.
 Жұмыс істеуге ықтималдық беру үшін, төмендегі кірістіру орнында ASCII емес таңбалар оналтылық кодымен көрсетіледі'''.",
-'editingold' => "'''ҚҰЛАҚТАНДЫРУ: Осы беттің ертерек түзетуін өңдеп жатырсыз.'''
+'editingold' => "'''ЕСКЕТУ: Осы беттің ертерек түзетуін өңдеп жатырсыз.'''
 Бұны сақтасаңыз, осы түзетуден кейінгі барлық өзгерістер жойылады.",
 'yourdiff' => 'Айырмалар',
 'copyrightwarning' => "Аңғартпа: {{SITENAME}} жобасына берілген барлық үлестер $2 (көбірек ақпарат үшін: $1) құжатына сай деп саналады.
 Егер жазуыңыздың еркін өңделуін және ақысыз көпшілікке таратуын қаламасаңыз, мында жарияламауыңыз жөн.<br />
 Тағы да, бұл мағлұмат өзіңіз жазғаныңызға, не қоғам қазынасынан немесе сондай ашық қорлардан көшірілгеніне бізге уәде бересіз.
-'''Ð\90УТÐ\9eРÐ\9bЫÒ\9a Ò\9aÒ°Ò\9aЫÒ\9aÐ\9fÐ\95Ð\9d Ò\9aÐ\9eРÒ\92Ð\90УÐ\9bЫ МАҒЛҰМАТТЫ РҰҚСАТСЫЗ ЖАРИЯЛАМАҢЫЗ!'''",
+'''Ð\90Ð\92ТÐ\9eРÐ\9bЫÒ\9a Ò\9aÒ°Ò\9aЫÒ\9aÐ\9fÐ\95Ð\9d Ò\9aÐ\9eРÒ\92Ð\90УÒ\92Ð\90Ð\9d МАҒЛҰМАТТЫ РҰҚСАТСЫЗ ЖАРИЯЛАМАҢЫЗ!'''",
 'copyrightwarning2' => "Аңғартпа: {{SITENAME}} жобасына берілген барлық үлестерді басқа үлескерлер өңдеуге, өзгертуге, не аластауға мүмкін.
 Егер жазуыңыздың еркін өңделуін қаламасаңыз, мында жарияламауыңыз жөн.<br />
 Тағы да, бұл мағлұмат өзіңіз жазғаныңызға, не қоғам қазынасынан немесе сондай ашық қорлардан көшірілгеніне бізге уәде бересіз (көбірек ақпарат үшін $1 қужатын қараңыз).
-'''АУТОРЛЫҚ ҚҰҚЫҚПЕН ҚОРҒАУЛЫ МАҒЛҰМАТТЫ РҰҚСАТСЫЗ ЖАРИЯЛАМАҢЫЗ!'''",
-'longpageerror' => "'''ҚАТЕЛІК: Жөнелтпек мәтініңіздін мөлшері — $1 KB, ең көбі $2 KB рұқсат етілген мөлшерінен асқан.
-Бұл сақтай алынбайды.'''",
-'readonlywarning' => "'''ҚҰЛАҚТАНДЫРУ: Дерекқор баптау үшін құлыпталған, сондықтан дәл қазір өңдемеңізді сақтай алмайсыз.
-Кейін қолдану үшін мәтәнді қйып алып және қойып, мәтін файлына сақтауңызға болады.'''",
-'protectedpagewarning' => "'''Ескертпе: Бұл бет өңдеуден қорғалған. Тек әкімші құқықтары бар қатысушылар өңдей алады.'''
+'''АВТОРЛЫҚ ҚҰҚЫҚПЕН ҚОРҒАУҒАН МАҒЛҰМАТТЫ РҰҚСАТСЫЗ ЖАРИЯЛАМАҢЫЗ!'''",
+'longpageerror' => "'''ҚАТЕЛІК: Сақтамақ мәтініңіздін мөлшері — {{PLURAL:$1|килобайт|$1 килобайт}}, ең көбі {{PLURAL:$2|килобайт|$2 килобайт}} KB рұқсат етілген мөлшерінен асқан.
+Бұл сақталмайды.'''",
+'readonlywarning' => "'''ЕСКЕТУ: Дерекқор баптау үшін құлыпталған, сондықтан дәл қазір өңдемеңізді сақтай алмайсыз.
+Кейін қолдану үшін мәтінді қойып алып және қойып, мәтін файлына сақтауңызға болады.''' 
+Әкімшінің құлыптау себебі келесідей: $1",
+'protectedpagewarning' => "'''Ескерту: Бұл бет өңдеуден қорғалған. Тек әкімші құқықтары бар қатысушылар ғана өңдей алады.'''
 Төменде бет журналының соңғы жазбасы көрсетілген:",
 'semiprotectedpagewarning' => "'''Аңғартпа:''' Бет жартылай қорғалған, сондықтан осыны тек тіркелген қатысушылар өңдей алады.
 Төменде бет журналының соңғы жазбасы көрсетілген:",
-'cascadeprotectedwarning' => "'''Құлақтандыру''': Бұл бет құлыпталған, енді тек әкімші құқықтары бар қатысушылар бұны өңдей алады.Бұның себебі: бұл бет «баулы қорғауы» бар келесі {{PLURAL:$1|беттің|беттердің}} кірікбеті:",
-'titleprotectedwarning' => "'''Ескертпе: Бұл бет атауы құлыпталған, сондықтан [[Special:ListGroupRights|арнайы құқықтары]] бар қатысушылар бұндай атаумен бетті бастай алады.'''
+'cascadeprotectedwarning' => "'''Ескету''': Бұл бет құлыпталған, енді тек әкімші құқықтары бар қатысушылар ғана бұны өңдей алады.Бұның себебі: бұл бет «баулы қорғауы» бар келесі {{PLURAL:$1|беттің|беттердің}} кірікбеті:",
+'titleprotectedwarning' => "'''Ескерту: Бұл бет атауы бастаудан қорғалған, сондықтан [[Special:ListGroupRights|арнайы құқықтары]] бар қатысушылар бұндай атаумен бетті бастай алады.'''
 Төменде бет журналының соңғы жазбасы көрсетілген:",
 'templatesused' => 'Бұл бетте қолданылған {{PLURAL:$1|үлгі|үлгілер}}:',
 'templatesusedpreview' => 'Беттің қарап шығуында қолданылған {{PLURAL:$1|үлгі|үлгілер}}:',
 'templatesusedsection' => 'Бұл бөлімде қолданылған {{PLURAL:$1|үлгі|үлгілер}}:',
 'template-protected' => '(қорғалған)',
 'template-semiprotected' => '(жартылай қорғалған)',
-'hiddencategories' => 'Бұл бет $1 жасырын санаттың мүшесі:',
+'hiddencategories' => 'Бұл бет $1 {{PLURAL:$1|1 жасырын санаттың|$1 жасырын санаттардың}}: мүшесі:',
 'nocreatetext' => '{{SITENAME}} жобасында жаңа бет бастауы шектелген.
 Кері қайтып бар бетті өңдеуіңізге болады, немесе [[Special:UserLogin|кіруіңізге не тіркелуіңізге]] болады.',
 'nocreate-loggedin' => 'Жаңа бет бастауға рұқсатыңыз жоқ.',
-'sectioneditnotsupported-title' => 'Ð\91өлÑ\96мдеÑ\80дÑ\96 Ó©Ò£Ð´ÐµÑ\83 Ò\9bолданÑ\8bлмайдÑ\8b',
-'sectioneditnotsupported-text' => 'Бұл бетте бөлімдерді өңдеу қолданылмайды.',
-'permissionserrors' => 'Рұқсаттар қателері',
+'sectioneditnotsupported-title' => 'Бөлімдерді өңдеу қолдамайды',
+'sectioneditnotsupported-text' => 'Бұл бетте бөлімдерді өңдеуді қолдамайды.',
+'permissionserrors' => 'Рұқсат қатесі',
 'permissionserrorstext' => 'Бұны істеуге рұқсатыңыз жоқ, келесі {{PLURAL:$1|себеп|себептер}} бойынша:',
 'permissionserrorstext-withaction' => '$2 дегенге рұқсатыңыз жоқ, келесі {{PLURAL:$1|себеп|себептер}} бойынша:',
 'recreate-moveddeleted-warn' => "'''Назар аудар: Алдында жойылған бетті қайта бастайын деп тұрсыз.'''
@@ -1071,21 +1152,27 @@ IP-мекенжайыңыз бұл беттің түзету тарихында
 'edit-gone-missing' => 'Бетті жаңарту мүмкін емес.
 Мүмкін, бұл бет жойылған.',
 'edit-conflict' => 'Өңдемелер қақтығысы.',
+'postedit-confirmation' => 'Сіздің өңдемеңіз сақталды.',
 'edit-already-exists' => 'Жаңа бет жасау мүмкін емес.
 Ол әлдеқашан бар.',
 'defaultmessagetext' => 'Әдепкі мәтіні',
+'invalid-content-data' => 'Жарамсыз дерек мазмұны',
 'editwarning-warning' => 'Басқа бетке өтсеңіз сіздің жазған соңғы өңдемелеріңіз жойылуы мүмкін. 
 Егер сiз жүйеде тiркелсеңiз, онда сiз баптауларыңыздағы «{{int:prefs-editing}}» бөлігіне кіріп, бұл ескертуді өшіре аласыз.',
 
+# Content models
+'content-model-wikitext' => 'Уикимәтін',
+'content-model-text' => 'қалыпты мәтін',
+
 # Parser/template warnings
-'expensive-parserfunction-warning' => 'Құлақтандыру: Бұл бетте тым көп шығыс алатын құрылым талдатқыш жетелерінің қоңырау шалулары бар.
+'expensive-parserfunction-warning' => "'''Ескерту:''' Бұл бетте тым көп шығыс алатын құрылым талдатқыш жетелерінің қоңырау шалулары бар.
 
-Бұл $2 шамасынан кем болуы жөн, қазір осы арада $1.',
+Бұл $2  {{PLURAL:$2|call|calls}} шамасынан кем болуы жөн, осы арада {{PLURAL:$1|қазір $1 call|қазір $1 calls}}.",
 'expensive-parserfunction-category' => 'Шығыс алатын құрылым талдатқыш жетелерінің тым көп шақырымы бар беттер',
-'post-expand-template-inclusion-warning' => 'Құлақтандыру: Үлгі кірістіру мөлшері тым үлкен.
+'post-expand-template-inclusion-warning' => 'Ескерту: Үлгі кірістіру өлшемі тым үлкен.
 Кейбір үлгілер кірістірілмейді.',
-'post-expand-template-inclusion-category' => 'Үлгі кірістірілген беттер мөлшері асып кетті',
-'post-expand-template-argument-warning' => 'Құлақтандыру: Бұл бетте тым көп ұлғайтылған мөлшері болған ең кемінде бір үлгі дәлелі бар.
+'post-expand-template-inclusion-category' => 'Үлгі кірістірілген беттер өлшемі асып кетті',
+'post-expand-template-argument-warning' => 'Ескерту: Бұл бетте тым көп ұлғайтылған мөлшері болған ең кемінде бір үлгі дәлелі бар.
 Бұның дәлелдерін қалдырып кеткен.',
 'post-expand-template-argument-category' => 'Үлгі дәлелдерін қалдырып кеткен беттер',
 
@@ -1093,7 +1180,7 @@ IP-мекенжайыңыз бұл беттің түзету тарихында
 'undo-success' => 'Бұл өңдеме жоққа шығарылуы мүмкін. Талабыңызды құптап алдын ала төмендегі салыстыруды тексеріп шығыңыз да, өңдемені жоққа шығаруын бітіру үшін төмендегі өзгерістерді сақтаңыз.',
 'undo-failure' => 'Бұл өңдеме жоққа шығарылмайды, себебі арада қақтығысты өңдемелер бар.',
 'undo-norev' => 'Бұл өңдеме жоққа шығарылмайды, себебі бұл жоқ немесе жойылған.',
-'undo-summary' => '[[{{#special:Contributions}}/$2|$2]] ([[{{ns:user_talk}}:$2|талқылауы]]) істеген нөмір $1 түзетуін жоққа шығарды',
+'undo-summary' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|т]]) істеген нөмір $1 түзетуін [[Project:Жоққа шығару|жоққа шығарды]]',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Жаңа тіркелгі жасалмады',
@@ -1104,26 +1191,27 @@ $3 келтірілген себебі: ''$2''",
 # History pages
 'viewpagelogs' => 'Бұл бет үшін журнал оқиғаларын қарау',
 'nohistory' => 'Мында бұл беттінің түзету тарихы жоқ.',
-'currentrev' => 'Ð\90Ò\93Ñ\8bмдÑ\8bÒ\9b түзету',
+'currentrev' => 'Ð\95Ò£ Ñ\81оңÒ\93Ñ\8b түзету',
 'currentrev-asof' => '$1 кезіндегі нұсқасы',
 'revisionasof' => '$1 кезіндегі түзету',
 'revision-info' => '$1 кезіндегі $2 істеген түзету',
-'previousrevision' => '← Ескілеу түзетуі',
-'nextrevision' => 'Жаңалау түзетуі →',
-'currentrevisionlink' => 'Ағымдық түзетуі',
+'previousrevision' => '← Ескі түзетулер',
+'nextrevision' => 'Жаңа түзетулер →',
+'currentrevisionlink' => 'Ағымдағы түзетулер',
 'cur' => 'ағым.',
 'next' => 'кел.',
 'last' => 'соң.',
 'page_first' => 'алғашқысына',
 'page_last' => 'соңғысына',
-'histlegend' => 'Айырмасын бөлектеу: салыстырмақ нұсқаларының қосу көздерін белгілеп <Enter> пернесін басыңыз, немесе төмендегі батырманы нұқыңыз.<br />
-Шартты белгілер: (ағым.) = ағымдық нұсқамен айырмасы,
-(соң.) = алдыңғы нұсқамен айырмасы, ш = шағын өңдеме',
+'histlegend' => "</span><br /><span style=\"white-space:nowrap;\">Сыртқы құралдар: [http://vs.aka-online.de/cgi-bin/wppagehiststat.pl?lang=kk.wikipedia&page={{FULLPAGENAMEE}} Өңдеу статистикасы] '''·'''</span> <span style=\"white-space:nowrap;\">[http://wikipedia.ramselehof.de/wikiblame.php?lang=kk&article={{FULLPAGENAMEE}} Өзгеріс тарихын іздеу] '''·'''</span> <span style=\"white-space:nowrap;\">[//toolserver.org/~daniel/WikiSense/Contributors.php?wikilang=kk&wikifam=.wikipedia.org&grouped=on&page={{FULLPAGENAMEE}} Үлестер статистикасы] '''·'''</span> <span style=\"white-space:nowrap;\">[http://toolserver.org/~snottywong/usersearch.html?page={{FULLPAGENAMEE}} Қатысушы өңдемелері] '''·'''</span> <span style=\"white-space:nowrap;\">[//toolserver.org/~mzmcbride/cgi-bin/watcher.py?db=kkwiki_p&titles={{FULLPAGENAMEE}} Көрушілер саны] '''·'''</span> <span style=\"white-space:nowrap;\">[http://stats.grok.se/kk/latest/{{FULLPAGENAMEE}} Бетің қаралу статистикасы]</span>
+----
+Айырмасын бөлектеу: салыстырмақ нұсқаларының қосу көздерін белгілеп <Enter> пернесін басыңыз, немесе төмендегі батырманы нұқыңыз.<br />
+Шартты белгілер: <span style=\"white-space:nowrap;\">(ағым.) = ағымдық нұсқамен айырмасы, <span style=\"white-space:nowrap;\">(соң.) = алдыңғы нұсқамен айырмасы, </span> <span style=\"white-space:nowrap;\">&nbsp; '''ш''' = [[Уикипедия:Шағын өңдеме|шағын өңдеме]], → = [[Help:Бөлім#Бөлімін өңдеу|бөлімін өңдеу]], ← = [[Уикипедия:Өңдеменің түйіндемесі|автоматты өңдеу түйіндемесі]]</span></div>",
 'history-fieldset-title' => 'Тарихынан іздеу',
 'history-show-deleted' => 'Жойылғанын ғана көрсету',
-'histfirst' => 'Ð\95Ò£ Ð°Ð»Ò\93аÑ\88Ò\9bÑ\8bÑ\81Ñ\8bна',
-'histlast' => 'Ең соңғысына',
-'historysize' => '($1 байт)',
+'histfirst' => 'Ð\95Ò£ ÐµÑ\81кÑ\96Ñ\81Ñ\96не',
+'histlast' => 'Ең жаңасына',
+'historysize' => '({{PLURAL:$1|1 байт|$1 байт}})',
 'historyempty' => '(бос)',
 
 # Revision feed
@@ -1135,9 +1223,9 @@ $3 келтірілген себебі: ''$2''",
 Осыған қатысты жаңа беттерді [[Special:Search|бұл уикиден іздеуді]] байқап көріңіз.',
 
 # Revision deletion
-'rev-deleted-comment' => '(мәндеме аласталды)',
+'rev-deleted-comment' => '(өңдеу түйіндемесі аласталды)',
 'rev-deleted-user' => '(қатысушы аты аласталды)',
-'rev-deleted-event' => '(журнал жазбасы аласталды)',
+'rev-deleted-event' => '(әрекет журналы аласталды)',
 'rev-deleted-user-contribs' => '[Қатысушы аты немесе IP-мекенжайы жойылған — өңдемелері қатысушы үлесі бетінен жасырылған]',
 'rev-deleted-text-permission' => 'Бұл беттің түзетуі барша мұрағаттарынан аласталған.
 Мында [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} жою журналында] егжей-тегжей мәліметтері болуы мүмкін.',
@@ -1145,7 +1233,7 @@ $3 келтірілген себебі: ''$2''",
 {{SITENAME}} әкімшісі боп соны көре аласыз;
 [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} жою журналында] егжей-тегжей мәлметтері болуы мүмкін.',
 'rev-delundel' => 'көрсет/жасыр',
-'rev-showdeleted' => 'Ð\9aөрсету',
+'rev-showdeleted' => 'көрсету',
 'revisiondelete' => 'Түзетулерді жою/жоюды болдырмау',
 'revdelete-nooldid-title' => 'Нысана түзету жарамсыз',
 'revdelete-nooldid-text' => 'Бұл жетені орындау үшін нысана түзетуін/түзетулерін келтірілмепсіз,
@@ -1162,7 +1250,7 @@ $3 келтірілген себебі: ''$2''",
 'revdelete-hide-text' => 'Түзету мәтінін жасыр',
 'revdelete-hide-image' => 'Файл мағлұматын жасыр',
 'revdelete-hide-name' => 'Әрекет пен нысанасын жасыр',
-'revdelete-hide-comment' => 'Өңдеме мәндемесін жасыр',
+'revdelete-hide-comment' => 'Өңдеме түйіндемесін жасыр',
 'revdelete-hide-user' => 'Өңдеуші атын (IP мекенжайын) жасыр',
 'revdelete-hide-restricted' => 'Осы тиымдарды әкімшілерге қолдану және бұл тілдесуді құлыптау',
 'revdelete-radio-same' => '(өзгертпе)',
@@ -1171,8 +1259,10 @@ $3 келтірілген себебі: ''$2''",
 'revdelete-suppress' => 'Деректерді баршаға ұқсас әкімшілерден де шеттету',
 'revdelete-unsuppress' => 'Қалпына келтірілген түзетулерден тиымдарды аластау',
 'revdelete-log' => 'Себебі:',
-'revdelete-submit' => 'Бөлектенген түзетуге қолдану',
-'revdelete-success' => "'''Түзету көрінісі сәтті қойылды.'''",
+'revdelete-submit' => 'Бөлектенген {{PLURAL:$1|түзетуге|түзетулерге}} қолдану',
+'revdelete-success' => "'''Түзету көрінісі сәтті жаңартылды.'''",
+'revdelete-failure' => "'''Түзету көрінісі жаңартылмады:'''
+$1",
 'logdelete-success' => "'''Журнал көрінісі сәтті қойылды.'''",
 'revdel-restore' => 'Көрінісін өзгерту',
 'revdel-restore-deleted' => 'жойылған нұсқалары',
@@ -1182,7 +1272,7 @@ $3 келтірілген себебі: ''$2''",
 'revdelete-otherreason' => 'Басқа/қосымша себеп:',
 'revdelete-reasonotherlist' => 'Өзге себеп',
 'revdelete-edit-reasonlist' => 'Жою себептерін өңдеу',
-'revdelete-offender' => 'Ð\90Ñ\83Ñ\82оÑ\80 Ð½Ò±Ñ\81Ò\9bалары:',
+'revdelete-offender' => 'Ð\9dÒ±Ñ\81Ò\9bа Ð°Ð²Ñ\82оры:',
 
 # Suppression log
 'suppressionlog' => 'Шеттету журналы',
@@ -1202,7 +1292,7 @@ $3 келтірілген себебі: ''$2''",
 Аңғартпа: бағыттау сілтемелерін қолданғанда бұл баған қайта қойылады.',
 'mergehistory-go' => 'Біріктірлетін түзетулерді көрсет',
 'mergehistory-submit' => 'Түзетулерді біріктіру',
-'mergehistory-empty' => 'Ð\95Ñ\88 Ñ\82үзеÑ\82Ñ\83леÑ\80 Ð±Ñ\96Ñ\80Ñ\96кÑ\82Ñ\96Ñ\80Ñ\96лмейдÑ\96',
+'mergehistory-empty' => 'ТүзеÑ\82Ñ\83леÑ\80 Ð±Ñ\96Ñ\80Ñ\96кÑ\82Ñ\96Ñ\80Ñ\96лмейдÑ\96.',
 'mergehistory-success' => '[[:$1]] дегеннің $3 түзетуі [[:$2]] дегенге сәтті біріктірілді.',
 'mergehistory-fail' => 'Тарих біріктіруін орындау икемді емес, бет пен уақыт бапталымдарын қайта тексеріп шығыңыз.',
 'mergehistory-no-source' => '$1 деген қайнар беті жоқ.',
@@ -1221,20 +1311,21 @@ $3 келтірілген себебі: ''$2''",
 'mergelogpagetext' => 'Төменде бір беттің тарихы өзге бетке біріктіру ең соңғы тізімі келтіріледі.',
 
 # Diffs
-'history-title' => '«$1»  өңдеу тарихы',
+'history-title' => '«$1» дегеннің өңдеу тарихы',
 'difference-title' => 'Нұсқалар арасындағы айырмашылық: "$1"',
 'difference-multipage' => '(Беттер арасындағы айырмашылық)',
 'lineno' => 'Жол нөмірі $1:',
 'compareselectedversions' => 'Таңдалған нұсқаларды салыстыру',
 'showhideselectedversions' => 'Бөлектенген нұсқаларды көрсет/жасыр',
 'editundo' => 'жоққа шығару',
+'diff-empty' => '(айырмашылығы жоқ)',
 'diff-multi' => '($2 қатысушының арадағы $1 түзетуі көрсетілмеген)',
 
 # Search results
 'searchresults' => 'Іздеу нәтижелері',
 'searchresults-title' => '"$1" сұранымына табылған нәтижелер',
 'searchresulttext' => '{{SITENAME}} жобасында іздеу туралы көбірек ақпарат үшін, [[{{MediaWiki:Helppage}}|{{int:help}} бетін]] қараңыз.',
-'searchsubtitle' => "Іздегеніңіз: '''[[:$1]]'''",
+'searchsubtitle' => '\'\'\'[[:$1]]\'\'\' үшін іздегеніңіз  ([[Special:Prefixindex/$1| "$1" бетінен басталатын барлық беттер]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|"$1" бетіне сілтейтін барлық беттер]])',
 'searchsubtitleinvalid' => "Іздегеніңіз: '''$1'''",
 'toomanymatches' => 'Тым көп сәйкес қайтарылды, өзге сұранымды байқап көріңіз',
 'titlematches' => 'Бет тақырыбын аты сәйкес келеді',
@@ -1250,7 +1341,6 @@ $3 келтірілген себебі: ''$2''",
 'searchmenu-legend' => 'Іздеу бапталымдары',
 'searchmenu-exists' => "'''Бұл жобада «[[:$1]]» деген бет бар.'''",
 'searchmenu-new' => "'''\"[[:\$1]]\" осындай атпен бетті бастау'''",
-'searchhelp-url' => 'Help:Мазмұны',
 'searchprofile-articles' => 'Негізгі беттер',
 'searchprofile-project' => 'Анықтама және жоба беттері',
 'searchprofile-images' => 'Мультимедиа',
@@ -1261,7 +1351,8 @@ $3 келтірілген себебі: ''$2''",
 'searchprofile-images-tooltip' => 'Файлдарды іздеу',
 'searchprofile-everything-tooltip' => 'Барлық беттерден іздеу (талқылау беттерін қоса)',
 'searchprofile-advanced-tooltip' => 'Белгіленген есім кеңістігінен іздеу',
-'search-result-size' => '$1 ($2 сөз)',
+'search-result-size' => '$1 ({{PLURAL:$2|1 сөз|$2 сөз}})',
+'search-result-category-size' => '{{PLURAL:$1|1 мүше|$1 мүше}} ({{PLURAL:$2|1 санатша|$2 санатша}}, {{PLURAL:$3|1 файл|$3 файл}})',
 'search-result-score' => 'Арақатынастылығы: $1 %',
 'search-redirect' => '(айдағыш $1)',
 'search-section' => '(бөлім $1)',
@@ -1270,7 +1361,7 @@ $3 келтірілген себебі: ''$2''",
 'search-interwiki-default' => '$1 нәтиже:',
 'search-interwiki-more' => '(көбірек)',
 'search-relatedarticle' => 'Қатысты',
-'mwsuggest-disable' => 'AJAX ұсынымдарын өшір',
+'mwsuggest-disable' => 'Іздеу ұсынымдарын өшір',
 'searcheverything-enable' => 'Белгіленген есім кеңістігінен іздеу',
 'searchrelated' => 'қатысты',
 'searchall' => 'барлық',
@@ -1286,36 +1377,43 @@ $3 келтірілген себебі: ''$2''",
 'powersearch-togglelabel' => 'Белгілеу:',
 'powersearch-toggleall' => 'Барлығы',
 'powersearch-togglenone' => 'Ешқандай',
-'search-external' => 'ШеÑ\82Ñ\82Ñ\96к Ñ\96здегÑ\96Ñ\88',
+'search-external' => 'СÑ\8bÑ\80Ñ\82Ò\9bÑ\8b Ñ\96здеÑ\83',
 'searchdisabled' => '{{SITENAME}} іздеу қызметі өшірілген.
 Әзірше Google арқылы іздеуге болады.
 Аңғартпа: {{SITENAME}} торабының мағлұмат тізбелері ескірген болуы мүмкін.',
 
 # Preferences page
-'preferences' => 'Бапталымдар',
-'mypreferences' => 'Баптауларым',
+'preferences' => 'Баптаулар',
+'mypreferences' => 'Баптаулар',
 'prefs-edits' => 'Өңдеме саны:',
 'prefsnologin' => 'Кірмегенсіз',
-'prefsnologintext' => 'Пайдаланушылық бапталымдарыңызды қою үшін [[{{#special:Userlogin}}|кіруіңіз]] жөн.',
+'prefsnologintext' => 'Қатысушы бапталымдарыңызды жөндеу үшін <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} кіруіңіз]</span> жөн.',
 'changepassword' => 'Құпия сөзді өзгерту',
 'prefs-skin' => 'Мәнерлер',
 'skin-preview' => 'Қарап шығу',
 'datedefault' => 'Еш қалаусыз',
+'prefs-beta' => 'Beta мүмкіндік',
 'prefs-datetime' => 'Уақыт',
+'prefs-labs' => 'Тәжірибелік мүмкіндіктер',
+'prefs-user-pages' => 'Қатысушы беттері',
 'prefs-personal' => 'Жеке деректері',
 'prefs-rc' => 'Жуықтағы өзгерістер',
-'prefs-watchlist' => 'Бақылау',
+'prefs-watchlist' => 'Бақылау тізімі',
 'prefs-watchlist-days' => 'Бақылау тізіміндегі күндердің көрсетпек саны:',
+'prefs-watchlist-days-max' => 'Ең көбі $1 {{PLURAL:$1|күн|күн}}',
 'prefs-watchlist-edits' => 'Кеңейтілген бақылаулардағы өзгерістердің барынша көрсетпек саны:',
+'prefs-watchlist-edits-max' => 'Ең көп саны: 1000',
+'prefs-watchlist-token' => 'Бақылау тізімінің белгісі:',
 'prefs-misc' => 'Әрқилы',
 'prefs-resetpass' => 'Құпия сөзді өзгерту',
+'prefs-changeemail' => 'E-mail мекен-жайын өзгерту',
+'prefs-setemail' => 'E-mail мекен-жайын жөндеу',
 'prefs-email' => 'Е-пошта баптаулары',
 'prefs-rendering' => 'Сырт көрініс',
 'saveprefs' => 'Сақтау',
 'resetprefs' => 'Сақталмаған өзгерістерді тазарту',
 'restoreprefs' => 'Барлығын бастапқы баптауларға қайтару',
 'prefs-editing' => 'Өңдеу',
-'prefs-edit-boxsize' => 'Өңдеу терезесінің өлшемі.',
 'rows' => 'Жолдар:',
 'columns' => 'Бағандар:',
 'searchresultshead' => 'Іздеу',
@@ -1323,14 +1421,16 @@ $3 келтірілген себебі: ''$2''",
 'stub-threshold' => '<a href="#" class="stub">Бастама сілтемесін</a> пішімдеу табалдырығы (байт):',
 'stub-threshold-disabled' => 'Ажыратылған',
 'recentchangesdays' => 'Жуықтағы өзгерістерде көрсетілетін күн саны:',
+'recentchangesdays-max' => 'Ең көбі $1 {{PLURAL:$1|күн|күн}}',
 'recentchangescount' => 'Жуықтағы өзгерістердінде, тарих және журнал беттерінде көрсетпек өңдеме саны:',
+'prefs-help-recentchangescount' => 'Жуықтағы өзгерістер, бет тарихтарығ және журналдар қамтылады.',
 'savedprefs' => 'Бапталымдарыңыз сақталды.',
 'timezonelegend' => 'Уақыт белдеуі:',
 'localtime' => 'Жергілікті уақыт:',
 'timezoneuseserverdefault' => 'Уикидің баптауларын қолдану ($1)',
 'timezoneuseoffset' => 'Басқа (жылжытуды көрсетіңіз)',
-'timezoneoffset' => 'Сағат ығысуы¹',
-'servertime' => 'Сервер уақыты',
+'timezoneoffset' => 'Сағат ығысуы¹:',
+'servertime' => 'Сервер уақыты:',
 'guesstimezone' => 'Шолғыштан алып толтыру',
 'timezoneregion-africa' => 'Африка',
 'timezoneregion-america' => 'Америка',
@@ -1342,26 +1442,29 @@ $3 келтірілген себебі: ''$2''",
 'timezoneregion-europe' => 'Еуропа',
 'timezoneregion-indian' => 'Үнді мұхиты',
 'timezoneregion-pacific' => 'Тынық мұхиты',
-'allowemail' => 'Басқадан хат қабылдауын қос',
+'allowemail' => 'Басқадан хат қабылдауын қосу',
 'prefs-searchoptions' => 'Іздеу бапталымдары',
 'prefs-namespaces' => 'Есім кеңістіктері',
-'defaultns' => 'Ð\9cÑ\8bна ÐµÑ\81Ñ\96м Ð°Ñ\8fлаÑ\80да Ó\99депкÑ\96ден іздеу:',
+'defaultns' => 'Ð\9cÑ\8bна ÐµÑ\81Ñ\96м ÐºÐµÒ£Ñ\96Ñ\81Ñ\82Ñ\96кÑ\82еÑ\80Ñ\96нде Ð±Ð°Ñ\81Ò\9bаÑ\88а іздеу:',
 'default' => 'әдепкі',
 'prefs-files' => 'Файлдар',
+'prefs-custom-css' => 'CSS өзгертпелі',
+'prefs-custom-js' => 'JavaScript өзгертпелі',
+'prefs-common-css-js' => 'Барлық skin-дер үшін CSS/JavaScript бөлісілді:',
 'prefs-emailconfirm-label' => 'Е-поштаның расталуы:',
 'youremail' => 'Е-поштаңыз:',
-'username' => 'Қатысушы атыңыз:',
-'uid' => 'Қатысушы теңдестіргішіңіз:',
-'prefs-memberingroups' => 'Кірген {{PLURAL:$1|тобыңыз|топтарыңыз}}:',
+'username' => '{{GENDER:$1|Қатысушы аты}}:',
+'uid' => '{{GENDER:$1|Қатысушы}} теңдестіргішіңіз (ID):',
+'prefs-memberingroups' => '{{GENDER:$2|Мүше}}  {{PLURAL:$1|тобыңыз|топтарыңыз}}:',
 'prefs-registration' => 'Тіркелу уақыты:',
 'yourrealname' => 'Нақты атыңыз:',
 'yourlanguage' => 'Тіліңіз:',
-'yourvariant' => 'ТÑ\96л/жазба Ð½Ò±Ñ\81Ò\9bаңÑ\8bз:',
-'yournick' => 'Қолтаңбаңыз:',
+'yourvariant' => 'Ð\96азба Ñ\82Ñ\96лÑ\96нÑ\96Ò£ Ð½Ò±Ñ\81Ò\9bалаÑ\80Ñ\8b:',
+'yournick' => 'Жаңа қолтаңбаңыз:',
 'prefs-help-signature' => 'Талқылау беттерінде хабарыңыздан кейін "<nowiki>~~~~</nowiki>" белгісін қалдырсаңыз, бұл қолтаңбаңызбен сол кездегі датаға ауыстырылады.',
 'badsig' => 'Қам қолтаңбаңыз жарамсыз; HTML белгішелерін тексеріңіз.',
-'badsiglength' => 'Лақап атыңыз тым ұзын;
-Бұл $1 таңбадан аспауы жөн.',
+'badsiglength' => 'Қолтаңбаңыз тым ұзын;
+Бұл $1 {{PLURAL:$1|таңбадан|таңбадан}} аспауы керек.',
 'yourgender' => 'Жынысыңыз:',
 'gender-unknown' => 'Көрсетілмеген',
 'gender-male' => 'Ер',
@@ -1376,18 +1479,29 @@ $3 келтірілген себебі: ''$2''",
 'prefs-info' => 'Негізгі мәлімет',
 'prefs-i18n' => 'Тіл туралы мәлімет',
 'prefs-signature' => 'Қолтаңба',
-'prefs-advancedediting' => 'Кеңейтілген баптаулар',
+'prefs-dateformat' => 'Уақыт пішіні',
+'prefs-timeoffset' => 'Уақыт ығысуы',
+'prefs-advancedediting' => 'Жалпы',
+'prefs-editor' => 'Өңдеуші',
+'prefs-preview' => 'Қарап шығу',
 'prefs-advancedrc' => 'Кеңейтілген баптаулар',
 'prefs-advancedrendering' => 'Кеңейтілген баптаулар',
 'prefs-advancedsearchoptions' => 'Кеңейтілген баптаулар',
 'prefs-advancedwatchlist' => 'Кеңейтілген баптаулар',
+'prefs-displayrc' => 'Көрсету бапталымдары',
+'prefs-displaysearchoptions' => 'Көрсету бапталымдары',
+'prefs-displaywatchlist' => 'Көрсету бапталымдары',
+'prefs-diffs' => 'Айырмашылықтар',
+
+# User preference: email validation using jQuery
+'email-address-validity-invalid' => 'Жарамсыз электронды пошта мекен-жайын енгізіңіз',
 
 # User rights
 'userrights' => 'Қатысушы құқықтарын реттеу',
 'userrights-lookup-user' => 'Қатысушы топтарын реттеу',
 'userrights-user-editname' => 'Қатысушы атын енгізіңіз:',
 'editusergroup' => 'Қатысушы топтарын өңдеу',
-'editinguser' => "Қатысушы құқықтарын өзгерту: '''[[{{ns:user}}:$1|$1]]''' ([[{{ns:user_talk}}:$1|{{int:talkpagelinktext}}]]{{int:pipe-separator}}[[{{#special:Contributions}}/$1|{{int:contribslink}}]])",
+'editinguser' => "'''[[User:$1|$1]]''' $2 есімді қатысушының құқықтарын өзгерту",
 'userrights-editusergroup' => 'Қатысушы топтарын өңдеу',
 'saveusergroups' => 'Қатысушы топтарын сақтау',
 'userrights-groupsmember' => 'Мүшелігі:',
@@ -1396,12 +1510,14 @@ $3 келтірілген себебі: ''$2''",
 * Құсбелгі алып тасталған көз қатысушы бұл топқа кірмегенін көрсетеді;
 * Келтірілген * топты бір үстегенінен кейін аластай алмайтындығын, не қарама-қарсысын көрсетеді.',
 'userrights-reason' => 'Себебі:',
-'userrights-no-interwiki' => 'Басқа уикилердегі пайдаланушы құқықтарын өңдеуге рұқсатыңыз жоқ.',
+'userrights-no-interwiki' => 'Басқа уикилердегі қатысушы құқықтарын өңдеуге рұқсатыңыз жоқ.',
 'userrights-nodatabase' => '$1 дерекқоры жоқ не жергілікті емес.',
-'userrights-nologin' => 'Қатысушы құқықтарын тағайындау үшін әкімші тіркелгісімен [[{{#special:Userlogin}}|кіруіңіз]] жөн.',
-'userrights-notallowed' => 'Қатысушы құқықтарын тағайындау үшін тіркелгіңізде рұқсат жоқ.',
+'userrights-nologin' => 'Қатысушы құқықтарын тағайындау үшін әкімші тіркелгісімен [[Special:UserLogin|кіруіңіз]] жөн.',
+'userrights-notallowed' => 'Қатысушы құқықтарын қосуға немесе алып тастауға тіркелгіңізде рұқсат жоқ.',
 'userrights-changeable-col' => 'Өзгерте алатын топтар',
 'userrights-unchangeable-col' => 'Өзгерте алмайтын топтар',
+'userrights-conflict' => 'Қатысушы құқықтар қақтығысы! Өзгертулеріңізді қайта қарап көріңіз.',
+'userrights-removed-self' => 'Өзіңіздің құқықтарыңызды сәтті алып тастадыңыз.  As such, you are no longer able to access this page.',
 
 # Groups
 'group' => 'Топ:',
@@ -1413,12 +1529,12 @@ $3 келтірілген себебі: ''$2''",
 'group-suppress' => 'Шеттетушілер',
 'group-all' => '(барлық)',
 
-'group-user-member' => 'қатысушы',
-'group-autoconfirmed-member' => 'өзқұпталған қатысушы',
-'group-bot-member' => 'бот',
-'group-sysop-member' => 'әкімші',
-'group-bureaucrat-member' => 'бітікші',
-'group-suppress-member' => 'шеттетуші',
+'group-user-member' => '{{GENDER:$1|қатысушы}}',
+'group-autoconfirmed-member' => '{{GENDER:$1|өзқұпталған қатысушы}}',
+'group-bot-member' => '{{GENDER:$1|бот}}',
+'group-sysop-member' => '{{GENDER:$1|әкімші}}',
+'group-bureaucrat-member' => '{{GENDER:$1|бітікші}}',
+'group-suppress-member' => '{{GENDER:$1|шеттетуші}}',
 
 'grouppage-user' => '{{ns:project}}:Қатысушылар',
 'grouppage-autoconfirmed' => '{{ns:project}}:Өзқұпталған қатысушылар',
@@ -1430,14 +1546,14 @@ $3 келтірілген себебі: ''$2''",
 # Rights
 'right-read' => 'Беттерді оқу',
 'right-edit' => 'Беттерді өңдеу',
-'right-createpage' => 'ТалÒ\9bÑ\8bлаÑ\83 ÐµÐ¼ÐµÑ\81 Ð±ÐµÑ\82Ñ\82еÑ\80дÑ\96 Ð±Ð°Ñ\81Ñ\82аÑ\83',
-'right-createtalk' => 'Талқылау беттерді бастау',
+'right-createpage' => 'Ð\91еÑ\82Ñ\82еÑ\80дÑ\96 Ð±Ð°Ñ\81Ñ\82аÑ\83 (Ñ\82алÒ\9bÑ\8bлаÑ\83 ÐµÐ¼ÐµÑ\81 Ð±ÐµÑ\82Ñ\82еÑ\80дÑ\96 Ð±Ð°Ñ\81Ñ\82аÑ\83)',
+'right-createtalk' => 'Талқылау беттерін бастау',
 'right-createaccount' => 'Жаңа қатысушы тіркелгісін жасау',
 'right-minoredit' => 'Өңдемелерді шағын деп белгілеу',
 'right-move' => 'Беттерді жылжыту',
-'right-move-subpages' => 'Ð\91еÑ\82Ñ\82еÑ\80дÑ\96 Ð±Ò±Ð»Ð°Ñ\80дÑ\8bÒ£ Ð±Ð°Ò\93Ñ\8bнÑ\8bÑ\88Ñ\82Ñ\8b Ð±ÐµÑ\82Ñ\82еÑ\80Ñ\96мен жылжыту',
-'right-move-rootuserpages' => 'Ò\9bаÑ\82Ñ\8bÑ\81Ñ\83Ñ\88Ñ\8b Ð±ÐµÑ\82Ñ\96н Ð°Ñ\83Ñ\8bÑ\81Ñ\82Ñ\8bÑ\80у',
-'right-movefile' => 'Файлдардың атын өзгерту',
+'right-move-subpages' => 'Ð\91еÑ\82Ñ\82еÑ\80дÑ\96 Ð¾Ð»Ð°Ñ\80дÑ\8bÒ£ Ð±Ð°Ò\93Ñ\8bнÑ\8bÑ\88Ñ\82Ñ\8b Ð±ÐµÑ\82Ñ\82еÑ\80Ñ\96н Ò\9bоÑ\81а жылжыту',
+'right-move-rootuserpages' => 'Ò\9aаÑ\82Ñ\8bÑ\81Ñ\83Ñ\88Ñ\8b Ð±ÐµÑ\82Ñ\82еÑ\80Ñ\96н Ñ\82үбÑ\96Ñ\80Ñ\96мен Ð¶Ñ\8bлжÑ\8bÑ\82у',
+'right-movefile' => 'Файлдарды жылжыту',
 'right-suppressredirect' => 'Тиісті атауға бетті жылжытқанда айдағышты жасамау',
 'right-upload' => 'Файлдарды жүктеу',
 'right-reupload' => 'Бар файл үстіне жазу',
@@ -1452,8 +1568,10 @@ $3 келтірілген себебі: ''$2''",
 'right-writeapi' => 'API жазуын пайдалану',
 'right-delete' => 'Беттерді жою',
 'right-bigdelete' => 'Ұзақ тарихы бар беттерді жою',
+'right-deletelogentry' => 'Ерекше журнал енгізілімдерін жою және жоймау',
 'right-deleterevision' => 'Беттердің өзіндік түзетулерін жою не жоюын болдырмау',
 'right-deletedhistory' => 'Жойылған тарих даналарын (байланысты мәтінсіз) көру',
+'right-deletedtext' => 'Жойылған мәтінді және жойылған нұсқалар арасындағы өзгерістерді қарау',
 'right-browsearchive' => 'Жойылған беттерді іздеу',
 'right-undelete' => 'Беттің жоюын болдырмау',
 'right-suppressrevision' => 'Әкімшілерден жасырылған түзетулерді шолып шығу және қалпына келтіру',
@@ -1463,14 +1581,23 @@ $3 келтірілген себебі: ''$2''",
 'right-hideuser' => 'Баршадан жасырып, қатысушы атын бұғаттау',
 'right-ipblock-exempt' => 'IP бұғаттауларды, өзбұғаттауларды және ауқым бұғаттауларды орағыту',
 'right-proxyunbannable' => 'Прокси серверлердің өзбұғаттауларын орағыту',
-'right-protect' => 'Қорғау деңгейлерін өзгерту және қорғалған беттерді өңдеу',
-'right-editprotected' => 'Қорғалған беттерді өңдеу (баулы қорғауларсыз)',
-'right-editinterface' => 'Пайдаланушылық тілдесіуін өңдеу',
+'right-unblockself' => 'Өздерін бұғаттамау (Бұғаттаудан шығару)',
+'right-protect' => 'Қорғау деңгейлерін өзгерту және баулы-қорғаулы беттерді өңдеу',
+'right-editprotected' => 'Қорғалған беттерді өңдеу "{{int:protect-level-sysop}}"',
+'right-editsemiprotected' => 'Қорғалған беттерді өңдеу "{{int:protect-level-autoconfirmed}}"',
+'right-editinterface' => 'Қатысушы тілдесіуін өңдеу',
 'right-editusercssjs' => 'Басқа қатысушылардың CSS және JS файлдарын өңдеу',
 'right-editusercss' => 'Басқа қатысушылардың CSS файлдарын өңдеу',
-'right-edituserjs' => 'Басқа қатысушылардың JS файлдарын өңдеу',
+'right-edituserjs' => 'Басқа қатысушылардың JavaScript файлдарын өңдеу',
+'right-editmyusercss' => 'Өзіңіздің қатысушы CSS файлдарыңызды өңдеу',
+'right-editmyuserjs' => 'Өзіңіздің қатысушы JavaScript файлдарыңызды өңдеу',
+'right-viewmywatchlist' => 'Бақылау тізіміңізді қарау',
+'right-editmywatchlist' => 'Өзіңіздің баптауларыңызды өңдеу. Note some actions will still add pages even without this right.',
+'right-viewmyprivateinfo' => 'Өзіңіздің жеке деректеріңізді қарау (e.g. email мекен-жай, нақты есім)',
+'right-editmyprivateinfo' => 'Өзіңіздің жеке деректеріңізді өңдеу (e.g. email мекен-жай, нақты есім)',
+'right-editmyoptions' => 'Баптауларыңызды өңдеу',
 'right-rollback' => 'Белгілі бетті өңдеген соңғы қатысушының өңдемелерінен жылдам шегіндіру',
-'right-markbotedits' => 'Шегіндірлген өңдемелерді боттардікі деп белгілеу',
+'right-markbotedits' => 'Шегіндірлген өңдемелерді боттар өңдемелері деп белгілеу',
 'right-noratelimit' => 'Еселік шектелімдері ықпал етпейді',
 'right-import' => 'Басқа уикилерден беттерді сырттан алу',
 'right-importupload' => 'Файлдарды жүктеу арқылы беттерді сырттан алу',
@@ -1482,6 +1609,8 @@ $3 келтірілген себебі: ''$2''",
 'right-userrights' => 'Қатысушылардың барлық құқықтарын өңдеу',
 'right-userrights-interwiki' => 'Басқа үикилердегі қатысушылардың құқықтарын өңдеу',
 'right-siteadmin' => 'Дерекқорды құлыптау және құлыптауын өшіру',
+'right-sendemail' => 'Басқа қатысушыларға е-пошта жіберу',
+'right-passwordreset' => 'Өзгерген құпия сөз арқылы хабарламаларды шолу',
 
 # Special:Log/newusers
 'newuserlogpage' => 'Тіркелу журналы',
@@ -1494,12 +1623,42 @@ $3 келтірілген себебі: ''$2''",
 # Associated actions - in the sentence "You do not have permission to X"
 'action-read' => 'Осы бетті оқу',
 'action-edit' => 'осы бетті өңдеу',
-'action-delete' => 'Осы бетті жою',
+'action-createpage' => 'беттерді бастау',
+'action-createtalk' => 'талқылау беттерін бастау',
+'action-createaccount' => 'Бұл қатысушы тіркелгісін жасау',
+'action-minoredit' => 'бұл өңдемені шағын деп белгілеу',
+'action-move' => 'бұл бетті жылжыту',
+'action-move-subpages' => 'бұл бетті және оның төменгі беттерін жылжыту',
+'action-move-rootuserpages' => 'қатысушы беттерін түбірімен жылжыту',
+'action-movefile' => 'Бұл файлды жылжыту',
+'action-upload' => 'бұл файлды жүктеу',
+'action-reupload' => 'бұл бар файлдың үстіне жазу',
+'action-upload_by_url' => 'бұл файлды URL-дан жүктеу',
+'action-writeapi' => 'API жазуын пайдалану',
+'action-delete' => 'осы бетті жою',
+'action-deleterevision' => 'бұл нұсқасын жою',
+'action-deletedhistory' => 'бұл беттің жойылған тарихын қарау',
+'action-browsearchive' => 'жойылған беттерді іздеу',
+'action-undelete' => 'бұл бетті жоймау',
+'action-suppressrevision' => 'бұл жасырылған нұсқаны қарау және қалпына келтіру',
+'action-suppressionlog' => 'бұл ерекше журналды қарау',
+'action-block' => 'бұл қатысушыны өңдеуден бұғаттау',
+'action-protect' => 'бұл бет үшін қорғалу деңгейін өзгерту',
+'action-rollback' => 'жекелік беттегі соңғы өңдеген қатысушының соңғы өңдемелерін жылдам шегіндіру',
+'action-import' => 'бұл бетті басқа уикиден импортау',
+'action-importupload' => 'бұл бетті файл жүктеуінен импорттау',
+'action-patrol' => 'басқалардың өңдеулерін зерттелді деп белгілеу',
+'action-autopatrol' => 'өзіңіздің өңдемеңізді зерттелді деп белгілеу',
+'action-unwatchedpages' => 'бақыланылмаған беттер тізімін қарау',
 'action-mergehistory' => 'Бұл беттің өзгеріс тарихын қосу',
 'action-userrights' => 'Қатысушылардың барлық құқықтарын өзгерту',
 'action-userrights-interwiki' => 'Басқа уикилердегі қатысушылардың құқықтарын өзгерту',
 'action-siteadmin' => 'Дерекқорды бұғаттау немесе бұғаттан шығару',
 'action-sendemail' => 'электронды хаттарды жіберу',
+'action-editmywatchlist' => 'бақылауыңызды өңдеу',
+'action-viewmywatchlist' => 'бақылау тізіміңізді қарау',
+'action-viewmyprivateinfo' => 'жеке ақпараттарыңызды қарау',
+'action-editmyprivateinfo' => 'жеке ақпараттарыңызды өңдеу',
 
 # Recent changes
 'nchanges' => '$1 өзгеріс',
@@ -1511,27 +1670,27 @@ $3 келтірілген себебі: ''$2''",
 'recentchanges-label-minor' => 'Бұл шағын өңдеме',
 'recentchanges-label-bot' => 'Бұл өңдемені бот жасады.',
 'recentchanges-label-unpatrolled' => 'Бұл өңдеме әлі тексеруден өтпеді.',
-'rcnote' => "$3 кезіне дейін — төменде соңғы {{PLURAL:$2|күндегі|'''$2''' күндегі}}, соңғы '''$1''' өзгеріс көрсетіледі.",
-'rcnotefrom' => "'''$2''' кезінен бері — төменде '''$1''' жеткенше дейін өзгерістер көрсетіледі.",
-'rclistfrom' => '$1 кезінен бері — жаңа өзгерістерді көрсет.',
+'rcnote' => "Төменде $5, $4 кезіне дейінгі соңғы {{PLURAL:$2|күндегі|'''$2''' күндегі}}, {{PLURAL:$1| '''1''' өзгеріс|соңғы '''$1''' өзгеріс}}  көрсетіледі.",
+'rcnotefrom' => "Төменде '''$2''' кезінен бергі ('''$1''' жеткенше дейін) өзгерістер көрсетіледі.",
+'rclistfrom' => '$1 кезінен бергі жаңа өзгерістерді көрсет.',
 'rcshowhideminor' => 'Шағын өңдемелерді $1',
 'rcshowhidebots' => 'Боттарды $1',
-'rcshowhideliu' => 'Ð\9aÑ\96Ñ\80гендерді $1',
-'rcshowhideanons' => 'ТÑ\96Ñ\80келгÑ\96Ñ\81Ñ\96здеÑ\80дÑ\96 $1',
+'rcshowhideliu' => 'ТÑ\96Ñ\80келгендерді $1',
+'rcshowhideanons' => 'Ð\90нонимдÑ\96 Ò\9bаÑ\82Ñ\8bÑ\81Ñ\83Ñ\88Ñ\8bлаÑ\80дÑ\8b $1',
 'rcshowhidepatr' => 'Зерттелген өңдемелерді $1',
 'rcshowhidemine' => 'Өңдемелерімді $1',
 'rclinks' => 'Соңғы $2 күнде болған, соңғы $1 өзгерісті көрсет<br />$3',
 'diff' => 'айырм.',
 'hist' => 'тарихы',
-'hide' => 'Ð\96асыру',
-'show' => 'Ð\9aөрсету',
+'hide' => 'Ðасыру',
+'show' => 'көрсету',
 'minoreditletter' => 'ш',
 'newpageletter' => 'Ж',
 'boteditletter' => 'б',
 'number_of_watching_users_pageview' => '[бақылаған $1 қатысушы]',
 'rc_categories' => 'Санаттарға шектеу ("|" белгісімен бөліктеңіз)',
 'rc_categories_any' => 'Кез келген',
-'rc-change-size-new' => 'Өңдеуден кейінгі көлемі: {{PLURAL:$1|байт|байттар}}',
+'rc-change-size-new' => 'Өңдеуден кейінгі көлемі: $1{{PLURAL:$1|байт|байт}}',
 'newsectionsummary' => '/* $1 */ жаңа бөлім',
 'rc-enhanced-expand' => 'Толық ақпаратты көрсету (JavaScript-ті керек етеді)',
 'rc-enhanced-hide' => 'Толық ақпаратты жасыру',
@@ -1542,22 +1701,24 @@ $3 келтірілген себебі: ''$2''",
 'recentchangeslinked-feed' => 'Қатысты өзгерістер',
 'recentchangeslinked-toolbox' => 'Қатысты өзгерістер',
 'recentchangeslinked-title' => '«$1» дегенге қатысты өзгерістер',
-'recentchangeslinked-noresult' => 'Сілтеген беттерде келтірілген мерзімде ешқандай өзгеріс болмаған.',
 'recentchangeslinked-summary' => "Бұл тізімде өзіндік бетке сілтеген беттердегі (не өзіндік санат мүшелеріндегі) істелген жуықтағы өзгерістер беріледі.
 [[Special:Watchlist|Бақылау тізіміңіздегі]] беттер '''жуан''' болып белгіленеді.",
 'recentchangeslinked-page' => 'Бет атауы:',
 'recentchangeslinked-to' => 'Керісінше, келтірілген бетке сілтейтін беттердегі өзгерістерді көрсет',
 
 # Upload
-'upload' => 'Ð\96үктеу',
+'upload' => 'Файл Ð¶үктеу',
 'uploadbtn' => 'Файлды жүктеу',
 'reuploaddesc' => 'Жүктеу пішініне қайта келу.',
 'upload-tryagain' => 'Файл сипаттамасының өзгерістерін жөнелту',
 'uploadnologin' => 'Кірмегенсіз',
-'uploadnologintext' => 'Файлдарды жүктеу үшін  [[Special:UserLogin|кіруіңіз]] жөн.',
+'uploadnologintext' => 'Файлдарды $1 жүктеуіңіз керек.',
 'upload_directory_missing' => 'Жүктеу қалтасы ($1) жетіспейді және веб-сервер жарата алмайды.',
 'upload_directory_read_only' => 'Жүктеу қалтасына ($1) веб-сервер жаза алмайды.',
 'uploaderror' => 'Жүктеу қатесі',
+'upload-recreate-warning' => "'''Ескету: Бұл атаумен файл жойылған немесе жылжытылған'''
+
+The deletion and move log for this page are provided here for convenience:",
 'uploadtext' => "Төмендегі пішінді файлдарды жүктеу үшін қолданыңыз.
 Алдында жүктелген файлдарды қарау не іздеу үшін [[Special:FileList|жүктелген файлдар тізіміне]] барыңыз. Сондай-ақ файлдардың жүктелуі [[Special:Log/upload|жүктелі журналына]], ал жойылған файлдар [[Special:Log/delete|жойылу журналына]] жазылады.
 
@@ -1570,7 +1731,8 @@ $3 келтірілген себебі: ''$2''",
 'upload-prohibited' => 'Рұқсат етілмеген файл түрлері: $1.',
 'uploadlog' => 'жүктеу журналы',
 'uploadlogpage' => 'Жүктеу журналы',
-'uploadlogpagetext' => 'Төменде ең соңғы жүктелген файлдар тізімі.',
+'uploadlogpagetext' => 'Төменде ең соңғы жүктелген файлдар тізімі.
+Тағы көрнекі қарап шығу үшін [[Special:NewFiles|жаңа файлдар көрмесі]] дегенді қараңыз.',
 'filename' => 'Файл атауы',
 'filedesc' => 'Түйіндемесі',
 'fileuploadsummary' => 'Файл сипаттамасы:',
@@ -1578,27 +1740,33 @@ $3 келтірілген себебі: ''$2''",
 'filestatus' => 'Ауторлық құқықтар күйі:',
 'filesource' => 'Қайнар көзі:',
 'uploadedfiles' => 'Жүктелген файлдар',
-'ignorewarning' => 'Құлақтандыруға елеме де файлды қалайда сақта.',
+'ignorewarning' => 'Ескетуді елеме де файлды қалайда сақта.',
 'ignorewarnings' => 'Ескертулерді елемеу',
 'minlength1' => 'Файл атауында ең кемінде бір әріп болуы жөн.',
 'illegalfilename' => '«$1» файл атауында бет тақырыбы атында рұқсат берілмеген таңбалар бар.
 Файлды қайта атаңыз да бұны қотарып беруді қайта байқап көріңіз.',
+'filename-toolong' => 'Файл атауы 240 байттан жоғары болмауы керек',
 'badfilename' => 'Файлдың атауы «$1» деп өзгертілді.',
 'filetype-badmime' => '«$1» деген MIME түрі бар файлдарды қотарып беруге рұқсат етілмейді.',
 'filetype-unwanted-type' => "'''«.$1»''' — күтілмеген файл түрі. Ұнамды файл түрлері: $2.",
-'filetype-banned-type' => "'''«.$1»''' — рұқсатталмаған файл түрі. Рұқсатталған файл түрлері: $2.",
+'filetype-banned-type' => "'''«.$1»''' — {{PLURAL:$4|рұқсатталмаған файл түрі|рұқсатталмаған файл түрлері}}. Рұқсатталған {{PLURAL:$3|файл түрі|файл түрлері}}: $2.",
 'filetype-missing' => 'Бұл файлдың («.jpg» сияқты) кеңейтімі жоқ.',
 'empty-file' => 'Сіз жіберген файл бос.',
+'filename-tooshort' => 'Файл атауы қысқа.',
+'illegal-filename' => 'Файл атауы рұқсат етілген.',
+'unknown-error' => 'Белгісіз қателік орын алды.',
 'large-file' => 'Файлдың $1 мөлшерінен аспауына кепілдеме беріледі;
 бұл файл мөлшері — $2.',
 'largefileserver' => 'Осы файлдың мөлшері сервердің қалауынан асып кеткен.',
 'emptyfile' => 'Қотарып берілген файлыңыз бос сияқты. Файл атауы қате жазылған мүмкін.
 Бұл файлды қотарып беруі нақты талабыңыз екенін тексеріп шығыңыз.',
+'windows-nonascii-filename' => 'Бұл уики файл атауларында арнайы таңбаларды қолдамайды.',
 'fileexists' => 'Осылай аталған файл әлдеқашан бар, егер бұны өзгертуге сеніміңіз жоқ болса <strong>[[:$1]]</strong> дегенді тексеріп шығыңыз.
 [[$1|thumb]]',
 'filepageexists' => 'Бұл файлдың сипаттама беті алдақашан <strong>[[:$1]]</strong> дегенде жасалған, бірақ ағымда былай аталған еш файл жоқ.
 Енгізген қысқаша мазмұндамаңыз сипаттамасы бетінде көрсетілмейді.
-Қысқаша мазмұндамаңыз осы арада көрсетілу үшін, бұны қолмен өңдемек болыңыз',
+Қысқаша мазмұндамаңыз осы арада көрсетілу үшін, бұны қолмен өңдемек болыңыз.
+[[$1|нобай]]',
 'fileexists-extension' => 'Ұқсас атауы бар файл табылды: [[$2|thumb]]
 * Қотарып берілетін файл атауы: <strong>[[:$1]]</strong>
 * Бар болған файл атауы: <strong>[[:$2]]</strong>
@@ -1610,9 +1778,9 @@ $3 келтірілген себебі: ''$2''",
 Бұл — мөлшері кішірітілген сурет ''(нобай)'' сияқты.
 Егер бұл суреттің толық ажыратылымдығы болса, бұны қотарып беріңіз, әйтпесе файл атауын өзгертіңіз.",
 'fileexists-forbidden' => 'Осылай аталған файл алдақашан бар;
-кері қайтыңыз да, осы файлды жаңа атымен қотарып беріңіз. [[File:$1|thumb|center|$1]]',
-'fileexists-shared-forbidden' => 'Осылай аталған файл ортақ қоймада алдақашан бар;
-кері қайтыңыз да, осы файлды жаңа атымен қотарып беріңіз. [[File:$1|thumb|center|$1]]',
+кері қайтыңыз да, осы файлды жаңа атымен жүктеп беріңіз. [[File:$1|нобай|center|$1]]',
+'fileexists-shared-forbidden' => 'Осылай аталған файл ортаққорда алдақашан бар;
+кері қайтыңыз да, осы файлды жаңа атымен жүктеп беріңіз. [[File:$1|thumb|center|$1]]',
 'file-exists-duplicate' => 'Бұл файл келесі {{PLURAL:$1|файлдың|файлдарының}} телнұсқасы:',
 'uploadwarning' => 'Жүктеу жөнінде құлақтандыру',
 'savefile' => 'Файлды сақтау',
@@ -1620,7 +1788,8 @@ $3 келтірілген себебі: ''$2''",
 'overwroteimage' => '«[[$1]]» деген файлдың жаңа нұсқасын жүктеді',
 'uploaddisabled' => 'Жүктеу өшірілген',
 'copyuploaddisabled' => 'URL арқылы жүктеу өшірілген.',
-'uploaddisabledtext' => '{{SITENAME}} жобасында файл қотарып беруі өшірілген.',
+'uploadfromurl-queued' => 'Сіздің жүктеулеріңіз кезекте тұр.',
+'uploaddisabledtext' => 'Файл жүктеу өшірілген.',
 'uploadscripted' => 'Бұл файлда веб шолғышты қателікпен талдатқызатын HTML не әмір коды бар.',
 'uploadvirus' => 'Бұл файлда вирус бар! Егжей-тегжейлері: $1',
 'upload-source' => 'Қайнар файл',
@@ -1635,6 +1804,7 @@ $3 келтірілген себебі: ''$2''",
 'filename-bad-prefix' => "Қотарып бермек файлыңыздың атауы '''«$1» ''' деп басталады, мынадай сипаттаусыз атауды әдетте сандық камералар өздіктік береді.
 Файлыңызға сипаттылау атауды таңдаңыз.",
 'upload-success-subj' => 'Сәтті жүктелді',
+'upload-success-msg' => '[$2] дегеннен сәтті жүктедіңіз. Оны мынадан ала аласыз [[:{{ns:file}}:$1]]',
 'upload-failure-subj' => 'Жүктеу мәселесі',
 'upload-warning-subj' => 'Жүктеу кезіндегі ескерту',
 
@@ -1650,7 +1820,19 @@ URL жарамды және қатынаулы екенін тексеріп ш
 'upload-too-many-redirects' => 'URL шектен тыс жылжытуларға ие',
 'upload-unknown-size' => 'Белгісіз өлшем',
 
+# File backend
+'backend-fail-delete' => '«$1» файлы жойылмайды.',
+'backend-fail-describe' => '"$1" файлы үшін метадерегі өзгертілмейді.',
+'backend-fail-alreadyexists' => '"$1" файлы бұрыннан бар.',
+'backend-fail-copy' => '«$1» файлы «$2» файлына көшірілмеді.',
+'backend-fail-move' => '«$1» файл атауы «$2» атауына өзгертілмеді.',
+'backend-fail-opentemp' => 'Сырттан алынатын файл ашылмайды',
+'backend-fail-read' => '«$1» файлы оқылмайды.',
+'backend-fail-create' => '«$1» файлы жазылмайды.',
+'backend-fail-maxsize' => '"$1" файлы жазылмайды, себебі {{PLURAL:$2|1 байттан|$2 байттан}} үлкенірек.',
+
 # HTTP errors
+'http-invalid-url' => 'Жарамсыз URL: $1',
 'http-read-error' => 'HTTP оқудағы қате.',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
@@ -1664,23 +1846,23 @@ URL дұрыс екендігін және торап істеп тұрғаны
 
 'license' => 'Лицензияландыруы:',
 'license-header' => 'Лицензияландыруы',
-'nolicense' => 'Ештеңе бөлектенбеген',
+'nolicense' => 'Ештеңе таңдалмаған',
 'license-nopreview' => '(Қарап шығу жетімді емес)',
-'upload_source_url' => ' (жарамды, баршаға қатынаулы URL)',
-'upload_source_file' => ' (компьютеріңіздегі файл)',
+'upload_source_url' => '(жарамды, баршаға қатынаулы URL)',
+'upload_source_file' => '(компьютеріңіздегі файл)',
 
 # Special:ListFiles
 'listfiles-summary' => 'Бұл арнайы бетте барлық жүктелген файлдар көрсетіледі.
 Соңғы жүктелген файлдар тізімде жоғарғы шетімен әдепкіден көрсетіледі.
 Бағанның бас жолын нұқығанда сұрыптаудың реттеуі өзгертіледі.',
-'listfiles_search_for' => 'ТаÑ\81па атауын іздеу:',
+'listfiles_search_for' => 'Ð\9cедиа атауын іздеу:',
 'imgfile' => 'файл',
 'listfiles' => 'Файл тізімі',
-'listfiles_thumb' => 'Ð\9fÑ\96Ñ\88Ñ\96м',
+'listfiles_thumb' => 'Ð\9dобай',
 'listfiles_date' => 'Күн-айы',
 'listfiles_name' => 'Атауы',
 'listfiles_user' => 'Қатысушы',
-'listfiles_size' => 'Мөлшері',
+'listfiles_size' => 'Өлшемі',
 'listfiles_description' => 'Сипаттамасы',
 'listfiles_count' => 'Нұсқалары',
 
@@ -1693,52 +1875,71 @@ URL дұрыс екендігін және торап істеп тұрғаны
 'filehist-revert' => 'қайтар',
 'filehist-current' => 'ағымдағы',
 'filehist-datetime' => 'Күн-ай/Уақыт',
+'filehist-thumb' => 'Нобай',
+'filehist-thumbtext' => '$1 кезіндегі нұсқасы үшін нобай',
+'filehist-nothumb' => 'Нобайсыз',
 'filehist-user' => 'Қатысушы',
 'filehist-dimensions' => 'Өлшемдері',
-'filehist-filesize' => 'Файл мөлшері',
-'filehist-comment' => 'Мәндемесі',
-'imagelinks' => 'Сілтемелер',
-'linkstoimage' => 'Бұл файлға келесі {{PLURAL:$1|бет|$1 бет}} сілтейді:',
+'filehist-filesize' => 'Файл өлшемі',
+'filehist-comment' => 'Пікір',
+'filehist-missing' => 'Жоғалған файл',
+'imagelinks' => 'Файл қолданылуы',
+'linkstoimage' => 'Бұл файлға келесі {{PLURAL:$1|беттер|$1 бет}} сілтейді:',
 'nolinkstoimage' => 'Бұл файлға еш бет сілтемейді.',
 'morelinkstoimage' => 'Бұл файлдың [[Special:WhatLinksHere/$1|көбірек сілтемелерін]] қарау.',
-'duplicatesoffile' => 'Келесі {{PLURAL:$1|файл бұл файлдың телнұсқасы|$1 файл бұл файлдың телнұсқалары}}:',
-'sharedupload' => 'Бұл файл ортақ қоймаға қотарып берілген сондықтан басқа жобаларда қолдануы мүмкін.',
+'linkstoimage-redirect' => '$1 (файл айдатылуы) $2',
+'duplicatesoffile' => 'Келесі {{PLURAL:$1|файл бұл файлдың телнұсқасы|$1 файл бұл файлдың телнұсқалары}} ([[Special:FileDuplicateSearch/$2|толығырақ көру]]):',
+'sharedupload' => 'Бұл файл $1 жобасынан сондықтан басқа жобаларда қолдануы мүмкін.',
+'sharedupload-desc-there' => 'Бұл файл $1 жобасынан және сондықтан басқа жобаларда қолдануы мүмкін.
+Қосымша мәліметтер үшін [$2 файл сипаттама бетін] қараңыз.',
+'sharedupload-desc-here' => 'Бұл файл $1 жобасынан және сондықтан басқа жобаларда қолдануы мүмкін.
+Бұның сипатамасы [$2 файл сипаттама беті] төменде көрсетілген.',
+'sharedupload-desc-edit' => 'Бұл файл $1 жобасынан және сондықтан басқа жобаларда қолдануы мүмкін.
+Сипаттамасын өңдегіңіз келсе мұнда [$2 файл сипаттама беті].',
+'sharedupload-desc-create' => 'Бұл файл $1 жобасынан және сондықтан басқа жобаларда қолдануы мүмкін.
+Сипаттамасын өңдегіңіз келсе мұнда [$2 файл сипаттама беті].',
+'filepage-nofile' => 'Бұл атаумен файл жоқ.',
+'filepage-nofile-link' => 'Бұл атаумен файл жоқ, бірақ сіз оны [$1 жүктей аласыз].',
 'uploadnewversion-linktext' => 'Бұл файлдың жаңа нұсқасын жүктеу',
+'shared-repo-from' => '$1 дегеннен',
+'shared-repo' => 'қоймаға қосылған',
+'upload-disallowed-here' => 'Сіз бұл файлдың үстінен жаза алмайсыз',
 
 # File reversion
 'filerevert' => '$1 дегенді қайтару',
 'filerevert-legend' => 'Файлды қайтару',
-'filerevert-intro' => '<span class="plainlinks">\'\'\'[[{{ns:media}}:$1|$1]]\'\'\' дегенді [$4 $3, $2 кезіндегі нұсқасына] қайтарудасыз.</span>',
-'filerevert-comment' => 'Ð\9cÓ\99ндемеÑ\81і:',
+'filerevert-intro' => "Сіз  '''[[Media:$1|$1]]''' дегенді [$3, $2 кезіндегі $4 нұсқасына] қайтарудасыз.",
+'filerevert-comment' => 'Себебі:',
 'filerevert-defaultcomment' => '$2, $1 кезіндегі нұсқасына қайтарылды',
 'filerevert-submit' => 'Қайтару',
-'filerevert-success' => '<span class="plainlinks">\'\'\'[[{{ns:media}}:$1|$1]]\'\'\' деген [$4 $3, $2 кезіндегі нұсқасына] қайтарылды.</span>',
+'filerevert-success' => "'''[[Media:$1|$1]]''' деген [$3, $2 кезіндегі $4 нұсқасына] қайтарылды.",
 'filerevert-badversion' => 'Келтірілген уақыт белгісімен бұл файлдың алдыңғы жергілікті нұсқасы жоқ.',
 
 # File deletion
 'filedelete' => '$1 дегенді жою',
 'filedelete-legend' => 'Файлды жою',
-'filedelete-intro' => "'''[[{{ns:media}}:$1|$1]]''' дегенді жоймақсыз.",
+'filedelete-intro' => "Сіз  '''[[Media:$1|$1]]''' деген файлды барлық тарихымен бірге жоймақшысыз.",
 'filedelete-intro-old' => "'''[[Media:$1|$1]]''' — [$4 $3, $2 кезіндегі нұсқасын] жоюдасыз.",
 'filedelete-comment' => 'Себебі:',
 'filedelete-submit' => 'Жой',
 'filedelete-success' => "'''$1''' деген жойылды.",
-'filedelete-success-old' => "'''[[Media:$1|$1]]'''  $3, $2 кезіндегі нұсқасы жойылды.",
-'filedelete-nofile' => "'''$1''' деген {{SITENAME}} жобасында жоқ.",
+'filedelete-success-old' => "'''[[Media:$1|$1]]''' дегеннің $3, $2 кезіндегі нұсқасы жойылды.",
+'filedelete-nofile' => "'''$1''' деген жоқ.",
 'filedelete-nofile-old' => "Келтірілген анықтауыштарымен '''$1''' дегеннің мұрағатталған нұсқасы мында жоқ.",
 'filedelete-otherreason' => 'Басқа/қосымша себеп:',
 'filedelete-reason-otherlist' => 'Басқа себеп',
 'filedelete-reason-dropdown' => '* Жоюдың жалпы себептері
-** Ауторлық құқықтарын бұзу
+** Авторлық құқықтарын бұзу
 ** Файл телнұсқасы',
 'filedelete-edit-reasonlist' => 'Жою себептерін өңдеу',
+'filedelete-maintenance-title' => 'Файл жойылмады',
 
 # MIME search
 'mimesearch' => 'Файлды MIME түрімен іздеу',
 'mimesearch-summary' => 'Бұл бетте файлдарды MIME түрімен сүзгілеуі қосылған.
 Кірісі: мағлұмат_түрі/түр_тарауы, мысалы <code>image/jpeg</code>.',
 'mimetype' => 'MIME түрі:',
-'download' => 'жүкÑ\82еп алу',
+'download' => 'ТүÑ\81Ñ\96Ñ\80Ñ\96п алу',
 
 # Unwatched pages
 'unwatchedpages' => 'Бақыланылмаған беттер',
@@ -1748,42 +1949,54 @@ URL дұрыс екендігін және торап істеп тұрғаны
 
 # Unused templates
 'unusedtemplates' => 'Пайдаланылмаған үлгілер',
-'unusedtemplatestext' => 'Бұл бет басқа бетке кіріcтірілмеген үлгі есім аяысындағы барлық беттерді тізімдейді.
-Үлгілерді жою алдынан бұның өзге сілтемелерін тексеріп шығуын ұмытпаңыз',
+'unusedtemplatestext' => 'Бұл бет басқа бетке кіріcтірілмеген {{ns:template}} есім кеңістігіндегі барлық беттерді тізімдейді.
+Үлгілерді жоймас бұрын бұның өзге сілтемелерін тексеріп шығуын ұмытпаңыз.',
 'unusedtemplateswlh' => 'басқа сілтемелер',
 
 # Random page
 'randompage' => 'Кездейсоқ бет',
-'randompage-nopages' => 'Ð\91ұл ÐµÑ\81Ñ\96м Ð°Ñ\8fÑ\81Ñ\8bнда беттер жоқ.',
+'randompage-nopages' => 'Ð\9cұнда ÐºÐµÐ»ÐµÑ\81Ñ\96 {{PLURAL:$2|еÑ\81Ñ\96м ÐºÐµÒ£Ñ\96Ñ\81Ñ\82Ñ\96гÑ\96|еÑ\81Ñ\96м ÐºÐµÒ£Ñ\96Ñ\81Ñ\82Ñ\96гÑ\96нде}}: $1 беттер жоқ.',
 
 # Random redirect
 'randomredirect' => 'Кездейсоқ айдағыш',
-'randomredirect-nopages' => 'Бұл есім аясында еш айдағыш жоқ.',
+'randomredirect-nopages' => 'Бұл есім аясында еш айдағыш жоқ "$1".',
 
 # Statistics
 'statistics' => 'Санақ',
 'statistics-header-pages' => 'Беттер статистикасы',
 'statistics-header-edits' => 'Өңдеулер статистикасы',
-'statistics-header-users' => 'Қатысушы санағы',
+'statistics-header-views' => 'Қаралу статистикасы',
+'statistics-header-users' => 'Қатысушы статистикасы',
+'statistics-header-hooks' => 'Басқа статистикалар',
 'statistics-articles' => 'Мақалалар саны',
 'statistics-pages' => 'Беттер',
-'statistics-pages-desc' => 'Уикидегі барлық беттер, соның ішінде талқылау беттері, айдатқыштар және басқалары.',
+'statistics-pages-desc' => 'Уикидегі барлық беттер, соның ішінде талқылау беттері, айдатқыштар және басқалары (санат, жоба, портал, файл, Уикипедия, қатысушы жеке беттері, үлгі).',
 'statistics-files' => 'Жүктелген файлдар',
-'statistics-edits' => 'Барлық өңдеулер саны',
+'statistics-edits' => '{{SITENAME}} құрылғанан бергі бет өңдеулері',
 'statistics-edits-average' => 'Әр бетке шаққандағы өңдеулердің орташа саны',
+'statistics-views-total' => 'Барлық қаралулар',
+'statistics-views-total-desc' => 'Қаралуларға бар болмаған беттер және арнайы беттер кірмейді',
+'statistics-views-peredit' => 'Өңдеуге шаққанда қаралулар',
 'statistics-users' => 'Тіркелген қатысушылар [[Special:ListUsers|(тізім)]]',
 'statistics-users-active' => 'Белсенді қатысушылар',
 'statistics-users-active-desc' => 'Соңғы {{PLURAL:$1|күнде|$1 күнде}} қандай да бір іс-әрекет жасаған қатысушылар',
 'statistics-mostpopular' => 'Ең көп қаралған беттер',
 
-'disambiguations' => 'Айрықты беттер',
+'disambiguations' => 'Айрықты беттерге сілтенген беттер',
 'disambiguationspage' => '{{ns:template}}:Айрық',
 'disambiguations-text' => "Келесі беттер '''айрықты бетке''' сілтейді.
 Бұның орнына белгілі тақырыпқа сілтеуі керек.<br />
 Егер [[MediaWiki:Disambiguationspage]] тізіміндегі үлгі қолданылса, бет айрықты деп саналады.",
 
+'pageswithprop' => 'Беттер бет сипатымен',
+'pageswithprop-legend' => 'Беттер бет сипатымен',
+'pageswithprop-prop' => 'Меншік атауы:',
+'pageswithprop-submit' => 'Өту',
+
 'doubleredirects' => 'Екі мәрте айдағыштар',
 'doubleredirectstext' => 'Бұл бетте басқа айдату беттерге сілтейтін беттер тізімделінеді. Әрбір жолақта бірінші және екінші айдағышқа сілтемелер бар, сонымен бірге екінші айдағыш нысанасы бар, әдетте бұл бірінші айдағыш бағыттайтын «нақты» нысана бет атауы болуы керек.',
+'double-redirect-fixed-move' => '[[$1]] жылжытылды.
+оған қазір [[$2]] дегенге айдатылды.',
 
 'brokenredirects' => 'Сынық айдағыштар',
 'brokenredirectstext' => 'Келесі айдағыштар жоқ беттерге сілтейді:',
@@ -1798,15 +2011,18 @@ URL дұрыс екендігін және торап істеп тұрғаны
 'fewestrevisions' => 'Ең аз түзетілген беттер',
 
 # Miscellaneous special pages
-'nbytes' => '$1 байт',
-'ncategories' => '$1 санат',
-'nlinks' => '$1 сілтеме',
-'nmembers' => '$1 мүше',
-'nrevisions' => '$1 түзету',
-'nviews' => '$1 рет қаралған',
+'nbytes' => '$1 {{PLURAL:$1|байт|байт}}',
+'ncategories' => '$1 {{PLURAL:$1|Санат|Санаттар}}',
+'ninterwikis' => '$1 {{PLURAL:$1|интеруики|интеруикилер}}',
+'nlinks' => '$1 {{PLURAL:$1|сілтеме|сілтемелер}}',
+'nmembers' => '$1 {{PLURAL:$1|мүше|мүше}}',
+'nrevisions' => '$1 {{PLURAL:$1|түзету|түзету}}',
+'nviews' => '$1 {{PLURAL:$1|қаралу|қаралу}}',
+'nimagelinks' => '$1 {{PLURAL:$1|бетінде|беттерінде}} қолданылады',
+'ntransclusions' => '$1 {{PLURAL:$1|бетінде|беттерінде}} қолданылады',
 'specialpage-empty' => 'Бұл баянатқа еш нәтиже жоқ.',
 'lonelypages' => 'Еш беттен сілтелмеген беттер',
-'lonelypagestext' => 'Келесі беттерге {{SITENAME}} жобасындағы басқа беттер сілтемейді.',
+'lonelypagestext' => 'Келесі беттерге {{SITENAME}} жобасындағы басқа беттерінің ішіндегі кірікбеттер сілтемейді.',
 'uncategorizedpages' => 'Санатсыз беттер',
 'uncategorizedcategories' => 'Санатсыз санаттар',
 'uncategorizedimages' => 'Санатсыз файлдар',
@@ -1816,38 +2032,47 @@ URL дұрыс екендігін және торап істеп тұрғаны
 'popularpages' => 'Ең көп қаралған беттер',
 'wantedcategories' => 'Басталмаған санаттар',
 'wantedpages' => 'Басталмаған беттер',
+'wantedfiles' => 'Басталмаған файлдар',
+'wantedtemplates' => 'Басталмаған үлгілер',
 'mostlinked' => 'Ең көп сілтенген беттер',
-'mostlinkedcategories' => 'Ең көп пайдаланылған санаттар',
-'mostlinkedtemplates' => 'Ең көп пайдаланылған үлгілер',
+'mostlinkedcategories' => 'Ең көп сілтенген санаттар',
+'mostlinkedtemplates' => 'Ең көп сілтенген үлгілер',
 'mostcategories' => 'Ең көп санаты бар беттер',
-'mostimages' => 'Ең көп пайдаланылған файлдар',
+'mostimages' => 'Ең көп сілтенген файлдар',
+'mostinterwikis' => 'Ең көп интеруикилері бар беттер',
 'mostrevisions' => 'Ең көп түзетілген беттер',
 'prefixindex' => 'Атау бастауыш тізімі',
+'prefixindex-namespace' => 'Атау бастауыш тізімі ($1 есім кеңістігі)',
 'shortpages' => 'Ең қысқа беттер',
 'longpages' => 'Ең ұзын беттер',
 'deadendpages' => 'Еш бетке сілтемейтін беттер',
 'deadendpagestext' => 'Келесі беттер {{SITENAME}} жобасындағы басқа беттерге сілтемейді.',
 'protectedpages' => 'Қорғалған беттер',
 'protectedpages-indef' => 'Тек белгісіз қорғаулар',
+'protectedpages-cascade' => 'Тек баулы қорғаулар',
 'protectedpagestext' => 'Келесі беттер өңдеуден немесе жылжытудан қорғалған',
-'protectedpagesempty' => 'Ð\90Ò\93Ñ\8bмда Ð¼Ñ\8bнадай Ð±Ð°Ð¿Ñ\82алÑ\8bмдаÑ\80Ñ\8bмен ÐµÑ\88бÑ\96Ñ\80 Ð±ÐµÑ\82 Ò\9bоÑ\80Ò\93алмаÒ\93ан',
+'protectedpagesempty' => 'Ð\90Ò\93Ñ\8bмда Ð¼Ñ\8bнадай Ð¿Ð°Ñ\80амеÑ\82Ñ\80леÑ\80мен ÐµÑ\88бÑ\96Ñ\80 Ð±ÐµÑ\82 Ò\9bоÑ\80Ò\93алмаÒ\93ан.',
 'protectedtitles' => 'Қорғалған тақырып аттары',
 'protectedtitlestext' => 'Келесі тақырып аттарын бастауға рұқсат берілмеген',
 'protectedtitlesempty' => 'Бұл бапталымдармен ағымда еш тақырып аттары қорғалмаған.',
 'listusers' => 'Қатысушы тізімі',
+'listusers-editsonly' => 'Тек қатысушы өңдемелерін көрсету',
+'listusers-creationsort' => 'Басталған уақытына қарай іріктеу',
+'usereditcount' => '$1 {{PLURAL:$1|өңдеме|өңдемелер}}',
+'usercreated' => '$1 $2-та {{GENDER:$3|басталған}}',
 'newpages' => 'Ең жаңа беттер',
 'newpages-username' => 'Қатысушы аты:',
 'ancientpages' => 'Ең ескі беттер',
 'move' => 'Жылжыту',
-'movethispage' => 'Бетті жылжыту',
+'movethispage' => 'Бұл бетті жылжыту',
 'unusedimagestext' => '<p>Аңғартпа: Ғаламтордағы басқа тораптар файлға тура URL арқылы сілтеуі мүмкін. Сондықтан, белсенді пайдалануына аңғармай, осы тізімде қалуы мүмкін.</p>',
 'unusedcategoriestext' => 'Келесі санат беттері бар боп тұр, бірақ оған еш бет не санат кірмейді.',
 'notargettitle' => 'Нысана жоқ',
 'notargettext' => 'Осы жете орындалатын нысана бетті, не қатысушыны енгізбепсіз.',
 'nopagetitle' => 'Мынадай еш нысана бет жоқ',
 'nopagetext' => 'Келтірілген нысана бетіңіз жоқ.',
-'pager-newer-n' => 'жаңалау $1',
-'pager-older-n' => 'ескілеу $1',
+'pager-newer-n' => '{{PLURAL:$1|жаңалау 1|жаңалау $1}}',
+'pager-older-n' => '{{PLURAL:$1|ескілеу 1|ескілеу $1}}',
 'suppress' => 'Шеттету',
 
 # Book sources
@@ -1857,37 +2082,44 @@ URL дұрыс екендігін және торап істеп тұрғаны
 'booksources-text' => 'Төменде жаңа және қолданған кітаптар сататын тораптарының сілтемелері тізімделген. Бұл тораптарда ізделген кітаптар туралы былайғы ақпарат болуға мүмкін.',
 
 # Special:Log
-'specialloguserlabel' => 'Қатысушы:',
-'speciallogtitlelabel' => 'ТаÒ\9bÑ\8bÑ\80Ñ\8bп Ð°Ñ\82Ñ\8b:',
+'specialloguserlabel' => 'Орындаушы:',
+'speciallogtitlelabel' => 'Ð\9dÑ\8bÑ\81ана (Ñ\82аÒ\9bÑ\8bÑ\80Ñ\8bп Ð°Ñ\82Ñ\8b Ð½ÐµÐ¼ÐµÑ\81е Ò\9bаÑ\82Ñ\8bÑ\81Ñ\83Ñ\88Ñ\8b):',
 'log' => 'Журналдар',
 'all-logs-page' => 'Барлық журналдар',
 'alllogstext' => '{{SITENAME}} жобасының барлық қатынаулы журналдарын біріктіріп көрсетуі.
-Журнал түрін, қатысушы атын, не тиісті бетін бөлектеп, тарылтып қарай аласыз.',
+Журнал түрін, қатысушы атын (үлкен кішілігін ескеріп), не тиісті бетін бөлектеп, тарылтып қарай аласыз (кейде үлкен кішілігін ескеріп).',
 'logempty' => 'Журналда сәйкес даналар жоқ.',
-'log-title-wildcard' => 'Мына мәтіннең басталытын тақырып аттарын іздеу',
+'log-title-wildcard' => 'Мына мәтіннен басталытын тақырып аттарын іздеу',
+'showhideselectedlogentries' => 'Таңдалған журнал енгізілімдерін көрсету/жасыру',
 
 # Special:AllPages
 'allpages' => 'Барлық беттер',
-'alphaindexline' => '$1  $2',
+'alphaindexline' => '$1 дегеннен $2',
 'nextpage' => 'Келесі бетке ($1)',
 'prevpage' => 'Алдыңғы бетке ($1)',
-'allpagesfrom' => 'Мына беттен бастап көрсету:',
+'allpagesfrom' => 'Мына беттерден бастап көрсету:',
+'allpagesto' => 'Мына беттерден аяқталғанды көрсету:',
 'allarticles' => 'Барлық беттер тізімі',
 'allinnamespace' => 'Барлық беттер ($1 есім кеңістігі)',
-'allnotinnamespace' => 'Барлық бет ($1 есім аясынан тыс)',
+'allnotinnamespace' => 'Барлық беттер ($1 есім кеңістігінен тыс)',
 'allpagesprev' => 'Алдыңғыға',
 'allpagesnext' => 'Келесіге',
 'allpagessubmit' => 'Өту',
 'allpagesprefix' => 'Мынадан басталған беттерді көрсету:',
 'allpagesbadtitle' => 'Келтірілген бет тақырыбын аты жарамсыз болған, немесе тіл-аралық не уики-аралық бастауы бар болды.
 Мында тақырып атында қолдалмайтын бірқатар таңбалар болуы мүмкін.',
-'allpages-bad-ns' => '{{SITENAME}} жобасында «$1» есім аясы жоқ.',
+'allpages-bad-ns' => '{{SITENAME}} жобасында «$1» есім кеңістігі жоқ.',
+'allpages-hide-redirects' => 'Айдатқыштарды жасыру',
+
+# SpecialCachedPage
+'cachedspecial-viewing-cached-ttl' => 'Сіз бұл беттің кештегі нұсқасын көріп тұрсыз, $1 дейінгі ескісі болуы мүмкін.',
+'cachedspecial-refresh-now' => 'Ең соңғысын қарау',
 
 # Special:Categories
 'categories' => 'Санаттар',
-'categoriespagetext' => 'Келесі санаттар ішінде беттер не таспалар бар.
-[[Special:UnusedCategories|Unused categories]] are not shown here.
-Also see [[Special:WantedCategories|wanted categories]].',
+'categoriespagetext' => 'Келесі {{PLURAL:$1|санат ішінде|санаттар ішінде}} беттер немесе медиа бар.
+[[Special:UnusedCategories|Пайдаланылмаған санаттарды]] мынадан қарай аласыз.
+Тағы қараңыз [[Special:WantedCategories|басталмаған санаттар]].',
 'categoriesfrom' => 'Санаттарды мынадан бастап көрсету:',
 'special-categories-sort-count' => 'санымен сұрыптау',
 'special-categories-sort-abc' => 'әліпбимен сұрыптау',
@@ -1895,6 +2127,7 @@ Also see [[Special:WantedCategories|wanted categories]].',
 # Special:DeletedContributions
 'deletedcontributions' => 'Қатысушының жойылған үлесі',
 'deletedcontributions-title' => 'Қатысушының жойылған үлесі',
+'sp-deletedcontributions-contribs' => 'үлестер',
 
 # Special:LinkSearch
 'linksearch' => 'Сыртқы сілтемелерді іздеу',
@@ -1909,56 +2142,87 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'listusersfrom' => 'Мына қатысушыдан бастап көрсету:',
 'listusers-submit' => 'Көрсет',
 'listusers-noresult' => 'Қатысушы табылған жоқ.',
+'listusers-blocked' => '(бұғатталған)',
+
+# Special:ActiveUsers
+'activeusers' => 'Белсенді қатысушылар тізімі',
+'activeusers-intro' => 'Бұл тізім соңғы $1 {{PLURAL:$1|күнде|күнде}} қандай да бір іс-әрекет жасаған қатысушылар тізімі.',
+'activeusers-count' => 'соңғы {{PLURAL:$3|күнде|$3 күнде}} $1 {{PLURAL:$1|әрекет|әрекет}}',
+'activeusers-from' => 'Мынадан басталатын қатысушыларды көрсет:',
+'activeusers-hidebots' => 'Боттарды жасыру',
+'activeusers-hidesysops' => 'Әкімшілерді жасыру',
+'activeusers-noresult' => 'Қатысушылар табылған жоқ.',
 
 # Special:ListGroupRights
 'listgrouprights' => 'Қатысушы тобы құқықтары',
 'listgrouprights-summary' => 'Келесі тізімде бұл уикиде тағайындалған қатысушы құқықтары (байланысты қатынау құқықтарымен бірге) көрсетіледі.
 Жеке құқықтар туралы көбірек ақпаратты [[{{MediaWiki:Listgrouprights-helppage}}|мында]] таба аласыз.',
+'listgrouprights-key' => '* <span class="listgrouprights-granted">Берілген құқығы</span>
+* <span class="listgrouprights-revoked">Бұзылған құқығы</span>',
 'listgrouprights-group' => 'Топ',
 'listgrouprights-rights' => 'Құқықтары',
-'listgrouprights-helppage' => '{{ns:help}}:Топ құқықтары',
+'listgrouprights-helppage' => '{{ns:4}}:Топ құқықтары',
 'listgrouprights-members' => '(мүше тізімі)',
+'listgrouprights-addgroup' => '{{PLURAL:$2|топты|топтарды}} қосу: $1',
+'listgrouprights-removegroup' => '{{PLURAL:$2|топты|топтарды}} алып тастау: $1',
+'listgrouprights-addgroup-all' => 'Барлық топтарды қосу',
+'listgrouprights-removegroup-all' => 'Барлық топтарды алып тастау',
+'listgrouprights-addgroup-self' => 'Өзіңіздің тіркелгіңізге {{PLURAL:$2|топты|топтарды}} қосу : $1',
+'listgrouprights-removegroup-self' => 'Өз тіркелгіңізді {{PLURAL:$2|топтан|топтардан}} алып тастау: $1',
+'listgrouprights-addgroup-self-all' => 'Өз тіркелгіңізге барлық топтарды қосу',
+'listgrouprights-removegroup-self-all' => 'Өз тіркелгіңізден барлық топтарды алып тастау',
 
 # Email user
 'mailnologin' => 'Еш мекенжай жөнелтілген жоқ',
-'mailnologintext' => 'Басқа қатысушыға хат жөнелту үшін [[{{#special:Userlogin}}|кіруіңіз]] жөн, және [[{{#special:Preferences}}|бапталымдарыңызда]] жарамды е-пошта мекенжайы болуы жөн.',
+'mailnologintext' => 'Басқа қатысушыға хат жөнелту үшін [[Special:UserLogin|кіруіңіз]] жөн, және [[Special:Preferences|бапталымдарыңызда]] жарамды е-пошта мекенжайы болуы жөн.',
 'emailuser' => 'Қатысушыға хат жазу',
+'emailuser-title-target' => 'Бұл {{GENDER:$1|қатысушы}} email-ы',
+'emailuser-title-notarget' => 'Қатысушы е-поштасы',
 'emailpage' => 'Қатысушыға хат жазу',
 'emailpagetext' => 'Егер бұл қатысушы баптауларында жарамды е-пошта мекенжайын енгізсе, төмендегі пішін арқылы бұған жалғыз е-пошта хатын жөнелтуге болады.
 Қатысушы баптауыңызда енгізген е-пошта мекенжайыңыз «Кімнен» деген бас жолағында көрінеді, сондықтан хат алушысы тура жауап бере алады.',
 'usermailererror' => 'Mail нысаны қате қайтарды:',
 'defemailsubject' => '{{SITENAME}} е-поштасының хаты',
+'usermaildisabled' => 'Қатысушының электронды поштасы қосылмаған',
+'usermaildisabledtext' => 'Бұл уикиде басқа қатысушыларға хат жібере алмайсыз',
 'noemailtitle' => 'Еш е-пошта мекенжайы жоқ',
 'noemailtext' => 'Бұл қатысушы жарамды Е-пошта мекенжайын келтірмеген, не басқалардан хат қабылдауын өшірген.',
+'emailusername' => 'Қатысушы аты:',
 'emailusernamesubmit' => 'Жіберу',
-'emailfrom' => 'Кімнен',
-'emailto' => 'Кімге',
-'emailsubject' => 'Тақырыбы',
-'emailmessage' => 'Хат',
-'emailsend' => 'Жөнелту',
-'emailccme' => 'Хатымдың көшірмесін маған да жөнелт.',
+'email-legend' => 'Басқа{{SITENAME}} қатысушысына хат жіберу',
+'emailfrom' => 'Кімнен:',
+'emailto' => 'Кімге:',
+'emailsubject' => 'Тақырыбы:',
+'emailmessage' => 'Хат:',
+'emailsend' => 'Жіберу',
+'emailccme' => 'Хатымдың көшірмесін маған да жібер.',
 'emailccsubject' => '$1 дегенге хатыңыздың көшірмесі: $2',
 'emailsent' => 'Хат жөнелтілді',
 'emailsenttext' => 'Е-пошта хатыңыз жөнелтілді.',
 
+# User Messenger
+'usermessage-summary' => 'Жүйе хабарламасы қалдырылуда.',
+'usermessage-editor' => 'Жүйе мессенжері',
+
 # Watchlist
 'watchlist' => 'Бақылау тізімі',
-'mywatchlist' => 'Бақылауым',
+'mywatchlist' => 'Бақылау тізімі',
 'watchlistfor2' => '$1 ($2) бақылау тізімі',
 'nowatchlist' => 'Бақылау тізіміңізде еш дана жоқ',
 'watchlistanontext' => 'Бақылау тізіміңіздегі даналарды қарау, не өңдеу үшін $1 керек.',
 'watchnologin' => 'Кірмегенсіз',
-'watchnologintext' => 'Бақылау тізіміңізді өзгерту үшін [[{{#special:Userlogin}}|кіруіңіз]] жөн.',
-'addedwatchtext' => "«[[:$1]]» беті [[{{#special:Watchlist}}|бақылау тізіміңізге]] үстелді.
+'watchnologintext' => 'Бақылау тізіміңізді өзгерту үшін [[Special:UserLogin|кіріңіз]].',
+'addwatch' => 'Бақылау тізіміңізге қосу',
+'addedwatchtext' => "«[[:$1]]» беті [[Special:Watchlist|бақылау тізіміңізге]] қосылды.
 Бұл беттің және байланысты талқылау бетінің келешектегі өзгерістері мында тізімделінеді де, және беттің атауы жеңіл табылу үшін [[{{#special:Recentchanges}}|жуықтағы өзгерістер тізімінде]] '''жуан әрпімен''' көрсетіледі.",
-'removedwatchtext' => '«[[:$1]]» беті бақылау тізіміңізден аласталды.',
+'removewatch' => 'Бақылау тізіміңізден аластату',
+'removedwatchtext' => '«[[:$1]]» беті [[Special:Watchlist|бақылау тізіміңізден]] аласталды.',
 'watch' => 'Бақылау',
-'watchthispage' => 'Бетті бақылау',
+'watchthispage' => 'Бұл бетті бақылау',
 'unwatch' => 'Бақыламау',
 'unwatchthispage' => 'Бақылауды тоқтату',
 'notanarticle' => 'Мағлұмат беті емес',
 'notvisiblerev' => 'Түзету жойылды',
-'watchnochange' => 'Көрсетілген мерзімде еш бақыланған дана өңделген жоқ.',
 'watchlist-details' => 'Тізіміңізде $1 бет бар (талқылау беттері саналмайды).',
 'wlheader-enotif' => 'Ескерту хат жіберуі қосылған.',
 'wlheader-showupdated' => "Соңғы келіп-кетуіңізден бері өзгертілген беттерді '''жуан''' қаріпімен көрсет",
@@ -1966,9 +2230,9 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'watchmethod-list' => 'жуықтағы өзгерістер үшін бақылаулы беттерді тексеру',
 'watchlistcontains' => 'Бақылау тізіміңізде $1 бет бар.',
 'iteminvalidname' => "'$1' данада ақау бар — жарамсыз атау…",
-'wlnote' => "Төменде соңғы {{PLURAL:$2|сағатта|'''$2''' сағатта}} болған, {{PLURAL:$1|жуықтағы өзгеріс|жуықтағы '''$1''' өзгеріс}} көрсетіледі.",
+'wlnote' => "Төменде $3, $4 кезіне дейінгі соңғы {{PLURAL:$2|сағатта|'''$2''' сағатта}} болған, {{PLURAL:$1|жуықтағы өзгеріс|жуықтағы '''$1''' өзгеріс}} көрсетіледі.",
 'wlshowlast' => 'Соңғы $1 сағаттағы, $2 күндегі, $3 болған өзгерісті көрсету',
-'watchlist-options' => 'Бақылау тізім баптаулары',
+'watchlist-options' => 'Бақылау тізімінің баптаулары',
 
 # Displayed when you click the "watch" button and it is in the process of watching
 'watching' => 'Бақылауда…',
@@ -1977,6 +2241,16 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'enotif_mailer' => '{{SITENAME}} ескерту хат жіберу қызметі',
 'enotif_reset' => 'Барлық бет келіп-кетілді деп белгіле',
 'enotif_impersonal_salutation' => '{{SITENAME}} қатысушысы',
+'enotif_subject_deleted' => '{{SITENAME}} $1 бетін $2 қатысушысы {{GENDER:$2|жойған}}',
+'enotif_subject_created' => '{{SITENAME}} $1 бетін $2 қатысушысы {{GENDER:$2|бастаған}}',
+'enotif_subject_moved' => '{{SITENAME}} $1 бетін $2 қатысушысы {{GENDER:$2|жылжытқан}}',
+'enotif_subject_restored' => '{{SITENAME}} $1 бетін $2 қатысушысы {{GENDER:$2|қалпына келтірген}}',
+'enotif_subject_changed' => '{{SITENAME}} $1 бетін $2 қатысушысы {{GENDER:$2|өзгерткен}}',
+'enotif_body_intro_deleted' => '{{SITENAME}} $1 бетін $2 қатысушысы $PAGEEDITDATE $2,  {{GENDER:$2|жойған}} қара $3',
+'enotif_body_intro_created' => '{{SITENAME}} $1 бетін $2 қатысушысы $PAGEEDITDATE $2,  {{GENDER:$2|бастаған}}, соңғы нұсқасы үшін қара $3',
+'enotif_body_intro_moved' => '{{SITENAME}} $1 бетін $2 қатысушысы $PAGEEDITDATE $2,  {{GENDER:$2|жылжытқан}}, соңғы нұсқасы үшін қара $3',
+'enotif_body_intro_restored' => '{{SITENAME}} $1 бетін $2 қатысушысы $PAGEEDITDATE $2,  {{GENDER:$2|қалпына келтірген}}, соңғы нұсқасы үшін қара $3',
+'enotif_body_intro_changed' => '{{SITENAME}} $1 бетін $2 қатысушысы $PAGEEDITDATE $2,  {{GENDER:$2|өзгерткен}}, соңғы нұсқасы үшін қара $3',
 'enotif_lastvisited' => 'Соңғы келіп-кетуіңізден бері болған өзгерістер үшін $1 дегенді қараңыз.',
 'enotif_lastdiff' => 'Осы өзгеріс үшін $1 дегенді қараңыз.',
 'enotif_anon_editor' => 'тіркелгісіз қатысушы $1',
@@ -2011,20 +2285,20 @@ $NEWPAGE
 'deletepage' => 'Бетті жою',
 'confirm' => 'Құптау',
 'excontent' => "болған мағлұматы: '$1'",
-'excontentauthor' => "болған мағлұматы (тек '[[{{#special:Contributions}}/$2|$2]]' үлесі): '$1'",
-'exbeforeblank' => "тазарту алдындағы болған мағлұматы: '$1'",
+'excontentauthor' => 'болған мағлұматы (тек "[[Special:Contributions/$2|$2]]" үлесі): "$1"',
+'exbeforeblank' => 'тазарту алдындағы болған мағлұматы: "$1"',
 'exblank' => 'бет бос болды',
 'delete-confirm' => '«$1» дегенді жою',
 'delete-legend' => 'Жою',
-'historywarning' => 'Құлақтандыру: Жоюы көзделген бетте тарихы бар:',
+'historywarning' => "'''Ескету:'' Жоюы көзделген бетте бет тарихында шамамен $1 {{PLURAL:$1|түзетілуі|түзетілулері}} бар:",
 'confirmdeletetext' => 'Бетті бүкіл тарихымен бірге дерекқордан жойғалы жатырсыз.
-Бұл әрекетіңіз ниетпен жасалғанын, әрекет салдары есепке алынғанын және әрекетіңіз [[{{{{ns:mediawiki}}:Policy-url}}]]-іне лайықты болғанын тағы бір рет тексеріп шығуыңызды сұраймыз.',
+Бұл әрекетіңіз ниетпен жасалғанын, әрекет салдары есепке алынғанын және әрекетіңіз [[{{MediaWiki:Policy-url}}|the policy]]-іне лайықты болғанын тағы бір рет тексеріп шығуыңызды сұраймыз.',
 'actioncomplete' => 'Әрекет орындалды',
 'actionfailed' => 'Әрекет орындалмады',
-'deletedtext' => '«$1» жойылды.
+'deletedtext' => '"$1" жойылды.
 Жуықтағы жоюлар туралы жазбаларын $2 дегеннен қараңыз.',
-'dellogpage' => 'Жою_журналы',
-'dellogpagetext' => 'Төменде жуықтағы жоюлардың тізімі берілген.',
+'dellogpage' => 'Жою журналы',
+'dellogpagetext' => 'Төменде жуықтағы жойылған беттер тізімі берілген.',
 'deletionlog' => 'жою журналы',
 'reverted' => 'Ертерек түзетуіне қайтарылған',
 'deletecomment' => 'Себебі:',
@@ -2035,9 +2309,9 @@ $NEWPAGE
 ** Авторлық құқықтарын бұзу
 ** Вандализм',
 'delete-edit-reasonlist' => 'Жою себептерін өңдеу',
-'delete-toobig' => 'Бұл бетте байтақ түзету тарихы бар, $1 түзетуден астам.
+'delete-toobig' => 'Бұл бетте үлкен түзету тарихы бар, $1 {{PLURAL:$1|түзетуден|түзетуден}} астам.
 Бұндай беттердің жоюы {{SITENAME}} торабын әлдеқалай үзіп тастауына бөгет салу үшін тиымдалған.',
-'delete-warning-toobig' => 'Бұл бетте байтақ түзету тарихы бар, $1 түзетуден астам.
+'delete-warning-toobig' => 'Бұл бетте үлкен өңдеу тарихы бар, $1 {{PLURAL:$1|түзетуден|түзетуден}} астам.
 Бұның жоюы {{SITENAME}} торабындағы дерекқор әрекеттерді үзіп тастауын мүмкін;
 бұны абайлап өткізіңіз.',
 
@@ -2045,19 +2319,23 @@ $NEWPAGE
 'rollback' => 'Өңдемелерді шегіндіру',
 'rollback_short' => 'Шегіндіру',
 'rollbacklink' => 'шегіндіру',
-'rollbackfailed' => 'Шегіндіру сәтсіз бітті',
+'rollbacklinkcount' => '$1 {{PLURAL:$1|өңдемені|өңдемені}} шегіндіру',
+'rollbacklinkcount-morethan' => '$1-нан аса {{PLURAL:$1|өңдемені|өңдемелерді}} шегіндіру',
+'rollbackfailed' => 'Шегіндіру орындалмады',
 'cantrollback' => 'Өңдеме қайтарылмады;
 соңғы үлескері тек осы беттің бастаушысы болды.',
-'alreadyrolled' => '[[{{ns:user}}:$2|$2]] ([[{{ns:user_talk}}:$2|талқылауы]]) істеген [[:$1]] соңғы өңдемесі шегіндірілмеді;
-басқа біреу бұл бетті алдақашан өңдеген не шегіндірген.
+'alreadyrolled' => '[[User:$2|$2]] ([[User talk:$2|талқылауы]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]); істеген [[:$1]] соңғы өңдемесі шегіндірілмеді;
+басқа біреу бұл бетті алдақашан өңдеген немесе шегіндірген.
 
-соңғы өңдемесін [[{{ns:user}}:$3|$3]] ([[{{ns:user_talk}}:$3|талқылауы]]) істеген.',
-'editcomment' => "Болған өңдеме мәндемесі: «''$1''».",
-'revertpage' => '[[{{#special:Contributions}}/$2|$2]] ([[{{ns:user_talk}}:$2|талқылауы]]) өңдемелерінен [[{{ns:user}}:$1|$1]] соңғы нұсқасына қайтарды',
-'rollback-success' => '$1 өңдемелерінен қайтарған;
-$2 соңғы нұсқасына өзгертті.',
+Бетті [[User:$3|$3]] ([[User talk:$3|talk]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]) соңғы рет өңдеген.',
+'editcomment' => "Болған өңдеме түйіндемесі: «''$1''».",
+'revertpage' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|т]]) өңдемелерінен [[User:$1|$1]] соңғы нұсқасына қайтарды',
+'revertpage-nouser' => 'Жасырылған қатысушы өңдемелерінен [[User:$1|$1]] соңғы нұсқасына қайтарды',
+'rollback-success' => '$1 өңдемелерінен қайтарды;
+$2 соңғы нұсқасына қайта өзгертті.',
 
 # Edit tokens
+'sessionfailure-title' => 'Сеанс сәтсіз болды',
 'sessionfailure' => 'Кіру сессиясында шатақ болған сияқты;
 сессияға шабуылдаудардан қорғану үшін, осы әрекет тоқтатылды.
 «Артқа» дегенді басыңыз, және бетті қайта жүктеңіз де, қайта байқап көріңіз.',
@@ -2065,17 +2343,23 @@ $2 соңғы нұсқасына өзгертті.',
 # Protect
 'protectlogpage' => 'Қорғау журналы',
 'protectlogtext' => 'Төменде беттердің қорғау/қорғамау тізімі берілген.
-Ағымдағы қорғау әректтер бар беттер үшін [[{{#special:Protectedpages}}|қорғалған бет тізімін]] қараңыз.',
-'protectedarticle' => '«[[$1]]» беті қорғалды',
-'modifiedarticleprotection' => '«[[$1]]» қорғалу деңгейі өзгерді',
-'unprotectedarticle' => '«[[$1]]» қорғалуы өшірілді',
+Ағымдағы қорғау әректтер бар беттер үшін [[Special:ProtectedPages|қорғалған беттер тізімін]] қараңыз.',
+'protectedarticle' => '"[[$1]]" бетін қорғады',
+'modifiedarticleprotection' => '"[[$1]]" қорғалу деңгейін өзгертті',
+'unprotectedarticle' => '"[[$1]]" дегеннен қорғалуын жылжытты',
+'movedarticleprotection' => 'қорғалу баптауларын "[[$2]]" дегеннен "[[$1]]" дегенге жылжытты',
 'protect-title' => '«$1» қорғау деңгейін өзгерту',
+'protect-title-notallowed' => '«$1» қорғалу деңгейін қарау',
 'prot_1movedto2' => '[[$1]] дегенді [[$2]] дегенге жылжытты',
+'protect-badnamespace-title' => 'Қорғалмайтын есім кеңістігі',
+'protect-badnamespace-text' => 'Бұл есім кеңістігіндегі беттер қорғалмайды.',
+'protect-norestrictiontypes-title' => 'Қорғалмайтын бет',
 'protect-legend' => 'Қорғауды құптау',
 'protectcomment' => 'Себебі:',
 'protectexpiry' => 'Мерзімі бітпек:',
 'protect_expiry_invalid' => 'Бітетін уақыты жарамсыз.',
 'protect_expiry_old' => 'Бітетін уақыты өтіп кеткен.',
+'protect-unchain-permissions' => 'Басқа қорғау баптауларын құлыптамау',
 'protect-text' => "'''$1''' бетінің қорғау деңгейін қарап және өзгертіп шыға аласыз.",
 'protect-locked-blocked' => "Бұғаттауыңыз өшірілгенше дейін қорғау деңгейін өзгерте алмайсыз.
 Мына '''$1''' беттің ағымдық баптаулары:",
@@ -2085,26 +2369,39 @@ $2 соңғы нұсқасына өзгертті.',
 Мына '''$1''' беттің ағымдық баптаулары:",
 'protect-cascadeon' => 'Бұл бет ағымда қорғалған, себебі осы бет «баулы қорғауы» бар келесі {{PLURAL:$1|беттің|беттердің}} кірікбеті.
 Бұл беттің қорғау деңгейін өзгерте аласыз, бірақ бұл баулы қорғауға ықпал етпейді.',
-'protect-default' => '(әдепкі)',
-'protect-fallback' => '«$1» рұқсаты керек',
+'protect-default' => 'Барлық қатысушыларға рұқсат ету',
+'protect-fallback' => 'Тек «$1» қатысушыларға рұқсат ету',
 'protect-level-autoconfirmed' => 'Тіркелгісіздерге тиым',
-'protect-level-sysop' => 'Тек әкімшілер',
+'protect-level-sysop' => 'Тек әкімшілерге рұқсат ету',
 'protect-summary-cascade' => 'баулы',
 'protect-expiring' => 'мерзімі бітпек: $1 (UTC)',
+'protect-expiring-local' => 'мерзімі бітпек: $1',
+'protect-expiry-indefinite' => 'мәңгі',
 'protect-cascade' => 'Бұл беттің кірікбеттерін қорғау (баулы қорғау).',
-'protect-cantedit' => 'Бұл беттің қорғау деңгейін өзгерте алмайсыз, себебі бұны өңдеуге рұқстаңыз жоқ.',
-'protect-expiry-options' => '1 сағат:1 hour,1 күн:1 day,1 апта:1 week,2 апта:2 weeks,1 ай:1 month,3 ай:3 months,6 ай:6 months,1 жыл:1 year,мәнгі:infinite',
+'protect-cantedit' => 'Бұл беттің қорғау деңгейін өзгерте алмайсыз, себебі бұны өңдеуге рұқсатыңыз жоқ.',
+'protect-othertime' => 'Басқа уақыт:',
+'protect-othertime-op' => 'басқа уақыт',
+'protect-existing-expiry' => 'Mерзімі бітпек: $3, $2',
+'protect-otherreason' => 'Басқа/қосымша себеп:',
+'protect-otherreason-op' => 'Басқа себеп',
+'protect-dropdown' => '*Ортақ қорғау себеттер
+** Артық бұзақылық
+** Артық спамдау
+** Counter-productive edit warring
+** Жоғары байланысты бет',
+'protect-edit-reasonlist' => 'Қорғалу себептерін өңдеу',
+'protect-expiry-options' => '1 сағат:1 hour,1 күн:1 day,1 апта:1 week,2 апта:2 weeks,1 ай:1 month,3 ай:3 months,6 ай:6 months,1 жыл:1 year,мәңгі:infinite',
 'restriction-type' => 'Рұқсаты:',
 'restriction-level' => 'Тиымдық деңгейі:',
-'minimum-size' => 'Ең аз мөлшері',
-'maximum-size' => 'Ең көп мөлшері:',
+'minimum-size' => 'Ең аз өлшемі',
+'maximum-size' => 'Ең көп өлшемі:',
 'pagesize' => '(байт)',
 
 # Restrictions (nouns)
 'restriction-edit' => 'Өңдеуге',
 'restriction-move' => 'Жылжытуға',
 'restriction-create' => 'Бастауға',
-'restriction-upload' => 'Жүктеу',
+'restriction-upload' => 'Жүктеуге',
 
 # Restriction levels
 'restriction-level-sysop' => 'толықтай қорғалған',
@@ -2118,8 +2415,9 @@ $2 соңғы нұсқасына өзгертті.',
 'viewdeletedpage' => 'Жойылған беттерді қарау',
 'undeletepagetext' => 'Келесі беттер жойылды деп белгіленген, бірақ мағлұматы мұрағатта бар
 және қалпына келтіруге мүмкін. Мұрағат мерзім бойынша тазаланып тұруы мүмкін.',
-'undeleteextrahelp' => "Бүкіл бетті қалпына келтіру үшін, барлық құсбелгі көздерді босатып '''''Қалпына келтір!''''' батырмасын нұқыңыз.
-Бөлектеумен қалпына келтіру орындау үшін, келтіремін деген түзетулеріне сәйкес көздерге құсбелгі салыңыз да, және '''''Қалпына келтір!''''' түймесін нұқыңыз. '''''Қайта қой''''' түймесін нұқығанда мәндеме аумағы тазартады және барлық құсбелгі көздерін босатады.",
+'undelete-fieldset-title' => 'Нұсқаларды қалпына келтіру',
+'undeleteextrahelp' => "Бүкіл бетті қалпына келтіру үшін, барлық құсбелгі көздерді босатып '''''{{int:Қалпына келтір!}}''''' батырмасын нұқыңыз.
+Бөлектеумен қалпына келтіру орындау үшін, келтіремін деген түзетулеріне сәйкес көздерге құсбелгі салыңыз да, және '''''{{int:Қалпына келтір!}}''''' түймесін нұқыңыз. '''''Қайта қой''''' түймесін нұқығанда мәндеме аумағы тазартады және барлық құсбелгі көздерін босатады.",
 'undeleterevisions' => '$1 түзету мұрағатталды',
 'undeletehistory' => 'Егер бет мағлұматын қалпына келтірсеңіз, тарихында барлық түзетулер да
 қайтарылады. Егер жоюдан соң дәл солай атауымен жаңа бет басталса, қалпына келтірілген түзетулер
@@ -2129,7 +2427,7 @@ $2 соңғы нұсқасына өзгертті.',
 'undeletehistorynoadmin' => 'Бұл бет жойылған.
 Жою себебі алдындағы өңдеген қатысушылар егжей-тегжейлерімен бірге төмендегі қысқаша мазмұндамасында көрсетілген.
 Мына жойылған түзетулерін көкейкесті мәтіні тек әкімшілерге жетімді.',
-'undelete-revision' => '$2 кезіндегі $3 жойған $1 дегеннің жойылған түзетуі:',
+'undelete-revision' => '$4,  $5  кезіндегі $3 жойған $1 дегеннің жойылған түзетуі:',
 'undeleterevision-missing' => 'Жарамсыз не жоғалған түзету.
 Сілтемеңіз жарамсыз, не түзету қалпына келтірілген, немесе мұрағаттан аласталған болуы мүмкін.',
 'undelete-nodiff' => 'Еш алдыңғы түзету табылмады.',
@@ -2137,16 +2435,18 @@ $2 соңғы нұсқасына өзгертті.',
 'undeletelink' => 'қарау/қалпына келтіру',
 'undeleteviewlink' => 'қарау',
 'undeletereset' => 'Қайта қой',
-'undeletecomment' => 'Мәндемесі:',
-'undeletedrevisions' => '$1 түзету қалпына келтірілді',
-'undeletedrevisions-files' => '$1 түзету және $2 файл қалпына келтірілді',
-'undeletedfiles' => '$1 файл қалпына келтірілді',
+'undeleteinvert' => 'Таңдалғанды алмастыру',
+'undeletecomment' => 'Себебі:',
+'undeletedrevisions' => '{{PLURAL:$1|1 түзету|$1 түзету}} қалпына келтірілді',
+'undeletedrevisions-files' => '{{PLURAL:$1|1 түзету|$1 түзету}} және {{PLURAL:$2|1 файл|$2 файл}} қалпына келтірілді',
+'undeletedfiles' => '{{PLURAL:$1|1 файл|$1 файл}} қалпына келтірілді',
 'cannotundelete' => 'Жою болдырмауы сәтсіз бітті;
-басқа біреу алғашында беттің жоюдың болдырмауы мүмкін.',
-'undeletedpage' => "'''$1 қалпына келтірілді'''
+$1',
+'undeletedpage' => "'''$1 дегенді қалпына келтірді'''
 
-Жуықтағы жоюлар мен қалпына келтірулер жөнінде [[{{#special:Log}}/delete|жою журналын]] қараңыз.",
-'undelete-header' => 'Жуықтағы жойылған беттер жөнінде [[{{#special:Log}}/delete|жою журналын]] қараңыз.',
+Жуықтағы жоюлар мен қалпына келтірулер жөнінде  [[Special:Log/delete|жою журналын]] қараңыз.",
+'undelete-header' => 'Жуықтағы жойылған беттер жөнінде  [[Special:Log/delete|жою журналын]] қараңыз.',
+'undelete-search-title' => 'Жойылған беттерді іздеу',
 'undelete-search-box' => 'Жойылған беттерді іздеу',
 'undelete-search-prefix' => 'Мынадан басталған беттерді көрсет:',
 'undelete-search-submit' => 'Іздеу',
@@ -2169,25 +2469,31 @@ $1',
 'blanknamespace' => 'Негізгі беттерден',
 
 # Contributions
-'contributions' => 'Қатысушы үлесі',
+'contributions' => '{{GENDER:$1|Қатысушы}} үлестері',
 'contributions-title' => '$1 есімді қатысушының үлесі',
-'mycontris' => 'ҮлеÑ\81Ñ\96м',
+'mycontris' => 'ҮлеÑ\81Ñ\82еÑ\80',
 'contribsub2' => '$1 ($2) үлесі',
 'nocontribs' => 'Осы іздеу шартына сәйкес өзгерістер табылған жоқ.',
-'uctop' => ' (үсті)',
+'uctop' => '(ағымдағы)',
 'month' => 'Мына айдан (және ертеректен):',
 'year' => 'Мына жылдан (және ертеректен):',
 
 'sp-contributions-newbies' => 'Тек жаңа тіркелгіден жасаған үлестерді көрсет',
-'sp-contributions-newbies-sub' => 'Жаңадан тіркелгі жасағандар үшін',
+'sp-contributions-newbies-sub' => 'Жаңа тіркелгендер үшін',
+'sp-contributions-newbies-title' => 'Жаңа тіркелгендер үшін қатысушы үлестері',
 'sp-contributions-blocklog' => 'Бұғаттау журналы',
-'sp-contributions-deleted' => 'Қатысушының жойылған үлесі',
-'sp-contributions-uploads' => 'жүктеулер',
-'sp-contributions-logs' => 'журналдар',
+'sp-contributions-deleted' => 'Ò\9aаÑ\82Ñ\8bÑ\81Ñ\83Ñ\88Ñ\8bнÑ\8bÒ£ Ð¶Ð¾Ð¹Ñ\8bлÒ\93ан Ò¯Ð»ÐµÑ\81Ñ\82еÑ\80Ñ\96',
+'sp-contributions-uploads' => 'жүктеулері',
+'sp-contributions-logs' => 'журналдары',
 'sp-contributions-talk' => 'талқылауы',
 'sp-contributions-userrights' => 'Қатысушы құқықтарын реттеу',
+'sp-contributions-blocked-notice' => 'Бұл қатысушы қазіргі уақытта  бұғатталған.
+Төменде бұғаттау журналындағы соңғы жазбалар көрсетілген:',
+'sp-contributions-blocked-notice-anon' => 'Бұл IP мекен-жайы қазіргі уақытта  бұғатталған.
+Төменде бұғаттау журналындағы соңғы жазбалар көрсетілген.',
 'sp-contributions-search' => 'Үлес үшін іздеу',
 'sp-contributions-username' => 'IP-мекенжайы немесе қатысушы аты:',
+'sp-contributions-toponly' => 'Өңдемелердің тек соңғы нұсқаларын көрсету',
 'sp-contributions-submit' => 'Ізде',
 
 # What links here
@@ -2196,21 +2502,25 @@ $1',
 'whatlinkshere-page' => 'Бет:',
 'linkshere' => "'''[[:$1]]''' дегенге мына беттер сілтейді:",
 'nolinkshere' => "'''[[:$1]]''' дегенге еш бет сілтемейді.",
-'nolinkshere-ns' => "ТаңдалÒ\93ан ÐµÑ\81Ñ\96м Ð°Ñ\8fÑ\81Ñ\8bнда '''[[:$1]]''' дегенге ешқандай бет сілтемейді.",
+'nolinkshere-ns' => "ТаңдалÒ\93ан ÐµÑ\81Ñ\96м ÐºÐµÒ£Ñ\96Ñ\81Ñ\82Ñ\96гÑ\96нде '''[[:$1]]''' дегенге ешқандай бет сілтемейді.",
 'isredirect' => 'айдату беті',
 'istemplate' => 'кірікбет',
-'isimage' => 'Ñ\81Ñ\83Ñ\80еÑ\82 сілтемесі',
+'isimage' => 'Ñ\84айл сілтемесі',
 'whatlinkshere-prev' => '{{PLURAL:$1|алдыңғы|алдыңғы $1}}',
 'whatlinkshere-next' => '{{PLURAL:$1|келесі|келесі $1}}',
 'whatlinkshere-links' => '← сілтемелер',
 'whatlinkshere-hideredirs' => 'айдағыштарды $1',
 'whatlinkshere-hidetrans' => 'кірікбеттерді $1',
 'whatlinkshere-hidelinks' => 'сілтемелерді $1',
-'whatlinkshere-hideimages' => 'Ñ\81Ñ\83Ñ\80еÑ\82 сілтемелерін $1',
+'whatlinkshere-hideimages' => 'Ñ\84айл сілтемелерін $1',
 'whatlinkshere-filters' => 'Сүзгілер',
 
 # Block/unblock
+'autoblockid' => '#$1 өздікбұғаттауы',
+'block' => 'Қатысушыны бұғаттау',
+'unblock' => 'Қатысушыны бұғаттамау',
 'blockip' => 'Қатысушыны бұғаттау',
+'blockip-title' => 'Қатысушыны бұғаттау',
 'blockip-legend' => 'Қатысушыны бұғаттау',
 'blockiptext' => 'Төмендегі пішін қатысушының жазу рұқсатын белгілі IP мекенжайымен не атымен бұғаттау үшін қолданылады.
 Бұны тек бұзақылықты қақпайлау үшін және де [[{{{{ns:mediawiki}}:Policy-url}}|ережелер]] бойынша атқаруыңыз жөн.
@@ -2222,80 +2532,104 @@ $1',
 'ipbreason-dropdown' => '* Бұғаттаудың жалпы себебтері
 ** Жалған мәлімет енгізу
 ** Беттердегі мағлұматты аластау
-** Ð¨ÐµÑ\82Ñ\82Ñ\96к Ñ\82оÑ\80аптар сілтемелерін жаудыру
+** Ð¡Ñ\8bÑ\80Ñ\82Ò\9bÑ\8b Ñ\81айÑ\82тар сілтемелерін жаудыру
 ** Беттерге мағынасыздық/балдырлау кірістіру
 ** Қоқандау/қуғындау мінезқұлық
 ** Бірнеше рет тіркеліп қиянаттау
 ** Өрескел қатысушы аты',
+'ipb-hardblock' => 'Бұл IP мекен-жайы арқылы тіркелген қатысушылардың өңдеуіне кедергі жасау',
 'ipbcreateaccount' => 'Тіркелуді қақпайлау',
 'ipbemailban' => 'Қатысушы е-поштамен хат жөнелтуін қақпайлау',
 'ipbenableautoblock' => 'Бұл қатысушы соңғы қолданған IP мекенжайын, және кейін өңдеуге байқап көрген әр IP мекенжайларын өзбұғаттауы',
-'ipbsubmit' => 'Қатысушыны бұғаттау',
+'ipbsubmit' => 'Бұл қатысушыны бұғаттау',
 'ipbother' => 'Басқа мерзімі:',
-'ipboptions' => '2 сағат:2 hours,1 күн:1 day,3 күн:3 days,1 апта:1 week,2 апта:2 weeks,1 ай:1 month,3 ай:3 months,6 ай:6 months,1 жыл:1 year,мәнгі:infinite',
+'ipboptions' => '2 сағат:2 hours,1 күн:1 day,3 күн:3 days,1 апта:1 week,2 апта:2 weeks,1 ай:1 month,3 ай:3 months,6 ай:6 months,1 жыл:1 year,мәңгі:infinite',
 'ipbotheroption' => 'басқа',
 'ipbotherreason' => 'Басқа/қосымша себеп:',
-'ipbhidename' => 'Қатысушы атын бұғаттау журналыннан, белсенді бұғаттау тізімінен, қатысушы тізімінен жасыру',
+'ipbhidename' => 'Қатысушы атын өңдемелерден және тізімдерден жасыру',
 'ipbwatchuser' => 'Бұл қатысушының жеке және талқылау беттерін бақылау',
-'ipb-confirm' => 'Бұғаттауды растау',
-'badipaddress' => 'IP мекенжайы қате жазылған.',
+'ipb-disableusertalk' => 'Бұл қатысушыны бұғатталған кезде өзінің талқылау бетінін өңдеуіне  кедергі жасау',
+'ipb-confirm' => 'Бұғаттауды құптау',
+'badipaddress' => 'IP мекенжайы жарамсыз.',
 'blockipsuccesssub' => 'Бұғаттау сәтті өтті',
-'blockipsuccesstext' => '[[{{#special:Contributions}}/$1|$1]] деген бұғатталған.<br />
-Бұғаттарды шолып шығу үшін [[{{#special:Ipblocklist}}|IP бұғаттау тізімін]] қараңыз.',
+'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] деген бұғатталған.<br />
+Бұғаттарды шолып шығу үшін [[Special:BlockList|бұғаттау тізімін]] қараңыз.',
+'ipb-blockingself' => 'Сіз өзіңізді бұғаттамақшысыз. Бұны істегіңіз келгеніне сенімдісіз бе?',
 'ipb-edit-dropdown' => 'Бұғаттау себептерін өңдеу',
 'ipb-unblock-addr' => '$1 дегенді бұғаттамау',
 'ipb-unblock' => 'Қатысушы атын немесе IP мекенжайын бұғаттамау',
 'ipb-blocklist' => 'Бар бұғаттауларды қарау',
+'ipb-blocklist-contribs' => '$1 есімді қатысушының үлесі',
 'unblockip' => 'Қатысушыны бұғаттамау',
 'unblockiptext' => 'Төмендегі пішінді алдындағы IP мекенжайымен не атымен бұғатталған қатысушыға жазу қатынауын қалпына келтіріуі үшін қолданыңыз.',
-'ipusubmit' => 'Ð\9eÑ\81Ñ\8b Ð¼ÐµÐºÐµÐ½Ð¶Ð°Ð¹Ð´Ñ\8b Ð±Ò±Ò\93аÑ\82Ñ\82амау',
+'ipusubmit' => 'Ð\9eÑ\81Ñ\8b Ð±Ò±Ò\93аÑ\82Ñ\82аÑ\83дÑ\8b Ð°Ð»Ñ\8bп Ñ\82аÑ\81Ñ\82ау',
 'unblocked' => '[[User:$1|$1]] бұғаттауы өшірілді',
-'unblocked-id' => '$1 бұғаттау аласталды',
+'unblocked-range' => '$1  бұғаттауы өшірілді',
+'unblocked-id' => '$1 бұғаттауы аласталды.',
+'blocklist' => 'Бұғатталған қатысушылар',
 'ipblocklist' => 'Бұғатталған қатысушылар',
 'ipblocklist-legend' => 'Бұғатталған қатысушыны табу',
+'blocklist-userblocks' => 'Тіркелгендер бұғаттауын жасыру',
+'blocklist-tempblocks' => 'Уақытша бұғаттауларды жасыру',
+'blocklist-addressblocks' => 'Жалғыз IP бұғаттауларын жасыру',
+'blocklist-rangeblocks' => 'Аралық бұғаттауларды жасыру',
+'blocklist-timestamp' => 'Уақыт белгісі',
+'blocklist-target' => 'Нысана',
+'blocklist-expiry' => 'Біту мерзімі',
+'blocklist-by' => 'Әкімшіні бұғаттау',
+'blocklist-params' => 'Бұғаттау бапталымдары',
+'blocklist-reason' => 'Себебі',
 'ipblocklist-submit' => 'Ізде',
-'infiniteblock' => 'мәнгі',
+'ipblocklist-localblock' => 'Жергілікті бұғаттауы',
+'ipblocklist-otherblocks' => 'Басқа {{PLURAL:$1|бұғаттауы|бұғаттаулары}}',
+'infiniteblock' => 'мәңгі',
 'expiringblock' => 'мерзімі бітпек: $1 $2',
 'anononlyblock' => 'тек тіркелгісіздерді',
 'noautoblockblock' => 'өзбұғаттау өшірілген',
 'createaccountblock' => 'тіркелу бұғатталған',
-'emailblock' => 'е-пошта бұғатталған',
+'emailblock' => 'е-пошта өшірілді',
+'blocklist-nousertalk' => 'талқылау бетіңізді өңдемеңіз',
 'ipblocklist-empty' => 'Бұғаттау тізімі бос.',
 'ipblocklist-no-results' => 'Сұратылған IP мекенжай не қатысушы аты бұғатталған емес.',
 'blocklink' => 'бұғаттау',
 'unblocklink' => 'бұғаттамау',
 'change-blocklink' => 'Бұғаттауын өзгерту',
 'contribslink' => 'үлесі',
-'autoblocker' => 'IP мекенжайыңызды жуықта «[[{{ns:user}}:1|$1]]» пайдаланған, сондықтан өзбұғатталған.
+'emaillink' => 'хат жіберу',
+'autoblocker' => 'IP мекенжайыңызды жуықта "[[User:$1|$1]]" пайдаланған, сондықтан өзбұғатталған.
 $1 бұғаттауы үшін келтірілген себебі: «$2».',
-'blocklogpage' => 'Бұғаттау_журналы',
+'blocklogpage' => 'Бұғаттау журналы',
 'blocklogentry' => '[[$1]] дегенді $2 мерзімге бұғаттады $3',
 'blocklogtext' => 'Бұл қатысушыларды бұғаттау/бұғаттамау әрекеттерінің журналы.
 Өздіктік бұғатталған IP мекенжайлар осында тізімделгемеген.
-Ағымдағы белсенді тиымдар мен бұғаттауларды [[{{#special:Ipblocklist}}|IP бұғаттау тізімінен]] қараңыз.',
+Ағымдағы белсенді тиымдар мен бұғаттауларды [[Special:BlockList|IP бұғаттау тізімінен]] қараңыз.',
 'unblocklogentry' => '«$1» — бұғаттауын өшірді',
 'block-log-flags-anononly' => 'тек тіркелгісіздер',
 'block-log-flags-nocreate' => 'тіркелу өшірілген',
 'block-log-flags-noautoblock' => 'өзбұғаттау өшірілген',
 'block-log-flags-noemail' => 'е-пошта бұғатталған',
+'block-log-flags-nousertalk' => 'талқылау бетін өңдемеңіз',
+'block-log-flags-hiddenname' => 'қатысушы есімі жасырылды',
 'range_block_disabled' => 'Ауқым бұғаттауларын жасау әкімшілік мүмкіндігі өшірілген.',
 'ipb_expiry_invalid' => 'Бітетін уақыты жарамсыз.',
 'ipb_expiry_temp' => 'Жасырылған қатысушы атын бұғаттауы мәңгі болуы жөн.',
 'ipb_already_blocked' => '«$1» әлдеқашан бұғатталған',
 'ipb-needreblock' => '$1 әлдеқашан бұғатталған. Бұғаттау параметрлерін өзгертесіз бе?',
+'ipb-otherblocks-header' => 'Басқа {{PLURAL:$1|бұғаттау|бұғаттаулар}}',
 'ipb_cant_unblock' => 'Қателік: IP $1 бұғаттауы табылмады. Оның бұғаттауы алдақашан өшірлген мүмкін.',
 'ipb_blocked_as_range' => 'Қателік: IP $1 тікелей бұғатталмаған және бұғаттауы өшірілмейді.
 Бірақ, бұл бұғаттауы өшірілуі мүмкін $2 ауқымы бөлігі боп бұғатталған.',
 'ip_range_invalid' => 'IP мекенжай ауқымы жарамсыз.',
-'blockme' => 'Өздіктік_бұғаттау',
+'blockme' => 'Тіркелгімді бұғатта',
 'proxyblocker' => 'Прокси серверлерді бұғаттауыш',
 'proxyblocker-disabled' => 'Бұл жете өшірілген.',
 'proxyblockreason' => 'IP мекенжайыңыз ашық прокси серверге жататындықтан бұғатталған.
 Интернет қызметін жабдықтаушыңызбен, не техникалық қолдау қызметімен қатынасыңыз, және оларға осы оте күрделі қауыпсіздік шатақ туралы ақпарат беріңіз.',
-'proxyblocksuccess' => 'Ð\91Ñ\96Ñ\82Ñ\82Ñ\96.',
+'proxyblocksuccess' => 'Ð\9eÑ\80Ñ\8bндалдÑ\8b.',
 'sorbsreason' => 'IP мекенжайыңыз {{SITENAME}} торабында қолданылған DNSBL қара тізіміндегі ашық прокси-сервер деп табылады.',
 'sorbs_create_account_reason' => 'IP мекенжайыңыз {{SITENAME}} торабында қолданылған DNSBL қара тізіміндегі ашық прокси-сервер деп табылады.
 Жаңа тіркелгі жасай алмайсыз.',
+'ipbnounblockself' => 'Өзіңіздің бұғаттауыңызды алып тастау рұқсат етілмеген',
 
 # Developer tools
 'lockdb' => 'Дерекқорды құлыптау',
@@ -2357,32 +2691,40 @@ $1 бұғаттауы үшін келтірілген себебі: «$2».',
 'movepagebtn' => 'Бетті жылжыту',
 'pagemovedsub' => 'Жылжыту сәтті аяқталды',
 'movepage-moved' => '\'\'\'"$1" беті "$2" бетіне жылжытылды\'\'\'',
+'movepage-moved-redirect' => 'Айдатқыш жасалды.',
 'articleexists' => 'Осылай аталған бет алдақашан бар, не таңдаған атауыңыз жарамды емес.
-Өзге атауды таңдаңыз',
+Өзге атауды таңдаңыз.',
 'cantmove-titleprotected' => 'Бетті осы орынға жылжыта алмайсыз, себебі жаңа тақырып аты бастаудан қорғалған',
 'talkexists' => "'''Беттің өзі сәтті жылжытылды, бірақ талқылау беті бірге жылжытылмады, оның себебі жаңа тақырып атында біреуі алдақашан бар.
 Бұны қолмен қосыңыз.'''",
 'movedto' => 'мынаған жылжытылды:',
 'movetalk' => 'Қатысты талқылау бетін де жылжыту',
-'move-subpages' => 'Барлық бетшелерін жылжыту',
-'move-talk-subpages' => 'Талқылау бетінің барлық бетшелерін жылжыту',
+'move-subpages' => 'Барлық бетшелерін жылжыту ($1 дегенге)',
+'move-talk-subpages' => 'Талқылау бетінің барлық бетшелерін жылжыту ($1 дегенге)',
 'movepage-page-exists' => '$1 деген бет алдақашан бар және үстіне өздіктік жазылмайды.',
 'movepage-page-moved' => '$1 деген бет $2 дегенге жылжытылды.',
 'movepage-page-unmoved' => '$1 деген бет $2 дегенге жылжытылмайды.',
 'movepage-max-pages' => 'Барынша $1 бет жылжытылды да мыннан көбі өздіктік жылжылтылмайды.',
 'movelogpage' => 'Жылжыту журналы',
 'movelogpagetext' => 'Төменде жылжытылған беттердің тізімі беріліп тұр.',
+'movesubpage' => '{{PLURAL:$1|төменгі беті|төменгі беттері}}',
+'movesubpagetext' => 'Төменде бұл беттің $1 {{PLURAL:$1|төменгі беті|төменгі беттері}} көрсетілген.',
+'movenosubpage' => 'Бұл бетте төменгі беттері жоқ.',
 'movereason' => 'Жылжытудың себебі:',
 'revertmove' => 'қайтару',
 'delete_and_move' => 'Жою және жылжыту',
 'delete_and_move_text' => '==Жою керек==
-«[[:$1]]» деген нысана бет алдақашан бар.
+"[[:$1]]" деген нысана бет алдақашан бар.
 Жылжытуға жол беру үшін бұны жоясыз ба?',
 'delete_and_move_confirm' => 'Иә, бұл бетті жой',
-'delete_and_move_reason' => 'Жылжытуға жол беру үшін жойылған',
+'delete_and_move_reason' => '"[[$1]]" дегеннен жылжытуға жол беру үшін жойылған',
 'selfmove' => 'Қайнар және нысана тақырып аттары бірдей;
 бет өзінің үстіне жылжытылмайды.',
-'imagenocrossnamespace' => 'Файл емес есім аясына файл жылжытылмайды',
+'immobile-source-namespace' => '"$1" есім кеңістігіндегі беттер жылжытылмайды',
+'immobile-target-namespace' => '"$1" есім кеңістігіне беттерді жылдытылмайды',
+'immobile-source-page' => 'Бұл бет жылжытылмайды.',
+'imagenocrossnamespace' => 'Файл емес есім кеңістігіне файл жылжытылмайды',
+'nonfile-cannot-move-to-file' => 'Файл емес есім кеңістігінен файл есім кеңістігіне жылжытылмайды',
 'imagetypemismatch' => 'Файлдың жаңа кеңейтімі бұның түріне сәйкес емес',
 'imageinvalidfilename' => 'Файл атауы жарамсыз',
 'move-leave-redirect' => 'Ескі бетте айдату сілтемесін қалдыру',
@@ -2395,12 +2737,15 @@ MediaWiki жүйесінің [[{{#special:Import}}|сырттан алу бет
 Беттерді сыртқа беру үшін, тақырып аттарын төмендегі мәтін жолағына енгізіңіз (жол сайын бір тақырып аты), және де бөлектеңіз: не ағымдық нұсқасын, барлық ескі нұсқалары мен және тарихы жолдары мен бірге, немесе дәл ағымдық нұсқасын, соңғы өңдемеу туралы ақпараты мен бірге.
 
 Соңғы жағдайда сілтемені де, мысалы «{{{{ns:mediawiki}}:Mainpage}}» беті үшін [[{{#special:Export}}/{{MediaWiki:Mainpage}}]] қолдануға болады.',
+'exportall' => 'Барлық беттерді сыртқа беру',
 'exportcuronly' => 'Толық тарихын емес, тек ағымдық түзетуін кірістіріңіз',
 'exportnohistory' => "----
 '''Аңғартпа:''' Өнімділік әсері себептерінен, беттердің толық тарихын бұл пішінмен сыртқа беруі өшірілген.",
 'export-submit' => 'Сыртқа бер',
 'export-addcattext' => 'Мына санаттағы беттерді үстеу:',
 'export-addcat' => 'Үсте',
+'export-addnstext' => 'Келесі есім кеңістігінен беттерді қос:',
+'export-addns' => 'Қосу',
 'export-download' => 'Файл түрінде сақтау',
 'export-templates' => 'Үлгілерді қоса алып',
 
@@ -2423,6 +2768,8 @@ MediaWiki жүйесінің [[{{#special:Import}}|сырттан алу бет
 'thumbnail-more' => 'Үлкейту',
 'filemissing' => 'Жоғалған файл',
 'thumbnail_error' => 'Нобай құру қатесі: $1',
+'thumbnail_error_remote' => '$1 дегеннен хабарлама қатесі:
+$2',
 'djvu_page_error' => 'DjVu беті аумақ сыртындда',
 'djvu_no_xml' => 'DjVu файлы үшін XML келтіруі икемді емес',
 'thumbnail_invalid_params' => 'Нобайдың бапталымдары жарамсыз',
@@ -2434,11 +2781,15 @@ MediaWiki жүйесінің [[{{#special:Import}}|сырттан алу бет
 'import-interwiki-text' => 'Сырттан алынатын уикиді және беттің тақырып атын бөлектеңіз.
 Түзету күн-айы және өңдеуші есімдері сақталады.
 Уики-апару үшін сырттан алу барлық әрекеттер [[{{#special:Log}}/import|сырттан алу журналына]] жазылып алынады.',
+'import-interwiki-source' => 'Қайнар уики/бет:',
 'import-interwiki-history' => 'Бұл беттің барлық тарихи нұсқаларын көшіру',
+'import-interwiki-templates' => 'Кірістірілген барлық үлгілер',
 'import-interwiki-submit' => 'Сырттан алу',
-'import-interwiki-namespace' => 'Беттерді мына есім аясына апару:',
-'import-comment' => 'Мәндемесі:',
-'importtext' => 'Қайнар уикиден «{{#special:Export}}» қуралын қолданып файлды сыртқа беріңіз, дискіңізге сақтаңыз да мында қотарып беріңіз.',
+'import-interwiki-namespace' => 'Беттерді мына есім кеңістігіне апару:',
+'import-upload-filename' => 'Файл атауы:',
+'import-comment' => 'Пікірі:',
+'importtext' => 'Қайнар уикиден [[Special:Export|export utility]]  қолданып файлды сыртқа беріңіз.
+Комьпютеріңізге сақтаңыз да мында жүктеп беріңіз.',
 'importstart' => 'Беттерді сырттан алуда…',
 'import-revision-count' => '$1 түзету',
 'importnopages' => 'Сырттан алынатын беттер жоқ.',
@@ -2468,6 +2819,9 @@ MediaWiki жүйесінің [[{{#special:Import}}|сырттан алу бет
 'import-logentry-interwiki' => 'уики-апарылған $1',
 'import-logentry-interwiki-detail' => '$2 дегеннен $1 түзету',
 
+# JavaScriptTest
+'javascripttest-qunit-intro' => '[$1 сынақтау құжаттамасын]  mediawiki.org-тен қара.',
+
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Жеке бетіңіз',
 'tooltip-pt-anonuserpage' => 'Бұл IP мекенжайдың жеке беті',
@@ -2481,10 +2835,11 @@ MediaWiki жүйесінің [[{{#special:Import}}|сырттан алу бет
 'tooltip-pt-logout' => 'Шығу',
 'tooltip-ca-talk' => 'Мағлұмат бетті талқылау',
 'tooltip-ca-edit' => 'Бұл бетті өңдей аласыз. Сақтаудың алдында «Қарап шығу» батырмасын нұқыңыз.',
-'tooltip-ca-addsection' => 'Ð\91ұл Ñ\82алÒ\9bÑ\8bлаÑ\83 Ð±ÐµÑ\82Ñ\96нде Ð¶Ð°Ò£Ð° Ñ\82аÑ\80аÑ\83 бастау.',
-'tooltip-ca-viewsource' => 'Бұл бет қорғалған. Қайнар көзін қарай аласыз.',
-'tooltip-ca-history' => 'Бұл беттін жуықтағы нұсқалары.',
+'tooltip-ca-addsection' => 'Ð\96аңа Ð±Ó©Ð»Ñ\96м бастау.',
+'tooltip-ca-viewsource' => 'Бұл бет қорғалған. Қайнарын қарай аласыз.',
+'tooltip-ca-history' => 'Бұл беттін соңғы нұсқалары.',
 'tooltip-ca-protect' => 'Бұл бетті қорғау',
+'tooltip-ca-unprotect' => 'Бұл беттің қорғалуын өзгерту',
 'tooltip-ca-delete' => 'Бұл бетті жою',
 'tooltip-ca-undelete' => 'Бұл беттің жоюдың алдындағы болған өңдемелерін қалпына келтіру',
 'tooltip-ca-move' => 'Бұл бетті жылжыту',
@@ -2505,7 +2860,7 @@ MediaWiki жүйесінің [[{{#special:Import}}|сырттан алу бет
 'tooltip-t-recentchangeslinked' => 'Мыннан сілтенген беттердің жуықтағы өзгерістері',
 'tooltip-feed-rss' => 'Бұл беттің RSS арнасы',
 'tooltip-feed-atom' => 'Бұл беттің Atom арнасы',
-'tooltip-t-contributions' => 'Осы қатысушының үлес тізімін қарау',
+'tooltip-t-contributions' => 'Осы қатысушының үлестерінің тізімі',
 'tooltip-t-emailuser' => 'Осы қатысушыға хат жөнелту',
 'tooltip-t-upload' => 'Файлдарды жүктеу',
 'tooltip-t-specialpages' => 'Барлық арнайы беттер тізімі',
@@ -2513,7 +2868,7 @@ MediaWiki жүйесінің [[{{#special:Import}}|сырттан алу бет
 'tooltip-t-permalink' => 'Мына беттің осы нұсқасының тұрақты сілтемесі',
 'tooltip-ca-nstab-main' => 'Мағлұмат бетін қарау',
 'tooltip-ca-nstab-user' => 'Қатысушы бетін қарау',
-'tooltip-ca-nstab-media' => 'ТаÑ\81па бетін қарау',
+'tooltip-ca-nstab-media' => 'Ð\9cедиа бетін қарау',
 'tooltip-ca-nstab-special' => 'Бұл арнайы бет, беттің өзі өңделінбейді.',
 'tooltip-ca-nstab-project' => 'Жоба бетін қарау',
 'tooltip-ca-nstab-image' => 'Файл бетін қарау',
@@ -2527,9 +2882,12 @@ MediaWiki жүйесінің [[{{#special:Import}}|сырттан алу бет
 'tooltip-diff' => 'Мәтінге қандай өзгерістерді жасағаныңызды қарау.',
 'tooltip-compareselectedversions' => 'Беттің екі бөлектенген нұсқасы айырмасын қарау.',
 'tooltip-watch' => 'Бұл бетті бақылау тізіміңізге үстеу',
+'tooltip-watchlistedit-normal-submit' => 'Тақырып аттарын алып тастау',
+'tooltip-watchlistedit-raw-submit' => 'Бақылау тізіміңізді жаңартыңыз',
 'tooltip-recreate' => 'Бет жойылғанына қарамастан қайта бастау',
 'tooltip-upload' => 'Жүктеуді бастау',
 'tooltip-rollback' => '"Шегіндіру" сілтемесін бір рет басу арқылы соңға редактордың барлық қатар өңдемелерін өшіру',
+'tooltip-preferences-save' => 'Бапталымдарыңызды сақтау',
 'tooltip-summary' => 'Қысқаша сипаттамасын жазыңыз',
 
 # Stylesheets
@@ -2548,12 +2906,14 @@ MediaWiki жүйесінің [[{{#special:Import}}|сырттан алу бет
 'notacceptable' => 'Тұтынғышыңыз оқи алатын пішімі бар деректерді бұл уики сервер жетістіре алмайды.',
 
 # Attribution
-'anonymous' => '{{SITENAME}} тіркелгісіз қатысушы(лары)',
+'anonymous' => '{{SITENAME}} тіркелгісіз {{PLURAL:$1|қатысушысы|қатысушылары}}',
 'siteuser' => '{{SITENAME}} қатысушы $1',
+'anonuser' => '{{SITENAME}} анонимді қатысушы: $1',
 'lastmodifiedatby' => 'Бұл бетті $3 қатысушы соңғы өзгерткен кезі: $2, $1.',
 'othercontribs' => 'Шығарма негізін $1 жазған.',
 'others' => 'басқалар',
-'siteusers' => '{{SITENAME}} қатысушы(лар) $1',
+'siteusers' => '{{SITENAME}} {{PLURAL:$2|қатысушысы|қатысушылары}} $1',
+'anonusers' => '{{SITENAME}} анонимді {{PLURAL:$2|қатысушысы|қатысушылары}} $1',
 'creditspage' => 'Бетті жазғандар',
 'nocredits' => 'Бұл бетті жазғандар туралы ақпарат жоқ.',
 
@@ -2566,6 +2926,48 @@ MediaWiki жүйесінің [[{{#special:Import}}|сырттан алу бет
 'spam_reverting' => '$1 дегенге сілтемелері жоқ соңғы нұсқасына қайтарылды',
 'spam_blanking' => '$1 дегенге сілтемелері бар барлық түзетулер тазартылды',
 
+# Info page
+'pageinfo-title' => '"$1" үшін ақпараттар',
+'pageinfo-header-basic' => 'Негізгі ақпарат',
+'pageinfo-header-edits' => 'Тарихын өңдеу',
+'pageinfo-header-restrictions' => 'Бет қорғалуы',
+'pageinfo-header-properties' => 'Бет сипаты',
+'pageinfo-display-title' => 'Бейнебет атауы',
+'pageinfo-length' => 'Бет ұзындығы (байтпен)',
+'pageinfo-article-id' => 'Бет ID',
+'pageinfo-language' => 'Бет мәлімет тілі',
+'pageinfo-robot-policy' => 'Іздеу күйі',
+'pageinfo-robot-index' => 'Индекстелетін',
+'pageinfo-robot-noindex' => 'Индекстелмейтін',
+'pageinfo-views' => 'Қараушылар саны',
+'pageinfo-watchers' => 'Бетті қараушылар саны',
+'pageinfo-few-watchers' => '$1 азырақ {{PLURAL:$1|қараушы|қараушы}}',
+'pageinfo-redirects-name' => 'Бұл бетке айтатылғандар',
+'pageinfo-subpages-name' => 'Бұл беттің төменгі беттері',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|айдатқыш|айдатқыштыр}}; $3 {{PLURAL:$3|айдатқыш емес|айдатқыш еместер}})',
+'pageinfo-firstuser' => 'Бетті бастаушы',
+'pageinfo-firsttime' => 'Беттің басталған уақыты',
+'pageinfo-lastuser' => 'Соңғы өңдеуші',
+'pageinfo-lasttime' => 'Соңғы өңделген уақыты',
+'pageinfo-edits' => 'Барлық өңдеме саны',
+'pageinfo-authors' => 'Барлық белгілі авторлар саны',
+'pageinfo-recent-edits' => 'Жуықтағы өңдеме саны ($1 соңғы)',
+'pageinfo-recent-authors' => 'Жуықтағы белгілі авторлар саны',
+'pageinfo-magic-words' => 'Сиқырлы {{PLURAL:$1|сөз|сөздер}} ($1)',
+'pageinfo-hidden-categories' => 'Жасырылған {{PLURAL:$1|санат|санаттар}} ($1)',
+'pageinfo-templates' => 'Кіріктірілген {{PLURAL:$1|үлгі|үлгілер}} ($1)',
+'pageinfo-transclusions' => '($1) дегенге кіріктірілген {{PLURAL:$1|бет|беттер}}',
+'pageinfo-toolboxlink' => 'Бет ақпараттары',
+'pageinfo-redirectsto' => 'Айдатылғандар',
+'pageinfo-redirectsto-info' => 'Информация',
+'pageinfo-contentpage-yes' => 'Иә',
+'pageinfo-protect-cascading' => 'Баулы қорғаулылар мұнда',
+'pageinfo-protect-cascading-yes' => 'Иә',
+'pageinfo-category-info' => 'Санат ақпараттары',
+'pageinfo-category-pages' => 'Беттер саны',
+'pageinfo-category-subcats' => 'Санатшалар саны',
+'pageinfo-category-files' => 'Файлдар саны',
+
 # Skin names
 'skinname-cologneblue' => 'Көлн зеңгірлігі (cologneblue)',
 'skinname-monobook' => 'Дара кітап (monobook)',
@@ -2575,7 +2977,7 @@ MediaWiki жүйесінің [[{{#special:Import}}|сырттан алу бет
 'markaspatrolleddiff' => 'Зерттелді деп белгілеу',
 'markaspatrolledtext' => 'Бұл бетті зерттелді деп белгіле',
 'markedaspatrolled' => 'Зерттелді деп белгіленді',
-'markedaspatrolledtext' => 'Бөлектенген түзету зерттелді деп белгіленді.',
+'markedaspatrolledtext' => 'Бөлектенген нұсқа [[:$1]]  зерттелді деп белгіленді.',
 'rcpatroldisabled' => 'Жуықтағы өзгерістерді зерттеуі өшірілген',
 'rcpatroldisabledtext' => 'Жуықтағы өзгерістерді зерттеу мүмкіндігі ағымда өшірілген.',
 'markedaspatrollederror' => 'Зерттелді деп белгіленбейді',
@@ -2584,6 +2986,7 @@ MediaWiki жүйесінің [[{{#special:Import}}|сырттан алу бет
 
 # Patrol log
 'patrol-log-page' => 'Зерттеу журналы',
+'log-show-hide-patrol' => '$1 зерттеу журналы',
 
 # Image deletion
 'deletedrevision' => 'Ескі түзетуін жойды: $1',
@@ -2601,16 +3004,27 @@ $1',
 'nextdiff' => 'Келесі өңдеме →',
 
 # Media information
-'mediawarning' => "'''Құлақтандыру''': Бұл файл түрінде қаскүнемді коды бар болуы ықтимал; бұны жегіп жүйеңізге зиян келтіруіңіз мүмкін.",
-'imagemaxsize' => 'Сипаттамасы бетіндегі суреттің мөлшерін шектеуі:',
+'mediawarning' => "'''Ескерту''': Бұл файл түрінде қаскүнемді коды бар болуы ықтимал; бұны жегіп жүйеңізге зиян келтіруіңіз мүмкін.",
+'imagemaxsize' => "Суреттің өлшем шектеуі:<br />''(файл сипаттама беттері үшін)''",
 'thumbsize' => 'Нобай мөлшері:',
 'widthheight' => '$1 × $2',
 'widthheightpage' => '$1 × $2, $3 бет',
 'file-info' => 'Файл мөлшері: $1, MIME түрі: $2',
 'file-info-size' => '$1 × $2 нүкте, файл мөлшері: $3, MIME түрі: $4',
+'file-info-size-pages' => '$1 × $2 пиксель, Файл өлшемі: $3, MIME түрі: $4, $5 {{PLURAL:$5|бет|беттер}}',
 'file-nohires' => 'Жоғары кеңейтілімдегі нұсқалары жоқ.',
 'svg-long-desc' => 'SVG файлы, кесімді $1 × $2 нүкте, файл мөлшері: $3',
+'svg-long-desc-animated' => 'SVG қозғалысты файлы, кесімді $1 × $2 нүкте, файл өлшемі: $3',
+'svg-long-error' => 'жарамсыз SVG файлы: $1',
 'show-big-image' => 'Жоғары ажыратылымды',
+'show-big-image-preview' => 'Бұл қарап шығудағы өлшемі: $1.',
+'show-big-image-other' => 'Басқа {{PLURAL:$2|ажыратылымдық|ажыратылымдық}}: $1.',
+'show-big-image-size' => '$1 × $2 нүкте',
+'file-info-gif-looped' => 'тұйықталған',
+'file-info-gif-frames' => '$1 {{PLURAL:$1|жақтау терезе|жақтау терезелер}}',
+'file-info-png-looped' => 'тұйықталған',
+'file-info-png-repeat' => '$1 {{PLURAL:$1|уақыт|уақыт}} ойнатылды',
+'file-info-png-frames' => '$1 {{PLURAL:$1|жақтау терезе|жақтау терезелер}}',
 
 # Special:NewFiles
 'newimages' => 'Жаңа файлдар көрмесі',
@@ -2628,6 +3042,20 @@ $1',
 'seconds-abbrev' => '$1с',
 'minutes-abbrev' => '$1мин',
 'hours-abbrev' => '$1сағ',
+'seconds' => '{{PLURAL:$1|$1 секунт|$1 секунт}}',
+'minutes' => '{{PLURAL:$1|$1 минут|$1 минут}}',
+'hours' => '{{PLURAL:$1|$1 сағат|$1 сағат}}',
+'days' => '{{PLURAL:$1|$1 күн|$1 күн}}',
+'weeks' => '{{PLURAL:$1|$1 апта|$1 апта}}',
+'months' => '{{PLURAL:$1|$1 ай|$1 ай}}',
+'years' => '{{PLURAL:$1|$1 жыл|$1 жыл}}',
+'ago' => '$1 бұрын',
+'just-now' => 'Дәл қазір',
+
+# Human-readable timestamps
+'hours-ago' => '$1 {{PLURAL:$1|сағат|сағат}} бұрын',
+'minutes-ago' => '$1 {{PLURAL:$1|минут|минут}} бұрын',
+'seconds-ago' => '$1 {{PLURAL:$1|секунт|секунт}} бұрын',
 
 # Bad image list
 'bad_image_list' => 'Пішімі төмендегідей:
@@ -2679,22 +3107,22 @@ $1',
 'exif-whitepoint' => 'Ақ нүкте түстілігі',
 'exif-primarychromaticities' => 'Алғы шептегі түстіліктері',
 'exif-ycbcrcoefficients' => 'Түс аясын тасымалдау матрицалық еселіктері',
-'exif-referenceblackwhite' => 'Қара және ақ анықтауыш қос колемдері',
+'exif-referenceblackwhite' => 'Қара және ақ анықтауыш қос көлемдері',
 'exif-datetime' => 'Файлдың өзгертілген күн-айы',
-'exif-imagedescription' => 'Сурет тақырыбын аты',
-'exif-make' => 'Ð\9aамеÑ\80а өндірушісі',
-'exif-model' => 'Ð\9aамеÑ\80а үлгісі',
+'exif-imagedescription' => 'Сурет тақырыбының аты',
+'exif-make' => 'ФоÑ\82оаппаÑ\80аÑ\82 өндірушісі',
+'exif-model' => 'ФоÑ\82оаппаÑ\80аÑ\82 үлгісі',
 'exif-software' => 'Қолданылған бағдарламалық жасақтама',
-'exif-artist' => 'ТÑ\83Ñ\8bндÑ\8bгеÑ\80Ñ\96',
-'exif-copyright' => 'Ауторлық құқықтар иесі',
+'exif-artist' => 'Ð\90вÑ\82оÑ\80Ñ\8b',
+'exif-copyright' => 'Авторлық құқықтар иесі',
 'exif-exifversion' => 'Exif нұсқасы',
 'exif-flashpixversion' => 'Қолданған Flashpix нұсқасы',
-'exif-colorspace' => 'ТүÑ\81 Ð°Ñ\8fÑ\81Ñ\8b',
+'exif-colorspace' => 'ТүÑ\81 ÐºÐµÒ£Ñ\96Ñ\81Ñ\82Ñ\96гÑ\96',
 'exif-componentsconfiguration' => 'Әрқайсы құраш мәні',
 'exif-compressedbitsperpixel' => 'Сурет қысымдау тәртібі',
-'exif-pixelydimension' => 'Суреттің жарамды ені',
-'exif-pixelxdimension' => 'Суреттің жарамды биіктігі',
-'exif-usercomment' => 'Қатысушының мәндемелері',
+'exif-pixelydimension' => 'Сурет ені',
+'exif-pixelxdimension' => 'Сурет биіктігі',
+'exif-usercomment' => 'Қатысушы пікірі',
 'exif-relatedsoundfile' => 'Қатысты дыбыс файлы',
 'exif-datetimeoriginal' => 'Жасалған кезі',
 'exif-datetimedigitized' => 'Сандықтау кезі',
@@ -2702,7 +3130,7 @@ $1',
 'exif-subsectimeoriginal' => 'Түпнұсқа кезінің секунд бөлшектері',
 'exif-subsectimedigitized' => 'Сандықтау кезінің секунд бөлшектері',
 'exif-exposuretime' => 'Ұсталым уақыты',
-'exif-exposuretime-format' => '$1 с ($2)',
+'exif-exposuretime-format' => '$1 сек ($2)',
 'exif-fnumber' => 'Саңылау мөлшері',
 'exif-exposureprogram' => 'Ұсталым бағдарламасы',
 'exif-spectralsensitivity' => 'Спектр бойынша сезгіштігі',
@@ -2741,9 +3169,9 @@ $1',
 'exif-subjectdistancerange' => 'Сахна қашықтығының көлемі',
 'exif-imageuniqueid' => 'Суреттің бірегей нөмірі (ID)',
 'exif-gpsversionid' => 'GPS белгішесінің нұсқасы',
-'exif-gpslatituderef' => 'СолÑ\82Ò¯Ñ\81Ñ\82Ñ\96к Ð½ÐµÐ¼ÐµÑ\81е Ð\9eңтүстік бойлығы',
+'exif-gpslatituderef' => 'СолÑ\82Ò¯Ñ\81Ñ\82Ñ\96к Ð½ÐµÐ¼ÐµÑ\81е Ð¾ңтүстік бойлығы',
 'exif-gpslatitude' => 'Бойлығы',
-'exif-gpslongituderef' => 'ШÑ\8bÒ\93Ñ\8bÑ\81 Ð½ÐµÐ¼ÐµÑ\81е Ð\91атыс ендігі',
+'exif-gpslongituderef' => 'ШÑ\8bÒ\93Ñ\8bÑ\81 Ð½ÐµÐ¼ÐµÑ\81е Ð±атыс ендігі',
 'exif-gpslongitude' => 'Ендігі',
 'exif-gpsaltituderef' => 'Биіктік көрсетуі',
 'exif-gpsaltitude' => 'Биіктік',
@@ -2771,6 +3199,37 @@ $1',
 'exif-gpsareainformation' => 'GPS аумағының атауы',
 'exif-gpsdatestamp' => 'GPS күн-айы',
 'exif-gpsdifferential' => 'GPS сараланған дұрыстау',
+'exif-keywords' => 'Пернетақталар',
+'exif-worldregioncreated' => 'Бұл суретте Әлем аймақтары түсірілген',
+'exif-countrycreated' => 'Бұл суретте мемлекет түсірілген',
+'exif-countrycodecreated' => 'Бұл суретте мемлекет коды түсірілген',
+'exif-provinceorstatecreated' => 'Бұл суретте облыс немесе штат түсірілген',
+'exif-citycreated' => 'Бұл суретте қала түсірілген',
+'exif-sublocationcreated' => 'Бұл суретте қала ауданы түсірілген',
+'exif-worldregiondest' => 'Әлем аймақтары көрсетілген',
+'exif-countrydest' => 'Мемлекет көрсетілген',
+'exif-countrycodedest' => 'Мемлекет коды көрсетілген',
+'exif-provinceorstatedest' => 'облыс (провинция) немесе штат көрсетілген',
+'exif-citydest' => 'Қала көрсетілген',
+'exif-sublocationdest' => 'Қала ауданы көрсетілген',
+'exif-objectname' => 'Қысқаша атауы',
+'exif-specialinstructions' => 'Арнайы таныстырылымдар',
+'exif-headline' => 'Тақырып',
+'exif-source' => 'Қайнары',
+'exif-contact' => 'Байланыс ақпараттары',
+'exif-writer' => 'Жазушы',
+'exif-languagecode' => 'Тіл',
+'exif-iimversion' => 'IIM нұсқа',
+'exif-iimcategory' => 'Санат',
+'exif-iimsupplementalcategory' => 'Қосымша санаттар',
+'exif-datetimeexpires' => 'Соңынан қолданба',
+'exif-identifier' => 'Жалпылауыш',
+'exif-lens' => 'Линза қолданылған',
+'exif-serialnumber' => 'Фотоаппараттың сериал нөмері',
+'exif-cameraownername' => 'Фотоаппараттың иесі',
+'exif-label' => 'Деңгей',
+'exif-copyrighted' => 'Авторлық құқық күйі:',
+'exif-copyrightowner' => 'Авторлық құқықтар иесі',
 
 # Exif attributes
 'exif-compression-1' => 'Ұлғайтылған',
@@ -2899,10 +3358,51 @@ $1',
 'exif-gpsspeed-m' => 'mil/h',
 'exif-gpsspeed-n' => 'knot',
 
+# Pseudotags used for GPSDestDistanceRef
+'exif-gpsdestdistance-k' => 'Километр',
+'exif-gpsdestdistance-m' => 'Миль',
+'exif-gpsdestdistance-n' => 'Табиғи мильдер',
+
+'exif-gpsdop-excellent' => '($1) керемет',
+'exif-gpsdop-good' => '($1) жақсы',
+'exif-gpsdop-moderate' => '($1) орташа',
+'exif-gpsdop-fair' => '($1) әділ',
+'exif-gpsdop-poor' => '($1) жаман',
+
+'exif-objectcycle-a' => 'Тек таңертең',
+'exif-objectcycle-p' => 'Тек кешке',
+'exif-objectcycle-b' => 'таңертең және кешке екеуі де',
+
 # Pseudotags used for GPSTrackRef, GPSImgDirectionRef and GPSDestBearingRef
 'exif-gpsdirection-t' => 'Шын бағыт',
 'exif-gpsdirection-m' => 'Магнитты бағыт',
 
+'exif-ycbcrpositioning-1' => 'Орталықты',
+
+'exif-dc-date' => 'Күн(дер)',
+'exif-dc-publisher' => 'Жариялаушы',
+'exif-dc-relation' => 'Қатысты медиа',
+'exif-dc-rights' => 'Құқықтар',
+'exif-dc-source' => 'Қайнар медиа',
+'exif-dc-type' => 'Медиа түрі',
+
+'exif-rating-rejected' => 'Өшірілген',
+
+'exif-isospeedratings-overflow' => '65535-нан үлкенірек',
+
+'exif-iimcategory-fin' => 'Экономика және бизнес',
+'exif-iimcategory-edu' => 'Білім',
+'exif-iimcategory-evn' => 'Қоршаған орта',
+'exif-iimcategory-hth' => 'Денсаулық',
+'exif-iimcategory-pol' => 'Саясат',
+'exif-iimcategory-sci' => 'Ғылым және технология',
+'exif-iimcategory-spo' => 'Спорт',
+'exif-iimcategory-wea' => 'Ауа райы',
+
+'exif-urgency-normal' => 'Қалыпты ($1)',
+'exif-urgency-low' => 'Төмен ($1)',
+'exif-urgency-high' => 'Жоғары ($1)',
+
 # External editor support
 'edit-externally' => 'Бұл файлды шеттік қондырма арқылы өңдеу',
 'edit-externally-help' => '(көбірек ақпарат үшін [//www.mediawiki.org/wiki/Manual:External_editors орнату нұсқауларын] қараңыз.',
@@ -2911,10 +3411,11 @@ $1',
 'watchlistall2' => 'барлық',
 'namespacesall' => 'барлығы',
 'monthsall' => 'барлығы',
+'limitall' => 'барлығы',
 
 # Email address confirmation
 'confirmemail' => 'Е-пошта мекенжайын құптау',
-'confirmemail_noemail' => '[[{{#special:Preferences}}|Пайдаланушылық бапталымдарыңызда]] жарамды е-пошта мекенжайын қоймапсыз.',
+'confirmemail_noemail' => '[[Special:Preferences|Пайдаланушылық бапталымдарыңызда]] жарамды е-пошта мекенжайын қоймапсыз.',
 'confirmemail_text' => '{{SITENAME}} е-пошта мүмкіндіктерін пайдалану үшін алдынан е-пошта мекенжайыңыздың жарамдылығын тексеріп шығуыңыз керек.
 Өзіңіздің мекенжайыңызға құптау хатын жөнелту үшін төмендегі батырманы нұқыңыз.
 Хаттың ішінде коды бар сілтеме кірістірмек;
@@ -2925,7 +3426,7 @@ $1',
 'confirmemail_sent' => 'Құптау хаты жөнелтілді.',
 'confirmemail_oncreate' => 'Құптау коды е-пошта мекенжайыңызға жөнелтілді.
 Бұл белгілеме кіру үдірісіне керегі жоқ, бірақ е-пошта негізіндегі уики мүмкіндіктерді қосу үшін бұны жетістіруіңіз керек.',
-'confirmemail_sendfailed' => 'Құптау хаты жөнелтілмеді.
+'confirmemail_sendfailed' => '{{SITENAME}} құптау хаты жөнелтілмеді.
 Жарамсыз таңбалар үшін мекенжайды тексеріп шығыңыз.
 
 Пошта жібергіштің қайтарған мәліметі: $1',
@@ -2960,8 +3461,8 @@ $5
 'scarytranscludetoolong' => '[URL тым ұзын; ғафу етіңіз]',
 
 # Delete conflict
-'deletedwhileediting' => 'Құлақтандыру: Бұл бетті өңдеуіңізді бастағанда, осы бет жойылды!',
-'confirmrecreate' => "Бұл бетті өңдеуіңізді бастағанда [[{{ns:user}}:$1|$1]] ([[{{ns:user_talk}}:$1|талқылауы]]) осы бетті жойды, келтірген себебі:
+'deletedwhileediting' => 'Ескету: Бұл бетті өңдеуіңізді бастағанда, осы бет жойылды!',
+'confirmrecreate' => "Бұл бетті өңдеуіңізді бастағанда [[User:$1|$1]] ([[User talk:$1|талқылауы]]) осы бетті жойды, келтірген себебі:
 : ''$2''
 Осы бетті қайта бастауын нақты тілегеніңізді құптаңыз.",
 'recreate' => 'Қайта бастау',
@@ -2972,6 +3473,12 @@ $5
 'confirm_purge_button' => 'Жарайды',
 'confirm-purge-top' => 'Бұл беттін бүркемесін тазартасыз ба?',
 
+# action=watch/unwatch
+'confirm-watch-button' => 'Жарайды',
+'confirm-watch-top' => 'Бұл бетті бақылау тізіміңізге қосқыңыз келе ме?',
+'confirm-unwatch-button' => 'Жарайды',
+'confirm-unwatch-top' => 'Бұл бетті бақылау тізіміңізден аластағыңыз келе ме?',
+
 # Separators for various lists, etc.
 'semicolon-separator' => ';',
 'colon-separator' => ':&#32;',
@@ -2990,14 +3497,15 @@ $5
 'table_pager_first' => 'Алғашқы бетке',
 'table_pager_last' => 'Соңғы бетке',
 'table_pager_limit' => 'Бет сайын $1 дана көрсет',
+'table_pager_limit_label' => 'Бет сайын дана:',
 'table_pager_limit_submit' => 'Өту',
 'table_pager_empty' => 'Еш нәтиже жоқ',
 
 # Auto-summaries
 'autosumm-blank' => 'Беттің барлық мағлұматын аластады',
-'autosumm-replace' => "Бетті '$1' дегенмен алмастырды",
+'autosumm-replace' => 'Бетті "$1" дегенмен алмастырды',
 'autoredircomment' => '[[$1]] дегенге айдады',
-'autosumm-new' => 'Жаңа бетте: $1',
+'autosumm-new' => 'Жаңа бетте: "$1"',
 
 # Size units
 'size-bytes' => '$1 байт',
@@ -3006,27 +3514,27 @@ $5
 'livepreview-loading' => 'Жүктеуде…',
 'livepreview-ready' => 'Жүктеуде… Дайын!',
 'livepreview-failed' => 'Тура қарап шығу сәтсіз! Кәдімгі қарап шығу әдісін байқап көріңіз.',
-'livepreview-error' => 'Қосылу сәтсіз: $1 «$2». Кәдімгі қарап шығу әдісін байқап көріңіз.',
+'livepreview-error' => 'Қосылу сәтсіз: $1 "$2". Кәдімгі қарап шығу әдісін байқап көріңіз.',
 
 # Friendlier slave lag warnings
-'lag-warn-normal' => '$1 секундтан жаңалау өзгерістер бұл тізімде көрсетілмеуі мүмкін.',
-'lag-warn-high' => 'Ð\94еÑ\80екÒ\9bоÑ\80 Ñ\81еÑ\80веÑ\80Ñ\96 Ð·Ð¾Ñ\80 ÐºÐµÑ\88Ñ\96гÑ\83Ñ\96 Ñ\81ебебÑ\96нен, $1 Ñ\81екÑ\83ндÑ\82ан жаңалау өзгерістер бұл тізімде көрсетілмеуі мүмкін.',
+'lag-warn-normal' => '{{PLURAL:$1|секунтта|секунтта}} $1 жаңалау өзгерістер бұл тізімде көрсетілмеуі мүмкін.',
+'lag-warn-high' => 'Ð\94еÑ\80екÒ\9bоÑ\80 Ñ\81еÑ\80веÑ\80Ñ\96 ÐºÓ©Ð¿ ÐºÐµÑ\88Ñ\96гÑ\83Ñ\96 Ñ\81ебебÑ\96нен, $1 {{PLURAL:$1|Ñ\81екÑ\83нÑ\82Ñ\82а|Ñ\81еÑ\83нÑ\82Ñ\82а}} жаңалау өзгерістер бұл тізімде көрсетілмеуі мүмкін.',
 
 # Watchlist editor
-'watchlistedit-numitems' => 'Бақылау тізіміңізде, талқылау беттерсіз, $1 тақырып аты бар.',
+'watchlistedit-numitems' => 'Бақылау тізіміңізде, талқылау беттерсіз, {{PLURAL:$1|1 тақырып аты|$1 тақырып аттары}} бар.',
 'watchlistedit-noitems' => 'Бақылау тізіміңізде еш тақырып аты жоқ.',
 'watchlistedit-normal-title' => 'Бақылау тізімді өңдеу',
 'watchlistedit-normal-legend' => 'Бақылау тізімінен тақырып аттарын аластау',
 'watchlistedit-normal-explain' => 'Бақылау тізіміңіздегі тақырып аттар төменде көрсетіледі.
-Тақырып атын аластау үшін, бүйір көзге құсбелгі салыңыз, және «Тақырып аттарын аласта» дегенді нұқыңыз.
+Тақырып атын аластау үшін, бүйір көзге құсбелгі салыңыз, және "{{int:Watchlistedit-normal-submit}}" дегенді нұқыңыз.
 Тағы да [[Special:EditWatchlist/raw|қам тізімді өңдей]] аласыз.',
 'watchlistedit-normal-submit' => 'Тақырып аттарын аласта',
-'watchlistedit-normal-done' => 'Бақылау тізіміңізден $1 тақырып аты аласталды:',
+'watchlistedit-normal-done' => 'Бақылау тізіміңізден {{PLURAL:$1|1 тақырып аты|$1 тақырып аттары}} аласталды:',
 'watchlistedit-raw-title' => 'Қам бақылау тізімді өңдеу',
 'watchlistedit-raw-legend' => 'Қам бақылау тізімді өңдеу',
 'watchlistedit-raw-explain' => 'Бақылау тізіміңіздегі тақырып аттары төменде көрсетіледі, және де тізмге үстеп және тізмден аластап өңделуі мүмкін;
 жол сайын бір тақырып аты болу жөн.
-Бітіргеннен соң «Бақылау тізімді жаңарту» дегенді нұқыңыз.
+Бітіргеннен соң "{{int:Watchlistedit-raw-submit}}" дегенді нұқыңыз.
 Тағы да [[Special:EditWatchlist|қалыпалған өңдеуішті пайдалана]] аласыз.',
 'watchlistedit-raw-titles' => 'Тақырып аттары:',
 'watchlistedit-raw-submit' => 'Бақылау тізімді жаңарту',
@@ -3083,28 +3591,44 @@ $5
 'hebrew-calendar-m11-gen' => 'абтың',
 'hebrew-calendar-m12-gen' => 'айлолдың',
 
+# Signatures
+'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|талқ]])',
+
 # Core parser functions
-'unknown_extension_tag' => 'ТанÑ\8bлмаÒ\93ан ÐºÐµÒ£ÐµÐ¹Ñ\82пе Ð±ÐµÐ»Ð³Ñ\96Ñ\81Ñ\96 Â«$1»',
+'unknown_extension_tag' => 'Ð\91елгÑ\96Ñ\81Ñ\96з ÐºÐµÒ£ÐµÐ¹Ñ\82пе Ð±ÐµÐ»Ð³Ñ\96Ñ\81Ñ\96 "$1"',
 
 # Special:Version
-'version' => 'Ð\96үйе Ð½Ò±Ñ\81Ò\9bаÑ\81Ñ\8b',
+'version' => 'Ð\9dÒ±Ñ\81Ò\9bа',
 'version-extensions' => 'Орнатылған кеңейтімдер',
 'version-specialpages' => 'Арнайы беттер',
 'version-parserhooks' => 'Құрылымдық талдатқыштың тұзақтары',
 'version-variables' => 'Айнымалылар',
+'version-antispam' => 'Спамнан қорғау',
+'version-skins' => 'Мәнерлер',
 'version-other' => 'Тағы басқалар',
-'version-mediahandlers' => 'ТаÑ\81па өңдеткіштері',
+'version-mediahandlers' => 'Ð\9cедиа өңдеткіштері',
 'version-hooks' => 'Жете тұзақтары',
-'version-extension-functions' => 'Кеңейтімдер жетелері',
 'version-parser-extensiontags' => 'Құрылымдық талдатқыш кеңейтімдерінің белгілемері',
 'version-parser-function-hooks' => 'Құрылымдық талдатқыш жетелерінің тұзақтары',
 'version-hook-name' => 'Тұзақ атауы',
 'version-hook-subscribedby' => 'Тұзақ тартқыштары',
 'version-version' => '(Нұсқасы: $1)',
 'version-license' => 'Лицензиясы',
+'version-poweredby-others' => 'басқалар',
 'version-software' => 'Орнатылған бағдарламалық жасақтама',
 'version-software-product' => 'Өнім',
 'version-software-version' => 'Нұсқасы',
+'version-entrypoints-header-url' => 'URL',
+
+# Special:Redirect
+'redirect-legend' => 'Файл немесе бетке айдатулар',
+'redirect-submit' => 'Өту',
+'redirect-lookup' => 'Іздеу:',
+'redirect-value' => 'Мән:',
+'redirect-user' => 'Қатысушы ID',
+'redirect-revision' => 'Бет түзетуі',
+'redirect-file' => 'Файл атауы',
+'redirect-not-exists' => 'Мән табылмады',
 
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Файл телнұсқаларын іздеу',
@@ -3115,22 +3639,23 @@ $5
 'fileduplicatesearch-info' => '$1 × $2 пиксел<br />Файл мөлшері: $3<br />MIME түрі: $4',
 'fileduplicatesearch-result-1' => '«$1» файлына тең телнұсқасы жоқ.',
 'fileduplicatesearch-result-n' => '«$1» файлына тең $2 телнұсқасы бар.',
+'fileduplicatesearch-noresults' => '"$1" атауымен файл табылмады.',
 
 # Special:SpecialPages
 'specialpages' => 'Арнайы беттер',
 'specialpages-note' => '----
 * Кәдімгі арнайы беттер.
-* <strong class="mw-specialpagerestricted">Шектелген арнайы беттер.</strong>',
-'specialpages-group-maintenance' => 'Ð\91апÑ\82аÑ\83 Ð±Ð°Ñ\8fнаÑ\82Ñ\82аÑ\80Ñ\8b',
+* <span class=="mw-specialpagerestricted">Шектелген арнайы беттер.</span>',
+'specialpages-group-maintenance' => 'ТеÑ\85никалÑ\8bÒ\9b Ñ\82алÒ\9bÑ\8bлаÑ\83 ÐµÑ\81епÑ\82еÑ\80Ñ\96',
 'specialpages-group-other' => 'Тағы басқа арнайы беттер',
-'specialpages-group-login' => 'Кіру / тіркелу',
+'specialpages-group-login' => 'Кіру / тіркелгі жасау',
 'specialpages-group-changes' => 'Жуықтағы өзгерістер мен журналдар',
-'specialpages-group-media' => 'ТаÑ\81па баянаттары және жүктелгендер',
+'specialpages-group-media' => 'Ð\9cедиа баянаттары және жүктелгендер',
 'specialpages-group-users' => 'Қатысушылар және олардың құқықтары',
 'specialpages-group-highuse' => 'Өте көп қолданылған беттер',
-'specialpages-group-pages' => 'Беттер тізімі',
-'specialpages-group-pagetools' => 'Ð\9aөмекÑ\88Ñ\96 Ð±ÐµÑ\82Ñ\82еÑ\80',
-'specialpages-group-wiki' => 'Уики Ð´ÐµÑ\80екÑ\82еÑ\80Ñ\96 Ð¶Ó\99не Ò\9bÒ±Ñ\80алдаÑ\80Ñ\8b',
+'specialpages-group-pages' => 'Беттер тізімдері',
+'specialpages-group-pagetools' => 'Ð\91еÑ\82 Ò\9bÒ±Ñ\80алдаÑ\80Ñ\8b',
+'specialpages-group-wiki' => 'Ð\94еÑ\80екÑ\82еÑ\80 Ð¶Ó\99не Ò\9bÒ±Ñ\80алдаÑ\80',
 'specialpages-group-redirects' => 'Айдайтын арнайы беттер',
 'specialpages-group-spam' => 'Спам құралдары',
 
@@ -3138,21 +3663,91 @@ $5
 'blankpage' => 'Бос бет',
 'intentionallyblankpage' => 'Бұл бет әдейі бос қалдырылған',
 
+# Special:Tags
+'tags' => 'Тектерді өзгерту жарамсыз',
+'tag-filter' => '[[Special:Tags|Тег]] сүзгісі:',
+'tag-filter-submit' => 'Сүзгі',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Тег|Тег}}]]: $2)',
+'tags-title' => 'Тегтер',
+'tags-tag' => 'Тег атауы',
+'tags-display-header' => 'Өзгеріс тізіміндегі көрінісі',
+'tags-description-header' => 'Толық сипаттама мәні',
+'tags-hitcount-header' => 'Телгіленген өзгерістер',
+'tags-edit' => 'өңдеу',
+'tags-hitcount' => '$1 {{PLURAL:$1|өзгеріс|өзгеріс}}',
+
+# Special:ComparePages
+'comparepages' => 'Беттерді салыстыру',
+'compare-selector' => 'Бет түзетулерін салыстыру',
+'compare-page1' => 'Бет 1',
+'compare-page2' => 'Бет 2',
+'compare-rev1' => 'Нұсқа 1',
+'compare-rev2' => 'Нұсқа 2',
+'compare-submit' => 'Салыстыру',
+
+# Database error messages
+'dberr-header' => 'Бұл уикиде мәселе бар',
+
+# HTML forms
+'htmlform-required' => 'Бұл мән міндетті',
+'htmlform-submit' => 'Жіберу',
+'htmlform-reset' => 'Өзгерістерді болдырмау',
+'htmlform-selectorother-other' => 'Басқа',
+'htmlform-no' => 'Жоқ',
+'htmlform-yes' => 'Иә',
+
 # New logging system
-'logentry-delete-delete' => '$1 $3 деген бетті жойды',
+'logentry-delete-delete' => '$1 $3 деген бетті {{GENDER:$2|жойды}}',
+'logentry-delete-restore' => '$1 $3 деген бетті {{GENDER:$2|қалпына келтірді}}',
+'revdelete-content-hid' => 'мағұлымат жасырылған',
+'revdelete-summary-hid' => 'өңдеу түйіндемесі жасырылған',
+'revdelete-uname-hid' => 'қатысушы есімі жасырылған',
+'revdelete-content-unhid' => 'мағлұматы жасырылмаған',
+'revdelete-summary-unhid' => 'өңдеу түйіндемесі жасырылмаған',
+'revdelete-uname-unhid' => 'қатысушы есімі жасырылмаған',
 'revdelete-restricted' => 'әкімшілерге тиымдар қолдады',
 'revdelete-unrestricted' => 'әкімшілерден тиымдарды аластады',
-'logentry-move-move' => '$1 $3 бетін $4 бетіне жылжытты',
-'logentry-move-move-noredirect' => '$1 $3 бетін $4 бетіне жылжытты (айдатқыш қалдырылмады)',
-'logentry-move-move_redir' => '$1 $3 бетін $4 деген айдатқыш үстіне жылжытты',
-'logentry-move-move_redir-noredirect' => '$1 $3 бетін $4 деген айдатқыш үстіне жылжытты (айдатқыш қалдырылмады)',
-'logentry-newusers-newusers' => '$1 жаңадан аккаунт тіркеді',
-'logentry-newusers-create' => '$1 жаңадан аккаунт тіркеді',
+'logentry-move-move' => '$1 $3 бетін $4 бетіне {{GENDER:$2|жылжытты}}',
+'logentry-move-move-noredirect' => '$1 $3 бетін $4 бетіне {{GENDER:$2|жылжытты}} (айдатқыш қалдырылмады)',
+'logentry-move-move_redir' => '$1 $3 бетін $4 деген айдатқыш үстіне {{GENDER:$2|жылжытты}}',
+'logentry-move-move_redir-noredirect' => '$1 $3 бетін $4 деген айдатқыш үстіне {{GENDER:$2|жылжытты}} (айдатқыш қалдырылмады)',
+'logentry-newusers-newusers' => '$1 жаңадан қатысушы тіркелгісін {{GENDER:$2|жасады}}',
+'logentry-newusers-create' => '$1 жаңадан қатысушы тіркелгісі {{GENDER:$2|жасады}}',
 'logentry-newusers-create2' => '$1 $3 деген аккаунт тіркеді',
-'logentry-newusers-autocreate' => '$1 аккаунты автоматты түрде тіркелді',
+'logentry-newusers-autocreate' => '$1 қатысушы аккаунтын автоматты түрде {{GENDER:$2|тіркеді}}',
+'logentry-rights-rights' => '$1 $3 үшін топ мүшелігін $4 дегеннен $5 дегенге {{GENDER:$2|өзгерті}}',
+'logentry-rights-rights-legacy' => '$1 $3 үшін топ мүшелігін {{GENDER:$2|өзгерті}}',
 'rightsnone' => '(ешқандай)',
 
+# Feedback
+'feedback-subject' => 'Тақырып:',
+'feedback-message' => 'Хабарлама:',
+'feedback-cancel' => 'Болдырмау',
+'feedback-submit' => 'Кері байланысты жіберу',
+'feedback-adding' => 'Бетке кері байланыс қосуда...',
+'feedback-error2' => 'Қате: Өңдеме сәтсіздікке ұшырады',
+'feedback-thanks' => 'Рахмет! Сіздің кері байланысыңыз "[$2 $1]" бетіне қойылды.',
+'feedback-close' => 'Жасалды',
+
 # Search suggestions
 'searchsuggest-search' => 'Іздеу',
+'searchsuggest-containing' => 'қамтылуда...',
+
+# API errors
+'api-error-unknown-code' => 'Белгісіз қате: "$1".',
+'api-error-unknown-warning' => 'Белгісіз ескерту: "$1".',
+'api-error-unknownerror' => 'Белгісіз қате: "$1".',
+'api-error-uploaddisabled' => 'Бұл уикиде жүктеп беру өшірілген.',
+
+# Durations
+'duration-seconds' => '$1 {{PLURAL:$1|секунт|секунт}}',
+'duration-minutes' => '$1 {{PLURAL:$1|минут|минут}}',
+'duration-hours' => '$1 {{PLURAL:$1|сағат|сағат}}',
+'duration-days' => '$1 {{PLURAL:$1|күн|күн}}',
+'duration-weeks' => '$1 {{PLURAL:$1|апта|апта}}',
+'duration-years' => '$1 {{PLURAL:$1|жыл|жыл}}',
+'duration-decades' => '$1 {{PLURAL:$1|он жылдық|он жылдық}}',
+'duration-centuries' => '$1 {{PLURAL:$1|ғасыр|ғасыр}}',
+'duration-millennia' => '$1 {{PLURAL:$1|мың жылдық|мың жылдық}}',
 
 );
index 67f1372..92403d8 100644 (file)
@@ -550,7 +550,6 @@ $messages = array(
 'disclaimers' => 'Jawapkerşilikten bas tartw',
 'disclaimerpage' => 'Project:Jawapkerşilikten bas tartw',
 'edithelp' => 'Öndew anıqtaması',
-'edithelppage' => 'Help:Öñdew',
 'helppage' => 'Help:Mazmunı',
 'mainpage' => 'Bastı bet',
 'mainpage-description' => 'Bastı bet',
@@ -1075,7 +1074,6 @@ Añğartpa: bağıttaw siltemelerin qoldanğanda bul bağan qaýta qoýıladı.'
 'prevn' => 'aldıñğı {{PLURAL:$1|$1}}',
 'nextn' => 'kelesi {{PLURAL:$1|$1}}',
 'viewprevnext' => 'Körsetilwi: ($1 {{int:pipe-separator}} $2) ($3) jazba',
-'searchhelp-url' => 'Help:Mazmunı',
 'search-result-size' => '$1 ($2 söz)',
 'search-result-score' => 'Araqatınastılığı: $1 %',
 'search-redirect' => '(aýdağış $1)',
@@ -1296,7 +1294,6 @@ Eger bunı jetistirwdi tañdasañız, bul tüzetwiñizdiñ awtorlığın anıqta
 'recentchangeslinked-feed' => 'Qatıstı özgerister',
 'recentchangeslinked-toolbox' => 'Qatıstı özgerister',
 'recentchangeslinked-title' => '«$1» degenge qatıstı özgerister',
-'recentchangeslinked-noresult' => 'Siltegen betterde keltirilgen merzimde eşqandaý özgeris bolmağan.',
 'recentchangeslinked-summary' => "Bul tizimde özindik betke siltegen betterdegi (ne özindik sanat müşelerindegi) istelgen jwıqtağı özgerister beriledi.
 [[{{#special:Watchlist}}|Baqılaw tizimiñizdegi]] better '''jwan''' bolıp belgilenedi.",
 'recentchangeslinked-page' => 'Bet atawı:',
@@ -1683,7 +1680,6 @@ Bul bettiñ jäne baýlanıstı talqılaw betiniñ keleşektegi özgeristeri mı
 'unwatchthispage' => 'Baqılawdı toqtatw',
 'notanarticle' => 'Mağlumat beti emes',
 'notvisiblerev' => 'Tüzetw joýıldı',
-'watchnochange' => 'Körsetilgen merzimde eş baqılanğan dana öñdelgen joq.',
 'watchlist-details' => 'Talqılaw betterin sanamağanda $1 bet baqlanıladı.',
 'wlheader-enotif' => 'Eskertw xat jiberwi qosılğan.',
 'wlheader-showupdated' => "Soñğı kelip-ketwiñizden beri özgertilgen betterdi '''jwan''' qaripimen körset",
@@ -2781,7 +2777,6 @@ Tağı da [[Special:EditWatchlist|qalıpalğan öñdewişti paýdalana]] alasız
 'version-other' => 'Tağı basqalar',
 'version-mediahandlers' => 'Taspa öñdetkişteri',
 'version-hooks' => 'Jete tuzaqtarı',
-'version-extension-functions' => 'Keñeýtimder jeteleri',
 'version-parser-extensiontags' => 'Qurılımdıq taldatqış keñeýtimderiniñ belgilemeri',
 'version-parser-function-hooks' => 'Qurılımdıq taldatqış jeteleriniñ tuzaqtarı',
 'version-hook-name' => 'Tuzaq atawı',
index ecddae0..0922bf6 100644 (file)
@@ -12,6 +12,7 @@
  * @author Kaganer
  * @author Kiensvay
  * @author Lovekhmer
+ * @author Nemo bis
  * @author Sovichet
  * @author T-Rithy
  * @author Thearith
@@ -368,17 +369,29 @@ $messages = array(
 'oct' => 'តុលា',
 'nov' => 'វិច្ឆិកា',
 'dec' => 'ធ្នូ',
+'january-date' => '$1 មករា',
+'february-date' => '$1 កុម្ភៈ',
+'march-date' => '$1 មីនា',
+'april-date' => '$1 មេសា',
+'may-date' => '$1 ឧសភា',
+'june-date' => '$1 មិថុនា',
+'july-date' => '$1 កក្កដា',
+'august-date' => '$1 សីហា',
+'september-date' => '$1 កញ្ញា',
+'october-date' => '$1 តុលា',
+'november-date' => '$1 វិច្ឆិកា',
+'december-date' => '$1 ធ្នូ',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|ចំណាត់ថ្នាក់ក្រុម|ចំណាត់ថ្នាក់ក្រុម}}',
 'category_header' => 'ទំព័រដែលមាន​ក្នុងចំណាត់ថ្នាក់ក្រុម"$1"',
-'subcategories' => 'á\9e\85á\9f\86á\9e\8eá\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98á\9e\9aá\9e\84',
+'subcategories' => 'á\9e\80á\9e¼á\9e\93á\9e\85á\9f\86á\9e\8eá\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98',
 'category-media-header' => 'ឯកសារមេឌា​ដែលមានក្នុង​ចំណាត់ថ្នាក់ក្រុម "$1"',
 'category-empty' => "''ចំណាត់ថ្នាក់ក្រុមនេះ​មិនមានផ្ទុកអត្ថបទឬ​ឯកសារមេឌា​ណាមួយទេ។''",
 'hidden-categories' => '{{PLURAL:|ចំណាត់ថ្នាក់ក្រុមមួយដែលត្រូវបានលាក់|ចំណាត់ថ្នាក់ក្រុមចំនួន$1ដែលត្រូវបានលាក់}}',
 'hidden-category-category' => 'ចំណាត់ថ្នាក់ក្រុមដែលត្រូវបានលាក់',
-'category-subcat-count' => '{{PLURAL:$2|á\9e\85á\9f\86á\9e\8eá\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98á\9e\93á\9f\81á\9f\87á\9e\98á\9e¶á\9e\93á\9e\8fá\9f\82á\9e\85á\9f\86á\9e\8eá\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98á\9e\9aá\9e\84á\9e\98á\9e½á\9e\99á\9e\8aá\9e¼á\9e\85á\9e\81á\9e¶á\9e\84á\9e\80á\9f\92á\9e\9aá\9f\84á\9e\98á\9e\91á\9f\81á\9f\94\9e\85á\9f\86á\9e\8eá\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98á\9e\93á\9f\81á\9f\87á\9e\98á\9e¶á\9e\93{{PLURAL:$1|á\9e\85á\9f\86á\9e\8eá\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98á\9e\9aá\9e\84á\9e\98á\9e½á\9e\99\9e\85á\9f\86á\9e\8eá\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98á\9e\9aá\9e\84á\9e\85á\9f\86á\9e\93á\9e½á\9e\93$1}}á\9e\8aá\9e¼á\9e\85á\9e\81á\9e¶á\9e\84á\9e\80á\9f\92á\9e\9aá\9f\84á\9e\98 á\9e\80á\9f\92á\9e\93á\9e»á\9e\84á\9e\85á\9f\86á\9e\8eá\9f\84á\9e\98á\9e\85á\9f\86á\9e\8eá\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98á\9e\9aá\9e\84សរុបចំនួន$2។}}',
-'category-subcat-count-limited' => 'á\9e\85á\9f\86á\9e\8eá\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98á\9e\93á\9f\81á\9f\87á\9e\98á\9e¶á\9e\93 {{PLURAL:$1|á\9e\85á\9f\86á\9e\8eá\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98á\9e\9aá\9e\84á\9e\98á\9e½á\9e\99\9e\85á\9f\86á\9e\8eá\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98á\9e\9aá\9e\84ចំនួន$1}}ដូចខាងក្រោម។',
+'category-subcat-count' => '{{PLURAL:$2|á\9e\85á\9f\86á\9e\8eá\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98á\9e\93á\9f\81á\9f\87á\9e\98á\9e¶á\9e\93á\9e\8fá\9f\82á\9e\80á\9e¼á\9e\93á\9e\85á\9f\86á\9e\8eá\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98á\9e\98á\9e½á\9e\99á\9e\8aá\9e¼á\9e\85á\9e\81á\9e¶á\9e\84á\9e\80á\9f\92á\9e\9aá\9f\84á\9e\98á\9e\91á\9f\81á\9f\94\9e\85á\9f\86á\9e\8eá\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98á\9e\93á\9f\81á\9f\87á\9e\98á\9e¶á\9e\93{{PLURAL:$1|á\9e\80á\9e¼á\9e\93á\9e\85á\9f\86á\9e\8eá\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98á\9e\98á\9e½á\9e\99\9e\80á\9e¼á\9e\93á\9e\85á\9f\86á\9e\8eá\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98á\9e\85á\9f\86á\9e\93á\9e½á\9e\93$1}}á\9e\8aá\9e¼á\9e\85á\9e\81á\9e¶á\9e\84á\9e\80á\9f\92á\9e\9aá\9f\84á\9e\98 á\9e\80á\9f\92á\9e\93á\9e»á\9e\84á\9e\85á\9f\86á\9e\8eá\9f\84á\9e\98á\9e\80á\9e¼á\9e\93á\9e\85á\9f\86á\9e\8eá\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98សរុបចំនួន$2។}}',
+'category-subcat-count-limited' => 'á\9e\85á\9f\86á\9e\8eá\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98á\9e\93á\9f\81á\9f\87á\9e\98á\9e¶á\9e\93 {{PLURAL:$1|á\9e\80á\9e¼á\9e\93á\9e\85á\9f\86á\9e\8eá\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98á\9e\98á\9e½á\9e\99\9e\80á\9e¼á\9e\93á\9e\85á\9f\86á\9e\8eá\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98ចំនួន$1}}ដូចខាងក្រោម។',
 'category-article-count' => '{{PLURAL:$2|ចំណាត់ថ្នាក់ក្រុមនេះមានទំព័រមួយដូចខាងក្រោម។|{{PLURAL:$1|ទំព័រមួយ|ទំព័រចំនួន$1}}ក្នុងចំណោមទំព័រសរុប $2 ដូចខាងក្រោមស្ថិតក្នុងចំណាត់ថ្នាក់ក្រុមនេះ។}}',
 'category-article-count-limited' => '{{PLURAL:$1|ទំព័រ|ទំព័រចំនួន$1}}ខាងក្រោមស្ថិតនៅក្នុងចំណាត់ថ្នាក់ក្រុមនេះ។',
 'category-file-count' => '{{PLURAL:$2|ចំណាត់ថ្នាក់ក្រុមនេះមានឯកសារមួយដូចខាងក្រោម។|{{PLURAL:$1|ឯកសារមួយ|ឯកសារចំនួន$1}}ក្នុងចំណោមឯកសារសរុប $2 ដូចខាងក្រោមស្ថិតនៅក្នុងចំណាត់ថ្នាក់ក្រុមនេះ។}}',
@@ -427,7 +440,7 @@ $messages = array(
 'vector-view-viewsource' => 'មើល​កូដ',
 'actions' => 'សកម្មភាព​',
 'namespaces' => 'លំហឈ្មោះ',
-'variants' => 'á\9e¢á\9e\90á\9f\81á\9e\9a',
+'variants' => 'á\9e\9fá\9e\8eá\9f\92á\9e\8aá\9e¶á\9e\93',
 
 'errorpagetitle' => 'មានបញ្ហា',
 'returnto' => 'ត្រឡប់ទៅ $1 វិញ ។',
@@ -450,6 +463,7 @@ $messages = array(
 'create-this-page' => 'បង្កើតទំព័រនេះ',
 'delete' => 'លុបចោល',
 'deletethispage' => 'លុបទំព័រនេះចោល',
+'undeletethispage' => 'ឈប់លុបទំព័រនេះ',
 'undelete_short' => 'ឈប់លុប{{PLURAL:$1|កំណែប្រែមួយ|កំណែប្រែចំនួន$1}}វិញ',
 'viewdeleted_short' => 'មើល{{PLURAL:$1|កំណែប្រែមួយដែលត្រូវបានលុបចោល|កំណែប្រែចំនួន $1 ដែលត្រូវបានលុបចោល}}',
 'protect' => 'ការពារ',
@@ -503,7 +517,6 @@ $1',
 'disclaimers' => 'ការបដិសេធ',
 'disclaimerpage' => 'Project:ការបដិសេធ​ទូទៅ',
 'edithelp' => 'ជំនួយ​ក្នុងការកែប្រែ',
-'edithelppage' => 'Help:របៀបកែប្រែ',
 'helppage' => 'Help:មាតិកា',
 'mainpage' => 'ទំព័រដើម',
 'mainpage-description' => 'ទំព័រដើម',
@@ -536,7 +549,6 @@ $1',
 'newmessagesdifflinkplural' => '{{PLURAL:$1|បំលាស់ប្ដូរ|បំលាស់ប្ដូរ}}ចុងក្រោយ',
 'youhavenewmessagesmulti' => 'អ្នកមានសារថ្មីៗនៅ $1',
 'editsection' => 'កែប្រែ',
-'editsection-brackets' => '[$1]',
 'editold' => 'កែប្រែ',
 'viewsourceold' => 'មើលកូដ',
 'editlink' => 'កែប្រែ',
@@ -553,10 +565,10 @@ $1',
 'feedlinks' => 'Feed​៖',
 'feed-invalid' => 'ប្រភេទfeedដែលគ្មានសុពលភាព។',
 'feed-unavailable' => 'បម្រែ​បម្រួល ​Syndication feeds មិន​ទាន់​មាន​នៅ​ឡើយ​ទេ',
-'site-rss-feed' => 'បម្រែបម្រួល RSS Feed នៃ $1',
-'site-atom-feed' => 'បម្រែបម្រួល Atom Feed នៃ $1',
-'page-rss-feed' => 'បម្រែបម្រួល RSS Feed នៃ "$1"',
-'page-atom-feed' => 'បម្រែបម្រួល Atom Feed នៃ "$1"',
+'site-rss-feed' => 'RSS Feed នៃ $1',
+'site-atom-feed' => 'Atom Feed នៃ $1',
+'page-rss-feed' => 'RSS Feed នៃ "$1"',
+'page-atom-feed' => 'Atom Feed នៃ "$1"',
 'feed-atom' => 'Atom',
 'feed-rss' => 'RSS',
 'red-link-title' => '$1 (ទំព័រនេះមិនទាន់​មាននៅឡើយទេ)',
@@ -799,7 +811,7 @@ $2',
 'cannotchangeemail' => 'អាសយដ្ឋានអ៊ីមែលរបស់គណនីមិនអាចប្ដូរបានទេនៅលើវិគីនេះ។',
 'emaildisabled' => 'វិបសៃថ៍នេះមិនអាចផ្ញើអ៊ីមែលបានទេ។',
 'accountcreated' => 'គណនីរបស់លោកអ្នកត្រូវបានបង្កើតហើយ',
-'accountcreatedtext' => 'á\9e\82á\9e\8eá\9e\93á\9e¸á\9e\88á\9f\92á\9e\98á\9f\84á\9f\87 $1 ត្រូវបានបង្កើតហើយ។',
+'accountcreatedtext' => 'á\9e\82á\9e\8eá\9e\93á\9e¸á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8b [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|á\9e\96á\9e·á\9e\97á\9e¶á\9e\80á\9f\92á\9e\9fá\9e¶]]) ត្រូវបានបង្កើតហើយ។',
 'createaccount-title' => 'ការបង្កើតគណនីសម្រាប់{{SITENAME}}',
 'createaccount-text' => 'មានអ្នកផ្សេងបានបង្កើតគណនីជាឈ្មោះ "$2" លើ{{SITENAME}}($4) ព្រមទាំងពាក្យសំងាត់ "$3" ដោយប្រើអាសយដ្ឋានអ៊ីមែលរបស់អ្នកហើយ។
 
@@ -840,11 +852,10 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'កំណត់​ពាក្យសម្ងាត់​សាឡើងវិញ',
-'passwordreset-text' => 'បំពេញសំណុំបែបបទនេះដើម្បីស្ដារពាក្យសម្ងាត់របស់អ្នក។',
+'passwordreset-text-one' => 'បំពេញសំណុំបែបបទនេះដើម្បីស្ដារពាក្យសម្ងាត់របស់អ្នក។',
 'passwordreset-legend' => 'កំណត់​ពាក្យសម្ងាត់​សាឡើងវិញ',
 'passwordreset-disabled' => 'មុខងារប្ដូរទៅពាក្យសម្ងាត់ដើមត្រូវបានបិទមិនអោយប្រើនៅលើវិគីនេះ។',
 'passwordreset-emaildisabled' => 'មុខងារអ៊ីមែលត្រូវបានបិទមិនអោយប្រើនៅលើវិគីនេះ។',
-'passwordreset-pretext' => '{{PLURAL:$1||វាយបញ្ចូលផ្នែកមួយនៃទិន្នន័យខាងក្រោម}}',
 'passwordreset-username' => 'អត្តនាម៖',
 'passwordreset-domain' => 'ដូម៉ែន៖',
 'passwordreset-capture' => 'មើលអ៊ីមែលលទ្ធផល?',
@@ -1083,7 +1094,7 @@ $2
 'nocreate-loggedin' => 'អ្នកគ្មានការអនុញ្ញាត​ឱ្យបង្កើតទំព័រថ្មី​ទេ។',
 'sectioneditnotsupported-title' => 'មិនអនុញ្ញាតអោយធ្វើការកែប្រែដោយផ្នែកទេ',
 'sectioneditnotsupported-text' => 'មិនអនុញ្ញាតអោយធ្វើការកែប្រែដោយផ្នែកនៅក្នុងទំព័រនេះទេ។',
-'permissionserrors' => 'á\9e\94á\9e\89á\9f\92á\9e á\9e¶á\9e\85á\9f\92á\9e\94á\9e¶á\9e\94á\9f\8bអនុញ្ញាត',
+'permissionserrors' => 'á\9e\94á\9e\89á\9f\92á\9e á\9e¶á\9e\80á\9e¶á\9e\9aអនុញ្ញាត',
 'permissionserrorstext' => 'អ្នកគ្មានការអនុញ្ញាតឱ្យធ្វើបែបនោះទេ ដោយសារ{{PLURAL:$1|មូលហេតុ|មូលហេតុ}}ដូចខាងក្រោម៖',
 'permissionserrorstext-withaction' => 'អ្នកគ្មានការអនុញ្ញាតឱ្យ$2ទេ ដោយសារ{{PLURAL:$1|មូលហេតុ|មូលហេតុ}}ដូចខាងក្រោម៖',
 'recreate-moveddeleted-warn' => "'''ប្រយ័ត្ន៖ អ្នកកំពុង​បង្កើតឡើងវិញ​នូវទំព័រដែលទើបតែ​បានលុបចេញ។'''
@@ -1098,12 +1109,13 @@ $2
 ទំព័រនេះហាក់ដូចជាត្រូវបានលុបចោលហើយ។',
 'edit-conflict' => 'កែប្រែ​ភាពឆ្គង​។',
 'edit-no-change' => 'ការកែប្រែរបស់អ្នកត្រូវបានមិនទុកជាការទេ ព្រោះគ្មានការផ្លាស់ប្ដូរណាមួយត្រូវបានធ្វើនៅលើអត្ថបទនេះទេ។',
+'postedit-confirmation' => 'កំណែប្រែរបស់អ្នកត្រូវបានរក្សាទុកហើយ។',
 'edit-already-exists' => 'មិនអាចបង្កើតទំព័រថ្មីមួយទេ។
 
 ទំព័រនេះមានរួចហើយ។',
 'defaultmessagetext' => 'អត្ថបទសារតាមលំនាំដើម',
 'editwarning-warning' => 'ចាកចេញពីទំព័រនេះ នឹងធ្វើឲ្យអ្នកបាត់បង់កំណែប្រែដែលអ្នកបានធ្វើ។
\9e\94á\9f\92á\9e\9aá\9e\9fá\9e·á\9e\93á\9e\94á\9e¾á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9e¶á\9e\93â\80\8bá\9e¡á\9e»á\9e\80á\9e¢á\9f\8aá\9e¸á\9e\93á\9e\9aá\9e½á\9e\85á\9e á\9e¾á\9e\99 á\9e¢á\9f\92á\9e\93á\9e\80á\9e¢á\9e¶á\9e\85â\80\8bá\9e\94á\9e·á\9e\91â\80\8bá\9e\94á\9e\98á\9f\92á\9e\9aá\9e¶á\9e\98â\80\8bá\9e\93á\9f\81á\9f\87â\80\8bá\9e\93á\9f\85â\80\8bá\9e\80á\9f\92á\9e\93á\9e»á\9e\84á\9e\95á\9f\92á\9e\93á\9f\82á\9e\80â\80\8b "{{int:prefs-editing}}" á\9e\93á\9f\83â\80\8bá\9e\85á\9f\86á\9e\8eá\9e¼á\9e\9bâ\80\8bá\9e\85á\9e·á\9e\8fá\9f\92á\9e\8fâ\80\8bá\9e\9aá\9e\94á\9e\9fá\9f\8bâ\80\8bá\9e¢á\9f\92á\9e\93á\9e\80â\80\8bá\9f\94',
\9e\94á\9f\92á\9e\9aá\9e\9fá\9e·á\9e\93á\9e\94á\9e¾á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9e¶á\9e\93â\80\8bá\9e\80á\9e\8fá\9f\8bá\9e\88á\9f\92á\9e\98á\9f\84á\9f\87á\9e\85á\9e¼á\9e\9bá\9e\9aá\9e½á\9e\85á\9e á\9e¾á\9e\99 á\9e¢á\9f\92á\9e\93á\9e\80á\9e¢á\9e¶á\9e\85â\80\8bá\9e\94á\9e·á\9e\91â\80\8bá\9e\94á\9e\98á\9f\92á\9e\9aá\9e¶á\9e\98â\80\8bá\9e\93á\9f\81á\9f\87â\80\8bá\9e\93á\9f\85â\80\8bá\9e\80á\9f\92á\9e\93á\9e»á\9e\84á\9e\95á\9f\92á\9e\93á\9f\82á\9e\80â\80\8b "á\9e\80á\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82" á\9e\93á\9f\83â\80\8bá\9e\85á\9f\86á\9e\8eá\9e\84á\9f\8bá\9e\85á\9f\86á\9e\8eá\9e¼á\9e\9bâ\80\8bá\9e\85á\9e·á\9e\8fá\9f\92á\9e\8fâ\80\8bá\9e\9aá\9e\94á\9e\9fá\9f\8bâ\80\8bá\9e¢á\9f\92á\9e\93á\9e\80â\80\8bá\9f\94',
 
 # Content models
 'content-model-wikitext' => 'អត្ថបទវិគី',
@@ -1147,15 +1159,15 @@ $2
 'currentrevisionlink' => 'កំណែបច្ចុប្បន្ន',
 'cur' => 'បច្ចុប្បន្ន',
 'next' => 'បន្ទាប់',
-'last' => 'á\9e\85á\9e»á\9e\84á\9e\80á\9f\92á\9e\9aá\9f\84á\9e\99',
+'last' => 'á\9e\98á\9e»á\9e\93',
 'page_first' => 'ដំបូង',
 'page_last' => 'ចុងក្រោយ',
 'histlegend' => "ជម្រើស៖ សូមគូសក្នុងកូនប្រអប់ពីមុខកំណែដែលអ្នកចង់ប្រៀបធៀប រួចចុចច្នុច ENTER ឬប៊ូតុងនៅខាងក្រោម។<br />
 '''ពាក្យតំណាង'''៖(បច្ចុប្បន្ន) = ភាពខុសគ្នាជាមួយនឹងកំណែបច្ចុប្បន្ន, (ចុងក្រោយ) = ភាពខុសគ្នារវាងកំណែប្រែពីមុន, តិច = កំណែប្រែតិចតួច",
 'history-fieldset-title' => 'ស្វែងរកក្នុងប្រវត្តិ',
 'history-show-deleted' => 'តែទំព័រលុបចោលប៉ុណ្ណោះ',
-'histfirst' => 'á\9e\8aá\9f\86á\9e\94á\9e¼ងគេ',
-'histlast' => 'á\9e\80á\9f\92á\9e\9aá\9f\84á\9e\99គេ',
+'histfirst' => 'á\9e\85á\9e¶á\9e\9fá\9f\8bá\9e\87á\9eងគេ',
+'histlast' => 'á\9e\90á\9f\92á\9e\98á\9e¸á\9e\87á\9e¶á\9e\84គេ',
 'historysize' => '({{PLURAL:$1|1បៃ|$1បៃ}})',
 'historyempty' => '(ទទេ)',
 
@@ -1327,7 +1339,6 @@ $1",
 'searchmenu-legend' => 'ជម្រើសនានាក្នុងការស្វែងរក',
 'searchmenu-exists' => "* ទំព័រ '''[[$1]]'''",
 'searchmenu-new' => "'''បង្កើតទំព័រ \"[[:\$1]]\" នៅ​លើ​វិគី​នេះ!'''",
-'searchhelp-url' => 'Help:មាតិកា',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|រុក​រក​ក្នុង​ទំព័រ​នានា​ជាមួយ​បុព្វបទ​នេះ​]]',
 'searchprofile-articles' => 'ទំព័រ​មាតិកា',
 'searchprofile-project' => 'ជំនួយ និង​ទំព័រ​គម្រោង',
@@ -1340,7 +1351,7 @@ $1",
 'searchprofile-everything-tooltip' => 'ស្វែងរកក្នុងខ្លឹមសារទាំងអស់(រួមបញ្ចូលទាំងទំព័រពិភាក្សា)',
 'searchprofile-advanced-tooltip' => 'ស្វែងរកក្នុងប្រភេទកំណត់ដោយអ្នកប្រើប្រាស់',
 'search-result-size' => '$1({{PLURAL:$2|១ពាក្យ|$2ពាក្យ}})',
-'search-result-category-size' => '{{PLURAL:$1|á\9e\9fá\9e\98á\9e¶á\9e\87á\9e·á\9e\80á\9e\98á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8b\9e\9fá\9e\98á\9e¶á\9e\87á\9e·á\9e\80$1á\9e\93á\9e¶á\9e\80á\9f\8b}} ({{PLURAL:$2|á\9e\85á\9f\86á\9e\8eá\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98á\9e\9aá\9e\84á\9f¡|$2 á\9e\85á\9f\86á\9e\8eá\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98á\9e\9aá\9e\84}}, {{PLURAL:$3|1 ឯកសារ|$3 ឯកសារ}})',
+'search-result-category-size' => '{{PLURAL:$1|á\9e\9fá\9e\98á\9e¶á\9e\87á\9e·á\9e\80á\9e\98á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8b\9e\9fá\9e\98á\9e¶á\9e\87á\9e·á\9e\80$1á\9e\93á\9e¶á\9e\80á\9f\8b}} ({{PLURAL:$2|á\9e\80á\9e¼á\9e\93á\9e\85á\9f\86á\9e\8eá\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98á\9f¡|$2 á\9e\80á\9e¼á\9e\93á\9e\85á\9f\86á\9e\8eá\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\80á\9f\92á\9e\9aá\9e»á\9e\98}}, {{PLURAL:$3|1 ឯកសារ|$3 ឯកសារ}})',
 'search-result-score' => 'កម្រិតទាក់ទិន៖ $1%',
 'search-redirect' => '(បញ្ជូនបន្ត $1)',
 'search-section' => '(ផ្នែក $1)',
@@ -1393,6 +1404,7 @@ $1",
 'prefs-watchlist-days-max' => 'អតិបរមា $1 {{PLURAL:$1|ថ្ងៃ|ថ្ងៃ}}',
 'prefs-watchlist-edits' => 'ចំនួនអតិបរមានៃបំលាស់ប្តូរត្រូវបង្ហាញក្នុងបញ្ជីតាមដានដែលបានពង្រីក៖',
 'prefs-watchlist-edits-max' => 'ចំនួនអតិបរមា៖ ១០០០',
+'prefs-watchlist-token' => 'កូនសោរបញ្ជីតាមដាន៖',
 'prefs-misc' => 'ផ្សេងៗ',
 'prefs-resetpass' => 'ប្តូរពាក្យសម្ងាត់',
 'prefs-changeemail' => 'ផ្លាស់ប្ដូរអ៊ីមែល',
@@ -1404,7 +1416,6 @@ $1",
 'resetprefs' => 'លុបចោលបន្លាស់ប្ដូរមិនបានរក្សាទុក',
 'restoreprefs' => 'ស្ដារ​ការកំណត់​ទាំងអស់​ទៅ​លំនាំដើម',
 'prefs-editing' => 'កំណែប្រែ',
-'prefs-edit-boxsize' => 'ទំហំរបស់ផ្ទាំងកែប្រែទំព័រ។',
 'rows' => 'ជួរដេក៖',
 'columns' => 'ជួរឈរ៖',
 'searchresultshead' => 'ស្វែងរក',
@@ -1445,7 +1456,6 @@ $1",
 'prefs-reset-intro' => 'អ្នក​អាច​ប្រើ​ទំព័រ​នេះ​ដើម្បី​កំណត់​ឡើង​វិញ​នូវ​ចំណូល​ចិត្ត​របស់​អ្នក​ដូច​លំនាំ​ដើម​របស់​តំបន់​វិញ​។
 សកម្មភាព​នេះ​មិន​អាច​ធ្វើ​ឡើង​វិញ​បាន​ទេ​។',
 'prefs-emailconfirm-label' => 'បញ្ជាក់ទទួលស្គាល់អ៊ីមែល៖',
-'prefs-textboxsize' => 'ទំហំរបស់ផ្ទាំងកែប្រែទំព័រ',
 'youremail' => 'អ៊ីមែល៖',
 'username' => '{{GENDER:$1|អត្តនាម}}៖',
 'uid' => 'អត្តលេខ{{GENDER:$1|អ្នកប្រើប្រាស់}}៖',
@@ -1475,7 +1485,9 @@ $1",
 'prefs-signature' => 'ហត្ថលេខា​',
 'prefs-dateformat' => 'ទំរង់កាលបរិច្ឆេទ',
 'prefs-timeoffset' => 'កែប្រែម៉ោង',
-'prefs-advancedediting' => 'ជំរើសថ្នាក់ខ្ពស់',
+'prefs-advancedediting' => 'ទូទៅ​',
+'prefs-editor' => 'អ្នកកែប្រែ',
+'prefs-preview' => 'មើលជាមុន',
 'prefs-advancedrc' => 'ជំរើសថ្នាក់ខ្ពស់',
 'prefs-advancedrendering' => 'ជំរើសថ្នាក់ខ្ពស់',
 'prefs-advancedsearchoptions' => 'ជំរើសថ្នាក់ខ្ពស់',
@@ -1517,7 +1529,7 @@ $1",
 'group-autoconfirmed' => 'អ្នកប្រើប្រាស់ទទួលស្គាល់ដោយស្វ័យប្រវត្តិ',
 'group-bot' => 'រូបយន្ត',
 'group-sysop' => 'អភិបាល',
-'group-bureaucrat' => 'á\9e¢á\9f\92á\9e\93á\9e\80á\9e\80á\9e¶á\9e\9aá\9e·á\9e\99á\9e¶á\9e\9bá\9f\90á\9e\99',
+'group-bureaucrat' => 'á\9e\80á\9e¶á\9e\9aá\9e·á\9e\99á\9e¶á\9e\9bá\9f\81á\9e\81á\9e¶á\9e\93á\9e»á\9e\80á\9e¶á\9e\9a',
 'group-suppress' => 'អធិការ',
 'group-all' => '(ទាំងអស់)',
 
@@ -1525,7 +1537,7 @@ $1",
 'group-autoconfirmed-member' => '{{GENDER:$1|អ្នកប្រើប្រាស់ទទួលស្គាល់ដោយស្វ័យប្រវត្តិ}}',
 'group-bot-member' => '{{GENDER:$1|រូបយន្ត}}',
 'group-sysop-member' => '{{GENDER:$1|អភិបាល}}',
-'group-bureaucrat-member' => '{{GENDER:$1|á\9e¢á\9f\92á\9e\93á\9e\80á\9e\80á\9e¶á\9e\9aá\9e·á\9e\99á\9e¶á\9e\9bá\9f\90á\9e\99}}',
+'group-bureaucrat-member' => '{{GENDER:$1|á\9e\80á\9e¶á\9e\9aá\9e·á\9e\99á\9e¶á\9e\9bá\9f\81á\9e\81á\9e¶á\9e\93á\9e»á\9e\80á\9e¶á\9e\9a}}',
 'group-suppress-member' => '{{GENDER:$1|អធិការ}}',
 
 'grouppage-user' => '{{ns:project}}:អ្នកប្រើប្រាស់',
@@ -1573,7 +1585,7 @@ $1",
 'right-proxyunbannable' => 'ពង្វាងការរាំងខ្ទប់ស្វ័យប្រវត្តិរបស់ប្រុកស៊ី',
 'right-unblockself' => 'ឈប់ហាមឃាត់ពួកគេ',
 'right-protect' => 'ប្ដូរកម្រិតការពាររួចកែប្រែទំព័រដែលបានការពារ',
-'right-editprotected' => 'កែប្រែទំព័រដែលបានការពារ (ដោយមិនរំលាយការការពារ)',
+'right-editprotected' => 'កែប្រែទំព័រដែលបានការពារដោយ "{{int:protect-level-sysop}}"',
 'right-editinterface' => 'កែប្រែអន្តរមុខអ្នកប្រើប្រាស់',
 'right-editusercssjs' => 'កែប្រែឯកសារ CSS និង JS របស់អ្នកប្រើប្រាស់ផ្សេងទៀត',
 'right-editusercss' => 'កែប្រែឯកសារ CSS របស់អ្នកប្រើប្រាស់ផ្សេងទៀត',
@@ -1638,6 +1650,10 @@ $1",
 'action-userrights-interwiki' => 'កែប្រែសិទ្ធិនានារបស់អ្នកប្រើប្រាស់នៅលើវិគីដទៃ',
 'action-siteadmin' => 'ចាក់សោឬដោះសោមូលដ្ឋានទិន្នន័យ',
 'action-sendemail' => 'ផ្ញើអ៊ីមែល',
+'action-editmywatchlist' => 'កែប្រែបញ្ជីតាមដានរបស់អ្នក',
+'action-viewmywatchlist' => 'មើលបញ្ជីតាមដានរបស់អ្នក',
+'action-viewmyprivateinfo' => 'មើលព័ត៌មានឯកជនរបស់អ្នក',
+'action-editmyprivateinfo' => 'កែប្រែព័ត៌មានឯកជនរបស់អ្នក',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|បន្លាស់ប្ដូរ|បន្លាស់ប្ដូរ}}',
@@ -1680,8 +1696,7 @@ $1",
 'recentchangeslinked' => 'បន្លាស់ប្ដូរពាក់ព័ន្ធ',
 'recentchangeslinked-feed' => 'បន្លាស់ប្ដូរពាក់ព័ន្ធ',
 'recentchangeslinked-toolbox' => 'បន្លាស់ប្ដូរពាក់ព័ន្ធ',
-'recentchangeslinked-title' => 'បន្លាស់ប្ដូរ​ទាក់ទងនឹង "$1"',
-'recentchangeslinked-noresult' => 'គ្មានបន្លាស់ប្ដូរ​លើទំព័រ​ដែលត្រូវបានតភ្ជាប់ ក្នុងថេរវេលា​ដែលត្រូវបានផ្តល់ឱ្យ ។',
+'recentchangeslinked-title' => 'បន្លាស់ប្ដូរ​ពាក់ព័ន្ធនឹង "$1"',
 'recentchangeslinked-summary' => "នេះជាបញ្ជីបន្លាស់ប្ដូរនានា ដែលត្រូវបានធ្វើឡើងនៅលើទំព័រទាំងឡាយ ដែលមានតំណភ្ជាប់ពីទំព័រកំណត់មួយ(ឬ មានតំណភ្ជាប់ទៅទំព័រ ដែលមានក្នុងចំណាត់ថ្នាក់ក្រុមណាមួយ) នាពេលថ្មីៗនេះ ។ ទំព័រ​នានាក្នុង[[Special:Watchlist|បញ្ជីតាមដាន​របស់អ្នក]]ត្រូវបានសរសេរជា '''អក្សរដិត''' ។",
 'recentchangeslinked-page' => 'ឈ្មោះទំព័រ៖',
 'recentchangeslinked-to' => 'បង្ហាញ​បន្លាស់ប្ដូររបស់​ទំព័រដែល​មានតំណភ្ជាប់នឹង​ទំព័រ​ដែល​បាន​ផ្ដល់​ឱ្យ​​វិញ',
@@ -1692,7 +1707,7 @@ $1",
 'reuploaddesc' => 'ឈប់ផ្ទុកឡើងរួចត្រឡប់ទៅបែបបទផ្ទុកឡើងវិញ។',
 'upload-tryagain' => 'ដាក់ស្នើការពណ៌នារបស់ឯកសារដែលបានកែរួច',
 'uploadnologin' => 'មិនទាន់កត់ឈ្មោះចូលទេ',
-'uploadnologintext' => 'អ្នកត្រូវតែ [[Special:UserLogin|កត់ឈ្មោះចូល]] ដើម្បីមានសិទ្ធិផ្ទុកឯកសារទាំងឡាយឡើង។',
+'uploadnologintext' => 'អ្នកត្រូវតែ $1 ដើម្បីផ្ទុកឯកសារឡើង។',
 'upload_directory_missing' => 'ថតសំរាប់ទុកឯកសារផ្ទុកឡើង ($1) បាត់ ហើយប្រព័ន្ធបំរើការមិនអាចបង្កើតវាបានទេ។',
 'upload_directory_read_only' => 'ប្រព័ន្ធបម្រើការមិនអាចសរសេរចូលទៅក្នុងថតសំរាប់ទុកឯកសារផ្ទុកឡើង ($1) ទេ។',
 'uploaderror' => 'បញ្ហាក្នុងការផ្ទុកឡើង',
@@ -2287,10 +2302,9 @@ $1',
 'unwatchthispage' => 'ឈប់តាមដាន',
 'notanarticle' => 'មិនមែនជាទំព័រមាតិកា',
 'notvisiblerev' => 'ការកែតម្រូវត្រូវបានលុបចោល',
-'watchnochange' => 'មិនមានរបស់ដែលអ្នកកំពុងតាមដានណាមួយត្រូវបានគេកែប្រែក្នុងកំលុងពេលដូលដែលបានបង្ហាញទេ។',
 'watchlist-details' => '{{PLURAL:$1|$1 page|ទំព័រ $1}}នៅក្នុងបញ្ជីតាមដានរបស់អ្នក ដោយមិនរាប់បញ្ចូលទំព័រពិភាក្សា។',
-'wlheader-enotif' => 'á\9e¢á\9e\93á\9e»á\9e\89á\9f\92á\9e\89á\9e¶á\9e\8fá\9e±á\9f\92á\9e\99á\9e\98á\9e¶á\9e\93á\9e\80á\9e¶á\9e\9aá\9e\95á\9f\92á\9e\8aá\9e\9bá\9f\8bá\9e\8aá\9f\86á\9e\8eá\9e¹á\9e\84á\9e\8fá\9e¶á\9e\98á\9e\9aá\9e\99á\9f\88á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9b',
-'wlheader-showupdated' => "ទំព័រដែលត្រូវបានផ្លាស់ប្តូរតាំងពីពេលចូលមើលចុងក្រោយរបស់អ្នក ត្រូវបានបង្ហាញជា '''អក្សរដិត'''",
+'wlheader-enotif' => 'á\9e\94á\9e¾á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\80á\9e¶á\9e\9aá\9e\95á\9f\92á\9e\8aá\9e\9bá\9f\8bá\9e\8aá\9f\86á\9e\8eá\9e¹á\9e\84á\9e\8fá\9e¶á\9e\98á\9e\9aá\9e\99á\9f\88á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9bá\9f\94',
+'wlheader-showupdated' => "ទំព័រដែលត្រូវបានផ្លាស់ប្តូរតាំងពីពេលចូលមើលចុងក្រោយរបស់អ្នក ត្រូវបានបង្ហាញជា '''អក្សរដិត'''",
 'watchmethod-recent' => 'ឆែកមើលកំណែប្រែថ្មីៗចំពោះទំព័រត្រូវបានតាមដាន',
 'watchmethod-list' => 'ឆែកមើលទំព័រត្រូវបានតាមដានចំពោះកំណែប្រែថ្មីៗ',
 'watchlistcontains' => 'បញ្ជីតាមដាន របស់អ្នក មាន $1 {{PLURAL:$1|ទំព័រ|ទំព័រ}}។',
@@ -2307,15 +2321,22 @@ $1',
 'enotif_mailer' => 'ភ្នាក់ងារផ្ញើអ៊ីមែលផ្ដល់ដំណឹងរបស់ {{SITENAME}}',
 'enotif_reset' => 'កត់សម្គាល់រាល់គ្រប់ទំព័រដែលបានចូលមើល',
 'enotif_impersonal_salutation' => 'អ្នកប្រើប្រាស់ {{SITENAME}}',
+'enotif_subject_deleted' => 'ទំព័រ {{SITENAME}} មានចំណងជើងថា $1 ត្រូវបាន {{GENDER:$2|លុបចោល}} ដោយ $2',
+'enotif_subject_created' => 'ទំព័រ {{SITENAME}} មានចំណងជើងថា $1 ត្រូវបាន {{GENDER:$2|បង្កើត}} ដោយ $2',
+'enotif_subject_moved' => 'ទំព័រ {{SITENAME}} មានចំណងជើងថា $1 ត្រូវបាន {{GENDER:$2|ប្ដូរទីតាំង}} ដោយ $2',
+'enotif_subject_restored' => 'ទំព័រ {{SITENAME}} មានចំណងជើងថា $1 ត្រូវបាន {{GENDER:$2|ស្ដារឡើងវិញ}} ដោយ $2',
+'enotif_subject_changed' => 'ទំព័រ {{SITENAME}} មានចំណងជើងថា $1 ត្រូវបាន {{GENDER:$2|ផ្លាស់ប្ដូរ}} ដោយ $2',
+'enotif_body_intro_deleted' => 'ទំព័រ {{SITENAME}} មានចំណងជើងថា $1 ត្រូវបាន {{GENDER:$2|លុបចោល}} នៅ $PAGEEDITDATE ដោយ $2។ សូមអាន $3។',
+'enotif_body_intro_created' => 'ទំព័រ {{SITENAME}} មានចំណងជើងថា $1 ត្រូវបាន {{GENDER:$2|បង្កើត}} នៅ $PAGEEDITDATE ដោយ $2។ សូមអាន $3 សម្រាប់កំណែបច្ចុប្បន្ន។',
+'enotif_body_intro_moved' => 'ទំព័រ {{SITENAME}} មានចំណងជើងថា $1 ត្រូវបាន {{GENDER:$2|ប្ដូរទីតាំង}} នៅ $PAGEEDITDATE ដោយ $2។ សូមអាន $3 សម្រាប់កំណែបច្ចុប្បន្ន។',
+'enotif_body_intro_restored' => 'ទំព័រ {{SITENAME}} មានចំណងជើងថា $1 ត្រូវបាន {{GENDER:$2|ស្ដារឡើងវិញ}} នៅ $PAGEEDITDATE ដោយ $2។ សូមអាន $3 សម្រាប់កំណែបច្ចុប្បន្ន។',
+'enotif_body_intro_changed' => 'ទំព័រ {{SITENAME}} មានចំណងជើងថា $1 ត្រូវបាន {{GENDER:$2|ផ្លាស់ប្ដូរ}} នៅ $PAGEEDITDATE ដោយ $2។ សូមអាន $3 សម្រាប់កំណែបច្ចុប្បន្ន។',
 'enotif_lastvisited' => 'ពិនិត្យ $1 សម្រាប់គ្រប់បន្លាស់ប្តូរតាំងពីពេលចូលមើលចុងក្រោយ។',
 'enotif_lastdiff' => 'សូមពិនិត្យ $1 ដើម្បីមើលបំលាស់ប្តូរនេះ។',
 'enotif_anon_editor' => 'អ្នកប្រើប្រាស់អនាមិក $1',
 'enotif_body' => 'ជូនចំពោះ $WATCHINGUSERNAME ជាទីរាប់អាន,
 
-
-ទំព័រ $PAGETITLE នៅលើ {{SITENAME}} ត្រូវបាន $CHANGEDORCREATED ថ្ងៃ $PAGEEDITDATE ដោយ $PAGEEDITOR។ សូមមើល $PAGETITLE_URL សម្រាប់​កំណែបច្ចុប្បន្ន។
-
-$NEWPAGE
+$PAGEINTRO $NEWPAGE
 
 ចំណារពន្យល់របស់អ្នកកែប្រែ៖ $PAGESUMMARY $PAGEMINOREDIT
 
@@ -2323,10 +2344,7 @@ $NEWPAGE
 អ៊ីមែល៖ $PAGEEDITOR_EMAIL
 វិគី៖ $PAGEEDITOR_WIKI
 
-នឹងមិនមាន​ការផ្ដល់ដំណឹង​ជាលាយលក្សណ៍អក្សរ​ផ្សេងទៀតទេ លើកលែងតែ​អ្នកចូលមើល​ទំព័រនេះរួចសិន។
-
-អ្នកក៏អាចធ្វើ​ឱ្យ​ការផ្តល់ដំណឹង​ត្រឡប់ទៅលើកទីសូន្យ​ចំពោះគ្រប់ទំព័រ​នៃ​បញ្ជីតាមដាន​របស់អ្នក។
-
+នឹងមិនមាន​ការផ្ដល់ដំណឹង​ជាលាយលក្សណ៍អក្សរ​ផ្សេងទៀតពេលមានសកម្មភាពលើសពីនេះទេ លើកលែងតែ​អ្នកចូលមើល​ទំព័រនេះរួចសិន។ អ្នកក៏អាចកំណត់ឡើងវិញអំពីការផ្ដល់ដំណឹងសម្រាប់​ទំព័រដែលអ្នកកំពុងតាមដានផងដែរ។
 
 ពីប្រព័ន្ធផ្តល់ដំណឹង {{SITENAME}}
 
@@ -2386,9 +2404,11 @@ $UNWATCHURL
 សូមបន្តសកម្មភាពនេះដោយប្រុងប្រយ័ត្ន។',
 
 # Rollback
-'rollback' => 'ត្រឡប់កំណែប្រែ',
-'rollback_short' => 'ត្រឡប់',
-'rollbacklink' => 'ត្រឡប់',
+'rollback' => 'មូលត្រឡប់កំណែប្រែ',
+'rollback_short' => 'មូលត្រឡប់',
+'rollbacklink' => 'មូលត្រឡប់',
+'rollbacklinkcount' => 'មូលត្រឡប់ $1 {{PLURAL:$1|កំណែប្រែ|កំណែប្រែ}}',
+'rollbacklinkcount-morethan' => 'មូលត្រឡប់ច្រើនជាង $1 {{PLURAL:$1|កំណែប្រែ|កំណែប្រែ}}',
 'rollbackfailed' => 'ការ​ត្រឡប់​ក្រោយមិនបានសំរេច',
 'cantrollback' => 'មិនអាចត្រឡប់កំណែប្រែ។ អ្នករួមចំណែកចុងក្រោយទើបជាអ្នកនិពន្ធ​របស់ទំព័រនេះ។',
 'alreadyrolled' => 'មិនអាចធ្វើការត្រឡប់ [[:$1]] ទៅកាន់កំណែចុងក្រោយរបស់អ្នកប្រើឈ្មោះ [[User:$2|$2]] ([[User talk:$2|ការពិភាក្សា]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) ទេ។
@@ -2538,7 +2558,7 @@ $1',
 'mycontris' => 'ការរួមចំណែក',
 'contribsub2' => 'សម្រាប់ $1 ($2)',
 'nocontribs' => 'គ្មានការផ្លាស់ប្តូរត្រូវបានឃើញដូចនឹងលក្ខណៈវិនិច្ឆ័យទាំងនេះ។',
-'uctop' => '(á\9e\91á\9e¶á\9e\93á\9f\8bá\9e\9fá\9e\98á\9f\90á\9e\99)',
+'uctop' => '(á\9e\94á\9e\85á\9f\92á\9e\85á\9e»á\9e\94á\9f\92á\9e\94á\9e\93á\9f\92á\9e\93)',
 'month' => 'ខែ៖',
 'year' => 'ឆ្នាំ៖',
 
@@ -3009,6 +3029,10 @@ $1',
 'pageinfo-protect-cascading' => 'ការការពារត្រូវបានដាក់ជាថ្នាក់ពីទីនេះទៅ',
 'pageinfo-protect-cascading-yes' => 'បាទ/ចាស',
 'pageinfo-protect-cascading-from' => 'ការការពារត្រូវបានដាក់ជាថ្នាក់ពី',
+'pageinfo-category-info' => 'ព័ត៌មានចំណាត់ថ្នាក់ក្រុម',
+'pageinfo-category-pages' => 'ចំនួនទំព័រ',
+'pageinfo-category-subcats' => 'ចំនួនកូនចំណាត់ថ្នាក់ក្រុម',
+'pageinfo-category-files' => 'ចំនួនឯកសារ',
 
 # Skin names
 'skinname-cologneblue' => 'ទឹកអប់ខៀវ',
@@ -3573,7 +3597,6 @@ $5
 'version-skins' => 'សំបក',
 'version-other' => 'ផ្សេង',
 'version-mediahandlers' => 'កម្មវិធី​បើក​មេឌា​ (Media handlers)',
-'version-extension-functions' => 'មុខងារផ្នែកបន្ថែម',
 'version-hook-name' => 'ឈ្មោះ​ Hook',
 'version-hook-subscribedby' => 'បានជាវ ជាប្រចាំ ដោយ',
 'version-version' => '(កំណែ $1)',
@@ -3662,11 +3685,11 @@ $5
 'htmlform-reset' => 'ធ្វើដូចដើមវិញ',
 'htmlform-selectorother-other' => 'ផ្សេងទៀត',
 'htmlform-no' => 'ទេ',
-'htmlform-yes' => 'á\9e\94á\9e¶á\9e\91â\80\8bá\9e¬á\9e\85á\9e¶á\9e\9f',
+'htmlform-yes' => 'á\9e\96á\9f\92á\9e\9aá\9e\98',
 
 # New logging system
-'logentry-delete-delete' => '$1 បានលុបទំព័រ $3 ចោល',
-'logentry-delete-restore' => '$1 បានស្ដារទំព័រ $3 ឡើងវិញ',
+'logentry-delete-delete' => '$1 {{GENDER:$2|បានលុប}} ទំព័រ $3 ចោល',
+'logentry-delete-restore' => '$1 {{GENDER:$2|បានស្ដារ}} ទំព័រ $3 ឡើងវិញ',
 'revdelete-content-hid' => 'ខ្លឹមសារត្រូវបានលាក់',
 'revdelete-summary-hid' => 'ចំណារពន្យល់ការកែប្រែត្រូវបានលាក់',
 'revdelete-uname-hid' => 'អត្តនាមត្រូវបានលាក់',
@@ -3675,17 +3698,17 @@ $5
 'revdelete-uname-unhid' => 'អត្តនាមត្រូវបានបង្ហាញ',
 'revdelete-restricted' => 'បានអនុវត្តការដាក់កំហិតចំពោះអ្នកអភិបាល',
 'revdelete-unrestricted' => 'បានដកការដាក់កំហិតចេញសម្រាប់អ្នកអភិបាល',
-'logentry-move-move' => '$1 បានប្ដូរទីតាំងទំព័រ $3 ពី $4',
-'logentry-move-move-noredirect' => '$1 បានប្ដូរទីតាំង ទំព័រ $3 ពី $4 ដោយមិនបន្សល់ទុកតំនភ្ជាប់បញ្ជូនបន្ត',
-'logentry-move-move_redir' => '$1 បានប្ដូរទីតាំង ទំព័រ $3 ពី $4 តាមរយៈការបញ្ជូនបន្ត',
-'logentry-move-move_redir-noredirect' => '$1 បានប្ដូរទីតាំង ទំព័រ $3 ពី $4 តាមរយៈការបញ្ជូនបន្ត ដោយមិនបន្សល់ទុកតំនភ្ជាប់បញ្ជូនបន្ត',
-'logentry-newusers-newusers' => 'á\9e\94á\9e¶á\9e\93á\9e\94á\9e\84á\9f\92á\9e\80á\9e¾á\9e\8fá\9e\82á\9e\8eá\9e\93á\9e¸á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8b $1',
-'logentry-newusers-create' => 'á\9e\94á\9e¶á\9e\93á\9e\94á\9e\84á\9f\92á\9e\80á\9e¾á\9e\8fá\9e\82á\9e\8eá\9e\93á\9e¸á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8b $1',
-'logentry-newusers-create2' => ' $3 បានបង្កើតគណនីអ្នកប្រើប្រាស់ $1',
-'logentry-newusers-autocreate' => 'គណនី $1 ត្រូវបានបង្កើតដោយស្វ័យប្រវត្តិ',
-'logentry-rights-rights' => '$1 បានផ្លាស់ប្ដូរសមាជិកភាពរបស់ $3 ពី $4 ទៅជា $5',
-'logentry-rights-rights-legacy' => '$1បានផ្លាស់ប្ដូរសមាជិកភាពរបស់ $3',
-'logentry-rights-autopromote' => '$1 ត្រូវបានតំលើងសមាជិកភាពពី $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|បានប្ដូរទីតាំង}} ទំព័រ $3 ទៅ $4 តាមរយៈការបញ្ជូនបន្ត',
+'logentry-move-move_redir-noredirect' => '$1 {{GENDER:$2|បានប្ដូរទីតាំង}} ទំព័រ $3 ទៅ $4 តាមរយៈការបញ្ជូនបន្ត ដោយមិនបន្សល់ទុកតំនភ្ជាប់បញ្ជូនបន្ត',
+'logentry-newusers-newusers' => 'á\9e\82á\9e\8eá\9e\93á\9e¸á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8b $1 {{GENDER:$2|á\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\94á\9e¶á\9e\93á\9e\94á\9e\84á\9f\92á\9e\80á\9e¾á\9e\8f}}',
+'logentry-newusers-create' => 'á\9e\82á\9e\8eá\9e\93á\9e¸á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8b $1 {{GENDER:$2|á\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\94á\9e¶á\9e\93á\9e\94á\9e\84á\9f\92á\9e\80á\9e¾á\9e\8f}}',
+'logentry-newusers-create2' => 'គណនីអ្នកប្រើប្រាស់ $3 {{GENDER:$2|ត្រូវបានបង្កើត}} ដោយ $1',
+'logentry-newusers-autocreate' => 'គណនីអ្នកប្រើប្រាស់ $1 {{GENDER:$2|ត្រូវបានបង្កើត}} ដោយស្វ័យប្រវត្តិ',
+'logentry-rights-rights' => '$1 {{GENDER:$2|បានផ្លាស់ប្ដូរ}}សមាជិកភាពរបស់ $3 ពី $4 ទៅជា $5',
+'logentry-rights-rights-legacy' => '$1 {{GENDER:$2|បានផ្លាស់ប្ដូរ}}សមាជិកភាពរបស់ $3',
+'logentry-rights-autopromote' => '$1 {{GENDER:$2|ត្រូវបានតំឡើង}}សមាជិកភាពពី $4 ជា $5 ដោយស្វ័យប្រវត្តិ',
 'rightsnone' => '(ទទេ)',
 
 # Feedback
@@ -3718,7 +3741,7 @@ $5
 'api-error-internal-error' => 'បញ្ហាខាងក្នុង៖ មានបញ្ហាណាមួយកើតឡើងពេលកំពុងដំណើរការផ្ទុកឯកសារអ្នកឡើងទៅក្នុងវិគី។',
 'api-error-missingresult' => 'បញ្ហាខាងក្នុង៖ មិនអាចកំណត់បានថាការថតចំលងបានសំរេចទេ។',
 'api-error-mustbeloggedin' => 'អ្នកត្រូវតែកត់ឈ្មោះចូលដើម្បីផ្ទុកឯកសារឡើង។',
-'api-error-ok-but-empty' => 'á\9e\94á\9e\89á\9f\92á\9e á\9e¶á\9e\81á\9e¶á\9e\84á\9e\80á\9f\92á\9e\93á\9e»á\9e\84á\9f\96 á\9e\82á\9f\92á\9e\98á\9e¶á\9e\93á\9e\85á\9f\86á\9e\9bá\9e¾á\9e\99á\9e\96á\9e¸á\9e\98á\9f\89á\9e¶á\9e\9fá\9f\8aá\9e¸á\9e\93á\9e\94á\9f\86រើការ។',
+'api-error-ok-but-empty' => 'á\9e\94á\9e\89á\9f\92á\9e á\9e¶á\9e\81á\9e¶á\9e\84á\9e\80á\9f\92á\9e\93á\9e»á\9e\84á\9f\96 á\9e\82á\9f\92á\9e\98á\9e¶á\9e\93á\9e\85á\9e\98á\9f\92á\9e\9bá\9e¾á\9e\99á\9e\96á\9e¸á\9e\98á\9f\89á\9e¶á\9e\9fá\9f\8aá\9e¸á\9e\93á\9e\94á\9e\98á\9f\92រើការ។',
 'api-error-overwrite' => 'មិនអនុញ្ញាតអោយសរសេរជាន់ពីលើឯកសារដែលមានស្រាប់ហើយ។',
 'api-error-timeout' => 'ម៉ាស៊ីនបំរើការមិនបានឆ្លើយតបក្នុងរយៈពេលដែលយើងរំពឹងទុក។',
 'api-error-unclassified' => 'បញ្ហាមិនស្គាល់មួយបានកើតឡើង។',
index 1cd439c..b68c06f 100644 (file)
@@ -171,6 +171,18 @@ $messages = array(
 'oct' => 'ಅಕ್ಟೋಬರ್',
 'nov' => 'ನವೆಂಬರ್',
 'dec' => 'ಡಿಸೆಂಬರ್',
+'january-date' => 'ಜನವರಿ $1',
+'february-date' => 'ಫೆಬ್ರುವರಿ $1',
+'march-date' => 'ಮಾರ್ಚ್ $1',
+'april-date' => 'ಎಪ್ರಿಲ್ $1',
+'may-date' => 'ಮೇ $1',
+'june-date' => 'ಜೂನ್ $1',
+'july-date' => 'ಜುಲೈ $1',
+'august-date' => 'ಆಗಸ್ಟ್ $1',
+'september-date' => 'ಸೆಪ್ಟೆಂಬರ್ $1',
+'october-date' => 'ಅಕ್ಟೋಬರ್ $1',
+'november-date' => 'ನವೆಂಬರ್ $1',
+'december-date' => 'ಡಿಸೆಂಬರ್ $1',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|ವರ್ಗ|ವರ್ಗಗಳು}}',
@@ -230,6 +242,7 @@ $messages = array(
 'namespaces' => 'ನಾಮವರ್ಗಗಳು',
 'variants' => 'ಹಲವು',
 
+'navigation-heading' => 'ಸಂಚರಣೆ ಮೆನು',
 'errorpagetitle' => 'ದೋಷ',
 'returnto' => '$1 ಗೆ ಹಿಂತಿರುಗಿ.',
 'tagline' => '{{SITENAME}} ಇಂದ',
@@ -251,6 +264,7 @@ $messages = array(
 'create-this-page' => 'ಈ ಪುಟವನ್ನು ಸೃಷ್ಟಿಸು',
 'delete' => 'ಅಳಿಸಿ',
 'deletethispage' => 'ಈ ಪುಟವನ್ನು ಅಳಿಸಿ',
+'undeletethispage' => 'ಈ ಪುಟವನ್ನು ಅಳಿಸುವಿಕೆಯನ್ನು ರದ್ದುಮಾಡು',
 'undelete_short' => '{{PLURAL:$1|ಒಂದು ಸಂಪಾದನೆಯ|$1 ಸಂಪಾದನೆಗಳ}} ಅಳಿಸುವಿಕೆಯನ್ನು ತೊಡೆದುಹಾಕು',
 'viewdeleted_short' => 'ನೋಟ {{PLURAL:$1|೧ ಅಳಿಸಲ್ಪಟ್ಟ ಸಂಪಾದನೆ|$1 ಅಳಿಸಲ್ಪಟ್ಟ ಸಂಪಾದನೆಗಳು}}',
 'protect' => 'ಸಂರಕ್ಷಿಸು',
@@ -300,7 +314,6 @@ $messages = array(
 'disclaimers' => 'ಅಬಾಧ್ಯತೆಗಳು',
 'disclaimerpage' => 'Project:ಸಾಮಾನ್ಯ ಅಬಾಧ್ಯತೆಗಳು',
 'edithelp' => 'ಸಂಪಾದನೆಗೆ ಸಹಾಯ',
-'edithelppage' => 'Help:ಸಂಪಾದನೆ',
 'helppage' => 'Help:ಪರಿವಿಡಿ',
 'mainpage' => 'ಮುಖ್ಯ ಪುಟ',
 'mainpage-description' => 'ಮುಖ್ಯ ಪುಟ',
@@ -413,24 +426,33 @@ MySQL ಹಿಂದಿರುಗಿಸಿದ ದೋಷ "$3: $4"',
 'badarticleerror' => 'ಈ ಪುಟದ ಮೇಲೆ ನೀವು ಪ್ರಯತ್ನಿಸಿದ ಕಾರ್ಯವನ್ನು ನಡೆಸಲಾಗದು.',
 'cannotdelete' => '"$1" ಈ ಪುಟ ಅಥವಾ ಚಿತ್ರವನ್ನು ಅಳಿಸಲಾಗಲಿಲ್ಲ. (ಬೇರೊಬ್ಬ ಸದಸ್ಯರಿಂದ ಆಗಲೇ ಅಳಿಸಲ್ಪಟ್ಟಿರಬಹುದು.)',
 'cannotdelete-title' => '"$1" ಪುಟವನ್ನು ಅಳಿಸಲಾಗುವುದಿಲ್ಲ',
+'delete-hook-aborted' => 'ಅಳಿಸುವಿಕೆಯನ್ನು ರದ್ದುಮಾಡಿದ ಕೊಂಡಿ. ಅದು ಯಾವ ವಿವರಣೆ ನೀಡಲಿಲ್ಲ.',
 'badtitle' => 'ಸರಿಯಿಲ್ಲದ ಹೆಸರು',
 'badtitletext' => 'ನೀವು ಕೋರಿದ ಪುಟದ ಶೀರ್ಷಿಕೆ ಸಿಂಧುವಲ್ಲದ್ದು ಅಥವ ಖಾಲಿ ಅಥವ ಸರಿಯಾದ ಕೊಂಡಿಯಲ್ಲದ ಅಂತರ-ಭಾಷೆ/ಅಂತರ-ವಿಕಿ ಸಂಪರ್ಕವಾಗಿದೆ.
 ಅದರಲ್ಲಿ ಒಂದು ಅಥವ ಹೆಚ್ಚು ಶೀರ್ಷಿಕೆಯಲ್ಲಿ ಬಳಸಲು ನಿಷಿದ್ಧವಾಗಿರುವ ಅಕ್ಷರಗಳು ಇರಬಹುದು.',
-'perfcached' => 'ಈ ಕೆಳಗಿನ ಮಾಹಿತಿಯು cache ಇಂದ ಬಂದಿರುವುದು ಮತ್ತು ಪ್ರಸಕ್ತ ಸ್ಥಿತಿಯನ್ನು ಬಿಂಬಿಸದಿರಬಹುದು. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.',
-'perfcachedts' => 'ಈ ಕೆಳಗಿನ ಮಾಹಿತಿ cache ಆಗಿರುವುದು, ಮತ್ತು ಇದರ ಕೊನೆಯ ಬದಲಾವಣೆ ಆಗಿರುವುದು $1. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.',
+'perfcached' => 'ಈ ಕೆಳಗಿನ ಮಾಹಿತಿಯು cache ಇಂದ ಬಂದಿರುವುದು ಮತ್ತು ಪ್ರಸಕ್ತ ಸ್ಥಿತಿಯನ್ನು ಬಿಂಬಿಸದಿರಬಹುದು. ಹೆಚ್ಚಂದರೆ  {{PLURAL:$1|one result is|$1 results are}} cacheನಲ್ಲಿ ಲಭ್ಯವಿರುವುದು',
+'perfcachedts' => 'ಈ ಕೆಳಗಿನ ಮಾಹಿತಿ cache ಆಗಿರುವುದು, ಮತ್ತು ಇದರ ಕೊನೆಯ ಬದಲಾವಣೆ ಆಗಿರುವುದು $1. ಹೆಚ್ಚಂದರೆ  {{PLURAL:$4|one result is|$4 results are}} cacheನಲ್ಲಿ ಲಭ್ಯವಿರುವುದು',
 'querypage-no-updates' => 'ಈ ಪುಟದ ಅಪ್ಡೇಟ್‍ಗಳನ್ನು ಪ್ರಸಕ್ತವಾಗಿ ನಿಲುಗಡೆ ಮಾಡಲಾಗಿದೆ. ಇಲ್ಲಿರುವ ಮಾಹಿತಿಯನ್ನು ಸದ್ಯಕ್ಕೆ ನವೀಕರಿಸಲಾಗುವುದಿಲ್ಲ.',
 'viewsource' => 'ಆಕರ ವೀಕ್ಷಿಸು',
+'viewsource-title' => 'ಮೂಲವನ್ನು ವಿಕ್ಷಿಸಿ',
+'actionthrottled' => 'ಕ್ರಿಯೆಯನ್ನು ನಿಯಂತ್ರಿಸಲಾಗಿದೆ',
+'actionthrottledtext' => 'ಸ್ಪ್ಯಾಮ್ ವಿರೋಧಿ ವಿಧಾನದ ಪ್ರಕಾರ, ನಿಮ್ಮನ್ನು ಸ್ವಲ್ಪ ಸಮಯದಲ್ಲಿ ಬಹಳ ಸಲ ಈ ಕ್ರಿಯೆಯನ್ನು ಮಾಡುವುದರಿಂದ ನಿಯಂತ್ರಿಸಲಾಗಿದೆ ಮತ್ತು ನೀವು ಸೀಮೆಯನ್ನು ಮಿರಿದ್ದಿರಿ. ಸ್ವಲ್ಪ ಸಮಯದ ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.',
 'protectedpagetext' => 'ಈ ಪುಟವನ್ನು ಸಂಪಾದನೆ ಮಾಡಲಾಗದಂತೆ ಸಂರಕ್ಷಿಸಲಾಗಿದೆ.',
 'viewsourcetext' => 'ಈ ಪುಟದ ಮೂಲವನ್ನು ನೀವು ವೀಕ್ಷಿಸಬಹುದು ಮತ್ತು ನಕಲು ಮಾಡಬಹುದು:',
-'protectedinterface' => 'ಈ ಪುಟವು ತಂತ್ರಾಂಶವು ಉಪಯೋಗಿಸುವ ಪಠ್ಯವನ್ನು ದೊರಕಿಸುತ್ತದೆ. ದುರುಪಯೋಗ ಆಗದಿರಲೆಂದು ಇದನ್ನು ಸಂರಕ್ಷಿಸಲಾಗಿದೆ.',
+'viewyourtext' => 'ನೀವು "ನಿಮ್ಮ ಸಂಪಾದನೆಗಳ"ನ್ನು ವಿಕ್ಷಿಸಿ ಮತ್ತು ಅದರ ಮೂಲವನ್ನು ಈ ಹಾಳೆಗೆ ನಕಲಿಸಬಹುದು:',
+'protectedinterface' => 'ಈ ಪುಟವು ತಾಂತ್ರಿಕತೆಗೆ ಸಂಪರ್ಕ ಪಠ್ಯವನ್ನು ವಿಕಿಯಲ್ಲಿ ಒದಗಿಸುತ್ತದೆ, ಹಾಗು ದುರುಪಯೋಗ ಆಗದಿರಲೆಂದು ಇದನ್ನು ಸಂರಕ್ಷಿಸಲಾಗಿದೆ. ಎಲ್ಲ ವಿಕಿಗಳಿಗೆ ಭಾಷಾಂತರವನ್ನು ಕೂಡಿಸಲು ಹಾಗು ಬದಲಿಸಲು, [//translatewiki.net/ translatewiki.net], the MediaWiki localisation ಯೋಜನೆಯನ್ನು ಉಪಯೊಗಿಸಿ',
 'editinginterface' => "'''ಎಚ್ಚರಿಕೆ:''' ನೀವು ತಂತ್ರಾಂಶವು ತಾಣವನ್ನು ಪ್ರದರ್ಶಿಸಲು ಉಪಯೋಗಿಸುವ ಪಠ್ಯವನ್ನು ಹೊಂದಿರುವ ಪುಟವೊಂದನ್ನು ಸಂಪಾದಿಸುತ್ತಿರುವಿರಿ.
 ಈ ಪುಟದಲ್ಲಾಗುವ ಬದಲಾವಣೆಗಳು ಇತರ ಬಳಕೆದಾರರಿಗೆ ತಾಣವು ಕಾಣುವ ರೀತಿಯನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ.
-ಅನುವಾದಗಳನ್ನು ಮಾಡುತ್ತಿದ್ದರೆ, ದಯವಿಟ್ಟು ಮೀಡಿಯವಿಕಿಯ ಪ್ರಾಂತೀಯತೆ ಯೋಜನೆ [//translatewiki.net/wiki/Main_Page?setlang=kn ಬೀಟವಿಕಿಯಲ್ಲಿ] ಮಾಡಿ.",
+ಅನುವಾದಗಳನ್ನು ಮಾಡುತ್ತಿದ್ದರೆ, ದಯವಿಟ್ಟು ಮೀಡಿಯವಿಕಿಯ ಪ್ರಾಂತೀಯತೆ ಯೋಜನೆ [//translatewiki.net/ translatewiki.net], the MediaWiki localisation project ಯೋಜನೆಯನ್ನು ಉಪಯೊಗಿಸಿ",
 'cascadeprotected' => 'ಈ ಪುಟವು ಸಂಪಾದನೆ ಮಾಡಲಾಗದಂತೆ ಸಂರಕ್ಷಿಸಲಾಗಿದೆ. ಇದಕ್ಕೆ ಕಾರಣ ಈ ಪುಟವನ್ನು ಈ ಕೆಳಗಿನ ತಡಸಲು-ಸಂರಕ್ಷಣೆ ಅಳವಡಿಸಲಾದ {{PLURAL:$1|ಪುಟದಲ್ಲಿ|ಪುಟಗಳಲ್ಲಿ}} ಉಪಯೋಗಿಸಲಾಗಿದೆ:
 $2',
 'namespaceprotected' => "ನಿಮಗೆ '''$1''' ಪುಟಪ್ರಬೇಧಕ್ಕೆ ಸೇರಿರುವ ಪುಟಗಳನ್ನು ಸಂಪಾದಿಸುವ ಅನುಮತಿ ಇಲ್ಲ.",
 'customcssprotected' => 'ಈ ಸಿಎಸ್ಎಸ್ ಪುಟವನ್ನು ಸಂಪಾದಿಸಲು ಈ ಪುಟವು ಇನ್ನೊಬ್ಬ ಬಳಕೆದಾರನ ವಯುಕ್ತಿಕ ವ್ಯವಸ್ಥೆಯನ್ನು ಹೊಂದಿರುವುದರಿಂದ ಅನುಮತಿ ಇಲ್ಲ',
 'customjsprotected' => 'ಈ ಜಾವಾ ಸ್ಕ್ರಿಪ್ಟ್ ಪುಟವನ್ನು ಸಂಪಾದಿಸಲು ಈ ಪುಟವು ಇನ್ನೊಬ್ಬ ಬಳಕೆದಾರನ ವಯುಕ್ತಿಕ ವ್ಯವಸ್ಥೆಯನ್ನು ಹೊಂದಿರುವುದರಿಂದ ಅನುಮತಿ ಇಲ್ಲ',
+'mycustomcssprotected' => 'ಈ ಪುಟವನ್ನು ಸಂಪಾದಿಸಲು ನಿಮಗೆ ಅನುಮತಿ ಇಲ್ಲ.',
+'mycustomjsprotected' => 'ಈ ಪುಟವನ್ನು ಸಂಪಾದಿಸಲು ನಿಮಗೆ ಅನುಮತಿ ಇಲ್ಲ.',
+'myprivateinfoprotected' => 'ನಿಮ್ಮ ಸೂಕ್ಷ್ಮ ವಿಚಾರಗಳನ್ನು ಸಂಪಾದಿಸಲು ನಿಮಗೆ ಅನುಮತಿ ಇಲ್ಲ.',
+'mypreferencesprotected' => 'ನಿಮ್ಮ ಆಯ್ಕೆಗಳನ್ನು  ಸಂಪಾದಿಸಲು ನಿಮಗೆ ಅನುಮತಿ ಇಲ್ಲ',
 'ns-specialprotected' => 'ವಿಶೇಷ ಪುಟಗಳನ್ನು ಸಂಪಾದಿಸಲು ಆಗುವುದಿಲ್ಲ.',
 'titleprotected' => "ಈ ಹೆಸರಿನ ಪುಟವನ್ನು ಸೃಷ್ಟಿಸಲಾಗದಂತೆ [[User:$1|$1]] ಅವರು ಸಂರಕ್ಷಿಸಿದ್ದಾರೆ.
 ಸಂರಕ್ಷಣೆಗೆ ನೀಡಿರುವ ಕಾರಣ: ''$2''.",
@@ -454,6 +476,7 @@ $2',
 'welcomeuser' => 'ಸುಸ್ವಾಗತ,$1!',
 'welcomecreation-msg' => 'ನಿಮ್ಮ ಖಾತೆ ತೆರೆಯಲಾಗಿದೆ.ನಿಮ್ಮ [[Special:Preferences|{{SITENAME}} preferences]]ಬದಲಾಯಿಸಲು ಮರೆಯಬೇಡಿ.',
 'yourname' => 'ನಿಮ್ಮ ಬಳಕೆಯ ಹೆಸರು',
+'userlogin-yourname' => 'ಬಳಕೆದಾರ ಹೆಸರು',
 'yourpassword' => 'ನಿಮ್ಮ ಪ್ರವೇಶಪದ',
 'userlogin-yourpassword' => 'ಪ್ರವೇಶಪದ',
 'userlogin-yourpassword-ph' => 'ನಿಮ್ಮ ಪ್ರವೇಶಪದ ನಮೂದಿಸಿ',
@@ -473,14 +496,19 @@ $2',
 'logout' => 'ಲಾಗ್ ಔಟ್',
 'userlogout' => 'ಲಾಗ್ ಔಟ್',
 'notloggedin' => 'ಲಾಗಿನ್ ಆಗಿಲ್ಲ',
+'userlogin-noaccount' => 'ಖಾತೆ ಇಲ್ಲವೇ?',
 'nologin' => "ಖಾತೆ ಇಲ್ಲವೇ? '''$1'''.",
 'nologinlink' => 'ಖಾತೆಯನ್ನು ಸೃಷ್ಟಿಸಿ',
 'createaccount' => 'ಹೊಸ ಖಾತೆ ತೆರೆಯಿರಿ',
 'gotaccount' => "ಈಗಾಗಲೇ ಖಾತೆಯಿದೆಯೇ? '''$1'''.",
 'gotaccountlink' => 'ಲಾಗ್ ಇನ್',
 'userlogin-resetlink' => 'ನಿಮ್ಮ ಲಾಗಿನ್ ವಿವರಗಳನ್ನು ಮರೆತಿದ್ದೀರಾ?',
+'createacct-join' => 'ನಿಮ್ಮ ಮಾಹಿತಿಯನ್ನು ಕೆಳಗೆ ನಮೂದಿಸಿ',
+'createacct-emailrequired' => 'ಇ-ಮೇಲ್ ವಿಳಾಸ:',
+'createacct-email-ph' => 'ನಿಮ್ಮ ಇ-ಅಂಚೆ ವಿಳಾಸವನ್ನು ನಮೂದಿಸಿ',
 'createaccountmail' => 'ಇ-ಅಂಚೆಯ ಮೂಲಕ',
 'createaccountreason' => 'ಕಾರಣ:',
+'createacct-reason' => 'ಕಾರಣ',
 'badretype' => 'ನೀವು ಕೊಟ್ಟ ಪ್ರವೇಶಪದಗಳು ಬೇರೆಬೇರೆಯಾಗಿವೆ.',
 'userexists' => 'ನೀವು ನೀಡಿದ ಸದಸ್ಯರ ಹೆಸರು ಆಗಲೆ ಬಳಕೆಯಲ್ಲಿದೆ. ದಯವಿಟ್ಟು ಬೇರೊಂದು ಹೆಸರನ್ನು ಆಯ್ಕೆ ಮಾಡಿ.',
 'loginerror' => 'ಲಾಗಿನ್ ದೋಷ',
@@ -859,7 +887,6 @@ $2',
 'viewprevnext' => 'ವೀಕ್ಷಿಸು ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-exists' => "'''\"[[:\$1]]\" ಹೆಸರಿನ ಪುಟ ಈ ವಿಕಿಯಲ್ಲಿದೆ.'''",
 'searchmenu-new' => "'''''[[:$1]]'' ಪುಟವನ್ನು ಈ ವಿಕಿಯಲ್ಲಿ ಸೃಷ್ಟಿಸಿ!'''",
-'searchhelp-url' => 'Help:ಪರಿವಿಡಿ',
 'searchprofile-articles' => 'ಲೇಖನ ಪುಟ',
 'searchprofile-project' => 'ಸಹಾಯ ಮತ್ತು ಯೋಜನೆ ಪುಟಗಳು',
 'searchprofile-images' => 'ಬಹುಮಾಧ್ಯಮ',
@@ -1109,7 +1136,6 @@ $2',
 'recentchangeslinked-feed' => 'ಸಂಬಂಧಪಟ್ಟ ಬದಲಾವಣೆಗಳು',
 'recentchangeslinked-toolbox' => 'ಸಂಬಂಧಪಟ್ಟ ಬದಲಾವಣೆಗಳು',
 'recentchangeslinked-title' => '"$1" ಪುಟಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಬದಲಾವಣೆಗಳು',
-'recentchangeslinked-noresult' => 'ಸೂಚಿತ ಕಾಲದಲ್ಲಿ ಸಂಪರ್ಕ ಹೊಂದಿರುವ ಪುಟಗಳಲ್ಲಿ ಯಾವ ಬದಲಾವಣೆಗಳೂ ಇಲ್ಲ.',
 'recentchangeslinked-summary' => "ಒಂದು ನಿರ್ದಿಷ್ಟ ಪುಟದಿಂದ (ಅಥವ ನಿರ್ದಿಷ್ಟ ವರ್ಗಕ್ಕೆ ಸೇರಿರುವ ಪುಟಗಳಿಂದ) ಸಂಪರ್ಕ ಹೊಂದಿರುವ ಪುಟಗಳಲ್ಲಿ ಇತ್ತೀಚೆಗೆ ಮಾಡಲಾಗಿರುವ ಬದಲಾವಣೆಗಳನ್ನು ಈ ಕೆಳಗೆ ಪಟ್ಟಿ ಮಾಡಲಾಗಿದೆ.
 [[Special:Watchlist|ನಿಮ್ಮ ವೀಕ್ಷಣಾಪಟ್ಟಿಯಲ್ಲಿ]] ಇರುವ ಪುಟಗಳು '''ದಪ್ಪ ಅಕ್ಷರ'''ಗಳಲ್ಲಿ ಇವೆ.",
 'recentchangeslinked-page' => 'ಪುಟದ ಹೆಸರು:',
index 4d3f16a..e3280ba 100644 (file)
@@ -351,7 +351,7 @@ $dateFormats = array(
 
 $messages = array(
 # User preference toggles
-'tog-underline' => '링크에 밑줄 표시하기:',
+'tog-underline' => '링크에 밑줄:',
 'tog-justify' => '문단 정렬하기',
 'tog-hideminor' => '최근 바뀜에서 사소한 편집을 숨기기',
 'tog-hidepatrolled' => '최근 바뀜에서 검토한 편집을 숨기기',
@@ -394,7 +394,7 @@ $messages = array(
 'tog-showhiddencats' => '숨은 분류 보기',
 'tog-noconvertlink' => '링크 제목 변환을 비활성화',
 'tog-norollbackdiff' => '되돌리기 후 차이를 보이지 않기',
-'tog-useeditwarning' => 'ì\88\98ì \95í\95\9c ë\82´ì\9a©ì\9d\84 ì \80ì\9e¥í\95\98ì§\80 ì\95\8aê³  í\8e¸ì§\91 ì\96\91ì\8b\9dì\9d\84 ë\8b«ê±°ë\82\98 ë\8b¤ë¥¸ í\8e\98ì\9d´ì§\80ë¡\9c ì\9d´ë\8f\99í\95  ë\95\8c ì\95\8c림',
+'tog-useeditwarning' => 'ë°\94ê¾¼ ë\82´ì\9a©ì\9d\84 ì \80ì\9e¥í\95\98ì§\80 ì\95\8aê³  í\8e¸ì§\91 í\8e\98ì\9d´ì§\80를 ë²\97ì\96´ë\82  ë\95\8c ì\95\8c림',
 
 'underline-always' => '항상',
 'underline-never' => '치지 않음',
@@ -475,7 +475,7 @@ $messages = array(
 'pagecategories' => '{{PLURAL:$1|분류}}',
 'category_header' => '"$1" 분류에 속하는 문서',
 'subcategories' => '하위 분류',
-'category-media-header' => '"$1" 분류에 속하는 자료',
+'category-media-header' => '"$1" 분류에 속하는 미디어',
 'category-empty' => '이 분류에 속하는 문서나 자료가 없습니다.',
 'hidden-categories' => '{{PLURAL:$1|숨은 분류}}',
 'hidden-category-category' => '숨은 분류',
@@ -491,7 +491,7 @@ $messages = array(
 'broken-file-category' => '잘못된 파일 링크가 포함된 문서',
 
 'about' => '소개',
-'article' => '문ì\84\9c ë\82´ì\9a©',
+'article' => '본문',
 'newwindow' => '(새 창으로 열림)',
 'cancel' => '취소',
 'moredotdotdot' => '더 보기...',
@@ -524,7 +524,7 @@ $messages = array(
 'vector-view-edit' => '편집',
 'vector-view-history' => '역사',
 'vector-view-view' => '읽기',
-'vector-view-viewsource' => '내용 보기',
+'vector-view-viewsource' => '원본 보기',
 'actions' => '행위',
 'namespaces' => '이름공간',
 'variants' => '변수',
@@ -536,8 +536,8 @@ $messages = array(
 'help' => '도움말',
 'search' => '찾기',
 'searchbutton' => '찾기',
-'go' => '기',
-'searcharticle' => '기',
+'go' => '기',
+'searcharticle' => '기',
 'history' => '문서 역사',
 'history_short' => '역사',
 'updatedmarker' => '마지막으로 방문한 뒤 바뀜',
@@ -551,6 +551,7 @@ $messages = array(
 'create-this-page' => '이 문서 만들기',
 'delete' => '삭제',
 'deletethispage' => '이 문서 삭제하기',
+'undeletethispage' => '이 문서 되살리기',
 'undelete_short' => '{{PLURAL:$1|편집 $1개}} 되살리기',
 'viewdeleted_short' => '{{PLURAL:$1|삭제된 편집 $1개}} 보기',
 'protect' => '보호',
@@ -597,14 +598,13 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
 'aboutsite' => '{{SITENAME}} 소개',
 'aboutpage' => 'Project:소개',
-'copyright' => '모ë\93  ë¬¸ì\84\9cë\8a\94 $1 ë\9d¼ì\9d´ì\84 ì\8a¤ë¥¼ ë\94°ë¦\85니다.',
+'copyright' => 'ë\82´ì\9a©ì\9d\80 $1 ë\9d¼ì\9d´ì\84 ì\8a¤ì\97\90 ë\94°ë\9d¼ ì\82¬ì\9a©í\95  ì\88\98 ì\9e\88ì\8aµ니다.',
 'copyrightpage' => '{{ns:project}}:저작권',
 'currentevents' => '요즘 화제',
 'currentevents-url' => 'Project:요즘 화제',
 'disclaimers' => '면책 조항',
 'disclaimerpage' => 'Project:면책 조항',
 'edithelp' => '편집 도움말',
-'edithelppage' => 'Help:편집하기',
 'helppage' => 'Help:목차',
 'mainpage' => '대문',
 'mainpage-description' => '대문',
@@ -634,9 +634,9 @@ $1',
 'youhavenewmessagesmulti' => '다른 사용자가 $1에 글을 남겼습니다',
 'editsection' => '편집',
 'editold' => '편집',
-'viewsourceold' => '내용 보기',
+'viewsourceold' => '원본 보기',
 'editlink' => '편집',
-'viewsourcelink' => '내용 보기',
+'viewsourcelink' => '원본 보기',
 'editsectionhint' => '부분 편집: $1',
 'toc' => '목차',
 'showtoc' => '보이기',
@@ -660,7 +660,7 @@ $1',
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => '문서',
 'nstab-user' => '사용자 문서',
-'nstab-media' => '자료',
+'nstab-media' => '미디어 문서',
 'nstab-special' => '특수 문서',
 'nstab-project' => '프로젝트 문서',
 'nstab-image' => '파일',
@@ -735,8 +735,8 @@ URL을 잘못 입력하였거나, 잘못된 링크를 따라갔을 수 있습니
 'wrong_wfQuery_params' => 'wfQuery()에서 잘못된 매개변수 발생<br />
 함수: $1<br />
 쿼리: $2',
-'viewsource' => '내용 보기',
-'viewsource-title' => '$1 문서 내용 보기',
+'viewsource' => '원본 보기',
+'viewsource-title' => '$1 문서 원본 보기',
 'actionthrottled' => '동작 중지',
 'actionthrottledtext' => '스팸을 막기 위해 짧은 시간 안에 이 작업을 너무 많이 하는 것을 막고 있습니다.
 제한을 넘었으니 몇 분 뒤에 새로 시도하세요.',
@@ -754,6 +754,10 @@ $2',
 'namespaceprotected' => "'''$1''' 이름공간을 편집할 수 있는 권한이 없습니다.",
 'customcssprotected' => '여기에는 다른 사용자의 개인 설정이 포함되어 있기 때문에 이 CSS 문서를 편집할 수 없습니다.',
 'customjsprotected' => '여기에는 다른 사용자의 개인 설정이 포함되어 있기 때문에 이 자바스크립트 문서를 편집할 수 없습니다.',
+'mycustomcssprotected' => '이 CSS 문서를 편집할 권한이 없습니다.',
+'mycustomjsprotected' => '이 자바스크립트 문서를 편집할 권한이 없습니다.',
+'myprivateinfoprotected' => '내 개인 정보를 편집할 권한이 없습니다.',
+'mypreferencesprotected' => '내 환경 설정을 편집할 권한이 없습니다.',
 'ns-specialprotected' => '특수 문서는 편집할 수 없습니다.',
 'titleprotected' => '[[User:$1|$1]] 사용자가 문서 만들기를 금지했습니다.
 이유는 다음과 같습니다. "$2"',
@@ -781,6 +785,7 @@ $2',
 'yourname' => '사용자 이름:',
 'userlogin-yourname' => '사용자 이름',
 'userlogin-yourname-ph' => '사용자 이름을 입력하세요',
+'createacct-another-username-ph' => '사용자 이름을 입력하세요',
 'yourpassword' => '비밀번호:',
 'userlogin-yourpassword' => '비밀번호',
 'userlogin-yourpassword-ph' => '비밀번호를 입력하세요',
@@ -815,9 +820,11 @@ $2',
 'helplogin-url' => 'Help:로그인',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|로그인에 관한 도움말]]',
 'createacct-join' => '아래에 정보를 입력하세요.',
+'createacct-another-join' => '아래에 새 계정의 정보를 입력하세요.',
 'createacct-emailrequired' => '이메일 주소',
 'createacct-emailoptional' => '이메일 주소 (선택 사항)',
 'createacct-email-ph' => '이메일 주소를 입력하세요',
+'createacct-another-email-ph' => '이메일 주소를 입력하세요',
 'createaccountmail' => '임시 임의 비밀번호를 아래에 지정한 이메일로 보내기',
 'createacct-realname' => '실명 (선택 사항)',
 'createaccountreason' => '이유:',
@@ -826,6 +833,7 @@ $2',
 'createacct-captcha' => '보안 검사',
 'createacct-imgcaptcha-ph' => '위에 보이는 텍스트를 입력하세요',
 'createacct-submit' => '계정 만들기',
+'createacct-another-submit' => '다른 계정 만들기',
 'createacct-benefit-heading' => '{{SITENAME}}(은)는 여러분과 같은 사람으로 이루어집니다.',
 'createacct-benefit-body1' => '{{PLURAL:$1|편집 수}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|문서 수}}',
@@ -893,7 +901,7 @@ $2',
 'cannotchangeemail' => '이 위키에서는 계정의 이메일 주소를 바꿀 수 없습니다.',
 'emaildisabled' => '이 사이트에서는 이메일을 보낼 수 없습니다.',
 'accountcreated' => '계정 만들어짐',
-'accountcreatedtext' => '"$1" 사용자 계정이 만들어졌습니다.',
+'accountcreatedtext' => '[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|토론]]) 사용자 계정이 만들어졌습니다.',
 'createaccount-title' => '{{SITENAME}} 계정 만들기',
 'createaccount-text' => '누군가가 {{SITENAME}} ($4)에서 사용자 이름 "$2", 비밀번호 "$3"로 당신의 이메일 주소가 등록된 계정을 만들었습니다. 
 지금 로그인하여 비밀번호를 바꾸십시오.
@@ -934,11 +942,11 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => '비밀번호 재설정',
-'passwordreset-text' => '비밀번호를 재설정하려면 이 양식을 채워주세요.',
+'passwordreset-text-one' => '비밀번호를 재설정하려면 이 양식을 작성해주세요.',
+'passwordreset-text-many' => '{{PLURAL:$1|비밀번호를 재설정하려면 필드 중 하나를 채우세요.}}',
 'passwordreset-legend' => '비밀번호 재설정',
 'passwordreset-disabled' => '이 위키에서는 비밀번호를 재설정할 수 없습니다.',
 'passwordreset-emaildisabled' => '이 위키에서 이메일 기능이 비활성화되어 있습니다.',
-'passwordreset-pretext' => '{{PLURAL:$1||아래에 한 가지 정보를 입력하세요}}',
 'passwordreset-username' => '사용자 이름:',
 'passwordreset-domain' => '도메인:',
 'passwordreset-capture' => '발송 결과 이메일을 보시겠습니까?',
@@ -967,12 +975,12 @@ $2
 임시 비밀번호: $2',
 'passwordreset-emailsent' => '비밀번호 재설정 이메일을 보냈습니다.',
 'passwordreset-emailsent-capture' => '비밀번호 재설정 이메일이 발송되었으며, 아래에 나타나 있습니다.',
-'passwordreset-emailerror-capture' => '비밀번호 재설정 이메일이 생성되어 아래에 표시되어 있지만, {{GENDER:$2|사용자}}에게 발송하는 데에는 실패했습니다: $1',
+'passwordreset-emailerror-capture' => '비밀번호 재설정 이메일이 생성되어 아래에 보여져 있지만, {{GENDER:$2|사용자}}에게 발송하는 데에는 실패했습니다: $1',
 
 # Special:ChangeEmail
 'changeemail' => '이메일 주소 바꾸기',
 'changeemail-header' => '계정 메일 주소 바꾸기',
-'changeemail-text' => 'ì\9d´ë©\94ì\9d¼ ì£¼ì\86\8c를 ë°\94꾸려면 ì\9d´ ì\96\91ì\8b\9dì\9d\84 ì±\84ì\9a°세요. 바뀜 내용을 확인하기 위해 비밀번호를 입력해야 합니다.',
+'changeemail-text' => 'ì\9d´ë©\94ì\9d¼ ì£¼ì\86\8c를 ë°\94꾸려면 ì\9d´ ì\96\91ì\8b\9dì\9d\84 ì\9e\91ì\84±í\95´ì£¼세요. 바뀜 내용을 확인하기 위해 비밀번호를 입력해야 합니다.',
 'changeemail-no-info' => '이 특수 문서에 직접 접근하려면 반드시 로그인해야 합니다.',
 'changeemail-oldemail' => '현재 이메일 주소 :',
 'changeemail-newemail' => '새 이메일 주소:',
@@ -1070,7 +1078,7 @@ $1 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 대
 여기는 계정을 만들지 않았거나 사용하고 있지 않은 익명 사용자를 위한 토론 문서입니다.
 익명 사용자를 구별하기 위해서는 숫자로 된 IP 주소를 사용해야만 합니다.
 IP 주소는 여러 사용자가 공유할 수 있습니다.
-자신과 관계없는 의견이 자신에게 남겨져 있어 불쾌하다고 생각하는 익명 사용자는 [[Special:UserLogin/signup|계정을 만들고]] [[Special:UserLogin|로그인 하여]] 나중에 다른 익명 사용자에게 줄 혼란을 줄일 수 있습니다.',
+자신과 관계없는 의견이 자신에게 남겨져 있어 불쾌하다고 생각하는 익명 사용자는 [[Special:UserLogin/signup|계정을 만들고]] [[Special:UserLogin|로그인해서]] 나중에 다른 익명 사용자에게 줄 혼란을 줄일 수 있습니다.',
 'noarticletext' => '이 문서가 현재 존재하지 않습니다.
 이 문서와 제목이 비슷한 문서가 있는지 [[Special:Search/{{PAGENAME}}|찾거나]],
 이 문서에 관련된 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 기록]을 확인하거나,
@@ -1187,14 +1195,15 @@ IP 주소는 여러 사용자가 공유할 수 있습니다.
 문서가 삭제된 것 같습니다.',
 'edit-conflict' => '편집 충돌.',
 'edit-no-change' => '문서에 어떠한 바뀜도 없기 때문에 편집은 무시되었습니다.',
+'postedit-confirmation' => '편집을 저장했습니다.',
 'edit-already-exists' => '새 문서를 만들 수 없습니다.
 문서가 이미 존재합니다.',
-'defaultmessagetext' => '기본 ë©\94ì\84¸ì§\80 ë\82´ì\9a©',
+'defaultmessagetext' => '기본 ë©\94ì\8b\9cì§\80 ê¸\80',
 'content-failed-to-parse' => '$1 모델에 대한 $2 내용을 구문 분석하는 데 실패했습니다: $3',
 'invalid-content-data' => '잘못된 내용 데이터입니다',
 'content-not-allowed-here' => '"$1" 내용은 [[$2]] 문서예 허용하지 않습니다',
-'editwarning-warning' => '이 창에서 벗어나면 저장하지 않은 편집이 모두 사라집니다.
-로그인한 경우, 환경 설정 ‘{{int:prefs-editing}}’란에서 이 경고창을 띄우지 않도록 설정할 수 있습니다.',
+'editwarning-warning' => '이 페이지에서 벗어나면 저장하지 않은 바뀜이 모두 사라집니다.
+로그인을 했다면, 환경 설정의 "편집 상자"에서 이 경고를 띄우지 않도록 설정할 수 있습니다.',
 
 # Content models
 'content-model-wikitext' => '위키텍스트',
@@ -1230,6 +1239,7 @@ $2개 보다 적게 {{PLURAL:$2|써야}} 하지만 {{PLURAL:$1|지금은 $1개
 'undo-failure' => '중간의 다른 편집과 충돌하여 이 편집을 되돌릴 수 없습니다.',
 'undo-norev' => '문서가 없거나 삭제되었기 때문에 편집을 되돌릴 수 없습니다.',
 'undo-summary' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|토론]])의 $1판 편집을 되돌림',
+'undo-summary-username-hidden' => '숨겨진 사용자가 $1 판을 되돌림',
 
 # Account creation failure
 'cantcreateaccounttitle' => '계정을 만들 수 없음',
@@ -1254,10 +1264,10 @@ $2개 보다 적게 {{PLURAL:$2|써야}} 하지만 {{PLURAL:$1|지금은 $1개
 'page_last' => '마지막',
 'histlegend' => "비교하려는 판을 선택한 다음 엔터나 아래의 버튼을 누르세요.<br />
 설명: '''({{int:cur}})''' = 최신 판과 비교, '''({{int:last}})''' = 이전 판과 비교, '''{{int:minoreditletter}}'''= 사소한 편집",
-'history-fieldset-title' => '문서의 바뀜 내역 찾기',
+'history-fieldset-title' => '역사 찾아보기',
 'history-show-deleted' => '삭제된 것만',
-'histfirst' => 'ì²\98ì\9d\8c',
-'histlast' => '마지막',
+'histfirst' => 'ì\98¤ë\9e\98ë\90¨',
+'histlast' => '최신',
 'historysize' => '({{PLURAL:$1|1 바이트|$1 바이트}})',
 'historyempty' => '(비었음)',
 
@@ -1403,7 +1413,7 @@ $1",
 'mergelogpagetext' => '다음은 한 문서의 역사를 다른 문서의 역사와 합친 최근 기록입니다.',
 
 # Diffs
-'history-title' => '"$1" 문서의 바뀜 내역',
+'history-title' => '"$1" 문서의  내역',
 'difference-title' => '"$1"의 두 판 사이의 차이',
 'difference-title-multipage' => '"$1" 문서와 "$2" 문서 사이의 차이',
 'difference-multipage' => '(문서 사이의 차이)',
@@ -1411,6 +1421,7 @@ $1",
 'compareselectedversions' => '선택한 판을 비교하기',
 'showhideselectedversions' => '선택한 판을 보이기/숨기기',
 'editundo' => '편집 취소',
+'diff-empty' => '(차이 없음)',
 'diff-multi' => '({{PLURAL:$2|한 사용자의|사용자 $2명의}} {{PLURAL:$1|중간의 편집 $1개}} 숨겨짐)',
 'diff-multi-manyusers' => '({{PLURAL:$2|한 사용자의|사용자 $2명 이상의}} {{PLURAL:$1|중간의 편집 $1개}} 숨겨짐)',
 'difference-missing-revision' => '문서 비교에서 {{PLURAL:$2|하나|$2개}}의 판($1)을 찾을 수 {{PLURAL:$2|없습니다}}.
@@ -1438,13 +1449,12 @@ $1",
 'searchmenu-legend' => '찾기 설정',
 'searchmenu-exists' => "'''이 위키에 \"[[:\$1]]\"의 이름을 가진 문서가 있습니다.'''",
 'searchmenu-new' => "'''이 위키에 \"[[:\$1]]\" 문서를 만드세요!'''",
-'searchhelp-url' => 'Help:목차',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|이 접두어로 시작하는 문서 찾기]]',
-'searchprofile-articles' => '일반 문서',
+'searchprofile-articles' => '본문',
 'searchprofile-project' => '도움말 및 프로젝트 문서',
 'searchprofile-images' => '멀티미디어',
 'searchprofile-everything' => '모든 문서 찾기',
-'searchprofile-advanced' => '고급 찾기',
+'searchprofile-advanced' => '고급',
 'searchprofile-articles-tooltip' => '$1에서 찾기',
 'searchprofile-project-tooltip' => '$1에서 찾기',
 'searchprofile-images-tooltip' => '파일 찾기',
@@ -1515,7 +1525,6 @@ $1",
 'resetprefs' => '저장하지 않은 설정 되돌리기',
 'restoreprefs' => '모두 기본 설정으로 되돌리기',
 'prefs-editing' => '편집 상자',
-'prefs-edit-boxsize' => '편집 창의 크기',
 'rows' => '줄 수:',
 'columns' => '열 수:',
 'searchresultshead' => '찾기',
@@ -1526,9 +1535,6 @@ $1",
 'recentchangesdays-max' => '최대 $1{{PLURAL:$1|일}}',
 'recentchangescount' => '기본으로 보여줄 편집 수:',
 'prefs-help-recentchangescount' => '이 설정은 최근 바뀜, 문서 역사와 기록에 적용됩니다.',
-'prefs-help-watchlist-token' => '아래에 비밀 값을 넣으면 주시문서 목록에 대한 RSS 피드가 만들어집니다.
-비밀 값을 알고 있는 사람이라면 누구나 피드를 읽을 수 있으므로 안전한 값을 입력해주세요.
-임의로 만들어진 다음 값을 사용할 수도 있습니다: $1',
 'savedprefs' => '설정을 저장했습니다.',
 'timezonelegend' => '시간대:',
 'localtime' => '현지 시각:',
@@ -1559,7 +1565,6 @@ $1",
 'prefs-reset-intro' => '이 사이트의 기본값으로 환경 설정을 되돌릴 수 있습니다.
 되돌릴 수 없습니다.',
 'prefs-emailconfirm-label' => '이메일 인증:',
-'prefs-textboxsize' => '편집창의 크기',
 'youremail' => '이메일:',
 'username' => '{{GENDER:$1|사용자 이름}}:',
 'uid' => '{{GENDER:$1|사용자}} ID:',
@@ -1593,7 +1598,9 @@ HTML 태그를 확인하세요.',
 'prefs-signature' => '서명',
 'prefs-dateformat' => '날짜 형식',
 'prefs-timeoffset' => '시차 설정',
-'prefs-advancedediting' => '고급 설정',
+'prefs-advancedediting' => '일반',
+'prefs-editor' => '편집자',
+'prefs-preview' => '미리 보기',
 'prefs-advancedrc' => '고급 설정',
 'prefs-advancedrendering' => '고급 설정',
 'prefs-advancedsearchoptions' => '고급 설정',
@@ -1629,6 +1636,7 @@ HTML 태그를 확인하세요.',
 'userrights-changeable-col' => '바꿀 수 있는 권한',
 'userrights-unchangeable-col' => '바꿀 수 없는 권한',
 'userrights-conflict' => '사용자 권한에 충돌이 있습니다! 바뀜을 다시 적용하세요.',
+'userrights-removed-self' => '자신의 권한을 성공적으로 제거했습니다. 따라서 더 이상 이 문서에 접근할 수 없습니다.',
 
 # Groups
 'group' => '그룹:',
@@ -1672,7 +1680,7 @@ HTML 태그를 확인하세요.',
 'right-reupload-shared' => '공용의 파일을 무시하고 로컬에서 파일 올리기',
 'right-upload_by_url' => 'URL 주소에서 파일 올리기',
 'right-purge' => '확인 없이 문서의 캐시를 새로 고침',
-'right-autoconfirmed' => '준보호된 문서 편집',
+'right-autoconfirmed' => 'IP 기반의 속도 제한에 영향을 받지 않음',
 'right-bot' => '봇의 편집으로 취급',
 'right-nominornewtalk' => '토론 문서를 새로 만들때 사소한 편집 사용 불가능',
 'right-apihighlimits' => 'API 상한 상승',
@@ -1693,15 +1701,23 @@ HTML 태그를 확인하세요.',
 'right-ipblock-exempt' => 'IP 차단, 자동 차단, 광역 차단을 무시',
 'right-proxyunbannable' => '프록시 자동 차단을 적용하지 않음',
 'right-unblockself' => '자기 자신을 차단 해제하기',
-'right-protect' => '보호 수준 바꾸기 및 보호된 문서 편집',
-'right-editprotected' => '보호된 문서 편집 (연쇄적 보호 제외)',
+'right-protect' => '보호 수준 바꾸기 및 연쇄 보호된 문서 편집',
+'right-editprotected' => '"{{int:protect-level-sysop}}"로 보호된 문서 편집',
+'right-editsemiprotected' => '"{{int:protect-level-autoconfirmed}}"로 보호된 문서 편집',
 'right-editinterface' => '사용자 인터페이스를 편집',
 'right-editusercssjs' => '다른 사용자의 CSS와 자바스크립트 문서를 편집',
 'right-editusercss' => '다른 사용자의 CSS 문서를 편집',
 'right-edituserjs' => '다른 사용자의 자바스크립트 문서를 편집',
+'right-editmyusercss' => '자신의 사용자 CSS 파일 편집하기',
+'right-editmyuserjs' => '자신의 사용자 자바스크립트 파일 편집하기',
+'right-viewmywatchlist' => '자신의 주시문서 목록 보기',
+'right-editmywatchlist' => '자신의 주시문서 목록을 편집합니다. 이 권한이 없어도 문서를 추가할 수 있는 권한이 이외에도 있음을 참고하세요.',
+'right-viewmyprivateinfo' => '자신의 개인 데이터 보기 (예를 들어 이메일 주소, 실명)',
+'right-editmyprivateinfo' => '자신의 개인 데이터 편집 (예를 들어 이메일 주소, 실명)',
+'right-editmyoptions' => '자신의 환경 설정 편집',
 'right-rollback' => '특정 문서를 편집한 마지막 사용자의 편집을 신속하게 되돌리기',
 'right-markbotedits' => '되돌리기를 봇의 편집으로 취급 가능',
-'right-noratelimit' => '편집이나 다른 행동 속도의 제한을 받지 않음',
+'right-noratelimit' => '속도 제한에 영향을 받지 않음',
 'right-import' => '다른 위키에서 문서 가져오기',
 'right-importupload' => '파일 올리기를 통해 문서 가져오기',
 'right-patrol' => '다른 사용자의 편집을 검토',
@@ -1744,7 +1760,7 @@ HTML 태그를 확인하세요.',
 'action-deleterevision' => '이 판을 삭제',
 'action-deletedhistory' => '이 문서의 삭제된 기여의 역사 보기',
 'action-browsearchive' => '삭제된 문서 찾기',
-'action-undelete' => '이 문서 되살리기',
+'action-undelete' => '이 문서 되살리기',
 'action-suppressrevision' => '이 숨겨진 판을 검토하고 되살릴',
 'action-suppressionlog' => '비공개 기록 보기',
 'action-block' => '이 사용자를 편집하지 못하도록 차단',
@@ -1760,12 +1776,17 @@ HTML 태그를 확인하세요.',
 'action-userrights-interwiki' => '다른 위키의 사용자 권한을 조정',
 'action-siteadmin' => '데이터베이스를 잠그거나 잠금 해제하기',
 'action-sendemail' => '이메일 보내기',
+'action-editmywatchlist' => '내 주시문서 목록 편집',
+'action-viewmywatchlist' => '내 주시문서 목록 보기',
+'action-viewmyprivateinfo' => '내 개인 정보 보기',
+'action-editmyprivateinfo' => '내 개인 정보 편집',
 
 # Recent changes
 'nchanges' => '$1개 {{PLURAL:$1|바뀜}}',
 'recentchanges' => '최근 바뀜',
 'recentchanges-legend' => '최근 바뀜 설정',
 'recentchanges-summary' => '위키의 최근 바뀜이 나와 있습니다.',
+'recentchanges-noresult' => '지정한 조건과 일치하는 주어진 기간 동안 바뀜이 없습니다.',
 'recentchanges-feed-description' => '위키의 최근 바뀜이 나와 있습니다.',
 'recentchanges-label-newpage' => '새로운 문서',
 'recentchanges-label-minor' => '사소한 편집',
@@ -1773,14 +1794,14 @@ HTML 태그를 확인하세요.',
 'recentchanges-label-unpatrolled' => '아직 검토하지 않은 편집',
 'rcnote' => "다음은 $4 $5 까지의 {{PLURAL:$2|'''$2'''일}}동안 {{PLURAL:$1|바뀐 문서 '''$1'''개입니다}}.",
 'rcnotefrom' => "다음은 '''$2'''에서부터 바뀐 문서 '''$1'''개입니다.",
-'rclistfrom' => '$1 이래로 바뀐 문서',
+'rclistfrom' => '$1 이래로 새로 바뀐 문서 보기',
 'rcshowhideminor' => '사소한 편집을 $1',
 'rcshowhidebots' => '봇을 $1',
 'rcshowhideliu' => '등록 사용자를 $1',
 'rcshowhideanons' => '익명 사용자를 $1',
 'rcshowhidepatr' => '검토된 편집을 $1',
 'rcshowhidemine' => '내 편집을 $1',
-'rclinks' => 'ìµ\9cê·¼ $2ì\9d¼ê°\84ì\9d\98 $1ê°\9c ë°\94ë\80\9c ê¸°ë¡\9d 보기<br />$3',
+'rclinks' => 'ìµ\9cê·¼ $2ì\9d¼ê°\84ì\9d\98 $1ê°\9c ë°\94ë\80\90 ë¬¸ì\84\9c 보기<br />$3',
 'diff' => '비교',
 'hist' => '역사',
 'hide' => '숨기기',
@@ -1802,11 +1823,10 @@ HTML 태그를 확인하세요.',
 'recentchangeslinked-feed' => '가리키는 글의 바뀜',
 'recentchangeslinked-toolbox' => '가리키는 글의 바뀜',
 'recentchangeslinked-title' => '"$1" 문서에 관련된 문서 바뀜',
-'recentchangeslinked-noresult' => '이 문서에서 링크하는 문서 중, 해당 기간에 바뀐 문서가 없습니다.',
 'recentchangeslinked-summary' => "여기를 가리키는 문서(분류일 경우 이 분류에 포함된 문서)에 대한 최근 바뀜이 나와 있습니다.
 [[Special:Watchlist|주시하는 문서]]는 '''굵은''' 글씨로 나타납니다.",
 'recentchangeslinked-page' => '문서 이름:',
-'recentchangeslinked-to' => '여기를 가리키는 문서의 최근 바뀜',
+'recentchangeslinked-to' => '해당 문서를 링크한 문서의 바뀜 보기',
 
 # Upload
 'upload' => '파일 올리기',
@@ -1814,7 +1834,7 @@ HTML 태그를 확인하세요.',
 'reuploaddesc' => '올리기를 취소하고 올리기 양식으로 돌아가기',
 'upload-tryagain' => '수정된 파일 설명을 저장',
 'uploadnologin' => '로그인하지 않음',
-'uploadnologintext' => '파일을 올리려면 [[Special:UserLogin|로그인]]해야 합니다.',
+'uploadnologintext' => '파일을 올리려면 $1해야 합니다.',
 'upload_directory_missing' => '파일 올리기용 디렉터리($1)가 없고 웹 서버가 만들지 못했습니다.',
 'upload_directory_read_only' => '파일 저장 디렉터리($1)에 쓰기 권한이 없습니다.',
 'uploaderror' => '올리기 오류',
@@ -1987,7 +2007,7 @@ URL이 올바르고 접근 가능한지를 확인하고 다시 시도하세요.
 'backend-fail-synced' => '파일 "$1"은 내부 저장 백엔드에 불안정한 상태로 있습니다.',
 'backend-fail-connect' => '"$1" 저장 백엔드에 접속하지 못했습니다.',
 'backend-fail-internal' => '"$1" 저장 백엔드에 알 수 없는 오류가 발생했습니다.',
-'backend-fail-contenttype' => '"$1"에 저장하기 위한 파일의 내용 유형을 판별하지 못했습니다.',
+'backend-fail-contenttype' => '"$1"에 저장하기 위한 파일의 내용 유형을 결정하지 못했습니다.',
 'backend-fail-batchsize' => '저장 백엔드에서 파일 {{PLURAL:$1|작업}} $1개가 쌓였습니다. 한계는 {{PLURAL:$2|작업}} $2개입니다.',
 'backend-fail-usable' => '파일 읽기/쓰기 권한이 없거나 저장 위치가 빠졌기 때문에 "$1" 파일을 읽거나 쓸 수 없습니다.',
 
@@ -2098,7 +2118,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'filehist-user' => '사용자',
 'filehist-dimensions' => '크기',
 'filehist-filesize' => '파일 크기',
-'filehist-comment' => 'ë\82´ì\9a©',
+'filehist-comment' => 'ë\8d§ê¸\80',
 'filehist-missing' => '파일을 찾을 수 없음',
 'imagelinks' => '이 파일을 사용하는 문서',
 'linkstoimage' => '다음 {{PLURAL:$1|문서 $1개}}가 이 파일을 가리키고 있습니다:',
@@ -2191,14 +2211,14 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'statistics-header-views' => '방문 통계',
 'statistics-header-users' => '사용자 통계',
 'statistics-header-hooks' => '기타 통계',
-'statistics-articles' => '일반 문서',
+'statistics-articles' => '본문',
 'statistics-pages' => '전체 문서',
-'statistics-pages-desc' => '토론 문서, 넘겨주기 문서 등을 포함하는 모든 문서.',
+'statistics-pages-desc' => '토론 문서, 넘겨주기 문서 등을 포함하는 위키에 있는 모든 문서입니다',
 'statistics-files' => '올려져 있는 파일',
 'statistics-edits' => '{{SITENAME}} 설치 후 문서의 전체 편집 횟수',
 'statistics-edits-average' => '문서당 평균 편집 횟수',
 'statistics-views-total' => '총 방문 수',
-'statistics-views-total-desc' => '존재하지 않는 문서나 특수 문서에 대한 방문수는 집계하지 않았습니다.',
+'statistics-views-total-desc' => '존재하지 않는 문서나 특수 문서에 대한 방문 수는 포함하지 않았습니다',
 'statistics-views-peredit' => '편집당 방문 횟수',
 'statistics-users' => '등록된 [[Special:ListUsers|사용자]]',
 'statistics-users-active' => '활동적인 사용자',
@@ -2216,6 +2236,8 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'pageswithprop-text' => '이 문서는 특정 문서 속성을 사용한 문서를 나타냅니다.',
 'pageswithprop-prop' => '속성 이름:',
 'pageswithprop-submit' => '가기',
+'pageswithprop-prophidden-long' => '숨겨진 긴 텍스트 속성 값 ($1 킬로바이트)',
+'pageswithprop-prophidden-binary' => '숨겨진 이진 속성 값 ($1 킬로바이트)',
 
 'doubleredirects' => '이중 넘겨주기 목록',
 'doubleredirectstext' => '이 문서는 다른 넘겨주기 문서로 넘겨주고 있는 문서의 목록입니다.
@@ -2296,7 +2318,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'ancientpages' => '오래된 문서 목록',
 'move' => '이동',
 'movethispage' => '문서 이동하기',
-'unusedimagestext' => 'ë\8b¤ì\9d\8cì\9d\80 ì\96´ë\96¤ 문서도 사용하지 않는 파일의 목록입니다.
+'unusedimagestext' => 'ë\8b¤ì\9d\8cì\9d\80 ì\96´ë\96 í\95\9c 문서도 사용하지 않는 파일의 목록입니다.
 다른 사이트에서 URL 접근을 통해 파일을 사용할 수 있기 때문에, 아래 목록에 있는 파일도 실제로 사용 중일 가능성이 있다는 점을 주의해주세요.',
 'unusedcategoriestext' => '사용하지 않는 분류 문서의 목록입니다.',
 'notargettitle' => '해당하는 문서 없음',
@@ -2357,7 +2379,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 [[Special:UnusedCategories|사용되지 않는 분류]]는 여기에 보이지 않습니다.
 [[Special:WantedCategories|필요한 분류]]도 참고하세요.',
 'categoriesfrom' => '다음으로 시작하는 분류를 보여주기:',
-'special-categories-sort-count' => '항목 갯수 순으로 정렬',
+'special-categories-sort-count' => '갯수 순으로 정렬',
 'special-categories-sort-abc' => '알파벳순으로 정렬',
 
 # Special:DeletedContributions
@@ -2385,7 +2407,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 # Special:ActiveUsers
 'activeusers' => '활동적인 사용자 목록',
 'activeusers-intro' => '다음은 최근 $1{{PLURAL:$1|일}} 동안 활동한 사용자의 목록입니다.',
-'activeusers-count' => '최근 {{PLURAL:$3|$3일}} 사이의 {{PLURAL:$1|활동}} $1회',
+'activeusers-count' => '마지막 {{PLURAL:$3|$3일}} 사이의 {{PLURAL:$1|활동}} $1회',
 'activeusers-from' => '다음으로 시작하는 사용자를 보기:',
 'activeusers-hidebots' => '봇을 숨기기',
 'activeusers-hidesysops' => '관리자를 숨기기',
@@ -2395,7 +2417,8 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'listgrouprights' => '사용자 권한 목록',
 'listgrouprights-summary' => '다음은 이 위키에 있는 사용자 권한 그룹의 목록입니다.
 각각의 권한에 대해서는 [[{{MediaWiki:Listgrouprights-helppage}}|추가 정보]]를 참고하세요.',
-'listgrouprights-key' => '* <span class="listgrouprights-granted">부여된 권한</span>
+'listgrouprights-key' => '범례:
+* <span class="listgrouprights-granted">부여된 권한</span>
 * <span class="listgrouprights-revoked">해제된 권한</span>',
 'listgrouprights-group' => '그룹',
 'listgrouprights-rights' => '권한',
@@ -2414,8 +2437,8 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'mailnologin' => '보낼 이메일 주소가 없음',
 'mailnologintext' => '다른 사용자에게 이메일을 보내려면 [[Special:UserLogin|로그인]]한 다음 [[Special:Preferences|사용자 환경 설정]]에서 자신의 이메일 주소를 저장해야 합니다.',
 'emailuser' => '이메일 보내기',
-'emailuser-title-target' => '이 {{GENDER:$1|사용자}} 이메일',
-'emailuser-title-notarget' => '사용자 이메일',
+'emailuser-title-target' => '이 {{GENDER:$1|사용자}}에게 이메일 보내기',
+'emailuser-title-notarget' => '사용자에게 이메일 보내기',
 'emailpage' => '사용자에게 이메일 보내기',
 'emailpagetext' => '이 {{GENDER:$1|사용자}}가 환경 설정에 올바른 이메일 주소를 적었다면, 아래 양식을 통해 이메일을 보낼 수 있습니다.
 이메일을 받은 사용자가 바로 답장할 수 있도록 하기 위해 [[Special:Preferences|사용자 환경 설정]]에 적은 이메일 주소가 "발신자" 정보에 들어갑니다. 따라서 수신자가 당신에게 직접 답장을 보낼 수 있습니다.',
@@ -2467,7 +2490,6 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'unwatchthispage' => '주시 해제하기',
 'notanarticle' => '문서가 아님',
 'notvisiblerev' => '이 판은 삭제되었습니다.',
-'watchnochange' => '주어진 기간 중에 바뀐 주시문서가 없습니다.',
 'watchlist-details' => '토론을 제외하고 {{PLURAL:$1|문서 $1개}}를 주시하고 있습니다.',
 'wlheader-enotif' => '이메일 알림 기능이 활성화되었습니다.',
 'wlheader-showupdated' => "마지막으로 방문한 이후에 바뀐 문서는 '''굵은 글씨'''로 보여집니다.",
@@ -2476,7 +2498,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'watchlistcontains' => '{{PLURAL:$1|문서 $1개}}를 주시하고 있습니다.',
 'iteminvalidname' => "'$1' 항목에 문제가 발생했습니다. 이름이 잘못되었습니다...",
 'wlnote' => "다음은 최근 {{PLURAL:$2|'''$2'''시간}} 동안 {{PLURAL:$1|바뀐 문서 '''$1'''개 입니다}}. ($3 $4 기준)",
-'wlshowlast' => '최근 $1시간 $2일 또는 $3 동안에 바뀐 문서',
+'wlshowlast' => '최근 $1시간 $2일 또는 $3 동안에 바뀐 문서 보기',
 'watchlist-options' => '주시문서 목록 설정',
 
 # Displayed when you click the "watch" button and it is in the process of watching
@@ -2578,11 +2600,11 @@ $UNWATCHURL
 마지막으로 이 문서를 편집한 사용자는 [[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]]의 마지막 버전으로 되돌림',
-'revertpage-nouser' => '(사용자 이름 삭제됨)의 편집을 [[User:$1|$1]]의 마지막 편집으로 되돌림',
+'revertpage-nouser' => '숨긴 사용자의 편집을 [[User:$1|$1]]의 마지막 편집으로 되돌림',
 'rollback-success' => '$1의 편집을 $2의 마지막 버전으로 되돌렸습니다.',
 
 # Edit tokens
-'sessionfailure-title' => 'ì\84¸ì\85\98 ì\86\90ì\8b¤',
+'sessionfailure-title' => 'ì\84¸ì\85\98 ì\8b¤í\8c¨',
 'sessionfailure' => '로그인 세션에 문제가 발생한 것 같습니다.
 세션 하이재킹을 막기 위해 동작이 취소되었습니다.
 브라우저의 뒤로 버튼을 누르고 문서를 새로 고침한 후에 다시 시도해 주세요.',
@@ -2697,7 +2719,7 @@ $1',
 'undelete-search-box' => '삭제된 문서 찾기',
 'undelete-search-prefix' => '다음으로 시작하는 문서 보기:',
 'undelete-search-submit' => '찾기',
-'undelete-no-results' => '삭제된 문서 보존 자료에서 입력한 값에 맞는 문서가 없습니다.',
+'undelete-no-results' => '삭제된 문서 보존에서 일지하는 문서를 찾을 수 없습니다.',
 'undelete-filename-mismatch' => '타임스탬프가 $1인 파일의 버전을 되살릴 수 없습니다: 파일 이름이 일치하지 않습니다.',
 'undelete-bad-store-key' => '타임스탬프가 $1인 파일의 버전을 되살릴 수 없습니다: 파일이 삭제되기 전에 사라졌습니다.',
 'undelete-cleanup-error' => '사용되지 않는 보존된 파일 "$1"을 삭제하는 데 오류가 발생했습니다.',
@@ -2714,9 +2736,9 @@ $1',
 # Namespace form on various pages
 'namespace' => '이름공간:',
 'invert' => '선택 반전',
-'tooltip-invert' => '선택한 이름공간에 있는 문서의 바뀜을 숨기려면 이 상자에 체크해주세요.',
+'tooltip-invert' => '선택한 이름공간(선택되어 있다면 관련된 이름공간도 포함)에 있는 문서의 바뀜을 숨기려면 이 상자를 선택하세요',
 'namespace_association' => '관련된 이름공간',
-'tooltip-namespace_association' => '선택한 이름공간과 관련된 토론이나 본문 이름공간을 같이 선택합니다.',
+'tooltip-namespace_association' => '선택한 이름공간과 관련된 토론이나 본문 이름공간을 포함하려면 이 상자를 선택하세요',
 'blanknamespace' => '(일반)',
 
 # Contributions
@@ -2724,7 +2746,7 @@ $1',
 'contributions-title' => '$1 사용자의 기여 목록',
 'mycontris' => '기여 목록',
 'contribsub2' => '$1($2)의 기여',
-'nocontribs' => 'ì\9d´ ì\82¬ì\9a©ì\9e\90ë\8a\94 ì\95\84무 ê²\83ë\8f\84 ê¸°ì\97¬í\95\98ì§\80 ì\95\8aì\95\98습니다.',
+'nocontribs' => 'ì§\80ì \95í\95\9c ì¡°ê±´ê³¼ ì\9d¼ì¹\98í\95\98ë\8a\94 ë°\94ë\80\9cì\9d\84 ì°¾ì\9d\84 ì\88\98 ì\97\86습니다.',
 'uctop' => '(최신)',
 'month' => '월:',
 'year' => '연도:',
@@ -2734,7 +2756,7 @@ $1',
 'sp-contributions-newbies-title' => '새 사용자의 기여',
 'sp-contributions-blocklog' => '차단 기록',
 'sp-contributions-deleted' => '삭제된 기여 목록',
-'sp-contributions-uploads' => '파일 올리기',
+'sp-contributions-uploads' => '올린 파일',
 'sp-contributions-logs' => '기록',
 'sp-contributions-talk' => '토론',
 'sp-contributions-userrights' => '사용자 권한 관리',
@@ -2782,10 +2804,10 @@ $1',
 'ipbreason' => '이유:',
 'ipbreasonotherlist' => '다른 이유',
 'ipbreason-dropdown' => '*일반적인 차단 이유
-** 거짓 정보 추가
+** 거짓 정보를 넣음
 ** 문서 내용을 지움
-** ë¬¸ì\84\9cì\97\90 ê´\91ê³ ì\84± ë§\81í\81¬ë¥¼ ë§\8cë\93¦
-** 장난 편집
+** ë°\94ê¹¥ ì\82¬ì\9d´í\8a¸ì\9d\98 ê´\91ê³ ì\84± ë§\81í\81¬ë¥¼ ë\84£ì\9d\8c
+** 문서에 장난성 내용을 넣음
 ** 협박성 행동
 ** 다중 계정 악용
 ** 부적절한 사용자 이름',
@@ -2817,9 +2839,9 @@ $1',
 'unblockip' => '사용자 차단 해제',
 'unblockiptext' => '아래의 양식에 차단 해제하려는 IP 주소나 사용자 이름을 입력하세요.',
 'ipusubmit' => '차단 해제',
-'unblocked' => '[[User:$1|$1]] 사용자 차단 해제됨',
+'unblocked' => '[[User:$1|$1]] 사용자의 차단을 해제했습니다.',
 'unblocked-range' => '$1 대역이 차단 해제되었습니다.',
-'unblocked-id' => '차단 $1 해제됨',
+'unblocked-id' => '$1 차단이 해제되었습니다.',
 'blocklist' => '차단된 사용자 목록',
 'ipblocklist' => '차단된 사용자',
 'ipblocklist-legend' => '차단 중인 사용자 찾기',
@@ -2924,29 +2946,29 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 # Move page
 'move-page' => '$1 이동',
 'move-page-legend' => '문서 이동하기',
-'movepagetext' => "아래의 양식을 사용해 문서의 이름을 바꾸고 문서의 모든 역사를 새 이름으로 옮길 수 있습니다.
\9d´ì \84ì\9d\98 ì \9c목ì\9d\80 ì\83\88 ì \9c목ì\9c¼ë¡\9c ë\84\98겨ì¤\84 ê²\83ì\9e\85ë\8b\88ë\8b¤.
\9b\90ë\9e\98 ì\9d´ë¦\84ì\9d\84 ê°\80리í\82¤ë\8a\94 ë\84\98겨주기를 ì\9e\90ë\8f\99ì\9c¼ë¡\9c ì\83\88ë¡\9c ê³ ì¹  ì\88\98 ì\9e\88ì\8aµ니다.
-만약 이 설정을 선택하지 않았다면 [[Special:DoubleRedirects|이중 넘겨주기]]와 [[Special:BrokenRedirects|끊긴 넘겨주기]]가 있는지 확인해주세요.
\84\98겨주기 ë§\81í\81¬ê°\80 ì \9cë\8c\80ë¡\9c í\96¥í\95\98ê³  ì\9e\88ë\8a\94ì§\80 í\99\95ì\9d¸í\95\98ì\97¬ì\95¼ í\95©니다.
-
-참고ë¡\9c ì\83\88 ì \9c목ì\9c¼ë¡\9c ë\90\9c ë¬¸ì\84\9cê°\80 ì\9d´ë¯¸ ì\9e\88ì\9d\84 ë\95\8c, ë\84\98겨주기 ë¬¸ì\84\9cì\9d´ê³  ë¬¸ì\84\9c ì\97­ì\82¬ê°\80 ì\97\86ì\9d\84 ë\95\8cì\97\90ë§\8c ì\9d´ë\8f\99í\95\98ë©° ê·¸ë \87ì§\80 ì\95\8aì\9d\84 ê²½ì\9a°ì\97\90ë\8a\94 ì\9d´ë\8f\99í\95\98ì§\80 '''ì\95\8aì\8aµë\8b\88ë\8b¤'''.
\8b¤ì\88\98ë¡\9c ë¬¸ì\84\9c를 ì\98®ê²¼ì\9d\84 ë\95\8c ë\90\98ë\8f\8c릴 ì\88\98ë\8a\94 ì\9e\88ì§\80ë§\8c ì\9d´ë¯¸ ì\9e\88ë\8a\94 ë¬¸ì\84\9c를 ë\8d®ì\96´ì\93¸ ì\88\98 ì\97\86ì\9d\8c을 의미합니다.
-
-'''경고!'''
\9d¸ê¸° ì\9e\88ë\8a\94 ë¬¸ì\84\9cì\9d¼ ê²½ì\9a° ì\8b¬ê°\81í\95\98ê³  ì\98\88ì\83\81í\95\98ì§\80 ëª»í\95\9c ë¬¸ì \9c를 ì´\88ë\9e\98í\95  ì\88\98 있습니다.
-문서를 이동하기 전에 이러한 행동이 초래할 수 있는 결과에 대해 숙지하시기 바랍니다.",
-'movepagetext-noredirectfixer' => "아래의 양식을 사용해 문서의 이름을 바꾸고 문서의 모든 역사를 새 이름으로 옮길 수 있습니다.
\9d´ì \84ì\9d\98 ì \9c목ì\9d\80 ì\83\88 ì \9c목ì\9c¼ë¡\9c ë\84\98겨ì¤\84 ê²\83ì\9e\85니다.
-[[Special:DoubleRedirects|이중 넘겨주기]]나 [[Special:BrokenRedirects|끊긴 넘겨주기]]가 있는지 확인해주세요.
\84\98겨주기 ë§\81í\81¬ê°\80 ì \9cë\8c\80ë¡\9c í\96¥í\95\98ê³  ì\9e\88ë\8a\94ì§\80 í\99\95ì\9d¸í\95\98ì\97¬ì\95¼ í\95©니다.
-
-참고ë¡\9c ì\83\88 ì \9c목ì\9c¼ë¡\9c ë\90\9c ë¬¸ì\84\9cê°\80 ì\9d´ë¯¸ ì\9e\88ì\9d\84 ë\95\8c, ë¹\84ì\96´ ì\9e\88ê±°ë\82\98 ë\84\98겨주기 ë¬¸ì\84\9cì\9d´ê³  ë¬¸ì\84\9c ì\97­ì\82¬ê°\80 ì\97\86ì\9d\84 ë\95\8cì\97\90ë§\8c ì\9d´ë\8f\99í\95\98ë©° ê·¸ë \87ì§\80 ì\95\8aì\9d\84 ê²½ì\9a°ì\97\90ë\8a\94 ì\9d´ë\8f\99í\95\98ì§\80 '''ì\95\8aì\8aµë\8b\88ë\8b¤'''.
\8b¤ì\88\98ë¡\9c ë¬¸ì\84\9c를 ì\98®ê²¼ì\9d\84 ë\95\8c ë\90\98ë\8f\8c릴 ì\88\98ë\8a\94 ì\9e\88ì§\80ë§\8c ì\9d´ë¯¸ ì\9e\88ë\8a\94 ë¬¸ì\84\9c를 ë\8d®ì\96´ì\93¸ ì\88\98 ì\97\86ì\9d\8c을 의미합니다.
-
-'''경고!'''
\9d¸ê¸° ì\9e\88ë\8a\94 ë¬¸ì\84\9cì\9d¼ ê²½ì\9a° ì\8b¬ê°\81í\95\98ê³  ì\98\88ì\83\81í\95\98ì§\80 ëª»í\95\9c ë¬¸ì \9c를 ì´\88ë\9e\98í\95  ì\88\98 있습니다.
-문서를 이동하기 전에 이러한 행동이 초래할 수 있는 결과에 대해 숙지하시기 바랍니다.",
+'movepagetext' => "아래 양식을 채워 문서의 이름을 바꾸고 모든 역사를 새 이름으로 된 문서로 옮길 수 있습니다.
\9b\90ë\9e\98ì\9d\98 ë¬¸ì\84\9cë\8a\94 ì\83\88 ë¬¸ì\84\9cë¡\9c ë\84\98겨주ë\8a\94 ë§\81í\81¬ë¡\9cë§\8c ë\82¨ê²\8c ë\90\98ê³ ,
\9b\90ë\9e\98 ì\9d´ë¦\84ì\9d\84 ê°\80리í\82¤ë\8a\94 ë\84\98겨주기ë\8a\94 ì\9e\90ë\8f\99ì\9c¼ë¡\9c ê°±ì\8b ë\90©니다.
+만약 이 설정을 선택하지 않았다면 [[Special:DoubleRedirects|이중 넘겨주기]]와 [[Special:BrokenRedirects|끊긴 넘겨주기]] 확인해주세요.
\8b¹ì\8b ì\9d\80 ë§\81í\81¬ì\99\80 ê°\80리í\82¤ë\8a\94 ë\8c\80ì\83\81ì\9d´ ì\84\9cë¡\9c ì\9d¼ì¹\98í\95\98ë\8f\84ë¡\9d í\95´ì\95¼ í\95\98ë\8a\94 ì±\85ì\9e\84ì\9d\84 ì§\91니다.
+
+ë§\8cì\95½ ì\9d´ë¯¸ ì\9e\88ë\8a\94 ë¬¸ì\84\9cì\9d\98 ì\9d´ë¦\84ì\9d\84 ì\83\88 ì\9d´ë¦\84ì\9c¼ë¡\9c ì\9e\85ë ¥í\96\88ì\9d\84 ë\95\8cë\8a\94 ê·¸ ë¬¸ì\84\9cê°\80 ë\84\98겨주기 ë¬¸ì\84\9cì\9d´ê³  ë¬¸ì\84\9c ì\97­ì\82¬ê°\80 ì\97\86ì\96´ì\95¼ë§\8c ì\9d´ë\8f\99ì\9d´ ë\90©ë\8b\88ë\8b¤. ê·¸ë \87ì§\80 ì\95\8aì\9d\84 ê²½ì\9a°ì\97\90ë\8a\94 ì\9d´ë\8f\99ë\90\98ì§\80 '''ì\95\8aì\8aµë\8b\88ë\8b¤'''.
\9d´ê²\83ì\9d\80 ì\8b¤ì\88\98ë¡\9c ì\9d´ë\8f\99í\95\9c ë¬¸ì\84\9c를 ë\90\98ë\8f\8c릴 ì\88\98ë\8a\94 ì\9e\88ì§\80ë§\8c, ì\9d´ë¯¸ ì¡´ì\9e¬í\95\98ë\8a\94 ë¬¸ì\84\9c ì\9c\84ì\97\90 ë\8d®ì\96´ì\94\8cì\9a¸ ì\88\98ë\8a\94 ì\97\86ë\8b¤ë\8a\94 ê²\83을 의미합니다.
+
+'''주의!'''
\9e\90주 ì\82¬ì\9a©í\95\98ë\8a\94 ë¬¸ì\84\9c를 ì\9d´ë\8f\99í\95\98ë©´ í\95´ê²°í\95\98기 ì\96´ë ¤ì\9a´ ë¬¸ì \9c를 ì\9d¼ì\9c¼í\82¬ ì\88\98ë\8f\84 있습니다.
+이동하기 전에 반드시 이 문서를 이동해도 문제가 없는지 확인해주세요.",
+'movepagetext-noredirectfixer' => "아래 양식을 채워 문서의 이름을 바꾸고 모든 역사를 새 이름으로 된 문서로 옮길 수 있습니다.
\9b\90ë\9e\98ì\9d\98 ë¬¸ì\84\9cë\8a\94 ì\83\88 ë¬¸ì\84\9cë¡\9c ë\84\98겨주ë\8a\94 ë§\81í\81¬ë¡\9cë§\8c ë\82¨ê²\8c ë\90©니다.
+[[Special:DoubleRedirects|이중 넘겨주기]]와 [[Special:BrokenRedirects|끊긴 넘겨주기]]를 확인해주세요.
\8b¹ì\8b ì\9d\80 ë§\81í\81¬ì\99\80 ê°\80리í\82¤ë\8a\94 ë\8c\80ì\83\81ì\9d´ ì\84\9cë¡\9c ì\9d¼ì¹\98í\95\98ë\8f\84ë¡\9d í\95´ì\95¼ í\95\98ë\8a\94 ì±\85ì\9e\84ì\9d\84 ì§\91니다.
+
+ë§\8cì\95½ ì\9d´ë¯¸ ì\9e\88ë\8a\94 ë¬¸ì\84\9cì\9d\98 ì\9d´ë¦\84ì\9d\84 ì\83\88 ì\9d´ë¦\84ì\9c¼ë¡\9c ì\9e\85ë ¥í\96\88ì\9d\84 ë\95\8cë\8a\94 ê·¸ ë¬¸ì\84\9cê°\80 ë\84\98겨주기 ë¬¸ì\84\9cì\9d´ê³  ë¬¸ì\84\9c ì\97­ì\82¬ê°\80 ì\97\86ì\96´ì\95¼ë§\8c ì\9d´ë\8f\99ì\9d´ ë\90©ë\8b\88ë\8b¤. ê·¸ë \87ì§\80 ì\95\8aì\9d\84 ê²½ì\9a°ì\97\90ë\8a\94 ì\9d´ë\8f\99ë\90\98ì§\80 '''ì\95\8aì\8aµë\8b\88ë\8b¤'''.
\9d´ê²\83ì\9d\80 ì\8b¤ì\88\98ë¡\9c ì\9d´ë\8f\99í\95\9c ë¬¸ì\84\9c를 ë\90\98ë\8f\8c릴 ì\88\98ë\8a\94 ì\9e\88ì§\80ë§\8c, ì\9d´ë¯¸ ì¡´ì\9e¬í\95\98ë\8a\94 ë¬¸ì\84\9c ì\9c\84ì\97\90 ë\8d®ì\96´ì\94\8cì\9a¸ ì\88\98ë\8a\94 ì\97\86ë\8b¤ë\8a\94 ê²\83을 의미합니다.
+
+'''주의!'''
\9e\90주 ì\82¬ì\9a©í\95\98ë\8a\94 ë¬¸ì\84\9c를 ì\9d´ë\8f\99í\95\98ë©´ í\95´ê²°í\95\98기 ì\96´ë ¤ì\9a´ ë¬¸ì \9c를 ì\9d¼ì\9c¼í\82¬ ì\88\98ë\8f\84 있습니다.
+이동하기 전에 반드시 이 문서를 이동해도 문제가 없는지 확인해주세요.",
 'movepagetalktext' => "딸린 토론 문서도 자동으로 이동합니다. 하지만 다음의 경우는 '''이동하지 않습니다''':
 * 이동할 이름으로 된 문서가 이미 있는 경우
 * 아래의 선택을 해제하는 경우
@@ -3039,7 +3061,7 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 # Namespace 8 related
 'allmessages' => '시스템 메시지 목록',
 'allmessagesname' => '이름',
-'allmessagesdefault' => '기본 ë\82´ì\9a©',
+'allmessagesdefault' => '기본 ë©\94ì\8b\9cì§\80 ê¸\80',
 'allmessagescurrent' => '현재 문자열',
 'allmessagestext' => '미디어위키 이름공간에 있는 모든 시스템 메시지의 목록입니다.
 미디어위키의 번역 작업에 관심이 있으면 [//www.mediawiki.org/wiki/Localisation 미디어위키 지역화]나 [//translatewiki.net translatewiki.net]에 참가해주세요.',
@@ -3090,10 +3112,10 @@ $2',
 'importnopages' => '가져올 문서가 없습니다.',
 'imported-log-entries' => '{{PLURAL:$1|기록 항목}} $1개를 가져왔습니다.',
 'importfailed' => '가져오기 실패: <nowiki>$1</nowiki>',
-'importunknownsource' => 'ì\95\8c ì\88\98 ì\97\86ë\8a\94 ê°\80ì ¸ì\98¤ê¸° ì\9e\90ë£\8c 유형',
+'importunknownsource' => 'ì\95\8c ì\88\98 ì\97\86ë\8a\94 ê°\80ì ¸ì\98¤ê¸° ì\9b\90본 유형',
 'importcantopen' => '파일을 열 수 없습니다.',
 'importbadinterwiki' => '인터위키 링크가 잘못되었습니다.',
-'importnotext' => '내용이 없습니다.',
+'importnotext' => '내용이 없습니다',
 'importsuccess' => '가져오기 완료!',
 'importhistoryconflict' => '문서 역사가 충돌하는 판이 있습니다. (이전에 이 문서를 가져온 적이 있을 수도 있습니다)',
 'importnosources' => '문서를 가져올 출처가 정의되지 않았고 문서 역사 올리기가 비활성화되었습니다.',
@@ -3142,73 +3164,73 @@ $2',
 
 # Tooltip help for the actions
 'tooltip-pt-userpage' => '내 사용자 문서',
-'tooltip-pt-anonuserpage' => '현재 사용하는 IP의 사용자 문서',
+'tooltip-pt-anonuserpage' => '현재 사용하는 IP 주소의 사용자 문서',
 'tooltip-pt-mytalk' => '내 토론 문서',
-'tooltip-pt-anontalk' => '현재 사용하는 IP를 위한 사용자 토론 문서',
+'tooltip-pt-anontalk' => '현재 사용하는 IP 주소에 대한 토론 문서',
 'tooltip-pt-preferences' => '사용자 환경 설정',
 'tooltip-pt-watchlist' => '주시문서에 대한 바뀜 목록',
-'tooltip-pt-mycontris' => '내가 편집한 글',
+'tooltip-pt-mycontris' => '내 기여 목록',
 'tooltip-pt-login' => '꼭 로그인해야 하는 것은 아니지만, 로그인을 권장합니다.',
 'tooltip-pt-anonlogin' => '꼭 필요한 것은 아니지만, 로그인을 하면 편리한 점이 많습니다.',
 'tooltip-pt-logout' => '로그아웃',
 'tooltip-ca-talk' => '문서의 내용에 대한 토론 문서',
-'tooltip-ca-edit' => '문서를 편집할 수 있습니다. 저장하기 전에 미리 보기를 해 주세요.',
+'tooltip-ca-edit' => '문서를 편집할 수 있습니다. 저장하기 전에 미리 보기를 해주세요.',
 'tooltip-ca-addsection' => '문단 추가하기',
-'tooltip-ca-viewsource' => '문서가 잠겨 있습니다.
-문서의 내용만 볼 수 있습니다.',
+'tooltip-ca-viewsource' => '이 문서가 잠겨 있습니다.
+문서의 원본을 볼 수 있습니다.',
 'tooltip-ca-history' => '문서의 과거 판',
 'tooltip-ca-protect' => '문서 보호하기',
 'tooltip-ca-unprotect' => '이 문서의 보호 설정을 바꾸기',
 'tooltip-ca-delete' => '문서 삭제하기',
 'tooltip-ca-undelete' => '삭제되기 전에 이 문서의 완료한 편집 되살리기',
 'tooltip-ca-move' => '문서 이동하기',
-'tooltip-ca-watch' => '이 문서를 주시문서 목록에 추가합니다.',
-'tooltip-ca-unwatch' => '이 문서를 주시문서 목록에서 제거합니다.',
+'tooltip-ca-watch' => '이 문서를 주시문서 목록에 추가',
+'tooltip-ca-unwatch' => '이 문서를 주시문서 목록에서 제거',
 'tooltip-search' => '{{SITENAME}} 찾기',
 'tooltip-search-go' => '이 이름의 문서가 존재하면 그 문서로 바로 가기',
 'tooltip-search-fulltext' => '이 문자열이 포함된 문서 찾기',
-'tooltip-p-logo' => '대문 방문하기',
-'tooltip-n-mainpage' => '대문으로',
-'tooltip-n-mainpage-description' => '대문으로',
-'tooltip-n-portal' => '프로젝트 소개, 여러분이 할 수 있는 것, 무언가를 찾는 곳',
-'tooltip-n-currentevents' => '최근의 소식을 봅니다',
-'tooltip-n-recentchanges' => 'ì\9d´ ì\9c\84í\82¤ì\97\90ì\84\9c ìµ\9cê·¼ ë°\94ë\80\90 ë\82´ì\9a©ì\9d\98 목록',
-'tooltip-n-randompage' => '임의 문서로 갑니다',
+'tooltip-p-logo' => '대문으로 가기',
+'tooltip-n-mainpage' => '대문으로 가기',
+'tooltip-n-mainpage-description' => '대문으로 가기',
+'tooltip-n-portal' => '프로젝트에 대해 여러분이 할 수 있고, 정보를 찾을 수 있는 곳',
+'tooltip-n-currentevents' => '최근의 소식 알아 보기',
+'tooltip-n-recentchanges' => 'ì\9c\84í\82¤ì\9d\98 ìµ\9cê·¼ ë°\94ë\80\9c 목록',
+'tooltip-n-randompage' => '임의 문서 읽기',
 'tooltip-n-help' => '도움말',
-'tooltip-t-whatlinkshere' => 'ì\97¬ê¸°ë¡\9c ì\97°ê²°ë\90\9c ëª¨ë\93  문서의 목록',
-'tooltip-t-recentchangeslinked' => 'ì\97¬ê¸°ë¡\9c ì\97°ê²°ë\90\9c ëª¨ë\93  ë¬¸ì\84\9cì\9d\98 ë°\94ë\80\9c ë\82´ì\97­',
-'tooltip-feed-rss' => '이 문서의 RSS 피드입니다.',
-'tooltip-feed-atom' => '이 문서의 Atom 피드입니다.',
-'tooltip-t-contributions' => '이 사용자의 기여 목록을 봅니다.',
-'tooltip-t-emailuser' => '이 사용자에게 이메일을 보냅니다.',
-'tooltip-t-upload' => '파일을 올립니다.',
+'tooltip-t-whatlinkshere' => 'ì\97¬ê¸°ë¥¼ ë§\81í\81¬í\95\9c ëª¨ë\93  ì\9c\84í\82¤ 문서의 목록',
+'tooltip-t-recentchangeslinked' => 'ì\9d´ ë¬¸ì\84\9cì\97\90ì\84\9c ë§\81í\81¬í\95\9c ë¬¸ì\84\9cì\9d\98 ìµ\9cê·¼ ë°\94ë\80\9c',
+'tooltip-feed-rss' => '이 문서의 RSS 피드',
+'tooltip-feed-atom' => '이 문서의 Atom 피드',
+'tooltip-t-contributions' => '이 사용자의 기여 목록',
+'tooltip-t-emailuser' => '이 사용자에게 이메일 보내기',
+'tooltip-t-upload' => '파일 올리기',
 'tooltip-t-specialpages' => '모든 특수 문서의 목록',
 'tooltip-t-print' => '이 문서의 인쇄용 버전',
-'tooltip-t-permalink' => '이 판에 대한 고유링크',
-'tooltip-ca-nstab-main' => '문ì\84\9c ë\82´ì\9a©ì\9d\84 ë´\85ë\8b\88ë\8b¤.',
-'tooltip-ca-nstab-user' => 'ì\82¬ì\9a©ì\9e\90 ë¬¸ì\84\9c ë\82´ì\9a©ì\9d\84 ë´\85ë\8b\88ë\8b¤.',
-'tooltip-ca-nstab-media' => '미ë\94\94ì\96´ ë¬¸ì\84\9c ë\82´ì\9a©ì\9d\84 ë´\85ë\8b\88ë\8b¤.',
-'tooltip-ca-nstab-special' => '이 문서는 특수 문서로, 편집할 수 없습니다.',
-'tooltip-ca-nstab-project' => 'í\94\84ë¡\9cì \9dí\8a¸ ë¬¸ì\84\9c ë\82´ì\9a©ì\9d\84 ë´\85ë\8b\88ë\8b¤.',
-'tooltip-ca-nstab-image' => 'í\8c\8cì\9d¼ ë¬¸ì\84\9c ë\82´ì\9a©ì\9d\84 ë´\85ë\8b\88ë\8b¤.',
-'tooltip-ca-nstab-mediawiki' => 'ì\8b\9cì\8a¤í\85\9c ë©\94ì\8b\9cì§\80 ë\82´ì\9a©ì\9d\84 ë´\85ë\8b\88ë\8b¤.',
-'tooltip-ca-nstab-template' => 'í\8b\80 ë¬¸ì\84\9c ë\82´ì\9a©ì\9d\84 ë´\85ë\8b\88ë\8b¤.',
-'tooltip-ca-nstab-help' => 'ë\8f\84ì\9b\80ë§\90 ë¬¸ì\84\9c ë\82´ì\9a©ì\9d\84 ë´\85ë\8b\88ë\8b¤.',
-'tooltip-ca-nstab-category' => 'ë¶\84ë¥\98 ë¬¸ì\84\9c ë\82´ì\9a©ì\9d\84 ë´\85ë\8b\88ë\8b¤.',
-'tooltip-minoredit' => '사소한 편집으로 표시하기',
+'tooltip-t-permalink' => '문서의 이 판에 대한 고유링크',
+'tooltip-ca-nstab-main' => '본문 ë³´ê¸°',
+'tooltip-ca-nstab-user' => 'ì\82¬ì\9a©ì\9e\90 ë¬¸ì\84\9c ë³´ê¸°',
+'tooltip-ca-nstab-media' => '미ë\94\94ì\96´ ë¬¸ì\84\9c ë³´ê¸°',
+'tooltip-ca-nstab-special' => '이 문서는 특수 문서로, 문서 자체를 편집할 수 없습니다',
+'tooltip-ca-nstab-project' => 'í\94\84ë¡\9cì \9dí\8a¸ ë¬¸ì\84\9c ë³´ê¸°',
+'tooltip-ca-nstab-image' => 'í\8c\8cì\9d¼ ë¬¸ì\84\9c ë³´ê¸°',
+'tooltip-ca-nstab-mediawiki' => 'ì\8b\9cì\8a¤í\85\9c ë©\94ì\8b\9cì§\80 ë³´ê¸°',
+'tooltip-ca-nstab-template' => 'í\8b\80 ë³´ê¸°',
+'tooltip-ca-nstab-help' => 'ë\8f\84ì\9b\80ë§\90 ë¬¸ì\84\9c ë³´ê¸°',
+'tooltip-ca-nstab-category' => 'ë¶\84ë¥\98 ë¬¸ì\84\9c ë³´ê¸°',
+'tooltip-minoredit' => 'ì\9d´ í\8e¸ì§\91ì\9d\84 ì\82¬ì\86\8cí\95\9c í\8e¸ì§\91ì\9c¼ë¡\9c í\91\9cì\8b\9cí\95\98기',
 'tooltip-save' => '바뀐 내용 저장하기',
-'tooltip-preview' => '바뀜을 미리 봅니다. 저장하기 전에 꼭 미리 보기를 해 주세요!',
-'tooltip-diff' => '자신이 바꾼  보기',
+'tooltip-preview' => '바뀜을 미리 봅니다. 저장하기 전에 미리 보기를 해주세요!',
+'tooltip-diff' => '자신이 바꾼 내용 보기',
 'tooltip-compareselectedversions' => '이 문서에서 선택한 두 판간의 차이를 비교',
 'tooltip-watch' => '이 문서를 주시문서 목록에 추가',
 'tooltip-watchlistedit-normal-submit' => '항목 제거하기',
 'tooltip-watchlistedit-raw-submit' => '주시문서 목록 새로 고침',
 'tooltip-recreate' => '문서를 편집하는 중 삭제되어도 새로 만들기',
-'tooltip-upload' => '파일 올리기 시작',
+'tooltip-upload' => '파일 올리기',
 'tooltip-rollback' => '"되돌리기" 기능을 사용하면 이 문서에 대한 마지막 기여자의 편집을 모두 되돌릴 수 있습니다.',
 'tooltip-undo' => '"편집 취소" 기능을 사용하면 이 편집이 되돌려지고 차이 보기 기능이 미리 보기 형식으로 나타납니다. 편집 요약에 이 편집을 왜 되돌리는지에 대한 이유를 쓸 수 있습니다.',
 'tooltip-preferences-save' => '환경 설정 저장하기',
-'tooltip-summary' => '짧은 편집 요약을 적어주세요',
+'tooltip-summary' => '짧은 요약을 적어주세요',
 
 # Stylesheets
 'common.css' => '/* 이 CSS 설정은 모든 스킨에 동일하게 적용됩니다 */',
@@ -3296,7 +3318,7 @@ $2',
 'pageinfo-toolboxlink' => '문서 정보',
 'pageinfo-redirectsto' => '넘겨주기 대상',
 'pageinfo-redirectsto-info' => '정보',
-'pageinfo-contentpage' => 'ë\82´ì\9a© ë¬¸ì\84\9c로 집계',
+'pageinfo-contentpage' => '본문ì\9c¼로 집계',
 'pageinfo-contentpage-yes' => '예',
 'pageinfo-protect-cascading' => '여기서의 연쇄적 보호',
 'pageinfo-protect-cascading-yes' => '예',
@@ -3658,7 +3680,7 @@ Variants for Chinese language
 'exif-exposureprogram-4' => '셔터 우선',
 'exif-exposureprogram-5' => '크리에이티브 프로그램 (피사계 심도 우선)',
 'exif-exposureprogram-6' => '액션 프로그램 (빠른 셔터 속도에 치중)',
-'exif-exposureprogram-7' => 'ì\9d¸ë¬¼ ì\82¬ì§\84 ëª¨ë\93\9c (ë°°ê²½ì\9d\84 ì´\88ì \90 ë°\96ì\9c¼ë¡\9c í\95\98ì\97¬ 대상을 강조)',
+'exif-exposureprogram-7' => 'ì\9d¸ë¬¼ ì\82¬ì§\84 ëª¨ë\93\9c (ë°°ê²½ì\9d\84 ì´\88ì \90 ë°\96ì\9c¼ë¡\9c í\95´ì\84\9c 대상을 강조)',
 'exif-exposureprogram-8' => '풍경 모드 (초점이 배경인 풍경 사진용)',
 
 'exif-subjectdistance-value' => '$1 미터',
@@ -3847,7 +3869,7 @@ Variants for Chinese language
 
 # Email address confirmation
 'confirmemail' => '이메일 주소 확인',
-'confirmemail_noemail' => '[[Special:Preferences|사용자 환경 설정]]에 올바른 이메일주소를 설정하지 않았습니다.',
+'confirmemail_noemail' => '[[Special:Preferences|사용자 환경 설정]]에 올바른 이메일 주소를 설정하지 않았습니다.',
 'confirmemail_text' => '{{SITENAME}}에서는 이메일 기능을 사용하기 전에 이메일 인증을 받아야 합니다.
 아래의 버튼을 누르면 인증 메일을 보냅니다.
 메일에는 인증 코드가 들어있는 링크가 있습니다.
@@ -4021,7 +4043,6 @@ $5
 'version-other' => '기타',
 'version-mediahandlers' => '미디어 핸들러',
 'version-hooks' => '훅',
-'version-extension-functions' => '확장 함수',
 'version-parser-extensiontags' => '파서 확장 태그',
 'version-parser-function-hooks' => '파서 기능 훅',
 'version-hook-name' => '훅 이름',
@@ -4104,6 +4125,7 @@ $5
 'tags' => '유효한 편집에 대한 태그',
 'tag-filter' => '[[Special:Tags|태그]] 필터:',
 'tag-filter-submit' => '필터',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|태그}}]]: $2)',
 'tags-title' => '태그',
 'tags-intro' => '이 문서는 소프트웨어에서 편집에 대해 표시하는 태그와 그 의미를 설명하는 목록입니다.',
 'tags-tag' => '태그 이름',
@@ -4126,13 +4148,13 @@ $5
 'compare-revision-not-exists' => '지정한 판이 없습니다.',
 
 # Database error messages
-'dberr-header' => '이 위키에 문제가 있습니다.',
+'dberr-header' => '이 위키에 문제가 있습니다',
 'dberr-problems' => '죄송합니다!
 이 사이트는 기술적인 문제가 있습니다.',
 'dberr-again' => '잠시 기다리고 나서 다시 불러오세요.',
-'dberr-info' => '(데이터베이스에 접속할 수 없습니다: $1)',
-'dberr-usegoogle' => '그 동안 구글을 통해 검색할 수도 있습니다.',
-'dberr-outofdate' => '참고ë¡\9c êµ¬ê¸\80ì\9d\98 ë\82´ì\9a© ê°\9cì\9a\94ë\8a\94 ì\98¤ë\9e\98ë\90\9c ê²\83ì\9d¼ ì\88\98ë\8f\84 ì\9e\88ì\8aµë\8b\88ë\8b¤.',
+'dberr-info' => '(데이터베이스 서버에 연결할 수 없습니다: $1)',
+'dberr-usegoogle' => '그 동안 Google을 통해 검색할 수도 있습니다.',
+'dberr-outofdate' => 'ì\88\98ì§\91ë\90\9c ë\82´ì\9a©ì\9d\80 ì\98¤ë\9e\98ë\90\9c ê²\83ì\9d¼ ì\88\98ë\8f\84 ì\9e\88ì\9d\8cì\9d\84 ì°¸ê³ í\95\98ì\84¸ì\9a\94.',
 'dberr-cachederror' => '다음은 요청한 문서의 캐시된 복사본이며, 최신이 아닐 수도 있습니다.',
 
 # HTML forms
@@ -4144,7 +4166,7 @@ $5
 'htmlform-int-toohigh' => '지정한 값은 최대값 $1 이상입니다.',
 'htmlform-required' => '이 값은 필수 항목입니다',
 'htmlform-submit' => '저장',
-'htmlform-reset' => '바꾼 것을 되돌리기',
+'htmlform-reset' => '바을 되돌리기',
 'htmlform-selectorother-other' => '기타',
 'htmlform-no' => '아니오',
 'htmlform-yes' => '예',
index f2ede5e..2f56bec 100644 (file)
@@ -155,7 +155,6 @@ $messages = array(
 'disclaimers' => 'Мийö сöстöмöсь йöз одзын',
 'disclaimerpage' => 'Project:Мийö сöстöмöсь йöз одзын',
 'edithelp' => 'Уджкерись понда отсöт',
-'edithelppage' => 'Help:Уджкерись понда отсöт',
 'helppage' => 'Help:Отсöт',
 'mainpage' => 'Пондöтчан листбок',
 'mainpage-description' => 'Пондöтчан листбок',
index 503593a..f4361fb 100644 (file)
@@ -121,7 +121,7 @@ $messages = array(
 'tog-extendwatchlist' => 'Кёзде тургъан тизмени, къуру ахыр тюл, бютеу тюрлениулени кёрюр ючюн кенгерт',
 'tog-usenewrc' => 'Ахыр тюрлениуледе эм кёздеги тизмеде бетлени къауум тюрлениулери (JavaScript керекди)',
 'tog-numberheadings' => 'Башлыкъланы (бёлюмлени атлары) автомат номерленсинле',
-'tog-showtoolbar' => 'ТÑ\8eÑ\80лендиÑ\80ген Ñ\81агÑ\8aаÑ\82да, Ð±Ð°Ñ\88Ñ\8bндагÑ\8aÑ\8b Ð¸Ð½Ñ\81Ñ\82Ñ\80Ñ\83менÑ\82 панелни кёргюз (JavaScript)',
+'tog-showtoolbar' => 'ТÑ\8eÑ\80лендиÑ\80ген Ñ\81агÑ\8aаÑ\82да, Ð±Ð°Ñ\88Ñ\8bндагÑ\8aÑ\8b Ð°Ð´Ñ\8bÑ\80 панелни кёргюз (JavaScript)',
 'tog-editondblclick' => 'Эки басыу бла тюрлендириу бет ачылсын (JavaScript)',
 'tog-editsection' => 'Хар бёлюмге «тюрлендир» джибериуню кёргюз',
 'tog-editsectiononrightclick' => 'Бёлюмлени бёлюм башлыкъгъа басханлай тюрлендириу бетин ач',
@@ -158,7 +158,7 @@ $messages = array(
 'tog-useeditwarning' => 'Тюрлендириулени сакълатмай редакторлау бетден кетген сагъатымда билдир',
 
 'underline-always' => 'Хаманда',
-'underline-never' => 'Бирзаманда да',
+'underline-never' => 'Бир заманда да',
 'underline-default' => 'Браузерни джарашдырыуларын хайырландыр',
 
 # Font style option in Special:Preferences
@@ -219,6 +219,18 @@ $messages = array(
 'oct' => 'окт',
 'nov' => 'ноя',
 'dec' => 'дек',
+'january-date' => '$1 январь',
+'february-date' => '$1 февраль',
+'march-date' => '$1 март',
+'april-date' => '$1 апрель',
+'may-date' => '$1 май',
+'june-date' => '$1 июнь',
+'july-date' => '$1 июль',
+'august-date' => '$1 август',
+'september-date' => '$1 сентябрь',
+'october-date' => '$1 октябрь',
+'november-date' => '$1 ноябрь',
+'december-date' => '$1 декабрь',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Категория|Категорияла}}',
@@ -290,7 +302,7 @@ $messages = array(
 'history' => 'Бетни тарихи',
 'history_short' => 'Тарих',
 'updatedmarker' => 'Ахыр киргенимден сора джангыргъанды',
-'printableversion' => 'Басмагъа версиясы',
+'printableversion' => 'Басмагъа версия',
 'permalink' => 'Дайым джибериу',
 'print' => 'Басмала',
 'view' => 'Къарау',
@@ -311,12 +323,12 @@ $messages = array(
 'talkpage' => 'Бу бетни сюз',
 'talkpagelinktext' => 'сюзюу',
 'specialpage' => 'Къуллукъ бет',
-'personaltools' => 'ЭнÑ\87и Ð¸Ð½Ñ\81Ñ\82Ñ\80Ñ\83менÑ\82ле',
+'personaltools' => 'ЭнÑ\87и Ð°Ð´Ñ\8bÑ\80ла',
 'postcomment' => 'Джангы бёлюм',
 'articlepage' => 'Статьягъа къарау',
 'talk' => 'Сюзюу',
 'views' => 'Къараула',
-'toolbox' => 'Ð\98нÑ\81Ñ\82Ñ\80Ñ\83менÑ\82ле',
+'toolbox' => 'Ð\90дÑ\8bÑ\80ла',
 'userpage' => 'Къошулуучуну энчи бетине къарау',
 'projectpage' => 'Проектни бетине къара',
 'imagepage' => 'Файлны бетине къара',
@@ -353,7 +365,6 @@ $1',
 'disclaimers' => 'Джууаблылыкъны унамау',
 'disclaimerpage' => 'Project:Джууаблылыкъны унамау',
 'edithelp' => 'Тюрлендириуню юсюнден болушлукъ',
-'edithelppage' => 'Help:Тюрлендириу',
 'helppage' => 'Help:Болушлукъ',
 'mainpage' => 'Баш бет',
 'mainpage-description' => 'Баш бет',
@@ -524,7 +535,7 @@ $2',
 {{SITENAME}} сайтда [[Special:Preferences|джарашдырыуларыгъызны]] тюрлендирирге унутмагъыз.',
 'yourname' => 'Къошулуучуну аты',
 'userlogin-yourname' => 'Тергеу джазыуну аты',
-'userlogin-yourname-ph' => 'ТеÑ\80геÑ\83 Ð´Ð¶Ð°Ð·Ñ\8bÑ\83Ñ\83гÑ\8aÑ\83знÑ\83 Ð°Ñ\82Ñ\8bн Ð´Ð¶Ð°Ð·Ñ\8bгÑ\8aÑ\8bз',
+'userlogin-yourname-ph' => 'ТеÑ\80геÑ\83 Ð´Ð¶Ð°Ð·Ñ\8bÑ\83Ñ\83нгÑ\83 Ð°Ñ\82Ñ\8bн Ð´Ð¶Ð°з',
 'yourpassword' => 'Паролюгъуз:',
 'userlogin-yourpassword' => 'Пароль',
 'userlogin-yourpassword-ph' => 'Паролунгу джаз',
@@ -533,7 +544,8 @@ $2',
 'createacct-yourpasswordagain' => 'Паролну бегит',
 'createacct-yourpasswordagain-ph' => 'Паролну энтда бир кере джаз',
 'remembermypassword' => 'Бу компьютерде мени тергеў джазыўуму унутма (эм кёб $1 {{PLURAL:$1|кюн|кюн}})',
-'userlogin-remembermypassword' => 'Мени эсде тутуу',
+'userlogin-remembermypassword' => 'Системада туруу',
+'userlogin-signwithsecure' => 'Джакъланнган байлам',
 'securelogin-stick-https' => 'Чыкъгъандан сора да HTTPS бла байламлы къой',
 'yourdomainname' => 'Сизни доменигиз:',
 'password-change-forbidden' => 'Бу викиде паролугъузну тюрлендиреллик тюлсюз.',
@@ -546,6 +558,7 @@ $2',
 'logout' => 'Чыгъыу',
 'userlogout' => 'Чыгъыу',
 'notloggedin' => 'Авторизация ётмегенсиз',
+'userlogin-noaccount' => 'Аккаунтунг джокъмуду?',
 'userlogin-joinproject' => '{{SITENAME}} сайтха къошул',
 'nologin' => 'Тергеу джазыуугъуз (аккаунтугъуз) джокъмуду? $1.',
 'nologinlink' => 'Тергеу джазыу (аккаунт) къурагъыз',
@@ -553,22 +566,25 @@ $2',
 'gotaccount' => 'Тергеу джазыуугъуз (аккаунтугъуз) энди бармыды? $1.',
 'gotaccountlink' => 'Кириу',
 'userlogin-resetlink' => 'Кирир ючюн билгилеригизни унутхан этгенмисиз?',
+'userlogin-resetpassword-link' => 'Паролну джибериу',
 'helplogin-url' => 'Help:Кириу',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Системагъа кириуде болушлукъ]]',
-'createacct-join' => 'Ð\98нÑ\84оÑ\80маÑ\86иÑ\8fгÑ\8aÑ\8bзнÑ\8b Ñ\82Ñ\8eбÑ\8eÑ\80екде Ð´Ð¶Ð°Ð·Ñ\8bгÑ\8aÑ\8bз.',
+'createacct-join' => 'Ð\91илгилеÑ\80инги Ñ\82Ñ\8eбÑ\8eÑ\80екде Ð´Ð¶Ð°з.',
 'createacct-emailrequired' => 'Электрон почтаны адреси',
-'createacct-emailoptional' => 'ЭлекÑ\82Ñ\80он Ð¿Ð¾Ñ\87Ñ\82анÑ\8b Ð°Ð´Ñ\80еÑ\81и (ажÑ\8bмÑ\81Ñ\8bз ÐºÐµÑ\80ек тюлдю)',
+'createacct-emailoptional' => 'ЭлекÑ\82Ñ\80он Ð¿Ð¾Ñ\87Ñ\82анÑ\8b Ð°Ð´Ñ\80еÑ\81и (амалÑ\81Ñ\8bз тюлдю)',
 'createacct-email-ph' => 'Электрон почта адресигизни джазыгъыз',
 'createaccountmail' => 'Эсде болмагъанлай генерация этилген болджаллы паролну хайырландыр эм тюбюрекде берилген электрон почта адресге ий:',
 'createacct-realname' => 'Керти атыгъыз (ажымсыз керек тюлдю)',
 'createaccountreason' => 'Чурум:',
 'createacct-reason' => 'Чурум',
+'createacct-reason-ph' => 'Башха тергеу джазыуну нек къураусыз',
 'createacct-captcha' => 'Къоркъуусузлукъну тинтиу',
-'createacct-imgcaptcha-ph' => 'Башыракъда кёрюннген текстни джазыгъыз',
-'createacct-benefit-heading' => '{{SITENAME}} сизнича адамла бла этилгенди.',
-'createacct-benefit-body1' => 'тюрлениу',
-'createacct-benefit-body2' => 'бет',
-'createacct-benefit-body3' => 'арт заманда къатышхан',
+'createacct-imgcaptcha-ph' => 'Башыракъда кёрюннген текстни джаз',
+'createacct-submit' => 'Тергеу джазыуну къура',
+'createacct-benefit-heading' => '{{SITENAME}} сизнича адамла бла къуралгъанды.',
+'createacct-benefit-body1' => '{{PLURAL:$1|тюрлениу}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|бет}}',
+'createacct-benefit-body3' => 'арт заманда {{PLURAL:$1|къошум этген}}',
 'badretype' => 'Джазгъан паролларыгъыз бир-бирине келишмейдиле.',
 'userexists' => 'Джазылгъан ат хайырландырылады.
 Башха ат сайлагъыз.',
@@ -633,14 +649,15 @@ $2',
 # Email sending
 'php-mail-error-unknown' => "PHP's mail() функцияда белгили болмагъан халат",
 'user-mail-no-addy' => 'Бир e-mail адрес болмагъанлай e-mail иерге кюрешди',
+'user-mail-no-body' => 'Бош неда магъанасыз къысха джазыу бла билдириу иерге изледи.',
 
 # Change password dialog
 'resetpass' => 'Паролну тюрлендириу',
 'resetpass_announce' => 'Сиз, электрон почта бла ийилген, болджаллы пароль бла киргенсиз. Системагъа кириуню тамамларча, джангы пароль къурагъыз.',
-'resetpass_header' => 'ТеÑ\80геÑ\83 Ð´Ð¶Ð°Ð·Ñ\8bÑ\83нÑ\83 (аккаÑ\83нÑ\82нÑ\83) Ð¿Ð°Ñ\80олÑ\8eн тюрлендириу',
+'resetpass_header' => 'ТеÑ\80геÑ\83 Ð´Ð¶Ð°Ð·Ñ\8bÑ\83нÑ\83 (аккаÑ\83нÑ\82нÑ\83) Ð¿Ð°Ñ\80олÑ\83н тюрлендириу',
 'oldpassword' => 'Эски пароль:',
 'newpassword' => 'Джангы пароль:',
-'retypenew' => 'Ð\94жангÑ\8b Ð¿Ð°Ñ\80олнÑ\8e къайтарыгъыз:',
+'retypenew' => 'Ð\94жангÑ\8b Ð¿Ð°Ñ\80олнÑ\83 къайтарыгъыз:',
 'resetpass_submit' => 'Паролну бегит эм кир',
 'resetpass_success' => 'Сизни паролюгъуз тыйыншлы тюрлендирилди! Системагъа кириу барады…',
 'resetpass_forbidden' => 'Пароль тюрленирге болмайды',
@@ -650,14 +667,15 @@ $2',
 'resetpass-wrong-oldpass' => 'Терс пароль.
 Сиз энди паролну тюрлендирген неда джангы болджаллы пароль соргъан болурсуз.',
 'resetpass-temp-password' => 'Болджаллы пароль:',
+'resetpass-abort-generic' => 'Пароль тюрлендириуню кенгертиу тыйды.',
 
 # Special:PasswordReset
-'passwordreset' => 'Паролну атыу',
-'passwordreset-text' => 'Паролугъуз джиберилир ючюн бу форманы толтуругъуз.',
+'passwordreset' => 'Паролну джибериу',
+'passwordreset-text-one' => 'Паролугъуз джиберилир ючюн бу форманы толтуругъуз.',
+'passwordreset-text-many' => '{{PLURAL:$1|Пароль ийилир ючюн билгилени бир бёлюмюн джазыгъыз.}}',
 'passwordreset-legend' => 'Паролну атыу',
 'passwordreset-disabled' => 'Бу викиде паролла атыу амал джукъланыбды.',
 'passwordreset-emaildisabled' => 'Бу викиде электрон почтаны функциялары джукъланыбдыла.',
-'passwordreset-pretext' => '{{PLURAL:$1||Тюбюрекде берилген билгиледен бирин джазыгъыз}}',
 'passwordreset-username' => 'Къошулуучуну аты:',
 'passwordreset-domain' => 'Домен:',
 'passwordreset-capture' => 'Джазылгъан билдириуню эсебине къара?',
@@ -704,7 +722,7 @@ $2',
 'summary' => 'Тюрлениулени къысха ачыкълау:',
 'subject' => 'Тема/башлыкъ:',
 'minoredit' => 'Бу гитче тюрлениудю',
-'watchthis' => 'Бу бетни кёзде тургъан тизмеге къош',
+'watchthis' => 'Бу бетни кёздеги тизмеме къош',
 'savearticle' => 'Бетни сакъла',
 'preview' => 'Ал къарау',
 'showpreview' => 'Ал къарау',
@@ -776,10 +794,10 @@ $2',
 'blocked-notice-logextract' => 'Бу къошулуучу бусагъатда блокланыб турады.
 Тюбюнде блокланыуланы журналындан ахыр джазыу бериледи:',
 'clearyourcache' => "'''Эслегиз.''' Бетде сакъланнгандан сора тюрлендириуле кёрюнюрча браузеригизни кэшин ариулатыргъа керек болургъа боллукъду.
-* '''Firefox / Safari''': ''Shift'' Ñ\82иекни Ð±Ð°Ñ\81Ñ\8bб Ñ\82Ñ\83Ñ\80гÑ\8aанлай Ð¸Ð½Ñ\81Ñ\82Ñ\80Ñ\83менÑ\82лени панелинде ''Джангырт'' тиекни басыгъыз, неда ''Ctrl-F5'' басыгъыз, неда ''Ctrl-R'' (Mac-да — ''⌘-R'')
+* '''Firefox / Safari''': ''Shift'' Ñ\82иекни Ð±Ð°Ñ\81Ñ\8bб Ñ\82Ñ\83Ñ\80гÑ\8aанлай Ð°Ð´Ñ\8bÑ\80ланÑ\8b панелинде ''Джангырт'' тиекни басыгъыз, неда ''Ctrl-F5'' басыгъыз, неда ''Ctrl-R'' (Mac-да — ''⌘-R'')
 * '''Google Chrome:''' ''Ctrl-Shift-R'' басыгъыз (Mac-да — ''⌘-Shift-R'')
 * '''Internet Explorer:''' ''Ctrl'' тиекни басыб тургъанлай ''Джангырт'' тиекни басыгъыз, неда ''Ctrl-F5'' басыгъыз
-* '''Opera:''' ''Ð\98нÑ\81Ñ\82Ñ\80Ñ\83менÑ\82ле → Джарашдырыула'' менюда кэшни ариулауну сайлагъыз",
+* '''Opera:''' ''Ð\90дÑ\8bÑ\80ла → Джарашдырыула'' менюда кэшни ариулауну сайлагъыз",
 'usercssyoucanpreview' => "'''Юретиу.''' «{{int:showpreview}}» тиекни басыгъыз, джангы CSS-файлны сакълатырыгъызны аллы бла тинтиб кёрюрча.",
 'userjsyoucanpreview' => "'''Юретиу.''' «{{int:showpreview}}» тиекни басыгъыз, джангы JS-файлны сакълатырыгъызны аллы бла тинтиб кёрюрча.",
 'usercsspreview' => "'''Эсде тутугъуз, бу къуру ал къарауду, CSS файлыгъыз алкъын сакъланмагъанды!'''",
@@ -867,6 +885,7 @@ $2',
 Кетерилген болур.',
 'edit-conflict' => 'Тюрлендириулени конфликти.',
 'edit-no-change' => 'Текстде тюрлениуле эсленмегени ючюн, сизни тюрлендириуюгюз къабыл этилмеди.',
+'postedit-confirmation' => 'Тюрлендириуюгюз сакъланды.',
 'edit-already-exists' => 'Джангы бет къураргъа боллукъ тюлдю.
 Алайсызда барды бу атлы бет.',
 'defaultmessagetext' => 'Тынгылау бла текст',
@@ -1111,12 +1130,11 @@ $1",
 'nextn' => 'эндиги {{PLURAL:$1|$1}}',
 'prevn-title' => 'Алдагъы $1 {{PLURAL:$1|эсеб|эсеб}}',
 'nextn-title' => 'Артдагъы $1 {{PLURAL:$1|эсеб|эсеб}}',
-'shown-title' => 'Бетде $1 {{PLURAL:$1|джазыу|джазыуланы}} кёргюз',
+'shown-title' => 'Бетде $1 {{PLURAL:$1|джазыуну}} кёргюз',
 'viewprevnext' => 'Къара: ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-legend' => 'Излеуню джарашдырыулары',
 'searchmenu-exists' => "'''Бу викиде «[[:$1]]» бет барды'''",
 'searchmenu-new' => "'''Бу вики-проектде «[[:$1]]» бетни къура!'''",
-'searchhelp-url' => 'Help:Ичиндегиле',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Бу префикс бла бетни кёргюз]]',
 'searchprofile-articles' => 'Баш бетле',
 'searchprofile-project' => 'Болушлукъ эм проект бетле',
@@ -1180,7 +1198,7 @@ $1",
 'prefs-watchlist-days-max' => 'Максимум $1 {{PLURAL:$1|кюн|кюн}}',
 'prefs-watchlist-edits' => 'Кёзде тургъан тизмени кенглешдирилген вариантында кёргюзюллюк тюрлениулени саны:',
 'prefs-watchlist-edits-max' => 'Максимум саны:1000',
-'prefs-watchlist-token' => 'Ð\9aÑ\91зде Ñ\82Ñ\8bргъан тизмени токени:',
+'prefs-watchlist-token' => 'Ð\9aÑ\91зде Ñ\82Ñ\83ргъан тизмени токени:',
 'prefs-misc' => 'Башха джарашдырыула',
 'prefs-resetpass' => 'Паролну тюрлендир',
 'prefs-changeemail' => 'Электрон почтаны адресин ауушдур',
@@ -1191,7 +1209,6 @@ $1",
 'resetprefs' => 'Тюрлениулени ызына къайтар',
 'restoreprefs' => 'Тынгылау бла джарашдырыуланы ызына къайтар',
 'prefs-editing' => 'Тюрлендириу',
-'prefs-edit-boxsize' => 'Тюрлениу терезени ёлчеми',
 'rows' => 'Тизгинле:',
 'columns' => 'Колонкала:',
 'searchresultshead' => 'Излеу',
@@ -1202,9 +1219,6 @@ $1",
 'recentchangesdays-max' => '(максимум $1 {{PLURAL:$1|кюн|кюн}})',
 'recentchangescount' => 'Тынгылау бла кёргюзюллюк тюрлениулени саны:',
 'prefs-help-recentchangescount' => 'Бу, ахыр тюрлениулени, бетни тарихлерин эмда журналланы ичине къошады.',
-'prefs-help-watchlist-token' => 'Бу аланны джашыртын ачхыч бла толтуруу, кёзде тургъан тизмегиз ючюн бир RSS-трансляция къурайды.
-Бу аландагъы ачхычны билгенле кёзде тургъан тизмегизни окъургъа боллукъду, ол себебден сырлы магъана сайлагъыз.
-Сакъланмагъанлай генерация этилген магъананы хайырландырыргъа боллукъсуз: $1',
 'savedprefs' => 'Джарашдырыуларыгъыз сакъландыла.',
 'timezonelegend' => 'Заман бел:',
 'localtime' => 'Джерли заман:',
@@ -1235,7 +1249,6 @@ $1",
 'prefs-reset-intro' => 'Бу бетни джарашдырыуларыгъызны тынгылыау бла салыннган джарашдырыулагъа кёчюрюрге хайырланаллыкъсыз.
 Бу ишлемни къабыл этсегиз, ызына къайтараллыкъ тюлсюз.',
 'prefs-emailconfirm-label' => 'Электрон почтаны бегитиу:',
-'prefs-textboxsize' => 'Тюрлендириу терезени ёлчеми',
 'youremail' => 'Электрон почта:',
 'username' => '{{GENDER:$1|Къошулуучу ат}}:',
 'uid' => '{{GENDER:$1|Къошулуучуну}} коду:',
@@ -1306,6 +1319,7 @@ $1 {{PLURAL:$1|символдан|символладан}} кеб болургъ
 'userrights-changeable-col' => 'Сиз тюрлендиреллик къауумла',
 'userrights-unchangeable-col' => 'Сиз тюрлендирелмезлик къауумла',
 'userrights-irreversible-marker' => '$1*',
+'userrights-conflict' => 'Къошулуучу хакъланы конфликти! Тюрлендириуню джангыдан сакълатыб кёрюгюз.',
 
 # Groups
 'group' => 'Группа:',
@@ -1480,7 +1494,6 @@ $1 {{PLURAL:$1|символдан|символладан}} кеб болургъ
 'recentchangeslinked-feed' => 'Байламлы тюрлендириуле',
 'recentchangeslinked-toolbox' => 'Байламлы тюрлендириуле',
 'recentchangeslinked-title' => '$1 бет бла байламлы тюрлендириуле',
-'recentchangeslinked-noresult' => 'Берилген кёзюуню ичинде белгиленнген бетге байламлы башха бетледе тюрлениуле болмагъандыла',
 'recentchangeslinked-summary' => "Белгиленнген бет (неда белгиленнген категориягъа киргенле) джиберген бетледе джангы тюрлениулени тизмеси.
 [[Special:Watchlist|Кёзде тургъан тизмеге]] кирген бетле '''чертилибдиле'''.",
 'recentchangeslinked-page' => 'Бетни аты:',
@@ -1586,6 +1599,8 @@ $1 {{PLURAL:$1|символдан|символладан}} кеб болургъ
 file_uploads джарашдырыулагъа бир къарагъыз.',
 'uploadscripted' => 'Бу файл, браузер бла халатлы таныргъа боллукъ, HTML-код неда скрипт джюрютеди.',
 'uploadvirus' => 'Файл вируслуду! $1 къара.',
+'uploadjava' => 'Файл, Java .class файлы болгъан ZIP-архивди.
+Къоркъуусузлукъ бла байламлы, Java-файлла джюклеген джарамайды.',
 'upload-source' => 'Къайнакъ файл',
 'sourcefilename' => 'Къайнакъ аты файлны:',
 'sourceurl' => 'Къайнакъны URL-адреси:',
@@ -1634,11 +1649,20 @@ URL-адрес тюз болгъанын осмакълагъыз эмда дж
 'upload-http-error' => 'HTTP хата болду: $1',
 
 # File backend
+'backend-fail-stream' => '«$1» файл окъулмады.',
 'backend-fail-backup' => '«$1» файлны резерв копиясын этерге болмайды.',
 'backend-fail-notexists' => '$1 файл джокъду.',
 'backend-fail-delete' => '«$1» файл кетерилмеди.',
+'backend-fail-alreadyexists' => '«$1» файл алгъадан барды.',
 'backend-fail-store' => '$1 файл $2 ичинде сакъланылынмады.',
+'backend-fail-copy' => '«$2» файл «$1» файлгъа копия этилмеди.',
+'backend-fail-move' => '«$1» файлны «$2» файлгъа кёчюрюлмеди.',
+'backend-fail-opentemp' => 'Болджаллы файлны ачалмайды.',
+'backend-fail-writetemp' => 'Болджаллы файлгъа джазалмады.',
+'backend-fail-closetemp' => 'Болджаллы файлны джабалмайды.',
 'backend-fail-read' => '«$1» файлны окъуялмады.',
+'backend-fail-create' => '«$1» файлны джазалмады.',
+'backend-fail-maxsize' => 'Ёлчеми {{PLURAL:$2|бир байт|$2 байт}}дан кёб болгъаны себебли «$1» файл джазылмады.',
 
 # Special:UploadStash
 'uploadstash' => 'Джашыртын джюклеу',
@@ -2049,7 +2073,7 @@ URL-ни тюз , сайтны ачыкъ болгъанына ишексиз б
 'mywatchlist' => 'Кёздеги тизме',
 'watchlistfor2' => '$1 ючюн $2',
 'nowatchlist' => 'Кёзюгюзде тургъан тизмегиз бошду.',
-'watchlistanontext' => 'Кёзюгюзде тургъан тизмегизни статьяланы кёрюр неда тюрлендирир ючюн $1.',
+'watchlistanontext' => 'Кёзюгюзде тургъан тизмегизни статьяларын кёрюр неда тюрлендирир ючюн бери ётюгюз: $1.',
 'watchnologin' => 'Системагъа кирирге керекди.',
 'watchnologintext' => 'Кёзюгюзде тургъан тизмегизни тюрлендирир ючюн [[Special:UserLogin|системагъа кирирге керексиз]].',
 'addwatch' => 'Кёзде тургъан тизмеге къош',
@@ -2063,7 +2087,6 @@ URL-ни тюз , сайтны ачыкъ болгъанына ишексиз б
 'unwatchthispage' => 'Кёзде тутууну тохтат',
 'notanarticle' => 'Статья тюлдю',
 'notvisiblerev' => 'Версия кетерилгенди',
-'watchnochange' => 'Къаралгъан кёзюуде, кёзде тургъан тизмеден бир бет да тюрленмегенди.',
 'watchlist-details' => 'Кёзюгюзде тургъан тизмегизде, сюзюу бетлери саналмай {{PLURAL:$1|$1 бет|$1 бет}} барды.',
 'wlheader-enotif' => 'Эл. почта бла хапар бериу джандырылыбды.',
 'wlheader-showupdated' => "Ахыр кириуюгюзден сора бетни тюрлениулери '''къалын''' джазыу бла кёргюзюлгенди.",
@@ -2409,12 +2432,12 @@ $1',
 Тыйылыуну журналы тюбюрек кёргюзюлгенди:',
 'blocklog-showsuppresslog' => 'Бу къошулуучу мындан алгъа тыйылгъанды эмда джашырылгъанды.
 Джашырыу журналны кёрюр ючюн тюбюрек къарагъыз:',
-'blocklogentry' => '[[$1]] Ð±Ð»Ð¾Ðº Ñ\8dÑ\82илингенди $2 Ð·Ð°Ð¼Ð°Ð½Ð½Ð³Ð° $3',
+'blocklogentry' => '[[$1]] ÐºÑ\8aоÑ\88Ñ\83лÑ\83Ñ\83Ñ\87Ñ\83гÑ\8aа $2 Ð±Ð¾Ð»Ð´Ð¶Ð°Ð»Ð³Ñ\8aа Ñ\82Ñ\8bйгÑ\8aÑ\8bÑ\87 Ñ\81алдÑ\8b $3',
 'reblock-logentry' => '[[$1]] ючюн бошалыу заманын $2 $3 этиб тыйыу джарашдырыуларын тюрлендирди',
 'blocklogtext' => 'Къошулуучуланы тыйылыу бла тыйылыудан чыгъарыуну журналы.
 Автомат халда тыйылгъан IP-адресле былайда кёргюзюлмейдиле.
 Банла бла блокланы кёрюр ючюн [[Special:BlockList|блок тизмесине]] къарагъыз.',
-'unblocklogentry' => '$1 ÐºÑ\8aоÑ\88Ñ\83лÑ\83Ñ\83Ñ\87Ñ\83дан Ð±Ð»Ð¾Ðº Ð°Ð»Ñ\8bндÑ\8b',
+'unblocklogentry' => '$1 ÐºÑ\8aоÑ\88Ñ\83лÑ\83Ñ\83Ñ\87Ñ\83нÑ\83 Ñ\82Ñ\8bйгÑ\8aÑ\8bÑ\87Ñ\8bн ÐºÐµÑ\82еÑ\80ди',
 'block-log-flags-anononly' => 'джангыз аноним къошулуучула',
 'block-log-flags-nocreate' => 'Тергеу джазыуланы (аккаунтланы) регистрациялары тыйылыбды',
 'block-log-flags-noautoblock' => 'автоблок джукъланыбды',
@@ -2853,7 +2876,24 @@ $1',
 'minutes' => '{{PLURAL:$1|$1 минут|$1 минут}}',
 'hours' => '{{PLURAL:$1|$1 сагъат|$1 сагъат}}',
 'days' => '{{PLURAL:$1|$1 кюн|$1 кюн}}',
+'weeks' => '{{PLURAL:$1|ыйыкъ}}',
+'months' => '{{PLURAL:$1|ай}}',
+'years' => '{{PLURAL:$1|джыл}}',
 'ago' => '$1 алгъа',
+'just-now' => 'тюз бусагъатда',
+
+# Human-readable timestamps
+'hours-ago' => '$1 {{PLURAL:$1|сагъат}} мындан алгъа',
+'minutes-ago' => '$1 {{PLURAL:$1|минут}} мындан алгъа',
+'seconds-ago' => '$1 {{PLURAL:$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
 'bad_image_list' => 'Формат былай болургъа керекди:
@@ -2998,6 +3038,8 @@ $1',
 'exif-gpsdifferential' => 'GPS дифференциялы тюзетиу',
 'exif-jpegfilecomment' => 'JPEG-файлны белгиси',
 'exif-keywords' => 'Ачхыч сёзле',
+'exif-worldregioncreated' => 'Бу сурат этилген дуния регион',
+'exif-countrycreated' => 'Бу сурат этилген кърал',
 'exif-countrydest' => 'Суратланнган кърал',
 'exif-provinceorstatedest' => 'Суратланнган провинция, территория неда штат',
 'exif-citydest' => 'Суратланнган шахар',
@@ -3481,7 +3523,6 @@ $5
 'version-other' => 'Башха',
 'version-mediahandlers' => 'Медияны джарашдырыучула',
 'version-hooks' => 'Тутуучула',
-'version-extension-functions' => 'Кенгертиулени функциялары',
 'version-parser-extensiontags' => 'Синтиаксис анализаторну кенгертиулерин теглери',
 'version-parser-function-hooks' => 'Синтаксис анализаторну функцияларын тутуучула',
 'version-hook-name' => 'Тутуучуну аты',
@@ -3527,10 +3568,10 @@ MediaWiki хайырлы боллукъду деген умут бла джай
 'specialpages-group-users' => 'Къошулуучула эм хакълары',
 'specialpages-group-highuse' => 'Бек хайырландырылгъан бетле',
 'specialpages-group-pages' => 'Бетлени тизмелери',
-'specialpages-group-pagetools' => 'Бетге инструментле',
-'specialpages-group-wiki' => 'Ð\92ики-билгиле Ñ\8dм Ð¸Ð½Ñ\81Ñ\82Ñ\80Ñ\83менÑ\82ле',
+'specialpages-group-pagetools' => 'Бет адырла',
+'specialpages-group-wiki' => 'Ð\91илгиле Ñ\8dм Ð°Ð´Ñ\8bÑ\80ла',
 'specialpages-group-redirects' => 'Джиберген къуллукъчу бетле',
-'specialpages-group-spam' => 'СпамгÑ\8aа ÐºÑ\8aаÑ\80Ñ\88Ñ\87Ñ\8b Ð¸Ð½Ñ\81Ñ\82Ñ\80Ñ\83менÑ\82ле',
+'specialpages-group-spam' => 'СпамгÑ\8aа ÐºÑ\8aаÑ\80Ñ\88Ñ\87Ñ\8b Ð°Ð´Ñ\8bÑ\80ла',
 
 # Special:BlankPage
 'blankpage' => 'Бош бет',
@@ -3588,13 +3629,17 @@ MediaWiki хайырлы боллукъду деген умут бла джай
 'htmlform-submit' => 'Джибер',
 'htmlform-reset' => 'Тюрлендириулени ызына сал',
 'htmlform-selectorother-other' => 'Башха',
+'htmlform-no' => 'Огъай',
+'htmlform-yes' => 'Хоу',
+'htmlform-chosen-placeholder' => 'Вариантны сайлагъыз',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 толу текст излеуню хайырландыргъан',
 'sqlite-no-fts' => '$1 толу текст излеуню хайырландыра билмеген',
 
 # New logging system
-'logentry-delete-delete' => '$1, $3 бетни кетерди',
+'logentry-delete-delete' => '$3 бетни $1 {{GENDER:$2|кетерди}}',
+'logentry-delete-restore' => '$3 бетни $1 {{GENDER:$2|ызына салды}}',
 'revdelete-content-hid' => 'ичиндегиси джашырылыбды',
 'revdelete-summary-hid' => 'тюрлендириуню ачыкълауу джашырылыбды',
 'revdelete-uname-hid' => 'къошулуучуну аты джашырылыбды',
index 880e25a..11e2c14 100644 (file)
@@ -8,6 +8,9 @@
  * @file
  *
  * @author Caesius noh en Idee vum Manes
+ * @author Geitost
+ * @author Matma Rex
+ * @author Nemo bis
  * @author Purodha
  * @author Reedy
  * @author Rentenirer
@@ -318,6 +321,18 @@ $messages = array(
 'oct' => 'Okt',
 'nov' => 'Nov',
 'dec' => 'Dez',
+'january-date' => '$1. Jannewaa',
+'february-date' => '$1. Fääbroaa',
+'march-date' => '$1. Määz',
+'april-date' => '$1. Aprell',
+'may-date' => '$1. Mai',
+'june-date' => '$1. Juuni',
+'july-date' => '$1. Juuli',
+'august-date' => '$1. Ojoßß',
+'september-date' => '$1. Säptämber',
+'october-date' => '$1. Oktoober',
+'november-date' => '$1. Novämber',
+'december-date' => '$1. Dezämber',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Saachjrupp|Saachjruppe}}',
@@ -452,7 +467,6 @@ $1',
 'disclaimers' => 'Henwies',
 'disclaimerpage' => 'Project:Impressum',
 'edithelp' => 'Hölp för et Bearbeide',
-'edithelppage' => 'Help:Hölp',
 'helppage' => 'Help:Hölp',
 'mainpage' => 'Haupsigg',
 'mainpage-description' => 'Haupsigg',
@@ -481,7 +495,6 @@ $1',
 'newmessagesdifflinkplural' => '{{PLURAL:$1|läzde Änderong|läzde Änderonge|kein Änderonge}}',
 'youhavenewmessagesmulti' => 'Do häs neu Nachrichte op $1',
 'editsection' => 'Ändere',
-'editsection-brackets' => '[$1]',
 'editold' => 'Heh die Version ändere',
 'viewsourceold' => 'Wikitex zeije',
 'editlink' => 'ändere',
@@ -666,7 +679,7 @@ Wann De wells, künnts De Ding [[Special:Preferences|Enschtällonge aanpaße]].'
 'notloggedin' => 'Nit enjelogg',
 'userlogin-noaccount' => 'Do häß noch keine Zohjang?',
 'userlogin-joinproject' => 'Aanmälde zom Metmaache!',
-'nologin' => "Wann De Dich noch nit aanjemeldt häs, dann dun Dich '''$1'''.",
+'nologin' => 'Wann de dich noch nit aanjemeldt häs, dann dun dich $1.',
 'nologinlink' => 'neu aanmelde',
 'createaccount' => 'Aanmelde als ene neue Metmaacher',
 'gotaccount' => "Do bes ald aanjemeldt {{GRAMMAR:en|{{SITENAME}}}}? Dann jangk nohm '''$1'''.",
@@ -822,11 +835,9 @@ Do häs Der enzwesche e neu Zweschepaßwood jehollt.',
 
 # Special:PasswordReset
 'passwordreset' => 'Et Paßwoot zeröck säze',
-'passwordreset-text' => 'Donn dat Fommulaa heh ußfölle, öm e neu Paßwoot faßzelääje.',
 'passwordreset-legend' => 'Et Paßwoot zeröck säze',
 'passwordreset-disabled' => 'Et Paßwoot zeröck ze säze es heh em Wiki afjeschalldt.',
 'passwordreset-emaildisabled' => 'Heh dat Wiki määt nix met <i lang="en">e-mail</i>!',
-'passwordreset-pretext' => '{{PLURAL:$1||Jiff ein vun dä Saache heh dronger enn|}}',
 'passwordreset-username' => 'Metmaacher Name:',
 'passwordreset-domain' => 'Domähn:',
 'passwordreset-capture' => 'Wells De di <i lang="en">e-mail</i> beloore?',
@@ -996,8 +1007,7 @@ Mieh doh drövver fengk mer em [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAG
 'userpage-userdoesnotexist-view' => 'Ene Metmaacher mem Naame „$1“ hät sesch noch nih aanjemeldt',
 'blocked-notice-logextract' => 'Dä Metmaacher es jraad jesperrt.
 Heh kütt der neuste Enndraach drövver uss_em Logbooch övver et Metmaacher_Sperre:',
-'clearyourcache' => '<br style="clear: both" />
-\'\'\'Opjepass:\'\'\'
+'clearyourcache' => '\'\'\'Opjepass:\'\'\'
 Noh em Speichere künnd et sin, datt De Dingem Brauser singe Cache Speicher
 övverlisste muss, ih datt De de Änderunge och ze sinn kreß.
 * Beim \'\'\'<i lang="en">Mozilla</i>\'\'\' un \'\'\'<i lang="en">Firefox</i>\'\'\' un \'\'\'<i lang="en">Safari</i>\'\'\', dröck dä Jrußschreffknopp eronger un kleck dann op <i lang="en">Reload</i> / <i lang="de">Aktualisieren</i>, udder dröck <i lang="de">Ctrl+F5</i> / <i lang="de">Strg+F5</i>, udder dröck <i lang="en">Ctrl+R</i> / <i lang="de">Strg+R</i>, obb enem <i lang="en">Macintosh</i> dröck <i lang="de">⌘+R</i>.
@@ -1366,7 +1376,6 @@ Mieh doh drövver fengk mer em [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAG
 'searchmenu-legend' => 'Enschtällonge för et Söhke',
 'searchmenu-exists' => "*Sigg '''[[$1]]'''",
 'searchmenu-new' => "'''Donn de Sigg „[[:$1|$1]]“ hee em Wiki aanlääje'''",
-'searchhelp-url' => 'Help:Hölp',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Zeich all Sigge, di met däm Tex aanfange]]',
 'searchprofile-articles' => 'Sigge vum Enhalt',
 'searchprofile-project' => 'Hülp- ov Projäk-Sigge',
@@ -1453,7 +1462,6 @@ dat dänne ehr Daate topaktoell sin,
 'resetprefs' => 'Zeröck setze',
 'restoreprefs' => 'Alles op der Shtandatt retuur stelle',
 'prefs-editing' => 'Beim Bearbeide',
-'prefs-edit-boxsize' => 'Dat Feld zöm Schrieve sull han:',
 'rows' => 'Reihe:',
 'columns' => 'Spalte:',
 'searchresultshead' => 'Beim Söhke',
@@ -1464,9 +1472,6 @@ dat dänne ehr Daate topaktoell sin,
 'recentchangesdays-max' => '(Nit mieh wie {{PLURAL:$1|eine Daach|$1 Dääsh|keine Daach}})',
 'recentchangescount' => 'Aanzahl Änderunge en de Leß, als Shtandad:',
 'prefs-help-recentchangescount' => 'Dat ömfaß de „{{int:recentchanges}}“, de Versione uß de Fojangeheit, un de Logbööcher.',
-'prefs-help-watchlist-token' => 'Wann dat Feld met enem jeheime Schlößel ußjeföllt es, määt et Wiki ene <i lang="en">RSS</i>-Enspeisung en et Näz för Ding Oppaßleß op.
-Wä dä Schlößel weiß, kann ding Oppaßleß lesse. Donn alsu ene seschere un jeheime Wäät doför nämme.
-Ene zohfällesch ußjewörfelte Schlößel, dää De nämme künnß, wöhr: <code>$1</code>',
 'savedprefs' => 'Ding Enstellunge sin jetz jesechert.',
 'timezonelegend' => 'Ziggzohn:',
 'localtime' => 'De Zigg op Dingem Kompjuter:',
@@ -1496,7 +1501,6 @@ Ene zohfällesch ußjewörfelte Schlößel, dää De nämme künnß, wöhr: <cod
 'prefs-common-css-js' => 'Gemeinsam CSS un JavaSkrepp för all de Bovverfläshe:',
 'prefs-reset-intro' => 'Op dä Sigg kanns De Ding Enstellunge op dämm Wiki singe Shandatt setze lohße. Ävver Opjepaß: Do jidd et keine „Retuur“-Knopp för!',
 'prefs-emailconfirm-label' => 'Beshtätejung övver <i lang="en">e-mail</i>:',
-'prefs-textboxsize' => 'Wi jruuß sull dat Feld för et Afschnedde un Sigge ändere sin',
 'youremail' => 'E-Mail *',
 'username' => '{{GENDER:$1|Metmaacher|Metmaacherėnne|Metmaacher|Metmaacherėnne|Metmaacher}} Name:',
 'uid' => '{{GENDER:$1|Metmaacher|Metmaacherėnne|Metmaacher|Metmaacherėnne|Metmaacher}} Nommer:',
@@ -1737,7 +1741,6 @@ Ene zohfällesch ußjewörfelte Schlößel, dää De nämme künnß, wöhr: <cod
 'recentchangeslinked-feed' => 'Änderunge aan Sigge, wo hee drop jelink es',
 'recentchangeslinked-toolbox' => 'Änderunge aan Sigge, wo hee drop jelink es',
 'recentchangeslinked-title' => 'Änderunge aan Sigge, die vun „$1“ uß verlink sin',
-'recentchangeslinked-noresult' => 'Et woodte kein Änderunge aan verlinkte Sigge jemaat en dä Zick.',
 'recentchangeslinked-summary' => "Heh di {{int:nstab-special}} hät en Leß met Änderunge aan Sigge, di vun dä aanjejovve Sigg uß verlink sin.
 Bei Saachjruppe sen et de Sigge en dä Saachjrupp.
 Sigge uß Dinge [[Special:Watchlist|Opaßleß]] sin '''fett''' jeschrevve.",
@@ -2447,9 +2450,8 @@ Wann di Sigg udder ier Klaafsigg verändert weed, kütt dat af jäz heh en di Op
 'unwatchthispage' => 'Nit mieh op die Sigg oppasse',
 'notanarticle' => 'Keine Atikkel',
 'notvisiblerev' => 'Di Version es fottjeschmesse',
-'watchnochange' => 'Keine Atikkel en Dinger Oppassliss es en dä aanjezeichte Zick verändert woode.',
 'watchlist-details' => 'Do häs {{PLURAL:$1|<strong>ein</strong> Sigg|<strong>$1</strong> Sigge|<strong>kein</strong> Sigg}} en dä Oppassliss{{PLURAL:$1|, un di Klaafsigg dozo|, un de Klaafsigge dozo|}}.',
-'wlheader-enotif' => 'Et E-mail Schecke es enjeschalt.',
+'wlheader-enotif' => 'Et <i lang="en">e-mail</i> Schecke es enjeschalt.',
 'wlheader-showupdated' => 'Wann se Einer jeändert hätt, zickdäm De se et letzte Mol aanjeluurt häs, sin die Sigge <strong>extra markeet</strong>.',
 'watchmethod-recent' => 'Ben de letzte Änderunge jäje de Oppassliss am pröfe',
 'watchmethod-list' => 'Ben de Oppassliss am pröfe, noh de letzte Änderung',
@@ -3037,6 +3039,8 @@ Wenn De jenerell aan [//www.mediawiki.org/wiki/Localisation MediaWiki singe Öve
 'thumbnail-more' => 'Jrößer aanzeije',
 'filemissing' => 'Datei es nit do',
 'thumbnail_error' => 'Ene Fähler es opjetauch beim Maache vun enem Breefmarke/Thumbnail-Beldche: „$1“',
+'thumbnail_error_remote' => 'Ene Fähler es em $1 opjevalle:
+$2',
 'djvu_page_error' => 'De DjVu-Sgg es ußerhallef',
 'djvu_no_xml' => 'De XML-Date för di DjVu-Datei kunnte mer nit afrofe',
 'thumbnail-temp-create' => 'Mer kunnte kein Zweschedattei für Minnibeldscher aanlääje.',
@@ -3153,7 +3157,7 @@ Bes esu joot, un versök et noch ens.',
 'tooltip-t-recentchangeslinked' => 'De neuste Änderunge aan Sigge, wo vun heh dä Sigg uß Links drop jon',
 'tooltip-feed-rss' => 'Dä RSS-Abonnomang-Kannal (Feed) för heh di Sigg',
 'tooltip-feed-atom' => 'Dä Atom-Abonnomang-Kannal (Feed) för heh di Sigg',
-'tooltip-t-contributions' => 'Donn de Liß met Bedträch vun däm Metmaacher beloore',
+'tooltip-t-contributions' => 'Donn en Leß met dä Bedrähsch vun däm Medmaacher belooere',
 'tooltip-t-emailuser' => 'Scheck en E-Mail aan dä Metmaacher',
 'tooltip-t-upload' => 'Dateie huhlade',
 'tooltip-t-specialpages' => 'Liss met de {{int:nstab-special}}e',
@@ -3935,7 +3939,6 @@ Wells Do jetz met en neu Version die Sigg widder neu aanläje?',
 
 # Separators for various lists, etc.
 'semicolon-separator' => ';',
-'autocomment-prefix' => '-',
 'word-separator' => '&#32;',
 'ellipsis' => '&nbsp;…',
 'parentheses' => '($1)',
@@ -4065,7 +4068,6 @@ Dä Shtanndat-Zoot-Schlößel „$1“ övverschriif dä älldere Zoot-Schlöße
 'version-other' => 'Söns',
 'version-mediahandlers' => 'Medije-Handler',
 'version-hooks' => 'Schnettstelle oder Hooke',
-'version-extension-functions' => 'Funktione för Zosätz',
 'version-parser-extensiontags' => 'Erjänzunge zom Parser',
 'version-parser-function-hooks' => 'Parserfunktione',
 'version-hook-name' => 'De Schnettstelle ier Name',
@@ -4126,7 +4128,7 @@ Do sullts en [{{SERVER}}{{SCRIPTPATH}}/COPYING Kopie vun dä <i lang="en">GNU Ge
 'specialpages-group-pages' => 'Siggeliste',
 'specialpages-group-pagetools' => 'Werrekzüch för Sigge',
 'specialpages-group-wiki' => 'Werrekzüch un Daate vum Syßteem',
-'specialpages-group-redirects' => '{{int:nstab-special}}e, die ömleite, söke, un finge',
+'specialpages-group-redirects' => '{{int:nstab-special}}e, die ömleide, söhke, un fenge',
 'specialpages-group-spam' => 'Werrekzüch jäje SPÄM',
 
 # Special:BlankPage
index 239ddd8..1dbbe38 100644 (file)
@@ -54,10 +54,16 @@ $namespaceAliases = array(
 $separatorTransformTable = array( ',' => '.', '.' => ',' );
 
 $specialPageAliases = array(
+       'Allmessages'               => array( 'Hemû_Peyam' ),
+       'Allpages'                  => array( 'Hemû_Rûpel' ),
        'Categories'                => array( 'Dara_kategoriyan' ),
        'DoubleRedirects'           => array( 'Redirect\'ên_ducarî' ),
        'Export'                    => array( 'Eksport' ),
+       'Listadmins'                => array( 'Lîsteya_Rêveberan' ),
+       'Listbots'                  => array( 'Lîsteya_Botan' ),
        'Listusers'                 => array( 'Lîsteya_bikarhêneran' ),
+       'Longpages'                 => array( 'Rûpelên_dirêj' ),
+       'Newpages'                  => array( 'Rûpelên_nû' ),
        'Randompage'                => array( 'Rûpela_tesadufî' ),
        'Randomredirect'            => array( 'Redirecta_tasadufî' ),
        'Recentchanges'             => array( 'Guherandinên_dawî' ),
@@ -66,6 +72,7 @@ $specialPageAliases = array(
        'Statistics'                => array( 'Statîstîk' ),
        'Uncategorizedcategories'   => array( 'Kategoriyên_bê_kategorî' ),
        'Uncategorizedpages'        => array( 'Rûpelên_bê_kategorî' ),
+       'Upload'                    => array( 'Bar_Bike' ),
        'Version'                   => array( 'Versiyon' ),
        'Wantedcategories'          => array( 'Kategorîyên_tên_xwestin' ),
        'Wantedtemplates'           => array( 'Şablonên_tên_xwestin' ),
@@ -325,7 +332,6 @@ $messages = array(
 'disclaimers' => 'Ferexetname',
 'disclaimerpage' => 'Project:Ferexetname',
 'edithelp' => 'Alîkariya guherandinê',
-'edithelppage' => 'Help:Çawa rûpelekê biguherînim',
 'helppage' => 'Help:Alîkarî',
 'mainpage' => 'Destpêk',
 'mainpage-description' => 'Destpêk',
@@ -455,10 +461,17 @@ $2',
 
 Tu dikarî {{SITENAME}} niha weke bikarhênerekî nediyarkirî bikarbînî, yan jî tu dikarî dîsa bi vî navê xwe yan navekî din wek bikarhêner <span class='plainlinks'>[$1 dîsa têkevî]</span>.
 Bila di bîra te de be ku gengaz e hin rûpel mîna ku tu hîn bi navê xwe qeyd kiriyî werin nîşandan, heta ku tu nîşanên çavlêgerandina (browser) xwe jênebî.",
+'welcomeuser' => 'Xêr hatî, $1!',
 'yourname' => 'Navê bikarhêner:',
+'userlogin-yourname' => 'Navê bikarhêner',
+'userlogin-yourname-ph' => 'Navê xwe yê bikarhêneriyê binivîse',
 'yourpassword' => 'Şîfre:',
+'userlogin-yourpassword' => 'Şîfre',
+'userlogin-yourpassword-ph' => 'Şîfreya xwe binivîse',
 'yourpasswordagain' => 'Şîfreyê dîsa binivîse:',
 'remembermypassword' => 'Şifreya min di her têketina min de bîne bîra xwe (herî zêde $1 {{PLURAL:$1|rojekê|rojan}})',
+'userlogin-remembermypassword' => 'Min têketî bihêle',
+'userlogin-signwithsecure' => 'Girêdana parastî bikarbîne',
 'yourdomainname' => 'Domaînê te',
 'externaldberror' => 'Çewtiyeke bingeha daneyan heye, an jî destûra te ya rojanekirina hesabê xweyê navxweyî nîne.',
 'login' => 'Têkeve',
@@ -469,14 +482,22 @@ Bila di bîra te de be ku gengaz e hin rûpel mîna ku tu hîn bi navê xwe qeyd
 'logout' => 'Derkeve',
 'userlogout' => 'Derkeve',
 'notloggedin' => 'Xwe tomar nekir',
+'userlogin-noaccount' => 'Hesabekî te nîne?',
+'userlogin-joinproject' => 'Tevlî {{SITENAME}} bibe',
 'nologin' => 'Hesabê te nîne? $1.',
 'nologinlink' => 'Bibe endam',
 'createaccount' => 'Hesabê nû çêke',
 'gotaccount' => 'Hesabê te heye? $1.',
 'gotaccountlink' => 'Têkeve',
 'userlogin-resetlink' => 'Te agahiyên hesabê xwe ji bîr kirin?',
-'createaccountmail' => 'bi e-name',
+'userlogin-resetpassword-link' => 'Şîfreyê ji nû ve çêke',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Alîkariya têketinê]]',
+'createacct-emailrequired' => 'E-name',
+'createaccountmail' => 'Use a temporary random password and send it to the email address specified below',
 'createaccountreason' => 'Sedem:',
+'createacct-reason' => 'Sedem',
+'createacct-submit' => 'Hesabê xwe biafirîne',
+'createacct-benefit-body2' => '{{PLURAL:$1|rûpel}}',
 'badretype' => 'Her du şîfreyên ku te nivîsîn li hevdu nayên.',
 'userexists' => 'Ev navî bikarhênerî berê tê bikaranîn. Xêra xwe navekî din bibe.',
 'loginerror' => 'Çewtiya têketinê',
@@ -503,7 +524,7 @@ Eger kesekî din vê xastinê ji te ra xast ya şîfreya kevin dîsa hate bîrê
 'noemailcreate' => 'Divê tu e-nameyeke derbasdar binivîsî',
 'passwordsent' => 'Ji navnîşana e-mail ku ji bo "$1" hat tomarkirin şîfreyekê nû hat şandin. Vê bistîne û dîsa têkeve.',
 'blocked-mailpassword' => "IP'ya ku tu niha bi kar tînî ji guherandinê re hatiye astengkirin. Ji bo tiştên şaş çênebin, xwestina te ya ji bo şîfreyeke nû jî hatiye qedexekirin.",
-'eauthentsent' => 'E-nameyeka naskirinê ji adresa nivîsî ra hate şandin. Berî e-name ji bikarhênerên din bi vê rêkê dikaribim bi te gên, ew adresa û rastbûna xwe gireke werin naskirin. Xêra xwe e-nameyê naskirinê bixûne!',
+'eauthentsent' => 'E-nameyeke piştrastkirinê ji te re hate şandin. Berî ku e-nameyên din ji te re werin şandin, pêwîst e tu adresa e-nameya xwe piştrast bikî. Ji kerema xwe li e-nameya xwe binêre.',
 'throttled-mailpassword' => 'Berî {{PLURAL:$1|saetekê|$1 saetan}} şîfreyeke nû hate xwestin. Ji bo şaşbûn bi vê fonksiyonê çênebin, serê her {{PLURAL:$1|saetekê|$1 saetan}} tenê şîfreyeke nû dikare were xwestin.',
 'mailerror' => 'Şaşbûnek li cem şandina e-nameyekê: $1',
 'acct_creation_throttle_hit' => 'Bibexşe! Te hesabê bikarhêneriyê $1 vekiriye. Tu êdî nikarî hesabên din vekî.',
@@ -543,6 +564,7 @@ Ji bo xelaskirina tomarkirinê, divê tu niha şîfreyeke nû binivîsî:',
 
 # Special:PasswordReset
 'passwordreset' => 'Şîfreyê nû bike',
+'passwordreset-text-one' => 'Ji bo ji nû ve sazkirina şîfreyê vê formê dagire.',
 'passwordreset-legend' => 'Şîfreyê nû bike',
 'passwordreset-username' => 'Navê bikarhêner:',
 'passwordreset-email' => 'Navnîşana E-nameyê:',
@@ -706,9 +728,13 @@ Sedema jêbirina rûpelê bi referansa li jêr hatiye piştrastkirin.',
 'log-fulllog' => 'Tevahiya wê bibîne',
 'edit-conflict' => 'Têkçûna guherandinan.',
 'edit-no-change' => 'Guherandina te nehate hesibandin, ji ber ku guherandinên nivîsê tune bûn.',
+'postedit-confirmation' => 'Guhertina te hate tomarkirin.',
 'edit-already-exists' => 'Nikarî rûpeleka nuh çêke.
 Ew berê heye.',
 
+# Content models
+'content-model-css' => 'CSS',
+
 # "Undo" feature
 'undo-success' => 'Ev guherandin dikare were şûndekirin. Ji kerema xwe ferqa piştî tomarkirinê bibîne, bê ka tu dixwazî vê guhertoyê tomar bikî an na. Ger te şaşîtiyek kir, ji kerema xwe derkeve.',
 'undo-failure' => 'Ev guhertin ji ber guherandinên piştî wê re nikare were şûndekirin.',
@@ -820,7 +846,6 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'searchmenu-legend' => 'Vebijartinên lêgerrînê',
 'searchmenu-exists' => "'''Rûpeleke bi navê \"[[:\$1]]\" li ser vê wîkiyê heye.'''",
 'searchmenu-new' => 'Rûpela "[[:$1]]" çêke!',
-'searchhelp-url' => 'Help:Alîkarî',
 'searchprofile-articles' => 'Rûpelên naverokê',
 'searchprofile-project' => 'Rûpelên alîkariyê û projeyê',
 'searchprofile-images' => 'Multîmedya',
@@ -882,6 +907,7 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'prefs-rendering' => 'Rû',
 'saveprefs' => 'Tercîhan tomar bike',
 'resetprefs' => 'Guhertinên netomarkirî şûnde vegerîne',
+'restoreprefs' => 'Hemû eyarên berê ji nû ve ava bike',
 'prefs-editing' => 'Guherandin',
 'rows' => 'Rêz',
 'columns' => 'Stûn:',
@@ -910,7 +936,7 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'prefs-files' => 'Dosya',
 'prefs-emailconfirm-label' => 'Piştrastkirina E-nameyê:',
 'youremail' => 'E-nameya te:',
-'username' => 'Navê bikarhêner:',
+'username' => '{{GENDER:$1|Navê bikarhêner}}:',
 'uid' => 'Nasnameya bikarhêner:',
 'prefs-memberingroups' => 'Endamê/a {{PLURAL:$1|komê|koman}}:',
 'prefs-registration' => 'Dema xweqeydkirinê:',
@@ -921,15 +947,18 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'badsig' => 'Îmzeya ne derbasdar! Li HTML binêre ka sedema şaşbûnê çiye.',
 'badsiglength' => 'Navê te zêde dirêj e; pêwîst e di bin {{PLURAL:$1|nîşanekê|nîşanan}} de be.',
 'yourgender' => 'Zayend:',
+'gender-unknown' => 'Veşartî',
 'gender-male' => 'Nêr',
 'gender-female' => 'Mê',
 'email' => 'E-name',
 'prefs-help-realname' => 'Navê rastî ne pêwîst e. Heke tu navê xwe binivisî, ewê ji bo karê te were bikaranîn.',
-'prefs-help-email' => 'Adrêsa te yê e-nameyan ne gereke were nivîsandin, lê ew qebûldike, ku bikarhênerên din vê naskirinê te kanibin e-nameyan ji te ra bişînin.',
+'prefs-help-email' => 'Email address is optional, but is needed for password resets, should you forget your password.',
 'prefs-help-email-required' => 'Navnîşana e-nameyê hewce ye.',
 'prefs-info' => 'Agahiyên sereke',
+'prefs-i18n' => 'Navneteweyîkirin',
 'prefs-signature' => 'Îmze',
 'prefs-dateformat' => 'Formata dîrokê',
+'prefs-timeoffset' => 'Cudahiya demê',
 'prefs-advancedediting' => 'Vebijarkên berfireh',
 'prefs-advancedrc' => 'Vebijarkên berfireh',
 'prefs-advancedrendering' => 'Vebijarkên berfireh',
@@ -968,6 +997,7 @@ Sedema qedexekirina $3 ev e: ''$2''",
 # Groups
 'group' => 'Kom',
 'group-user' => 'Bikarhêner',
+'group-autoconfirmed' => 'Bikarhênerên xwebixwe-piştrastkirî',
 'group-bot' => 'Bot',
 'group-sysop' => 'Rêveber',
 'group-bureaucrat' => 'Burokrat',
@@ -991,11 +1021,13 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'right-minoredit' => 'Guhertina biçûk e',
 'right-move' => 'Rûpelan bigerîne',
 'right-upload' => 'Dosyeyan lê bar bike',
+'right-autoconfirmed' => 'Rûpelên nîv-parastî biguherîne',
 'right-delete' => 'Rûpelan jê bibe',
 'right-browsearchive' => 'Li rûpelên jêbirî bigerre',
 'right-undelete' => 'Jêbirinê betal bike',
 'right-import' => 'Rûpelan ji wikiyên din împort bike',
 'right-userrights' => 'Hemû mafên bikarhêner biguherîne',
+'right-userrights-interwiki' => 'Mafên bikarhênerên li ser wîkiyên din biguherîne',
 'right-sendemail' => 'Ji bikarhênerên di re e-name bişîne',
 
 # Special:Log/newusers
@@ -1022,6 +1054,7 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'action-browsearchive' => 'li rûpelên jêbirî bigere',
 'action-undelete' => 'vê rûpelê dîsa çêke',
 'action-userrights' => 'hemû mafên bikarhêneran biguherîne',
+'action-userrights-interwiki' => 'mafê bikarhênerên li ser wîkiyên din biguherîne',
 'action-sendemail' => 'e-nameyan bişîne',
 
 # Recent changes
@@ -1167,7 +1200,7 @@ Xêra xwe navekî din bibîne.',
 'filehist-filesize' => 'Mezinahiya pelê',
 'filehist-comment' => 'Şîrove',
 'filehist-missing' => 'Pel nîne',
-'imagelinks' => 'Girêdanên vî wêneyî',
+'imagelinks' => 'Bikaranîna pelê',
 'linkstoimage' => 'Di van rûpelan de lînkek ji vî wêneyî re heye:',
 'nolinkstoimage' => 'Rûpelekî ku ji vî wêneyî re girêdankê çêdike nîne.',
 'linkstoimage-redirect' => '$1 (beralîkirina pelê) $2',
@@ -1257,7 +1290,7 @@ Agahdariya li ser [$2 rûpela danasîna pelê] li jêr tê nîşandan.',
 'nrevisions' => '$1 {{PLURAL:$1|guherandin|guherandin}}',
 'nviews' => '$1 {{PLURAL:$1|dîtin|dîtin}}',
 'lonelypages' => 'Rûpelên sêwî',
-'uncategorizedpages' => 'Rûpelên bê kategorî',
+'uncategorizedpages' => 'Rûpelên bêkategorî',
 'uncategorizedcategories' => 'Kategoriyên bê kategorî',
 'uncategorizedimages' => 'Wêneyên bê kategorî',
 'uncategorizedtemplates' => 'Şablonên bê kategorî',
@@ -1403,7 +1436,6 @@ Gava tu bixwazî wê rûpelê ji nav lîsteya xwe ya şopandinê derbixî, li se
 'unwatch' => 'Êdî neşopîne',
 'unwatchthispage' => 'Êdî neşopîne',
 'notanarticle' => 'Ne gotar e',
-'watchnochange' => 'Ne rûpelek, yê tu dişopînê, hate xeyrandin di vê wextê da, yê tu dixazê bibînê.',
 'watchlist-details' => '{{PLURAL:$1|Rûpeleka|$1 rûpel}} li ser lîsteya te ya şopandinê, rûpelên gotûbêjê nayên jimartin.',
 'wlheader-enotif' => 'Agahdariya E-nameyê pêk tê.',
 'wlheader-showupdated' => "Ev rûpela hatî guhertin dema te lê meyzand bi '''nivîsa stûr''' tê xuyakirin.",
@@ -1491,7 +1523,7 @@ Guhertoya dawî bi [[User:$3|$3]] ([[User talk:$3|gotûbêj]]).',
 'modifiedarticleprotection' => 'parastina "[[$1]]" guherand',
 'unprotectedarticle' => 'parastina "[[$1]]" rakir',
 'protect-title' => 'parastina "$1" biguherîne',
-'prot_1movedto2' => '$1 çû cihê $2',
+'prot_1movedto2' => 'Navê [[$1]] weke [[$2]] hate guhertin',
 'protect-legend' => 'Parastinê teyîd bike',
 'protectcomment' => 'Sedem:',
 'protectexpiry' => 'Heta:',
@@ -1575,7 +1607,7 @@ Ji bo jêbirinan û çêkirinên nû, ji kerema xwe li [[{{ns:special}}:Log/dele
 'sp-contributions-uploads' => 'yên barkirî',
 'sp-contributions-logs' => 'têketin',
 'sp-contributions-talk' => 'gotûbêj',
-'sp-contributions-userrights' => 'Ã\8edarekirina mafên bikarhêneran',
+'sp-contributions-userrights' => 'îdarekirina mafên bikarhêneran',
 'sp-contributions-search' => 'Li beşdariyan bigere',
 'sp-contributions-username' => "Adresa IP'yê yan navê bikarhêner:",
 'sp-contributions-submit' => 'Lêgerîn',
@@ -1726,7 +1758,7 @@ da bikarî navê wê rûpelê biguherînî.',
 'move-watch' => 'Vê rûpelê bişopîne',
 'movepagebtn' => 'Vê rûpelê bigerîne',
 'pagemovedsub' => 'Gerandin serkeftî',
-'movepage-moved' => '\'\'\'"$1" çû cihê "$2"\'\'\'',
+'movepage-moved' => '\'\'\'Navê "$1" weke "$2" hate guhertin\'\'\'',
 'movepage-moved-redirect' => 'Beralîkirinek hate çêkirin.',
 'movepage-moved-noredirect' => 'Beralîkirin nehate çêkirin.',
 'articleexists' => 'Rûpela bi vî navî heye, an navê ku te hilbijart derbas nabe. Navekî din hilbijêre.',
@@ -1734,7 +1766,7 @@ da bikarî navê wê rûpelê biguherînî.',
 'movedto' => 'bû',
 'movetalk' => "Heke gengaz be, rûpela '''gotûbêj'''a wê jî bigerîne.",
 'movepage-page-exists' => 'Rûpela $1 berê heye û ew nikane otomatîk were jêbirin.',
-'movepage-page-moved' => 'Rûpela $1 çû cihê $2.',
+'movepage-page-moved' => 'Navê $1 weke $2 hate guhertin.',
 'movepage-page-unmoved' => 'Rûpela $1 nikanî çûba ciha $2.',
 'movelogpage' => 'Guhertina nav',
 'movelogpagetext' => 'Li jêr lîsteyek ji rûpelan ku navê wan hatiye guherandin heye.',
@@ -1748,6 +1780,7 @@ Rûpela "[[:$1]]" berê heye. Tu rast dixazê wê jêbibê ji bo navguherandinê
 'delete_and_move_confirm' => 'Erê, rûpelê jê bibe',
 'delete_and_move_reason' => 'Jêbir ji bo navguherandinê',
 'immobile-source-page' => 'Navê vê rûpelê nikare were guherandin.',
+'move-leave-redirect' => 'Beralîkirinekê bihêle',
 
 # Export
 'export' => 'Rûpelan eksport bike',
@@ -1863,8 +1896,10 @@ Ji ber ku girêdaneke derve di wê rûpelê de heye ev pirsgirêk pêk hat.',
 
 # Info page
 'pageinfo-header-edits' => 'Guherandin',
+'pageinfo-header-restrictions' => 'Parastina rûpelê',
 'pageinfo-views' => 'Hejmara dîtinê',
 'pageinfo-watchers' => 'Hejmara kesên dişopînin',
+'pageinfo-subpages-name' => 'Binrûpelên vê rûpelê',
 'pageinfo-edits' => 'Hejmara guherandinan',
 'pageinfo-toolboxlink' => 'Agahiya rûpelê',
 'pageinfo-redirectsto-info' => 'agahî',
@@ -1946,6 +1981,7 @@ Ji ber ku girêdaneke derve di wê rûpelê de heye ev pirsgirêk pêk hat.',
 'exif-languagecode' => 'Ziman',
 'exif-iimcategory' => 'Kategorî',
 'exif-label' => 'Etîket',
+'exif-copyrighted' => 'Rewşa telîfê',
 'exif-disclaimer' => 'Ferexetname',
 
 'exif-unknowndate' => 'Dîroka nayê zanîn',
@@ -2039,6 +2075,7 @@ Ji kerema xwe zanibe ku tu bi rastî dixwazî vê rûpelê dîsa çêkî.",
 
 # action=watch/unwatch
 'confirm-watch-button' => 'Temam',
+'confirm-unwatch-button' => 'Baş e',
 
 # Multipage image navigation
 'imgmultipageprev' => '← rûpela berî vê',
@@ -2153,6 +2190,7 @@ Ji kerema xwe zanibe ku tu bi rastî dixwazî vê rûpelê dîsa çêkî.",
 'feedback-subject' => 'Mijar:',
 'feedback-message' => 'Peyam:',
 'feedback-cancel' => 'Betal bike',
+'feedback-close' => 'Çêbû',
 
 # Search suggestions
 'searchsuggest-search' => 'Lêgerîn',
index 55f572c..f67143a 100644 (file)
@@ -20,7 +20,7 @@
 
 $namespaceNames = array(
        NS_MEDIA            => 'Media',
-       NS_SPECIAL          => 'Arbednek',
+       NS_SPECIAL          => 'Arbennek',
        NS_TALK             => 'Keskows',
        NS_USER             => 'Devnydhyer',
        NS_USER_TALK        => 'Keskows_Devnydhyer',
@@ -38,7 +38,7 @@ $namespaceNames = array(
 );
 
 $namespaceAliases = array(
-       'Arbennek'           => NS_SPECIAL,
+       'Arbednek'           => NS_SPECIAL,
        'Cows'               => NS_TALK,
        'Kescows'            => NS_TALK,
        'Cows_Devnydhyer'    => NS_USER_TALK,
@@ -60,100 +60,100 @@ $namespaceAliases = array(
 );
 
 $specialPageAliases = array(
-       'Activeusers'               => array( 'DevnydhyoryonBew' ),
+       'Activeusers'               => array( 'DevnydhyoryonByw' ),
        'Allmessages'               => array( 'OllMessajys' ),
        'Allpages'                  => array( 'OllFolennow' ),
-       'Ancientpages'              => array( 'FolennowCoth' ),
+       'Ancientpages'              => array( 'FolennowKoth' ),
        'Badtitle'                  => array( 'TitelDrog' ),
        'Blankpage'                 => array( 'FolenWag' ),
-       'Block'                     => array( 'Difen' ),
-       'Blockme'                   => array( 'DifenVy' ),
+       'Block'                     => array( 'Difenna' ),
+       'Blockme'                   => array( 'GulOwDifen' ),
        'Booksources'               => array( 'PennfentynyowLyver' ),
-       'BrokenRedirects'           => array( 'DaswedyansowTerrys' ),
-       'Categories'                => array( 'Classys' ),
+       'BrokenRedirects'           => array( 'DaskedyansowTerrys' ),
+       'Categories'                => array( 'Klassys' ),
        'ChangeEmail'               => array( 'ChanjyaEbost' ),
        'ChangePassword'            => array( 'ChanjyaGerTremena' ),
-       'ComparePages'              => array( 'KehevelyFolennow' ),
+       'ComparePages'              => array( 'KeheveliFolennow' ),
        'Confirmemail'              => array( 'AfydhyaEbost' ),
        'Contributions'             => array( 'Kevrohow' ),
-       'CreateAccount'             => array( 'FormyaAcont' ),
+       'CreateAccount'             => array( 'FormyaAkont' ),
        'Deadendpages'              => array( 'FolennowFordhDhall' ),
        'DeletedContributions'      => array( 'KevrohowDiles' ),
        'Disambiguations'           => array( 'Diamstyryansow' ),
        'DoubleRedirects'           => array( 'DaswedyansowDewblek' ),
-       'EditWatchlist'             => array( 'ChanjyaOwRolGolyas' ),
+       'EditWatchlist'             => array( 'ChanjyaOwRolGolya' ),
        'Emailuser'                 => array( 'EbostyaDevnydhyer' ),
-       'Export'                    => array( 'Esperthy' ),
+       'Export'                    => array( 'Esperthi' ),
        'Fewestrevisions'           => array( 'AnLyhaAmendyansow' ),
-       'Filepath'                  => array( 'HensAnFolen' ),
-       'Import'                    => array( 'Ymperthy' ),
+       'Filepath'                  => array( 'HynsAnFolen' ),
+       'Import'                    => array( 'Ymperthi' ),
        'Invalidateemail'           => array( 'DigomposaEbost' ),
        'JavaScriptTest'            => array( 'PrevyansJavaScript' ),
        'BlockList'                 => array( 'RolDhifen' ),
-       'LinkSearch'                => array( 'WhilasKevrennow' ),
+       'LinkSearch'                => array( 'HwilasKevrennow' ),
        'Listadmins'                => array( 'RolyaMenystroryon' ),
        'Listbots'                  => array( 'RolyaBottys' ),
        'Listfiles'                 => array( 'RolyaRestrennow' ),
        'Listgrouprights'           => array( 'RolyaGwiryowBagas' ),
-       'Listredirects'             => array( 'RolyaDaswedyansow' ),
+       'Listredirects'             => array( 'RolyaDaskedyansow' ),
        'Listusers'                 => array( 'RolyaDevnydhyoryon' ),
-       'Lockdb'                    => array( 'AlwhedhaDB' ),
-       'Log'                       => array( 'Covnoten', 'Covnotennow' ),
+       'Lockdb'                    => array( 'AlhwedhaDB' ),
+       'Log'                       => array( 'Kovnoten', 'Kovnotennow' ),
        'Lonelypages'               => array( 'FolennowDigoweth' ),
        'Longpages'                 => array( 'FolennowHir' ),
-       'MergeHistory'              => array( 'IstoryKesunya' ),
-       'MIMEsearch'                => array( 'WhilasMIME' ),
-       'Mostcategories'            => array( 'AnMoyhaClassys' ),
+       'MergeHistory'              => array( 'IstoriKesunya' ),
+       'MIMEsearch'                => array( 'HwilasMIME' ),
+       'Mostcategories'            => array( 'AnMoyhaKlassys' ),
        'Mostimages'                => array( 'AnMoyhaRestrennowKevennys' ),
        'Mostinterwikis'            => array( 'AnMoyhaInterwikis' ),
        'Mostlinked'                => array( 'AnMoyhaFolennowKevrennys' ),
-       'Mostlinkedcategories'      => array( 'AnMoyhaClassysKevrennys' ),
-       'Mostlinkedtemplates'       => array( 'AnMoyhaScantlynsKevrennys' ),
+       'Mostlinkedcategories'      => array( 'AnMoyhaKlassysKevrennys' ),
+       'Mostlinkedtemplates'       => array( 'AnMoyhaSkantlynsKevrennys' ),
        'Mostrevisions'             => array( 'AnMoyhaAmendyansow' ),
        'Movepage'                  => array( 'GwayaFolen' ),
        'Mycontributions'           => array( 'OwHevrohow' ),
        'Mypage'                    => array( 'OwFolen' ),
-       'Mytalk'                    => array( 'OwHescows' ),
-       'Myuploads'                 => array( 'OwUghcargansow' ),
+       'Mytalk'                    => array( 'OwHeskows' ),
+       'Myuploads'                 => array( 'OwUghkargansow' ),
        'Newimages'                 => array( 'RestrennowNowyth' ),
        'Newpages'                  => array( 'FolennowNowyth' ),
        'PasswordReset'             => array( 'DassetyaGerTremena' ),
        'PermanentLink'             => array( 'KevrenFast' ),
        'Popularpages'              => array( 'FolennowGerysDa' ),
-       'Preferences'               => array( 'Dowisyansow' ),
+       'Preferences'               => array( 'Dewisyansow' ),
        'Prefixindex'               => array( 'MenegvaRagerow' ),
        'Protectedpages'            => array( 'FolennowDifresys' ),
        'Protectedtitles'           => array( 'TitlysDifres' ),
        'Randompage'                => array( 'FolenDreJons' ),
-       'Randomredirect'            => array( 'DaswedyansDreJons' ),
+       'Randomredirect'            => array( 'DaskedyansDreJons' ),
        'Recentchanges'             => array( 'Chanjyow_a-dhiwedhes' ),
        'Recentchangeslinked'       => array( 'ChanjyowKelmys' ),
        'Revisiondelete'            => array( 'DileaAmendyans' ),
-       'Search'                    => array( 'Whilas' ),
-       'Shortpages'                => array( 'FolennowCot' ),
+       'Search'                    => array( 'Hwilas' ),
+       'Shortpages'                => array( 'FolennowBerr' ),
        'Specialpages'              => array( 'FolennowArbennek' ),
        'Statistics'                => array( 'Statystygyon' ),
        'Unblock'                   => array( 'DiswulDifennans' ),
-       'Uncategorizedcategories'   => array( 'ClassysHebClass' ),
-       'Uncategorizedimages'       => array( 'RestrennowHebClass' ),
-       'Uncategorizedpages'        => array( 'FolennowHebClass' ),
-       'Uncategorizedtemplates'    => array( 'ScantlynsHebClass' ),
-       'Undelete'                  => array( 'DiswulDileans' ),
-       'Unlockdb'                  => array( 'DialwhedhaDB' ),
-       'Unusedcategories'          => array( 'ClassysHebDevnydh' ),
+       'Uncategorizedcategories'   => array( 'KlassysHebKlass' ),
+       'Uncategorizedimages'       => array( 'RestrennowHebKlass' ),
+       'Uncategorizedpages'        => array( 'FolennowHebKlass' ),
+       'Uncategorizedtemplates'    => array( 'SkantlynsHebKlass' ),
+       'Undelete'                  => array( 'DiswulDilea' ),
+       'Unlockdb'                  => array( 'DialhwedhaDB' ),
+       'Unusedcategories'          => array( 'KlassysHebDevnydh' ),
        'Unusedimages'              => array( 'RestrennowHebDevnydh' ),
-       'Unusedtemplates'           => array( 'ScantlynsHebDevnydh' ),
-       'Unwatchedpages'            => array( 'FolennowHebAgaHolyas' ),
-       'Upload'                    => array( 'Ughcarga' ),
-       'Userlogin'                 => array( 'Omgelmy' ),
-       'Userlogout'                => array( 'Digelmy' ),
+       'Unusedtemplates'           => array( 'SkantlynsHebDevnydh' ),
+       'Unwatchedpages'            => array( 'FolennowHebAgaHolya' ),
+       'Upload'                    => array( 'Ughkarga' ),
+       'Userlogin'                 => array( 'Omgelmi' ),
+       'Userlogout'                => array( 'Digelmi' ),
        'Userrights'                => array( 'GwiryowDevnydhyer' ),
        'Version'                   => array( 'Versyon' ),
-       'Wantedcategories'          => array( 'ClassysWhansus' ),
-       'Wantedfiles'               => array( 'RestrennowWhansus' ),
-       'Wantedpages'               => array( 'FolennowWhansus' ),
-       'Wantedtemplates'           => array( 'ScantlynsWhansus' ),
-       'Watchlist'                 => array( 'Rol_golyas' ),
+       'Wantedcategories'          => array( 'KlassysHwansus' ),
+       'Wantedfiles'               => array( 'RestrennowHwansus' ),
+       'Wantedpages'               => array( 'FolennowHwansus' ),
+       'Wantedtemplates'           => array( 'SkantlynsHwansus' ),
+       'Watchlist'                 => array( 'Rol_golya' ),
        'Whatlinkshere'             => array( 'OwKevrennaOmma' ),
        'Withoutinterwiki'          => array( 'HebInterwiki' ),
 );
@@ -209,24 +209,37 @@ $magicWords = array(
 $messages = array(
 # User preference toggles
 'tog-underline' => 'Islinenna kevrennow:',
-'tog-hideminor' => 'Cudha chanjyow bian yn chanjyow a-dhiwedhes',
-'tog-showtoolbar' => 'Disqwedhes an toulvar chanjya (res yw JavaScript)',
-'tog-rememberpassword' => "Perthy cov a'm omgelmy war'n beurel-ma (rag $1 {{PLURAL:$1|dedh}} dhe'n moyha)",
+'tog-hideminor' => 'Kudha chanjyow byhan yn chanjyow a-dhiwedhes',
+'tog-hidepatrolled' => 'Kudha chanjyow patrolys yn chanjyow a-dhiwedhes',
+'tog-newpageshidepatrolled' => 'Kudha folennow patrolys dhyworth rol an folennow nowyth',
+'tog-extendwatchlist' => 'Efani an rol golya dhe dhiskwedhes pub chanj, a-dar an moyha a-dhiwedhes hepken',
+'tog-usenewrc' => "Bagasa chanjyow herwydh an folen yn chanjyow a-dhiwedhes hag y'n rol golya (res yw JavaScript)",
+'tog-numberheadings' => 'Awto-nivera pennlinennow',
+'tog-showtoolbar' => 'Diskwedhes an toulvar chanjya (res yw JavaScript)',
+'tog-editondblclick' => 'Chanjya folennow ow tobyl-glyckya (res yw JavaScript)',
+'tog-editsection' => 'Galosegi chanjya trehow der an kevrennow [chanjya]',
+'tog-editsectiononrightclick' => 'Galosegi chanjya trehow dre dhyhow-glyckya war ditlys an trehow (res yw JavaScript)',
+'tog-rememberpassword' => "Perthi kov a'm omgelmi war an beurel-ma (rag $1 {{PLURAL:$1|dydh}} dhe'n moyha)",
 'tog-watchcreations' => "Keworra folennow gwruthys genev ha restrennow ughkergys genev dhe'm rol golyas",
 'tog-watchdefault' => "Keworra folennow ha restrennow chanjys genev dhe'm rol golyas",
 'tog-watchmoves' => "Keworra folennow ha restrennow gwayys genev dhe'm rol golyas",
 'tog-watchdeletion' => "Keworra folennow ha restrennow dileys genev dhe'm rol golyas",
-'tog-minordefault' => 'Merkya pub chanj avel bian dre dhefowt',
-'tog-showjumplinks' => 'Galosegy kevrennow hedhadowder "lamma dhe"',
-'tog-watchlisthideown' => "Cudha ow chanjyow vy y'n rol golyas",
-'tog-watchlisthidebots' => "Cudha chanjyow gans bottow y'n rol golyas",
-'tog-watchlisthideminor' => "Cudha chanjyow bian y'n rol golyas",
-'tog-watchlisthideliu' => "Cudha chanjyow gans devnydhyoryon omgelmys y'n rol golyas",
-'tog-watchlisthideanons' => "Cudha chanjyow gans devnydhyoryon heb hanow y'n rol golyas",
-'tog-showhiddencats' => 'Disqwedhes classys cudhys',
-'tog-useeditwarning' => 'Gwra ow gwarnya pan wrellen vy gasa folen chanjya gans chanjyow nag eus gwithys',
-
-'underline-always' => 'Puppres',
+'tog-minordefault' => 'Merkya pub chanj avel byhan dre dhefowt',
+'tog-enotifwatchlistpages' => 'Danvon ebost dhymm pan vo chanjyes folen po restren eus war ow rol golya',
+'tog-enotifusertalkpages' => 'Danvon ebost dhymm pan vo chanjyes ow folen geskows',
+'tog-oldsig' => 'Sinans a-lemmyn:',
+'tog-fancysig' => 'Dyghtya an sinans avel wikitekst (heb kevren awtomatek)',
+'tog-showjumplinks' => 'Galosegi kevrennow hedhadowder "lamma dhe"',
+'tog-watchlisthideown' => "Kudha ow chanjyow y'n rol golya",
+'tog-watchlisthidebots' => "Kudha chanjyow gans bottow y'n rol golya",
+'tog-watchlisthideminor' => "Kudha chanjyow byhian y'n rol golya",
+'tog-watchlisthideliu' => "Kudha chanjyow gans devnydhyoryon omgelmys y'n rol golya",
+'tog-watchlisthideanons' => "Kudha chanjyow gans devnydhyoryon heb hanow y'n rol golya",
+'tog-ccmeonemails' => 'Danvon dhymm dasskrif a ebostow a dhanvonav dhe dhevnydhyoryon erel',
+'tog-showhiddencats' => 'Diskwedhes klassys kudhys',
+'tog-useeditwarning' => 'Gul ow gwarnya pan gyssiv folen janjya gans chanjyow nag yw gwithys',
+
+'underline-always' => 'Pub prys',
 'underline-never' => 'Jammes',
 'underline-default' => 'Defowt an beurel po an grohen',
 
@@ -237,13 +250,13 @@ $messages = array(
 'editfont-serif' => 'Font serif',
 
 # Dates
-'sunday' => "De'Sul",
-'monday' => "De'Lun",
-'tuesday' => "De'Meurth",
-'wednesday' => "De'Merher",
-'thursday' => "De'Yow",
-'friday' => "De'Gwener",
-'saturday' => "De'Sadorn",
+'sunday' => "Dy'Sul",
+'monday' => "Dy'Lun",
+'tuesday' => "Dy'Meurth",
+'wednesday' => "Dy'Merher",
+'thursday' => "Dy'Yow",
+'friday' => "Dy'Gwener",
+'saturday' => "Dy'Sadorn",
 'sun' => 'Sul',
 'mon' => 'Lun',
 'tue' => 'Meu',
@@ -252,7 +265,7 @@ $messages = array(
 'fri' => 'Gwe',
 'sat' => 'Sad',
 'january' => 'Genver',
-'february' => 'Whevrel',
+'february' => 'Hwevrel',
 'march' => 'Meurth',
 'april' => 'Ebrel',
 'may_long' => 'Me',
@@ -264,7 +277,7 @@ $messages = array(
 'november' => 'Du',
 'december' => 'Kevardhu',
 'january-gen' => 'Genver',
-'february-gen' => 'Whevrel',
+'february-gen' => 'Hwevrel',
 'march-gen' => 'Meurth',
 'april-gen' => 'Ebrel',
 'may-gen' => 'Me',
@@ -276,7 +289,7 @@ $messages = array(
 'november-gen' => 'Du',
 'december-gen' => 'Kevardhu',
 'jan' => 'Gen',
-'feb' => 'Whe',
+'feb' => 'Hwe',
 'mar' => 'Meu',
 'apr' => 'Ebr',
 'may' => 'Me',
@@ -287,36 +300,49 @@ $messages = array(
 'oct' => 'Hed',
 'nov' => 'Du',
 'dec' => 'Kev',
+'january-date' => '$1 Genver',
+'february-date' => '$1 Hwevrel',
+'march-date' => '$1 Meurth',
+'april-date' => '$1 Ebrel',
+'may-date' => '$1 Me',
+'june-date' => '$1 Metheven',
+'july-date' => '$1 Gortheren',
+'august-date' => '$1 Est',
+'september-date' => '$1 Gwynngala',
+'october-date' => '$1 Hedra',
+'november-date' => '$1 Du',
+'december-date' => '$1 Kevardhu',
 
 # Categories related messages
-'pagecategories' => '{{PLURAL:$1|Class|Classys}}',
-'category_header' => 'Folennow y\'n class "$1"',
+'pagecategories' => '{{PLURAL:$1|Klass|Klassys}}',
+'category_header' => 'Folennow y\'n klass "$1"',
 'subcategories' => 'Isglassys',
-'category-media-header' => 'Media y\'n class "$1"',
+'category-media-header' => 'Media y\'n klass "$1"',
 'category-empty' => "''Nyns eus na folennow na media y'n class-ma.''",
-'hidden-categories' => '{{PLURAL:$1|Class cudhys|Classys cudhys}}',
-'hidden-category-category' => 'Classys cudhys',
-'category-subcat-count' => "{{PLURAL:$2|Nyns eus dhe'n class-ma marnas an isglass a sew.|Yma dhe'n class-ma an {{PLURAL:$1|isglass|$1 isglass}} a sew, dhyworth somm a $2.}}",
-'category-subcat-count-limited' => "Yma dhe'n class-ma an {{PLURAL:$1|isglass|$1 isglass}} a sew.",
-'category-article-count' => "{{PLURAL:$2|Nyns eus dhe'n class-ma marnas an folen a sew.|Yma'n {{PLURAL:$1|folen|$1 folennow}} a sew y'n class-ma, dhyworth somm a $2.}}",
-'category-article-count-limited' => "Yma'n {{PLURAL:$1|folen|$1 folen}} a sew y'n class-ma.",
-'category-file-count' => "{{PLURAL:$2|Nyns eus dhe'n class-ma an folen a sew.|Yma'n {{PLURAL:$1|folen|$1 folen}} a sew y'n class-ma, dhyworth somm a $2.}}",
-'category-file-count-limited' => "Yma'n {{PLURAL:$1|folen|$1 folen}} a sew y'n class-ma.",
+'hidden-categories' => '{{PLURAL:$1|Klass kudhys|Klassys kudhys}}',
+'hidden-category-category' => 'Klassys kudhys',
+'category-subcat-count' => "{{PLURAL:$2|Ny'n jeves an klass-ma marnas an isglass a syw.|An klass-ma a'n jeves an {{PLURAL:$1|isglass|$1 isglass}} a syw, dhyworth somm a $2.}}",
+'category-subcat-count-limited' => "An klass-ma a'n jeves an {{PLURAL:$1|isglass|$1 isglass}} a syw.",
+'category-article-count' => "{{PLURAL:$2|Ny'n jeves an klass-ma marnas an folen a syw.|Yma an {{PLURAL:$1|folen|$1 folennow}} a syw y'n klass-ma, dhyworth somm a $2.}}",
+'category-article-count-limited' => "Yma an {{PLURAL:$1|folen|$1 folen}} a syw y'n klass-ma.",
+'category-file-count' => "{{PLURAL:$2|Ny'n jeves an klass-ma marnas an restren a syw.|Yma an {{PLURAL:$1|restren|$1 restren}} a syw y'n klass-ma, dhyworth somm a $2.}}",
+'category-file-count-limited' => "Yma an {{PLURAL:$1|folen|$1 folen}} a syw y'n klass-ma.",
 'listingcontinuesabbrev' => 'pes.',
 
 'about' => 'A-dro dhe',
-'newwindow' => '(y whra egery yn fenester noweth)',
-'cancel' => 'Hedhy',
+'article' => 'Folen dhalgh',
+'newwindow' => '(ygeri yn fenester nowyth)',
+'cancel' => 'Hedhi',
 'moredotdotdot' => 'Moy...',
 'mypage' => 'Folen',
-'mytalk' => 'Kescows',
-'anontalk' => 'Kescows rag an drigva IP-ma',
-'navigation' => 'Lewyans',
+'mytalk' => 'Keskows',
+'anontalk' => 'Keskows rag an drigva IP-ma',
+'navigation' => 'Kevrennow lewya',
 'and' => '&#32;ha(g)',
 
 # Cologne Blue skin
-'qbfind' => 'Cavos',
-'qbbrowse' => 'Peury',
+'qbfind' => 'Kavos',
+'qbbrowse' => 'Peuri',
 'qbedit' => 'Chanjya',
 'qbpageoptions' => 'An folen-ma',
 'qbmyoptions' => 'Ow folennow',
@@ -332,25 +358,25 @@ $messages = array(
 'vector-action-unprotect' => 'Chanjya difresans',
 'vector-view-create' => 'Gwruthyl',
 'vector-view-edit' => 'Chanjya',
-'vector-view-history' => 'Gweles an istory',
+'vector-view-history' => 'Gweles an istori',
 'vector-view-view' => 'Redya',
 'vector-view-viewsource' => 'Gweles an bennfenten',
 'actions' => 'Gwriansow',
 'namespaces' => 'Spasys hanow',
-'variants' => 'Dyffransow',
+'variants' => 'Variennow',
 
-'navigation-heading' => 'Rol lewyans',
+'navigation-heading' => 'Rol lewya',
 'errorpagetitle' => 'Gwall',
-'returnto' => 'Dewheles dhe $1.',
+'returnto' => 'Dehweles dhe $1.',
 'tagline' => 'Dhyworth {{SITENAME}}',
 'help' => 'Gweres',
-'search' => 'Whilas',
-'searchbutton' => 'Whilas',
-'go' => 'Ke',
+'search' => 'Hwilas',
+'searchbutton' => 'Hwilas',
+'go' => 'Mos',
 'searcharticle' => 'Mos',
-'history' => 'Istory an folen',
-'history_short' => 'Istory',
-'updatedmarker' => 'nowedhys a-ban ow vysytyans diwettha',
+'history' => 'Istori an folen',
+'history_short' => 'Istori',
+'updatedmarker' => 'nowedhys a-dhia ow vysytyans diwettha',
 'printableversion' => 'Versyon pryntyadow',
 'permalink' => 'Kevren fast',
 'print' => 'Pryntya',
@@ -361,6 +387,7 @@ $messages = array(
 'create-this-page' => 'Gwruthyl an folen-ma',
 'delete' => 'Dilea',
 'deletethispage' => 'Dilea an folen-ma',
+'undeletethispage' => 'Diswul dilea an folen-ma',
 'undelete_short' => 'Disdhilea {{PLURAL:$1|unn janj|$1 chanj}}',
 'viewdeleted_short' => 'Gweles {{PLURAL:$1|unn janj diles|$1 chanj diles}}',
 'protect' => 'Difres',
@@ -368,319 +395,368 @@ $messages = array(
 'protectthispage' => 'Difres an folen-ma',
 'unprotect' => 'Chanjya difresans',
 'unprotectthispage' => 'Chanjya difresans an folen-ma',
-'newpage' => 'Folen noweth',
-'talkpage' => "Dadhelva a-dro dhe'n folen-ma",
-'talkpagelinktext' => 'Kescows',
+'newpage' => 'Folen nowyth',
+'talkpage' => "Dadhlow a'n folen-ma",
+'talkpagelinktext' => 'Keskows',
 'specialpage' => 'Folen arbennek',
 'personaltools' => 'Toulys personel',
-'postcomment' => 'Rann noweth',
+'postcomment' => 'Tregh nowyth',
 'articlepage' => 'Gweles an folen',
-'talk' => 'Kescows',
-'views' => 'Gwelow',
-'toolbox' => 'Box toulys',
-'userpage' => 'Folen devnydhyer',
-'projectpage' => 'Folen meta',
+'talk' => 'Keskows',
+'views' => 'Gwelyansow',
+'toolbox' => 'Toulgist',
+'userpage' => 'Gweles an folen dhevnydhyer',
+'projectpage' => 'Gweles folen an ragdres',
 'imagepage' => 'Gweles folen an restren',
 'mediawikipage' => 'Gweles folen an messajys',
-'templatepage' => 'Gweles folen an scantlyn',
-'viewhelppage' => 'Gweles an folen gweres',
-'categorypage' => 'Gweles folen an class',
-'viewtalkpage' => 'Gweles an kescows',
+'templatepage' => 'Gweles folen an skantlyn',
+'viewhelppage' => 'Gweles an folen weres',
+'categorypage' => 'Gweles folen an klass',
+'viewtalkpage' => 'Gweles an dadhlow',
 'otherlanguages' => 'Yn yethow erel',
-'redirectedfrom' => '(Daswedyes dhyworth $1)',
-'redirectpagesub' => 'Folen daswedyans',
-'lastmodifiedat' => 'An folen-ma a veu chanjys an $1, dhe $2.',
+'redirectedfrom' => '(Daskedyes dhyworth $1)',
+'redirectpagesub' => 'Folen dhaskedya',
+'lastmodifiedat' => 'Diwettha chanj an folen-ma o an $1, dhe $2.',
 'protectedpage' => 'Folen dhifresys',
 'jumpto' => 'Lamma dhe:',
-'jumptonavigation' => 'lewyans',
-'jumptosearch' => 'whilas',
-'view-pool-error' => 'Drog yw genen, gorgargys yw an servyers orth an termyn-ma.
+'jumptonavigation' => 'kevrennow lewya',
+'jumptosearch' => 'hwilas',
+'view-pool-error' => 'Drog yw genen, gorgergys yw an servyers orth an termyn-ma.
 Yma re a dhevnydhyoryon owth assaya gweles an folen-ma.
-Gortowgh pols kens why dhe assaya hedhes an folen-ma arta, mar pleg.
+Gortewgh pols kyns hwi dhe assaya hedhas an folen-ma arta, mar pleg.
 
 $1',
-'pool-errorunknown' => 'Gwall ancoth',
+'pool-errorunknown' => 'Gwall ankoth',
 
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
 'aboutsite' => 'A-dro dhe {{SITENAME}}',
 'aboutpage' => 'Project:Kedhlow',
-'copyright' => 'Cavadow yw an dalgh yn-dann $1.',
+'copyright' => 'Kavadow yw an dalgh yn-dann $1.',
 'copyrightpage' => '{{ns:project}}:Gwirbryntyansow',
-'currentevents' => 'Darvosow a-lemmyn',
-'currentevents-url' => 'Project:Darvosow a-lemmyn',
+'currentevents' => 'Hwarvosow a-lemmyn',
+'currentevents-url' => 'Project:Hwarvosow a-lemmyn',
 'disclaimers' => 'Avisyansow',
 'disclaimerpage' => 'Project:Avisyans ollgemmyn',
 'edithelp' => 'Gweres gans chanjya',
-'edithelppage' => 'Help:Chanjya',
 'helppage' => 'Help:Gweres',
-'mainpage' => 'Folen dre',
-'mainpage-description' => 'Folen dre',
-'policy-url' => 'Project:Policy',
+'mainpage' => 'Dynnargh',
+'mainpage-description' => 'Dynnargh',
+'policy-url' => 'Project:Polici',
 'portal' => 'Porth an gemeneth',
 'portal-url' => 'Project:Porth an gemeneth',
-'privacy' => 'Policy privetter',
-'privacypage' => 'Project:Policy privetter',
+'privacy' => 'Polici privetter',
+'privacypage' => 'Project:Polici privetter',
 
-'badaccess' => 'Gwall cummyes',
+'badaccess' => 'Gwall kummyes',
 
 'ok' => 'Sur',
 'retrievedfrom' => 'Daskevys dhyworth "$1"',
-'youhavenewmessages' => 'Yma $1 genowgh ($2).',
-'newmessageslink' => 'messajys noweth',
+'youhavenewmessages' => "$1 a'gas beus ($2).",
+'newmessageslink' => 'Messajys nowyth',
 'newmessagesdifflink' => 'chanj diwettha',
-'youhavenewmessagesfromusers' => 'Yma $1 dhywgh dhyworth {{PLURAL:$3|devnydhyer aral|$3 devnydhyer}} ($2).',
-'youhavenewmessagesmanyusers' => 'Yma $1 dhywgh dhyworth lies devnydhyer ($2).',
-'newmessageslinkplural' => '{{PLURAL:$1|messach noweth}}',
-'newmessagesdifflinkplural' => '{{PLURAL:$1|chanj diwettha}}',
-'youhavenewmessagesmulti' => 'Yma messajys noweth genowgh war $1',
+'youhavenewmessagesfromusers' => "Hwi a'gas beus $1 dhyworth {{PLURAL:$3|devnydhyer aral|$3 devnydhyer}} ($2).",
+'youhavenewmessagesmanyusers' => "Hwi a'gas beus $1 dhyworth lies devnydhyer ($2).",
+'newmessageslinkplural' => '{{PLURAL:$1|messach nowyth|messajys nowyth}}',
+'newmessagesdifflinkplural' => '{{PLURAL:$1|chanj|chanjyow}} diwettha',
+'youhavenewmessagesmulti' => "Messajys nowyth a'gas beus war $1",
 'editsection' => 'chanjya',
 'editold' => 'chanjya',
 'viewsourceold' => 'gweles an bennfenten',
 'editlink' => 'chanjya',
 'viewsourcelink' => 'gweles an bennfenten',
-'editsectionhint' => 'Chanjya an rann: $1',
+'editsectionhint' => 'Chanjya an tregh: $1',
 'toc' => 'Rol an folen',
-'showtoc' => 'disqwedhes',
-'hidetoc' => 'cudha',
-'collapsible-expand' => 'Efany',
-'thisisdeleted' => 'Gweles po restorya $1?',
+'showtoc' => 'diskwedhes',
+'hidetoc' => 'kudha',
+'collapsible-expand' => 'Efani',
+'thisisdeleted' => 'Gweles po daskor $1?',
 'viewdeleted' => 'Gweles $1?',
 'restorelink' => '{{PLURAL:$1|unn janj diles|$1 chanj diles}}',
 'feedlinks' => 'Feed:',
-'site-rss-feed' => '$1 RSS feed',
-'site-atom-feed' => '$1 Atom feed',
-'page-rss-feed' => '"$1" feed RSS',
-'page-atom-feed' => '"$1" feed Atom',
+'site-rss-feed' => 'Feed RSS $1',
+'site-atom-feed' => 'Feed Atom $1',
+'page-rss-feed' => 'Feed RSS "$1"',
+'page-atom-feed' => 'Feed Atom "$1"',
 'red-link-title' => '$1 (nyns eus folen henwys yndelma)',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
-'nstab-main' => 'Erthygel',
-'nstab-user' => 'Folen devnydhyer',
+'nstab-main' => 'Folen',
+'nstab-user' => 'Folen dhevnydhyer',
 'nstab-media' => 'Folen media',
 'nstab-special' => 'Folen arbennek',
 'nstab-project' => 'Folen ragdres',
 'nstab-image' => 'Restren',
 'nstab-mediawiki' => 'Messach',
-'nstab-template' => 'Scantlyn',
+'nstab-template' => 'Skantlyn',
 'nstab-help' => 'Gweres',
-'nstab-category' => 'Class',
+'nstab-category' => 'Klass',
 
 # General errors
 'error' => 'Gwall',
 'databaseerror' => 'Gwall database',
-'readonly' => 'Alwhedhys yw an database',
+'readonly' => 'Alhwedhys yw an database',
 'missingarticle-rev' => '(amendyans#: $1)',
 'missingarticle-diff' => '(Dyffrans: $1, $2)',
 'internalerror' => 'Gwall a-bervedh',
 'internalerror_info' => 'Gwall a-bervedh: $1',
-'filecopyerror' => 'Ny veu possybyl copia an restren "$1" dhe "$2".',
-'filerenameerror' => 'Ny veu possybyl dashenwel an restren "$1" dhe "$2".',
-'filedeleteerror' => 'Ny veu possybyl dilea an restren "$1".',
-'filenotfound' => 'Ny veu kevys an restren "$1".',
+'filecopyerror' => 'Ny allas kopia an restren "$1" dhe "$2".',
+'filerenameerror' => 'Ny allas dashenwel an restren "$1" dhe "$2".',
+'filedeleteerror' => 'Ny allas dilea an restren "$1".',
+'filenotfound' => 'Ny allas kavos an restren "$1".',
 'cannotdelete-title' => 'Ny yllir dilea an folen "$1"',
 'badtitle' => 'Titel drog',
 'viewsource' => 'Gweles an bennfenten',
+'viewsource-title' => 'Gweles an bennfenten rag $1',
+'protectedpagetext' => 'Difresys re beu an folen-ma rag gwitha rag chanjya po gwriansow erel.',
+'viewsourcetext' => 'Hwi a yll gweles ha kopia pennfenten an folen-ma:',
+'mycustomcssprotected' => "Ny'gas beus kummyes dhe janjya an folen CSS-ma.",
+'mycustomjsprotected' => "Ny'gas beus kummyes dhe janjya an folen JavaScript-ma.",
+'ns-specialprotected' => 'Ny yllir chanjya folennow arbennek.',
+'exception-nologin' => 'Nyns owgh omgelmys',
+'exception-nologin-text' => 'An folen-ma po an gwrians-ma a wovyn mayth omgelmowgh war an wiki-ma.',
 
 # Login and logout pages
-'logouttext' => "'''Digelmys owgh why lemmyn.'''
+'logouttext' => "'''Digelmys owgh lemmyn.'''
 
-Why a yll pesya usya {{SITENAME}} heb hanow, po why a yll <span class='plainlinks'>[$1 omgelmy arta]</span> avel an keth devnydhyer po avel devnydhyer aral.
-Notyowgh: Neb folennow a alsa bos disqwedhys kepar del owgh why omgelmys whath, erna wryllowgh why clerhe cache agas peurel.",
+Hwi a yll pesya devnydhya {{SITENAME}} yn tihanow, po hwi a yll <span class='plainlinks'>[$1 omgelmi arta]</span> avel an keth devnydhyer po avel devnydhyer aral.
+Notyewgh: Neb folennow a alsa bos diskwedhys kepar del owgh hwath omgelmys, erna glerhahowgh cache agas peurel.",
 'welcomeuser' => 'Dynnargh, $1!',
-'welcomecreation-msg' => 'Gwruthys yw agas acont.
-Na wrewgh ankevy dhe janjya agas [[Special:Preferences|dowisyansow {{SITENAME}}]].',
-'yourname' => 'Hanow usyer:',
+'welcomecreation-msg' => 'Gwruthys re beu agas akont.
+Na ankevewgh dhe janjya agas [[Special:Preferences|dewisyansow {{SITENAME}}]].',
+'yourname' => 'Hanow devnydhyer:',
+'userlogin-yourname' => 'Hanow devnydhyer',
+'userlogin-yourname-ph' => 'Entrewgh agas hanow devnydhyer',
 'yourpassword' => 'Ger tremena:',
-'yourpasswordagain' => 'Jynnscrifowgh agas ger tremena arta:',
-'remembermypassword' => "Perthy cov a'm omgelmy war'n jynn amontya-ma (rag $1 {{PLURAL:$1|dedh}} dhe'n moyha)",
-'securelogin-stick-https' => 'Gwitha junyes gans HTTPS wosa omgelmy',
+'userlogin-yourpassword' => 'Ger tremena',
+'userlogin-yourpassword-ph' => 'Entrewgh agas ger tremena',
+'createacct-yourpassword-ph' => 'Entrewgh ger tremena',
+'yourpasswordagain' => 'Jynnskrifewgh agas ger tremena arta:',
+'createacct-yourpasswordagain' => 'Afydhyewgh an ger tremena',
+'createacct-yourpasswordagain-ph' => 'Entrewgh an ger tremena arta',
+'remembermypassword' => "Perthi kov a'm omgelmi war an jynn amontya-ma (rag $1 {{PLURAL:$1|dydh}} dhe'n moyha)",
+'userlogin-remembermypassword' => "Perthi kov a'm omgelmi",
+'userlogin-signwithsecure' => 'Devnydhya junyans diogel',
+'securelogin-stick-https' => 'Gwitha junyes gans HTTPS wosa omgelmi',
 'yourdomainname' => 'Agas tiredh:',
-'login' => 'Omgelmy',
-'nav-login-createaccount' => 'Omgelmy / Formya acont noweth',
-'loginprompt' => 'Res yw dhywgh galosegy cookies rag omgelmy orth {{SITENAME}}.',
-'userlogin' => 'Omgelmy / formya acont noweth',
-'userloginnocreate' => 'Omgelmy',
-'logout' => 'Digelmy',
-'userlogout' => 'Digelmy',
+'password-change-forbidden' => 'Ny yllir chanjya geryow tremena war an wiki-ma.',
+'login' => 'Omgelmi',
+'nav-login-createaccount' => 'Omgelmi / Gwruthyl akont nowyth',
+'loginprompt' => 'Res yw dhywgh galosegi cookies rag omgelmi orth {{SITENAME}}.',
+'userlogin' => 'Omgelmi / gwruthyl akont nowyth',
+'userloginnocreate' => 'Omgelmi',
+'logout' => 'Digelmi',
+'userlogout' => 'Digelmi',
 'notloggedin' => 'Digelmys',
-'nologin' => "A nyns eus acont dhywgh? '''$1'''.",
-'nologinlink' => 'Formyowgh acont',
-'createaccount' => 'Formya acont noweth',
-'gotaccount' => "Eus acont dhis seulabres? '''$1'''.",
-'gotaccountlink' => 'Omgelmy',
-'userlogin-resetlink' => 'Eus ankevys genowgh agas manylyon omgelmy?',
-'createaccountmail' => 'der e-bost',
+'userlogin-noaccount' => "A ny'gas beus akont?",
+'userlogin-joinproject' => 'Junya {{SITENAME}}',
+'nologin' => "A ny'gas beus akont? '''$1'''.",
+'nologinlink' => 'Gwruthyl akont',
+'createaccount' => 'Gwruthyl akont nowyth',
+'gotaccount' => "Eus akont dhywgh seulabrys? '''$1'''.",
+'gotaccountlink' => 'Omgelmi',
+'userlogin-resetlink' => 'A ankevsowgh hwi agas manylyon omgelmi?',
+'userlogin-resetpassword-link' => 'Dassettya agas ger tremena',
+'helplogin-url' => 'Help:Omgelmi',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Gweres gans omgelmi]]',
+'createacct-join' => 'Entrewgh agas kedhlow a-woles.',
+'createacct-emailrequired' => 'Trigva ebost',
+'createacct-emailoptional' => 'Trigva ebost (a-dhewis)',
+'createacct-email-ph' => 'Entrewgh agas trigva ebost',
+'createaccountmail' => "Devnydhya ger tremena chonsus anbarthus hag y dhanvon dhe'n drigva ebost res a-woles",
+'createacct-realname' => 'Hanow gwir (a-dhewis)',
 'createaccountreason' => 'Acheson:',
-'badretype' => 'Ny wrug omdhesedhes an geryow tremena entrys genowgh.',
-'userexists' => "Yma'n hanow usyer entrys genowgh ow pos usys seulabres.
-Dowisowgh hanow aral mar pleg.",
-'loginerror' => 'Gwall omgelmy',
-'createaccounterror' => 'Ny veu possybyl formya an acont: $1',
-'nocookiesnew' => 'Formys yw an acont, mes nyns owgh why omgelmys.
-Yma {{SITENAME}} owth usya cookies rag omgelmy devnydhyoryon.
+'createacct-reason' => 'Acheson',
+'createacct-reason-ph' => 'Prag yth esowgh ow kwruthyl akont aral',
+'createacct-captcha' => 'Gwiryans sekerder',
+'createacct-imgcaptcha-ph' => 'Entrewgh an tekst a welowgh a-ugh',
+'createacct-submit' => 'Gwruthyl agas akont',
+'createacct-benefit-heading' => 'Gwrys yw {{SITENAME}} gans tus kepar ha hwi.',
+'createacct-benefit-body1' => '{{PLURAL:$1|janj|chanj}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|folen}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|gevriyas|kevriyas}} a-dhiwedhes',
+'badretype' => 'Ny omdhesedh an geryow tremena entrys genowgh.',
+'userexists' => 'Y tevnydhir an hanow devnydhyer entrys genowgh seulabrys.
+Dewisewgh ken hanow mar pleg.',
+'loginerror' => 'Gwall omgelmi',
+'createacct-error' => 'Gwall ow kwruthyl akont',
+'createaccounterror' => 'Ny allas gwruthyl an akont: $1',
+'nocookiesnew' => "Gwruthys veu an akont, mes nyns owgh omgelmys.
+{{SITENAME}} a dhevnydh cookies rag omgelmi devnydhyoryon.
 Dialosegys yw cookies war agas jynn amontya.
-Gwrewgh aga galosegy, hag omgelmowgh dre usya agas hanow usyer ha ger tremena noweth.',
-'nocookieslogin' => 'Yma {{SITENAME}} owth usya cookies rag omgelmi devnydhyoryon.
+Galosegewgh i, hag omgelmewgh der agas hanow devnydhyer ha'gas ger tremena nowyth.",
+'nocookieslogin' => '{{SITENAME}} a dhevnydh cookies rag omgelmi devnydhyoryon.
 Dialosegys yw cookies war agas jynn amontya.
-Gwrewgh aga galosegi hag assaya arta.',
-'noname' => 'Ny wrussowgh why ry hanow usyer da.',
-'loginsuccesstitle' => 'Omgelmy a sowenas',
-'loginsuccess' => "'''Omgelmys owgh why lemmyn orth {{SITENAME}} avel \"\$1\".'''",
-'nouserspecified' => 'Res yw dhywgh ry hanow usyer.',
-'wrongpassword' => 'Camm o an ger tremena.
-Assayowgh arta mar pleg.',
-'wrongpasswordempty' => 'Gwag o an ger-tremena res. Assayowgh arta mar pleg.',
+Galosegewgh i hag assayewgh arta.',
+'noname' => 'Ny resowgh hanow devnydhyer da.',
+'loginsuccesstitle' => 'Omgelmi a sewenis',
+'loginsuccess' => "'''Omgelmys owgh lemmyn orth {{SITENAME}} avel \"\$1\".'''",
+'nouserspecified' => 'Res yw dhywgh ri hanow devnydhyer.',
+'wrongpassword' => 'Kamm o an ger tremena.
+Assayewgh arta mar pleg.',
+'wrongpasswordempty' => 'Gwag o an ger tremena res.
+Assayewgh arta mar pleg.',
 'passwordtooshort' => "Res yw dhe eryow tremena bos {{PLURAL:$1|1 lytheren|$1 lytheren}} dhe'n lyha.",
-'password-name-match' => "Ny yll agas ger tremena bos an keth ha'gas hanow usyer.",
-'password-login-forbidden' => 'Difennys yw usya an hanow usyer-ma hag an ger tremena-ma.',
-'mailmypassword' => 'E-bostya ger tremena nowyth',
-'passwordremindertitle' => 'Ger tremena noweth rag {{SITENAME}}',
-'passwordremindertext' => 'Nebonen (why martesen, dhyworth an drigva IP $1) a wovynnas ger tremena noweth rag {{SITENAME}} ($4). Ger tremena termynyel rag an devnydhyer
-"$2" re beu gwruthys hag a veu settyes dhe "$3". Mars o henna agas bodh, y fedh res dhywgh omgelmy ha dowis ger tremena noweth lemmyn.
-Agas ger tremena termynyel a wra diwedha yn {{PLURAL:$5|unn jedh|$5 dedh}}.
-
-Mar qwrug nebonen aral govyn hemma, po yma cov dhywgh a\'gas ger tremena ha nyns yw whans dhywgh y janjya namoy, why a yll sconya aswon an messach-ma ha pesya usya agas ger tremena coth.',
-'noemail' => 'Nyns eus trigva ebost recordyes rag an devnydhyer "$1".',
-'noemailcreate' => 'Res yw dhewgh ry trigva ebost da',
-'passwordsent' => 'Ger tremena noweth re beu danvenys dhe\'n drigva ebost covscrifys rag "$1".
-Gwrewgh omgelmy arta mar pleg wosa why dh\'y receva.',
+'password-name-match' => "Ny yll agas ger tremena bos an keth ha'gas hanow devnydhyer.",
+'password-login-forbidden' => 'Difennys yw devnydhya an hanow devnydhyer-ma hag an ger tremena-ma.',
+'mailmypassword' => 'Ebostya ger tremena nowyth',
+'passwordremindertitle' => 'Ger tremena nowyth rag {{SITENAME}}',
+'passwordremindertext' => 'Nebonan (hwi martesen, dhyworth an drigva IP $1) a wovynnis ger tremena nowyth rag {{SITENAME}} ($4). Ger tremena anbarthus rag an devnydhyer
+"$2" re beu gwruthys hag a veu settyes dhe "$3". Mars o henna agas bodh, y fydh res dhywgh omgelmi ha dewis ger tremena nowyth lemmyn.
+Agas ger tremena anbarthus a dhiwedh yn {{PLURAL:$5|unn jydh|$5 dydh}}.
+
+Mar kovynnis nebonan aral hemma, po hwi a\'gas beus kov a\'gas ger tremena ha ny\'m beus hwans dh\'y janjya namoy, hwi a yll skonya aswon an messach-ma ha pesya devnydhya agas ger tremena koth.',
+'noemail' => 'Nyns eus trigva ebost rekordys rag an devnydhyer "$1".',
+'noemailcreate' => 'Res yw dhywgh ri trigva ebost da',
+'passwordsent' => 'Ger tremena nowyth re beu danvenys dhe\'n drigva ebost kovskrifys rag "$1".
+Omgelmewgh arta mar pleg wosa hwi dh\'y receva.',
 'emailauthenticated' => 'Afydhyes veu agas trigva ebost an $2 dhe $3.',
-'emailconfirmlink' => 'Afydhyowgh agas trigva ebost',
-'invalidemailaddress' => 'Ny yllir alowa an drigva ebost drefen bos furv drog dhedhy.
-Entrowgh trigva da y furv po gwakhowgh an furvlen-na.',
-'accountcreated' => 'Acont formys',
-'accountcreatedtext' => 'Formys re beu an acont rag $1.',
-'createaccount-title' => 'Formya acont war {{SITENAME}}',
-'createaccount-text' => 'Nebonan a wrug gwruthyl acont rag agas trigva ebost war {{SITENAME}} ($4) henwys "$2", "$3" y er tremena.
-Why a dalvia omgelmy ha chanjya agas ger tremena lemmyn.
-
-Why a yll sconya aswon an messach-ma, mar peu an acont-ma formyes yn gwall.',
-'usernamehasherror' => "Ny yllowgh why usya lytherennow hash y'gas ger tremena",
+'emailconfirmlink' => 'Afydhyewgh agas trigva ebost',
+'invalidemailaddress' => 'Ny yllir alowa an drigva ebost drefen bos furvyans drog dhedhi.
+Entrewgh trigva da y furvyans po gwakhewgh an furvlen-na.',
+'accountcreated' => 'Akont gwruthys',
+'accountcreatedtext' => 'Gwruthys re beu an akont rag $1.',
+'createaccount-title' => 'Gwruthyl akont rag {{SITENAME}}',
+'createaccount-text' => 'Nebonan a wrug akont rag agas trigva ebost war {{SITENAME}} ($4) henwys "$2", "$3" y er tremena.
+Y talvia dhywgh omgelmi ha chanjya agas ger tremena lemmyn.
+
+Hwi a yll skonya aswon an messach-ma mar peu an akont-ma gwruthys yn gwall.',
+'usernamehasherror' => 'Ny yllir bos lytherennow hash yn henwyn devnydhyer',
 'loginlanguagelabel' => 'Yeth: $1',
 
 # Change password dialog
-'resetpass' => 'Chanjya ger-tremena',
-'resetpass_announce' => 'Why a wrug omgelmy yn unn usya coden ebostyes termynyel.
-Rag gorfenna omgelmy, res yw dhywgh settya ger tremena noweth omma:',
-'resetpass_header' => 'Chanjya ger tremena an acont',
-'oldpassword' => 'Ger tremena coth:',
-'newpassword' => 'Ger tremena noweth:',
-'retypenew' => 'Jynnscrifowgh an ger tremena noweth arta:',
-'resetpass_submit' => 'Settya an ger tremena hag omgelmy',
-'resetpass_success' => 'Chanjyes re beu agas ger tremena yn soweny!
-Orth agas omgelmy lemmyn...',
+'resetpass' => 'Chanjya ger tremena',
+'resetpass_announce' => 'Hwi a omgelmis dre goden ebostyes anbarthus.
+Rag gorfenna omgelmi, res yw dhywgh settya ger tremena nowyth omma:',
+'resetpass_header' => 'Chanjya ger tremena an akont',
+'oldpassword' => 'Ger tremena koth:',
+'newpassword' => 'Ger tremena nowyth:',
+'retypenew' => 'Jynnscrifewgh an ger tremena nowyth arta:',
+'resetpass_submit' => 'Settya an ger tremena hag omgelmi',
+'resetpass_success' => 'Chanjyes re beu agas ger tremena yn sewen!
+Orth agas omgelmi lemmyn...',
 'resetpass_forbidden' => 'Ny yllir chanjya geryow tremena',
-'resetpass-submit-loggedin' => 'Chanjya an ger-tremena',
+'resetpass-submit-loggedin' => 'Chanjya an ger tremena',
 'resetpass-submit-cancel' => 'Hedhi',
-'resetpass-temp-password' => 'Ger tremena termynyel:',
+'resetpass-temp-password' => 'Ger tremena anbarthus:',
 
 # Special:PasswordReset
-'passwordreset' => 'Dassettya ger tremena',
-'passwordreset-text' => 'Gwrewgh lenwel an furvlen-ma rag receva ebost ynno manylyon agas acont.',
-'passwordreset-legend' => 'Dassettya ger tremena',
-'passwordreset-disabled' => "Dialosegys yw dassettya geryow tremena war'n wiki ma.",
-'passwordreset-pretext' => "{{PLURAL:$1||Entrowgh onen a'n tymmyn a dhata a-woles}}",
-'passwordreset-username' => 'Hanow usyer:',
+'passwordreset' => 'Dassettya an ger tremena',
+'passwordreset-text-one' => 'Lenwewgh an furvlen-ma rag dassettya agas ger tremena.',
+'passwordreset-text-many' => "{{PLURAL:$1|Entrewgh onan a'n tymmyn a dhata a-woles rag dassettya agas ger tremena.}}",
+'passwordreset-legend' => 'Dassettya an ger tremena',
+'passwordreset-disabled' => 'Dialosegys yw dassettya geryow tremena war an wiki-ma.',
+'passwordreset-username' => 'Hanow devnydhyer:',
 'passwordreset-domain' => 'Tiredh:',
 'passwordreset-email' => 'Trigva ebost:',
-'passwordreset-emailtitle' => 'Manylyon agas acont war {{SITENAME}}',
+'passwordreset-emailtitle' => 'Manylyon agas akont war {{SITENAME}}',
+'passwordreset-emailsent' => 'Ebost dassettya ger tremena re beu danvenys.',
+'passwordreset-emailsent-capture' => 'Ebost dassettya ger tremena re beu danvenys, hag y hyllir y weles a-woles.',
 
 # Special:ChangeEmail
 'changeemail' => 'Chanjya trigva ebost',
-'changeemail-header' => 'Chanjya trigva ebost an acont',
-'changeemail-text' => 'Grewgh lenwel an furvlen-ma rag chanjya agas trigva ebost. Y fedh res dhywgh entra agas ger tremena rag afydhya an chanj-ma.',
+'changeemail-header' => 'Chanjya trigva ebost an akont',
+'changeemail-text' => 'Lenwewgh an furvlen-ma rag chanjya agas trigva ebost. Y fydh res dhywgh entra agas ger tremena rag afydhya an chanj-ma.',
+'changeemail-oldemail' => 'Agas trigva ebost a-lemmyn:',
+'changeemail-newemail' => 'Agas trigva ebost nowyth:',
+'changeemail-none' => '(nagonan)',
+'changeemail-password' => 'Agas ger tremena war {{SITENAME}}:',
+'changeemail-submit' => 'Chanjya an trigva ebost',
+'changeemail-cancel' => 'Hedhi',
 
 # Edit page toolbar
-'bold_sample' => 'Text tew',
-'bold_tip' => 'Text tew',
-'italic_sample' => 'Text italek',
-'italic_tip' => 'Text italek',
+'bold_sample' => 'Tekst tew',
+'bold_tip' => 'Tekst tew',
+'italic_sample' => 'Tekst italek',
+'italic_tip' => 'Tekst italek',
 'link_sample' => 'Titel an gevren',
 'link_tip' => 'Kevren bervedhel',
 'extlink_sample' => 'http://www.example.com titel an gevren',
-'extlink_tip' => 'Kevren a-ves (na ankevowgh an rager http://)',
-'headline_sample' => 'Text an titel',
+'extlink_tip' => 'Kevren a-ves (na ankevewgh an rager http://)',
+'headline_sample' => 'Tekst an bennlinen',
 'headline_tip' => 'Pennlinen nivel 2',
-'nowiki_sample' => 'Keworrowgh text heb furvyans omma',
-'nowiki_tip' => 'Sconya aswon furvyans wiki',
+'nowiki_sample' => 'Keworrewgh tekst heb furvyans omma',
+'nowiki_tip' => 'Skonya aswon furvyans wiki',
 'image_tip' => 'Restren neythys',
 'media_tip' => 'Kevren restren',
 'sig_tip' => 'Agas sinans gans stampa-termyn',
 
 # Edit pages
-'summary' => 'Derivas cot:',
+'summary' => 'Berrskrif:',
 'subject' => 'Testen/Pennlinen:',
-'minoredit' => 'Chanj bian yw hemma',
-'watchthis' => 'Golyas an folen-ma',
-'savearticle' => 'Gwitha',
+'minoredit' => 'Chanj byhan yw hemma',
+'watchthis' => 'Golya an folen-ma',
+'savearticle' => 'Gwitha an folen',
 'preview' => 'Ragwel',
-'showpreview' => 'Ragweles',
-'showdiff' => 'Disqwedhes an chanjyow',
-'anoneditwarning' => "'''Gwarnyans:''' Nyns owgh why omgelmys.
-Recordys a vedh agas trigva IP yn istory an folen-ma.",
-'anonpreviewwarning' => "''Nyns owgh why omgelmys. Dre witha, agas trigva IP a vedh recordyes yn istory chanjya an folen-ma.''",
-'summary-preview' => "Ragwel a'n derivas kot:",
-'loginreqtitle' => 'Res yw omgelmy',
-'loginreqlink' => 'omgelmy',
-'accmailtitle' => 'Danvenys yw an ger-tremena.',
-'newarticle' => '(Noweth)',
-'newarticletext' => "Why a wrug sewya kevren dhe folen nag yw gwruthys whath.
-Rag gwruthyl an folen, dalethowgh jynnscrifa y'n gist a-woles (gwelowgh an [[{{MediaWiki:Helppage}}|folen weres]] rag moy kedhlow).
-Mar qwrussowgh why dos omma yn camm, clyckyowgh boton '''war-dhelergh''' agas peurel.",
-'noarticletext' => 'Nyns eus text y\'n folen-ma.
-Why a yll [[Special:Search/{{PAGENAME}}|whilas titel an folen-ma]] yn folennow erel,
-<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} whilas y\'n covnotennow kelmys],
+'showpreview' => 'Diskwedhes ragwel',
+'showlivepreview' => 'Ragwel byw',
+'showdiff' => 'Diskwedhes an chanjyow',
+'anoneditwarning' => "'''Gwarnyans:''' Nyns owgh omgelmys.
+Rekordys vydh agas trigva IP yn istori an folen-ma.",
+'anonpreviewwarning' => "''Nyns owgh omgelmys. Dre witha, agas trigva IP a vydh rekordyes istori chanjya an folen-ma.''",
+'summary-preview' => "Ragwel a'n berrskrif:",
+'loginreqtitle' => 'Res yw omgelmi',
+'loginreqlink' => 'omgelmi',
+'accmailtitle' => 'Ger-tremena danvenys.',
+'newarticle' => '(Nowyth)',
+'newarticletext' => "Hwi re holyas kevren dhe folen nag yw gwruthys hwath.
+Rag gwruthyl an folen, dalethewgh jynnskrifa y'n gist a-woles (gwelewgh an [[{{MediaWiki:Helppage}}|folen weres]] rag moy kedhlow).
+Mar teuthowgh omma yn kamm, klyckyewgh boton '''war-dhelergh''' agas peurel.",
+'noarticletext' => 'Nyns eus tekst y\'n folen-ma a-lemmyn.
+Hwi a yll [[Special:Search/{{PAGENAME}}|hwilas titel an folen-ma]] yn folennow erel,
+<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} hwilas y\'n kovnotennow kelmys],
 po [{{fullurl:{{FULLPAGENAME}}|action=edit}} chanjya an folen-ma]</span>.',
-'noarticletext-nopermission' => 'Nyns eus text y\'n folen-ma a-lemmyn.
-Why a yll [[Special:Search/{{PAGENAME}}|whilas titel an folen-ma]] yn folennow erel, po <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} whilas y\'n covnotennow kelmys]</span>, mes nyns eus cummyes dhywgh a wruthyl an folen-ma.',
-'userpage-userdoesnotexist' => 'Nyns yw covscrifys an acont devnydhyer "$1".
-Gwrewgh checkya mars yw whans dhywgh gwruthyl/chanjya an folen-ma.',
-'userpage-userdoesnotexist-view' => 'Nyns yw covscrifys an acont devnydher "$1".',
+'noarticletext-nopermission' => "Nyns eus tekst y'n folen-ma a-lemmyn.
+Hwi a yll [[Special:Search/{{PAGENAME}}|hwilas titel an folen-ma]] yn folennow erel, po <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} hwilas y'n kovnotennow kelmys]</span>, mes ny'gas beus kummyes dhe wruthyl an folen-ma.",
+'userpage-userdoesnotexist' => 'Nyns yw kovskrifys an akont devnydhyer "$1".
+Checkyewgh mar pleg mara\'gas beus hwans dhe wruthyl/dhe janjya an folen-ma.',
+'userpage-userdoesnotexist-view' => 'Nyns yw kovskrifys an akont devnydhyer "$1".',
 'updated' => '(Nowedhys)',
 'note' => "'''Noten:'''",
-'previewnote' => "Gwrewgh perthy cov, nyns yw hemma marnas ragwel.''' Nyns yw gwithys agas chanjyow whath!",
-'continue-editing' => "Mos dhe'n teller chanjya",
+'previewnote' => "Perthewgh kov, nyns yw hemma marnas ragwel.''' Nyns yw gwithys agas chanjyow hwath!",
+'continue-editing' => "Mos dhe'n tyller chanjya",
 'editing' => 'Ow chanjya $1',
-'creating' => 'Ow qwruthyl $1',
-'editingsection' => 'Ow chanjya $1 (rann)',
-'editingcomment' => 'Ow chanjya $1 (rann noweth)',
-'yourtext' => 'Agas text',
+'creating' => 'Ow kwruthyl $1',
+'editingsection' => 'Ow chanjya $1 (tregh)',
+'editingcomment' => 'Ow chanjya $1 (tregh nowyth)',
+'yourtext' => 'Agas tekst',
 'yourdiff' => 'Dyffransow',
-'templatesused' => '{{PLURAL:$1|Scantlyn|Scantlyns}} usys war an folen-ma:',
-'templatesusedpreview' => "{{PLURAL:$1|Scantlyn|Scantlyns}} usys y'n ragwel-ma:",
-'template-protected' => '(gwithys)',
+'templatesused' => '{{PLURAL:$1|An skantlyn|Skantlyns}} devnydhys war an folen-ma:',
+'templatesusedpreview' => "{{PLURAL:$1|An skantlyn|Skantlyns}} devnydhys y'n ragwel-ma:",
+'template-protected' => '(difresys)',
 'template-semiprotected' => '(hanter-difresys)',
-'hiddencategories' => 'Esel a {{PLURAL:$1|1 glass cudhys|$1 class cudhys}} yw an folen-ma:',
-'permissionserrorstext-withaction' => 'Nyns eus cummyes dhywgh dhe $2, rag an {{PLURAL:$1|acheson|achesonys}} a sew:',
-'moveddeleted-notice' => 'Diles yw an folen-ma.
-Yma covnoten dhileans ha gwayans an folen a-woles.',
+'hiddencategories' => 'Esel a {{PLURAL:$1|1 glass kudhys|$1 klass kudhys}} yw an folen-ma:',
+'permissionserrorstext-withaction' => "Ny'gas beus kummyes dhe $2, rag an {{PLURAL:$1|acheson|achesonys}} a syw:",
+'moveddeleted-notice' => 'An folen-ma re beu diles.
+Yma kovnoten dhilea ha gwaya an folen res a-woles.',
 'log-fulllog' => 'Gweles an govnoten dien',
-'editwarning-warning' => 'Mar tewgh why ha gasa an folen-ma, chanjyow eus gwres genowgh a alsa bos kellys.
-Mars owgh why omgelmys, why a yll dialosegy an gwarnyans-ma yn trogh "Chanjya" agas dowisyansow.',
+'editwarning-warning' => 'Mar kasowgh an folen-ma, y halser kelli chanjyow gwrys genowgh.
+Mars owgh omgelmys, hwi a yll dialosegi an gwarnyans-ma yn tregh "Chanjya" agas dewisyansow.',
 
 # "Undo" feature
-'undo-summary' => 'Diswul amendyans $1 gans [[Special:Contributions/$2|$2]] ([[User talk:$2|kescows]])',
+'undo-success' => 'Y hyllir diswul an chanj-ma.
+Checkyewgh mar pleg an kehevelyans a-woles rag gwirya bos hemma an pyth a vynnowgh, hag ena gwithewgh an chanjyow a-woles rag gorfenna diswul an chanj.',
+'undo-summary' => 'Amendyans $1 gans [[Special:Contributions/$2|$2]] ([[User talk:$2|keskows]]) diswrys',
 
 # Account creation failure
-'cantcreateaccounttitle' => 'Nyns yw possybyl formya an acont',
+'cantcreateaccounttitle' => 'Ny yllir gwruthyl an akont',
 
 # History pages
-'viewpagelogs' => 'Gweles covnotennow an folen-ma',
+'viewpagelogs' => 'Gweles kovnotennow an folen-ma',
 'currentrev' => 'Amendyans diwettha',
-'currentrev-asof' => 'An chanj diwettha a-ban $1',
-'revisionasof' => 'Versyon an folen a-ban $1',
-'revision-info' => 'Amendyans a-ban $1 gans $2',
-'previousrevision' => '← Amendyans cottha',
-'nextrevision' => 'Amendyans nowettha →',
+'currentrev-asof' => 'An amendyans diwettha a-dhia $1',
+'revisionasof' => 'Versyon an folen a-dhia $1',
+'revision-info' => 'Amendyans a-dhia $1 gans $2',
+'previousrevision' => '← Amendyans kottha',
+'nextrevision' => 'Amendyans nowyttha →',
 'currentrevisionlink' => 'An amendyans diwettha',
 'cur' => 'lemmyn',
 'next' => 'nessa',
-'last' => 'kens',
-'page_first' => 'kensa',
-'page_last' => 'kens',
-'histlegend' => "Dowis dyffransow: Merkyowgh kistennow radyo a'n amendyansow dhe gehevely, ha gwascowgh 'entra' po an boton orth goles an folen.<br />
-Alwhedh: '''({{int:cur}})''' = an dyffrans dhyworth an amendyans diwettha, '''({{int:last}})''' = an dyffrans dhyworth an amendyans kens, '''{{int:minoreditletter}}''' = chanj bian.",
-'history-fieldset-title' => 'Peury an istory',
+'last' => 'kyns',
+'page_first' => 'kynsa',
+'page_last' => 'diwettha',
+'histlegend' => "Dewis dyffransow: Merkyewgh kistennow radyo a'n amendyansow dhe geheveli, ha gweskewgh 'entra' po an boton orth goles an folen.<br />
+Alhwedh: '''({{int:cur}})''' = an dyffrans dhyworth an amendyans diwettha, '''({{int:last}})''' = an dyffrans dhyworth an amendyans kyns, '''{{int:minoreditletter}}''' = chanj byhan.",
+'history-fieldset-title' => 'Peuri an istori',
 'history-show-deleted' => 'Diles hepken',
 'histfirst' => 'An moyha a-varr',
 'histlast' => 'An diwettha',
@@ -688,159 +764,167 @@ Alwhedh: '''({{int:cur}})''' = an dyffrans dhyworth an amendyans diwettha, '''({
 'historyempty' => '(gwag)',
 
 # Revision feed
-'history-feed-title' => 'Istory chanjya',
-'history-feed-description' => 'Istory chanjya rag an folen-ma war an wiki',
+'history-feed-title' => 'Istori amendya',
+'history-feed-description' => 'Istori amendya rag an folen-ma war an wiki',
 'history-feed-item-nocomment' => '$1 dhe $2',
 
 # Revision deletion
-'rev-delundel' => 'disqwedhes/cudha',
-'rev-showdeleted' => 'disqwedhes',
+'rev-delundel' => 'diskwedhes/kudha',
+'rev-showdeleted' => 'diskwedhes',
 'revdel-restore' => 'chanjya an hewelder',
 'revdel-restore-deleted' => 'amendyansow diles',
 'revdel-restore-visible' => 'amendyansow gweladow',
-'pagehist' => 'Istory an folen',
+'pagehist' => 'Istori an folen',
 
 # History merging
 'mergehistory-reason' => 'Acheson:',
 
 # Merge log
-'revertmerge' => 'Disworunya',
+'revertmerge' => 'Diswul an kesunya',
 
 # Diffs
-'history-title' => 'Istory an folen "$1"',
+'history-title' => 'Istori an folen "$1"',
 'difference-title' => 'Dyffransow ynter amendyansow a "$1"',
 'difference-multipage' => '(Dyffrans ynter an folennow)',
 'lineno' => 'Linen $1:',
-'compareselectedversions' => 'Kehevely an amendyansow dowisyes',
-'showhideselectedversions' => 'Disqwedhes/cudha amendyansow dowisyes',
+'compareselectedversions' => 'Keheveli an amendyansow dewisyes',
+'showhideselectedversions' => 'Diskwedhes/kudha amendyansow dewisyes',
 'editundo' => 'diswul',
 
 # Search results
-'searchresults' => 'Sewyansow whilas',
-'searchresults-title' => 'Sewyansow whilas rag "$1"',
-'searchresulttext' => 'Rag moy kedhlow a-dro dhe whilas yn {{SITENAME}}, gwelowgh [[{{MediaWiki:Helppage}}|{{int:help}}]].',
-'searchsubtitle' => 'Why a wrug whilas \'\'\'[[:$1]]\'\'\' ([[Special:Prefixindex/$1|keniver folen ow talleth gans "$1"]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|keniver folen ow kevrenna dhe "$1"]])',
-'searchsubtitleinvalid' => "Why a wrug whilas '''$1'''",
-'notitlematches' => 'Nyns eus titel folen ow machya',
-'notextmatches' => 'Nyns eus text folen ow machya',
-'prevn' => 'kens {{PLURAL:$1|$1}}',
+'searchresults' => 'Sewyansow an hwilans',
+'searchresults-title' => 'Sewyansow an hwilans rag "$1"',
+'searchresulttext' => 'Rag moy kedhlow a-dro dhe hwilas yn {{SITENAME}}, gwelewgh [[{{MediaWiki:Helppage}}|{{int:help}}]].',
+'searchsubtitle' => 'Hwi a hwilas \'\'\'[[:$1]]\'\'\' ([[Special:Prefixindex/$1|keniver folen ow talleth gans "$1"]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|keniver folen ow kevrenna dhe "$1"]])',
+'searchsubtitleinvalid' => "Hwi a hwilas '''$1'''",
+'notitlematches' => 'Nyns eus titel folen vyth owth omdhesedha',
+'notextmatches' => 'Nyns eus tekst folen vyth owth omdhesedha',
+'prevn' => '{{PLURAL:$1|$1}} kyns',
 'nextn' => 'nessa {{PLURAL:$1|$1}}',
-'prevn-title' => '$1 {{PLURAL:$1|sewyans|sewyans}} kens',
-'nextn-title' => '$1 {{PLURAL:$1|sewyans|sewyans}} nessa',
+'prevn-title' => '$1 {{PLURAL:$1|sewyans}} kyns',
+'nextn-title' => '$1 {{PLURAL:$1|sewyans}} nessa',
+'shown-title' => 'Diskwedhes $1 {{PLURAL:$1|sewyans}} yn folen',
 'viewprevnext' => 'Gweles ($1 {{int:pipe-separator}} $2) ($3)',
-'searchmenu-legend' => 'Etholyow whilans',
+'searchmenu-legend' => 'Etholyow hwilas',
 'searchmenu-exists' => "''Yma folen henwys \"[[:\$1]]\" war an wiki-ma'''",
 'searchmenu-new' => "'''Gwruthyl an folen \"[[:\$1]]\" war an wiki-ma!'''",
-'searchhelp-url' => 'Help:Gweres',
-'searchprofile-articles' => 'Folennow dhalhen',
+'searchprofile-articles' => 'Folennow dalgh',
 'searchprofile-project' => 'Folennow gweres ha ragdres',
 'searchprofile-images' => 'Liesmedia',
 'searchprofile-everything' => 'Puptra',
 'searchprofile-advanced' => 'Avonsys',
-'searchprofile-articles-tooltip' => 'Whilas yn $1',
-'searchprofile-project-tooltip' => 'Whilas yn $1',
-'searchprofile-images-tooltip' => 'Whilas restrennow',
-'searchprofile-everything-tooltip' => 'Whilas yn pub teller (yn folennow kescows ynwedh)',
-'searchprofile-advanced-tooltip' => 'Whilas yn spassow hanow personelhes',
+'searchprofile-articles-tooltip' => 'Hwilas yn $1',
+'searchprofile-project-tooltip' => 'Hwilas yn $1',
+'searchprofile-images-tooltip' => 'Hwilas restrennow',
+'searchprofile-everything-tooltip' => 'Hwilas pub le (yn folennow keskows ynwedh)',
+'searchprofile-advanced-tooltip' => 'Hwilas yn spasys hanow personelhes',
 'search-result-size' => '$1 ({{PLURAL:$2|1 ger|$2 ger}})',
 'search-result-category-size' => '{{PLURAL:$1|1 esel|$1 esel}} ({{PLURAL:$2|1 isglass|$2 isglass}}, {{PLURAL:$3|1 restren|$3 restren}})',
-'search-redirect' => '(daswedyans $1)',
-'search-section' => '(rann $1)',
-'search-suggest' => 'A wrussowgh why menya: $1',
-'search-interwiki-caption' => 'Ragdresow whor',
+'search-redirect' => '(daskedyans $1)',
+'search-section' => '(tregh $1)',
+'search-suggest' => 'A styrsowgh hwi: $1',
+'search-interwiki-caption' => 'Ragdresow hwor',
 'search-interwiki-default' => '$1 sewyansow:',
 'search-interwiki-more' => '(moy)',
 'search-relatedarticle' => 'Kelmys',
-'mwsuggest-disable' => 'Dialosegy profyansow AJAX',
-'searcheverything-enable' => 'Whilas yn keniver spas-hanow',
+'mwsuggest-disable' => 'Dialosegi profyansow hwilas',
+'searcheverything-enable' => 'Hwilas yn pub spas-hanow',
 'searchrelated' => 'kelmys',
 'searchall' => 'oll',
-'showingresultsheader' => "{{PLURAL:$5|Sewyans '''$1''' dhyworth '''$3'''|Sewyansow '''$1 - $2''' dhyworth '''$3'''}} rag '''$4'''",
-'nonefound' => "'''Noten''': Nyns yw marnas rann a'n spasys-hanow whilys dre dhefowt.
-Gwrewgh assaya rag-gorra agas govyn gans ''all:'' rag whilas yn pub teller (ynnans an folennow kescows, scantlyns, etc), po usyowgh an spas-hanow whensys avel rag-gorrans.",
-'search-nonefound' => 'Nyns esa sewyansow ow machya an govyn.',
-'powersearch' => 'Whilans avonsys',
-'powersearch-legend' => 'Whilans avonsys',
-'powersearch-ns' => 'Whilas yn spasys-hanow:',
-'powersearch-redir' => 'Gorra an daswedyansow yn rol',
-'powersearch-field' => 'Whilas',
-'powersearch-togglelabel' => 'Dowis:',
+'showingresultsheader' => "{{PLURAL:$5|Sewyans '''$1''' a '''$3'''|Sewyansow '''$1 - $2''' a '''$3'''}} rag '''$4'''",
+'nonefound' => "'''Noten''': Ny hwilir marnas yn rann a'n spasys-hanow dre dhefowt.
+Assayewgh rag-gorra agas govyn gans ''all:'' rag hwilas yn pub tyller (ynna an folennow keskows, skantlyns, etc), po devnydhyewgh an spas-hanow hwensys avel rag-gorrans.",
+'search-nonefound' => 'Nyns esa sewyans vyth owth omdhesedha orth an govyn.',
+'powersearch' => 'Hwilans avonsys',
+'powersearch-legend' => 'Hwilans avonsys',
+'powersearch-ns' => 'Hwilas yn spasys-hanow:',
+'powersearch-redir' => 'Rolya daskedyansow',
+'powersearch-field' => 'Hwilas',
+'powersearch-togglelabel' => 'Dewis:',
 'powersearch-toggleall' => 'Oll',
-'powersearch-togglenone' => 'Nagonen',
-'search-external' => 'Whilans a-ves',
+'powersearch-togglenone' => 'Nagonan',
+'search-external' => 'Hwilans a-ves',
 
 # Preferences page
-'preferences' => 'Dowisyansow',
-'mypreferences' => 'Dowisyansow',
+'preferences' => 'Dewisyansow',
+'mypreferences' => 'Dewisyansow',
+'prefs-edits' => 'Niver a janjyow:',
 'changepassword' => 'Chanjya an ger-tremena',
-'prefs-skin' => 'Crohen',
+'prefs-skin' => 'Krohen',
 'skin-preview' => 'Ragweles',
 'prefs-datetime' => 'Dedhyans hag eur',
 'prefs-user-pages' => 'Folennow devnydhyer',
 'prefs-personal' => 'Profil devnydhyer',
 'prefs-rc' => 'Chanjyow a-dhiwedhes',
-'prefs-watchlist' => 'Rol golyas',
-'prefs-watchlist-days' => "Niver a dhedhyow dhe dhisqwedhes y'n rol golyas:",
-'prefs-resetpass' => 'Chanjya ger-tremena',
+'prefs-watchlist' => 'Rol golya',
+'prefs-watchlist-days' => "Niver a dhedhyow dhe dhiskwedhes y'n rol golya:",
+'prefs-resetpass' => 'Chanjya an ger tremena',
 'prefs-changeemail' => 'Chanjya an drigva ebost',
 'prefs-setemail' => 'Settya trigva ebost',
-'prefs-email' => 'Etholyow e-bost',
+'prefs-email' => 'Etholyow ebostya',
 'saveprefs' => 'Gwitha',
-'resetprefs' => 'Clerhe chanjyow nag yw gwithys',
+'resetprefs' => 'Klerhe chanjyow nag yw gwithys',
 'restoreprefs' => 'Restorya pub settyans defowt',
 'prefs-editing' => 'Chanjya',
-'prefs-edit-boxsize' => 'Mens an fenester chanjya.',
 'rows' => 'Rewyow:',
-'columns' => 'Colovennow:',
-'searchresultshead' => 'Whilas',
-'savedprefs' => 'Gwithys re beu agas dowisyansow.',
+'columns' => 'Kolovennow:',
+'searchresultshead' => 'Hwilas',
+'savedprefs' => 'Gwithys re beu agas dewisyansow.',
 'servertime' => 'Eur an servyer:',
 'guesstimezone' => 'Lenwel dhyworth an beurel',
-'timezoneregion-africa' => 'Africa',
-'timezoneregion-america' => 'America',
-'timezoneregion-antarctica' => 'Antarctica',
-'timezoneregion-arctic' => 'Arctek',
-'timezoneregion-asia' => 'Asya',
-'timezoneregion-atlantic' => 'Mor Atlantek',
-'timezoneregion-australia' => 'Awstralya',
+'timezoneregion-africa' => 'Afrika',
+'timezoneregion-america' => 'Amerika',
+'timezoneregion-antarctica' => 'Antarktika',
+'timezoneregion-arctic' => 'Arktek',
+'timezoneregion-asia' => 'Asi',
+'timezoneregion-atlantic' => 'Keynvor Atlantek',
+'timezoneregion-australia' => 'Ostrali',
 'timezoneregion-europe' => 'Europa',
-'timezoneregion-indian' => 'Mor Eyndek',
-'timezoneregion-pacific' => 'Mor Cosel',
-'prefs-searchoptions' => 'Whilas',
-'prefs-files' => 'Restrednow',
-'youremail' => 'E-bost:',
-'username' => 'Hanow-usyer:',
-'uid' => 'ID devnydhyer:',
-'prefs-memberingroups' => "Esel a'n {{PLURAL:$1|bagas|bagasow}}:",
+'timezoneregion-indian' => 'Keynvor Eyndek',
+'timezoneregion-pacific' => 'Keynvor Hebask',
+'allowemail' => 'Galosegi ebost dhyworth devnydhyoryon erel',
+'prefs-searchoptions' => 'Hwilas',
+'prefs-files' => 'Restrennow',
+'prefs-emailconfirm-label' => 'Afydhyans an ebost:',
+'youremail' => 'Ebost:',
+'username' => '{{GENDER:$1|Hanow devnydhyer}}:',
+'uid' => '{{GENDER:$1|ID an devnydhyer}}:',
+'prefs-memberingroups' => "{{GENDER:$2|Esel}} a'n {{PLURAL:$1|bagas|bagasow}}:",
+'prefs-registration' => 'Termyn kovskrifa:',
 'yourrealname' => 'Hanow gwir:',
 'yourlanguage' => 'Yeth:',
-'yournick' => 'Sinans noweth:',
-'yourgender' => 'Reyth:',
+'yournick' => 'Sinans nowyth:',
+'prefs-help-signature' => 'Y tal sina kampolansow war folennow keskows gans "<nowiki>~~~~</nowiki>", a dreylir dhe\'gas sinans ha dhe stamp-termyn.',
+'yourgender' => 'Reydh:',
+'gender-unknown' => 'Heb hy disklosya',
 'gender-male' => 'Gorow',
 'gender-female' => 'Benow',
-'email' => 'E-bost',
-'prefs-help-email' => 'A-dhowis yw ry trigva ebost, mes res yw y sensy rag dassettya agas ger tremena mars yw ankevys.',
-'prefs-help-email-others' => 'Why a yll dowis gasa dhe re erel kestava dhywgh der ebost yn unn glyckya kevren war agas folen devnydhyer po kescows.
-Nyns yw disqwedhys agas trigva ebost pan wrella devnydhyoryon erel kestava dhywgh.',
+'email' => 'Ebost',
+'prefs-help-email' => 'A-dhewis yw ri trigva ebost, mes res yw  rag dassettya agas ger tremena mar po ankevys.',
+'prefs-help-email-others' => 'Hwi a yll dewis gasa dhe re erel kestava dhywgh der ebost dre glyckya kevren war agas folen dhevnydhyer po folen geskows.
+Ny dhiskwedhir agas trigva ebost pan gestaffo devnydhyoryon erel dhywgh.',
 'prefs-help-email-required' => 'Res yw trigva ebost.',
+'prefs-info' => 'Kedhlow selvenel',
+'prefs-i18n' => 'Keswlasegyans',
 'prefs-signature' => 'Sinans',
 'prefs-advancedediting' => 'Etholyow avonsys',
 'prefs-advancedrc' => 'Etholyow avonsys',
 'prefs-advancedrendering' => 'Etholyow avonsys',
 'prefs-advancedsearchoptions' => 'Etholyow avonsys',
 'prefs-advancedwatchlist' => 'Etholyow avonsys',
-'prefs-displayrc' => 'Etholyow disqwedhes',
-'prefs-displaysearchoptions' => 'Etholyow disqwedhes',
-'prefs-displaywatchlist' => 'Etholyow disqwedhes',
+'prefs-displayrc' => 'Etholyow diskwedhes',
+'prefs-displaysearchoptions' => 'Etholyow diskwedhes',
+'prefs-displaywatchlist' => 'Etholyow diskwedhes',
 
 # User rights
-'userrights-user-editname' => 'Entrowgh hanow usyer:',
+'userrights-user-editname' => 'Entrewgh hanow devnydhyer:',
 'userrights-groupsmember' => 'Esel a:',
 'userrights-reason' => 'Acheson:',
 
 # Groups
 'group' => 'Bagas:',
 'group-user' => 'Devnydhyoryon',
+'group-autoconfirmed' => 'Devnydhyoryon awto-afydhyes',
 'group-bot' => 'Bottow',
 'group-sysop' => 'Menystroryon',
 'group-all' => '(oll)',
@@ -856,76 +940,76 @@ Nyns yw disqwedhys agas trigva ebost pan wrella devnydhyoryon erel kestava dhywg
 # Rights
 'right-read' => 'Redya folennow',
 'right-edit' => 'Chanjya folennow',
-'right-createtalk' => 'Gwruthyl folennow kescows',
-'right-createaccount' => 'Formya acontow devnydhyer noweth',
+'right-createtalk' => 'Gwruthyl folennow keskows',
+'right-createaccount' => 'Gwruthyl akontow devnydhyer nowyth',
 'right-move' => 'Gwaya folennow',
 'right-movefile' => 'Gwaya restrennow',
-'right-upload' => 'Ughcarga restrennow',
+'right-upload' => 'Ughkarga restrennow',
 'right-delete' => 'Dilea folennow',
 
 # Special:Log/newusers
-'newuserlogpage' => 'Covnoten formya acontow devnydhyer',
+'newuserlogpage' => 'Kovnoten gwruthyl akontow devnydhyer',
 
 # User rights log
-'rightslog' => 'Covnoten wiryow an devnydhyer',
+'rightslog' => 'Kovnoten wiryow an devnydhyer',
 
 # Associated actions - in the sentence "You do not have permission to X"
 'action-edit' => 'chanjya an folen-ma',
 'action-move' => 'gwaya an folen-ma',
 'action-movefile' => 'gwaya an restren-ma',
-'action-upload' => 'ughcarga an restren-ma',
+'action-upload' => 'ughkarga an restren-ma',
 'action-delete' => 'dilea an folen-ma',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|chanj|chanj}}',
 'recentchanges' => 'Chanjyow a-dhiwedhes',
 'recentchanges-legend' => 'Etholyow an chanjyow a-dhiwedhes',
-'recentchanges-summary' => "Sewya an chanjyow diwettha eus dhe'n wiki war'n folen-ma.",
-'recentchanges-feed-description' => "Helerhy an chanjyow diwettha dhe'n wiki y'n feed-ma.",
-'recentchanges-label-newpage' => 'Y feu gwres folen noweth gans an chanj-ma',
-'recentchanges-label-minor' => 'Chanj bian yw hemma',
-'recentchanges-label-bot' => 'An chanj-ma a veu gwres gans bott',
-'rcnote' => "A-woles yma'n {{PLURAL:$1|'''1''' chanj}} y'n {{PLURAL:$2|jedh|'''$2''' dedh}} diwettha, a-ban $5, $4.",
-'rclistfrom' => 'Disqwedhes chanjyow noweth ow talleth a-ban $1.',
-'rcshowhideminor' => '$1 chanjyow bian',
-'rcshowhidebots' => '$1 botow',
+'recentchanges-summary' => "Y hyllir helerhi an chanjyow diwettha gwrys dhe'n wiki war an folen-ma.",
+'recentchanges-feed-description' => "Y hyllir helerhi an chanjyow diwettha gwrys dhe'n wiki y'n feed-ma.",
+'recentchanges-label-newpage' => 'Y feu gwruthys folen nowyth gans an chanj-ma',
+'recentchanges-label-minor' => 'Chanj byhan yw hemma',
+'recentchanges-label-bot' => 'Gwrys veu an chanj-ma gans bott',
+'recentchanges-label-unpatrolled' => 'Ny veu an chanj-ma patrolyes hwath',
+'rcnote' => "A-woles yma {{PLURAL:$1|'''1''' janj|an '''$1''' chanjyow diwettha}} y'n {{PLURAL:$2|dydh|'''$2''' dydh}} diwettha, a-dhia $5, $4.",
+'rclistfrom' => 'Diskwedhes chanjyow nowyth yn unn dhalleth dhyworth $1.',
+'rcshowhideminor' => '$1 chanjyow byhan',
+'rcshowhidebots' => '$1 bottow',
 'rcshowhideliu' => '$1 devnydhoryon omgelmys',
 'rcshowhideanons' => '$1 devnydhyoryon dihanow',
 'rcshowhidemine' => '$1 ow chanjyow',
-'rclinks' => "Disqwedhes an $1 chanj diwettha gwres y'n $2 dedh diwettha<br />$3",
+'rclinks' => "Diskwedhes an $1 chanj diwettha gwrys y'n $2 dydh diwettha<br />$3",
 'diff' => 'dyffrans',
-'hist' => 'istory',
-'hide' => 'Cudha',
-'show' => 'Disqwedhes',
+'hist' => 'istori',
+'hide' => 'Kudha',
+'show' => 'Diskwedhes',
 'minoreditletter' => 'B',
 'newpageletter' => 'N',
 'boteditletter' => 'bott',
-'newsectionsummary' => '/* $1 */ rann noweth',
-'rc-enhanced-expand' => 'Disqwedhes an manylyon (res yw JavaScript)',
-'rc-enhanced-hide' => 'Cudha manylyon',
+'newsectionsummary' => '/* $1 */ tregh nowyth',
+'rc-enhanced-expand' => 'Diskwedhes an manylyon (res yw JavaScript)',
+'rc-enhanced-hide' => 'Kudha an manylyon',
 
 # Recent changes linked
 'recentchangeslinked' => 'Chanjyow kelmys',
 'recentchangeslinked-feed' => 'Chanjyow kelmys',
 'recentchangeslinked-toolbox' => 'Chanjyow kelmys',
 'recentchangeslinked-title' => 'Chanjyow kelmys dhe "$1"',
-'recentchangeslinked-noresult' => 'Nyns esa chanj veth war folennow kevrennys dres an termyn res.',
-'recentchangeslinked-summary' => "Hemm yw rol a janjyow a-dhiwedhes gwres dhe folennow yw kevrennys dhyworth folen res (po dhe esely a glass res).
-'''Tew''' yw folennow eus war agas [[Special:Watchlist|rol golyas]].",
+'recentchangeslinked-summary' => "Homm yw rol a janjyow gwrys a-dhiwedhes dhe folennow yw kevrennys dhyworth folen res (po dhe eseli a glass res).
+'''Tew''' yw folennow eus war agas [[Special:Watchlist|rol golya]].",
 'recentchangeslinked-page' => 'Hanow an folen:',
-'recentchangeslinked-to' => "Disqwedhes chanjyow dhe folennow kevennys dhe'n folen res yn le",
+'recentchangeslinked-to' => "Diskwedhes chanjyow dhe folennow kevrennys dhe'n folen res yn le",
 
 # Upload
-'upload' => 'Ughcarga restren',
-'uploadbtn' => 'Ughcarga restren',
-'reuploaddesc' => "Hedhy ughcarga ha dewheles dhe'n furvlen ughcarga",
+'upload' => 'Ughkarga restren',
+'uploadbtn' => 'Ughkarga restren',
+'reuploaddesc' => "Hedhi ughkarga ha dehweles dhe'n furvlen ughkarga",
 'uploadnologin' => 'Digelmys',
-'uploadnologintext' => 'Res yw bos [[Special:UserLogin|omgelmys]] rag ughcarga restrennow.',
-'uploaderror' => 'Gwall ughcarga',
-'uploadlogpage' => 'Covnoten ughcarga',
+'uploadnologintext' => 'Res yw bos [[Special:UserLogin|omgelmys]] rag ughkarga restrennow.',
+'uploaderror' => 'Gwall ughkarga',
+'uploadlogpage' => 'Kovnoten ughkarga',
 'filename' => 'Hanow an restren',
-'filedesc' => 'Derivas cot',
-'fileuploadsummary' => 'Derivas cot:',
+'filedesc' => 'Berrskrif',
+'fileuploadsummary' => 'Berrskrif:',
 'filesource' => 'Pennfenten:',
 'savefile' => 'Gwitha restren',
 'uploadedimage' => '"[[$1]]" ughkergys',
@@ -936,37 +1020,37 @@ Nyns yw disqwedhys agas trigva ebost pan wrella devnydhyoryon erel kestava dhywg
 'listfiles_date' => 'Dedhyans',
 'listfiles_name' => 'Hanow',
 'listfiles_user' => 'Devnydhyer',
-'listfiles_size' => 'Mens',
-'listfiles_description' => 'Descrifans',
+'listfiles_size' => 'Myns',
+'listfiles_description' => 'Deskrifans',
 'listfiles_count' => 'Versyons',
 
 # File description page
 'file-anchor-link' => 'Restren',
-'filehist' => 'Istory an restren',
-'filehist-help' => 'Clyckyowgh war dedhyans/eur rag gweles an folen del veu nena.',
+'filehist' => 'Istori an restren',
+'filehist-help' => 'Klyckyewgh war dhedhyans/eur rag gweles an folen del omdhiskwedhas nena.',
 'filehist-deleteall' => 'dilea oll',
 'filehist-deleteone' => 'dilea',
-'filehist-revert' => 'trebuchya',
+'filehist-revert' => 'gorthtreylya',
 'filehist-current' => 'a-lemmyn',
 'filehist-datetime' => 'Dedhyans/Eur',
 'filehist-thumb' => 'Skeusennik',
-'filehist-thumbtext' => 'Skeusennik rag an versyon a-ban $1',
-'filehist-nothumb' => 'Nyns eus skeudennik',
+'filehist-thumbtext' => 'Skeusennik rag an versyon a-dhia $1',
+'filehist-nothumb' => 'Nyns eus skeusennik',
 'filehist-user' => 'Devnydhyer',
-'filehist-dimensions' => 'Mensow',
+'filehist-dimensions' => 'Mynsow',
 'filehist-filesize' => 'Mens an restren',
-'filehist-comment' => 'Ger',
+'filehist-comment' => 'Kampol',
 'imagelinks' => 'Devnydh an restren',
-'linkstoimage' => "Yma'n {{PLURAL:$1|folen|$1 folen}} a sew ow kevrenna dhe'n restren-ma:",
+'linkstoimage' => "Yma an {{PLURAL:$1|folen|$1 folen}} a syw ow kevrenna dhe'n restren-ma:",
 'linkstoimage-more' => "Yma moy es $1 {{PLURAL:$1|folen}} ow kevrenna dhe'n restren-ma.
-Yma an rol a sew ow tisqwedhes an {{PLURAL:$1|an kensa kevren folen|kensa $1 kevren folen}} dhe'n restren-ma hepken.
-Yma [[Special:WhatLinksHere/$2|rol leun]] cavadow.",
-'nolinkstoimage' => "Nyns eus folen ow kevrenna dhe'n restren-ma.",
+Ny dhiskwa an rol a syw marnas an {{PLURAL:$1|kynsa kevren folen|kynsa $1 kevren folen}} dhe'n restren-ma.
+Yma [[Special:WhatLinksHere/$2|rol leun]] kavadow.",
+'nolinkstoimage' => "Nyns eus folen vyth ow kevrenna dhe'n restren-ma.",
 'morelinkstoimage' => "Gweles [[Special:WhatLinksHere/$1|moy kevrennow]] dhe'n restren-ma.",
 'sharedupload' => 'Yma an folen-ma ow tos dhyworth $1 ha hy a alsa bos yn-dann devnydh gans ragdresow erel.',
-'sharedupload-desc-here' => "Yma'n restren-ma ow tos dhyworth $1 ha hy a alsa bos yn-dann devnydh gans ragdresow erel.
-Yma'n descrifans war y [$2 folen dhescrifans] disqwedhys a-woles.",
-'uploadnewversion-linktext' => "Ughcarga versyon noweth a'n restren-ma",
+'sharedupload-desc-here' => 'Yma an restren-ma dhe $1 ha ragdresow erel a alsa bos orth hy devnydhya.
+Diskwedhys a-woles yw an deskrifans war hy [$2 folen dheskrifans] ena.',
+'uploadnewversion-linktext' => "Ughkarga versyon nowyth a'n restren-ma",
 
 # File deletion
 'filedelete' => 'Dilea $1',
@@ -974,20 +1058,20 @@ Yma'n descrifans war y [$2 folen dhescrifans] disqwedhys a-woles.",
 'filedelete-submit' => 'Dilea',
 
 # MIME search
-'download' => 'iscarga',
+'download' => 'iskarga',
 
 # Unwatched pages
-'unwatchedpages' => 'Folennow nag eus den veth ow colyas',
+'unwatchedpages' => 'Folennow heb aga golya',
 
 # List redirects
 'listredirects' => 'Rol an daswedyansow',
 
 # Unused templates
-'unusedtemplates' => 'Scantlyns heb devnydh',
+'unusedtemplates' => 'Skantlyns heb devnydh',
 'unusedtemplateswlh' => 'kevrennow erel',
 
 # Random page
-'randompage' => 'Folen dre jons',
+'randompage' => 'Folen jonsus',
 
 # Statistics
 'statistics' => 'Statystygyon',
@@ -997,73 +1081,74 @@ Yma'n descrifans war y [$2 folen dhescrifans] disqwedhys a-woles.",
 'brokenredirects-delete' => 'dilea',
 
 'withoutinterwiki' => 'Folennow heb kevrennow yeth',
-'withoutinterwiki-submit' => 'Disqwedhes',
+'withoutinterwiki-submit' => 'Diskwedhes',
 
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|bayt|bayt}}',
 'nmembers' => '$1 {{PLURAL:$1|esel|esel}}',
-'uncategorizedpages' => 'Folennow heb class',
-'uncategorizedcategories' => 'Classys heb class',
-'uncategorizedimages' => 'Restrennow heb class',
-'uncategorizedtemplates' => 'Scantlyns heb class',
-'unusedcategories' => 'Classys gwag',
+'uncategorizedpages' => 'Folennow heb klass',
+'uncategorizedcategories' => 'Klassys heb klass',
+'uncategorizedimages' => 'Restrennow heb klass',
+'uncategorizedtemplates' => 'Skantlyns heb klass',
+'unusedcategories' => 'Klassys heb devnydh',
 'unusedimages' => 'Restrennow heb devnydh',
 'prefixindex' => 'Keniver folen gans an rager',
-'shortpages' => 'Folennow cot',
+'shortpages' => 'Folennow berr',
 'longpages' => 'Folennow hir',
 'protectedpages' => 'Folennow difresys',
 'protectedtitles' => 'Titlys difresys',
-'usercreated' => '{{GENDER:$3|Formyes}} an $1 dhe $2',
-'newpages' => 'Folennow noweth',
+'usercreated' => '{{GENDER:$3|Gwruthys}} an $1 dhe $2',
+'newpages' => 'Folennow nowyth',
 'newpages-username' => 'Hanow-usyer:',
-'ancientpages' => 'An cottha folennow',
+'ancientpages' => 'An kottha folennow',
 'move' => 'Gwaya',
 'movethispage' => 'Gwaya an folen-ma',
-'pager-newer-n' => '{{PLURAL:$1|1 nowettha|$1 nowettha}}',
-'pager-older-n' => '{{PLURAL:$1|1 cottha|$1 cottha}}',
+'pager-newer-n' => '{{PLURAL:$1|1 nowyttha|$1 nowyttha}}',
+'pager-older-n' => '{{PLURAL:$1|1 kottha|$1 kottha}}',
 
 # Book sources
 'booksources' => 'Pennfentynyow lyver',
-'booksources-search-legend' => 'Whilas pennfentynyow lyver',
+'booksources-search-legend' => 'Hwilas pennfentynyow lyver',
 'booksources-go' => 'Mos',
 
 # Special:Log
 'specialloguserlabel' => 'Awtour:',
-'speciallogtitlelabel' => 'Titel:',
-'log' => 'Covnotennow',
+'speciallogtitlelabel' => 'Kosten (titel po devnydhyer):',
+'log' => 'Kovnotennow',
+'logempty' => "Nyns eus tra vyth owth omdhesedha y'n govnoten.",
 
 # Special:AllPages
 'allpages' => 'Keniver folen',
 'alphaindexline' => '$1 dhe $2',
-'prevpage' => 'Folen gens ($1)',
-'allpagesfrom' => 'Disqwedhes folennow ow talleth orth:',
-'allpagesto' => 'Disqwedhes folennow ow tiwedha orth:',
+'prevpage' => 'Folen gyns ($1)',
+'allpagesfrom' => 'Diskwedhes folennow yn unn dhalleth orth:',
+'allpagesto' => 'Diskwedhes folennow yn unn dhiwedha orth:',
 'allarticles' => 'Keniver folen',
-'allpagesprev' => 'Kens',
+'allpagesprev' => 'Kyns',
 'allpagesnext' => 'Nessa',
 'allpagessubmit' => 'Mos',
-'allpages-hide-redirects' => 'Cudha daswedyansow',
+'allpages-hide-redirects' => 'Kudha daskedyansow',
 
 # Special:Categories
-'categories' => 'Classys',
+'categories' => 'Klassys',
 
 # Special:DeletedContributions
 'sp-deletedcontributions-contribs' => 'kevrohow',
 
 # Special:LinkSearch
-'linksearch' => 'Whilas kevrennow a-ves',
-'linksearch-ok' => 'Whilas',
-'linksearch-line' => 'Kevrennys yw $1 dhyworth $2',
+'linksearch' => 'Hwilas kevrennow a-ves',
+'linksearch-ok' => 'Hwilas',
+'linksearch-line' => 'Y kevrennir $1 dhyworth $2',
 
 # Special:ListUsers
-'listusers-submit' => 'Disqwedhes',
+'listusers-submit' => 'Diskwedhes',
 
 # Special:ListGroupRights
-'listgrouprights-members' => '(rol esely)',
+'listgrouprights-members' => '(rol eseli)',
 
 # Email user
-'emailuser' => 'E-bostya an devnydhyer-ma',
-'emailpage' => 'E-bostya devnydhyer',
+'emailuser' => 'Ebostya an devnydhyer-ma',
+'emailpage' => 'Ebostya devnydhyer',
 'defemailsubject' => 'Ebost danvenys dre {{SITENAME}} gans an devnydhyer "$1"',
 'emailfrom' => 'Dhyworth:',
 'emailto' => 'Dhe:',
@@ -1071,73 +1156,73 @@ Yma'n descrifans war y [$2 folen dhescrifans] disqwedhys a-woles.",
 'emailsend' => 'Danvon',
 
 # Watchlist
-'watchlist' => 'Ow rol golyas',
-'mywatchlist' => 'Ow rol golyas',
+'watchlist' => 'Rol golya',
+'mywatchlist' => 'Rol golya',
 'watchlistfor2' => 'Rag $1 ($2)',
-'watch' => 'Golyas',
-'watchthispage' => 'Golyas an folen-ma',
-'unwatch' => 'Diswolyas',
-'watchlist-details' => 'Yma {{PLURAL:$1|$1 folen}} war agas rol golyas, marnas folennow kescows.',
-'wlshowlast' => 'Disqwedhes an $1 our $2 dedh $3 diwettha',
-'watchlist-options' => 'Etholyow an rol golyas',
+'watch' => 'Golya',
+'watchthispage' => 'Golya an folen-ma',
+'unwatch' => 'Diswolya',
+'watchlist-details' => 'Yma {{PLURAL:$1|$1 folen}} war agas rol golya, marnas folennow keskows.',
+'wlshowlast' => 'Diskwedhes an $1 our $2 dydh $3 diwettha',
+'watchlist-options' => 'Etholyow an rol golya',
 
 # Displayed when you click the "watch" button and it is in the process of watching
-'watching' => 'Ow colyas...',
-'unwatching' => 'Ow tisgolyas...',
+'watching' => 'Ow kolya...',
+'unwatching' => 'Ow tisgolya...',
 
 # Delete
 'deletepage' => 'Dilea an folen',
 'confirm' => 'Afydhya',
-'excontent' => 'yth esa ynny: "$1"',
+'excontent' => 'yth esa ynni: "$1"',
 'delete-confirm' => 'Dilea "$1"',
 'delete-legend' => 'Dilea',
-'actioncomplete' => 'Cowlwres yw an gwrians',
-'actionfailed' => 'An gwrians a fyllas',
-'deletedtext' => '"$1" yw dileys.
-Gwelowgh $2 rag covadh a dhileansow a-dhiwedhes.',
-'dellogpage' => 'Covnoten dhilea',
-'deletionlog' => 'covnoten dhilea',
+'actioncomplete' => 'Kowlwrys yw an gwrians',
+'actionfailed' => 'An gwrians a fyllis',
+'deletedtext' => '"$1" re beu diles.
+Gwelewgh $2 rag kovadh a dhileansow a-dhiwedhes.',
+'dellogpage' => 'Kovnoten dhilea',
+'deletionlog' => 'kovnoten dhilea',
 'deletecomment' => 'Acheson:',
 'deleteotherreason' => 'Acheson aral/keworansel:',
 'deletereasonotherlist' => 'Acheson aral',
 
 # Rollback
-'rollbacklink' => 'restorya',
+'rollbacklink' => 'revya war-dhelergh',
 
 # Protect
-'protectlogpage' => 'Covnoten dhifres',
-'protectedarticle' => 'a dhifresas "[[$1]]"',
+'protectlogpage' => 'Kovnoten dhifres',
+'protectedarticle' => '"[[$1]]" difresys',
 'prot_1movedto2' => '[[$1]] gwayys dhe [[$2]]',
 'protectcomment' => 'Acheson:',
 'protectexpiry' => 'Ow tiwedha:',
 'protect_expiry_invalid' => 'Drog yw an termyn diwedha.',
-'protect_expiry_old' => "Yma'n termyn diwedha y'n termyn eus passyes.",
-'protect-level-sysop' => 'Menystroryon hepken',
+'protect_expiry_old' => "Yma an termyn diwedha y'n termyn eus passyes.",
+'protect-level-sysop' => 'Alowa menystroryon hepken',
 'protect-summary-cascade' => 'ow froslamma',
-'protect-expiring' => 'y whra diwedha $1 (UTC)',
-'restriction-type' => 'Cummyas:',
+'protect-expiring' => 'diwedhans $1 (UTC)',
+'restriction-type' => 'Kummyas:',
 'pagesize' => '(bayt)',
 
 # Restrictions (nouns)
 'restriction-edit' => 'Chanjya',
 'restriction-move' => 'Gwaya',
 'restriction-create' => 'Gwruthyl',
-'restriction-upload' => 'Ughcarga',
+'restriction-upload' => 'Ughkarga',
 
 # Undelete
-'undeletelink' => 'gweles/restorya',
+'undeletelink' => 'gweles/gorthtreylya',
 'undeleteviewlink' => 'gweles',
-'undelete-search-submit' => 'Whilas',
+'undelete-search-submit' => 'Hwilas',
 'undelete-show-file-submit' => 'Ya',
 
 # Namespace form on various pages
 'namespace' => 'Spas hanow:',
-'invert' => 'Trebuchya an dowisyans',
+'invert' => 'Trebuchya an dewisyans',
 'namespace_association' => 'Spas hanow kelmys',
 'blanknamespace' => '(Penn)',
 
 # Contributions
-'contributions' => 'Kevrohow an devnydhyer',
+'contributions' => 'Kevrohow an {{GENDER:$1|devnydhyer}}',
 'contributions-title' => 'Kevrohow $1',
 'mycontris' => 'Kevrohow',
 'contribsub2' => 'Rag $1 ($2)',
@@ -1145,30 +1230,30 @@ Gwelowgh $2 rag covadh a dhileansow a-dhiwedhes.',
 'month' => 'Dhyworth an mis (ha moy a-varr):',
 'year' => 'Dhyworth an vledhen (ha moy a-varr):',
 
-'sp-contributions-newbies' => 'Disqwedhes yn unnik kevrohow acontow noweth',
-'sp-contributions-blocklog' => 'covnoten lettya',
-'sp-contributions-uploads' => 'ughcargansow',
-'sp-contributions-logs' => 'covnotennow',
-'sp-contributions-talk' => 'kescows',
-'sp-contributions-search' => 'Whilas kevrohow',
-'sp-contributions-username' => 'Trigva IP po hanow-usyer:',
-'sp-contributions-toponly' => 'Disqwedhes yn unnik chanjyow yw amendyansow diwettha',
-'sp-contributions-submit' => 'Whilas',
+'sp-contributions-newbies' => 'Diskwedhes yn unnik kevrohow akontow nowyth',
+'sp-contributions-blocklog' => 'kovnoten lettya',
+'sp-contributions-uploads' => 'ughkargansow',
+'sp-contributions-logs' => 'kovnotennow',
+'sp-contributions-talk' => 'keskows',
+'sp-contributions-search' => 'Hwilas kevrohow',
+'sp-contributions-username' => 'Trigva IP po hanow devnydhyer:',
+'sp-contributions-toponly' => 'Diskwedhes yn unnik chanjyow yw amendyansow diwettha',
+'sp-contributions-submit' => 'Hwilas',
 
 # What links here
-'whatlinkshere' => "Pandr'eus ow kevrenna omma",
+'whatlinkshere' => 'Pyth a gevren dhe omma',
 'whatlinkshere-title' => 'Folennow ow kevrenna dhe "$1"',
 'whatlinkshere-page' => 'Folen:',
-'linkshere' => "Yma'n folennow a sew ow kevrenna dhe '''[[:$1]]''':",
-'nolinkshere' => "Nyns eus folen ow kevrenna dhe '''[[:$1]]'''.",
-'isredirect' => 'folen daswedyans',
-'istemplate' => 'treuscludyans',
+'linkshere' => "Yma an folennow a syw ow kevrenna dhe '''[[:$1]]''':",
+'nolinkshere' => "Nyns eus folen vyth ow kevrenna dhe '''[[:$1]]'''.",
+'isredirect' => 'folen daskedyans',
+'istemplate' => 'treuskludyans',
 'isimage' => 'kevren an restren',
-'whatlinkshere-prev' => '{{PLURAL:$1|kens|kens $1}}',
+'whatlinkshere-prev' => '{{PLURAL:$1|kyns|$1 kyns}}',
 'whatlinkshere-next' => '{{PLURAL:$1|nessa|nessa $1}}',
 'whatlinkshere-links' => '← kevrennow',
-'whatlinkshere-hideredirs' => '$1 daswedyansow',
-'whatlinkshere-hidetrans' => '$1 treuscludyans',
+'whatlinkshere-hideredirs' => '$1 daskedyansow',
+'whatlinkshere-hidetrans' => '$1 treuskludyans',
 'whatlinkshere-hidelinks' => '$1 kevrennow',
 'whatlinkshere-hideimages' => '$1 kevrennow restren',
 'whatlinkshere-filters' => 'Sidhlow',
@@ -1178,138 +1263,152 @@ Gwelowgh $2 rag covadh a dhileansow a-dhiwedhes.',
 'ipadressorusername' => 'Trigva IP po hanow-usyer:',
 'ipbreason' => 'Acheson:',
 'ipbreasonotherlist' => 'Acheson aral',
-'ipboptions' => '2 our:2 hours,1 dhedh:1 day,3 dedh:3 days,1 seythen:1 week,2 seythen:2 weeks,1 vis:1 month,3 mis:3 months,6 mis:6 months,1 vledhen:1 year,heb diwedh:infinite',
+'ipboptions' => '2 our:2 hours,1 jydh:1 day,3 dydh:3 days,1 seythen:1 week,2 seythen:2 weeks,1 vis:1 month,3 mis:3 months,6 mis:6 months,1 vledhen:1 year,heb diwedh:infinite',
 'ipb-blocklist-contribs' => 'Kevrohow rag $1',
 'ipblocklist' => 'Devnydhyoryon lettyes',
-'ipblocklist-submit' => 'Whilas',
+'ipblocklist-submit' => 'Hwilas',
 'blocklink' => 'lettya',
 'unblocklink' => 'dislettya',
 'change-blocklink' => 'chanjya an lettyans',
 'contribslink' => 'kevrohow',
-'blocklogpage' => 'Covnoten lettya',
-'blocklogentry' => 'a lettyas [[$1]], bys dhe $2 $3',
-'unblocklogentry' => 'dislettyas $1',
+'blocklogpage' => 'Kovnoten lettya',
+'blocklogentry' => '[[$1]] lettyes, bys dhe $2 $3',
+'unblocklogentry' => '$1 dislettyes',
 'block-log-flags-anononly' => 'devnydhyoryon dihanow hepken',
-'block-log-flags-nocreate' => 'dialosegys yw formya acontow',
-'block-log-flags-hiddenname' => 'hanow usyer cudhys',
+'block-log-flags-nocreate' => 'dialosegys yw gwruthyl akontow',
+'block-log-flags-hiddenname' => 'hanow devnydhyer kudhys',
 
 # Move page
 'move-page' => 'Gwaya $1',
 'move-page-legend' => 'Gwaya folen',
+'movepagetext' => "Devnydhya an furvlen a-woles a dhashenow folen, yn unn waya oll y istori dhe'n hanow nowyth.
+An titel koth a vydh folen dhaskedyans dhe'n titel nowyth.
+Hwi a yll nowedhi daskedyansow a boynt dhe'n titel derowel yn awtomatek.
+Mar ny wrewgh, surhewgh hwi dhe jeckya rag [[Special:DoubleRedirects|daskedyansow dobyl]] po [[Special:BrokenRedirects|terrys]].
+Omgemeryansek owgh rag surhe y pes kevrennow poyntya dhe'n tyller ewn.
+
+Notyewgh '''na wayir''' an folen mars eus folen orth an titel nowyth seulabrys, marnas bos an pyth kampollys diwettha daskedyans ha ny'n jeves istori chanjya kyns vyth.
+Hemm a styr y hyllowgh diswul dashenwel folen mar kwrewgh kammwrians, ha ny yllowgh gorskrifa folen eus ena seulabrys.
+
+'''Gwarnyans!'''
+Hemm a yll bos chanj tromm ha bras dres ehen rag folen gerys-da;
+Surhewgh mar pleg hwi dhe gonvedhes sewyansow an gwrians-ma kyns mos yn-rag.",
 'movearticle' => 'Gwaya an folen:',
-'newtitle' => 'Dhe ditel noweth:',
+'moveuserpage-warning' => "'''Gwarnyans''': Yth esowgh ow mos dhe waya folen dhevnydhyer. Notyewgh mar pleg ny vydh marnas an folen gwayys ha ''ny vydh'' an devnydhyer dashenwys.",
+'newtitle' => 'Dhe ditel nowyth:',
 'move-watch' => 'Golya an folen-ma',
 'movepagebtn' => 'Gwaya an folen',
-'pagemovedsub' => 'An gwarnyans a sowenas',
+'pagemovedsub' => 'Gwaya a sewenis',
 'movepage-moved' => '\'\'\'Gwayys re beu "$1" dhe "$2"\'\'\'',
 'movedto' => 'gwayys dhe',
-'movelogpage' => 'Covnoten waya',
+'movelogpage' => 'Kovnoten waya',
+'movenosubpage' => "Ny's teves an folen-ma isfolen vyth.",
 'movereason' => 'Acheson:',
-'revertmove' => 'trebuchya',
+'revertmove' => 'gorthtreylya',
 
 # Export
-'export' => 'Esperthy folennow',
+'export' => 'Esperthi folennow',
 'export-addcat' => 'Keworra',
 'export-addns' => 'Keworra',
 
 # Namespace 8 related
 'allmessagesname' => 'Hanow',
-'allmessagesdefault' => 'Text messach defowt',
+'allmessagesdefault' => 'Tekst messach defowt',
 
 # Thumbnails
 'thumbnail-more' => 'Brashe',
-'thumbnail_error' => 'Gwall ow formya skeusennik: $1',
+'thumbnail_error' => 'Gwall ow kwruthyl skeusennik: $1',
 
 # Special:Import
-'import' => 'Ymperthy folennow',
-'import-interwiki-submit' => 'Ymperthy',
-'import-upload-filename' => 'Hanow-restren:',
-'importstart' => 'Owth ymperthy folennow...',
-'import-noarticle' => 'Nyns eus folen veth dhe ymperthy!',
+'import' => 'Ymperthi folennow',
+'import-interwiki-submit' => 'Ymperthi',
+'import-upload-filename' => 'Hanow an restren:',
+'importstart' => 'Owth ymperthi folennow...',
+'import-noarticle' => 'Nyns eus folen vyth dhe ymperthi!',
 
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Agas folen dhevnydhyer',
 'tooltip-pt-mytalk' => 'Agas folen gows',
-'tooltip-pt-preferences' => 'Agas dowisyansow',
-'tooltip-pt-watchlist' => 'Rol a folennow esowgh why ow colyas rag chanjyow',
+'tooltip-pt-preferences' => 'Agas dewisyansow',
+'tooltip-pt-watchlist' => 'Rol a folennow esowgh ow kolya rag chanjyow',
 'tooltip-pt-mycontris' => "Rol a'gas kevrohow",
-'tooltip-pt-login' => 'Gwell via dhywgh mar tewgh why hag omgelmy, mes nyns yw besy',
-'tooltip-pt-logout' => 'Digelmy',
-'tooltip-ca-talk' => "Dadhel a-dro dhe'n folen",
-'tooltip-ca-edit' => "Why a yll chanjya an folen-ma. Gwrewgh usya an boton 'ragweles' kens gwitha mar pleg.",
-'tooltip-ca-addsection' => 'Dalleth rann noweth',
-'tooltip-ca-viewsource' => 'Alwhedhys yw an folen-ma.
-Why a yll gweles hy fennfenten.',
-'tooltip-ca-history' => "Amendyansow coth a'n folen-ma",
+'tooltip-pt-login' => 'Ni a gomend mayth omgelmowgh, mes nyns yw besi',
+'tooltip-pt-logout' => 'Digelmi',
+'tooltip-ca-talk' => "Dadhlow a-dro dhe'n folen",
+'tooltip-ca-edit' => "Hwi a yll chanjya an folen-ma. Devnydhyewgh an boton 'ragweles' kyns gwitha mar pleg.",
+'tooltip-ca-addsection' => 'Dalleth tregh nowyth',
+'tooltip-ca-viewsource' => 'Difresys yw an folen-ma.
+Hwi a yll gweles hy fennfenten.',
+'tooltip-ca-history' => "Amendyansow koth a'n folen-ma",
 'tooltip-ca-protect' => 'Difres an folen-ma',
 'tooltip-ca-delete' => 'Dilea an folen-ma',
 'tooltip-ca-move' => 'Gwaya an folen-ma',
-'tooltip-ca-watch' => "Keworra an folen-ma dhe'gas rol golyas",
-'tooltip-ca-unwatch' => 'Dilea an folen-ma dhyworth agas rol golyas',
-'tooltip-search' => 'Whilas yn {{SITENAME}}',
+'tooltip-ca-watch' => "Keworra an folen-ma dhe'gas rol golya",
+'tooltip-ca-unwatch' => 'Dilea an folen-ma dhyworth agas rol golya',
+'tooltip-search' => 'Hwilas yn {{SITENAME}}',
 'tooltip-search-go' => 'Mos dhe folen gans an keth hanow-ma, mars eus',
-'tooltip-search-fulltext' => "Whilas an text-ma y'n folennow",
-'tooltip-p-logo' => "Mos dhe'n folen dre",
-'tooltip-n-mainpage' => "Mos dhe'n folen dre",
-'tooltip-n-mainpage-description' => "Mos dhe'n folen dre",
-'tooltip-n-portal' => "A-dro dhe'n ragdres, an peth a yllowgh why gwul, ple dhe gavos taclow",
-'tooltip-n-currentevents' => 'Cavos kedhlow a-dro dhe dharvosow a-lemmyn',
+'tooltip-search-fulltext' => "Hwilas an tekst-ma y'n folennow",
+'tooltip-p-logo' => "Mos dhe'n folen dynnargh",
+'tooltip-n-mainpage' => "Mos dhe'n folen dynnargh",
+'tooltip-n-mainpage-description' => "Mos dhe'n folen dynnargh",
+'tooltip-n-portal' => "A-dro dhe'n ragdres, an pyth a yllowgh gul, ple hyllir kavos taklow",
+'tooltip-n-currentevents' => 'Kavos kedhlow a-dro dhe hwarvosow a-lemmyn',
 'tooltip-n-recentchanges' => "Rol a janjyow a-dhiwedhes y'n wiki",
-'tooltip-n-randompage' => 'Carga folen dre jons',
+'tooltip-n-randompage' => 'Karga folen jonsus',
 'tooltip-n-help' => 'Gweres',
-'tooltip-t-whatlinkshere' => 'Rol a bub folen wiki ow kevrenna dhe omma',
-'tooltip-t-recentchangeslinked' => 'Chanjyow a-dhiwedhes yn folennow eus kevrennys dhyworth an folen-ma',
+'tooltip-t-whatlinkshere' => 'Rol a bub folen wiki a gevren dhe omma',
+'tooltip-t-recentchangeslinked' => 'Chanjyow a-dhiwedhes yn folennow a gevrennir dhyworth an folen-ma',
 'tooltip-feed-rss' => 'Feed RSS rag an folen-ma',
 'tooltip-feed-atom' => 'Feed Atom rag an folen-ma',
 'tooltip-t-contributions' => 'Gweles rol a gevrohow an devnydhyer-ma',
-'tooltip-t-emailuser' => "Danvon e-bost dhe'n devnydhyer-ma",
-'tooltip-t-upload' => 'Ughcarga restrennow',
+'tooltip-t-emailuser' => "Danvon ebost dhe'n devnydhyer-ma",
+'tooltip-t-upload' => 'Ughkarga restrennow',
 'tooltip-t-specialpages' => 'Rol a geniver folen arbennek',
 'tooltip-t-print' => "Versyon pryntyadow a'n folen-ma",
 'tooltip-t-permalink' => "Kevren fast dhe'n amendyans-ma a'n folen",
 'tooltip-ca-nstab-main' => 'Gweles an folen',
-'tooltip-ca-nstab-user' => 'Gweles an folen devnydhyer',
-'tooltip-ca-nstab-special' => 'Folen arbennek yw hemma; ny yllowgh why chanjya an folen hy honen.',
+'tooltip-ca-nstab-user' => 'Gweles an folen dhevnydhyer',
+'tooltip-ca-nstab-special' => 'Folen arbennek yw homma; ny yllowgh chanjya an folen hy honen.',
 'tooltip-ca-nstab-project' => 'Gweles folen an wiki',
 'tooltip-ca-nstab-image' => 'Gweles folen an restren',
-'tooltip-ca-nstab-template' => 'Gweles an scantlyn',
-'tooltip-ca-nstab-category' => 'Gweles folen an class',
-'tooltip-minoredit' => 'Merkya hemma avel chanj bian',
+'tooltip-ca-nstab-template' => 'Gweles an skantlyn',
+'tooltip-ca-nstab-category' => 'Gweles folen an klass',
+'tooltip-minoredit' => 'Merkya hemma avel chanj byhan',
 'tooltip-save' => 'Gwitha agas chanjyow',
-'tooltip-preview' => 'Ragweles agas chanjyow; gwrewgh usya hemma kens gwitha mar pleg!',
-'tooltip-diff' => "Disqwedhes an chanjyow eus gwres genowgh dhe'n text",
-'tooltip-compareselectedversions' => "Gweles an dyffransow ynter an dhew janjyow dowisyes a'n folen-ma",
-'tooltip-watch' => "Keworra an folen-ma dhe'gas rol golyas",
-'tooltip-rollback' => '"Restorya" a wra trebuchya chanjyow gwres dhe\'n folen-ma gans an diwettha devnydhyer yn unn glyck',
-'tooltip-undo' => '"Diswul" a wra trebuchya an chanj-ma hag egery an furvlen janjya y\'n modh ragweles. Y hyllir keworra acheson y\'n derivas cot.',
-'tooltip-summary' => 'Entrowgh derivas cot',
+'tooltip-preview' => 'Ragweles agas chanjyow; devnydhyewgh hemma kyns gwitha mar pleg!',
+'tooltip-diff' => "Diskwedhes an chanjyow a wrussowgh dhe'n tekst",
+'tooltip-compareselectedversions' => 'Gweles an dyffransow ynter dew amendyansow dewisyes an folen-ma',
+'tooltip-watch' => "Keworra an folen-ma dhe'gas rol golya",
+'tooltip-rollback' => '"Revya war-dhelergh" a worthtreyl chanjyow an diwettha devnydhyer yn unn glyck',
+'tooltip-undo' => '"Diswul" a worthtreyl an chanj-ma hag ygeri an furvlen janjya y\'n modh ragweles. Y hyllir keworra acheson y\'n berrskrif.',
+'tooltip-summary' => 'Entrewgh berrskrif',
 
 # Attribution
 'siteuser' => 'devnydhyer {{SITENAME}} $1',
-'lastmodifiedatby' => 'An folen-ma a veu kens chanjys dhe $2, $1 gans $3.',
+'lastmodifiedatby' => 'Chanj diwettha an folen-ma o dhe $2, $1 gans $3.',
 'siteusers' => '{{PLURAL:$2|devnydhyer|devnydhyoryon}} {{SITENAME}} $1',
 
 # Info page
 'pageinfo-toolboxlink' => 'Kedhlow an folen',
 
 # Browsing diffs
-'previousdiff' => '← Chanj cottha',
-'nextdiff' => 'Chanj nowettha →',
+'previousdiff' => '← Chanj kottha',
+'nextdiff' => 'Chanj nowyttha →',
 
 # Media information
-'file-info-size' => '$1 × $2 pixel, mens an restren: $3, sort MIME: $4',
-'file-nohires' => 'Nyns eus clerder uhella cavadow.',
-'svg-long-desc' => 'Restren SVG, $1 × $2 pixel yn hanow, mens an restren: $3',
-'show-big-image' => 'Clerder leun',
+'file-info-size' => '$1 × $2 piksel, myns an restren: $3, ehen MIME: $4',
+'file-nohires' => 'Nyns eus klerder uhella kavadow.',
+'svg-long-desc' => 'Restren SVG, $1 × $2 piksel yn hanow, myns an restren: $3',
+'show-big-image' => 'Klerder leun',
 
 # Special:NewFiles
-'ilsubmit' => 'Whilas',
+'ilsubmit' => 'Hwilas',
 
 # Metadata
 'metadata' => 'Metadata',
-'metadata-help' => "Yma dhe'n restren-ma kedhlow keworansel, dres lycklod keworrys dhyworth an camera besyel po an scanyer usys rag hy gwruthyl po hy besya. Mars yw chanjys an restren dhyworth hy studh gwredhek, possybyl yw na veu nebes manylyon nowedhys.",
-'metadata-expand' => 'Disqwedhes manylyon ystynnys',
-'metadata-collapse' => 'Cudha manylyon ystynnys',
+'metadata-help' => "An restren-ma a's teves kedhlow keworansel, dres lycklod keworrys dhyworth an kamera bysyel po an skanyer devnydhys rag hy gwruthyl po hy bysya. Mars yw chanjys an restren dhyworth hy studh gwredhek, possybyl yw na veu nebes manylyon nowedhys.",
+'metadata-expand' => 'Diskwedhes manylyon ystynnys',
+'metadata-collapse' => 'Kudha manylyon ystynnys',
 
 # Exif tags
 'exif-imagewidth' => 'Les',
@@ -1320,15 +1419,15 @@ Why a yll gweles hy fennfenten.',
 
 'exif-contrast-0' => 'Usadow',
 'exif-contrast-1' => 'Medhel',
-'exif-contrast-2' => 'Cales',
+'exif-contrast-2' => 'Kales',
 
 'exif-saturation-0' => 'Usadow',
 
 'exif-sharpness-0' => 'Usadow',
 'exif-sharpness-1' => 'Medhes',
-'exif-sharpness-2' => 'Cales',
+'exif-sharpness-2' => 'Kales',
 
-'exif-subjectdistancerange-0' => 'Ancoth',
+'exif-subjectdistancerange-0' => 'Ankoth',
 
 # External editor support
 'edit-externally' => 'Chanjya an restren-ma dre dowlen a-ves',
@@ -1341,53 +1440,53 @@ Why a yll gweles hy fennfenten.',
 
 # Email address confirmation
 'confirmemail' => 'Afydhya an drigva ebost',
-'confirmemail_noemail' => "Nyns eus trigva ebost da settyes y'gas [[Special:Preferences|dowisyansow devnydhyer]].",
+'confirmemail_noemail' => "Nyns eus trigva ebost da settyes y'gas [[Special:Preferences|dewisyansow devnydhyer]].",
 
 # Multipage image navigation
-'imgmultipageprev' => '← folen kens',
+'imgmultipageprev' => '← folen gyns',
 'imgmultipagenext' => 'folen nessa →',
-'imgmultigo' => 'Mos!',
+'imgmultigo' => 'Mos',
 
 # Table pager
 'table_pager_limit_submit' => 'Mos',
 
 # Auto-summaries
-'autosumm-blank' => 'Gwakhes an folen',
-'autoredircomment' => 'Daswedyas an folen war-tu [[$1]]',
-'autosumm-new' => "Folen formyes gans: '$1'",
+'autosumm-blank' => 'Gwakhes veu an folen',
+'autoredircomment' => 'Folen daskedyes war-tu ha [[$1]]',
+'autosumm-new' => "Folen gwruthys gans: '$1'",
 
 # Live preview
-'livepreview-loading' => 'Ow carga...',
-'livepreview-ready' => 'Ow carga... Parys!',
+'livepreview-loading' => 'Ow karga...',
+'livepreview-ready' => 'Ow karga... Parys!',
 
 # Watchlist editor
-'watchlistedit-noitems' => "Nyns eus titel veth y'gas rol golyas.",
-'watchlistedit-normal-title' => 'Chanjya an rol golyas',
-'watchlistedit-normal-legend' => 'Dilea titlys dhyworth agas rol golyas',
-'watchlistedit-normal-explain' => 'Yma disqwedhys a-woles titlys war agas rol golyas.
-Rag dilea titel, checkyowgh an gisten rebdho, ha clyckyowgh "{{int:Watchlistedit-normal-submit}}".
-Why a yll [[Special:EditWatchlist/raw|chanjya restren an rol golyas]] ynwedh.',
+'watchlistedit-noitems' => "Nyns eus titel vyth y'gas rol golya.",
+'watchlistedit-normal-title' => 'Chanjya an rol golya',
+'watchlistedit-normal-legend' => 'Dilea titlys dhyworth agas rol golya',
+'watchlistedit-normal-explain' => 'Yma diskwedhys a-woles titlys war agas rol golya.
+Rag dilea titel, checkyewgh an gisten rybdho, ha klyckyewgh "{{int:Watchlistedit-normal-submit}}".
+Hwi a yll [[Special:EditWatchlist/raw|chanjya restren an rol golya]] ynwedh.',
 'watchlistedit-normal-submit' => 'Dilea titlys',
 'watchlistedit-normal-done' => 'Diles veu {{PLURAL:$1|$1 titel}} dhyworth agas rol golyas',
-'watchlistedit-raw-title' => 'Chanjya restren an rol golyas',
-'watchlistedit-raw-legend' => 'Chanjya restren an rol golyas',
-'watchlistedit-raw-explain' => 'Yma disqwedhys a-woles titlys war agas rol golyas, hag y hyllir hy chanjya dre geworra dhedhy ha dilea dhyworty;
-unn ditel war linen.
-Pan vo diwedh dhywgh, clyckyowgh "{{int:Watchlistedit-raw-submit}}".
-Why a yll [[Special:EditWatchlist|usya an janjyel usadow]] ynwedh.',
+'watchlistedit-raw-title' => 'Chanjya restren an rol golya',
+'watchlistedit-raw-legend' => 'Chanjya restren an rol golya',
+'watchlistedit-raw-explain' => 'Yma diskwedhys a-woles titlys war agas rol golya, hag y hyllir hy chanjya dre geworra dhedhi ha dilea dhyworti;
+unn ditel war unn linen.
+Pan vo diwedh dhywgh, klyckyewgh "{{int:Watchlistedit-raw-submit}}".
+Hwi a yll [[Special:EditWatchlist|devnydhya an janjyel usadow]] ynwedh.',
 'watchlistedit-raw-titles' => 'Titlys:',
-'watchlistedit-raw-submit' => 'Nowedhy an rol golyas',
-'watchlistedit-raw-done' => 'Nowedhys re beu agas rol golyas.',
+'watchlistedit-raw-submit' => 'Nowedhi an rol golya',
+'watchlistedit-raw-done' => 'Nowedhys re beu agas rol golya.',
 'watchlistedit-raw-added' => 'Keworrys veu {{PLURAL:$1|$1 titel}}:',
 'watchlistedit-raw-removed' => 'Diles veu {{PLURAL:$1|$1 titel}}:',
 
 # Watchlist editing tools
 'watchlisttools-view' => 'Gweles chanjyow longus',
-'watchlisttools-edit' => 'Gweles ha chanjya an rol golyas',
-'watchlisttools-raw' => 'Chanjya restren an rol golyas',
+'watchlisttools-edit' => 'Gweles ha chanjya an rol golya',
+'watchlisttools-raw' => 'Chanjya restren an rol golya',
 
 # Signatures
-'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|kescows]])',
+'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|keskows]])',
 
 # Special:Version
 'version' => 'Versyon',
@@ -1396,31 +1495,35 @@ Why a yll [[Special:EditWatchlist|usya an janjyel usadow]] ynwedh.',
 
 # Special:FileDuplicateSearch
 'fileduplicatesearch-filename' => 'Hanow an restren:',
-'fileduplicatesearch-submit' => 'Whilas',
+'fileduplicatesearch-submit' => 'Hwilas',
 
 # Special:SpecialPages
 'specialpages' => 'Folennow arbennek',
-'specialpages-group-login' => 'Omgelmy / formya acont',
+'specialpages-group-login' => 'Omgelmi / gwruthyl akont',
 
 # Special:BlankPage
 'blankpage' => 'Folen wag',
 
 # Special:Tags
+'tag-filter' => 'Sidhel [[Special:Tags|tagyow]]:',
 'tags-edit' => 'chanjya',
 
 # Database error messages
-'dberr-header' => "Yma cudyn dhe'n wiki-ma",
+'dberr-header' => "An wiki-ma a'n jeves kudyn",
 'dberr-problems' => "Drog yw genen!
-Yma caletter teknogel dhe'n wiasva-ma.",
-'dberr-again' => 'Assayowgh gortos pols ha dascarga.',
+An wiasva-ma a's teves kaletter teknogel.",
+'dberr-again' => 'Assayewgh gortos pols ha daskarga.',
 'dberr-info' => '(Ny yllir kestava orth servyer an database: $1)',
-'dberr-usegoogle' => 'Why a yll assaya whilas dre Google.',
+'dberr-usegoogle' => 'Hwi a yll assaya hwilas dre Google.',
 
 # New logging system
-'logentry-delete-delete' => '$1 a dhileas an folen $3',
+'logentry-delete-delete' => '$1 a {{GENDER:$2|dhileas}} an folen $3',
+'logentry-move-move' => '$1 {{GENDER:$2|a wayas}} an folen $3 dhe $4',
+'logentry-move-move-noredirect' => '$1 {{GENDER:$2|a wayas}} an folen $3 dhe $4 heb gasa daskedyans',
+'logentry-move-move_redir' => '$1 {{GENDER:$2|a wayas}} an folen $3 dhe $4 dres daskedyans',
 
 # Search suggestions
-'searchsuggest-search' => 'Whilas',
-'searchsuggest-containing' => 'ynno...',
+'searchsuggest-search' => 'Hwilas',
+'searchsuggest-containing' => 'ynni...',
 
 );
index 9bb3544..dad6cc8 100644 (file)
  * @author Aidabishkek
  * @author Amire80
  * @author Chorobek
+ * @author Connexx
  * @author Growingup
+ * @author Kgbek
  * @author Muratjumashev
  * @author Ztimur
+ * @author Викиней
  */
 
 $namespaceNames = array(
@@ -33,47 +36,48 @@ $namespaceNames = array(
 $messages = array(
 # User preference toggles
 'tog-underline' => 'Шилтемелердин алдын сызуу:',
-'tog-justify' => 'Тексти барактын жазысы боюнча түздөө',
-'tog-hideminor' => 'Соңку өзгөрүүлөрдөгү арасындагы майда өзгөрүүлөрдү жашыр',
-'tog-hidepatrolled' => 'Ð\90кÑ\8bÑ\80кÑ\8b Ó©Ð·Ð³Ó©Ñ\80үүлөÑ\80дүн Ñ\82измеÑ\81инен Ð¿Ð°Ñ\82Ñ\80Ñ\83лдалган оңдоолорду жашыруу',
-'tog-newpageshidepatrolled' => 'Ð\96аңÑ\8b Ð±Ð°Ñ\80акÑ\82аÑ\80 Ñ\82измеÑ\81инен Ð¿Ð°Ñ\82Ñ\80Ñ\83лдалган барактарды жашыруу',
-'tog-extendwatchlist' => 'Бүт өзгөртүүлөрдү көрсөтүш үчүн көзөмөл тизмесин кеңейтүү, эң акыркыларды гана эмес эле',
-'tog-usenewrc' => 'Акыркы өзгөрүүлөрдөгү жана көзөмөл тизмедеги өзгөрүүлөрдү топтоо (JavaScript талап кылынат)',
-'tog-numberheadings' => 'Ð\91аÑ\88жазÑ\83Ñ\83лаÑ\80дÑ\8b Ð°Ð²Ñ\82омаÑ\82Ñ\82Ñ\83Ñ\83 түрдө номердөө',
+'tog-justify' => 'Текстти барактын эни боюнча түздөө',
+'tog-hideminor' => 'Соңку өзгөрүүлөрдүн тизмесинен майда өзгөрүүлөрдү жашыруу',
+'tog-hidepatrolled' => 'СоңкÑ\83 Ó©Ð·Ð³Ó©Ñ\80үүлөÑ\80дүн Ñ\82измеÑ\81инен ÐºÒ¯Ð·Ó©Ñ\82Ñ\82өлгөн оңдоолорду жашыруу',
+'tog-newpageshidepatrolled' => 'Ð\96аңÑ\8b Ð±Ð°Ñ\80акÑ\82аÑ\80 Ñ\82измеÑ\81инен ÐºÒ¯Ð·Ó©Ñ\82Ñ\82өлгөн барактарды жашыруу',
+'tog-extendwatchlist' => 'Бүт өзгөртүүлөрдү камтыган кеңири көзөмөл тизмеси, эң соңкуларды гана эмес',
+'tog-usenewrc' => 'Өзгөртүүлөрдү соңку өзгөрүүлөргө жана көзөмөл тизмеме топтоо (JavaScript талап кылынат)',
+'tog-numberheadings' => 'Ð\91аÑ\88жазÑ\83Ñ\83лаÑ\80дÑ\8b Ð°Ð²Ñ\82омаÑ\82Ñ\82Ñ\8bк түрдө номердөө',
 'tog-showtoolbar' => 'Оңдоо учурунда аспаптар тактасын көрсөтүү (JavaScript талап кылынат)',
 'tog-editondblclick' => 'Эки басып баракты оңдоо (JavaScript талап кылынат)',
-'tog-editsection' => 'Ар бир секция үчүн «оңдоо» шилтемесин көрсөтүү',
-'tog-editsectiononrightclick' => 'ЧÑ\8bÑ\87кандÑ\8bн Ð¾Ò£ ÐºÐ½Ð¾Ð¿ÐºÐ°Ñ\81Ñ\8b Ð¼ÐµÐ½ÐµÐ½ Ñ\81екÑ\86иÑ\8fнÑ\8bн Ð±Ð°Ñ\88жазÑ\83Ñ\83Ñ\81Ñ\83н Ð±Ð°Ñ\81канда Ñ\80едакÑ\82оÑ\80лоо Ñ\81екÑ\86иÑ\8fÑ\81Ñ\8bн ачуу (JavaScript талап кылынат)',
+'tog-editsection' => 'Ар бир бөлүм үчүн «оңдоо» шилтемесин көрсөтүү',
+'tog-editsectiononrightclick' => 'Ð\91өлүмдүн Ð±Ð°Ñ\88жазÑ\83Ñ\83Ñ\81Ñ\83н Ñ\87Ñ\8bÑ\87кандÑ\8bн Ð¾Ò£ Ð±Ð°Ñ\81кÑ\8bÑ\87Ñ\8b Ð¼ÐµÐ½ÐµÐ½ Ð±Ð°Ñ\81канда Ð¾Ò£Ð´Ð¾Ð¿-Ñ\82үзөө Ð±Ó©Ð»Ò¯Ð³Ò¯н ачуу (JavaScript талап кылынат)',
 'tog-showtoc' => 'Мазмунду көрсөтүү (3 мазмундан артык барактар үчүн)',
-'tog-rememberpassword' => 'Ð\91Ñ\83л Ð±Ñ\80аÑ\83зеÑ\80де ($1 {{PLURAL:$1|күн}}) Ð¼ÐµÐ½Ð¸Ð½ Ñ\8dÑ\81еп Ð¶Ð°Ð·Ñ\83Ñ\83мдÑ\83 Ñ\8dÑ\81ке сактоо',
-'tog-watchcreations' => 'Көзөмөл тизмесине мен жараткан барактарды жана мен жүктөгөн файлдарды кошуу',
+'tog-rememberpassword' => 'Ð\91Ñ\83л Ð±Ñ\80аÑ\83зеÑ\80дин Ñ\8dÑ\81инде Ñ\8dÑ\81еп Ð¶Ð°Ð·Ñ\83Ñ\83мдÑ\83 ($1 {{PLURAL:$1|күн}}) сактоо',
+'tog-watchcreations' => 'Көзөмөл тизмеме мен жараткан барактарды жана мен жүктөгөн файлдарды кошуу',
 'tog-watchdefault' => 'Мен өзгөрткөн барактарды жана файлдарды көзөмөл тизмеме кошуу',
 'tog-watchmoves' => 'Мен атын өзгөрткөн барактарды жана файлдарды көзөмөл тизмеме кошуу',
 'tog-watchdeletion' => 'Мен өчүргөн барактарды жана файлдарды көзөмөл тизмеме кошуу',
-'tog-minordefault' => 'Жарыяланбасча бүт оңдоолорду майда деп белги салуу',
-'tog-previewontop' => 'Ð\9eңдоо Ñ\82еÑ\80езеÑ\81инин Ð°Ð»Ð´Ñ\8bна Ð°Ð»Ð´Ñ\8bн Ð°Ð»Ð° ÐºÓ©Ñ\80Ñ\81Ó©Ñ\82үүнү Ð¾Ñ\80Ñ\83ндаштыруу',
-'tog-previewonfirst' => 'Оңдоого өткөндө алдын алдын ала көрсөтүү',
+'tog-minordefault' => 'Жарыяланбасча бүт оңдоолорду майда деп белгилөө',
+'tog-previewontop' => 'Ð\9eңдоо Ñ\82еÑ\80езеÑ\81инин Ð°Ð»Ð´Ñ\8bна Ð°Ð»Ð´Ñ\8bн Ð°Ð»Ð° ÐºÓ©Ñ\80Ñ\81Ó©Ñ\82үүнү Ð¶Ð°Ð¹Ð³аштыруу',
+'tog-previewonfirst' => 'Оңдоого өтөөрдөн мурда алдын ала көрсөтүү',
 'tog-nocache' => 'Барактарды кэштөөнү браузерден өчүрүү',
 'tog-enotifwatchlistpages' => 'Көзөмөл тизмемдеги барак же файл өзгөртүлгөндө мага эл. почта аркылуу билдирүү',
-'tog-enotifusertalkpages' => 'ТалкÑ\83Ñ\83лоо барагым өзгөртүлгөндө мага эл. почта аркылуу билдирүү',
-'tog-enotifminoredits' => 'Барак же файлдардын майда өзгөртүлөрүн да мага эл. почта аркылуу билдирүү',
-'tog-enotifrevealaddr' => 'Ð\9aабаÑ\80дандÑ\8bÑ\80Ñ\83Ñ\83 Ð±Ð¸Ð»Ð´Ð¸Ñ\80үүлөÑ\80үндө Ð¼ÐµÐ½Ð¸Ð½ Ñ\8dл. Ð¿Ð¾Ñ\87Ñ\82а дарегимди көрсөтүү',
-'tog-shownumberswatching' => 'Ð\9aөзөмөлдөп Ð¶Ð°Ñ\82кан ÐºÐ°Ñ\82Ñ\8bÑ\88уучулардын санын көрсөтүү',
-'tog-oldsig' => 'Ð\9aезекÑ\82еги кол тамга:',
-'tog-fancysig' => 'Ð\9aол Ñ\82амганÑ\8bн Ó©Ð· Ñ\83ики-белгиÑ\81и (автоматтык шилтемесиз)',
-'tog-showjumplinks' => '«өÑ\82үү» Ð´ÐµÐ³ÐµÐ½ Ð¶Ð°Ñ\80дамÑ\87Ñ\8b Ñ\88илÑ\82емелеÑ\80ди ÐºÒ¯Ð¹Ð³Ò¯Ð·Ò¯Ò¯',
+'tog-enotifusertalkpages' => 'Ð\91ааÑ\80лаÑ\88Ñ\83Ñ\83 барагым өзгөртүлгөндө мага эл. почта аркылуу билдирүү',
+'tog-enotifminoredits' => 'Барак же файлдардын майда өзгөртүүлөрүн дагы мага эл. почта аркылуу билдирүү',
+'tog-enotifrevealaddr' => 'Ð\9aабаÑ\80ландÑ\8bÑ\80Ñ\83Ñ\83 Ð±Ð¸Ð»Ð´Ð¸Ñ\80үүлөÑ\80үндө Ð¼ÐµÐ½Ð¸Ð½ Ñ\8dлекÑ\82Ñ\80ондÑ\83к дарегимди көрсөтүү',
+'tog-shownumberswatching' => 'Ð\9aөзөмөлдөп Ð¶Ð°Ñ\82кан ÐºÐ¾Ð»Ð´Ð¾Ð½уучулардын санын көрсөтүү',
+'tog-oldsig' => 'УÑ\87Ñ\83Ñ\80дагÑ\8b кол тамга:',
+'tog-fancysig' => 'Ð\9aол Ñ\82амгамдÑ\8bн Ñ\83ики-белгиÑ\81и Ð³Ð°Ð½Ð° (автоматтык шилтемесиз)',
+'tog-showjumplinks' => '«өÑ\82үү» Ð´ÐµÐ³ÐµÐ½ Ð¶Ð°Ñ\80дамÑ\87Ñ\8b Ñ\88илÑ\82емелеÑ\80ди Ð¶Ð°Ð½Ð´Ñ\8bÑ\80Ñ\83Ñ\83',
 'tog-uselivepreview' => 'Тез алдын ала көрсөтүүнү колдонуу (JavaScript талап кылынат) (эксперименталдык)',
-'tog-forceeditsummary' => 'Оңдоо баяндоосунун талаасы бош болгон кезинде мага алдын ала эскертүү',
+'tog-forceeditsummary' => 'Оңдоо баяндоосунун көзөнөгү бош калган кезинде мага эскертүү',
 'tog-watchlisthideown' => 'Көзөмөлдөө тизмесинен менин оңдоолорумду жашыруу',
 'tog-watchlisthidebots' => 'Көзөмөлдөө тизмесинен боттун оңдоолорун жашыруу',
 'tog-watchlisthideminor' => 'Көзөмөлдөө тизмесинен майда оңдоолорду жашыруу',
 'tog-watchlisthideliu' => 'Көзөмөлдөө тизмесинен системага кирген катышуучулардын оңдоолорун жашыруу',
 'tog-watchlisthideanons' => 'Көзөмөлдөө тизмесинен анонимдүү катышуучулардын оңдоолорун жашыруу',
-'tog-watchlisthidepatrolled' => 'Ð\9aөзөмөлдөө Ñ\82измеÑ\81инен Ð¿Ð°Ñ\82Ñ\80Ñ\83лдалган оңдоолорду жашыруу',
-'tog-ccmeonemails' => 'Ð\9cен Ð±Ð°Ñ\88ка ÐºÐ°Ñ\82Ñ\8bÑ\88Ñ\83Ñ\83Ñ\87Ñ\83лаÑ\80га Ð¶Ó©Ð½Ó©Ñ\82үп Ð¶Ð°Ñ\82кан ÐºÐ°Ñ\82Ñ\82аÑ\80дÑ\8bн ÐºÓ©Ñ\87Ò¯Ñ\80мөлөÑ\80үн Ð¼Ð°Ð³Ð° жөнөтүү',
-'tog-diffonly' => 'Эки Ð²ÐµÑ\80Ñ\81иÑ\8fны салыштыруунун астынан барактын мазмунун көрсөтпөө',
-'tog-showhiddencats' => 'Ð\96аÑ\88Ñ\8bÑ\80Ñ\8bлган категорияларды көрсөтүү',
+'tog-watchlisthidepatrolled' => 'Ð\9aөзөмөлдөө Ñ\82измеÑ\81инен ÐºÒ¯Ð·Ó©Ñ\82Ñ\82өлгөн оңдоолорду жашыруу',
+'tog-ccmeonemails' => 'Ð\91аÑ\88ка ÐºÐ¾Ð»Ð´Ð¾Ð½Ñ\83Ñ\83Ñ\87Ñ\83лаÑ\80га Ð¶Ó©Ð½Ó©Ñ\82үп Ð¶Ð°Ñ\82кан ÐºÐ°Ñ\82Ñ\82аÑ\80Ñ\8bмдÑ\8bн ÐºÓ©Ñ\87Ò¯Ñ\80мөлөÑ\80үн Ð´Ð°Ñ\80егиме жөнөтүү',
+'tog-diffonly' => 'Ð\90йÑ\8bÑ\80малаÑ\80ды салыштыруунун астынан барактын мазмунун көрсөтпөө',
+'tog-showhiddencats' => 'Ð\96аÑ\88Ñ\8bÑ\80Ñ\83Ñ\83н категорияларды көрсөтүү',
 'tog-norollbackdiff' => 'Кетенчиктөөнү аткаргандан кийин версиялардын айырмасын көрсөтпөө',
+'tog-useeditwarning' => 'Барактан өзгөртүүлөрүмдү сактабастан чыгып баратканымда эскертүү',
 
 'underline-always' => 'Дайыма',
 'underline-never' => 'Эч качан',
@@ -137,16 +141,17 @@ $messages = array(
 'oct' => 'Окт',
 'nov' => 'Ноя',
 'dec' => 'Дек',
+'january-date' => 'Январь (Үчтүн айы) $1',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Категория|Категориялар}}',
-'category_header' => '"$1" категориядагы барактар',
+'category_header' => '"$1" категориясындагы барактар',
 'subcategories' => 'Ички категориялар',
 'category-media-header' => '"$1" категориясындагы медиафайлдар',
-'category-empty' => "''Бул категорияда азыр эч бир барак же файл жок.''",
-'hidden-categories' => '{{PLURAL:$1|Ð\96аÑ\88Ñ\8bÑ\80Ñ\8bлган ÐºÐ°Ñ\82егоÑ\80иÑ\8f\96аÑ\88Ñ\8bÑ\80Ñ\8bлган категориялар}}',
-'hidden-category-category' => 'Ð\96аÑ\88Ñ\8bÑ\80Ñ\8bлган категориялар',
-'category-subcat-count' => '{{PLURAL:$2|Ð\91Ñ\83л ÐºÐ°Ñ\82егоÑ\80иÑ\8f Ñ\82өмөнкү ÐºÓ©Ð¼Ó©Ðº ÐºÐ°Ñ\82егоÑ\80иÑ\8fнÑ\8b ÐºÐ°Ð¼Ñ\82Ñ\8bйÑ\82.|Ð\91Ñ\83л ÐºÐ°Ñ\82егоÑ\80иÑ\8fда Ð¶Ð°Ð»Ð¿Ñ\8b $2, {{PLURAL:$1|көмөк ÐºÐ°Ñ\82егоÑ\80иÑ\8f|$1 ÐºÓ©Ð¼Ó©Ðº ÐºÐ°Ñ\82егоÑ\80иÑ\8f}} Ð±Ð°Ñ\80.}}',
+'category-empty' => "''Бул категорияда азырынча эч бир барак же файл жок.''",
+'hidden-categories' => '{{PLURAL:$1|Ð\96аÑ\88Ñ\8bÑ\80Ñ\83Ñ\83н ÐºÐ°Ñ\82егоÑ\80иÑ\8f\96аÑ\88Ñ\8bÑ\80Ñ\83Ñ\83н категориялар}}',
+'hidden-category-category' => 'Ð\96аÑ\88Ñ\8bÑ\80Ñ\83Ñ\83н категориялар',
+'category-subcat-count' => '{{PLURAL:$2|Ð\91Ñ\83л ÐºÐ°Ñ\82егоÑ\80иÑ\8f Ñ\82өмөнкү Ð¸Ñ\87ки ÐºÐ°Ñ\82егоÑ\80иÑ\8fнÑ\8b Ð³Ð°Ð½Ð° ÐºÐ°Ð¼Ñ\82Ñ\8bйÑ\82.|Ð\91Ñ\83л ÐºÐ°Ñ\82егоÑ\80иÑ\8fда {{PLURAL:$1|иÑ\87ки ÐºÐ°Ñ\82егоÑ\80иÑ\8f|$1 Ð¸Ñ\87ки ÐºÐ°Ñ\82егоÑ\80иÑ\8fлаÑ\80}} Ð±Ð°Ñ\80, $2 Ð¸Ñ\87инен.}}',
 'category-subcat-count-limited' => 'Бул категорияда {{PLURAL:$1|$1|$1|$1}} ички категория бар.',
 'category-article-count' => '{{PLURAL:$2|Бул категория төмөнкү баракты камтыйт.|Бул категорияда жалпы $2, төмөнкү {{PLURAL:$1|барак|$1 барак}} бар.}}',
 'category-article-count-limited' => 'Бул категорияда {{PLURAL:$1|$1 барак}} бар.',
@@ -162,8 +167,9 @@ $messages = array(
 'newwindow' => '(жаңы терезеде ачылат)',
 'cancel' => 'Жокко чыгаруу',
 'moredotdotdot' => 'Көбүрөөк...',
+'morenotlisted' => 'Бөлөк эч нерсе жок...',
 'mypage' => 'Барак',
-'mytalk' => 'Талкуулоо',
+'mytalk' => 'Талкуу',
 'anontalk' => 'Бул IP-дарек үчүн талкуулоо',
 'navigation' => 'Навигация',
 'and' => '&#32;жана',
@@ -174,19 +180,19 @@ $messages = array(
 'qbedit' => 'Оңдоо',
 'qbpageoptions' => 'Бул барак',
 'qbmyoptions' => 'Барактарым',
-'qbspecialpages' => 'Кызмат барактары',
+'qbspecialpages' => 'Кызматтык барактар',
 'faq' => 'КБС',
 'faqpage' => 'Project:КБС',
 
 # Vector skin
-'vector-action-addsection' => 'Тема кошумчалоо',
+'vector-action-addsection' => 'Тема кошуу',
 'vector-action-delete' => 'Өчүрүү',
-'vector-action-move' => 'Атын өзгөртүү',
+'vector-action-move' => 'Аталышын өзгөртүү',
 'vector-action-protect' => 'Коргоо',
 'vector-action-undelete' => 'Калыбына келтирүү',
 'vector-action-unprotect' => 'Коргоону өзгөртүү',
-'vector-simplesearch-preference' => 'Жөнөкөйлөнгөн издөө сабын күйгүзүү («Вектор» темасы гана)',
-'vector-view-create' => 'Ð\91аÑ\88Ñ\82а',
+'vector-simplesearch-preference' => 'Жөнөкөйлөтүлгөн издөө сабын жандыруу («Вектор» темасында гана)',
+'vector-view-create' => 'Түзүү',
 'vector-view-edit' => 'Оңдоо',
 'vector-view-history' => 'Тарыхын кароо',
 'vector-view-view' => 'Окуу',
@@ -206,19 +212,20 @@ $messages = array(
 'searcharticle' => 'Алга',
 'history' => 'Барактын тарыхы',
 'history_short' => 'Тарыхы',
-'updatedmarker' => 'менин Ð°ÐºÑ\8bÑ\80кÑ\8b ÐºÐµÐ»үүмдөн кийин жаңыртылган',
+'updatedmarker' => 'менин Ð°ÐºÑ\8bÑ\80кÑ\8b Ð¶Ð¾Ð»Ñ\83 ÐºÐ¸Ñ\80үүмдөн кийин жаңыртылган',
 'printableversion' => 'Басма үлгүсү',
 'permalink' => 'Туруктуу шилтеме',
 'print' => 'Басып чыгаруу',
 'view' => 'Кароо',
 'edit' => 'Оңдоо',
-'create' => 'Ð\91аÑ\88Ñ\82а',
+'create' => 'Түзүү',
 'editthispage' => 'Бул баракты оңдоо',
 'create-this-page' => 'Бул баракты түзүү',
 'delete' => 'Өчүрүү',
 'deletethispage' => 'Бул баракты өчүрүү',
-'undelete_short' => '$1 {{PLURAL:$1|оңдоону}} калыбына келтирүү',
-'viewdeleted_short' => '{{PLURAL:$1|өчүрүлгөн оңдоону}} көрүү',
+'undeletethispage' => 'Баракты калыбына келтирүү',
+'undelete_short' => '$1 {{PLURAL:$1|оңдоону|$1 оңдоолорду}} калыбына келтирүү',
+'viewdeleted_short' => 'Өчүрүлгөн {{PLURAL:$1|оңдоону|$1 оңдоолорду}} көрүү',
 'protect' => 'Коргоо',
 'protect_change' => 'өзгөртүү',
 'protectthispage' => 'Бул баракты коргоо',
@@ -226,25 +233,25 @@ $messages = array(
 'unprotectthispage' => 'Бул барактын коргоосун өзгөртүү',
 'newpage' => 'Жаңы барак',
 'talkpage' => 'Бул баракты талкууга алуу',
-'talkpagelinktext' => 'талкуулоо',
-'specialpage' => 'Кызмат барагы',
+'talkpagelinktext' => 'Талкуулоо',
+'specialpage' => 'Кызматтык барак',
 'personaltools' => 'Жеке аспаптар',
 'postcomment' => 'Жаңы бөлүм',
 'articlepage' => 'Макаланы кароо',
-'talk' => 'Талкуулоо',
+'talk' => 'Талкуу',
 'views' => 'Көрсөтүүлөр',
 'toolbox' => 'Аспаптар',
 'userpage' => 'Катышуучунун барагын кароо',
 'projectpage' => 'Долбоор барагын кароо',
 'imagepage' => 'Файлдын барагын кароо',
-'mediawikipage' => 'Ð\9aабаÑ\80дÑ\8bн  барагын кароо',
-'templatepage' => 'ШаблондÑ\83н барагын кароо',
+'mediawikipage' => 'Ð\91илдиÑ\80Ò¯Ò¯Ð½Ò¯н  барагын кароо',
+'templatepage' => 'Ð\9aалÑ\8bпÑ\82Ñ\8bн барагын кароо',
 'viewhelppage' => 'Жардам алуу',
-'categorypage' => 'Категория барагын көрсөтүү',
-'viewtalkpage' => 'ТалкÑ\83Ñ\83лоонÑ\83 ÐºÐ°Ñ\80оо',
+'categorypage' => 'Категория барагын кароо',
+'viewtalkpage' => 'Талкууну кароо',
 'otherlanguages' => 'Башка тилдерде',
-'redirectedfrom' => '($1 Ð±Ð°Ñ\80агÑ\8bндан Ð±Ð°Ð³Ñ\8bÑ\82Ñ\82алдÑ\8b)',
-'redirectpagesub' => 'Ð\90йдама барак',
+'redirectedfrom' => '($1 барагынан багытталды)',
+'redirectpagesub' => 'Ð\91агÑ\8bÑ\82Ñ\82ама барак',
 'lastmodifiedat' => 'Бул барак соңку жолу $1, $2 өзгөртүлгөн.',
 'viewcount' => 'Бул барак {{PLURAL:$1|$1|$1}} жолу ачылды.',
 'protectedpage' => 'Корголгон барак',
@@ -253,52 +260,53 @@ $messages = array(
 'jumptosearch' => 'издөө',
 'view-pool-error' => 'Кечириңиз, азыркы учурда серверлер ашыра жүктөлгөн болуп турат.
 Өтө көп колдонуучулар бул баракты көрүүгө аракет кылып жатышат.
\91Ñ\83л Ð±Ð°Ñ\80акка ÐºÐ°Ð¹Ñ\82а ÐºÐ¸Ñ\80Ñ\8dÑ\8dÑ\80 Ð°Ð»Ð´Ñ\8bнда ÐºÐ¸Ñ\87ине Ð±Ð¸Ñ\80 Ñ\83бакÑ\8bÑ\82 ÐºÒ¯Ñ\82Ó© Ñ\82Ñ\83Ñ\80Ñ\83Ò£Ñ\83з.
\91Ñ\83л Ð±Ð°Ñ\80акка Ð±Ð¸Ñ\80 Ð°Ð·Ð´Ð°Ð½ Ñ\81оң ÐºÐ°Ð¹Ñ\80а ÐºÐ°Ð¹Ñ\80Ñ\8bлÑ\8bп ÐºÓ©Ñ\80Ò¯Ò£Ò¯з.
 
 $1',
-'pool-timeout' => 'Бөгөттөөнү күтүү убакытысы аяктады',
-'pool-queuefull' => 'Суроо жыйнагыч толук',
+'pool-timeout' => 'Бөгөттөөнүн күтүү убактысы аяктады',
+'pool-queuefull' => 'Суроо жыйнагыч толгон',
 'pool-errorunknown' => 'Белгисиз ката',
 
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
-'aboutsite' => '{{SITENAME}} жөнүндө',
-'aboutpage' => 'Project:Долбоор жөнүндө',
-'copyright' => '$1 лицензиясына ылайк жеткиликтүү мазмун.',
+'aboutsite' => '{{SITENAME}} тууралуу',
+'aboutpage' => 'Project:Долбоор тууралуу',
+'copyright' => '$1 лицензиясына ылайык жеткиликтүү мазмун.',
 'copyrightpage' => '{{ns:project}}:Автордук укуктар',
 'currentevents' => 'Учурдагы окуялар',
 'currentevents-url' => 'Project:Учурдагы окуялар',
 'disclaimers' => 'Жоопкерчиликтен баш тартуу',
 'disclaimerpage' => 'Project:Жоопкерчиликтен баш тартуу',
-'edithelp' => 'Өзгөртүү боюнча жардам',
-'edithelppage' => 'Help:Редакторлоо',
+'edithelp' => 'Оңдоп-түзөөгө жардам',
 'helppage' => 'Help:Мазмуну',
-'mainpage' => 'Башбарак',
-'mainpage-description' => 'Башбарак',
+'mainpage' => 'Баш барак',
+'mainpage-description' => 'Баш барак',
 'policy-url' => 'Project:Эрежелер',
 'portal' => 'Жамаат порталы',
 'portal-url' => 'Project:Жамаат порталы',
-'privacy' => 'Ð\96аÑ\88Ñ\8bÑ\80Ñ\8bндуулук саясаты',
-'privacypage' => 'Project:Ð\96аÑ\88Ñ\8bÑ\80Ñ\8bндуулук саясаты',
+'privacy' => 'Ð\9aÑ\83пÑ\83Ñ\8fлуулук саясаты',
+'privacypage' => 'Project:Ð\9aÑ\83пÑ\83Ñ\8fлуулук саясаты',
 
 'badaccess' => 'Кирүү катасы',
-'badaccess-group0' => 'Сиз сураган аракетти аткарала албайсыз.',
+'badaccess-group0' => 'Сиз сураган аракетти аткара албайсыз.',
 
 'versionrequired' => "MediaWiki'нин $1 версиясы керек",
+'versionrequiredtext' => 'Бул барак менен иштөө үчүн MediaWiki $1 версиясы талап кылынат. Кара.[[Special:Version|version page]].',
 
 'ok' => 'OK',
 'retrievedfrom' => '"$1" булагынан алынды',
 'youhavenewmessages' => 'Сизге $1 ($2) бар.',
 'newmessageslink' => 'жаңы билдирүүлөр',
 'newmessagesdifflink' => 'соңку өзгөрүү',
+'youhavenewmessagesfromusers' => 'Сиз {{PLURAL:$3|колдонуучудан|$3 колдонуучу}} $1 алдыңыз ($2).',
 'youhavenewmessagesmanyusers' => 'Көп колдонуучулардан сиз $1 алдыңыз ($2).',
-'newmessageslinkplural' => '{{PLURAL:$1|жаңы билдирүү}}',
+'newmessageslinkplural' => 'жаңы {{PLURAL:$1|билдирүү| билдирүүлөр}}',
 'newmessagesdifflinkplural' => 'соңку {{PLURAL:$1|өзгөртүү|өзгөртүүлөр}}',
 'youhavenewmessagesmulti' => 'Сизге $1 жаңы кат бар',
 'editsection' => 'оңдоо',
 'editold' => 'оңдоо',
-'viewsourceold' => 'баÑ\88Ñ\82апкÑ\8b ÐºÐ¾Ð´Ñ\83н ÐºÓ©Ñ\80Ò¯Ò¯',
+'viewsourceold' => 'кайнаÑ\80Ñ\8bн ÐºÐ°Ñ\80оо',
 'editlink' => 'оңдоо',
-'viewsourcelink' => 'Ð\9aайнарды кара',
+'viewsourcelink' => 'кайнарды кара',
 'editsectionhint' => '$1 бөлүмүн оңдоо',
 'toc' => 'Мазмуну',
 'showtoc' => 'көрсөтүү',
@@ -314,15 +322,15 @@ $1',
 'page-rss-feed' => '«$1» — RSS-лента',
 'page-atom-feed' => '«$1» — Atom-лента',
 'red-link-title' => '$1 (мындай барак жок)',
-'sort-descending' => 'Кемүү боюнча сорттоо',
-'sort-ascending' => 'Өсүү боюнча сорттоо',
+'sort-descending' => 'Кемүү боюнча иргөө',
+'sort-ascending' => 'Өсүү боюнча иргөө',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'Макала',
-'nstab-user' => 'Ð\9aаÑ\82Ñ\8bÑ\88уучу',
+'nstab-user' => 'Ð\9aолдонуучу',
 'nstab-media' => 'Мультимедиа',
-'nstab-special' => 'Кызмат барагы',
-'nstab-project' => 'Долбоордун барагы',
+'nstab-special' => 'Кызматтык барак',
+'nstab-project' => 'Долбоор барагы',
 'nstab-image' => 'Файл',
 'nstab-mediawiki' => 'Билдирүү',
 'nstab-template' => 'Калып',
@@ -331,7 +339,7 @@ $1',
 
 # Main script and global functions
 'nosuchaction' => 'Мындай аракет жок',
-'nosuchspecialpage' => 'Мындай кызмат барагы жок',
+'nosuchspecialpage' => 'Мындай кызматтык барак жок',
 
 # General errors
 'error' => 'Ката',
@@ -343,15 +351,15 @@ $1',
 «<code>$2</code>» функциясынан пайда болду.
 Маалымат базасы «<samp>$3: $4</samp>» катасын кайтарды.',
 'laggedslavemode' => "'''Эскертүү:''' баракта акыркы жаңыртуулар жок болуп калышы мүмкүн.",
-'readonly' => 'Ð\9cаалÑ\8bмаÑ\82 Ð±Ð°Ð·Ð°Ñ\81Ñ\8b ÐºÐ°Ð¼Ð°Ð»Ð°Ð½Ð³Ð°н',
-'enterlockreason' => 'Бөгөттөө себебин жана анын мөөнөтүн көрсөтүңүз',
+'readonly' => 'Ð\9cаалÑ\8bмаÑ\82 Ð±Ð°Ð·Ð°Ñ\81Ñ\8b Ð±Ó©Ð³Ó©Ñ\82Ñ\82өлгөн',
+'enterlockreason' => 'Бөгөттөөнүн себебин жана мөөнөтүн көрсөтүңүз',
 'missing-article' => 'Табылууга тийиш «$1» $2 деп аталган баракта текст маалыматтар базасында табылган жок.
 
 Бул сыяктуу абал өчүрүлгөн барактын өзгөрүүлөрдүн тарыхына эски шилтеме менен өткөндө учурайт.
 
 Эгерде башка себеби бар болсо, анда Сиз программалык жабдууда ката таптыңыз. Кичи пейилдикке, ушул URL көрсөтүп [[Special:ListUsers/sysop|администраторлордун]] бирине кабарлап коюңуз.',
 'missingarticle-rev' => '(версия#: $1)',
-'missingarticle-diff' => '(айÑ\8bÑ\80маÑ\87Ñ\8bлÑ\8bк: $1, $2)',
+'missingarticle-diff' => '(айÑ\8bÑ\80маÑ\81Ñ\8b: $1, $2)',
 'internalerror' => 'Ички ката',
 'internalerror_info' => 'Ички ката: $1',
 'fileappenderrorread' => 'Аягына кошуу үчүн «$1» файлы ачылбады.',
@@ -360,25 +368,27 @@ $1',
 'filerenameerror' => '«$1» файлын бул «$2» атка өзгөртүүгө мүмкүн эмес.',
 'filedeleteerror' => '"$1" файлын өчүрүүгө болбоду.',
 'directorycreateerror' => '"$1" каталогун түзүүгө болбоду.',
-'filenotfound' => '"$1" файлын табууга мүмкүн эмес.',
+'filenotfound' => '"$1" файлын табуу мүмкүн эмес.',
 'fileexistserror' => '"$1" файлына жазууга болбоду: Мурдатан бар.',
 'unexpected' => 'Күтүлбөгөн маани: "$1"="$2".',
 'formerror' => 'Ката: Форманы жөнөтүүгө болбоду.',
-'badarticleerror' => 'Бул аракетти бул баракта аткарууга болбой.',
+'badarticleerror' => 'Бул аракетти бул баракта аткарууга болбойт.',
 'cannotdelete-title' => '"$1" барагын өчүрүүгө болбойт',
-'badtitle' => 'ЫкÑ\81Ñ\8bз аталыш',
-'badtitletext' => 'Талап кылынган барак аталышы туура эмес, бош, же тилдер-аралык же уики-аралык аталышы туура эмес шилтемеленген.
+'badtitle' => 'ТÑ\83Ñ\83Ñ\80а Ñ\8dмеÑ\81 аталыш',
+'badtitletext' => 'Талап кылынган барактын аталышы туура эмес, бош, же тилдер-аралык же уики-аралык аталышы туура эмес шилтемеленген.
 Балким аталышта колдонулбай турган бир же андан көп белги камтылган.',
 'wrong_wfQuery_params' => 'wfQuery() функциясы үчүн жарабай турган параметрлер<br />
 Функция: $1<br />
 Суроо: $2',
-'viewsource' => 'Кароо',
+'viewsource' => 'Кайнарын кароо',
 'viewsource-title' => '$1 барагынын баштапкы кодун көрүү',
 'actionthrottled' => 'Аралык боюнча чектөө',
 'viewsourcetext' => 'Сиз бул барактын баштапкы кодун көрүп жана көчүрүп алсаңыз болот:',
 'sqlhidden' => '(SQL суроо жашырылган)',
-'ns-specialprotected' => 'Кызмат барактарын оңдоого мүмкүн эмес.',
-'exception-nologin' => 'Сиз система кирген жоксуз',
+'ns-specialprotected' => 'Кызматык барактарды оңдоого мүмкүн эмес.',
+'invalidtitle-unknownnamespace' => 'Туура эмес баш сөз',
+'exception-nologin' => 'Сиз системге кирген жоксуз',
+'exception-nologin-text' => 'Бул барак же аракет сиздин колдонуучу атыңыз менен системге киришиңизди талап кылат.',
 
 # Virus scanner
 'virus-badscanner' => "Ырастоо катасы. Белгисиз вирус сканери: ''$1''",
@@ -386,72 +396,125 @@ $1',
 'virus-unknownscanner' => 'белгисиз антивирус:',
 
 # Login and logout pages
+'logouttext' => "'''Азыр сиз эсебиңизден тышкарысыз. '''
+Сиз {{SITENAME}} аноним катары иштей берсеңиз болот,же ошол же башка ат менен <span class='plainlinks'>[$1 кайра кириңиз]</span>. Кээ бир барактар интернет серепчинин кешин жаңыртмайын системага киргендей эле көрүнө берээрин эске алыңыз.",
 'welcomeuser' => 'Кош келиңиз, $1!',
 'welcomecreation-msg' => 'Сиздин эсеп жазууңуз жаратылды.
 {{SITENAME}} сайтынын [[Special:Preferences|ырастоолорун]] өзгөртүүнү унутпаңыз.',
-'yourname' => 'Эсеп жазуусунун аты:',
+'yourname' => 'Колдонуучу аты:',
+'userlogin-yourname' => 'Колдонуучунун аты',
+'userlogin-yourname-ph' => 'Колдонуучу атыңызды териңиз',
 'yourpassword' => 'Сырсөз:',
-'yourpasswordagain' => 'Сырсөздү кайта терүү:',
-'remembermypassword' => 'Бул браузерде менин эсеп жазуумду ($1 {{PLURAL:$1|күнгө}} чейин сактоо)',
+'userlogin-yourpassword' => 'Сырсөз',
+'userlogin-yourpassword-ph' => 'Сырсөзүңүздү териңиз',
+'createacct-yourpassword-ph' => 'Сырсөздү териңиз',
+'yourpasswordagain' => 'Сырсөздү кайра терүү:',
+'createacct-yourpasswordagain' => 'Сырсөздү тастыктаңыз',
+'createacct-yourpasswordagain-ph' => 'Сырсөздү кайра киргизиңиз',
+'remembermypassword' => 'Бул браузерде колдонуучу атымды ($1 {{PLURAL:$1|күнгө}} чейин сактоо)',
+'userlogin-remembermypassword' => 'Мени системге кирген боюнча калтыр',
+'userlogin-signwithsecure' => 'Коопсуз байланышты колдонуу',
 'securelogin-stick-https' => 'Киргенден кийин HTTPS аркылуу туташтырууну улантуу',
-'yourdomainname' => 'Сиздин домен',
+'yourdomainname' => 'Сиздин домен:',
 'password-change-forbidden' => 'Сиз бул уикиден сырсөзүңүздү өзгөртө албайсыз.',
+'externaldberror' => 'Маалымат базасында ката кетти же сизге сырткы эсебиңизди жаңыртууга уруксат берилген эмес.',
 'login' => 'Кирүү',
-'nav-login-createaccount' => 'Ð\9aиÑ\80Ò¯Ò¯ / Ð\9aаÑ\82Ñ\82оо',
+'nav-login-createaccount' => 'Ð\9aиÑ\80Ò¯Ò¯ / Ð\9aаÑ\82Ñ\82алÑ\83Ñ\83',
 'loginprompt' => '{{SITENAME}} сайтына кириш үчүн сиз «кукилерге» уруксат беришиңиз керек.',
-'userlogin' => 'Ð\9aиÑ\80Ò¯Ò¯ / Ð\9aаÑ\82Ñ\82оо',
+'userlogin' => 'Ð\9aиÑ\80Ò¯Ò¯ / Ð\9aаÑ\82Ñ\82алÑ\83Ñ\83',
 'userloginnocreate' => 'Кирүү',
-'logout' => 'Сеансты аяктоо',
-'userlogout' => 'Сеансты аяктоо',
-'notloggedin' => 'Сиз системага кире элексиз',
-'nologin' => 'Эсеп жазууңуз жокпу? $1.',
-'nologinlink' => 'Эсеп жазуусун жаратуу',
-'createaccount' => 'Эсеп жазуусун жаратуу',
+'logout' => 'Чыгуу',
+'userlogout' => 'Чыгуу',
+'notloggedin' => 'Сиз системге кире элексиз',
+'userlogin-noaccount' => 'Эсеп жазууңуз жокпу?',
+'userlogin-joinproject' => ' {{SITENAME}} кошулуңуз',
+'nologin' => 'Катталган эмессизби? $1.',
+'nologinlink' => 'Катталуу',
+'createaccount' => 'Катталуу',
 'gotaccount' => "Катталгансызбы? '''$1'''.",
 'gotaccountlink' => 'Кирүү',
-'userlogin-resetlink' => 'Кирүүчү маалыматарыңызды унутуп калдыңызбы?',
-'createaccountmail' => 'Электрондук дарек боюнча',
+'userlogin-resetlink' => 'Кирүүчү маалыматарыңызды эсиңизден чыгардыңызбы?',
+'userlogin-resetpassword-link' => 'Сырсөздү алмаштыруу',
+'helplogin-url' => 'Help:Эсепке кирүү',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Системге кирүүгө жардам]]',
+'createacct-join' => 'Маалыматыңызды төмөнгө териңиз.',
+'createacct-emailrequired' => 'Эмейл дарек',
+'createacct-emailoptional' => 'Эмейл дарек (милдеттүү эмес)',
+'createacct-email-ph' => 'Эмейл дарегиңизди киргизиңиз',
+'createaccountmail' => 'Убактылуу түзүлгөн сырсөздү колдон жана аны көрсөтүлгөн эмейл дарекке жөнөт',
+'createacct-realname' => 'Чыныгы ысымы (милдеттүү эмес)',
 'createaccountreason' => 'Себеби:',
-'badretype' => 'Сиз киргизген сырсөздөр дал келишпейт',
-'userexists' => 'Сиз тандаган катышуучунун аты бош эмес.
-Башка атты тандаңыз.',
+'createacct-reason' => 'Себеп',
+'createacct-reason-ph' => 'Эмне үчүн башка эсеп жазуу түзүп жатасыз',
+'createacct-captcha' => 'Коопсуздук текшерүүсү',
+'createacct-imgcaptcha-ph' => 'Жогорудагы текстти териңиз',
+'createacct-submit' => 'Катталыңыз',
+'createacct-benefit-heading' => '{{SITENAME}} сиз сыяктуу кишилер тарабынан түзүлгөн.',
+'createacct-benefit-body1' => '{{PLURAL:$1|оңдоо|оңдоолор}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|барак|барактар}}',
+'createacct-benefit-body3' => 'акыркы {{PLURAL:$1|салым|салымдар}}',
+'badretype' => 'Сиз терген сырсөздөр дал келишпейт',
+'userexists' => 'Сиз тандаган колдонуучу ат бош эмес.
+Сураныч, башка атты тандаңыз.',
 'loginerror' => 'Кирүү катасы',
-'createaccounterror' => '$1 эсеп жазуусун жаратууга мүмкүн эмес',
+'createacct-error' => 'Катталууда ката кетти',
+'createaccounterror' => '$1 эсеп жазуусун түзүү мүмкүн эмес',
+'nocookiesnew' => 'Колдонуучунун эсеби түзүлгөн, бирок сиз аны менен али кире элексиз. {{SITENAME}} колдонуучу кирүүсү үчүн куки колдонот. Сиздин кукилер өчүрүлгөн.
+Аларды жандырып, анан жаңы колдонуучу атыңыз жана сырсөзүңүз менен кириңиз.',
 'nocookieslogin' => '{{SITENAME}} сайты катышуучуларды киргизүү үчүн кукилерди колдонот.
-Алар сизде өчүрүлүп турат.
-Аларды күйгүзүп анан кайта аракет кылып көрүңүз.',
-'noname' => 'Сиз анык катышуучунун атын көрсөткөн жоксуз.',
+Сиздики азыр өчүп турат.
+Сураныч, аларды күйгүзүп анан кайра аракет кылып көрүңүз.',
+'nocookiesfornew' => 'Биз кайрылуунун кайнарын тактай албагандыктан катышуучунун эсебин түзүлгөн жок.
+Кукилериңиз жандырылгандыгын текшериңиз, баракты жаңыртып туруп, кайрадан аракет кылыңыз.',
+'noname' => 'Сиз колдонуучунун анык атын көрсөткөн жоксуз.',
 'loginsuccesstitle' => 'Сиз ийгиликтүү кирдиңиз',
-'loginsuccess' => "'''Сиз эми {{SITENAME}} сайтына \"\$1\" болуп кирдиңиз.'''",
-'nouserspecified' => 'Сиз катышуучу атын көрсөтүшүңүз керек.',
-'login-userblocked' => 'Бул катышуучу бөгөттөлгөн. Системага кирүүгө уруксат жок.',
-'wrongpassword' => 'Ката сырсөз киргизилди. Кайтадан аракет кылып көрүңүз.',
-'wrongpasswordempty' => 'Сырсөз киргизилген жок. Кайтадан аракет кылып көрүңүз.',
-'passwordtooshort' => 'Сырсөз {{PLURAL:$1|1 символдон}} кем эмес болуш керек.',
-'password-name-match' => 'Сиздин сырсөзүңүз катышуучу атыңыздан айырмаланыш керек.',
-'password-login-forbidden' => 'Бул катышуучунун атын жана сырсөзүн колдонууга тыюу салынган.',
+'loginsuccess' => "'''Сиз азыр {{SITENAME}} сайтына \"\$1\" болуп кирдиңиз.'''",
+'nosuchuser' => '"$1" аттуу колдонуучу катталган эмес.
+Колдонуучун аты регистирди айырмалайт.
+Катасын текшериңиз же [[Special:UserLogin/signup|жаңы эсеп түзүү]]',
+'nosuchusershort' => '"$1" аттуу колдонуучу жок.
+Жазылышын текшериңиз.',
+'nouserspecified' => 'Сиз колдонуучу атын көрсөтүшүңүз керек.',
+'login-userblocked' => 'Бул колдонуучу бөгөттөлгөн. Системага кирүүгө уруксат жок.',
+'wrongpassword' => 'Ката сырсөз киргизилди. Кайрадан аракет кылып көрүңүз.',
+'wrongpasswordempty' => 'Сырсөз киргизилген жок. Кайрадан аракет кылып көрүңүз.',
+'passwordtooshort' => 'Сырсөз {{PLURAL:$1|1 символдон}} кем эмес болушу керек.',
+'password-name-match' => 'Сиздин сырсөзүңүз колдонуучу атыңыздан айырмаланышы керек.',
+'password-login-forbidden' => 'Бул колдонуучунун атын жана сырсөзүн колдонууга тыюу салынган.',
 'mailmypassword' => 'Жаңы сырсөздү эл. почта аркылуу жөнөтүү',
 'passwordremindertitle' => '{{SITENAME}} үчүн жаңы убактылуу сырсөз',
+'passwordremindertext' => 'Бирөө (балким сиз, $1 IP адресинен) {{SITENAME}}($4) жаңы сырсөз талап кылды. "$2" колдонуучу үчүн убактылуу сырсөз түзүлдү жана "$3" үчүн коюлду. Эгерде бул сиздин максат болсо, анда системге кирип жаңы сырсөз тандап алышыңыз шарт. Сиздин убактылуу сырсөз {{PLURAL:$5|бир күн|$5 күн}} жарактуу. 
+
+Эгер муну башка киши кылса, же сиз сырсөзүңүздү эстесеңиз жана аны алмаштырууну каалабасаңыз, бул билдирүүнү этибар албай, эски сырсөзүңүздү колдоно берсеңиз болот.',
+'noemail' => '"$1" колдонуучу үчүн эмейл дареги катталган эмес.',
 'noemailcreate' => 'Эл. почтанын анык дарегин көрсөтүшүңүз керек',
+'passwordsent' => '"$1" үчүн катталган эмейлге жаңы сырсөз жөнөтүлдү.
+Аны алгандан кийин системге кайра кириңиз.',
+'blocked-mailpassword' => 'Сиздин IP даректен оңдоого бөгөт коюлган, ошондуктан чырдын алдын алуу максатында сырсөздү калыбына келтирүү функциясына дагы тыюу салынган.',
+'eauthentsent' => 'Аныктоочу эмейлге кат жөнөтүлдү. Эмейлдин сиздики экендигин далилдөө үчүн андагы жетектемелерди аткарыңыз.',
+'throttled-mailpassword' => 'Бул эмейл сырсөздү алмаштырууну функциясын акыры {{PLURAL:$1|саат|$1 саат}} ичинде колдонгон.
+Кыянаттуулуктун алдын алуу максатында  бир эмейлге {{PLURAL:$1|саат|$1 саат}} ичинде бир эстетүү суроого гана уруксат берилген.',
 'mailerror' => 'Почтаны жөнөтүү кезиндеги ката: $1',
 'emailauthenticated' => 'Сиздин почта дарегиңиз аныкталды $2/$3.',
 'emailconfirmlink' => 'Электрондук дарегиңизди ырастаңыз',
 'emaildisabled' => 'Бул сайт эл. почтанын билдирүүлөрүн жөнөтө албайт.',
-'accountcreated' => 'Эсеп жазуусу жаратылды',
-'createaccount-title' => '{{SITENAME}} үчүн эсеп жазуусун жаратуу',
-'login-abort-generic' => 'Сиздин кирүүңүз ийгиликтүү эмес болду - Үзүлдү',
-'loginlanguagelabel' => 'Тил: $1',
+'accountcreated' => 'Эсеп жазуусу түзүлдү',
+'createaccount-title' => '{{SITENAME}} үчүн эсеп жазуусун түзүү',
+'usernamehasherror' => 'Колдонуучунун атында торчо (#) белгисине жол берилбейт',
+'login-throttled' => 'Сиз системге кирүүгө өтө көп аракет кылдыңыз. Сураныч, аракетиңизди бир аз тыныгуудан соң улантыңыз.',
+'login-abort-generic' => 'Сиздин кирүүңүз ийгиликсиз болду - Үзүлдү',
+'loginlanguagelabel' => 'Тили: $1',
 
 # Email sending
 'php-mail-error-unknown' => "PHP'нин mail() функциясындагы белгисиз ката.",
 
 # Change password dialog
 'resetpass' => 'Сырсөздү өзгөртүү',
-'resetpass_header' => 'Эсеп жазуусунун сырсөзүн өзгөртүү',
+'resetpass_header' => 'Эсеп жазуунун сырсөзүн өзгөртүү',
 'oldpassword' => 'Эски сырсөз:',
 'newpassword' => 'Жаңы сырсөз:',
-'retypenew' => 'Ð\96аңÑ\8b Ñ\81Ñ\8bÑ\80Ñ\81өздү ÐºÐ°Ð¹Ñ\82а ÐºÐ¸Ñ\80гизиңиз:',
-'resetpass_submit' => 'Сырсөз коюу анан кирүү',
+'retypenew' => 'Ð\96аңÑ\8b Ñ\81Ñ\8bÑ\80Ñ\81өздү ÐºÐ°Ð¹Ñ\80а Ñ\82еÑ\80иңиз:',
+'resetpass_submit' => 'Сырсөздү терип анан кирүү',
 'resetpass_success' => 'Сиздин сырсөзүңүз ийгиликтүү өзгөртүлдү!
 Системага кирүү аткарылып жатат...',
 'resetpass_forbidden' => 'Сырсөздү өзгөртүүгө мүмкүн эмес',
@@ -462,24 +525,26 @@ $1',
 
 # Special:PasswordReset
 'passwordreset' => 'Сырсөздү түшүрүү',
+'passwordreset-text-one' => 'Сырсөздү алмаштыруу үчүн бул үлгүнү толтуруңуз.',
 'passwordreset-legend' => 'Сырсөздү түшүрүү',
 'passwordreset-disabled' => 'Бул уикиде сырсөздү түшүрүү мүмкүнчүлүгү өчүрүлгөн.',
-'passwordreset-username' => 'Ð\9aаÑ\82Ñ\8bÑ\88уучу аты:',
+'passwordreset-username' => 'Ð\9aолдонуучу аты:',
 'passwordreset-domain' => 'Домен:',
 'passwordreset-capture' => 'Чыккан катты көрүү?',
 'passwordreset-email' => 'E-mail дарек:',
 'passwordreset-emailtitle' => '{{SITENAME}} сайтындагы эсеп жазуусу жөнүндөгү маалымат',
-'passwordreset-emailelement' => 'Ð\9aаÑ\82Ñ\8bÑ\88уучу аты: $1
+'passwordreset-emailelement' => 'Ð\9aолдонуучу аты: $1
 Убактылуу сырсөз: $2',
-'passwordreset-emailsent' => 'Эл. Ð¿Ð¾Ñ\87Ñ\82а Ð°Ñ\80кÑ\8bлÑ\83Ñ\83 Ñ\8dÑ\81ке Ñ\81алÑ\83Ñ\83 жөнөтүлдү.',
-'passwordreset-emailsent-capture' => 'Төмөн жакта жөнөтүлгөн эске салуу кат келтирилди.',
-'passwordreset-emailerror-capture' => 'Ð\96аÑ\80аÑ\82Ñ\8bлган Ñ\8dÑ\81ке Ñ\81алÑ\83Ñ\83 ÐºÐ°Ñ\82Ñ\8b Ð°Ñ\81Ñ\82Ñ\8bнда ÐºÓ©Ñ\80Ñ\81Ó©Ñ\82үлүп Ñ\82Ñ\83Ñ\80аÑ\82, Ð±Ð¸Ñ\80ок Ð°Ð½Ñ\8b ÐºÐ°Ñ\82Ñ\8bÑ\88Ñ\83Ñ\83Ñ\87Ñ\83га жөнөтүү оңунан чыккан жок: $1',
+'passwordreset-emailsent' => 'СÑ\8bÑ\80Ñ\81өздү Ð°Ð»Ð¼Ð°Ñ\88Ñ\82Ñ\8bÑ\80Ñ\83Ñ\83 Ñ\8dмейлге жөнөтүлдү.',
+'passwordreset-emailsent-capture' => 'Төмөндө көрсөтүлгөн эмейлге сырсөздү алмаштыруучу кат жөнөтүлдү.',
+'passwordreset-emailerror-capture' => 'Төмөндө ÐºÓ©Ñ\80Ñ\81Ó©Ñ\82үлгөн Ð´Ð°Ñ\80екке Ñ\81Ñ\8bÑ\80Ñ\81өздү Ð°Ð»Ð¼Ð°Ñ\88Ñ\82Ñ\8bÑ\80Ñ\83Ñ\83 ÐºÐ°Ñ\82 Ñ\82үзүлдү,биÑ\80ок Ð°Ð½Ñ\8b  {{GENDER:$2|каÑ\82Ñ\8bÑ\88Ñ\83Ñ\83Ñ\87Ñ\83га}} жөнөтүү оңунан чыккан жок: $1',
 
 # Special:ChangeEmail
 'changeemail' => 'E-mail даректи өзгөртүү',
 'changeemail-header' => 'Эл. почтанын дарегин өзгөртүү',
+'changeemail-text' => 'Эмейл дарегиңизди алмаштыруу үчүн ушул үлгүнү толтуруңуз. Өзгөрүүнү аныктоо үчүн сырсөздү киргизүү талап кылынат.',
 'changeemail-no-info' => 'Бул баракка түз кайрылыш үчүн, сиз системага киришиңиз керек.',
-'changeemail-oldemail' => 'Ð\9aезекÑ\82еги e-mail дарек:',
+'changeemail-oldemail' => 'УÑ\87Ñ\83Ñ\80дагÑ\8b e-mail дарек:',
 'changeemail-newemail' => 'Жаңы e-mail дарек:',
 'changeemail-none' => '(жок)',
 'changeemail-password' => '«{{SITENAME}}» долбоору үчүн сиздин сырсөзүңүз:',
@@ -487,25 +552,25 @@ $1',
 'changeemail-cancel' => 'Жокко чыгаруу',
 
 # Edit page toolbar
-'bold_sample' => 'Кара текст',
-'bold_tip' => 'Кара текст',
-'italic_sample' => 'Ð\9aÑ\83Ñ\80Ñ\81ив текст',
+'bold_sample' => 'Калың текст',
+'bold_tip' => 'Калың текст',
+'italic_sample' => 'жанÑ\82Ñ\8bк текст',
 'italic_tip' => 'жантык текст',
-'link_sample' => 'Шилтеме аты',
+'link_sample' => 'Шилтеменин аты',
 'link_tip' => 'Ички шилтеме',
 'extlink_sample' => 'http://www.example.com шилтеме аталышы',
 'extlink_tip' => 'Сырткы шилтемелерге (http:// префиксин койгонду унутпаңыз)',
-'headline_sample' => 'Ð\90Ñ\82 тексти',
-'headline_tip' => '2-деңгээлдеги баш аты',
+'headline_sample' => 'Ð\91аÑ\88Ñ\81өз тексти',
+'headline_tip' => '2-деңгээлдеги башсөз',
 'nowiki_sample' => 'Форматталбаган текстти бул жерге киргизиңиз',
 'nowiki_tip' => 'Уики-форматтоого көңүл бурбоо',
 'image_tip' => 'Кыстарылган файл',
 'media_tip' => 'Файлга шилтеме',
 'sig_tip' => 'Кол тамгаңыз жана убакыт мөөрү',
-'hr_tip' => 'Туурасынын сызык (жыш колдонбоңуз)',
+'hr_tip' => 'Туура сызык (жыш колдонбоңуз)',
 
 # Edit pages
-'summary' => 'Ð\9aÑ\8bÑ\81ка Ñ\82Ò¯Ñ\88үндүÑ\80Ò¯Ò¯:',
+'summary' => 'Ð\96Ñ\8bйÑ\8bнÑ\82Ñ\8bгÑ\8b:',
 'subject' => 'Тема/баш аты:',
 'minoredit' => 'Майда оңдоо',
 'watchthis' => 'Бул баракты көзөмөлдөө',
@@ -514,36 +579,37 @@ $1',
 'showpreview' => 'Алдын ала көрсөтүү',
 'showlivepreview' => 'Ылдам карап чыгуу',
 'showdiff' => 'Өзгөртүүлөрдү көрсөтүү',
-'anoneditwarning' => "'''Эскертүү:''' Сиз каттоодон өткөн жоксуз.
+'anoneditwarning' => "'''Эскертүү:''' Сиз системге кирген жоксуз.
 IP дарегиңиз бул барактын оңдоо тарыхына жазылат.",
-'missingcommenttext' => 'Төмөн жакка комментарийиңизди киргизиңиз.',
-'blockedtitle' => 'Катышуучу тосмолонгон',
+'anonpreviewwarning' => '"Сиз системге кирген жоксуз. Барактын тарыхында сиздин IP дарегиңиз жазылып калат."',
+'missingcommenttext' => 'Сураныч, комментарийиңизди төмөн жака териңиз.',
+'blockedtitle' => 'Колдонуучу бөгөттөлгөн',
 'blockedtext' => 'Сиздин колдонуучу атыңыз же IP дарегиңиз тосмолонгон',
 'blockednoreason' => 'себеби көрсөтүлгөн жок',
-'whitelistedittext' => 'Ð\91аÑ\80каты оңдоо үчүн сизге $1 керек.',
-'nosuchsectiontitle' => 'Бөлүктүү табууга мүмкүн эмес',
+'whitelistedittext' => 'Ð\91аÑ\80акты оңдоо үчүн сизге $1 керек.',
+'nosuchsectiontitle' => 'Бөлүктү табуу мүмкүн эмес',
 'loginreqtitle' => 'Авторизация талап кылынат',
 'loginreqlink' => 'Кирүү',
 'accmailtitle' => 'Сырсөз жөнөтүлдү.',
 'accmailtext' => ' [[User talk:$1|$1]] үчүн сырсөз $2 ге жөнөтүлдү.',
 'newarticle' => '(Жаңы)',
 'newarticletext' => "Сиз ачыла элек баракка шилтемени бастыңыз.
-Бул баракты ачуу үчүн, ылдый жактагы терезечеге жаза баштаңыз (кошумча маалымат алуу үчүн [[{{MediaWiki:Helppage}}|жардам барагы]] караңыз).
-Эгерде Сиз бул жерге жаңылыштык менен кирип калсаңыз, анда браузериңизде '''артка''' баскычын басыңыз.",
+Бул баракты түзүү үчүн, ылдый жактагы терезеге жаза баштаңыз (кошумча маалымат алуу үчүн [[{{MediaWiki:Helppage}}|жардам барагын]] караңыз).
+Эгерде Сиз бул жерге жаңылыштык менен кирип калган болсоңуз, анда браузериңиздеги '''артка''' баскычын басыңыз.",
 'noarticletext' => "Азыр бул баракта текст жок.
 Сиз [[Special:Search/{{PAGENAME}}|ушул аталыш менен баракты изде]] башка барактарда 
 <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} тийиштүү жазууларды таба аласыз],
 же '''[{{fullurl:{{FULLPAGENAME}}|action=edit}} ошондой аталыш менен барак ача аласыз]'''</span>.",
 'noarticletext-nopermission' => 'Азыр бул баракта текст жок.
 Сиз [[Special:Search/{{PAGENAME}}|бул ат жөнүндө эскертүүлөрдү]] башка барактардан таба аласыз, же <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} тийиштүү журналдардын жазууларын таба аласыз]</span>. Бул баракты жаратууга укуктарыңыз жок.',
-'userpage-userdoesnotexist' => '"$1" Ð\9cÑ\8bндай ÐºÐ°Ñ\82Ñ\8bÑ\88Ñ\83Ñ\83Ñ\87Ñ\83 ÐºÐ°Ñ\82Ñ\82алган Ñ\8dмеÑ\81. Ð£шул баракты түзүүнү же оңдогонду каалганыңыз анык болсун',
+'userpage-userdoesnotexist' => '"$1" Ð\9cÑ\8bндай ÐºÐ¾Ð»Ð´Ð¾Ð½Ñ\83Ñ\83Ñ\87Ñ\83 ÐºÐ°Ñ\82Ñ\82алган Ñ\8dмеÑ\81. Ð¡Ñ\83Ñ\80анÑ\8bÑ\87, Ñ\83шул баракты түзүүнү же оңдогонду каалганыңыз анык болсун',
 'updated' => '(Жаңыртылды)',
-'note' => "'''Эскертүү:'''",
+'note' => "'''Эскертме:'''",
 'previewnote' => "'''Бул алдын ала көрүнүшү гана болгонун эсиңизге алыңыз.'''
-Өзгөртүүлөрүңүз сактала элек!",
+Өзгөртүүлөрүңүз али сактала элек!",
 'continue-editing' => 'Өзгөртүүүлөрдү улантабыз',
 'session_fail_preview' => 'Кечиресиз, байланыш үзүлгөндүктөн сиздин өзгөртүүлөр сакталган жок. Дагы бир жолу аракет кылып көрүңүз. Болбосо, [[Special:UserLogout|logging out]] аткарып, кайра кирип көрүңүз.',
-'editing' => 'Оңдоо $1',
+'editing' => '$1 оңдоолууда',
 'creating' => '$1 түзүлүүдө',
 'editingsection' => '$1 (бөлүмү) оңдолууда',
 'editingcomment' => ' $1 оңдолууда (жаңы бөлүм)',
@@ -551,22 +617,22 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'yourtext' => 'Текстиңиз',
 'storedversion' => 'Сакталган версия',
 'yourdiff' => 'Айырмалар',
-'templatesused' => 'Бул баракта колдонулган {{PLURAL:$1|калып}}:',
-'templatesusedpreview' => 'Бул алдын ала көрсөтүүдө колдонулган {{PLURAL:$1|шаблон|шаблондор}}:',
+'templatesused' => 'Бул баракта колдонулган {{PLURAL:$1|калып|калыптар }}:',
+'templatesusedpreview' => 'Бул алдын ала көрсөтүүдө колдонулган {{PLURAL:$1|калып|калыптар}}:',
 'template-protected' => '(корголгон)',
 'template-semiprotected' => '(жарым-жартылай корголгон)',
 'hiddencategories' => 'Бул барак {{PLURAL:$1|1 жашыруун категориянын|$1 жашыруун категориялардын}} мүчөсү:',
-'nocreate-loggedin' => 'Жаңы барактарды жаратууга сизде уруксат жок.',
+'nocreate-loggedin' => 'Жаңы барак түзүүгө сизде уруксат жок.',
 'permissionserrors' => 'Кирүү укуктарынын каталары',
-'permissionserrorstext-withaction' => 'Сизге $2, төмөнкү {{PLURAL:$1|себеп|себеп}} менен уруксат жок:',
-'recreate-moveddeleted-warn' => "'''Эскертүү: Сиз мурун өчүрүлгөн баракты кайра баштап жатасыз.'''
-
+'permissionserrorstext-withaction' => 'Сизге $2, төмөнкү {{PLURAL:$1|себеп|себептер}} менен уруксат жок:',
+'recreate-moveddeleted-warn' => "'''Эскертүү: Сиз мурда өчүрүлгөн баракты кайра баштап жатасыз.'''
 Бул баракты кайра кайтаруу чындап керек экендигине көзүңүз жетсин.
 Ыңгайлуулук үчүн төмөндө өчүрүүлөрдүн жана өзгөртүүлөрдүн тизмеси берилген:",
 'moveddeleted-notice' => 'Бул барак өчүрүлгөн.
 Маалымат үчүн төмөндө өчүрүүлөрдүн жана өзгөртүүлөрдүн тизмеси берилген.',
 'log-fulllog' => 'Журналды бүтүн бойдон көрүү',
-'edit-conflict' => 'Өзгөртүүлөрдүн конфликти',
+'edit-conflict' => 'Оңдоолор конфликти',
+'postedit-confirmation' => 'Оңдооңуз сакталды',
 'edit-already-exists' => 'Жаңы барак түзүү мүмкүн эмес. Мындай барак бар',
 'defaultmessagetext' => 'Жарыяланбасча текст',
 
@@ -579,38 +645,38 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 # Parser/template warnings
 'post-expand-template-inclusion-warning' => "'''Эскертүү:''' Камтылган калыптардын өлчөмү өтө чоң.
 Кээ бир калыптар камтылбайт.",
-'post-expand-template-inclusion-category' => 'Камтылган калыптардын өлчөмү ашып кеткен барактар',
+'post-expand-template-inclusion-category' => 'Камтылган калыптарынын өлчөмү ашып кеткен барактар',
 'post-expand-template-argument-warning' => "'''Эскертүү:''' Бул барак, жок дегенде, абдан чоң көлөмдүү калыптын бир жүйөсүн камтыйт жана  жайылганда өлчөмү абдан чоң болуп кетет. 
 Ушул сыяктуу жүйөлөр аттатылды.",
 'post-expand-template-argument-category' => 'Калыптардын аттатылган жүйөлөрүн камтыган барактар',
-'parser-template-loop-warning' => 'Ð\9aалÑ\8bпÑ\82аÑ\80да Ð°Ð¹Ð»Ð°Ð½Ð¼Ð° бар:[[$1]]',
+'parser-template-loop-warning' => 'Ð\9aалÑ\8bпÑ\82аÑ\80да Ð¸Ð»Ð¼ÐµÐº бар:[[$1]]',
 
 # Account creation failure
-'cantcreateaccounttitle' => 'Эсеп жазуусун жаратууга мүмкүн эмес',
+'cantcreateaccounttitle' => 'Эсеп жазуусун түзүү мүмкүн эмес',
 
 # History pages
-'viewpagelogs' => 'Бул барак үчүн журналды көрсөтүү',
+'viewpagelogs' => 'Бул барактын журналдарын көрсөтүү',
 'nohistory' => 'Бул барактын өзгөртүүлөр тарыхы жок',
-'currentrev' => 'Ð\90кÑ\8bÑ\80кÑ\8b версиясы',
+'currentrev' => 'СоңкÑ\83 версиясы',
 'currentrev-asof' => '$1 -га соңку версиясы',
 'revisionasof' => '$1 -деги абалы',
 'revision-info' => '$1 карата $2 тарабынан жасалган версия',
-'previousrevision' => 'Мурунку версиясы',
+'previousrevision' => '← Мурунку версиясы',
 'nextrevision' => 'Жаңыраак версиясы →',
 'currentrevisionlink' => 'Соңку версиясы',
 'cur' => 'учрдг.',
 'next' => 'кийинки',
-'last' => 'соңку',
+'last' => 'мурунку',
 'page_first' => 'биринчи',
 'page_last' => 'акыркы',
 'histlegend' => "Айырмаларды тандоо: Салыштырыла турган версияларлын тушундагы тегеректерди белгилеп туруп \"Enter\"-ди же астындагы баскычты бас.<br />
 Түшүндүрүү: '''({{int:cur}})''' = соңку версиясынан айырма, '''({{int:last}})''' = мурунку версиясынан айырма, '''{{int:minoreditletter}}''' = майда оңдоо.",
 'history-fieldset-title' => 'Тарыхын кароо',
 'history-show-deleted' => 'Өчүрүлгөндөрдү гана',
-'histfirst' => 'Эң эски',
-'histlast' => 'СоңкÑ\83',
+'histfirst' => 'эскирээк',
+'histlast' => 'жаңÑ\8bÑ\80аак',
 'historysize' => '({{PLURAL:$1|1 байт}})',
-'historyempty' => 'бош',
+'historyempty' => '(бош)',
 
 # Revision feed
 'history-feed-title' => 'Өзгөртүүлөр тарыхы',
@@ -618,9 +684,10 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'history-feed-item-nocomment' => '$1, $2 карата',
 
 # Revision deletion
-'rev-deleted-user' => '(каÑ\82Ñ\8bÑ\88Ñ\83Ñ\83Ñ\87Ñ\83 аты өчүрүлдү)',
+'rev-deleted-user' => '(колдонÑ\83Ñ\83Ñ\87Ñ\83нÑ\83н аты өчүрүлдү)',
 'rev-delundel' => 'көрсөтүү/жашыруу',
 'rev-showdeleted' => 'көрсөтүү',
+'revdelete-nologtype-title' => 'Журналдын түрү көрсөтүлгөн жок',
 'revdelete-nologid-title' => 'Журналдын туура эмес жазуусу',
 'revdelete-show-file-submit' => 'Ооба',
 'revdelete-hide-text' => 'Версия текстин жашыруу',
@@ -631,7 +698,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'revdelete-radio-same' => '(өзгөртпөө)',
 'revdelete-radio-set' => 'Ооба',
 'revdelete-radio-unset' => 'Жок',
-'revdelete-log' => 'Себеп:',
+'revdelete-log' => 'Себеби:',
 'revdel-restore' => 'көрүнүшүн өзгөртүү',
 'revdel-restore-deleted' => 'өчүрүлгөн версиялар',
 'revdel-restore-visible' => 'көрүнүүчү версиялары',
@@ -642,8 +709,8 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 ** Орунсуз комментарий же өздүк маалымат
 ** Орунсуз катышуучу аты
 ** Потенциалдуу ушактаган маалымат',
-'revdelete-otherreason' => 'Ð\91аÑ\88ка/коÑ\88Ñ\83мÑ\87а Ñ\81ебеп:',
-'revdelete-reasonotherlist' => 'Ð\91аÑ\88ка Ñ\81ебеп',
+'revdelete-otherreason' => 'Ð\91аÑ\88ка/коÑ\88Ñ\83мÑ\87а Ñ\81ебеби:',
+'revdelete-reasonotherlist' => 'Ð\91аÑ\88ка Ñ\81ебеби',
 'revdelete-edit-reasonlist' => 'Өчүрүү себептерин оңдоо',
 'revdelete-offender' => 'Барак версиясынын автору:',
 
@@ -652,39 +719,39 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'mergehistory-from' => 'Баштапкы барак:',
 'mergehistory-into' => 'Максаттык барак:',
 'mergehistory-submit' => 'Версияларды бириктирүү',
-'mergehistory-invalid-source' => 'Баштапкы барагынын башжазуусуу туура бар болуш керек.',
+'mergehistory-invalid-source' => 'Баштапкы барагынын башжазуусу туура болушу керек.',
 'mergehistory-invalid-destination' => 'Максаттык барагынын башжазуусуу туура бар болуш керек.',
 'mergehistory-same-destination' => 'Баштапкы жана максаттык барактары окшош эмес болуш керек',
-'mergehistory-reason' => 'Себеп',
+'mergehistory-reason' => 'Себеби:',
 
 # Merge log
 'mergelog' => 'Бириктирүүлөрдүн журналы',
-'revertmerge' => 'Ð\91өлүү',
+'revertmerge' => 'Ð\90жÑ\8bÑ\80аÑ\82Ñ\83Ñ\83',
 
 # Diffs
 'history-title' => '"$1" өзгөрүүлөр тарыхы',
-'difference-multipage' => '(Барактардын арасындагы айырма)',
+'difference-title-multipage' => '«$1» менен «$2» барактарынын ортосундагы айырма',
+'difference-multipage' => '(Барактардын ортосундагы айырма)',
 'lineno' => '$1 -сап:',
 'compareselectedversions' => 'Тандалган версияларды салыштыруу',
 'showhideselectedversions' => 'Тандалган версияларды көрсөтүү/жашыруу',
 'editundo' => 'жокко чыгаруу',
-'diff-multi' => '({{PLURAL:$2|каÑ\82Ñ\8bÑ\88уучу}} тарабынан жасалган {{PLURAL:$1|аралык версия}} көрсөтүлгөн жок)',
+'diff-multi' => '({{PLURAL:$2|колдонуучу}} тарабынан жасалган {{PLURAL:$1|аралык версия}} көрсөтүлгөн жок)',
 
 # Search results
 'searchresults' => 'Издөө жыйынтыктары',
 'searchresults-title' => '"$1" үчүн издөө жыйынтыктары',
 'prevn' => 'абалкы {{PLURAL:$1|$1}}',
-'nextn' => 'кийинки{{PLURAL:$1|$1}}',
-'prevn-title' => 'Ð\9cÑ\83Ñ\80Ñ\83нкÑ\83 $1 {{PLURAL:$1|жыйынтык}}',
+'nextn' => 'соңку {{PLURAL:$1|$1}}',
+'prevn-title' => 'Ð\90балкÑ\8b $1 {{PLURAL:$1|жыйынтык}}',
 'nextn-title' => 'Кийинки $1 {{PLURAL:$1|жыйынтык}}',
 'shown-title' => 'Барактан $1 {{PLURAL:$1|жыйынтыкты}} көрсөтүү',
 'viewprevnext' => '($1 {{int:pipe-separator}} $2) ($3) кароо',
 'searchmenu-legend' => 'Издөө опциялары',
 'searchmenu-exists' => "'''Бул Уикиде \"[[:\$1]]\" деп аталган барак бар.'''",
 'searchmenu-new' => "'''Бул Уикиде \"[[:\$1]]\" барагын түз!'''",
-'searchhelp-url' => 'Help:Мазмун',
 'searchprofile-articles' => 'Негизги барактар',
-'searchprofile-project' => 'Ð\96аÑ\80дам Ð¶Ð°Ð½Ð° Ð´олбоор барактары',
+'searchprofile-project' => 'Ð\96аÑ\80дам Ð¶Ð°Ð½Ð° Ð\94олбоор барактары',
 'searchprofile-images' => 'Мултимедиа',
 'searchprofile-everything' => 'Баары',
 'searchprofile-advanced' => 'Кеңейтилген',
@@ -693,37 +760,37 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'searchprofile-images-tooltip' => 'Файлдарды издөө',
 'searchprofile-everything-tooltip' => 'Баардык барактардан (талкуу барактарды кошо) издөө',
 'searchprofile-advanced-tooltip' => 'Белгиленген аталыш мейкиндиктеринде издөө',
-'search-result-size' => '$1 ({{PLURAL:$2|1 сөз|$2 сөз}})',
-'search-result-category-size' => '{{PLURAL:$1|1 мүчө|$1 мүчө}} ({{PLURAL:$2|1 көмөк категория|$2 көмөк категория}}, {{PLURAL:$3|1 файл|$3 файл}})',
+'search-result-size' => '$1 ({{PLURAL:$2|1 сөз|$2 сөздөр}})',
+'search-result-category-size' => '{{PLURAL:$1|1 мүчө|$1 мүчөлөр}} ({{PLURAL:$2|1 ички категория|$2 ички категориялар}}, {{PLURAL:$3|1 файл|$3 файлдар}})',
 'search-result-score' => 'Релеванттуулук: $1%',
-'search-redirect' => '($1 ÐºÐ°Ð¹Ñ\80а Ð±Ð°Ð³Ñ\8bÑ\82Ñ\82оо)',
+'search-redirect' => '($1 Ð±Ð°Ð³Ñ\8bÑ\82Ñ\82ама)',
 'search-section' => '($1 бөлүмү)',
-'search-suggest' => 'УÑ\88Ñ\83нÑ\83 ÐºÐ°Ð°Ð»Ð°Ð´Ñ\8bÒ£Ñ\8bзбÑ\8b: $1',
+'search-suggest' => 'Ð\91алким, Ð¸Ð·Ð´ÐµÐ³ÐµÐ½Ð¸Ò£Ð¸Ð· Ð±Ñ\83л: $1',
 'search-interwiki-caption' => 'Тектеш долбоорлор',
 'search-interwiki-default' => '$1 жыйын.:',
 'search-interwiki-more' => '(көбүрөөк)',
 'search-relatedarticle' => 'Байланыштуу',
 'mwsuggest-disable' => 'AJAX-сунуштарын өчүрүү',
-'searcheverything-enable' => 'Бүт ат мейкиндиктеринен издөө',
+'searcheverything-enable' => 'Бардык аталыш мейкиндиктеринен издөө',
 'searchrelated' => 'байланыштуу',
 'searchall' => 'баары',
 'showingresultsheader' => "'''$4''' үчүн {{PLURAL:$5|'''$3''' жыйынтыктан '''$1'''-и|'''$1 - $2''' -дан '''$3''' жыйынтык}}",
 'search-nonefound' => 'Талапка төп маалымат табылган жок.',
 'powersearch' => 'Кеңейтилген издөө',
 'powersearch-legend' => 'Кеңейтилген издөө',
-'powersearch-ns' => 'Ат мейкиндиктеринен издөө:',
-'powersearch-redir' => 'Ð\91агÑ\8bÑ\82Ñ\82оолоÑ\80дÑ\83 чыгаруу',
+'powersearch-ns' => 'Аталыш мейкиндиктеринен издөө:',
+'powersearch-redir' => 'Ð\91агÑ\8bÑ\82Ñ\82амалаÑ\80дÑ\8b чыгаруу',
 'powersearch-field' => 'Издөө',
 'powersearch-togglelabel' => 'Белги салуу:',
 'powersearch-toggleall' => 'Баары',
-'powersearch-togglenone' => 'Эчтеке',
+'powersearch-togglenone' => 'Эчнерсе',
 'search-external' => 'Тышкы издөө',
 
 # Preferences page
 'preferences' => 'Ырастоолор',
 'mypreferences' => 'Ырастоолор',
 'prefs-edits' => 'Өзгөртүүлөрдүн саны',
-'prefsnologin' => 'СиÑ\81Ñ\82ема кирген жоксуз',
+'prefsnologin' => 'СиÑ\81Ñ\82емге кирген жоксуз',
 'changepassword' => 'Сырсөздү өзгөртүү',
 'prefs-skin' => 'Тема',
 'skin-preview' => 'Алдын ала көрүү',
@@ -731,7 +798,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'prefs-beta' => 'Бета-мүмкүнчүлүктөр',
 'prefs-datetime' => 'Дата жана убакыт',
 'prefs-labs' => 'Эксперименталдык мүмкүнчүлүктөр',
-'prefs-user-pages' => 'Ð\9aаÑ\82Ñ\8bÑ\88уучунун барактары',
+'prefs-user-pages' => 'Ð\9aолдонуучунун барактары',
 'prefs-personal' => 'Өздүк маалыматтар',
 'prefs-rc' => 'Соңку өзгөрүүлөр',
 'prefs-watchlist' => 'Көзөмөл тизмеси',
@@ -739,35 +806,34 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'prefs-watchlist-edits-max' => 'Эң чоң сан: 1000',
 'prefs-watchlist-token' => 'Көзөмөл тизмесинин токени:',
 'prefs-resetpass' => 'Сырсөздү өзгөртүү',
-'prefs-changeemail' => 'Эл. почтанын дарегин өзгөртүү',
-'prefs-setemail' => 'Эл. почтанын дарегин коюу',
-'prefs-email' => 'Электрондук почтанын параметрлери',
+'prefs-changeemail' => 'Эл. почта дарегин өзгөртүү',
+'prefs-setemail' => 'Эл. почта дарегин терүү',
+'prefs-email' => 'Электрондук почта параметрлери',
 'prefs-rendering' => 'Сырткы көрүнүш',
 'saveprefs' => 'Сактоо',
 'resetprefs' => 'Сакталбаган өзгөртүүлөрдү тазалоо',
 'restoreprefs' => 'Жарыяланбасча ырастоолорду калыбына келтирүү',
-'prefs-editing' => 'Редакторлоо',
-'prefs-edit-boxsize' => 'Редакторлоо терезесинин өлчөмү.',
+'prefs-editing' => 'Оңдоп-түзөө',
 'rows' => 'Сап:',
 'columns' => 'Тилке:',
 'searchresultshead' => 'Издөө',
 'stub-threshold-disabled' => 'Өчүрүлгөн',
 'recentchangesdays-max' => 'Эң көп $1 {{PLURAL:$1|күн}}',
 'timezonelegend' => 'Сааттык алкак:',
-'localtime' => 'Ð\96еÑ\80дик убакыт:',
+'localtime' => 'Ð\96еÑ\80гиликÑ\82Ò¯Ò¯ убакыт:',
 'timezoneuseoffset' => 'Башка (жылышты көрсөтүңүз)',
 'timezoneoffset' => 'Жылыш¹:',
-'servertime' => 'СеÑ\80веÑ\80 Ñ\83бакÑ\8bÑ\82ы:',
+'servertime' => 'СеÑ\80веÑ\80 Ñ\83бакÑ\82Ñ\8bÑ\81ы:',
 'timezoneregion-africa' => 'Африка',
 'timezoneregion-america' => 'Америка',
 'timezoneregion-antarctica' => 'Антарктика',
 'timezoneregion-arctic' => 'Арктика',
 'timezoneregion-asia' => 'Азия',
-'timezoneregion-atlantic' => 'Атлантика океаны',
+'timezoneregion-atlantic' => 'Атлантикалык Океан',
 'timezoneregion-australia' => 'Австралия',
 'timezoneregion-europe' => 'Европа',
-'timezoneregion-indian' => 'Ð\98ндий Ð¾кеаны',
-'timezoneregion-pacific' => 'ТÑ\8bнÑ\87 Ð¾ÐºÐµÐ°Ð½Ñ\8b',
+'timezoneregion-indian' => 'Ð\98ндий Ð\9eкеаны',
+'timezoneregion-pacific' => 'ТÑ\8bнÑ\87 Ð\9eкеан',
 'prefs-searchoptions' => 'Издөө',
 'prefs-namespaces' => 'Ат мейкиндиктери',
 'default' => 'жарыяланбасча',
@@ -775,25 +841,24 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'prefs-custom-css' => 'Өз CSS',
 'prefs-custom-js' => 'Өз JavaScript',
 'prefs-emailconfirm-label' => 'Эл. почтаны аныктоо:',
-'prefs-textboxsize' => 'Редакторлоо терезесинин өлчөмү',
 'youremail' => 'Электрондук дарек:',
-'username' => '{{GENDER:$1|Ð\9aаÑ\82Ñ\8bÑ\88уучу аты}}:',
-'uid' => '{{GENDER:$1|Ð\9aаÑ\82Ñ\8bÑ\88уучунун}} коду:',
+'username' => '{{GENDER:$1|Ð\9aолдонуучу аты}}:',
+'uid' => '{{GENDER:$1|Ð\9aолдонуучунун}} коду:',
 'prefs-memberingroups' => '{{GENDER:$2|Мүчөсү}} болгон {{PLURAL:$1|топ|топтор}}:',
-'prefs-registration' => 'Ð\9aаÑ\82Ñ\82оо Ñ\83багы:',
-'yourrealname' => 'Анык атыңыз:',
-'yourlanguage' => 'Тил:',
+'prefs-registration' => 'Ð\9aаÑ\82Ñ\82алÑ\83Ñ\83 Ñ\83бакÑ\82Ñ\8bÑ\81ы:',
+'yourrealname' => 'Өз ысымыңыз:',
+'yourlanguage' => 'Тили:',
 'yourvariant' => 'Мазмундун тил варианты:',
-'yournick' => 'Жаңы колуңуз:',
+'yournick' => 'Жаңы кол тамгаңыз:',
 'badsig' => 'Туура эмес кол тамга.
 HTML-тегдеринин тууралыгын текшериңиз.',
 'yourgender' => 'Жыныс:',
 'gender-male' => 'Эркек',
-'gender-female' => 'Аял',
+'gender-female' => 'Аялзат',
 'email' => 'Электрондук дарек',
-'prefs-help-email' => 'Электрондук дарек милдетүү эмес, бирок сырсөздү унутуп калсаңыз ал сырсөздү жиберүүгө керек.',
-'prefs-help-email-others' => 'Ð\9eÑ\88ондой Ñ\8dле Ð±Ð°Ñ\88калаÑ\80 Ñ\81из Ð¼ÐµÐ½ÐµÐ½ ÐºÐ°Ñ\82Ñ\8bÑ\88Ñ\83Ñ\83Ñ\87Ñ\83 Ð¶Ðµ Ñ\82алкÑ\83Ñ\83лоо барактарыңыздагы шилтеме аркылуу байланыш түзүүгө уруксат берүүнү тандай аласыз.
­Ð»ÐµÐºÑ\82Ñ\80ондÑ\83к Ð´Ð°Ñ\80егиңиз Ð±Ð°Ñ\88ка ÐºÐ¾Ð´Ð¾Ð½Ñ\83Ñ\83Ñ\87Ñ\83лаÑ\80га Ð±Ð°Ð¹Ð»Ð°Ð½Ñ\8bÑ\88 Ñ\82үзгөндө көрүнбөйт.',
+'prefs-help-email' => 'Электрондук дарек милдетүү эмес, бирок сырсөзүңүздү унутуп калсаңыз ал сырсөздү жиберүүгө керек.',
+'prefs-help-email-others' => 'Ð\9eÑ\88ондой Ñ\8dле Ð±Ð°Ñ\88калаÑ\80 Ñ\81из Ð¼ÐµÐ½ÐµÐ½ ÐºÐ¾Ð»Ð´Ð¾Ð½Ñ\83Ñ\83Ñ\87Ñ\83 Ð¶Ðµ Ð±Ð°Ð°Ñ\80лаÑ\88Ñ\83Ñ\83 барактарыңыздагы шилтеме аркылуу байланыш түзүүгө уруксат берүүнү тандай аласыз.
\91айлаÑ\88Ñ\83Ñ\83Ò£Ñ\83зда Ñ\8dлекÑ\82Ñ\80ондÑ\83к Ð´Ð°Ñ\80егиңиз Ð±Ð°Ñ\88ка ÐºÐ¾Ð´Ð¾Ð½Ñ\83Ñ\83Ñ\87Ñ\83лаÑ\80га  көрүнбөйт.',
 'prefs-help-email-required' => 'Эл. почтанын дарегин көрсөтүү керек.',
 'prefs-info' => 'Негизги маалыматтар',
 'prefs-i18n' => 'Интернационализация',
@@ -805,45 +870,45 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 'prefs-advancedrendering' => 'Кеңейтилген ырастоолор',
 'prefs-advancedsearchoptions' => 'Кеңейтилген ырастоолор',
 'prefs-advancedwatchlist' => 'Кеңейтилген ырастоолор',
-'prefs-displayrc' => 'Көрсөтүүнүн ырастоолору',
-'prefs-displaysearchoptions' => 'Көрсөтүүнүн ырастоолору',
-'prefs-displaywatchlist' => 'Көрсөтүүнүн ырастоолору',
+'prefs-displayrc' => 'Көрүнүштүн ырастоолору',
+'prefs-displaysearchoptions' => 'Көрүнүштүн ырастоолору',
+'prefs-displaywatchlist' => 'Көрүнүштүн ырастоолору',
 
 # User preference: email validation using jQuery
 'email-address-validity-valid' => 'Эл. почтанын дареги анык көрүнөт',
 'email-address-validity-invalid' => 'Эл. почтанын анык дарегин киргизиңиз!',
 
 # User rights
-'userrights' => 'Ð\9aаÑ\82Ñ\8bÑ\88уучулардын укуктарын башкаруу',
-'userrights-lookup-user' => 'Ð\9aаÑ\82Ñ\8bÑ\88уучу топторун башкаруу',
-'userrights-user-editname' => 'Ð\9aаÑ\82Ñ\8bÑ\88Ñ\83Ñ\83Ñ\87Ñ\83 Ð°Ñ\82Ñ\8bÒ£Ñ\8bздÑ\8b ÐºÐ¸Ñ\80гизиңиз:',
-'editusergroup' => 'Ð\9aаÑ\82Ñ\8bÑ\88Ñ\83Ñ\83Ñ\87Ñ\83 топторун оңдоо',
-'userrights-editusergroup' => 'Ð\9aаÑ\82Ñ\8bÑ\88Ñ\83Ñ\83Ñ\87Ñ\83 топторун оңдоо',
-'saveusergroups' => 'Ð\9aаÑ\82Ñ\8bÑ\88Ñ\83Ñ\83Ñ\87Ñ\83 топторун сактоо',
-'userrights-groupsmember' => 'Топтордо турат:',
-'userrights-reason' => 'Себеп:',
+'userrights' => 'Ð\9aолдонуучулардын укуктарын башкаруу',
+'userrights-lookup-user' => 'Ð\9aолдонуучу топторун башкаруу',
+'userrights-user-editname' => 'Ð\9aолдонÑ\83Ñ\83Ñ\87Ñ\83 Ð°Ñ\82Ñ\8bÒ£Ñ\8bздÑ\8b Ñ\82еÑ\80иңиз:',
+'editusergroup' => 'Ð\9aолдонÑ\83Ñ\83Ñ\87Ñ\83лаÑ\80 топторун оңдоо',
+'userrights-editusergroup' => 'Ð\9aолдонÑ\83Ñ\83Ñ\87Ñ\83лаÑ\80 топторун оңдоо',
+'saveusergroups' => 'Ð\9aолдонÑ\83Ñ\83Ñ\87Ñ\83лаÑ\80 топторун сактоо',
+'userrights-groupsmember' => 'Топтордо мүчө:',
+'userrights-reason' => 'Себеби:',
 'userrights-changeable-col' => 'Сиз өзгөртө алган топтор',
 'userrights-unchangeable-col' => 'Сиз өзгөртө албаган топтор',
 
 # Groups
 'group' => 'Топ:',
-'group-user' => 'Ð\9aаÑ\82Ñ\8bÑ\88уучулар',
-'group-autoconfirmed' => 'Ð\90вÑ\82оанÑ\8bкÑ\82алган ÐºÐ°Ñ\82Ñ\8bÑ\88уучулар',
+'group-user' => 'Ð\9aолдонуучулар',
+'group-autoconfirmed' => 'Ð\90вÑ\82оанÑ\8bкÑ\82алган ÐºÐ¾Ð»Ð´Ð¾Ð½уучулар',
 'group-bot' => 'Боттор',
 'group-sysop' => 'Администраторлор',
 'group-bureaucrat' => 'Бюрократтар',
 'group-suppress' => 'Ревизорлор',
 'group-all' => '(баары)',
 
-'group-user-member' => '{{GENDER:$1|каÑ\82Ñ\8bÑ\88уучу}}',
-'group-autoconfirmed-member' => '{{GENDER:$1|авÑ\82оанÑ\8bкÑ\82алган ÐºÐ°Ñ\82Ñ\8bÑ\88уучу}}',
+'group-user-member' => '{{GENDER:$1|колдонуучу}}',
+'group-autoconfirmed-member' => '{{GENDER:$1|авÑ\82оанÑ\8bкÑ\82алган ÐºÐ¾Ð»Ð´Ð¾Ð½уучу}}',
 'group-bot-member' => '{{GENDER:$1|бот}}',
 'group-sysop-member' => '{{GENDER:$1|администратор}}',
 'group-bureaucrat-member' => '{{GENDER:$1|бюрократ}}',
 'group-suppress-member' => '{{GENDER:$1|ревизор}}',
 
-'grouppage-user' => '{{ns:project}}:Ð\9aаÑ\82Ñ\8bÑ\88уучулар',
-'grouppage-autoconfirmed' => '{{ns:project}}:Ð\90вÑ\82оанÑ\8bкÑ\82алган ÐºÐ°Ñ\82Ñ\8bÑ\88уучулар',
+'grouppage-user' => '{{ns:project}}:Ð\9aолдонуучулар',
+'grouppage-autoconfirmed' => '{{ns:project}}:Ð\90вÑ\82оанÑ\8bкÑ\82алган ÐºÐ¾Ð»Ð´Ð¾Ð½уучулар',
 'grouppage-bot' => '{{ns:project}}:Боттор',
 'grouppage-sysop' => '{{ns:project}}:Администраторлор',
 'grouppage-bureaucrat' => '{{ns:project}}:Бюрократтар',
@@ -860,41 +925,41 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 'right-delete' => 'Барактарды өчүрүү',
 'right-browsearchive' => 'Өчүрүлгөн барактарды издөө',
 'right-suppressionlog' => 'Жеке журналдарды көрүү',
-'right-userrights' => 'Бүт катышуучулардын укуктарын оңдоо',
+'right-userrights' => 'Бүткүл колдонуучулардын укуктарын оңдоо',
 
 # Special:Log/newusers
-'newuserlogpage' => 'Ð\9aаÑ\82Ñ\8bÑ\88Ñ\83Ñ\83Ñ\87Ñ\83лаÑ\80дÑ\8bн каттоо журналы',
+'newuserlogpage' => 'Ð\9aолдонÑ\83Ñ\83Ñ\87Ñ\83лаÑ\80дÑ\8b каттоо журналы',
 
 # Associated actions - in the sentence "You do not have permission to X"
 'action-read' => 'бул баракты окуу',
 'action-edit' => 'бул баракты оңдоо',
-'action-createpage' => 'барактарды жаратуу',
-'action-createtalk' => 'талкуулоо барагын жаратуу',
-'action-createaccount' => 'бул эсеп жазуусун жаратуу',
+'action-createpage' => 'барактарды түзүү',
+'action-createtalk' => 'талкуулоо барагын түзүү',
+'action-createaccount' => 'бул эсеп жазуусун түзүү',
 'action-upload' => 'бул файлды жүктөө',
 'action-delete' => 'бул баракты өчүрүү',
 'action-suppressionlog' => 'бул жеке журналды көрүү',
-'action-userrights' => 'бүт катышуучулардын укуктарын оңдоо',
+'action-userrights' => 'бүткүл колдонуучулардын укуктарын оңдоо',
 'action-sendemail' => 'электрондук каттарды жөнөтүү',
 
 # Recent changes
-'nchanges' => '$1 {{PLURAL:$1|өзгөрүү|өзгөрүү}}',
+'nchanges' => '$1 {{PLURAL:$1|өзгөрүү|өзгөрүүлөр}}',
 'recentchanges' => 'Соңку өзгөрүүлөр',
 'recentchanges-legend' => 'Соңку өзгөртүүлөрдүн ырастоолору',
 'recentchanges-summary' => 'Уикидеги соңку өзгөрүүлөрдү ушул барактан көзөмөлдө.',
 'recentchanges-feed-description' => 'Ушул агымдагы уикидеги соңку өзгөрүүлөрдү көзөмөлдө.',
-'recentchanges-label-newpage' => 'Бул оңдоо жаңы баракты жаратты',
+'recentchanges-label-newpage' => 'Бул оңдоодон жаңы барак түзүлдү',
 'recentchanges-label-minor' => 'Бул майда оңдоо',
 'recentchanges-label-bot' => 'Бул оңдоо бот тарабынан жасалды',
-'recentchanges-label-unpatrolled' => 'Бул оңдоо көзөмөлдөн өтө элек.',
+'recentchanges-label-unpatrolled' => 'Бул оңдоо күзөттөн өтө элек.',
 'rcnote' => "Ылдый жакта $5, $4 карата соңку {{PLURAL:$2|күндө|'''$2''' күндө}} жасалган {{PLURAL:$1| '''1''' өзгөрүү| '''$1''' өзгөрүү}}.",
 'rcnotefrom' => "'''$2''' -тан өзгөрүүлөр ылдый жакта ('''$1''' чейин көрсөтүлдү).",
 'rclistfrom' => '$1 күнүнөн баштап жаңы өзгөртүүлөрдү көрсөтүү',
 'rcshowhideminor' => 'Майда оңдоолорду $1',
 'rcshowhidebots' => 'ботторду $1',
-'rcshowhideliu' => '$1 ÐºÐ°Ñ\82Ñ\82алган ÐºÐ°Ñ\82Ñ\8bÑ\88уучу',
-'rcshowhideanons' => '$1 Ð¶Ð°Ñ\88Ñ\8bÑ\80Ñ\83Ñ\83н ÐºÐ°Ñ\82Ñ\8bÑ\88уучу',
-'rcshowhidepatr' => 'Көзөмөл алдындагы оңдоолорду $1',
+'rcshowhideliu' => '$1 ÐºÐ°Ñ\82Ñ\82алган ÐºÐ¾Ð»Ð´Ð¾Ð½уучу',
+'rcshowhideanons' => '$1 Ð¶Ð°Ñ\88Ñ\8bÑ\80Ñ\83Ñ\83н ÐºÐ¾Ð»Ð´Ð¾Ð½уучу',
+'rcshowhidepatr' => 'Күзөттөө алдындагы оңдоолорду $1',
 'rcshowhidemine' => 'Оңдоолорумду $1',
 'rclinks' => 'Соңку $2 күндө жасалган акыркы $1 өзгөртүүлөрдү көрсөтүү<br />$3',
 'diff' => 'айырма',
@@ -909,34 +974,47 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 'rc-enhanced-hide' => 'Кошумча маалыматтарды жашыруу',
 
 # Recent changes linked
-'recentchangeslinked' => 'ТиеÑ\88елүү өзгөрүүлөр',
+'recentchangeslinked' => 'Ð\91айланÑ\8bÑ\88Ñ\82Ñ\83Ñ\83 өзгөрүүлөр',
 'recentchangeslinked-feed' => 'Тиешелүү өзгөрүүлөр',
 'recentchangeslinked-toolbox' => 'Байланыштуу өзгөрүүлөр',
 'recentchangeslinked-title' => '"$1" үчүн тийиштүү өзгөртүүлөр',
-'recentchangeslinked-noresult' => 'Берилген мөөнөттө шилтемеленген барактарда өзгөртүү жок.',
 'recentchangeslinked-summary' => 'Бул көрсөтүлгөн (же көрсөтүлгөн категорияга кирген) барактан шилтемеленген барактардагы жакын арада жасалган өзгөрүүлөрдүн тизмеси.
 [[Special:Watchlist|Көзөмөл тизмеңиз]]деги барактар калын арип менен белгиленген.',
-'recentchangeslinked-page' => 'Барактын аталышы',
+'recentchangeslinked-page' => 'Барактын аталышы:',
 'recentchangeslinked-to' => 'Белгиленген барактан шилтемеленген барактардын ордуна өзгөртүулөрдү көрсөтүү',
 
 # Upload
 'upload' => 'Файлды жүктөө',
 'uploadbtn' => 'Файлды жүктөө',
 'uploaderror' => 'Жүктөө катасы',
+'uploadtext' => "Cүрөт жүктөш үчүн астыдагы форманы колдонуңуз.
+Мурда жүктөлгөн сүрөттөрдү издеп көрүш үчүн  [[Special:FileList|жүктөлгөн сүрөттөрдүн тизмеси]]не кириңиз, кайра жүктөлгөндөр да [[Special:Log/upload|жүктөлгөндөр тизмеси]] журналында жазылышат, өчүрүлгөндөр да [[Special:Log/delete|өчүрүлгөндөр тизмеси]] журналында сакталат.
+
+To include a file in a page, use a link in one of the following forms:
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' to use the full version of the file
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' to use a 200 pixel wide rendition in a box in the left margin with 'alt text' as description
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' for directly linking to the file without displaying the file",
+'upload-permitted' => 'Уруксат болгон файл типтери: $1.',
 'uploadlog' => 'жүктөө журналы',
-'uploadlogpage' => 'Жүктөөлөрдүн тизмеси',
-'filename' => 'Файл аты',
-'filedesc' => 'Ð\9aÑ\8bÑ\81ка Ñ\82Ò¯Ñ\88үндүÑ\80мө',
+'uploadlogpage' => 'Жүктөөлөр журналы',
+'filename' => 'Файл аталышы',
+'filedesc' => 'Ð\96Ñ\8bйÑ\8bнÑ\82Ñ\8bгÑ\8b',
 'fileuploadsummary' => 'Кыскача баяндама:',
 'filereuploadsummary' => 'Файлдагы өзгөрүүлөр:',
 'filesource' => 'Булак:',
 'uploadedfiles' => 'Жүктөлгөн файлдар',
+'ignorewarnings' => 'Болгон эскертүүлөрдү этибар албоо',
+'filetype-banned-type' => '\'\'\'".$1"\'\'\' {{PLURAL:$4|уруксат болбогон файл тиби|уруксат болбогон файл типтери}}.
+Уруксат болгон {{PLURAL:$3|файл тиби|файл типтери}} $2.',
 'savefile' => 'Файлды сактоо',
 'uploadedimage' => '"[[$1]]" жүктөлдү',
 'upload-source' => 'Баштапкы файл',
 'sourcefilename' => 'Булактын файл аты:',
 'sourceurl' => 'Булактын URL-дареги:',
+'destfilename' => 'Файлдын аталышы:',
+'upload-maxfilesize' => 'Максималдуу файл өлчөмү: $1',
 'upload-description' => 'Файл баяндамасы',
+'upload-options' => 'Жүктөө варианты',
 'upload-success-subj' => 'Ийгиликтүү жүктөлдү',
 'upload-failure-subj' => 'Жүктөө көйгөйү',
 
@@ -959,7 +1037,7 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 'listfiles_thumb' => 'Миниатюра',
 'listfiles_date' => 'Дата',
 'listfiles_name' => 'Ат',
-'listfiles_user' => 'Ð\9aаÑ\82Ñ\8bÑ\88уучу',
+'listfiles_user' => 'Ð\9aолдонуучу',
 'listfiles_size' => 'Өлчөм',
 'listfiles_description' => 'Баяндама',
 'listfiles_count' => 'Версиялар',
@@ -967,35 +1045,35 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 # File description page
 'file-anchor-link' => 'Файл',
 'filehist' => 'Файлдын тарыхы',
-'filehist-help' => 'Файлдын ошол учурдагы көрүнүшүн кароо үчүн күнү/сааты бөлүмүнө басыңыз',
+'filehist-help' => 'Файлдын ошол учурдагы көрүнүшүн көрүү үчүн күнү/сааты бөлүмүн басыңыз',
 'filehist-deleteall' => 'баарын өчүрүү',
 'filehist-deleteone' => 'өчүрүү',
 'filehist-revert' => 'кайтаруу',
-'filehist-current' => 'кезектеги',
+'filehist-current' => 'учурдагы',
 'filehist-datetime' => 'Дата/Убакыт',
 'filehist-thumb' => 'Миниатюра',
 'filehist-thumbtext' => '$1 -дагы версиясы үчүн кичирейтилген сүрөтү',
 'filehist-nothumb' => 'Миниатюра жок',
-'filehist-user' => 'Ð\9aаÑ\82Ñ\8bÑ\88уучу',
+'filehist-user' => 'Ð\9aолдонуучу',
 'filehist-dimensions' => 'Өлчөмдөр',
 'filehist-filesize' => 'Файл өлчөмү',
-'filehist-comment' => 'ЭÑ\81кеÑ\80Ñ\82Ò¯Ò¯',
+'filehist-comment' => 'Ð\9aомменÑ\82аÑ\80ий',
 'filehist-missing' => 'Файл жок болот',
 'imagelinks' => 'Файлды колдонуу',
-'linkstoimage' => 'Бул файлга болгон {{PLURAL:$1|шилтеме|$1 шилтеме}} :',
+'linkstoimage' => 'Бул файлга болгон {{PLURAL:$1|шилтеме|$1 шилтемелер}} :',
 'nolinkstoimage' => 'Бул файлга шилтеме берген барак жок.',
 'sharedupload-desc-here' => 'Бул файл $1 -дан  жана башка долбоорлордо пайдаланылышы мүмкүн.
 Төмөндө анын [$2 файлды сыпаттоо барагы]нан сыпаттамасы көрсөтүлгөн.',
 
 # File reversion
-'filerevert-comment' => 'Себеп:',
+'filerevert-comment' => 'Себеби:',
 
 # File deletion
 'filedelete' => '$1 — өчүрүү',
 'filedelete-legend' => 'Файлды өчүрүү',
-'filedelete-comment' => 'Себеп:',
+'filedelete-comment' => 'Себеби:',
 'filedelete-submit' => 'Өчүрүү',
-'filedelete-reason-otherlist' => 'Ð\91аÑ\88ка Ñ\81ебеп',
+'filedelete-reason-otherlist' => 'Ð\91аÑ\88ка Ñ\81ебеби',
 'filedelete-maintenance-title' => 'Файлды өчүрүү оңунан чыкпай жатат',
 
 # MIME search
@@ -1004,7 +1082,7 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 'download' => 'жүктөп алуу',
 
 # Unused templates
-'unusedtemplates' => 'Колдонулбаган шаблондор',
+'unusedtemplates' => 'Колдонулбаган калыптар',
 'unusedtemplateswlh' => 'башка шилтемелер',
 
 # Random page
@@ -1013,10 +1091,10 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 # Statistics
 'statistics' => 'Статистика',
 'statistics-header-views' => 'Көрүү статистикасы',
-'statistics-header-users' => 'Ð\9aоолдонÑ\83Ñ\83Ñ\87Ñ\83лаÑ\80дÑ\8bн Ñ\81Ñ\82аÑ\82иÑ\81Ñ\82икаÑ\81Ñ\8b',
+'statistics-header-users' => 'Колдонуучулардын статистикасы',
 'statistics-header-hooks' => 'Башка статистика',
 'statistics-articles' => 'Макалалар',
-'statistics-pages' => 'Барак',
+'statistics-pages' => 'Барактар',
 'statistics-files' => 'Жүктөлгөн файлдар',
 
 'disambiguationspage' => 'Template:көп маанилүү',
@@ -1028,12 +1106,12 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 'withoutinterwiki-submit' => 'Көрсөтүү',
 
 # Miscellaneous special pages
-'nbytes' => '$1 {{PLURAL:$1|байт|байт}}',
-'nmembers' => '$1{{PLURAL:$1|мүчө|мүчө}}',
-'uncategorizedpages' => 'Категияланбаган барактар',
-'uncategorizedcategories' => 'Категияланбаган категориялар',
-'uncategorizedimages' => 'Категияланбаган файлдар',
-'uncategorizedtemplates' => 'Ð\9aаÑ\82егиÑ\8fланбаган Ñ\88аблондор',
+'nbytes' => '$1 {{PLURAL:$1|байт}}',
+'nmembers' => '$1{{PLURAL:$1|мүчө|мүчөлөр}}',
+'uncategorizedpages' => 'Ð\9aаÑ\82егоÑ\80иÑ\8fланбаган Ð±Ð°Ñ\80акÑ\82аÑ\80',
+'uncategorizedcategories' => 'Ð\9aаÑ\82егоÑ\80иÑ\8fланбаган ÐºÐ°Ñ\82егоÑ\80иÑ\8fлаÑ\80',
+'uncategorizedimages' => 'Ð\9aаÑ\82егоÑ\80иÑ\8fланбаган Ñ\84айлдаÑ\80',
+'uncategorizedtemplates' => 'Ð\9aаÑ\82егоÑ\80иÑ\8fланбаган ÐºÐ°Ð»Ñ\8bпÑ\82ар',
 'unusedcategories' => 'Колдонулбаган категориялар',
 'unusedimages' => 'Колдонулбаган файлдар',
 'popularpages' => 'Популярдуу барактар',
@@ -1043,10 +1121,10 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 'wantedtemplates' => 'Керек болгон шаблондор',
 'prefixindex' => 'Бардык барактар префикстери менен',
 'shortpages' => 'Кыска макалалар',
-'listusers' => 'Ð\9aаÑ\82Ñ\8bÑ\88уучулар тизмеси',
+'listusers' => 'Ð\9aолдонуучулар тизмеси',
 'usercreated' => "$1 күнү $2'да {{GENDER:$3|катталды}}.",
 'newpages' => 'Жаңы барактар',
-'newpages-username' => 'Ð\9aаÑ\82Ñ\8bÑ\88уучунун аты:',
+'newpages-username' => 'Ð\9aолдонуучунун аты:',
 'ancientpages' => 'Эң эски барактар',
 'move' => 'Аталышын өзгөртүү',
 'movethispage' => 'Бул барактын атын өзгөртүү',
@@ -1056,11 +1134,11 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 # Book sources
 'booksources' => 'Китеп тууралуу маалыматтар',
 'booksources-search-legend' => 'Китеп тууралуу маалыматтарды издөө',
-'booksources-go' => 'ТабÑ\83Ñ\83',
+'booksources-go' => 'Ð\90лга',
 
 # Special:Log
 'specialloguserlabel' => 'Аткаруучу:',
-'speciallogtitlelabel' => 'Ð\90Ñ\82алÑ\8bÑ\88Ñ\8b:',
+'speciallogtitlelabel' => 'Ð\9cакÑ\81аÑ\82Ñ\8b (аÑ\82алÑ\8bÑ\88Ñ\8b Ð¶Ðµ ÐºÐ¾Ð»Ð´Ð¾Ð½Ñ\83Ñ\83Ñ\87Ñ\83):',
 'log' => 'Журналдар',
 
 # Special:AllPages
@@ -1069,7 +1147,7 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 'nextpage' => 'Кийинки барак ($1)',
 'prevpage' => 'Мурунку барак ($1)',
 'allpagesfrom' => '-дан башталган барактарды көрсөтүү:',
-'allarticles' => 'Бүт барактар',
+'allarticles' => 'Бардык барактар',
 'allinnamespace' => '«$1» ат мейкиндигинин бүт барактары',
 'allnotinnamespace' => 'Бүт барактар («$1» ат мейкиндигинен башка)',
 'allpagesprev' => 'Абалкы',
@@ -1086,14 +1164,14 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 
 # Special:ListUsers
 'listusers-submit' => 'Көрсөтүү',
-'listusers-noresult' => 'Ð\9aаÑ\82Ñ\8bÑ\88уучу табылган жок.',
-'listusers-blocked' => '(блокировкаланды)',
+'listusers-noresult' => 'Ð\9aолдонуучу табылган жок.',
+'listusers-blocked' => '(бөгөттөлгөн)',
 
 # Special:ActiveUsers
-'activeusers' => 'Ð\90кÑ\82ивдүү ÐºÐ°Ñ\82Ñ\8bÑ\88уучулардын тизмеси',
+'activeusers' => 'Ð\90кÑ\82ивдүү ÐºÐ¾Ð»Ð´Ð¾Ð½уучулардын тизмеси',
 'activeusers-hidebots' => 'Ботторду жашыруу',
 'activeusers-hidesysops' => 'Администраторлорду жашыруу',
-'activeusers-noresult' => 'Ð\9aаÑ\82Ñ\8bÑ\88уучулар табылган жок.',
+'activeusers-noresult' => 'Ð\9aолдонуучулар табылган жок.',
 
 # Special:ListGroupRights
 'listgrouprights-group' => 'Топ',
@@ -1102,8 +1180,8 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 'listgrouprights-members' => '(мүчөлөрдүн тизмеси)',
 
 # Email user
-'emailuser' => 'Ð\91Ñ\83л ÐºÐ°Ñ\82Ñ\8bÑ\88уучуга кат жиберүү',
-'emailusername' => 'Ð\9aаÑ\82Ñ\8bÑ\88уучунун аты:',
+'emailuser' => 'Ð\91Ñ\83л ÐºÐ¾Ð»Ð´Ð¾Ð½уучуга кат жиберүү',
+'emailusername' => 'Ð\9aолдонуучунун аты:',
 'emailusernamesubmit' => 'Жөнөтүү',
 'emailfrom' => '- дан',
 'emailto' => 'Кимге:',
@@ -1132,9 +1210,9 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 'delete-legend' => 'Өчүрүү',
 'actioncomplete' => 'Иш-аракет жыйынтыкталды',
 'actionfailed' => 'Аракет натыйжасыз болду',
-'dellogpage' => 'Өчүрүүлөрдүн журналы',
-'deletecomment' => 'Себеп:',
-'deletereasonotherlist' => 'Ð\91аÑ\88ка Ñ\81ебеп',
+'dellogpage' => 'Өчүрүүлөр журналы',
+'deletecomment' => 'Себеби:',
+'deletereasonotherlist' => 'Ð\91аÑ\88ка Ñ\81ебеби',
 
 # Rollback
 'rollbacklink' => 'кайтаруу',
@@ -1142,8 +1220,8 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 # Protect
 'protectlogpage' => 'Коргоо тизмеси',
 'protectedarticle' => '"[[$1]]" корголгон',
-'protectcomment' => 'Себеп:',
-'protect-level-sysop' => 'Администраторлор гана',
+'protectcomment' => 'Себеби:',
+'protect-level-sysop' => 'Администраторлор гана уруксат',
 'protect-othertime' => 'Башка убакыт:',
 'protect-othertime-op' => 'башка убакыт',
 'restriction-type' => 'Укуктар:',
@@ -1152,16 +1230,16 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 # Restrictions (nouns)
 'restriction-edit' => 'Оңдоо',
 'restriction-move' => 'Атын өзгөртүү',
-'restriction-create' => 'Ð\96аÑ\80аÑ\82Ñ\83Ñ\83',
+'restriction-create' => 'Түзүү',
 'restriction-upload' => 'Жүктөө',
 
 # Restriction levels
-'restriction-level-all' => 'бүт деңгээлдер',
+'restriction-level-all' => 'бардык деңгээлдер',
 
 # Undelete
 'undeletebtn' => 'Калыбына келтирүү',
 'undeletelink' => 'кароо/калыбына келтирүү',
-'undeleteviewlink' => 'кароо',
+'undeleteviewlink' => 'көрүнүшү',
 'undeletereset' => 'Түшүрүү',
 'undeletecomment' => 'Себеп:',
 'undelete-search-submit' => 'Издөө',
@@ -1173,21 +1251,21 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 'blanknamespace' => '(Негизги)',
 
 # Contributions
-'contributions' => '{{GENDER:$1|Ð\9aаÑ\82Ñ\8bÑ\88уучунун}} салымдары',
-'contributions-title' => '$1 Ò¯Ñ\87үн ÐºÐ°Ñ\82Ñ\8bÑ\88уучунун салымдары',
+'contributions' => '{{GENDER:$1|Ð\9aолдонуучунун}} салымдары',
+'contributions-title' => '$1 Ò¯Ñ\87үн ÐºÐ¾Ð»Ð´Ð¾Ð½уучунун салымдары',
 'mycontris' => 'Салымдар',
 'contribsub2' => '$1 үчүн ($2)',
-'uctop' => '(Ñ\81оңкÑ\83)',
-'month' => 'Айынан (же андан мурун):',
-'year' => 'Ð\96Ñ\8bлÑ\8bнан (жана Ð°Ð½Ð´Ð°Ð½ Ð¼Ñ\83Ñ\80Ñ\83н):',
+'uctop' => '(Ñ\83Ñ\87Ñ\83Ñ\80дагÑ\8b)',
+'month' => 'Айынан (же андан мурдараак):',
+'year' => 'Ð\96Ñ\8bлÑ\8bнан (же Ð°Ð½Ð´Ð°Ð½ Ð¼Ñ\83Ñ\80даÑ\80аак):',
 
-'sp-contributions-newbies' => 'Жаңы эсеп жазуулардын гана салымдарын көрсөтүү',
-'sp-contributions-blocklog' => 'тосмолоолордун журналы',
+'sp-contributions-newbies' => 'Жаңы эсептерден кылынган салымдарды көрсөтүү',
+'sp-contributions-blocklog' => 'бөгөттөөлөр журналы',
 'sp-contributions-uploads' => 'жүктөөлөр',
 'sp-contributions-logs' => 'журналдар',
 'sp-contributions-talk' => 'талкуулоо',
 'sp-contributions-search' => 'Салымдарымды издөө',
-'sp-contributions-username' => 'IP-даÑ\80ек Ð¶Ðµ ÐºÐ°Ñ\82Ñ\8bÑ\88уучунун аты:',
+'sp-contributions-username' => 'IP-даÑ\80ек Ð¶Ðµ ÐºÐ¾Ð»Ð´Ð¾Ð½уучунун аты:',
 'sp-contributions-toponly' => 'Соңку версиялары болгон оңдоолорду гана көрсөтүү',
 'sp-contributions-submit' => 'Издөө',
 
@@ -1197,48 +1275,48 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 'whatlinkshere-page' => 'Барак:',
 'linkshere' => "'''[[:$1]]''' барагына шилтеме берген барактар:",
 'nolinkshere' => "'''[[:$1]]''' барагына шилтеме берген барак жок.",
-'isredirect' => 'кайÑ\80а Ð±Ð°Ð³Ñ\8bÑ\82Ñ\82оо Ð±Ð°Ñ\80агÑ\8b',
-'istemplate' => 'коÑ\88Ñ\83Ñ\83',
+'isredirect' => 'Ð\91агÑ\8bÑ\82Ñ\82ама Ð±Ð°Ñ\80ак',
+'istemplate' => 'биÑ\80икÑ\82иÑ\80Ò¯Ò¯',
 'isimage' => 'файл шилтемеси',
 'whatlinkshere-prev' => '{{PLURAL:$1|мурунку}}',
 'whatlinkshere-next' => '{{PLURAL:$1|кийинки}}',
 'whatlinkshere-links' => '← шилтемелер',
-'whatlinkshere-hideredirs' => 'Ð\91агÑ\8bÑ\82Ñ\82оолоÑ\80дÑ\83 $1',
-'whatlinkshere-hidetrans' => '$1 ÐºÐ¾Ñ\88Ñ\83Ñ\83лаÑ\80Ñ\8b',
+'whatlinkshere-hideredirs' => 'Ð\91агÑ\8bÑ\82Ñ\82амалаÑ\80дÑ\8b $1',
+'whatlinkshere-hidetrans' => '$1 Ð±Ð¸Ñ\80икÑ\82иÑ\80үүлөÑ\80',
 'whatlinkshere-hidelinks' => 'Шилтемелерди $1',
 'whatlinkshere-hideimages' => '$1 файл шилтемелери',
-'whatlinkshere-filters' => 'ФилÑ\8cÑ\82Ñ\80лер',
+'whatlinkshere-filters' => 'ЧÑ\8bпкалар',
 
 # Block/unblock
-'block' => 'Ð\9aаÑ\82Ñ\8bÑ\88Ñ\83Ñ\83Ñ\87Ñ\83нÑ\83 Ð±Ð»Ð¾ÐºÐ¸Ñ\80овкалоо',
-'blockip' => 'Колдонуучунуу бөгөттө',
-'blockip-title' => 'Колдонуучунуу бөгөттө',
-'blockip-legend' => 'Колдонуучуну бөгөттө',
-'ipadressorusername' => 'IP-даÑ\80ек Ð¶Ðµ ÐºÐ°Ñ\82Ñ\8bÑ\88Ñ\83Ñ\83Ñ\87Ñ\83 аты:',
+'block' => 'Ð\9aолдонÑ\83Ñ\83Ñ\87Ñ\83нÑ\83 Ð±Ó©Ð³Ó©Ñ\82Ñ\82Ó©Ó©',
+'blockip' => 'Колдонуучуну бөгөттөө',
+'blockip-title' => 'Колдонуучуну бөгөттөө',
+'blockip-legend' => 'Колдонуучуну бөгөттөө',
+'ipadressorusername' => 'IP-даÑ\80ек Ð¶Ðµ ÐºÐ¾Ð»Ð´Ð¾Ð½Ñ\83Ñ\83Ñ\87Ñ\83нÑ\83н аты:',
 'ipbreason' => 'Себеп:',
 'ipbreasonotherlist' => 'Башка себеп',
-'ipbsubmit' => 'Бул колдонуучуну бөгөттө',
+'ipbsubmit' => 'Бул колдонуучуну бөгөттөө',
 'ipbother' => 'Башка убакыт:',
 'ipboptions' => '2 саат:2 hours,1 күн:1 day,3 күн:3 days,1 жума:1 week,2 жума:2 weeks,1 ай:1 month,3 ай:3 months,6 ай:6 months,1 жыл:1 year,мөөнөтсүз:infinite',
 'ipbotheroption' => 'башка',
-'ipblocklist' => 'ТоÑ\81молонгон ÐºÐ°Ñ\82Ñ\8bÑ\88уучулар',
+'ipblocklist' => 'Ð\91өгөÑ\82Ñ\82өлгөн ÐºÐ¾Ð»Ð´Ð¾Ð½уучулар',
 'blocklist-target' => 'Максат',
 'blocklist-reason' => 'Себеп',
 'ipblocklist-submit' => 'Издөө',
 'anononlyblock' => 'анонимдер гана',
 'emailblock' => 'кат жөнөтүүгө тыюу салынган',
 'ipblocklist-empty' => 'Бөгөт тизмеси бош.',
-'blocklink' => 'бөгөттө',
-'unblocklink' => 'бөгөттөн чыгар',
-'change-blocklink' => 'бөгөттү өзгөрт',
+'blocklink' => 'бөгөттөө',
+'unblocklink' => 'бөгөттөн чыгаруу',
+'change-blocklink' => 'бөгөттү өзгөртүү',
 'contribslink' => 'салымдары',
 'emaillink' => 'кат жиберүү',
-'blocklogpage' => 'ТоÑ\81молоолоÑ\80дÑ\83н журналы',
-'blocklogentry' => '[[$1]] тосмолонду, тосмолоо мөөнөтү: $2 $3',
-'block-log-flags-anononly' => 'анонимдик катышуучулар гана',
+'blocklogpage' => 'Ð\91өгөÑ\82Ñ\82өөлөÑ\80 журналы',
+'blocklogentry' => '[[$1]] бөгөттөлдү, бөгөттөө мөөнөтү: $2 $3',
+'block-log-flags-anononly' => 'аноним колдонуучулар гана',
 'block-log-flags-nocreate' => 'эсеп жазуусун жаратуу өчүрүлгөн',
 'block-log-flags-noemail' => 'кат жөнөтүүгө тыюу салынган',
-'block-log-flags-hiddenname' => 'каÑ\82Ñ\8bÑ\88уучу аты жашырылган',
+'block-log-flags-hiddenname' => 'колдонуучу аты жашырылган',
 'blockme' => 'Мени бөгөттө',
 'proxyblocker' => 'Проксини блокировкалоо',
 
@@ -1250,56 +1328,56 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 'move-page' => '$1 — атын өзгөртүү',
 'move-page-legend' => 'Барактын атын өзгөртүү',
 'movearticle' => 'Барактын атын өзгөртүү:',
-'movenologin' => 'Сиз система кирген жоксуз',
-'newtitle' => 'Жаңы ат:',
+'movenologin' => 'Системге кирген жоксуз',
+'newtitle' => 'Жаңы аталышка:',
 'movepagebtn' => 'Барактын атын өзгөртүү',
 'pagemovedsub' => 'Барактын аты өзгөртүлдү',
-'movepage-moved-redirect' => 'Ð\91агÑ\8bÑ\82Ñ\82оо Ð¶Ð°Ñ\80аÑ\82Ñ\8bлдÑ\8b.',
-'movelogpage' => 'Аталыштардын өзгөртүлүш тарыхы',
+'movepage-moved-redirect' => 'Ð\91агÑ\8bÑ\82Ñ\82ама Ñ\82үзүлдү.',
+'movelogpage' => 'Аталыштарды өзгөртүү тарыхы',
 'movereason' => 'Себеп:',
 'revertmove' => 'кайтаруу',
 'delete_and_move' => 'Өчүрүү же атын өзгөртүү',
 'delete_and_move_confirm' => 'Ооба, бул баракты өчүрөм',
-'immobile-source-page' => 'Бул барактын атын өзгөртсө болбойт.',
+'immobile-source-page' => 'Бул барактын атын өзгөртүүгө болбойт.',
 'imageinvalidfilename' => 'Максаттык файл аты туура эмес',
-'move-leave-redirect' => 'Ð\91агÑ\8bÑ\82Ñ\82оонÑ\83 калтыруу',
+'move-leave-redirect' => 'Ð\91агÑ\8bÑ\82Ñ\82аманÑ\8b калтыруу',
 
 # Export
 'export' => 'Барактарды экспорттоо',
-'exportall' => 'Бүт барактарды экспорттоо',
+'exportall' => 'Бардык барактарды экспорттоо',
 'export-submit' => 'Экспорттоо',
 'export-addcattext' => 'Категориядан барактарды кошуу:',
 'export-addcat' => 'Кошуу',
 'export-addnstext' => 'Ат мейкиндигинен барактарды кошуу:',
 'export-addns' => 'Кошуу',
 'export-download' => 'Файлга ат коюп сактоо',
-'export-templates' => 'Ð\9aалÑ\8bпÑ\82аÑ\80дÑ\8b ÐºÐ¾Ñ\88уу',
+'export-templates' => 'Ð\9aалÑ\8bпÑ\82аÑ\80дÑ\8b ÐºÐ°Ð¼Ñ\82уу',
 
 # Namespace 8 related
 'allmessages' => 'Системалык билдирүүлөр',
-'allmessagesname' => 'Ат',
+'allmessagesname' => 'Аталышы',
 'allmessagesdefault' => 'Белгиленген билдирүүнүн тексти',
 'allmessagescurrent' => 'Учурдагы текст',
-'allmessages-filter-legend' => 'ФилÑ\8cÑ\82Ñ\80',
+'allmessages-filter-legend' => 'ЧÑ\8bпка',
 'allmessages-filter-unmodified' => 'Өзгөртүлбөгөндөр',
-'allmessages-filter-all' => 'Баары',
+'allmessages-filter-all' => 'Баардыгы',
 'allmessages-filter-modified' => 'Өзгөртүлгөндөр',
-'allmessages-prefix' => 'Префикс боюнча филтрдөө:',
-'allmessages-language' => 'Тил:',
+'allmessages-prefix' => 'Префикси боюнча чыпкалоо:',
+'allmessages-language' => 'Тили:',
 'allmessages-filter-submit' => 'Өтүү',
 
 # Thumbnails
 'thumbnail-more' => 'Чоңойтуу',
 'filemissing' => 'Файл табылган жок',
-'thumbnail_error' => 'Кичирейтилген сүрөттү түзүүдө ката: $1',
+'thumbnail_error' => 'Кичирейтилген сүрөттү түзүүдөгү ката: $1',
 'thumbnail_image-type' => 'Сүрөт түрү колдолбойт',
 
 # Special:Import
 'import' => 'Барактарды импорттоо',
 'importinterwiki' => 'Уики аралык импорт',
 'import-interwiki-source' => 'Уики-булак/барак:',
-'import-interwiki-history' => 'Бул барактын бүт өзгөртүү тарыхын көчүрүү',
-'import-interwiki-templates' => 'Бүт калыптарды кошуу',
+'import-interwiki-history' => 'Бул барактын бүткүл өзгөртүү тарыхын көчүрүү',
+'import-interwiki-templates' => 'Бардык калыптарды камтуу',
 'import-interwiki-submit' => 'Импорттоо',
 'import-interwiki-namespace' => 'Максаттык ат мейкиндиги:',
 'import-interwiki-rootpage' => 'Максаттык түпкү барагы (сөзсүз эмес):',
@@ -1314,7 +1392,7 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 'importcantopen' => 'Импорт файлын ачууга мүмкүн эмес',
 'importbadinterwiki' => 'Туура эмес интеруики-шилтеме',
 'importnotext' => 'Бош же тексти жок',
-'importsuccess' => 'Ð\98мпоÑ\80Ñ\82Ñ\82оо Ð°Ñ\8fкÑ\82алдÑ\8b!',
+'importsuccess' => 'Импорттоо аяктады!',
 'importnofile' => 'Импорттоо файлы жүктөлгөн жок.',
 'importuploaderrorpartial' => 'Импорт файлын жүктөө оңунан чыккан жок.
 Ал жарым-жартылай эле жүктөлдү.',
@@ -1338,17 +1416,17 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 'javascripttest-title' => '$1 үчүн текшерүү жүргүзүлүп жатат',
 
 # Tooltip help for the actions
-'tooltip-pt-userpage' => 'Ð\9aаÑ\82Ñ\8bÑ\88уучу барагыңыз',
-'tooltip-pt-mytalk' => 'ТалкÑ\83Ñ\83лоо барагыңыз',
+'tooltip-pt-userpage' => 'Ð\9aолдонуучу барагыңыз',
+'tooltip-pt-mytalk' => 'Ð\91ааÑ\80лаÑ\88Ñ\83Ñ\83 барагыңыз',
 'tooltip-pt-anontalk' => 'Бул IP дарекке арналган талкуулоо барагы',
 'tooltip-pt-preferences' => 'Ырастоолоруңуз',
 'tooltip-pt-watchlist' => 'Өзгөрүүлөрүн көзөмөлгө алган барактардын тизмеси',
 'tooltip-pt-mycontris' => 'Салымдарыңыздын тизмеси',
 'tooltip-pt-login' => 'Сизге системада катталууга сунуш кылынат, бирок милдеттүү эмес',
-'tooltip-pt-logout' => 'Ð\98Ñ\88 Ñ\81еанÑ\81Ñ\8bн Ð°Ñ\8fкÑ\82оо',
+'tooltip-pt-logout' => 'ЧÑ\8bгÑ\83Ñ\83',
 'tooltip-ca-talk' => 'Барактын мазмунун талкуулоо',
 'tooltip-ca-edit' => 'Сиз бул баракты оңдой аласыз. Кичи пейилдикке, сактоодон мурда алдын ала көрсөтүү баскычын колдонуңуз.',
-'tooltip-ca-addsection' => 'Жаңы бөлүмдү жаратуу',
+'tooltip-ca-addsection' => 'Жаңы бөлүм баштоо',
 'tooltip-ca-viewsource' => 'Бул барак корголгон.
 Сиз анын кайнарын көрө аласыз',
 'tooltip-ca-history' => 'Бул барактын мурунку оңдоолору',
@@ -1359,38 +1437,38 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 'tooltip-ca-unwatch' => 'Бул баракты көзөмөл тизмеңизден алып салыңыз',
 'tooltip-search' => '{{SITENAME}} издөө',
 'tooltip-search-go' => 'Так ушундай аталыштагы баракты көрсөтүү',
-'tooltip-search-fulltext' => 'УÑ\88Ñ\83л Ñ\82екÑ\81Ñ\82 Ð¼ÐµÐ½ÐµÐ½ барактарды издөө',
+'tooltip-search-fulltext' => 'УÑ\88Ñ\83л Ñ\82екÑ\81Ñ\82 Ð±Ð°Ñ\80 барактарды издөө',
 'tooltip-p-logo' => 'Башбаракка өтүү',
 'tooltip-n-mainpage' => 'Башбаракка өтүү',
 'tooltip-n-mainpage-description' => 'Башбаракка өтүү',
-'tooltip-n-portal' => 'Долбоор тууралуу, эмне жасай аласыз, кайсы жерде эмне бар жөнүндө',
+'tooltip-n-portal' => 'Долбоор тууралуу, эмне жасай аласыз, кайдан тапса болот',
 'tooltip-n-currentevents' => 'Учурдагы окуялар тууралуу кошумча маалымат табуу',
-'tooltip-n-recentchanges' => 'Уикидеги соңку өзгөртүүлөрдүн тизмеси',
+'tooltip-n-recentchanges' => 'уикидеги соңку өзгөртүүлөрдүн тизмеси',
 'tooltip-n-randompage' => 'Тушкелди баракты ачып кара',
 'tooltip-n-help' => 'Маалымат алуу үчүн',
 'tooltip-t-whatlinkshere' => 'Ушул жерге шилтемеси бар бардык уики барактардын тизмеси',
 'tooltip-t-recentchangeslinked' => 'Бул барактан шилтеме берилген барактардагы соңку өзгөрүүлөр',
 'tooltip-feed-atom' => 'Бул барак үчүн Atom агымы',
-'tooltip-t-contributions' => 'Ð\91Ñ\83л ÐºÐ°Ñ\82Ñ\8bÑ\88уучунун салымдарынын тизмеси',
-'tooltip-t-emailuser' => 'Ð\91Ñ\83л ÐºÐ°Ñ\82Ñ\8bÑ\88уучуга кат жиберүү',
+'tooltip-t-contributions' => 'Ð\91Ñ\83л ÐºÐ¾Ð»Ð´Ð¾Ð½уучунун салымдарынын тизмеси',
+'tooltip-t-emailuser' => 'Ð\91Ñ\83л ÐºÐ¾Ð»Ð´Ð¾Ð½уучуга кат жиберүү',
 'tooltip-t-upload' => 'Файлдарды жүктөө',
-'tooltip-t-specialpages' => 'Бүт кызмат барактарынын тизмеси',
+'tooltip-t-specialpages' => 'Бардык кызматтык барактардын тизмеги',
 'tooltip-t-print' => 'Бул барактын басып чыгарууга ылайыктуу түрү',
 'tooltip-t-permalink' => 'Барактын бул версиясына туруктуу шилтеме',
 'tooltip-ca-nstab-main' => 'Барактын мазмунун кароо',
-'tooltip-ca-nstab-user' => 'Ð\9aаÑ\82Ñ\8bÑ\88уучунун барагын көрсөтүү',
+'tooltip-ca-nstab-user' => 'Ð\9aолдонуучунун барагын көрсөтүү',
 'tooltip-ca-nstab-media' => 'Медиа барагын көрүү',
-'tooltip-ca-nstab-special' => 'Бул кызмат барагы, аны оңдой албайсыз',
-'tooltip-ca-nstab-project' => 'Долбоор барагын көрүү',
-'tooltip-ca-nstab-image' => 'Файл барагын көрүү',
-'tooltip-ca-nstab-mediawiki' => 'Системалык билдирүүсүн көрүү',
-'tooltip-ca-nstab-template' => 'Калыпты көрүү',
-'tooltip-ca-nstab-help' => 'Жардам барагын көрүү',
-'tooltip-ca-nstab-category' => 'Категория барагын көрүү',
+'tooltip-ca-nstab-special' => 'Бул кызматтык барак, сиз аны оңдой албайсыз',
+'tooltip-ca-nstab-project' => 'Долбоор барагы',
+'tooltip-ca-nstab-image' => 'Файл барагын кароо',
+'tooltip-ca-nstab-mediawiki' => 'Системалык билдирүүсүн кароо',
+'tooltip-ca-nstab-template' => 'Калыпты кароо',
+'tooltip-ca-nstab-help' => 'Жардам барагын кароо',
+'tooltip-ca-nstab-category' => 'Категория барагын кароо',
 'tooltip-minoredit' => 'Муну майда оңдоо деп белгилөө',
 'tooltip-save' => 'Өзгөртүүлөрүңүздү сактоо',
-'tooltip-preview' => 'Ð\9aиÑ\87и Ð¿ÐµÐ¹Ð»Ð´Ð¸ÐºÐºÐµ, Ó©Ð·Ð³Ó©Ñ\80Ñ\82үүлөÑ\80дү Ð°Ð»Ð´Ñ\8bн Ð°Ð»Ð° ÐºÓ©Ñ\80Ñ\81Ó©Ñ\82үүнү Ñ\81акÑ\82оодон Ð¼Ñ\83Ñ\80Ñ\83н колдонуңуз!',
-'tooltip-diff' => 'Тексттке киргизген өзгөртүүлөрдү көрсөтүү',
+'tooltip-preview' => 'СÑ\83Ñ\80анÑ\8bÑ\87, Ñ\81акÑ\82оодон Ð¼Ñ\83Ñ\80да Ó©Ð·Ð³Ó©Ñ\80Ñ\82үүлөÑ\80дү Ð°Ð»Ð´Ñ\8bн Ð°Ð»Ð° ÐºÓ©Ñ\80Ñ\81Ó©Ñ\82үүнү  колдонуңуз!',
+'tooltip-diff' => 'Текстке киргизилген өзгөртүүлөрүңүздү көрсөтүү',
 'tooltip-compareselectedversions' => 'Бул барактын тандалган эки версиясынын айырмаларын кароо',
 'tooltip-watch' => 'Бул баракты көзөмөл тизмеңизге кошуңуз',
 'tooltip-watchlistedit-raw-submit' => 'Көзөмөл тизмесин жаңыртуу',
@@ -1402,18 +1480,18 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 
 # Attribution
 'others' => 'башкалар',
-'anonusers' => '{{SITENAME}} анонимдик {{PLURAL:$2|катышуучу}} $1',
+'anonusers' => '{{SITENAME}} аноним {{PLURAL:$2|колдонуучу}} $1',
 'creditspage' => 'Алкыштар',
 
 # Info page
 'pageinfo-title' => '«$1» үчүн маалымат',
 'pageinfo-header-basic' => 'Негизги маалыматтар',
 'pageinfo-header-edits' => 'Оңдоо тарыхы',
-'pageinfo-display-title' => 'Көрсөтүлгөн башжазуусу',
+'pageinfo-display-title' => 'Көрүнүүчү башжазуу',
 'pageinfo-article-id' => 'Барактын идентификатору',
-'pageinfo-views' => 'Көрүү саны',
-'pageinfo-redirects-name' => 'Ð\91Ñ\83л Ð±Ð°Ñ\80акка Ð±Ð°Ð³Ñ\8bÑ\82Ñ\82оолор',
-'pageinfo-firstuser' => 'Барактын жаратуучусу',
+'pageinfo-views' => 'Кароолордун саны',
+'pageinfo-redirects-name' => 'Ð\91Ñ\83л Ð±Ð°Ñ\80акка Ð±Ð°Ð³Ñ\8bÑ\82Ñ\82амалар',
+'pageinfo-firstuser' => 'Барактын түзүүчүсү',
 'pageinfo-lastuser' => 'Акыркы редактор',
 'pageinfo-toolboxlink' => 'Барак жөнүндө маалымат',
 'pageinfo-redirectsto-info' => 'маалыматтар',
@@ -1421,11 +1499,11 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 'pageinfo-protect-cascading-yes' => 'Ооба',
 
 # Patrol log
-'patrol-log-page' => 'Ð\9fаÑ\82Ñ\80Ñ\83лдоо журналы',
+'patrol-log-page' => 'Ð\9aүзөÑ\82Ñ\82Ó©Ó© журналы',
 
 # Browsing diffs
-'previousdiff' => 'â\86\90 Ð­Ñ\81киÑ\81ин оңдоо',
-'nextdiff' => 'Ð\96аңÑ\8bÑ\81Ñ\8bн оңдоо →',
+'previousdiff' => 'â\86\90 Ð­Ñ\81киÑ\80Ñ\8dÑ\8dк оңдоо',
+'nextdiff' => 'Ð\96аңÑ\8bÑ\80аак оңдоо →',
 
 # Media information
 'file-info-size' => '$1 × $2 пиксель, файлдын көлөмү: $3, MIME түрү: $4',
@@ -1436,9 +1514,9 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 
 # Special:NewFiles
 'newimages' => 'Жаңы файлдардын галереясы',
-'newimages-legend' => 'ФилÑ\8cÑ\82Ñ\80',
+'newimages-legend' => 'ЧÑ\8bпка',
 'newimages-label' => 'Файл аты (же анын жартысы):',
-'showhidebots' => '($1 бот)',
+'showhidebots' => '($1 боттор)',
 'noimages' => 'Көрүүгө эчтеке жок.',
 'ilsubmit' => 'Издөө',
 'bydate' => 'дата боюнча',
@@ -1448,7 +1526,7 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 'minutes' => '{{PLURAL:$1|$1 мүнөт}}',
 'hours' => '{{PLURAL:$1|$1 саат}}',
 'days' => '{{PLURAL:$1|$1 күн}}',
-'ago' => '$1 мурун',
+'ago' => '$1 мурда',
 'just-now' => 'азыр эле',
 
 # Bad image list
@@ -1480,7 +1558,7 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 
 # Exif tags
 'exif-imagewidth' => 'Туурасы',
-'exif-imagelength' => 'Ð\91ийикÑ\82ик',
+'exif-imagelength' => 'Ð\91ийикÑ\82иги',
 'exif-imagedescription' => 'Сүрөт аты',
 'exif-artist' => 'Автор',
 'exif-pixelydimension' => 'Сүрөттүн туурасы',
@@ -1490,7 +1568,7 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 'exif-fnumber' => 'Диафрагманын саны',
 'exif-lightsource' => 'Жарыктын булагы',
 'exif-flash' => 'Жарк',
-'exif-filesource' => 'Файл булагы',
+'exif-filesource' => 'Файлдын булагы',
 'exif-scenetype' => 'Сахнанын түрү',
 'exif-contrast' => 'Карама-каршылык',
 'exif-gpslatitude' => 'Кеңдик',
@@ -1503,11 +1581,11 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 'exif-keywords' => 'Ачкыч сөздөр',
 'exif-countrydest' => 'Көрсөтүлгөн өлкө',
 'exif-citydest' => 'Көрсөтүлгөн шаар',
-'exif-objectname' => 'Кыска ат',
+'exif-objectname' => 'Кыска аталышы',
 'exif-source' => 'Булак',
 'exif-contact' => 'Байланыш маалыматы',
 'exif-writer' => 'Тексттин автору',
-'exif-languagecode' => 'Тил',
+'exif-languagecode' => 'Тили',
 'exif-iimversion' => 'IIM версиясы',
 'exif-iimcategory' => 'Категория',
 'exif-identifier' => 'Идентификатор',
@@ -1603,7 +1681,7 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 'exif-iimcategory-sci' => 'Илим жана техника',
 'exif-iimcategory-soi' => 'Социалдык маселелер',
 'exif-iimcategory-spo' => 'Спорт',
-'exif-iimcategory-wea' => 'Аба ырайы',
+'exif-iimcategory-wea' => 'Аба-ырайы',
 
 # External editor support
 'edit-externally' => 'Бул файлды сырткы программа колдонуу аркылуу оңдоо',
@@ -1620,7 +1698,7 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 'confirmemail_loggedin' => 'Электрондук дарегиңиз аныкталды.',
 
 # Delete conflict
-'recreate' => 'Ð\9aайÑ\82адан Ð¶Ð°Ñ\80аÑ\82Ñ\83Ñ\83',
+'recreate' => 'Ð\9aайÑ\80адан Ñ\82үзүү',
 
 # action=purge
 'confirm_purge_button' => 'OK',
@@ -1641,20 +1719,20 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 'table_pager_next' => 'Кийинки барак',
 'table_pager_prev' => 'Мурунку барак',
 'table_pager_first' => 'Биринчи барак',
-'table_pager_last' => 'Ð\90кÑ\8bÑ\80кÑ\8b барак',
+'table_pager_last' => 'СоңкÑ\83 барак',
 'table_pager_limit_submit' => 'Аткаруу',
 'table_pager_empty' => 'Табылган жок',
 
 # Live preview
-'livepreview-loading' => 'Жүктөө...',
-'livepreview-ready' => 'Жүктөө… Даяр!',
+'livepreview-loading' => 'Жүктөлүүдө...',
+'livepreview-ready' => 'Жүктөлүүдө… Даяр!',
 
 # Watchlist editor
 'watchlistedit-raw-titles' => 'Жазуулар:',
 'watchlistedit-raw-submit' => 'Көзөмөл тизмесин жаңыртуу',
 
 # Watchlist editing tools
-'watchlisttools-view' => 'Тийиштүү өзгөрүүлөрдү көрсөтүү',
+'watchlisttools-view' => 'Тийиштүү өзгөрүүлөрдү кароо',
 'watchlisttools-edit' => 'Көзөмөл тизмесин кароо жана оңдоо',
 'watchlisttools-raw' => 'Жетиле элек көзөмөл тизмени оңдоо',
 
@@ -1664,7 +1742,7 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 # Special:Version
 'version' => 'Версия',
 'version-extensions' => 'Орнотулган кеңейтүүлөр',
-'version-specialpages' => 'Кызмат барактары',
+'version-specialpages' => 'Кызматтык барактар',
 'version-variables' => 'Өзгөрмөлөр',
 'version-skins' => 'Темалар',
 'version-other' => 'Башка',
@@ -1700,7 +1778,7 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 #Туруктуу айтылыштардын бөлүмдөрүн ушул саптын үстүнө жайгаштыр. Бул сапты болгондой калтыруу.</pre>',
 
 # Special:Tags
-'tag-filter' => '[[Special:Tags|Ð\91елги]] Ñ\84илÑ\8cÑ\82Ñ\80и:',
+'tag-filter' => '[[Special:Tags|Ð\91елги]] Ñ\8dлеги:',
 'tag-filter-submit' => 'Фильтрдөө',
 'tags-title' => 'Белгилер',
 'tags-tag' => 'Белгинин аты',
@@ -1727,15 +1805,15 @@ HTML-тегдеринин тууралыгын текшериңиз.',
 'htmlform-selectorother-other' => 'Башка',
 
 # New logging system
-'logentry-delete-delete' => '$1 ÐºÐ°Ñ\82Ñ\8bÑ\88уучу $3 барагын өчүрдү',
+'logentry-delete-delete' => '$1 ÐºÐ¾Ð»Ð´Ð¾Ð½уучу $3 барагын өчүрдү',
 'revdelete-content-hid' => 'мазмун жашырылган',
 'revdelete-summary-hid' => 'оңдоонун баяндамасы жашырылган',
 'revdelete-uname-hid' => 'катышуучу аты жашырылган',
 'revdelete-unrestricted' => 'администраторлор үчүн чектөөлөр алынды',
-'logentry-newusers-newusers' => '$1 эсеп жазуусу жаратылды',
-'logentry-newusers-create' => '$1 эсеп жазуусу жаратылды',
-'logentry-newusers-create2' => '$1 эсеп жазуусун жаратты',
-'logentry-newusers-autocreate' => 'Автоматтуу түрдө $1 эсеп жазуусу жаратылды',
+'logentry-newusers-newusers' => '$1 эсеп жазуусу түзүлдү',
+'logentry-newusers-create' => '$1 эсеп жазуусу түзүлдү',
+'logentry-newusers-create2' => '$1 эсеп жазуусун түздү',
+'logentry-newusers-autocreate' => 'Автоматтуу түрдө $1 эсеп жазуусу түзүлдү',
 'rightsnone' => '(жок)',
 
 # Feedback
index c7d808e..d5e9742 100644 (file)
@@ -12,6 +12,7 @@
  * @author Autokrator
  * @author Dferg
  * @author Esteban97
+ * @author Geitost
  * @author Kaganer
  * @author LeighvsOptimvsMaximvs
  * @author MF-Warburg
@@ -71,91 +72,92 @@ $dateFormats = array(
 );
 
 $specialPageAliases = array(
-       'Allmessages'               => array( 'Nuntia systematis' ),
-       'Allpages'                  => array( 'Paginae omnes', 'Omnes paginae' ),
-       'Ancientpages'              => array( 'Paginae veterrimae' ),
-       'Blankpage'                 => array( 'Pagina vacua' ),
-       'Block'                     => array( 'Usorem obstruere' ),
-       'Blockme'                   => array( 'Usor obstructus' ),
-       'Booksources'               => array( 'Librorum fontes' ),
-       'BrokenRedirects'           => array( 'Redirectiones fractae' ),
+       'Allmessages'               => array( 'Nuntia_systematis' ),
+       'Allpages'                  => array( 'Paginae_omnes', 'Omnes_paginae' ),
+       'Ancientpages'              => array( 'Paginae_veterrimae' ),
+       'Blankpage'                 => array( 'Pagina_vacua' ),
+       'Block'                     => array( 'Usorem_obstruere' ),
+       'Blockme'                   => array( 'Usor_obstructus' ),
+       'Booksources'               => array( 'Librorum_fontes' ),
+       'BrokenRedirects'           => array( 'Redirectiones_fractae' ),
        'Categories'                => array( 'Categoriae' ),
-       'ChangePassword'            => array( 'Tesseram novam creare' ),
-       'Confirmemail'              => array( 'Inscriptionem electronicam confirmare' ),
-       'Contributions'             => array( 'Conlationes', 'Conlationes usoris' ),
-       'CreateAccount'             => array( 'Rationem creare' ),
-       'Deadendpages'              => array( 'Paginae sine nexu' ),
-       'DeletedContributions'      => array( 'Conlationes deletae', 'Conlationes usoris deletae' ),
-       'Disambiguations'           => array( 'Paginae disambiguationis', 'Disambiguationes' ),
-       'DoubleRedirects'           => array( 'Redirectiones duplices' ),
-       'Emailuser'                 => array( 'Litteras electronicas usori mittere', 'Littera electronica' ),
-       'Export'                    => array( 'Exportare', 'Paginas exportare' ),
-       'Fewestrevisions'           => array( 'Paginae minime mutatae' ),
-       'FileDuplicateSearch'       => array( 'Quaerere fasciculos duplices', 'Quaerere imagines duplices' ),
-       'Import'                    => array( 'Importare', 'Paginas importare' ),
-       'Invalidateemail'           => array( 'Adfimationem inscriptionis electronicae abrogare' ),
-       'BlockList'                 => array( 'Usores obstructi' ),
-       'LinkSearch'                => array( 'Quaerere nexus externos' ),
+       'ChangePassword'            => array( 'Tesseram_novam_creare' ),
+       'Confirmemail'              => array( 'Inscriptionem_electronicam_confirmare' ),
+       'Contributions'             => array( 'Conlationes', 'Conlationes_usoris' ),
+       'CreateAccount'             => array( 'Rationem_creare' ),
+       'Deadendpages'              => array( 'Paginae_sine_nexu' ),
+       'DeletedContributions'      => array( 'Conlationes_deletae', 'Conlationes_usoris_deletae' ),
+       'Disambiguations'           => array( 'Paginae_disambiguationis', 'Disambiguationes' ),
+       'DoubleRedirects'           => array( 'Redirectiones_duplices' ),
+       'Emailuser'                 => array( 'Litteras_electronicas_usori_mittere', 'Littera_electronica' ),
+       'Export'                    => array( 'Exportare', 'Paginas_exportare' ),
+       'Fewestrevisions'           => array( 'Paginae_minime_mutatae' ),
+       'FileDuplicateSearch'       => array( 'Quaerere_fasciculos_duplices', 'Quaerere_imagines_duplices' ),
+       'Import'                    => array( 'Importare', 'Paginas_importare' ),
+       'Invalidateemail'           => array( 'Adfimationem_inscriptionis_electronicae_abrogare' ),
+       'BlockList'                 => array( 'Usores_obstructi' ),
+       'LinkSearch'                => array( 'Quaerere_nexus_externos' ),
        'Listadmins'                => array( 'Magistratus' ),
        'Listbots'                  => array( 'Automata' ),
        'Listfiles'                 => array( 'Fasciculi', 'Imagines' ),
-       'Listgrouprights'           => array( 'Gregum usorum potestates', 'Iura gregum' ),
+       'Listgrouprights'           => array( 'Gregum_usorum_potestates', 'Iura_gregum' ),
        'Listredirects'             => array( 'Redirectiones' ),
        'Listusers'                 => array( 'Usores' ),
-       'Lockdb'                    => array( 'Basem datorum obstruere' ),
+       'Lockdb'                    => array( 'Basem_datorum_obstruere' ),
        'Log'                       => array( 'Acta' ),
-       'Lonelypages'               => array( 'Paginae non annexae' ),
-       'Longpages'                 => array( 'Paginae longae' ),
-       'MergeHistory'              => array( 'Historias paginarum confundere' ),
-       'MIMEsearch'                => array( 'Quaerere per MIME' ),
-       'Mostcategories'            => array( 'Paginae plurimis categoriis' ),
-       'Mostimages'                => array( 'Fasciculi maxime annexi', 'Imagines maxime annexae' ),
-       'Mostlinked'                => array( 'Paginae maxime annexae' ),
-       'Mostlinkedcategories'      => array( 'Categoriae maxime annexae' ),
-       'Mostlinkedtemplates'       => array( 'Formulae maxime annexae' ),
-       'Mostrevisions'             => array( 'Paginae plurimum mutatae' ),
-       'Movepage'                  => array( 'Paginam movere', 'Movere' ),
-       'Mycontributions'           => array( 'Conlationes meae' ),
-       'Mypage'                    => array( 'Pagina mea' ),
-       'Mytalk'                    => array( 'Disputatio mea' ),
-       'Newimages'                 => array( 'Fasciculi novi', 'Imagines novae' ),
-       'Newpages'                  => array( 'Paginae novae' ),
-       'Popularpages'              => array( 'Paginae saepe monstratae' ),
+       'Lonelypages'               => array( 'Paginae_non_annexae' ),
+       'Longpages'                 => array( 'Paginae_longae' ),
+       'MergeHistory'              => array( 'Historias_paginarum_confundere' ),
+       'MIMEsearch'                => array( 'Quaerere_per_MIME' ),
+       'Mostcategories'            => array( 'Paginae_plurimis_categoriis' ),
+       'Mostimages'                => array( 'Fasciculi_maxime_annexi', 'Imagines_maxime_annexae' ),
+       'Mostlinked'                => array( 'Paginae_maxime_annexae' ),
+       'Mostlinkedcategories'      => array( 'Categoriae_maxime_annexae' ),
+       'Mostlinkedtemplates'       => array( 'Formulae_maxime_annexae' ),
+       'Mostrevisions'             => array( 'Paginae_plurimum_mutatae' ),
+       'Movepage'                  => array( 'Paginam_movere', 'Movere' ),
+       'Mycontributions'           => array( 'Conlationes_meae' ),
+       'Mypage'                    => array( 'Pagina_mea' ),
+       'Mytalk'                    => array( 'Disputatio_mea' ),
+       'Newimages'                 => array( 'Fasciculi_novi', 'Imagines_novae' ),
+       'Newpages'                  => array( 'Paginae_novae' ),
+       'Popularpages'              => array( 'Paginae_saepe_monstratae' ),
        'Preferences'               => array( 'Praeferentiae' ),
-       'Prefixindex'               => array( 'Praefixa', 'Quaerere per praefixa' ),
-       'Protectedpages'            => array( 'Paginae protectae' ),
-       'Protectedtitles'           => array( 'Tituli protecti' ),
-       'Randompage'                => array( 'Pagina fortuita' ),
-       'Randomredirect'            => array( 'Redirectio fortuita' ),
-       'Recentchanges'             => array( 'Nuper mutata', 'Mutationes recentes' ),
-       'Recentchangeslinked'       => array( 'Nuper mutata annexorum' ),
-       'Revisiondelete'            => array( 'Emendationem delere' ),
+       'Prefixindex'               => array( 'Praefixa', 'Quaerere_per_praefixa' ),
+       'Protectedpages'            => array( 'Paginae_protectae' ),
+       'Protectedtitles'           => array( 'Tituli_protecti' ),
+       'Randompage'                => array( 'Pagina_fortuita' ),
+       'Randomredirect'            => array( 'Redirectio_fortuita' ),
+       'Recentchanges'             => array( 'Nuper_mutata', 'Mutationes_recentes' ),
+       'Recentchangeslinked'       => array( 'Nuper_mutata_annexorum' ),
+       'Redirect'                  => array( 'Redirectio' ),
+       'Revisiondelete'            => array( 'Emendationem_delere' ),
        'Search'                    => array( 'Quaerere' ),
-       'Shortpages'                => array( 'Paginae breves' ),
-       'Specialpages'              => array( 'Paginae speciales' ),
+       'Shortpages'                => array( 'Paginae_breves' ),
+       'Specialpages'              => array( 'Paginae_speciales' ),
        'Statistics'                => array( 'Census' ),
-       'Uncategorizedcategories'   => array( 'Categoriae sine categoriis' ),
-       'Uncategorizedimages'       => array( 'Fasciculi sine categoriis', 'Imagines sine categoriis' ),
-       'Uncategorizedpages'        => array( 'Paginae sine categoriis' ),
-       'Uncategorizedtemplates'    => array( 'Formulae sine categoriis' ),
-       'Undelete'                  => array( 'Paginam restituere' ),
-       'Unlockdb'                  => array( 'Basem datorum deobstruere' ),
-       'Unusedcategories'          => array( 'Categoriae non in usu', 'Categoriae vacuae' ),
-       'Unusedimages'              => array( 'Fasciculi non in usu', 'Imagines non in usu' ),
-       'Unusedtemplates'           => array( 'Formulae non in usu' ),
-       'Unwatchedpages'            => array( 'Paginae incustoditae' ),
-       'Upload'                    => array( 'Fasciculos onerare', 'Imagines onerare' ),
-       'Userlogin'                 => array( 'Conventum aperire' ),
-       'Userlogout'                => array( 'Conventum concludere' ),
-       'Userrights'                => array( 'Usorum potestates', 'Iura usorum' ),
+       'Uncategorizedcategories'   => array( 'Categoriae_sine_categoriis' ),
+       'Uncategorizedimages'       => array( 'Fasciculi_sine_categoriis', 'Imagines_sine_categoriis' ),
+       'Uncategorizedpages'        => array( 'Paginae_sine_categoriis' ),
+       'Uncategorizedtemplates'    => array( 'Formulae_sine_categoriis' ),
+       'Undelete'                  => array( 'Paginam_restituere' ),
+       'Unlockdb'                  => array( 'Basem_datorum_deobstruere' ),
+       'Unusedcategories'          => array( 'Categoriae_non_in_usu', 'Categoriae_vacuae' ),
+       'Unusedimages'              => array( 'Fasciculi_non_in_usu', 'Imagines_non_in_usu' ),
+       'Unusedtemplates'           => array( 'Formulae_non_in_usu' ),
+       'Unwatchedpages'            => array( 'Paginae_incustoditae' ),
+       'Upload'                    => array( 'Fasciculos_onerare', 'Imagines_onerare' ),
+       'Userlogin'                 => array( 'Conventum_aperire' ),
+       'Userlogout'                => array( 'Conventum_concludere' ),
+       'Userrights'                => array( 'Usorum_potestates', 'Iura_usorum' ),
        'Version'                   => array( 'Versio' ),
-       'Wantedcategories'          => array( 'Categoriae desideratae' ),
-       'Wantedfiles'               => array( 'Fasciculi desiderati', 'Imagines desideratae' ),
-       'Wantedpages'               => array( 'Paginae desideratae', 'Nexus fracti' ),
-       'Wantedtemplates'           => array( 'Formulae desideratae' ),
-       'Watchlist'                 => array( 'Paginae custoditae' ),
-       'Whatlinkshere'             => array( 'Nexus ad paginam' ),
-       'Withoutinterwiki'          => array( 'Paginae sine nexibus ad linguas alias', 'Paginae sine nexibus intervicis' ),
+       'Wantedcategories'          => array( 'Categoriae_desideratae' ),
+       'Wantedfiles'               => array( 'Fasciculi_desiderati', 'Imagines_desideratae' ),
+       'Wantedpages'               => array( 'Paginae_desideratae', 'Nexus_fracti' ),
+       'Wantedtemplates'           => array( 'Formulae_desideratae' ),
+       'Watchlist'                 => array( 'Paginae_custoditae' ),
+       'Whatlinkshere'             => array( 'Nexus_ad_paginam' ),
+       'Withoutinterwiki'          => array( 'Paginae_sine_nexibus_ad_linguas_alias', 'Paginae_sine_nexibus_intervicis' ),
 );
 
 $messages = array(
@@ -380,7 +382,6 @@ $messages = array(
 'disclaimers' => 'Repudiationes',
 'disclaimerpage' => 'Project:Repudiationes',
 'edithelp' => 'Opes recensendi',
-'edithelppage' => 'Help:De recensendo',
 'helppage' => 'Help:Adiutatum',
 'mainpage' => 'Pagina prima',
 'mainpage-description' => 'Pagina prima',
@@ -523,7 +524,7 @@ Noli oblivisci [[Special:Preferences|praeferentias]] tuas apud {{grammar:accusat
 'userlogout' => 'Conventum concludere',
 'notloggedin' => 'Conventum non est apertum',
 'userlogin-noaccount' => 'Num rationem non habes?',
-'nologin' => "Num rationem non habes? '''$1'''.",
+'nologin' => 'Num rationem non habes? $1.',
 'nologinlink' => 'Eam crea',
 'createaccount' => 'Rationem novam creare',
 'gotaccount' => "Habesne iam rationem? '''$1'''.",
@@ -571,7 +572,7 @@ Plurimas non licet creare. Ergo, ex hoc loco IP rationes plurimas hodie creari n
 'emailauthenticated' => 'Tua inscriptio electronica recognita est $3, $2.',
 'emailconfirmlink' => 'Inscriptionem tuam electronicam adfirmare',
 'accountcreated' => 'Ratio creata',
-'accountcreatedtext' => 'Ratio pro usore $1 creata est.',
+'accountcreatedtext' => 'Ratio pro usore [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|disputatio]]) creata est.',
 'createaccount-title' => 'Ratio creata apud {{grammar:accusative|{{SITENAME}}}}',
 'createaccount-text' => 'Aliquis creavit rationem pro inscriptione electronica tua apud {{grammar:accusative|{{SITENAME}}}} ($4). Nomen usoris est "$2" et tessera est "$3". Conventum aperias et statim tesseram tuam mutes.
 
@@ -722,7 +723,7 @@ Nobis etiam spondes te esse ipsum horum verborum scriptorem primum, aut ex opere
 'template-semiprotected' => '(semi-protecta)',
 'hiddencategories' => 'Haec pagina ad {{PLURAL:$1|unam categoriam celatam|$1 categorias celatas}} pertinet:',
 'nocreate-loggedin' => 'Tibi non licet paginas novas creare.',
-'permissionserrors' => 'Errores permissionis',
+'permissionserrors' => 'Error permissionis',
 'permissionserrorstext-withaction' => 'Tibi non licet $2, ex {{PLURAL:$1|ratione|rationibus}}:',
 'recreate-moveddeleted-warn' => "'''Cave: paginam qui antea iam deleta est creas.'''
 
@@ -853,7 +854,6 @@ Titulus: '''({{int:cur}})''' = dissimilis ab emendatione novissima,
 'searchmenu-legend' => 'Optiones',
 'searchmenu-exists' => "'''Iam est pagina \"[[:\$1]]\"'''",
 'searchmenu-new' => "'''Creare paginam \"[[:\$1]]\"'''",
-'searchhelp-url' => 'Help:Adiutatum',
 'searchprofile-articles' => 'Paginae contentorum',
 'searchprofile-project' => 'Paginae adiutati et incepti',
 'searchprofile-images' => 'Multimedia',
@@ -917,7 +917,6 @@ Conare praefixare tua inquisitionem cum ''all:'' ut quaeras contenta omnia (pagi
 'saveprefs' => 'Servare praeferentias',
 'resetprefs' => 'Reddere praeferentias',
 'prefs-editing' => 'Mensura capsae verbi',
-'prefs-edit-boxsize' => 'Magnitudo capsae recensionis.',
 'rows' => 'Lineae:',
 'columns' => 'Columnae:',
 'searchresultshead' => 'Figuratio eventorum investigationis',
@@ -950,7 +949,6 @@ Conare praefixare tua inquisitionem cum ''all:'' ut quaeras contenta omnia (pagi
 'prefs-custom-css' => 'CSS proprium',
 'prefs-custom-js' => 'JS proprium',
 'prefs-emailconfirm-label' => 'Adfirmatio inscriptionis electronicae:',
-'prefs-textboxsize' => 'Magnitudo capsae recensionis',
 'youremail' => 'Inscriptio electronica:',
 'username' => 'Nomen usoris:',
 'uid' => 'ID usoris:',
@@ -1138,7 +1136,7 @@ Si vis id dare, opera tua tibi ascribentur.',
 'uploadbtn' => 'Fasciculum imponere',
 'reuploaddesc' => 'Siste imponere et ad imponendi formam redi',
 'uploadnologin' => 'Conventum non est apertum',
-'uploadnologintext' => 'Oportet [[Special:UserLogin|aperire conventum]] ut fasciculos imponas.',
+'uploadnologintext' => 'Necesse est tibi $1 priusquam fasciculos imponas.',
 'uploaderror' => 'Imponendi erratum',
 'uploadtext' => "Utere formam subter ad fasciculos imponendos.
 Ut fasciculos antea impositos videas aut quaeras, adi ad [[Special:FileList|indicem fasciculorum impositorum]]. Fasciculi impositi et deleti quoque in [[Special:Log/upload|notatione fasciculorum impositorum]] notantur.
@@ -1494,7 +1492,6 @@ Mutationes posthac huic paginae et paginae disputationis ibi notabuntur.',
 'unwatchthispage' => 'Abrogare custoditum',
 'notanarticle' => 'Res non est',
 'notvisiblerev' => 'Emendatio deleta est',
-'watchnochange' => 'Nullae paginarum custoditarum tuarum recensitae sunt in hoc tempore.',
 'watchlist-details' => '{{PLURAL:$1|$1 pagina|$1 paginae}} in indice paginarum custoditarum tuarum, sine paginis disputationis.',
 'watchmethod-recent' => 'recensita recenta quaerens pro pagina custodita',
 'watchmethod-list' => 'paginas custoditas quaerens pro recensitis recentibus',
@@ -2344,7 +2341,6 @@ Quaesumus, adfirma ut iterum hanc paginam crees.",
 'version-variables' => 'Variabilia',
 'version-other' => 'Alia',
 'version-hooks' => 'Extensiones',
-'version-extension-functions' => 'Functiones extensionum',
 'version-parser-function-hooks' => 'Extensiones functionum programmatis analysis lexicalis',
 'version-hook-name' => 'Nomen extensionis',
 'version-hook-subscribedby' => 'Subscriptum ab',
index 9cdcb10..a37941c 100644 (file)
@@ -34,8 +34,8 @@ $namespaceNames = array(
        NS_TEMPLATE_TALK    => 'Diskusyón_de_Xablón',
        NS_HELP             => 'Ayudo',
        NS_HELP_TALK        => 'Diskusyón_de_Ayudo',
-       NS_CATEGORY         => 'Katēggoría',
-       NS_CATEGORY_TALK    => 'Diskusyón_de_Katēggoría',
+       NS_CATEGORY         => 'Kateggoría',
+       NS_CATEGORY_TALK    => 'Diskusyón_de_Kateggoría',
 );
 
 $namespaceAliases = array(
@@ -66,8 +66,8 @@ $namespaceAliases = array(
        'Xabblón'                  => NS_TEMPLATE,
        'Diskusyón_de_Xabblón'     => NS_TEMPLATE_TALK,
        'Diskussión_de_Ayudo'      => NS_HELP_TALK,
-       'Kateggoría'               => NS_CATEGORY,
-       'Diskussión_de_Kateggoría' => NS_CATEGORY_TALK,
+       'Katēggoría'               => NS_CATEGORY,
+       'Diskusyón_de_Katēggoría'  => NS_CATEGORY_TALK,
 );
 
 // Remove Spanish gender aliases (bug 37090)
@@ -410,7 +410,6 @@ $messages = array(
 'disclaimers' => 'Refuso de responsabilitá',
 'disclaimerpage' => 'Project:Refuso de responsabilitá jeneral',
 'edithelp' => '¿Cómo se la troca?',
-'edithelppage' => 'Help:Una hoja, ¿cómodo se la troca?',
 'helppage' => 'Help:Contènidos',
 'mainpage' => 'La Primera Hoja',
 'mainpage-description' => 'La Primera Hoja',
@@ -670,7 +669,6 @@ Leyenda: (act) = diferencias con la versión actual,
 'viewprevnext' => 'Ver ($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-exists' => 'Egziste una oja yamada "[[:$1]]" en esta viki',
 'searchmenu-new' => "'''Crîar la hoja «[[:$1]]» en esta viki!'''",
-'searchhelp-url' => 'Help:Ayudo',
 'searchprofile-articles' => 'Hojas de contènido',
 'searchprofile-project' => 'Hojas de ayudo y hojas de projeto',
 'searchprofile-images' => 'Multimedya',
@@ -794,7 +792,6 @@ Las búsquedas producen más o munco a buscar biervos comunes como «la» o «de
 'recentchangeslinked-feed' => 'Trocamientos conectados',
 'recentchangeslinked-toolbox' => 'Trocamientos relatados',
 'recentchangeslinked-title' => 'Los trocamientos relacionados con "$1"',
-'recentchangeslinked-noresult' => 'Sin trokamientos en las ójas atadas en la data demandada',
 'recentchangeslinked-summary' => "Esto es la lista de los trocamientos de alcavo de las hojas que relatan á una hoja spēcifik (ou de los miembros de la katēggoría spēcifikada).
 Las hojas en tu [[Special:Watchlist|lista de akavidamiento]] son escritas '''con letras grexas'''.",
 'recentchangeslinked-page' => 'Nombre de la hoja',
index af55371..a3b36b9 100644 (file)
@@ -7,6 +7,7 @@
  * @ingroup Language
  * @file
  *
+ * @author Geitost
  * @author Hercule
  * @author Kaffi
  * @author Kaganer
@@ -116,6 +117,7 @@ $specialPageAliases = array(
        'Randomredirect'            => array( 'Zoufälleg_Viruleedung' ),
        'Recentchanges'             => array( 'Rezent_Ännerungen' ),
        'Recentchangeslinked'       => array( 'Ännerungen_op_verlinkte_Säiten' ),
+       'Redirect'                  => array( 'Viruleedung' ),
        'Revisiondelete'            => array( 'Versioun_läschen' ),
        'Search'                    => array( 'Sichen' ),
        'Shortpages'                => array( 'Kuerz_Säiten' ),
@@ -382,6 +384,7 @@ $messages = array(
 'create-this-page' => 'Dës Säit uleeën',
 'delete' => 'Läschen',
 'deletethispage' => 'Dës Säit läschen',
+'undeletethispage' => 'Dës Säit restauréieren',
 'undelete_short' => '$1 {{PLURAL:$1|Versioun|Versioune}} restauréieren',
 'viewdeleted_short' => '{{PLURAL:$1|Eng geläschte Versioun|$1 geläscht Versioune}} weisen',
 'protect' => 'Spären',
@@ -435,7 +438,6 @@ $1",
 'disclaimers' => 'Impressum',
 'disclaimerpage' => 'Project:Impressum',
 'edithelp' => 'Hëllef beim Änneren',
-'edithelppage' => 'Help:Wéi änneren ech eng Säit',
 'helppage' => 'Help:Hëllef',
 'mainpage' => 'Haaptsäit',
 'mainpage-description' => 'Haaptsäit',
@@ -584,6 +586,10 @@ $2',
 'namespaceprotected' => "Dir hutt net déi néideg Rechter fir d'Säiten am Nummraum '''$1''' ze änneren.",
 'customcssprotected' => "Dir hutt net d'Recht dës CSS-Säit z'änneren, well dorop déi perséinlech Astellunge vun engem anere Benotzer gespäichert sinn.",
 'customjsprotected' => "Dir hutt net d'Recht dës JavaScript-Säit z'änneren, well dorop déi perséinlech Astellunge vun engem anere Benotzer gespäichert sinn.",
+'mycustomcssprotected' => "Dir hutt net déi néideg Rechter fir dës CSS-Säit z'änneren.",
+'mycustomjsprotected' => "Dir hutt net déi néideg Rechter fir dës JavaScript-Säit z'änneren.",
+'myprivateinfoprotected' => "Dir hutt net d'Recht fir Är privat Informatiounen z'änneren.",
+'mypreferencesprotected' => "Dir hutt net d'Recht fir Är Astellungen z'änneren.",
 'ns-specialprotected' => 'Spezialsäite kënnen net verännert ginn.',
 'titleprotected' => "Eng Säit mat dësem Numm kann net ugeluecht ginn. Dës Spär gouf vum [[User:$1|$1]] gemaach deen als Grond ''$2'' uginn huet.",
 'filereadonlyerror' => 'De Fichier "$1" konnt net geännert ginn well de Repertoire vun de Fichieren "$2" nëmme geliest däerf ginn.
@@ -611,6 +617,7 @@ Vergiesst net fir Är [[Special:Preferences|{{SITENAME}} Astellungen]] z'ännere
 'yourname' => 'Benotzernumm:',
 'userlogin-yourname' => 'Benotzernumm',
 'userlogin-yourname-ph' => 'Gitt Äre Benotzernumm an',
+'createacct-another-username-ph' => 'De Benotzernumm aginn:',
 'yourpassword' => 'Passwuert:',
 'userlogin-yourpassword' => 'Passwuert',
 'userlogin-yourpassword-ph' => 'Gitt Ärt Passwuert an',
@@ -635,7 +642,7 @@ Vergiesst net fir Är [[Special:Preferences|{{SITENAME}} Astellungen]] z'ännere
 'notloggedin' => 'Net ageloggt',
 'userlogin-noaccount' => 'Hutt Dir kee Benotzerkont?',
 'userlogin-joinproject' => 'Maacht mat bäi {{SITENAME}}',
-'nologin' => "Hutt Dir kee Benotzerkont? '''$1'''.",
+'nologin' => 'Hutt Dir kee Benotzerkont? $1.',
 'nologinlink' => 'Neie Benotzerkont maachen',
 'createaccount' => 'Neie Kont opmaachen',
 'gotaccount' => "Dir hutt schonn e Benotzerkont? '''$1'''.",
@@ -643,11 +650,13 @@ Vergiesst net fir Är [[Special:Preferences|{{SITENAME}} Astellungen]] z'ännere
 'userlogin-resetlink' => "Hutt Dir d'Detailer vun Ärem Login vergiess?",
 'userlogin-resetpassword-link' => 'Setzt Ärt Passwuert zréck',
 'helplogin-url' => 'Help:Aloggen',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hëllef beim aloggen]]',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hëllef beim Aloggen]]',
 'createacct-join' => 'Gitt Är Informatioune hei drënner an.',
+'createacct-another-join' => "Gitt d'Informatioune fir den neie Benotzerkont hei drënner an.",
 'createacct-emailrequired' => 'E-Mailadress',
 'createacct-emailoptional' => 'E-Mailadress (fakultativ)',
 'createacct-email-ph' => 'Gitt Är E-Mailadress an',
+'createacct-another-email-ph' => 'E-Mailadress aginn',
 'createaccountmail' => 'En temporäert Passwuert benotzen an et per E-Mail un déi E-Mailadress schécken déi hei drënner steet',
 'createacct-realname' => 'Richtegen Numm (fakultativ)',
 'createaccountreason' => 'Grond:',
@@ -656,6 +665,7 @@ Vergiesst net fir Är [[Special:Preferences|{{SITENAME}} Astellungen]] z'ännere
 'createacct-captcha' => 'Sécherheets-Check',
 'createacct-imgcaptcha-ph' => 'Gitt den Text an deen Dir hei driwwer gesitt',
 'createacct-submit' => 'Äre Benotzerkont uleeën',
+'createacct-another-submit' => 'Maacht een anere Benotzerkonnt op',
 'createacct-benefit-heading' => '{{SITENAME}} gëtt vu Leit wéi Iech gemaach.',
 'createacct-benefit-body1' => '{{PLURAL:$1|Ännerung|Ännerungen}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|Säit|Säiten}}',
@@ -718,7 +728,7 @@ Gitt eng valabel E-Mailadress an oder loosst dëst Feld eidel.',
 'cannotchangeemail' => 'Mailadresse vu Benotzerkonte kënnen op dëser Wiki net geännert ginn.',
 'emaildisabled' => 'Dëse Site ka keng Maile schécken.',
 'accountcreated' => 'De Kont gouf geschaf',
-'accountcreatedtext' => 'De Benotzerkont fir $1 gouf geschaf.',
+'accountcreatedtext' => 'De Benotzerkont fir [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|Diskussioun]]) gouf geschaf.',
 'createaccount-title' => 'Opmaache vun engem Benotzerkont op {{SITENAME}}',
 'createaccount-text' => 'Et gouf e Benotzerkont "$2" fir Iech op {{SITENAME}} ($4) ugeluecht mat dem Passwuert "$3".
 Dir sollt Iech aloggen an Äert Passwuert elo änneren.
@@ -759,11 +769,11 @@ Vläicht hutt Dir Äert Passwuert scho geännert oder en neit temporäert Passwu
 
 # Special:PasswordReset
 'passwordreset' => 'Passwuert zrécksetzen',
-'passwordreset-text' => 'Fëllt dëse Formulaire aus fir Äert Passwuert zréckzesetzen.',
+'passwordreset-text-one' => 'Fëllt dëse Formulaire aus fir Äert Passwuert zréckzesetzen.',
+'passwordreset-text-many' => '{{PLURAL:$1|Fëllt eent vun de Felder aus fir Äert Passwuert zeréckzesetzen.}}',
 'passwordreset-legend' => 'Passwuert zrécksetzen',
 'passwordreset-disabled' => "D'Zerécksetze vum Passwuert ass op dëser Wiki ausgeschalt.",
 'passwordreset-emaildisabled' => "D'E-Mail-Fonctioune goufen op dëser Wiki ausgeschalt.",
-'passwordreset-pretext' => '{{PLURAL:$1||Gitt eng vun dësen Donnéeën an}}',
 'passwordreset-username' => 'Benotzernumm:',
 'passwordreset-domain' => 'Domaine:',
 'passwordreset-capture' => "D'Mail kucken?",
@@ -984,7 +994,7 @@ Den Administrateur den d'Datebank gespaart huet, huet dës Erklärung ginn: $1",
 'nocreate-loggedin' => 'Dir hutt keng Berechtigung fir nei Säiten unzeleeën.',
 'sectioneditnotsupported-title' => 'Ännere vum Abschnitt gëtt net ënnerstëtzt',
 'sectioneditnotsupported-text' => "D'Ännere vun Abschnitten gëtt op dëser Ännerungssäit net ënnertstetzt.",
-'permissionserrors' => 'Berechtigungs-Feeler',
+'permissionserrors' => 'Net genuch Rechter',
 'permissionserrorstext' => 'Dir hutt net genuch Rechter fir déi Aktioun auszeféieren. {{PLURAL:$1|Grond|Grënn}}:',
 'permissionserrorstext-withaction' => 'Dir sidd, aus {{PLURAL:$1|dësem Grond|dëse Grënn}}, net berechtegt $2 :',
 'recreate-moveddeleted-warn' => "'''Opgepasst: Dir sidd amgaang eng Säit unzeleeën déi schonn eng Kéier geläscht gouf.'''
@@ -999,12 +1009,14 @@ Hei ass den Extrait aus dem Logbuch vum Réckelen a Läsche fir déi Säit.',
 Si gouf anscheinend geläscht.",
 'edit-conflict' => 'Ännerungskonflikt.',
 'edit-no-change' => 'Är ännerung gouf ignoréiert, well Dir näischt um Text geännert hutt.',
+'postedit-confirmation' => 'Är Ännerung gouf gespäichert.',
 'edit-already-exists' => 'Déi nei Säit konnt net ugeluecht ginn, well et se scho gëtt.',
 'defaultmessagetext' => 'Standardtext',
+'content-failed-to-parse' => 'Den $2-Inhalt fir den $1-Modell konnt net geparst ginn: $3',
 'invalid-content-data' => 'Donnéeë vum Inhalt sinn net valabel',
 'content-not-allowed-here' => '"$1"-Inhalt ass op der Säit [[$2]] net erlaabt',
 'editwarning-warning' => 'Wann Dir dës Säit verloosst kann dat dozou féieren datt Dir all Ännerungen, déi Dir gemaach hutt, verléiert.
-Wann Dir ageloggt sidd, kënnt Dir dës Warnung an der Sektioun "{{int:prefs-editing}}" vun Ären Astellungen ausschalten.',
+Wann Dir ageloggt sidd, kënnt Dir dës Warnung an der Sektioun "Änneren" vun Ären Astellungen ausschalten.',
 
 # Content models
 'content-model-wikitext' => 'Wikitext',
@@ -1032,6 +1044,7 @@ Et däerfen net méi wéi $2 {{PLURAL:$2|Ufro|Ufroe}} sinn, aktuell {{PLURAL:$2|
 'undo-failure' => "D'Ännerung konnt net réckgängeg gemaach ginn, wëll de betraffenen Abschnitt an der Tëschenzäit geännert gouf.",
 'undo-norev' => "D'Ännerung kann net zréckgesat ginn, well et se net gëtt oder well se scho geläscht ass.",
 'undo-summary' => 'Ännerung $1 vu(n) [[Special:Contributions/$2|$2]] ([[User talk:$2|Diskussioun]] | [[Special:Contributions/$2|{{MediaWiki:Contribslink}}]]) annulléieren.',
+'undo-summary-username-hidden' => 'Versioun $1 vun engem verstoppte Benotzer zrécksetzen',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Benotzerkont konnt net opgemaach ginn',
@@ -1060,8 +1073,8 @@ De Benotzer $3 huet "$2" als Grond uginn.',
 *k = Kleng Ännerung.",
 'history-fieldset-title' => 'An de Versioune sichen',
 'history-show-deleted' => 'nëmmen déi geläschten',
-'histfirst' => 'Eelsten',
-'histlast' => 'Neisten',
+'histfirst' => 'eelsten',
+'histlast' => 'neisten',
 'historysize' => '({{PLURAL:$1|1 Byte|$1 Byten}})',
 'historyempty' => '(eidel)',
 
@@ -1216,6 +1229,7 @@ Denkt w.e.g drunn datt d'Navigatiounslinken d'Wiel vun de Versiounen nees zréck
 'compareselectedversions' => 'Ausgewielte Versioune vergläichen',
 'showhideselectedversions' => 'Erausgesicht Versioune weisen/verstoppen',
 'editundo' => 'zréck',
+'diff-empty' => '(Keen Ënnerscheed)',
 'diff-multi' => '({{PLURAL:$1|Eng Tëscheversioun|$1 Tëscheversioune}} vun {{PLURAL:$2|engem|$2}} Benotzer {{PLURAL:$1|gëtt|ginn}} net gewisen)',
 'diff-multi-manyusers' => '({{PLURAL:$1|Eng Tëscheversioun|$1 Tëscheversioune}} vu méi wéi $2 {{PLURAL:$2|Benotzer|Benotzer}} ginn net gewisen)',
 'difference-missing-revision' => '{{PLURAL:$2|Eng Versioun|$2 Versioune}} vun dëser Differenz ($1) {{PLURAL:$2|gouf|goufen}} net fonnt.
@@ -1243,7 +1257,6 @@ Detailer fannt Dir am [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}
 'searchmenu-legend' => 'Sichoptiounen',
 'searchmenu-exists' => "* Säit '''[[$1]]'''",
 'searchmenu-new' => "'''Opmaache vun der Säit ''[[:$1|$1]]'' op dëser Wiki!'''",
-'searchhelp-url' => 'Help:Inhalter',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|All Säite weisen, déi mat dem Begrëff ufänken nodeem Dir sicht]]',
 'searchprofile-articles' => 'Säite mat Inhalt',
 'searchprofile-project' => 'Hëllef a Projetssäiten',
@@ -1318,7 +1331,6 @@ Detailer fannt Dir am [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}
 'resetprefs' => 'Net gespäichert Ännerungen zrécksetzen',
 'restoreprefs' => 'All Standardastellungen zrécksetzen',
 'prefs-editing' => 'Änneren',
-'prefs-edit-boxsize' => 'Gréisst vun der Ännerungsfënster:',
 'rows' => 'Zeilen',
 'columns' => 'Kolonnen',
 'searchresultshead' => 'Sichen',
@@ -1329,9 +1341,6 @@ Detailer fannt Dir am [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}
 'recentchangesdays-max' => '(Maximal $1 {{PLURAL:$1|Dag|Deeg}})',
 'recentchangescount' => 'Zuel vun den Ännerungen déi als Standard gewise ginn:',
 'prefs-help-recentchangescount' => 'Inklusiv Rezent Ännerungen, Versiounshistoriquen a Logbicher.',
-'prefs-help-watchlist-token' => 'Wann dir dëst Feld mat engem Geheimcode ausfëllt gëtt en RSS-Feed fir Är Iwwerwaachungslëscht generéiert.
-Jiddereen deen de Geheimcode aus dësem Feld kennt kann Är Iwwerwaachungslëscht liesen, wielt dofir e séchere Wäert.
-Hei ass een zoufälleg generéierte Wäert deen Dir benotze kënnt: $1',
 'savedprefs' => 'Är Astellunge goufe gespäichert.',
 'timezonelegend' => 'Zäitzon:',
 'localtime' => 'Lokalzäit:',
@@ -1362,7 +1371,6 @@ Hei ass een zoufälleg generéierte Wäert deen Dir benotze kënnt: $1',
 'prefs-reset-intro' => "Dir kënnt dës Säit benotze fir Är Astellungen zréck op d'Standard-Astllungen ze setzen.
 Dëst kann net réckgängeg gemaach ginn.",
 'prefs-emailconfirm-label' => 'E-Mail Confirmatioun:',
-'prefs-textboxsize' => 'Gréisst vun der Ännerungsfënster',
 'youremail' => 'E-Mailadress:',
 'username' => '{{GENDER:$1|Benotzernumm}}:',
 'uid' => '{{GENDER:$1|Benotzer}} ID:',
@@ -1392,7 +1400,9 @@ Si muss manner wéi $1 {{PLURAL:$1|Zeechen|Zeechen}} hunn.',
 'prefs-signature' => 'Ënnerschrëft',
 'prefs-dateformat' => 'Format vum Datum',
 'prefs-timeoffset' => 'Zäitënnerscheed',
-'prefs-advancedediting' => 'Méi Optiounen',
+'prefs-advancedediting' => 'Allgemeng',
+'prefs-editor' => 'Editeur',
+'prefs-preview' => 'Kucken ouni ofzespäicheren',
 'prefs-advancedrc' => 'Méi Optiounen',
 'prefs-advancedrendering' => 'Méi Optiounen',
 'prefs-advancedsearchoptions' => 'Méi Optiounen',
@@ -1428,6 +1438,7 @@ Si muss manner wéi $1 {{PLURAL:$1|Zeechen|Zeechen}} hunn.',
 'userrights-changeable-col' => 'Gruppen déi Dir ännere kënnt',
 'userrights-unchangeable-col' => 'Gruppen déi Dir net ännere kënnt',
 'userrights-conflict' => 'Konflikt bäi de Benotzerrechter! Maacht Är Ännerunge w.e.g. nach eng Kéier.',
+'userrights-removed-self' => 'Dir hutt Är eege Rechter ewechgeholl. Dofir kënnt Dir net méi op dës Säit zougräifen.',
 
 # Groups
 'group' => 'Grupp:',
@@ -1471,7 +1482,7 @@ Si muss manner wéi $1 {{PLURAL:$1|Zeechen|Zeechen}} hunn.',
 'right-reupload-shared' => 'Lokalt Iwwerschreiwe vun engem Fichier deen an engem gemeinsam benotzte Repertoire steet',
 'right-upload_by_url' => 'Fichiere vun enger URL-Adress eroplueden',
 'right-purge' => 'De Säitecache eidel maachen ouni nozefroen',
-'right-autoconfirmed' => 'Hallef-gespaarte Säiten änneren',
+'right-autoconfirmed' => 'Net betraff vun IP-baséierten Zäitlimiten',
 'right-bot' => 'Als automatesche Prozess behandelen (Bot)',
 'right-nominornewtalk' => 'Kleng Ännerungen op Diskussiounssäite léisen de Banner vun de neie Messagen net aus',
 'right-apihighlimits' => 'Benotzt méi héich Limite bei den API Ufroen',
@@ -1492,12 +1503,20 @@ Si muss manner wéi $1 {{PLURAL:$1|Zeechen|Zeechen}} hunn.',
 'right-ipblock-exempt' => 'Ausname vun IP-Spären, automatesche Spären a vu Späre vu Plage vun IPen',
 'right-proxyunbannable' => 'Automatesche Proxyspären ëmgoen',
 'right-unblockself' => 'Seng eege Spär ophiewen',
-'right-protect' => 'Protectiounsniveauen änneren a gespaarte Säiten änneren',
-'right-editprotected' => 'Protegéiert Säiten (ouni Kaskadeprotectioun) änneren',
+'right-protect' => 'Protectiounsniveauen änneren a kaskade.gespaarte Säiten änneren',
+'right-editprotected' => 'Protegéiert Säiten als "{{int:protect-level-sysop}}" änneren',
+'right-editsemiprotected' => 'Säiten déi als  "{{int:protect-level-autoconfirmed}}" gespaart sinn änneren',
 'right-editinterface' => 'De Benotzerinterface änneren',
 'right-editusercssjs' => 'Anere Benotzer hir CSS a JS Fichieren änneren',
 'right-editusercss' => 'Anere Benotzer hir CSS Fichieren änneren',
 'right-edituserjs' => 'Anere Benotzer hir JavaScript Fichieren änneren',
+'right-editmyusercss' => 'Är eegen CSS-Fichieren änneren',
+'right-editmyuserjs' => 'Är eege JavaScript-Fichieren änneren',
+'right-viewmywatchlist' => 'Kuckt Är eegen Iwwerwaachungslëscht',
+'right-editmywatchlist' => "Ännert Är eegen Iwwerwaachungslëscht. Denkt drun datt och aner Aktioune Säiten op d'Iwwerwaachungslëscht derbäisetzen.",
+'right-viewmyprivateinfo' => 'Är eege privat Donnéeën (z.Bsp. E-Mail-Adress, richtegen Numm) kucken',
+'right-editmyprivateinfo' => 'Är eege privat Donnéeën (z.Bsp. E-Mail-Adress, richtegen Numm) änneren',
+'right-editmyoptions' => 'Ännert Är eegen Astellungen',
 'right-rollback' => "Ännerunge vum läschte Benotzer vun enger spezieller Säit séier z'récksetzen ''(rollback)''",
 'right-markbotedits' => 'Annuléiert Ännerungen als Botännerunge weisen',
 'right-noratelimit' => 'Net limitéiert duerch Zäitlimitatiounen um Server',
@@ -1559,12 +1578,17 @@ Si muss manner wéi $1 {{PLURAL:$1|Zeechen|Zeechen}} hunn.',
 'action-userrights-interwiki' => "d'Rechter vu Benotzer vun anere Wikien z'änneren",
 'action-siteadmin' => "d'Datebank ze spären oder d'Spär opzehiewen",
 'action-sendemail' => 'Maile schécken',
+'action-editmywatchlist' => 'ännert Är Iwwerwaachungslëscht',
+'action-viewmywatchlist' => 'kuckt Är Iwwerwaachungslëscht',
+'action-viewmyprivateinfo' => 'Är privat Informatioune kucken',
+'action-editmyprivateinfo' => 'Är privat Informatiounen änneren',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|Ännerung|Ännerungen}}',
 'recentchanges' => 'Rezent Ännerungen',
 'recentchanges-legend' => 'Optioune vun de rezenten Ännerungen',
 'recentchanges-summary' => "Op dëser Säit kënnt Dir déi rezent Ännerungen op '''{{SITENAME}}''' gesinn.",
+'recentchanges-noresult' => 'Keng Ännerunge während der Period déi ugi gouf passen op de Critère.',
 'recentchanges-feed-description' => 'Verfollegt mat dësem Feed déi rezent Ännerungen op {{SITENAME}}.',
 'recentchanges-label-newpage' => 'Dës Ännerung huet eng nei Säit ugeluecht',
 'recentchanges-label-minor' => 'Dëst ass eng kleng Ännerung',
@@ -1598,11 +1622,10 @@ Si muss manner wéi $1 {{PLURAL:$1|Zeechen|Zeechen}} hunn.',
 'rc-old-title' => 'original als "$1" ugeluecht',
 
 # Recent changes linked
-'recentchangeslinked' => 'Ännerungen op verlinkte Säiten',
-'recentchangeslinked-feed' => 'Ännerungen op verlinkte Säiten',
-'recentchangeslinked-toolbox' => 'Ännerungen op verlinkte Säiten',
+'recentchangeslinked' => 'Ännerungen op verlinkt Säiten',
+'recentchangeslinked-feed' => 'Ännerungen op verlinkt Säiten',
+'recentchangeslinked-toolbox' => 'Ännerungen op verlinkt Säiten',
 'recentchangeslinked-title' => 'Ännerungen a Verbindung mat "$1"',
-'recentchangeslinked-noresult' => 'Am ausgewielten Zäitraum goufen op de verlinkte Säite keng Ännerunge gemaach.',
 'recentchangeslinked-summary' => "Dëst ass eng Lëscht mat Ännerunge vu verlinkte Säiten op eng bestëmmte Säit (oder vu Membersäite vun der spezifizéierter Kategorie).
 Säite vun [[Special:Watchlist|Ärer Iwwerwaachungslëscht]] si '''fett''' geschriwwen.",
 'recentchangeslinked-page' => 'Säitennumm:',
@@ -1614,7 +1637,7 @@ Säite vun [[Special:Watchlist|Ärer Iwwerwaachungslëscht]] si '''fett''' gesch
 'reuploaddesc' => 'Eroplueden ofbriechen an zréck op de Formulaire fir Eropzelueden',
 'upload-tryagain' => 'Déi geännert Beschreiwung vum Fichier schécken',
 'uploadnologin' => 'Net ageloggt',
-'uploadnologintext' => 'Dir musst [[Special:UserLogin|ageloggt sinn]], fir Fichieren eroplueden zu kënnen.',
+'uploadnologintext' => 'Dir musst Iech $1, fir Fichieren eroplueden zu kënnen.',
 'upload_directory_missing' => 'De Repertoire an deen Dir eropluede wollt ($1) feelt a konnt net vum Webserver ugeluecht ginn.',
 'upload_directory_read_only' => 'De Webserver kann net an den Upload-Repertoire ($1) schreiwen.',
 'uploaderror' => 'Feeler bäim Eroplueden',
@@ -1746,6 +1769,7 @@ Wann de Problem weider besteet, dann un de [[Special:ListUsers/sysop|Administrat
 'backend-fail-stream' => 'De Fichier $1 konnt net iwwerdroe ginn.',
 'backend-fail-backup' => 'De Fichier $1 konnt net geséchert ginn.',
 'backend-fail-notexists' => 'De Fichier $1 gëtt et net.',
+'backend-fail-hashes' => "Et konnt net all 'hash' fonnt gi fir ze vergläichen.",
 'backend-fail-notsame' => 'Et gëtt schonn en net-identesche Fichier op $1.',
 'backend-fail-invalidpath' => '$1 ass keng valabel Plaz fir ze späicheren.',
 'backend-fail-delete' => 'De Fichier $1 konnt net geläscht ginn.',
@@ -1761,8 +1785,14 @@ Wann de Problem weider besteet, dann un de [[Special:ListUsers/sysop|Administrat
 'backend-fail-create' => 'De Fichier $1 konnt net geschriwwe ginn.',
 'backend-fail-maxsize' => 'De Fichier $1 konnt net geschriwwe gi well e méi grouss ass wéi {{PLURAL:$2|ee Byte|$2 Byten}}.',
 'backend-fail-readonly' => 'De Späicher-Backend "$1" kann elo nëmme geliest ginn (read-only). De Grond deen ugi gouf war: "$2"',
+'backend-fail-synced' => 'De Fichier "$1" ass an den internen Späichersystemer am Hannergrond an engem net konsistenten Zoustand',
 'backend-fail-connect' => 'Keng Verbindung mam Backend vum Späicher "$1".',
 'backend-fail-internal' => 'Onbekannte Feeler am Backend vum Späicher: "$1"',
+'backend-fail-contenttype' => 'Den Typ vum Inhalt deen op "$1" gespäichert gi soll konnt net bestëmmt ginn.',
+'backend-fail-usable' => 'De Fichier "$1" konnt net geliest oder geschriwwe gi well Rechter oder Repertoire feelen.',
+
+# File journal errors
+'filejournal-fail-dbconnect' => 'Et konnt keng Verbindung mat der Datebank vum Logbuch mam Späicher-Backend "$1" opgebaut ginn.',
 
 # Lock manager
 'lockmanager-notlocked' => '"$1" konnt net fräigeschalt ginn; $1 ass net gespaart.',
@@ -1930,13 +1960,13 @@ Dir musst ëmmer de Medien- a Subtyp aginn: z. Bsp. <code>image/jpeg</code>.",
 'download' => 'eroflueden',
 
 # Unwatched pages
-'unwatchedpages' => 'Nët iwwerwaachte Säiten',
+'unwatchedpages' => 'Net iwwerwaacht Säiten',
 
 # List redirects
 'listredirects' => 'Lëscht vun de Viruleedungen',
 
 # Unused templates
-'unusedtemplates' => 'Onbenotzte Schablounen',
+'unusedtemplates' => 'Net benotzt Schablounen',
 'unusedtemplatestext' => 'Op dëser Säit stinn all Säiten aus dem {{ns:template}} Nummraum, déi a kenger anerer Säit benotzt ginn. Vergiesst net nozekucken, ob et keng aner Linken op dës Schabloune gëtt, ier Dir eng Schabloun läscht.',
 'unusedtemplateswlh' => 'Aner Linken',
 
@@ -1969,14 +1999,14 @@ Dir musst ëmmer de Medien- a Subtyp aginn: z. Bsp. <code>image/jpeg</code>.",
 'statistics-users-active-desc' => 'Benotzer déi während {{PLURAL:$1|dem leschten Dag|de leschten $1 Deeg}} eppes gemaach hunn',
 'statistics-mostpopular' => 'Am meeschte gekuckte Säiten',
 
-'disambiguations' => 'Säiten déi op Homonymie-Säite linken',
+'disambiguations' => 'Säiten déi op Homonymiesäite linken',
 'disambiguationspage' => 'Template:Homonymie',
 'disambiguations-text' => "Dës Säite ass mat mindestens enger '''Homonymie-Säit''' verlinkt.
 Si sollte am beschten op déi eigentlech gemengte Säit verlinkt sinn.<br />
 Eng Säite gëtt als Homonymie-Säit behandelt, wa si eng Schabloun benotzt déi vu [[MediaWiki:Disambiguationspage]] verlinkt ass.",
 
-'pageswithprop' => 'Säite mat enger Säiten-Eegeschaft',
-'pageswithprop-legend' => 'Säite mat enger Säiten-Eegeschaft',
+'pageswithprop' => 'Säite mat enger Säiteneegeschaft',
+'pageswithprop-legend' => 'Säite mat enger Säiteneegeschaft',
 'pageswithprop-text' => 'Op dëser Säit sti Säiten déi eng speziell Säiteneegeschaft benotzen.',
 'pageswithprop-prop' => 'Numm vun der Eegeschaft:',
 'pageswithprop-submit' => 'Lass',
@@ -1994,7 +2024,7 @@ An all Rei sti Linken zur éischter an zweeter Viruleedung, souwéi d\'Zil vun d
 'brokenredirects-edit' => 'änneren',
 'brokenredirects-delete' => 'läschen',
 
-'withoutinterwiki' => 'Säiten ouni Interwiki-Linken',
+'withoutinterwiki' => 'Säiten ouni Interwikilinken',
 'withoutinterwiki-summary' => 'Op dëser Spezialsäit stinn all déi Säiten déi keng Interwikilinken hunn.',
 'withoutinterwiki-legend' => 'Prefix',
 'withoutinterwiki-submit' => 'Weisen',
@@ -2018,8 +2048,8 @@ An all Rei sti Linken zur éischter an zweeter Viruleedung, souwéi d\'Zil vun d
 'uncategorizedcategories' => 'Kategorien déi selwer nach keng Kategorie hunn',
 'uncategorizedimages' => 'Biller ouni Kategorie',
 'uncategorizedtemplates' => 'Schablounen ouni Kategorie',
-'unusedcategories' => 'Onbenotzte Kategorien',
-'unusedimages' => 'Onbenotzte Biller',
+'unusedcategories' => 'Net benotzt Kategorien',
+'unusedimages' => 'Net benotzt Biller',
 'popularpages' => 'Populär Säiten',
 'wantedcategories' => 'Gewënscht Kategorien',
 'wantedpages' => 'Gewënscht Säiten',
@@ -2028,11 +2058,11 @@ An all Rei sti Linken zur éischter an zweeter Viruleedung, souwéi d\'Zil vun d
 'wantedfiletext-cat' => 'Dës Fichiere gi benotzt awer et gëtt se net. Fichiere aus frieme Repositorie kënnen hei gewise ginn och wann et se gëtt. All esou falsch Positiver ginn <del>duerchgestrach</del>. Zousätzlech gi Säiten an deene Fichieren dra sinn déi et net gëtt op [[:$1]] gewisen.',
 'wantedfiletext-nocat' => 'Dës Fichiere gi benotzt existéieren awer net. Fichieren aus frieme Repertoiren kënnen trotzdeem opgelëscht ginn. All dës positiv Fichiere ginn <del>duergestrach</del>.',
 'wantedtemplates' => 'Gewënscht Schablounen',
-'mostlinked' => 'Dacks verlinkte Säiten',
-'mostlinkedcategories' => 'Dacks benotzte Kategorien',
-'mostlinkedtemplates' => 'Dacks benotzte Schablounen',
+'mostlinked' => 'Dacks verlinkt Säiten',
+'mostlinkedcategories' => 'Dacks benotzt Kategorien',
+'mostlinkedtemplates' => 'Dacks benotzt Schablounen',
 'mostcategories' => 'Säite mat de meeschte Kategorien',
-'mostimages' => 'Dacks benotzte Biller',
+'mostimages' => 'Dacks benotzt Biller',
 'mostinterwikis' => 'Säite mat de meeschten Interwikilinken',
 'mostrevisions' => 'Säite mat de meeschte Versiounen',
 'prefixindex' => 'All Säite mat Prefix',
@@ -2041,7 +2071,7 @@ An all Rei sti Linken zur éischter an zweeter Viruleedung, souwéi d\'Zil vun d
 'longpages' => 'Laang Säiten',
 'deadendpages' => 'Sakgaasse-Säiten',
 'deadendpagestext' => 'Dës Säite si mat kenger anerer Säit op {{SITENAME}} verlinkt.',
-'protectedpages' => 'Gespaarte Säiten',
+'protectedpages' => 'Gespaart Säiten',
 'protectedpages-indef' => 'Nëmme onbegrenzt-gespaarte Säite weisen',
 'protectedpages-cascade' => 'Nëmme Säiten déi duerch Kaskade gespaart sinn',
 'protectedpagestext' => 'Dës Säite si gespaart esou datt si weder geännert nach geréckelt kënne ginn',
@@ -2227,7 +2257,6 @@ All weider Ännerungen op dëser Säit an der assoziéierter Diskussiounssäit g
 'unwatchthispage' => 'Net méi iwwerwaachen',
 'notanarticle' => 'Keng Säit',
 'notvisiblerev' => 'Versioun gouf geläscht',
-'watchnochange' => 'Keng vun Ären iwwerwaachte Säite gouf während der ugewisener Zäit verännert.',
 'watchlist-details' => "{{PLURAL:$1|1 Säit|$1 Säiten}} sinn op ärer Iwwerwaachungsklëscht (d'Diskussiounssäite net matgezielt).",
 'wlheader-enotif' => 'E-Mail-Notifikatioun ass ageschalt.',
 'wlheader-showupdated' => "Säiten déi zënter ärer leschter Visite geännert goufen, si '''fett''' geschriwwen",
@@ -2342,7 +2371,7 @@ een Aneren huet dëst entweder scho gemaach oder nei Ännerungen agedroen.
 Déi lescht Ännerung vun der Säit ass vum [[User:$3|$3]] ([[User talk:$3|Diskussioun]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "De Resumé vun der Ännerung war: \"''\$1''\".",
 'revertpage' => 'Ännerunge vum [[Special:Contributions/$2|$2]] ([[User talk:$2|Diskussioun]]) zréckgesat op déi lescht Versioun vum [[User:$1|$1]]',
-'revertpage-nouser' => 'Zréckgesaten Ännerungen vum (Benotzernummewechgeholl) op déilescht Versioun vum [[User:$1|$1]]',
+'revertpage-nouser' => 'Zréckgesaten Ännerungen duerch e verstoppte Benotzer op déi lescht Versioun vum [[User:$1|$1]]',
 'rollback-success' => "D'Ännerunge vum $1 goufen zréckgesat op déi lescht Versioun vum $2.",
 
 # Edit tokens
@@ -2398,8 +2427,8 @@ Hei sinn déi aktuell Astellunge fir d'Säit '''$1''':",
 'protect-dropdown' => '*Déi heefegst Grënn fir eng Säit ze spären
 ** Weblink-Spam
 ** Permanenten Ännerungskonflikt
-** Dacks benotzte Schablounen
-** Säit déi dacks besicht gëtt',
+** Dacks benotzt Schablounen
+** Säit déi dacks gekuckt gëtt',
 'protect-edit-reasonlist' => 'Grënn vun der Protectioun änneren',
 'protect-expiry-options' => '1 Stonn:1 hour,1 Dag:1 day,1 Woch:1 week,2 Wochen:2 weeks,1 Mount:1 month,3 Méint:3 months,6 Méint:6 months,1 Joer:1 year,onbegrenzt:infinite',
 'restriction-type' => 'Berechtigung:',
@@ -2643,6 +2672,7 @@ Si ass awer als Deel vun der Rei $2 gespaart, an dës Spär kann opgehuewe ginn.
 'proxyblocksuccess' => 'Gemaach.',
 'sorbsreason' => 'Är IP Adress steet als oppene Proxy an der schwaarzer Lëscht (DNSBL) déi vu {{SITENAME}} benotzt gëtt.',
 'sorbs_create_account_reason' => 'Är IP-Adress steet als oppene Proxy an der schwaarzer Lëscht déi op {{SITENAME}} benotzt gëtt. DIr kënnt keen neie Benotzerkont opmaachen.',
+'xffblockreason' => 'Eng IP-Adress am X-Forwarded-For-Header gouf gespaart, entweder Är oder déi vum Proxyserver deen Dir benotzt. De Grond vun der Spär war: $1',
 'cant-block-while-blocked' => 'Dir däerft keng aner Benotzer spären, esou lang wéi dir selwer gespaart sidd.',
 'cant-see-hidden-user' => "De Benotzer deen Dir versicht ze spären ass scho gespaart a verstoppt. Well Dir d'Recht ''Hideuser'' net hutt kënnt Dir dëse Benotzer net gesinn an dem Benotzer seng Spär net änneren.",
 'ipbblocked' => 'Dir kënnt keng aner Benotzer spären oder hir Spär ophiewen well Dir selwer gespaart sidd',
@@ -2750,6 +2780,7 @@ Wëll Dir se läsche fir d\'Réckelen ze erméiglechen?',
 'immobile-target-namespace-iw' => 'En Interwiki-Link ass kee gëltegt Zil beim Réckele vun enger Säit.',
 'immobile-source-page' => 'Dës Säit kann net geréckelt ginn.',
 'immobile-target-page' => 'Kann net op de Bestëmmungs-titel geréckelt ginn.',
+'bad-target-model' => 'Déi gewënschten Zilsäit benotzt en anere Modell fir den Inhalt. Et kann net vun $1 op $2 ëmgewandelt ginn.',
 'imagenocrossnamespace' => 'Fichiere kënnen net an aner Nummraim geréckelt ginn',
 'nonfile-cannot-move-to-file' => '"Keng Fichiere" kënnen net an den {{ns:file}}-Nummraum geréckelt ginn',
 'imagetypemismatch' => 'Déi nei Dateierweiderung ass net mat dem Fichier kompatibel',
@@ -3709,7 +3740,6 @@ Dir kënnt och [[Special:EditWatchlist|de Standard Editeur benotzen]].",
 'version-other' => 'Aner',
 'version-mediahandlers' => 'Medien-Ënnerstëtzung',
 'version-hooks' => 'Klameren',
-'version-extension-functions' => 'Funktioune vun den Erweiderungen',
 'version-parser-extensiontags' => "Parser-Erweiderungen ''(Taggen)''",
 'version-parser-function-hooks' => 'Parser-Funktiounen',
 'version-hook-name' => 'Numm vun der Klamer',
index 85d36e0..10b888f 100644 (file)
 
 $fallback = 'ru';
 
+$namespaceNames = array(
+       NS_MEDIA            => 'Медиа',
+       NS_TALK             => 'веревирд_авун',
+       NS_USER             => 'Уртах',
+       NS_USER_TALK        => 'Уртахдин_веревирд_авун',
+       NS_PROJECT_TALK     => '$1_веревирд_авун',
+       NS_FILE             => 'Файл',
+       NS_FILE_TALK        => 'Файл_веревирд_авун',
+       NS_MEDIAWIKI        => 'MediaWiki',
+       NS_MEDIAWIKI_TALK   => 'MediaWiki_веревирд_авун',
+       NS_TEMPLATE         => 'Шаблон',
+       NS_TEMPLATE_TALK    => 'Шаблон_веревирд_авун',
+       NS_CATEGORY         => 'Категория',
+       NS_CATEGORY_TALK    => 'Категория_веревирд_авун',
+);
+
+$namespaceAliases = array(
+       # Russian namespaces
+       'Обсуждение'                         => NS_TALK,
+       'Участник'                           => NS_USER,
+       'Обсуждение_участника'               => NS_USER_TALK,
+       'Обсуждение_{{GRAMMAR:genitive|$1}}' => NS_PROJECT_TALK,
+       'Обсуждение_файла'                   => NS_FILE_TALK,
+       'Обсуждение_MediaWiki'               => NS_MEDIAWIKI_TALK,
+       'Обсуждение_шаблона'                 => NS_TEMPLATE_TALK,
+       'Справка'                            => NS_HELP,
+       'Обсуждение_справки'                 => NS_HELP_TALK,
+       'Категория'                          => NS_CATEGORY,
+       'Обсуждение_категории'               => NS_CATEGORY_TALK,
+);
+
+// Remove Russian gender aliases
+$namespaceGenderAliases = array();
+
 $messages = array(
 # User preference toggles
 'tog-underline' => 'ЭлячӀунрин кӀаникай цӀар чӀугун',
@@ -238,7 +272,6 @@ $messages = array(
 'disclaimers' => 'Жавабдарвал хивяй акъудун',
 'disclaimerpage' => 'Project:Жавабдарвал хивяй акъудун',
 'edithelp' => 'Дуьзар хъувун патал куьмек',
-'edithelppage' => 'Help:Дуьзар хъувун',
 'helppage' => 'Help:Къене авайбур',
 'mainpage' => 'Кьилин ччин',
 'mainpage-description' => 'Кьилин ччин',
@@ -550,7 +583,6 @@ $messages = array(
 'searchmenu-legend' => 'Жагъурунин низамарунар',
 'searchmenu-exists' => "'''И вики-проектда \"[[:\$1]]\" тlвар алай ччин ава.'''",
 'searchmenu-new' => "'''И вики-проектда \"[[:\$1]]\" ччин туькlуьрун !'''",
-'searchhelp-url' => 'Help:КЪене авайбур',
 'searchprofile-articles' => 'Асул ччинар',
 'searchprofile-project' => 'Куьмек гунин ва проектдин ччинар',
 'searchprofile-images' => 'Мультимедиа',
@@ -612,7 +644,6 @@ $messages = array(
 'resetprefs' => 'Хуьн тавунвай дегишвилер алудун',
 'restoreprefs' => 'Авайл хьиз кьунвай низамарунар туькIуьр хъувун',
 'prefs-editing' => 'Дуьзар хъувун',
-'prefs-edit-boxsize' => 'Дуьзар хъувунин дакIардин кьадар',
 'rows' => 'ЦIарар',
 'columns' => 'Гулар:',
 'searchresultshead' => 'Ахтармишун',
@@ -742,7 +773,6 @@ $messages = array(
 'recentchangeslinked-feed' => 'Галкlанвай дуьзар хъувунар',
 'recentchangeslinked-toolbox' => 'Галкlанвай масакIавилер',
 'recentchangeslinked-title' => '"$1" галаз галкlанавай масакIавилер',
-'recentchangeslinked-noresult' => 'Ганвай чlава галкlанавай ччинра са масакIавални хьанвайд туш',
 'recentchangeslinked-summary' => 'Им къалурай ччиниз (ва я къалурай категориядиз гьатзавай ччинриз) элячӀзавай ччинра мукьвара хьайи масакӀавилерин сиягь я. Куь [[Special:Watchlist|вилив хуьнин сиягь диз]] гьатзавай ччинар яцӀу шрифтдал къалурнава.',
 'recentchangeslinked-page' => 'Ччинин тlвар:',
 'recentchangeslinked-to' => 'Аксина, къалурай ччиниз элячlзавай ччинра масакIавилер къалура',
index 909dea4..3faaea7 100644 (file)
@@ -216,7 +216,6 @@ $messages = array(
 'disclaimers' => 'Negas de respondablia',
 'disclaimerpage' => 'Project:Nega jeneral de respondablia',
 'edithelp' => 'Aida con edita',
-'edithelppage' => 'Help:Edita',
 'helppage' => 'Help:Contenis',
 'mainpage' => 'Paje Prima',
 'mainpage-description' => 'Paje Prima',
@@ -436,7 +435,6 @@ La arcivo de sutraes per esta paje es asi per conveni:",
 'prevn' => '{{PLURAL:$1|$1}} presedente',
 'nextn' => '{{PLURAL:$1|$1}} seguente',
 'viewprevnext' => 'Vide ($1 {{int:pipe-separator}} $2) ($3)',
-'searchhelp-url' => 'Help:Contenis',
 'search-result-size' => '$1 ({{PLURAL:$2|1 parola|$2 parolas}})',
 'search-section' => '(sesion $1)',
 'search-interwiki-default' => 'Resultas de $1:',
@@ -528,7 +526,6 @@ La arcivo de sutraes per esta paje es asi per conveni:",
 'recentchangeslinked-feed' => 'Cambias relateda',
 'recentchangeslinked-toolbox' => 'Cambias relateda',
 'recentchangeslinked-title' => 'Cambias relatada a "$1"',
-'recentchangeslinked-noresult' => 'No cambias de pajes liada entre esta periodo.',
 'recentchangeslinked-summary' => "Esta lista conteni la cambias plu resente de la pajes liada a otra (o de la membros de un categoria).
 Pajes a [[Special:Watchlist|tu lista de pajes oservada]] es en leteras '''forte'''.",
 'recentchangeslinked-page' => 'Nom de la paje:',
index 7f14e50..7173287 100644 (file)
@@ -247,7 +247,6 @@ $1",
 'disclaimers' => "Okutangaaza ku kkomo ery'obuvunaaniro bwaffe obw'omu mateeka",
 'disclaimerpage' => "Project:Okutangaaza ku kkomo ery'obuvunaaniro bwaffe obw'omu mateeka",
 'edithelp' => 'Nyamba',
-'edithelppage' => "Help:Obuyambi ku by'okukyusakyusa",
 'helppage' => 'Help:Endagiriro',
 'mainpage' => 'Olupapula Olusooka',
 'mainpage-description' => 'Olupapula Olusooka',
@@ -521,10 +520,8 @@ Oyinz'okuba nga wamaze okutegeka ekya ddala ekipya oba nga wakasabayo eky'ekisee
 
 # Special:PasswordReset
 'passwordreset' => 'Damu okutegeka ekyama',
-'passwordreset-text' => "Oba oyagala okufuna 'email' ekujjukiza ebikwata ku akawunti yo, jjuza foomu eno.",
 'passwordreset-legend' => 'Damu okutegeka ekyama',
 'passwordreset-disabled' => "Eby'okuddamu okutegeka ebyama biymirizidwa ku wiki eno.",
-'passwordreset-pretext' => '{{PLURAL:$1||Wandika wo kimu ku ebiri mu lukalala}}',
 'passwordreset-username' => "Ery'obwa memba:",
 'passwordreset-email' => "Endagiriro eya 'email':",
 'passwordreset-emailtitle' => "Ebya akawunti ey'oku {{SITENAME}}",
@@ -825,7 +822,6 @@ oba ku gano agali ku lupapula luno.<br />
 'searchmenu-legend' => 'Kyusamu ennoonya',
 'searchmenu-exists' => "'''Olupapula \"[[:\$1]]\" gyeruli ku wiki eno.'''",
 'searchmenu-new' => "'''Oba oyagala, olupapula \"[[:\$1]]\" gwe osobola okulukolawo ku wiki eno.'''",
-'searchhelp-url' => 'Help:Endagiriro',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Kebera mu mpapula eziriko akatandikwa kano]]',
 'searchprofile-articles' => "Empapula ez'ensonga",
 'searchprofile-project' => "Empapula eziriko obuyambi n'eza Kawefube",
@@ -938,7 +934,6 @@ W'owandikira by'onoonya bw'osoosawo akagambo ''all:'', okunoonya kubuna Wikipedi
 'recentchangeslinked-feed' => 'Ebikyusiddwa ebyekuusa ku lupapula luno',
 'recentchangeslinked-toolbox' => 'Ebikyusiddwa ebyekuusa ku lupapula luno',
 'recentchangeslinked-title' => 'Enkyukakyuka ezikwatagana ne "$1"',
-'recentchangeslinked-noresult' => 'Empapula eziriko enyunzi tewali lukyuse mu kiseera kino.',
 'recentchangeslinked-summary' => "Olulpapula olw'enjawulo luno luliko olukalala lw'ebikyuse ku mpapula eziriko enyunzi ezigguka ku lw'obadde otunuulira. Ebiwandikidwa mu '''nukuta enziggumivu''' biri ku [[Special:Watchlist|mpapula z'ogoberera]].",
 'recentchangeslinked-page' => 'Lupapula:',
 'recentchangeslinked-to' => "Nonamu eby'empapula ezikuggusa ku luno zokka",
index 5ce6bb4..01b445e 100644 (file)
@@ -396,7 +396,6 @@ $1',
 'disclaimers' => 'Aafwiezinge aansjprakelikheid',
 'disclaimerpage' => 'Project:Algemein aafwiezing aansjprakelikheid',
 'edithelp' => 'Hulp bie bewirke',
-'edithelppage' => 'Help:Instructies',
 'helppage' => 'Help:Help',
 'mainpage' => 'Veurblaad',
 'mainpage-description' => 'Veurblaad',
@@ -573,7 +572,7 @@ Mäögelik waert nog 'n deil pagina's getuind esofs te nog aangemeld bis pès te
 'logout' => 'Aafmelde',
 'userlogout' => 'Aafmelde',
 'notloggedin' => 'Neet aangemeld',
-'nologin' => "Höbs te nog geine gebroekersnaam? '''$1'''.",
+'nologin' => 'Höbs te nog geine gebroekersnaam? $1.',
 'nologinlink' => "Maak 'ne gebroekersnaam aan",
 'createaccount' => 'Nuuj gebroekersprofiel aanmake.',
 'gotaccount' => "Höbs te al 'ne gebroekersnaam? '''$1'''.",
@@ -667,10 +666,8 @@ Meugelik höbs doe dien wachwaord al gewiezig of 'n nuuj tiedelik wachwaord aang
 
 # Special:PasswordReset
 'passwordreset' => 'Wachwaord obbenuuts insjtèlle',
-'passwordreset-text' => "Völ dit form aan zodet weer dich 'ne mail kinne sjikk mit dien gebroekersgegaeves.",
 'passwordreset-legend' => 'Wachwaord obbenuuts insjtèlle',
 'passwordreset-disabled' => "'t Is hie neet meugelik óm die wachwaord óbbenuits in te sjtelle.",
-'passwordreset-pretext' => '{{PLURAL:$1||Veur ei van de vèljer hieónger in}}',
 'passwordreset-username' => 'Gebroekersnaam:',
 'passwordreset-domain' => 'Domein:',
 'passwordreset-capture' => 'Bekiek de resulterenden e-mail?',
@@ -1122,7 +1119,6 @@ Wees zeker det deze wieziging de gesjiedenisdoorloupendheid van de pagina zal be
 'searchmenu-legend' => 'Zeukopties',
 'searchmenu-exists' => "* Pagina '''[[$1]]'''",
 'searchmenu-new' => "'''De pagina \"[[:\$1]]\" aanmake op deze wiki'''",
-'searchhelp-url' => 'Help:Help',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Paginanaome mit dit veurveugsel weergaeve]]',
 'searchprofile-articles' => "Inhaudelike pagina's",
 'searchprofile-project' => "Help- en projekpagina's",
@@ -1200,7 +1196,6 @@ Mèrk op dat hun indexe van {{SITENAME}} content e bietje gedatierd kint zien.',
 'resetprefs' => 'Sjtandaardveurkäöre hersjtèlle',
 'restoreprefs' => 'Terug nao standaardinstellinge',
 'prefs-editing' => 'Aafmeitinge tèksveld',
-'prefs-edit-boxsize' => "Aafmetinge van 't bewirkingsvinster.",
 'rows' => 'Regels',
 'columns' => 'Kolomme',
 'searchresultshead' => 'Insjtèllinge veur zeukresultate',
@@ -1211,9 +1206,6 @@ Mèrk op dat hun indexe van {{SITENAME}} content e bietje gedatierd kint zien.',
 'recentchangesdays-max' => '(maximaal $1 {{PLURAL:$1|daag|daag}})',
 'recentchangescount' => 'Standerd aantal waer te gaeve bewèrkinge:',
 'prefs-help-recentchangescount' => "Dit gelt veur recente wieziginge, paginagesjiedenis en logbookpagina's.",
-'prefs-help-watchlist-token' => 'Door hie ne geheime sleutel in te vulle wurt nen RSS-feed veur dien volglies aangemaak.
-Ederein dae deze sleutel kint kin dien volglies laeze, dus kees ne veilige sleutel.
-Hie volg n willekäörig gegenereerde waerde die se kins gebroeke: $1',
 'savedprefs' => 'Dien veurkäöre zint opgesjlage.',
 'timezonelegend' => 'Tiedzone:',
 'localtime' => 'Plaatselike tied',
@@ -1244,7 +1236,6 @@ Hie volg n willekäörig gegenereerde waerde die se kins gebroeke: $1',
 'prefs-reset-intro' => 'Gebroek dees functie om dien veurkäöre te herstelle nao de standaardinstellinge.
 Dees hanjeling kin neet ongedaon gemaak waere.',
 'prefs-emailconfirm-label' => 'E-mailbevestiging:',
-'prefs-textboxsize' => 'Aafmaetinge bewirkingssjerm',
 'youremail' => 'Dien e-mailadres',
 'username' => 'Gebroekersnaam:',
 'uid' => 'Gebroekersnómmer:',
@@ -1484,7 +1475,6 @@ Deze informatie is zichbaar veur angere gebroekers.',
 'recentchangeslinked-feed' => 'Volg links',
 'recentchangeslinked-toolbox' => 'Volg links',
 'recentchangeslinked-title' => 'Verangeringe verwant mit "$1"',
-'recentchangeslinked-noresult' => "d'r Zeen gein bewerkinge in de gegaeve periode gewaes op de pagina's die vanaaf hiej gelink waere.",
 'recentchangeslinked-summary' => "Dees speciaal pagina tuint de lètste bewirkinge op pagina's die gelink waere vanaaf deze pagina. Pagina's die op [[Special:Watchlist|dien volglies]] staon waere '''vet''' weergegaeve.",
 'recentchangeslinked-page' => 'Paginanaam:',
 'recentchangeslinked-to' => "Verangeringe weergaeve nao de gelinkde pagina's",
@@ -1615,7 +1605,7 @@ Gank trök nao t [[Special:Upload/stash/$1|uploadformuleer]] om dit perbleem te
 'upload-file-error' => 'Interne fout',
 'upload-file-error-text' => "'n Intern fuitje vonj plaats wie 'n tiedelik besjtandj op de server woort aangemaak. Num aub contac op met 'ne [[Special:ListUsers/sysop|systeemwèrker]].",
 'upload-misc-error' => 'Onbekinde uploadfout',
-'upload-misc-error-text' => "d'r Is tiedes 't uploade 'ne onbekinde fout opgetraeje. Controleer of de URL correc en besjikbaar is en probeer 't opnuuj. Es 't probleem aanhaojt, nöm dan contac op met 'ne [[Special:ListUsers/sysop|systeembeheerder]].",
+'upload-misc-error-text' => "d'r Is tiedes 't uploade 'ne onbekinde fout opgetraeje. Controleer of de URL correc en besjikbaar is en probeer 't opnuuj. Es 't probleem aanhaojt, nöm dan contac op met 'ne [[Special:ListUsers/sysop|systeemwèrker]].",
 'upload-too-many-redirects' => 'De URL bevadde te väöl doorverwiezinge',
 'upload-unknown-size' => 'Ónbekèndje gruuedje',
 'upload-http-error' => 'dr Is n HTTP-fout opgetraoje: $1',
@@ -2101,7 +2091,6 @@ Toekomstige verangeringe aan dees pagina en de biebehurende euverlèkpagina weur
 'unwatchthispage' => 'Neet mië volge',
 'notanarticle' => 'Is gein artikel',
 'notvisiblerev' => 'Bewèrking is verwiederd',
-'watchnochange' => 'Gein van dien gevolgde items is aangepas in dees periode.',
 'watchlist-details' => "D'r {{PLURAL:$1|sjteit ein pagina|sjtaon $1 pagina's}} op dien volglies mit oetzunjering van de euverlèkpagina's.",
 'wlheader-enotif' => 'Doe wörs per e-mail gewaarsjuwd',
 'wlheader-showupdated' => "Pazjena's die verangerd zeen saers doe ze veur 't lètste bekeeks sjtaon '''vet'''",
@@ -3484,7 +3473,6 @@ De kèns ouch [[Special:EditWatchlist|'t sjtanderd bewirkingssjirm gebroeke]].",
 'version-other' => 'Euverige',
 'version-mediahandlers' => 'Mediaverwerkers',
 'version-hooks' => 'Heuk',
-'version-extension-functions' => 'Oetbreijingsfuncties',
 'version-parser-extensiontags' => 'Parseroetbreijingstags',
 'version-parser-function-hooks' => 'Parserfunctieheuk',
 'version-hook-name' => 'Hooknaam',
index a7d4106..615b0d4 100644 (file)
@@ -355,7 +355,6 @@ $1",
 'disclaimers' => 'Avertense',
 'disclaimerpage' => 'Project:Avertense generâli',
 'edithelp' => 'Agiùtto',
-'edithelppage' => 'Help:Modiffica',
 'helppage' => 'Help:Contegnûi',
 'mainpage' => 'Pàgina prinçipâ',
 'mainpage-description' => 'Pagina prinçipâ',
@@ -706,7 +705,6 @@ Legenda: (corr) = differense co-a verscion corrente, (prec) = differense co-a ve
 'viewprevnext' => 'Veddi ($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-exists' => "'''Inte questa wiki gh'è za 'na pàgina co-o nómme \"[[:\$1]]\"'''",
 'searchmenu-new' => 'Crea a pagina "[[:$1]]" insce questo scito',
-'searchhelp-url' => 'Help:Contegnûi',
 'searchprofile-articles' => 'Pàgina di contegnûi',
 'searchprofile-project' => 'Pàgine de agiùtto e relative a-o progetto',
 'searchprofile-images' => 'Moltimedia',
@@ -804,7 +802,6 @@ Legenda: (corr) = differense co-a verscion corrente, (prec) = differense co-a ve
 'recentchangeslinked-feed' => 'Cangiamenti correlæ',
 'recentchangeslinked-toolbox' => 'Cangiaménti corelæ',
 'recentchangeslinked-title' => 'Modiffiche correlæ a "$1"',
-'recentchangeslinked-noresult' => 'Nisciûn cangiamento a-e paggine collegæ into periodo speçificòu.',
 'recentchangeslinked-summary' => "Sta pàgina a fa védde i cangiaménti ciù reçenti a-e pàgine colegæ a questa.
 E pàgine che t'æ in oservaçion inti [[Special:Watchlist|oservæ speciâli]] son in '''grascetto'''.",
 'recentchangeslinked-page' => 'Nómme da pàgina:',
index e99297e..1fff6ce 100644 (file)
@@ -147,7 +147,6 @@ $messages = array(
 'disclaimers' => 'Kūondõkst',
 'disclaimerpage' => 'Project:Kūondõkst',
 'edithelp' => 'Redigīerimiz opātõks',
-'edithelppage' => 'Help:Redigīerimiz_opātõks',
 'helppage' => 'Help:Sižāli',
 'mainpage' => 'Eḑḑilēḑ',
 'mainpage-description' => 'Eḑḑilēḑ',
@@ -416,7 +415,6 @@ Legend: '''({{int:cur}})''' = vaiţīd līdzinţõmizõks lǟndz redaktsijõks,,
 'recentchangeslinked' => 'Sidtõd mõitõkst',
 'recentchangeslinked-toolbox' => 'Sidtõd mõitõkst',
 'recentchangeslinked-title' => '"$1" sidtõd mõitõkst',
-'recentchangeslinked-noresult' => 'Andtõd āigal äb ūo sidtõd lēḑis mõitõkši tīedõd.',
 'recentchangeslinked-summary' => "Täs um lugdõd andtõd līedstõ sidtõd (agā andtõd kategōrij) lēḑis tīedõd perrizt mõitõkst. Sin [[Special:Watchlist|iļ-vaņtlimiz.nimkēra]] lēḑõd ātõ  ' ' ' razzistiz ' ' ' jeddõ tūodõd.",
 'recentchangeslinked-page' => 'Līed nim:',
 'recentchangeslinked-to' => 'Nägţ sīe azmõl mõitõkši lēḑis, mis sīen līed pǟlõ sidābõd',
index 2566cbf..f0d428f 100644 (file)
@@ -13,6 +13,7 @@
  * @author DracoRoboter
  * @author Flavio05
  * @author GatoSelvadego
+ * @author Geitost
  * @author Insübrich
  * @author Kemmótar
  * @author Malafaya
@@ -322,7 +323,6 @@ $1",
 'disclaimers' => 'Disclaimers',
 'disclaimerpage' => 'Project:Avertenz generaj',
 'edithelp' => 'Manual de spiegazión',
-'edithelppage' => 'Help:Scriv un articul',
 'helppage' => 'Help:Contegnüü',
 'mainpage' => 'Pagina principala',
 'mainpage-description' => 'Pagina principala',
@@ -431,7 +431,7 @@ Tegné cünt che certi paginn pödass che i seguiten a vedess tant 'me se a füd
 'logout' => 'Va fö',
 'userlogout' => 'Và fö',
 'notloggedin' => 'Te seet minga dent in del sistema',
-'nologin' => "Gh'avii anmò da registrav? '''$1'''.",
+'nologin' => "Gh'avii anmò da registrav? $1.",
 'nologinlink' => 'Creé un cünt!',
 'createaccount' => 'Creá un cünt',
 'gotaccount' => "Gh'hee-t giamò un cünt? '''$1'''.",
@@ -606,7 +606,6 @@ Per infurmazion, varda ind el [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGE
 'viewprevnext' => 'Vidé ($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-legend' => 'Upzión de ricerca',
 'searchmenu-new' => "'''Trà in pee la pagina \"[[:\$1]]\" ins quel sit chì!'''",
-'searchhelp-url' => 'Help:Contegnüü',
 'searchprofile-articles' => 'Paginn de cuntegnüü',
 'searchprofile-project' => 'Paginn de jüt e de pruget',
 'searchprofile-images' => 'Multimedia',
@@ -960,7 +959,6 @@ i vegnarann segnalaa chichinscì e la pagina la se vedarà cun caràter '''grev'
 'watch' => "Tegn d'öcc",
 'watchthispage' => "Tegn d'ögg quela pagina chì",
 'unwatch' => "Tegn pü d'ögg",
-'watchnochange' => "Nissün cambiament l'è stai faa ins i pàginn che te tegn d'ögg ind 'l períud de temp indicaa.",
 'watchlist-details' => '{{PLURAL:$1|$1 pagina|$1 paginn}} tegnüü sot ögg, fö che i paginn de discüssión.',
 'wlshowlast' => 'Fa vidé i ültim $1 ur $2 dì $3',
 'watchlist-options' => "Upzión lista d'ussevazión",
index a3898ea..d9210fa 100644 (file)
@@ -277,7 +277,6 @@ $messages = array(
 'disclaimers' => 'ຂໍ້ປະຕິເສດຄວາມຮັບຜິດຊອບ',
 'disclaimerpage' => 'Project:ຂໍ້ປະຕິເສດຄວາມຮັບຜິດຊອບ',
 'edithelp' => 'ວິທີດັດແກ້ໜ້າ',
-'edithelppage' => 'Help:ການດັດແກ້',
 'helppage' => 'Help:ເນື້ອໃນ',
 'mainpage' => 'ໜ້າຫຼັກ',
 'mainpage-description' => 'ໜ້າຫຼັກ',
@@ -474,7 +473,6 @@ $messages = array(
 'prevn' => '{{PLURAL:$1|$1}} ກ່ອນໜ້າ',
 'nextn' => '{{PLURAL:$1|$1}} ຕໍ່ໄປ',
 'viewprevnext' => 'ເບິ່ງ ($1 {{int:pipe-separator}} $2) ($3).',
-'searchhelp-url' => 'Help:ເນື້ອໃນ',
 'search-result-size' => '$1 ({{PLURAL:$2|1 ຄຳ|$2 ຄຳ}})',
 'search-result-score' => 'ຄວາມກ່ຽວຂ້ອງ: $1%',
 'search-redirect' => '(ໂອນ $1)',
@@ -562,7 +560,6 @@ $messages = array(
 'recentchangeslinked-feed' => 'ການດັດແກ້ທີ່ກ່ຽວຂ້ອງ',
 'recentchangeslinked-toolbox' => 'ການດັດແກ້ທີ່ກ່ຽວຂ້ອງ',
 'recentchangeslinked-title' => 'ການປ່ຽນແປງກ່ຽວຂ້ອງກັບ "$1"',
-'recentchangeslinked-noresult' => 'ບໍ່ມີການປ່ຽນແປງຢູ່ໜ້າລິ້ງຄ໌ໃນໄລຍະດັ່ງກ່າວ.',
 
 # Upload
 'upload' => 'ອັບໂຫຼດໄຟລ໌',
@@ -711,7 +708,6 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'watch' => 'ຕິດຕາມ',
 'watchthispage' => 'ຕິດຕາມໜ້ານີ້',
 'unwatch' => 'ເຊົາຕິດຕາມ',
-'watchnochange' => 'ບໍ່ມີໜ້າທີ່ທ່ານຕິດຕາມໃດໆ ຖືກດັດແປງໃນໄລຍະສະແດງຂ້າງເທິງນີ້.',
 'wlheader-showupdated' => "ບັນດາ ໜ້າ ທີ່ມີການປ່ຽນແປງ ຫຼັງຈາກທີ່ທ່ານ ເຂົ້າຊົມຫຼ້າສຸດ ຈະຖືກສະແດງເປັນ ໂຕໜັງສື  '''ເຂັ້ມ'''",
 'wlshowlast' => 'ສະແດງ $1 ຊົ່ວໂມງຫຼ້າສຸດ $2 ມື້ຫຼ້າສຸດ $3',
 
index 0295b8e..87479f1 100644 (file)
@@ -189,7 +189,6 @@ $messages = array(
 'disclaimers' => 'Dikulemi',
 'disclaimerpage' => 'Project:Dikulemi generali',
 'edithelp' => "Hloli ye ng'i",
-'edithelppage' => "Help:Hloli ye ng'i",
 'helppage' => 'Help:Buinaneli di petulo',
 'mainpage' => 'Petulo yem efro',
 'mainpage-description' => 'Petulo yem efro',
@@ -453,7 +452,6 @@ Informasi: (bye) = petuho a nca selt,
 'prevn' => 'kona {{PLURAL:$1|$1}}',
 'nextn' => 'lila {{PLURAL:$1|$1}}',
 'viewprevnext' => 'Kamukile ($1 {{int:pipe-separator}} $2) ($3)',
-'searchhelp-url' => 'Help:Buinaneli di petulo',
 'searchall' => 'xete',
 'showingresults' => "Kamukile opi {{PLURAL:$1|'''1''' ekali|'''$1''' ekalina}} di #'''$2'''.",
 'showingresultsnum' => "Kamukile {{PLURAL:$3|'''1''' ekali|'''$3''' ekalina}} di #'''$2'''.",
@@ -528,7 +526,6 @@ Informasi: (bye) = petuho a nca selt,
 'recentchangeslinked-feed' => 'Petuho adusi',
 'recentchangeslinked-toolbox' => 'Petuho adusi',
 'recentchangeslinked-title' => 'Petuho dadusi di "$1"',
-'recentchangeslinked-noresult' => "Ni petuhoni kwa ling'ki petulo kwa bye datum.",
 'recentchangeslinked-summary' => "Bye petulo zwenti kamukile lapu-kona petuho di petulo sa ling'ki. Petulo di zwa mukoloko di kentezi sa '''ombelu'''.",
 
 # Upload
index 8bf794c..c7c1135 100644 (file)
  * @author Dark Eagle
  * @author Eitvys200
  * @author Garas
+ * @author Geitost
  * @author Homo
  * @author Hugo.arg
  * @author Ignas693
  * @author Kaganer
+ * @author Mantak111
  * @author Matasg
  * @author Meno25
  * @author Ola
@@ -290,6 +292,18 @@ $messages = array(
 'oct' => 'spa',
 'nov' => 'lap',
 'dec' => 'grd',
+'january-date' => 'Sausio $1',
+'february-date' => 'Vasario $1',
+'march-date' => 'Kovo $1',
+'april-date' => 'Balandžio $1',
+'may-date' => 'Gegužės $1',
+'june-date' => 'Birželio $1',
+'july-date' => 'Liepos $1',
+'august-date' => 'Rugpjūčio $1',
+'september-date' => 'Rugsėjo $1',
+'october-date' => 'Spalio $1',
+'november-date' => 'Lapkričio $1',
+'december-date' => 'Gruodžio $1',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategorija|Kategorijos}}',
@@ -335,7 +349,7 @@ $messages = array(
 # Vector skin
 'vector-action-addsection' => 'Pridėti temą',
 'vector-action-delete' => 'Ištrinti',
-'vector-action-move' => 'Perkelti',
+'vector-action-move' => 'Pervardyti',
 'vector-action-protect' => 'Užrakinti',
 'vector-action-undelete' => 'Atkurti',
 'vector-action-unprotect' => 'Keisti apsaugą',
@@ -371,6 +385,7 @@ $messages = array(
 'create-this-page' => 'Sukurti šį puslapį',
 'delete' => 'Trinti',
 'deletethispage' => 'Ištrinti šį puslapį',
+'undeletethispage' => 'Attrinti šį puslapį',
 'undelete_short' => 'Atkurti $1 {{PLURAL:$1:redagavimą|redagavimus|redagavimų}}',
 'viewdeleted_short' => 'Peržiūrėti $1 {{PLURAL:$1|ištrintą keitimą|ištrintus keitimus|ištrintų keitimų}}',
 'protect' => 'Užrakinti',
@@ -424,7 +439,6 @@ $1',
 'disclaimers' => 'Atsakomybės apribojimas',
 'disclaimerpage' => 'Project:Atsakomybės apribojimas',
 'edithelp' => 'Kaip redaguoti',
-'edithelppage' => 'Help:Redagavimas',
 'helppage' => 'Help:Turinys',
 'mainpage' => 'Pagrindinis puslapis',
 'mainpage-description' => 'Pagrindinis puslapis',
@@ -563,13 +577,18 @@ Užklausa: $2',
 'viewsourcetext' => 'Jūs galite žiūrėti ir kopijuoti puslapio kodą:',
 'viewyourtext' => "Jūs galite matyti ir kopijuoti '''savo redagavimų''' tekstą į šį puslapį:",
 'protectedinterface' => 'Šiame puslapyje yra apsaugotas nuo piktnaudžiavimo programinės įrangos sąsajos tekstas.',
-'editinginterface' => "'''Dėmesio:''' Jūs redaguojate puslapį, kuris yra naudojamas programinės įrangos sąsajos tekste. Pakeitimai šiame puslapyje taip pat pakeis naudotojo sąsajos išvaizdą ir kitiems naudojams. Jei norite išversti, siūlome pasinaudoti [//translatewiki.net/wiki/Main_Page?setlang=lt „translatewiki.net“], „MediaWiki“ lokalizacijos projektu.",
+'editinginterface' => "'''Dėmesio:''' Jūs redaguojate puslapį, kuris yra naudojamas programinės įrangos sąsajos tekste. Pakeitimai šiame puslapyje taip pat pakeis naudotojo sąsajos išvaizdą ir kitiems naudotojams šiame wiki.
+Jei norite pridėti ir keisti vertimus, siūlome pasinaudoti [//translatewiki.net/wiki/Main_Page?setlang=lt „translatewiki.net“], „MediaWiki“ lokalizacijos projektu.",
 'sqlhidden' => '(SQL užklausa paslėpta)',
 'cascadeprotected' => 'Šis puslapis buvo apsaugotas nuo redagavimo, kadangi jis yra įtrauktas į {{PLURAL:$1|šį puslapį, apsaugotą|šiuos puslapius, apsaugotus}} „pakopinės apsaugos“ pasirinktimi:
 $2',
 'namespaceprotected' => "Jūs neturite teisės redaguoti puslapių '''$1''' srityje.",
 'customcssprotected' => 'Jūs neturite teisės keisti šį CSS puslapį, nes jame yra kito naudotojo asmeniniai nustatymai.',
 'customjsprotected' => 'Jūs neturite teisės keisti šį JavaScript puslapį, nes jame yra kito naudotojo asmeniniai nustatymai.',
+'mycustomcssprotected' => 'Jūs neturite teisės redaguoti šio CSS puslapio.',
+'mycustomjsprotected' => 'Jūs neturite teisės redaguoti šio JavaScript puslapio.',
+'myprivateinfoprotected' => 'Jūs neturite teisių redaguoti savo asmeninę informaciją.',
+'mypreferencesprotected' => 'Jūs neturite teisių redaguoti jūsų parinktys.',
 'ns-specialprotected' => 'Specialieji puslapiai negali būti redaguojami.',
 'titleprotected' => "[[User:$1|$1]] apsaugojo šį pavadinimą nuo sukūrimo.
 Nurodyta priežastis yra ''$2''.",
@@ -595,9 +614,19 @@ Pastaba: kai kuriuose puslapiuose ir toliau gali rodyti, kad esate prisijungęs
 'welcomecreation-msg' => 'Jūsų paskyra buvo sukurta.
 Nepamirškite pakeisti savo [[Special:Preferences|{{SITENAME}} nustatymų]].',
 'yourname' => 'Naudotojo vardas:',
+'userlogin-yourname' => 'Naudotojo vardas',
+'userlogin-yourname-ph' => 'Įveskite savo naudotojo vardą',
+'createacct-another-username-ph' => 'Įveskite naudotojo vardą',
 'yourpassword' => 'Slaptažodis:',
+'userlogin-yourpassword' => 'Slaptažodis',
+'userlogin-yourpassword-ph' => 'Įveskite savo slaptažodį',
+'createacct-yourpassword-ph' => 'Įveskite slaptažodį',
 'yourpasswordagain' => 'Pakartokite slaptažodį:',
+'createacct-yourpasswordagain' => 'Patvirtinkite slaptažodį',
+'createacct-yourpasswordagain-ph' => 'Įveskite slaptažodį dar kartą',
 'remembermypassword' => 'Prisiminti prisijungimo duomenis šiame kompiuteryje (daugiausiai $1 {{PLURAL:$1|dieną|dienas|dienų}})',
+'userlogin-remembermypassword' => 'Įsiminti mane',
+'userlogin-signwithsecure' => 'Naudoti saugią jungtį',
 'securelogin-stick-https' => 'Likite prisijungę prie HTTPS po prisijungimo',
 'yourdomainname' => 'Jūsų domenas:',
 'password-change-forbidden' => 'Jus negalite keisti slaptažodžių šioje wiki.',
@@ -610,18 +639,41 @@ Nepamirškite pakeisti savo [[Special:Preferences|{{SITENAME}} nustatymų]].',
 'logout' => 'Atsijungti',
 'userlogout' => 'Atsijungti',
 'notloggedin' => 'Neprisijungęs',
+'userlogin-noaccount' => 'Neturite paskyros?',
+'userlogin-joinproject' => 'Prisijungti prie {{SITENAME}}',
 'nologin' => "Neturite prisijungimo vardo? '''$1'''.",
 'nologinlink' => 'Sukurkite paskyrą',
 'createaccount' => 'Sukurti paskyrą',
 'gotaccount' => "Jau turite paskyrą? '''$1'''.",
 'gotaccountlink' => 'Prisijunkite',
 'userlogin-resetlink' => 'Pamiršote savo prisijungimo duomenis?',
+'userlogin-resetpassword-link' => 'Nustatykite slaptažodį iš naujo',
+'helplogin-url' => 'Help:Prisijungimas',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Prisijungimo pagalba]]',
+'createacct-join' => 'Įveskite savo informaciją žemiau.',
+'createacct-another-join' => 'Įveskite naujos paskyros informaciją žemiau.',
+'createacct-emailrequired' => 'Elektroninio pašto adresas',
+'createacct-emailoptional' => 'Elektroninio pašto adresas (neprivaloma)',
+'createacct-email-ph' => 'Įveskite savo elektroninio pašto adresą',
+'createacct-another-email-ph' => 'Įveskite elektroninio pašto adresą',
 'createaccountmail' => 'Naudokite laikiną atsitiktinį slaptažodį ir nusiųskite jį į elektroninį paštą, nurodytą žemiau.',
+'createacct-realname' => 'Vardas (neprivaloma)',
 'createaccountreason' => 'Priežastis:',
+'createacct-reason' => 'Priežastis',
+'createacct-reason-ph' => 'Kodėl kuriate kitą paskyrą',
+'createacct-captcha' => 'Saugumo patikrinimas',
+'createacct-imgcaptcha-ph' => 'Įveskite tekstą, kurį matote aukščiau',
+'createacct-submit' => 'Sukurkite savo paskyrą',
+'createacct-another-submit' => 'Sukurti kitą paskyrą',
+'createacct-benefit-heading' => '{{SITENAME}} sukurtas žmonių kaip jūs.',
+'createacct-benefit-body1' => '{{PLURAL:$1|keitimas|keitimai|keitimų}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|puslapis|puslapiai}}',
+'createacct-benefit-body3' => 'Neseni {{PLURAL:$1|autorius|autoriai|autorių}}',
 'badretype' => 'Įvesti slaptažodžiai nesutampa.',
 'userexists' => 'Įvestasis naudotojo vardas jau naudojamas.
 Prašome pasirinkti kitą vardą.',
 'loginerror' => 'Prisijungimo klaida',
+'createacct-error' => 'Paskyros kūrimo klaida',
 'createaccounterror' => 'Nepavyko sukurti paskyros: $1',
 'nocookiesnew' => 'Naudotojo paskyra buvo sukurta, bet jūs nesate prisijungęs. {{SITENAME}} naudoja slapukus, kad prijungtų naudotojus. Jūs esate išjungę slapukus. Prašome įjungti juos, tada prisijunkite su savo naujuoju naudotojo vardu ir slaptažodžiu.',
 'nocookieslogin' => '{{SITENAME}} naudoja slapukus, kad prijungtų naudotojus. Jūs esate išjungę slapukus. Prašome įjungti juos ir pamėginkite vėl.',
@@ -676,7 +728,7 @@ Prašome įvesti gerai suformuotą adresą arba palikite tą laukelį tuščią.
 'cannotchangeemail' => 'Paskyros e-mail adresas šiame viki negali būti keičiamas.',
 'emaildisabled' => 'Ši svetainė negali siųsti elektroninių laiškų.',
 'accountcreated' => 'Paskyra sukurta',
-'accountcreatedtext' => 'Naudotojo paskyra $1 buvo sukurta.',
+'accountcreatedtext' => 'Naudotojo paskyra [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) buvo sukurta.',
 'createaccount-title' => '{{SITENAME}} paskyros kūrimas',
 'createaccount-text' => 'Projekte {{SITENAME}} ($4) kažkas sukūrė paskyrą „$2“ su slaptažodžiu „$3“ panaudodamas jūsų el. pašto adresą.
 Jūs turėtumėte prisijungti ir pasikeisti savo slaptažodį.
@@ -711,13 +763,15 @@ Palaukite prieš bandant vėl.',
 'resetpass-wrong-oldpass' => 'Klaidingas laikinas ar esamas slaptažodis.
 Jūs galbūt jau sėkmingai pakeitėte savo slaptažodį ar gavote naują laikiną slaptažodį.',
 'resetpass-temp-password' => 'Laikinas slaptažodis:',
+'resetpass-abort-generic' => 'Slaptažodžio keitimas buvo nutrauktas nuo ekstenzijos.',
 
 # Special:PasswordReset
 'passwordreset' => 'Atstatyti slaptažodį',
-'passwordreset-text' => 'Užpildykite šią formą, norėdami atkurti savo slaptažodį.',
+'passwordreset-text-one' => 'Užpildykite šią formą, norėdami atkurti savo slaptažodį.',
+'passwordreset-text-many' => '{{PLURAL:$1|Užpildykite viena iš laukų slaptažodžio atkurimui.}}',
 'passwordreset-legend' => 'Atstatyti slaptažodį',
 'passwordreset-disabled' => 'Slaptažodžių atstatymai šiame wikyje išjungti.',
-'passwordreset-pretext' => '{{PLURAL:$1| | Langelyje parašykite vieną duomenų vienetų žemiau}}',
+'passwordreset-emaildisabled' => 'El. pašto funkcijos uždraustos šiame wiki.',
 'passwordreset-username' => 'Naudotojo vardas:',
 'passwordreset-domain' => 'Domenas:',
 'passwordreset-capture' => 'Peržiūrėti galutinį e-mail laišką?',
@@ -735,8 +789,8 @@ Jūs turėtumėte prisijungti ir pasirinkti naują slaptažodį. Jei kažkas kit
 {{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
 Laikinas slaptažodis: $2',
-'passwordreset-emailsent' => 'Priminimo laiškas buvo išsiųstas.',
-'passwordreset-emailsent-capture' => 'Priminimo e-mail laiškas bus pasiųstas, toks koks parodytas.',
+'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 e-mail laiškas buvo sugeneruotas, toks koks parodytas, bet pasiuntimas naudotojui buvo nesėkmingas: $1',
 
 # Special:ChangeEmail
@@ -846,7 +900,7 @@ Jūs galite [[Special:Search/{{PAGENAME}}|ieškoti šio puslapio pavadinimo]] ki
 arba [{{fullurl:{{FULLPAGENAME}}|action=edit}} redaguoti šį puslapį]</span>.',
 'noarticletext-nopermission' => 'Šiuo metu šiame puslapyje nėra jokio teksto.
 Jūs galite [[Special:Search/{{PAGENAME}}|ieškoti šio puslapio pavadinimo]] kituose puslapiuose,
-<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ieškoti susijusių įrašų]</span>.',
+<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ieškoti susijusių įrašų]</span>, bet jūs neturite teisės sukurti šį puslapį.',
 'userpage-userdoesnotexist' => 'Naudotojo paskyra „<nowiki>$1</nowiki>“ yra neužregistruota. Prašom patikrinti, ar jūs norite kurti/redaguoti šį puslapį.',
 'userpage-userdoesnotexist-view' => 'Naudotojo paskyra „$1“ neužregistruota.',
 'blocked-notice-logextract' => 'Šis naudotojas šiuo metu yra užblokuotas.
@@ -867,7 +921,7 @@ Jūs galite [[Special:Search/{{PAGENAME}}|ieškoti šio puslapio pavadinimo]] ki
 'updated' => '(Atnaujinta)',
 'note' => "'''Pastaba:'''",
 'previewnote' => "''Nepamirškite, kad tai tik peržiūra, pakeitimai dar nėra išsaugoti!'''",
-'continue-editing' => 'Tęsti redagavimą',
+'continue-editing' => 'Eiti į redagavimo sritį',
 'previewconflict' => 'Ši peržiūra parodo tekstą iš viršutiniojo teksto redagavimo lauko taip, kaip jis bus rodomas, jei pasirinksite išsaugoti.',
 'session_fail_preview' => "'''Atsiprašome! Mes negalime vykdyti jūsų keitimo dėl sesijos duomenų praradimo.
 Prašome pamėginti vėl. Jei tai nepadeda, pamėginkite atsijungti ir prisijungti atgal.'''",
@@ -902,7 +956,7 @@ Taip pat jūs pasižadate, kad tai jūsų pačių rašytas tekstas arba kopijuot
 iš viešų ar panašių nemokamų šaltinių (detaliau - $1).
 '''NEKOPIJUOKITE AUTORINĖMIS TEISĖMIS APSAUGOTŲ DARBŲ BE LEIDIMO!'''",
 'longpageerror' => "'''KLAIDA: Tekstas, kurį pateikėte, yra $1 {{PLURAL:$1|kilobaito|kilobaitų|kilobaitų}} ilgio, tai yra didesnis nei yra leistina. Yra leidžiami tiktai $2 {{PLURAL:$2|kilobaitas|kilobaitai|kilobaitų}}.''' Jis nebus išsaugotas.",
-'readonlywarning' => "'''DĖMESIO: Duomenų bazė buvo užrakinta techninei profilaktikai, todėl šiuo metu negalėsite išsaugoti savo pakeitimų. Siūlome nusikopijuoti tekstą į tekstinį failą ir vėliau jį čia išsaugoti.'''
+'readonlywarning' => "'''Įspėjimas: Duomenų bazė buvo užrakinta techninei profilaktikai, todėl šiuo metu negalėsite išsaugoti savo pakeitimų. Siūlome nusikopijuoti tekstą į tekstinį failą ir vėliau jį čia išsaugoti.'''
 
 Ją užrakinusio administratoriaus paaiškinimas: $1",
 'protectedpagewarning' => "'''Dėmesio: Šis puslapis yra užrakintas taip, kad jį redaguoti gali tik administratoriaus teises turintys naudotojai.'''
@@ -940,6 +994,7 @@ Tam nėra paaiškinimo.',
 Greičiausiai jis yra ištrintas.',
 'edit-conflict' => 'Redagavimo konfliktas.',
 'edit-no-change' => 'Jūsų keitimas buvo ignoruotas kadangi nebuvo atlikta jokių teksto pakeitimų.',
+'postedit-confirmation' => 'Jūsų pakeitimas išsaugotas.',
 'edit-already-exists' => 'Negalima sukurti naujo puslapio.
 Jis jau egzistuoja.',
 'defaultmessagetext' => 'Numatytasis pranešimo tekstas',
@@ -1000,8 +1055,8 @@ $3 nurodyta priežastis yra ''$2''",
 (pask) = palyginimas su prieš tai buvusia versija, S = smulkus keitimas.",
 'history-fieldset-title' => 'Ieškoti istorijoje',
 'history-show-deleted' => 'Tik ištrinti',
-'histfirst' => 'Seniausi',
-'histlast' => 'Paskutiniai',
+'histfirst' => 'seniausi',
+'histlast' => 'paskutiniai',
 'historysize' => '($1 {{PLURAL:$1|baitas|baitai|baitų}})',
 'historyempty' => '(tuščia)',
 
@@ -1177,7 +1232,6 @@ Prašome patikrinti sąrašus.',
 'searchmenu-legend' => 'Paieškos nustatymai',
 'searchmenu-exists' => "'''Puslapis pavadinimu „[[$1]]“ šioje wiki'''",
 'searchmenu-new' => "'''Sukurti puslapį „[[:$1]]“ šioje wiki!'''",
-'searchhelp-url' => 'Help:Turinys',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Ieškoti puslapių su šiuo priešdėliu]]',
 'searchprofile-articles' => 'Turinio puslapiai',
 'searchprofile-project' => 'Pagalbos ir projekto puslapiai',
@@ -1221,7 +1275,7 @@ Prašome patikrinti sąrašus.',
 
 # Preferences page
 'preferences' => 'Nustatymai',
-'mypreferences' => 'Mano nustatymai',
+'mypreferences' => 'Nustatymai',
 'prefs-edits' => 'Keitimų skaičius:',
 'prefsnologin' => 'Neprisijungęs',
 'prefsnologintext' => 'Jums reikia būti <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} prisijungusiam]</span>, kad galėtumėte keisti savo nustatymus.',
@@ -1251,7 +1305,6 @@ Prašome patikrinti sąrašus.',
 'resetprefs' => 'Išvalyti neišsaugotus pakeitimus',
 'restoreprefs' => 'Grąžinti visus numatytuosius nustatymus',
 'prefs-editing' => 'Redagavimas',
-'prefs-edit-boxsize' => 'Redagavimo lango dydis.',
 'rows' => 'Eilutės:',
 'columns' => 'Stulpeliai:',
 'searchresultshead' => 'Paieškos nustatymai',
@@ -1262,9 +1315,6 @@ Prašome patikrinti sąrašus.',
 'recentchangesdays-max' => '(daugiausiai $1 {{PLURAL:$1|diena|dienos|dienų}})',
 'recentchangescount' => 'Numatytasis rodomas keitimų skaičius:',
 'prefs-help-recentchangescount' => 'Į tai įeina naujausi keitimai, puslapių istorijos ir specialiųjų veiksmų sąrašai.',
-'prefs-help-watchlist-token' => 'Įrašius slaptą raktą į šį laukelį, bus sugeneruotas RSS srautas su jūsų stebimųjų sąrašu.
-Bet kas, žinantis šio lauko raktą, galės matyti jūsų stebimų sąrašą, todėl pasirinkite saugią reikšmę.
-Galite panaudoti šią atsitiktinai sugeneruotą reikšmę: $1',
 'savedprefs' => 'Nustatymai sėkmingai išsaugoti.',
 'timezonelegend' => 'Laiko juosta:',
 'localtime' => 'Vietinis laikas:',
@@ -1284,7 +1334,7 @@ Galite panaudoti šią atsitiktinai sugeneruotą reikšmę: $1',
 'timezoneregion-indian' => 'Indijos vandenynas',
 'timezoneregion-pacific' => 'Ramusis vandenynas',
 'allowemail' => 'Leisti siųsti el. laiškus iš kitų naudotojų',
-'prefs-searchoptions' => 'Paieškos nuostatos',
+'prefs-searchoptions' => 'Paieška',
 'prefs-namespaces' => 'Vardų sritys',
 'defaultns' => 'Pagal nutylėjimą ieškoti šiose vardų srityse:',
 'default' => 'pagal nutylėjimą',
@@ -1295,10 +1345,9 @@ Galite panaudoti šią atsitiktinai sugeneruotą reikšmę: $1',
 'prefs-reset-intro' => 'Jūs galite pasinaudoti šiuo puslapiu, kad grąžintumėte savo nustatymus į svetainės numatytuosius.
 Tai nebeatšaukiama.',
 'prefs-emailconfirm-label' => 'El. pašto patvirtinimas:',
-'prefs-textboxsize' => 'Redagavimo lango dydis',
 'youremail' => 'El. paštas:',
-'username' => 'Naudotojo vardas:',
-'uid' => 'Naudotojo ID:',
+'username' => '{{GENDER:$1Naudotojo vardas}}:',
+'uid' => '{{GENDER:$1|Naudotojo}} ID:',
 'prefs-memberingroups' => '{{PLURAL:$1|Grupės|Grupių}} narys:',
 'prefs-registration' => 'Registravimosi laikas:',
 'yourrealname' => 'Tikrasis vardas:',
@@ -1327,7 +1376,9 @@ Jei jūs jį įvesite, jis bus naudojamas pažymėti jūsų darbą.',
 'prefs-signature' => 'Parašas',
 'prefs-dateformat' => 'Datos formatas',
 'prefs-timeoffset' => 'Laiko skirtumas',
-'prefs-advancedediting' => 'Papildomi nustatymai',
+'prefs-advancedediting' => 'Bendras',
+'prefs-editor' => 'Redaktorius',
+'prefs-preview' => 'Peržiūra',
 'prefs-advancedrc' => 'Papildomi nustatymai',
 'prefs-advancedrendering' => 'Papildomi nustatymai',
 'prefs-advancedsearchoptions' => 'Papildomi nustatymai',
@@ -1363,6 +1414,7 @@ teisės",
 'userrights-notallowed' => 'Jūsų paskyra neturi teisių priskirti ar panaikinti naudotojų teises.',
 'userrights-changeable-col' => 'Grupės, kurias galite keisti',
 'userrights-unchangeable-col' => 'Grupės, kurių negalite keisti',
+'userrights-conflict' => 'Naudotojo teisių konfliktas! Prašome dar kartą taikyti savo keitimus.',
 
 # Groups
 'group' => 'Grupė:',
@@ -1433,6 +1485,10 @@ teisės",
 'right-editusercssjs' => 'Redaguoti kitų naudotojų CSS ir JS failus',
 'right-editusercss' => 'Redaguoti kitų naudotojų CSS failus',
 'right-edituserjs' => 'Redaguoti kitų naudotojų JS failus',
+'right-editmyusercss' => 'Redaguoti savo vartotojo CSS failus',
+'right-editmyuserjs' => 'Redaguokite savo naudotojo vartotojo JavaScript failus',
+'right-viewmywatchlist' => 'Peržiūrėti savo stebimų sąrašą',
+'right-editmyoptions' => 'Redaguoti savo nuostatas',
 'right-rollback' => 'Greitai atmesti paskutinio naudotojo tam tikro puslapio pakeitimus',
 'right-markbotedits' => 'Žymėti atmestus keitimus kaip atliktus boto',
 'right-noratelimit' => 'Netaikyti greičio apribojimų',
@@ -1494,6 +1550,10 @@ teisės",
 'action-userrights-interwiki' => 'keisti naudotojų teises kitose wiki svetainėse',
 'action-siteadmin' => 'užrakinti ar atrakinti duomenų bazę',
 'action-sendemail' => 'siųsti e-mail laiškus',
+'action-editmywatchlist' => 'redaguoti savo stebėjimų sąrašą',
+'action-viewmywatchlist' => 'rodyti savo stebėjimų sąrašą',
+'action-viewmyprivateinfo' => 'peržiūrėti jūsų privačią informaciją',
+'action-editmyprivateinfo' => 'redaguoti savo privačią informaciją',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|pakeitimas|pakeitimai|pakeitimų}}',
@@ -1536,7 +1596,6 @@ teisės",
 'recentchangeslinked-feed' => 'Susiję keitimai',
 'recentchangeslinked-toolbox' => 'Susiję keitimai',
 'recentchangeslinked-title' => 'Su „$1“ susiję keitimai',
-'recentchangeslinked-noresult' => 'Nėra jokių pakeitimų susietuose puslapiuose duotu periodu.',
 'recentchangeslinked-summary' => "Tai paskutinių keitimų, atliktų puslapiuose, į kuriuos yra nuoroda iš nurodyto puslapio (arba į nurodytos kategorijos narius), sąrašas.
 Puslapiai iš jūsų [[Special:Watchlist|stebimųjų sąrašo]] yra '''paryškinti'''.",
 'recentchangeslinked-page' => 'Puslapio pavadinimas:',
@@ -1548,7 +1607,7 @@ Puslapiai iš jūsų [[Special:Watchlist|stebimųjų sąrašo]] yra '''paryškin
 'reuploaddesc' => 'Atšaukti įkėlimą ir grįžti į įkėlimo formą.',
 'upload-tryagain' => 'Siųsti pakeistą failo aprašymą',
 'uploadnologin' => 'Neprisijungęs',
-'uploadnologintext' => 'Norėdami įkelti failą, turite būti [[Special:UserLogin|prisijungęs]].',
+'uploadnologintext' => 'Jūs turite $1, norėdami įkelti failus',
 'upload_directory_missing' => 'Nėra įkėlimo aplanko ($1) ir negali būti sukurtas tinklo serverio.',
 'upload_directory_read_only' => 'Tinklapio serveris negali rašyti į įkėlimo aplanką ($1).',
 'uploaderror' => 'Įkėlimo klaida',
@@ -1664,9 +1723,9 @@ $1',
 'upload-proto-error-text' => 'Nuotoliniai įkėlimas reikalauja, kad URL prasidėtų <code>http://</code> arba <code>ftp://</code>.',
 'upload-file-error' => 'Vidinė klaida',
 'upload-file-error-text' => 'Įvyko vidinė klaida bandant sukurti laikinąjį failą serveryje.
-Prašome susisiekti su [[Special:ListUsers/sysop|sistemos administratoriumi]].',
+Prašome susisiekti su [[Special:ListUsers/sysop|administratoriumi]].',
 'upload-misc-error' => 'Nežinoma įkėlimo klaida',
-'upload-misc-error-text' => 'Įvyko nežinoma klaida vykstant įkėlimui. Prašome patikrinti, kad URL teisingas bei pasiekiamas ir pamėginkite vėl. Jei problema lieka, susisiekite su sistemos administratoriumi.',
+'upload-misc-error-text' => 'Įvyko nežinoma klaida vykstant įkėlimui. Prašome patikrinti, kad URL teisingas bei pasiekiamas ir pamėginkite vėl. Jei problema lieka, susisiekite su [[Special:ListUsers/sysop|administratoriumi]].',
 'upload-too-many-redirects' => 'URL yra per daug kartų peradresuotas',
 'upload-unknown-size' => 'Nežinomas dydis',
 'upload-http-error' => 'Įvyko HTTP klaida: $1',
@@ -1719,6 +1778,7 @@ Prašome susisiekti su [[Special:ListUsers/sysop|sistemos administratoriumi]].',
 'uploadstash-badtoken' => 'Scenos šį ieškinį, buvo nesėkmingas, galbūt todėl, kad jūsų redagavimo įgaliojimai pasibaigė. Bandykite dar kartą.',
 'uploadstash-errclear' => 'Kliringo failai buvo nesėkmingas.',
 'uploadstash-refresh' => 'Atnaujinti failų sąrašą',
+'invalid-chunk-offset' => 'Neleistinas segmento poslinkis',
 
 # img_auth script messages
 'img-auth-accessdenied' => 'Prieiga uždrausta',
@@ -1896,6 +1956,12 @@ Informacija iš [$2 failo aprašymo puslapio] yra pateikiama žemiau.',
 Nuorodos turėtų būti patikslintos, kad rodytų į konkretų puslapį.<br />
 Puslapis laikomas daugiaprasmiu puslapiu, jei jis naudoja šabloną, kuris yra nurodomas iš [[MediaWiki:Disambiguationspage]].",
 
+'pageswithprop' => 'Puslapiai su puslapio atributais',
+'pageswithprop-legend' => 'Puslapiai su puslapio atributais',
+'pageswithprop-text' => 'Šiame puslapyje pateikiami puslapiai, kurie ypač naudoja puslapio atributus.',
+'pageswithprop-prop' => 'Ypatybės pavadinimas:',
+'pageswithprop-submit' => 'Eiti',
+
 'doubleredirects' => 'Dvigubi peradresavimai',
 'doubleredirectstext' => 'Šiame puslapyje yra puslapių, kurie nukreipia į kitus peradresavimo puslapius, sąrašas.
 Kiekvienoje eilutėje yra nuorodos į pirmąjį ir antrąjį peradresavimą, taip pat antrojo peradresavimo paskirtis, kuris paprastai yra „tikrasis“ paskirties puslapis, į kurį pirmasis peradresavimas ir turėtų rodyti.
@@ -2048,7 +2114,7 @@ Taip pat žiūrėkite [[Special:WantedCategories|trokštamas kategorijas]].',
 'linksearch-ok' => 'Ieškoti',
 'linksearch-text' => 'Galima naudoti žvaigždutes, pvz., „*.wikipedia.org“.<br />
 Yra būtinas bent jau aukščiausio lygio domenas, pvz., „*.org“.<br />
-Palaikomi protokolai: <code>$1</code> (nei vieno iš jų nenurodykite paieškoje).',
+{{PLURAL:$2|Palaikomas protokolas|Palaikomi protokolai|Palaikomų protokolų}}: <code>$1</code> (numato į http://, jei nenurodytas joks protokolas).',
 'linksearch-line' => '$1 yra susietas iš $2',
 'linksearch-error' => 'Žvaigždutės gali būti tik adreso pradžioje.',
 
@@ -2061,7 +2127,7 @@ Palaikomi protokolai: <code>$1</code> (nei vieno iš jų nenurodykite paieškoje
 # Special:ActiveUsers
 'activeusers' => 'Aktyvių naudotojų sąrašas',
 'activeusers-intro' => 'Tai naudotojų sąrašas, kurie ką nors padarė per $1 {{PLURAL:$1|paskutinę dieną|paskutines dienas|paskutinių dienų}}.',
-'activeusers-count' => '$1 {{PLURAL:$1|keitimas|keitimai|keitimų}} per $3 {{PLURAL:$3|paskutinę dieną|paskutines dienas|paskutinių dienų}}',
+'activeusers-count' => '$1 {{PLURAL:$1|keitimas|keitimai|keitimų}} per {{PLURAL:$3|paskutinę dieną|$3 paskutines dienas|$3 paskutinių dienų}}',
 'activeusers-from' => 'Rodyti naudotojus, pradedant:',
 'activeusers-hidebots' => 'Slėpti robotus',
 'activeusers-hidesysops' => 'Slėpti administratorius',
@@ -2124,8 +2190,8 @@ El. pašto adresas, kurį įvedėte [[Special:Preferences|savo naudotojo nustaty
 'usermessage-editor' => 'Sistemos pranešėjas',
 
 # Watchlist
-'watchlist' => 'Stebimi puslapiai',
-'mywatchlist' => 'Stebimi puslapiai',
+'watchlist' => 'Stebimų sąrašas',
+'mywatchlist' => 'Stebimų sąrašas',
 'watchlistfor2' => 'Naudotojo $1 $2',
 'nowatchlist' => 'Neturite nei vieno stebimo puslapio.',
 'watchlistanontext' => 'Prašome $1, kad peržiūrėtumėte ar pakeistumėte elementus savo stebimųjų sąraše.',
@@ -2143,9 +2209,8 @@ taip pat bus '''paryškinti''' [[Special:RecentChanges|naujausių keitimų sąra
 'unwatchthispage' => 'Nustoti stebėti',
 'notanarticle' => 'Ne turinio puslapis',
 'notvisiblerev' => 'Versija buvo ištrinta',
-'watchnochange' => 'Pasirinktu laikotarpiu nebuvo redaguotas nei vienas stebimas puslapis.',
 'watchlist-details' => 'Stebima {{PLURAL:$1|$1 puslapis|$1 puslapiai|$1 puslapių}} neskaičiuojant aptarimų puslapių.',
-'wlheader-enotif' => 'El. pašto priminimai yra įjungti.',
+'wlheader-enotif' => 'El. pašto pranešimai yra įjungti.',
 'wlheader-showupdated' => "Puslapiai pakeisti nuo tada, kai paskutinį kartą apsilankėte juose, yra pažymėti '''pastorintai'''",
 'watchmethod-recent' => 'tikrinami naujausi stebimųjų puslapių pakeitimai',
 'watchmethod-list' => 'ieškoma naujausių keitimų stebimuose puslapiuose',
@@ -2295,7 +2360,7 @@ Dabar veikiančių puslapių apsaugų sąrašą rasite [[Special:ProtectedPages|
 'protect-default' => 'Leisti visiems naudotojams',
 'protect-fallback' => 'Reikalauti „$1“ teisės',
 'protect-level-autoconfirmed' => 'Blokuoti naujai prisiregistravusius ir neregistruotus naudotojus',
-'protect-level-sysop' => 'Tik administratoriai',
+'protect-level-sysop' => 'Leisti tik administratoriams',
 'protect-summary-cascade' => 'pakopinė apsauga',
 'protect-expiring' => 'baigia galioti $1 (UTC)',
 'protect-expiring-local' => 'baigia galioti $1',
@@ -2391,12 +2456,12 @@ $1',
 'blanknamespace' => '(Pagrindinė)',
 
 # Contributions
-'contributions' => 'Naudotojo indėlis',
+'contributions' => '{{GENDER:$1|Naudotojo}} įndėlis',
 'contributions-title' => '{{GENDER:$1|Naudotojo|Naudotojos}} $1 indėlis',
-'mycontris' => 'Mano įnašas',
+'mycontris' => 'Įnašai',
 'contribsub2' => 'Naudotojo $1 ($2)',
 'nocontribs' => 'Jokie keitimai neatitiko šių kriterijų.',
-'uctop' => ' (paskutinis)',
+'uctop' => '(dabartinis)',
 'month' => 'Nuo mėnesio (ir anksčiau):',
 'year' => 'Nuo metų (ir anksčiau):',
 
@@ -2434,7 +2499,7 @@ Paskutinis blokavimo įrašas pateikiamas žemiau:',
 'whatlinkshere-hideredirs' => '$1 nukreipimus',
 'whatlinkshere-hidetrans' => '$1 įtraukimus',
 'whatlinkshere-hidelinks' => '$1 nuorodas',
-'whatlinkshere-hideimages' => '$1 paveikslėlių nuorodos',
+'whatlinkshere-hideimages' => '$1 failų nuorodos',
 'whatlinkshere-filters' => 'Filtrai',
 
 # Block/unblock
@@ -2634,7 +2699,7 @@ dėl to šį veiksmą vykdykite tik įsitikinę, kad suprantate visas pasekmes."
 'movenologintext' => 'Norėdami pervadinti puslapį, turite būti užsiregistravęs naudotojas ir būti  [[Special:UserLogin|prisijungęs]].',
 'movenotallowed' => 'Jūs neturite teisių pervadinti puslapių.',
 'movenotallowedfile' => 'Jūs neturite teisės perkelti failus.',
-'cant-move-user-page' => 'Jūs neturite teisės perkelti naudotojų puslapių (išskyrus popuslapius).',
+'cant-move-user-page' => 'Jūs neturite teisės pervardyti naudotojų puslapių (išskyrus subpuslapius).',
 'cant-move-to-user-page' => 'Jūs neturite teisių perkelti puslapį į naudotojo puslapį (išskyrus į naudotojo popuslapį).',
 'newtitle' => 'Naujas pavadinimas:',
 'move-watch' => 'Stebėti šį puslapį',
@@ -2735,6 +2800,7 @@ Aplankykite [//www.mediawiki.org/wiki/Localisation „MediaWiki“ lokaliziciją
 'thumbnail-more' => 'Padidinti',
 'filemissing' => 'Dingęs failas',
 'thumbnail_error' => 'Klaida kuriant sumažintą paveikslėlį: $1',
+'thumbnail_error_remote' => 'Klaidos pranešimas iš $1: $2',
 'djvu_page_error' => 'DjVu puslapis nepasiekiamas',
 'djvu_no_xml' => 'Nepavyksta gauti XML DjVu failui',
 'thumbnail-temp-create' => 'Negalima sukurti laikinos failo miniatiūros',
@@ -2756,6 +2822,7 @@ Visi tarpprojektiniai importo veiksmai yra registruojami  [[Special:Log/import|i
 'import-interwiki-templates' => 'Įtraukti visus šablonus',
 'import-interwiki-submit' => 'Importuoti',
 'import-interwiki-namespace' => 'Paskirties vardų sritis:',
+'import-interwiki-rootpage' => 'Paskirties namų puslapis (pasirinktinai):',
 'import-upload-filename' => 'Failo pavadinimas:',
 'import-comment' => 'Komentaras:',
 'importtext' => 'Prašome eksportuoti iš projekto-šaltinio failo, naudojant [[Special:Export|eksportavimo pagalbininką.]]
@@ -2788,6 +2855,7 @@ Išsaugokite jį savo kompiuteryje ir įkelkite jį čia.',
 'import-error-interwiki' => 'Puslapis "$1" nebuvo įkeltas, kadangi jo pavadinimas yra rezervuotas išorinei nuorodai (interviki).',
 'import-error-special' => 'Puslapis "$1" nebuvo įkeltas, kadangi jis priklauso specialiai vardų sričiai, kurioje yra negalimi puslapiai.',
 'import-error-invalid' => 'Puslapis "$1" nebuvo įkeltas, kadangi jo vardas yra neteisingas.',
+'import-rootpage-invalid' => 'Duotas šaknų puslapis yra blogas pavadinimas.',
 
 # Import log
 'importlogpage' => 'Importavimų sąrašas',
@@ -2937,12 +3005,15 @@ Leidžia pridėti atmetimo priežastį komentaruose',
 'pageinfo-authors' => 'Skirtingų autorių skaičius',
 'pageinfo-recent-edits' => 'Paskutinųjų keitimų skaičius (per $1 laikotarpį)',
 'pageinfo-recent-authors' => 'Pastarųjų skirtingų redaguotojų skaičius',
+'pageinfo-magic-words' => 'Magiškas(-i) {{PLURAL:$1|žodis|žodžiai}} ($1)',
 'pageinfo-toolboxlink' => 'Puslapio informacija',
 'pageinfo-redirectsto' => 'Nukreipimai į',
 'pageinfo-redirectsto-info' => 'informacija',
 'pageinfo-contentpage' => 'Priskirtas turinio puslapiams',
 'pageinfo-contentpage-yes' => 'Taip',
+'pageinfo-protect-cascading' => 'Apsaugos yra kaskaduotos iš čia',
 'pageinfo-protect-cascading-yes' => 'Taip',
+'pageinfo-protect-cascading-from' => 'Apsaugos yra kaskaduotos iš',
 'pageinfo-category-info' => 'Informacija apie kategoriją',
 'pageinfo-category-pages' => 'Puslapių skaičius',
 'pageinfo-category-subcats' => 'Dukterinių kategorijų skaičius',
@@ -2998,6 +3069,7 @@ Jį paleidus jūsų sistema gali būti pažeista.",
 'file-info-size-pages' => '$1 × $2 taškų, failo dydis: $3, MIME tipas: $4, $5 {{PLURAL:$5|page|pages}}',
 'file-nohires' => 'Geresnė raiška negalima.',
 'svg-long-desc' => 'SVG failas, formaliai $1 × $2 taškų, failo dydis: $3',
+'svg-long-desc-animated' => 'Animuotas SVG failas, formaliai $1 × $2 pikselių, failo dydis: $3',
 'svg-long-error' => 'Neleistinas SVG failas: $1',
 'show-big-image' => 'Pilna raiška',
 'show-big-image-preview' => 'Sumažintos iliustracijos dydis: $1 .',
@@ -3008,6 +3080,7 @@ Jį paleidus jūsų sistema gali būti pažeista.",
 'file-info-png-looped' => 'ciklinis',
 'file-info-png-repeat' => 'grota $1 {{PLURAL:$1|kartą|kartus|kartų}}',
 'file-info-png-frames' => '$1 {{PLURAL:$1|kadras|kadrai|kadrų}}',
+'file-no-thumb-animation' => "'''Pastaba: Dėl techninių apribojimų, miniatiūrų, šis failas negali būti animacinis.'''",
 
 # Special:NewFiles
 'newimages' => 'Naujausių failų galerija',
@@ -3026,9 +3099,25 @@ Jį paleidus jūsų sistema gali būti pažeista.",
 'minutes' => '{{PLURAL:$1|$1 minutę|$1 minutes|$1 minučių}}',
 'hours' => '{{PLURAL:$1|$1 valandą|$1 valandas|$1 valandų}}',
 'days' => '{{PLURAL:$1|$1 dieną|$1 dienas|$1 dienų}}',
+'weeks' => '{{PLURAL:$1|$1 savaitė|$1 savaitės}}',
+'months' => '{{PLURAL:$1|$1 mėnuo|$1 mėnesiai}}',
+'years' => '{{PLURAL:$1|$1 metai}}',
 'ago' => 'prieš $1',
 'just-now' => 'tik dabar',
 
+# Human-readable timestamps
+'hours-ago' => 'prieš $1 {{PLURAL:$1|valandą|valandas|valandų}}',
+'minutes-ago' => 'prieš $1 {{PLURAL:$1|minutę|minutes|minučių}}',
+'seconds-ago' => 'prieš $1 {{PLURAL:$1|sekundę|sekundes|sekundžių}}',
+'monday-at' => 'Pirmadienį $1',
+'tuesday-at' => 'Antradienį $1',
+'wednesday-at' => 'Trečiadienį $1',
+'thursday-at' => 'Ketvirtadienį $1',
+'friday-at' => 'Penktadienį $1',
+'saturday-at' => 'Šeštadienį $1',
+'sunday-at' => 'Sekmadienį $1',
+'yesterday-at' => 'Vakar $1',
+
 # Bad image list
 'bad_image_list' => 'Formatas yra toks:
 
@@ -3526,6 +3615,7 @@ $5
 # Scary transclusion
 'scarytranscludedisabled' => '[Tarpprojektinis įterpimas yra išjungtas]',
 'scarytranscludefailed' => '[Šablono gavimas iš $1 nepavyko]',
+'scarytranscludefailed-httpstatus' => '[Šablono iškviesti nepavyko $1: HTTP $2]',
 'scarytranscludetoolong' => '[URL per ilgas]',
 
 # Delete conflict
@@ -3631,7 +3721,6 @@ Jūs taip pat galite [[Special:EditWatchlist|naudoti standartinį redaktorių]].
 'version-other' => 'Kita',
 'version-mediahandlers' => 'Daugialypės terpės grotuvai',
 'version-hooks' => 'Gaudliai',
-'version-extension-functions' => 'Papildomos funkcijos',
 'version-parser-extensiontags' => 'Analizatoriaus papildomosios gairės',
 'version-parser-function-hooks' => 'Analizatoriaus funkciniai gaudliai',
 'version-hook-name' => 'Gaudlio pavadinimas',
@@ -3653,6 +3742,17 @@ Jūs turėjote gauti [{{SERVER}}{{SCRIPTPATH}}/COPYING GNU General Public Licens
 'version-entrypoints-header-entrypoint' => 'Įėjimo taškas',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
+'redirect' => 'Nukreipkite iš failo, naudotojo arba pakeiskite ID',
+'redirect-legend' => 'Nukreipti į failą ar puslapį',
+'redirect-submit' => 'Eiti',
+'redirect-lookup' => 'Peržvalgos:',
+'redirect-value' => 'Vertė:',
+'redirect-user' => 'Naudotojo ID',
+'redirect-revision' => 'Puslapio peržiūra',
+'redirect-file' => 'Failo vardas',
+'redirect-not-exists' => 'Vertė nėra nustatyta',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Ieškoti dublikuotų failų',
 'fileduplicatesearch-summary' => 'Pasikartojančių failų paieška pagal jų kontrolinę sumą.',
@@ -3672,7 +3772,7 @@ Jūs turėjote gauti [{{SERVER}}{{SCRIPTPATH}}/COPYING GNU General Public Licens
  * <span class="mw-specialpagecached">Talpyklinių specialius puslapius (gali būti pasenusius).</span>',
 'specialpages-group-maintenance' => 'Sistemos palaikymo pranešimai',
 'specialpages-group-other' => 'Kiti specialieji puslapiai',
-'specialpages-group-login' => 'Prisijungimas / Registracija',
+'specialpages-group-login' => 'Prisijungti / sukurti paskyrą',
 'specialpages-group-changes' => 'Naujausi keitimai ir istorijos',
 'specialpages-group-media' => 'Informacija apie failus ir jų pakrovimas',
 'specialpages-group-users' => 'Naudotojai ir teisės',
@@ -3742,14 +3842,17 @@ Jūs turėjote gauti [{{SERVER}}{{SCRIPTPATH}}/COPYING GNU General Public Licens
 'htmlform-submit' => 'Siųsti',
 'htmlform-reset' => 'Atšaukti pakeitimus',
 'htmlform-selectorother-other' => 'Kita',
+'htmlform-no' => 'Ne',
+'htmlform-yes' => 'Taip',
+'htmlform-chosen-placeholder' => 'Pasirinkite parinktį',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 su visatekstės paieškos palaikymu',
 'sqlite-no-fts' => '$1 be visatekstės paieškos palaikymo',
 
 # New logging system
-'logentry-delete-delete' => '$1 ištrynė puslapį $3',
-'logentry-delete-restore' => '$1 atkūrė puslapį $3',
+'logentry-delete-delete' => '$1 {{GENDER:$2|ištrynė}} puslapį $3',
+'logentry-delete-restore' => '$1 {{GENDER:$2|atkūrė}} puslapį $3',
 'logentry-delete-event' => '$1 pakeistas  matomumas {{PLURAL:$5|žurnalo įvykio|$5 žurnalo įvykių}} tarp $3: $4',
 'logentry-delete-revision' => '$1 pakeitė puslapio „$3“ {{PLURAL:$5|versijos|$5 versijų}} matomumą: $4',
 'logentry-delete-event-legacy' => '$1 pakeistas matomumą žurnalo renginiams tarp $3',
@@ -3779,8 +3882,8 @@ Jūs turėjote gauti [{{SERVER}}{{SCRIPTPATH}}/COPYING GNU General Public Licens
 'logentry-newusers-byemail' => 'Naudotojas $1 sukūrė paskyrą $3, slaptažodis išsiųstas E-paštu.',
 'logentry-newusers-autocreate' => 'Paskyra $1 buvo sukurta automatiškai',
 'logentry-rights-rights' => '$1 pakeista narystė grupėje $3 iš $4 į $5',
-'logentry-rights-rights-legacy' => '$1 pakeista narystė grupėje $3',
-'logentry-rights-autopromote' => '$1 buvo automatiškai pervestas iš $4 į $5',
+'logentry-rights-rights-legacy' => '$1 {{GENDER:$2|pakeista}} narystė grupėje $3',
+'logentry-rights-autopromote' => '$1 buvo automatiškai {{GENDER:$2|pervestas}} iš $4 į $5',
 'rightsnone' => '(jokių)',
 
 # Feedback
@@ -3835,6 +3938,7 @@ Kitu atveju, galite naudotis žemiau esančia paprastesne forma. Jūsų komentar
 'api-error-ok-but-empty' => 'Vidinė klaida: nėra atsakymo iš serverio.',
 'api-error-overwrite' => 'Perrašymas esamą failą neleidžiamas.',
 'api-error-stashfailed' => 'Vidinė klaida: serveriui nepavyko išsaugoti laikinąjį failą.',
+'api-error-publishfailed' => 'Vidinė klaida: serveriui nepavyko paskelbti laikino failo.',
 'api-error-timeout' => 'Serveris neatsakė per numatytą laiką.',
 'api-error-unclassified' => 'Įvyko nežinoma klaida',
 'api-error-unknown-code' => 'Nežinoma klaida: " $1 "',
index 46d2694..960471c 100644 (file)
@@ -192,7 +192,6 @@ $messages = array(
 'disclaimers' => 'Daīšmu nūstatejumi',
 'disclaimerpage' => 'Project:Dasaīšonu nūstateišona',
 'edithelp' => 'Paleigs',
-'edithelppage' => 'Help:Pataiseišona',
 'helppage' => 'Help:Turīņs',
 'mainpage' => 'Suoku puslopa',
 'mainpage-description' => 'Suoku puslopa',
@@ -211,7 +210,6 @@ $messages = array(
 'newmessageslink' => 'jaunus viestejumus',
 'newmessagesdifflink' => 'pādejā pataise',
 'editsection' => 'pataiseit',
-'editsection-brackets' => '[$1]',
 'editold' => 'pataiseit',
 'editlink' => 'pataiseit',
 'viewsourcelink' => 'Apsavērt suokūtnejū kodu',
@@ -386,7 +384,6 @@ n = nasvareigs lobuojums.',
 'prevn' => 'īprīškejuos {{PLURAL:$1|$1}}',
 'nextn' => 'nuokamuos {{PLURAL:$1|$1}}',
 'viewprevnext' => 'Apsavērt ($1 {{int:pipe-separator}} $2) ($3 vīnā lopā).',
-'searchhelp-url' => 'Help:Turīņs',
 'searchprofile-articles' => 'Rakstīņuos',
 'search-result-size' => '$1 ({{PLURAL:$2|$2 vuords|$2 vuordi|$2 vuordi}})',
 'search-redirect' => '(puoradresiešona nu $1)',
index 7bd9062..a243afc 100644 (file)
@@ -253,7 +253,6 @@ $1',
 'disclaimers' => 'Intlawhkhalhna',
 'disclaimerpage' => 'Project: Intlawhkhalhna Dan',
 'edithelp' => 'Siamţhat zirna',
-'edithelppage' => 'Help: Siamţhat dàn',
 'helppage' => 'Help: A chhunga thu awmte',
 'mainpage' => 'Phekpui',
 'mainpage-description' => 'Phekpui',
@@ -503,7 +502,6 @@ I thurûk i thlâk hlawhtling tawh a nih loh pawhin thurûk lailâwk i dil a ni
 
 # Special:PasswordReset
 'passwordreset' => 'Thurûk ziakţha rawh',
-'passwordreset-text' => 'I thurûk thlâk turin ahnuaia lehkha khu dah khat ang che.',
 'passwordreset-legend' => 'Thurûk ziakţha rawh',
 'passwordreset-username' => 'Hmangtu hming:',
 'passwordreset-domain' => 'Huamchin:',
@@ -737,7 +735,6 @@ Lamtawi hmante: '''({{int:cur}})'''= ennawnna thar ber nena danglamna, '''({{int
 'searchmenu-legend' => 'Zawn duhthlanna',
 'searchmenu-exists' => "'''He wiki-ah hian \"[[:\$1]]\" tia koh phêk a awm.'''",
 'searchmenu-new' => "'''[[:$1]] phek hi he wiki-ah hian siam rawh le!'''",
-'searchhelp-url' => 'Help:A chhunga thu awmte',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|He thuhmabet nei phêkte hi zawng rawh]]',
 'searchprofile-articles' => 'A chhunga thu awm',
 'searchprofile-project' => 'Ţanpuina leh hna-hmachhawp phekte',
@@ -810,7 +807,6 @@ Google hmangin i lo zawng hrih thei ang.
 'resetprefs' => 'Tihdanglamna dahţhat loh tifai rawh',
 'restoreprefs' => 'A awmdàn siamsaah dah lêt vek rawh',
 'prefs-editing' => 'Siamţhat',
-'prefs-edit-boxsize' => 'Siamţhatna tukverh lenzawng',
 'rows' => 'Tlar:',
 'columns' => 'Thlur:',
 'searchresultshead' => 'Zawnna',
@@ -850,7 +846,6 @@ Google hmangin i lo zawng hrih thei ang.
 'prefs-reset-intro' => 'He phêk hi ränghmuna i duhthlansa tihdanglam nan i hmang thei.
 A sûtlêt theih loh.',
 'prefs-emailconfirm-label' => 'E-chenhmun tihchianna:',
-'prefs-textboxsize' => 'Siamţhatna tukverh lenzawng',
 'youremail' => 'E-chenhmun:',
 'username' => 'Hmangtu hming:',
 'uid' => 'Hmangtu ID',
@@ -1036,7 +1031,6 @@ Hmangtuten e-lehkha an thawn chein i e-chenhmun hrilh an ni chuang lo vang.',
 'recentchangeslinked-feed' => 'Tihdanglam anpuite',
 'recentchangeslinked-toolbox' => 'Tihdanglam anpuite',
 'recentchangeslinked-title' => '"$1" kaihhnawih tihdanglamnate',
-'recentchangeslinked-noresult' => 'I hun thlan chhungah hian a phek zawmpui tihdanglam pakhat mah a awm lo.',
 'recentchangeslinked-summary' => "Hei hi phek pakhat (emaw pawl pakhata telte) aţanga zawm chhuah phek-hova tihdanglam thar ziah chhuahna a ni.
 [[Special:Watchlist|I ralvèn]] phêkte chu '''hawrawp thau'''-a tihlan a ni.",
 'recentchangeslinked-page' => 'Phek hming:',
@@ -1427,7 +1421,6 @@ Hetah hian [[Special:UnusedCategories|pawl hman lohho]] pholan tel a ni lo.
 'unwatchthispage' => 'Vil tihtawpna',
 'notanarticle' => 'Phêk dikdawh a ni lo.',
 'notvisiblerev' => 'Hmangtu dang tihdanglamna thar paihbo a ni.',
-'watchnochange' => 'I hun sawi chhungah khan i ralvèn khawih buai a ni lo.',
 'watchlist-details' => 'I ralvèn zing aţanga {{PLURAL:$1| phêk $1 |phêk $1}}, sawihona phêk chhiar lohvin.',
 'wlheader-enotif' => '*E-lehkha inhriattirna tihnun a ni.',
 'wlheader-showupdated' => "I tlawh hnuhnun ber hnua tihdanglam phêk te chu a '''thau'''va tihlan a ni.",
index c0510ca..d417464 100644 (file)
@@ -11,6 +11,7 @@
  * @author Dark Eagle
  * @author FnTmLV
  * @author Geimeris
+ * @author Geitost
  * @author Gleb Borisov
  * @author GreenZeb
  * @author Kaganer
@@ -289,7 +290,6 @@ $1',
 'disclaimers' => 'Saistību atrunas',
 'disclaimerpage' => 'Project:Saistību atrunas',
 'edithelp' => 'Rediģēšanas palīdzība',
-'edithelppage' => 'Help:Rediģēšana',
 'helppage' => 'Help:Saturs',
 'mainpage' => 'Sākumlapa',
 'mainpage-description' => 'Sākumlapa',
@@ -456,7 +456,7 @@ Vari turpināt to izmantot anonīmi, vari <span class='plainlinks'>[$1 atgriezti
 'userlogout' => 'Iziet',
 'notloggedin' => 'Neesi iegājis',
 'userlogin-joinproject' => 'Pievienojieties {{SITENAME}}',
-'nologin' => "Nav lietotājvārda? '''$1'''.",
+'nologin' => 'Nav lietotājvārda? $1.',
 'nologinlink' => 'Reģistrējies',
 'createaccount' => 'Izveidot jaunu lietotāju',
 'gotaccount' => "Tev jau ir lietotājvārds? '''$1'''!",
@@ -930,7 +930,6 @@ $1",
 'searchmenu-legend' => 'Meklēšanas iespējas',
 'searchmenu-exists' => "'''Šajā projektā ir raksts ar nosaukumu \"[[:\$1]]\"'''",
 'searchmenu-new' => "'''Izveido rakstu \"[[:\$1]]\" šajā projektā!'''",
-'searchhelp-url' => 'Help:Saturs',
 'searchprofile-articles' => 'Rakstos',
 'searchprofile-project' => 'Palīdzības un projektu lapās',
 'searchprofile-images' => 'Multivides failos',
@@ -1004,7 +1003,6 @@ Pagaidām vari meklēt, izmantojot Google vai Yahoo.
 'resetprefs' => 'Atcelt nesaglabātās izmaiņas',
 'restoreprefs' => 'Atjaunot noklusētos uzstādījumus',
 'prefs-editing' => 'Rediģēšana',
-'prefs-edit-boxsize' => 'Labošanas loga izmērs.',
 'rows' => 'Rindiņu skaits:',
 'columns' => 'Simbolu skaits rindiņā:',
 'searchresultshead' => 'Meklēšana',
@@ -1045,7 +1043,6 @@ Ja vēlies, tu vari izmantot šo nejauši uzģenerēto kodu: $1',
 'prefs-custom-js' => 'Personīgais JS',
 'prefs-common-css-js' => 'Koplietojams CSS/JavaScript visās apdarēs:',
 'prefs-emailconfirm-label' => 'E-pasta statuss:',
-'prefs-textboxsize' => 'Rediģēšanas loga izmērs',
 'youremail' => 'Tava e-pasta adrese:',
 'username' => '{{GENDER:$1|Lietotājvārds}}:',
 'uid' => 'Lietotāja ID:',
@@ -1273,7 +1270,6 @@ Ja tu izvēlies to norādīt, tas tiks izmantots, lai identificētu tavu darbu (
 'recentchangeslinked-feed' => 'Saistītās izmaiņas',
 'recentchangeslinked-toolbox' => 'Saistītās izmaiņas',
 'recentchangeslinked-title' => 'Izmaiņas, kas saistītas ar "$1"',
-'recentchangeslinked-noresult' => 'Norādītajā laika periodā saistītajās lapās izmaiņu nebija.',
 'recentchangeslinked-summary' => "Šiet ir nesen izdarītās izmaiņas lapās, uz kurām ir saites no norādītās lapas (vai norādītajā kategorijā ietilpstošās lapas).
 Lapas, kas ir tavā [[Special:Watchlist|uzraugāmo rakstu sarakstā]] ir '''treknas'''.",
 'recentchangeslinked-page' => 'Lapas nosaukums:',
@@ -1810,7 +1806,6 @@ Ja vēlāk pārdomāsi un nevēlēsies vairs uzraudzīt šo lapu, klikšķini uz
 'unwatchthispage' => 'Pārtraukt uzraudzīšanu',
 'notanarticle' => 'Nav satura lapa',
 'notvisiblerev' => 'Cita lietotāja pēdējā versija ir izdzēsta',
-'watchnochange' => 'Neviena no tevis uzraudzītajām lapām nav mainīta parādītajā laika posmā.',
 'watchlist-details' => '(Tu uzraugi $1 {{PLURAL:$1|lapu|lapas}}, neieskaitot diskusiju lapas.)',
 'wlheader-enotif' => 'E-pasta paziņojumi ir ieslēgti.',
 'wlheader-showupdated' => "Lapas, kuras ir tikušas izmainītas, kopš tu tās pēdējoreiz apskatījies, te rādās ar '''pustrekniem''' burtiem",
index f3129ab..0a17619 100644 (file)
@@ -7,12 +7,15 @@
  * @ingroup Language
  * @file
  *
+ * @author C933103
  * @author Itsmine
  * @author Justincheng12345
  * @author Omnipaedista
  * @author Shinjiman
  * @author Simon Shek
+ * @author StephDC
  * @author Super Wang
+ * @author Yanteng3
  */
 
 $specialPageAliases = array(
@@ -191,6 +194,7 @@ $messages = array(
 'tog-showhiddencats' => '示隱類',
 'tog-noconvertlink' => '非轉鍵題',
 'tog-norollbackdiff' => '轉後略異',
+'tog-useeditwarning' => '離而未存,示吾',
 
 'underline-always' => '恆',
 'underline-never' => '絕',
@@ -254,6 +258,18 @@ $messages = array(
 'oct' => '十月',
 'nov' => '十一月',
 'dec' => '十二月',
+'january-date' => '正月 $1',
+'february-date' => '二月$1日',
+'march-date' => '三月$1日',
+'april-date' => '四月$1日',
+'may-date' => '五月$1日',
+'june-date' => '六月$1日',
+'july-date' => '七月$1日',
+'august-date' => '八月$1日',
+'september-date' => '九月$1日',
+'october-date' => '十月$1日',
+'november-date' => '十一月$1日',
+'december-date' => '十二月$1日',
 
 # Categories related messages
 'pagecategories' => '$1類',
@@ -279,6 +295,7 @@ $messages = array(
 'newwindow' => '啟窗',
 'cancel' => '捨',
 'moredotdotdot' => '見逾',
+'morenotlisted' => '示未出之項',
 'mypage' => '寒舍',
 'mytalk' => '書房',
 'anontalk' => '與(IP)私議',
@@ -312,6 +329,7 @@ $messages = array(
 'namespaces' => '名集',
 'variants' => '變字',
 
+'navigation-heading' => '導',
 'errorpagetitle' => '誤',
 'returnto' => '返$1。',
 'tagline' => '語出{{SITENAME}}',
@@ -333,6 +351,7 @@ $messages = array(
 'create-this-page' => '立',
 'delete' => '刪',
 'deletethispage' => '刪',
+'undeletethispage' => '反刪此頁',
 'undelete_short' => '還$1已刪',
 'viewdeleted_short' => '察$1已刪',
 'protect' => '緘',
@@ -386,7 +405,6 @@ $1',
 'disclaimers' => '免責宣',
 'disclaimerpage' => 'Project:免責宣',
 'edithelp' => '助纂塾',
-'edithelppage' => 'Help:纂',
 'helppage' => 'Help:目錄',
 'mainpage' => '卷首',
 'mainpage-description' => '卷首',
@@ -408,8 +426,10 @@ $1',
 'youhavenewmessages' => '有$1書至子書房也。($2)',
 'newmessageslink' => '新訊',
 'newmessagesdifflink' => '變更',
-'youhavenewmessagesfromusers' => '子有 $1 自 {{PLURAL:$3|another user|$3 簿戶也}} ($2)。',
+'youhavenewmessagesfromusers' => '子有 $1 自 {{PLURAL:$3|一簿戶也|$3 簿戶也}} ($2)。',
 'youhavenewmessagesmanyusers' => '子有 $1 自多簿戶 ( $2 )',
+'newmessageslinkplural' => '{{PLURAL:$1|一新訊息|新訊息}}',
+'newmessagesdifflinkplural' => '新{{PLURAL:$1|易|易}}',
 'youhavenewmessagesmulti' => '新訊於$1',
 'editsection' => '纂',
 'editold' => '纂',
@@ -432,6 +452,8 @@ $1',
 'page-rss-feed' => '「$1」之RSS源',
 'page-atom-feed' => '「$1」之Atom源',
 'red-link-title' => '$1(查無此頁)',
+'sort-descending' => '倒列',
+'sort-ascending' => '升排',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => '文',
@@ -532,6 +554,7 @@ $2',
 'yourname' => '名',
 'userlogin-yourname' => '簿名',
 'userlogin-yourname-ph' => '輸簿名',
+'createacct-another-username-ph' => '輸簿名',
 'yourpassword' => '符節',
 'userlogin-yourpassword' => '符節',
 'userlogin-yourpassword-ph' => '輸子符節',
@@ -543,6 +566,7 @@ $2',
 'userlogin-remembermypassword' => '記吾',
 'userlogin-signwithsecure' => '以安全伺服登簿',
 'securelogin-stick-https' => '登後仍以HTTPS通接',
+'yourdomainname' => '子之網域',
 'password-change-forbidden' => '符節不能改乎此維基也。',
 'externaldberror' => '認庫之錯或禁更爾之外簿。',
 'login' => '登簿',
@@ -561,9 +585,22 @@ $2',
 'gotaccount' => '有簿矣哉?往$1。',
 'gotaccountlink' => '登簿',
 'userlogin-resetlink' => '君忘登簿所需爾?',
+'userlogin-resetpassword-link' => '輸子符節',
 'helplogin-url' => 'Help:登簿',
+'createacct-emailrequired' => '電郵',
+'createacct-emailoptional' => '電郵 (可選)',
 'createaccountmail' => '同郵',
+'createacct-realname' => '實名(選)',
 'createaccountreason' => '因:',
+'createacct-reason' => '因:',
+'createacct-reason-ph' => '何為子另立一簿乎?',
+'createacct-captcha' => '安檢',
+'createacct-imgcaptcha-ph' => '輸上之文字',
+'createacct-submit' => '增簿',
+'createacct-another-submit' => '再立一簿',
+'createacct-benefit-heading' => '吾等立{{SITENAME}}者,或黔首,或專戶。',
+'createacct-benefit-body1' => '纂',
+'createacct-benefit-body2' => '頁',
 'createacct-benefit-body3' => '是月纂者',
 'badretype' => '符節不合也。',
 'userexists' => '簿名存矣,惠更之。',
@@ -577,7 +614,7 @@ $2',
 'noname' => '缺簿名,或不格也。',
 'loginsuccesstitle' => '登簿成矣',
 'loginsuccess' => "'''$1'''登{{SITENAME}}矣",
-'nosuchuser' => 'æ\9f¥ç\84¡æ­¤äººã\80\82æ\83 è«\8bæ\9b´å\90\8dï¼\8cæ\88\96æ\9f¥å¤§å°\8f寫。',
+'nosuchuser' => 'æ\9f¥ç\84¡æ­¤äººã\80\82æ\83 è«\8bæ\9b´å\90\8dï¼\8cæ\9f¥å¤§å°\8f寫æ\88\96ç«\8b此簿。',
 'nosuchusershort' => '查無"$1",惠核之。',
 'nouserspecified' => '簿名須也',
 'login-userblocked' => '此簿已被封。登無簿也。',
@@ -599,7 +636,7 @@ $2',
 'throttled-mailpassword' => '密記已寄之於$1時前。
 防濫,單一密記短至$1時寄之。',
 'mailerror' => '信失遣如下:$1',
-'acct_creation_throttle_hit' => '一日之內,但許一註。',
+'acct_creation_throttle_hit' => '一日之內,於一址但許一人增簿。',
 'emailauthenticated' => '$2 $3郵驛證矣',
 'emailnotauthenticated' => '郵驛<strong>未證</strong>,下不遺書。',
 'noemailprefs' => '郵驛設而用之。',
@@ -608,7 +645,7 @@ $2',
 'cannotchangeemail' => '電郵地址不可改于此wiki',
 'emaildisabled' => '是站不可遣函也。',
 'accountcreated' => '簿增矣',
-'accountcreatedtext' => '$1簿增矣',
+'accountcreatedtext' => '[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|書]])簿增矣。',
 'createaccount-title' => '於{{SITENAME}}增簿',
 'createaccount-text' => '有人於{{SITENAME}}用爾之電郵增名為 "$2" 之簿 ($4),符節為 "$3" 。汝應登,再改符節也。
 
@@ -623,6 +660,7 @@ $2',
 # Email sending
 'php-mail-error-unknown' => '於 PHP mail() 參數現錯',
 'user-mail-no-addy' => '遣函豈能無址?',
+'user-mail-no-body' => '試遞一空或過短郵',
 
 # Change password dialog
 'resetpass' => '變符',
@@ -642,10 +680,20 @@ $2',
 'resetpass-wrong-oldpass' => '無效之臨符或現符。
 爾或改符,或求新臨符。',
 'resetpass-temp-password' => '臨符節:',
+'resetpass-abort-generic' => '符節不可更',
 
 # Special:PasswordReset
 'passwordreset' => '重設符節',
+'passwordreset-text-one' => '慾更符節,填此佇列',
 'passwordreset-legend' => '重設符節',
+'passwordreset-username' => '簿名:',
+'passwordreset-domain' => '域:',
+'passwordreset-email' => '電郵址',
+
+# Special:ChangeEmail
+'changeemail-none' => '(無)',
+'changeemail-password' => '汝 {{SITENAME}} 之符節',
+'changeemail-cancel' => '棄',
 
 # Edit page toolbar
 'bold_sample' => '粗體',
@@ -697,6 +745,7 @@ $2',
 * 見禁之人:$7
 
 存惑可詢$1,或[[{{MediaWiki:Grouppage-sysop}}|有秩]],[[Special:Preferences|簿註]]無驛則信不遣。另,子用IP $3,禁號為#$5。詢時切附之。",
+'blockednoreason' => '無由',
 'whitelistedittext' => '$1後方可纂文。',
 'confirmedittext' => '驛證方可纂文。惠見[[Special:Preferences|簿註]]。',
 'nosuchsectiontitle' => '無尋節',
@@ -706,7 +755,9 @@ $2',
 'loginreqlink' => '登簿',
 'loginreqpagetext' => '$1以覽它頁。',
 'accmailtitle' => '符節傳矣',
-'accmailtext' => '"$1"符節至$2矣',
+'accmailtext' => '"$1"之新符節至$2矣
+
+此符節可於登簿後改',
 'newarticle' => '撰',
 'newarticletext' => '此頁尚缺。欲補,撰於下,有惑見[[{{MediaWiki:Helppage}}|助]]。
 誤入者,返前即可。',
@@ -714,7 +765,9 @@ $2',
 'noarticletext' => '查無此文。[[Special:Search/{{PAGENAME}}|尋題]],
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 尋誌],
 或[{{fullurl:{{FULLPAGENAME}}|action=edit}} 纂頁]</span>。',
-'noarticletext-nopermission' => '查無此文。[[Special:Search/{{PAGENAME}}|尋題]],或<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 尋誌]</span>。',
+'noarticletext-nopermission' => '查無此文。[[Special:Search/{{PAGENAME}}|尋題]],
+<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 尋誌],
+或[{{fullurl:{{FULLPAGENAME}}|action=edit}} 纂頁]</span>。',
 'userpage-userdoesnotexist' => '「<nowiki>$1</nowiki>」之簿未增也。請建纂本頁前查之。',
 'userpage-userdoesnotexist-view' => '「$1」之簿未增也。',
 'blocked-notice-logextract' => '該簿現鎖也。
@@ -748,7 +801,7 @@ $2',
 'editing' => '纂$1',
 'creating' => '撰$1',
 'editingsection' => '纂節$1',
-'editingcomment' => '$1',
+'editingcomment' => '$1',
 'editconflict' => '纂沖$1',
 'explainconflict' => "子纂與他人沖,上者時也,下者子也,望子合之。
 註,'''{{int:savearticle}}'''上文儲焉",
@@ -772,7 +825,7 @@ $2',
 'cascadeprotectedwarning' => "'''警示:'''此頁錮矣,唯有秩纂之,乃因{{PLURAL:$1|一|多}}頁連誅之:",
 'titleprotectedwarning' => "'''警告:此頁錮矣,乃需[[Special:ListGroupRights|權]]用之。'''
 近誌下曰參詳之:",
-'templatesused' => '此文用:',
+'templatesused' => '此文用{{PLURAL:$1|模|模}} :',
 'template-protected' => '(錮)',
 'template-semiprotected' => '(半錮)',
 'hiddencategories' => '此頁屬隱類之員有$1:',
@@ -780,7 +833,7 @@ $2',
 'nocreate-loggedin' => '子權未逮,新頁謝焉。',
 'sectioneditnotsupported-title' => '不纂持節',
 'sectioneditnotsupported-text' => '此頁不持纂節也。',
-'permissionserrors' => '權未逮也',
+'permissionserrors' => '無權',
 'permissionserrorstext' => '子權未逮,有{{PLURAL:$1|因|因}}如下:',
 'permissionserrorstext-withaction' => '子權未逮,有{{PLURAL:$1|因|因}}如$2:',
 'recreate-moveddeleted-warn' => "'''留意:刪文復造,惠慎纂。'''
@@ -794,8 +847,13 @@ $2',
 刪之也。',
 'edit-conflict' => '纂突。',
 'edit-no-change' => '爾之纂已略,由字無改也。',
+'postedit-confirmation' => '汝之纂已成',
 'edit-already-exists' => '不建新頁。
 已存也。',
+'defaultmessagetext' => '慣話文',
+
+# Content models
+'content-model-css' => '層疊樣式表',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => '警:頁有多貴功呼。
@@ -841,8 +899,8 @@ $2',
 釋義:'''({{int:cur}})'''與今審辨;'''({{int:last}})'''與前審辨;'''{{int:minoreditletter}}''',令校",
 'history-fieldset-title' => '誌覽',
 'history-show-deleted' => '只刪',
-'histfirst' => '初',
-'histlast' => '末',
+'histfirst' => '初之版',
+'histlast' => '末之版',
 'historysize' => '($1位元組)',
 'historyempty' => '(空)',
 
@@ -926,9 +984,9 @@ $1",
 'revdelete-concurrent-change' => '錯改於$1 $2項:眾改之設,乃另之改。查誌。',
 'revdelete-only-restricted' => '藏期於 $1 $2 之項:爾無廢有秩見之項,而無選另廢項也。',
 'revdelete-reason-dropdown' => '*常因
-** 侵權
-** 無合之人料
-** ç\84¡å\90\88ä¹\8bç°¿
+** 侵
+** 人料不合
+** ç°¿å\90\8dä¸\8då\90\88
 ** 隱謗譏',
 'revdelete-otherreason' => '它附因:',
 'revdelete-reasonotherlist' => '它因',
@@ -996,11 +1054,13 @@ $1",
 'notextmatches' => '無文合',
 'prevn' => '前{{PLURAL:$1|$1}}',
 'nextn' => '次{{PLURAL:$1|$1}}',
+'prevn-title' => '前$1之尋',
+'nextn-title' => '後$1之尋',
+'shown-title' => '每頁示 $1',
 'viewprevnext' => '見($1 {{int:pipe-separator}} $2)($3)',
 'searchmenu-legend' => '尋選',
 'searchmenu-exists' => "'''在此wiki中有頁為\"[[:\$1]]\"。'''",
 'searchmenu-new' => "'''在此wiki上建頁\"[[:\$1]]\"!'''",
-'searchhelp-url' => 'Help:目錄',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|查此首之頁]]',
 'searchprofile-articles' => '容',
 'searchprofile-project' => '助題',
@@ -1069,7 +1129,6 @@ $1",
 'resetprefs' => '棄',
 'restoreprefs' => '重修',
 'prefs-editing' => '在修',
-'prefs-edit-boxsize' => '修框尺',
 'rows' => '行:',
 'columns' => '列:',
 'searchresultshead' => '尋',
@@ -1080,9 +1139,6 @@ $1",
 'recentchangesdays-max' => '最大有$1',
 'recentchangescount' => '修著凡幾︰',
 'prefs-help-recentchangescount' => '含近易、史與誌。',
-'prefs-help-watchlist-token' => '添匙參爾之RSS哨。
-且人知匙,可閱矣之,擇全之值也。
-任成之值,爾可選之:$1',
 'savedprefs' => '簿註書矣',
 'timezonelegend' => '時區:',
 'localtime' => '本地時:',
@@ -1112,7 +1168,6 @@ $1",
 'prefs-common-css-js' => '共CSS/JavaScript於面版:',
 'prefs-reset-intro' => '爾用頁重設至預之設。無修之也。',
 'prefs-emailconfirm-label' => '確郵:',
-'prefs-textboxsize' => '纂框量',
 'youremail' => '郵:',
 'username' => '簿名:',
 'uid' => '編號︰',
@@ -1141,6 +1196,8 @@ $1",
 'prefs-dateformat' => '日格',
 'prefs-timeoffset' => '偏時',
 'prefs-advancedediting' => '進',
+'prefs-editor' => '纂者',
+'prefs-preview' => '草覽',
 'prefs-advancedrc' => '進',
 'prefs-advancedrendering' => '進',
 'prefs-advancedsearchoptions' => '進',
@@ -1343,7 +1400,6 @@ $1",
 'recentchangeslinked-feed' => '援引',
 'recentchangeslinked-toolbox' => '援引',
 'recentchangeslinked-title' => '「$1」援引近易',
-'recentchangeslinked-noresult' => '限期內無近易。',
 'recentchangeslinked-summary' => "此奇頁乃列''由''頁援之近易(或對類之員)。
 有[[Special:Watchlist|爾有哨]]者'''粗體'''。",
 'recentchangeslinked-page' => '頁名:',
@@ -1385,6 +1441,7 @@ $1",
 'ignorewarnings' => '警略。',
 'minlength1' => '名務逾一字元。',
 'illegalfilename' => '名"$1"不格,更之再焉。',
+'filename-toolong' => '檔名宜簡。',
 'badfilename' => '更名"$1。"。',
 'filetype-mime-mismatch' => '檔展名「.$1」無配偵檔之MIME類($2)。',
 'filetype-badmime' => '「$1」之MIME類物檔案不能獻之。',
@@ -1416,6 +1473,7 @@ $1",
 'savefile' => '存之',
 'uploadedimage' => '進獻"[[$1]]"',
 'overwroteimage' => '新置「[[$1]]」矣',
+'uploaddisabled' => '進獻已阻',
 'copyuploaddisabled' => '由URL之貢被禁也。',
 'uploadfromurl-queued' => '爾之貢已排之。',
 'uploaddisabledtext' => '檔之貢被禁也。',
@@ -1440,10 +1498,17 @@ $1',
 'upload-warning-subj' => '貢警',
 'upload-warning-msg' => '爾自[$2]之貢出問。爾可回[[Special:Upload/stash/$1|貢表]]修此問。',
 
+'upload-proto-error' => '協訂錯誤',
 'upload-too-many-redirects' => '網址含多轉',
 'upload-unknown-size' => '未知之積',
 'upload-http-error' => '發一HTTP之錯:$1',
 
+# File backend
+'backend-fail-notexists' => '無檔 $1 。',
+'backend-fail-alreadyexists' => '$1 已含。',
+'backend-fail-read' => '"$1"不可見。',
+'backend-fail-create' => '"$1"不可纂。',
+
 # Special:UploadStash
 'uploadstash' => '貢貯',
 'uploadstash-summary' => '此頁乃已貢物(正貢)但未發wiki之地也。非貢之本人乃無視也。',
@@ -1681,7 +1746,7 @@ $1',
 'listusers-editsonly' => '只示有纂之簿',
 'listusers-creationsort' => '按先後列之',
 'usereditcount' => '$1纂',
-'usercreated' => '於$1$2',
+'usercreated' => '{{GENDER:$3|建}}於$1$2',
 'newpages' => '新灶',
 'newpages-username' => '簿名:',
 'ancientpages' => '陳年',
@@ -1836,7 +1901,6 @@ $1',
 'unwatchthispage' => '撤此哨',
 'notanarticle' => '此頁非文',
 'notvisiblerev' => '上中異簿之審已刪矣',
-'watchnochange' => '皆無易也',
 'watchlist-details' => '哨上有$1,不含議論。',
 'wlheader-enotif' => '*准報信。',
 'wlheader-showupdated' => "*易者'''粗體'''。",
@@ -2033,7 +2097,7 @@ $1',
 'blanknamespace' => '主',
 
 # Contributions
-'contributions' => '功績',
+'contributions' => '{{GENDER:$1|簿}} 之功績',
 'contributions-title' => '$1之功績',
 'mycontris' => '吾績',
 'contribsub2' => '$1勛($2)',
@@ -2120,7 +2184,7 @@ $1',
 'ipusubmit' => '赦此址',
 'unblocked' => '[[User:$1|$1]]赦焉',
 'unblocked-id' => '禁$1赦焉',
-'ipblocklist' => '列禁簿、禁址',
+'ipblocklist' => '列禁簿',
 'ipblocklist-legend' => '尋禁簿',
 'ipblocklist-submit' => '尋',
 'ipblocklist-localblock' => '本禁',
@@ -2737,7 +2801,6 @@ $5
 'version-other' => '他',
 'version-mediahandlers' => '媒處',
 'version-hooks' => '鈎',
-'version-extension-functions' => '展函',
 'version-parser-extensiontags' => '語展標',
 'version-parser-function-hooks' => '語函鈎',
 'version-hook-name' => '鈎名',
@@ -2798,6 +2861,7 @@ MediaWiki乃為用之發,無擔之責也;亦無售目之默擔也。參GNU
 #入正表式。同留</pre>',
 
 # Special:Tags
+'tag-filter' => '[[Special:Tags|標]] 之濾:',
 'tags-tag' => '標名',
 'tags-edit' => '纂',
 
index c2317b3..1443e88 100644 (file)
@@ -20,6 +20,7 @@
  * @author Priyanka.rachna.jha
  * @author Rajesh
  * @author Reedy
+ * @author Rillke
  * @author Umeshberma
  * @author Vinitutpal
  */
@@ -264,7 +265,6 @@ $1',
 'disclaimers' => 'अनाधिकार घोषणा',
 'disclaimerpage' => 'Project:अनाधिकार घोषणा',
 'edithelp' => 'संपादन सहयोग',
-'edithelppage' => 'Help:संपादन',
 'helppage' => 'Help: विषय सूची',
 'mainpage' => 'सम्मुख पन्ना',
 'mainpage-description' => 'सम्मुख पृष्ठ',
@@ -291,7 +291,6 @@ $1',
 'newmessagesdifflink' => 'अन्तिम परिवर्तन',
 'youhavenewmessagesmulti' => '$1 पर अहाँ लेल नव सन्देश अछि',
 'editsection' => 'संपादन करू',
-'editsection-brackets' => '[$1]',
 'editold' => 'सम्पादित करू',
 'viewsourceold' => 'जड़ि देखू',
 'editlink' => 'सम्पादन करू',
@@ -461,7 +460,7 @@ $2',
 ई दृढ़ करू जे ज्ञापक सक्रिय अछि, ऐ पन्नाकेँ फेरसँ भारित करू आ फेरसँ प्रयास करू।',
 'noname' => 'अहाँ वैध प्रयोक्तानाम नै देने छी।',
 'loginsuccesstitle' => 'सम्प्रवेश सफल',
-'loginsuccess' => "'''अहाँ सम्प्रवेश केलहुँ {{अन्तर्जाल-पता}} \"\$1\".'''क रूपमे।",
+'loginsuccess' => "'''अहाँ सम्प्रवेश केलहुँ {{SITENAME}} \"\$1\".'''क रूपमे।",
 'nosuchuser' => '"$1" नामसँ कोनो प्रयोक्ता नै अछि।
 प्रयोक्तानाम ब्रह्मक्षर-लघ्वक्षर भेद युक्त अछि।
 अपन ह्रिजै जाँचू, वा [[Special:UserLogin/signup|नव खाता बनाउ]] ।',
@@ -538,10 +537,8 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'कूटशब्द फेरसँ बनाउ',
-'passwordreset-text' => 'ई-पत्र द्वारा अपन खाता विवरणक स्मरण प्राप्त करबा लेल ऐ फॉर्मकेँ भरू।',
 'passwordreset-legend' => 'कूटशब्द फेरसँ बनाउ',
 'passwordreset-disabled' => 'कूटशब्द फेरसँ बनाएब ऐ विकीपर अक्षम कएल अछि।',
-'passwordreset-pretext' => '{{PLURAL:$1||नीचाँक दत्तांशक एकटा भागक प्रविष्टि करू}}',
 'passwordreset-username' => 'प्रयोक्तानाम',
 'passwordreset-domain' => 'क्षेत्र:',
 'passwordreset-capture' => 'परिणाम ई-पत्र देखू?',
@@ -991,7 +988,6 @@ $3 द्वारा देल कारण अछि ''$2''",
 'searchmenu-legend' => 'खोज विकल्प',
 'searchmenu-exists' => "'''ऐ विकीपर एकटा पन्ना अछि \"[[:\$1]]\" नामसँ।'''",
 'searchmenu-new' => "''' पन्ना निर्माण \"[[:\$1]]\" ऐ विकीपर !'''",
-'searchhelp-url' => 'Help: विषय सूची',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|ऐ उपसर्गक पन्ना सभकेँ देखू]]',
 'searchprofile-articles' => 'अनुक्रम पन्ना सभ',
 'searchprofile-project' => 'सहायता आ परियोजना पन्ना सभ',
@@ -1067,7 +1063,6 @@ $3 द्वारा देल कारण अछि ''$2''",
 'resetprefs' => 'बिन सुरक्षितकेँ हटाउ',
 'restoreprefs' => 'सभटा पूर्वनिर्धारित चयनकेँ फेरसँ आनू',
 'prefs-editing' => 'सम्पादन कऽ रहल छी',
-'prefs-edit-boxsize' => 'सम्पादन खिड़कीक आकार',
 'rows' => 'पाँती सभ',
 'columns' => 'स्तम्भ सभ',
 'searchresultshead' => 'ताकू',
@@ -1078,9 +1073,6 @@ $3 द्वारा देल कारण अछि ''$2''",
 'recentchangesdays-max' => 'बेसीसँ बेसी $1 {{PLURAL:$1|दिन|दिन}}',
 'recentchangescount' => 'पूर्वनिर्धारित रूपेँ एतेक सम्पादन देखाएल गेल:',
 'prefs-help-recentchangescount' => 'ऐ मे सम्मिलित अछि आइ-काल्हिक परिवर्तन, पन्नाक इतिहास आ वृत्तलेख',
-'prefs-help-watchlist-token' => 'ऐ क्षेत्रमे एकटा गुप्त चाभीसँ भरलापर अहाँक साकांक्ष सूची लेल एकटा आर.एस.एस.फीडक निर्माण हएत।
-जकरा लग ऐ क्षेत्रक ई चाभी छै ओ अहाँक साकांक्ष सूचीकेँ पढ़ि सकता, से एकटा सुरक्षित मान चुनू।
-एतए एकटा अनियत रूपेँ उत्पादित मान अछि जकर अहाँ प्रयोग कऽ सकै छी: $1',
 'savedprefs' => 'अहाँक पसिन्न सुरक्षित कएल गेल',
 'timezonelegend' => 'समय क्षेत्र',
 'localtime' => 'स्थानीय समए:',
@@ -1111,7 +1103,6 @@ $3 द्वारा देल कारण अछि ''$2''",
 'prefs-reset-intro' => 'अहाँ ऐ पन्नाक प्रयोग अपन विकल्पकेँ पूर्वनिविष्ट रूपेँ जाल पुनर्निधारित करबा लेल कऽ सकै छी।
 ई बदलल नै जा सकैए।',
 'prefs-emailconfirm-label' => 'ई-पत्र पुष्टि:',
-'prefs-textboxsize' => 'सम्पादन खिड़कीक आकार',
 'youremail' => 'ई-पत्र:',
 'username' => 'प्रयोक्तानाम:',
 'uid' => 'प्रयोक्ताक पहिचान:',
@@ -1355,7 +1346,6 @@ $3 द्वारा देल कारण अछि ''$2''",
 'recentchangeslinked-feed' => 'संबंधित परिवर्त्तन',
 'recentchangeslinked-toolbox' => 'संबंधित परिवर्त्तन',
 'recentchangeslinked-title' => '"$1" मे भेल परिवर्तन',
-'recentchangeslinked-noresult' => 'ऐ कालमे लागिबला पन्ना सभमे कोनो परिवर्तन नै भेल।',
 'recentchangeslinked-summary' => "ई विशेष पन्नासँ सम्बद्ध पन्ना सभमे (आकि कोनो विशेष वर्गक समूहमे) भेल परिवर्तनक सूची छी ।
 [[Special:Watchlist|your watchlist]]  पर पन्नासभ '''गाढ़''' अछि।",
 'recentchangeslinked-page' => 'पन्नाक नाम',
@@ -1931,7 +1921,6 @@ $1',
 'unwatchthispage' => 'देखनाइ छोड़ू',
 'notanarticle' => 'कोनो विषय सूची नै',
 'notvisiblerev' => 'कोनो दोसर प्रयोक्ता द्वारा कएल अन्तिम परिवर्तन मेटा देल गेल',
-'watchnochange' => 'अहाँक साकांक्ष सूचीमे सँ कोनोमे ऐ अवधिमे सम्पादन नै कएल गेल।',
 'watchlist-details' => '{{PLURAL:$1|$1 पन्ना|$1 पन्ना सभ}} अहाँक साकांक्षसूचीमे, चौबटिया पन्ना नै गानल गेल।',
 'wlheader-enotif' => 'ई-पत्र सूचना लागू अछि।',
 'wlheader-showupdated' => "पन्ना सभ जे अहाँक एतए अन्तिम बेर अएलाक बाद बदलल अछि तकर सूची देल अछि '''गाढ़''' मे",
@@ -3361,7 +3350,6 @@ $5
 'version-other' => 'आन',
 'version-mediahandlers' => 'मीडिया संचालक',
 'version-hooks' => 'हूक',
-'version-extension-functions' => 'प्रकार्य बढ़ाउ',
 'version-parser-extensiontags' => 'विभाजन बढल चेन्ह',
 'version-parser-function-hooks' => 'विभाजक प्रकार्य खुट्टी',
 'version-hook-name' => 'खुट्टीक नाम',
index 2ecfa20..6de2cb5 100644 (file)
@@ -255,7 +255,6 @@ $1',
 'disclaimers' => 'Pamaidonan',
 'disclaimerpage' => 'Project:Panyangkalan umum',
 'edithelp' => 'Pitulung panyuntingan',
-'edithelppage' => 'Help:Panyuntingan',
 'helppage' => 'Help:Isi',
 'mainpage' => 'Kaca Utama',
 'mainpage-description' => 'Kaca Utama',
@@ -538,10 +537,8 @@ Rika ndeyan  uwis kasil ngganti tembung sandhine Rika utawa wis njaluk tembung s
 
 # Special:PasswordReset
 'passwordreset' => "Tembung sandhi di-''reset''",
-'passwordreset-text' => 'Lengkapi formulir kiye ben nampa imel ngelingna detil akune Rika.',
 'passwordreset-legend' => "Tembung sandhi di-''reset''",
 'passwordreset-disabled' => "''Reset'' tembung sandhi wis dipateni nang wiki kiye.",
-'passwordreset-pretext' => '{{PLURAL:$1||Lebokna salah siji data nang ngisor kiye}}',
 'passwordreset-username' => 'Jeneng panganggo:',
 'passwordreset-domain' => 'Domain:',
 'passwordreset-capture' => 'Deleng imel hasile?',
@@ -863,7 +860,6 @@ Gatèkna, angger nganggo pranala navigasi kuwe bakalan nge-reset kolom kiye.',
 'searchmenu-legend' => 'Pilihan panggoletan',
 'searchmenu-exists' => "''' Ana kaca nganggo jeneng \"[[:\$1]]\" nang wiki kiye.'''",
 'searchmenu-new' => "'''Gawe kaca \"[[:\$1]]\" nang wiki kiye!'''",
-'searchhelp-url' => 'Help:Isi',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Deleng daftar kaca sing nganggo tembung-wiwitan kiye]]',
 'searchprofile-articles' => 'Isine kaca',
 'searchprofile-project' => 'Kaca pitulung lan proyèk',
@@ -939,7 +935,6 @@ Ningen Rika kudu eling nek indeks Google kanggo {{SITENAME}} bisa baen isine anu
 'resetprefs' => 'Bersihna owah-owahan sing ora disimpen',
 'restoreprefs' => 'Balekna kabeh setelan gawane',
 'prefs-editing' => 'Panyuntingan',
-'prefs-edit-boxsize' => 'Ukuran kotak panyuntingan.',
 'rows' => 'Baris:',
 'searchresultshead' => 'Goleti',
 'resultsperpage' => 'Hasil saben kaca:',
@@ -982,7 +977,6 @@ Kiye PIN acak sing teyeng digunakna Rika: $1',
 'prefs-reset-intro' => 'Rika teyeng nggunakna kaca kiye nggo mbalekna preferensi-ne Rika balik maring setelan baku situs.
 Pambalikan kiye ora teyeng dibatalna.',
 'prefs-emailconfirm-label' => 'Konfirmasi imel:',
-'prefs-textboxsize' => 'Ukuran kotak suntingan',
 'youremail' => 'Imel:',
 'username' => 'Jeneng panganggo:',
 'uid' => 'ID panganggo:',
@@ -1205,7 +1199,6 @@ Aja kuatir, alamat imele Rika ora ditidokna dong pangganggo sejen ngontak Rika.'
 'recentchangeslinked-feed' => 'Pengobahan terkait',
 'recentchangeslinked-toolbox' => 'Pengobahan terkait',
 'recentchangeslinked-title' => 'Owah-owahan sing ana gandhèngané karo "$1"',
-'recentchangeslinked-noresult' => 'Ora ana owah-owahan nang kaca-kaca kagandhèng kiye salawasé periode sing wis ditemtokaké.',
 'recentchangeslinked-summary' => "Kaca astamiwa kiye isine daftar owahan anyar sekang kaca-kaca sing kagandheng karo kaca terkait (utawa anggota sawijining kategori) .
 Kaca-kaca sing mlebu [[Special:Watchlist|pangawasane Rika]] ditandani ''kandel''.",
 'recentchangeslinked-page' => 'Jeneng kaca:',
index 283a85f..19f97d7 100644 (file)
@@ -380,7 +380,6 @@ $1',
 'disclaimers' => 'Видешинь корхтаматне',
 'disclaimerpage' => 'Project:Пря видешинь корхнема',
 'edithelp' => 'Петнемань лезкс',
-'edithelppage' => 'Help:Петнема',
 'helppage' => 'Help:Лопань потмоц',
 'mainpage' => 'Пря лопа',
 'mainpage-description' => 'Пря лопа',
@@ -654,10 +653,8 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'Полафтомс сувама валцень',
-'passwordreset-text' => 'Эряви пяшкодемс тя формать е-сёрма сёрматфтомацень колга сявоманди.',
 'passwordreset-legend' => 'Полафтомс сувама валцень',
 'passwordreset-disabled' => 'Сувама валсь аф полафтови тя викить эса.',
-'passwordreset-pretext' => '{{PLURAL:$1||Тяштьк содама пялькснень эзда фкя алу}}',
 'passwordreset-username' => 'Тиить лемоц',
 'passwordreset-domain' => 'Домен:',
 'passwordreset-capture' => 'Ваномс мекольце е-сёрма?',
@@ -999,7 +996,6 @@ $3 макссь туфталсь - ''$2''",
 'searchmenu-legend' => 'Вешендема арафнематне',
 'searchmenu-exists' => "'''Тя Викиса ули лопась \"[[:\$1]]\" лем мархта'''",
 'searchmenu-new' => "'''Ушедомс лопась \"[[:\$1]]\" тя Викиса!'''",
-'searchhelp-url' => 'Help:Лопань потмоц',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Мумс лопат тя валынголькссь мархта]]',
 'searchprofile-articles' => 'Потмонь лопат',
 'searchprofile-project' => 'Лезкс эди проектонь лопат',
@@ -1064,7 +1060,6 @@ $3 макссь туфталсь - ''$2''",
 'resetprefs' => 'Валхтомс апак ванфтт полафнематнень',
 'restoreprefs' => 'Мърдафтомс васень латцематне',
 'prefs-editing' => 'Петнема',
-'prefs-edit-boxsize' => 'Петнема вальмоть келец.',
 'rows' => 'Луфт (строкат):',
 'columns' => 'Орват (столбанят):',
 'searchresultshead' => 'Вешендема',
@@ -1297,7 +1292,6 @@ $3 макссь туфталсь - ''$2''",
 'recentchangeslinked-feed' => 'Сюлмаф полафнематне',
 'recentchangeslinked-toolbox' => 'Сюлмаф полафнематне',
 'recentchangeslinked-title' => 'Полафнемат сюлмафт "$1" мархта',
-'recentchangeslinked-noresult' => 'Сюлмаф лопава тя пингста полафнемат ашельхть.',
 'recentchangeslinked-summary' => "Тя башка лопас сувафнезь мекольце полафнемат сюлмаф лопава. Тонь ванома сёрмалувомастонь лопатне тяштезь '''эчкста'''.",
 'recentchangeslinked-page' => 'Лопать лемоц:',
 'recentchangeslinked-to' => 'Няфтемс полафтоматне лопатнень эса сотфт тя лопать мархта',
@@ -1720,7 +1714,6 @@ $3 макссь туфталсь - ''$2''",
 'unwatchthispage' => 'Лоткамс мельге ваномать',
 'notanarticle' => 'Аф сёрмапотмонь лопа',
 'notvisiblerev' => 'Верзиесь нардафоль',
-'watchnochange' => 'Мезеге изь полафтов тонь мельгеванома лувомастот тя пингеёткса.',
 'watchlist-details' => '{{PLURAL:$1|$1 лопа|$1 лопат}} мельгеваномацень ала корхнема лопат аф лувомок.',
 'wlheader-enotif' => 'Электрононь сёрма вельде пачфнема нолдаф тевс.',
 'wlheader-showupdated' => "Лопат конань полафтозь тонь мекольце сувсемадот меле няфтевсть '''эчке тяшкса'''.",
@@ -2811,7 +2804,6 @@ $5
 'version-other' => 'Иля',
 'version-mediahandlers' => 'Медиа файлхнень ладямат',
 'version-hooks' => 'Кярьмодихне',
-'version-extension-functions' => 'Келептема функциенза',
 'version-parser-extensiontags' => 'Анализаторонь келептема кодонза',
 'version-parser-function-hooks' => 'Синтаксонь анализаторть функциензон кярьмодихне',
 'version-hook-name' => 'Кярьмодинь лемоц',
index 869ae20..6c12078 100644 (file)
@@ -323,6 +323,18 @@ $messages = array(
 'oct' => 'Okt',
 'nov' => 'Nov',
 'dec' => 'Des',
+'january-date' => '$1 Janoary',
+'february-date' => '$1 Febroary',
+'march-date' => '$1 Martsa',
+'april-date' => '$1 Aprily',
+'may-date' => '$1 Mey',
+'june-date' => '$1 Jiona',
+'july-date' => '$1 Jolay',
+'august-date' => '$1 Aogositra',
+'september-date' => '$1 Septambra',
+'october-date' => '$1 Oktobra',
+'november-date' => '$1 Novambra',
+'december-date' => '$1 Desambra',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Sokajy|Sokajy}}',
@@ -403,6 +415,7 @@ $messages = array(
 'create-this-page' => 'Forony ity pejy ity',
 'delete' => 'Hamafa',
 'deletethispage' => 'Fafao ity pejy ity',
+'undeletethispage' => 'Hamerina ity pejy ity',
 'undelete_short' => 'Famerenana fanovana {{PLURAL:$1|$1|$1}}',
 'viewdeleted_short' => 'Hijery fanovana voafafa {{PLURAL:$1|tokana|$1}}',
 'protect' => 'Hiaro',
@@ -456,7 +469,6 @@ $1',
 'disclaimers' => 'Fampitandremana',
 'disclaimerpage' => 'Project:General disclaimer',
 'edithelp' => 'Fanoroana',
-'edithelppage' => 'Help:Endritsoratra',
 'helppage' => 'Help:Fanoroana',
 'mainpage' => 'Fandraisana',
 'mainpage-description' => 'Fandraisana',
@@ -606,6 +618,10 @@ $2',
 'namespaceprotected' => "Tsy manana alalàna manova ny toeran'anarana « '''$1''' » ianao.",
 'customcssprotected' => "Tsy afaka manova ity pejy CSS ity ianao satria misy ny safidy manokan'ny mpikambana hafa.",
 'customjsprotected' => "Tsy afaka manova ity pejy JavaScript ity inaao satria misy ny safidin'ny mpikambana hafa.",
+'mycustomcssprotected' => 'Tsy manana ny alalana ahafahana manova ity pejy CSS ity ianao.',
+'mycustomjsprotected' => 'Tsy manana ny alalana ahafahana manova ity pejy JavaScript ity ianao.',
+'myprivateinfoprotected' => 'Tsy manana alalana ahafahana manova ny fampahalalana tsy sarababem-bahoakanao ianao.',
+'mypreferencesprotected' => 'Tsy manana alalana ahafahana manova ny safidinao ianao.',
 'ns-specialprotected' => "Tsy afaka ovaina ny pejy anatin'ny toeran'anarana « {{ns:special}} » .",
 'titleprotected' => "Voaaron'i [[User:$1|$1]] ity lohateny ity mba tsy hamorona pejy mitondra ity anarana ity.
 Ny antony napetraka dia : « ''$2'' ».",
@@ -631,9 +647,18 @@ Fantaro fa ny endriky ny pejy sasany dia mety mitovy amin'ny endrika nahitanao a
 'welcomecreation-msg' => "Noforonina ny aontinao.
 Aza adin ny manova ny [[Special:Preferences|safidinao ro amin'i{{SITENAME}}]].",
 'yourname' => 'Solonanarana',
+'userlogin-yourname' => 'Anaram-pikambana',
+'userlogin-yourname-ph' => 'Atsofohy ny anaram-pikambanao',
 'yourpassword' => 'Tenimiafina',
+'userlogin-yourpassword' => 'Tenimiafina',
+'userlogin-yourpassword-ph' => 'Atsofohy ny tenimiafinao',
+'createacct-yourpassword-ph' => 'Manatsofoha tenimiafina',
 'yourpasswordagain' => 'Avereno ampidirina eto ny tenimiafina',
+'createacct-yourpasswordagain' => 'Hamarino ny tenimiafinao',
+'createacct-yourpasswordagain-ph' => 'Mbola ampidiro fanindroany ny tenimiafinao',
 'remembermypassword' => '{{PLURAL:}}Tadidio ny tenimiafiko (mandritry ny $1 andro fara-fahabetsany)',
+'userlogin-remembermypassword' => 'Tadidio aho',
+'userlogin-signwithsecure' => "Fidirana amin'ny alalan'ny fanohizana azo antoka",
 'securelogin-stick-https' => "Mijanona tafiditra amin'i HTTPS rehefa tafiditra",
 'yourdomainname' => 'faritra (domaine) misy anao',
 'password-change-forbidden' => "Tsy afaka manova ny tenimiafina ianao eto amin'ity wiki ity.",
@@ -647,18 +672,37 @@ Mila manaiky cookies ianao raha te hiditra amin'ny {{SITENAME}}.",
 'logout' => 'Hiala',
 'userlogout' => 'Hiala',
 'notloggedin' => 'Tsy tafiditra',
+'userlogin-noaccount' => 'Tsy manana kaonty?',
+'userlogin-joinproject' => "Midira ho mpikamban'i {{SITENAME}}",
 'nologin' => "Tsy manana solonanarana? '''$1'''.",
 'nologinlink' => 'Manokafa kaonty',
 'createaccount' => 'Hamorona kaonty',
 'gotaccount' => "Efa manana kaonty? '''$1'''.",
 'gotaccountlink' => 'Midira',
 'userlogin-resetlink' => "Adinonavo ve ny antsipihan'ny fidiranao ?",
+'userlogin-resetpassword-link' => 'Hamerina ny tenimiafinao',
+'helplogin-url' => 'Fanoroana:Fidirana',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Fanoroana mikasika ny fidirana]]',
+'createacct-join' => 'Atsofohy eo ambany ny fampahalalana momba anao.',
+'createacct-emailrequired' => 'Adiresy mailaka :',
+'createacct-emailoptional' => 'Adiresy mailaka (azo tsy atao) :',
+'createacct-email-ph' => 'Atsofohy ny adiresy mailakao',
 'createaccountmail' => "Hampiasa tenimiafina kisendra vonjimaika ary handefa azy mailaka any amin'ny adiresy nolazaina teo ambany",
+'createacct-realname' => 'Tena anarana (azo tsy atao)',
 'createaccountreason' => 'Antony :',
+'createacct-reason' => 'Antony',
+'createacct-reason-ph' => 'Inona ny antony hamoronanao kaonty hafa',
+'createacct-imgcaptcha-ph' => 'Atsofohy ny teny hitanao eo ambony',
+'createacct-submit' => 'Hamorona ny kaontinao',
+'createacct-benefit-heading' => "Olona tahaka ianao no manoratra eo amin'i {{SITENAME}}",
+'createacct-benefit-body1' => 'fanovana{{PLURAL:}}',
+'createacct-benefit-body2' => 'pejy{{PLURAL:}}',
+'createacct-benefit-body3' => 'mpandray anjara vao haingana{{PLURAL:}}',
 'badretype' => 'Tsy mitovy ny tenimiafina nampidirinao.',
 'userexists' => 'Efa miasa io anaram-pikambana natsofokao io.
 Anarana hafa safidiana.',
 'loginerror' => "Tsy fetezana teo amin'ny fidirana",
+'createacct-error' => 'Hadisoana tam-pamoronana ny kaonty',
 'createaccounterror' => 'Tsy afaka mamorona kaonty : $1',
 'nocookiesnew' => "Voasikatra ny kaontim-pikambana, fa tsy tafiditra amin'ny kaontinao ianao.
 Mampiasa cookies ny {{SITENAME}} ho an'ny fidirana amin'ny kaonty.
@@ -752,10 +796,10 @@ Mety efa nanova tenimiafina na nanontany tenimiafina miserana angamba ianao.',
 
 # Special:PasswordReset
 'passwordreset' => 'Famafana ary famerenana ny tenimiafina',
-'passwordreset-text' => 'Fenoy ity fôrmiolera ity mba hamerenana ny tenimiafinao.',
+'passwordreset-text-one' => 'Fenoy ity fôrmiolera ity mba hamerenana ny tenimiafinao',
 'passwordreset-legend' => 'Famafana ary famerenana ny tenimiafina',
 'passwordreset-disabled' => "Tsy nalefa ny fanovana tenimiafina adino eto amin'ity wiki ity.",
-'passwordreset-pretext' => '{{PLURAL:$1}}Mampidira singa data eo ambany',
+'passwordreset-emaildisabled' => "Tsy avela ny fampiasana mailaka eto amin'ity wiki ity.",
 'passwordreset-username' => 'Anaram-pikambana :',
 'passwordreset-domain' => 'Vala (domain) :',
 'passwordreset-capture' => 'Hijery ny imailaka vokany ?',
@@ -985,6 +1029,7 @@ Tsy nanome antony',
 Mety voafafa angamba izy.',
 'edit-conflict' => 'Adi-panovàna.',
 'edit-no-change' => "Tsy norarahian'ny rindrankajy ny fanovanao satria tsy nanova ny lahatsoratra ianao.",
+'postedit-confirmation' => 'Voatahiry ny fanovanao.',
 'edit-already-exists' => 'Tsy afaka amboarina ilay pejy vaovao.
 Efa misy izy.',
 'defaultmessagetext' => 'Hafatra raha tsy misy',
@@ -1196,7 +1241,7 @@ $3 santiôna{{PLURAL:}} natsonika tamin'ny [[:$2]]",
 'mergelogpagetext' => 'Ity ny lisitry ny fanambarana ny tantaram-pejy vao haingana',
 
 # Diffs
-'history-title' => "Tantara ny endrik'i « $1 »",
+'history-title' => "Tantaran'ny endrik'i « $1 »",
 'difference-title' => "$1 : Fahasamihafan'ny santiôna roa",
 'difference-title-multipage' => 'Fahasamihafan\'ny pejy "$1" ary "$2"',
 'difference-multipage' => "(Fahasamihafan'ny pejy)",
@@ -1227,7 +1272,6 @@ $3 santiôna{{PLURAL:}} natsonika tamin'ny [[:$2]]",
 'searchmenu-legend' => 'Safidy mikasika ny fitadiavana',
 'searchmenu-exists' => "'''Misy pejy mitondra anarana « [[:$1]] » eto amin'ity wiki ity'''",
 'searchmenu-new' => "'''Hanamboatra ny pejy « [[:$1|$1]] » eto amin'ity wiki ity !'''",
-'searchhelp-url' => 'Help:Fanoroana',
 'searchmenu-prefix' => "[[Special:PrefixIndex/$1|Hitady pejy manomboka amin'io tovona io]]",
 'searchprofile-articles' => 'Pejy misy votoatiny',
 'searchprofile-project' => 'Pejy fanampiana sy pejy tetikasa',
@@ -1304,7 +1348,6 @@ ihany no miseho amin'ny vokatry ny karoka).",
 'resetprefs' => 'Avereno',
 'restoreprefs' => 'Averina ny reglages taloha',
 'prefs-editing' => 'Fanovana',
-'prefs-edit-boxsize' => "Haben'ny varavarankelim-panovàna",
 'rows' => 'Filaharana :',
 'columns' => 'Tsanganana/Tioba :',
 'searchresultshead' => 'Fikarohana',
@@ -1315,10 +1358,6 @@ ihany no miseho amin'ny vokatry ny karoka).",
 'recentchangesdays-max' => '($1 andro{{PLURAL:$1||}} fara-faha betsany)',
 'recentchangescount' => "Isan'ny fanovana haseho (tsipalotra) :",
 'prefs-help-recentchangescount' => 'Misy ny fanovana farany, ny tantaram-pejy ary ny laogy',
-'prefs-help-watchlist-token' => "Ny famenoana ity fampidiran-teny ity amina soramiafina iray dia hamoaka topaka RSS ho an'ny pejy arahinao.
-Afaka mamaky ny lisitry ny pejy arahinao izay olona mahalala io soramiafina io, mifidiana sanda sarotra hita ianao noho izany.
-Ity misy soramiafina navoaka amin'ny fomba kisendra afaka ampiasainao :
-$1",
 'savedprefs' => 'Voatahiry ny mombamomba anao.',
 'timezonelegend' => "Faritr'ora :",
 'localtime' => 'Ora an-toerana',
@@ -1349,7 +1388,6 @@ Fenoy araka ny datin'ny solosainan'ny mpitsidika",
 'prefs-common-css-js' => "JavaScript ary CSS zaraina ho an'ny fiankanjoana rehetra:",
 'prefs-reset-intro' => "Azonao ampiasaina ity pejy ity mba hamerina ny safidinao amin'izay safidy tsipalotr'ilay sehatra. Tsy azo averina io.",
 'prefs-emailconfirm-label' => 'Famarinana ny imailaka :',
-'prefs-textboxsize' => "Hangezan'ny varavarankely fanovana",
 'youremail' => 'Imailaka:',
 'username' => '{{GENDER:$1}}Anaram-pikambana :',
 'uid' => '{{GENDER:$1}}mpikambana :',
@@ -1381,6 +1419,8 @@ Tsy haseho ny adiresy imailakao rehefa manoratra any aminao ny mpikambana hafa."
 'prefs-dateformat' => 'Endriky ny daty',
 'prefs-timeoffset' => 'Elanelana ora',
 'prefs-advancedediting' => 'Antsipirihan-tsafidy',
+'prefs-editor' => 'Mpanova',
+'prefs-preview' => 'Topi-maso',
 'prefs-advancedrc' => 'Antsipirihan-tsafidy',
 'prefs-advancedrendering' => 'Antsipirihan-tsafidy',
 'prefs-advancedsearchoptions' => 'Antsipirihan-tsafidy',
@@ -1415,6 +1455,8 @@ Tsy haseho ny adiresy imailakao rehefa manoratra any aminao ny mpikambana hafa."
 'userrights-notallowed' => "Tsy afaka manova ny fahafahan'ny mpikambana ny kaontinao.",
 'userrights-changeable-col' => 'Ny gropy azonao ovaina',
 'userrights-unchangeable-col' => 'Ny gropy tsy azonao ovaina',
+'userrights-conflict' => 'Fifandonana zom-pikambana! Ampiharo fanindroany ny fanovanao.',
+'userrights-removed-self' => "Afakao soa aman-tsara ny zonao. Noho izany, tsy afaka mijery amin'ilay pejy intsony ianao.",
 
 # Groups
 'group' => 'Gropy :',
@@ -1485,6 +1527,13 @@ Tsy haseho ny adiresy imailakao rehefa manoratra any aminao ny mpikambana hafa."
 'right-editusercssjs' => 'Manova ny rakitra CSS sy JS ny mpikambana hafa',
 'right-editusercss' => 'Manova ny rakitra CSS ny mpikambana hafa',
 'right-edituserjs' => "Manova ny rakitra JS an'ny mpikambana hafa",
+'right-editmyusercss' => 'Manova ny rakitra CSS-nao',
+'right-editmyuserjs' => 'Manova ny rakitra JavaScript-nao',
+'right-viewmywatchlist' => 'Mijery ny pejy arahanao',
+'right-editmywatchlist' => 'Manova ny lisitry ny pejy arahanao. Fantaro koa fa hanampy pejy ny tao sasany na dia tsy manana ity zo ity aza.',
+'right-viewmyprivateinfo' => 'Mijery ny fampahalalana tsy sarababem-bahoakanao (oh. adiresy mailaka, tena anarana)',
+'right-editmyprivateinfo' => 'Manova ny fampahalalana momba anao (oh. mailaka, tena anarana)',
+'right-editmyoptions' => 'Manova ny safidinao',
 'right-rollback' => "Mamafa haingankaingana ny fanovan'ny mpandray anjara farany amina pejy manokana",
 'right-markbotedits' => "Manamarika ny fanovana voafafa hoatry ny nataon'ny rôbô.",
 'right-noratelimit' => 'Tsy voafetra ny isa',
@@ -1546,12 +1595,17 @@ Tsy haseho ny adiresy imailakao rehefa manoratra any aminao ny mpikambana hafa."
 'action-userrights-interwiki' => "hanova ny fahefan'ny mpikambana any amin'ny wiki hafa",
 'action-siteadmin' => 'Manidy sy manokatra ny banky angona',
 'action-sendemail' => 'handefa imailaka',
+'action-editmywatchlist' => 'Manova ny lisitry ny pejy arahana',
+'action-viewmywatchlist' => 'Mijery ny pejy arahanao',
+'action-viewmyprivateinfo' => 'Mijery ny fampahalalana tsy sarababem-bahoakanao',
+'action-editmyprivateinfo' => 'Mijery ny fampahalalana sarababem-bahoakanao',
 
 # Recent changes
 'nchanges' => '{{PLURAL:$1|fanovana|fanovana}} $1',
 'recentchanges' => 'Fanovana farany',
 'recentchanges-legend' => 'Safidy ny fanovàna farany',
 'recentchanges-summary' => "Jereo eto amin'ity pejy ity izay vao niova vao haingana teto amin'ity wiki ity.",
+'recentchanges-noresult' => "Tsy misy fanovana miady amin'ny fepe-potoana napetraka.",
 'recentchanges-feed-description' => "Arao ny fanovàna farany amin'ity wiki ity anaty topa",
 'recentchanges-label-newpage' => 'Namorona pejy vaovao io fanovana io',
 'recentchanges-label-minor' => 'Kely fotsiny ity fanovana ity',
@@ -1588,7 +1642,6 @@ Tsy haseho ny adiresy imailakao rehefa manoratra any aminao ny mpikambana hafa."
 'recentchangeslinked-feed' => 'Novaina',
 'recentchangeslinked-toolbox' => 'Novaina',
 'recentchangeslinked-title' => "Fanaraha-maso ny pejy miarak'amin'ny « $1 »",
-'recentchangeslinked-noresult' => "Tsy nisy fanovana teo amin'ny pejy voarohy mandritry ny fotoana voafidy.",
 'recentchangeslinked-summary' => "Mampiseho ny fanovàna vao haingana ity pejy manokana ity. Voasoratra amin'ny '''sora-matavy''' ny lohaten'ny [[Special:Watchlist|pejy arahinao-maso]].",
 'recentchangeslinked-page' => 'anaram-pejy :',
 'recentchangeslinked-to' => "Ampisehoy ny fanovàn'ny pejy misy rohy makany amin'ny pejy fa tsy atao mivadika",
@@ -1599,7 +1652,7 @@ Tsy haseho ny adiresy imailakao rehefa manoratra any aminao ny mpikambana hafa."
 'reuploaddesc' => "Miverena any amin'ny fisy fandefasan-drakitra.",
 'upload-tryagain' => "Hanfefa ny fanoritan'ny rakitra novaina",
 'uploadnologin' => 'Tsy niditra',
-'uploadnologintext' => 'Mila [[Special:UserLogin|misoratra anarana]] aloha vao afaka mandefa rakitra.',
+'uploadnologintext' => 'Mila $1 ianao vao afaka mandefa rakitra.',
 'upload_directory_missing' => "Ny petra-drakitra ampidiran-drakitra ($1) dia tsy misy ary tsy afaka namboarin'ny lohamilin-tranonkala.",
 'upload_directory_read_only' => "Ny répertoire ($1) handraisana ny rakitra alefan'ny mpikambana dia tsy afaka anoratana.",
 'uploaderror' => 'Nisy tsy fetezana ny fandefasana rakitra',
@@ -1948,6 +2001,8 @@ Aza manadino manamarina raha tsy misy rohy makany amin'ny endrika hafa alohan'ny
 'disambiguations' => 'Pejy misy rohy amina pejy fanalana ny fisalasalana',
 'disambiguationspage' => 'Template:homonimia',
 
+'pageswithprop-submit' => 'Alefa',
+
 'doubleredirects' => 'Fihodinana roa',
 'double-redirect-fixed-move' => "Ity fihodinana ity, nanana ny tanjona [[$1]] novaina anarana, dia mitondra mankany amin'ny [[$2]].",
 'double-redirect-fixer' => 'Mpanitsy fihodinana',
@@ -2184,7 +2239,6 @@ na tsy maniry handray imailaka avy amin'ny mpikambana hafa izy.",
 'unwatchthispage' => 'Aza arahana intsony',
 'notanarticle' => 'Tsy votoatim-pejy ity pejy ity',
 'notvisiblerev' => 'Voafafa ilay santiôna',
-'watchnochange' => 'Tsy niova nandritra ny fe-potoana miseho ny zavatra arahanao',
 'watchlist-details' => "Pejy $1{{PLURAL:}} ao amin'ny lisitry ny pejy arahanao, tsy isaina ny pejin-dresaka.",
 'wlheader-enotif' => "Alefa ny fampilazana amin'ny mailaka.",
 'wlheader-showupdated' => "Aseho '''sorabaventy''' ny pejy niova taorian'ny famangianao azy farany.",
@@ -2308,6 +2362,7 @@ Ho ann'y fanazavana fanampiny, jereo [[Special:ProtectedPages|ny lisitry ny pejy
 'prot_1movedto2' => '[[$1]] voaova anarana ho [[$2]]',
 'protect-badnamespace-title' => 'Anaran-tsehatra tsy azo arovana',
 'protect-badnamespace-text' => "Tsy afaka arovana ny pejy ao amin'io anaran-tsehatra io.",
+'protect-norestrictiontypes-title' => 'Pejy tsy azo arovana',
 'protect-legend' => 'Fanekena ny fiarovana pejy',
 'protectcomment' => 'Antony :',
 'protectexpiry' => 'Daty fitsaharana :',
@@ -2744,6 +2799,8 @@ Andana vangio ny [//www.mediawiki.org/wiki/Localisation Fandikana an'i Mediawiki
 'thumbnail-more' => 'Angedazina',
 'filemissing' => 'Tsy hita ny rakitra',
 'thumbnail_error' => 'Tsy fetezana eo am-panamboarana ilay saritapaka : $1',
+'thumbnail_error_remote' => "Hafa-kadisoana avy amin'i $1:
+$2",
 'djvu_page_error' => "Pejy DjVu any ivelan'ny fetra",
 'djvu_no_xml' => "Tsy afaka alaina ny XML ho an'ny rakitra DjVu",
 'thumbnail-temp-create' => 'Tsy afaka namorona ilay thumbnail miserana',
@@ -2799,6 +2856,10 @@ Avereno fanindroany.',
 'import-logentry-upload' => "nampiditra [[$1]] tamin'ny fampidiran-drakitra",
 'import-logentry-interwiki' => "nampiditra $1 tamin'ny transwiki",
 
+# JavaScriptTest
+'javascripttest' => 'Fanandramana JavaScript',
+'javascripttest-title' => 'Mandefa fanandramana $1',
+
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Ny pejinao',
 'tooltip-pt-anonuserpage' => "Ny pejim-bikamban'ny IP andraisanao anjara",
@@ -2861,6 +2922,7 @@ Ampesao ny topi-maso aloha no mihatiry.",
 'tooltip-compareselectedversions' => "Jereo ny fahasamihafana amin'ireo votoatin'ny pejy anankiroa ireo.",
 'tooltip-watch' => "Ampidiro amin'ny lisitry ny pejy arahinao maso ity pejy ity",
 'tooltip-watchlistedit-normal-submit' => 'Hanala ny lohateny',
+'tooltip-watchlistedit-raw-submit' => 'Hanavao ny pejy arahana',
 'tooltip-recreate' => 'Hamorona ilay pejy fanindroany raha efa voafafa izy',
 'tooltip-upload' => 'Hanomboka ny fampidirana',
 'tooltip-rollback' => "Manala ny fanovan'ny mpikambana farany nanova azy ilay asa « foano » (Rollback) .",
@@ -2895,11 +2957,34 @@ Mamerina ny version taloha io asa io ary afaka manometraka ny antony anatin'ny a
 
 # Info page
 'pageinfo-title' => 'Fampahalalana ho an\'i "$1"',
+'pageinfo-header-basic' => 'Fampahalalana fototra',
 'pageinfo-header-edits' => "Tantaran'ny fanovana",
+'pageinfo-header-restrictions' => "Fiarovana an'ilay pejy",
+'pageinfo-header-properties' => "Tondron'ilay pejy",
+'pageinfo-display-title' => 'Lohateny aseho',
+'pageinfo-length' => 'Halavam-pejy (oktety)',
+'pageinfo-article-id' => 'Laharam-pejy',
+'pageinfo-language' => "Tenin'ny votoatiny",
+'pageinfo-robot-policy' => "Satan'ny motera fikarohana",
 'pageinfo-views' => "Isan'ny jery",
 'pageinfo-watchers' => "Isan'ny mpandray anjara manaraka",
+'pageinfo-firstuser' => 'Mpamorona ilay pejy',
+'pageinfo-firsttime' => 'Daty namoronana ilay pejy',
+'pageinfo-lastuser' => 'Mpanova farany',
+'pageinfo-lasttime' => "Datin'ny fanovana farany",
 'pageinfo-edits' => "Isa manontolon'ny fanovana",
 'pageinfo-authors' => "Isa manontolon'ny mpandray anjara",
+'pageinfo-recent-edits' => "Fanovana vao haingana (natao tanatin'ny $1)",
+'pageinfo-recent-authors' => "Isa vao haingan'ny mpanoratra misongadina",
+'pageinfo-hidden-categories' => 'Sokajy nafenina{{PLURAL:$1}} ($1)',
+'pageinfo-redirectsto' => "Fihdinana mankany amin'ny",
+'pageinfo-redirectsto-info' => 'fampahalalana',
+'pageinfo-contentpage' => 'Isaina ho pejim-botoatiny',
+'pageinfo-contentpage-yes' => 'Eny',
+'pageinfo-protect-cascading-yes' => 'Eny',
+'pageinfo-category-pages' => 'Isam-pejy',
+'pageinfo-category-subcats' => "Isan'ny zana-tsokajy",
+'pageinfo-category-files' => "Isan'ny rakitra",
 
 # Patrolling
 'markaspatrolleddiff' => 'Marihana ho voamarina',
@@ -2943,6 +3028,7 @@ Raha alefanao ilay izy, mety ho simban'io renifango io ny solosainao.",
 'file-info-size-pages' => '$1 × $2 teboka, haben-drakitra : $3, karazana MIME $4, pejy $5 {{PLURAL:}}',
 'file-nohires' => "Tsy misy sary ngeza non'io",
 'svg-long-desc' => 'rakitra SVG, habe $1 × $2 teboka, habe : $3',
+'svg-long-error' => 'Rakitra SVG tsy ekena : $1',
 'show-big-image' => "Hijery ny tena haben'ny sary",
 'show-big-image-size' => '$1 × $2 teboka',
 'file-info-gif-looped' => 'miverimberina',
@@ -2968,6 +3054,16 @@ Raha alefanao ilay izy, mety ho simban'io renifango io ny solosainao.",
 'days' => 'andro{{PLURAL:$1}}',
 'ago' => '$1 lasa izay',
 
+# Human-readable timestamps
+'monday-at' => "Alatsinainy tamin'ny $1",
+'tuesday-at' => "Talata tamin'ny $1",
+'wednesday-at' => "Alarobia tamin'ny $1",
+'thursday-at' => "Alakamisy tamin'ny $1",
+'friday-at' => "Zoma tamin'ny $1",
+'saturday-at' => "Sabotsy tamin'ny $1",
+'sunday-at' => "Alahady tamin'ny $1",
+'yesterday-at' => "Omaly tamin'ny $1",
+
 # Bad image list
 'bad_image_list' => "Ity ny andrefiny :
 
index a98597c..6aa140c 100644 (file)
@@ -22,8 +22,8 @@ $namespaceNames = array(
        NS_SPECIAL          => 'Лӱмын_ыштыме',
        NS_TALK             => 'Каҥашымаш',
        NS_USER             => 'Пайдаланыше',
-       NS_USER_TALK        => 'Пайдаланышын_каҥашымаш',
-       NS_PROJECT_TALK     => '$1ын_каҥашымаш',
+       NS_USER_TALK        => 'Пайдаланышын_каҥашымашыже',
+       NS_PROJECT_TALK     => '$1ын_каҥашымашыже',
        NS_FILE             => 'Файл',
        NS_FILE_TALK        => 'Файл_шотышто_каҥашымаш',
        NS_TEMPLATE         => 'Кышкар',
@@ -53,6 +53,8 @@ $namespaceAliases = array(
        'Обсуждение_категории'               => NS_CATEGORY_TALK,
 
        // Namspace changes
+       'Пайдаланышын_каҥашымаш'    => NS_USER_TALK,
+       '$1ын_каҥашымаш'            => NS_PROJECT_TALK,
        'Файлын_каҥашымаш'          => NS_FILE_TALK,
        'Ямдылык'                   => NS_TEMPLATE,
        'Ямдылык_шотышто_каҥашымаш' => NS_TEMPLATE_TALK,
@@ -284,7 +286,6 @@ $messages = array(
 'disclaimers' => 'Вуйшиймаш деч кораҥмаш',
 'disclaimerpage' => 'Project:Вуйшиймаш деч кораҥмаш',
 'edithelp' => 'Тӧрлатымаш полыш',
-'edithelppage' => 'Help:Тӧрлымаш',
 'helppage' => 'Help:Полшык',
 'mainpage' => 'Тӱҥ лаштык',
 'mainpage-description' => 'Тӱҥ лаштык',
@@ -329,7 +330,7 @@ $messages = array(
 'nstab-category' => 'Категорий',
 
 # Main script and global functions
-'nosuchspecialpage' => 'Тигай лӱмын-ыштыме лаштык уке',
+'nosuchspecialpage' => 'Тыгай спецлаштык уке.',
 
 # General errors
 'error' => 'Йоҥылыш',
@@ -529,7 +530,6 @@ $messages = array(
 'shown-title' => 'Лаштыкыште $1 {{PLURAL:$1|возымаш|возымашым}} ончыкташ',
 'viewprevnext' => 'Ончал ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-new' => "'''Тиде вики-проектыште «[[:$1]]» лӱман лаштыкым ышташ!'''",
-'searchhelp-url' => 'Help:Вуйлымаш',
 'searchprofile-articles' => 'Возымо лаштык-влак',
 'searchprofile-project' => 'Полыш да проект лаштык',
 'searchprofile-images' => 'Мультимедий',
@@ -636,7 +636,7 @@ $messages = array(
 'action-edit' => 'тиде лаштыкым тӧрлаташ',
 
 # Recent changes
-'nchanges' => '$1 {{PLURAL:$1|тӧрлатымаш|тӧрлатымаш-влак}}',
+'nchanges' => '$1 {{PLURAL:$1|тӧрлатымаш}}',
 'recentchanges' => 'Пытартыш тӧрлатымаш-влак',
 'recentchanges-legend' => 'Пытартыш тӧрлатымаш-влакын келыштарымашышт',
 'recentchanges-summary' => 'Тиде лаштыкыште пытартыш тӧрлатымашым шекланаш.',
@@ -669,8 +669,7 @@ $messages = array(
 'recentchangeslinked' => 'Ваш кылдалтше тӧрлатымаш-влак',
 'recentchangeslinked-feed' => 'Ваш кылдалтше тӧрлатымаш-влак',
 'recentchangeslinked-toolbox' => 'Ваш кылдалтше тӧрлатымаш-влак',
-'recentchangeslinked-title' => '"$1" лаштыклан кылдалтше тӧрлатымаш-влак',
-'recentchangeslinked-noresult' => 'Ончыктымо пагытыште кылдалтше лаштыклаште вашталтыш лийын огыл.',
+'recentchangeslinked-title' => '"$1" лаштык дене кылдалтше тӧрлатымаш-влак',
 'recentchangeslinked-summary' => "Это список недавних изменений в страницах, на которые ссылается указанная страница (или входящих в указанную категорию).
 Страницы, входящие в [[Special:Watchlist|ваш список наблюдения]] '''выделены'''.",
 'recentchangeslinked-page' => 'Лаштыкын лӱмжӧ:',
@@ -740,7 +739,7 @@ $messages = array(
 'statistics-views-peredit' => 'Ик тӧрлатымашлан ончымо',
 'statistics-users' => 'Регистрацийым эртыше [[Special:ListUsers|пайдаланыше-влак]]',
 'statistics-users-active' => 'Чӱчкыдын пайдаланыше-влак',
-'statistics-users-active-desc' => 'Пытартыш {{PLURAL:$1|кечыште|$1 кечыште}} иктаж-мом ыштыше пайаланыше-влак',
+'statistics-users-active-desc' => 'Ð\9fÑ\8bÑ\82аÑ\80Ñ\82Ñ\8bÑ\88 {{PLURAL:$1|кеÑ\87Ñ\8bÑ\88Ñ\82е|$1 ÐºÐµÑ\87Ñ\8bÑ\88Ñ\82е}} Ð¸ÐºÑ\82аж-мом Ñ\8bÑ\88Ñ\82Ñ\8bÑ\88е Ð¿Ð°Ð¹Ð´Ð°Ð»Ð°Ð½Ñ\8bÑ\88е-влак',
 'statistics-mostpopular' => 'Эн чӱчкыдын ончымо лаштык-влак',
 
 'brokenredirects' => 'Пудыртымо вес вере колтымаш-влак',
@@ -841,7 +840,7 @@ $messages = array(
 Пеҥгыдемде тидым [[{{MediaWiki:Policy-url}}|правил]] почеш ыштыметым да, мо тидын деч вара лиймым, умылыметым.',
 'actioncomplete' => 'Ыштыме',
 'deletedtext' => '«$1» шӧрымӧ.
\9eнÑ\87о $2 Ð¿Ñ\8bÑ\82аÑ\80Ñ\82Ñ\8bÑ\88 Ñ\88Ó§Ñ\80Ñ\8bмӧ-влак Ð»Ó±Ð¼ÐµÑ\80 Ð³Ñ\8bÑ\87.',
¨Ó§Ñ\80Ñ\8bмаÑ\88 Ð»Ó±Ð¼ÐµÑ\80 Ð³Ñ\8bÑ\87 $2лан Ð¾Ð½Ñ\87о.',
 'dellogpage' => 'Шӧрымӧ нерген журнал',
 'deletionlog' => 'шӧрымӧ нерген журнал',
 'deletecomment' => 'Амал:',
@@ -1017,7 +1016,7 @@ $messages = array(
 'tooltip-n-randompage' => 'Лаштыкым чокым ойыраш',
 'tooltip-n-help' => 'Википедийым кучылтмо да тӧрлатыме шотышто полшык.',
 'tooltip-t-whatlinkshere' => 'Тышке кондышо лаштык-влакын лӱмерышт',
-'tooltip-t-recentchangeslinked' => 'Тиде лаштык кылдалтше пытартыш тӧрлатымаш-влак',
+'tooltip-t-recentchangeslinked' => 'Тиде Ð»Ð°Ñ\88Ñ\82Ñ\8bк Ð´ÐµÐ½Ðµ ÐºÑ\8bлдалÑ\82Ñ\88е Ð¿Ñ\8bÑ\82аÑ\80Ñ\82Ñ\8bÑ\88 Ñ\82Ó§Ñ\80лаÑ\82Ñ\8bмаÑ\88-влак',
 'tooltip-feed-rss' => 'Тиде лаштыклан RSS-кыл',
 'tooltip-feed-atom' => 'Тиде лаштыклан Atom-кыл',
 'tooltip-t-contributions' => 'Пайдаланышын ыштыме пашажым ончалаш',
index ea369ed..9b6d49c 100644 (file)
 $fallback = 'id';
 
 $namespaceNames = array(
+       NS_MEDIA            => 'Media',
+       NS_SPECIAL          => 'Istimewa',
+       NS_TALK             => 'Maota',
+       NS_USER             => 'Pangguno',
+       NS_USER_TALK        => 'Rundiang_Pangguno',
+       NS_PROJECT_TALK     => 'Rundiang_$1',
        NS_FILE             => 'Berkas',
+       NS_FILE_TALK        => 'Rundiang_Berkas',
+       NS_MEDIAWIKI        => 'MediaWiki',
+       NS_MEDIAWIKI_TALK   => 'Rundiang_MediaWiki',
        NS_TEMPLATE         => 'Templat',
+       NS_TEMPLATE_TALK    => 'Rundiang_Templat',
+       NS_HELP             => 'Bantuan',
+       NS_HELP_TALK        => 'Rundiang_Bantuan',
+       NS_CATEGORY         => 'Kategori',
+       NS_CATEGORY_TALK    => 'Rundiang_Kategori',
+);
+
+$namespaceAliases = array(
+       # Indonesian namespaces
+       'Istimewa'              => NS_SPECIAL,
+       'Pembicaraan'           => NS_TALK,
+       'Pengguna'              => NS_USER,
+       'Pembicaraan_Pengguna'  => NS_USER_TALK,
+       'Pembicaraan_$1'        => NS_PROJECT_TALK,
+       'Berkas'                => NS_FILE,
+       'Pembicaraan_Berkas'    => NS_FILE_TALK,
+       'Pembicaraan_MediaWiki' => NS_MEDIAWIKI_TALK,
+       'Templat'               => NS_TEMPLATE,
+       'Pembicaraan_Templat'   => NS_TEMPLATE_TALK,
+       'Bantuan'               => NS_HELP,
+       'Pembicaraan_Bantuan'   => NS_HELP_TALK,
+       'Kategori'              => NS_CATEGORY,
+       'Pembicaraan_Kategori'  => NS_CATEGORY_TALK,
 );
 
 $specialPageAliases = array(
@@ -227,7 +259,7 @@ $messages = array(
 'morenotlisted' => 'Salabiahnyo...',
 'mypage' => 'Laman',
 'mytalk' => 'Maota',
-'anontalk' => 'Diskusi IP ko',
+'anontalk' => 'Rundiang IP ko',
 'navigation' => 'Navigasi',
 'and' => '&#32;jo',
 
@@ -333,7 +365,6 @@ $1',
 'disclaimers' => 'Sanggahan umum',
 'disclaimerpage' => 'Project:Sanggahan umum',
 'edithelp' => 'Bantuan suntiangan',
-'edithelppage' => 'Help:Panyuntiangan',
 'helppage' => 'Help:Isi',
 'mainpage' => 'Palanta',
 'mainpage-description' => 'Palanta',
@@ -345,7 +376,7 @@ $1',
 
 'badaccess' => 'Kasalahan hak akses',
 'badaccess-group0' => 'Sanak indak diizinkan untuak malakuan tindakan ko.',
-'badaccess-groups' => 'Tindakan nan Sanak nio babateh untuak pangguno dalam {{PLURAL:$2|kalompok}}: $1.',
+'badaccess-groups' => 'Tindakan nan ka Sanak buek babateh hanyo untuak pangguno dalam {{PLURAL:$2|kalompok}}: $1.',
 
 'versionrequired' => 'Dibutuahan MediaWiki versi $1',
 'versionrequiredtext' => 'MediaWiki versi $1 dibutuahan untuak manggunoan laman ko. Caliak [[Special:Version|versi laman]]',
@@ -584,9 +615,9 @@ Cubo pariso baliak ejaan Sanak.',
 'password-login-forbidden' => 'Panggunoan namo pangguno dan sandi ko alah dilarang.',
 'mailmypassword' => 'Kirim kato sandi baru',
 'passwordremindertitle' => 'Kato sandi samantaro untuak {{SITENAME}}',
-'passwordremindertext' => 'Sasaurang (mungkin Sanak, dari alamaik IP $1) maminta kato sandi baharu untuak {{SITENAME}} ($4). Kato sandi samantaro untuak pangguno "$2" alah dibuekan dan diset manjadi "$3". Jikok memang Sanak nan mangajukan pamintaan ini, Sanak paralu masuak log dan mamilih kato sandi baharu kini. Kato sandi samantaro Sanak akan kadaluwarsa dalam wakatu {{PLURAL:$5|sahari|$5 hari}}.
+'passwordremindertext' => 'Sasaurang (mungkin Sanak, dari alamaik IP $1) mamintak kato sandi baru untuak {{SITENAME}} ($4). Kato sandi samantaro untuak pangguno "$2" alah dibuekan dan diset manjadi "$3". Jikok memang Sanak nan mangajuan pamintaan ko, Sanak paralu masuak log dan mamilih kato sandi baru. Kato sandi samantaro Sanak akan habih maso dalam wakatu {{PLURAL:$5|$5 hari}}.
 
-Jikok urang lain nan malakukan pamintaan iko, atau jikok Sanak alah mangingek kato sandi Sanak dan akan tetap manggunokan kato sandi tasabuik, sila abaikan pasan iko dan tatap gunokan kato sandi lamo Sanak.',
+Jikok urang lain nan malakuan pamintaan ko, atau jikok Sanak alah maingek kato sandi Sanak dan ka manggunoan kato sandi tasabuik, abaikan sajo pasan ko dan gunoan kato sandi lamo tu.',
 'noemail' => 'Indak ado alamaik surel nan tacatat untuak pangguno "$1".',
 'noemailcreate' => 'Sanak paralu manyadiokan alamaik surel nan sah',
 'passwordsent' => 'Kato sandi baru alah dikiriman ka alamaik surel nan didaftakan untuak "$1".
@@ -608,7 +639,7 @@ Harap masuakan alamaik surel dalam format nan bana atau kosoangan isian tasabuik
 'cannotchangeemail' => 'Alamaik surel Sanak indak bisa diubah di wiki ko.',
 'emaildisabled' => 'Situs web ko indak dapek mangirim surel.',
 'accountcreated' => 'Akun dibuek',
-'accountcreatedtext' => 'Akun pangguno untuak $1 alah dibuek.',
+'accountcreatedtext' => 'Akun pangguno untuak [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|maota]]) alah dibuek.',
 'createaccount-title' => 'Pambuatan akun untuak {{SITENAME}}',
 'createaccount-text' => 'Sasaurang alah mambuek sabuah akun untuak alamaik surel Sanak di {{SITENAME}} ($4) jo namo "$2" dan kato sandi "$3". Sanak dianjuakan untuak masuak log dan mangganti kato sandi Sanak kini.
 
@@ -645,12 +676,12 @@ Sanak mungkin alah berhasil mangganti kato sandi Sanak atau alah maminto kato sa
 'resetpass-abort-generic' => 'Parubahan kato sandi alah dibatalan dek ekstensi.',
 
 # Special:PasswordReset
-'passwordreset' => 'Setel ulang sandi',
-'passwordreset-text' => 'Isi formulir ko untuak maubah kato sandi.',
+'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-pretext' => '{{PLURAL:$1||Masuakan salah satu data di bawah ko}}',
 'passwordreset-username' => 'Namo pangguno:',
 'passwordreset-domain' => 'Domain:',
 'passwordreset-capture' => 'Caliak kaputusannyo?',
@@ -720,7 +751,7 @@ Sandi samantaro: $2',
 Alamat IP sanak tacatat pado riwayaik suntiangan laman ko.",
 'anonpreviewwarning' => "''Sanak alun masuak log. Manyimpan laman akan manyababkan alamaik IP Sanak tacatat pado riwayat suntiangan laman iko.''",
 'missingsummary' => "'''Paringatan:''' Sanak indak mamasuakan ringkasan panyuntiangan. Jikok Sanak baliak manakan tombol Simpan, suntiangan Sanak akan disimpan tanpa ringkasan panyuntiangan.",
-'missingcommenttext' => 'Sila masuakan komenta di bawah iko.',
+'missingcommenttext' => 'Masuakan komentar Sanak di bawah ko.',
 'missingcommentheader' => "'''Paringatan:''' Sanak alun maagihan subjek atau judul untuak komenta Sanak. Jikok Sanak baliak manakan \"{{int:savearticle}}\", suntiangan Sanak akan disimpan tanpa komenta tasabuik.",
 'summary-preview' => 'Ringkasan pratayang:',
 'subject-preview' => 'Pratayang subyek/judul:',
@@ -809,9 +840,9 @@ Pratayang iko alun disimpan!'''",
 Parubahan Sanak alun disimpan!",
 'continue-editing' => 'Pai ka kotak panyuntiangan',
 'previewconflict' => 'Pratayang iko mancaminan teks pado bagian ateh kotak suntiangan teks sabagaimano akan taliek bilo Sanak manyimpannyo.',
-'session_fail_preview' => "'''Maaf, kami ndak dapek mangolah suntiangan Sanak akibat tahapuihnyo data sesi.
-Sila cubo sakali lai.
-Jikok masih indak barhasil, cubolah [[Special:UserLogout|kalua log]] dan masuak log baliak.'''",
+'session_fail_preview' => "'''Maaf, kami indak dapek mangolah suntiangan Sanak dek tahapuihnyo data sesi.
+Cubolah sakali lai.
+Jikok masih indak barasil, cubolah [[Special:UserLogout|kalua log]] dan masuak log baliak.'''",
 'session_fail_preview_html' => "'''Kami indak dapek mamproses suntiangan Sanak karano hilangnyo sesi data.'''
 
 ''Dek {{SITENAME}} mangizinan panggunoan HTML mantah, pratonton alah disuruakan sabagai pancagahan terhadok sarangan JavaScript.''
@@ -870,7 +901,7 @@ Sanak dapek baliak dan manyuntiang laman nan alah ado, atau [[Special:UserLogin|
 'sectioneditnotsupported-text' => 'Panyuntiangan bagian indak didukuang di laman suntiang iko.',
 'permissionserrors' => 'Kasalahan Hak Akses',
 'permissionserrorstext' => 'Sanak indak ado hak untuak malakuannyo dek {{PLURAL:$1|alasan}} barikuik:',
-'permissionserrorstext-withaction' => 'Awak indak punyo hak akses untuak $2, karano {{PLURAL:$1|alasan}} barikuik:',
+'permissionserrorstext-withaction' => 'Sanak indak punyo hak akses untuak $2, dek {{PLURAL:$1|alasan}} barikuik:',
 'recreate-moveddeleted-warn' => "'''Ingek: Sanak mambuek ulang suatu laman nan alah dihapuih.'''
 
 Harap ditimbang apo rancak malanjuikan suntiangan Sanak.
@@ -1092,7 +1123,6 @@ $1",
 'searchmenu-legend' => 'Atua pancarian',
 'searchmenu-exists' => "'''Ado laman nan banamo \"[[:\$1]]\" pado wiki ko.'''",
 'searchmenu-new' => "'''Buek laman \"[[:\$1]]\" di wiki ko!'''",
-'searchhelp-url' => 'Help:Isi',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Cari laman jo awalan ko]]',
 'searchprofile-articles' => 'Laman isi',
 'searchprofile-project' => 'Laman Bantuan jo Proyek',
@@ -1169,7 +1199,6 @@ Ingek indeks Google untuak {{SITENAME}} mungkin lah kadaluarsa.',
 'resetprefs' => 'Batalan parubahan',
 'restoreprefs' => 'Baliakan ka setelan awal',
 'prefs-editing' => 'Panyuntiangan',
-'prefs-edit-boxsize' => 'Ukuran kotak panyuntiangan.',
 'rows' => 'Barih:',
 'columns' => 'Kolom:',
 'searchresultshead' => 'Cari',
@@ -1180,8 +1209,6 @@ Ingek indeks Google untuak {{SITENAME}} mungkin lah kadaluarsa.',
 'recentchangesdays-max' => 'Maksimum $1 {{PLURAL:$1|hari}}',
 'recentchangescount' => 'Jumlah suntiangan nan ditunjuakan:',
 'prefs-help-recentchangescount' => 'Iko untuak parubahan tabaru, riwayaik laman nan lalu, sarato log.',
-'prefs-help-watchlist-token' => 'Mangisi kotak ko jo kunci rasio (PIN) akan manghasilkan sindikasi RSS untuak daftar pantau Sanak. Sia juo nan tau jo kunci ko dapek mambaco daftar pantau Sanak, jadi hati-hatilah mamiliah nilainyo. 
-Barikuik ko nilai acak nan dapek Sanak gunoan: $1',
 'savedprefs' => 'Pangaturan lah tasimpan',
 'timezonelegend' => 'Zona wakatu:',
 'localtime' => 'Wakatu satampaik:',
@@ -1212,7 +1239,6 @@ Barikuik ko nilai acak nan dapek Sanak gunoan: $1',
 'prefs-reset-intro' => 'Angku dapek manggunokan laman ko untuak mangambalikan pangaturan ka setelan baku situs ko.
 Pangambalian pangaturan indak dapek dibatalan.',
 'prefs-emailconfirm-label' => 'Surel konfirmasi:',
-'prefs-textboxsize' => 'Ukuran kotak suntiang',
 'youremail' => 'Surel:',
 'username' => '{{GENDER:$1|Namo pangguno}}:',
 'uid' => 'ID {{GENDER:$1|pangguno}}:',
@@ -1244,7 +1270,7 @@ Alamaik surel Sanak indakkan tau dek urang nan manghubuangi sanak tu.',
 'prefs-signature' => 'Tando tangan',
 'prefs-dateformat' => 'Format tanggal',
 'prefs-timeoffset' => 'Format wakatu',
-'prefs-advancedediting' => 'Piliahan lanjuik',
+'prefs-advancedediting' => 'Umum',
 'prefs-advancedrc' => 'Piliahan lanjuik',
 'prefs-advancedrendering' => 'Piliahan lanjuik',
 'prefs-advancedsearchoptions' => 'Piliahan lanjuik',
@@ -1364,7 +1390,8 @@ Alamaik surel Sanak indakkan tau dek urang nan manghubuangi sanak tu.',
 'nchanges' => '$1 {{PLURAL:$1|parubahan}}',
 'recentchanges' => 'Parubahan baru',
 'recentchanges-legend' => 'Piliahan parubahan baru',
-'recentchanges-summary' => 'Caliak parubahan tabaru pado wiki di laman ko.',
+'recentchanges-summary' => "Caliak parubahan tabaru pado wiki di laman ko.<br />
+;Patunjuak:(<span style=\"color:blue;\">bedo</span>) parubahan, (<span style=\"color:blue;\">sijarah</span>) riwayaik parubahan, '''B''' laman baru, '''b''' suntiangan bot, '''k''' suntiangan ketek, <span class=\"unpatrolled\">!</span> parubahan alun dipatroli,<br /><span style=\"color:green;\">'''(+ ''bita'')'''</span> isi laman batambah, <span style=\"color:red;\">(- ''bita'')</span> isi laman bakurang, (← Ikhtisar otomatih), (→ <span style=\"color:grey;\">Suntiangan bagian</span>)",
 'recentchanges-feed-description' => 'Tamuan parubahan baru dalam umpan wiki ko',
 'recentchanges-label-newpage' => 'Suntiangan ko mambuek laman baru',
 'recentchanges-label-minor' => 'Iko suntiangan ketek',
@@ -1394,7 +1421,6 @@ Alamaik surel Sanak indakkan tau dek urang nan manghubuangi sanak tu.',
 'recentchangeslinked' => 'Parubahan takaik',
 'recentchangeslinked-toolbox' => 'Parubahan takaik',
 'recentchangeslinked-title' => 'Parubahan nan takaik jo "$1"',
-'recentchangeslinked-noresult' => 'Indak ado parubahan pado laman nan tapauik salamo periode nan ditantuan',
 'recentchangeslinked-summary' => "Iko daftar parubahan tarakhia pado laman nan tahubuang dari laman tatantu (atau anggota dari kategori tatantu).
 Laman pado [[Special:Watchlist|daftar pantauan Sanak]] ditandoi jo '''cetak taba'''.",
 'recentchangeslinked-page' => 'Namo laman:',
@@ -1406,7 +1432,7 @@ Laman pado [[Special:Watchlist|daftar pantauan Sanak]] ditandoi jo '''cetak taba
 'reuploaddesc' => 'Batal dan baliak ka formulir pamuatan',
 'upload-tryagain' => 'Kirim parubahan katarangan berkas',
 'uploadnologin' => 'Alun masuak log',
-'uploadnologintext' => 'Sanak musti [[Special:UserLogin|masuak log]] untuak dapek mamuek berkas.',
+'uploadnologintext' => 'Sanak musti $1 untuak dapek mamuek berkas.',
 'upload_directory_missing' => 'Direktori pamuatan ($1) indak basobok dan indak dapek dibuek dek server web.',
 'upload_directory_read_only' => 'Direktori pamuatan ($1) indak dapek ditulih jo server web.',
 'uploaderror' => 'Kasalahan pamuatan',
@@ -1649,7 +1675,7 @@ Judul laman nan <del>dicoret</del> bararti alah dipelokan.',
 'listusers' => 'Daftar pangguno',
 'listusers-editsonly' => 'Tunjuakan hanyo pangguno nan ado jariah',
 'listusers-creationsort' => 'Uruikan manuruik tanggal pandaftaran',
-'usereditcount' => '$1 {{PLURAL:$1|suntiangan}}',
+'usereditcount' => '$1 {{PLURAL:$1|}}suntiangan',
 'usercreated' => '{{GENDER:$3|Dibuek}} pado $1 pukua $2',
 'newpages' => 'Laman baru',
 'newpages-username' => 'Namo pangguno:',
@@ -1865,7 +1891,7 @@ Awak dapek maubah tingkek perlindungannyo, walaupun indak pangaruah pado perlind
 ** Baulang kali dikosongan
 ** Pamintaan pangguno',
 'protect-edit-reasonlist' => 'Suntiang alasan palinduangan',
-'protect-expiry-options' => '1 jam:1 hour,1 ari:1 day,1 minggu:1 week,2 minggu:2 weeks,1 bulan:1 month,3 bulan:3 months,6 bulan:6 months,1 taun:1 year,salamonyo:infinite',
+'protect-expiry-options' => '1 jam:1 hour,1 ari:1 day,1 pakan:1 week,2 pakan:2 weeks,1 bulan:1 month,3 bulan:3 months,6 bulan:6 months,1 taun:1 year,salamonyo:infinite',
 'restriction-type' => 'Palinduangan:',
 'restriction-level' => 'Tingkek:',
 'minimum-size' => 'Ukuran min',
@@ -1910,7 +1936,7 @@ Awak dapek maubah tingkek perlindungannyo, walaupun indak pangaruah pado perlind
 'contributions-title' => 'Jariah pangguno untuak $1',
 'mycontris' => 'Jariah',
 'contribsub2' => 'Untuak $1 ($2)',
-'uctop' => '(ateh)',
+'uctop' => '(kini)',
 'month' => 'Dari bulan (dan sabalunnyo):',
 'year' => 'Dari taun (dan sabalunnyo):',
 
@@ -1980,7 +2006,7 @@ Masuakan alasan sakek di bawah (contoh, mambuek karusakan atau vandal).',
 'ipbenableautoblock' => 'Otomatih sakek alamaik IP tarakhia nan digunoan pangguno ko, jo sado alamaik IP takaik nan mancubo manyuntiang.',
 'ipbsubmit' => 'Sakek pangguno ko',
 'ipbother' => 'Salamo:',
-'ipboptions' => '2 jam:2 hours,1 ari:1 day,3 ari:3 days,1 minggu:1 week,2 minggu:2 weeks,1 bulan:1 month,3 bulan:3 months,6 bulan:6 months,1 taun:1 year,salamonyo:infinite',
+'ipboptions' => '2 jam:2 hours,1 ari:1 day,3 ari:3 days,1 pakan:1 week,2 pakan:2 weeks,1 bulan:1 month,3 bulan:3 months,6 bulan:6 months,1 taun:1 year,salamonyo:infinite',
 'ipbotheroption' => 'lainnyo',
 'ipbotherreason' => 'Alasan lain/tambahan:',
 'ipbhidename' => 'Suruakan namo pangguno dari daftar jo suntiangan',
@@ -2064,15 +2090,15 @@ Caliak [[Special:BlockList|daftar sakek]] untuak kasado pangguno nan kini kanai
 # Move page
 'move-page' => 'Pindahan $1',
 'move-page-legend' => 'Pindahkan laman',
-'movepagetext' => "Formulir di bawah ko digunoan untuak maubah namo suatu laman dan mamindahan sadonyo data riwayaik ka namo baru. 
-Judua lamo tu ka manjadi laman paraliahan manuju judua nan baru. 
-Awak dapek mampabarui paraliahan-paraliahan nan manuju ka judua lamo sacaro otomatis.
-Kok indak dipabarui sacaro otomatis, pastikan lah dipareso laman ko dari [[Special:DoubleRedirects|paraliahan ganda]] atau [[Special:BrokenRedirects|paralihan rusak]]. Awak batanggung-jawak untuak mamastian bahaso pautan tu taruih manyambuang ka laman nan saaruihnyo.
+'movepagetext' => "Formulir di bawah ko digunoan untuak maubah namo suatu laman dan mamindahan kasado data riwayaiknyo ka namo baru. 
+Judua lamo tu ka manjadi laman pangaliahan manuju judua nan baru. 
+Sanak dapek mampabarui pangaliahan-pangaliahan nan manuju ka judua lamo sacaro otomatih.
+Kok indak dipabarui sacaro otomatih, pastikan lah dipareso laman ko dari [[Special:DoubleRedirects|pangaliahan ganda]] atau [[Special:BrokenRedirects|pangaliahan rusak]]. Sanak batangguang jawek untuak mamastian baso pautan tu taruih manyambuang ka laman nan saharuihnyo.
 
-Ingeklah bahaso laman ko '''indak''' ka bapindah apobilo lah ado laman nan manggunoan judua nan baru, kacuali bilo laman tu kosong atau marupoan laman paraliahan dan indak punyo riwayaik suntiangan. Aratinyo awak dapek maubah baliak namo laman ka namo samulo apobilo ado kasalahan, dan bahaso awak indak dapek manimpo laman nan lah ado.
+Ingek baso laman ko '''indak''' ka bapindah apobilo lah ado laman nan manggunoan judua nan baru, kacuali bilo laman tu kosong atau marupoan laman pangaliahan dan indak adoi riwayaik suntiangan. Aratinyo Sanak dapek maubah baliak namo laman tu ka namo lamo apobilo ado kasalahan, dan baso awak indak dapek maimpok laman nan alah ado.
 
 '''Paringatan!''' 
-Iko dapek maakibaikan parubahan nan indak dipakiroan pado laman nan populer; jadi pastikan awak paham akibaik tindakan ko sabalun malanjuikannyo.",
+Iko dapek maakibaikan parubahan nan indak dipakiroan pado laman nan populer; jadi pastian Sanak paham bana akibaik dari tindakan ko sabalun malanjuikannyo.",
 'movepagetext-noredirectfixer' => "Formulir di bawah ko digunoan untuak maubah namo suatu laman dan mamindahan sado data riwayaiknyo ka namo baru. 
 Judul lamo tu ka manjadi laman paraliahan manuju judul nan baru. 
 Sanak dapek mampabarui paraliahan-paraliahan nan manuju ka judul lamo sacaro otomatih.
@@ -2340,6 +2366,7 @@ Sanak hanyo buliah mancaliak sumbernyo sajo',
 'file-info-png-frames' => '$1 {{PLURAL:$1|bingkai}}',
 
 # Special:NewFiles
+'imagelisttext' => "Di bawah ko adolah daftar '''$1''' {{PLURAL:$1|berkas}} baruruik dari $2.",
 'newimages-summary' => 'Laman istimewa barikuik manunjuakan daftar berkas nan tarakhia dimuek',
 'newimages-legend' => 'Panyariang',
 'newimages-label' => 'Namo berkas (atau sabagian darinyo):',
@@ -2355,20 +2382,20 @@ Sanak hanyo buliah mancaliak sumbernyo sajo',
 'minutes-abbrev' => '$1 min',
 'hours-abbrev' => '$1 j',
 'days-abbrev' => '$1 h',
-'seconds' => '{{PLURAL:$1|satu datiak|$1 datiak}}',
-'minutes' => '{{PLURAL:$1|$1 minik|$1 minik}}',
-'hours' => '$1 {{PLURAL:$1|jam}}',
-'days' => '$1 {{PLURAL:$1|ari}}',
-'weeks' => '$1 {{PLURAL:$1|minggu}}',
-'months' => '$1 {{PLURAL:$1|bulan}}',
-'years' => '{{PLURAL:$1|$1 taun}}',
+'seconds' => '{{PLURAL:$1|1 datiak|$1 datiak}}',
+'minutes' => '{{PLURAL:$1|1 minik|$1 minik}}',
+'hours' => '{{PLURAL:$1|1 jam|$1 jam}}',
+'days' => '{{PLURAL:$1|1 ari|$1 ari}}',
+'weeks' => '{{PLURAL:$1|1 pakan|$1 pakan}}',
+'months' => '{{PLURAL:$1|1 bulan|$1 bulan}}',
+'years' => '{{PLURAL:$1|1 taun|$1 taun}}',
 'ago' => '$1 nan lalu',
 'just-now' => 'sabanta ko',
 
 # Human-readable timestamps
-'hours-ago' => '$1 {{PLURAL:$1|jam}} nan lalu',
-'minutes-ago' => '$1 {{PLURAL:$1|minik}} nan lalu',
-'seconds-ago' => '$1 {{PLURAL:$1|datiak}} nan lalu',
+'hours-ago' => '{{PLURAL:$1|1 jam|$1 jam}} nan lalu',
+'minutes-ago' => '{{PLURAL:$1|1 minik|$1 minik}} nan lalu',
+'seconds-ago' => '{{PLURAL:$1|1 datiak|$1 datiak}} nan lalu',
 'monday-at' => 'Sinayan pukua $1',
 'tuesday-at' => 'Salasa pukua $1',
 'wednesday-at' => "Raba'a pukua $1",
@@ -2634,7 +2661,7 @@ Situs ko mangalami masalah teknis.',
 'duration-minutes' => '$1 {{PLURAL:$1|minik}}',
 'duration-hours' => '$1 {{PLURAL:$1|jam}}',
 'duration-days' => '$1 {{PLURAL:$1|ari}}',
-'duration-weeks' => '$1 {{PLURAL:$1|minggu}}',
+'duration-weeks' => '{{PLURAL: $1|}}$1 pakan',
 'duration-years' => '$1 {{PLURAL:$1|taun}}',
 'duration-decades' => '$1 {{PLURAL:$1|dekade}}',
 'duration-centuries' => '$1 {{PLURAL:$1|abaik}}',
index 899c37f..68ae929 100644 (file)
@@ -361,7 +361,7 @@ $messages = array(
 'tog-showtoolbar' => 'Прикажи алатник за уредување (JavaScript)',
 'tog-editondblclick' => 'Уредување на страници при двојно кликнување (JavaScript)',
 'tog-editsection' => 'Овозможи уредување на заглавија преку врските [уреди]',
-'tog-editsectiononrightclick' => 'Ð\9eвозможи Ñ\83Ñ\80едÑ\83ваÑ\9aе Ð½Ð° Ð·Ð°Ð³Ð»Ð°Ð²Ð¸Ñ\98а Ñ\81о Ð´ÐµÑ\81ен ÐºÐ»Ð¸Ðº на нивниот наслов (JavaScript)',
+'tog-editsectiononrightclick' => 'УÑ\80едÑ\83ваÑ\9aе Ð½Ð° Ð·Ð°Ð³Ð»Ð°Ð²Ð¸Ñ\98а Ñ\81о Ð´ÐµÑ\81но ÐºÐ¾Ð¿Ñ\87е Ð¾Ð´ Ð³Ð»Ñ\83Ñ\88еÑ\86оÑ\82 на нивниот наслов (JavaScript)',
 'tog-showtoc' => 'Покажи содржина (за страници со повеќе од 3 заглавија)',
 'tog-rememberpassword' => 'Запомни ме на овој прелистувач (највеќе до $1 {{PLURAL:$1|ден|дена}})',
 'tog-watchcreations' => 'Додавај ги страниците што ги создавам и податотеките што ги подигам во списокот на набљудувања',
@@ -498,7 +498,7 @@ $messages = array(
 'moredotdotdot' => 'Повеќе...',
 'morenotlisted' => 'Повеќе (вон списокот)...',
 'mypage' => 'Страница',
-'mytalk' => 'Разговор',
+'mytalk' => 'разговор',
 'anontalk' => 'Разговор за оваа IP-адреса',
 'navigation' => 'Навигација',
 'and' => '&#32;и',
@@ -552,6 +552,7 @@ $messages = array(
 'create-this-page' => 'Создај ја оваа страница',
 'delete' => 'Избриши',
 'deletethispage' => 'Избриши ја оваа страница',
+'undeletethispage' => 'обнови ја оваа страница',
 'undelete_short' => 'Врати {{PLURAL:$1|едно уредување|$1 уредувања}}',
 'viewdeleted_short' => 'Преглед на {{PLURAL:$1|едно избришано уредување|$1 избришани уредувања}}',
 'protect' => 'Заштити',
@@ -605,7 +606,6 @@ $1',
 'disclaimers' => 'Услови на употреба',
 'disclaimerpage' => 'Project:Услови на употреба',
 'edithelp' => 'Помош за уредување',
-'edithelppage' => 'Help:Како се уредуваат страници',
 'helppage' => 'Help:Содржина',
 'mainpage' => 'Главна страница',
 'mainpage-description' => 'Главна страница',
@@ -636,7 +636,6 @@ $1',
 'newmessagesdifflinkplural' => '{{PLURAL:$1|последна промена|последни промени}}',
 'youhavenewmessagesmulti' => 'Имате нови пораки на $1',
 'editsection' => 'уреди',
-'editsection-brackets' => '[$1]',
 'editold' => 'уреди',
 'viewsourceold' => 'преглед на кодот',
 'editlink' => 'уреди',
@@ -759,6 +758,10 @@ $2',
 'namespaceprotected' => "Немате дозвола за уредување страници во именскиот простор '''$1'''.",
 'customcssprotected' => 'Немате дозвола да ја менувате оваа страница со CSS бидејќи содржи туѓи лични нагодувања.',
 'customjsprotected' => 'Немате дозвола да ја менувате оваа страница со JavaScript  бидејќи содржи туѓи лични нагодувања.',
+'mycustomcssprotected' => 'Немате дозвола да ја уредувате оваа каскадна стилска страница (CSS).',
+'mycustomjsprotected' => 'Немате дозвола да ја уредувате оваа страница со JavaScript.',
+'myprivateinfoprotected' => 'Немате дозвола да ги уредувате вашите приватни информации.',
+'mypreferencesprotected' => 'Немате дозвола да ги уредувате вашите нагодувања.',
 'ns-specialprotected' => 'Специјални страници не може да се уредуваат.',
 'titleprotected' => "Овој наслов од страна на [[User:$1|$1]] е заштитен и не може да се создаде.
 Причината за тоа е: ''$2''.",
@@ -786,6 +789,7 @@ $2',
 'yourname' => 'Корисничко име:',
 'userlogin-yourname' => 'Корисничко име',
 'userlogin-yourname-ph' => 'Внесете корисничко име',
+'createacct-another-username-ph' => 'Внесете корисничко име',
 'yourpassword' => 'Лозинка:',
 'userlogin-yourpassword' => 'Лозинка',
 'userlogin-yourpassword-ph' => 'Внесете лозинка',
@@ -820,9 +824,11 @@ $2',
 'helplogin-url' => 'Help:Најава',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Помош со најавата]]',
 'createacct-join' => 'Внесете ваши информации',
+'createacct-another-join' => 'Подолу внесете податоци за сметката',
 'createacct-emailrequired' => 'Е-пошта',
 'createacct-emailoptional' => 'Е-пошта (незадолжително)',
 'createacct-email-ph' => 'Внесете е-пошта',
+'createacct-another-email-ph' => 'Внесете е-пошта',
 'createaccountmail' => 'Дај привремена произволна лозинка и испрати ја на долунаведената адреса',
 'createacct-realname' => 'Вистинско име (незадолжително)',
 'createaccountreason' => 'Причина:',
@@ -831,6 +837,7 @@ $2',
 'createacct-captcha' => 'Безбедносна проверка',
 'createacct-imgcaptcha-ph' => 'Внесете го гореприкажаниот текст',
 'createacct-submit' => 'Направи ја',
+'createacct-another-submit' => 'Создајте друга сметка',
 'createacct-benefit-heading' => '{{SITENAME}} е дело на луѓе како вас.',
 'createacct-benefit-body1' => '{{PLURAL:$1|уредување|уредувања}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|страница|страници}}',
@@ -896,7 +903,7 @@ $2',
 'cannotchangeemail' => 'На ова вики не може да се менува е-пошта на сметките.',
 'emaildisabled' => 'Ова мреж. место не може да праќа е-пошта.',
 'accountcreated' => 'Корисничката сметка е направена',
-'accountcreatedtext' => 'Корисничката сметка „$1“ е направена.',
+'accountcreatedtext' => 'Корисничкта сметка за [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|разговор]]) е направена.',
 'createaccount-title' => 'Создавање на сметка за {{SITENAME}}',
 'createaccount-text' => 'Некој направил сметка со вашата е-поштенска адреса на {{SITENAME}} ($4) со име „$2“ и  лозинка „$3“.
 Би требало сега да се пријавите и да ја промените вашата лозинка.
@@ -936,11 +943,11 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'Менување на лозинка',
-'passwordreset-text' => 'Пополнете го образецов за да ја измените лозинката.',
+'passwordreset-text-one' => 'Пополнете го образецов за да ја измените лозинката.',
+'passwordreset-text-many' => '{{PLURAL:$1|Пополнете едно од полињата за да ја смените лозинката.}}',
 'passwordreset-legend' => 'Нова лозинка',
 'passwordreset-disabled' => 'На ова вики е оневозможено задавање на нова лозинка.',
 'passwordreset-emaildisabled' => 'Можностите за е-пошта се исклучени на ова вики',
-'passwordreset-pretext' => '{{PLURAL:$1||Подолу внесете еден податок}}',
 'passwordreset-username' => 'Корисничко име:',
 'passwordreset-domain' => 'Домен:',
 'passwordreset-capture' => 'Да ја прикажам пораката?',
@@ -1173,7 +1180,7 @@ $2
 'nocreate-loggedin' => 'Немате дозвола да создавате нови страници.',
 'sectioneditnotsupported-title' => 'Уредувањето на заглавија не е поддржано',
 'sectioneditnotsupported-text' => 'На оваа станица не е поддржано уредувањето на заглавија.',
-'permissionserrors' => 'Ð\93Ñ\80еÑ\88ки Ñ\81о Ð´Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ\82е Ð·Ð° Ð¿Ñ\80иÑ\81Ñ\82ап',
+'permissionserrors' => 'Ð\93Ñ\80еÑ\88ка Ñ\81о Ð´Ð¾Ð·Ð²Ð¾Ð»Ð°Ñ\82а',
 'permissionserrorstext' => 'Немате дозвола да го направите тоа, од {{PLURAL:$1|следнава причина|следниве причини}}:',
 'permissionserrorstext-withaction' => 'Немате дозвола за $2, од {{PLURAL:$1|следнава причина|следниве причини}}:',
 'recreate-moveddeleted-warn' => "Внимание: Повторно создавате страница што претходно била бришена.'''
@@ -1189,6 +1196,7 @@ $2
 Веројатно е избришана.',
 'edit-conflict' => 'Спротиставеност во уредувањето.',
 'edit-no-change' => 'Вашите уредувања беа игнорирани, бидејќи не се направени промени врз текстот.',
+'postedit-confirmation' => 'Вашето уредување е зачувано.',
 'edit-already-exists' => 'Не може да се создаде нова страница.
 Истата веќе постои.',
 'defaultmessagetext' => 'Текст на пораката по основно',
@@ -1196,7 +1204,7 @@ $2
 'invalid-content-data' => 'Неважечки податоци од содржината',
 'content-not-allowed-here' => 'Содржините од моделот „$1“ не се допуштени на страницата [[$2]]',
 'editwarning-warning' => 'Ако ја напуштите страницата ќе ги изгубите сите промени кои сте ги направиле.
-Ако сте најавени, можете да го исклучите ова предупредување во одделот „{{int:prefs-editing}}“ во вашите нагодувања.',
+Ако сте најавени, можете да го исклучите ова предупредување во одделот „Уредување“ во вашите нагодувања.',
 
 # Content models
 'content-model-wikitext' => 'викитекст',
@@ -1232,6 +1240,7 @@ $2
 'undo-failure' => 'Уредувањето не можеше да се откаже заради меѓувремени спротиставени уредувања.',
 'undo-norev' => 'Измената не можеше да биде вратена бидејќи не постои или била избришана.',
 'undo-summary' => 'Откажано уредувањето $1 на уредникот [[Special:Contributions/$2|$2]] ([[User talk:$2|разговор]])',
+'undo-summary-username-hidden' => 'Поништи ја ревизијата $1 на скриен корисник',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Не може да се создаде корисничка сметка',
@@ -1258,8 +1267,8 @@ $2
 Легенда: '''({{int:cur}})''' = разлика со последна ревизија, '''({{int:last}})''' = разлика со претходна ревизија, '''{{int:minoreditletter}}''' = ситна промена.",
 'history-fieldset-title' => 'Прелистување на историја',
 'history-show-deleted' => 'Само избришани',
-'histfirst' => 'Ð\9fÑ\80ви',
-'histlast' => 'Ð\9fоÑ\81ледни',
+'histfirst' => 'наÑ\98Ñ\81Ñ\82аÑ\80и',
+'histlast' => 'наÑ\98нови',
 'historysize' => '({{PLURAL:$1|1 бајт|$1 бајти}})',
 'historyempty' => '(празно)',
 
@@ -1408,6 +1417,7 @@ $1",
 'compareselectedversions' => 'Спореди избрани ревизии',
 'showhideselectedversions' => 'Прикажи/скриј избрани ревизии',
 'editundo' => 'откажи',
+'diff-empty' => '(нема разлика)',
 'diff-multi' => '({{PLURAL:$1|Не е прикажана една меѓувремена ревизија|Не се прикажани $1 меѓувремени ревизии}} од {{PLURAL:$2|еден корисник|$2 корисници}})',
 'diff-multi-manyusers' => '({{PLURAL:$1|Не е прикажана една меѓувремена ревизија направена|Не се прикажани $1 меѓувремени ревизии направени}} од повеќе од $2 {{PLURAL:$2|корисник|корисници}})',
 'difference-missing-revision' => 'Не пронајдов {{PLURAL:$2|една ревизија|$2 ревизии}} од оваа разлика ($1).
@@ -1435,7 +1445,6 @@ $1",
 'searchmenu-legend' => 'Нагодувања на пребарувањето',
 'searchmenu-exists' => "'''На ова вики има страница со наслов „[[:$1]]“'''",
 'searchmenu-new' => "Создајте ја страницата „[[:$1]]“ на ова вики!'''",
-'searchhelp-url' => 'Help:Содржина',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Прелистување на страници со оваа претставка]]',
 'searchprofile-articles' => 'Статии',
 'searchprofile-project' => 'Помош и проектни страници',
@@ -1513,7 +1522,6 @@ $1",
 'resetprefs' => 'Избриши незачувани измени',
 'restoreprefs' => 'Врати сè по основно',
 'prefs-editing' => 'Уредување',
-'prefs-edit-boxsize' => 'Големина на прозорецот за уредување.',
 'rows' => 'Редови:',
 'columns' => 'Колони:',
 'searchresultshead' => 'Пребарување',
@@ -1524,9 +1532,6 @@ $1",
 'recentchangesdays-max' => '(највеќе $1 {{PLURAL:$1|ден|дена}})',
 'recentchangescount' => 'Број на уредувања кои ќе се прикажуваат по основно:',
 'prefs-help-recentchangescount' => 'Подразбира скорешни промени, истории на страници и дневници.',
-'prefs-help-watchlist-token' => 'Со внесување на тајниот клуч во полево ќе создадете RSS емитување за вашиот список на набљудувања.
-Секој што го знае клучот во полево ќе може да го чита вашиот список на набљудувања, па затоа изберете некоја безбедна вредност.
-Еве една случајно-создадена вредност што можете да ја користите: $1',
 'savedprefs' => 'Вашите нагодувања се зачувани.',
 'timezonelegend' => 'Часовен појас:',
 'localtime' => 'Локално време:',
@@ -1556,7 +1561,6 @@ $1",
 'prefs-common-css-js' => 'Заеднички CSS/JS за сите изгледи:',
 'prefs-reset-intro' => 'Може да ја користите оваа страница за враќање на вашите нагодувања на основно-зададените нагодувања на викито. Ова дејство е неповратно.',
 'prefs-emailconfirm-label' => 'Потврда на е-пошта:',
-'prefs-textboxsize' => 'Големина на полето за уредување',
 'youremail' => 'Е-пошта:',
 'username' => '{{GENDER:$1|Корисничко име}}:',
 'uid' => '{{GENDER:$1|Кориснички бр.}}:',
@@ -1589,7 +1593,9 @@ $1",
 'prefs-signature' => 'Потпис',
 'prefs-dateformat' => 'Формат на датумот',
 'prefs-timeoffset' => 'Временско отстапување',
-'prefs-advancedediting' => 'Напредни нагодувања',
+'prefs-advancedediting' => 'Општи',
+'prefs-editor' => 'Уредник',
+'prefs-preview' => 'Преглед',
 'prefs-advancedrc' => 'Напредни нагодувања',
 'prefs-advancedrendering' => 'Напредни нагодувања',
 'prefs-advancedsearchoptions' => 'Напредни нагодувања',
@@ -1626,6 +1632,7 @@ $1",
 'userrights-unchangeable-col' => 'Групи кои не може да ги промените',
 'userrights-irreversible-marker' => '$1*',
 'userrights-conflict' => 'Спротиставеност во корисничките права. Применете ги промените повторно.',
+'userrights-removed-self' => 'Успешно ги отстранивте вашите права. Затоа, повеќе немате пристап на страницава.',
 
 # Groups
 'group' => 'Група:',
@@ -1669,7 +1676,7 @@ $1",
 'right-reupload-shared' => 'Наложување на едни податотеки врз други на заедничката мултимедијална ризница локално',
 'right-upload_by_url' => 'Подигање на податотека од URL-адреса',
 'right-purge' => 'Бришење од опслужувачки кеш на страницата без барање потврда за тоа',
-'right-autoconfirmed' => 'УÑ\80едÑ\83ваÑ\9aе Ð½Ð° Ð´ÐµÐ»Ñ\83мно Ð·Ð°Ñ\88Ñ\82иÑ\82ени Ñ\81Ñ\82Ñ\80аниÑ\86и',
+'right-autoconfirmed' => 'Ð\91ез Ð¾Ð³Ñ\80аниÑ\87Ñ\83ваÑ\9aа Ð½Ð° Ñ\81Ñ\82апки Ð·Ð° IP-адÑ\80еÑ\81а',
 'right-bot' => 'Третиран како автоматски процес',
 'right-nominornewtalk' => 'Ситните уредувања да не поттикнуваат потсетник за нова порака',
 'right-apihighlimits' => 'Користење на помалку ограничени барања кон API',
@@ -1690,12 +1697,20 @@ $1",
 'right-ipblock-exempt' => 'Заобиколување на IP блокирања, авто-блокирања и блокирања на IP рангови',
 'right-proxyunbannable' => 'Заобиколување на автоматски блокирања на застапници',
 'right-unblockself' => 'Сопствено одблокирање',
-'right-protect' => 'Менување на степени на заштита и уредување на заштитени страници',
-'right-editprotected' => 'Уредување на заштитени страници (без каскадна заштита)',
+'right-protect' => 'Менување на степени на заштита и уредување на каскадно заштитени страници',
+'right-editprotected' => 'Уредување на страници заштитени како „{{int:protect-level-sysop}}“',
+'right-editsemiprotected' => 'Уредување на страници заштитени како „{{int:protect-level-autoconfirmed}}“',
 'right-editinterface' => 'Уредување на кориснички посредник',
 'right-editusercssjs' => 'Уредување на CSS и JS податотеки на други корисници',
 'right-editusercss' => 'Уредување на CSS податотеки на други корисници',
 'right-edituserjs' => 'Уредување на JS податотеки на други корисници',
+'right-editmyusercss' => 'Уредување на сопствени кориснички каскадни стилски податотеки (CSS)',
+'right-editmyuserjs' => 'Уредување на сопствени кориснички податотеки со JavaScript',
+'right-viewmywatchlist' => 'Преглед на вашиот список на набљудувања',
+'right-editmywatchlist' => 'Уредување на вашиот список на набљудувања. Извесни дејства сепак ќе ставаат страници во списокот и без да го имате ова право.',
+'right-viewmyprivateinfo' => 'Преглед на сопствените приватни податоци (на пр. е-пошта, вистинско име и презиме)',
+'right-editmyprivateinfo' => 'Уредување на сопствените приватни податоци (на пр. е-пошта, вистинско име и презиме)',
+'right-editmyoptions' => 'Уредување на вашите нагодувања',
 'right-rollback' => 'Брзо отповикување на уредувањата на последниот корисник што уредувал одредена страница',
 'right-markbotedits' => 'Означување на вратени уредувања како ботовски уредувања',
 'right-noratelimit' => 'Без временски ограничувања на уредување',
@@ -1757,12 +1772,17 @@ $1",
 'action-userrights-interwiki' => 'уредување на кориснички права на корисници на други викија',
 'action-siteadmin' => 'заклучување или отклучување на базата на податоци',
 'action-sendemail' => 'испраќање на е-пошта',
+'action-editmywatchlist' => 'уредување на вашиот список на набљудувања',
+'action-viewmywatchlist' => 'преглед на вашиот список на набљудувања',
+'action-viewmyprivateinfo' => 'преглед на вашите приватни податоци',
+'action-editmyprivateinfo' => 'уредување на вашите приватни податоци',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|промена|промени}}',
 'recentchanges' => 'Скорешни промени',
 'recentchanges-legend' => 'Нагодувања за скорешни промени',
 'recentchanges-summary' => 'На оваа страница ги следите скорешните промени на викито.',
+'recentchanges-noresult' => 'Нема промени од дадениот период што одговараат на бараното.',
 'recentchanges-feed-description' => 'Следење на најскорешните промени на викито во овие емитувања.',
 'recentchanges-label-newpage' => 'Ова уредување создаде нова страница',
 'recentchanges-label-minor' => 'Ова е ситна промена',
@@ -1800,7 +1820,6 @@ $1",
 'recentchangeslinked-feed' => 'Поврзани промени',
 'recentchangeslinked-toolbox' => 'Поврзани промени',
 'recentchangeslinked-title' => 'Промени поврзани со „$1“',
-'recentchangeslinked-noresult' => 'Нема промени на поврзаните страници во зададениот период.',
 'recentchangeslinked-summary' => "Ова е список на промени направени на страниците поврзани преку назначената страница (или до членови на назначената категорија).
 Страниците на [[Special:Watchlist|вашиот список на набљудувања]] се прикажани '''задебелено'''.",
 'recentchangeslinked-page' => 'Име на страницата:',
@@ -1812,7 +1831,7 @@ $1",
 'reuploaddesc' => 'Прекини и назад кон образецот за подигање',
 'upload-tryagain' => 'Поднеси изменет опис на податотеката',
 'uploadnologin' => 'Не сте најавени',
-'uploadnologintext' => 'Морате да [[Special:UserLogin|се најавите]] за да можете да подигате податотеки.',
+'uploadnologintext' => 'Мора да сте $1 за да можете да подигате.',
 'upload_directory_missing' => 'Папката за подигање на слики ($1) не постои и не може да биде создадена од опслужувачот.',
 'upload_directory_read_only' => 'Опслужувачот не може да запишува во именикот за подигање ($1).',
 'uploaderror' => 'Грешка во подигањето',
@@ -2210,6 +2229,8 @@ $1',
 'pageswithprop-text' => 'На страницава се наведени страници што користат дадено својство.',
 'pageswithprop-prop' => 'Име на својството:',
 'pageswithprop-submit' => 'Оди',
+'pageswithprop-prophidden-long' => 'долгата вредност на текстуалното својство е скриена ($1 килобајти)',
+'pageswithprop-prophidden-binary' => 'бинарната вредност на својството за долгиот текст е скриена ($1 килобајти)',
 
 'doubleredirects' => 'Двојни пренасочувања',
 'doubleredirectstext' => 'Оваа страница ги прикажува пренасочувачките страници до други пренасочувачки страници.
@@ -2389,7 +2410,8 @@ $1',
 'listgrouprights' => 'Права на кориснички групи',
 'listgrouprights-summary' => 'Следи список на кориснички групи утврдени на ова вики, заедно со нивните придружни права на пристап.
 Можно е да има [[{{MediaWiki:Listgrouprights-helppage}}|дополнителни информации]] за некои права.',
-'listgrouprights-key' => '* <span class="listgrouprights-granted">Доделено право</span>
+'listgrouprights-key' => 'Легенда:
+* <span class="listgrouprights-granted">Доделено право</span>
 * <span class="listgrouprights-revoked">Одземено право</span>',
 'listgrouprights-group' => 'Група',
 'listgrouprights-rights' => 'Права',
@@ -2442,7 +2464,7 @@ $1',
 'usermessage-editor' => 'Системски гласник',
 
 # Watchlist
-'watchlist' => 'Ð\9dабљудувања',
+'watchlist' => 'набљудувања',
 'mywatchlist' => 'Набљудувања',
 'watchlistfor2' => 'За $1 $2',
 'nowatchlist' => 'Немате ништо во списокот на набљудувања.',
@@ -2460,7 +2482,6 @@ $1',
 'unwatchthispage' => 'Престани набљудување',
 'notanarticle' => 'Не е статија',
 'notvisiblerev' => 'Ревизијата била избришана',
-'watchnochange' => 'Ниту едно од вашите набљудувања не било уредувано во прикажаниот период.',
 'watchlist-details' => '{{PLURAL:$1|$1 страница|$1 страници}} во вашиот список на набљудувања, не броејќи ги страниците за разговор.',
 'wlheader-enotif' => 'Известувањето по е-пошта е вклучено.',
 'wlheader-showupdated' => "Страниците што се изменети од вашата последна посета се прикажани со '''задебелени''' букви",
@@ -2573,7 +2594,7 @@ $UNWATCHURL
 Последното уредување го изврши [[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]]',
-'revertpage-nouser' => 'Ð\92Ñ\80аÑ\82ени Ñ\83Ñ\80едÑ\83ваÑ\9aа Ð½Ð° (избÑ\80иÑ\88ано ÐºÐ¾Ñ\80иÑ\81ниÑ\87ко Ð¸Ð¼Ðµ) на последната ревизија од [[User:$1|$1]]',
+'revertpage-nouser' => 'Ð\92Ñ\80аÑ\82ени Ñ\83Ñ\80едÑ\83ваÑ\9aа Ð¾Ð´ Ñ\81кÑ\80иен ÐºÐ¾Ñ\80иÑ\81ник на последната ревизија од [[User:$1|$1]]',
 'rollback-success' => 'Откажани уредувањата на $1; вратено на последната верзија на $2.',
 
 # Edit tokens
@@ -2721,7 +2742,7 @@ $1',
 'mycontris' => 'придонеси',
 'contribsub2' => 'За $1 ($2)',
 'nocontribs' => 'Не се пронајдени промени што одговараат на овој критериум.',
-'uctop' => ' (врв)',
+'uctop' => '(тековно)',
 'month' => 'Од месец (и порано):',
 'year' => 'Од година (и порано):',
 
@@ -4154,7 +4175,6 @@ $5
 'version-other' => 'Друго',
 'version-mediahandlers' => 'Ракувачи со мултимедијални содржини',
 'version-hooks' => 'Куки',
-'version-extension-functions' => 'Функции на додатоците',
 'version-parser-extensiontags' => 'Ознаки за парсерски додатоци',
 'version-parser-function-hooks' => 'Куки на парсерските функции',
 'version-hook-name' => 'Име на кука',
@@ -4238,6 +4258,7 @@ $5
 'tags' => 'Важечки ознаки за менување',
 'tag-filter' => '[[Special:Tags|Филтер за ознаки]]:',
 'tag-filter-submit' => 'Филтер',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Ознака|Ознаки}}]]: $2)',
 'tags-title' => 'Ознаки',
 'tags-intro' => 'На оваа страница е даден список на ознаки со кои програмската опрема може да ги означи измените и нивното значење.',
 'tags-tag' => 'Име на ознака',
index aa5ffac..5dd7718 100644 (file)
  * @author Krenair
  * @author Manjith Joseph <manjithkaini@gmail.com>
  * @author Naveen Sankar
+ * @author Nemo bis
  * @author Praveen Prakash <me.praveen@gmail.com>
  * @author Praveenp
+ * @author Raghith
  * @author Sadik Khalid
  * @author Sadik Khalid <sadik.khalid@gmail.com>
  * @author Santhosh.thottingal
@@ -334,6 +336,8 @@ $magicWords = array(
        'pagesincategory_files'     => array( '0', 'പ്രമാണങ്ങൾ', 'files' ),
 );
 
+$linkTrail = "/^([a-z\x{0D02}-\x{0D7F}]+)(.*)$/sDu";
+
 $digitGroupingPattern = "##,##,###";
 
 $messages = array(
@@ -342,14 +346,14 @@ $messages = array(
 'tog-justify' => 'ഖണ്ഡികകളുടെ അരികുകൾ നേരെയാക്കുക',
 'tog-hideminor' => 'പുതിയ മാറ്റങ്ങളുടെ പട്ടികയിൽ ചെറിയ തിരുത്തലുകൾ പ്രദർശിപ്പിക്കാതിരിക്കുക',
 'tog-hidepatrolled' => 'റോന്തുചുറ്റിയ തിരുത്തുകൾ പുതിയമാറ്റങ്ങളിൽ പ്രദർശിപ്പിക്കാതിരിക്കുക',
-'tog-newpageshidepatrolled' => 'à´±àµ\8bà´¨àµ\8dà´¤àµ\81à´\9aàµ\81à´±àµ\8dറിയ താളുകൾ പുതിയതാളുകളുടെ പട്ടികയിൽ പ്രദർശിപ്പിക്കാതിരിക്കുക',
+'tog-newpageshidepatrolled' => 'à´±àµ\8bà´¨àµ\8dà´¤àµ\81à´\9aàµ\81à´±àµ\8dറപàµ\8dà´ªàµ\86à´\9fàµ\8dà´\9f താളുകൾ പുതിയതാളുകളുടെ പട്ടികയിൽ പ്രദർശിപ്പിക്കാതിരിക്കുക',
 'tog-extendwatchlist' => 'ഏറ്റവും പുതിയവ മാത്രമല്ല, എല്ലാ മാറ്റങ്ങളും ദൃശ്യമാകുന്ന വിധത്തിൽ ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടിക വികസിപ്പിക്കുക.',
 'tog-usenewrc' => 'സമീപകാല മാറ്റങ്ങൾ, ശ്രദ്ധിക്കുന്നവയുടെ പട്ടിക എന്നീ താളുകളിലെ വിവരങ്ങൾ താളുകൾക്കനുസരിച്ചുള്ള കൂട്ടങ്ങളായി ഒതുക്കി പ്രദർശിപ്പിക്കുക (ജാവാസ്ക്രിപ്റ്റ് ആവശ്യമാണ്)',
 'tog-numberheadings' => 'ഉപവിഭാഗങ്ങൾക്ക് ക്രമസംഖ്യ കൊടുക്കുക',
-'tog-showtoolbar' => 'തിരുത്തൽ റ്റൂൾബാർ  പ്രദർശിപ്പിക്കുക (ജാവാസ്ക്രിപ്റ്റ്)',
-'tog-editondblclick' => 'താളുകളിൽ ഇരട്ട ക്ലിക്ക് ചെയ്യുമ്പോൾ തിരുത്താനനുവദിക്കുക (ജാവാസ്ക്രിപ്റ്റ്)',
+'tog-showtoolbar' => 'തിരുത്തൽ റ്റൂൾബാർ  പ്രദർശിപ്പിക്കുക (ജാവാസ്ക്രിപ്റ്റ് ആവശ്യമാണ്)',
+'tog-editondblclick' => 'താളുകളിൽ ഇരട്ട ക്ലിക്ക് ചെയ്യുമ്പോൾ തിരുത്താനനുവദിക്കുക (ജാവാസ്ക്രിപ്റ്റ് ആവശ്യമാണ്)',
 'tog-editsection' => '[തിരുത്തുക] എന്ന കണ്ണിയുപയോഗിച്ച് ഉപവിഭാഗങ്ങൾ തിരുത്താൻ അനുവദിക്കുക',
-'tog-editsectiononrightclick' => 'ഉപവിഭാഗങ്ങളുടെ തലക്കെട്ടിൽ റൈറ്റ് ക്ലിക്ക് ചെയ്യുന്നതു വഴി തിരുത്താനനുവദിക്കുക (ജാവാസ്ക്രിപ്റ്റ്)',
+'tog-editsectiononrightclick' => 'ഉപവിഭാഗങ്ങളുടെ തലക്കെട്ടിൽ റൈറ്റ് ക്ലിക്ക് ചെയ്യുന്നതു വഴി തിരുത്താനനുവദിക്കുക (ജാവാസ്ക്രിപ്റ്റ് ആവശ്യമാണ്)',
 'tog-showtoc' => 'ഉള്ളടക്കപ്പട്ടിക പ്രദർശിപ്പിക്കുക (മൂന്നിൽ കൂടുതൽ ഉപശീർഷകങ്ങളുള്ള താളുകൾക്കു മാത്രം)',
 'tog-rememberpassword' => 'എന്റെ പ്രവേശനം ഈ ബ്രൗസറിൽ ({{PLURAL:$1|ഒരു ദിവസം|$1 ദിവസം}}) ഓർത്തുവെക്കുക',
 'tog-watchcreations' => 'ഞാൻ സൃഷ്ടിക്കുന്ന താളുകളും ഞാൻ അപ്‌ലോഡ് ചെയ്യുന്ന പ്രമാണങ്ങളും ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിൽ ചേർക്കുക',
@@ -465,7 +469,7 @@ $messages = array(
 'category-empty' => "''ഈ വർഗ്ഗത്തിൽ താളുകളോ പ്രമാണങ്ങളോ ഇല്ല.''",
 'hidden-categories' => '{{PLURAL:$1|മറഞ്ഞിരിക്കുന്ന വർഗ്ഗം|മറഞ്ഞിരിക്കുന്ന വർഗ്ഗങ്ങൾ}}',
 'hidden-category-category' => 'മറഞ്ഞിരിക്കുന്ന വർഗ്ഗങ്ങൾ',
-'category-subcat-count' => '{{PLURAL:$2|à´\88 à´µàµ¼à´\97àµ\8dà´\97à´¤àµ\8dതിനàµ\81 à´¤à´¾à´´àµ\86 à´¨àµ½à´\95ിയിരിà´\95àµ\8dà´\95àµ\81à´¨àµ\8dà´¨ à´\92à´°àµ\81 à´\89പവർà´\97àµ\8dà´\97à´\82 à´®à´¾à´¤àµ\8dരമാണàµ\81à´³àµ\8dളതàµ\8d.|à´\88 à´µàµ¼à´\97àµ\8dà´\97à´¤àµ\8dതിനàµ\8d ആകെ $2 ഉപവർഗ്ഗങ്ങൾ ഉള്ളതിൽ {{PLURAL:$1|ഒരു ഉപവർഗ്ഗം|$1 ഉപവർഗ്ഗങ്ങൾ}}, താഴെക്കൊടുത്തിരിക്കുന്നു.}}',
+'category-subcat-count' => '{{PLURAL:$2|à´\88 à´µàµ¼à´\97àµ\8dà´\97à´¤àµ\8dതിൽ à´¤à´¾à´´àµ\86 à´¨àµ½à´\95ിയിരിà´\95àµ\8dà´\95àµ\81à´¨àµ\8dà´¨ à´\92à´°àµ\81 à´\89പവർà´\97àµ\8dà´\97à´\82 à´®à´¾à´¤àµ\8dരമാണàµ\81à´³àµ\8dളതàµ\8d.|à´\88 à´µàµ¼à´\97àµ\8dà´\97à´¤àµ\8dതിൽ ആകെ $2 ഉപവർഗ്ഗങ്ങൾ ഉള്ളതിൽ {{PLURAL:$1|ഒരു ഉപവർഗ്ഗം|$1 ഉപവർഗ്ഗങ്ങൾ}}, താഴെക്കൊടുത്തിരിക്കുന്നു.}}',
 'category-subcat-count-limited' => 'ഈ വർഗ്ഗത്തിനു താഴെ നൽകിയിരിക്കുന്ന {{PLURAL:$1|ഉപവർഗ്ഗമുണ്ട്|$1 ഉപവർഗ്ഗങ്ങളുണ്ട്}}.',
 'category-article-count' => '{{PLURAL:$2|ഈ വർഗ്ഗത്തിൽ താഴെ നൽകിയിരിക്കുന്ന ഒരു താൾ മാത്രമാണുള്ളത്.|ഈ വർഗ്ഗത്തിൽ $2 താളുകളുള്ളതിൽ {{PLURAL:$1|ഒരു താൾ|$1 എണ്ണം}} താഴെ നൽകിയിരിക്കുന്നു.}}',
 'category-article-count-limited' => 'ഈ വർഗ്ഗത്തിൽ താഴെ നൽകിയിരിക്കുന്ന {{PLURAL:$1|ഒരു താൾ ഉണ്ട്|$1 താളുകൾ ഉണ്ട്}}.',
@@ -537,6 +541,7 @@ $messages = array(
 'create-this-page' => 'ഈ താൾ സൃഷ്ടിക്കുക',
 'delete' => 'മായ്ക്കുക',
 'deletethispage' => 'ഈ താൾ നീക്കം ചെയ്യുക',
+'undeletethispage' => 'ഈ താൾ പുനഃസ്ഥാപിക്കുക',
 'undelete_short' => '{{PLURAL:$1|ഒരു തിരുത്തൽ|$1 തിരുത്തലുകൾ}} പുനഃസ്ഥാപിക്കുക',
 'viewdeleted_short' => '{{PLURAL:$1|മായ്ക്കപ്പെട്ട ഒരു തിരുത്തൽ|മായ്ക്കപ്പെട്ട $1 തിരുത്തലുകൾ}} കാണുക',
 'protect' => 'സം‌രക്ഷിക്കുക',
@@ -590,7 +595,6 @@ $1',
 'disclaimers' => 'നിരാകരണങ്ങൾ',
 'disclaimerpage' => 'Project:പൊതുനിരാകരണം',
 'edithelp' => 'തിരുത്തൽ സഹായി',
-'edithelppage' => 'Help:തിരുത്തൽ വഴികാട്ടി',
 'helppage' => 'Help:ഉള്ളടക്കം',
 'mainpage' => 'പ്രധാന താൾ',
 'mainpage-description' => 'പ്രധാന താൾ',
@@ -737,6 +741,10 @@ $2',
 'namespaceprotected' => "'''$1''' നാമമേഖലയിലുള്ള താളുകൾ തിരുത്താൻ താങ്കൾക്ക് അനുവാദമില്ല.",
 'customcssprotected' => 'ഈ സി.എസ്.എസ്. താളിൽ മറ്റൊരു ഉപയോക്താവിന്റെ സ്വകാര്യസജ്ജീകരണങ്ങൾ ഉൾക്കൊള്ളുന്നു, അതിനാൽ താങ്കൾക്ക് ഈ താൾ തിരുത്താൻ അനുവാദമില്ല.',
 'customjsprotected' => 'ഈ ജാവാസ്ക്രിപ്റ്റ് താളിൽ മറ്റൊരു ഉപയോക്താവിന്റെ സ്വകാര്യസജ്ജീകരണങ്ങൾ ഉൾക്കൊള്ളുന്നു, അതിനാൽ താങ്കൾക്ക് ഈ താൾ തിരുത്താൻ അനുവാദമില്ല.',
+'mycustomcssprotected' => 'ഈ സി.എസ്.എസ്.  താൾ തിരുത്താനുള്ള അനുമതി താങ്കൾക്കില്ല.',
+'mycustomjsprotected' => 'ഈ ജാവാസ്ക്രിപ്റ്റ് താൾ തിരുത്താനുള്ള അനുമതി താങ്കൾക്കില്ല.',
+'myprivateinfoprotected' => 'താങ്കൾക്ക് സ്വന്തം സ്വകാര്യവിവരങ്ങൾ തിരുത്തുവാനുള്ള അനുമതിയില്ല.',
+'mypreferencesprotected' => 'താങ്കൾക്ക് സ്വന്തം ക്രമീകരണങ്ങൾ തിരുത്തുവാനുള്ള അനുമതിയില്ല.',
 'ns-specialprotected' => 'പ്രത്യേകം എന്ന നാമമേഖലയിൽ വരുന്ന താളുകൾ തിരുത്താനാവുന്നവയല്ല.',
 'titleprotected' => "[[User:$1|$1]] എന്ന ഉപയോക്താവ് ഈ താൾ ഉണ്ടാക്കുന്നതു നിരോധിച്ചിരിക്കുന്നു.
 ''$2'' എന്നതാണു അതിനു കാണിച്ചിട്ടുള്ള കാരണം.",
@@ -765,16 +773,17 @@ $2',
 'yourname' => 'ഉപയോക്തൃനാമം:',
 'userlogin-yourname' => 'ഉപയോക്തൃനാമം',
 'userlogin-yourname-ph' => 'താങ്കളുടെ ഉപയോക്തൃനാമം നൽകുക',
+'createacct-another-username-ph' => 'ഉപയോക്തൃനാമം നൽകുക',
 'yourpassword' => 'രഹസ്യവാക്ക്:',
 'userlogin-yourpassword' => 'രഹസ്യവാക്ക്',
 'userlogin-yourpassword-ph' => 'താങ്കളുടെ രഹസ്യവാക്ക് നൽകുക',
-'createacct-yourpassword-ph' => 'രഹസ്യവാക്ക് നൽകുക',
+'createacct-yourpassword-ph' => 'à´\92à´°àµ\81 à´°à´¹à´¸àµ\8dയവാà´\95àµ\8dà´\95àµ\8d à´¨àµ½à´\95àµ\81à´\95',
 'yourpasswordagain' => 'രഹസ്യവാക്ക് ഒരിക്കൽക്കൂടി:',
 'createacct-yourpasswordagain' => 'രഹസ്യവാക്ക് സ്ഥിരീകരിക്കുക',
 'createacct-yourpasswordagain-ph' => 'രഹസ്യവാക്ക് വീണ്ടും നൽകുക',
 'remembermypassword' => 'എന്റെ പ്രവേശനം ഈ ബ്രൗസറിൽ ({{PLURAL:$1|ഒരു ദിവസം|$1 ദിവസം}}) ഓർത്തുവെക്കുക',
 'userlogin-remembermypassword' => 'ഞാൻ പ്രവേശിച്ചതായി തന്നെ നിലനിർത്തുക',
-'userlogin-signwithsecure' => 'à´¸àµ\81à´°à´\95àµ\8dà´·à´¿à´¤ à´\95ണൿഷൻ ഉപയോഗിക്കുക',
+'userlogin-signwithsecure' => 'à´¸àµ\81à´°à´\95àµ\8dà´·à´¿à´¤ à´\95à´£à´\95àµ\8dഷൻ ഉപയോഗിക്കുക',
 'securelogin-stick-https' => 'പ്രവേശനത്തിനു ശേഷവും എച്ച്.റ്റി.റ്റി.പി.എസ്. തന്നെ ഉപയോഗിക്കുക',
 'yourdomainname' => 'താങ്കളുടെ ഡൊമെയിൻ:',
 'password-change-forbidden' => 'ഈ വിക്കിയിൽ രഹസ്യവാക്കുകൾ മാറ്റാനാവില്ല.',
@@ -799,10 +808,12 @@ $2',
 'helplogin-url' => 'Help:പ്രവേശനം',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|പ്രവേശന സഹായം]]',
 'createacct-join' => 'താങ്കളെപ്പറ്റിയുള്ള വിവരങ്ങൾ താഴെ നൽകുക.',
+'createacct-another-join' => 'പുതിയ അംഗത്വത്തിന്റെ വിവരങ്ങൾ താഴെ നൽകുക.',
 'createacct-emailrequired' => 'ഇമെയിൽ വിലാസം',
 'createacct-emailoptional' => 'ഇമെയിൽ വിലാസം (നിർബന്ധമില്ല)',
 'createacct-email-ph' => 'താങ്കളുടെ ഇമെയിൽ വിലാസം നൽകുക',
-'createaccountmail' => 'താത്കാലികമായ ക്രമരഹിത രഹസ്യവാക്ക് ഉപയോഗിക്കാനനുവാദം നൽകുകയും അത് താഴെ വ്യക്തമാക്കിയിരിക്കുന്ന ഇമെയിൽ വിലാസത്തിലേയ്ക്ക് അയക്കുകയും ചെയ്യുക',
+'createacct-another-email-ph' => 'ഇമെയിൽ വിലാസം നൽകുക',
+'createaccountmail' => 'തൽക്കാലം ഒരു ആകസ്മികരഹസ്യവാക്ക് ഉപയോഗിക്കുകയും അത് താഴെത്തന്നിരിക്കുന്ന ഇമെയിൽ വിലാസത്തിലേക്കയക്കുകയും ചെയ്യുക',
 'createacct-realname' => 'ശരിയായ പേര് (നിർബന്ധമില്ല)',
 'createaccountreason' => 'കാരണം:',
 'createacct-reason' => 'കാരണം',
@@ -810,6 +821,7 @@ $2',
 'createacct-captcha' => 'സുരക്ഷാ പരിശോധന',
 'createacct-imgcaptcha-ph' => 'മുകളിൽ കാണുന്ന എഴുത്ത് ഇവിടെ നൽകുക',
 'createacct-submit' => 'താങ്കളുടെ അംഗത്വം സൃഷ്ടിക്കുക',
+'createacct-another-submit' => 'മറ്റൊരു അംഗത്വമെടുക്കുക',
 'createacct-benefit-heading' => 'താങ്കളെപ്പോലെയുള്ളവരാണ്  {{SITENAME}}  പടുത്തുയർത്തിയിരിക്കുന്നത്.',
 'createacct-benefit-body1' => '{{PLURAL:$1|തിരുത്ത്|തിരുത്തുകൾ}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|താൾ|താളുകൾ}}',
@@ -834,8 +846,8 @@ $2',
 'nosuchusershort' => '"$1" എന്ന പേരിൽ ഒരു ഉപയോക്താവ് ഇല്ല. അക്ഷരങ്ങൾ ഒന്നു കൂടി പരിശോധിക്കുക.',
 'nouserspecified' => 'ഉപയോക്തൃനാമം നിർബന്ധമായും ചേർക്കണം.',
 'login-userblocked' => 'ഈ ഉപയോക്താവ് തടയപ്പെട്ടിരിക്കുന്നു. പ്രവേശനം അനുവദിക്കുന്നില്ല.',
-'wrongpassword' => 'താà´\99àµ\8dà´\95ൾ à´¨àµ½à´\95à´¿à´¯ à´°à´¹à´¸àµ\8dയവാà´\95àµ\8dà´\95àµ\8d à´¤àµ\86à´±àµ\8dറാണàµ\8d, à´µàµ\80à´£àµ\8dà´\9fàµ\81à´\82 à´¶àµ\8dരമിà´\95àµ\8dà´\95àµ\81à´\95.',
-'wrongpasswordempty' => 'താà´\99àµ\8dà´\95ൾ à´°à´¹à´¸àµ\8dയവാà´\95àµ\8dà´\95àµ\8d à´¨àµ½à´\95ിയിരàµ\81à´¨àµ\8dനിലàµ\8dà´². à´µàµ\80à´£àµ\8dà´\9fàµ\81à´\82 à´¶àµ\8dരമിà´\95àµ\8dà´\95àµ\81à´\95.',
+'wrongpassword' => 'രഹസ്യവാക്ക് തെറ്റാണ്, വീണ്ടും ശ്രമിക്കുക.',
+'wrongpasswordempty' => 'രഹസ്യവാക്ക് നൽകിയിരുന്നില്ല. വീണ്ടും ശ്രമിക്കുക.',
 'passwordtooshort' => 'രഹസ്യവാക്കിൽ കുറഞ്ഞതു {{PLURAL:$1|ഒരു അക്ഷരം|$1 അക്ഷരങ്ങൾ}} ഉണ്ടായിരിക്കണം.',
 'password-name-match' => 'താങ്കളുടെ രഹസ്യവാക്ക് ഉപയോക്തൃനാമത്തിൽ നിന്നും വ്യത്യസ്തമായിരിക്കണം.',
 'password-login-forbidden' => 'ഈ ഉപയോക്തൃനാമത്തിന്റെയും രഹസ്യവാക്കിന്റെയും ഉപയോഗം നിരോധിച്ചിരിക്കുന്നു.',
@@ -862,7 +874,7 @@ $2',
 'cannotchangeemail' => 'അംഗത്വത്തിന്റെ ഇമെയിൽ വിലാസങ്ങൾ ഈ വിക്കിയിൽ മാറ്റാനാവില്ല.',
 'emaildisabled' => 'ഈ സൈറ്റിൽ നിന്ന് ഇമെയിലുകൾ അയയ്ക്കാനാവില്ല.',
 'accountcreated' => 'അംഗത്വം സൃഷ്ടിച്ചിരിക്കുന്നു',
-'accountcreatedtext' => '$1 എന്ന ഉപയോക്താവിനായി അംഗത്വം സൃഷ്ടിക്കപ്പെട്ടിരിക്കുന്നു.',
+'accountcreatedtext' => '[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) എന്ന ഉപയോക്താവിനായി അംഗത്വം സൃഷ്ടിക്കപ്പെട്ടിരിക്കുന്നു.',
 'createaccount-title' => '{{SITENAME}} സംരംഭത്തിൽ അംഗത്വം സൃഷ്ടിക്കൽ',
 'createaccount-text' => '{{SITENAME}} സംരംഭത്തിൽ ($4) താങ്കളുടെ ഇമെയിൽ വിലാസത്തിൽ ആരോ ഒരു അംഗത്വം "$2" എന്ന ഉപയോക്തൃനാമത്തിൽ ഉണ്ടാക്കിയിരിക്കുന്നു (രഹസ്യവാക്ക്: "$3").  താങ്കൾ ഇപ്പോൾ ലോഗിൻ ചെയ്തു രഹസ്യവാക്ക് മാറ്റേണ്ടതാകുന്നു.
 
@@ -900,11 +912,11 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'രഹസ്യവാക്ക് പുനഃക്രമീകരിക്കുക',
-'passwordreset-text' => 'രഹസ്യവാക്ക് പുനർസജ്ജീകരിക്കാനായി ഈ ഫോം പൂരിപ്പിക്കുക.',
+'passwordreset-text-one' => 'രഹസ്യവാക്ക് പുനർസജ്ജീകരിക്കാനായി ഈ ഫോം പൂരിപ്പിക്കുക.',
+'passwordreset-text-many' => '{{PLURAL:$1|താങ്കളുടെ രഹസ്യവാക്ക് പുനസജ്ജീകരിക്കാൻ ഒരു ഫോം പൂരിപ്പിച്ചു നൽകുക.}}',
 'passwordreset-legend' => 'രഹസ്യവാക്ക് പുനഃക്രമീകരിക്കുക',
 'passwordreset-disabled' => 'ഈ വിക്കിയിൽ രഹസ്യവാക്ക് പുനഃക്രമീകരിക്കലുകൾ പ്രവർത്തരഹിതമാക്കിയിരിക്കുകയാണ്.',
 'passwordreset-emaildisabled' => 'ഈ വിക്കിയിൽ ഇമെയിൽ സൗകര്യങ്ങൾ പ്രവർത്തനരഹിതമാക്കിയിരിക്കുന്നു.',
-'passwordreset-pretext' => '{{PLURAL:$1||താഴെ ഒരു വിവരശകലം നൽകുക}}',
 'passwordreset-username' => 'ഉപയോക്തൃനാമം:',
 'passwordreset-domain' => 'ഡൊമൈൻ:',
 'passwordreset-capture' => 'ഫലമായുണ്ടാകുന്ന ഇമെയിൽ കാണണോ?',
@@ -1126,14 +1138,15 @@ $1 ആണ് ഈ തടയൽ നടത്തിയത്. ''$2'' എന്ന
 ഇത് മായ്ക്കപ്പെട്ടതായി കാണുന്നു.',
 'edit-conflict' => 'തിരുത്തൽ സമരസപ്പെടായ്ക.',
 'edit-no-change' => 'ഇപ്പോഴുള്ള സ്ഥിതിയിൽ നിന്നു യാതൊരു മാറ്റവും ഇല്ലാത്തതിനാൽ താങ്കളുടെ തിരുത്തലുകൾ തിരസ്കരിക്കപ്പെട്ടിരിക്കുന്നു.',
+'postedit-confirmation' => 'താങ്കളുടെ തിരുത്ത് സേവ് ചെയ്തിരിക്കുന്നു.',
 'edit-already-exists' => 'പുതിയ താൾ സൃഷ്ടിക്കാൻ കഴിഞ്ഞില്ല.
 താൾ ഇപ്പോൾ തന്നെ നിലവിലുണ്ട്.',
 'defaultmessagetext' => 'സ്വതേയുള്ള സന്ദേശ എഴുത്ത്',
 'content-failed-to-parse' => '$2 ഉള്ളടക്കം $1 മാതൃകയിൽ പാഴ്സ് ചെയ്യൽ പരാജയപ്പെട്ടു: $3',
 'invalid-content-data' => 'അസാധുവായ ഉള്ളടക്ക ഡേറ്റ',
 'content-not-allowed-here' => '"$1" ഉള്ളടക്കം [[$2]] താളിൽ അനുവദിക്കുന്നില്ല',
-'editwarning-warning' => 'ഈ താളിൽ നിന്നു പോകുന്നത് താങ്കൾ വരുത്തിയ മാറ്റങ്ങൾ നഷ്ടപ്പെടാൻ ഇടയാക്കുന്നതാണ്.
-താങ്കൾ ലോഗിൻ ചെയ്തിട്ടുണ്ടെങ്കിൽ, താങ്കളുടെ ക്രമീകരണങ്ങളിൽ "{{int:prefs-editing}}" ഭാഗത്ത് ചെന്ന് ഈ അറിയിപ്പ് ഒഴിവാക്കാവുന്നതാണ്.',
+'editwarning-warning' => 'ഈ താളിൽ നിന്നും പോകുന്നത് താങ്കൾ വരുത്തിയ മാറ്റങ്ങൾ നഷ്ടപ്പെടാൻ ഇടയാക്കും.
+താങ്കൾ ലോഗിൻ ചെയ്തിട്ടുണ്ടെങ്കിൽ, താങ്കളുടെ ക്രമീകരണങ്ങളിൽ "തിരുത്തൽ" എന്ന ഭാഗത്ത് ചെന്ന് ഈ അറിയിപ്പ് പ്രദർശിപ്പിക്കുന്നത് ഒഴിവാക്കാവുന്നതാണ്.',
 
 # Content models
 'content-model-wikitext' => 'വിക്കിഎഴുത്ത്',
@@ -1166,6 +1179,7 @@ $1 ആണ് ഈ തടയൽ നടത്തിയത്. ''$2'' എന്ന
 'undo-failure' => 'ഇടയ്ക്കുള്ള തിരുത്തലുകൾ തമ്മിൽ സമരസപ്പെടാത്തതു കാരണം ഈ തിരുത്തൽ തിരസ്ക്കരിക്കുവാനാവില്ല.',
 'undo-norev' => 'ഈ തിരുത്തൽ നിലവിലില്ലാത്തതിനാലോ മായ്ക്കപ്പെട്ടതിനാലോ പൂർവസ്ഥിതിയിലാക്കുവാൻ സാധിക്കുകയില്ല.',
 'undo-summary' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|സംവാദം]]) ചെയ്ത നാൾപ്പതിപ്പ് $1 നീക്കം ചെയ്യുന്നു',
+'undo-summary-username-hidden' => 'മറയ്ക്കപ്പെട്ട ഉപയോക്താവ് ചെയ്ത നാൾപ്പതിപ്പ് $1 തിരസ്കരിക്കുക',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'അംഗത്വം സൃഷ്ടിക്കാൻ സാധിച്ചില്ല',
@@ -1193,8 +1207,8 @@ $3 അതിനു കാണിച്ചിരിക്കുന്ന കാര
 സൂചന: (ഇപ്പോൾ) = നിലവിലുള്ള പതിപ്പുമായുള്ള വ്യത്യാസം, (മുമ്പ്) = തൊട്ടുമുൻപത്തെ പതിപ്പുമായുള്ള വ്യത്യാസം, (ചെ.) = ചെറിയ തിരുത്തൽ.",
 'history-fieldset-title' => 'നാൾവഴി പരിശോധന',
 'history-show-deleted' => 'മായ്ക്കപ്പെട്ടവ മാത്രം',
-'histfirst' => 'പഴയവ',
-'histlast' => 'പുതിയവ',
+'histfirst' => 'à´\8fà´±àµ\8dറവàµ\81à´\82 à´ªà´´à´¯à´µ',
+'histlast' => 'à´\8fà´±àµ\8dറവàµ\81à´\82 à´ªàµ\81തിയവ',
 'historysize' => '({{PLURAL:$1|1 ബൈറ്റ്|$1 ബൈറ്റുകൾ}})',
 'historyempty' => '(ശൂന്യം)',
 
@@ -1348,6 +1362,7 @@ $1",
 'compareselectedversions' => 'തിരഞ്ഞെടുത്ത പതിപ്പുകൾ തമ്മിലുള്ള വ്യത്യാസം കാണുക',
 'showhideselectedversions' => 'തിരഞ്ഞെടുത്ത മാറ്റങ്ങൾ പ്രദർശിപ്പിക്കുക/മറയ്ക്കുക',
 'editundo' => 'മാറ്റം തിരസ്ക്കരിക്കുക',
+'diff-empty' => '(വ്യത്യാസം ഇല്ല)',
 'diff-multi' => '(ഇടയ്ക്ക് {{PLURAL:$2|ഒരു ഉപയോക്താവ്|$2 ഉപയോക്താക്കൾ}} ചെയ്ത {{PLURAL:$1|ഒരു പതിപ്പ്|$1 പതിപ്പുകൾ}} പ്രദർശിപ്പിക്കുന്നില്ല.)',
 'diff-multi-manyusers' => '(ഇടയ്ക്ക് {{PLURAL:$2|ഒന്നിലധികം|$2 എണ്ണത്തിലധികം}} ഉപയോക്താക്കൾ ചെയ്തിട്ടുള്ള {{PLURAL:$1|ഒരു പതിപ്പ്|$1 പതിപ്പുകൾ}} പ്രദർശിപ്പിക്കുന്നില്ല.)',
 'difference-missing-revision' => 'ഈ വ്യത്യാസത്തിൽ ($1) {{PLURAL:$2|ഒരു നാൾപ്പതിപ്പ്|$2 നാൾപ്പതിപ്പുകൾ}} കാണാനായില്ല.
@@ -1375,7 +1390,6 @@ $1",
 'searchmenu-legend' => 'തിരച്ചിൽ ഉപാധികൾ',
 'searchmenu-exists' => "'''\"[[:\$1]]\" എന്ന തലക്കെട്ടിൽ ഒരു താൾ ഈ വിക്കിയിൽ നിലവിലുണ്ട്'''",
 'searchmenu-new' => "'''ഈ വിക്കിയിൽ \"[[:\$1]]\" താൾ നിർമ്മിക്കുക!'''",
-'searchhelp-url' => 'Help:ഉള്ളടക്കം',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|ഈ പൂർവ്വപദങ്ങളുള്ള താളുകൾ ബ്രൗസ് ചെയ്യുക]]',
 'searchprofile-articles' => 'ലേഖനങ്ങളിൽ',
 'searchprofile-project' => 'സഹായം, പദ്ധതി താളുകളിൽ',
@@ -1432,7 +1446,7 @@ $1",
 'prefs-datetime' => 'ദിവസവും സമയവും',
 'prefs-labs' => 'പരീക്ഷണശാലയിൽ തയ്യാറാകുന്ന സൗകര്യങ്ങൾ',
 'prefs-user-pages' => 'ഉപയോക്തൃതാളുകൾ',
-'prefs-personal' => 'à´\85à´¹à´\82',
+'prefs-personal' => 'à´\8eà´¨àµ\8dà´¨àµ\86à´ªàµ\8dപറàµ\8dറി',
 'prefs-rc' => 'സമീപകാല മാറ്റങ്ങൾ',
 'prefs-watchlist' => 'ശ്രദ്ധിക്കുന്നവ',
 'prefs-watchlist-days' => 'ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിൽ പ്രദർശിപ്പിക്കേണ്ട പരമാവധി ദിവസങ്ങൾ:',
@@ -1450,7 +1464,6 @@ $1",
 'resetprefs' => 'സേവ് ചെയ്തിട്ടില്ലാത്ത മാറ്റങ്ങൾ പുനഃക്രമീകരിക്കുക',
 'restoreprefs' => 'സ്വതേയുള്ള ക്രമീകരണങ്ങൾ പുനഃസ്ഥാപിക്കുക',
 'prefs-editing' => 'തിരുത്തൽ',
-'prefs-edit-boxsize' => 'തിരുത്തൽ ജാലകത്തിന്റെ വലിപ്പം',
 'rows' => 'വരി:',
 'columns' => 'നിര:',
 'searchresultshead' => 'തിരയൂ',
@@ -1461,9 +1474,6 @@ $1",
 'recentchangesdays-max' => 'പരമാവധി {{PLURAL:$1|ഒരു ദിവസം|$1 ദിവസങ്ങൾ}}',
 'recentchangescount' => 'സ്വതേ പ്രദർശിപ്പിക്കേണ്ട തിരുത്തലുകളുടെ എണ്ണം:',
 'prefs-help-recentchangescount' => 'പുതിയ മാറ്റങ്ങൾ, താളിന്റെ നാൾവഴികൾ, രേഖകൾ എന്നിവക്കും ഇത് ബാധകമാണ്.',
-'prefs-help-watchlist-token' => 'ഈ പെട്ടിയിൽ ഒരു രഹസ്യവാക്ക് ഉപയോഗിച്ചാൽ താങ്കൾ ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയ്ക്കുള്ള ആർ.എസ്.എസ്. ഫീഡ് ഉണ്ടാക്കുന്നതാണ്.
-ഈ രഹസ്യവാക്ക് അറിയാവുന്ന ആർക്കും താങ്കൾ ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടിക വായിക്കാവുന്നതാണ്. അതുകൊണ്ട് സുരക്ഷിതമായ ഒന്നു തിരഞ്ഞെടുക്കുക.
-ഇവിടെ താങ്കൾക്കുപയോഗിക്കാവുന്ന ക്രമരഹിതമായി സൃഷ്ടിച്ച ഒരെണ്ണം കൊടുത്തിരിക്കുന്നു: $1',
 'savedprefs' => 'താങ്കളുടെ ക്രമീകരണങ്ങൾ കാത്തുസൂക്ഷിച്ചിരിക്കുന്നു.',
 'timezonelegend' => 'സമയ മേഖല:',
 'localtime' => 'പ്രാദേശിക സമയം:',
@@ -1494,7 +1504,6 @@ $1",
 'prefs-reset-intro' => 'സൈറ്റിൽ സ്വതേയുണ്ടാവേണ്ട ക്രമീകരണങ്ങൾ പുനഃക്രമീകരിക്കാൻ താങ്കൾക്ക് ഈ താൾ ഉപയോഗിക്കാവുന്നതാണ്.
 ഇത് തിരിച്ചു ചെയ്യാൻ സാദ്ധ്യമല്ല.',
 'prefs-emailconfirm-label' => 'ഇമെയിൽ സ്ഥിരീകരണം:',
-'prefs-textboxsize' => 'തിരുത്താനുള്ള ജാലകത്തിന്റെ വലിപ്പം',
 'youremail' => 'ഇമെയിൽ:',
 'username' => '{{GENDER:$1|ഉപയോക്തൃനാമം}}:',
 'uid' => '{{GENDER:$1|ഉപയോക്തൃ}} ഐ.ഡി.:',
@@ -1525,7 +1534,9 @@ $1",
 'prefs-signature' => 'ഒപ്പ്',
 'prefs-dateformat' => 'ദിന ലേഖന രീതി',
 'prefs-timeoffset' => 'സമയ വ്യത്യാസം',
-'prefs-advancedediting' => 'വിപുലമായ ഉപാധികൾ',
+'prefs-advancedediting' => 'സാർവത്രികം',
+'prefs-editor' => 'എഡിറ്റർ',
+'prefs-preview' => 'എങ്ങനെയുണ്ടെന്ന് കാണൽ',
 'prefs-advancedrc' => 'വിപുലമായ ഉപാധികൾ',
 'prefs-advancedrendering' => 'വിപുലമായ ഉപാധികൾ',
 'prefs-advancedsearchoptions' => 'വിപുലമായ ഉപാധികൾ',
@@ -1560,6 +1571,8 @@ $1",
 'userrights-notallowed' => 'ഉപയോക്താക്കൾക്ക് അവകാശങ്ങൾ കൊടുക്കാനും എടുത്തുകളയാനുമുള്ള അനുമതി താങ്കളുടെ അംഗത്വത്തിനില്ല.',
 'userrights-changeable-col' => 'താങ്കൾക്ക് മാറ്റാവുന്ന സംഘങ്ങൾ',
 'userrights-unchangeable-col' => 'താങ്കൾക്ക് മാറ്റാനാവാത്ത സംഘങ്ങൾ',
+'userrights-conflict' => 'ഉപയോക്തൃ അവകാശങ്ങൾ സമരസപ്പെടായ്കയുണ്ടായി! ദയവായി താങ്കളുടെ മാറ്റങ്ങൾ വീണ്ടും നടപ്പിലാക്കുക.',
+'userrights-removed-self' => 'താങ്കൾ സ്വന്തം അവകാശങ്ങൾ സ്വയം ഒഴിവാക്കിയിരിക്കുന്നു. അതിനാൽ ഈ താൾ ഇനി താങ്കൾക്ക് ലഭ്യമായിരിക്കില്ല.',
 
 # Groups
 'group' => 'സംഘം:',
@@ -1604,7 +1617,7 @@ $1",
 'right-reupload-shared' => 'പങ്ക് വെയ്ക്കപ്പെട്ട മീഡിയ സംഭരണിയെ പ്രാദേശികമായി അതിലംഘിക്കുക',
 'right-upload_by_url' => 'യു.ആർ.എല്ലിൽ നിന്നും പ്രമാണങ്ങൾ അപ്‌ലോഡ് ചെയ്യുക',
 'right-purge' => 'സ്ഥിരീകരണം ഒന്നും ഇല്ലാതെ സൈറ്റിന്റെ കാഷെ ഒരു താളിനായി പർജ് ചെയ്യുക',
-'right-autoconfirmed' => 'à´\85ർദàµ\8dധസà´\82à´°à´\95àµ\8dà´·à´¿à´¤ à´¤à´¾à´³àµ\81à´\95ൾ à´¤à´¿à´°àµ\81à´¤àµ\8dà´¤àµ\81à´\95',
+'right-autoconfirmed' => 'à´\90.പി. à´\85ധിഷàµ\8dà´ à´¿à´¤ à´ªà´°à´¿à´§à´¿à´\95ൾ à´¬à´¾à´§à´\95മലàµ\8dà´²',
 'right-bot' => 'യാന്ത്രിക പ്രവൃത്തിയായി കണക്കാക്കപ്പെടുന്നു',
 'right-nominornewtalk' => 'സംവാദം താളുകളിലെ ചെറുതിരുത്തലുകൾ പുതിയ സന്ദേശങ്ങളുണ്ടെന്ന അറിയിപ്പിനു കാരണമാകരുത്',
 'right-apihighlimits' => 'എ.പി.ഐ. ക്വറികളിൽ ഉയർന്ന പരിധി ഉപയോഗിക്കുക',
@@ -1625,12 +1638,20 @@ $1",
 'right-ipblock-exempt' => 'ഐ.പി. തടയലുകൾ, സ്വതേയുള്ള തടയലുകൾ, റേഞ്ച് തടയലുകൾ ഒക്കെ ബാധകമല്ലാതിരിക്കുക',
 'right-proxyunbannable' => 'പ്രോക്സികളെ സ്വതേ തടയുന്നത് ബാധകമല്ലാതിരിക്കുക',
 'right-unblockself' => 'തടയപ്പെട്ടവർ സ്വയം തടയൽ നീക്കുക',
-'right-protect' => 'സംരക്ഷണ മാനത്തിൽ മാറ്റം വരുത്തുക, സംരക്ഷിത താളുകൾ തിരുത്തുക',
-'right-editprotected' => 'സംരക്ഷിത താളുകൾ തിരുത്തുക (നിർഝരിത സംരക്ഷണം അല്ലാത്തത്)',
+'right-protect' => 'സംരക്ഷണ മാനത്തിൽ മാറ്റം വരുത്തുക, നിർഝരിത മാർഗ്ഗത്തിൽ സംരക്ഷിക്കപ്പെട്ടിരിക്കുന്ന താളുകൾ തിരുത്തുക',
+'right-editprotected' => '"{{int:protect-level-sysop}}" എന്ന് അടയാളപ്പെടുത്തി സംരക്ഷിച്ചിട്ടുള്ള താളുകൾ തിരുത്തുക',
+'right-editsemiprotected' => '"{{int:protect-level-autoconfirmed}}" എന്നടയാളപ്പെടുത്തി സംരക്ഷിച്ചിട്ടുള്ള താളുകൾ തിരുത്തുക',
 'right-editinterface' => 'ഉപയോക്തൃ സമ്പർക്കമുഖത്തിൽ മാറ്റം വരുത്തുക',
 'right-editusercssjs' => 'മറ്റ് ഉപയോക്താക്കളുടെ CSS, JS പ്രമാണങ്ങൾ തിരുത്തുക',
 'right-editusercss' => 'മറ്റ് ഉപയോക്താക്കളുടെ CSS പ്രമാണങ്ങൾ തിരുത്തുക',
 'right-edituserjs' => 'മറ്റ് ഉപയോക്താക്കളുടെ JS പ്രമാണങ്ങൾ തിരുത്തുക',
+'right-editmyusercss' => 'താങ്കളുടെ സ്വന്തം ഉപയോക്തൃ സി.എസ്.എസ്. പ്രമാണങ്ങൾ തിരുത്തുക',
+'right-editmyuserjs' => 'താങ്കളുടെ സ്വന്തം ഉപയോക്തൃ ജാവാസ്ക്രിപ്റ്റ് പ്രമാണങ്ങൾ തിരുത്തുക',
+'right-viewmywatchlist' => 'താങ്കളുടെ ശ്രദ്ധിക്കുന്നവയുടെ പട്ടിക സ്വയം കാണുക',
+'right-editmywatchlist' => 'താങ്കൾ ശ്രദ്ധിക്കുന്നവയുടെ പട്ടിക സ്വയം തിരുത്തുക. ഈ അവകാശമില്ലാതെതന്നെ ചില പ്രവൃത്തികൾ താളുകൾ കൂട്ടിച്ചേർക്കുമെന്ന് അറിഞ്ഞിരിക്കുക.',
+'right-viewmyprivateinfo' => 'താങ്കളുടെ സ്വകാര്യവിവരങ്ങൾ കാണുക (ഉദാ: ഇമെയിൽ വിലാസം, യഥാർത്ഥനാമം)',
+'right-editmyprivateinfo' => 'താങ്കളുടെ സ്വകാര്യവിവരങ്ങൾ തിരുത്തുക (ഉദാ: ഇമെയിൽ വിലാസം, യഥാർത്ഥനാമം)',
+'right-editmyoptions' => 'താങ്കളുടെ സ്വന്തം ക്രമീകരണങ്ങൾ തിരുത്തുക',
 'right-rollback' => 'ഒരു പ്രത്യേക താളിൽ അവസാനം തിരുത്തൽ നടത്തിയ ഉപയോക്താവിന്റെ തിരുത്തൽ പെട്ടെന്ന് ഒഴിവാക്കുക',
 'right-markbotedits' => 'മുൻപ്രാപനം നടത്തിയ തിരുത്തലുകൾ യാന്ത്രിക തിരുത്തലുകളായി അടയാളപ്പെടുത്തുക',
 'right-noratelimit' => 'പ്രവർത്തനങ്ങൾക്ക് പരിധികൾ ബാധകമല്ല',
@@ -1692,12 +1713,17 @@ $1",
 'action-userrights-interwiki' => 'മറ്റു വിക്കികളിൽ നിന്നുള്ള ഉപയോക്താക്കളുടെ ഉപയോക്തൃ അവകാശങ്ങൾ തിരുത്തുക',
 'action-siteadmin' => 'ഡേറ്റാബേസ് തുറക്കുക അല്ലെങ്കിൽ പൂട്ടുക',
 'action-sendemail' => 'ഇമെയിലുകൾ അയയ്ക്കുക',
+'action-editmywatchlist' => 'താങ്കൾ ശ്രദ്ധിക്കുന്നവയുടെ പട്ടിക തിരുത്തുക',
+'action-viewmywatchlist' => 'താങ്കൾ ശ്രദ്ധിക്കുന്നവയുടെ പട്ടിക കാണുക',
+'action-viewmyprivateinfo' => 'താങ്കളുടെ സ്വകാര്യവിവരങ്ങൾ കാണുക',
+'action-editmyprivateinfo' => 'താങ്കളുടെ സ്വകാര്യവിവരങ്ങൾ തിരുത്തുക',
 
 # Recent changes
 'nchanges' => '{{PLURAL:$1|ഒരു മാറ്റം|$1 മാറ്റങ്ങൾ}}',
 'recentchanges' => 'സമീപകാല മാറ്റങ്ങൾ',
 'recentchanges-legend' => 'സമീപകാല മാറ്റങ്ങളുടെ ക്രമീകരണം',
 'recentchanges-summary' => '{{SITENAME}} സംരംഭത്തിലെ ഏറ്റവും പുതിയ മാറ്റങ്ങൾ ഇവിടെ കാണാം.',
+'recentchanges-noresult' => 'തന്നിരിക്കുന്ന സമയത്തിനുള്ളിൽ ഇതുമായി പൊരുത്തപ്പെടുന്ന മാറ്റങ്ങൾ ഒന്നുമില്ല.',
 'recentchanges-feed-description' => 'ഈ ഫീഡ് ഉപയോഗിച്ച് വിക്കിയിലെ പുതിയ മാറ്റങ്ങൾ നിരീക്ഷിക്കുക.',
 'recentchanges-label-newpage' => 'ഒരു പുതിയ താൾ സൃഷ്ടിച്ചിരിക്കുന്നു',
 'recentchanges-label-minor' => 'ഇതൊരു ചെറിയ തിരുത്താണ്',
@@ -1734,7 +1760,6 @@ $1",
 'recentchangeslinked-feed' => 'അനുബന്ധ മാറ്റങ്ങൾ',
 'recentchangeslinked-toolbox' => 'അനുബന്ധ മാറ്റങ്ങൾ',
 'recentchangeslinked-title' => '$1 എന്ന താളുമായി ബന്ധപ്പെട്ട മാറ്റങ്ങൾ',
-'recentchangeslinked-noresult' => 'ഈ താളിലേയ്ക്ക് കണ്ണികളുള്ള മറ്റ് താളുകൾക്ക് ഇവിടെ സൂചിപ്പിക്കപ്പെട്ട സമയത്ത് മാറ്റങ്ങളൊന്നും സം‌ഭവിച്ചിട്ടില്ല.',
 'recentchangeslinked-summary' => "ഒരു പ്രത്യേക താളിൽ നിന്നു കണ്ണി ചേർക്കപ്പെട്ടിട്ടുള്ള താളുകളിൽ അവസാനമായി വരുത്തിയ മാറ്റങ്ങളുടെ പട്ടിക താഴെ പ്രദർശിപ്പിച്ചിരിക്കുന്നു. ഈ പട്ടികയിൽ പെടുന്ന [[Special:Watchlist|താങ്കൾ ശ്രദ്ധിക്കുന്ന താളുകൾ]] '''കടുപ്പിച്ച്''' കാണിച്ചിരിക്കുന്നു.",
 'recentchangeslinked-page' => 'താളിന്റെ പേര്:',
 'recentchangeslinked-to' => 'തന്നിരിക്കുന്ന താളിലെ മാറ്റങ്ങൾക്കു പകരം ബന്ധപ്പെട്ട താളുകളിലെ മാറ്റങ്ങൾ കാണിക്കുക',
@@ -1745,7 +1770,7 @@ $1",
 'reuploaddesc' => 'വീണ്ടും അപ്‌ലോഡ് ചെയ്ത് നോക്കാനായി തിരിച്ചു പോവുക.',
 'upload-tryagain' => 'പുതുക്കിയ പ്രമാണ വിവരണങ്ങൾ സമർപ്പിക്കുക',
 'uploadnologin' => 'ലോഗിൻ ചെയ്തിട്ടില്ല',
-'uploadnologintext' => 'à´ªàµ\8dരമാണà´\99àµ\8dà´\99ൾ à´\85à´ªàµ\8dâ\80\8cà´²àµ\8bà´¡àµ\8d à´\9aàµ\86à´¯àµ\8dയാൻ à´¤à´¾à´\99àµ\8dà´\95ൾ [[Special:UserLogin|à´²àµ\8bà´\97ിൻ]] à´\9aàµ\86à´¯àµ\8dതിരിà´\95àµ\8dà´\95à´£à´\82',
+'uploadnologintext' => 'à´ªàµ\8dരമാണà´\99àµ\8dà´\99ൾ à´\85à´ªàµ\8dâ\80\8cà´²àµ\8bà´¡àµ\8d à´\9aàµ\86à´¯àµ\8dà´¯àµ\81à´¨àµ\8dനതിനàµ\81 à´®àµ\81à´®àµ\8dà´ªàµ\8d, à´¤à´¾à´\99àµ\8dà´\95ൾ $1.',
 'upload_directory_missing' => 'അപ്‌‌ലോഡ് ഡയറക്ടറി ($1) ലഭ്യമല്ല, അത് സൃഷ്ടിക്കാൻ വെബ്‌‌സെർവറിനു സാധിക്കില്ല.',
 'upload_directory_read_only' => 'വെബ് സെർവറിനു അപ്‌ലോഡ് ഡയറക്ടറിയിലേക്ക് ($1) എഴുതാൻ കഴിഞ്ഞില്ല.',
 'uploaderror' => 'അപ്‌ലോഡ് പിഴവ്',
@@ -1997,7 +2022,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization കാണുക.',
 'filehist-help' => 'ഏതെങ്കിലും തീയതി/സമയ കണ്ണിയിൽ ഞെക്കിയാൽ പ്രസ്തുതസമയത്ത് ഈ പ്രമാണം എങ്ങനെയായിരുന്നു എന്നു കാണാം.',
 'filehist-deleteall' => 'എല്ലാം മായ്ക്കുക',
 'filehist-deleteone' => 'ഇതു മായ്ക്കുക',
-'filehist-revert' => 'à´ªàµ\82ർവàµ\8dവസàµ\8dഥിതിയിലാക്കുക',
+'filehist-revert' => 'à´ªàµ\81à´¨à´\83à´¸àµ\8dഥാപിക്കുക',
 'filehist-current' => 'നിലവിലുള്ളത്',
 'filehist-datetime' => 'തീയതി/സമയം',
 'filehist-thumb' => 'ലഘുചിത്രം',
@@ -2038,10 +2063,10 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization കാണുക.',
 # File reversion
 'filerevert' => '$1 തിരസ്ക്കരിക്കുക',
 'filerevert-legend' => 'പ്രമാണം തിരസ്ക്കരിക്കുക',
-'filerevert-intro' => "താà´\99àµ\8dà´\95ൾ '''[[Media:$1|$1]]''' à´¯àµ\86, [$3, $2 à´\89à´£àµ\8dà´\9fായിരàµ\81à´¨àµ\8dà´¨ $4 à´ªà´¤à´¿à´ªàµ\8dപിലàµ\87à´\95àµ\8dà´\95àµ\81 à´¸àµ\87à´µàµ\8d à´\9aàµ\86à´¯àµ\8dà´¯àµ\81à´\95യാണàµ\8dâ\80\8c].",
+'filerevert-intro' => "താà´\99àµ\8dà´\95ൾ '''[[Media:$1|$1]]''' à´\8eà´¨àµ\8dà´¨ à´ªàµ\8dരമാണതàµ\8dà´¤àµ\86, [$4 $2, $3-à´¨àµ\8d à´\89à´£àµ\8dà´\9fായിരàµ\81à´¨àµ\8dà´¨ à´ªà´¤à´¿à´ªàµ\8dപിലàµ\87à´\95àµ\8dà´\95àµ\8d] à´¸àµ\87à´µàµ\8d à´\9aàµ\86à´¯àµ\8dà´¯àµ\81à´\95യാണàµ\8dâ\80\8c.",
 'filerevert-comment' => 'കാരണം:',
 'filerevert-defaultcomment' => '$2 ൽ ഉണ്ടായിരുന്ന $1 പതിപ്പിലേക്കു സേവ് ചെയ്തിരിക്കുന്നു',
-'filerevert-submit' => 'à´ªàµ\82ർവàµ\8dവസàµ\8dഥിതിയിലാക്കുക',
+'filerevert-submit' => 'à´ªàµ\81à´¨à´\83à´¸àµ\8dഥാപിക്കുക',
 'filerevert-success' => "'''[[Media:$1|$1]]''' യെ,  [$3, $2 ഉണ്ടായിരുന്ന $4] പതിപ്പിലേക്കു സേവ് ചെയ്തിരിക്കുന്നു.",
 'filerevert-badversion' => 'താങ്കൾ തന്ന സമയവുമായി യോജിക്കുന്ന മുൻ പതിപ്പുകൾ ഒന്നും തന്നെ ഈ പ്രമാണത്തിനില്ല.',
 
@@ -2049,7 +2074,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization കാണുക.',
 'filedelete' => '$1 മായ്ക്കുക',
 'filedelete-legend' => 'പ്രമാണം മായ്ക്കുക',
 'filedelete-intro' => "താങ്കൾ '''[[Media:$1|$1]]''' എന്ന പ്രമാണം അതിന്റെ എല്ലാ ചരിത്രവുമടക്കം നീക്കം ചെയ്യാൻ പോവുകയാണ്‌.",
-'filedelete-intro-old' => "താങ്കൾ '''[[Media:$1|$1]]''' എന്നതിന്റെ [$3, $2-ന് ഉണ്ടായിരുന്ന $4] പതിപ്പാണു മായ്ക്കുവാൻ പോകുന്നത്.",
+'filedelete-intro-old' => "താങ്കൾ '''[[Media:$1|$1]]''' എന്നതിന്റെ [$4 $2, $3-ന് ഉണ്ടായിരുന്ന പതിപ്പാണ്] മായ്ക്കുവാൻ പോകുന്നത്.",
 'filedelete-comment' => 'കാരണം:',
 'filedelete-submit' => 'മായ്ക്കുക',
 'filedelete-success' => "'''$1''' മായ്ച്ചു കഴിഞ്ഞു.",
@@ -2368,7 +2393,6 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization കാണുക.',
 'unwatchthispage' => 'ശ്രദ്ധിക്കുന്നത് അവസാനിപ്പിക്കുക',
 'notanarticle' => 'ലേഖന താൾ അല്ല',
 'notvisiblerev' => 'മറ്റൊരു ഉപയോക്താവ് സൃഷ്ടിച്ച അവസാനത്തെ നാൾപ്പതിപ്പ് മായ്ച്ചിരിക്കുന്നു',
-'watchnochange' => 'താങ്കൾ ശ്രദ്ധിക്കുന്ന താളുകൾ ഒന്നും തന്നെ ഇക്കാലയളവിൽ തിരുത്തപ്പെട്ടിട്ടില്ല.',
 'watchlist-details' => 'സം‌വാദം താളുകൾ ഉൾപ്പെടുത്താതെ {{PLURAL:$1|ഒരു താൾ|$1 താളുകൾ}} താങ്കൾ ശ്രദ്ധിക്കുന്നവയുടെ പട്ടികയിലുണ്ട്.',
 'wlheader-enotif' => 'ഇമെയിൽ അറിയിപ്പുകൾ സജ്ജമാക്കിയിരിക്കുന്നു.',
 'wlheader-showupdated' => "താങ്കളുടെ അവസാന സന്ദർശനത്തിനു ശേഷം മാറ്റം വന്ന താളുകൾ  '''കടുപ്പിച്ച്''' കാണിച്ചിരിക്കുന്നു",
@@ -2475,7 +2499,7 @@ $UNWATCHURL
 താളിലെ അവസാന തിരുത്തൽ ചെയ്തിരിക്കുന്നത് [[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]] സൃഷ്ടിച്ചതാണ്',
-'revertpage-nouser' => '(ഉപയോക്തൃനാമം നീക്കിയിരിക്കുന്നു) നടത്തിയ തിരുത്തലുകൾ [[User:$1|$1]] സൃഷ്ടിച്ച അവസാന പതിപ്പിലേയ്ക്ക് മുൻപ്രാപനം ചെയ്തിരിക്കുന്നു',
+'revertpage-nouser' => 'മറയ്ക്കപ്പെട്ട ഉപയോക്താവ് നടത്തിയ തിരുത്തലുകൾ [[User:$1|$1]] സൃഷ്ടിച്ച അവസാന പതിപ്പിലേയ്ക്ക് മുൻപ്രാപനം ചെയ്തിരിക്കുന്നു',
 'rollback-success' => '$1 ചെയ്ത തിരുത്തൽ തിരസ്ക്കരിച്ചിരിക്കുന്നു; $2 ചെയ്ത തൊട്ടു മുൻപത്തെ പതിപ്പിലേക്ക് സേവ് ചെയ്യുന്നു.',
 
 # Edit tokens
@@ -2619,7 +2643,7 @@ $1',
 'mycontris' => 'സംഭാവനകൾ',
 'contribsub2' => '$1 എന്ന ഉപയോക്താവിന്റെ $2.',
 'nocontribs' => 'ഈ മാനദണ്ഡങ്ങളുമായി യോജിക്കുന്ന മാറ്റങ്ങൾ ഒന്നും കണ്ടില്ല.',
-'uctop' => '(à´\85വസാനതàµ\8dà´¤àµ\86 à´¤à´¿à´°àµ\81à´¤àµ\8dതൽ)',
+'uctop' => '(നിലവിലàµ\81à´³àµ\8dളതàµ\8d)',
 'month' => 'മാസം:',
 'year' => 'വർഷം:',
 
@@ -3885,7 +3909,6 @@ $5
 'version-other' => 'മറ്റുള്ളവ',
 'version-mediahandlers' => 'മീഡിയ കൈകാര്യോപകരണങ്ങൾ',
 'version-hooks' => 'കൊളുത്തുകൾ',
-'version-extension-functions' => 'അനുബന്ധങ്ങളുടെ കർത്തവ്യങ്ങൾ',
 'version-parser-extensiontags' => 'പാഴ്‌സർ അനുബന്ധ റ്റാഗുകൾ',
 'version-parser-function-hooks' => 'പാഴ്‌സർ ഫങ്ഷൻ കൊളുത്തുകൾ',
 'version-hook-name' => 'കൊളുത്തിന്റെ പേര്',
@@ -3969,6 +3992,7 @@ $5
 'tags' => 'സാധുവായ മാറ്റങ്ങളുടെ അനുബന്ധങ്ങൾ',
 'tag-filter' => '[[Special:Tags|അനുബന്ധങ്ങളുടെ]] അരിപ്പ:',
 'tag-filter-submit' => 'അരിപ്പ',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|റ്റാഗ്|റ്റാഗുകൾ}}]]: $2)',
 'tags-title' => 'അനുബന്ധങ്ങൾ',
 'tags-intro' => 'സോഫ്റ്റ്‌വെയർ അടയാളപ്പെടുത്തിയ തിരുത്തുകളുടെ അനുബന്ധങ്ങളും, അവയുടെ അർത്ഥവും ഈ താളിൽ പ്രദർശിപ്പിക്കുന്നു.',
 'tags-tag' => 'റ്റാഗിന്റെ പേര്‌',
index 1deb5ea..1c935b5 100644 (file)
@@ -281,7 +281,6 @@ $1',
 'disclaimers' => 'Татгалзлууд',
 'disclaimerpage' => 'Project:Ерөнхий татгалзал',
 'edithelp' => 'Засвар хийх тухай тусламж',
-'edithelppage' => 'Help:Засварлах',
 'helppage' => 'Help:Агуулга',
 'mainpage' => 'Нүүр хуудас',
 'mainpage-description' => 'Нүүр хуудас',
@@ -573,10 +572,8 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'Нууц үгийг сэргээх',
-'passwordreset-text' => 'Энэхүү маягтыг бөглөж хэрэглэгчийн мэдээллээ аваарай.',
 'passwordreset-legend' => 'Нууц үгээ сэргээх',
 'passwordreset-disabled' => 'Энэ вики-д нууц үгийг сэргээх боломжгүй байна.',
-'passwordreset-pretext' => '{{PLURAL:$1||Доорх өгөгдлийн аль нэг хэсгийг оруулна уу}}',
 'passwordreset-username' => 'Хэрэглэгчийн нэр:',
 'passwordreset-domain' => 'Домайн:',
 'passwordreset-capture' => 'Цахим шуудангийн нууц үг сэргээх шууданг үзэх',
@@ -1050,7 +1047,6 @@ $1",
 'searchmenu-legend' => 'Хайх сонголтууд',
 'searchmenu-exists' => "'''Энэ викид \"[[:\$1]]\" гэсэн хуудас байна'''",
 'searchmenu-new' => "'''Энэ викид \"[[:\$1]]\" гэсэн хуудсыг үүсгэх!'''",
-'searchhelp-url' => 'Help:Агуулга',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Энэ угтвартай хуудсуудыг гүйлгэж харах]]',
 'searchprofile-articles' => 'Агуулгын хуудсууд',
 'searchprofile-project' => 'Тусламжийн болон төслийн хуудсууд',
@@ -1127,7 +1123,6 @@ $1",
 'resetprefs' => 'Хадгалаагүй өөрчлөлтүүдийг арилгах',
 'restoreprefs' => 'Бүх тохиргоог анхны байдалд оруулах',
 'prefs-editing' => 'Засварлах',
-'prefs-edit-boxsize' => 'Засварлах цонхны хэмжээ.',
 'rows' => 'Мөр:',
 'columns' => 'Багана:',
 'searchresultshead' => 'Хайлт',
@@ -1138,9 +1133,6 @@ $1",
 'recentchangesdays-max' => 'Хамгийн ихдээ $1 өдөр',
 'recentchangescount' => 'Үзүүлэх засварын тоо (анхны байдалд):',
 'prefs-help-recentchangescount' => 'Энд сүүлийн өөрчлөлтүүд, хуудасны түүхүүд, логууд орно.',
-'prefs-help-watchlist-token' => 'Энэхүү талбарыг нууц түлхүүртэйгээр бөглөвөл таны хянаж буй хуудсуудын жагсаалтаар RSS фийд үүсгэгдэнэ.
-Тус түлхүүрийг мэдсэн хүн бүр таны хянаж буй хуудсуудын жагсаалтыг харах боломжтой тул чанартай утга сонгоорой.
-Таны хэрэглэж болох санамсаргүй утга: $1',
 'savedprefs' => 'Таны тохиргоо хадгалагдлаа.',
 'timezonelegend' => 'Цагийн бүс:',
 'localtime' => 'Орон нутгийн цаг:',
@@ -1171,7 +1163,6 @@ $1",
 'prefs-reset-intro' => 'Та энэ хуудсыг ашиглан өөрийн тохиргоог сайтын анхны тохиргооо руу шилжүүлэх боломжтой.
 Энэ үйлдлийг буцаах боломжгүй.',
 'prefs-emailconfirm-label' => 'Мэйлийн баталгаажуулалт:',
-'prefs-textboxsize' => 'Засварлах талбарын хэмжээ',
 'youremail' => 'Мэйл хаяг:',
 'username' => '{{GENDER:$1|Хэрэглэгчийн нэр}}:',
 'uid' => '{{GENDER:$1|Хэрэглэгчийн}} ID:',
@@ -1410,7 +1401,6 @@ $1 тэмдэгтээс богино байх ёстой.',
 'recentchangeslinked-feed' => 'Холбогдох өөрчлөлтүүд',
 'recentchangeslinked-toolbox' => 'Холбогдох өөрчлөлтүүд',
 'recentchangeslinked-title' => '"$1"-тай холбоотой засварууд',
-'recentchangeslinked-noresult' => 'Өгөгдсөн хугацаанд холбогдсон хуудсууд дээр засвар хийгдээгүй байна.',
 'recentchangeslinked-summary' => "Энэ хуудас бол тодорхой хуудаснаас (эсвэл тодорхой ангиллын доторх хуудсууд) холбогдсон хуудсуудад хийгдсэн өөрчлөлтийн жагсаалт юм.
 Таны [[Special:Watchlist|хянах жагсаалтанд]] буй хуудсууд '''тодруулагдсан''' байгаа.",
 'recentchangeslinked-page' => 'Хуудасны нэр:',
@@ -2033,7 +2023,6 @@ URL нь зөв болон сайт ажиллагаатай байгаа эсэ
 'unwatchthispage' => 'Хянахаа зогсоох',
 'notanarticle' => 'Агуулгагүй хуудас',
 'notvisiblerev' => 'Засвар устгагдлаа',
-'watchnochange' => 'Дурьдагдсан хугацаанд таны хянаж буй хуудсуудад өөрчлөлт ороогүй байна.',
 'watchlist-details' => 'Хяналтын жагсаалтад {{PLURAL:$1|$1 хуудас|$1 хуудаснууд}} байна.',
 'wlheader-enotif' => 'И-мэйл мэдэгдэл хүчинтэй боллоо.',
 'wlheader-showupdated' => "Таны хамгийн сүүлд айлчилснаас хойш өөрчлөгдсөн хуудсууд '''тодоор''' бичигдсэн байгаа",
@@ -3354,7 +3343,6 @@ $5
 'version-other' => 'Бусад',
 'version-mediahandlers' => 'Медиа боловсруулагч',
 'version-hooks' => 'Гогцоо',
-'version-extension-functions' => 'Өргөтгөлүүдийн функцууд',
 'version-parser-extensiontags' => 'Парсер нэмэлт тагууд',
 'version-parser-function-hooks' => 'Парсер функцийн тагууд',
 'version-hook-name' => 'Хүүкийн нэр',
index c0d4672..8b01f16 100644 (file)
@@ -327,31 +327,31 @@ $messages = array(
 # User preference toggles
 'tog-underline' => 'दुव्यांचे अधोरेखन:',
 'tog-justify' => 'परिच्छेद समान करा',
-'tog-hideminor' => 'à¤\85लà¥\80à¤\95डà¥\80ल à¤¬à¤¦à¤²à¤¾à¤\82त à¤\9bà¥\8bà¤\9fà¥\80 à¤¸à¤\82पादनà¥\87 à¤¦à¤¾à¤\96वà¥\82 à¤¨à¤\95ा',
+'tog-hideminor' => 'à¤\85लà¥\80à¤\95डà¥\80ल à¤¬à¤¦à¤²à¤¾à¤\82त à¤\9bà¥\8bà¤\9fà¥\80 à¤¸à¤\82पादनà¥\87 à¤²à¤ªà¤µा',
 'tog-hidepatrolled' => 'पहारा दिलेली संपादने (नित्य पहाण्यात असलेली संपादने) अलीकडील बदलांमधून लपवा',
 'tog-newpageshidepatrolled' => 'नवीन पृष्ठ यादीतून पहारा दिलेली पाने (नित्य पहाण्यात असलेली संपादने)  लपवा',
-'tog-extendwatchlist' => 'पहाऱà¥\8dयाà¤\9aà¥\8dया à¤¸à¥\82à¤\9aà¥\80मधà¥\8dयà¥\87 (नितà¥\8dय à¤ªà¤¹à¤¾à¤£à¥\8dयात à¤\85सलà¥\87लà¥\80 à¤ªà¤¾à¤¨à¥\87) à¤¸à¤°à¥\8dव à¤¬à¤¦à¤² à¤¦à¤¾à¤\96वा, à¤«à¤\95à¥\8dत à¤\85लà¥\80à¤\95डà¥\80ल à¤¬à¤¦à¤² à¤¨à¤\95à¥\8bत',
+'tog-extendwatchlist' => 'सरà¥\8dव à¤¬à¤¦à¤² à¤¦à¤¾à¤\96विणà¥\8dयास à¤¨à¤¿à¤°à¤¿à¤\95à¥\8dषणसà¥\82à¤\9aà¥\80à¤\9aा à¤µà¤¿à¤¸à¥\8dतार à¤\95रा à¤¨ à¤\95ि à¤«à¤\95à¥\8dत à¤\85लà¥\80à¤\95डà¥\80ल à¤¬à¤¦à¤²',
 'tog-usenewrc' => 'वाढीव अलीकडील बदल वापरा (जावास्क्रीप्टच्या उपलब्धतेची गरज)',
 'tog-numberheadings' => 'शीर्षके स्वयंक्रमांकित करा',
-'tog-showtoolbar' => 'सà¤\82पादन à¤\9aिनà¥\8dहà¥\87 à¤¦à¤¾à¤\96वा (à¤\9cावासà¥\8dà¤\95à¥\8dरà¥\80पà¥\8dà¤\9f)',
-'tog-editondblclick' => 'दà¥\8bनवà¥\87ळा à¤\95à¥\8dलिà¤\95 à¤\95रà¥\82न à¤ªà¤¾à¤¨ à¤¸à¤\82पादित à¤\95रा (à¤\9cावासà¥\8dà¤\95à¥\8dरà¥\80पà¥\8dà¤\9f)',
-'tog-editsection' => '[सà¤\82पादन] à¤¦à¥\81वà¥\8dयानà¥\87 संपादन करणे शक्य करा',
-'tog-editsectiononrightclick' => 'विभाà¤\97 à¤¶à¥\80रà¥\8dषà¤\95ावर à¤\89à¤\9cवà¥\8dया à¤\95à¥\8dलिà¤\95नà¥\87 à¤¸à¤\82पादन à¤\95रा(à¤\9cावासà¥\8dà¤\95à¥\8dरà¥\80पà¥\8dà¤\9f)',
-'tog-showtoc' => 'पानात à¥© à¤ªà¥\87à¤\95à¥\8dषा à¤\9cासà¥\8dत à¤¶à¥\80रà¥\8dषà¤\95à¥\87 à¤\85सलà¥\8dयास à¤\85नà¥\81à¤\95à¥\8dरमणिà¤\95ा à¤¦à¤¾à¤\96वा',
-'tog-rememberpassword' => 'माà¤\9dा à¤ªà¥\8dरवà¥\87श à¤¯à¤¾ à¤¸à¤\82à¤\97णकावर लक्षात ठेवा (जास्तीत जास्त $1 {{PLURAL:$1|दिवसासाठी|दिवसांसाठी}})',
-'tog-watchcreations' => 'मà¥\80 à¤¤à¤¯à¤¾à¤° à¤\95à¥\87लà¥\87लà¥\80 à¤ªà¤¾à¤¨à¥\87 à¤®à¤¾à¤\9dà¥\8dया à¤ªà¤¹à¤¾à¤±à¥\8dयाà¤\9aà¥\8dया à¤¸à¥\82à¤\9aà¥\80मधà¥\8dयà¥\87 (माà¤\9dà¥\80 à¤¨à¤¿à¤¤à¥\8dय à¤ªà¤¹à¤¾à¤£à¥\8dयाà¤\9aà¥\80 à¤¸à¥\82à¤\9aà¥\80)टाका',
-'tog-watchdefault' => 'मà¥\80 à¤¸à¤\82पादित à¤\95à¥\87लà¥\87लà¥\80 à¤ªà¤¾à¤¨à¥\87 à¤®à¤¾à¤\9dà¥\8dया à¤ªà¤¹à¤¾à¤±à¥\8dयाà¤\9aà¥\8dया à¤¸à¥\82à¤\9aà¥\80मधà¥\8dयà¥\87 टाका',
-'tog-watchmoves' => 'मà¥\80 à¤¸à¥\8dथानाà¤\82तर à¤\95à¥\87लà¥\87लà¥\80 à¤ªà¤¾à¤¨à¥\87 à¤®à¤¾à¤\9dà¥\8dया à¤ªà¤¹à¤¾à¤±à¥\8dयाà¤\9aà¥\8dया à¤¸à¥\82à¤\9aà¥\80मधà¥\8dयà¥\87 (माà¤\9dà¥\80 à¤¨à¤¿à¤¤à¥\8dय à¤ªà¤¹à¤¾à¤£à¥\8dयाà¤\9aà¥\80 à¤¸à¥\82à¤\9aà¥\80) टाका',
-'tog-watchdeletion' => 'मà¥\80 à¤µà¤\97ळलà¥\87लà¥\80 à¤ªà¤¾à¤¨à¥\87 à¤®à¤¾à¤\9dà¥\8dया à¤ªà¤¹à¤¾à¤±à¥\8dयाà¤\9aà¥\8dया à¤¸à¥\82à¤\9aà¥\80मधà¥\8dयà¥\87 (माà¤\9dà¥\80 à¤¨à¤¿à¤¤à¥\8dय à¤ªà¤¹à¤¾à¤£à¥\8dयाà¤\9aà¥\80 à¤¸à¥\82à¤\9aà¥\80) टाका',
+'tog-showtoolbar' => 'साधनपà¤\9fà¥\8dà¤\9fà¥\80à¤\95à¥\87वर à¤¸à¤\82पादन à¤\9aिनà¥\8dहà¥\87 à¤¦à¤¾à¤\96वा (à¤\9cावासà¥\8dà¤\95à¥\8dरà¥\80पà¥\8dà¤\9f à¤¹à¤µà¥\80)',
+'tog-editondblclick' => 'दà¥\8bनवà¥\87ळा à¤\9fिà¤\9aà¤\95à¥\81न (à¤\95à¥\8dलिà¤\95 à¤\95रà¥\82न) à¤ªà¤¾à¤¨à¥\87 à¤¸à¤\82पादित à¤\95रा (à¤\9cावासà¥\8dà¤\95à¥\8dरà¥\80पà¥\8dà¤\9f à¤¹à¤µà¥\80)',
+'tog-editsection' => '[सà¤\82पादन] à¤¦à¥\81वà¥\8dयामारà¥\8dफत à¤µà¤¿à¤­à¤¾à¤\97 संपादन करणे शक्य करा',
+'tog-editsectiononrightclick' => 'विभाà¤\97 à¤¶à¥\80रà¥\8dषà¤\95ावर à¤\89à¤\9cवà¥\8dया à¤\95à¥\8dलिà¤\95नà¥\87 à¤\9fिà¤\9aà¤\95à¥\81न à¤¸à¤\82पादन à¤\95रणà¥\87 à¤¶à¤\95à¥\8dय à¤\95रा (à¤\9cावासà¥\8dà¤\95à¥\8dरà¥\80पà¥\8dà¤\9f à¤¹à¤µà¥\80)',
+'tog-showtoc' => 'à¤\85नà¥\81à¤\95à¥\8dरमणिà¤\95ा à¤¦à¤¾à¤\96वा(पानात à¥© à¤ªà¥\87à¤\95à¥\8dषा à¤\9cासà¥\8dत à¤¶à¥\80रà¥\8dषà¤\95à¥\87 à¤\85सलà¥\8dयास)',
+'tog-rememberpassword' => 'माà¤\9dा à¤¸à¤¨à¥\8bà¤\82दपà¥\8dरवà¥\87श (लà¥\89à¤\97-à¤\88न) à¤¯à¤¾ à¤¨à¥\8dयाहाळकावर लक्षात ठेवा (जास्तीत जास्त $1 {{PLURAL:$1|दिवसासाठी|दिवसांसाठी}})',
+'tog-watchcreations' => 'मà¥\80 à¤¤à¤¯à¤¾à¤° à¤\95à¥\87लà¥\87लà¥\80 à¤ªà¤¾à¤¨à¥\87 à¤\86णि à¤\9aढविलà¥\87लà¥\8dया à¤¸à¤\82à¤\9aिà¤\95ा à¤®à¤¾à¤\9dà¥\8dया à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषणसà¥\82à¤\9aà¥\80त टाका',
+'tog-watchdefault' => 'मà¥\80 à¤¸à¤\82पादित à¤\95à¥\87लà¥\87लà¥\80 à¤ªà¤¾à¤¨à¥\87 à¤\86णि à¤¸à¤\82à¤\9aिà¤\95ा à¤®à¤¾à¤\9dà¥\8dया à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषणसà¥\82à¤\9aà¥\80त टाका',
+'tog-watchmoves' => 'मà¥\80 à¤¸à¥\8dथानाà¤\82तर à¤\95à¥\87लà¥\87लà¥\80 à¤ªà¤¾à¤¨à¥\87 à¤\86णि à¤¸à¤\82à¤\9aिà¤\95ा à¤®à¤¾à¤\9dà¥\8dया à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषणसà¥\82à¤\9aà¥\80त टाका',
+'tog-watchdeletion' => 'मà¥\80 à¤µà¤\97ळलà¥\87लà¥\80 à¤ªà¤¾à¤¨à¥\87 à¤\86णि à¤¸à¤\82à¤\9aिà¤\95ा à¤®à¤¾à¤\9dà¥\8dया à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषणसà¥\82à¤\9aà¥\80त टाका',
 'tog-minordefault' => "सर्व संपादने 'छोटा बदल' म्हणून आपोआप जतन करा.",
 'tog-previewontop' => 'झलक संपादन खिडकीच्या आधी दाखवा',
 'tog-previewonfirst' => 'पहिल्या संपादनानंतर झलक दाखवा',
-'tog-nocache' => 'न्याहाळकाची पान सय (कॅशिंग) अक्षम (निकमी) करा',
-'tog-enotifwatchlistpages' => 'माà¤\9dà¥\8dया à¤¨à¤¿à¤¤à¥\8dय à¤ªà¤¾à¤¹à¤¾à¤£à¥\8dयात à¤\85सलà¥\87लà¥\80 à¤¸à¥\82à¤\9aà¥\80मधà¥\8dयà¥\87 à¤\85सलà¥\87लà¥\8dया à¤ªà¤¾à¤¨à¤¾à¤®à¤§à¥\8dयà¥\87 बदल झाल्यास मला विपत्र (ई-मेल) पाठवा.',
+'tog-nocache' => 'न्याहाळकाची पान-सय (कॅशिंग) अक्षम (निकामी) करा',
+'tog-enotifwatchlistpages' => 'माà¤\9dà¥\8dया à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषणसà¥\82à¤\9aà¥\80त à¤\85सलà¥\87लà¥\8dया à¤ªà¤¾à¤¨à¤¾à¤\82मधà¥\8dयà¥\87 à¤\85थवा à¤¸à¤\82à¤\9aिà¤\95à¥\87त बदल झाल्यास मला विपत्र (ई-मेल) पाठवा.',
 'tog-enotifusertalkpages' => 'माझ्या चर्चा पानावर बदल झाल्यास मला विरोप (ई-मेल) पाठवा',
-'tog-enotifminoredits' => 'मला छोट्या बदलांकरीता सुद्धा विरोप पाठवा',
+'tog-enotifminoredits' => 'मला à¤ªà¤¾à¤¨à¤¾à¤\82à¤\9aà¥\8dया à¤\86णि à¤¸à¤\82à¤\9aिà¤\95ाà¤\82à¤\9aà¥\8dया à¤\9bà¥\8bà¤\9fà¥\8dया à¤¬à¤¦à¤²à¤¾à¤\82à¤\95रà¥\80ता à¤¸à¥\81दà¥\8dधा à¤µà¤¿à¤°à¥\8bप à¤ªà¤¾à¤ à¤µà¤¾',
 'tog-enotifrevealaddr' => 'सूचना विरोपात माझा विरोपाचा (ई-मेल ) पत्ता दाखवा',
-'tog-shownumberswatching' => 'पहारा à¤¦à¤¿à¤²à¥\87ले सदस्य दाखवा',
+'tog-shownumberswatching' => 'पहारा à¤¦à¥\87णारे सदस्य दाखवा',
 'tog-oldsig' => 'सध्याची सही:',
 'tog-fancysig' => 'सही विकिसंज्ञा म्हणून वापरा (आपोआप दुव्याशिवाय)',
 'tog-showjumplinks' => '"कडे जा" सुगम दुवे, उपलब्ध करा.',
@@ -361,24 +361,24 @@ $messages = array(
 'tog-watchlisthidebots' => 'पहाऱ्याच्या सूचीतून सांगकाम्यांचे बदल लपवा',
 'tog-watchlisthideminor' => 'माझ्या पहाऱ्याच्या सूचीतून छोटे बदल लपवा',
 'tog-watchlisthideliu' => 'पहाऱ्याच्या सूचीतून प्रवेश केलेल्या सदस्यांची संपादने लपवा',
-'tog-watchlisthideanons' => 'नितà¥\8dय à¤ªà¤¹à¤¾à¤£à¥\8dयाà¤\9aà¥\8dया सूचीतून अनामिक सदस्यांची संपादने लपवा',
-'tog-watchlisthidepatrolled' => 'पहाऱà¥\8dयाà¤\9aà¥\8dया सूचीतून तपासलेली संपादने लपवा',
+'tog-watchlisthideanons' => 'निरà¥\80à¤\95à¥\8dषणसूचीतून अनामिक सदस्यांची संपादने लपवा',
+'tog-watchlisthidepatrolled' => 'निरà¥\80à¤\95à¥\8dषणसूचीतून तपासलेली संपादने लपवा',
 'tog-ccmeonemails' => 'मी इतर सदस्यांना पाठविलेल्या ई-मेल च्या प्रती मलाही माझ्या ई-मेल पत्त्यावर पाठवा',
 'tog-diffonly' => 'निवडलेल्या आवृत्त्यांमधील बदल दाखवताना जुनी आवृत्ती दाखवू नका.',
 'tog-showhiddencats' => 'लपविलेले वर्ग दाखवा',
 'tog-norollbackdiff' => 'द्रुतमाघार घेतल्यास बदल वगळा',
 'tog-useeditwarning' => 'जर मी संपादित करीत असलेल्या पानावरील माझे संपादिलेले बदल जतन न केल्यास मला इशारा द्या',
 
-'underline-always' => 'नà¥\87हà¥\87मà¥\80',
+'underline-always' => 'नेहमी',
 'underline-never' => 'कधीच नाही',
-'underline-default' => 'नà¥\8dयाहाळà¤\95 à¤\85विà¤\9aल (browser default)',
+'underline-default' => 'तà¥\8dवà¤\9aा à¤\85थवा à¤¨à¥\8dयाहाळà¤\95 à¤\85विà¤\9aल (सà¥\8dà¤\95à¥\80न à¤\85थवा à¤¬à¥\8dराà¤\8aà¤\9cर à¤¡à¤¿à¤«à¥\89लà¥\8dà¤\9f)',
 
 # Font style option in Special:Preferences
 'editfont-style' => 'विभागाची टंकशैली संपादित करा:',
 'editfont-default' => 'न्याहाळक अविचल',
 'editfont-monospace' => 'एकलअंतर असलेला टंक',
-'editfont-sansserif' => 'सॅन्स-सेरिफ टंक',
-'editfont-serif' => 'सेरिफ टंक',
+'editfont-sansserif' => "'सॅन्स-सेरिफ' टंक",
+'editfont-serif' => "'सेरिफ' टंक",
 
 # Dates
 'sunday' => 'रविवार',
@@ -388,13 +388,13 @@ $messages = array(
 'thursday' => 'गुरूवार',
 'friday' => 'शुक्रवार',
 'saturday' => 'शनिवार',
-'sun' => 'रवि',
-'mon' => 'सोम',
-'tue' => 'मंगळ',
-'wed' => 'बुध',
-'thu' => 'गुरू',
-'fri' => 'शुक्र',
-'sat' => 'शनि',
+'sun' => 'रवि.',
+'mon' => 'सोम.',
+'tue' => 'मंगळ.',
+'wed' => 'बुध.',
+'thu' => 'गुरू.',
+'fri' => 'शुक्र.',
+'sat' => 'शनि.',
 'january' => 'जानेवारी',
 'february' => 'फेब्रुवारी',
 'march' => 'मार्च',
@@ -431,13 +431,25 @@ $messages = array(
 'oct' => 'ऑक्टो.',
 'nov' => 'नोव्हें.',
 'dec' => 'डिसें.',
+'january-date' => 'जानेवारी $1',
+'february-date' => 'फेब्रुवारी $1',
+'march-date' => 'मार्च $1',
+'april-date' => 'एप्रिल $1',
+'may-date' => 'मे $1',
+'june-date' => 'जून $1',
+'july-date' => 'जुलै $1',
+'august-date' => 'ऑगस्ट $1',
+'september-date' => 'सप्टेंबर $1',
+'october-date' => 'ऑक्टोबर $1',
+'november-date' => 'नोव्हेंबर $1',
+'december-date' => 'डिसेंबर $1',
 
 # Categories related messages
-'pagecategories' => '{{PLURAL:$1|वर्ग|वर्ग}}',
+'pagecategories' => '{{PLURAL:$1|वर्ग}}',
 'category_header' => '"$1" वर्गातील लेख',
 'subcategories' => 'उपवर्ग',
 'category-media-header' => '"$1" वर्गातील माध्यमे',
-'category-empty' => "''या à¤µà¤°à¥\8dà¤\97ात à¤\85दà¥\8dयाप à¤\8fà¤\95हà¥\80 à¤²à¥\87à¤\96 à¤¨à¤¾à¤¹à¥\80.''",
+'category-empty' => "''या à¤µà¤°à¥\8dà¤\97ात à¤\85दà¥\8dयाप à¤\8fà¤\95हà¥\80 à¤²à¥\87à¤\96 à¤\95िà¤\82वा à¤®à¤¾à¤§à¥\8dयमà¥\87 à¤¨à¤¾à¤¹à¥\80त.''",
 'hidden-categories' => '{{PLURAL:$1|लपविलेला वर्ग|लपविलेले वर्ग}}',
 'hidden-category-category' => 'लपविलेले वर्ग',
 'category-subcat-count' => '{{PLURAL:$2|या वर्गात फक्त खालील उपवर्ग आहे.|एकूण $2 उपवर्गांपैकी या वर्गात खालील {{PLURAL:$1|उपवर्ग आहे.|$1 उपवर्ग आहेत.}}}}',
@@ -452,12 +464,12 @@ $messages = array(
 'broken-file-category' => 'तुटलेल्या संचिका दुव्यांसह असलेली पाने',
 
 'about' => 'च्या विषयी',
-'article' => 'लà¥\87à¤\96',
+'article' => 'à¤\86शय-पान',
 'newwindow' => '(नवीन खिडकीत उघडते.)',
-'cancel' => 'à¤\96à¥\8bडा',
+'cancel' => 'रदà¥\8dद à¤\95रा',
 'moredotdotdot' => 'अजून...',
 'morenotlisted' => 'आणखी यादीत नाही...',
-'mypage' => 'माà¤\9dà¥\87 à¤ªà¤¾à¤¨',
+'mypage' => 'पान',
 'mytalk' => 'चर्चा',
 'anontalk' => 'या अंकपत्त्याचे चर्चा पान उघडा',
 'navigation' => 'सुचालन',
@@ -470,7 +482,7 @@ $messages = array(
 'qbpageoptions' => 'हे पान',
 'qbmyoptions' => 'माझी पाने',
 'qbspecialpages' => 'विशेष पाने',
-'faq' => 'नेहमीची प्रश्नावली',
+'faq' => 'नेहमी विचारण्यात येणारे प्रश्न',
 'faqpage' => 'Project:प्रश्नावली',
 
 # Vector skin
@@ -478,9 +490,9 @@ $messages = array(
 'vector-action-delete' => 'वगळा',
 'vector-action-move' => 'स्थानांतरण',
 'vector-action-protect' => 'सुरक्षित करा',
-'vector-action-undelete' => 'पुनर्स्थापित करा',
-'vector-action-unprotect' => 'à¤\85सà¥\81रà¤\95à¥\8dषित à¤\95रा',
-'vector-simplesearch-preference' => 'पà¥\8dरà¤\97त à¤¶à¥\8bधविकल्प सक्रिय करा (फक्त व्हेक्टर त्वचेसाठी)',
+'vector-action-undelete' => 'वà¤\97ळलà¥\87लà¥\87 à¤ªà¥\81नरà¥\8dसà¥\8dथापित à¤\95रा',
+'vector-action-unprotect' => 'सà¥\81रà¤\95à¥\8dषितता à¤¬à¤¦à¤²ा',
+'vector-simplesearch-preference' => 'सà¥\8bपा à¤¶à¥\8bधपà¤\9fà¥\8dà¤\9fà¥\80 विकल्प सक्रिय करा (फक्त व्हेक्टर त्वचेसाठी)',
 'vector-view-create' => 'तयार करा',
 'vector-view-edit' => 'संपादन',
 'vector-view-history' => 'इतिहास पहा',
@@ -488,7 +500,7 @@ $messages = array(
 'vector-view-viewsource' => 'स्रोत पहा',
 'actions' => 'क्रिया',
 'namespaces' => 'नामविश्वे',
-'variants' => 'अस्थिर',
+'variants' => 'अस्थिरके',
 
 'navigation-heading' => 'दिक्चालन यादी',
 'errorpagetitle' => 'चूक',
@@ -498,10 +510,10 @@ $messages = array(
 'search' => 'शोधा',
 'searchbutton' => 'शोधा',
 'go' => 'चला',
-'searcharticle' => 'लà¥\87à¤\96',
-'history' => 'à¤\9cà¥\81नà¥\8dया à¤\86वà¥\83तà¥\8dतà¥\80',
+'searcharticle' => 'शà¥\8bधा',
+'history' => 'पानाà¤\9aा à¤\87तिहास',
 'history_short' => 'इतिहास',
-'updatedmarker' => 'शेवटच्या भेटीनंतर बदलले',
+'updatedmarker' => 'माà¤\9dà¥\8dया à¤¶à¥\87वà¤\9fà¤\9aà¥\8dया à¤­à¥\87à¤\9fà¥\80नà¤\82तर à¤¬à¤¦à¤²à¤²à¥\87',
 'printableversion' => 'छापण्यायोग्य आवृत्ती',
 'permalink' => 'शाश्वत दुवा',
 'print' => 'छापा',
@@ -512,19 +524,20 @@ $messages = array(
 'create-this-page' => 'हे पान तयार करा',
 'delete' => 'वगळा',
 'deletethispage' => 'हे पृष्ठ काढून टाका',
+'undeletethispage' => 'गाळलेला लेख पुर्ववत् करा',
 'undelete_short' => 'पुनर्स्थापन {{PLURAL:$1|एक संपादन|$1 संपादने}}',
-'viewdeleted_short' => '{{PLURAL:$1|एक वगळलेले संपादन|$1 वगळलेली संपादने}} पहा.',
+'viewdeleted_short' => '{{PLURAL:$1|एक वगळलेले संपादन|$1 वगळलेली संपादने}}  पहा.',
 'protect' => 'सुरक्षित करा',
 'protect_change' => 'बदला',
 'protectthispage' => 'हे पृष्ठ सुरक्षित करा',
-'unprotect' => 'à¤\85सà¥\81रà¤\95à¥\8dषित à¤\95रा',
-'unprotectthispage' => 'हà¥\87 à¤ªà¥\83षà¥\8dठ à¤\85सà¥\81रà¤\95à¥\8dषित à¤\95रा',
+'unprotect' => 'सà¥\81रà¤\95à¥\8dषितता à¤¬à¤¦à¤²ा',
+'unprotectthispage' => 'या à¤ªà¤¾à¤¨à¤¾à¤\9aà¥\80 à¤¸à¥\81रà¤\95à¥\8dषितता à¤¬à¤¦à¤²ा',
 'newpage' => 'नवीन पृष्ठ',
-'talkpage' => 'चर्चा पृष्ठ',
+'talkpage' => 'या à¤ªà¤¾à¤¨à¤¾à¤\9aà¥\87 à¤\9aरà¥\8dà¤\9aा à¤ªà¥\83षà¥\8dठ',
 'talkpagelinktext' => 'चर्चा',
 'specialpage' => 'विशेष पृष्ठ',
 'personaltools' => 'वैयक्तिक साधने',
-'postcomment' => 'नवà¥\80न à¤\9aरà¥\8dà¤\9aा',
+'postcomment' => 'नवà¥\80न à¤µà¤¿à¤­à¤¾à¤\97',
 'articlepage' => 'लेख पृष्ठ',
 'talk' => 'चर्चा',
 'views' => 'दृष्ये',
@@ -533,11 +546,11 @@ $messages = array(
 'projectpage' => 'प्रकल्प पान पहा',
 'imagepage' => 'संचिका पृष्ठ पहा',
 'mediawikipage' => 'संदेश पान पहा',
-'templatepage' => 'साà¤\9aा पृष्ठ पहा.',
+'templatepage' => 'साà¤\9aà¥\8dयाà¤\9aà¥\87 पृष्ठ पहा.',
 'viewhelppage' => 'साहाय्य पान पहा',
 'categorypage' => 'वर्ग पान पहा',
 'viewtalkpage' => 'चर्चा पृष्ठ पहा',
-'otherlanguages' => 'à¤\87तर à¤­à¤¾à¤·à¤¾',
+'otherlanguages' => 'à¤\87तर à¤­à¤¾à¤·à¥\87त',
 'redirectedfrom' => '($1 पासून पुनर्निर्देशित)',
 'redirectpagesub' => 'पुनर्निर्देशनाचे पान',
 'lastmodifiedat' => 'या पानातील शेवटचा बदल $1 रोजी $2 वाजता केला गेला.',
@@ -546,9 +559,9 @@ $messages = array(
 'jumpto' => 'येथे जा:',
 'jumptonavigation' => 'सुचालन',
 'jumptosearch' => 'शोध',
-'view-pool-error' => 'माफ à¤\95रा. à¤¯à¤¾à¤µà¥\87ळà¥\87स à¤¸à¤°à¥\8dवà¥\8dहरवर à¤¤à¤¾à¤£ à¤\86हà¥\87. à¤\85नà¥\87à¤\95 à¤¸à¤¦à¤¸à¥\8dय à¤¹à¥\87 à¤ªà¤¾à¤¨ à¤¬à¤\98णà¥\8dयाà¤\9aा à¤ªà¥\8dरयतà¥\8dन à¤\95रित à¤\86हà¥\87त. à¤ªà¥\81नà¥\8dहा à¤¯à¤¾ à¤ªà¤¾à¤¨à¤¾à¤µà¤° à¤ªà¥\8bà¤\9aण्यासाठी थोडा वेळ थांबून परत प्रयत्‍न करा.
+'view-pool-error' => 'माफ à¤\95रा. à¤¯à¤¾à¤µà¥\87ळà¥\87स à¤¸à¤°à¥\8dवà¥\8dहरवर à¤¤à¤¾à¤£ à¤\86हà¥\87. à¤\85नà¥\87à¤\95 à¤¸à¤¦à¤¸à¥\8dय à¤¹à¥\87 à¤ªà¤¾à¤¨ à¤¬à¤\98णà¥\8dयाà¤\9aा à¤ªà¥\8dरयतà¥\8dन à¤\95रित à¤\86हà¥\87त. à¤ªà¥\81नà¥\8dहा à¤¯à¤¾ à¤ªà¤¾à¤¨à¤¾à¤µà¤° à¤¯à¥\87ण्यासाठी थोडा वेळ थांबून परत प्रयत्‍न करा.
 $1',
-'pool-timeout' => 'ताळà¥\8dयासाठà¥\80 à¤µà¤¾à¤\9f à¤ªà¤¾à¤¹à¤¤à¤¾à¤¨à¤¾ वेळ संपली',
+'pool-timeout' => 'ताळà¥\8dयासाठà¥\80 à¤µà¤¾à¤\9f à¤ªà¤¾à¤¹à¤£à¥\8dयाà¤\9aà¥\80 वेळ संपली',
 'pool-queuefull' => 'सर्व्हरवर ताण आहे.',
 'pool-errorunknown' => 'अपरिचित त्रूटी',
 
@@ -562,28 +575,30 @@ $1',
 'disclaimers' => 'उत्तरदायित्वास नकार',
 'disclaimerpage' => 'Project: सर्वसाधारण उत्तरदायकत्वास नकार',
 'edithelp' => 'संपादन साहाय्य',
-'edithelppage' => 'Help:संपादन',
 'helppage' => 'Help:आशय',
 'mainpage' => 'मुखपृष्ठ',
 'mainpage-description' => 'मुखपृष्ठ',
 'policy-url' => 'Project:नीती',
 'portal' => 'समाज मुखपृष्ठ',
 'portal-url' => 'Project:समाज मुखपृष्ठ',
-'privacy' => 'à¤\97à¥\81पà¥\8dतता à¤§à¥\8bरण',
+'privacy' => 'à¤\97à¥\81पà¥\8dतता à¤¨à¥\80तà¥\80',
 'privacypage' => 'Project:गुप्तता नीती',
 
 'badaccess' => 'परवानगी नाकारण्यात आली आहे',
-'badaccess-group0' => 'तà¥\81मà¥\8dहà¥\80 à¤\95रत à¤\85सलà¥\87लà¥\8dया à¤\95à¥\8dरियेचे तुम्हाला अधिकार नाहीत.',
+'badaccess-group0' => 'à¤\86पण à¤µà¤¿à¤¨à¤\82तà¥\80 à¤\95à¥\87लà¥\87लà¥\8dया à¤\95à¥\8dरियà¥\87à¤\9aà¥\8dया à¤ªà¥\82रà¥\8dततेचे तुम्हाला अधिकार नाहीत.',
 'badaccess-groups' => 'आपण विनीत केलेली कृती खालील {{PLURAL:$2|समूहासाठी|पैकी एका समूहासाठी}} मर्यादित आहे: $1.',
 
-'versionrequired' => 'मीडियाविकीच्या $1 आवृत्तीची गरज आहे.',
-'versionrequiredtext' => 'हे पान वापरण्यासाठी मीडियाविकीच्या $1 आवृत्तीची गरज आहे. पहा [[Special:Version|आवृत्ती यादी]].',
+'versionrequired' => 'मीडियाविकीच्या $1 आवृत्ती हवी',
+'versionrequiredtext' => 'हे पान वापरण्यासाठी मीडियाविकीच्या $1 आवृत्ती हवी. पहा [[Special:Version|आवृत्त्यांची यादी]].',
 
 'ok' => 'ठीक',
-'retrievedfrom' => '"$1" à¤ªà¤¾à¤¸à¥\82न à¤®à¤¿à¤³à¤µà¤¿ले',
+'retrievedfrom' => '"$1" à¤ªà¤¾à¤¸à¥\82न à¤¹à¥\81डà¤\95ले',
 'youhavenewmessages' => 'तुमच्यासाठी $1 ($2).',
 'newmessageslink' => 'नवीन संदेश',
 'newmessagesdifflink' => 'ताजा बदल',
+'youhavenewmessagesfromusers' => 'आपलेपाशी  $1च्या पासून  {{PLURAL:$3|वेगळे सदस्य|$3 सदस्य}}($2)आहेत.',
+'youhavenewmessagesmanyusers' => ' आपलेपाशी ($2) सदस्यांपासून $1 आहेत.',
+'newmessageslinkplural' => '{{PLURAL:$1|a new message|नविन संदेश}}',
 'newmessagesdifflinkplural' => 'मागिल {{PLURAL:$1|बदल}}',
 'youhavenewmessagesmulti' => '$1 वर तुमच्यासाठी नवीन संदेश आहेत.',
 'editsection' => 'संपादन',
@@ -595,12 +610,12 @@ $1',
 'toc' => 'अनुक्रमणिका',
 'showtoc' => 'दाखवा',
 'hidetoc' => 'लपवा',
-'collapsible-collapse' => 'लपवा',
+'collapsible-collapse' => 'निपात à¤\95रा',
 'collapsible-expand' => 'विस्तार',
-'thisisdeleted' => 'à¤\86वलोकन किंवा पूनर्स्थापन $1?',
-'viewdeleted' => 'à¤\86वलोकन $1?',
+'thisisdeleted' => 'à¤\85वलोकन किंवा पूनर्स्थापन $1?',
+'viewdeleted' => 'à¤\85वलोकन $1?',
 'restorelink' => '{{PLURAL:$1|एक वगळलेले संपादन|$1 वगळलेली संपादने}}',
-'feedlinks' => 'रसद (Feed):',
+'feedlinks' => 'पà¥\8dरदाय (Feed):',
 'feed-invalid' => 'अयोग्य रसद नोंदणी (Invalid subscription feed type).',
 'feed-unavailable' => 'सिंडीकेशन फीड उपलब्ध नाहीत',
 'site-rss-feed' => '$1 आरएसएस फीड',
@@ -627,9 +642,10 @@ $1',
 
 # Main script and global functions
 'nosuchaction' => 'अशी कृती अस्तित्वात नाही',
-'nosuchactiontext' => 'URL à¤¨à¥\87 à¤¸à¤¾à¤\82à¤\97ितलेली कृती चुकीची आहे.
+'nosuchactiontext' => 'URL à¤¨à¥\87 à¤¨à¤®à¥\82द à¤\95à¥\87लेली कृती चुकीची आहे.
 तुम्ही कदाचित URL चुकीची दिली असेल, किंवा चुकीच्या दुव्यावर टिचकी दिली असेल.
-कदाचित ही कृती {{SITENAME}} मधील त्रुटी सुद्धा दर्शवीत असेल.',
+कदाचित, ही कृती {{SITENAME}} वापरत असलेल्या सॉफ्टवेअर मधील गणकदोष 
+सुद्धा दर्शवीत असेल.',
 'nosuchspecialpage' => 'असे कोणतेही विशेष पृष्ठ अस्तित्वात नाही',
 'nospecialpagetext' => '<strong>आपण केलेली विनंती अयोग्य विशेषपानासंबंधी आहे.</strong>
 
@@ -649,11 +665,11 @@ $1',
 "$2" या कार्यकृतीमधून .
 MySQL returned error "$3: $4".',
 'laggedslavemode' => 'सुचना: पानावर नवीन बदल नसतील.',
-'readonly' => 'विदागारास (database) ताळे आहे.',
+'readonly' => 'विदागारास (डाटाबेस) ताळे आहे.',
 'enterlockreason' => 'विदागारास ताळे ठोकण्याचे कारण, ताळे उघडले जाण्याच्या अदमासे कालावधीसहीत द्या.',
-'readonlytext' => 'बहà¥\81धा à¤µà¤¿à¤¦à¤¾à¤\97ार à¤®à¥\87à¤\82à¤\9fà¥\87ननà¥\8dसà¤\95रिता à¤¨à¤µà¥\80न à¤­à¤° à¤\98ालणà¥\8dयापासà¥\82न à¤\86णि à¤\87तर à¤¬à¤¦à¤² à¤\95रणà¥\8dयापासà¥\82न à¤¬à¤\82द à¤ à¥\87वणà¥\8dयात à¤\86ला à¤\86हà¥\87, à¤®à¥\87à¤\82à¤\9fà¥\87ननà¥\8dसनà¤\82तर à¤¤à¥\8b à¤¨à¤¿à¤¯à¤®à¤¿à¤¤ होईल.
+'readonlytext' => 'बहà¥\81धा à¤µà¤¿à¤¦à¤¾à¤\97ार à¤ªà¤°à¤¿à¤°à¤\95à¥\8dषणामà¥\81ळà¥\87 (मà¥\87à¤\82à¤\9fà¥\87ननà¥\8dस) à¤¨à¤µà¥\80न à¤­à¤° à¤\98ालणà¥\8dयापासà¥\82न à¤\86णि à¤\87तर à¤¬à¤¦à¤² à¤\95रणà¥\8dयापासà¥\82न à¤¬à¤\82द à¤ à¥\87वणà¥\8dयात à¤\86ला à¤\86हà¥\87, à¤ªà¤°à¤¿à¤°à¤\95à¥\8dषणानà¤\82तर à¤¤à¥\8b à¤¸à¤¾à¤®à¤¾à¤¨à¥\8dय होईल.
 
-ताळà¥\87 à¤ à¥\8bà¤\95णाऱà¥\8dया à¤ªà¥\8dरबà¤\82धà¤\95ाà¤\82नà¥\80 à¤\96ालà¥\80ल à¤\95ारण नमूद केले आहे: $1',
+ताळà¥\87 à¤ à¥\8bà¤\95णाऱà¥\8dया à¤ªà¥\8dरबà¤\82धà¤\95ाà¤\82नà¥\80 à¤\96ालà¥\80ल à¤¸à¥\8dपषà¥\8dà¤\9fà¥\80à¤\95रण नमूद केले आहे: $1',
 'missing-article' => 'डाटाबेसला "$1" $2 नावाचे पान मिळालेले नाही, जे मिळायला हवे होते.
 
 असे बहुदा संपुष्टात आलेल्या फरकामुळे किंवा वगळलेल्या पानाच्या इतिहास दुव्यामुळे घडते.
@@ -662,57 +678,66 @@ MySQL returned error "$3: $4".',
 कृपया याबद्दल एखाद्या [[Special:ListUsers/sysop|प्रचालकाशी]] चर्चा करा व या URLची नोंद करा.',
 'missingarticle-rev' => '(आवृत्ती#: $1)',
 'missingarticle-diff' => '(फरक: $1, $2)',
-'readonly_lag' => 'मुख्य विदागार दात्याच्या (master database server) बरोबरीने पोहचण्यास पराधीन-विदागारदात्यास (slave server) वेळ लागल्यामुळे, विदागार आपोआप बंद झाला आहे.',
+'readonly_lag' => 'मुख्य विदागार दात्याच्या (मास्टर डाटाबेस सर्व्हर) बरोबरीने पोहचण्यास पराधीन-विदागारदात्यास (स्लेव्ह सर्व्हर) वेळ लागल्यामुळे, विदागार आपोआप बंद झाला आहे.',
 'internalerror' => 'अंतर्गत त्रुटी',
 'internalerror_info' => 'अंतर्गत त्रुटी: $1',
-'fileappenderrorread' => 'जोडणीच्या दरम्यान "$1" वाचता आले नाही.',
-'fileappenderror' => '"$1" à¤¤à¥\87 "$2" जोडता आले नाही.',
+'fileappenderrorread' => 'जोडणी-दरम्यान "$1" वाचता आले नाही.',
+'fileappenderror' => '"$1" à¤µ "$2"ला जोडता आले नाही.',
 'filecopyerror' => '"$1" संचिकेची "$2" ही प्रत करता आली नाही.',
 'filerenameerror' => '"$1" संचिकेचे "$2" असे नामांतर करता आले नाही.',
 'filedeleteerror' => '"$1" संचिका वगळता आली नाही.',
-'directorycreateerror' => '"$1" कार्यधारीका (directory) तयार केली जाऊ शकली नाही.',
+'directorycreateerror' => '"$1" कार्यधारीका (डिरेक्टरी) तयार केली जाऊ शकली नाही.',
 'filenotfound' => '"$1" ही संचिका सापडत नाही.',
 'fileexistserror' => 'संचिका "$1" वर लिहीता आले नाही: संचिका अस्तित्वात आहे.',
 'unexpected' => 'अनपेक्षित मूल्य: "$1"="$2"',
-'formerror' => 'तà¥\8dरà¥\81à¤\9fà¥\80: à¤«à¥\89रà¥\8dम à¤¸à¤¬à¤®à¥\80à¤\9f à¤\95रता à¤\86लà¥\87ला à¤¨à¤¾à¤¹à¥\80',
+'formerror' => 'तà¥\8dरà¥\81à¤\9fà¥\80: à¤\86वà¥\87दन à¤¸à¤¾à¤¦à¤° à¤\95रता à¤\86लà¥\87 à¤¨à¤¾à¤¹à¥\80.',
 'badarticleerror' => 'या पानावर ही कृती करता येत नाही.',
 'cannotdelete' => '$1 हे पान किंवा संचिका वगळता आलेली नाही. (आधीच इतर कुणी वगळले असण्याची शक्यता आहे.)',
-'cannotdelete-title' => '$1 à¤²à¤¾ à¤µà¤\97ळà¥\82 à¤¶à¤\95त à¤¨à¤¾à¤¹à¤¿',
+'cannotdelete-title' => '$1 à¤²à¤¾ à¤µà¤\97ळà¥\82 à¤¶à¤\95त à¤¨à¤¾à¤¹à¥\80',
 'delete-hook-aborted' => 'खोडण्याची  क्रिया मधेच थांबविण्यात येत आहे.
 कोणतेही कारण देण्यात आले नाही',
-'badtitle' => 'à¤\9aà¥\81à¤\95à¥\80à¤\9aà¥\87 शीर्षक',
-'badtitletext' => 'à¤\86पण à¤®à¤¾à¤\97ितलà¥\87लà¥\87 à¤¶à¥\80रà¥\8dषà¤\95 à¤ªà¤¾à¤¨ à¤\85यà¥\8bà¤\97à¥\8dय, à¤°à¤¿à¤\95ामà¥\87 à¤\85थवा à¤\9aà¥\81à¤\95िनà¥\87 à¤\9cà¥\8bडलà¥\87लà¥\87 à¤\86à¤\82तर-भाषिय à¤\95िà¤\82वा à¤\86à¤\82तर-विà¤\95ि à¤¶à¥\80रà¥\8dषà¤\95 à¤\86हà¥\87. à¤¤à¥\8dयात à¤\8fà¤\95 à¤\95िà¤\82वा à¤\85धिà¤\95 à¤¶à¥\80रà¥\8dषà¤\95à¤\85यà¥\8bà¤\97à¥\8dय चिन्हे आहेत.',
-'perfcached' => 'à¤\96ालà¥\80ल à¤®à¤¾à¤¹à¤¿à¤¤à¥\80 à¤¸à¤¯à¥\80मधà¥\8dयà¥\87(à¤\95à¥\85शà¥\87) à¤ à¥\87वलà¥\80 à¤\86हà¥\87 à¤¤à¥\8dयामà¥\81ळà¥\87 à¤¤à¥\80 à¤¨à¤µà¥\80नतम {{PLURAL:$1|one result is|$1 results }} à¤¨à¤¸à¤¾à¤µà¥\80.',
-'perfcachedts' => 'à¤\96ालà¥\80ल à¤®à¤¾à¤¹à¤¿à¤¤à¥\80 à¤¸à¤¯à¥\80मधà¥\8dयà¥\87(à¤\95à¥\85शà¥\87) à¤ à¥\87वलà¥\80 à¤\86हà¥\87 à¤\86णि à¤¶à¥\87वà¤\9fà¥\80 $1 à¤²à¤¾ {{PLURAL:$4|one result is|$4 results}} à¤¬à¤¦à¤²à¤²à¥\80 à¤¹à¥\8bतà¥\80.',
-'querypage-no-updates' => 'सध्या या पाना करिता नवीसंस्करणे अनुपलब्ध केली आहेत.आत्ताच येथील विदा ताजा होणार नाही.',
-'wrong_wfQuery_params' => 'wfQuery()साठà¥\80 à¤\9aà¥\81à¤\95à¥\80à¤\9aà¥\87 à¤ªà¥\85रà¥\87मà¥\80à¤\9fरà¥\8dस à¤¦à¤¿à¤²à¥\87लà¥\87 आहेत<br />
-कार्य (function): $1<br />
-पृच्छा (Query): $2',
+'badtitle' => 'à¤\96राब शीर्षक',
+'badtitletext' => 'à¤\86पण à¤µà¤¿à¤¨à¤\82तà¥\80 à¤\95à¥\87लà¥\87लà¥\87 à¤¶à¥\80रà¥\8dषà¤\95 à¤ªà¤¾à¤¨ à¤\85यà¥\8bà¤\97à¥\8dय, à¤°à¤¿à¤\95ामà¥\87 à¤\85थवा à¤\9aà¥\81à¤\95िनà¥\87 à¤\9cà¥\8bडलà¥\87लà¥\87 à¤\86à¤\82तर-भाषिय à¤\95िà¤\82वा à¤\86à¤\82तर-विà¤\95ि à¤¶à¥\80रà¥\8dषà¤\95 à¤\86हà¥\87. à¤¤à¥\8dयात,शà¥\80रà¥\8dषà¤\95ास à¤\85यà¥\8bà¤\97à¥\8dय à¤\85शà¥\80 à¤\8fà¤\95 à¤\95िà¤\82वा à¤\85धिà¤\95 चिन्हे आहेत.',
+'perfcached' => 'à¤\96ालà¥\80ल à¤®à¤¾à¤¹à¤¿à¤¤à¥\80 à¤¸à¤¯à¥\80मधà¥\80ल (à¤\95à¥\85शà¥\87) à¤\85सलà¥\8dयामà¥\81ळà¥\87 à¤¤à¥\80 à¤\85दà¥\8dययावतà¥\8d à¤¨à¤¾à¤¹à¥\80.à¤\9cासà¥\8dतà¥\80तà¤\9cासà¥\8dत {{PLURAL:$1|à¤\8fà¤\95 à¤ªà¥\8dरतिफळ |$1 à¤ªà¥\8dरतिफळà¥\87 }} à¤¸à¤¯à¥\80मधà¥\8dयà¥\87 à¤\85सतात.',
+'perfcachedts' => 'à¤\96ालà¥\80ल à¤®à¤¾à¤¹à¤¿à¤¤à¥\80 à¤¸à¤¯à¥\80मधà¥\80ल (à¤\95à¥\85शà¥\87) à¤\86हà¥\87 à¤µ à¤¤à¥\80  $1 à¤ªà¤°à¥\8dयà¤\82त à¤\85दà¥\8dययावतà¥\8d à¤\86हà¥\87. à¤\9cासà¥\8dतà¥\80तà¤\9cासà¥\8dत {{PLURAL:$4|à¤\8fà¤\95 à¤ªà¥\8dरतिफळ |$4 à¤ªà¥\8dरतिफळà¥\87}} à¤¸à¤¯à¥\80मधà¥\8dयà¥\87 à¤\85सतात.',
+'querypage-no-updates' => 'सधà¥\8dया à¤¯à¤¾ à¤ªà¤¾à¤¨à¤¾ à¤\95रिता à¤¨à¤µà¥\80सà¤\82सà¥\8dà¤\95रणà¥\87 à¤\85नà¥\81पलबà¥\8dध à¤\95à¥\87लà¥\80 à¤\86हà¥\87त.à¤\86तà¥\8dताà¤\9a à¤¯à¥\87थà¥\80ल à¤µà¤¿à¤¦à¤¾ à¤¤à¤°à¥\8bताà¤\9cा à¤¹à¥\8bणार à¤¨à¤¾à¤¹à¥\80.',
+'wrong_wfQuery_params' => 'wfQuery()साठà¥\80 à¤\9aà¥\81à¤\95िà¤\9aà¥\80 à¤ªà¥\8dराà¤\9aलà¥\87 à¤¦à¤¿à¤²à¥\87लà¥\80 आहेत<br />
+(कार्य) function: $1<br />
+(पृच्छा)Query: $2',
 'viewsource' => 'स्रोत पहा',
 'viewsource-title' => '$1 चा उगम बघा',
-'actionthrottled' => 'à¤\95à¥\83तà¥\80 à¤\85वरà¥\82दà¥\8dध (throttle) केली',
-'actionthrottledtext' => 'आंतरजाल-चिखलणी विरोधी उपायाच्या दृष्टीने(anti-spam measure), ही कृती थोड्या कालावधीत असंख्यवेळा करण्यापासून तुम्हाला प्रतिबंधित करण्यात आले आहे, आणि आपण या मर्यादेचे उल्लंघन केले आहे. कृपया थोड्या वेळाने पुन्हा प्रयत्न करा.',
-'protectedpagetext' => 'हे पान बदल होऊ नयेत म्हणून सुरक्षित केले आहे.',
+'actionthrottled' => 'à¤\95à¥\83तà¥\80 à¤¨à¤¿à¤¯à¤¾à¤®à¤\95(थà¥\8dरà¥\89à¤\9fल) केली',
+'actionthrottledtext' => 'आंतरजाल-चिखलणी विरोधी उपायाच्या दृष्टीने(अँटी स्पॅम मेझर ), ही कृती थोड्या कालावधीत असंख्यवेळा करण्यापासून, तुम्हाला प्रतिबंधित करण्यात आले आहे, आणि आपण या मर्यादेचे उल्लंघन केले आहे. कृपया थोड्या वेळाने पुन्हा प्रयत्न करा.',
+'protectedpagetext' => 'हà¥\87 à¤ªà¤¾à¤¨ à¤¬à¤¦à¤² à¤\85थवा à¤\87तर à¤\95à¥\83तà¥\80 à¤¹à¥\8bà¤\8a à¤¨à¤¯à¥\87त à¤®à¥\8dहणà¥\82न à¤¸à¥\81रà¤\95à¥\8dषित à¤\95à¥\87लà¥\87 à¤\86हà¥\87.',
 'viewsourcetext' => 'तुम्ही या पानाचा स्रोत पाहू शकता व प्रत करू शकता:',
-'viewyourtext' => 'तुम्ही या पानाचे स्त्रोत पाहू शकता व प्रत करू शकता',
-'protectedinterface' => 'हे पान सॉफ्टवेअरला इंटरफेस लेखन पुरवते, म्हणून दुरूपयोग टाळण्यासाठी संरक्षित केलेले आहे.',
-'editinginterface' => "'''सावधान:''' तुम्ही संचेतनाचे (Software) संपर्क माध्यम मजकूर असलेले पान संपादित करित आहात. या पानावरील बदल इतर सदस्यांच्या सदस्य संपर्क माध्यमाचे स्वरूप बदलू शकते. भाषांतरासाठी  कृपया मिडीयाविकि स्थानिकीकरण प्रकल्पाच्या [//translatewiki.net/wiki/Main_Page?setlang=mr translatewiki.net] सुविधेचा उपयोग करण्याबद्दल विचार करा.",
-'sqlhidden' => 'छूपी एस्क्यूएल पृच्छा (SQL query hidden)',
+'viewyourtext' => "तुम्ही या पानाची, '''तुमची संपादने''' पाहू शकता व त्याची प्रत करू शकता:",
+'protectedinterface' => 'हे पान सॉफ्टवेअरला इंटरफेस लेखन पुरवते, म्हणून दुरूपयोग टाळण्यासाठी संरक्षित केलेले आहे.
+
+सर्व विकिंवर, अनुवाद जोडण्याकरता किंवा बदलण्याकरता अथवा शुद्धलेखन चिकित्सेकरीता , कृपया [//translatewiki.net/ translatewiki.net], या मिडियाविकि स्थानिकीकरण प्रकल्पावर जा.',
+'editinginterface' => "'''सावधान:''' तुम्ही संचेतनाचे (सॉफ्टवेअर) संपर्क माध्यम मजकूर असलेले पान संपादित करित आहात. या पानावरील बदल या विकिवरील इतर सदस्यांच्या सदस्य संपर्क माध्यमाचे स्वरूप बदलू शकते.सर्व विकिंवरील भाषांतरासाठी  कृपया मिडीयाविकि स्थानिकीकरण प्रकल्पाच्या [//translatewiki.net/ translatewiki.net]या सुविधेचा वापर करा.",
+'sqlhidden' => 'छूपी एस्क्यूएल पृच्छा (एसक्यूएल क्वेरी हिडन)',
 'cascadeprotected' => 'हे पान संपादनांपासून सुरक्षित केले गेलेले आहे, कारण ते खालील {{PLURAL:$1|पानात|पानांमध्ये}} अंतर्भूत केलेले आहे, की जे पान/जी पाने शिडी पर्यायाने सुरक्षित आहेत:
 $2',
-'namespaceprotected' => "'''$1''' नामविश्वातील पाने बदलण्याची आपणांस परवानगी नाही.",
-'customcssprotected' => 'या पानावर इतर सदस्याच्या व्यक्तिगत पसंती असल्यामुळे, तुम्हाला हे सीएसएस पान संपादित करण्याची परवानगी नाही.',
-'customjsprotected' => 'या पानावर इतर सदस्याच्या व्यक्तिगत पसंती असल्यामुळे, तुम्हाला हे JavaScript पान संपादित करण्याची परवानगी नाही.',
+'namespaceprotected' => "'''$1''' नामविश्वातील पाने संपादण्याची आपणांस परवानगी नाही.",
+'customcssprotected' => 'या पानावर इतर सदस्याची वैयक्तिक मांडणी असल्यामुळे, तुम्हाला हे सीएसएस पान संपादित करण्याची परवानगी नाही.',
+'customjsprotected' => "या पानावर इतर सदस्याची वैयक्तिक मांडणी असल्यामुळे, तुम्हाला हे 'जावास्क्रिप्ट' पान संपादित करण्याची परवानगी नाही.",
+'mycustomcssprotected' => 'या सीएसएस (CSS) पानावरील मजकूर बदलण्याची आपणास परवानगी नाही.',
+'mycustomjsprotected' => 'या जावास्क्रिप्ट पानावर संपादन करण्याची आपणास परवानगी नाही.',
+'myprivateinfoprotected' => 'आपणास आपली वैयक्तिक माहिती बदलण्याची परवानगी नाही.',
+'mypreferencesprotected' => 'आपणास आपला पसंतीक्रम बदलण्याची परवानगी नाही.',
 'ns-specialprotected' => 'विशेष पाने संपादित करता येत नाहीत.',
-'titleprotected' => "या शीर्षकाचे पान सदस्य [[User:$1|$1]]ने निर्मित करण्यापासून सुरक्षित केलेले आहे.
-''$2'' हे कारण नमूद केलेले आहे.",
+'titleprotected' => 'या शीर्षकाचे पान सदस्य [[User:$1|$1]]ने निर्मितीपासून सुरक्षित केलेले आहे.त्याने याचे ""$2"" हे कारण नमूद केलेले आहे.',
+'filereadonlyerror' => '"$1" ला सुधार अशक्य आहे कारण संचिकाभांडार  "$2" हे \'फक्त वाचा\'(रीड ओन्ली) या श्रेणीतच आहे.
+
+ज्या प्रशासकाने हे कुलुपबंद केले त्यांनी त्यांनी दिलेले स्पष्टीकरण आहे: "$3"',
 'invalidtitle-knownnamespace' => '"$2" नामविश्वात "$3" हे अयोग्य शीर्षक',
+'invalidtitle-unknownnamespace' => 'अनोळखी नामविश्वाच्या आकड्यासह अवैध मथळा $1 व मजकूर "$2"',
 'exception-nologin' => 'प्रवेश केलेला नाही',
 'exception-nologin-text' => 'हे करण्यासाठी आपल्याला या विकिवर सदस्यनावाने प्रवेश करायला हवा.',
 
 # Virus scanner
-'virus-badscanner' => "à¤\9aà¥\81à¤\95à¥\80à¤\9aà¥\87 à¤\95à¥\89नà¥\8dफिà¤\97रà¥\87शन: à¤µà¥\8dहायरस à¤¸à¥\8dà¤\95à¥\85नर à¤\85नà¥\8bळà¤\96à¥\80: ''$1''",
-'virus-scanfailed' => 'सà¥\8dà¤\95à¥\85न à¤ªà¥\82रà¥\8dण à¤\9dालà¥\87 à¤¨à¤¾à¤¹ी (कोड $1)',
+'virus-badscanner' => "à¤\96राब à¤µà¤¿à¤¨à¥\8dयास (à¤\95à¥\89नà¥\8dफिà¤\97रà¥\87शन): à¤\85नà¥\8bळà¤\96à¥\80 à¤µà¥\8dहायरस à¤¸à¥\8dà¤\95à¥\85नर: ''$1''",
+'virus-scanfailed' => 'à¤\95à¥\8dरमवà¥\80à¤\95à¥\8dषण (सà¥\8dà¤\95à¥\85न) à¤\85यशसà¥\8dवी (कोड $1)',
 'virus-unknownscanner' => 'अनोळखी ऍन्टीव्हायरस:',
 
 # Login and logout pages
@@ -724,35 +749,68 @@ $2',
 'welcomecreation-msg' => 'तुमचे खाते उघडण्यात आले आहे.
 आपल्या [[Special:Preferences|{{SITENAME}} पसंती]] बदलण्यास विसरू नका.',
 'yourname' => 'तुमचे नाव',
+'userlogin-yourname' => 'सदस्यनाम',
+'userlogin-yourname-ph' => 'आपले सदस्यनाव टाका',
+'createacct-another-username-ph' => 'आपले सदस्यनाव टाका',
 'yourpassword' => 'तुमचा परवलीचा शब्द',
+'userlogin-yourpassword' => 'परवलीचा शब्द(पासवर्ड)',
+'userlogin-yourpassword-ph' => 'आपला परवलीचा शब्द टाका',
+'createacct-yourpassword-ph' => 'परवलीचा शब्द टाका',
 'yourpasswordagain' => 'तुमचा परवलीचा शब्द पुन्हा लिहा',
+'createacct-yourpasswordagain' => 'परवलीच्या शब्दाची परत नोंद करा',
+'createacct-yourpasswordagain-ph' => 'पुन्हा परवलीचा शब्द टाका',
 'remembermypassword' => 'माझा प्रवेश या संगणकावर लक्षात ठेवा (जास्तीत जास्त $1 {{PLURAL:$1|दिवस|दिवसांसाठी}})',
-'securelogin-stick-https' => 'प्रवेशानंतर एचटीटीपीएसच्या संपर्कात रहा',
-'yourdomainname' => 'तुमचे क्षेत्र (डॉमेन) :',
+'userlogin-remembermypassword' => 'मला नोंदीकृतच(लॉग्ड-ईन) ठेवा',
+'userlogin-signwithsecure' => 'सुरक्षित जोडणी(सेक्युअर कनेक्शन) वापरा',
+'securelogin-stick-https' => "प्रवेशानंतर 'एचटीटीपीएस'शी  जुळलेले रहा",
+'yourdomainname' => 'तुमचे क्षेत्र (डोमेन) :',
 'password-change-forbidden' => 'तुम्ही या विकिवर तुमचा संकेतशब्द बदलू शकत नाही.',
 'externaldberror' => 'विदागार ’खातरजमा’ (प्रमाणितीकरण) त्रुटी होती अथवा तुम्हाला तुमचे बाह्य खाते अद्ययावत  करण्याची परवानगी नाही.',
-'login' => 'प्रवेश करा',
-'nav-login-createaccount' => 'सदस्य प्रवेश',
-'loginprompt' => '{{SITENAME}}मध्ये दाखल होण्याकरिता  स्मृतिशेष उपलब्ध (Cookie enable)असणे आवश्यक आहे.',
-'userlogin' => 'दाखल व्हा /सदस्य खाते उघडा',
-'userloginnocreate' => 'प्रवेश करा',
-'logout' => 'बाहेर पडा',
-'userlogout' => 'बाहेर पडा',
-'notloggedin' => 'प्रवेशाची नोंदणी झालेली नाही!',
-'nologin' => "आपण सदस्यत्व घेतलेले नाही का? '''$1'''.",
+'login' => 'सनोंद-प्रवेश(लॉगईन)',
+'nav-login-createaccount' => 'सनोंद-प्रवेशित व्हा /सदस्य खाते उघडा',
+'loginprompt' => '{{SITENAME}}मध्ये दाखल होण्याकरिता  स्मृतिशेष उपलब्ध (कुकिज एनेबल)असणे आवश्यक आहे.',
+'userlogin' => 'सनोंद-प्रवेशित व्हा /सदस्य खाते उघडा',
+'userloginnocreate' => 'सनोंद-प्रवेश करा',
+'logout' => 'सनोंद-गमन करा',
+'userlogout' => 'सनोंद-गमन करा',
+'notloggedin' => 'आपण सनोंद-प्रवेशित नाहीत',
+'userlogin-noaccount' => 'आपले खाते नाही?',
+'userlogin-joinproject' => '{{SITENAME}}मध्ये सहभागी व्हा',
+'nologin' => 'आपले सदस्यखाते नाही काय? $1.',
 'nologinlink' => 'सदस्य खाते तयार करा',
-'createaccount' => 'नवीन खात्याची नोंदणी करा',
-'gotaccount' => "जुने खाते आहे? '''$1'''.",
-'gotaccountlink' => 'प्रवेश करा',
-'userlogin-resetlink' => 'प्रवेश तपशील विसरला आसाल तर येथे टिचकी मारा.',
-'createaccountmail' => 'ई-मेल द्वारे',
+'createaccount' => 'नवीन खाते तयार करा',
+'gotaccount' => 'पूर्वीचे खाते आहे? $1.',
+'gotaccountlink' => 'सनोंद-प्रवेश करा',
+'userlogin-resetlink' => 'सनोंद-प्रवेश तपशील विसरला असाल तर येथे टिचकी मारा.',
+'userlogin-resetpassword-link' => 'परवलीचा शब्द पुन्हा जुळवा (रिसेट)',
+'helplogin-url' => 'Help:प्रवेश नोंदीसाठी(लॉगिंग-ईन)',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|प्रवेश  नोंदीसाठी सहाय्य(लॉग ईन)]]',
+'createacct-join' => 'खाली आपली माहिती भरा',
+'createacct-another-join' => 'नविन खात्याबाबतची माहिती येथे खाली टाका.',
+'createacct-emailrequired' => 'विपत्र पत्ता(ई-मेल)',
+'createacct-emailoptional' => 'विपत्र पत्ता(ई-मेल)(ऐच्छिक)',
+'createacct-email-ph' => 'आपला विपत्र पत्ता(ई-मेल) टाका',
+'createacct-another-email-ph' => 'आपला विपत्रपत्ता (ई-मेल) टाका',
+'createaccountmail' => 'तात्पुरता अनियत (रॅन्डम) परवलीचा शब्द तयार करून तो खाली नमूद विपत्रपत्त्यावर पाठवा',
+'createacct-realname' => 'खरे नाव (ऐच्छिक)',
 'createaccountreason' => 'कारण:',
+'createacct-reason' => 'कारण',
+'createacct-reason-ph' => 'आपण दुसरे खाते कां बनवीत आहात',
+'createacct-captcha' => 'सुरक्षा तपासणी',
+'createacct-imgcaptcha-ph' => 'वर दिसत असलेला मजकूर येथे टाका',
+'createacct-submit' => 'आपले खाते निर्माण करा',
+'createacct-another-submit' => 'दुसरे नवीन खाते तयार करा',
+'createacct-benefit-heading' => '{{SITENAME}} हे आपल्यासारख्याच लोकांनी बनविलेले आहे',
+'createacct-benefit-body1' => '{{PLURAL:$1|edit|संपादने}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|लेख}}',
+'createacct-benefit-body3' => 'अलीकडील {{PLURAL:$1|योगदानकर्ता|योगदानकर्ते}}',
 'badretype' => 'आपला परवलीचा शब्द चुकीचा आहे.',
 'userexists' => 'या नावाने सदस्याची नोंदणी झालेली आहे.
 कृपया दुसरे सदस्य नाव निवडा.',
-'loginerror' => 'आपल्या प्रवेश नोंदणीमध्ये चूक झाली आहे',
+'loginerror' => 'सनोंद-प्रवेशात चूक झाली आहे',
+'createacct-error' => 'खाते तयार करण्यात चुकी',
 'createaccounterror' => 'हे खाते तयार करता येऊ शकले नाही:$1',
-'nocookiesnew' => 'सदसà¥\8dय à¤\96ातà¥\87 à¤\89à¤\98डलà¥\87 ,पण à¤¤à¥\81मà¥\8dहà¥\80 à¤\96ातà¥\87 à¤µà¤¾à¤ªà¤°à¥\82न à¤¦à¤¾à¤\96ल à¤\9dालà¥\87लà¥\87 à¤¨à¤¾à¤¹à¥\80 à¤\86हात.{{SITENAME}} à¤¸à¤¦à¤¸à¥\8dयाà¤\82ना à¤¦à¤¾à¤\96ल à¤\95रà¥\82न à¤\98à¥\87ताना à¤¤à¥\8dयाà¤\82à¤\9aà¥\8dया à¤¸à¥\8dमà¥\83तिशà¥\87ष (cookies) à¤µà¤¾à¤ªà¤°à¤¤à¥\87.तà¥\81मà¥\8dहà¥\80 à¤¸à¥\8dमà¥\83तिशà¥\87ष à¤¸à¥\81विधा à¤\85नà¥\81पलबà¥\8dध à¤\9fेवली आहे.ती कृपया उपलब्ध करा,आणि नंतर तुमच्या नवीन सदस्य नावाने आणि परवलीने दाखल व्हा.',
+'nocookiesnew' => 'सदसà¥\8dय à¤\96ातà¥\87 à¤¤à¤¯à¤¾à¤° à¤\9dालà¥\87 ,पण à¤¤à¥\81मà¥\8dहà¥\80 à¤¸à¤¨à¥\8bà¤\82द-पà¥\8dरवà¥\87शित(लà¥\89à¤\97à¥\8dडà¤\88न) à¤¨à¤¾à¤¹à¥\80त.{{SITENAME}} à¤¸à¤¦à¤¸à¥\8dयाà¤\82ना à¤¸à¤¨à¥\8bà¤\82द-पà¥\8dरवà¥\87श à¤¦à¥\87ताà¤\82ना à¤¤à¥\8dयाà¤\82à¤\9aà¥\87 à¤¸à¥\8dमà¥\83तिशà¥\87ष (à¤\95à¥\81à¤\95िà¤\9c) à¤µà¤¾à¤ªà¤°à¤¤à¥\87.तà¥\81मà¥\8dहà¥\80 à¤¸à¥\8dमà¥\83तिशà¥\87ष à¤¸à¥\81विधा à¤\85नà¥\81पलबà¥\8dध à¤ ेवली आहे.ती कृपया उपलब्ध करा,आणि नंतर तुमच्या नवीन सदस्य नावाने आणि परवलीने दाखल व्हा.',
 'nocookieslogin' => '{{SITENAME}} सदस्यांना दाखल करून घेताना त्यांच्या स्मृतिशेष (cookies) वापरते.तुम्ही स्मृतिशेष सुविधा अनुपलब्ध टेवली आहे.स्मृतीशेष सुविधा कृपया उपलब्ध करा,आणि दाखल होण्यासाठी पुन्हा प्रयत्न करा.',
 'nocookiesfornew' => 'हे सदस्य खाते अस्तित्वात नाही, त्यामुळे आम्ही त्याच्या स्रोताची खात्री करू शकलो नाही.
 तुमचे स्मृतिशेष उपलब्ध असण्याची खात्री करा, किंवा थोड्या वेळाने हे पान पुन्हा पहा.',
@@ -782,7 +840,7 @@ $2',
 'blocked-mailpassword' => 'संपादनापासून तुमच्या अंकपत्त्यास आडविण्यात आले आहे,आणि म्हणून दुरूपयोग टाळ्ण्याच्या दृष्टीने परवलीचाशब्द परत मिळवण्यास सुद्धा मान्यता उपलब्ध नाही.',
 'eauthentsent' => 'नामांकित ई-मेल पत्त्यावर एक निश्चितता स्वीकारक ई-मेल पाठविला गेला आहे.
 खात्यावर कोणताही इतर ई-मेल पाठविण्यापूर्वी - तो ई-मेल पत्ता तुमचाच आहे, हे सुनिश्चित करण्यासाठी - तुम्हाला त्या ई-मेल मधील सूचनांचे पालन करावे लागेल.',
-'throttled-mailpassword' => 'माà¤\97à¥\80ल {{PLURAL:$1|à¤\8fà¤\95ा à¤¤à¤¾à¤¸à¤¾à¤®à¤§à¥\8dयà¥\87|$1 à¤¤à¤¾à¤¸à¤¾à¤\82मधà¥\8dयà¥\87}} à¤ªà¤°à¤µà¤²à¥\80à¤\9aा à¤¶à¤¬à¥\8dद à¤¬à¤¦à¤²à¤£à¥\8dयासाठà¥\80à¤\9aà¥\80 à¤¸à¥\82à¤\9aना à¤ªà¤¾à¤ à¤µà¤¿à¤²à¥\87लà¥\80 à¤\86हà¥\87. à¤¦à¥\81रà¥\81पयà¥\8bà¤\97 à¤\9fाळणà¥\8dयासाठà¥\80 {{PLURAL:$1|एका तासामध्ये|$1 तासांमध्ये}} फक्त एकदाच सूचना दिली जाईल.',
+'throttled-mailpassword' => 'माà¤\97à¥\80ल {{PLURAL:$1|तासात|$1 à¤¤à¤¾à¤¸à¤¾à¤\82त}} à¤ªà¤°à¤µà¤²à¥\80à¤\9aा à¤¶à¤¬à¥\8dद à¤¬à¤¦à¤²à¤£à¥\8dयासाठà¥\80à¤\9aà¥\80 à¤¸à¥\82à¤\9aना à¤µà¤¿à¤ªà¤¤à¥\8dरादà¥\8dवारà¥\87 à¤ªà¤¾à¤ à¤µà¤¿à¤²à¥\87लà¥\80 à¤\86हà¥\87. à¤¦à¥\81रà¥\81पयà¥\8bà¤\97 à¤\9fाळणà¥\8dयासाठà¥\80, {{PLURAL:$1|एका तासामध्ये|$1 तासांमध्ये}} फक्त एकदाच सूचना दिली जाईल.',
 'mailerror' => 'विपत्र पाठवण्यात त्रुटी: $1',
 'acct_creation_throttle_hit' => 'माफ करा, तुम्ही आत्तापर्यंत {{PLURAL:$1|१ खाते उघडले आहे|$1 खाती उघडली आहेत}}. तुम्हाला आणखी खाती उघडता येणार नाहीत.',
 'emailauthenticated' => 'तुमचा विपत्रपत्ता $3 येथे $2 यावेळी तपासण्यात आला आहे.',
@@ -793,7 +851,7 @@ $2',
 'cannotchangeemail' => 'या विकिवर खात्याचा ईमेल बदलता येत नाही',
 'emaildisabled' => 'हे संकेतस्थळ विपत्र पाठवू शकत नाही.',
 'accountcreated' => 'खाते उघडले.',
-'accountcreatedtext' => '$1 चे सदस्यखाते उघडले.',
+'accountcreatedtext' => '[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|चर्चा]]) चे सदस्यखाते तयार करण्यात आले आहे.',
 'createaccount-title' => '{{SITENAME}} साठीची सदस्य नोंदणी',
 'createaccount-text' => 'तुमच्या विपत्र पत्त्याकरिता {{SITENAME}} ($4)वर "$2" नावाच्या कुणी "$3" परवलीने खाते उघडले आहे. कृपया आपण सदस्य प्रवेश करून आपला परवलीचा शब्द बदलावा.
 
@@ -808,6 +866,7 @@ $2',
 # Email sending
 'php-mail-error-unknown' => 'पीएचपीच्या विपत्र() पर्यायात अज्ञात चूक',
 'user-mail-no-addy' => 'ईमेल पत्त्या विना ईमेल पाठवण्यचा प्रयत्न केला',
+'user-mail-no-body' => 'रिकामे किंवा अत्यंत छोटा मजकूर असलेले विपत्र पाठविण्याचा प्रयत्न करण्यात आला',
 
 # Change password dialog
 'resetpass' => 'परवलीचा शब्द बदला',
@@ -826,34 +885,36 @@ $2',
 'resetpass-wrong-oldpass' => 'अवैध किंवा अस्थायी परवलीचा शब्द.
 कदाचित तुम्ही आधीच तो यशस्वीरीत्या बदलला असेल किंवा नवीन तात्पुरता परवलीचा शब्द मागवला असेल.',
 'resetpass-temp-password' => 'तात्पुरता परवलीचा शब्द',
+'resetpass-abort-generic' => 'परवलीचा शब्दबदल विस्तारकाद्वारे नाकारण्यात आला.',
 
 # Special:PasswordReset
 'passwordreset' => 'परवलीचा शब्द पूर्ववत करा',
-'passwordreset-text' => 'तुमच्या खात्याच्या माहितीसंदर्भात विपत्राद्वारे अनुस्मारक येण्यासाठी हा अर्ज पूर्ण भरा.',
+'passwordreset-text-one' => 'आपला परवलीचा शब्द बदलण्यास हे आवेदन भरा.',
+'passwordreset-text-many' => '{{PLURAL:$1|आपला परवलीचा शब्द पुनर्स्थापित करण्यास कोणताही एक तुकडा वापरा.}}',
 'passwordreset-legend' => 'परवलीचा शब्द पूर्ववत करा',
 'passwordreset-disabled' => 'या विकिवर परवलीचा शब्द पुनर्स्थापित करता येत नाही.',
-'passwordreset-pretext' => '{{PLURAL:$1||खालील माहितीच्या भागांपैकी एक भाग लिहा}}',
+'passwordreset-emaildisabled' => "या विकिवर विपत्र पाठविणे 'अशक्य' करण्यात आलेले आहे.",
 'passwordreset-username' => 'सदस्यनाव:',
 'passwordreset-domain' => 'डोमेन',
 'passwordreset-capture' => 'ईमेल कशी असेल ते बघायचेय ?',
 'passwordreset-capture-help' => 'या चौकटीत खूण केली तर, ईमेल (तात्पुर्त्या परवली शब्दा सोबत) दखवण्यत व प्रयोगकर्त्त्यस पाठवण्यत येइल',
 'passwordreset-email' => 'विपत्र पत्ता',
 'passwordreset-emailtitle' => '{{SITENAME}} वर खात्याची माहिती',
-'passwordreset-emailtext-ip' => 'कुणीतरी (कदाचित तुम्ही, अंकपत्ता $1 कडून) {{SITENAME}} करिता ’नवा परवलीचा शब्दांक पाठवावा’ अशी विनंती केली आहे ($4).
-"$2" सदस्याकरिता परवलीचा शब्दांक "$3" झाला आहे.
-तुम्ही आता प्रवेश करा व तुमचा परवलीचा शब्दांक बदला. तुमचा अस्थायी शब्दांक {{PLURAL:$5|एका दिवसात|$5 दिवसांत}} संपेल.
+'passwordreset-emailtext-ip' => 'कुणीतरी (कदाचित तुम्ही, अंकपत्ता $1 वरुन) {{SITENAME}}($4) करिता नविन \'परवलीचा शब्द\' पुनर्स्थापनेबद्दल विनंती केली आहे.
+खालील{{PLURAL:$3|सदस्यखाते}}या विपत्रपत्त्याशी निगडीत आहे: 
+"$2"
+{{PLURAL:$3|हा तात्पुरता परवलीचा शब्द|हे तात्पुरते परवलीचे शब्द}}{{PLURAL:$5|एक दिवस|$5 दिवसात}} मुदतबाह्य होतील.आता आपण लॉग-ईन करून  नविन परवलीचा शब्द निवडा.जर ईतर कोणी ही विनंती केली असेल,किंवा जर आपणास परवलीच शब्द आठवला असेल तर,व जर आपण तो बदलु इच्छित नसाल तर आपण हा संदेश टाळा व आपला जुना परवलीचा शब्द वापरणे सुरू ठेवा.',
+'passwordreset-emailtext-user' => ' {{SITENAME}}वरील सदस्य $1ने {{SITENAME}}($4) करिता नविन \'परवलीचा शब्द\' पुनर्स्थापनेबद्दल विनंती केली आहे.
+खालील{{PLURAL:$3|सदस्यखाते}}या विपत्रपत्त्याशी निगडीत आहे: 
 
-जर ही विनंती इतर कुणी केली असेल किंवा तुम्हाला तुमचा परवलीचा शब्दांक आठवला असेल आणि तुम्ही तो आता बदलू इच्छित नसाल तर, तुम्ही हा संदेश दुर्लक्षित करून जुना परवलीचा शब्दांक वापरत राहू शकता.',
-'passwordreset-emailtext-user' => 'कुणीतरी (कदाचित तुम्ही, सदस्य $1 कडून) {{SITENAME}} करिता ’नवा परवलीचा शब्दांक पाठवावा’ अशी विनंती केली आहे ($4).
-"$2" सदस्याकरिता परवलीचा शब्दांक "$3" झाला आहे.
-तुम्ही आता प्रवेश करा व तुमचा परवलीचा शब्दांक बदला. तुमचा अस्थायी शब्दांक {{PLURAL:$5|एका दिवसात|$5 दिवसांत}} संपेल.
+"$2"
 
-जर ही विनंती इतर कुणी केली असेल किंवा तुम्हाला तुमचा परवलीचा शब्दांक आठवला असेल आणि तुम्ही तो आता बदलू इच्छित नसाल तर, तुम्ही हा संदेश दुर्लक्षित करून जुना परवलीचा शब्दांक वापरत राहू शकता.',
+{{PLURAL:$3|हा तात्पुरता परवलीचा शब्द|हे तात्पुरते परवलीचे शब्द}}{{PLURAL:$5|एक दिवस|$5 दिवसात}} मुदतबाह्य होतील.आता आपण लॉग-ईन करून  नविन परवलीचा शब्द निवडा.जर ईतर कोणी ही विनंती केली असेल,किंवा जर आपणास परवलीच शब्द आठवला असेल तर,व, जर आपण तो बदलु इच्छित नसाल तर आपण हा संदेश टाळा व आपला जुना परवलीचा शब्द वापरणे सुरू ठेवा.',
 'passwordreset-emailelement' => 'सदस्यनाव: $1
 अस्थायी परवलीचा शब्द: $2',
-'passwordreset-emailsent' => 'आठवणीसाठी एक विपत्र पाठवण्यात आले आहे.',
-'passwordreset-emailsent-capture' => 'खाली दाखवल्यानुसार आठवणीकरता ईमेल पाठवला आहे',
-'passwordreset-emailerror-capture' => 'आठवणीकरता खाली दाखवल्यानुसार ईमेल तयार केला होता, पण प्रयोगकरता $1 ला पाठवता आला नाही',
+'passwordreset-emailsent' => "'परवलीचा शब्द' पुनर्स्थापनेबाबत एक विपत्र पाठवण्यात आले आहे.",
+'passwordreset-emailsent-capture' => "'परवलीचा शब्द' पुनर्स्थापनेबाबत एक विपत्र पाठवण्यात आले आहे जे खाली दर्शविण्यात आले आहे.",
+'passwordreset-emailerror-capture' => "'परवलीचा शब्द' पुनर्स्थापनेबाबत एक विपत्र निर्माण करण्यात आले, जे खाली दर्शविण्यात आले आहे.परंतु,{{GENDER:$2|सदस्य}}ला पाठविणे असफल झाले: $1",
 
 # Special:ChangeEmail
 'changeemail' => 'ई-मेल पत्ता बदला',
@@ -867,6 +928,17 @@ $2',
 'changeemail-submit' => 'ईमेल बदला',
 'changeemail-cancel' => 'रद्द करा',
 
+# Special:ResetTokens
+'resettokens' => 'ओळखचिन्ह(टोकन) पुनर्स्थापित करा',
+'resettokens-text' => 'येथे आपल्या खात्यात असलेला व्यक्तिगत मजकूरापर्यंत पोचण्यासाठी आपण ओळखचिन्ह(टोकन) पुनर्स्थापित करू शकता.
+आपण जर तो अपघाताने कोणासमवेत सहभागीला असेल किंवा आपले खात्याची आपण तडजोड केली असल्यास, हे करावयास हवे.',
+'resettokens-no-tokens' => 'पुनर्स्थापित करण्यासाठी कोणतीही ओळखचिन्हे नाहीत.',
+'resettokens-legend' => 'ओळखचिन्ह(टोकन) पुनर्स्थापित करा',
+'resettokens-tokens' => 'ओळखचिन्हे:',
+'resettokens-token-label' => '$1 (सद्य मुल्य: $2)',
+'resettokens-done' => 'ओळखचिन्हे पुनर्स्थापन.',
+'resettokens-resetbutton' => 'निवडलेली ओळखचिन्हे पुनर्स्थापित करा',
+
 # Edit page toolbar
 'bold_sample' => 'ठळक मजकूर',
 'bold_tip' => 'ठळक',
@@ -948,18 +1020,23 @@ $2',
 'noarticletext' => 'या लेखात सध्या काहीही मजकूर नाही.
 तुम्ही विकिपीडियावरील इतर लेखांमध्ये या [[Special:Search/{{PAGENAME}}|मथळ्याच्या शोध घेऊ शकता]], <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} इतर याद्या शोधा],
 किंवा हा लेख [{{fullurl:{{FULLPAGENAME}}|action=edit}} लिहू शकता]</span>.',
-'noarticletext-nopermission' => 'या à¤²à¥\87à¤\96ात à¤¸à¤§à¥\8dया काहीही मजकूर नाही.
-तुम्ही विकिपीडियावरील इतर लेखांमध्ये या [[Special:Search/{{PAGENAME}}|मथळ्याच्या शोध घेऊ शकता]], <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} इतर याद्या शोधा],
-किंवा हा लेख [{{fullurl:{{FULLPAGENAME}}|action=edit}} लिहू शकता]</span>.',
+'noarticletext-nopermission' => 'सधà¥\8dया à¤¯à¤¾ à¤²à¥\87à¤\96ात  काहीही मजकूर नाही.
+तुम्ही विकिपीडियावरील इतर लेखांमध्ये [[Special:Search/{{PAGENAME}}|या मथळ्याचा शोध घेऊ शकता]], <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAME}}}}आपण या लेखाच्या इतर नोंदी शोधा]</span>,परंतु, आपणास हा लेख लिहीण्याची परवानगी देण्यात येउ शकत नाही.',
+'missing-revision' => '"{{PAGENAME}}" या लेखाचे #$1 हे संस्करण अस्तित्वात नाही.वगळल्या गेलेल्या लेखपानाच्या जुन्या इतिहास-दुव्याचे अनुसरण केल्यामुळे असे होते.याबाबत विस्तृत माहिती  [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} वगळलेल्या नोंदी]येथे बघता येईल.',
 'userpage-userdoesnotexist' => '"<nowiki>$1</nowiki>" सदस्य खात्याची नोंद नाही. कृपया हे पान तुम्ही संपादित किंवा नव्याने तयार करू इच्छिता का या बद्दल विचार करा.',
 'userpage-userdoesnotexist-view' => 'सदस्यखाते "$1"  हे नोंदलेले नाही.',
 'blocked-notice-logextract' => 'हा सदस्य सध्या प्रतिबंधित आहे.
 सर्वांत नवीन प्रतिबंधन यादी खाली संदर्भासाठी दिली आहे:',
 'clearyourcache' => "'''सूचना:''' जतन केल्यावर बदल दिसण्यासाठी तुम्हाला कदाचित न्याहाळकाची सय टाळायला लागेल. असे करण्यासाठी - 
-*'''फायरफॉक्स / सफारी:''' ''Reload'' करताना ''Shift'' दाबून ठेवा, किंवा ''Ctrl-F5'' अथवा ''Ctrl-R'' दाबा (मॅकसाठी ''⌘-R'')
-*'''गूगल क्रोम:''' ''Ctrl-Shift-R'' दाबा (मॅकसाठी ''⌘-Shift-R'')
-*'''इंटरनेट एक्सप्लोरर:''' ''Reload'' करताना ''Ctrl'' दाबून ठेवा, किंवा ''Ctrl-F5'' दाबा
+
+*'''फायरफॉक्स / सफारी:''' साठी ''Reload'' हे टिचकतांना ''Shift'' ही कळ दाबून ठेवा, किंवा ''Ctrl-F5'' अथवा ''Ctrl-R'' कळा एकत्रितपणे दाबा (मॅकसाठी ''⌘-R'').
+
+*'''गूगल क्रोम:''' साठी ''Ctrl-Shift-R'' कळा एकत्रितपणे दाबा (मॅकसाठी ''⌘-Shift-R'')
+
+*'''इंटरनेट एक्सप्लोअरर:''' ''Refresh'' करतांना ''Ctrl'' कळ दाबून ठेवा, किंवा त्याऐवजी ''Ctrl-F5'' दाबा.
+
 *'''कॉन्क्वरर:''' '''Reload''' दाबा किंवा ''F5'' दाबा
+
 *'''ऑपेरा:''' ''Tools → Preferences'' मधून सय रिकामी करा",
 'usercssyoucanpreview' => "'''टीप:'''तुमचे नवे सीएसएस जतन करण्यापूर्वी 'झलक पहा' कळ वापरा.",
 'userjsyoucanpreview' => "'''टीप:''' तुमचा नवा जावास्क्रिप्ट जतन करण्यापूर्वी 'झलक पहा' कळ वापरा.",
@@ -973,12 +1050,16 @@ $2',
 'previewnote' => "'''लक्षात ठेवा की ही फक्त झलक आहे''', बदल अजून जतन करण्यात आलेले नाहीत.",
 'continue-editing' => 'संपादन चालू राहुदे',
 'previewconflict' => 'वरील संपादन क्षेत्रातील मजकूर जतन केल्यावर या झलकेप्रमाणे दिसेल.',
-'session_fail_preview' => "'''क्षमस्व! सत्र विदेच्या क्षयामुळे आम्ही तुमची संपादन प्रक्रिया पार पाडू शकलो नाही.कृपया पुन्हा प्रयत्न करा.जर एवढ्याने काम झाले नाही तर सदस्य खात्यातून बाहेर पडून पुन्हा प्रवेश करून पहा.'''",
+'session_fail_preview' => "'''क्षमस्व! सत्र विदेच्या क्षयामुळे(लॉस ऑफ सेशन डाटा) आम्ही तुमची संपादन प्रक्रिया पार पाडू शकलो नाही.
+कृपया पुन्हा प्रयत्न करा.
+जर एवढ्याने काम झाले नाही तर [[Special:UserLogout|सदस्य खात्यातून बाहेर(लॉग आउट)]]करून पुन्हा प्रवेश करून बघा.'''",
 'session_fail_preview_html' => "'''क्षमस्व! सत्र विदेच्या क्षयामुळे आम्ही तुमची संपादन प्रक्रिया पार पाडू शकलो नाही.'''
 
 ''कारण {{SITENAME}}चे कच्चे HTML चालू ठेवले आहे, जावास्क्रिप्ट हल्ल्यांपासून बचाव व्हावा म्हणून झलक लपवली आहे.''
 
-'''जर संपादनाचा हा सुयोग्य प्रयत्न असेल तर ,कॄपया पुन्हा प्रयत्न करा. जर एवढ्याने काम झाले नाही तर सदस्य खात्यातून बाहेर पडून पुन्हा प्रवेश करून पहा.'''",
+'''जर संपादनाचा हा सुयोग्य प्रयत्न असेल तर ,कॄपया पुन्हा प्रयत्न करा.'''
+
+[[Special:UserLogout|सदस्य खात्यातून बाहेर(लॉग आउट)]]करून पुन्हा प्रवेश करून बघा.",
 'token_suffix_mismatch' => "'''तुमचे संपादन रद्द करण्यात आलेले आहे कारण तुमच्या क्लायंटनी तुमच्या संपादनातील उद्गारवाचक चिन्हांमध्ये (punctuation) बदल केलेले आहेत.
 पानातील मजकूर खराब होऊ नये यासाठी संपादन रद्द करण्यात आलेले आहे.
 असे कदाचित तुम्ही अनामिक proxy वापरत असल्याने होऊ शकते.'''",
@@ -1003,8 +1084,9 @@ $2',
 'copyrightwarning2' => "{{SITENAME}} येथे केलेले कोणतेही लेखन हे इतर संपादकांकरवी बदलले अथवा काढले जाऊ शकते. जर आपणास आपल्या लेखनाचे मुक्त संपादन होणे पसंत नसेल तर येथे संपादन करू नये.<br />
 तुम्ही येथे लेखन करताना हे सुद्धा गृहीत धरलेले असते की येथे केलेले लेखन तुमचे स्वतःचे आणि केवळ स्वतःच्या प्रताधिकार (कॉपीराईट) मालकीचे आहे किंवा प्रताधिकाराने गठित न होणाऱ्या सार्वजनिक ज्ञानक्षेत्रातून घेतले आहे किंवा तत्सम मुक्त स्रोतातून घेतले आहे. तुम्ही संपादन करताना तसे वचन देत आहात (अधिक माहितीसाठी $1 पहा). '''प्रताधिकारयुक्त लेखन सुयोग्य परवानगीशिवाय मुळीच चढवू/भरू नये!'''",
 'longpageerror' => 'त्रूटी:आपण दिलेला मजकूर जास्तीत जास्त शक्य {{PLURAL:$2|one किलोबाईट|$2 किलोबाईट}} पेक्षा अधिक लांबीचा {{PLURAL:$1|one किलोबाईट|$1 किलोबाईट}} आहे.तो जतन केला जाऊ शकत नाही',
-'readonlywarning' => "सावधान:विदागारास भरण-पोषणाकरिता ताळे ठोकले आहे,त्यामुळे सध्या तुम्ही तुमचे संपादन जतन करू शकत नाही.जर तुम्हाला हवे असेल तर नंतर उपयोग करण्याच्या दृष्टीने, तुम्ही मजकूर ’मजकुर संचिकेत’(टेक्स्ट फाईल मध्ये) कापून-चिटकवू शकता.'''
-विदागारास ताळे ठोकलेल्या प्रचालकांनी $1 असे स्पष्टीकरणे दिले आहे",
+'readonlywarning' => "'''सावधान:विदागारास अनुरक्षणासाठी(मेंटेनन्स) ताळे ठोकले आहे,त्यामुळे सध्याच तुम्ही तुमचे संपादन जतन करू शकत नाही.'''
+जर तुम्हाला हवे असेल तर नंतर उपयोग करण्याच्या दृष्टीने, तुम्ही मजकूर नक्कल करुन, पुढील संपादनासाठी ’मजकुर संचिकेत’(टेक्स्ट फाईल)चिटकवू शकता.
+विदागारास ताळे ठोकलेल्या प्रचालकांनी खालील स्पष्टीकरण दिले आहे:$1",
 'protectedpagewarning' => "'''सूचना: हे सुरक्षित पान आहे. फक्त प्रचालक याच्यात बदल करू शकतात.'''",
 'semiprotectedpagewarning' => "'''सूचना:''' हे पान सुरक्षित आहे. फक्त नोंदणीकृत सदस्य याच्यात बदल करू शकतात.",
 'cascadeprotectedwarning' => "'''सावधान:''' हे पान निम्न-लिखीत शिडी-प्रतिबंधीत {{PLURAL:$1|पानात|पानात}} आंतरभूत असल्यामुळे,केवळ प्रचालक सुविधाप्राप्त सदस्यांनाच संपादन करता यावे असे ताळे त्यास ठोकलेले आहे :",
@@ -1019,7 +1101,7 @@ $2',
 'nocreate-loggedin' => 'येथे तुम्हाला नवीन पाने बनवण्याची परवानगी नाही.',
 'sectioneditnotsupported-title' => 'विभाग संपादन समर्थित नाही.',
 'sectioneditnotsupported-text' => 'या लेखामध्ये विभाग संपादन समर्थित नाही.',
-'permissionserrors' => 'परवानà¤\97à¥\80तà¥\80ल à¤¤à¥\8dरà¥\82à¤\9fà¥\80',
+'permissionserrors' => 'परवानà¤\97à¥\80स à¤¨à¤\95ार',
 'permissionserrorstext' => 'खालील{{PLURAL:$1|कारणामुळे|कारणांमुळे}} तुम्हाला तसे करण्याची परवानगी नाही:',
 'permissionserrorstext-withaction' => 'तुम्हाला $2 ची परवानगी नाही, खालील {{PLURAL:$1|कारणासाठी|कारणांसाठी}}:',
 'recreate-moveddeleted-warn' => "'''सूचना: पूर्वी वगळलेला लेख तुम्ही पुन्हा संपादित आहात.'''
@@ -1034,10 +1116,13 @@ $2',
 'edit-gone-missing' => 'नविन पृष्ठ तयार करता आले नाही. पूर्वीपासून अस्तित्वात आहे.',
 'edit-conflict' => 'वादग्रस्त संपादन',
 'edit-no-change' => 'तुमचे संपादन दुर्लक्षित करण्यात आले आहे, कारण माहितीमध्ये काहीही बदल झालेला नाही.',
+'postedit-confirmation' => 'आपले संपादन जतन करण्यात आले आहे.',
 'edit-already-exists' => 'नवीन पान तयार करता येऊ शकले नाही.
 या नावाचे पान आधीच अस्तित्वात आहे.',
 'defaultmessagetext' => 'कसूर पाठ्य मजकूर',
+'content-failed-to-parse' => '$2 चा आशय(कंटेंट) $1 साठी पार्स करण्यात असफलता - नमुना: $3',
 'invalid-content-data' => 'अवैध माहिती',
+'content-not-allowed-here' => '"$1" हा आशय [[$2]] लेखावर टाकण्याची अनुमती नाही.',
 'editwarning-warning' => "या पानावरुन दुसर्‍या पानावर गेल्यास, तुम्ही येथे केलेले बदल जतन होणार नाहीत.
 ही सूचना घालवण्यासाठी ''माझ्या पसंती'' मधील संपादनपसंतीत बदल करा.",
 
@@ -1061,12 +1146,20 @@ $2',
 'parser-template-loop-warning' => 'साचा चक्र मिळाले: [[$1]]',
 'parser-template-recursion-depth-warning' => 'साचा पुनरावर्तन खोली मर्यादा ओलांडली ($1)',
 'language-converter-depth-warning' => 'भाषा रुपांतरण खोली मर्यादा ओलांडली ($1)',
+'node-count-exceeded-category' => 'लेख जेथे पर्वसंधि-गणना(नोड-काऊंट) पार केल्या गेला',
+'node-count-exceeded-warning' => 'लेखाची पर्वसंधि-गणना(नोड-काऊंट) पार झाली',
+'expansion-depth-exceeded-category' => 'लेख जेथे विस्तार-तळ(एक्सपांशन डेप्थ) पार केल्या गेली',
+'expansion-depth-exceeded-warning' => 'लेखाने विस्तार-तळ(एक्सपांशन डेप्थ) पार केला',
+'parser-unstrip-loop-warning' => "'अनस्ट्रिप'(अरोखीत) वलय(लुप) आढळले",
+'parser-unstrip-recursion-limit' => "'अनस्ट्रिप'(अरोखीत) आवर्तन मर्यादा पार झाली ($1)",
+'converter-manual-rule-error' => 'निदेशपुस्तिकेच्या भाषा अनुरुपण नियमामध्ये त्रुटी आढळली',
 
 # "Undo" feature
 'undo-success' => 'संपादन परतवले जाऊ शकते.कृपया, आपण नेमके हेच करू इच्छिता हे खाली दिलेली तुलना पाहू निश्चित करा,आणि नंतर संपादन परतवण्याचे काम पूर्ण करण्याकरिता इच्छित बद्ल जतन करा.',
 'undo-failure' => 'दरम्यान परस्पर विरोधी संपादने झाल्यामुळे आपण हे संपादन परतवू शकत नाही.',
 'undo-norev' => 'हे संपादन परतविता आलेले नाही कारण ते अगोदरच उलटविलेले किंवा वगळलेले आहे.',
 'undo-summary' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|चर्चा]])यांची आवृत्ती $1 परतवली.',
+'undo-summary-username-hidden' => '$1 या अज्ञात सदस्याचे संस्करण पुनर्स्थापित करा',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'खाते उघडू शकत नाही',
@@ -1094,8 +1187,8 @@ $3ने ''$2'' कारण दिले आहे.",
 (मागील) = पूर्वीच्या आवृत्तीशी फरक, छो = छोटा बदल',
 'history-fieldset-title' => 'इतिहास विंचरण करा',
 'history-show-deleted' => 'फक्त काढून टाकलेले',
-'histfirst' => 'सरà¥\8dवात à¤\9cà¥\81नà¥\87',
-'histlast' => 'सरà¥\8dवात à¤¨à¤µà¥\80न',
+'histfirst' => 'सरà¥\8dवात à¤ªà¥\8dराà¤\9aिन',
+'histlast' => 'नविनतम',
 'historysize' => '({{PLURAL:$1|1 बाइट|$1 बाइट}})',
 'historyempty' => '(रिकामे)',
 
@@ -1198,10 +1291,11 @@ $1",
 'revdelete-concurrent-change' => '$2, $1 ची वस्तू संपादताना चूक: तुम्ही तिला संपादताना दुसऱ्या व्यक्तिने वस्तूस संपादले असावे.
 कृपया याद्या तपासा.',
 'revdelete-only-restricted' => '$2, $1 ची वस्तू लपवताना चूक: तुम्ही इतर दृश्यता पर्यायांना निवडल्याशिवाय प्रचालकांपासून वस्तू लपवू शकत नाही.',
-'revdelete-reason-dropdown' => '*सामान्य वगळण्याची कारणे
+'revdelete-reason-dropdown' => '* वगळण्याची सामान्य कारणे
 ** प्रताधिकार उल्लंघन
-** अयोग्य व्यक्तिगत माहिती
-** अनुपयोगी माहिती',
+** अयोग्य टिप्पणी किंवा व्यक्तिगत माहिती
+** अयोग्य सदस्यनाम
+** उच्च दर्जाची खोटी/बदनामीकारक माहिती',
 'revdelete-otherreason' => 'इतर / आणखी कारण:',
 'revdelete-reasonotherlist' => 'इतर कारणे',
 'revdelete-edit-reasonlist' => 'वगळण्याची कारणे संपादित करा',
@@ -1250,8 +1344,10 @@ $1",
 'compareselectedversions' => 'निवडलेल्या आवृत्त्यांमधील बदल पहा',
 'showhideselectedversions' => 'निवडलेल्या आवृत्त्या दाखवा / लपवा',
 'editundo' => 'उलटवा',
+'diff-empty' => '(काही फरक नाही)',
 'diff-multi' => '{{PLURAL:$2|सदस्याची|$2 सदस्यांच्या}} ({{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}}}} वगळलेल्या नोंदी]येथे बघता येईल.',
 
 # Search results
 'searchresults' => 'शोध निकाल',
@@ -1273,7 +1369,6 @@ $1",
 'searchmenu-legend' => 'विकल्प शोधा',
 'searchmenu-exists' => "'''या विकिवर \"[[:\$1]]\" या नावाचे पान आहे.'''",
 'searchmenu-new' => "'''या विकिवर \"[[:\$1]]\" हे पान तयार करा!'''",
-'searchhelp-url' => 'Help:साहाय्य पृष्ठ',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|या उपसर्गानिशी असलेली पाने न्याहाळा]]',
 'searchprofile-articles' => 'संबंधित पाने',
 'searchprofile-project' => 'साहाय्य व प्रकल्प पाने',
@@ -1295,7 +1390,7 @@ $1",
 'search-interwiki-default' => '$1चे निकाल:',
 'search-interwiki-more' => '(आणखी)',
 'search-relatedarticle' => 'जवळील',
-'mwsuggest-disable' => 'AJAX सजेशन्स रद्द करा',
+'mwsuggest-disable' => 'शोध सुचवणी रद्द करा',
 'searcheverything-enable' => 'सर्वनामविश्वांमध्ये शोधा:',
 'searchrelated' => 'जवळील',
 'searchall' => 'सर्व',
@@ -1314,10 +1409,11 @@ $1",
 'powersearch-togglenone' => 'काहीही नाही',
 'search-external' => 'बाह्य शोध',
 'searchdisabled' => '{{SITENAME}} शोध अनुपलब्ध केला आहे.तो पर्यंत गूगलवरून शोध घ्या.{{SITENAME}}च्या मजकुराची त्यांची सूचिबद्धता शिळी असण्याची शक्यता असू शकते हे लक्षात घ्या.',
+'search-error' => 'शोध घेतांना घडलेली त्रूटी:$1',
 
 # Preferences page
 'preferences' => 'माझ्या पसंती',
-'mypreferences' => 'माà¤\9dà¥\8dया à¤ªà¤¸à¤\82तà¥\80',
+'mypreferences' => 'पसà¤\82तà¥\80à¤\95à¥\8dरम',
 'prefs-edits' => 'संपादनांची संख्या:',
 'prefsnologin' => 'प्रवेश केलेला नाही',
 'prefsnologintext' => 'तुम्हाला सदस्य पसंती बदलण्यासाठी <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} प्रवेश]</span> करावा लागेल.',
@@ -1347,7 +1443,6 @@ $1",
 'resetprefs' => 'न जतन केलेले बदल रद्द करा',
 'restoreprefs' => 'सर्व डिफॉल्ट मांडणी पूर्ववत करा.',
 'prefs-editing' => 'संपादन',
-'prefs-edit-boxsize' => 'संपादन खिडकीचा आकार',
 'rows' => 'ओळी:',
 'columns' => 'स्तंभ:',
 'searchresultshead' => 'शोध',
@@ -1358,9 +1453,7 @@ $1",
 'recentchangesdays-max' => 'जास्तीतजास्त $1 {{PLURAL:$1|दिवस|दिवस}}',
 'recentchangescount' => 'अलीकडील बदल, इतिहास व नोंद पानांमध्ये दाखवायाच्या संपादनांची संख्या:',
 'prefs-help-recentchangescount' => 'यात नुकतेच झालेले बदल, पानांचे इतिहास व याद्या या गोष्टी असतात.',
-'prefs-help-watchlist-token' => 'या क्षेत्रत गुपित किल्ली प्रदान केल्यस तुमच्या निरीक्षणयादीसाठी एक आरएसएस फीड उत्पन्न होईल.
-कोणीही ज्याला या क्षेत्रातील किल्ली माहीत असेल तुमची निरीक्षणयादी वाचू शकतो, त्यमुळे कोणतीही सुरक्षित किल्ली निवडा.
-येथे एक यंत्रजनित किल्ली दिलेली आहे गरज असल्यस तुम्ही ती वपरु शकता: $1',
+'prefs-help-watchlist-token2' => "ही आपल्या निरिक्षणसूचीच्या 'वेब फिड'ची गुप्त चाबी आहे.ज्या कोणास त्याची माहिती होईल तो आपली निरिक्षणसूची बघू शकेल,म्हणुन कोणास यात सहभागी करून घेउ नका.[[Special:ResetTokens|पुनर्स्थापनाची आपणास गरज असल्यास येथे टिचकी द्या]].",
 'savedprefs' => 'तुमच्या पसंती जतन केल्या आहेत.',
 'timezonelegend' => 'वेळक्षेत्र',
 'localtime' => 'स्थानिक वेळ:',
@@ -1380,7 +1473,7 @@ $1",
 'timezoneregion-indian' => 'हिंदी महासागर',
 'timezoneregion-pacific' => 'प्रशांत महासागर',
 'allowemail' => 'इतर सदस्यांकडून माझ्या ई-मेल पत्त्यावर ई-मेल येण्यास मुभा द्या',
-'prefs-searchoptions' => 'शोध विकल्प',
+'prefs-searchoptions' => 'शोध',
 'prefs-namespaces' => 'नामविश्वे',
 'defaultns' => 'या नामविश्वातील अविचल शोध :',
 'default' => 'अविचल',
@@ -1390,11 +1483,10 @@ $1",
 'prefs-common-css-js' => 'मिळून वापरलेले सर्व त्वचांसाठींचे सीएसएस / जावास्क्रिप्ट:',
 'prefs-reset-intro' => 'आपन द्दीलेले सर्व प्रीफ्र्न्सेस् वपर्न्यासथि तुम्ही हे पेज् वापरू शकता.',
 'prefs-emailconfirm-label' => 'विपत्र निश्चितीकरण:',
-'prefs-textboxsize' => 'संपादन खिडकीचा आकार',
 'youremail' => 'विपत्र:',
-'username' => 'सदस्यनाम:',
-'uid' => 'सदस्य खाते:',
-'prefs-memberingroups' => 'खालील {{PLURAL:$1|गटाचा|गटांचा}} सदस्य:',
+'username' => '{{GENDER:$1|सदस्यनाम}}:',
+'uid' => '{{GENDER:$1|सदस्य}}खाते:',
+'prefs-memberingroups' => '{{PLURAL:$1|गटातील|गटांतील}}{{GENDER:$2|सदस्य}} :',
 'prefs-registration' => 'नोंदणीची वेळ:',
 'yourrealname' => 'तुमचे खरे नाव:',
 'yourlanguage' => 'भाषा:',
@@ -1420,7 +1512,9 @@ $1",
 'prefs-signature' => 'स्वाक्षरी',
 'prefs-dateformat' => 'तारीख रचना',
 'prefs-timeoffset' => 'वेळ बरोबरी',
-'prefs-advancedediting' => 'प्रगत पर्याय',
+'prefs-advancedediting' => 'सर्वसामान्य',
+'prefs-editor' => 'संपादक',
+'prefs-preview' => 'झलक',
 'prefs-advancedrc' => 'प्रगत पर्याय',
 'prefs-advancedrendering' => 'प्रगत पर्याय',
 'prefs-advancedsearchoptions' => 'प्रगत पर्याय',
@@ -1428,6 +1522,7 @@ $1",
 'prefs-displayrc' => 'दर्शन पर्याय',
 'prefs-displaysearchoptions' => 'दर्शन पर्याय',
 'prefs-displaywatchlist' => 'दर्शन पर्याय',
+'prefs-tokenwatchlist' => 'ओळखचिन्ह',
 'prefs-diffs' => 'फरक',
 
 # User preference: email validation using jQuery
@@ -1455,6 +1550,8 @@ $1",
 'userrights-notallowed' => 'तुमच्या सदस्य खात्यास सदस्य अधिकारांची निश्चिती करण्याची परवानगी नाही.',
 'userrights-changeable-col' => 'गट जे तुम्ही बदलू शकता',
 'userrights-unchangeable-col' => 'गट जे तुम्ही बदलू शकत नाही',
+'userrights-conflict' => 'सदस्य-हक्क विसंवाद!कृपया आपले बदल पुन्हा प्रयुक्त करा.',
+'userrights-removed-self' => 'आपण आपले हक्क यशस्वीरित्या काढलेत.म्हणुन, या पानात आपण दाखल होऊ शकणार नाही.',
 
 # Groups
 'group' => 'गट:',
@@ -1498,7 +1595,7 @@ $1",
 'right-reupload-shared' => 'स्थानिक पातळीवरून शेअर्ड चित्र धारिकेतील संचिकांवर पुनर्लेखन करा',
 'right-upload_by_url' => 'एखादी संचिका URL सहित चढवा',
 'right-purge' => 'एखाद्या पानाची सय रिकामी करा',
-'right-autoconfirmed' => 'नà¥\8bà¤\82दणà¥\80à¤\95à¥\83त à¤¸à¤¦à¤¸à¥\8dयापà¥\8dरमाणà¥\87 à¤µà¤¾à¤\97णà¥\82à¤\95 à¤®à¤¿à¤³à¤µà¤¾',
+'right-autoconfirmed' => 'à¤\86यपà¥\80 à¤\86धारित à¤¦à¤°-मरà¥\8dयादà¥\87à¤\9aा à¤ªà¥\8dरभाव à¤ªà¤¡à¥\81 à¤¦à¥\87à¤\8a à¤¨à¤\95ा.',
 'right-bot' => 'स्वयंचलित कार्याप्रमाणे वागणूक मिळवा',
 'right-nominornewtalk' => 'चर्चा पृष्ठावर छोटी संपादने जी नवीन चर्चा दर्शवितात ती नकोत',
 'right-apihighlimits' => 'API पृच्छांमध्ये वरची मर्यादा वापरा',
@@ -1519,12 +1616,20 @@ $1",
 'right-ipblock-exempt' => 'आइपी ब्लॉक्स कडे दुर्लक्ष करा',
 'right-proxyunbannable' => 'प्रॉक्सी असताना ब्लॉक्स कडे दुर्लक्ष करा',
 'right-unblockself' => 'अप्रतिबंधित करा',
-'right-protect' => 'सुरक्षितता पातळी बदला',
-'right-editprotected' => 'सुरक्षित पाने संपादा',
+'right-protect' => 'सुरक्षा पातळी बदलवा व उतार-प्रतिबंधित पानांचे संपादन करा',
+'right-editprotected' => ' "{{int:protect-level-sysop}}"म्हणून नमुद केलेली सुरक्षित पाने संपादा',
+'right-editsemiprotected' => '"{{int:protect-level-autoconfirmed}}" म्हणून नमुद केलेली सुरक्षित पाने संपादा',
 'right-editinterface' => 'सदस्य पसंती बदला',
 'right-editusercssjs' => 'इतर सदस्यांच्या CSS व JS संचिका संपादित करा',
 'right-editusercss' => 'इतर सदस्यांच्या CSS संचिका संपादित करा',
 'right-edituserjs' => 'इतर सदस्यांच्या JS संचिका संपादित करा',
+'right-editmyusercss' => "स्वत:च्या सदस्यनामाच्या 'सीएसएस' संचिका संपादा",
+'right-editmyuserjs' => "स्वत:च्या सदस्यनामाच्या 'जावास्क्रिप्ट' संचिका संपादा",
+'right-viewmywatchlist' => 'स्वत:ची निरीक्षणसूची बघा',
+'right-editmywatchlist' => 'स्वत:ची निरीक्षणसूची संपादा.नोंद घ्या कि काही क्रिया या अधिकाराशिवायच पाने जोडतील.',
+'right-viewmyprivateinfo' => 'आपली स्वत:ची वैयक्तिक माहिती बघा (उदा.विपत्रपत्ता, खरे नाव)',
+'right-editmyprivateinfo' => 'आपली स्वत:ची वैयक्तिक माहिती संपादा (उदा.विपत्रपत्ता, खरे नाव)',
+'right-editmyoptions' => "आपल्या स्वत:चा 'पसंतीक्रम' संपादा",
 'right-rollback' => 'एखादे विशिष्ट पान ज्याने संपादन केले त्याला लवकर पूर्वपदास न्या',
 'right-markbotedits' => 'निवडलेली संपादने सांगकाम्यांची म्हणून जतन करा',
 'right-noratelimit' => 'रेट लिमिट्स चा परिणाम होत नाही.',
@@ -1586,12 +1691,17 @@ $1",
 'action-userrights-interwiki' => 'इतर विकिंवरच्या सदस्यांचे अधिकार संपादित करा',
 'action-siteadmin' => 'माहितीसाठ्याला कुलूप लावा अथवा काढा',
 'action-sendemail' => 'विपत्रे (ई-मेल्स) पाठवा.',
+'action-editmywatchlist' => "'माझी निरीक्षणसूची' संपादा",
+'action-viewmywatchlist' => "'माझी निरीक्षणसूची' बघा",
+'action-viewmyprivateinfo' => 'आपली वैयक्तिक माहिती बघा',
+'action-editmyprivateinfo' => 'आपली वैयक्तिक माहिती संपादा',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|बदल|बदल}}',
 'recentchanges' => 'अलीकडील बदल',
 'recentchanges-legend' => 'अलीकडील बदल पर्याय',
 'recentchanges-summary' => 'विकितील अलीकडील बदल या पानावर दिसतात.',
+'recentchanges-noresult' => 'नमुद कालावधीतील कोणतेही बदला या निकषांशी जुळत नाहीत.',
 'recentchanges-feed-description' => 'या रसदीमधील विकिवर झालेले सर्वात अलीकडील बदल पहा.',
 'recentchanges-label-newpage' => 'या संपादनाने नवीन पान तयार झाले',
 'recentchanges-label-minor' => 'हा एक छोटा बदल आहे',
@@ -1628,7 +1738,6 @@ $1",
 'recentchangeslinked-feed' => 'या पृष्ठासंबंधीचे बदल',
 'recentchangeslinked-toolbox' => 'या पृष्ठासंबंधीचे बदल',
 'recentchangeslinked-title' => '"$1" च्या संदर्भातील बदल',
-'recentchangeslinked-noresult' => 'जोडलेल्या पानांमध्ये दिलेल्या कालावधीत काहीही बदल झालेले नाहीत.',
 'recentchangeslinked-summary' => "हे पृष्ठ एखाद्या विशिष्ट पानाशी (किंवा एखाद्या विशिष्ट वर्गात असणाऱ्या पानांशी) जोडलेल्या पानांवरील बदल दर्शवते.
 तुमच्या [[Special:Watchlist|नित्य पहाण्याच्या सूचीमधील]] पाने '''ठळक''' दिसतील.",
 'recentchangeslinked-page' => 'पृष्ठ नाव:',
@@ -1640,7 +1749,7 @@ $1",
 'reuploaddesc' => 'चढवायच्या पानाकडे परता',
 'upload-tryagain' => 'बदललेले संचिका वर्णन पाठवा',
 'uploadnologin' => 'प्रवेश केलेला नाही',
-'uploadnologintext' => 'संचिका चढविण्यासाठी तुम्हाला [[Special:UserLogin|प्रवेश]] करावा लागेल.',
+'uploadnologintext' => 'संचिका चढविण्यासाठी तुम्हाला $1 करावा लागेल.',
 'upload_directory_missing' => 'अपलोड डिरेक्टरी ($1) सापडली नाही तसेच वेबसर्व्हर ती तयार करू शकलेला नाही.',
 'upload_directory_read_only' => '$1 या डिरेक्टरी मध्ये सर्व्हर लिहू शकत नाही.',
 'uploaderror' => 'चढवण्यात चूक',
@@ -1782,6 +1891,7 @@ $1',
 'backend-fail-internal' => 'पार्श्वभौमीक साठा "$1" यात अज्ञात चूक झाली आहे.',
 'backend-fail-contenttype' => '"$1" मध्ये ठेवलेल्या फाईलचा महितीचा प्रकार कळत नाही',
 'backend-fail-batchsize' => 'पार्श्वभौमीक साठयातील बॅच $1 फाईल{{PLURAL:$1|operation|operations}}; मधे मर्यादित कस्त $२ {{PLURAL:$2|operation|operations}} असू शकते',
+'backend-fail-usable' => 'अपुऱ्या परवानगीमुळे किंवा निर्देशिकेच्या/धारिकेच्या(डिरेक्टरीज/कंटेनर्स) अभावामुळे "$1" संचिका वाचु अथवा लिहू शकत नाही.',
 
 # Lock manager
 'lockmanager-notlocked' => '"$1" ला मोकळे करता आले नाही;ते कुलूपबंद नाही.',
@@ -1900,6 +2010,8 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization कृपया हे
 अधिक माहिती साठी कृपया [$2 संचिका वर्णन पान] पहावे.',
 'sharedupload-desc-here' => 'ही संचिका $1 येथील असून ती इतर प्रकल्पात वापरलेली असू शकते.
 तिचे तेथील [$2 संचिका वर्णन पान] खाली दाखवले आहे.',
+'sharedupload-desc-edit' => "संचिका $1 मधील आहे व ती इतर प्रकल्पांमध्ये वापरली जाऊ शकते.आपणास हवे असल्यास,या पानाच्या[$2 'संचिका वर्णन पान'] येथे,त्याची माहिती संपादु शकता.",
+'sharedupload-desc-create' => "संचिका $1 मधील आहे व ती इतर प्रकल्पांमध्ये वापरली जात असल्याची शक्यता आहे.आपणास हवे असल्यास,या पानाच्या[$2 'संचिका वर्णन पान'] येथे,त्याची माहिती संपादु शकता",
 'filepage-nofile' => 'या नावाची संचिका अस्तित्वात नाही.',
 'filepage-nofile-link' => 'या नावाची संचिका अस्तित्य्वात नाही, पण तुम्ही ती [$1 चढवू शकता].',
 'uploadnewversion-linktext' => 'या संचिकेची नवीन आवृत्ती चढवा',
@@ -1986,7 +2098,14 @@ Input:contenttype/subtype, e.g. <code>image/jpeg</code>.',
 
 'disambiguations' => 'नि:संदिग्धकरण पृष्ठे',
 'disambiguationspage' => 'Template:नि:संदिग्धीकरण',
-'disambiguations-text' => "निम्नलिखीत पाने एका '''नि:संदिग्धकरण पृष्ठास'''जोडली जातात. त्याऐवजी ती सुयोग्य विषयाशी जोडली जावयास हवीत.<br /> जर जर एखादे पान [[MediaWiki:Disambiguationspage]]पासून जोडलेला साचा वापरत असेल तर ते पान '''नि:संदिग्धकरण पृष्ठ''' गृहीत धरले जाते",
+'disambiguations-text' => "निम्नलिखीत पानांस, त्यांना '''नि:संदिग्धिकरण पृष्ठास''' जोडणारा किमान एक दुवा आहे.
+ऐवजी, ती सुयोग्य विषयाशी जोडली जावयास हवीत.<br /> जर एखादे पान [[MediaWiki:Disambiguationspage]]पासून जोडलेला साचा वापरत असेल तर त्या पानास, '''नि:संदिग्धिकरण पृष्ठ''' असे गृहीत धरले जाते.",
+
+'pageswithprop' => "'पृष्ठ गुणधर्म' असणारी पाने",
+'pageswithprop-legend' => 'पृष्ठ गुणधर्म असणारी पाने',
+'pageswithprop-text' => "या पानावर अश्या पानांची यादी आहे जे एक विशिष्ट 'पृष्ठ गुणधर्म' वापरतात.",
+'pageswithprop-prop' => 'गुणधर्माचे नाव:',
+'pageswithprop-submit' => 'चला',
 
 'doubleredirects' => 'दुहेरी-पुनर्निर्देशने',
 'doubleredirectstext' => 'हे पान अशा पानांची सूची पुरवते की जी पुर्ननिर्देशीत पाने दुसऱ्या पुर्ननिर्देशीत पानाकडे निर्देशित झाली आहेत.प्रत्येक ओळीत पहिल्या आणि दुसऱ्या पुर्ननिर्देशनास दुवा दिला आहे सोबतच दुसरे पुर्ननिर्देशन ज्या पानाकडे पोहचते ते पण दिले आहे, जे की बरोबर असण्याची शक्यता आहे ,ते वस्तुतः पहिल्या पानापासूनचेही पुर्ननिर्देशन असावयास हवे.',
@@ -2112,7 +2231,8 @@ Input:contenttype/subtype, e.g. <code>image/jpeg</code>.',
 'allpages-hide-redirects' => 'पुनर्निर्देशने लपवा',
 
 # SpecialCachedPage
-'cachedspecial-viewing-cached-ttl' => 'तुम्ही पाहत आहात या पाठया ची छोटी  आवृत्ती,जी की १ तास ३० मिनिट जुनी असू शकते',
+'cachedspecial-viewing-cached-ttl' => 'तुम्ही या पानाची कॅचड् आवृत्ती पहात आहात. पाहत आहात या पाठया ची छोटी  आवृत्ती,जी $1 ईतकी जुनी असू शकते.',
+'cachedspecial-viewing-cached-ts' => 'तुम्ही या पानाची कॅचड् आवृत्ती पहात आहात. पाहत आहात या पाठया ची छोटी  आवृत्ती,जी पुर्णतः मुळ आवृत्ती नसू शकते.',
 'cachedspecial-refresh-now' => 'आखेरचे दृश्य',
 
 # Special:Categories
@@ -2135,8 +2255,9 @@ Input:contenttype/subtype, e.g. <code>image/jpeg</code>.',
 'linksearch-ns' => 'नामविश्व:',
 'linksearch-ok' => 'शोध',
 'linksearch-text' => '"*.wikipedia.org" सारखी वाईल्डकार्ड्स वापरायला परवानगी आहे.
-किमान एक उच्च-स्तरिय डोमेन (top-level domain) गरजेचे आहे.<br />
-पुढील प्रोटोकॉल्समध्ये चालेल: <code>$1</code> (तुमच्या शोधामध्ये या पैकी कुठलेही टाकू नयेत).',
+किमान एक उच्च-स्तरिय डोमेन,उदा.- "*.org".<br />गरजेचे आहे.
+सहाय्याचे प्रोटोकॉल्स {{PLURAL:$2|protocol|protocols}}:  
+ <code>$1</code>(जर कोणतेही प्रोटोकॉल्स नमूद केल्या गेले नसतील तर http://)हा डिफॉल्ट आहे.',
 'linksearch-line' => '$2 मधून $1 जोडलेले आहे',
 'linksearch-error' => 'वाईल्डकार्ड्स होस्ट नावाच्या फक्त सुरवातीलाच येऊ शकतात.',
 
@@ -2149,7 +2270,7 @@ Input:contenttype/subtype, e.g. <code>image/jpeg</code>.',
 # Special:ActiveUsers
 'activeusers' => 'कार्यरत सदस्यांची यादी',
 'activeusers-intro' => '$1 {{PLURAL:$1|day|days}} मधे शेवटी काम केलेल्या सदस्यांची यादी येथे मिळेल',
-'activeusers-count' => 'शà¥\87वà¤\9fà¤\9aà¥\8dया {{PLURAL:$3|दिवसात|$3 à¤¦à¤¿à¤µà¤¸à¤¾à¤\82त}} $1 {{PLURAL:$1|सà¤\82पादन|सà¤\82पादनà¥\87}}',
+'activeusers-count' => 'शà¥\87वà¤\9fà¤\9aà¥\8dया {{PLURAL:$3|दिवसात|$3 à¤¦à¤¿à¤µà¤¸à¤¾à¤\82त}} $1 {{PLURAL:$1|à¤\95à¥\8dरिया}}',
 'activeusers-from' => 'पुढील शब्दापासून सुरू होणारे सदस्य दाखवा:',
 'activeusers-hidebots' => 'सांगकामे लपवा',
 'activeusers-hidesysops' => 'प्रचालक लपवा',
@@ -2158,7 +2279,8 @@ Input:contenttype/subtype, e.g. <code>image/jpeg</code>.',
 # Special:ListGroupRights
 'listgrouprights' => 'सदस्य गट अधिकार',
 'listgrouprights-summary' => 'खाली या विकिवर दिलेली सदस्य गटांची यादी त्यांच्या अधिकारांसकट दर्शविलेली आहे. प्रत्येकाच्या अधिकारांची अधिक माहिती [[{{MediaWiki:Listgrouprights-helppage}}|इथे]] दिलेली आहे.',
-'listgrouprights-key' => '* <span class="listgrouprights-granted">दिलेले अधिकार</span>
+'listgrouprights-key' => 'विवरण:
+* <span class="listgrouprights-granted">प्रदत्त अधिकार</span>
 * <span class="listgrouprights-revoked">रद्द अधिकार</span>',
 'listgrouprights-group' => 'गट',
 'listgrouprights-rights' => 'अधिकार',
@@ -2180,7 +2302,9 @@ Input:contenttype/subtype, e.g. <code>image/jpeg</code>.',
 'emailuser-title-target' => '{{GENDER:$1|सदस्याला}} विपत्र पाठवा',
 'emailuser-title-notarget' => 'विपत्र (ईमेल) उपयोगकर्ता',
 'emailpage' => 'विपत्र (ईमेल) उपयोगकर्ता',
-'emailpagetext' => 'जर या सदस्याने प्रमाणित विपत्र (ईमेल)पत्ता तिच्या अथवा त्याच्या सदस्य पसंतीत नमूद केला असेल,तर खालील सारणी तुम्हाला एक(च) संदेश पाठवेल.तुम्ही तुमच्या [[Special:Preferences|सदस्य पसंतीत]] नमूद केलेला विपत्र पत्ता "कडून" पत्त्यात येईल म्हणजे  प्राप्तकरता आपल्याला उत्तर देऊ शकेल.',
+'emailpagetext' => 'या {{GENDER:$1|सदस्याला}}विपत्र पाठविण्यास खालील आवेदनाचा आपण वापर करु शकता.
+
+आपल्या [[Special:Preferences|पसंतीक्रमात]] नमूद केलेला विपत्रपत्ता, "च्या कडून" पत्त्यात येईल म्हणजे  प्राप्तकर्ता आपल्याला थेट उत्तर देऊ शकेल.',
 'usermailererror' => 'पत्र बाब त्रुटी वापस पाठवली:',
 'defemailsubject' => '{{SITENAME}} "$1" सदस्याकडून विपत्र',
 'usermaildisabled' => 'सदस्य विपत्र निष्क्रिय आहे',
@@ -2210,17 +2334,15 @@ Input:contenttype/subtype, e.g. <code>image/jpeg</code>.',
 'usermessage-editor' => 'प्रणाली संदेशवाहक',
 
 # Watchlist
-'watchlist' => 'माà¤\9dà¥\80 à¤¨à¤¿à¤¤à¥\8dय à¤ªà¤¹à¤¾à¤£à¥\8dयाà¤\9aà¥\80 सूची',
-'mywatchlist' => 'माà¤\9dà¥\80 à¤¨à¤¿à¤¤à¥\8dय à¤ªà¤¹à¤¾à¤£à¥\8dयाà¤\9aà¥\80 सूची',
+'watchlist' => 'निरà¥\80à¤\95à¥\8dषणसूची',
+'mywatchlist' => 'माà¤\9dà¥\80 à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषणसूची',
 'watchlistfor2' => '$1 $2 साठी',
 'nowatchlist' => 'तुमची पहाऱ्याची सूची रिकामी आहे.',
 'watchlistanontext' => 'तुमच्या पहाऱ्याच्या सूचीमधील बाबी पाहण्याकरता किंवा संपादित करण्याकरता, कृपया $1.',
 'watchnologin' => 'प्रवेश केलेला नाही',
 'watchnologintext' => 'तुमची पहाऱ्याची सूची बदलायची असेल तर तुम्ही [[Special:UserLogin|प्रवेश केलेला]] असलाच पाहीजे.',
 'addwatch' => 'पहाऱ्याच्या सूचीमध्ये टाका',
-'addedwatchtext' => '"[[:$1]]"  हे पान तुमच्या  [[Special:Watchlist|नित्य पहाण्याची सूची]]मध्ये टाकले आहे. या पानावरील तसेच त्याच्या चर्चा पानावरील पुढील बदल येथे दाखवले जातील, आणि   [[Special:RecentChanges|अलीकडील बदलांमध्ये]] पान ठळक दिसेल.
-
-नित्य पहाण्याच्या सूचीतून पान काढायचे असेल तर "पहारा काढा" वर टिचकी द्या.',
+'addedwatchtext' => '"[[:$1]]"  हे पान तुमच्या  [[Special:Watchlist|\'माझी निरीक्षणसूची\']]मध्ये टाकले आहे. या पानावरील तसेच त्याच्या चर्चा पानावरील भविष्यातील बदल तेथे दाखवले जातील',
 'removewatch' => 'पहाऱ्याच्या सूचीतून वगळा',
 'removedwatchtext' => '"[[:$1]]" पान तुमच्या [[Special:Watchlist|पहाऱ्याच्या सूची]]तून वगळण्यात आले आहे.',
 'watch' => 'पहारा',
@@ -2229,10 +2351,9 @@ Input:contenttype/subtype, e.g. <code>image/jpeg</code>.',
 'unwatchthispage' => 'पहारा काढून टाका',
 'notanarticle' => 'मजकुर विरहित पान',
 'notvisiblerev' => 'आवृत्ती वगळण्यात आलेली आहे',
-'watchnochange' => 'प्रदर्शित कालावधीत, तुम्ही नित्य पहाण्यासाठी ठेवलेली कोणतीही बाब संपादित झाली नाही.',
 'watchlist-details' => '{{PLURAL:$1|$1 पान|$1 पाने}} पहाऱ्याच्या सूचीमध्ये, चर्चा पाने मोजलेले नाहीत.',
-'wlheader-enotif' => 'विपतà¥\8dर à¤¸à¥\82à¤\9aना à¤¸à¥\81विधा à¤\89पलबà¥\8dध केली.',
-'wlheader-showupdated' => "तà¥\81मà¥\8dहà¥\80 à¤ªà¤¾à¤¨à¤¾à¤\82स à¤¦à¤¿à¤²à¥\87लà¥\8dया à¤¶à¥\87वà¤\9fà¤\9aà¥\8dया à¤­à¥\87à¤\9fà¥\80 à¤ªà¤¾à¤¸à¥\82न à¤¬à¤¦à¤²à¤²à¥\87लà¥\80 à¤ªà¤¾à¤¨à¥\87 '''ठळक''' दाखवली आहेत.",
+'wlheader-enotif' => 'विपतà¥\8dर à¤\85धिसà¥\82à¤\9aना à¤¸à¥\81विधा à¤¶à¤\95à¥\8dय केली.',
+'wlheader-showupdated' => "तà¥\80 à¤ªà¤¾à¤¨à¥\87, à¤\9cà¥\80 à¤\86पण à¤¦à¤¿à¤²à¥\87लà¥\8dया à¤¶à¥\87वà¤\9fà¤\9aà¥\8dया à¤­à¥\87à¤\9fà¥\80नà¤\82तर à¤¬à¤¦à¤²à¤²à¥\87लà¥\80 à¤\86हà¥\87त, '''ठळक''' दाखवली आहेत.",
 'watchmethod-recent' => 'पहाऱ्यातील पानांकरिता अलीकडील बदलांचा तपास',
 'watchmethod-list' => 'अलीकडील बदलांकरिता पहाऱ्यातील पानांचा तपास',
 'watchlistcontains' => 'तुमचा $1 {{PLURAL:$1|पानावर|पानांवर}} पहारा आहे.',
@@ -2254,31 +2375,36 @@ Input:contenttype/subtype, e.g. <code>image/jpeg</code>.',
 'enotif_subject_moved' => '{{SITENAME}}पान $1  {{gender:$2|$2}} ने हलविले',
 'enotif_subject_restored' => '{{SITENAME}} पान $1  {{gender:$2|$2}} ने पुनर्स्थापित केले',
 'enotif_subject_changed' => '{{SITENAME}} पान $1  {{gender:$2|$2}} ने बदलले',
+'enotif_body_intro_deleted' => '{{SITENAME}} हे $1 या लेखनामाचे पान या $PAGEEDITDATE (या संपादनाच्या तारखेस)$2 ने {{GENDER:$2|गाळले.}} कृपया $3 बघा.',
+'enotif_body_intro_created' => '{{SITENAME}} हे $1 या लेखनामाचे पान या $PAGEEDITDATE (या संपादनाच्या तारखेस)$2 ने {{GENDER:$2|तयार केले.}}अद्यतन आवृत्तीसाठी कृपया $3 बघा.',
+'enotif_body_intro_moved' => '{{SITENAME}} हे $1 या लेखनामाचे पान या $PAGEEDITDATE (या संपादनाच्या तारखेस)$2 ने {{GENDER:$2|हलविले.}} अद्यतन आवृत्तीसाठी कृपया $3 बघा.',
+'enotif_body_intro_restored' => '{{SITENAME}} हे $1 या लेखनामाचे पान या $PAGEEDITDATE (या संपादनाच्या तारखेस)$2 ने {{GENDER:$2|पुनर्स्थापित केले.}}अद्यतन आवृत्तीसाठी कृपया $3 बघा.',
+'enotif_body_intro_changed' => '{{SITENAME}} हे $1 या लेखनामाचे पान या $PAGEEDITDATE (या संपादनाच्या तारखेस)$2 ने {{GENDER:$2|बदलविले.}} अद्यतन आवृत्तीसाठी कृपया $3 बघा.',
 'enotif_lastvisited' => 'तुमच्या शेवटच्या भेटीनंतरचे बदल बघणयासाठी पहा - $1.',
 'enotif_lastdiff' => 'हा बदल पहाण्याकरिता $1 पहा.',
 'enotif_anon_editor' => 'अनामिक उपयोगकर्ता $1',
 'enotif_body' => 'प्रिय $WATCHINGUSERNAME,
 
-The {{SITENAME}}चे $PAGETITLE पान $PAGEEDITORने $PAGEEDITDATE तारखेस $CHANGEDORCREATED आहे, सध्याची आवृत्ती पाहण्यासाठी खलील दुव्यावर टिचकी मारा.
+{{SITENAME}}या लेखनावाचे $PAGETITLE (या मथळ्याचे) पान $PAGEEDITOR ने $PAGEEDITDATE ( या तारखेस) $CHANGEDORCREATED तयार केले किंवा बदलले आहे. सध्याची आवृत्ती पाहण्यासाठी खालील दुव्यावर टिचकी मारा.
 $PAGETITLE_URL
 
 $NEWPAGE
 
 संपादकाचा आढावा : $PAGESUMMARY $PAGEMINOREDIT
 
-संपादकास संपर्क करा :
+या à¤¸à¤\82पादà¤\95ास à¤¸à¤\82परà¥\8dà¤\95 à¤\95रा :
 विपत्र: $PAGEEDITOR_EMAIL
 विकि: $PAGEEDITOR_WIKI
 
-तुम्ही पानास भेट देत नाही तोपर्यंत पुढे होणाऱ्या बदलांची इतर कोणतीही वेगळी सूचना नसेल. तुमच्या नित्य पहाण्याच्या सूचीमधील असलेल्या पानांकरिताच्या सूचना पताकांचे पुर्नयोजन करु शकता.
+तुम्ही पानास भेट देत नाही तोपर्यंत,या पानावर पुढे होणाऱ्या कोणत्याही क्रियांची इतर कोणतीही वेगळी सूचना तुम्हाला देण्यात येणार नाही. तुमच्या निरीक्षणसूचीमध्ये असलेल्या पानांच्या सूचना-पताकांचे तुम्ही पुर्नयोजन करु शकता.
 
 तुमची मैत्रीपूर्ण {{SITENAME}} सूचना प्रणाली
 
 --
 
-तà¥\81मà¤\9aà¥\8dया à¤¨à¤¿à¤¤à¥\8dय à¤ªà¤¹à¤¾à¤£à¥\8dयाà¤\9aà¥\8dया à¤ªà¤¾à¤¨à¤¾à¤\82à¤\9aà¥\80 à¤®à¤¾à¤\82डणावळ (à¤\95à¥\8bà¤\82दण) à¤¬à¤¦à¤²à¥\82 à¤¶à¤\95ता, {{canonicalurl:{{#special:EditWatchlist}}}} à¤²à¤¾ à¤­à¥\87à¤\9f à¤¦à¥\8dया
+तà¥\81मà¤\9aà¥\8dया à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषणसà¥\82à¤\9aà¥\80मधà¥\8dयà¥\87 à¤ªà¤¾à¤¨à¤¾à¤\82à¤\9aà¥\80 à¤®à¤¾à¤\82डणावळ (à¤\95à¥\8bà¤\82दण)तà¥\81मà¥\8dहà¥\80 à¤¬à¤¦à¤²à¥\82 à¤¶à¤\95ता, à¤¤à¥\8dयासाठà¥\80 {{canonicalurl:{{#special:EditWatchlist}}}} à¤¯à¤¾ à¤ªà¤¾à¤¨à¤¾à¤µà¤° à¤\9cा.
 
-हà¥\87 à¤ªà¤¾à¤¨ à¤¤à¥\81मà¤\9aà¥\8dया à¤¨à¤¿à¤¤à¥\8dय à¤ªà¤¹à¤¾à¤£à¥\8dयाà¤\9aà¥\8dया à¤¸à¥\82à¤\9aà¥\80तà¥\81न काढून टाकण्यासाठी खालील दुव्यावर टिचकी मारा.
+हà¥\87 à¤ªà¤¾à¤¨ à¤¤à¥\81मà¤\9aà¥\8dया à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषणसà¥\82à¤\9aà¥\80मधà¥\82न काढून टाकण्यासाठी खालील दुव्यावर टिचकी मारा.
 $UNWATCHURL
 
 पुढील साहाय्य आणि प्रतिक्रिया:
@@ -2331,7 +2457,7 @@ $UNWATCHURL
 शेवटचे संपादन [[User:$3|$3]] ([[User talk:$3|Talk]] [[Special:Contributions/$3|{{int:contribslink}}]])-चे होते.',
 'editcomment' => "संपादन सारांश \"''\$1''\" होता.",
 'revertpage' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|चर्चा]]) यांनी केलेले बदल [[User:$1|$1]] यांच्या आवृत्तीकडे पूर्वपदास नेले.',
-'revertpage-nouser' => '(सदसà¥\8dयनाम à¤\95ाढà¥\82न à¤\9fाà¤\95लà¥\87) à¤¯à¤¾à¤\82à¤\9aà¥\87 à¤¬à¤¦à¤² à¤\89लà¤\9fवà¥\82न [[User:$1|$1]] à¤¯à¤¾à¤\82à¤\9aà¥\8dया à¤®à¤¾à¤\97à¥\80ल à¤\86वà¥\83तà¥\8dतà¥\80स à¤¨à¥\8dया.',
+'revertpage-nouser' => '(सदसà¥\8dयनाम à¤²à¤ªà¤µà¤²à¥\87) à¤¯à¤¾à¤\82नà¥\80 à¤\95à¥\87लà¥\87लà¥\87 à¤¬à¤¦à¤² à¤\89लà¤\9fवà¥\82न [[User:$1|$1]] à¤¯à¤¾à¤\82à¤\9aà¥\8dया à¤\86वà¥\83तà¥\8dतà¥\80पà¥\8dरमाणà¥\87 à¤ªà¥\82रà¥\8dववत à¤\95à¥\87लà¥\87.',
 'rollback-success' => '$1 ने उलटवलेली संपादने;$2 च्या आवृत्तीस परत नेली.',
 
 # Edit tokens
@@ -2365,9 +2491,9 @@ $UNWATCHURL
 '''$1''' या पानाची सुरक्षा पातळी पुढीलप्रमाणे:",
 'protect-cascadeon' => 'हे पान सध्या सुरक्षित आहे कारण ते {{PLURAL:$1|या पानाच्या|या पानांच्या}} सुरक्षा शिडीवर आहे. तुम्ही या पानाची सुरक्षा पातळी बदलू शकता, पण त्याने सुरक्षाशिडी मध्ये बदल होणार नाहीत.',
 'protect-default' => 'सर्व सदस्यांना परवानगी द्या',
-'protect-fallback' => '"$1" परवानगीची गरज',
-'protect-level-autoconfirmed' => 'नवà¥\80न à¤µ à¤\85नामिà¤\95 à¤¸à¤¦à¤¸à¥\8dयाà¤\82ना à¤¬à¥\8dलà¥\89à¤\95 à¤\95रा',
-'protect-level-sysop' => 'à¤\95à¥\87वळ à¤ªà¥\8dरà¤\9aालà¤\95ाà¤\82साठà¥\80',
+'protect-fallback' => 'फक्त "$1" परवानगी असणाऱ्यांनाच परवानगी द्या',
+'protect-level-autoconfirmed' => 'फà¤\95à¥\8dत à¤¸à¥\8dवयà¤\82शाबà¥\80त (à¤\91à¤\9fà¥\8bà¤\95नà¥\8dफरà¥\8dम) à¤¸à¤¦à¤¸à¥\8dयाà¤\82नाà¤\9a à¤ªà¤°à¤µà¤¾à¤¨à¤\97à¥\80 à¤\86हà¥\87',
+'protect-level-sysop' => 'à¤\95à¥\87वळ à¤ªà¥\8dरà¤\9aालà¤\95ाà¤\82ना à¤ªà¤°à¤µà¤¾à¤¨à¤\97à¥\80 à¤\86हà¥\87',
 'protect-summary-cascade' => 'शिडी',
 'protect-expiring' => '$1 (UTC) ला संपेल',
 'protect-expiring-local' => '$1 ला सम्पते',
@@ -2429,7 +2555,7 @@ $UNWATCHURL
 'undeletedrevisions' => '{{PLURAL:$1|1 आवर्तन|$1 आवर्तने}} पुनर्स्थापित',
 'undeletedrevisions-files' => '{{PLURAL:$1|1 आवर्तन|$1 आवर्तने}}आणि {{PLURAL:$2|1 संचिका|$2 संचिका}} पुनर्स्थापित',
 'undeletedfiles' => '{{PLURAL:$1|1 संचिका|$1 संचिका}} पुनर्स्थापित',
-'cannotundelete' => 'वà¤\97ळणà¥\87 à¤\89लà¤\9fवणà¥\87 à¤«à¤¸à¤²à¥\87; à¤\87तर à¤\95à¥\81णà¥\80 à¤¤à¥\81मà¤\9aà¥\8dया à¤\86धà¥\80 à¤µà¤\97ळणà¥\87 à¤\89लà¤\9fवलà¥\87 à¤\85सà¥\81 à¤¶à¤\95तà¥\87.',
+'cannotundelete' => 'à¤\89लà¤\9fवणà¥\87 à¤«à¤¸à¤²à¥\87:$1',
 'undeletedpage' => "'''$1ला पुनर्स्थापित केले'''
 
 अलिकडिल वगळलेल्या आणि पुनर्स्थापितांच्या नोंदीकरिता [[Special:Log/delete|वगळल्याच्या नोंदी]] पहा .",
@@ -2460,12 +2586,12 @@ $1',
 'blanknamespace' => '(मुख्य)',
 
 # Contributions
-'contributions' => 'सदस्याचे योगदान',
+'contributions' => '{{GENDER:$1|सदस्य}} योगदान',
 'contributions-title' => '$1 साठी सदस्याचे योगदान',
-'mycontris' => 'माà¤\9dà¥\87 à¤¯à¥\8bà¤\97दान',
+'mycontris' => 'योगदान',
 'contribsub2' => '$1 ($2) साठी',
 'nocontribs' => 'या मानदंडाशी जुळणारे बदल सापडले नाहीत.',
-'uctop' => ' (वर)',
+'uctop' => '(सद्य)',
 'month' => 'या महिन्यापासून (आणि पूर्वीचे):',
 'year' => 'या वर्षापासून (आणि पूर्वीचे):',
 
@@ -2503,7 +2629,7 @@ $1',
 'whatlinkshere-hideredirs' => '$1 पुनर्निर्देशने',
 'whatlinkshere-hidetrans' => '$1 ट्रान्स्क्ल्युजन्स',
 'whatlinkshere-hidelinks' => '$1 दुवे',
-'whatlinkshere-hideimages' => '$1 à¤\9aितà¥\8dर दुवे',
+'whatlinkshere-hideimages' => '$1 à¤¸à¤\82à¤\9aिà¤\95ा दुवे',
 'whatlinkshere-filters' => 'फिल्टर्स',
 
 # Block/unblock
@@ -2666,7 +2792,7 @@ $1',
 पण जर नवीन शीर्षकाचा लेख हा रिकामा असेल अथवा पुनर्निर्देशन असेल (म्हणजेच त्या लेखाला जर संपादन इतिहास नसेल) तर स्थानांतरण होईल. याचा अर्थ असा की जर काही चूक झाली तर तुम्ही पुन्हा जुन्या शीर्षकाकडे स्थानांतरण करू शकता.
 
 '''सूचना!'''
-सà¥\8dथानाà¤\82तरण à¤\95à¥\87लà¥\8dयानà¥\87 एखाद्या महत्वाच्या लेखामध्ये अनपेक्षित बदल होऊ शकतात. तुम्हाला विनंती आहे की तुम्ही पूर्ण काळजी घ्या व होणारे परिणाम समजावून घ्या.
+सà¥\8dथानाà¤\82तरण à¤\95à¥\87लà¥\8dयास एखाद्या महत्वाच्या लेखामध्ये अनपेक्षित बदल होऊ शकतात. तुम्हाला विनंती आहे की तुम्ही पूर्ण काळजी घ्या व होणारे परिणाम समजावून घ्या.
 जर तुम्हाला शंका असेल तर प्रबंधकांशी संपर्क करा.",
 'movepagetext-noredirectfixer' => "खालील अर्ज हा एखाद्या लेखाचे शीर्षक बदलण्यासाठी वापरता येईल. खालील अर्ज भरल्यानंतर लेखाचे शीर्षक बदलले जाईल तसेच त्या लेखाचा सर्व इतिहास हा नवीन लेखामध्ये स्थानांतरित केला जाईल.
 
@@ -2695,7 +2821,7 @@ $1',
 'cant-move-user-page' => 'तुम्हाला सदस्याचे दस्तावैज स्थानांतरीत करण्याची परवानगी नाही.',
 'cant-move-to-user-page' => 'तुम्हाला एखाद्या पानास सदस्य पानांवर (सदस्य उप-पाने सोडून) घेऊन जाण्यास परवानगी नाही.',
 'newtitle' => 'नवीन शीर्षकाकडे:',
-'move-watch' => 'या à¤ªà¤¾à¤¨à¤¾à¤µà¤° à¤²à¤\95à¥\8dष ठेवा',
+'move-watch' => 'सà¥\8dरà¥\8bत à¤ªà¤¾à¤¨ à¤µ à¤²à¤\95à¥\8dष  à¤ªà¤¾à¤¨à¤¾à¤\82वर à¤¨à¤¿à¤\97राणà¥\80 ठेवा',
 'movepagebtn' => 'स्थानांतरण करा',
 'pagemovedsub' => 'स्थानांतरण यशस्वी',
 'movepage-moved' => '\'\'\'"$1" ला "$2" मथळ्याखाली स्थानांतरीत केले\'\'\'',
@@ -2734,6 +2860,7 @@ $1',
 'immobile-target-namespace-iw' => 'पुढे चाल करण्यासाठी हा विकिअंतर्गत दुवा योग्य लक्ष नाही',
 'immobile-source-page' => 'हे पान हलवता येत नाही',
 'immobile-target-page' => 'लक्ष्य मथळा हलवता येत नाही.',
+'bad-target-model' => 'तुमचे ईच्छित स्थानक हे वेगळे आशय नमुना (कंटेंट मॉडेल) वापरते.  $1 चे $2 मध्ये रुपांतर करु शकत नाही.',
 'imagenocrossnamespace' => 'ज्या नामविश्वात संचिका साठविता येत नाहीत, त्या नामविश्वात संचिकांचे स्थानांतरण करता येत नाही',
 'nonfile-cannot-move-to-file' => 'संचिका स्वरूपाची नसलेली माहिती आपणास संचिका नामविश्वात वळती करता येणार नाही',
 'imagetypemismatch' => 'दिलेले संचिकेचे एक्सटेंशन त्या संचिकेच्या प्रकाराशी जुळत नाही',
@@ -2788,6 +2915,7 @@ $1',
 'thumbnail-more' => 'मोठे करा',
 'filemissing' => 'संचिका अस्तित्वात नाही',
 'thumbnail_error' => 'इवलेसे चित्र बनविण्यात अडथळा आलेला आहे: $1',
+'thumbnail_error_remote' => '$1 कडून त्रुटी-संदेश:$2',
 'djvu_page_error' => 'टप्प्याच्या बाहेरचे DjVu पान',
 'djvu_no_xml' => 'DjVu संचिकेकरिता XML ओढण्यात असमर्थ',
 'thumbnail-temp-create' => 'तात्पुरती इवलीशी संचिका बनविता आली नाही',
@@ -2809,6 +2937,7 @@ $1',
 'import-interwiki-templates' => 'साचे आंतरभूत करा',
 'import-interwiki-submit' => 'आयात',
 'import-interwiki-namespace' => 'पाने नामविश्वात स्थानांतरीत करा:',
+'import-interwiki-rootpage' => 'स्थानकाचे मुळ-पृष्ठ (वैकल्पिक):',
 'import-upload-filename' => 'संचिकानाव:',
 'import-comment' => 'प्रतिक्रीया:',
 'importtext' => 'कृपया [[Special:Export|निर्यात सुविधा]] वापरून स्रोत विकिकडून संचिका निर्यात करा,ती तुमच्या तबकडीवर जतन करा आणि येथे चढवा.',
@@ -2841,7 +2970,9 @@ $1',
 'import-error-interwiki' => 'इंटर विकी लिंक साठी $1 पान आरक्षित केल्यामुळे ते इम्पोर्ट करू शकत नाही',
 'import-error-special' => 'विशेष नामविश्वासाठी $1 पान आरक्षित केल्यामुळे ते इम्पोर्ट करू शकत नाही. या नामविश्वात पाने असत नाहीत.',
 'import-error-invalid' => 'नाव अयोग्य असल्याने $1 पान इम्पोर्ट करू शकत नाही.',
+'import-options-wrong' => 'चुकिचे {{PLURAL:$2|विकल्प}}: <nowiki>$1</nowiki>',
 'import-rootpage-invalid' => 'दिलेले मूळ पान अवैध नाव आहे',
+'import-rootpage-nosubpage' => '"$1" नामविश्वाची मुल पाने, उपपानास परवानगी देत नाही.',
 
 # Import log
 'importlogpage' => 'ईम्पोर्ट सूची',
@@ -2960,27 +3091,43 @@ $1',
 'pageinfo-title' => '"$1" च्याबद्दल माहिती',
 'pageinfo-not-current' => 'माफ करा, जुन्या अवृतिला माहिती देणे अक्षक्य आहे|',
 'pageinfo-header-basic' => 'मूलभूत माहिती',
-'pageinfo-header-edits' => 'सà¤\82पादनà¥\87',
+'pageinfo-header-edits' => 'सà¤\82पादनाà¤\82à¤\9aा à¤\87तिहास',
 'pageinfo-header-restrictions' => 'पान सुरक्षा',
 'pageinfo-header-properties' => 'पानाची माहिती',
 'pageinfo-display-title' => 'दृश्य शीर्षक',
+'pageinfo-default-sort' => 'डिफॉल्ट निवड-कळ (सॉर्ट कि)',
 'pageinfo-length' => 'पानाचा आकार (बाइट्समध्ये)',
+'pageinfo-article-id' => 'पृष्ठ-परिचय',
 'pageinfo-language' => 'पानाच्या मजकूराची भाषा',
+'pageinfo-robot-policy' => 'शोध-इंजिनची स्थिती',
 'pageinfo-robot-index' => 'आनुक्रमानीत',
 'pageinfo-robot-noindex' => 'आनुक्रमानीत करू शकत नाही',
 'pageinfo-views' => 'अभिप्रायांची संख्या',
-'pageinfo-watchers' => 'पाहणाऱ्यांची संख्या',
+'pageinfo-watchers' => 'पानावर पहारा देणाऱ्यांची संख्या',
+'pageinfo-few-watchers' => '$1 पेक्षा कमी {{PLURAL:$1|पहारेदार}}',
 'pageinfo-redirects-name' => 'या पानाकडील पुनर्निर्देशने',
+'pageinfo-subpages-name' => 'या पानाचे उप-पान',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|पुनर्निर्देशन|पुनर्निर्देशने}}; $3 {{PLURAL:$3|अ-पुनर्निर्देशन|अ-पुनर्निर्देशने}})',
 'pageinfo-firstuser' => 'पृष्ठ निर्मानक',
 'pageinfo-firsttime' => 'पान निर्मितीचा दिनांक',
 'pageinfo-lastuser' => 'अलीकडील संपादक',
 'pageinfo-lasttime' => 'अलीकडिल संपादनाचा दिनांक',
-'pageinfo-edits' => 'संपादनांची संख्या',
-'pageinfo-authors' => 'वेगळ्या लेखकांची संख्या',
+'pageinfo-edits' => 'एकूण संपादने',
+'pageinfo-authors' => 'सुस्पष्ट-लेखकांची एकुण संख्या',
+'pageinfo-recent-edits' => 'सध्याची संपादनसंख्या (मागील $1 मध्ये)',
+'pageinfo-recent-authors' => 'सुस्पष्ट लेखकांची सध्या असलेली संख्या',
+'pageinfo-magic-words' => 'जादुई {{PLURAL:$1|शब्द}} ($1)',
+'pageinfo-hidden-categories' => 'लपविलेले {{PLURAL:$1|वर्ग}} ($1)',
+'pageinfo-templates' => 'भाषांतर्भावित {{PLURAL:$1|साचा|साचे}} ($1)',
+'pageinfo-transclusions' => '($1) वरील भाषांतर्भावित {{PLURAL:$1|पान|पाने}}',
 'pageinfo-toolboxlink' => 'पानाची माहिती',
+'pageinfo-redirectsto' => 'पुनर्निर्देशन लक्ष्यपान',
 'pageinfo-redirectsto-info' => 'माहिती',
+'pageinfo-contentpage' => 'हे आशय-पान म्हणून मोजण्यात येते',
 'pageinfo-contentpage-yes' => 'होय',
+'pageinfo-protect-cascading' => 'रखणे(प्रोटक्शन्स) येथून प्रपातीत होतात (कॅस्केडिंग)',
 'pageinfo-protect-cascading-yes' => 'होय',
+'pageinfo-protect-cascading-from' => 'रखणे(प्रोटक्शन्स) प्रपातीत होतात (कॅस्केडिंग) येथून',
 'pageinfo-category-info' => 'वर्ग माहिती',
 'pageinfo-category-pages' => 'पानांची संख्या',
 'pageinfo-category-subcats' => 'उपवर्गांची संख्या',
@@ -3002,6 +3149,8 @@ $1',
 'markedaspatrollederror' => 'गस्तीची खूण करता येत नाही',
 'markedaspatrollederrortext' => 'गस्त घातल्याची खूण करण्याकरिता तुम्हाला एक आवर्तन नमूद करावे लागेल.',
 'markedaspatrollederror-noautopatrol' => 'तुम्हाला स्वत:च्याच बदलांवर गस्त घातल्याची खूण करण्याची परवानगी नाही.',
+'markedaspatrollednotify' => "$1 वरील बदल 'पहारा दिला' म्हणून अंकित केले आहेत.",
+'markedaspatrollederrornotify' => "'पहारा दिला' म्हणून अंकित करणे विफल झाले.",
 
 # Patrol log
 'patrol-log-page' => 'टेहळणीतील नोंदी',
@@ -3043,6 +3192,8 @@ $1',
 'file-info-png-looped' => 'विळख्यात सापडलेले',
 'file-info-png-repeat' => '$1 {{PLURAL:$1|वेळा दाखवले|वेळा दाखवले}}',
 'file-info-png-frames' => '$1 {{PLURAL:$1|चौकट|चौकटी}}',
+'file-no-thumb-animation' => 'नोंद घ्या:तांत्रीक मर्यादेमुळे या संचिकेच्या नखुल्यागत-आवृत्तीचे (थंबनेल ) सचेतनीकरण(अॅनिमेशन) करता येउ शकणार नाही.',
+'file-no-thumb-animation-gif' => 'नोंद घ्या:तांत्रीक मर्यादेमुळे या संचिकेच्या, यासारख्या उच्च-विभेदनाच्या(हाय-रिझोल्युशन)  जीआयएफ प्रतिमेचे सचेतनीकरण(अॅनिमेशन) करता येउ शकणार नाही.',
 
 # Special:NewFiles
 'newimages' => 'नवीन संचिकांची यादी',
@@ -3065,11 +3216,25 @@ $1',
 'minutes' => '{{PLURAL:$1|$1 मिनिट|$1 मिनिट}}',
 'hours' => '{{PLURAL:$1|$1 तास|$1 तास}}',
 'days' => '{{PLURAL:$1|$1 दिवस|$1 दिवस}}',
+'weeks' => '{{PLURAL:$1|$1 आठवडा|$1 आठवडे}}',
 'months' => '{{PLURAL:$1|$1 महिना|$1 महिने}}',
 'years' => '{{PLURAL:$1|$1 वर्ष|$1 वर्षे}}',
 'ago' => '$1 पूर्वी',
 'just-now' => 'लगेच',
 
+# Human-readable timestamps
+'hours-ago' => '$1 {{PLURAL:$1|तास}} पूर्वी',
+'minutes-ago' => '$1 {{PLURAL:$1|मिनिट|मिनिटे}} पूर्वी',
+'seconds-ago' => '$1 {{PLURAL:$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
 'bad_image_list' => 'रूपरेषा खालीलप्रमाणे आहे:
 
@@ -3659,7 +3824,6 @@ $5
 'version-other' => 'इतर',
 'version-mediahandlers' => 'मिडिया हॅंडलर',
 'version-hooks' => 'अंकुश',
-'version-extension-functions' => 'अतिविस्तार(एक्स्टेंशन) कार्ये',
 'version-parser-extensiontags' => 'पृथकक विस्तारीत खूणा',
 'version-parser-function-hooks' => 'पृथकक कार्य अंकुश',
 'version-hook-name' => 'अंकुश नाव',
@@ -3668,6 +3832,7 @@ $5
 'version-license' => 'परवाना',
 'version-poweredby-credits' => "हा विकी '''[//www.mediawiki.org/ मीडियाविकी]'''द्वारे संचालित आहे, प्रताधिकारित © २००१-$1 $2.",
 'version-poweredby-others' => 'इतर',
+'version-credits-summary' => 'आम्ही खालील व्यक्तींना, [[Special:Version|मिडियाविकि]]वर त्यांनी दिलेल्या योगदानामुळे, मान्यता देऊ ईच्छितो.',
 'version-license-info' => 'मिडियाविकि हे  मुक्त संगणक प्रणाली विकि पॅकेज आहे.Free Software Foundation प्रकाशित  GNU General Public परवान्याच्या अटीस अनुसरून तुम्ही त्यात बदल आणि/अथवा त्याचे  पुर्नवितरण  करू शकता.
 
 मिडियाविकि  संगणक प्रणाली उपयुक्त ठरेल या आशेने वितरित केली जात असली तरी;कोणत्याही वितरणास अथवा विशिष्ट उद्देशाकरिता योग्यतेची अगदी कोणतीही अप्रत्यक्ष अथवा उपलक्षित   अथवा  निहित अशा अथवा कोणत्याही प्रकारच्या केवळ  कोणत्याही प्राश्वासनाशिवायच (WITHOUT ANY WARRANTY) उपलब्ध आहे.अधिक माहिती करिता   GNU General Public License पहावे.
@@ -3680,6 +3845,17 @@ $5
 'version-entrypoints-header-entrypoint' => 'आत येण्याचा मार्ग',
 'version-entrypoints-header-url' => 'यू॰आर॰एल',
 
+# Special:Redirect
+'redirect' => 'संचिका,सदस्य किंवा आवृत्ती या ओळखणीनुसार पुनर्निर्देशन',
+'redirect-legend' => 'संचिका अथवा पानास पुनर्निर्देशन',
+'redirect-submit' => 'जा',
+'redirect-lookup' => 'बघा:',
+'redirect-value' => 'मुल्य:',
+'redirect-user' => 'सदस्यनाम',
+'redirect-revision' => 'पानाची आवृत्ती',
+'redirect-file' => 'संचिकानाम',
+'redirect-not-exists' => '(योग्य)मुल्य (व्हॅल्यु) सापडले नाही',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'जुळ्या संचिका शोधा',
 'fileduplicatesearch-summary' => 'हॅश किंमतीप्रमाणे जुळ्या संचिका शोधा.',
@@ -3704,7 +3880,7 @@ $5
 'specialpages-group-highuse' => 'सर्वात जास्त वापरली जाणारी पृष्ठे',
 'specialpages-group-pages' => 'पृष्ठ याद्या',
 'specialpages-group-pagetools' => 'पृष्ठ उपकरणे',
-'specialpages-group-wiki' => 'विà¤\95ि à¤¡à¤¾à¤\9fा à¤µ à¤\89पà¤\95रणà¥\87',
+'specialpages-group-wiki' => 'डाटा व उपकरणे',
 'specialpages-group-redirects' => 'पुनर्निर्देशन करणारी विशेष पृष्ठे',
 'specialpages-group-spam' => 'उत्पात साधने',
 
@@ -3765,23 +3941,26 @@ $5
 'htmlform-submit' => 'पाठवा',
 'htmlform-reset' => 'बदल उलटवा',
 'htmlform-selectorother-other' => 'इतर',
+'htmlform-no' => 'नाही',
+'htmlform-yes' => 'होय',
+'htmlform-chosen-placeholder' => 'पर्याय निवडा',
 
 # SQLite database support
 'sqlite-has-fts' => 'पूर्ण-मजकूर शोध समर्थनासहित $1',
 'sqlite-no-fts' => 'पूर्ण-मजकूर शोध समर्थनाविरहित $1',
 
 # New logging system
-'logentry-delete-delete' => '$1 वगळलेले पान $3',
-'logentry-delete-restore' => '$1 restored पृष्ठ  $3',
-'logentry-delete-event' => ' $3: $4 वरील  {{PLURAL:$5|एका नोंद घटने |$5 lनोंद घटनां}} ची दृष्यता $1 बदलली',
-'logentry-delete-revision' => '$3: $4 पानावरील  {{PLURAL:$5|एका आवृत्ती |$5 lआवृत्यां}} ची दृष्यता $1 बदलली',
-'logentry-delete-event-legacy' => '$3 वरील नोंदींची दृष्यता $1 बदलली',
-'logentry-delete-revision-legacy' => '$3 वरील आवृत्त्यांची दृष्यता $1 बदलली',
-'logentry-suppress-delete' => '$1 à¤²à¤ªà¤µà¤²à¥\87  à¤ªà¤¾à¤¨ $3',
-'logentry-suppress-event' => ' $3: $4 वरील  {{PLURAL:$5|एका नोंद घटने |$5 lनोंद घटनां}} ची दृष्यता $1 ने गुप्ततेने  बदलली',
-'logentry-suppress-revision' => '$3: $4 वरील  {{PLURAL:$5|आवृत्ती|$5 lआवृत्यां}} ची दृष्यता $1 ने गुप्ततेने  बदलली',
-'logentry-suppress-event-legacy' => '$3 वरील नोंदींची दृष्यता $1 ने गोपनियतेने  बदलली',
-'logentry-suppress-revision-legacy' => '$3 वरील आवृत्त्यांची दृष्यता $1 ने गोपनियतेने बदलली',
+'logentry-delete-delete' => '$1 {{GENDER:$2|वगळलेले पान}} $3',
+'logentry-delete-restore' => '$1 {{GENDER:$2|पुनर्स्थापित पृष्ठ}} $3',
+'logentry-delete-event' => '$1 ने $3 वर{{PLURAL:$5|नोंद-प्रसंग|$5 नोंद प्रसंगांची}} दृष्यता{{GENDER:$2|बदलली}}:$4',
+'logentry-delete-revision' => '$1 ने $3 पानावर{{PLURAL:$5|आवृत्ती|$5 आवृत्यांची}} दृष्यता{{GENDER:$2|बदलली}}:$4',
+'logentry-delete-event-legacy' => '$1 ने $3 वर नोंद प्रसंगांची {{GENDER:$2|बदलली}}',
+'logentry-delete-revision-legacy' => '$1 ने $3 पानावर आवृत्त्यांची दृष्यता {{GENDER:$2|बदलली}}',
+'logentry-suppress-delete' => '$1 à¤¨à¥\87 $3 à¤ªà¤¾à¤¨ {{GENDER:$2|दडपलà¥\87}}',
+'logentry-suppress-event' => '$1 ने नकळत $3 पानावर {{PLURAL:$5|नोंद प्रसंग|$5 नोंद प्रसंगांची}} दृष्यता {{GENDER:$2|बदलली}}: $4',
+'logentry-suppress-revision' => '$1 ने नकळत $3 पानावर {{PLURAL:$5|संस्करणाची|$5 संस्करणांची}} दृष्यता {{GENDER:$2|बदलली}}: $4',
+'logentry-suppress-event-legacy' => '$1 ने  $3 पानावर नकळत नोंद प्रसंगांची दृष्यता {{GENDER:$2|बदलली}}',
+'logentry-suppress-revision-legacy' => '$1 ने  $3 पानावर नकळत  संस्करणांची दृष्यता {{GENDER:$2|बदलली}}',
 'revdelete-content-hid' => 'माहिती लपवली आहे',
 'revdelete-summary-hid' => 'बदलांचा आढावा लुप्त',
 'revdelete-uname-hid' => 'सदस्यनाम लपवलेले आहे',
@@ -3790,21 +3969,24 @@ $5
 'revdelete-uname-unhid' => 'सदस्यनाम लपवलेले नाही',
 'revdelete-restricted' => 'प्रबंधकांना बंधने दिली',
 'revdelete-unrestricted' => 'प्रबंधकांची बंधने काढली',
-'logentry-move-move' => '  $3पान    $4 कडे  $1 स्थानांतरीत',
-'logentry-move-move-noredirect' => '$1 ने $3 हे पान पुनर्निर्देशीत न करता $4 येथे स्थानांतरीत केले',
-'logentry-move-move_redir' => '$1 यांनी $3 हे पान पुनर्निर्देशन लावून $4 येथे हलवले',
-'logentry-move-move_redir-noredirect' => '$1 ने $3 हे पान पुनर्निर्देशीत न करता $4 येथे पुर्ननिर्देशनावर  स्थानांतरीत केले',
-'logentry-patrol-patrol' => '  $3  पानाच्या  $1 सुचवलेल्या  $4 आवृत्तीस गस्त घातली',
-'logentry-patrol-patrol-auto' => '  $3  पानाच्या  $1 सुचवलेल्या  $4 आवृत्तीस स्वयंचलित गस्त घातली',
-'logentry-newusers-newusers' => 'एक सदस्यखाते $1 तयार केले',
-'logentry-newusers-create' => 'एक सदस्यखाते $1 तयार केले',
-'logentry-newusers-create2' => '$1  ने  सदस्य खाते $3  निर्मित केले  आहे.',
-'logentry-newusers-autocreate' => '$1  खाते स्वयमेव निर्मित झाले आहे.',
-'logentry-rights-rights-legacy' => '$1 ने $3 चे ग्रुप सदस्यत्व बदलले',
+'logentry-move-move' => '$1 ने लेख $3 वरुन $4 ला{{GENDER:$2|हलविला}}',
+'logentry-move-move-noredirect' => '$1 ने मागे पुनर्निर्देशन न ठेवता लेख $3 वरुन $4 ला {{GENDER:$2|हलविला}}',
+'logentry-move-move_redir' => '$1 ने मागे पुनर्निर्देशन ठेउन लेख $3 वरुन $4 ला {{GENDER:$2|हलविला}}',
+'logentry-move-move_redir-noredirect' => '$1 ने $3 हे पान $4 येथे, पुनर्निर्देशन करुन,  पुनर्निर्देशनाची खूण न ठेवता  स्थानांतरीत केले',
+'logentry-patrol-patrol' => '$1 ने $3 या पानाचे  संस्करण $4 वर गस्त घातल्याची{{GENDER:$2| खूण  केली}}',
+'logentry-patrol-patrol-auto' => '$1 ने स्वयंचलितरित्या $3 या पानाचे  संस्करण $4 वर गस्त घातल्याची {{GENDER:$2|खूण  केली}}',
+'logentry-newusers-newusers' => 'एक सदस्यखाते $1 {{GENDER:$2|तयार केले}}',
+'logentry-newusers-create' => 'एक सदस्यखाते $1 {{GENDER:$2|तयार केले}}',
+'logentry-newusers-create2' => '$3 हे सदस्यखाते $1 द्वारा {{GENDER:$2|तयार केल्या गेले}}',
+'logentry-newusers-byemail' => '$3 हे सदस्यखाते $1 द्वारा {{GENDER:$2|तयार केल्या गेले}} व त्याचा परवलीचा शब्द विपत्राद्वारे पाठविल्या गेला',
+'logentry-newusers-autocreate' => 'सदस्यखाते $1 स्वयंचलितरित्या {{GENDER:$2|तयार झाले}}',
+'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|बढती दिल्या गेली}}',
 'rightsnone' => '(काहीही नाही)',
 
 # Feedback
-'feedback-bugornote' => 'जर आपण तांत्रिक प्रश्न  विस्तृतपणे मांडण्यास तयार असाल तर कृपया ($1 गणकदोष वृतांत) पाठवा. नपेक्षा, खाली देण्यात आलेले सोपे आवेदनपत्र वापरा. आपली टिप्पणी "[ $3, $2]" या पानास आपले सदस्यनाव व आपण कोणता ब्राउजर वापरता यासह जोडण्यात येईल.',
+'feedback-bugornote' => 'जर आपण तांत्रिक प्रश्न  विस्तृतपणे मांडण्यास तयार असाल तर कृपया [$1 गणकदोष वृतांत] पाठवा. नपेक्षा, खाली देण्यात आलेले सोपे आवेदनपत्र वापरा. आपली टिप्पणी "[$3 $2]" या पानास आपले सदस्यनाव व आपण कोणता ब्राउजर वापरता यासह जोडण्यात येईल.',
 'feedback-subject' => 'विषय:',
 'feedback-message' => 'संदेश:',
 'feedback-cancel' => 'रद्द करा',
@@ -3833,10 +4015,12 @@ $5
 'api-error-empty-file' => 'तुम्ही प्रस्तुत केलेली संचिका रिकामी होती.',
 'api-error-emptypage' => 'नवीन आणि मोकळी पाने बनवायला परवानगी नाही',
 'api-error-fetchfileerror' => 'अंतर्गत चूक: फाइल मिळवतांना काहीतरी चूक झाली आहे',
+'api-error-fileexists-forbidden' => '"$1" या नावाची संचिका पूर्वीच उपलब्ध आहे व त्यावर पुनर्लेखन करता येऊ शकत नाही.',
+'api-error-fileexists-shared-forbidden' => '"$1" या नावाची संचिका, \'सहभागी संचिका भांडारात\' पूर्वीच उपलब्ध आहे,व त्यावर पुनर्लेखन करता येऊ शकत नाही.',
 'api-error-file-too-large' => 'तुम्ही प्रस्तुत केलेली संचिका आकाराने खूप मोठी होती.',
 'api-error-filename-tooshort' => 'संचिकेचे नाव खूपच छोटे आहे.',
 'api-error-filetype-banned' => 'याप्रकारची संचिका प्रतिबंधित आहे.',
-'api-error-filetype-banned-type' => '$1 {{PLURAL:$4|हà¥\80 à¤ªà¤°à¤µà¤¾à¤¨à¤\97à¥\80 à¤¨à¤¸à¤²à¥\87लà¥\8dया à¤ªà¥\8dरà¤\95ारà¤\9aà¥\80 à¤¸à¤\82à¤\9aिà¤\95ा à¤\86हà¥\87.|हà¥\8dया à¤ªà¤°à¤µà¤¾à¤¨à¤\97à¥\80 à¤¨à¤¸à¤²à¥\87लà¥\8dया à¤ªà¥\8dरà¤\95ारà¤\9aà¥\8dया à¤¸à¤\82à¤\9aिà¤\95ा à¤\86हà¥\87त.}} $2 {{PLURAL:$3|हà¥\80 à¤ªà¤°à¤µà¤¾à¤¨à¤\97à¥\80 à¤\85सलà¥\87लà¥\8dया à¤ªà¥\8dरà¤\95ारà¤\9aà¥\80 à¤¸à¤\82à¤\9aिà¤\95ा à¤\86हà¥\87|हà¥\8dया à¤ªà¤°à¤µà¤¾à¤¨à¤\97à¥\80 à¤\85सलà¥\87लà¥\8dया à¤ªà¥\8dरà¤\95ारà¤\9aà¥\8dया à¤¸à¤\82à¤\9aिà¤\95ा आहेत}}.',
+'api-error-filetype-banned-type' => '$1 {{PLURAL:$4|हà¥\80 à¤ªà¤°à¤µà¤¾à¤¨à¤\97à¥\80 à¤¨à¤¸à¤²à¥\87ला  à¤¸à¤\82à¤\9aिà¤\95ा-पà¥\8dरà¤\95ार à¤\86हà¥\87.|हà¥\8dया à¤ªà¤°à¤µà¤¾à¤¨à¤\97à¥\80 à¤¨à¤¸à¤²à¥\87लà¥\8dया à¤¸à¤\82à¤\9aिà¤\95ा-पà¥\8dरà¤\95ार à¤\86हà¥\87त.}} $2 {{PLURAL:$3|हà¥\80 à¤ªà¤°à¤µà¤¾à¤¨à¤\97à¥\80 à¤\85सलà¥\87ला à¤¸à¤\82à¤\9aिà¤\95ा-पà¥\8dरà¤\95ार à¤\86हà¥\87|हà¥\8dया à¤ªà¤°à¤µà¤¾à¤¨à¤\97à¥\80 à¤\85सलà¥\87लà¥\8dया à¤¸à¤\82à¤\9aिà¤\95ा-पà¥\8dरà¤\95ार आहेत}}.',
 'api-error-filetype-missing' => 'या संचिकेस विस्तार(एक्सटेंशन) नाही.',
 'api-error-hookaborted' => 'तुम्ही केलेला बदल extension ने उलटवला आहे',
 'api-error-http' => 'अंतर्गत त्रुटी: सर्व्हरशी जोडणी होऊ शकली नाही.',
@@ -3852,6 +4036,7 @@ $5
 'api-error-ok-but-empty' => 'आंतरिक त्रुटी : विदादाता प्रतिक्रिया देत नहीं',
 'api-error-overwrite' => 'अस्तित्वात असलेल्या संचिकेवर पुनर्लेखन प्रतिबंधित आहे.',
 'api-error-stashfailed' => 'इन्तरिक त्रुटी : विदादाता तात्पुरत्या स्वरूपाच्या संचिका जमा करण्यात अयशस्वी',
+'api-error-publishfailed' => 'अंतर्गत त्रूटी:विदादात्यास, या तात्पुरत्या संचिकेच्या प्रकाशनास अपयश आले.',
 'api-error-timeout' => 'अपेक्षित वेळेत विदागार (server)ने प्रतिसाद दिला नाही.',
 'api-error-unclassified' => 'एक अज्ञात चूक उद्भवली.',
 'api-error-unknown-code' => 'अज्ञात त्रुटी: "$1"',
@@ -3871,4 +4056,7 @@ $5
 'duration-decades' => '$1 {{PLURAL:$1|दशकापूर्वी|दशकांपूर्वी }}',
 'duration-centuries' => '$1 {{PLURAL:$1|शतकापूर्वी|शतकांपूर्वी }}',
 
+# Image rotation
+'rotate-comment' => '$1 ने चित्र {{PLURAL:$1|डिग्री|डिग्रीज}}ने  घड्याळ्याचे दिशेने फिरविले',
+
 );
index be0640a..b5e743b 100644 (file)
@@ -305,6 +305,18 @@ $messages = array(
 'oct' => 'Okt',
 'nov' => 'Nov',
 'dec' => 'Dis',
+'january-date' => '$1 Januari',
+'february-date' => '$1 Februari',
+'march-date' => '$1 Mac',
+'april-date' => '$1 April',
+'may-date' => '$1 Mei',
+'june-date' => '$1 Jun',
+'july-date' => '$1 Julai',
+'august-date' => '$1 Ogos',
+'september-date' => '$1 September',
+'october-date' => '$1 Oktober',
+'november-date' => '$1 November',
+'december-date' => '$1 Disember',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategori|Kategori}}',
@@ -388,6 +400,7 @@ $messages = array(
 'create-this-page' => 'Cipta laman ini',
 'delete' => 'Hapuskan',
 'deletethispage' => 'Hapuskan laman ini',
+'undeletethispage' => 'Nyahhapuskan halaman ini',
 'undelete_short' => 'Nyahhapus {{PLURAL:$1|satu suntingan|$1 suntingan}}',
 'viewdeleted_short' => 'Papar {{PLURAL:$1|satu|$1}} suntingan dihapuskan',
 'protect' => 'Lindung',
@@ -441,7 +454,6 @@ $1',
 'disclaimers' => 'Penolak tuntutan',
 'disclaimerpage' => 'Project:Penolak tuntutan umum',
 'edithelp' => 'Bantuan menyunting',
-'edithelppage' => 'Help:Menyunting',
 'helppage' => 'Help:Kandungan',
 'mainpage' => 'Laman Utama',
 'mainpage-description' => 'Laman utama',
@@ -471,7 +483,6 @@ $1',
 'newmessagesdifflinkplural' => '{{PLURAL:$1|perubahan|perubahan-perubahan}} terkini',
 'youhavenewmessagesmulti' => 'Anda telah menerima pesanan baru pada $1',
 'editsection' => 'sunting',
-'editsection-brackets' => '[$1]',
 'editold' => 'sunting',
 'viewsourceold' => 'lihat sumber',
 'editlink' => 'sunting',
@@ -591,6 +602,10 @@ Untuk menambah atau menyunting terjemahan untuk semua wiki, sila gunakan projek
 'namespaceprotected' => "Anda tidak mempunyai keizinan untuk menyunting laman dalam ruang nama '''$1'''.",
 'customcssprotected' => 'Anda tidak dibenarkan menyunting laman JavaScript ini kerana ia mengandungi tetapan peribadi pengguna lain.',
 'customjsprotected' => 'Anda tidak dibenarkan menyunting laman JavaScript ini kerana ia mengandungi tetapan peribadi pengguna lain.',
+'mycustomcssprotected' => 'Anda tiada kebenaran untuk menyunting halaman CSS ini.',
+'mycustomjsprotected' => 'Anda tiada kebenaran untuk menyunting halaman JavaScript ini.',
+'myprivateinfoprotected' => 'Anda tidak mempunyai kebenaran untuk menyunting maklumat peribadi anda.',
+'mypreferencesprotected' => 'Anda tidak mempunyai kebenaran untuk menyunting tetapan keutamaan anda.',
 'ns-specialprotected' => 'Laman khas tidak boleh disunting.',
 'titleprotected' => "Tajuk ini telah dilindungi oleh [[User:$1|$1]] daripada dicipta. Sebab yang diberikan ialah ''$2''.",
 'filereadonlyerror' => 'Fail "$1" tidak dapat diubah suai kerana repositori fail "$2" berada dalam ragam baca sahaja.
@@ -616,13 +631,17 @@ Jangan lupa untuk mengubah [[Special:Preferences|keutamaan anda di {{SITENAME}}]
 'yourname' => 'Nama pengguna:',
 'userlogin-yourname' => 'Nama pengguna',
 'userlogin-yourname-ph' => 'Masukkan nama pengguna anda',
+'createacct-another-username-ph' => 'Masukkan nama pengguna',
 'yourpassword' => 'Kata laluan:',
 'userlogin-yourpassword' => 'Kata laluan',
 'userlogin-yourpassword-ph' => 'Masukkan kata laluan anda',
+'createacct-yourpassword-ph' => 'Isikan kata laluan',
 'yourpasswordagain' => 'Ulangi kata laluan:',
+'createacct-yourpasswordagain' => 'Sahkan kata laluan',
+'createacct-yourpasswordagain-ph' => 'Isikan kata laluan semula',
 'remembermypassword' => 'Ingat log masuk saya pada pelayar ini (tidak melebihi $1 {{PLURAL:$1|hari|hari}})',
-'userlogin-remembermypassword' => 'Ingati saya',
-'userlogin-signwithsecure' => 'Daftar masuk dengan pelayan terlindung',
+'userlogin-remembermypassword' => 'Biar saya kekal log masuk',
+'userlogin-signwithsecure' => 'Gunakan sambungan terlindung',
 'securelogin-stick-https' => 'Kekal disambungkan ke HTTPS selepas log masuk',
 'yourdomainname' => 'Domain anda:',
 'password-change-forbidden' => 'Anda tidak dapat mengubah kata laluan di wiki ini.',
@@ -643,14 +662,33 @@ Jangan lupa untuk mengubah [[Special:Preferences|keutamaan anda di {{SITENAME}}]
 'gotaccount' => "Sudah mempunyai akaun? '''$1'''.",
 'gotaccountlink' => 'Log masuk',
 'userlogin-resetlink' => 'Lupa nama pengguna/kata laluan anda?',
+'userlogin-resetpassword-link' => 'Reset kata laluan anda',
 'helplogin-url' => 'Help:Log masuk',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Bantuan untuk log masuk]]',
+'createacct-join' => 'Isikan keterangan anda di bawah.',
+'createacct-another-join' => 'Masukkan maklumat akaun baru di bawah.',
+'createacct-emailrequired' => 'Alamat e-mel',
+'createacct-emailoptional' => 'Alamat e-mel (pilihan)',
+'createacct-email-ph' => 'Isikan alamt e-mel anda',
+'createacct-another-email-ph' => 'Masukkan alamat e-mel',
 'createaccountmail' => 'Gunakan kata laluan rawak yang sementara dan hantarnya ke alamat e-mel yang dinyatakan di bawah',
+'createacct-realname' => 'Nama sebenar (pilihan)',
 'createaccountreason' => 'Sebab:',
+'createacct-reason' => 'Sebab',
+'createacct-reason-ph' => 'Mengapa anda membuka satu lagi akaun',
+'createacct-captcha' => 'Pemeriksaan sekuriti',
+'createacct-imgcaptcha-ph' => 'Isikan teks yang anda lihat di atas',
+'createacct-submit' => 'Wujudkan akaun anda',
+'createacct-another-submit' => 'Buka akaun baru',
+'createacct-benefit-heading' => '{{SITENAME}} dijayakan oleh orang ramai seperti anda.',
+'createacct-benefit-body1' => '{{PLURAL:$1|suntingan}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|halaman}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|penyumbang}} terkini',
 'badretype' => 'Sila ulangi kata laluan dengan betul.',
 'userexists' => 'Nama pengguna yang diisikan telah pun digunakan.
 Sila pilih nama yang lain.',
 'loginerror' => 'Ralat log masuk',
+'createacct-error' => 'Ralat pembukaan akaun',
 'createaccounterror' => 'Tidak dapat mencipta akaun: $1',
 'nocookiesnew' => 'Akaun anda telah dibuka, tetapi anda belum log masuk. {{SITENAME}} menggunakan kuki untuk mencatat status log masuk pengguna. Sila aktifkan sokongan kuki pada pelayar anda, kemudian log masuk dengan nama pengguna dan kata laluan baru anda.',
 'nocookieslogin' => "{{SITENAME}} menggunakan ''cookies'' untuk mencatat status log masuk pengguna. Sila aktifkan sokongan ''cookies'' pada pelayar anda dan cuba lagi.",
@@ -698,7 +736,7 @@ e-mel bagi ciri-ciri berikut tidak boleh dikirim.',
 'cannotchangeemail' => 'Alamat e-mel akaun tidak boleh diubah di wiki ini.',
 'emaildisabled' => 'Tapak ini tidak boleh menghantar e-mel.',
 'accountcreated' => 'Akaun dibuka',
-'accountcreatedtext' => 'Akaun pengguna bagi $1 telah dibuka.',
+'accountcreatedtext' => 'Akaun pengguna [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|bual]]) telah dibuka.',
 'createaccount-title' => 'Pembukaan akaun {{SITENAME}}',
 'createaccount-text' => 'Seseorang telah membuka akaun untuk
 alamat e-mel anda di {{SITENAME}} ($4) dengan nama "$2" dan kata laluan "$3".
@@ -734,14 +772,15 @@ Sila tunggu sebentar dan cuba lagi.',
 'resetpass-wrong-oldpass' => 'Kata laluan sementara atau semasa tidak sah.
 Anda mungkin telah pun berjaya menukar kata laluan anda atau meminta kata laluan sementara yang baru.',
 'resetpass-temp-password' => 'Kata laluan sementara:',
+'resetpass-abort-generic' => 'Penukaran kata laluan telah dihenti paksa oleh sambungan.',
 
 # Special:PasswordReset
 'passwordreset' => 'Set semula kata laluan',
-'passwordreset-text' => 'Lengkapkan borang ini untuk mengeset semula kata laluan.',
+'passwordreset-text-one' => 'Lengkapkan borang ini untuk mengeset semula kata laluan anda.',
+'passwordreset-text-many' => '{{PLURAL:$1|Isi salah satu ruangan untuk mengeset semula kata laluan anda.}}',
 'passwordreset-legend' => 'Set semula kata laluan',
 'passwordreset-disabled' => 'Ciri set semula kata laluan telah dimatikan di wiki ini.',
 'passwordreset-emaildisabled' => 'Ciri-ciri e-mel telah dipadamkan di wiki ini.',
-'passwordreset-pretext' => '{{PLURAL:$1||Isikan data di bawah}}',
 'passwordreset-username' => 'Nama pengguna:',
 'passwordreset-domain' => 'Domain:',
 'passwordreset-capture' => 'Lihat e-mel yang terhasil?',
@@ -956,7 +995,7 @@ Anda boleh berundur dan menyunting laman yang sedia ada, atau [[Special:UserLogi
 'nocreate-loggedin' => 'Anda tidak mempunyai keizinan untuk mencipta laman baru.',
 'sectioneditnotsupported-title' => 'Suntingan bahagian tidak disokong',
 'sectioneditnotsupported-text' => 'Suntingan bahagian tidak disokong di laman ini.',
-'permissionserrors' => 'Tidak Dibenarkan',
+'permissionserrors' => 'Ralat kebenaran',
 'permissionserrorstext' => 'Anda tidak mempunyai keizinan untuk berbuat demikian atas {{PLURAL:$1|sebab|sebab-sebab}} berikut:',
 'permissionserrorstext-withaction' => 'Anda tidak mempunyai keizinan untuk $2, atas {{PLURAL:$1|sebab|sebab-sebab}} berikut:',
 'recreate-moveddeleted-warn' => "'''Amaran: Anda sedang mencipta semula sebuah laman yang pernah dihapuskan.'''
@@ -970,6 +1009,7 @@ Log penghapusan bagi laman ini dilampirkan di bawah untuk rujukan.',
 'edit-gone-missing' => 'Laman tersebut telah dihapuskan dan tidak dapat dikemaskinikan.',
 'edit-conflict' => 'Percanggahan penyuntingan.',
 'edit-no-change' => 'Suntingan anda diabaikan kerana tiada perubahan dibuat pada teks tersebut.',
+'postedit-confirmation' => 'Suntingan anda telah disimpan.',
 'edit-already-exists' => 'Tidak dapat mencipta laman baru kerana ia telah wujud.',
 'defaultmessagetext' => 'Teks mesej asal',
 'content-failed-to-parse' => 'Kandungan $2 tidak dapat dihuraikan untuk model $1: $3',
@@ -1011,6 +1051,7 @@ Argumen-argumen ini telah ditinggalkan.',
 'undo-failure' => 'Suntingan tersebut tidak boleh dibatalkan kerana terdapat suntingan pertengahan yang bercanggah.',
 'undo-norev' => 'Suntingan tersebut tidak boleh dibatalkan kerana tidak wujud atau telah dihapuskan.',
 'undo-summary' => 'Membatalkan semakan $1 oleh [[Special:Contributions/$2|$2]] ([[User talk:$2|Perbincangan]])',
+'undo-summary-username-hidden' => 'Buat asal semakan $1 oleh pengguna tersembunyi',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Akaun tidak dapat dibuka',
@@ -1038,8 +1079,8 @@ Petunjuk: (kini) = perbezaan dengan versi terkini,
 (akhir) = perbezaan dengan versi sebelumnya, K = suntingan kecil.",
 'history-fieldset-title' => 'Lihat sejarah',
 'history-show-deleted' => 'Dihapuskan sahaja',
-'histfirst' => 'Terawal',
-'histlast' => 'Terkini',
+'histfirst' => 'terawal',
+'histlast' => 'terkini',
 'historysize' => '($1 bait)',
 'historyempty' => '(kosong)',
 
@@ -1192,6 +1233,7 @@ Sila pastikan bahawa perubahan ini akan mengekalkan kesinambungan sejarah laman.
 'compareselectedversions' => 'Bandingkan versi-versi yang dipilih',
 'showhideselectedversions' => 'Tunjukkan/sorokkan versi yang dipilih',
 'editundo' => 'batal',
+'diff-empty' => '(Tiada perbezaan)',
 'diff-multi' => '($1 {{PLURAL:$1|semakan pertengahan|semakan pertengahan}} oleh $2 {{PLURAL:$2|pengguna|pengguna}} tidak dipaparkan)',
 'diff-multi-manyusers' => '($1 {{PLURAL:$1|semakan pertengahan|semakan pertengahan}} oleh lebih daripada $2 {{PLURAL:$2|pengguna|pengguna}} tidak dipaparkan)',
 'difference-missing-revision' => '{{PLURAL:$2|Satu semakan|$2 semakan}} bagi perbezaan ini ($1) tidak ditemui.
@@ -1219,7 +1261,6 @@ Butirannya boleh didapati di [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGEN
 'searchmenu-legend' => 'Pilihan carian',
 'searchmenu-exists' => "* Laman '''[[$1]]'''",
 'searchmenu-new' => "'''Cipta laman \"[[:\$1]]\" di wiki ini!'''",
-'searchhelp-url' => 'Help:Kandungan',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Senarai laman dengan awalan ini]]',
 'searchprofile-articles' => 'Laman kandungan',
 'searchprofile-project' => 'Laman bantuan dan projek',
@@ -1256,7 +1297,7 @@ Cuba berikan awalan ''all:'' untuk mencari semua kandungan (termasuk laman perbi
 'powersearch-ns' => 'Cari dalam ruang nama:',
 'powersearch-redir' => 'Termasuk lencongan',
 'powersearch-field' => 'Cari',
-'powersearch-togglelabel' => 'Semak:',
+'powersearch-togglelabel' => 'Pilih:',
 'powersearch-toggleall' => 'Semua',
 'powersearch-togglenone' => 'Tiada',
 'search-external' => 'Carian luar',
@@ -1295,7 +1336,6 @@ Cuba berikan awalan ''all:'' untuk mencari semua kandungan (termasuk laman perbi
 'resetprefs' => 'Set semula',
 'restoreprefs' => 'Pulihkan semua tetapan asali',
 'prefs-editing' => 'Menyunting',
-'prefs-edit-boxsize' => 'Saiz kotak sunting.',
 'rows' => 'Baris:',
 'columns' => 'Lajur:',
 'searchresultshead' => 'Cari',
@@ -1306,9 +1346,6 @@ Cuba berikan awalan ''all:'' untuk mencari semua kandungan (termasuk laman perbi
 'recentchangesdays-max' => '(had $1 hari)',
 'recentchangescount' => 'Bilangan suntingan yang dipaparkan mengikut tetapan asali:',
 'prefs-help-recentchangescount' => 'Ini termasuklah perubahan terkini, sejarah laman dan log.',
-'prefs-help-watchlist-token' => 'Mengisi medan ini dengan kunci rahsia akan menghasilkan suapan RSS untuk senarai pantau anda.
-Sesiapa yang mengetahui kunci dalam medan ini akan dapat membaca senarai pantau anda, jadi pilihlah nilai selamat.
-Di sini ada nilai yang dihasilkan secara rawak yang boleh anda guna: $1',
 'savedprefs' => 'Keutamaan anda disimpan.',
 'timezonelegend' => 'Zon waktu:',
 'localtime' => 'Waktu tempatan:',
@@ -1339,7 +1376,6 @@ Di sini ada nilai yang dihasilkan secara rawak yang boleh anda guna: $1',
 'prefs-reset-intro' => 'Anda boleh menggunakan laman ini untuk menetapkan semula keutamaan anda kepada tetapan asali.
 Tindakan ini tidak boleh dibatalkan.',
 'prefs-emailconfirm-label' => 'Pengesahan e-mel:',
-'prefs-textboxsize' => 'Saiz tetingkap penyuntingan',
 'youremail' => 'E-mel:',
 'username' => '{{GENDER:$1|Nama pengguna}}:',
 'uid' => 'ID {{GENDER:$1|Pengguna}}:',
@@ -1370,7 +1406,9 @@ Tindakan ini tidak boleh dibatalkan.',
 'prefs-signature' => 'Tandatangan',
 'prefs-dateformat' => 'Format tarikh',
 'prefs-timeoffset' => 'Imbangan masa',
-'prefs-advancedediting' => 'Pilihan lanjutan',
+'prefs-advancedediting' => 'Am',
+'prefs-editor' => 'Penyunting',
+'prefs-preview' => 'Pralihat',
 'prefs-advancedrc' => 'Pilihan lanjutan',
 'prefs-advancedrendering' => 'Pilihan lanjutan',
 'prefs-advancedsearchoptions' => 'Pilihan lanjutan',
@@ -1406,6 +1444,8 @@ Tindakan ini tidak boleh dibatalkan.',
 'userrights-changeable-col' => 'Kumpulan yang anda boleh ubah',
 'userrights-unchangeable-col' => 'Kumpulan yang anda tak boleh ubah',
 'userrights-irreversible-marker' => '$1*',
+'userrights-conflict' => 'Hak-hak pengguna bercanggah! Sila terapkan pengubahan anda sekali lagi.',
+'userrights-removed-self' => 'Anda telah berjaya menggugurkan hak-hak sendiri. Oleh yang demikian, anda tidak boleh mengakses halaman ini lagi.',
 
 # Groups
 'group' => 'Kumpulan:',
@@ -1449,7 +1489,7 @@ Tindakan ini tidak boleh dibatalkan.',
 'right-reupload-shared' => 'Mengatasi fail di gedung media kongsi',
 'right-upload_by_url' => 'Memuat naik fail daripada alamat URL',
 'right-purge' => 'Membersihkan cache bagi sesebuah laman tanpa pengesahan',
-'right-autoconfirmed' => 'Menyunting laman yang dilindungi separa',
+'right-autoconfirmed' => 'Terkecuali dari had kadar berasaskan IP',
 'right-bot' => 'Dianggap melakukan tugas-tugas automatik',
 'right-nominornewtalk' => 'Suntingan kecil pada laman perbincangan seseorang pengguna tidak menghidupkan isyarat pesanan baru untuk pengguna itu',
 'right-apihighlimits' => 'Meninggikan had dalam pertanyaan API',
@@ -1470,12 +1510,20 @@ Tindakan ini tidak boleh dibatalkan.',
 'right-ipblock-exempt' => 'Melangkau sekatan IP, sekatan automatik dan sekatan julat',
 'right-proxyunbannable' => 'Melangkau sekatan proksi automatik',
 'right-unblockself' => 'Menyahsekat diri sendiri',
-'right-protect' => 'Menukar peringkat perlindungan dan menyunting laman yang dilindungi',
-'right-editprotected' => 'Menyunting laman yang dilindungi (tanpa perlindungan melata)',
+'right-protect' => 'Mengubah tahap perlindungan serta menyunting halaman yang dilindungi lata',
+'right-editprotected' => 'Menyunting halaman-halaman yang dilindungi sebagai "{{int:protect-level-sysop}}"',
+'right-editsemiprotected' => 'Menyunting halaman-halaman yang dilindungi sebagai "{{int:protect-level-autoconfirmed}}"',
 'right-editinterface' => 'Menyunting antara muka pengguna',
 'right-editusercssjs' => 'Menyunting fail CSS dan JavaScript pengguna lain',
 'right-editusercss' => 'Menyunting fail CSS pengguna lain',
 'right-edituserjs' => 'Menyunting fail JavaScript pengguna lain',
+'right-editmyusercss' => 'Menyunting fail CSS pengguna sendiri',
+'right-editmyuserjs' => 'Menyunting fail JavaScript pengguna sendiri',
+'right-viewmywatchlist' => 'Melihat senarai pantau sendiri',
+'right-editmywatchlist' => 'Menyunting senarai pantau sendiri. Perhatian: sesetengah tindakan masih akan dapat menambah halaman walaupun tanpa hak ini.',
+'right-viewmyprivateinfo' => 'Melihat data peribadi sendiri (cth. alamat e-mel, nama sebenar)',
+'right-editmyprivateinfo' => 'Menyunting data peribadi sendiri (cth. alamat e-mel, nama sebenar)',
+'right-editmyoptions' => 'Menyunting keutamaan sendiri',
 'right-rollback' => 'Mengundurkan suntigan terakhir bagi laman tertentu',
 'right-markbotedits' => 'Menanda suntingan yang diundurkan sebagai suntingan bot',
 'right-noratelimit' => 'Tidak dikenakan had kadar penyuntingan',
@@ -1537,12 +1585,17 @@ Tindakan ini tidak boleh dibatalkan.',
 'action-userrights-interwiki' => 'mengubah hak pengguna dari wiki lain',
 'action-siteadmin' => 'mengunci atau membuka kunci pangkalan data wiki ini',
 'action-sendemail' => 'menghantar e-mel',
+'action-editmywatchlist' => 'menyunting senarai pantau sendiri',
+'action-viewmywatchlist' => 'melihat senarai pantau sendiri',
+'action-viewmyprivateinfo' => 'melihat maklumat peribadi sendiri',
+'action-editmyprivateinfo' => 'menyunting maklumat peribadi sendiri',
 
 # Recent changes
 'nchanges' => '$1 perubahan',
 'recentchanges' => 'Perubahan terkini',
 'recentchanges-legend' => 'Pilihan perubahan terkini',
 'recentchanges-summary' => 'Jejaki perubahan terkini dalam {{SITENAME}} pada laman ini.',
+'recentchanges-noresult' => 'Tiada perubahan dalam tempoh yang diberikan sepadan dengan kriteria ini.',
 'recentchanges-feed-description' => 'Jejaki perubahan terkini dalam {{SITENAME}} pada suapan ini.',
 'recentchanges-label-newpage' => 'Suntingan ini mencipta laman baru',
 'recentchanges-label-minor' => 'Ini ialah suntingan kecil',
@@ -1581,7 +1634,6 @@ Tindakan ini tidak boleh dibatalkan.',
 'recentchangeslinked-feed' => 'Perubahan berkaitan',
 'recentchangeslinked-toolbox' => 'Perubahan berkaitan',
 'recentchangeslinked-title' => 'Perubahan berkaitan dengan $1',
-'recentchangeslinked-noresult' => 'Tiada perubahan pada semua laman yang dipaut dalam tempoh yang diberikan.',
 'recentchangeslinked-summary' => "Laman khas ini menyenaraikan perubahan terkini bagi laman-laman yang dipaut. Laman-laman yang terdapat dalam senarai pantau anda ditandakan dengan '''teks tebal'''.",
 'recentchangeslinked-page' => 'Nama laman:',
 'recentchangeslinked-to' => 'Paparkan perubahan pada laman yang mengandungi pautan ke laman yang diberikan',
@@ -1592,8 +1644,7 @@ Tindakan ini tidak boleh dibatalkan.',
 'reuploaddesc' => 'Kembali ke borang muat naik',
 'upload-tryagain' => 'Serahkan keterangan fail yang telah diubah',
 'uploadnologin' => 'Belum log masuk',
-'uploadnologintext' => 'Anda perlu [[Special:UserLogin|log masuk]]
-terlebih dahulu untuk memuat naik fail.',
+'uploadnologintext' => 'Anda mesti $1 untuk memuat naik fail.',
 'upload_directory_missing' => 'Direktori muat naik ($1) hilang dan tidak dapat dicipta oleh pelayan web.',
 'upload_directory_read_only' => 'Direktori muat naik ($1) tidak boleh ditulis oleh pelayan web.',
 'uploaderror' => 'Ralat muat naik',
@@ -2222,10 +2273,9 @@ Perubahan-perubahan pada halaman ini dan halaman perbualannya pada masa akan dat
 'unwatchthispage' => 'Berhenti memantau',
 'notanarticle' => 'Bukan laman kandungan',
 'notvisiblerev' => 'Semakan ini telah dihapuskan',
-'watchnochange' => 'Tiada perubahan pada laman-laman yang dipantau dalam tempoh yang ditunjukkan.',
 'watchlist-details' => '$1 laman dipantau (tidak termasuk laman perbincangan).',
-'wlheader-enotif' => 'Pemberitahuan melalui e-mel diaktifkan.',
-'wlheader-showupdated' => "Laman-laman yang telah diubah sejak kunjungan terakhir anda dipaparkan dalam '''teks tebal'''",
+'wlheader-enotif' => 'Pemberitahuan melalui e-mel dibolehkan.',
+'wlheader-showupdated' => "Laman-laman yang telah diubah sejak kunjungan terakhir anda dipaparkan dalam '''teks tebal'''.",
 'watchmethod-recent' => 'menyemak laman yang dipantau dalam suntingan-suntingan terkini',
 'watchmethod-list' => 'menyemak suntingan terkini pada laman-laman yang dipantau',
 'watchlistcontains' => 'Terdapat $1 laman dalam senarai pantau anda.',
@@ -2329,7 +2379,7 @@ Sila lihat $2 untuk rekod penghapusan terkini.',
 Suntingan terakhir telah dibuat oleh [[User:$3|$3]] ([[User talk:$3|Perbualan]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "Ringkasan sutingan: \"''\$1''\".",
 'revertpage' => 'Membalikkan suntingan oleh [[Special:Contributions/$2|$2]] ([[User talk:$2|Perbincangan]]) kepada versi terakhir oleh [[User:$1|$1]]',
-'revertpage-nouser' => 'Membalikkan suntingan oleh (nama pengguna dibuang) kepada semakan terakhir oleh [[User:$1|$1]]',
+'revertpage-nouser' => 'Membalikkan suntingan oleh seorang pengguna tersorok kepada semakan terakhir oleh [[User:$1|$1]]',
 'rollback-success' => 'Membalikkan suntingan oleh $1 kepada versi terakhir oleh $2.',
 
 # Edit tokens
@@ -2471,7 +2521,7 @@ $1',
 'mycontris' => 'Sumbangan',
 'contribsub2' => 'Oleh $1 ($2)',
 'nocontribs' => 'Tiada sebarang perubahan yang sepadan dengan kriteria-kriteria ini.',
-'uctop' => '(puncak)',
+'uctop' => '(terkini)',
 'month' => 'Sebelum bulan:',
 'year' => 'Sebelum tahun:',
 
@@ -2803,6 +2853,7 @@ Sila lawat [//www.mediawiki.org/wiki/Localisation Penyetempatan MediaWiki] dan [
 'thumbnail-more' => 'Besarkan',
 'filemissing' => 'Fail hilang',
 'thumbnail_error' => 'Berlaku ralat ketika mencipta gambar kenit: $1',
+'thumbnail_error_remote' => 'Mesej ralat dari $1: $2',
 'djvu_page_error' => 'Laman DjVu di luar julat',
 'djvu_no_xml' => 'Gagal mendapatkan data XML bagi fail DjVu',
 'thumbnail-temp-create' => 'Fail gambar kenit sementara tidak dapat dibuat',
@@ -3111,11 +3162,25 @@ Dengan menjalankannya, komputer anda mungkin akan terjejas.",
 'minutes' => '$1 minit',
 'hours' => '$1 jam',
 'days' => '$1 hari',
+'weeks' => '$1 minggu',
 'months' => '$1 bulan',
 'years' => '$1 tahun',
 'ago' => '$1 yang lalu',
 'just-now' => 'tadi',
 
+# Human-readable timestamps
+'hours-ago' => '$1 jam yang lalu',
+'minutes-ago' => '$1 minit yang lalu',
+'seconds-ago' => '$1 saat yang lalu',
+'monday-at' => 'Isnin $1',
+'tuesday-at' => 'Selasa $1',
+'wednesday-at' => 'Rabu $1',
+'thursday-at' => 'Khamis $1',
+'friday-at' => 'Jumaat $1',
+'saturday-at' => 'Sabtu $1',
+'sunday-at' => 'Ahad $1',
+'yesterday-at' => 'Semalam $1',
+
 # Bad image list
 'bad_image_list' => 'Berikut adalah format yang digunakan:
 
@@ -3719,7 +3784,6 @@ Anda juga boleh [[Special:EditWatchlist|menggunakan penyunting piawai]].',
 'version-other' => 'Lain-lain',
 'version-mediahandlers' => 'Pengelola media',
 'version-hooks' => 'Penyangkuk',
-'version-extension-functions' => 'Fungsi penyambung',
 'version-parser-extensiontags' => 'Tag penyambung penghurai',
 'version-parser-function-hooks' => 'Penyangkuk fungsi penghurai',
 'version-hook-name' => 'Nama penyangkuk',
@@ -3743,6 +3807,18 @@ Anda patut telah menerima [{{SERVER}}{{SCRIPTPATH}}/COPYING sebuah salinan bagi
 'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath Laluan rencana]',
 'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath Laluan skrip]',
 
+# Special:Redirect
+'redirect' => 'Lencongkan mengikut fail, ID pengguna atau ID semakan',
+'redirect-legend' => 'Lencongkan ke fail atau halaman',
+'redirect-summary' => 'Halaman khas ini melencong kepada fail (dengan nama fail), halaman (dengan ID semakan) atau halaman pengguna (dengan ID pengguna berangka).',
+'redirect-submit' => 'Pergi',
+'redirect-lookup' => 'Cari:',
+'redirect-value' => 'Nilai:',
+'redirect-user' => 'ID Pengguna',
+'redirect-revision' => 'Semakan halaman',
+'redirect-file' => 'Nama fail',
+'redirect-not-exists' => 'Nilai tidak dijumpai',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Cari fail serupa',
 'fileduplicatesearch-summary' => 'Anda boleh mencari fail serupa berdasarkan nilai cincangannya.',
@@ -3791,6 +3867,7 @@ Anda patut telah menerima [{{SERVER}}{{SCRIPTPATH}}/COPYING sebuah salinan bagi
 'tags' => 'Label perubahan yang sah',
 'tag-filter' => 'Tapis [[Special:Tags|label]]:',
 'tag-filter-submit' => 'Tapis',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Teg}}]]: $2)',
 'tags-title' => 'Label',
 'tags-intro' => 'Yang berikut ialah senarai label yang digunakan untuk menanda suntingan, berserta maknanya.',
 'tags-tag' => 'Nama label',
@@ -3834,6 +3911,7 @@ Anda patut telah menerima [{{SERVER}}{{SCRIPTPATH}}/COPYING sebuah salinan bagi
 'htmlform-selectorother-other' => 'Lain-lain',
 'htmlform-no' => 'Tidak',
 'htmlform-yes' => 'Ya',
+'htmlform-chosen-placeholder' => 'Pilih satu pilihan',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 dengan sokongan carian teks penuh',
index 69bfec7..a37ed28 100644 (file)
@@ -379,6 +379,18 @@ $messages = array(
 'oct' => 'Ott',
 'nov' => 'Nov',
 'dec' => 'Diċ',
+'january-date' => "$1 ta' Jannar",
+'february-date' => "$1 ta' Frar",
+'march-date' => "$1 ta' Marzu",
+'april-date' => "$1 ta' April",
+'may-date' => "$1 ta' Mejju",
+'june-date' => "$1 ta' Ġunju",
+'july-date' => "$1 ta' Lulju",
+'august-date' => "$1 ta' Awwissu",
+'september-date' => "$1 ta' Settembru",
+'october-date' => "$1 ta' Ottubru",
+'november-date' => "$1 ta' Novembru",
+'december-date' => "$1 ta' Diċembru",
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategorija|Kategoriji}}',
@@ -406,6 +418,7 @@ $messages = array(
 'newwindow' => "(tinfetaħ f'tieqa ġdida)",
 'cancel' => 'Annulla',
 'moredotdotdot' => 'Aktar...',
+'morenotlisted' => 'Oħrajn mhux imniżżla...',
 'mypage' => 'Paġna',
 'mytalk' => 'Diskussjoni',
 'anontalk' => 'Diskussjoni għal dan l-IP',
@@ -461,6 +474,7 @@ $messages = array(
 'create-this-page' => 'Oħloq din il-paġna',
 'delete' => 'Ħassar',
 'deletethispage' => 'Ħassar din il-paġna',
+'undeletethispage' => 'irkupra din il-paġna',
 'undelete_short' => 'Irkupra {{PLURAL:$1|modifika waħda|$1 modifiki}}',
 'viewdeleted_short' => 'Ara {{PLURAL:$1|modifika mħassra|$1 modifiki mħassra}}',
 'protect' => 'Ipproteġi',
@@ -487,7 +501,7 @@ $messages = array(
 'categorypage' => 'Ara l-kategorija',
 'viewtalkpage' => 'Ara d-diskussjoni',
 'otherlanguages' => "F'lingwi oħrajn",
-'redirectedfrom' => '(Riindirizzat minn $1)',
+'redirectedfrom' => '(Rindirizzat minn $1)',
 'redirectpagesub' => "Paġna ta' rindirizz",
 'lastmodifiedat' => 'L-aħħar modifika fuq il-paġna: $2, $1.',
 'viewcount' => 'Din il-paġna ġiet aċċessata {{PLURAL:$1|darba|$1 darba}}.',
@@ -513,7 +527,6 @@ $1",
 'disclaimers' => 'Ċaħdiet',
 'disclaimerpage' => 'Project:Ċaħda ġenerali',
 'edithelp' => 'Gwida',
-'edithelppage' => 'Help:Kif Timmodifika',
 'helppage' => 'Help:Kontenut',
 'mainpage' => 'Il-Paġna prinċipali',
 'mainpage-description' => 'Il-Paġna prinċipali',
@@ -535,6 +548,9 @@ $1",
 'youhavenewmessages' => 'Għandek $1 ($2).',
 'newmessageslink' => 'messaġġi ġodda',
 'newmessagesdifflink' => 'l-aħħar bidla',
+'youhavenewmessagesmanyusers' => 'Għandek $1 mingħand ħafna utenti ($2).',
+'newmessageslinkplural' => '{{PLURAL:$1|messaġġ ġdid|messaġġi ġodda}}',
+'newmessagesdifflinkplural' => 'l-aħħar {{PLURAL:$1|bidla|bidliet}}',
 'youhavenewmessagesmulti' => 'Għandek messaġġi ġodda fuq $1',
 'editsection' => 'editja',
 'editold' => 'editja',
@@ -666,9 +682,17 @@ Ir-raġuni li ġiet mogħtija kienet ''$2''.",
 Tista' tkompli tuża' {{SITENAME}} bħala utent anonimu, jew tista' terġa <span class='plainlinks'>[$1 tidħol]</span> bħala l-istess utent jew wieħed differenti.
 Kun af li ċerti paġni jistgħu jkomplu jidhru bħallikieku l-illogjar 'l barra mill-kont qatt ma seħħ, sakemm ma tħassarx il-cache tal-browser.",
 'yourname' => 'Isem tal-utent:',
+'userlogin-yourname' => 'Isem tal-utent',
+'userlogin-yourname-ph' => 'Daħħal l-isem tal-utent tiegħek',
 'yourpassword' => 'Password:',
+'userlogin-yourpassword' => 'Password',
+'userlogin-yourpassword-ph' => 'Daħħal il-password tiegħek',
 'yourpasswordagain' => "Erġa' ikteb il-password:",
+'createacct-yourpasswordagain' => 'Ikkonferma l-password',
+'createacct-yourpasswordagain-ph' => "Erġa' daħħal il-password",
 'remembermypassword' => "Ftakar il-login tiegħi fuq dan il-kompjuter (għal massimu ta' {{PLURAL:$1|ġurnata|$1 ġurnata}})",
+'userlogin-remembermypassword' => 'Żommni fil-kont',
+'userlogin-signwithsecure' => 'Uża konnessjoni sigura',
 'securelogin-stick-https' => "Ibqa' konness fuq l-HTTPS wara l-login",
 'yourdomainname' => 'Id-dominju tiegħek:',
 'externaldberror' => "Kien hemm problema esterna ta' awtentiċitá jew m'għandhekx permess neċċessarju sabiex tagħmel aġġornamenti fuq l-aċċess estern.",
@@ -680,22 +704,42 @@ Kun af li ċerti paġni jistgħu jkomplu jidhru bħallikieku l-illogjar 'l barra
 'logout' => 'Oħroġ',
 'userlogout' => 'oħroġ',
 'notloggedin' => 'Għadek ma dħaltx ġewwa',
+'userlogin-noaccount' => "M'għandekx kont?",
+'userlogin-joinproject' => 'Irreġistra fuq {{SITENAME}}',
 'nologin' => "Għad m'għandekx kont? '''$1'''.",
 'nologinlink' => 'Oħloq kont',
 'createaccount' => 'Oħloq kont',
 'gotaccount' => "Diġa għandhek kont? '''$1'''.",
 'gotaccountlink' => 'Idħol',
 'userlogin-resetlink' => 'Insejt kif tidħol fil-kont tiegħek?',
-'createaccountmail' => 'bil-posta elettronika',
+'userlogin-resetpassword-link' => 'Irrisettja l-password',
+'helplogin-url' => 'Help:Kif tirreġistra',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Għajnuna kif tillogja]]',
+'createacct-join' => 'Daħħal l-informazzjoni tiegħek hawn taħt.',
+'createacct-emailrequired' => 'Indirizz elettroniku',
+'createacct-emailoptional' => 'Indirizz elettroniku (fakultattiv)',
+'createacct-email-ph' => 'Daħħal l-indirizz elettroniku tiegħek',
+'createaccountmail' => 'Uża password każwali temporanja u ibgħatha fuq l-indirizz elettroniku mniżżel hawn taħt',
+'createacct-realname' => 'Isem proprju (fakultattiv)',
 'createaccountreason' => 'Raġuni:',
+'createacct-reason' => 'Raġuni',
+'createacct-reason-ph' => 'Għala qiegħed toħloq kont ġdid',
+'createacct-captcha' => 'Kontroll tas-sigurtà',
+'createacct-imgcaptcha-ph' => 'Daħħal it-test li qed tara hawn fuq',
+'createacct-submit' => 'Oħloq il-kont',
+'createacct-benefit-heading' => '{{SITENAME}} hi magħmula minn persuni bħalek.',
+'createacct-benefit-body1' => '{{PLURAL:$1|modifika|modifiki}}',
+'createacct-benefit-body2' => 'paġna',
+'createacct-benefit-body3' => '{{PLURAL:$1|kontributur|kontributuri}} riċenti',
 'badretype' => 'Il-passwords li daħħalt ma jaqblux.',
 'userexists' => 'L-isem tal-utent li daħħalt diġà meħud. Jekk jogħġbok, agħżel isem differenti.',
 'loginerror' => 'Problemi fil-login',
+'createacct-error' => 'Problema fil-ħolqien tal-kont',
 'createaccounterror' => 'Il-kont ma jistax jinħoloq: $1',
 'nocookiesnew' => "Il-Kont tal-utent għal l-aċċess ġie maħluq, però ma kienx possibli li tagħmel aċċess għal {{SITENAME}} għax il-''cookies'' huma disattivati. Erġa' prova l-aċċess bl-isem tal-utent u l-password wara li tkun attivajt il-''cookies'' tal-''browser''.",
 'nocookieslogin' => "L-aċċess għal {{SITENAME}} jagħmel użu minn ''cookies'', li bħalissa huma disattivati. Jekk jogħġbok erġa' prova idħol wara li tkun attivajt il-''cookies'' fil-browser.",
 'nocookiesfornew' => "Il-kont ma ġiex maħluq, minħabba li ma stajniex nikkonfermaw is-sors. Assigura ruħek li l-cookies huma attivati, u erġa' tella' l-paġna biex terġa' tipprova.",
-'noname' => "Inti ma speċifikajtx isem ta' utent validu.",
+'noname' => 'L-isem tal-utent li tajt mhuwiex validu.',
 'loginsuccesstitle' => "Dħalt b'suċċess",
 'loginsuccess' => "'''Irnexxielek taqbad mas-server ta' {{SITENAME}} bl-isem tal-utent \"\$1\".'''",
 'nosuchuser' => 'M\'hemm l-ebda utent bl-isem ta\' "$1".<br />
@@ -737,8 +781,9 @@ Bħala riżultat, il-viżitaturi li jużaw dan l-IP ma jistgħux għall-mument,
 'invalidemailaddress' => 'L-indirizz tal-posta elettronika ma jistax jiġi aċċettat għax jidher li għandu format ħażin.
 Jekk jogħġbok daħħal indirizz validu jew inkella ħassru.',
 'cannotchangeemail' => 'L-indirizzi elettroniċi ma jistgħux jiġu mibdula fuq din il-wiki.',
-'accountcreated' => 'Il-kont inħoloq',
-'accountcreatedtext' => 'Inħoloq kont tal-utent għal $1.',
+'emaildisabled' => 'Dan is-sit ma jistgħax jibgħat messaġġi tal-posta elettronika.',
+'accountcreated' => 'Il-kont ġie maħluq',
+'accountcreatedtext' => 'Il-kont tal-utent għal  [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|diskussjoni]]) ġie maħluq.',
 'createaccount-title' => 'Ħolqien tal-kont għal {{SITENAME}}',
 'createaccount-text' => 'Xi ħadd ħoloq kont għall-indirizz tal-posta elettronika tiegħek fuq {{SITENAME}} ($4) bl-isem "$2", bil-password: "$3".
 Huwa opportun li tidħol issa u tbiddel il-password tiegħek mill-ewwel.
@@ -776,21 +821,20 @@ Jista' jkun li int diġà biddilt il-password, jew għamilt rikjesta għal passw
 
 # Special:PasswordReset
 'passwordreset' => 'Irrisettja l-password',
-'passwordreset-text' => 'Imla din il-formola sabiex tirċievi notifikazzjoni permezz tal-posta elettronika tad-dettalji tal-kont tiegħek.',
+'passwordreset-text-one' => 'Imla din il-formola sabiex tirrisettja l-password.',
 'passwordreset-legend' => 'Irrisettja l-password',
 'passwordreset-disabled' => 'L-irrisettjar tal-password fuq din il-wiki ġie diżattivat.',
-'passwordreset-pretext' => "{{PLURAL:$1||Daħħal wieħed mill-biċċiet ta' informazzjoni t'hawn taħt}}",
 'passwordreset-username' => 'Isem tal-utent:',
 'passwordreset-domain' => 'Dominju:',
 'passwordreset-capture' => 'Ara l-kontenut tal-messaġġ?',
 'passwordreset-capture-help' => 'Jekk tagħżel din il-kaxxa, l-indirizz elettroniku (bil-password temporanja) se jiġi muri lilek barra milli jintbagħat lill-utent.',
 'passwordreset-email' => 'Indirizz elettroniku:',
 'passwordreset-emailtitle' => 'Dettalji tal-kont fuq {{SITENAME}}',
-'passwordreset-emailtext-ip' => "Xi ħadd (probabilment int, mill-indirizz IP $1) għamel rikjesta sabiex jingħata password ġdida sabiex jaċċessa l-{{SITENAME}} ($4). {{PLURAL:$3|L-utent assoċjat|L-utenti assoċjati}} ma' dan l-indirizz elettroniku huma:
+'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}}:
 
 $2
 
-{{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.",
+{{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' => "L-utent $1 fuq {{SITENAME}} għamel rikjesta sabiex jingħata password ġdida sabiex jaċċessa l-{{SITENAME}} ($4). {{PLURAL:$3|L-utent assoċjat|L-utenti assoċjati}} ma' dan l-indirizz elettroniku huma:
 
 $2
@@ -1009,6 +1053,7 @@ Ma ngħatat l-ebda spjegazzjoni.",
 Jidher li din ġiet imħassra.',
 'edit-conflict' => 'Kunflitt tal-editjar.',
 'edit-no-change' => 'Il-modifika li għamilt ġiet injorata, minħabba li ebda bidla ma saret lejn it-test.',
+'postedit-confirmation' => 'Il-modifika tiegħek ġiet salvata.',
 'edit-already-exists' => 'Ma tistax tinħoloq din il-paġna.
 Din teżisti diġà.',
 'editwarning-warning' => 'Jekk tħalli din il-paġna jista\' jwassal sabiex titlef kwalunkwe tibdil li tkun għamilt. Jekk int tinsab fil-kont tiegħek, tista\' tneħħi dan l-avviż fis-sezzjoni "Modifiki" tal-preferenzi tiegħek.',
@@ -1162,7 +1207,8 @@ $1",
 'revdelete-only-restricted' => "L-oġġett bid-data $1 $2 ma jistax jinħeba: ma tistax taħbi oġġetti minn għajnejn l-amministraturi mingħajr ma tagħżel waħda mill-opzjonijiet ta' viżibilità.",
 'revdelete-reason-dropdown' => "*Raġunijiet komuni għat-tħassir
 ** Vjolazzjoni ta' copyright
-** Informazzjoni personali inapproprjata
+** Kumment jew informazzjoni personali mhux xierqa
+** Isem tal-utent mhux xieraq
 ** Informazzjoni potenzjalment libelluża",
 'revdelete-otherreason' => 'Raġuni oħra/addizzjonali:',
 'revdelete-reasonotherlist' => 'Raġuni oħra',
@@ -1237,7 +1283,6 @@ Nota li l-użu tal-links tan-navigazzjoni jagħmel reset tal-kolonna.",
 'searchmenu-legend' => 'Preferenzi għat-tfittxija',
 'searchmenu-exists' => "'''Hemm paġna bl-isem ta' \"[[:\$1]]\" fuq din il-wiki'''",
 'searchmenu-new' => "'''Oħloq il-paġna \"[[:\$1]]\" fuq din il-wiki!'''",
-'searchhelp-url' => 'Help:Kontenut',
 'searchmenu-prefix' => "[[Special:PrefixIndex/$1|Uri l-paġni b'dan il-prefiss]]",
 'searchprofile-articles' => "Paġni ta' kontenut",
 'searchprofile-project' => "Paġni ta' għajnuna u ta' proġett",
@@ -1313,7 +1358,6 @@ Innota però li l-werreja tal-kontenut ta' {{SITENAME}} f'dawn is-siti, jistgħu
 'resetprefs' => 'Neħħi modifiki mhux salvati',
 'restoreprefs' => 'Irkupra l-impostazzjonijiet awtomatiċi',
 'prefs-editing' => 'Modifiki',
-'prefs-edit-boxsize' => 'Daqs tat-tieqa tal-immodifikar.',
 'rows' => 'Fillieri:',
 'columns' => 'Kolonni:',
 'searchresultshead' => 'Fittex',
@@ -1324,9 +1368,6 @@ Innota però li l-werreja tal-kontenut ta' {{SITENAME}} f'dawn is-siti, jistgħu
 'recentchangesdays-max' => "(massimu ta' $1 {{PLURAL:$1|ġurnata|ġurnata}})",
 'recentchangescount' => "Numru ta' fillieri fit-tibdil riċenti:",
 'prefs-help-recentchangescount' => 'Din tinkludi tibdil riċenti, kronoloġiji u reġistri.',
-'prefs-help-watchlist-token' => "Billi timla din il-kaxxa b'ċavetta sigrieta se tiġi ġenerata feed RSS għal-lista ta' osservazzjonijiet tiegħek.
-Kull minn jaf din iċ-ċavetta f'din il-kaxxa jkun jista' jaqra l-lista ta' osservazzjonijiet tiegħek, għalhekk għażel waħda sigura.
-Hawnhekk hawn valur iġġenerat b'mod każwali li inti tista' tuża: $1",
 'savedprefs' => 'Il-preferenzi tiegħek ġew salvati.',
 'timezonelegend' => 'Żona tal-ħin:',
 'localtime' => 'Ħin lokali:',
@@ -1356,7 +1397,6 @@ Hawnhekk hawn valur iġġenerat b'mod każwali li inti tista' tuża: $1",
 'prefs-common-css-js' => 'CSS/JS maqsum għal kull aspett grafiku:',
 'prefs-reset-intro' => "Inti tista' tuża' din il-paġna sabiex terġa' tbiddel il-preferenzi tiegħek għal dawk li ngħatawlek fil-bidu. Din l-operazzjoni hija definittiva u ma tistax tiġi mħassra.",
 'prefs-emailconfirm-label' => 'Konferma tal-ittra-e:',
-'prefs-textboxsize' => 'Daqs tat-tieqa tal-modifika',
 'youremail' => 'E-mail:',
 'username' => '{{GENDER:$1|Isem tal-utent}}:',
 'uid' => '{{GENDER:$1|ID tal-utent}}:',
@@ -1523,7 +1563,7 @@ Hawnhekk hawn valur iġġenerat b'mod każwali li inti tista' tuża: $1",
 'action-createtalk' => "oħloq paġni ta' diskussjoni",
 'action-createaccount' => 'oħloq dan il-kont tal-utent',
 'action-minoredit' => 'timmarka din il-modifika bħala waħda minuri',
-'action-move' => 'mexxi din il-paġna',
+'action-move' => 'tmexxi din il-paġna',
 'action-move-subpages' => 'mexxi din il-paġna, u s-sottopaġni',
 'action-move-rootuserpages' => 'imexxi l-paġni prinċipali tal-utenti',
 'action-movefile' => 'mexxi dan il-fajl',
@@ -1593,7 +1633,6 @@ Hawnhekk hawn valur iġġenerat b'mod każwali li inti tista' tuża: $1",
 'recentchangeslinked-feed' => 'Tibdil relatat',
 'recentchangeslinked-toolbox' => 'Tibdil relatat',
 'recentchangeslinked-title' => 'Modifiki relatati ma\' "$1"',
-'recentchangeslinked-noresult' => 'L-ebda modifika ma saret fuq il-paġni relatati waqt il-perjodu speċifikat.',
 'recentchangeslinked-summary' => "Din hija lista ta' bidliet li saru riċentament fuq paġni marbuta minn paġna speċifika (jew lejn membri ta' kategorija speċifika). Il-paġni fuq il-[[Special:Watchlist|lista ta' osservazzjoni]] tiegħek huma mmarkati b''''tipa ħoxna'''.",
 'recentchangeslinked-page' => 'Isem tal-paġna:',
 'recentchangeslinked-to' => "Minflok, uri t-tibdiliet fil-paġni llinkjati ma' dik speċifikata",
@@ -1867,9 +1906,9 @@ Id-deskrizzjoni fuq il-[$2 paġna ta' deskrizzjoni tal-fajl] tinsab hawn taħt."
 'filerevert-legend' => "Erġa' lura għall-fajl",
 'filerevert-intro' => "Inti qiegħed terġa lura għal fajl '''[[Media:$1|$1]]''' fil-[verżjoni $4 minn $3, $2].",
 'filerevert-comment' => 'Raġuni:',
-'filerevert-defaultcomment' => "Mort lura għal verżjoni ta' $2, $1",
+'filerevert-defaultcomment' => "Irkuprata l-verżjoni ta' $2, $1",
 'filerevert-submit' => 'Ġib lura',
-'filerevert-success' => "'''Il-Fajl [[Media:$1|$1]]''' ġie restorat għal [verżjoni $4 minn $3, $2].",
+'filerevert-success' => "'''Il-fajl [[Media:$1|$1]]''' ġie irkuprat lura għall-[$4 verżjoni tal-$2, $3].",
 'filerevert-badversion' => "M'hemmx verżjoni lokali tal-fajl aktar riċenti b'timbru tal-ħin rikjest.",
 
 # File deletion
@@ -1945,6 +1984,12 @@ Daħħal: tip/sottotip, eż. <code>image/jpeg</code>.",
 Dawn probabbilment għandhom jippuntaw lejn l-paġna t-tajba minflok.<br />
 Paġna tiġi stmata bħala paġna ta' diżambigwazzjoni jekk tuża' mudell fil-lista li tinsab fuq [[MediaWiki:Disambiguationspage]].",
 
+'pageswithprop' => "Paġni bi proprjetà ta' paġna",
+'pageswithprop-legend' => "Paġni bi proprjetà ta' paġna",
+'pageswithprop-text' => "Din il-paġna telenka paġni li jużaw proprjetà ta' paġna partikulari.",
+'pageswithprop-prop' => 'Isem tal-proprjetà:',
+'pageswithprop-submit' => 'Mur',
+
 'doubleredirects' => 'Rindirizzi doppji',
 'doubleredirectstext' => 'Din il-paġna telenka dawk il-paġni li jindirizzaw lejn paġna oħra ta\' rindirizzament.
 Kull filliera għandha ħolqa għall-ewwel u t-tieni rindirizz, kif ukoll fejn tirrindirizza t-tieni paġna, is-soltu magħrufa bħalha l-paġna "reali" fejn se twassal, fejn suppost l-ewwel rindirizz għandu jipponta.
@@ -2189,7 +2234,6 @@ Kwalunkwe modifika li ssir fil-futur, kemm fuq din il-paġna u fil-paġna ta\' d
 'unwatchthispage' => 'Ieqaf osserva',
 'notanarticle' => 'Din il-paġna mhux artiklu',
 'notvisiblerev' => 'Ir-reviżjoni tħassret',
-'watchnochange' => 'L-ebda waħda mill-paġni osservati tiegħek ma ġiet modifikata fil-ħin stipulat.',
 'watchlist-details' => "Il-lista ta' osservazzjoni fiha {{PLURAL:$1|paġna waħda (u l-paġna ta' diskussjoni tagħha)|$1 paġni (u l-paġni ta' diskussjoni tagħhom)}}.",
 'wlheader-enotif' => 'In-notifikazzjoni bl-użu tal-posta elettronika hija attivata.',
 'wlheader-showupdated' => "Il-paġni li ġew editjati wara l-aħħar żjara tiegħek qed jiġu murija b'tipa '''ħoxna'''",
@@ -2269,7 +2313,7 @@ Ikkonsulta r-$2 biex tara paġni li ġew imħassra riċentament.',
 'dellogpage' => 'Tħassir',
 'dellogpagetext' => 'Hawn taħt hawn lista tal-paġni li ġew imħassra riċentament.',
 'deletionlog' => 'reġistru tat-tħassir',
-'reverted' => 'Mort lura għal verżjoni preċedenti',
+'reverted' => 'Irkuprata l-verżjoni preċedenti',
 'deletecomment' => 'Raġuni:',
 'deleteotherreason' => 'Raġunijiet oħra/addizzjonali:',
 'deletereasonotherlist' => 'Raġuni oħra',
@@ -2682,8 +2726,7 @@ Il-Paġna tad-destinazzjoni "[[:$1]]" ġa teżisti.
 Trid tħassara sabiex tkun tista\' tagħmel triq għal ċaqlieqa?',
 'delete_and_move_confirm' => 'Iva, ħassar il-paġna',
 'delete_and_move_reason' => 'Imħassra sabiex isseħħ it-tmexxija minn "[[$1]]"',
-'selfmove' => 'It-Titli tas-sors u destinazzjoni huma l-istess;
-ma tistax iċaqlaq paġna fuqha nnifsa.',
+'selfmove' => 'It-titlu l-ġdid huwa l-istess bħal dak qadim; mhuwiex possibbli li tmexxi l-paġna fuqha nnifsa.',
 'immobile-source-namespace' => 'Mhuwiex possibbli li tmexxi paġni fl-ispazju tal-isem "$1"',
 'immobile-target-namespace' => 'Mhuwiex possibbli li tmexxi paġni fl-ispazju tal-isem "$1"',
 'immobile-target-namespace-iw' => 'Il-ħolqa interwiki mhijiex destinazzjoni valida biex tmexxi l-paġna.',
@@ -3538,7 +3581,6 @@ Jekk jogħġbok konferma jekk vera trid terġa' toħloq din il-paġna.",
 
 # Separators for various lists, etc.
 'semicolon-separator' => ';',
-'autocomment-prefix' => '-',
 
 # Multipage image navigation
 'imgmultipageprev' => "← il-paġna ta' qabel",
@@ -3638,7 +3680,6 @@ Inti tista' wkoll tuża' l-[[Special:EditWatchlist|editur bl-interfaċċa standa
 'version-other' => 'Oħrajn',
 'version-mediahandlers' => 'Imradd tal-medja',
 'version-hooks' => 'Hook',
-'version-extension-functions' => 'Funzjonijiet tal-estensjoni',
 'version-parser-extensiontags' => "Tikketti magħrufa mill-''parser'' introdotti minn estensjonijiet",
 'version-parser-function-hooks' => "''Hooks'' għal funzjonijiet tal-''parser''",
 'version-hook-name' => 'Isem tal-hook',
@@ -3659,6 +3700,9 @@ Flimkien ma' dan il-programm suppost kellek tirċievi [{{SERVER}}{{SCRIPTPATH}}/
 'version-entrypoints-header-entrypoint' => "Punt ta' dħul",
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
+'redirect-submit' => 'Mur',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Fittex fajls duplikati',
 'fileduplicatesearch-summary' => "Fittex fajls duplikati fil-bażi għal valur ''hash''.",
@@ -3759,7 +3803,7 @@ Flimkien ma' dan il-programm suppost kellek tirċievi [{{SERVER}}{{SCRIPTPATH}}/
 'logentry-delete-event' => "$1 biddel il-viżibilità ta' {{PLURAL:$5|azzjoni tar-reġistru|$5 azzjonijiet tar-reġistru}} ta' $3: $4",
 'revdelete-content-hid' => 'kontenut moħbi',
 'revdelete-summary-hid' => 'taqsira moħbija',
-'revdelete-uname-hid' => 'isem tal-uten moħbi',
+'revdelete-uname-hid' => 'isem tal-utent moħbi',
 'revdelete-content-unhid' => 'kontenut muri mill-ġdid',
 'revdelete-summary-unhid' => 'taqsira murija mill-ġdid',
 'revdelete-uname-unhid' => 'isem tal-utent muri mill-ġdid',
index 65a4423..6bc7041 100644 (file)
@@ -273,7 +273,6 @@ $messages = array(
 'disclaimers' => 'Abiso de Cuntenido',
 'disclaimerpage' => 'Project:Abiso giral',
 'edithelp' => 'Ajuda de eidiçon',
-'edithelppage' => 'Help:Eiditar',
 'helppage' => 'Help:Cuntenidos',
 'mainpage' => 'Páigina Percipal',
 'mainpage-description' => 'Páigina Percipal',
@@ -553,7 +552,6 @@ Legenda: (atu) = defrénças de la berson atual,
 'prevn' => 'anteriores {{PLURAL:$1|$1}}',
 'nextn' => 'próssimos {{PLURAL:$1|$1}}',
 'viewprevnext' => 'Ber ($1 {{int:pipe-separator}} $2) ($3)',
-'searchhelp-url' => 'Help:Conteúdos',
 'searchprofile-images' => 'Multimédia',
 'searchprofile-everything' => 'Todo',
 'searchprofile-advanced' => 'Abançado',
@@ -683,7 +681,6 @@ Causo l çponiblizes, este será outelizado pa te dar crédito pul tou trabalho.
 'recentchangeslinked-feed' => 'Alterações relacionadas',
 'recentchangeslinked-toolbox' => 'Alterações relacionadas',
 'recentchangeslinked-title' => 'Altaraçones que ténen a ber cun "$1"',
-'recentchangeslinked-noresult' => 'Nun houbo alteraçones an páiginas relacionadas ne l anterbalo de tiempo.',
 'recentchangeslinked-summary' => "Esta páigina special amostra las redadeiras altaraçones de páiginas que téngan ua lhigaçon a outra (ó de nembros dua catadorie speceficada).
 Páiginas que steian ne ls [[Special:Watchlist|tous begiados]] son amostradas an '''negrito'''.",
 'recentchangeslinked-page' => 'Nome de la páigina:',
index 835bb30..fd6b042 100644 (file)
@@ -284,7 +284,6 @@ $1',
 'disclaimers' => 'သတိပြုစရာများ',
 'disclaimerpage' => 'Project: အထွေထွေ သတိပြုဖွယ်',
 'edithelp' => 'ပြင်​ဆင်​ရန် အ​ကူ​အ​ညီ​',
-'edithelppage' => 'Help: တည်းဖြတ်ခြင်း',
 'helppage' => 'Help: မာတိကာ',
 'mainpage' => 'ဗဟိုစာမျက်နှာ',
 'mainpage-description' => 'ဗ​ဟို​စာ​မျက်​နှာ​',
@@ -667,7 +666,6 @@ Legend: '''({{int:cur}})''' = နောက်ဆုံးမူနှင့် 
 'searchmenu-legend' => 'ရှာဖွေရန် ရွေးချယ်မှု',
 'searchmenu-exists' => "'''ဤဝီကီတွင် \"[[:\$1]]\" အမည်နှင့် စာမျက်နှာတစ်ခုရှိသည်။'''",
 'searchmenu-new' => "'''ဤဝီကီတွင် \"[[:\$1]]\" အမည်နှင့် စာမျက်နှာကို ဖန်တီးပါ။'''",
-'searchhelp-url' => 'Help: မာတိကာ',
 'searchprofile-articles' => 'မာတိကာစာမျက်နှာများ',
 'searchprofile-project' => 'အကူအညီနှင့် ပရောဂျက်စာမျက်နှာများ',
 'searchprofile-images' => 'မာလတီမီဒီယာ',
@@ -736,7 +734,6 @@ Try prefixing your query with ''all:'' to search all content (including talk pag
 'resetprefs' => 'မသိမ်းရသေးသော အပြောင်းအလဲများကို ရှင်းလင်းရန်',
 'restoreprefs' => 'မူလဆက်တင်များသို့ အားလုံး ပြန်ပြောင်းရန်',
 'prefs-editing' => 'တည်းဖြတ်ခြင်း',
-'prefs-edit-boxsize' => 'တည်းဖြတ်သည့် သေတ္တာအရွယ်အစား။',
 'rows' => 'အလျားလိုက်တန်း -',
 'columns' => 'ဒေါင်လိုက်တန်း -',
 'searchresultshead' => 'ရှာ​ဖွေ​ရန်​',
@@ -772,7 +769,6 @@ Try prefixing your query with ''all:'' to search all content (including talk pag
 'prefs-custom-css' => 'စိတ်ကြိုက် CSS',
 'prefs-custom-js' => 'စိတ်ကြိုက် Javascript',
 'prefs-emailconfirm-label' => 'အီးမေးအတည်ပြုရန်',
-'prefs-textboxsize' => 'တည်းဖြတ်မှုဝင်းဒိုး၏အရွယ်အစား',
 'youremail' => 'အီး​မေး -',
 'username' => 'အသုံးပြုသူအမည် -',
 'uid' => 'အသုံးပြုသူ ​ID -',
@@ -962,7 +958,6 @@ Your e-mail address is not revealed when other users contact you.
 'recentchangeslinked-feed' => 'ဆက်စပ်သော ​အ​ပြောင်း​အ​လဲ​များ​',
 'recentchangeslinked-toolbox' => 'ဆက်​စပ်​သော​အ​ပြောင်း​အ​လဲ​များ​',
 'recentchangeslinked-title' => '"$1" နှင့် ဆက်စပ်သော အပြောင်းအလဲများ',
-'recentchangeslinked-noresult' => 'ပေးထားသော အချိန်အတွင်း လင့်ချိတ်ထားသော စာမျက်နှာများတွင် အပြောင်းအလဲမရှိပါ။',
 'recentchangeslinked-summary' => 'ဤသည်မှာ သီးသန့်ပြထားသော စာမျက်နှာ (သို့ သီးသန့်ကဏ္ဍများ) မှ ညွှန်းထားသော စာမျက်နှာများ၏ လတ်တလော ပြောင်းလဲမှုများ၏ စာရင်းဖြစ်သည်။ [[Special:Watchlist|စောင့်ကြည့်စာရင်း]] မှ စာမျက်နှာများကို စာလုံးမည်းဖြင့် ပြထားသည်။',
 'recentchangeslinked-page' => 'စာမျက်နှာ အမည် -',
 'recentchangeslinked-to' => 'ပေးထားသော စာမျက်နှာများအစား လင့်များနှင့် ဆက်စပ်နေသာ စာမျက်နှာများ၏ အပြောင်းအလဲများကို ပြရန်',
index 0d86814..c7316d6 100644 (file)
@@ -414,7 +414,6 @@ $messages = array(
 'disclaimers' => 'Видечинь кортамотне',
 'disclaimerpage' => 'Project:Видечинь прякс кортнема',
 'edithelp' => 'Витнемань-петнемань лезкс',
-'edithelppage' => 'Help:Витнема-петнема',
 'helppage' => 'Help:Лопась мезе кирди',
 'mainpage' => 'Прякслопа',
 'mainpage-description' => 'Прякслопа',
@@ -853,7 +852,6 @@ IP-тешкстэть — $3, саймас совавтоманть ID-сь —
 'searchmenu-legend' => 'Вешнемань аравтомкат',
 'searchmenu-exists' => "'''Те викисэнть ули \"[[\$1]]\" лем марто лопа'''",
 'searchmenu-new' => "'''Шкик \"[[:\$1]]\" лопанть те викисэнть!'''",
-'searchhelp-url' => 'Help:Лопась мезе кирди',
 'searchprofile-articles' => 'Потмокс лопат',
 'searchprofile-project' => 'Лезкс ды проекттэ лопат',
 'searchprofile-images' => 'Мультимедия',
@@ -919,7 +917,6 @@ IP-тешкстэть — $3, саймас совавтоманть ID-сь —
 'resetprefs' => 'Нардамс апак вансто полавтнемат',
 'restoreprefs' => 'Велявтомс мекев весе ушодкс ладсематнень',
 'prefs-editing' => 'Витнема-петнема',
-'prefs-edit-boxsize' => 'Витнема-петнема вальманть сэрензэ-келензэ.',
 'rows' => 'Валчилькстнэ (строкатне):',
 'columns' => 'Палманть:',
 'searchresultshead' => 'Вешнема',
@@ -948,7 +945,6 @@ IP-тешкстэть — $3, саймас совавтоманть ID-сь —
 'prefs-namespaces' => 'Лем потмот',
 'default' => 'зярдо лиякс апак йовта',
 'prefs-files' => 'Файлат',
-'prefs-textboxsize' => 'Витнемань-петнемань вальманть покшолмазо',
 'youremail' => 'Е-сёрма:',
 'username' => 'Теицянь леметь:',
 'uid' => 'Теицянь ID:',
@@ -1107,7 +1103,6 @@ IP-тешкстэть — $3, саймас совавтоманть ID-сь —
 'recentchangeslinked-feed' => 'Сюлмавозь лиякстоматне',
 'recentchangeslinked-toolbox' => 'Сюлмавозь лиякстоматне',
 'recentchangeslinked-title' => 'Полавтнемат-лиякстомтомат конат кандовить теватезэнь "$1"',
-'recentchangeslinked-noresult' => 'Максозь шкастонть кодаткак полавтовомат сюлмавозь лопатнесэ арасельть.',
 'recentchangeslinked-summary' => "Тесэ максозь меельсе шкань витнемат-петнемат, конат теезельть башка максозь лопа вельде (эли категорияс совавтовиця тевнес). Ванома лопасот лопатне максозь '''эчкстэ тештезь'''",
 'recentchangeslinked-page' => 'Лопанть лемезэ:',
 'recentchangeslinked-to' => 'Тень таркас невтить те лопанть марто сюлмазь лопатнесэ полавтнематнень',
index ab1210e..9d6ffce 100644 (file)
@@ -327,7 +327,7 @@ $messages = array(
 'articlepage' => 'نمایش صفحه',
 'talk' => 'گپ',
 'views' => 'هارشی‌ئون',
-'toolbox' => 'أبÙ\80زار Ø¬Ù\80ا',
+'toolbox' => 'اÙ\8eبزارÙ\90 Ø¬ا',
 'userpage' => 'کارور صفحه ره سِراق هدائن',
 'projectpage' => 'بدی‌ین پروژه‌ی ِصفحه',
 'imagepage' => 'بدی‌ین ِعکس ِصفحه',
@@ -359,7 +359,6 @@ $2، $1',
 'disclaimers' => 'تکذیب‌نومه‌ئون',
 'disclaimerpage' => 'Project:تکذیب‌نومه',
 'edithelp' => 'دچی‌ین رانما',
-'edithelppage' => 'Help:دَچی‌ین',
 'helppage' => 'Help:راهنما',
 'mainpage' => 'گت صفحه',
 'mainpage-description' => 'گت صفحه',
@@ -686,6 +685,7 @@ $2، $1',
 'mypreferences' => 'مه خاستنی‌ئون',
 'prefs-edits' => 'تعداد دچی‌یه‌ئون:',
 'prefsnologin' => 'سیستم دله نمویی',
+'prefs-rc' => 'تازه دگاردسته‌ئون',
 'youremail' => 'شه مه Email:',
 'username' => 'کاروری نوم:',
 'uid' => 'کاروری إشماره:',
@@ -847,7 +847,6 @@ $2، $1',
 'watchthispage' => 'این صفحه ره دِمبال هاکارد‌ن',
 'unwatch' => 'ده‌مـبـال نـه‌کـارده‌ن',
 'unwatchthispage' => 'دیگه این صفحه ره دمبال نکاردن',
-'watchnochange' => 'هیچ‌کادوم از چیزایی که شِما دمبال کانـّی چن وقته عوض نینه.',
 'watchlist-details' => 'بدون حیساب گپ ولگ‌ئون، {{PLURAL:$1|$1 صفحه|$1 صفحه}} شمه دمبال‌هاکردنی‌ئون میون قرار {{PLURAL:$1|دارنه|دانه}}.',
 'wlheader-enotif' => '*تونی ایمیل جه مطلع بواشین.',
 'wlheader-showupdated' => "*صفحه‌ئونی که بعد از آخرین سربزوئنتون عوض بینه '''پر رنگ''' نشون هدائه بیّه.",
index 5d8c441..04bdfe0 100644 (file)
@@ -285,7 +285,6 @@ $messages = array(
 'currentevents-url' => 'Project:Āxcāncāyōtl',
 'disclaimers' => 'Nahuatīllahtōl',
 'edithelp' => 'Tlapatlaliztechcopa tēpalēhuiliztli',
-'edithelppage' => 'Help:¿Quēn motlahcuiloa cē zāzanilli?',
 'helppage' => 'Help:Tlapiyaliztli',
 'mainpage' => 'Achkàuhìxtlapalli',
 'mainpage-description' => 'Achkàuhìxtlapalli',
@@ -600,7 +599,6 @@ Hueliz ōmopolo huiqui nozo ōmozacac.
 'viewprevnext' => 'Xiquintta ($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-exists' => "'''Ye ia zāzanilli ītōca \"[[\$1]]\" inīn huiquipan'''",
 'searchmenu-new' => "'''Tihuelīti ticchīhuāz zāzanilli ītōca \"[[:\$1]]\" inīn huiquipan'''",
-'searchhelp-url' => 'Help:Tlapiyaliztli',
 'searchprofile-articles' => 'Tlapiyaliztli zāzanilli',
 'searchprofile-project' => 'Tēpalēhuiliztli īhuān īxiptlahtli āmatl',
 'searchprofile-images' => 'Nepapan media',
index cc74533..77c0943 100644 (file)
@@ -209,7 +209,7 @@ $messages = array(
 'create-this-page' => 'Khai-sí siá chit ia̍h',
 'delete' => 'Thâi',
 'deletethispage' => 'Thâi chit ia̍h',
-'undelete_short' => 'Kiù $1 ê siu-kái',
+'undelete_short' => 'Kiù {{PLURAL:$1|$1|$1} ê siu-kái',
 'viewdeleted_short' => 'Khoàⁿ {{PLURAL:$1|chi̍t-ê thâi tiàu--ê pian-chi̍p|$1 ê thâi tiàu--ê pian-chi̍p}}',
 'protect' => 'Pó-hō·',
 'protect_change' => 'kái-piàn',
@@ -262,7 +262,6 @@ $1',
 'disclaimers' => 'Bô-hū-chek seng-bêng',
 'disclaimerpage' => 'Project:It-poaⁿ ê seng-bêng',
 'edithelp' => 'Án-choáⁿ siu-kái',
-'edithelppage' => 'Help:Pian-chi̍p',
 'helppage' => 'Help:Bo̍k-lio̍k',
 'mainpage' => 'Thâu-ia̍h',
 'mainpage-description' => 'Thâu-ia̍h',
@@ -394,6 +393,7 @@ $2',
 
 Lí ē-sái mài kì-miâ kè-siok sú-iōng {{SITENAME}}, mā ē-sái iōng kāng-ê a̍h-sī pa̍t-ê sin-hūn têng teng-ji̍p.
 Chhiaⁿ chù-ì: ū-kóa ia̍h ū khó-lêng khoàⁿ-tio̍h bē-su lí iû-goân teng-ji̍p tiong; che chi-iàu piàⁿ tiāu lí ê browser ê cache chiū ē chèng-siông.",
+'welcomeuser' => 'Hoan-gêng, $1!',
 'yourname' => 'Lí ê iōng-chiá miâ-chheng:',
 'userlogin-yourname' => 'Iōng-chiá miâ-chheng',
 'yourpassword' => 'Lí ê bi̍t-bé:',
@@ -589,7 +589,6 @@ Lí ê kái-piàn tī ē-kha ê bûn-jī-keh. Lí su-iàu chiōng lí chò ê k
 'nextn' => 'āu {{PLURAL:$1|$1}} hāng',
 'shown-title' => 'Múi ia̍h hián-sī $1 {{PLURAL:$1|kiat-kó|kiat-kó}}',
 'viewprevnext' => 'Khoàⁿ ($1 {{int:pipe-separator}} $2) ($3)',
-'searchhelp-url' => 'Help:Bo̍k-lio̍k',
 'searchprofile-articles' => 'Loē-iông ia̍h',
 'searchprofile-images' => 'To-mûi-thé',
 'searchprofile-everything' => 'Só͘-ū ê',
@@ -679,7 +678,6 @@ Tī pat-lâng liân-lo̍k lí ê sî-chūn bē kā e-mail tsū-tsí siá chhut--
 'recentchangeslinked' => 'Siong-koan ê kái-piàn',
 'recentchangeslinked-feed' => 'Siong-koan ê kái-piàn',
 'recentchangeslinked-toolbox' => 'Siong-koan ê kái-piàn',
-'recentchangeslinked-noresult' => 'Lí chí-tēng ê tiâu-kiaⁿ lāi-té chhōe bô jīn-hô kái-piàn.',
 'recentchangeslinked-page' => 'Ia̍h ê miâ:',
 
 # Upload
@@ -870,7 +868,6 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'watchthispage' => 'Kàm-sī chit ia̍h',
 'unwatch' => 'Mài kàm-sī',
 'unwatchthispage' => 'Mài koh kàm-sī',
-'watchnochange' => 'Lí kàm-sī ê hāng-bo̍k tī hián-sī ê sî-kî í-lāi lóng bô siu-kái kòe.',
 'watchlist-details' => 'Kàm-sī-toaⁿ ū {{PLURAL:$1|$1 ia̍h|$1 ia̍h}}, thó-lūn-ia̍h bô sǹg chāi-lāi.',
 'watchmethod-recent' => 'tng teh kíam-cha choè-kīn ê siu-kái, khoàⁿ ū kàm-sī ê ia̍h bô',
 'watchmethod-list' => 'tng teh kiám-cha kàm-sī ê ia̍h khoàⁿ chòe-kīn ū siu-kái bô',
index 3e04583..f360b4a 100644 (file)
@@ -95,16 +95,16 @@ $messages = array(
 'may_long' => 'màjo',
 'june' => 'giùgno',
 'july' => 'luglio',
-'august' => 'aústo',
+'august' => 'aùsto',
 'september' => 'settembre',
-'october' => 'ottobbre',
+'october' => 'ottovre',
 'november' => 'nuvembre',
 'december' => 'dicèmbre',
 'january-gen' => 'jennaro',
 'february-gen' => 'frevaro',
 'march-gen' => 'màrzo',
 'april-gen' => 'abbrile',
-'may-gen' => 'maggio',
+'may-gen' => 'majo',
 'june-gen' => 'giùgno',
 'july-gen' => 'luglio',
 'august-gen' => 'aùsto',
@@ -124,6 +124,18 @@ $messages = array(
 'oct' => 'ott',
 'nov' => 'nuv',
 'dec' => 'dic',
+'january-date' => '$1 jennaro',
+'february-date' => '$1 frevaro',
+'march-date' => '$1 màrzo',
+'april-date' => '$1 abbrile',
+'may-date' => '$1 majo',
+'june-date' => '$1 giùgno',
+'july-date' => '$1 luglio',
+'august-date' => '$1 aùsto',
+'september-date' => '$1 settembre',
+'october-date' => '$1 ottovre',
+'november-date' => '$1 nuvembre',
+'december-date' => '$1 dicembre',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Categurìa|Categurìe}}',
@@ -134,29 +146,39 @@ $messages = array(
 'category-subcat-count' => "{{PLURAL:$2|Chesta categurìa cuntene n'unneca sottocategurìa, nzignata 'e seguito.|Chesta categurìa cuntene {{PLURAL:$1|'a sottocategurìa nzignata|'e $1 sottocategurìe nzignate}} 'e seguito, 'a nu totale 'e $2.}}",
 'category-article-count' => "{{PLURAL:$2|Chesta categurìa cuntiene un'unneca paggena, nzignata ccà sotto.|Chesta categurìa cuntiene {{PLURAL:$1|'a paggena nzignata|'e $1 paggene nzignate}} ccà sotto, faccenno nu totale 'e $2.}}",
 'listingcontinuesabbrev' => 'cont.',
+'index-category' => 'Paggene ennecezzate',
+'noindex-category' => 'Paggene nun ennecezzate',
+'broken-file-category' => "Paggene cca 'ncludono file 'nesistente",
 
 'about' => 'Nfromma',
 'article' => 'Articulo',
 'newwindow' => "(s'arape n'ata fenèsta)",
 'cancel' => 'Scancèlla',
 'moredotdotdot' => 'Cchiù...',
+'morenotlisted' => 'Atro...',
 'mypage' => 'Paggena',
 'mytalk' => "'E mmie chiàcchieriate",
 'anontalk' => 'Chiacchierate pe chisto IP',
 'navigation' => 'Navigazzione',
+'and' => '&#32;e',
 
 # Cologne Blue skin
 'qbfind' => 'Truòva',
+'qbbrowse' => 'Sfoglia',
 'qbedit' => 'Càgna',
 'qbpageoptions' => 'Chesta paggena',
 'qbmyoptions' => "'E ppaggene mie",
 'qbspecialpages' => 'Pàggene speciàle',
 'faq' => 'FAQ',
+'faqpage' => 'Project:Domanne frequente',
 
 # Vector skin
+'vector-action-addsection' => 'Aggiunge chiacchierata',
 'vector-action-delete' => 'Scancèlla',
 'vector-action-move' => 'Spusta',
 'vector-action-protect' => 'Prutegge',
+'vector-action-undelete' => 'Ripristina',
+'vector-action-unprotect' => 'Càgna prutezzione',
 'vector-view-create' => 'Cria',
 'vector-view-edit' => 'Càgna',
 'vector-view-history' => 'Vere cronologgia',
@@ -166,6 +188,7 @@ $messages = array(
 'namespaces' => 'Namespace',
 'variants' => 'Variante',
 
+'navigation-heading' => "Menu 'e navigazzione",
 'errorpagetitle' => 'Sbaglio',
 'returnto' => 'Torna a $1.',
 'tagline' => 'Dda {{SITENAME}}.',
@@ -176,15 +199,19 @@ $messages = array(
 'searcharticle' => 'Vàje',
 'history' => "Verziune 'e primma",
 'history_short' => 'Cronologgia',
+'updatedmarker' => "cagnamiénte 'e mija urdema visita",
 'printableversion' => "Verzione pe' stampa",
 'permalink' => 'Jonta permanente',
+'print' => 'Stampà',
+'view' => 'Vere',
 'edit' => 'Càgna',
 'create' => 'Cria',
 'editthispage' => 'Càgna chesta paggena',
 'create-this-page' => 'Cria sta paggena',
 'delete' => 'Scancèlla',
 'deletethispage' => 'Scancèlla chésta paggena',
-'protect' => 'Ferma',
+'undeletethispage' => 'Ripristina chista paggena',
+'protect' => 'Prutegge',
 'protect_change' => 'càgna',
 'protectthispage' => 'Ferma chesta paggena',
 'unprotect' => 'Càgna prutezzione',
@@ -200,29 +227,38 @@ $messages = array(
 'views' => 'Visite',
 'toolbox' => 'Strumiente',
 'userpage' => 'Vere a paggena utente',
+'projectpage' => "Vere a paggena 'e servizio",
 'imagepage' => 'Vere a paggena ddo file',
-'otherlanguages' => 'Ate léngue',
+'mediawikipage' => "Vere 'a mmasciata",
+'templatepage' => "Vere 'o template",
+'viewhelppage' => "Vere 'a paggena 'e ajùto",
+'categorypage' => "Vere 'a categurìa",
+'viewtalkpage' => "Vere 'a paggena 'e chiàcchierate",
+'otherlanguages' => 'Ate lengue',
 'redirectedfrom' => "(Redirect 'a $1)",
+'redirectpagesub' => "Paggena 'e redirect",
 'lastmodifiedat' => "Urdema cagnamiénto pe' a paggena: $2, $1.",
 'viewcount' => 'Chesta paggena è stata lètta {{PLURAL:$1|una vòta|$1 vòte}}.',
 'protectedpage' => 'Paggena prutetta',
 'jumpto' => 'Vaje a:',
 'jumptonavigation' => 'navigazione',
 'jumptosearch' => 'truova',
+'pool-errorunknown' => 'Errore scanusciuto',
 
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
 'aboutsite' => "'Nfrummazione ncòpp'a {{SITENAME}}",
 'aboutpage' => "Project:'Nfrummazione",
+'copyright' => "Cuntenuti suggietti a licienza 'e uso $1.",
 'copyrightpage' => '{{ns:project}}:Copyrights',
 'currentevents' => 'Novità',
 'currentevents-url' => 'Project:Novità',
 'disclaimers' => 'Avvertimiènte',
 'disclaimerpage' => 'Project:Avvertimiènte generale',
 'edithelp' => 'Guida',
-'edithelppage' => 'Help:Càgna',
 'helppage' => 'Help:Ajùto',
 'mainpage' => 'Paggena prencepale',
 'mainpage-description' => 'Paggena prencepale',
+'policy-url' => 'Project:Policy',
 'portal' => "Porta d''a cummunetà",
 'portal-url' => "Project:Porta d''a cummunetà",
 'privacy' => "'Nformazzione ppe a privacy",
@@ -230,21 +266,27 @@ $messages = array(
 
 'badaccess' => "Nun haje 'e premmesse abbastante.",
 
+'ok' => 'OK',
 'retrievedfrom' => 'Estratto \'e "$1"',
 'youhavenewmessages' => 'Haje $1 ($2).',
-'newmessageslink' => "nuove 'mmasciàte",
+'newmessageslink' => "nove 'mmasciàte",
 'newmessagesdifflink' => "differenze cu 'a revisione precedente",
 'youhavenewmessagesmulti' => 'Tiene nuove mmasciate $1',
 'editsection' => 'càgna',
 'editold' => 'càgna',
+'viewsourceold' => 'vere sorgente',
 'editlink' => 'càgna',
 'viewsourcelink' => 'Vere sorgente',
 'editsectionhint' => 'Modifica a sezzione $1',
 'toc' => 'Énnece',
 'showtoc' => 'faje vedé',
 'hidetoc' => 'annascunne',
+'collapsible-expand' => 'faje vede',
+'thisisdeleted' => 'Vere o ripristina $1?',
 'viewdeleted' => 'Vire $1?',
+'feedlinks' => 'Feed:',
 'site-atom-feed' => "Feed Atom 'e $1",
+'page-atom-feed' => 'Feed Atom ppe "$1"',
 'red-link-title' => '$1 (a paggena nun esiste)',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
@@ -252,13 +294,14 @@ $messages = array(
 'nstab-user' => 'Paggena utente',
 'nstab-special' => 'Paggena speciale',
 'nstab-project' => "Paggena 'e servizio",
-'nstab-image' => 'Fiura',
+'nstab-image' => 'Fiùra',
 'nstab-mediawiki' => "'Mmasciata",
 'nstab-template' => 'Modello',
 'nstab-help' => 'Ajùto',
 'nstab-category' => 'Categurìa',
 
 # General errors
+'missingarticle-rev' => "(nummero 'e verzione: $1)",
 'filedeleteerror' => 'Nun se pô scancellà \'o file "$1"',
 'cannotdelete' => "Nun è possibbele scassà 'a paggena o 'a fiura addamannata. (Putria éssere stato già scancellato.)",
 'badtitle' => "'O nnomme nun è jùsto",
@@ -275,17 +318,18 @@ Putite cuntinuà a ausà {{SITENAME}} comme n'utente senza nomme, o si nò putit
 'remembermypassword' => 'Allicuordate d"a password (for a maximum of $1 {{PLURAL:$1|day|days}})',
 'yourdomainname' => "Spiecà 'o dumminio",
 'login' => 'Tràse',
-'nav-login-createaccount' => "Tràse o cria n'acciesso nuovo",
-'userlogin' => "Tràse o cria n'acciesso nuovo",
+'nav-login-createaccount' => "Tràse o cria n'acciesso novo",
+'userlogin' => "Tràse o cria n'acciesso novo",
 'userloginnocreate' => 'Tràse',
 'logout' => 'Jèsce',
 'userlogout' => 'Jèsce',
 'notloggedin' => 'Acciesso nun affettuato',
 'nologin' => "Nun haje ancora n'acciesso? '''$1'''.",
 'nologinlink' => 'Crialo mmo',
-'createaccount' => 'Cria nu cunto nuovo',
+'createaccount' => 'Cria nu cunto novo',
 'gotaccount' => "Tiene già nu cunto? '''$1'''.",
 'gotaccountlink' => 'Tràse',
+'userlogin-resetlink' => "Haje dimenticato 'e toje date 'e acciesso?",
 'loginerror' => "Probblema 'e accièsso",
 'loginsuccesstitle' => 'Acciesso affettuato',
 'nosuchusershort' => 'Nun ce stanno utente cu o nòmme "$1". Cuntrolla si scrivìste buòno.',
@@ -294,18 +338,23 @@ Putite cuntinuà a ausà {{SITENAME}} comme n'utente senza nomme, o si nò putit
 'accountcreated' => 'Cunto criato',
 'loginlanguagelabel' => 'Lengua: $1',
 
+# Change password dialog
+'resetpass' => 'Càgna password',
+
 # Edit page toolbar
 'italic_sample' => 'Corsivo',
 'italic_tip' => 'Corsivo',
 'link_sample' => 'Titulo ddo cullegamente',
+'link_tip' => 'Jonte nterne',
 'extlink_sample' => 'http://www.example.com titulo ddo cullegamente',
 'headline_sample' => 'Testate',
 'headline_tip' => "Testate 'e 2° livello",
 'image_sample' => 'Essempio.jpg',
-'image_tip' => 'Fiura ncuorporata',
+'image_tip' => 'Fiùra ncuorporata',
 'media_tip' => 'Cullegamente a file multimediale',
 
 # Edit pages
+'summary' => 'Énnece',
 'minoredit' => 'Chisto è nu cagnamiénto piccerillo',
 'watchthis' => "Tiene d'uocchio chesta paggena",
 'savearticle' => "Sarva 'a paggena",
@@ -320,9 +369,13 @@ Putite cuntinuà a ausà {{SITENAME}} comme n'utente senza nomme, o si nò putit
 'newarticle' => '(Novo)',
 'previewnote' => "'''Chesta è sola n'anteprimma; 'e cagnamiénte â paggena nun songo ancora sarvate!'''",
 'editing' => "Cagnamiento 'e $1",
-'editingsection' => 'Cagnamiénto di $1 (sezzione)',
+'editingsection' => "Cagnamiénto 'e $1 (sezzione)",
 'templatesused' => "{{PLURAL:$1|Template|Templates}} ausate 'a chesta paggena:",
 'template-protected' => '(prutetto)',
+'template-semiprotected' => '(semi-prutetto)',
+
+# Content models
+'content-model-css' => 'CSS',
 
 # "Undo" feature
 'undo-summary' => "Canciella 'o cagnamiento $1 'e [[Special:Contributions/$2|$2]] ([[User talk:$2|Chiàcchiera]])",
@@ -332,14 +385,21 @@ Putite cuntinuà a ausà {{SITENAME}} comme n'utente senza nomme, o si nò putit
 'currentrev-asof' => 'Vversione attuale dde $1',
 'revisionasof' => 'Vversione delle $1',
 'nextrevision' => 'Vversione cchiù recente →',
+'currentrevisionlink' => "Verzione 'e mmo",
 'cur' => 'corr',
 'last' => 'prec',
+'histfirst' => 'primma',
+'histlast' => 'urdema',
 
 # Revision feed
 'history-feed-item-nocomment' => "$1 'o $2",
 
 # Revision deletion
 'rev-delundel' => 'faje vedé/annascunne',
+'rev-showdeleted' => 'faje vedé',
+'revdelete-show-file-submit' => 'Sì',
+'revdelete-radio-set' => 'Sì',
+'revdelete-radio-unset' => 'No',
 'revdel-restore' => 'càgna visiblità',
 
 # Diffs
@@ -359,7 +419,6 @@ Putite cuntinuà a ausà {{SITENAME}} comme n'utente senza nomme, o si nò putit
 'shown-title' => "Fa vere {{PLURAL:$1|'nu risultato|$1 risultate}} ppe paggena",
 'viewprevnext' => 'Vere($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-new' => "'''Cria a paggena \"[[:\$1]]\" ncopp'â chisto wiki!'''",
-'searchhelp-url' => 'Help:Ajùto',
 'searchprofile-articles' => "Paggene 'e contenute",
 'searchprofile-project' => "Paggene 'e ajùto e relative 'o prugietto",
 'searchprofile-images' => 'Multimedia',
@@ -372,7 +431,10 @@ Putite cuntinuà a ausà {{SITENAME}} comme n'utente senza nomme, o si nò putit
 'search-result-size' => "$1 ({{PLURAL:$2|'na parola|$2 parole}})",
 'search-redirect' => '(redirect $1)',
 'search-section' => '(sezzione $1)',
+'search-suggest' => 'Prova chisto: $1',
+'search-interwiki-caption' => 'Prugiette frate',
 'searchall' => 'Tutte',
+'search-nonefound' => "'A ricerca nun ha produtto risultate.",
 'powersearch' => 'Truova',
 
 # Preferences page
@@ -380,10 +442,13 @@ Putite cuntinuà a ausà {{SITENAME}} comme n'utente senza nomme, o si nò putit
 'changepassword' => 'Cagna password',
 'prefs-rc' => 'Urdeme nove',
 'prefs-watchlist' => 'Asservate speciale',
+'saveprefs' => 'Sarva',
 'columns' => 'Culonne:',
+'searchresultshead' => 'Truova',
 'timezoneregion-africa' => 'Afreca',
 'youremail' => 'E-mail:',
-'username' => 'Nomme utente',
+'username' => '{{GENDER:$1|Nomme utente}}:',
+'yourrealname' => 'Nomme vero',
 'yourlanguage' => 'Lengua:',
 
 # Associated actions - in the sentence "You do not have permission to X"
@@ -391,6 +456,7 @@ Putite cuntinuà a ausà {{SITENAME}} comme n'utente senza nomme, o si nò putit
 
 # Recent changes
 'recentchanges' => 'Urdeme nove',
+'recentchanges-legend' => 'Opzione urdeme cagnamiénte',
 'recentchanges-summary' => "Ncoppa chesta paggena song' appresentate ll'urdeme cagnamiente fatto ê cuntenute d\"o sito.",
 'recentchanges-label-newpage' => "Chista modifica ha criato 'na nova paggena",
 'recentchanges-label-minor' => 'Chisto è nu cagnamiénto piccerillo',
@@ -415,10 +481,12 @@ Putite cuntinuà a ausà {{SITENAME}} comme n'utente senza nomme, o si nò putit
 'recentchangeslinked' => 'Cagnamiénte cullegate',
 'recentchangeslinked-feed' => 'Cagnamiénte cullegate',
 'recentchangeslinked-toolbox' => 'Cagnamiénte cullegate',
+'recentchangeslinked-title' => 'Cagnamiénte cullegate a "$1"',
 'recentchangeslinked-page' => 'Nomme dda paggena',
 
 # Upload
 'upload' => 'Careca file',
+'filedesc' => 'Énnece',
 'uploadedimage' => 'ha carecato "[[$1]]"',
 
 'license' => 'Licenze:',
@@ -428,7 +496,9 @@ Putite cuntinuà a ausà {{SITENAME}} comme n'utente senza nomme, o si nò putit
 'listfiles_name' => 'Nomme',
 
 # File description page
-'file-anchor-link' => 'Fiura',
+'file-anchor-link' => 'Fiùra',
+'filehist' => 'Cronologgia d"o file',
+'filehist-revert' => 'ripristina',
 'filehist-current' => 'attuale',
 'filehist-datetime' => 'Data/Ora',
 'filehist-thumb' => 'Miniature',
@@ -438,7 +508,7 @@ Putite cuntinuà a ausà {{SITENAME}} comme n'utente senza nomme, o si nò putit
 
 # Random page
 'randompage' => 'Na paggena qualsiase',
-'randompage-nopages' => 'Nessuna pagina nel namespace selezionato.',
+'randompage-nopages' => "Nun gè song paggene {{PLURAL:$2|dint'ô seguente namespace|dint'ê seguenti namespace}}: $1.",
 
 # Statistics
 'statistics' => 'Statistiche',
@@ -459,8 +529,10 @@ Putite cuntinuà a ausà {{SITENAME}} comme n'utente senza nomme, o si nò putit
 'newpages' => 'Paggene cchiù frische',
 'move' => 'Spusta',
 'movethispage' => 'Spusta chesta paggena',
+'pager-older-n' => '{{PLURAL:$1|1 cchiù viecchio|$1 cchiù viecchie}}',
 
 # Book sources
+'booksources' => 'Funte libbrarie',
 'booksources-go' => 'Vàje',
 
 # Special:Log
@@ -482,6 +554,9 @@ Also see [[Special:WantedCategories|wanted categories]].",
 # Special:LinkSearch
 'linksearch-ok' => 'Truova',
 
+# Email user
+'emailuser' => 'Email chisto utente',
+
 # Watchlist
 'mywatchlist' => 'osservate speciale',
 'watchlistfor2' => 'Ppe $1 $2',
@@ -509,6 +584,7 @@ Also see [[Special:WantedCategories|wanted categories]].",
 'revertpage' => "Cangiaje 'e cagnamiénte 'e [[Special:Contributions/$2|$2]] ([[User talk:$2|discussione]]), cu â verzione 'e pprimma 'e  [[User:$1|$1]]",
 
 # Protect
+'protectedarticle' => 'ha prutetto "[[$1]]"',
 'prot_1movedto2' => 'ha spustato [[$1]] a [[$2]]',
 'protect-expiry-options' => '2 ore:2 hours,1 juorno:1 day,3 juorne:3 days,1 semmana:1 week,2 semmane:2 weeks,1 mise:1 month,3 mese:3 months,6 mese:6 months,1 anno:1 year,infinito:infinite',
 
@@ -524,9 +600,14 @@ Also see [[Special:WantedCategories|wanted categories]].",
 # Contributions
 'contributions' => 'Contribbute {{GENDER:$1|utente}}',
 'mycontris' => "'E ffatiche d''e mmeje",
-'uctop' => '(ultima ppe a paggena)',
+'contribsub2' => 'Ppe $1 ($2)',
+'uctop' => '(attuale)',
 
+'sp-contributions-newbies' => "Mosta solo 'e contribbute dde nove utente",
+'sp-contributions-blocklog' => 'blocche',
+'sp-contributions-logs' => 'registre',
 'sp-contributions-talk' => 'Chiàcchiera',
+'sp-contributions-username' => 'Nnerizzo IP o nomme utente',
 'sp-contributions-submit' => 'Truova',
 
 # What links here
@@ -534,9 +615,13 @@ Also see [[Special:WantedCategories|wanted categories]].",
 'whatlinkshere-title' => 'Paggene ca cullegano a $1',
 'whatlinkshere-page' => 'Paggena:',
 'nolinkshere' => "Nisciuna paggena cuntene jonte ca mpuntano a '''[[:$1]]'''.",
+'isredirect' => 'redirect a paggena',
+'isimage' => 'Cullegamente a file multimediale',
 'whatlinkshere-links' => '← jonte',
 'whatlinkshere-hideredirs' => '$1 redirects',
+'whatlinkshere-hidelinks' => '$1 jonte',
 'whatlinkshere-hideimages' => '$1 links ddo file',
+'whatlinkshere-filters' => 'Filtre',
 
 # Block/unblock
 'blockip' => 'Ferma utelizzatóre',
@@ -545,6 +630,7 @@ Also see [[Special:WantedCategories|wanted categories]].",
 'blockipsuccesssub' => 'Blocco aseguito',
 'blocklink' => 'ferma',
 'unblocklink' => 'sblocca',
+'change-blocklink' => 'càgna blocco',
 'contribslink' => 'contribuzzione',
 'blocklogpage' => 'Blocche',
 'blocklogentry' => 'ha fermato "[[$1]]" pe\' nu mumento \'e $2 $3',
@@ -581,13 +667,19 @@ Also see [[Special:WantedCategories|wanted categories]].",
 'import-logentry-upload' => 'ha mpurtato [[$1]] trammeto upload',
 
 # Tooltip help for the actions
+'tooltip-pt-userpage' => 'A toja paggena utente',
+'tooltip-pt-mytalk' => "A toja paggena 'e discussione",
+'tooltip-pt-preferences' => "Preferenze d''e mmeje",
 'tooltip-pt-mycontris' => 'Elenco dde tuje contributte',
-'tooltip-pt-login' => 'A reggistrazione e consegliata',
+'tooltip-pt-login' => 'A reggistrazione è cunsigliata',
 'tooltip-pt-logout' => 'Jésce (logout)',
+'tooltip-ca-talk' => 'Vede e discussione rilative a chista paggena',
 'tooltip-ca-edit' => "Puo modifica chista paggena. Ppe favore usa 'o pulsante 'e anteprimma primma 'e salva",
 'tooltip-ca-addsection' => "Cummincia 'na nova sezzione",
 'tooltip-ca-viewsource' => "Chista paggena è prutetta, ma puo vere 'o codice sorgente",
 'tooltip-ca-history' => "Vversione precedente 'e chista paggena",
+'tooltip-ca-protect' => 'Prutegge chesta paggena',
+'tooltip-ca-delete' => 'Scancèlla chista paggena',
 'tooltip-ca-move' => 'Spusta chista paggena',
 'tooltip-search' => "Truova dint'ô {{SITENAME}}",
 'tooltip-search-fulltext' => "Ascià 'o testo indicato dint'e paggene",
@@ -598,13 +690,21 @@ Also see [[Special:WantedCategories|wanted categories]].",
 'tooltip-n-recentchanges' => 'Ennece dde urdeme cagnamiénte ddo sito',
 'tooltip-n-randompage' => 'Na paggena qualsiase',
 'tooltip-n-help' => "Paggena 'e ajùto",
+'tooltip-t-whatlinkshere' => "'Na lista 'e tutte e paggene ca song cullegate a chista",
 'tooltip-t-recentchangeslinked' => 'Urdeme cagnamiénte dde paggene ca cullegano a chesta',
+'tooltip-t-contributions' => "Lista dde contributte 'e chisto utente",
+'tooltip-t-emailuser' => "Manna 'nu email a chisto utente",
 'tooltip-t-upload' => 'Careca file',
 'tooltip-t-specialpages' => "Lista 'e tutte e paggene speciale",
 'tooltip-t-print' => "Vversione pe' stampa 'e chista paggena",
 'tooltip-t-permalink' => 'Jonta permanente a chista vversione dda paggena',
 'tooltip-ca-nstab-main' => 'Vere a paggena e contenuto',
+'tooltip-ca-nstab-user' => 'Vere a paggena utente',
+'tooltip-ca-nstab-special' => "Chista è 'na paggena speciale, nun può essere càgnata",
+'tooltip-ca-nstab-project' => "Vere a paggena 'e servizio",
+'tooltip-ca-nstab-image' => 'Vere a paggena ddo file',
 'tooltip-ca-nstab-template' => "Vere 'o modello",
+'tooltip-ca-nstab-category' => 'Vere a paggena d"a categurìa',
 'tooltip-minoredit' => 'Rénne chìsto cagnamiénto cchiù ppiccirìllo.',
 'tooltip-save' => "Sàrva 'e cagnamiénte.",
 'tooltip-preview' => "Primma 'e sarvà, vìre primma chille ca hê cagnàte!",
@@ -613,6 +713,9 @@ Also see [[Special:WantedCategories|wanted categories]].",
 # Attribution
 'others' => 'ate',
 
+# Browsing diffs
+'nextdiff' => 'Cagnamiénte successivo →',
+
 # Media information
 'file-info-size' => '$1 × $2 pixel, dimenzione ddo file: $3, tipo MIME: $4',
 'show-big-image' => 'Vversione ad ata risoluzione',
@@ -659,6 +762,9 @@ Also see [[Special:WantedCategories|wanted categories]].",
 # Special:SpecialPages
 'specialpages' => 'Paggene speciale',
 
+# Special:Tags
+'tag-filter' => 'Filtra ppe [[Special:Tags|etichetta]]:',
+
 # New logging system
 'rightsnone' => '(nisciuno)',
 
index 8019574..34ada12 100644 (file)
@@ -37,6 +37,7 @@
  * @author Purodha
  * @author Qaqqalik
  * @author Samuelsen
+ * @author Simen47
  * @author Simny
  * @author Sjurhamre
  * @author Stigmj
@@ -359,18 +360,18 @@ $messages = array(
 'tog-diffonly' => 'Ikke vis sideinnhold under differ',
 'tog-showhiddencats' => 'Vis skjulte kategorier',
 'tog-norollbackdiff' => 'Ikke vis diff etter tilbakestilling',
-'tog-useeditwarning' => 'Si ifra dersom jeg forlater en side jeg har gjort redigeringer på men ikke har lagret siden.',
+'tog-useeditwarning' => 'Si ifra dersom jeg forlater en side uten å lagre den.',
 
 'underline-always' => 'Alltid',
 'underline-never' => 'Aldri',
-'underline-default' => 'Nettleserens standardinnstillinger',
+'underline-default' => 'Drakta eller nettleserens standardinnstillinger',
 
 # Font style option in Special:Preferences
 'editfont-style' => 'Skrifttype i redigeringsboksen:',
 'editfont-default' => 'Nettleserstandard',
-'editfont-monospace' => 'Skrift med fast bredde',
-'editfont-sansserif' => 'Sans-serif',
-'editfont-serif' => 'Serif',
+'editfont-monospace' => 'Fastbredde skrifttype',
+'editfont-sansserif' => 'Sans-serif skrifttype',
+'editfont-serif' => 'Serif skrifttype',
 
 # Dates
 'sunday' => 'søndag',
@@ -423,6 +424,18 @@ $messages = array(
 'oct' => 'okt',
 'nov' => 'nov',
 'dec' => 'des',
+'january-date' => '$1. januar',
+'february-date' => '$1. februar',
+'march-date' => '$1. mars',
+'april-date' => '$1. april',
+'may-date' => '$1. mai',
+'june-date' => '$1. juni',
+'july-date' => '$1. juli',
+'august-date' => '$1. august',
+'september-date' => '$1. september',
+'october-date' => '$1. oktober',
+'november-date' => '$1. november',
+'december-date' => '$1. desember',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategori|Kategorier}}',
@@ -504,6 +517,7 @@ $messages = array(
 'create-this-page' => 'Opprett denne siden',
 'delete' => 'Slett',
 'deletethispage' => 'Slett denne siden',
+'undeletethispage' => 'Legg tilbake siden',
 'undelete_short' => 'Gjenopprett {{PLURAL:$1|én revisjon|$1 revisjoner}}',
 'viewdeleted_short' => 'Vis {{PLURAL:$1|én slettet redigering|$1 slettede redigeringer}}',
 'protect' => 'Beskytt',
@@ -557,7 +571,6 @@ $1',
 'disclaimers' => 'Forbehold',
 'disclaimerpage' => 'Project:Generelle forbehold',
 'edithelp' => 'Redigeringshjelp',
-'edithelppage' => 'Help:Redigering',
 'helppage' => 'Help:Innhold',
 'mainpage' => 'Hovedside',
 'mainpage-description' => 'Hovedside',
@@ -704,6 +717,10 @@ $2',
 'namespaceprotected' => "Du har ikke tillatelse til å redigere sider i navnerommet '''$1'''.",
 'customcssprotected' => 'Du har ikke tillatelse til å redigere denne CSS-siden fordi den inneholder en annen brukers personlige innstillinger.',
 'customjsprotected' => 'Du har ikke tillatelse til å redigere denne JavaScript-siden fordi den inneholder en annen brukers personlige innstillinger.',
+'mycustomcssprotected' => 'Du har ikke rettigheter til å redigere denne CSS-siden.',
+'mycustomjsprotected' => 'Du har ikke rettigheter til å redigere denne Javascript-siden.',
+'myprivateinfoprotected' => 'Du har ikke tillatelse til å redigere din private informasjon.',
+'mypreferencesprotected' => 'Du har ikke tillatelse til å redigere dine innstillinger.',
 'ns-specialprotected' => 'Spesialsider kan ikke redigeres.',
 'titleprotected' => "Denne tittelen har blitt låst for oppretting av [[User:$1|$1]].
 Den angitte grunnen er «''$2''».",
@@ -729,14 +746,18 @@ Merk at noen sider kan vise at du fortsatt er logget inn fram til du tømmer mel
 'welcomecreation-msg' => 'Kontoen din har blitt opprettet.
 Ikke glem å endre [[Special:Preferences|innstillingene dine]] på {{SITENAME}}.',
 'yourname' => 'Brukernavn:',
-'userlogin-yourname' => 'Brukernan',
+'userlogin-yourname' => 'Brukernavn',
 'userlogin-yourname-ph' => 'Skriv inn brukernavnet ditt',
+'createacct-another-username-ph' => 'Skriv inn brukernavnet',
 'yourpassword' => 'Passord:',
 'userlogin-yourpassword' => 'Passord',
 'userlogin-yourpassword-ph' => 'Skriv inn passordet ditt',
+'createacct-yourpassword-ph' => 'Skriv inn et passord',
 'yourpasswordagain' => 'Gjenta passord',
+'createacct-yourpasswordagain' => 'Bekreft passord',
+'createacct-yourpasswordagain-ph' => 'Skriv inn passordet igjen',
 'remembermypassword' => 'Husk meg på denne datamaskinen (i maks $1 {{PLURAL:$1|dag|dager}})',
-'userlogin-remembermypassword' => 'Husk brukernavn og passord',
+'userlogin-remembermypassword' => 'Hold meg innlogget',
 'userlogin-signwithsecure' => 'Logg inn med sikker tjener',
 'securelogin-stick-https' => 'Vær fortsatt koblet til HTTPS etter innlogging',
 'yourdomainname' => 'Ditt domene',
@@ -758,14 +779,33 @@ Ikke glem å endre [[Special:Preferences|innstillingene dine]] på {{SITENAME}}.
 'gotaccount' => 'Har du allerede en konto? $1.',
 'gotaccountlink' => 'Logg inn',
 'userlogin-resetlink' => 'Har du glemt påloggingsdetaljene dine?',
+'userlogin-resetpassword-link' => 'Tilbakestill passordet ditt',
 'helplogin-url' => 'Help:Innlogging',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hjelp med innlogging]]',
+'createacct-join' => 'Skriv inn informasjonen din under.',
+'createacct-another-join' => 'Legg inn den nye kontoens informasjon under.',
+'createacct-emailrequired' => 'E-postadresse',
+'createacct-emailoptional' => 'E-postadresse (valgfritt)',
+'createacct-email-ph' => 'Skriv inn e-postadressen din',
+'createacct-another-email-ph' => 'Skriv inn epostadressen',
 'createaccountmail' => 'Bruk et midlertidig tilfeldig passord, og send det til e-postadressen nedenfor',
+'createacct-realname' => 'Virkelig navn (valgfritt)',
 'createaccountreason' => 'Årsak:',
+'createacct-reason' => 'Årsak',
+'createacct-reason-ph' => 'Hvorfor lager du en annen bruker',
+'createacct-captcha' => 'Sikkerhetssjekk',
+'createacct-imgcaptcha-ph' => 'Skriv inn teksten du ser ovenfor',
+'createacct-submit' => 'Opprett konto',
+'createacct-another-submit' => 'Lag ny konto',
+'createacct-benefit-heading' => '{{SITENAME}} er laget av folk som deg.',
+'createacct-benefit-body1' => '{{PLURAL:$1|redigering|redigeringer}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|side|sider}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|nylig bidragsyter|nylige bidragsytere}}',
 'badretype' => 'Passordene samsvarte ikke.',
 'userexists' => 'Brukernavnet er allerede i bruk.
 Velg et annet brukernavn.',
 'loginerror' => 'Innloggingsfeil',
+'createacct-error' => 'Feil med kontoppretting',
 'createaccounterror' => 'Kunne ikke opprette konto: $1',
 'nocookiesnew' => 'Din brukerkonto er nå opprettet, men du har ikke logget på. {{SITENAME}} bruker informasjonskapsler («cookies») for å logge brukere på og du har slått dem av. Slå dem på for å kunne logge på med ditt nye brukernavn og passord.',
 'nocookieslogin' => '{{SITENAME}} bruker informasjonskapsler («cookies») for å logge brukere på og du har slått dem av. Slå dem på og prøv igjen.',
@@ -815,7 +855,7 @@ Skriv inn en fungerende e-postadresse eller tøm feltet.',
 'cannotchangeemail' => 'E-postadresser knyttet til brukerkontoer kan ikke endres på denne wikien.',
 'emaildisabled' => 'Dette nettstedet kan ikke sende e-poster.',
 'accountcreated' => 'Konto opprettet',
-'accountcreatedtext' => 'Brukerkontoen for $1 har blitt opprettet.',
+'accountcreatedtext' => 'Brukerkontoen for [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|diskusjon]]) har blitt opprettet.',
 'createaccount-title' => 'Kontooppretting på {{SITENAME}}',
 'createaccount-text' => 'Noen opprettet en konto for din e-postadresse på {{SITENAME}} ($4) med navnet «$2», med «$3» som passord. Du burde logge inn og endre passordet nå.
 
@@ -848,14 +888,15 @@ Du kan ignorere denne beskjeden dersom kontoen ble opprettet ved en feil.',
 'resetpass-wrong-oldpass' => 'Ugyldig midlertidig eller nåværende passord.
 Du kan ha allerede byttet passordet, eller bedt om et nytt midlertidig passord.',
 'resetpass-temp-password' => 'Midlertidig passord:',
+'resetpass-abort-generic' => 'Endring av passord har blitt avbrutt av en utvidelse.',
 
 # Special:PasswordReset
 'passwordreset' => 'Passordresetting',
-'passwordreset-text' => 'Fyll ut dette skjemaet for å tilbakestille passordet ditt.',
+'passwordreset-text-one' => 'Fyll ut skjemaet for å tilbakestille passordet',
+'passwordreset-text-many' => '{{PLURAL:$1|Fyll inn et av datafeltene for å tilbakestille passordet ditt.}}',
 'passwordreset-legend' => 'Nullstill passord',
 'passwordreset-disabled' => 'Nullstilling av passord er deaktivert på denne wikien.',
 'passwordreset-emaildisabled' => 'E-posttjenester er slått av på denne wikien.',
-'passwordreset-pretext' => '{{PLURAL:$1||Skriv inn en av datadelene nedenfor}}',
 'passwordreset-username' => 'Brukernavn:',
 'passwordreset-domain' => 'Domene:',
 'passwordreset-capture' => 'Vise resulterende e-post?',
@@ -1085,7 +1126,7 @@ Det siste loggelementet er oppgitt under som referanse:",
 'nocreate-loggedin' => 'Du har ikke tillatelse til å opprette sider.',
 'sectioneditnotsupported-title' => 'Seksjonsredigering støttes ikke',
 'sectioneditnotsupported-text' => 'Seksjonsredigering støttes ikke på denne siden.',
-'permissionserrors' => 'Tilgangsfeil',
+'permissionserrors' => 'Rettighetsfeil',
 'permissionserrorstext' => 'Du har ikke tillatelse til å utføre dette, av følgende {{PLURAL:$1|grunn|grunner}}:',
 'permissionserrorstext-withaction' => 'Du har ikke tillatelse til å $2 {{PLURAL:$1|på grunn av|av følgende grunner}}:',
 'recreate-moveddeleted-warn' => "Advarsel: Du er i ferd med å opprette en side som tidligere har blitt slettet.'''
@@ -1099,6 +1140,7 @@ Slette- og flytteloggen vises nedenfor.',
 'edit-gone-missing' => 'Kunne ikke oppdatere siden fordi den har blitt slettet.',
 'edit-conflict' => 'Redigeringskonflikt.',
 'edit-no-change' => 'Redigeringen din ble ignorert fordi det ikke var noen endringer.',
+'postedit-confirmation' => 'Redigeringen din ble lagret.',
 'edit-already-exists' => 'Kunne ikke opprette ny side fordi den finnes fra før.',
 'defaultmessagetext' => 'Standard meldingstekst',
 'content-failed-to-parse' => 'Klarte ikke å tolke innholdet $2 for innholdsmodellen $1: $3',
@@ -1139,6 +1181,7 @@ Disse parameterne har blitt utelatt.',
 'undo-failure' => 'Redigeringen kunne ikke omgjøres på grunn av konflikterende etterfølgende redigeringer.',
 'undo-norev' => 'Redigeringen kunne ikke fjernes fordi den ikke eksisterer eller ble slettet',
 'undo-summary' => 'Fjerner revisjon $1 av [[Special:Contributions/$2|$2]] ([[User talk:$2|diskusjon]])',
+'undo-summary-username-hidden' => 'Fjern revisjon $1 av en skjult bruker',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Kan ikke opprette konto',
@@ -1165,8 +1208,8 @@ Grunnen som ble oppgitt av $3 er ''$2''",
 Forklaring: '''({{int:cur}})''' = forskjell fra nåværende revisjon, '''({{int:last}})''' = forskjell fra foregående revisjon, '''{{int:minoreditletter}}''' = mindre endring.",
 'history-fieldset-title' => 'Bla i historikken',
 'history-show-deleted' => 'Kun slettede',
-'histfirst' => 'Første',
-'histlast' => 'Siste',
+'histfirst' => 'eldste',
+'histlast' => 'nyeste',
 'historysize' => '({{PLURAL:$1|1 byte|$1 byte}})',
 'historyempty' => '(tom)',
 
@@ -1317,6 +1360,7 @@ Forsikre deg om at denne endringen vil opprettholde historisk sidekontinuitet.',
 'compareselectedversions' => 'Sammenlign valgte revisjoner',
 'showhideselectedversions' => 'Vis/skjul valgte versjoner',
 'editundo' => 'fjern',
+'diff-empty' => '(Ingen forskjell)',
 'diff-multi' => '({{PLURAL:$1|Én mellomrevisjon|$1 mellomrevisjoner}} av {{PLURAL:$2|én bruker|$2 brukere}} vises ikke)',
 'diff-multi-manyusers' => '({{PLURAL:$1|Én mellomrevisjon|$1 mellomrevisjoner}} av mer enn $2 {{PLURAL:$2|bruker|brukere}} vises ikke)',
 'difference-missing-revision' => '{{PLURAL:$2|En revisjon|$2 revisjoner}} av denne forskjellen ($1) {{PLURAL:$2|ble|ble}} ikke funnet.
@@ -1344,7 +1388,6 @@ Detaljer kan finnes i [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}
 'searchmenu-legend' => 'Søkeinnstillinger',
 'searchmenu-exists' => "* Siden '''[[$1]]'''",
 'searchmenu-new' => "'''Opprett siden ''[[:$1]]'' på denne wikien.'''",
-'searchhelp-url' => 'Help:Hjelp',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Vis alle sider som begynner med dette]]',
 'searchprofile-articles' => 'Innholdssider',
 'searchprofile-project' => 'Hjelp- og prosjektsider',
@@ -1420,7 +1463,6 @@ For å søke i alle, bruk prefikset ''all:'' (inkluderer diskusjonssider, maler,
 'resetprefs' => 'Tilbakestill ulagrede endringer',
 'restoreprefs' => 'Tilbakestill til standardinnstillinger overalt',
 'prefs-editing' => 'Redigering',
-'prefs-edit-boxsize' => 'Størrelse på redigeringsvinduet.',
 'rows' => 'Rader:',
 'columns' => 'Kolonner',
 'searchresultshead' => 'Søk',
@@ -1431,9 +1473,6 @@ For å søke i alle, bruk prefikset ''all:'' (inkluderer diskusjonssider, maler,
 'recentchangesdays-max' => 'Maks $1 {{PLURAL:$1|dag|dager}}',
 'recentchangescount' => 'Antall redigeringer som skal vises som standard:',
 'prefs-help-recentchangescount' => 'Dette inkluderer nylige endringer, sidehistorikk og logger.',
-'prefs-help-watchlist-token' => 'Om du fyller ut dette feltet med et hemmelig tall, vil det lages en RSS-liste for overvåkningslisten din.
-Alle som vet det rette tallet vil være i stand til å lese overvåkningslisten din, så velg en sikker verdi.
-Her er et tilfeldig tall du kan bruke: $1',
 'savedprefs' => 'Innstillingene ble lagret.',
 'timezonelegend' => 'Tidssone:',
 'localtime' => 'Lokaltid:',
@@ -1464,7 +1503,6 @@ Her er et tilfeldig tall du kan bruke: $1',
 'prefs-reset-intro' => 'Du kan bruke denne siden til å tilbakestille innstillingene dine til standardinnstillingene.
 Dette kan ikke tilbakestilles.',
 'prefs-emailconfirm-label' => 'E-postbekreftelse:',
-'prefs-textboxsize' => 'Størrelse på redigeringsvindu',
 'youremail' => 'E-post:',
 'username' => '{{GENDER:$1|Brukernavn}}:',
 'uid' => '{{GENDER:$1|Bruker-ID}}:',
@@ -1494,7 +1532,9 @@ Den kan maks inneholde $1 {{PLURAL:$1|tegn|tegn}}.',
 'prefs-signature' => 'Signatur',
 'prefs-dateformat' => 'Datoformat',
 'prefs-timeoffset' => 'Tidsforskyvning',
-'prefs-advancedediting' => 'Avanserte alternativer',
+'prefs-advancedediting' => 'Generelt',
+'prefs-editor' => 'Tekstbehandling',
+'prefs-preview' => 'Forhåndsvisning',
 'prefs-advancedrc' => 'Avanserte alternativ',
 'prefs-advancedrendering' => 'Avanserte alternativer',
 'prefs-advancedsearchoptions' => 'Avanserte alternativer',
@@ -1530,6 +1570,8 @@ Den kan maks inneholde $1 {{PLURAL:$1|tegn|tegn}}.',
 'userrights-changeable-col' => 'Grupper du kan endre',
 'userrights-unchangeable-col' => 'Grupper du ikke kan endre',
 'userrights-irreversible-marker' => '$1 *',
+'userrights-conflict' => 'En konflikt med brukerrettighetene! Vennligst legg til endringene dine igjen.',
+'userrights-removed-self' => 'Du har fjernet dine egne rettigheter. Du har derfor ikke lengere adgang til denne siden.',
 
 # Groups
 'group' => 'Gruppe:',
@@ -1595,11 +1637,19 @@ Den kan maks inneholde $1 {{PLURAL:$1|tegn|tegn}}.',
 'right-proxyunbannable' => 'Kan redigere fra blokkerte proxyer',
 'right-unblockself' => 'Fjerne blokkering av seg selv',
 'right-protect' => 'Endre beskyttelsesnivåer og redigere beskyttete sider',
-'right-editprotected' => 'Redigere beskyttede sider',
+'right-editprotected' => 'Redigere beskyttede sider som «{{int:protect-level-sysop}}»',
+'right-editsemiprotected' => 'Redigere beskyttede sider som «{{int:protect-level-autoconfirmed}}»',
 'right-editinterface' => 'Redigere brukergrensesnittet',
 'right-editusercssjs' => 'Redigere andre brukeres CSS- og JS-filer',
 'right-editusercss' => 'Redigere andre brukeres CSS-filer',
 'right-edituserjs' => 'Redigere andre brukeres JS-filer',
+'right-editmyusercss' => 'Rediger dine egne CSS-filer',
+'right-editmyuserjs' => 'Rediger dine egne Javascript-filer',
+'right-viewmywatchlist' => 'Vis din egen overvåkningsliste',
+'right-editmywatchlist' => 'Redigere din egen overvåkningsliste. Legg merke til at noen aksjoner fortsatt vil legge til sider uten denne rettigheten.',
+'right-viewmyprivateinfo' => 'Vise dine egne private data (f.eks. epostadresse og virkelig navn)',
+'right-editmyprivateinfo' => 'Redigere dine egne private data (f.eks. epostadresse og virkelig navn)',
+'right-editmyoptions' => 'Redigere dine egne innstillinger',
 'right-rollback' => 'Raskt tilbakestille den siste brukeren som har redigert en gitt side',
 'right-markbotedits' => 'Markere tilbakestillinger som robotredigeringer',
 'right-noratelimit' => 'Påvirkes ikke av hastighetsgrenser',
@@ -1661,12 +1711,17 @@ Den kan maks inneholde $1 {{PLURAL:$1|tegn|tegn}}.',
 'action-userrights-interwiki' => 'endre brukerrettigheter for brukere på andre wikier',
 'action-siteadmin' => 'låse eller låse opp databasen',
 'action-sendemail' => 'sende e-poster',
+'action-editmywatchlist' => 'redigere din overvåkningsliste',
+'action-viewmywatchlist' => 'Vis din overvåkningsliste',
+'action-viewmyprivateinfo' => 'vise din private informasjon',
+'action-editmyprivateinfo' => 'rediger din private informasjon',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|endring|endringer}}',
 'recentchanges' => 'Siste endringer',
 'recentchanges-legend' => 'Alternativer for siste endringer',
 'recentchanges-summary' => 'På denne siden vises de siste endringene i wikien.',
+'recentchanges-noresult' => 'Ingen endringer i perioden passer med kriteriene.',
 'recentchanges-feed-description' => 'Følg med på siste endringer i denne wikien med denne matingen.',
 'recentchanges-label-newpage' => 'Denne redigeringen opprettet en ny side',
 'recentchanges-label-minor' => 'Dette er en mindre endring',
@@ -1703,7 +1758,6 @@ Den kan maks inneholde $1 {{PLURAL:$1|tegn|tegn}}.',
 'recentchangeslinked-feed' => 'Relaterte endringer',
 'recentchangeslinked-toolbox' => 'Relaterte endringer',
 'recentchangeslinked-title' => 'Endringer relatert til «$1»',
-'recentchangeslinked-noresult' => 'Ingen endringer på lenkede sider i den gitte perioden.',
 'recentchangeslinked-summary' => "Dette er en liste over de siste endringene på sidene lenket fra en spesifisert side (eller til meldlemmer av en spesifisert kategori).
 Sider på [[Special:Watchlist|overvåkningslisten din]] er i '''fet skrift'''.",
 'recentchangeslinked-page' => 'Sidenavn:',
@@ -1715,7 +1769,7 @@ Sider på [[Special:Watchlist|overvåkningslisten din]] er i '''fet skrift'''.",
 'reuploaddesc' => 'Avbryt opplasting og gå tilbake til opplastingsskjemaet',
 'upload-tryagain' => 'Send inn endret filbeskrivelse',
 'uploadnologin' => 'Ikke logget inn',
-'uploadnologintext' => 'Du må være [[Special:UserLogin|logget inn]] for å kunne laste opp filer.',
+'uploadnologintext' => 'Du må $1 for å laste opp filer.',
 'upload_directory_missing' => 'Oppplastingsmappen ($1) mangler og kunne ikke opprettes av tjeneren.',
 'upload_directory_read_only' => 'Opplastingsmappa ($1) er ikke skrivbar for tjeneren.',
 'uploaderror' => 'Feil under opplasting av fil',
@@ -1972,7 +2026,7 @@ Når den filtreres av en bruker, vises bare de sist opplastede versjonene av fil
 # File description page
 'file-anchor-link' => 'Fil',
 'filehist' => 'Filhistorikk',
-'filehist-help' => 'Klikk på en dato/klokkeslett for å se filen slik den var da.',
+'filehist-help' => 'Klikk på et tidspunkt for å vise filen slik den var på det tidspunktet.',
 'filehist-deleteall' => 'slett alt',
 'filehist-deleteone' => 'slett',
 'filehist-revert' => 'tilbakestill',
@@ -2345,9 +2399,8 @@ Fremtidige endringer til denne siden og den tilhørende diskusjonssiden blir lis
 'unwatchthispage' => 'Fjerner overvåkning',
 'notanarticle' => 'Ikke en artikkel',
 'notvisiblerev' => 'Revisjonen er slettet',
-'watchnochange' => 'Ingen av sidene i overvåkningslisten er endret i den valgte perioden.',
 'watchlist-details' => '{{PLURAL:$1|Én side|$1 sider}} på din overvåkningsliste, teller ikke diskusjonssider.',
-'wlheader-enotif' => 'E-postnotifikasjon er slått på.',
+'wlheader-enotif' => 'E-postvarsling er slått på.',
 'wlheader-showupdated' => "Sider som har blitt forandret siden du sist besøkte dem vises i '''fet tekst'''",
 'watchmethod-recent' => 'sjekker siste endringer for sider i overvåkningslisten',
 'watchmethod-list' => 'sjekker siste endringer for sider i overvåkningslisten',
@@ -2914,6 +2967,8 @@ Besøk [//translatewiki.net translatewiki.net] om du ønsker å bidra med overse
 'thumbnail-more' => 'Forstørr',
 'filemissing' => 'Filen mangler',
 'thumbnail_error' => 'Feil under oppretting av miniatyrbilde: $1',
+'thumbnail_error_remote' => 'Feilmelding fra $1:
+$2',
 'djvu_page_error' => 'DjVu-side ute av rekkevidde',
 'djvu_no_xml' => 'Klarte ikke å hente XML for DjVu-fil',
 'thumbnail-temp-create' => 'Kan ikke opprette midlertidig miniatyrbildefil',
@@ -3223,11 +3278,25 @@ Ved å åpne den kan systemet ditt kompromitteres.",
 'minutes' => '{{PLURAL:$1|$1 minutt|$1 minutter}}',
 'hours' => '{{PLURAL:$1|$1 time|$1 timer}}',
 'days' => '{{PLURAL:$1|$1 dag|$1 dager}}',
+'weeks' => '{{PLURAL:$1|$1 uke|$1 uker}}',
 'months' => '{{PLURAL:$1|$1 måned|$1 måneder}}',
 'years' => '{{PLURAL:$1|$1 år}}',
 'ago' => '$1 siden',
 'just-now' => 'nettopp',
 
+# Human-readable timestamps
+'hours-ago' => '$1 {{PLURAL:$1|time|timer}} siden',
+'minutes-ago' => '$1 {{PLURAL:$1|minutt|minutter}} siden',
+'seconds-ago' => '$1 {{PLURAL:$1|sekund|sekunder}} siden',
+'monday-at' => 'Mandag kl. $1',
+'tuesday-at' => 'Tirsdag kl. $1',
+'wednesday-at' => 'Onsdag kl. $1',
+'thursday-at' => 'Torsdag kl. $1',
+'friday-at' => 'Fredag kl. $1',
+'saturday-at' => 'Lørdag kl. $1',
+'sunday-at' => 'Søndag kl. $1',
+'yesterday-at' => 'I går kl. $1',
+
 # Bad image list
 'bad_image_list' => 'Formatet er som følger:
 
@@ -3847,7 +3916,6 @@ Du kan også [[Special:EditWatchlist|bruke standardverktøyet]].',
 'version-other' => 'Annet',
 'version-mediahandlers' => 'Mediahåndterere',
 'version-hooks' => 'Haker',
-'version-extension-functions' => 'Tilleggsfunksjoner',
 'version-parser-extensiontags' => 'Tilleggstagger',
 'version-parser-function-hooks' => 'Parserfunksjoner',
 'version-hook-name' => 'Navn',
@@ -3869,6 +3937,18 @@ Du skal ha mottatt [{{SERVER}}{{SCRIPTPATH}}/COPYING en kopi av GNU General Publ
 'version-entrypoints-header-entrypoint' => 'Inngangspunkt',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
+'redirect' => 'Omdiriger via filnavn, bruker, eller versjonsid',
+'redirect-legend' => 'Omdiriger til en fil eller side',
+'redirect-summary' => 'Denne spesialsiden omdirigerer til en fil (hvis den gis et filnavn), en side (hvis den gis et versjonsnummer), eller en brukerside (hvis den gis en nummerisk brukerid).',
+'redirect-submit' => 'Gå',
+'redirect-lookup' => 'Oppslag:',
+'redirect-value' => 'Verdi:',
+'redirect-user' => 'Bruker-ID',
+'redirect-revision' => 'Sideversjon',
+'redirect-file' => 'Filnavn',
+'redirect-not-exists' => 'Verdi er ikke funnet',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Søk etter duplikatfiler',
 'fileduplicatesearch-summary' => 'Søk etter duplikatfiler basert på dets hash-verdi.',
@@ -3917,6 +3997,7 @@ Du skal ha mottatt [{{SERVER}}{{SCRIPTPATH}}/COPYING en kopi av GNU General Publ
 'tags' => 'Gyldige endringstagger',
 'tag-filter' => 'Filter for [[Special:Tags|tagger]]:',
 'tag-filter-submit' => 'Filtrer',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Tagg|Tagger}}]]: $2)',
 'tags-title' => 'Tagger',
 'tags-intro' => 'Denne siden lister opp taggene programvaren kan merke en endring med, og hva de betyr.',
 'tags-tag' => 'Taggnavn',
@@ -3960,6 +4041,7 @@ Du skal ha mottatt [{{SERVER}}{{SCRIPTPATH}}/COPYING en kopi av GNU General Publ
 'htmlform-selectorother-other' => 'Andre',
 'htmlform-no' => 'Nei',
 'htmlform-yes' => 'Ja',
+'htmlform-chosen-placeholder' => 'Velg et alternativ',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 med støtte for fulltekstsøk',
index a8fa3d8..a93f85a 100644 (file)
@@ -455,7 +455,6 @@ $1",
 'disclaimers' => 'Impressum',
 'disclaimerpage' => 'Project:Impressum',
 'edithelp' => 'Bearbeidenshülp',
-'edithelppage' => 'Help:Ännern',
 'helppage' => 'Help:Hülp',
 'mainpage' => 'Hööftsiet',
 'mainpage-description' => 'Hööftsiet',
@@ -620,7 +619,7 @@ Denk dor an, dat welk Sieden ünner Ümstänn noch jümmer so wiest warrn köön
 'logout' => 'Afmellen',
 'userlogout' => 'Afmellen',
 'notloggedin' => 'Nich anmellt',
-'nologin' => "Wenn du noch keen Brukerkonto hest, denn kannst di anmellen: '''$1'''.",
+'nologin' => 'Wenn du noch keen Brukerkonto hest, denn kannst di anmellen: $1.',
 'nologinlink' => 'Brukerkonto inrichten',
 'createaccount' => 'Nieg Brukerkonto anleggen',
 'gotaccount' => "Hest Du al en Brukerkonto? '''$1'''.",
@@ -1085,7 +1084,6 @@ Seh to, dat de Versionsgeschicht vun’n Artikel vun de Historie her bi de Reeg
 'searchmenu-legend' => 'Söökoptionen',
 'searchmenu-exists' => "* Sied '''[[$1]]'''",
 'searchmenu-new' => "'''Stell de Sied „[[:$1]]“ in dit Wiki nee op!'''",
-'searchhelp-url' => 'Help:Hülp',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Wies Sieden, de mit disse Bookstaven anfangt]]',
 'searchprofile-articles' => 'Inholdsieden',
 'searchprofile-project' => 'Hülp- un Projektsieden',
@@ -1156,7 +1154,6 @@ de aver nich jümmer den aktuellsten Stand weerspegelt.<p>',
 'resetprefs' => 'Trüchsetten',
 'restoreprefs' => 'All Standardinstellungen wedderhalen',
 'prefs-editing' => 'Grött vun’t Textfeld',
-'prefs-edit-boxsize' => 'Grött vun dat Finster för Ännern.',
 'rows' => 'Regen',
 'columns' => 'Spalten',
 'searchresultshead' => 'Söökresultaten',
@@ -1167,9 +1164,6 @@ de aver nich jümmer den aktuellsten Stand weerspegelt.<p>',
 'recentchangesdays-max' => '(Maximal $1 {{PLURAL:$1|Dag|Daag}})',
 'recentchangescount' => 'Antall Ännern, de wiest warrt:',
 'prefs-help-recentchangescount' => 'Dor höört de Ne’esten Ännern, Versionsgeschichten un Logböker to.',
-'prefs-help-watchlist-token' => 'Wenn du in dit Feld in gehemen Slötel ingiffst, denn warrt för dien Oppasslist en RSS-Feed opstellt.
-Elkeen, de den Slötel kennt, kann denn dien Oppasslist ankieken. Söök di also en good Slötel ut.
-Hier is en Tofalls-Slötel, den du bruken kannst: $1',
 'savedprefs' => 'Allens spiekert.',
 'timezonelegend' => 'Tiedrebeed:',
 'localtime' => 'Oortstied:',
@@ -1200,7 +1194,6 @@ Hier is en Tofalls-Slötel, den du bruken kannst: $1',
 'prefs-reset-intro' => 'Du kannst disse Sied bruken, dien Instellungen al op de Standardinstellung trüchtosetten.
 Dat kann nich wedder ungeschehn maakt warrn.',
 'prefs-emailconfirm-label' => 'E-Mail-Bestätigung:',
-'prefs-textboxsize' => 'Grött vun dat Änner-Finster',
 'youremail' => 'Dien E-Mail (kene Plicht) *',
 'username' => 'Brukernaam:',
 'uid' => 'Bruker-ID:',
@@ -1425,7 +1418,6 @@ Dat kann nich wedder ungeschehn maakt warrn.',
 'recentchangeslinked-feed' => 'Ännern an lenkte Sieden',
 'recentchangeslinked-toolbox' => 'Ännern an lenkte Sieden',
 'recentchangeslinked-title' => 'Ännern an Sieden, de vun „$1“ ut lenkt sünd',
-'recentchangeslinked-noresult' => 'In disse Tiet hett nüms de lenkten Sieden ännert.',
 'recentchangeslinked-summary' => "Disse List wiest de letzten Ännern an de Sieden, de vun en bestimmte Siet ut verlenkt oder in en bestimmte Kategorie in sünd. Sieden, de op diene [[Special:Watchlist|Oppasslist]] staht, sünd '''fett''' schreven.",
 'recentchangeslinked-page' => 'Siet:',
 'recentchangeslinked-to' => 'Wies Ännern op Sieden, de hierher wiest',
@@ -1515,7 +1507,7 @@ Wenn du ehr liekers hoochladen wullt, gah trüch un laad de Datei ünner en anne
 'upload-file-error' => 'Internen Fehler',
 'upload-file-error-text' => 'Dat geev en internen Fehler bi dat Anleggen vun en temporäre Datei op’n Server. Segg man en [[Special:ListUsers/sysop|Administrater]] bescheed.',
 'upload-misc-error' => 'Unbekannt Fehler bi dat Hoochladen',
-'upload-misc-error-text' => 'Bi dat Hoochladen geev dat en unbekannten Fehler. Kiek na, wat dor en Fehler in de URL is, wat de Websteed ok löppt un versöök dat denn noch wedder. Wenn dat Problem denn noch jümmer dor is, denn vertell dat en [[Special:ListUsers/sysop|System-Administrater]].',
+'upload-misc-error-text' => 'Bi dat Hoochladen geev dat en unbekannten Fehler. Kiek na, wat dor en Fehler in de URL is, wat de Websteed ok löppt un versöök dat denn noch wedder. Wenn dat Problem denn noch jümmer dor is, denn vertell dat en [[Special:ListUsers/sysop|Administrater]].',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => 'Kunn de URL nich kriegen',
@@ -1883,7 +1875,6 @@ Mehr Informatschonen över enkelte Rechten staht ünner [[{{MediaWiki:Listgroupr
 'unwatchthispage' => 'Nich mehr oppassen',
 'notanarticle' => 'Keen Artikel',
 'notvisiblerev' => 'Version wegsmeten',
-'watchnochange' => 'Kene Siet op dien Oppasslist is in den wiesten Tietruum ännert worrn.',
 'watchlist-details' => '{{PLURAL:$1|Ene Siet is|$1 Sieden sünd}} op dien Oppasslist (ahn Diskuschoonssieden).',
 'wlheader-enotif' => 'Benarichtigen per E-Mail is anstellt.',
 'wlheader-showupdated' => "Sieden, de siet dien letzten Besöök ännert worrn sünd, warrt '''fett''' wiest.",
@@ -3025,7 +3016,6 @@ Du kannst ok de [[Special:EditWatchlist|normale Sied to’n Ännern]] bruken.',
 'version-other' => 'Annern Kraam',
 'version-mediahandlers' => 'Medien-Handlers',
 'version-hooks' => 'Hooks',
-'version-extension-functions' => 'Extension-Funkschonen',
 'version-parser-extensiontags' => "Parser-Extensions ''(Tags)''",
 'version-parser-function-hooks' => 'Parser-Funkschonen',
 'version-hook-name' => 'Hook-Naam',
index d339b04..1e7e4e4 100644 (file)
@@ -414,6 +414,11 @@ $messages = array(
 'oct' => 'okt',
 'nov' => 'nov',
 'dec' => 'des',
+'january-date' => '$1 jannewaori',
+'february-date' => '$1 febrewaori',
+'march-date' => '$1 meert',
+'september-date' => '$1 september',
+'december-date' => '$1 desember',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategorie|Kategorieën}}',
@@ -495,6 +500,7 @@ $messages = array(
 'create-this-page' => 'Disse zied anmaken',
 'delete' => 'Vortdoon',
 'deletethispage' => 'Disse zied vortdoon',
+'undeletethispage' => 'Zied weerummeplaotsen',
 'undelete_short' => '$1 {{PLURAL:$1|versie|versies}} weerummeplaotsen',
 'viewdeleted_short' => '{{PLURAL:$1|Eén versie die vortedaon is|$1 versies die vortedaon bin}} bekieken',
 'protect' => 'Beveiligen',
@@ -548,7 +554,6 @@ $1",
 'disclaimers' => 'Veurbehold',
 'disclaimerpage' => 'Project:Veurbehoud',
 'edithelp' => 'Hulpe mit bewarken',
-'edithelppage' => 'Help:Uutleg',
 'helppage' => 'Help:Inhoud',
 'mainpage' => 'Veurblad',
 'mainpage-description' => 'Veurblad',
@@ -693,6 +698,10 @@ $2',
 'namespaceprotected' => "Je maggen gien ziejen in de '''$1'''-naamruumte bewarken.",
 'customcssprotected' => 'Je kunnen disse CSS-zied niet bewarken, umdat der persoonlike instellingen van n aandere gebruker in staon.',
 'customjsprotected' => 'Je kunnen disse JavaScript-zied niet bewarken, umdat der persoonlike instellingen van n aandere gebruker in staon.',
+'mycustomcssprotected' => 'Je hebben gien toestemming um disse CSS-zied te bewarken.',
+'mycustomjsprotected' => 'Je hebben gien rechten um disse JavaScript-zied te bewarken.',
+'myprivateinfoprotected' => 'Je hebben gien rechten um joew priveegegevens an te passen.',
+'mypreferencesprotected' => 'Je hebben gien rechten um joew veurkeuren an te passen.',
 'ns-specialprotected' => 'Spesiale ziejen kunnen niet bewarkt wörden.',
 'titleprotected' => "t Anmaken van disse zied is beveiligd deur [[User:$1|$1]].
 De op-egeven reden is ''$2''.",
@@ -715,15 +724,22 @@ De beheerder gaf hierveur de volgende reden: "$3".',
 Je kunnen {{SITENAME}} noen anoniem gebruken of je eigen <span class='plainlinks'>[$1 opniej anmelden]</span> onder disse of n aandere gebrukersnaam.
 t Kan ween dat der wat ziejen bin die weeregeven wörden asof je an-emeld bin totda'j t tussengeheugen van joew webkieker leegmaken.",
 'welcomeuser' => 'Welkom, $1!',
+'welcomecreation-msg' => 'Joew gebruker is an-emaakt.
+Vergeet niet joew [[Special:Preferences|veurkeuren veur {{SITENAME}}]] an te passen.',
 'yourname' => 'Gebrukersnaam',
 'userlogin-yourname' => 'Gebrukersnaam',
 'userlogin-yourname-ph' => 'Geef joew gebrukersnaam op',
+'createacct-another-username-ph' => 'Vul de gebrukersnaam in',
 'yourpassword' => 'Wachtwoord',
 'userlogin-yourpassword' => 'Wachtwoord',
 'userlogin-yourpassword-ph' => 'Geef joew wachtwoord op',
+'createacct-yourpassword-ph' => 'Geef n wachtwoord op',
 'yourpasswordagain' => 'Opniej invoeren',
+'createacct-yourpasswordagain' => 'Wachtwoord bevestigen',
+'createacct-yourpasswordagain-ph' => 'Geef t wachtwoord opniej op',
 'remembermypassword' => 'Vanzelf anmelden (hooguut $1 {{PLURAL:$1|dag|dagen}})',
 'userlogin-remembermypassword' => 'Vanzelf anmelden',
+'userlogin-signwithsecure' => 'Beveiligde verbiending gebruken',
 'securelogin-stick-https' => "Verbunnen blieven via HTTPS naoda'j an-emeld bin",
 'yourdomainname' => 'Joew domein',
 'password-change-forbidden' => 'Je kunnen joew wachtwoord niet wiezigen op disse wiki.',
@@ -737,19 +753,39 @@ t Kan ween dat der wat ziejen bin die weeregeven wörden asof je an-emeld bin to
 'userlogout' => 'Aofmelden',
 'notloggedin' => 'Niet an-emeld',
 'userlogin-noaccount' => "He'j nog gien gebrukersnaam?",
-'userlogin-joinproject' => 'Over {{SITENAME}}',
-'nologin' => "He'j nog gien gebrukersnaam? '''$1'''.",
+'userlogin-joinproject' => 'Wörd lid van {{SITENAME}}',
+'nologin' => "He'j nog gien gebrukersnaam? $1.",
 'nologinlink' => 'Maak n gebrukersprofiel an',
-'createaccount' => 'Niej gebrukersprofiel anmaken',
+'createaccount' => 'Inschrieven',
 'gotaccount' => "Stao'j al in-eschreven? '''$1'''.",
 'gotaccountlink' => 'Anmelden',
 'userlogin-resetlink' => "Bi'j de anmeldgegevens kwiet?",
+'userlogin-resetpassword-link' => 'Joew wachtwoord opniej instellen',
+'helplogin-url' => 'Help:Anmelden',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hulpe bie t anmelden]]',
+'createacct-join' => 'Geef joew gegevens hieronder op.',
+'createacct-another-join' => 'Vul hieronder de informasie van de nieje gebruker in.',
+'createacct-emailrequired' => 'Netpostadres',
+'createacct-emailoptional' => 'Netpostadres (niet verplicht)',
+'createacct-email-ph' => 'Geef joew netpostadres op',
+'createacct-another-email-ph' => 'Vul joew netpostadres in',
 'createaccountmail' => 'Gebruuk n tiejelik wachtwoord dat joe netzelde is en stuur t naor t netpostadres dat hieronder steet',
+'createacct-realname' => 'Echte naam (niet verplicht)',
 'createaccountreason' => 'Reden:',
+'createacct-reason-ph' => 'Waorumme jie n aandere gebruker anmaken',
+'createacct-captcha' => 'Veiligheidskontraole',
+'createacct-imgcaptcha-ph' => "Voer de tekste in die'j hierboven zien",
+'createacct-submit' => 'Gebruker anmaken',
+'createacct-another-submit' => 'n Aandere gebruker anmaken',
+'createacct-benefit-heading' => '{{SITENAME}} wörden emaakt deur meensen zo as jie.',
+'createacct-benefit-body1' => 'bewarking{{PLURAL:$1||en}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|zied|ziejen}}',
+'createacct-benefit-body3' => 'aktieve {{PLURAL:$1|biedrager|biedragers}}',
 'badretype' => "De wachtwoorden die'j in-etikt hebben bin niet liek alleens.",
 'userexists' => 'Disse gebrukersnaam is al gebruuk.
 Kies n aandere naam.',
 'loginerror' => 'Anmeldingsfout',
+'createacct-error' => 'Fout bie t anmaken van n gebruker',
 'createaccounterror' => 'Kon de gebrukersnaam niet anmaken: $1',
 'nocookiesnew' => 'De gebrukersnaam is an-emaakt, mer je bin niet an-emeld.
 {{SITENAME}} gebruuk scheumbestaanden (cookies) um gebrukers an te melden.
@@ -789,7 +825,7 @@ en blief joew bestaonde wachtwoord gebruken.',
 'passwordsent' => 'Der is n niej wachtwoord verstuurd naor t netpostadres van gebruker "$1". Meld an, a\'j t wachtwoord ontvangen.',
 'blocked-mailpassword' => "Dit IP-adres is eblokkeerd. Dit betekent da'j niet bewarken kunnen en dat {{SITENAME}} joew wachtwoord niet weerummehaolen kan, dit wörden edaon um misbruuk tegen te gaon.",
 'eauthentsent' => "Der is n bevestigingsberich naor t op-egeven netpostadres verstuurd. Veurdat der veerdere berichten naor dit netpostadres verstuurd kunnen wörden, mu'j de instruksies volgen in t toe-esturen berich, um te bevestigen da'j joe eigen daodwarkelik an-emeld hebben.",
-'throttled-mailpassword' => 'In {{PLURAL:$1|t leste ure|de leste $1 uren}} is der al n wachtwoordherinnering estuurd.
+'throttled-mailpassword' => 'In {{PLURAL:$1|t veurbieje ure|de veurbieje $1 uren}} is der al n wachtwoordherinnering estuurd.
 Um misbruuk te veurkoemen wörden der mer één wachtwoordherinnering per {{PLURAL:$1|ure|$1 uren}} verstuurd.',
 'mailerror' => 'Fout bie t versturen van bericht: $1',
 'acct_creation_throttle_hit' => 'Onder dit IP-adres hebben luui de veurbieje dag al {{PLURAL:$1|1 gebruker|$1 gebrukers}} an-emaakt. Meer is niet toe-estaon in disse periode. Daorumme kunnen gebrukers mit dit IP-adres noen effen gien gebrukers meer anmaken.',
@@ -802,7 +838,7 @@ Voer de juuste opmaak van t adres in of laot t veld leeg.',
 'cannotchangeemail' => 't Netpostadres veur n gebruker kan op disse wiki niet ewiezigd wörden.',
 'emaildisabled' => 'Disse webstee kan gien netpost versturen.',
 'accountcreated' => 'Gebrukersprofiel is an-emaakt',
-'accountcreatedtext' => 'De gebrukersnaam veur $1 is an-emaakt.',
+'accountcreatedtext' => 'De gebrukersnaam veur [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) is an-emaakt.',
 'createaccount-title' => 'Gebrukers anmaken veur {{SITENAME}}',
 'createaccount-text' => 'Der hef der ene n gebruker veur $2 an-emaakt op {{SITENAME}} ($4). t Wachtwoord veur "$2" is "$3".
 Meld je noen an en wiezig t wachtwoord.
@@ -818,6 +854,7 @@ Je mutten effen wachten veurda'j t opniej proberen kunnen.",
 # Email sending
 'php-mail-error-unknown' => 'Der was n onbekende fout mit de mail()-funksie van PHP',
 'user-mail-no-addy' => 'Eprobeerd n berichjen te versturen zonder n netpostadres',
+'user-mail-no-body' => 'Der is eprobeerd n netbreef zonder tekste of mit n biester korte tekste te versturen.',
 
 # Change password dialog
 'resetpass' => 'Wachtwoord wiezigen',
@@ -836,38 +873,40 @@ Je mutten effen wachten veurda'j t opniej proberen kunnen.",
 'resetpass-wrong-oldpass' => "t Veurlopige wachtwoord of t wachtwoord da'j noen hebben is ongeldig.
 Misschien he'j t wachtwoord al ewiezigd of n niej veurlopig wachtwoord an-evreugen.",
 'resetpass-temp-password' => 'Veurlopig wachtwoord:',
+'resetpass-abort-generic' => 'De wachtwoordwieziging is aofebreuken deur n uutbreiding.',
 
 # Special:PasswordReset
 'passwordreset' => 'Wachtwoord opniej instellen',
-'passwordreset-text' => 'Vul dit formulier in zoda-w joe netpost kunnen sturen mit de gebrukersgegevens.',
+'passwordreset-text-one' => 'Vul dit formulier in um joew wachtwoord opniej in te stellen.',
+'passwordreset-text-many' => '{{PLURAL:$1|Vul een van de gegevensvelden in um joew wachtwoord opniej in te stellen.}}',
 'passwordreset-legend' => 'Wachtwoord opniej instellen',
 'passwordreset-disabled' => 'Je kunnen op disse wiki joew wachtwoord niet opniej instellen.',
-'passwordreset-pretext' => '{{PLURAL:$1||Voer één van de onderstaonde velden in}}',
+'passwordreset-emaildisabled' => 'Netpostmeugelikhejen bin uutezet op disse wiki.',
 'passwordreset-username' => 'Gebruker:',
 'passwordreset-domain' => 'Domein:',
 'passwordreset-capture' => 'De resulterende netpost bekieken?',
 'passwordreset-capture-help' => "A'j dit vakjen anvinken, dan krie'j t netpostbericht (mit t tiedelike wachtwoord) te zien en t wörden naor de gebruker estuurd.",
 'passwordreset-email' => 'Netpostadres:',
 'passwordreset-emailtitle' => 'Gebrukersgegevens op {{SITENAME}}',
-'passwordreset-emailtext-ip' => "Der hef der ene, warschienlik jie zelf, gebrukersgegevens veur {{SITENAME}} ($4) op-evreugen vanaof t IP-adres $1.
+'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.
 De volgende {{PLURAL:$3|gebruker is|gebrukers bin}} ekoppeld an dit netpostadres:
 
 $2
 
-{{PLURAL:$3|Dit tiedelike wachtwoord vervölt|Disse tiedelike wachtwoorden vervallen}} over {{PLURAL:$5|één dag|$5 dagen}}.
+{{PLURAL:$3|Dit tiejelike wachtwoord vervölt|Disse tiejelike wachtwoorden vervallen}} over {{PLURAL:$5|één dag|$5 dagen}}.
 Meld 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 joew gebrukersgegevens veur {{SITENAME}} ($4) op-evreugen vanaof t IP-adres $1.
+'passwordreset-emailtext-user' => "De gebruker $1 van {{SITENAME}} hef n anvraag edaon um joew wachtwoord veur {{SITENAME}} ($4) opniej in te stellen. 
 De volgende {{PLURAL:$3|gebruker is|gebrukers bin}} ekoppeld an dit netpostadres:
 
 $2
 
-{{PLURAL:$3|Dit tiedelike wachtwoord vervölt|Disse tiedelike wachtwoorden vervallen}} over {{PLURAL:$5|één dag|$5 dagen}}.
+{{PLURAL:$3|Dit tiejelike wachtwoord vervölt|Disse tiejelike wachtwoorden vervallen}} over {{PLURAL:$5|één dag|$5 dagen}}.
 Meld 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
 Tiedelik wachtwoord: $2',
-'passwordreset-emailsent' => 'Der is per netpost n herinnering verstuurd.',
-'passwordreset-emailsent-capture' => "Der is n herinneringsbericht verstuurd. Dit ku'j hieronder lezen.",
-'passwordreset-emailerror-capture' => "Der is n herinneringsbericht an-emaakt. Dit ku'j hieronder lezen. t Versturne naor de gebruker is mislokt um de volgende reden: $1",
+'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",
 
 # Special:ChangeEmail
 'changeemail' => 'Wiezig netpostadres',
@@ -877,6 +916,7 @@ Tiedelik wachtwoord: $2',
 'changeemail-oldemail' => 't Ouwe netpostadres:',
 'changeemail-newemail' => 't Nieje netpostadres:',
 'changeemail-none' => '(gien)',
+'changeemail-password' => 'Joew wachtwoord veur {{SITENAME}}:',
 'changeemail-submit' => 'Netpostadres wiezigen',
 'changeemail-cancel' => 'Aofbreken',
 
@@ -1001,7 +1041,7 @@ De leste regel uut t blokkeerlogboek steet hieronder as referensie:',
 'note' => "'''Opmarking:'''",
 'previewnote' => "'''Waort je: dit is n naokiekzied.'''
 Joew tekste is niet op-esleugen!",
-'continue-editing' => 'Deurgaon mit bewarken',
+'continue-editing' => 'Gao naor t bewarkingsvienster',
 'previewconflict' => "Disse versie löt zien hoe de tekste in t bovenste veld deruut kömp te zien a'j de tekste opslaon.",
 'session_fail_preview' => "'''De bewarking kan niet verwarkt wörden wegens n verlies an data.'''
 Probeer t laoter weer.
@@ -1041,7 +1081,7 @@ Deur op \"Zied opslaon\" te klikken beleuf je ons da'j disse tekste zelf eschrev
 'readonlywarning' => "'''Waorschuwing: De databanke is op dit moment in onderhoud; t is daorumme niet meugelik um ziejen te wiezigen.
 Je kunnen de tekste t beste bie joew eigen systeem opslaon en laoter opniej proberen de zied te bewarken.'''
 
-As grund is angeven: $1",
+As reden is an-egeven: $1",
 'protectedpagewarning' => "'''Waorschuwing: disse zied is beveiligd, zodat allinnig beheerders t kunnen wiezigen.'''
 De leste logboekregel steet hieronder:",
 'semiprotectedpagewarning' => "'''Let op:''' disse zied is beveiligd en ku'j allinnig bewarken a'j n eregistreerden gebruker bin.
@@ -1060,7 +1100,7 @@ De leste logboekregel steet hieronder:",
 'nocreate-loggedin' => 'Je hebben gien toestemming um nieje ziejen an te maken.',
 'sectioneditnotsupported-title' => 't Bewarken van seksies wörden niet ondersteund',
 'sectioneditnotsupported-text' => 'Je kunnen op disse zied gien seksies bewarken.',
-'permissionserrors' => 'Fouten mit de rechten',
+'permissionserrors' => 'Gien toestemming',
 'permissionserrorstext' => 'Je maggen of kunnen dit niet doon. De {{PLURAL:$1|reden|redens}} daorveur {{PLURAL:$1|is|bin}}:',
 'permissionserrorstext-withaction' => 'Je hebben gien rech um $2, mit de volgende {{PLURAL:$1|reden|redens}}:',
 'recreate-moveddeleted-warn' => "'''Waorschuwing: je maken n zied an die eerder al vortedaon is.'''
@@ -1076,9 +1116,12 @@ Der is gien reden op-egeven.',
 t Schient dat t vortedaon is.',
 'edit-conflict' => 'Tegelieke bewörken.',
 'edit-no-change' => 'Joew bewarking is enegeerd, umdat der gien wieziging an de tekste edaon is.',
+'postedit-confirmation' => 'Joew bewarking is op-esleugen',
 'edit-already-exists' => 'De zied kon niet an-emaakt wörden.
 t Besteet al.',
 'defaultmessagetext' => 'Standardtekste',
+'content-failed-to-parse' => 'Kon de inhoud van t MIME-type $2 veur t model $1 niet verwarken: $3.',
+'content-not-allowed-here' => 'De inhoud "$1" is niet toe-estaan op de zied [[$2]].',
 'editwarning-warning' => "A'j disse zied aofsluten dan kan t ween dat der wieziging die'j emaakt hebben kwiet raken.
 A'j an-emeld bin, dan ku'j disse waorschuwing uutzetten in t tabblad \"Bewarken\" in joew veurkeuren.",
 
@@ -1114,6 +1157,7 @@ Sommigen mallen wörden niet in-evoegd.',
 'undo-failure' => 'De wieziging kon niet weerummedreid wörden umdat t ondertussen awweer ewiezigd is.',
 'undo-norev' => 'De bewarking kon niet weerummedreid wörden, umdat t niet besteet of vortedaon is.',
 'undo-summary' => 'Versie $1 van [[Special:Contributions/$2|$2]] ([[User talk:$2|overleg]]) weerummedreid.',
+'undo-summary-username-hidden' => 'Versie $1 deur n verbörgen gebruker weerummedreid',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Anmaken van n gebrukersprofiel is niet meugelik',
@@ -1288,6 +1332,7 @@ In de [[Special:BlockList|blokkeerlieste]] bin de blokkeringen, die noen van toe
 'compareselectedversions' => 'Vergeliek de ekeuzen versies',
 'showhideselectedversions' => 'Ekeuzen versies bekieken/verbargen',
 'editundo' => 'weerummedreien',
+'diff-empty' => '(Gien verschil)',
 'diff-multi' => '(Hier {{PLURAL:$1|zit nog 1 versie|zitten nog $1 versies}} van {{PLURAL:$2|1 gebruker|$2 gebrukers}} tussen die der niet bie staon.)',
 'diff-multi-manyusers' => '($1 tussenliggende {{PLURAL:$1|versie|versies}} deur meer as $2 {{PLURAL:$2|gebruker|gebrukers}} niet weeregeven)',
 'difference-missing-revision' => "{{PLURAL:$2|Eén versie|$2 versies}} van disse verschillen ($1) {{PLURAL:$2|is|bin}} niet evunnen.
@@ -1315,7 +1360,6 @@ Waorschienlik ku'j der meer gegevens over vienen in t [{{fullurl:{{#Special:Log}
 'searchmenu-legend' => 'Zeukopsies',
 'searchmenu-exists' => "'''Der is n zied mit de naam \"[[:\$1]]\" op disse wiki.'''",
 'searchmenu-new' => "'''De zied \"[[:\$1]]\" op disse wiki anmaken!'''",
-'searchhelp-url' => 'Help:Inhold',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Ziednamen mit dit veurvoegsel laoten zien]]',
 'searchprofile-articles' => 'Artikels',
 'searchprofile-project' => 'Hulp- en projektziejen',
@@ -1356,6 +1400,7 @@ Waorschienlik ku'j der meer gegevens over vienen in t [{{fullurl:{{#Special:Log}
 'powersearch-togglenone' => 'Gien',
 'search-external' => 'Extern zeuken',
 'searchdisabled' => 'Zeuken in {{SITENAME}} is niet meugelik. Je kunnen gebruukmaken van Google. De gegevens over {{SITENAME}} bin misschien niet bie-ewörken.',
+'search-error' => 'Der is wat mis-egaon bie t zeuken: $1',
 
 # Preferences page
 'preferences' => 'Veurkeuren',
@@ -1389,7 +1434,6 @@ Waorschienlik ku'j der meer gegevens over vienen in t [{{fullurl:{{#Special:Log}
 'resetprefs' => 'Standardveurkeuren herstellen',
 'restoreprefs' => 'Alle standardinstellingen weerummezetten',
 'prefs-editing' => 'Bewarkingsveld',
-'prefs-edit-boxsize' => 'Aofmetingen van t bewarkingsvienster.',
 'rows' => 'Regels',
 'columns' => 'Kolommen',
 'searchresultshead' => 'Zeukresultaoten',
@@ -1400,9 +1444,6 @@ Waorschienlik ku'j der meer gegevens over vienen in t [{{fullurl:{{#Special:Log}
 'recentchangesdays-max' => '(hooguut $1 {{PLURAL:$1|dag|dagen}})',
 'recentchangescount' => 'Standard antal bewarkingen um te laoten zien:',
 'prefs-help-recentchangescount' => 'Dit geldt veur leste wiezigingen, ziedgeschiedenisse en logboekziejen',
-'prefs-help-watchlist-token' => "A'j in dit veld n geheime kode invullen, dan maakt t RSS-voer an veur joew volglieste.
-Iederene die disse kode weet kan joew volglieste bekieken, kies dus n veilige kode.
-Je kunnen oek disse egenereren standardkode gebruken: $1",
 'savedprefs' => 'Veurkeuren bin op-esleugen.',
 'timezonelegend' => 'Tiedzone:',
 'localtime' => 'Plaotselike tied:',
@@ -1433,11 +1474,10 @@ Je kunnen oek disse egenereren standardkode gebruken: $1",
 'prefs-reset-intro' => 'Je kunnen disse zied gebruken um joew veurkeuren naor de standardinstellingen weerumme te zetten.
 Disse haandeling kan niet ongedaonemaakt wörden.',
 'prefs-emailconfirm-label' => 'Netpostbevestiging:',
-'prefs-textboxsize' => 'Aofmetingen bewarkingsscharm',
 'youremail' => 'Netpostadres (niet verplicht) *',
 'username' => '{{GENDER:$1|Gebrukersnaam}}:',
 'uid' => '{{GENDER:$1|Gebrukersnummer}}:',
-'prefs-memberingroups' => 'Lid van {{PLURAL:$1|groep|groepen}}:',
+'prefs-memberingroups' => '{{GENDER:$2|Lid}} van {{PLURAL:$1|groep|groepen}}:',
 'prefs-registration' => 'Registrasiedaotum:',
 'yourrealname' => 'Echte naam (niet verplicht)',
 'yourlanguage' => 'Taal veur systeemteksten',
@@ -1464,7 +1504,9 @@ Disse informasie is zichtbaor veur aandere gebrukers.',
 'prefs-signature' => 'Ondertekening',
 'prefs-dateformat' => 'Daotumopmaak:',
 'prefs-timeoffset' => 'Tiedsverschil',
-'prefs-advancedediting' => 'Aandere instellingen',
+'prefs-advancedediting' => 'Algemeen',
+'prefs-editor' => 'Bewarkingsprogramma',
+'prefs-preview' => 'Naokieken',
 'prefs-advancedrc' => 'Aandere instellingen',
 'prefs-advancedrendering' => 'Aandere instellingen',
 'prefs-advancedsearchoptions' => 'Aandere instellingen',
@@ -1499,6 +1541,8 @@ Disse informasie is zichtbaor veur aandere gebrukers.',
 'userrights-notallowed' => 'Je hebben gien rechten um gebrukersrechten toe te kunnen wiezen of in te trekken.',
 'userrights-changeable-col' => "Groepen die'j beheren kunnen",
 'userrights-unchangeable-col' => "Groepen die'j niet beheren kunnen",
+'userrights-conflict' => 'Gebrukersrechtenkonflikt! Voer joew wiezigingen nog es in.',
+'userrights-removed-self' => 'Je hebben joew eigen bevoegdhejen in-etrökken. Je kunnen disse zied niet meer gebruken.',
 
 # Groups
 'group' => 'Groep:',
@@ -1542,7 +1586,7 @@ Disse informasie is zichtbaor veur aandere gebrukers.',
 'right-reupload-shared' => 'Media uut de edeelden mediadatabanke plaotselik overschrieven',
 'right-upload_by_url' => 'Bestaanden inlaojen via n webadres',
 'right-purge' => 't Tussengeheugen van n zied legen',
-'right-autoconfirmed' => 'Behaandeld wörden as n an-emelde gebruker',
+'right-autoconfirmed' => 'Uutezonderd van IP-adres-ebaseerden tiedsaofhankelike beparkingen',
 'right-bot' => 'Behaandeld wörden as n eautomatiseerd preces',
 'right-nominornewtalk' => "Kleine bewarkingen an n overlegzied leien niet tot n melding 'nieje berichten'",
 'right-apihighlimits' => 'Hoge API-limieten gebruken',
@@ -1564,11 +1608,19 @@ Disse informasie is zichtbaor veur aandere gebrukers.',
 'right-proxyunbannable' => "Blokkeringen veur proxy's gelden niet",
 'right-unblockself' => 'Eigen gebruker deblokkeren',
 'right-protect' => "Beveiligingsnivo's wiezigen",
-'right-editprotected' => 'Beveiligden ziejen bewarken',
-'right-editinterface' => 't {{SITENAME}}-uterlik bewarken',
+'right-editprotected' => 'Ziejen bewarken die beveiligd bin as "{{int:protect-level-sysop}}"',
+'right-editsemiprotected' => 'Ziejen bewarken die beveiligd bin as "{{int:protect-level-autoconfirmed}}"',
+'right-editinterface' => 'Systeemteksten bewarken',
 'right-editusercssjs' => 'De CSS- en JS-bestaanden van aandere gebrukers bewarken',
 'right-editusercss' => 'De CSS-bestaanden van aandere gebrukers bewarken',
 'right-edituserjs' => 'De JS-bestaanden van aandere gebrukers bewarken',
+'right-editmyusercss' => 'Joew eigen CSS-ziejen bewarken',
+'right-editmyuserjs' => 'Joew eigen JavaScript-ziejen bewarken',
+'right-viewmywatchlist' => 'Joew eigen volglieste bekieken',
+'right-editmywatchlist' => 'Joew eigen volglieste bewarken. Via sommige haandelingen kunnen nog altied ziejen derbie ezet wörden, zelfs zonder disse bevoegdheid',
+'right-viewmyprivateinfo' => 'Joew eigen priveegegevens bekieken (bieveurbeeld netpostadres, echte naam)',
+'right-editmyprivateinfo' => 'Joew eigen priveegegevens bewarken (bieveurbeeld netpostadres, echte naam)',
+'right-editmyoptions' => 'Joew eigen veurkeuren bewarken',
 'right-rollback' => 'Gauw de leste bewarking(en) van n gebruker an n zied weerummedreien',
 'right-markbotedits' => 'Weerummedreien bewarkingen markeren as botbewarkingen',
 'right-noratelimit' => 'Hef gien tiedsaofhankelike beparkingen',
@@ -1630,12 +1682,17 @@ Disse informasie is zichtbaor veur aandere gebrukers.',
 'action-userrights-interwiki' => "de rechten van gebrukers op aandere wiki's bewarken",
 'action-siteadmin' => 'de databanke blokkeren of vriegeven',
 'action-sendemail' => 'netpostberichten versturen',
+'action-editmywatchlist' => 'joew eigen volglieste bewarken',
+'action-viewmywatchlist' => 'joew eigen volglieste bekieken',
+'action-viewmyprivateinfo' => 'joew eigen priveegegevens bekieken',
+'action-editmyprivateinfo' => 'joew eigen priveegegevens bewarken',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|wieziging|wiezigingen}}',
 'recentchanges' => 'Leste wiezigingen',
 'recentchanges-legend' => 'Opsies veur leste wiezigingen',
 'recentchanges-summary' => "Op disse zied ku'j de leste wiezigingen van disse wiki bekieken.",
+'recentchanges-noresult' => 'Der waren in disse periode gien wiezigingen die an de kriteria voldoon.',
 'recentchanges-feed-description' => 'Zeuk naor de alderleste wiezingen op disse wiki in disse voer.',
 'recentchanges-label-newpage' => 'Mit disse bewarking is n nieje zied an-emaakt',
 'recentchanges-label-minor' => 'Dit is n kleine wieziging',
@@ -1673,7 +1730,6 @@ Disse informasie is zichtbaor veur aandere gebrukers.',
 'recentchangeslinked-feed' => 'Volg verwiezigingen',
 'recentchangeslinked-toolbox' => 'Volg verwiezigingen',
 'recentchangeslinked-title' => 'Wiezigingen verwaant an $1',
-'recentchangeslinked-noresult' => 'Gien wiezigingen of zied waornaor verwezen wörden in disse periode.',
 'recentchangeslinked-summary' => "Op disse spesiale zied steet n lieste mit de leste wieziginen op ziejen waornaor verwezen wörden. Ziejen op [[Special:Watchlist|joew volglieste]] staon '''vet-edrokt'''.",
 'recentchangeslinked-page' => 'Ziednaam:',
 'recentchangeslinked-to' => 'Bekiek wiezigingen op ziejen mit verwiezingen naor disse zied',
@@ -1684,7 +1740,7 @@ Disse informasie is zichtbaor veur aandere gebrukers.',
 'reuploaddesc' => 'Weerumme naor de opstuurzied',
 'upload-tryagain' => 'Bestaandsbeschrieving biewarken',
 'uploadnologin' => 'Niet an-emeld',
-'uploadnologintext' => 'Je mutten [[Special:UserLogin|an-emeld]] ween um bestaanden toe te kunnen voegen.',
+'uploadnologintext' => 'Je mutten $1 ween um bestaanden op te kunnen sturen.',
 'upload_directory_missing' => 'De inlaojmap veur bestaanden ($1) is vort en kon niet an-emaakt wörden deur de webserver.',
 'upload_directory_read_only' => "Op t moment ku'j gien bestaanden opsturen vanwegen techniese problemen ($1).",
 'uploaderror' => 'Fout bie t inlaojen van t bestaand',
@@ -1803,11 +1859,11 @@ Gao weerumme naor t [[Special:Upload/stash/$1|opstuurformulier]] um dit probleem
 'upload-proto-error' => 'Verkeerd protokol',
 'upload-proto-error-text' => 'Um op disse maniere bestaanden toe te voegen mutten webadressen beginnen mit <code>http://</code> of <code>ftp://</code>.',
 'upload-file-error' => 'Interne fout',
-'upload-file-error-text' => 'Bie ons gung der effen wat fout to n tiedelik bestaand op de server an-emaakt wörden. Neem kontakt op mit n [[Special:ListUsers/sysop|systeembeheerder]].',
+'upload-file-error-text' => 'Bie ons gung der effen wat fout to n tiedelik bestaand op de server an-emaakt wörden. Neem kontakt op mit n [[Special:ListUsers/sysop|beheerder]].',
 'upload-misc-error' => 'Onbekende fout bie t inlaojen van joew bestaand',
 'upload-misc-error-text' => 'Der is bie t inlaojen van t bestaand n onbekende fout op-etrejen. 
 Kiek effen nao of de verwiezing t wel döt en probeer t opniej. 
-As t probleem zo blif, neem dan kontakt op mit één van de [[Special:ListUsers/sysop|systeembeheerders]].',
+As t probleem zo blif, neem dan kontakt op mit één van de [[Special:ListUsers/sysop|beheerders]].',
 'upload-too-many-redirects' => 'Der zatten te veule deurverwiezingen in de URL.',
 'upload-unknown-size' => 'Onbekende grootte',
 'upload-http-error' => 'Der is n HTTP-fout op-etrejen: $1',
@@ -1821,6 +1877,7 @@ As t probleem zo blif, neem dan kontakt op mit één van de [[Special:ListUsers/
 'backend-fail-notsame' => 'Der steet al n niet-geliek bestaand op de plaotse $1.',
 'backend-fail-invalidpath' => '$1 is gien geldig opslagpad.',
 'backend-fail-delete' => 't Bestaand $1 kon niet vortedaon wörden.',
+'backend-fail-describe' => 'Kon de metadata niet anpassen veur t bestaand "$1".',
 'backend-fail-alreadyexists' => 't Bestaand $1 besteet al.',
 'backend-fail-store' => 'Kon t bestaand $1 niet opslaon op lokasie $2.',
 'backend-fail-copy' => 'Kon t bestaand $1 niet kopiëren naor $2.',
@@ -1966,7 +2023,7 @@ Je kunnen de [$2 zied mit de bestaandsbeschrieving] daor bewarken.',
 'uploadnewversion-linktext' => 'n Niejere versie van dit bestaand opsturen.',
 'shared-repo-from' => 'uut $1',
 'shared-repo' => 'n edeelden mediadatabanke',
-'upload-disallowed-here' => 'Je kunnen disse aofbeelding niet overschrieven.',
+'upload-disallowed-here' => 'Je kunnen dit bestaand niet overschrieven.',
 
 # File reversion
 'filerevert' => '$1 weerummedreien',
@@ -2051,6 +2108,9 @@ Vergeet niet de verwiezingen nao te kieken veurda\'j de mal vortdoon.',
 Feitelik mutten ze rechtstreeks verwiezen naor t juuste onderwarp.<br />
 Ziejen wörden ezien as n deurverwieszied, as de mal gebruukt wörden die vermeld steet op [[MediaWiki:Disambiguationspage]].",
 
+'pageswithprop' => 'Ziejen mit n ziedeigenschap',
+'pageswithprop-legend' => 'Ziejen mit n zied-eigenschap',
+'pageswithprop-text' => 'Op disse zied staon ziejen mit n bepaolde ziedeigenschap.',
 'pageswithprop-submit' => 'Zeuk',
 
 'doubleredirects' => 'Dubbele deurverwiezingen',
@@ -2105,7 +2165,7 @@ Meestentieds is leste zied de gewunste doelzied, waor oek de eerste zied heer zo
 'mostlinkedtemplates' => 'Meestgebruukten mallen',
 'mostcategories' => 'Artikels mit de meeste kategorieën',
 'mostimages' => 'Meestgebruukten bestaanden',
-'mostinterwikis' => "Pagina's mit de meeste interwikiverwiezingen",
+'mostinterwikis' => 'Ziejen mit de meeste interwikiverwiezingen',
 'mostrevisions' => 'Artikels mit de meeste bewarkingen',
 'prefixindex' => 'Alle ziejen op veurvoegsel',
 'prefixindex-namespace' => 'Alle ziejen mit t veurvoegsel (naamruumte $1)',
@@ -2208,7 +2268,7 @@ Zie oek [[Special:WantedCategories|gewunste kategorieën]].",
 'linksearch-ok' => 'Zeuken',
 'linksearch-text' => 'Jokers zo as "*.wikipedia.org" of "*.org" bin toe-estaon.
 Hef tenminsten n topdomein, zo as "*.org".<br />
-Ondersteunde protokollen: <code>$1</code> (zet t niet in joew zeukopdrachte).',
+{{PLURAL:$2|Ondersteund protokol|Ondersteunde protokollen}}: <code>$1</code> (wörden "http://" as der gien protokol op-egeven wörden).',
 'linksearch-line' => '$1 hef n verwiezing in $2',
 'linksearch-error' => 'Jokers bin allinnig toe-estaon an t begin van n webadres.',
 
@@ -2221,7 +2281,7 @@ Ondersteunde protokollen: <code>$1</code> (zet t niet in joew zeukopdrachte).',
 # Special:ActiveUsers
 'activeusers' => 'Aktieve gebrukers',
 'activeusers-intro' => 'Dit is n lieste van gebrukers die de aofgeleupen $1 {{PLURAL:$1|dag|dagen}} enigszins aktief ewest hebben.',
-'activeusers-count' => '$1 leste {{PLURAL:$1|bewarking|bewarkingen}} in de aofgeleupen {{PLURAL:$3|dag|$3 dagen}}',
+'activeusers-count' => '$1 leste {{PLURAL:$1|haandeling|haandelingen}} in de aofeleupen {{PLURAL:$3|dag|$3 dagen}}',
 'activeusers-from' => 'Laot gebrukers zien vanaof:',
 'activeusers-hidebots' => 'Bots verbargen',
 'activeusers-hidesysops' => 'Beheerders verbargen',
@@ -2253,7 +2313,7 @@ Meer informasie over de rechten ku'j [[{{MediaWiki:Listgrouprights-helppage}}|hi
 '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 gebruker.
+'emailpagetext' => "Deur middel van dit formulier ku'j n bericht sturen naor disse {{GENDER:$1|gebruker}}.
 t Adres da'j op-egeven hebben bie [[Special:Preferences|joew veurkeuren]] zal as aofzender gebruukt wörden.
 De ontvanger kan dus drek beantwoorden.",
 'usermailererror' => 'Foutmelding bie t versturen:',
@@ -2293,8 +2353,8 @@ De ontvanger kan dus drek beantwoorden.",
 'watchnologin' => 'Niet an-emeld',
 'watchnologintext' => "Um je volglieste an te passen mu'j eerst [[Special:UserLogin|an-emeld]] ween.",
 'addwatch' => 'Op mien volglieste zetten',
-'addedwatchtext' => "De zied \"[[:\$1]]\" steet noen op joew [[Special:Watchlist|volglieste]].
-Toekomstige wiezigingen op disse zied en de overlegzied zullen hier vermeld wörden, oek zullen disse ziejen '''vet-edrokt''' ween in de lieste mit de [[Special:RecentChanges|leste wiezigingen]] zoda'j t makkeliker zien kunnen.",
+'addedwatchtext' => 'De zied "[[:$1]]" steet noen op joew [[Special:Watchlist|volglieste]].
+Toekomstige wiezigingen op disse zied en de overlegzied zullen hier vermeld wörden.',
 'removewatch' => 'Van mien volglieste aofhaolen',
 'removedwatchtext' => 'De zied "[[:$1]]" is van [[Special:Watchlist|joew volglieste]] aofehaold.',
 'watch' => 'Volgen',
@@ -2303,7 +2363,6 @@ Toekomstige wiezigingen op disse zied en de overlegzied zullen hier vermeld wör
 'unwatchthispage' => 'Niet volgen',
 'notanarticle' => 'Gien artikel',
 'notvisiblerev' => 'Bewarking is vortedaon',
-'watchnochange' => 'Gien van de ziejen op joew volglieste is in disse periode ewiezigd',
 'watchlist-details' => 'Der {{PLURAL:$1|steet één zied|staon $1 ziejen}} op joew volglieste, zonder de overlegziejen mee-erekend.',
 'wlheader-enotif' => 'Je kriegen bericht per netpost',
 'wlheader-showupdated' => "Ziejen die sinds joew leste bezeuk bie-ewörken bin, staon '''vet-edrokt'''.",
@@ -2323,14 +2382,22 @@ Toekomstige wiezigingen op disse zied en de overlegzied zullen hier vermeld wör
 'enotif_mailer' => '{{SITENAME}}-berichgevingssysteem',
 'enotif_reset' => 'Markeer alle ziejen as bezöcht.',
 'enotif_impersonal_salutation' => '{{SITENAME}}-gebruker',
+'enotif_subject_deleted' => '{{SITENAME}}: zied $1 is vortedaon deur {{GENDER:$2|$2}}',
+'enotif_subject_created' => '{{SITENAME}}: zied $1 is an-emaakt deur {{GENDER:$2|$2}}',
+'enotif_subject_moved' => '{{SITENAME}}: zied $1 is herneumd deur {{GENDER:$2|$2}}',
+'enotif_subject_restored' => '{{SITENAME}}: zied $1 is weerummeplaotst deur {{GENDER:$2|$2}}',
+'enotif_subject_changed' => '{{SITENAME}}: zied $1 is ewiezigd deur {{GENDER:$2|$2}}',
+'enotif_body_intro_deleted' => 'De zied $1 op {{SITENAME}} is vortedaon deur {{gender:$2|$2}} op $PAGEEDITDATE. Zie $3 veur de aktuele versie.',
+'enotif_body_intro_created' => 'De zied $1 op {{SITENAME}} is an-emaakt deur {{GENDER:$2|$2}} op $PAGEEDITDATE. Zie $3 veur de aktuele versie.',
+'enotif_body_intro_moved' => 'De zied $1 op {{SITENAME}} is herneumd deur {{GENDER:$2|$2}} op $PAGEEDITDATE. Zie $3 veur de aktuele versie.',
+'enotif_body_intro_restored' => 'De zied $1 op {{SITENAME}} is weerummeplaotst deur {{GENDER:$2|$2}} op $PAGEEDITDATE. Zie $3 veur de aktuele versie.',
+'enotif_body_intro_changed' => 'De zied $1 op {{SITENAME}} is bewörken deur {{GENDER:$2|$2}} op $PAGEEDITDATE. Zie $3 veur de aktuele versie.',
 'enotif_lastvisited' => 'Zie $1 veur alle wiezigingen sinds joew leste bezeuk.',
 'enotif_lastdiff' => 'Zie $1 um disse wieziging te bekieken.',
 'enotif_anon_editor' => 'anonieme gebruker $1',
 'enotif_body' => 'Huj $WATCHINGUSERNAME,
 
-De zied $PAGETITLE op {{SITENAME}} is $CHANGEDORCREATED op $PAGEEDITDATE deur $PAGEEDITOR, zie $PAGETITLE_URL veur de leste versie.
-
-$NEWPAGE
+$PAGEINTRO $NEWPAGE
 
 Samenvatting van de wieziging: $PAGESUMMARY $PAGEMINOREDIT
 
@@ -2405,7 +2472,7 @@ n Aander hef disse zied al bewarkt of hersteld naor n eerdere versie.
 De leste bewarking op disse zied is edaon deur [[User:$3|$3]] ([[User talk:$3|Overleg]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "De bewarkingssamenvatting was: ''$1''.",
 'revertpage' => 'Wiezigingen deur [[Special:Contributions/$2|$2]] hersteld tot de versie nao de leste wieziging deur $1',
-'revertpage-nouser' => 'Wiezigingen deur (gebrukersnaam vortedaon) weerummedreid naor de leste versie deur [[User:$1|$1]]',
+'revertpage-nouser' => 'Wiezigingen deur n verbörgen gebruker weerummedreid naor de leste versie deur [[User:$1|$1]]',
 'rollback-success' => 'Wiezigingen van $1; weerummedreid naor de leste versie van $2.',
 
 # Edit tokens
@@ -2425,6 +2492,8 @@ Zie de [[Special:ProtectedPages|lieste mit ziejen die beveiligd bin]] veur t hel
 'prot_1movedto2' => '[[$1]] is ewiezigd naor [[$2]]',
 'protect-badnamespace-title' => 'Niet te beveiligen naamruumte',
 'protect-badnamespace-text' => 'Ziejen in disse naamruumte kunnen niet beveiligd wörden.',
+'protect-norestrictiontypes-text' => 'Disse zied kan niet beveiligd wörden umdat der gien beparkingstypen beschikbaor bin.',
+'protect-norestrictiontypes-title' => 'Zied kan niet beveiligd wörden',
 'protect-legend' => 'Beveiliging bevestigen',
 'protectcomment' => 'Reden:',
 'protectexpiry' => 'Duur',
@@ -2439,9 +2508,9 @@ Hier staon de instellingen zo as ze noen bin veur de zied '''$1''':",
 Hier staon de instellingen zo as ze noen bin veur de zied '''$1''':",
 'protect-cascadeon' => 'Disse zied wörden beveiligd, umdat t op-eneumen is in de volgende {{PLURAL:$1|zied|ziejen}} die beveiligd {{PLURAL:$1|is|bin}} mit de kaskadeopsie. Je kunnen t beveiligingsnivo van disse zied anpassen, mer dat hef gien invleud op de kaskadebeveiliging.',
 'protect-default' => 'Veur alle gebrukers',
-'protect-fallback' => 'Hierveur is t rech "$1" neudig',
-'protect-level-autoconfirmed' => 'Blokkeer nieje en anonieme gebrukers',
-'protect-level-sysop' => 'Allinnig beheerders',
+'protect-fallback' => 'Allinnig gebrukers mit t recht "$1" toestaon',
+'protect-level-autoconfirmed' => 'Allinnig automaties bevestigden gebrukers toestaon',
+'protect-level-sysop' => 'Allinnig beheerders toestaon',
 'protect-summary-cascade' => 'kaskade',
 'protect-expiring' => 'löp aof op $1 (UTC)',
 'protect-expiring-local' => 'vervölt op $1',
@@ -2504,7 +2573,8 @@ In dat geval mu'j de leste versie as zichtbaor instellen.",
 'undeletedrevisions' => '$1 {{PLURAL:$1|versie|versies}} weerummeplaotst',
 'undeletedrevisions-files' => '{{PLURAL:$1|1 versie|$1 versies}} en {{PLURAL:$2|1 bestaand|$2 bestaanden}} bin weerummeplaotst',
 'undeletedfiles' => '{{PLURAL:$1|1 bestaand|$1 bestaanden}} weerummeplaotst',
-'cannotundelete' => 'Weerummeplaotsen van t bestaand is mislokt; n aander hef disse zied misschien al weerummeplaotst.',
+'cannotundelete' => 't Weerummeplaotsen is mislokt:
+$1',
 'undeletedpage' => "'''$1 is weerummeplaotst'''
 
 Bekiek t [[Special:Log/delete|vortdologboek]] veur n overzichte van ziejen die kortens vortedaon en weerummeplaotst bin.",
@@ -2702,6 +2772,7 @@ De blokkering is onderdeel van de reeks $2, waorvan de blokkering wel op-eheven
 'sorbsreason' => "Joew IP-adres is op-eneumen as open proxyserver in de zwarte lieste van DNS die'w veur {{SITENAME}} gebruken.",
 'sorbs_create_account_reason' => "Joew IP-adres is op-eneumen as open proxyserver in de zwarte lieste van DNS, die'w veur {{SITENAME}} gebruken.
 Je kunnen gien gebrukerszied anmaken.",
+'xffblockreason' => "n IP-adres dat jie gebruken is eblokkeerd. Dit steet in de kop 'X-Forwarded-For'. De oorspronkelike reden veur de blokkerings is: $1",
 'cant-block-while-blocked' => "Je kunnen aandere gebrukers niet blokkeren a'j zelf oek eblokkeerd bin.",
 'cant-see-hidden-user' => "De gebruker die'j proberen te blokkeren is al eblokkeerd en verbörgen.
 Umda'j gien rech hebben um gebrukers te verbargen, ku'j de blokkering van de gebruker niet bekieken of bewarken.",
@@ -2803,6 +2874,7 @@ De aandere ziejen wörden niet automaties herneumd.',
 'immobile-target-namespace-iw' => 'n Interwikiverwiezing is gien geldige bestemming veur t herneumen van n zied.',
 'immobile-source-page' => 'Disse zied kan niet herneumd wörden.',
 'immobile-target-page' => 'Kan niet herneumd wörden naor disse ziednaam.',
+'bad-target-model' => 'De gewunste bestemming gebruukt n aander inhoudsmodel. Kan niet ummezetten van $1 naor $2.',
 'imagenocrossnamespace' => 'n Mediabestaand kan niet naor n aandere naamruumte verplaotst wörden',
 'nonfile-cannot-move-to-file' => 'Je kunnen niet herneumen van en naor de bestaandsnaamruumte',
 'imagetypemismatch' => 'De nieje bestaandsextensie is niet gelieke an t bestaandstype',
@@ -2916,6 +2988,7 @@ De tiedelike map is niet anwezig.',
 'import-error-interwiki' => 'De zied "$1" is niet in-evoerd umdat disse naam ereserveerd is veur externe verwiezingen (interwiki).',
 'import-error-special' => 'Zied "$1" is niet in-evoerd umdat t eplaotst is in n spesiale naamruumte waor gien ziejen in eplaotst kunnen wörden.',
 'import-error-invalid' => 'De zied" "$1" is niet in-evoerd umdat de naam ongeldig is.',
+'import-error-unserialize' => 'Versie $2 van de zied "$1" kon niet verwarkt wörden. De versie heurt inhoudsmodel $3 te gebruken mit n serialisasie as $4.',
 'import-options-wrong' => 'Verkeerde {{PLURAL:$2|opsie|opsies}}: <nowiki>$1</nowiki>',
 'import-rootpage-invalid' => 'De op-egeven baosiszied is ongeldig.',
 'import-rootpage-nosubpage' => 'In de naamruumte "$1" van de baosiszied is t anmaken van onderziejen niet meugelik.',
@@ -3035,6 +3108,7 @@ Meestentieds kömp dit deur n uutgaonde verwiezing die op de zwarte lieste steet
 
 # Info page
 'pageinfo-title' => 'Informasie over "$1"',
+'pageinfo-not-current' => 'Disse gegevens bin allinnig beschikbaor veur disse versie.',
 'pageinfo-header-basic' => 'Baosisinformasie',
 'pageinfo-header-edits' => 'Bewarkingsgeschiedenisse',
 'pageinfo-header-restrictions' => 'Ziedbeveiliging',
@@ -3043,11 +3117,13 @@ Meestentieds kömp dit deur n uutgaonde verwiezing die op de zwarte lieste steet
 'pageinfo-default-sort' => 'Standard sorteerwieze',
 'pageinfo-length' => 'Ziedlengte (in bytes)',
 'pageinfo-article-id' => 'Zied-ID',
+'pageinfo-language' => 'Taal veur de zied',
 'pageinfo-robot-policy' => 'Staotus veur de zeukmasine',
 'pageinfo-robot-index' => 'Indexeerbaor',
 'pageinfo-robot-noindex' => 'Niet indexeerbaor',
 'pageinfo-views' => 'Antal keer bekeken',
 'pageinfo-watchers' => 'Antal ziedvolgers',
+'pageinfo-few-watchers' => 'Minder as {{PLURAL:$1|één volger|$1 volgers}}',
 'pageinfo-redirects-name' => 'Deurverwiezingen naor disse zied',
 'pageinfo-subpages-name' => 'Onderziejen van disse zied',
 'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|deurverwiezing|deurverwiezingen}}; $3 {{PLURAL:$3|niet-deurverwiezing|niet-deurverwiezingen}})',
@@ -3062,11 +3138,18 @@ Meestentieds kömp dit deur n uutgaonde verwiezing die op de zwarte lieste steet
 'pageinfo-magic-words' => '{{PLURAL:$1|Magies woord|Magiese woorden}} ($1)',
 'pageinfo-hidden-categories' => 'Verbörgen {{PLURAL:$1|kategorie|kategorieën}} ($1)',
 'pageinfo-templates' => '{{PLURAL:$1|Gebruukten mal|Gebruukten mallen}} ($1)',
-'pageinfo-toolboxlink' => 'Informasie over disse zied',
+'pageinfo-transclusions' => '{{PLURAL:$1|Zied|Ziejen}} in-evoegd op ($1)',
+'pageinfo-toolboxlink' => 'Ziedgegevens',
 'pageinfo-redirectsto' => 'Verwis deur naor',
 'pageinfo-redirectsto-info' => 'informasie',
 'pageinfo-contentpage' => 'Eteld as zied mit inhoud',
 'pageinfo-contentpage-yes' => 'Ja',
+'pageinfo-protect-cascading' => 'Beveiligingen warken vanaof hier deur',
+'pageinfo-protect-cascading-from' => 'Zied is beveiligd vanuut n aandere zied',
+'pageinfo-category-info' => 'Kategorie-informasie',
+'pageinfo-category-pages' => 'Antal ziejen',
+'pageinfo-category-subcats' => 'Antal onderkategorieën',
+'pageinfo-category-files' => 'Antal bestaanden',
 
 # Skin names
 'skinname-cologneblue' => 'Keuls blauw',
@@ -3083,6 +3166,8 @@ Meestentieds kömp dit deur n uutgaonde verwiezing die op de zwarte lieste steet
 'markedaspatrollederror' => 'De bewarking kon niet aofevinkt wörden.',
 'markedaspatrollederrortext' => 'Je mutten n wieziging selekteren um t as nao-ekeken te markeren.',
 'markedaspatrollederror-noautopatrol' => 'Je maggen joew eigen bewarkingen niet op nao-ekeken zetten.',
+'markedaspatrollednotify' => 'Disse bewarking op $1 is emarkeerd as nao-ekeken.',
+'markedaspatrollederrornotify' => 'Markeren as nao-ekeken is mislokt.',
 
 # Patrol log
 'patrol-log-page' => 'Markeerlogboek',
@@ -3116,6 +3201,7 @@ $1',
 'file-nohires' => 'Gien hogere resolusie beschikbaor.',
 'svg-long-desc' => 'SVG-bestaand, uutgangsgrootte $1 × $2 beeldpunten, bestaandsgrootte: $3',
 'svg-long-desc-animated' => 'Bewegend SVG-bestaand, uutgangsgrootte $1 × $2 beeldpunten, bestaandsgrootte: $3',
+'svg-long-error' => 'Ongeldig SVG-bestaand: $1',
 'show-big-image' => 'Volle resolusie',
 'show-big-image-preview' => 'Grootte van disse weergave: $1.',
 'show-big-image-other' => 'Aandere {{PLURAL:$2|resolusie|resolusies}}: $1.',
@@ -3145,9 +3231,25 @@ $1',
 'minutes' => '{{PLURAL:$1|$1 minuut|$1 minuten}}',
 'hours' => '{{PLURAL:$1|$1 ure|$1 uren}}',
 'days' => '{{PLURAL:$1|$1 dag|$1 dagen}}',
+'weeks' => '{{PLURAL: $1|één weke|$1 weken}}',
+'months' => '{{PLURAL:$1|een maond|$1 maonden}}',
+'years' => '{{PLURAL:$1|één jaor|$1 jaor}}',
 'ago' => '$1 eleen',
 'just-now' => 'onderlest',
 
+# Human-readable timestamps
+'hours-ago' => '$1 {{PLURAL:$1|uur}} elejen',
+'minutes-ago' => '$1 {{PLURAL:$1|minuut|minuten}} elejen',
+'seconds-ago' => '$1 {{PLURAL:$1|sekonde|sekonden}} elejen',
+'monday-at' => 'Maondag um $1',
+'tuesday-at' => 'Diensdag um $1',
+'wednesday-at' => 'Woonsdag um $1',
+'thursday-at' => 'Donderdag um $1',
+'friday-at' => 'Vriedag um $1',
+'saturday-at' => 'Zaoterdag um $1',
+'sunday-at' => 'Zundag um $1',
+'yesterday-at' => 'Gisteren um $1',
+
 # Bad image list
 'bad_image_list' => 'De opmaak is as volgt:
 
@@ -3636,6 +3738,7 @@ De bevestigingskode zal verlopen op $4.',
 # Scary transclusion
 'scarytranscludedisabled' => '[Interwiki-intergrasie is uutezet]',
 'scarytranscludefailed' => '[De mal $1 kon niet op-ehaold wörden]',
+'scarytranscludefailed-httpstatus' => '[De mal $1 kon niet op-ehaold wörden: HTTP $2]',
 'scarytranscludetoolong' => '[URL is te lang]',
 
 # Delete conflict
@@ -3740,7 +3843,6 @@ Je kunnen oek [[Special:EditWatchlist|t standardbewarkingsscharm gebruken]].',
 'version-other' => 'Overige',
 'version-mediahandlers' => 'Mediaverwarkers',
 'version-hooks' => 'Hoeken',
-'version-extension-functions' => 'Uutbreidingsfunksies',
 'version-parser-extensiontags' => 'Parseruutbreidingsplaotjes',
 'version-parser-function-hooks' => 'Parserfunksiehoeken',
 'version-hook-name' => 'Hooknaam',
@@ -3749,6 +3851,7 @@ Je kunnen oek [[Special:EditWatchlist|t standardbewarkingsscharm gebruken]].',
 'version-license' => 'Lisensie',
 'version-poweredby-credits' => "Disse wiki wörden an-estuurd deur '''[//www.mediawiki.org/ MediaWiki]''', auteursrecht © 2001-$1 $2.",
 'version-poweredby-others' => 'aanderen',
+'version-credits-summary' => 'Wulen erkennen grege de volgende personen veur der biedrage an [[Special:Version|MediaWiki]].',
 'version-license-info' => 'MediaWiki is vrieje programmatuur; je kunnen MediaWiki verspreien en/of anpassen onder de veurweerden van de GNU General Public License zo as epubliceerd deur de Free Software Foundation; of versie 2 van de Lisensie, of - naor eigen wuns - n laotere versie.
 
 MediaWiki wörden verspreid in de hoop dat t nuttig is, mer ZONDER ENIGE GARANSIE; zonder zelfs de daoronder begrepen garansie van VERKOOPBAORHEID of GESCHIKTHEID VEUR ENIG DOEL IN T BIEZUNDER. Zie de GNU General Public License veur meer informasie.
@@ -3761,6 +3864,18 @@ Samen mit dit programma heur je n [{{SERVER}}{{SCRIPTPATH}}/COPYING kopie van de
 'version-entrypoints-header-entrypoint' => 'Ingang',
 'version-entrypoints-header-url' => 'Webadres',
 
+# Special:Redirect
+'redirect' => 'Deurverwiezen op bestaandsnaam, gebrukersnummer of versienummer',
+'redirect-legend' => 'Deurverwiezen naor n bestaand of zied',
+'redirect-summary' => 'Disse spesiale zied verwis deur naor n bestaand (as n bestaandsnaam op-egeven wörden), n zied (as n versienummer op-egeven wörden) of n gebrukerszied (as t gebrukersnummer op-egeven wörden).',
+'redirect-submit' => 'Zeuk',
+'redirect-lookup' => 'Opzeuken:',
+'redirect-value' => 'Weerde:',
+'redirect-user' => 'Gebrukersnummer',
+'redirect-revision' => 'Ziedversie',
+'redirect-file' => 'Bestaandsnaam',
+'redirect-not-exists' => 'Weerde niet evunnen',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Dubbele bestaanden zeuken',
 'fileduplicatesearch-summary' => 'Dubbele bestaanden zeuken op baosis van de hashweerde.',
@@ -3787,7 +3902,7 @@ Samen mit dit programma heur je n [{{SERVER}}{{SCRIPTPATH}}/COPYING kopie van de
 'specialpages-group-highuse' => 'Veulgebruukten ziejen',
 'specialpages-group-pages' => 'Liesten mit ziejen',
 'specialpages-group-pagetools' => 'Ziedhulpmiddels',
-'specialpages-group-wiki' => 'Wikigegevens en -hulpmiddels',
+'specialpages-group-wiki' => 'Gegevens en hulpmiddels',
 'specialpages-group-redirects' => 'Deurverwiezende spesiale ziejen',
 'specialpages-group-spam' => 'Hulpmiddels tegen ongewunste bewarkingen',
 
@@ -3809,6 +3924,7 @@ Samen mit dit programma heur je n [{{SERVER}}{{SCRIPTPATH}}/COPYING kopie van de
 'tags' => 'Geldige wiezigingsetiketten',
 'tag-filter' => '[[Special:Tags|Etiketfilter]]:',
 'tag-filter-submit' => 'Filtreren',
+'tag-list-wrapper' => '([[Special:Tags|Etiket{{PLURAL:$1||ten}}]]: $2)',
 'tags-title' => 'Etiket',
 'tags-intro' => 'Op disse zied staon de etiketten waormee de programmatuur elke bewarking kan markeren, en de betekenisse dervan.',
 'tags-tag' => 'Etiketnaam',
@@ -3852,23 +3968,24 @@ Samen mit dit programma heur je n [{{SERVER}}{{SCRIPTPATH}}/COPYING kopie van de
 'htmlform-selectorother-other' => 'Aanders',
 'htmlform-no' => 'Nee',
 'htmlform-yes' => 'Ja',
+'htmlform-chosen-placeholder' => 'Kies n opsie',
 
 # SQLite database support
 'sqlite-has-fts' => 'Versie $1 mit ondersteuning veur "full-text" zeuken',
 'sqlite-no-fts' => 'Versie $1 zonder ondersteuning veur "full-text" zeuken',
 
 # New logging system
-'logentry-delete-delete' => '$1 hef de zied $3 vortedaon',
-'logentry-delete-restore' => '$1 hef de zied $3 weerummezet',
-'logentry-delete-event' => '$1 hef de zichtbaorheid van {{PLURAL:$5|een logboekregel|$5 logboekregels}} van $3 ewiezigd: $4',
-'logentry-delete-revision' => '$1 hef de zichtbaorheid van {{PLURAL:$5|een versie|$5 versies}} van de zied $3 ewiezigd: $4',
-'logentry-delete-event-legacy' => '$1 hef de zichtbaorheid van logboekregels van $3 ewiezigd',
-'logentry-delete-revision-legacy' => '$1 hef de zichtbaorheid van versies van de zied $3 ewiezigd.',
-'logentry-suppress-delete' => '$1 hef de zied $3 onderdrokt',
-'logentry-suppress-event' => '$1 hef de zichtbaorheid van {{PLURAL:$5|een logboekregel|$5 logboekregels}} van $3 sluuksem ewiezigd: $4',
-'logentry-suppress-revision' => '$1 hef de zichtbaorheid van {{PLURAL:$5|een versie|$5 versies}} van de zied $3 sluuksem ewiezigd: $4',
-'logentry-suppress-event-legacy' => '$1 hef de zichtbaorheid van logboekregels van $3 sluuksem ewiezigd',
-'logentry-suppress-revision-legacy' => '$1 hef de zichtbaorheid van versies van de zied $3 sluuksem ewiezigd.',
+'logentry-delete-delete' => '$1 hef de zied $3 {{GENDER:$2|vortedaon}}',
+'logentry-delete-restore' => '$1 hef de zied $3 {{GENDER:$2|weerummezet}}',
+'logentry-delete-event' => '$1 hef de zichtbaorheid van {{PLURAL:$5|n logboekregel|$5 logboekregels}} van $3 {{GENDER:$2|ewiezigd}}: $4',
+'logentry-delete-revision' => '$1 hef de zichtbaorheid van {{PLURAL:$5|een versie|$5 versies}} van de zied $3 {{GENDER:$2|ewiezigd}}: $4',
+'logentry-delete-event-legacy' => '$1 hef de zichtbaorheid van logboekregels van $3 {{GENDER:$2|ewiezigd}}',
+'logentry-delete-revision-legacy' => '$1 hef de zichtbaorheid van versies van de zied $3 {{GENDER:$2|ewiezigd}}.',
+'logentry-suppress-delete' => '$1 hef de zied $3 {{GENDER:$2|onderdrokt}}',
+'logentry-suppress-event' => '$1 hef de zichtbaorheid van {{PLURAL:$5|een logboekregel|$5 logboekregels}} van $3 sluuksem {{GENDER:$2|ewiezigd}}: $4',
+'logentry-suppress-revision' => '$1 hef de zichtbaorheid van {{PLURAL:$5|een versie|$5 versies}} van de zied $3 sluuksem {{GENDER:$2|ewiezigd}}: $4',
+'logentry-suppress-event-legacy' => '$1 hef de zichtbaorheid van logboekregels van $3 sluuksem {{GENDER:$2|ewiezigd}}',
+'logentry-suppress-revision-legacy' => '$1 hef de zichtbaorheid van versies van de zied $3 sluuksem {{GENDER:$2|ewiezigd}}.',
 'revdelete-content-hid' => 'inhoud verbörgen',
 'revdelete-summary-hid' => 'bewarkingssamenvatting verbörgen',
 'revdelete-uname-hid' => 'gebrukersnaam verbörgen',
@@ -3877,16 +3994,20 @@ Samen mit dit programma heur je n [{{SERVER}}{{SCRIPTPATH}}/COPYING kopie van de
 'revdelete-uname-unhid' => 'gebrukersnaam zichtbaor emaakt',
 'revdelete-restricted' => 'hef beparkingen an beheerders op-eleg',
 'revdelete-unrestricted' => 'hef beparkingen veur beheerders deraof ehaold',
-'logentry-move-move' => '$1 herneumden de zied $3 naor $4',
-'logentry-move-move-noredirect' => '$1 herneumden de zied $3 naor $4 zonder n deurverwiezing achter te laoten',
-'logentry-move-move_redir' => '$1 herneumden de zied $3 naor $4 over n deurverwiezing heer',
-'logentry-move-move_redir-noredirect' => '$1 herneumden de zied $3 naor $4 over n deurverwiezing heer zonder n deurverwiezing achter te laoten',
-'logentry-patrol-patrol' => '$1 hef versie $4 van de zied $3 op nao-ekeken ezet',
-'logentry-patrol-patrol-auto' => '$1 hef versie $4 van de zied $3 automaties op nao-ekeken ezet',
-'logentry-newusers-newusers' => '$1 hef n gebruker an-emaakt',
-'logentry-newusers-create' => '$1 hef n gebruker an-emaakt',
-'logentry-newusers-create2' => '$1 hef n gebruker $3 an-emaakt',
-'logentry-newusers-autocreate' => 'De gebruker $1 is automaties an-emaakt',
+'logentry-move-move' => '$1 hef de zied $3 {{GENDER:$2|herneumd}} naor $4',
+'logentry-move-move-noredirect' => '$1 hef de zied $3 {{GENDER:$2|herneumd}} naor $4 zonder n deurverwiezing achter te laoten',
+'logentry-move-move_redir' => '$1 hef de zied $3 {{GENDER:$2|herneumd}} naor $4 over n deurverwiezing heer',
+'logentry-move-move_redir-noredirect' => '$1 hef de zied $3 {{GENDER:$2|herneumd}} naor $4 over n deurverwiezing heer zonder n deurverwiezing achter te laoten',
+'logentry-patrol-patrol' => '$1 hef versie $4 van de zied $3 op {{GENDER:$2|nao-ekeken}} ezet',
+'logentry-patrol-patrol-auto' => '$1 hef versie $4 van de zied $3 automaties op {{GENDER:$2|nao-ekeken}} ezet',
+'logentry-newusers-newusers' => '$1 hef n gebruker {{GENDER:$2|an-emaakt}}',
+'logentry-newusers-create' => '$1 hef n gebruker {{GENDER:$2|an-emaakt}}',
+'logentry-newusers-create2' => '$1 hef n gebruker $3 {{GENDER:$2|an-emaakt}}',
+'logentry-newusers-byemail' => 'Gebruker $3 {{GENDER:$2|is}} an-emaakt deur $1 en t wachtwoord is per netpost verstuurd',
+'logentry-newusers-autocreate' => 'De gebruker $1 is automaties {{GENDER:$2|an-emaakt}}',
+'logentry-rights-rights' => '$1 {{GENDER:$2|hef}} groepslidmaotschap veur $3 ewiezigd van $4 naor $5',
+'logentry-rights-rights-legacy' => '$1 {{GENDER:$2|hef}} t groepslidmaotschap ewiezigd veur $3',
+'logentry-rights-autopromote' => '$1 {{GENDER:$2|is}} automaties bevorderd van $4 tot $5',
 'rightsnone' => '(gien)',
 
 # Feedback
@@ -3941,6 +4062,7 @@ Aanders ku\'j oek t eenvoudige formulier hieronder gebruken. Joew opmarkingen zu
 'api-error-ok-but-empty' => 'Interne fout: de server hef gien gegevens weerestuurd.',
 'api-error-overwrite' => 'Je maggen gien bestaond bestaand overschrieven.',
 'api-error-stashfailed' => 'Interne fout: de server kon t tiedelike bestaand niet opslaon.',
+'api-error-publishfailed' => 'Interne fout: de server kon t tiejelike bestaand niet publiseren.',
 'api-error-timeout' => 'De server hef niet binnen de verwachte tied antwoord egeven.',
 'api-error-unclassified' => 'Der is n onbekende fout op-etrejen',
 'api-error-unknown-code' => 'Interne fout: "$1"',
@@ -3961,4 +4083,7 @@ Aanders ku\'j oek t eenvoudige formulier hieronder gebruken. Joew opmarkingen zu
 'duration-centuries' => '$1 {{PLURAL:$1|eeuw|eeuwen}}',
 'duration-millennia' => '$1 {{PLURAL:$1|millennium|millennia}}',
 
+# Image rotation
+'rotate-comment' => 'Aofbeelding is $1 {{PLURAL:$1|graod|graojen}} mit de klokke mee edreid',
+
 );
index 5b2ad6e..d34f71b 100644 (file)
@@ -296,7 +296,6 @@ $1',
 'disclaimers' => 'अस्विकारोक्तिहरु',
 'disclaimerpage' => 'Project:सामान्य अस्वीकारोक्ति',
 'edithelp' => 'सम्पादन सहायता',
-'edithelppage' => 'Help:सम्पादन',
 'helppage' => 'Help:विषयवस्तुहरू',
 'mainpage' => 'मुख्य पृष्ठ',
 'mainpage-description' => 'मुख्य पृष्ठ',
@@ -325,7 +324,6 @@ $1',
 'youhavenewmessagesfromusers' => 'तपाईंको लागि  {{PLURAL:$3|प्रयोगकर्ता|$3 प्रयोगकर्ताहरु}} ($2) बाट $1',
 'youhavenewmessagesmulti' => 'तपाईंको लागि $1 मा  नयाँ सन्देशहरू छन्',
 'editsection' => 'सम्पादन',
-'editsection-brackets' => '[$1]',
 'editold' => 'सम्पादन गर्ने',
 'viewsourceold' => 'स्रोत हेर्नुहोस्',
 'editlink' => 'सम्पादन',
@@ -575,10 +573,8 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'प्रवेशशव्द पुनः तय गर्ने',
-'passwordreset-text' => 'तपाईंको खाता-विवरणको  इमेल अनुस्मारक प्राप्त गर्न यो फारम पूरा गर्नुहोस्।',
 'passwordreset-legend' => 'प्रवेशशव्द पुनः तय गर्ने',
 'passwordreset-disabled' => 'प्रवेश शव्द पुनः निर्धारण गर्ने व्यवस्था यस विकिमा निस्क्रिय पारिएको छ।',
-'passwordreset-pretext' => '{{PLURAL:$1||तल दिएका आँकड़ाका टुकुरा मध्ये एउटा प्रविष्ट गर्नुहोस्}}',
 'passwordreset-username' => 'प्रयोगकर्ता-नाम:',
 'passwordreset-domain' => 'डोमेन',
 'passwordreset-capture' => 'निस्कने इमेलको नमुना हेर्ने ?',
@@ -709,7 +705,7 @@ $2
 वा [{{fullurl:{{FULLPAGENAME}}|action=edit}}  यसै पृष्ठलाई संपादन गर्ने]</span>.',
 'noarticletext-nopermission' => 'यस लेखमा अहिले केहि पनि पाठ छैन ।
 तपाईंले अन्य पृष्ठमा [[Special:Search/{{PAGENAME}}|यस पृष्ठको शीर्षकको लागि खोज]] गर्न सक्नुहुन्छ,
-अथवा <span class="plainlinks">[{{fullurl:{{#Special:Log}}|पृष्ठ={{FULLPAGENAMEE}}}} सम्बन्धित लगहरु खोज्न सक्नुहुनेछ ]</span>.',
+अथवा <span class="plainlinks">[{{fullurl:{{#Special:Log}}|पृष्ठ={{FULLPAGENAMEE}}}} सम्बन्धित लगहरु खोज्न सक्नुहुनेछ ]</span> तर तपाईंलाई नयाँ पृष्ठ बनाउने अधिकार छैन।',
 'userpage-userdoesnotexist' => 'प्रयोगकर्ताको खाता  "<nowiki>$1</nowiki>" दर्ता गरिएको छैन ।
 तपाईँले पृष्ठ निर्माण/सम्पादन गर्न चाहनु भएको भए जाँच गर्नुहोस् ।',
 'userpage-userdoesnotexist-view' => 'प्रयोगकर्ता खाता "$1" दर्ता गरिएको छैन।',
@@ -734,7 +730,7 @@ $2
 प्रचलित .css तथा .js पृष्ठहरुले lowercase शीर्षक प्रयोग गर्छन्, जस्तै {{ns:user}}:Foo/Vector.css को सट्टामा {{ns:user}}:Foo/vector.css",
 'updated' => 'नवीन',
 'note' => "'''सूचना:'''",
-'previewnote' => "'''यà¥\8b à¤\95à¥\87वल à¤ªà¥\82रà¥\8dवालà¥\8bà¤\95न à¤®à¤¾à¤¤à¥\8dर à¤¹à¥\8b; à¤¤à¤ªà¤¾à¤\88à¤\82à¤\95ा à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनहरà¥\82 à¤¸à¤\82à¤\97à¥\8dरह भएका छैनन्!'''",
+'previewnote' => "'''याद à¤°à¤¾à¤\96à¥\8dनà¥\81हà¥\8bसà¥\8d à¤¯à¥\8b à¤\95à¥\87वल à¤ªà¥\82रà¥\8dवावलà¥\8bà¤\95न à¤®à¤¾à¤¤à¥\8dर à¤¹à¥\8b; à¤¤à¤ªà¤¾à¤\88à¤\82à¤\95ा à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनहरà¥\82 à¤¸à¤\82à¤\97à¥\8dरहित भएका छैनन्!'''",
 'previewconflict' => 'यस पूर्वावलोकनले संपादन क्षेत्र को माथिल्लो भागको पाठ परिवर्तन गर्ने ठाउँको पाठलाइ देखाउँछ अनि तपाइले यसलाइ सेभ गरेपछि देखापर्छ।',
 'session_fail_preview' => "'''माफ गर्नुहोस्! सत्र-आँकड़ा (session data) हराउनाले हामीले तपाईंको सम्पादन प्रक्रिया अघि बढाउन सकेनौं।.'''
 कृपया पुनः प्रयास गर्नुहोस्।
@@ -792,7 +788,7 @@ $2
 'nocreate-loggedin' => 'नयाँ पृष्ठ सृजनागर्नको लागि तपाईँलाई अनुमति छैन ।',
 'sectioneditnotsupported-title' => 'खण्ड सम्पादन असमर्थित',
 'sectioneditnotsupported-text' => 'यस पृष्ठमा खण्ड सम्पादन असमर्थित',
-'permissionserrors' => 'à¤\85नà¥\81मति à¤¤à¥\8dरà¥\81à¤\9fà¥\80हरà¥\81',
+'permissionserrors' => 'à¤\85नà¥\81मति à¤¨à¤­à¤\8fà¤\95à¥\8b',
 'permissionserrorstext' => 'तपाईँलाई यसको लागि अनुमति छैन ,निम्न {{PLURAL:$1|कारण|कारणहरु}}ले गर्दा:',
 'permissionserrorstext-withaction' => '$2 को लागि तपाईँलाई अनुमति छैन , निम्न {{PLURAL:$1|कारणले|कारणहरुले}} गर्दा :',
 'recreate-moveddeleted-warn' => "'''चेतावनी: तपाईं अघिबाट मेटिएको पृष्ठ पुनर्निर्माण गर्नुहुँदैछ'''
@@ -1020,7 +1016,6 @@ $1",
 'searchmenu-legend' => 'खोज विकल्प',
 'searchmenu-exists' => "''' \"[[:\$1]]\" नाम गरेको पृष्ठ  यो विकीमा रहेको छ'''",
 'searchmenu-new' => "'''यस विकिमा  \"[[:\$1]]\" शीर्षक भएको पृष्ठ बनाउनुहोस् !'''",
-'searchhelp-url' => 'Help:सामग्री',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|पृष्ठहरु प्रिफिक्सले हेर्नुहोस् ]]',
 'searchprofile-articles' => 'सामग्री पृष्ठहरु',
 'searchprofile-project' => 'सहायता र आयोजना पृष्ठहरु',
@@ -1096,7 +1091,6 @@ $1",
 'resetprefs' => 'संग्रह नगरिएका परिवर्तनहरु सफागर्ने',
 'restoreprefs' => 'सबै पूर्वनिर्धारित स्थिती कायम गर्ने',
 'prefs-editing' => 'सम्पादन',
-'prefs-edit-boxsize' => 'सम्पादन झ्यालको आकार',
 'rows' => 'हरफहरु :',
 'columns' => 'स्तम्भहरु :',
 'searchresultshead' => 'खोज',
@@ -1107,9 +1101,6 @@ $1",
 'recentchangesdays-max' => 'अधिकतम $1 {{PLURAL:$1|दिन|दिन}}',
 'recentchangescount' => 'पूर्व निर्धारितरुपमा देखाउनुपर्ने सम्पादनहरू :',
 'prefs-help-recentchangescount' => 'यसमा हालका परि्वर्तनहरु , पृष्ठ इतिहासहरु , र लग समाविष्ठ छन् ।',
-'prefs-help-watchlist-token' => 'यो फिल्डमा गोप्य संकेत राख्नाले तपाईँको निगरानीसूचीको RSS फिड सृजन हुने छ ।
-संकेत थाहा पाउने जो कसैले तपाईको निगरानी सूची पढ्न सक्ने भएकोले , सुरक्षित मान छान्नुहोला ।
-यहाँ जथाभावीरुपमा-सृजना गरिएको तपाईले प्रयोग गर्ने सक्नुहुने मान छ : $1',
 'savedprefs' => 'तपाईंका अभिरुचिहरू सङ्ग्रहित भयो।',
 'timezonelegend' => 'समय क्षेत्र :',
 'localtime' => 'स्थानिय समय:',
@@ -1140,9 +1131,8 @@ $1",
 'prefs-reset-intro' => 'तपाईले यो पृष्ठ आफ्नो अभिरुचीहरू साइट पूर्वावस्थामा फर्काउन प्रयोग गर्न सक्नुहुन्छ ।
 यो रद्द गर्न सक्नुहुन्छ ।',
 'prefs-emailconfirm-label' => 'इ-मेल एकिन प्रक्रिया :',
-'prefs-textboxsize' => 'सम्पादन विन्डोको आकार',
 'youremail' => 'ईमेल',
-'username' => 'प्रयोगकर्ता नाम:',
+'username' => '{{GENDER:$1|प्रयोगकर्ता नाम}}:',
 'uid' => 'प्रोगकर्ता आइडी:',
 'prefs-memberingroups' => 'निम्न {{PLURAL:$1|समूह | समूहहरू}}को सदस्य :',
 'prefs-memberingroups-type' => '$1',
@@ -1174,7 +1164,7 @@ HTML ट्यागहरु जाँच्नुहोस् ।',
 'prefs-signature' => 'हस्ताक्षर',
 'prefs-dateformat' => 'मिति ढाँचा',
 'prefs-timeoffset' => 'समय अफसेट',
-'prefs-advancedediting' => 'विशिषà¥\8dà¤\9f à¤µà¤¿à¤\95लà¥\8dप',
+'prefs-advancedediting' => 'सामानà¥\8dय',
 'prefs-advancedrc' => 'उन्नत विकल्पहरू',
 'prefs-advancedrendering' => 'उन्नत विकल्पहरु',
 'prefs-advancedsearchoptions' => 'उन्नत विकल्पहरू',
@@ -1273,7 +1263,7 @@ HTML ट्यागहरु जाँच्नुहोस् ।',
 'right-proxyunbannable' => 'प्रोक्सिको स्वत: रोक कटेर जाने',
 'right-unblockself' => 'तिनीहरु आफैंलाई खुल्ला गर्छन्',
 'right-protect' => 'सुरक्षा स्तर परिवर्तन गर्ने र जोगाइएका पृष्ठहरु सम्पादन गर्ने',
-'right-editprotected' => 'जोगाइएका पृष्ठहरु सम्पादन गर्ने(क्यासकेडिङ्ग सुरक्षा नभएका)',
+'right-editprotected' => '"{{int:protect-level-sysop}}" को हैसियतले सुरक्षित पृष्ठहरु सम्पादन गर्ने',
 'right-editinterface' => 'प्रयोगकर्ता अन्तरमोहडा सम्पादन गर्ने',
 'right-editusercssjs' => 'प्रयोगकर्ताको CSS र JS फाइलहरु सम्पादन गर्ने',
 'right-editusercss' => 'प्रयोगकर्ताको CSS फाइलहरु सम्पादन गर्ने',
@@ -1381,7 +1371,6 @@ HTML ट्यागहरु जाँच्नुहोस् ।',
 'recentchangeslinked-feed' => 'संबन्धित परिवर्तनहरु',
 'recentchangeslinked-toolbox' => 'संबन्धित परिवर्तनहरु',
 'recentchangeslinked-title' => '"$1"सम्वन्धित परिवर्तनसँग',
-'recentchangeslinked-noresult' => 'जोडिएका पृष्ठहरुमा दिइएको समयावधीमा कुनै पनि परिवर्तन भएको छैन ।',
 'recentchangeslinked-summary' => "यो सूची निर्दिष्ट पृष्ठ (वा निर्दिष्ट श्रेणी)सित जोड़िएका  भर्खरै परिवर्तन भएका पृष्ठको  हो। [[Special:Watchlist|तपाईँको निगरानी सूची]]का पृष्ठहरु '''गाढा अक्षरमा''' छन्।",
 'recentchangeslinked-page' => 'पृष्ठ नाम:',
 'recentchangeslinked-to' => 'यसको सट्टा यो पृष्ठसँग जोडिएका पृष्ठहरुको परिवर्तन देखाउने',
@@ -1392,7 +1381,7 @@ HTML ट्यागहरु जाँच्नुहोस् ।',
 'reuploaddesc' => 'उर्ध्वभरण रद्द गर्ने र उर्ध्वभरण फारमतिर जाने',
 'upload-tryagain' => 'संशोधित फाइल विवरण बुझाउने',
 'uploadnologin' => 'प्रवेश (लग ईन) नगरिएको',
-'uploadnologintext' => 'फाइल उर्ध्वभरण गर्न तपाईंले [[Special:UserLogin|प्रवेश]] गर्नुपर्छ।',
+'uploadnologintext' => 'फाइल उर्ध्वभरण गर्न तपाईंले $1 गर्नुपर्छ।',
 'upload_directory_missing' => 'उर्ध्वभरण डाइरेक्टरी ($1) हराइरहेको छ र वेवसर्भरले नयाँ डाइरेक्टरी निर्माणगर्न असमर्थ भयो ।',
 'upload_directory_read_only' => 'उर्ध्व भरण डाइरेक्टरी ($1) वेवसर्भर द्वारा लेख्य छैन ।',
 'uploaderror' => 'उर्ध्वभरण त्रुटि',
@@ -1720,7 +1709,7 @@ $1',
 'listusers-editsonly' => 'सम्पादन गरेका प्रयोगकर्तामात्र देखाउने',
 'listusers-creationsort' => 'सृजना मिति अनुसार क्रमवद्ध गर्ने',
 'usereditcount' => '$1 {{PLURAL:$1|सम्पादन|सम्पादनहरु}}',
-'usercreated' => ' $1को $2 मा सृजना गरिएको',
+'usercreated' => ' $1को $2 मा {{GENDER:$3|सृजना}} गरिएको',
 'newpages' => 'नयाँ पृष्ठहरू',
 'newpages-username' => 'प्रयोगकर्ता नाम:',
 'ancientpages' => 'सबैभन्दा पुराना पृष्ठहरु',
@@ -1854,8 +1843,8 @@ $1',
 'usermessage-template' => 'MediaWiki:UserMessage',
 
 # Watchlist
-'watchlist' => 'मà¥\87रà¥\8b à¤\85वलà¥\8bà¤\95न',
-'mywatchlist' => 'मà¥\87रà¥\8b à¤\85वलà¥\8bà¤\95नसà¥\82à¤\9aà¥\80',
+'watchlist' => 'à¤\85वलà¥\8bà¤\95न à¤¸à¥\82à¤\9aà¥\80',
+'mywatchlist' => 'अवलोकनसूची',
 'watchlistfor2' => '$1को $2',
 'nowatchlist' => 'तपाईको अवलोकन सूचीमा कुनै पनि सामाग्री छैन।',
 'watchlistanontext' => 'कृपया तपाईको निगरानी सुची हेर्न या सम्पादनगर्न $1 गर्नुहोस् ।',
@@ -1872,7 +1861,6 @@ $1',
 'unwatchthispage' => 'निगरानीबाट हटाउने',
 'notanarticle' => 'सामाग्री सहितको पेज हैन',
 'notvisiblerev' => 'पूर्वावलोकन हटाइयो',
-'watchnochange' => 'दिइएको समय अवधीभित्र निगरानी सुचीमा रहेका कुनै पनि सामाग्री सम्पादन भएको छैनन ।',
 'watchlist-details' => 'तपाईको निगरानी सूचीमा रहेका{{PLURAL:$1|$1 पृष्ठ|$1 पृष्ठहरु}}वार्तालापमा पृष्ठमा गनिएका छैनन् ।',
 'wlheader-enotif' => 'ईमेलद्वारा जानकारी गराउने तरिका सक्रिय गरियो ।',
 'wlheader-showupdated' => "तपाइले पछिल्लो पल्ट भ्रमण गरेपछि परिवर्तन भएका पृष्ठहरूलाई '''गाढा''' गरेर देखाइएको छ ।",
@@ -2091,12 +2079,12 @@ $3द्वारा $1को ($4को  समय $5 मा) मेटाइए
 'blanknamespace' => '(मुख्य)',
 
 # Contributions
-'contributions' => 'प्रयोगकर्ताका योगदानहरू',
+'contributions' => '{{GENDER:$1|प्रयोगकर्ता}}का योगदानहरू',
 'contributions-title' => '$1को प्रयोगकर्ता योगदानहरु',
-'mycontris' => 'मà¥\87रà¥\8b à¤¯à¥\8bà¤\97दान',
+'mycontris' => 'यà¥\8bà¤\97दानहरà¥\81',
 'contribsub2' => ' $1 ($2)को लागि',
 'nocontribs' => 'यस मापदण्ड अनुसार परिवर्त पाइएन।',
-'uctop' => '(माथि)',
+'uctop' => '(वरà¥\8dतमान)',
 'month' => 'महिना देखि (र पहिले):',
 'year' => 'वर्ष देखि( र पहिले):',
 
@@ -2134,7 +2122,7 @@ $3द्वारा $1को ($4को  समय $5 मा) मेटाइए
 'whatlinkshere-hideredirs' => '$1 रिडाइरेक्ट हुन्छ',
 'whatlinkshere-hidetrans' => '$1 पारदर्शन',
 'whatlinkshere-hidelinks' => '$1 लिङ्कहरु',
-'whatlinkshere-hideimages' => '$1 à¤¤à¤¸à¥\8dविर à¤²à¤¿à¤\82à¤\95',
+'whatlinkshere-hideimages' => '$1 à¤¤à¤¸à¥\8dवà¥\80र à¤²à¤¿à¤\82à¤\95हरà¥\81',
 'whatlinkshere-filters' => 'फिल्टरहरू',
 
 # Block/unblock
@@ -3139,7 +3127,6 @@ $5
 'semicolon-separator' => ';&#32;',
 'comma-separator' => ',&#32;',
 'colon-separator' => ':&#32;',
-'autocomment-prefix' => '-&#32;',
 'pipe-separator' => '&#32;•&#32;',
 'word-separator' => '&#32;',
 'ellipsis' => '...',
@@ -3286,7 +3273,6 @@ $5
 'version-other' => 'अन्य',
 'version-mediahandlers' => 'मिडिया  ह्यान्डलरहरू',
 'version-hooks' => 'अंकुशहरु',
-'version-extension-functions' => 'अतिरिक्त प्रकार्य',
 'version-parser-extensiontags' => 'पार्सर विस्तार ट्यागहरु',
 'version-parser-function-hooks' => 'पार्सर फङ्सन हुक',
 'version-hook-name' => 'हुक नाम',
index d6c5492..4726e9f 100644 (file)
@@ -18,6 +18,7 @@
  * @author Extended by Hendrik Maryns <hendrik.maryns@uni-tuebingen.de>, March 2007.
  * @author Fryed-peach
  * @author Galwaygirl
+ * @author Geitost
  * @author GerardM
  * @author Hamaryns
  * @author Jens Liebenau
@@ -47,6 +48,7 @@
  * @author User555
  * @author WTM
  * @author Wiki13
+ * @author Wikiklaas
  * @author לערי ריינהארט
  */
 
@@ -562,6 +564,7 @@ $messages = array(
 'create-this-page' => 'Deze pagina aanmaken',
 'delete' => 'Verwijderen',
 'deletethispage' => 'Deze pagina verwijderen',
+'undeletethispage' => 'Pagina terugplaatsen',
 'undelete_short' => '$1 {{PLURAL:$1|bewerking|bewerkingen}} terugplaatsen',
 'viewdeleted_short' => '{{PLURAL: $1|Eén geschrapte bewerking |$1 geschrapte bewerkingen}} bekijken',
 'protect' => 'Beveiligen',
@@ -615,7 +618,6 @@ $1',
 'disclaimers' => 'Voorbehoud',
 'disclaimerpage' => 'Project:Algemeen voorbehoud',
 'edithelp' => 'Hulp bij bewerken',
-'edithelppage' => 'Help:Bewerken',
 'helppage' => 'Help:Inhoud',
 'mainpage' => 'Hoofdpagina',
 'mainpage-description' => 'Hoofdpagina',
@@ -767,6 +769,10 @@ $2",
 'namespaceprotected' => "U hebt geen rechten om pagina's in de naamruimte '''$1''' te bewerken.",
 'customcssprotected' => 'U kunt deze CSS-pagina niet bewerken, omdat die persoonlijke instellingen van een andere gebruiker bevat.',
 'customjsprotected' => 'U kunt deze JavaScriptpagina niet bewerken, omdat die persoonlijke instellingen van een andere gebruiker bevat.',
+'mycustomcssprotected' => 'U hebt geen rechten om deze CSS-pagina te bewerken.',
+'mycustomjsprotected' => 'U hebt geen rechten om deze JavaScriptpagina te bewerken.',
+'myprivateinfoprotected' => 'U hebt geen rechten om uw privégegevens te bewerken.',
+'mypreferencesprotected' => 'U hebt geen rechten om uw voorkeuren aan te passen.',
 'ns-specialprotected' => 'Pagina\'s in de naamruimte "{{ns:special}}" kunnen niet bewerkt worden.',
 'titleprotected' => "Het aanmaken van deze pagina is beveiligd door [[User:$1|$1]].
 De gegeven reden is ''$2''.",
@@ -794,6 +800,7 @@ Vergeet niet uw [[Special:Preferences|voorkeuren voor {{SITENAME}}]] aan te pass
 'yourname' => 'Gebruikersnaam:',
 'userlogin-yourname' => 'Gebruikersnaam',
 'userlogin-yourname-ph' => 'Geef uw gebruikersnaam op',
+'createacct-another-username-ph' => 'Geef de gebruikersnaam op',
 'yourpassword' => 'Wachtwoord:',
 'userlogin-yourpassword' => 'Wachtwoord',
 'userlogin-yourpassword-ph' => 'Geef uw wachtwoord op',
@@ -828,9 +835,11 @@ Vergeet niet uw [[Special:Preferences|voorkeuren voor {{SITENAME}}]] aan te pass
 'helplogin-url' => 'Help:Aanmelden',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hulp bij aanmelden]]',
 'createacct-join' => 'Geef uw gegevens hieronder op.',
+'createacct-another-join' => 'Geef hieronder de informatie voor de nieuwe gebruiker op.',
 'createacct-emailrequired' => 'E-mailadres',
 'createacct-emailoptional' => 'E-mailadres (optioneel)',
 'createacct-email-ph' => 'Geef uw e-mailadres op',
+'createacct-another-email-ph' => 'Geef een e-mailadres op',
 'createaccountmail' => 'Gebruik een tijdelijk willekeurig wachtwoord en stuur het naar het e-mailadres dat hieronder is vermeld',
 'createacct-realname' => 'Echte naam (optioneel)',
 'createaccountreason' => 'Reden:',
@@ -839,6 +848,7 @@ Vergeet niet uw [[Special:Preferences|voorkeuren voor {{SITENAME}}]] aan te pass
 'createacct-captcha' => 'Veiligheidscontrole',
 'createacct-imgcaptcha-ph' => 'Geef de tekst in die u hierboven ziet',
 'createacct-submit' => 'Gebruiker aanmaken',
+'createacct-another-submit' => 'Nog een gebruiker aanmaken',
 'createacct-benefit-heading' => '{{SITENAME}} wordt gemaakt door mensen zoals u.',
 'createacct-benefit-body1' => 'bewerking{{PLURAL:$1||en}}',
 'createacct-benefit-body2' => "pagina{{PLURAL:$1||'s}}",
@@ -911,7 +921,7 @@ Geef een geldig e-mailadres op of laat het veld leeg.',
 'cannotchangeemail' => 'Het e-mailadres voor een gebruiker kan op deze wiki niet gewijzigd worden.',
 'emaildisabled' => 'Deze site kan geen e-mails verzenden.',
 'accountcreated' => 'Gebruiker aangemaakt',
-'accountcreatedtext' => 'De gebruiker $1 is aangemaakt.',
+'accountcreatedtext' => 'De gebruiker [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|overleg]]) is aangemaakt.',
 'createaccount-title' => 'Gebruikers registreren voor {{SITENAME}}',
 'createaccount-text' => 'Iemand heeft een gebruiker op {{SITENAME}} ($4) aangemaakt met de naam "$2" en uw e-mailadres.
 Het wachtwoord voor "$2" is "$3".
@@ -953,11 +963,11 @@ Mogelijk hebt u uw wachtwoord al gewijzigd of een nieuw tijdelijk wachtwoord aan
 
 # Special:PasswordReset
 'passwordreset' => 'Wachtwoord opnieuw instellen',
-'passwordreset-text' => 'Vul dit formulier in om uw wachtwoord opnieuw in te stellen.',
+'passwordreset-text-one' => 'Vul dit formulier in om uw wachtwoord opnieuw in te stellen.',
+'passwordreset-text-many' => '{{PLURAL:$1|Vul een van de gegevensvelden in om uw wachtwoord opnieuw in te stellen.}}',
 'passwordreset-legend' => 'Wachtwoord opnieuw instellen',
 'passwordreset-disabled' => 'Het is in deze wiki niet mogelijk uw wachtwoord opnieuw in te stellen.',
 'passwordreset-emaildisabled' => 'E-mailmogelijkheden zijn uitgeschakeld op deze wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Voer één van de onderstaande velden in}}',
 'passwordreset-username' => 'Gebruiker:',
 'passwordreset-domain' => 'Domein:',
 'passwordreset-capture' => 'De resulterende e-mail bekijken?',
@@ -1125,13 +1135,13 @@ Uw tekst is niet opgeslagen!",
 'previewconflict' => 'Deze voorvertoning geeft aan hoe de tekst in het bovenste veld eruit ziet als u deze opslaat.',
 'session_fail_preview' => "'''Uw bewerking is niet verwerkt, omdat de sessiegegevens verloren zijn gegaan.
 Probeer het opnieuw.
-Als het dan nog niet lukt, [[Special:UserLogout|meld u zich dan af]] en weer aan.'''",
+Als het dan nog niet lukt, [[Special:UserLogout|meld uzelf dan af]] en vervolgens weer aan.'''",
 'session_fail_preview_html' => "'''Uw bewerking is niet verwerkt, omdat de sessiegegevens verloren zijn gegaan.'''
 
 ''Omdat in {{SITENAME}} ruwe HTML is ingeschakeld, is een voorvertoning niet mogelijk als bescherming tegen aanvallen met JavaScript.''
 
 '''Als dit een legitieme bewerking is, probeer het dan opnieuw.'''
-Als het dan nog niet lukt, [[Special:UserLogout|meld u zich dan af]] en weer aan.",
+Als het dan nog niet lukt, [[Special:UserLogout|meld uzelf dan af]] en vervolgens weer aan.",
 'token_suffix_mismatch' => "'''Uw bewerking is geweigerd, omdat uw browser de leestekens in het bewerkingstoken onjuist heeft behandeld.'''
 De bewerking is geweigerd om verminking van de paginatekst te voorkomen.
 Dit gebeurt soms als er een webgebaseerde proxydienst wordt gebruikt die fouten bevat.",
@@ -1202,6 +1212,7 @@ Er is geen toelichting beschikbaar.',
 Deze lijkt verwijderd te zijn.',
 'edit-conflict' => 'Bewerkingsconflict.',
 'edit-no-change' => 'Uw bewerking is genegeerd, omdat er geen wijziging aan de tekst is gemaakt.',
+'postedit-confirmation' => 'Uw bewerking is opgeslagen',
 'edit-already-exists' => 'De pagina is niet aangemaakt.
 Deze bestaat al.',
 'defaultmessagetext' => 'Standaardinhoud',
@@ -1246,6 +1257,7 @@ Controleer voor het opslaan of het resultaat gewenst is.',
 'undo-failure' => 'De wijziging kan niet ongedaan gemaakt worden vanwege andere strijdige wijzigingen.',
 'undo-norev' => 'De bewerking kon niet ongedaan gemaakt worden, omdat die niet bestaat of is verwijderd.',
 'undo-summary' => 'Versie $1 van [[Special:Contributions/$2|$2]] ([[User talk:$2|overleg]]) ongedaan gemaakt',
+'undo-summary-username-hidden' => 'Versie $1 door een verborgen gebruiker ongedaan gemaakt',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Registreren is mislukt.',
@@ -1272,8 +1284,8 @@ De door $3 opgegeven reden is ''$2''",
 Verklaring afkortingen: '''({{int:cur}})''' = verschil met huidige versie, '''({{int:last}})''' = verschil met voorgaande versie, '''{{int:minoreditletter}}''' = kleine wijziging",
 'history-fieldset-title' => 'Door geschiedenis bladeren',
 'history-show-deleted' => 'Alleen verwijderd',
-'histfirst' => 'Oudste',
-'histlast' => 'Nieuwste',
+'histfirst' => 'oudste',
+'histlast' => 'nieuwste',
 'historysize' => '({{PLURAL:$1|1 byte|$1 bytes}})',
 'historyempty' => '(leeg)',
 
@@ -1426,6 +1438,7 @@ Let op dat het gebruiken van de navigatiekoppelingen deze kolom opnieuw instelt.
 'compareselectedversions' => 'Geselecteerde versies vergelijken',
 'showhideselectedversions' => 'Geselecteerde versies weergeven/verbergen',
 'editundo' => 'ongedaan maken',
+'diff-empty' => '(geen verschil)',
 'diff-multi' => '({{PLURAL:$1|Eén tussenliggende versie|$1 tussenliggende versies}} door {{PLURAL:$2|één gebruiker|$2 gebruikers}} {{PLURAL:$1|wordt|worden}} niet weergegeven)',
 'diff-multi-manyusers' => '($1 tussenliggende {{PLURAL:$1|versie|versies}} door meer dan $2 {{PLURAL:$2|gebruiker|gebruikers}}  worden niet weergegeven)',
 'difference-missing-revision' => '{{PLURAL:$2|Eén versie|$2 versies}} van deze verschillen ($1) {{PLURAL:$2|is|zijn}} niet aangetroffen.
@@ -1454,7 +1467,6 @@ Probeer een andere zoekopdracht.',
 'searchmenu-legend' => 'Zoekopties',
 'searchmenu-exists' => "* Pagina '''[[$1]]'''",
 'searchmenu-new' => "'''De pagina \"[[:\$1]]\" aanmaken op deze wiki.'''",
-'searchhelp-url' => 'Help:Inhoud',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Paginanamen met dit voorvoegsel weergeven]]',
 'searchprofile-articles' => "Inhoudelijke pagina's",
 'searchprofile-project' => "Hulp- en projectpagina's",
@@ -1533,7 +1545,6 @@ De gegevens over {{SITENAME}} zijn mogelijk niet bijgewerkt.',
 'resetprefs' => 'Niet opgeslagen wijzigingen herstellen',
 'restoreprefs' => 'Voorkeuren herstellen',
 'prefs-editing' => 'Bewerken',
-'prefs-edit-boxsize' => 'Afmetingen van het bewerkingsvenster.',
 'rows' => 'Regels:',
 'columns' => 'Kolommen:',
 'searchresultshead' => 'Zoekresultaten',
@@ -1544,9 +1555,6 @@ De gegevens over {{SITENAME}} zijn mogelijk niet bijgewerkt.',
 'recentchangesdays-max' => '(maximaal $1 {{PLURAL:$1|dag|dagen}})',
 'recentchangescount' => 'Standaard aantal weer te geven bewerkingen:',
 'prefs-help-recentchangescount' => "Dit geldt voor recente wijzigingen, paginageschiedenis en logboekpagina's.",
-'prefs-help-watchlist-token' => 'Door hier een geheime sleutel in te vullen wordt een RSS-feed voor uw volglijst aangemaakt.
-Iedereen die deze sleutel kent, kan uw volglijst lezen. Kies dus een veilige sleutel.
-Hier volgt een willekeurig gegenereerde waarde die u kunt gebruiken: $1',
 'savedprefs' => 'Uw voorkeuren zijn opgeslagen.',
 'timezonelegend' => 'Tijdzone:',
 'localtime' => 'Plaatselijke tijd:',
@@ -1577,7 +1585,6 @@ Hier volgt een willekeurig gegenereerde waarde die u kunt gebruiken: $1',
 'prefs-reset-intro' => 'Gebruik deze functie om uw voorkeuren te herstellen naar de standaardinstellingen.
 Deze handeling kan niet ongedaan gemaakt worden.',
 'prefs-emailconfirm-label' => 'E-mailbevestiging:',
-'prefs-textboxsize' => 'Afmetingen bewerkingsscherm',
 'youremail' => 'Uw e-mailadres:',
 'username' => '{{GENDER:$1|Gebruikersnaam}}:',
 'uid' => '{{GENDER:$1|Gebruikersnummer}}:',
@@ -1610,7 +1617,9 @@ Als u deze opgeeft, kan deze naam gebruikt worden om u erkenning te geven voor u
 'prefs-signature' => 'Ondertekening',
 'prefs-dateformat' => 'Datumopmaak:',
 'prefs-timeoffset' => 'Tijdverschil',
-'prefs-advancedediting' => 'Gevorderde instellingen',
+'prefs-advancedediting' => 'Algemeen',
+'prefs-editor' => 'Tekstverwerker',
+'prefs-preview' => 'Voorvertoning',
 'prefs-advancedrc' => 'Gevorderde instellingen',
 'prefs-advancedrendering' => 'Gevorderde instellingen',
 'prefs-advancedsearchoptions' => 'Gevorderde instellingen',
@@ -1646,6 +1655,7 @@ Als u deze opgeeft, kan deze naam gebruikt worden om u erkenning te geven voor u
 'userrights-changeable-col' => 'Groepen die u kunt beheren',
 'userrights-unchangeable-col' => 'Groepen die u niet kunt beheren',
 'userrights-conflict' => 'Er is een probleem opgetreden tijdens het instellen van de gebruikersrechten. Pas uw wijzigingen opnieuw toe.',
+'userrights-removed-self' => 'U hebt uw eigen bevoegdheden ingetrokken. U kunt deze pagina niet langer raadplegen.',
 
 # Groups
 'group' => 'Groep:',
@@ -1689,7 +1699,7 @@ Als u deze opgeeft, kan deze naam gebruikt worden om u erkenning te geven voor u
 'right-reupload-shared' => 'Media uit de gedeelde mediadatabank lokaal overschrijven',
 'right-upload_by_url' => 'Bestanden uploaden via een URL',
 'right-purge' => 'De cache voor een pagina legen',
-'right-autoconfirmed' => 'Behandeld worden als een geregistreerde gebruiker',
+'right-autoconfirmed' => 'Uitgezonderd van IP-adresgebaseerde tijdsafhankelijke beperkingen',
 'right-bot' => 'Behandeld worden als een geautomatiseerd proces',
 'right-nominornewtalk' => "Kleine bewerkingen aan een overlegpagina leiden niet tot een melding 'nieuwe berichten'",
 'right-apihighlimits' => 'Hogere limieten in API-zoekopdrachten gebruiken',
@@ -1711,11 +1721,19 @@ Als u deze opgeeft, kan deze naam gebruikt worden om u erkenning te geven voor u
 'right-proxyunbannable' => "Blokkades voor proxy's gelden niet",
 'right-unblockself' => 'Eigen gebruiker deblokkeren',
 'right-protect' => 'Beveiligingsniveaus wijzigen',
-'right-editprotected' => "Beveiligde pagina's bewerken",
+'right-editprotected' => 'Pagina\'s bewerken die beveiligd zijn als "{{int:protect-level-sysop}}"',
+'right-editsemiprotected' => 'Pagina\'s bewerken die beveiligd zijn als "{{int:protect-level-autoconfirmed}}"',
 'right-editinterface' => 'De gebruikersinterface bewerken',
 'right-editusercssjs' => 'De CSS- en JS-bestanden van andere gebruikers bewerken',
 'right-editusercss' => 'De CSS-bestanden van andere gebruikers bewerken',
 'right-edituserjs' => 'De JavaScriptbestanden van andere gebruikers bewerken',
+'right-editmyusercss' => "Uw eigen CSS-pagina's bewerken",
+'right-editmyuserjs' => "Uw eigen JavaScriptpagina's bewerken",
+'right-viewmywatchlist' => 'Uw eigen volglijst bekijken',
+'right-editmywatchlist' => "Uw eigen volglijst bewerken. Via sommige handelingen kunnen nog steeds pagina's toegevoegd worden, zelfs zonder deze bevoegdheid",
+'right-viewmyprivateinfo' => 'Uw eigen privégegevens bekijken (bijvoorbeeld e-mailadres, echte naam)',
+'right-editmyprivateinfo' => 'Uw eigen privégegevens bewerken (bijvoorbeeld e-mailadres, echte naam)',
+'right-editmyoptions' => 'Uw eigen voorkeuren bewerken',
 'right-rollback' => 'Snel de laatste bewerking(en) van een gebruiker van een pagina terugdraaien',
 'right-markbotedits' => 'Teruggedraaide bewerkingen markeren als botbewerkingen',
 'right-noratelimit' => 'Tijdsafhankelijke beperkingen negeren',
@@ -1777,12 +1795,17 @@ Als u deze opgeeft, kan deze naam gebruikt worden om u erkenning te geven voor u
 'action-userrights-interwiki' => "gebruikersrechten van gebruikers van andere wiki's te bewerken",
 'action-siteadmin' => 'de database af te sluiten of open te stellen',
 'action-sendemail' => 'e-mails te verzenden',
+'action-editmywatchlist' => 'uw eigen volglijst te bewerken',
+'action-viewmywatchlist' => 'uw eigen volglijst te bekijken',
+'action-viewmyprivateinfo' => 'uw eigen privégegevens te bekijken',
+'action-editmyprivateinfo' => 'uw eigen privégegevens te bewerken',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|bewerking|bewerkingen}}',
 'recentchanges' => 'Recente wijzigingen',
 'recentchanges-legend' => 'Opties voor recente wijzigingen',
 'recentchanges-summary' => 'Op deze pagina kunt u de recentste wijzigingen in deze wiki bekijken.',
+'recentchanges-noresult' => 'Er zijn in deze periode geen wijzigingen gemaakt die aan de criteria voldoen.',
 'recentchanges-feed-description' => 'Met deze feed kunt u de recentste wijzigingen in deze wiki bekijken.',
 'recentchanges-label-newpage' => 'Met deze bewerking is een nieuwe pagina aangemaakt',
 'recentchanges-label-minor' => 'Dit is een kleine bewerking',
@@ -1819,7 +1842,6 @@ Als u deze opgeeft, kan deze naam gebruikt worden om u erkenning te geven voor u
 'recentchangeslinked-feed' => 'Verwante wijzigingen',
 'recentchangeslinked-toolbox' => 'Verwante wijzigingen',
 'recentchangeslinked-title' => 'Wijzigingen verwant aan "$1"',
-'recentchangeslinked-noresult' => "Er zijn in de opgegeven periode geen bewerkingen geweest op de pagina's waarheen vanaf hier verwezen wordt.",
 'recentchangeslinked-summary' => "Deze speciale pagina geeft de laatste bewerkingen weer op pagina's waarheen verwezen wordt vanaf een opgegeven pagina of op pagina's in een opgegeven categorie.
 Pagina's die op [[Special:Watchlist|uw volglijst]] staan worden '''vet''' weergegeven.",
 'recentchangeslinked-page' => 'Paginanaam:',
@@ -1831,7 +1853,7 @@ Pagina's die op [[Special:Watchlist|uw volglijst]] staan worden '''vet''' weerge
 'reuploaddesc' => 'Upload annuleren en terugkeren naar het uploadformulier',
 'upload-tryagain' => 'Bestandsbeschrijving bijwerken',
 'uploadnologin' => 'Niet aangemeld',
-'uploadnologintext' => 'U moet [[Special:UserLogin|aangemeld]] zijn om bestanden te kunnen uploaden.',
+'uploadnologintext' => 'U moet $1 om bestanden te kunnen uploaden.',
 'upload_directory_missing' => 'De uploadmap ($1) is niet aanwezig en kon niet aangemaakt worden door de webserver.',
 'upload_directory_read_only' => 'De webserver kan niet schrijven in de uploadmap ($1).',
 'uploaderror' => 'Uploadfout',
@@ -1975,11 +1997,11 @@ Ga terug naar het [[Special:Upload/stash/$1|uploadformulier]] om dit probleem te
 'upload-proto-error-text' => "Uploads via deze methode vereisen URL's die beginnen met <code>http://</code> of <code>ftp://</code>.",
 'upload-file-error' => 'Interne fout',
 'upload-file-error-text' => 'Er is een interne fout opgetreden tijdens het aanmaken van een tijdelijk bestaan op de server.
-Neem contact op met een [[Special:ListUsers/sysop|systeembeheerder]].',
+Neem contact op met een [[Special:ListUsers/sysop|moderator]].',
 'upload-misc-error' => 'Onbekende uploadfout',
 'upload-misc-error-text' => 'Er is tijdens het uploaden een onbekende fout opgetreden.
 Controleer of de URL correct en beschikbaar is en probeer het opnieuw.
-Als het probleem aanhoudt, neem dan contact op met een [[Special:ListUsers/sysop|systeembeheerder]].',
+Als het probleem aanhoudt, neem dan contact op met een [[Special:ListUsers/sysop|moderator]].',
 'upload-too-many-redirects' => 'De URL bevatte te veel doorverwijzingen',
 'upload-unknown-size' => 'Onbekende grootte',
 'upload-http-error' => 'Er is een HTTP-fout opgetreden: $1',
@@ -2237,6 +2259,8 @@ Een pagina wordt gezien als doorverwijspagina als er een sjabloon op staat dat o
 'pageswithprop-text' => "Op deze pagina worden pagina's weergegeven met een bepaalde pagina-eigenschap.",
 'pageswithprop-prop' => 'Naam van de eigenschap:',
 'pageswithprop-submit' => 'OK',
+'pageswithprop-prophidden-long' => 'lange teksteigenschapswaarde verborgen ({{PLURAL:$1|$1 kilobyte}})',
+'pageswithprop-prophidden-binary' => 'binaire eigenschapswaarde verborgen ({{PLURAL:$1|$1 kilobyte}})',
 
 'doubleredirects' => 'Dubbele doorverwijzingen',
 'doubleredirectstext' => "Deze lijst bevat pagina's die doorverwijzen naar andere doorverwijspagina's.
@@ -2418,7 +2442,8 @@ Heeft tenminste een topleveldomein nodig, zoals bijvoorbeeld "*.org".<br />
 'listgrouprights' => 'Rechten van gebruikersgroepen',
 'listgrouprights-summary' => 'Op deze pagina staan de gebruikersgroepen in deze wiki beschreven, met hun bijbehorende rechten.
 Er kan [[{{MediaWiki:Listgrouprights-helppage}}|extra informatie]] over individuele rechten aanwezig zijn.',
-'listgrouprights-key' => '* <span class="listgrouprights-granted">Toegewezen recht</span>
+'listgrouprights-key' => 'Leganda:
+* <span class="listgrouprights-granted">Toegewezen recht</span>
 * <span class="listgrouprights-revoked">Ingetrokken recht</span>',
 'listgrouprights-group' => 'Groep',
 'listgrouprights-rights' => 'Rechten',
@@ -2490,7 +2515,6 @@ Toekomstige bewerkingen van deze pagina en de bijbehorende overlegpagina worden
 'unwatchthispage' => 'Niet meer volgen',
 'notanarticle' => 'Is geen pagina',
 'notvisiblerev' => 'De laatste versie van een andere gebruiker is verwijderd',
-'watchnochange' => "Geen van de pagina's op uw volglijst is in deze periode bewerkt.",
 'watchlist-details' => "Er {{PLURAL:$1|staat één pagina|staan $1 pagina's}} op uw volglijst, exclusief overlegpagina's.",
 'wlheader-enotif' => 'U wordt per e-mail gewaarschuwd.',
 'wlheader-showupdated' => "Pagina's die zijn bewerkt sinds uw laatste bezoek worden '''vet''' weergegeven.",
@@ -2600,7 +2624,7 @@ Iemand anders heeft deze pagina al bewerkt of hersteld naar een eerdere versie.
 De meest recente bewerking is gemaakt door [[User:$3|$3]] ([[User talk:$3|overleg]]{{int:pipe-separator}}[[Special:Contributions/$3|bijdragen]]).',
 'editcomment' => "De bewerkingssamenvatting was: \"''\$1''\".",
 'revertpage' => 'Wijzigingen door [[Special:Contributions/$2|$2]] ([[User talk:$2|Overleg]]) hersteld tot de laatste versie door [[User:$1|$1]]',
-'revertpage-nouser' => 'Wijzigingen door (gebruikersnaam verwijderd) teruggedraaid naar de laatste versie door [[User:$1|$1]]',
+'revertpage-nouser' => 'Wijzigingen door een verborgen gebruiker teruggedraaid naar de laatste versie door [[User:$1|$1]]',
 'rollback-success' => 'De wijzigingen door $1 zijn teruggedraaid.
 De laatste versie van $2 is hersteld.',
 
@@ -4046,7 +4070,6 @@ U kunt ook [[Special:EditWatchlist|het standaard bewerkingsscherm gebruiken]].',
 'version-other' => 'Overige',
 'version-mediahandlers' => 'Mediaverwerkers',
 'version-hooks' => 'Hooks',
-'version-extension-functions' => 'Uitbreidingsfuncties',
 'version-parser-extensiontags' => 'Parseruitbreidingstags',
 'version-parser-function-hooks' => 'Parserfunctiehooks',
 'version-hook-name' => 'Hooknaam',
@@ -4130,6 +4153,7 @@ Samen met dit programma hoort u een [{{SERVER}}{{SCRIPTPATH}}/COPYING kopie van
 'tags' => 'Geldige wijzigingslabels',
 'tag-filter' => '[[Special:Tags|Labelfilter]]:',
 'tag-filter-submit' => 'Filteren',
+'tag-list-wrapper' => '([[Special:Tags|Label{{PLURAL:$1||s}}]]: $2)',
 'tags-title' => 'Labels',
 'tags-intro' => 'Op deze pagina staan de labels waarmee de software iedere bewerking kan markeren, en hun betekenis.',
 'tags-tag' => 'Labelnaam',
index c1ba232..eb4b0bc 100644 (file)
@@ -425,6 +425,18 @@ $messages = array(
 'oct' => 'okt',
 'nov' => 'nov',
 'dec' => 'des',
+'january-date' => '$1. januar',
+'february-date' => '$1. februar',
+'march-date' => '$1. mars',
+'april-date' => '$1. april',
+'may-date' => '$1. mai',
+'june-date' => '$1. juni',
+'july-date' => '$1. juli',
+'august-date' => '$1. august',
+'september-date' => '$1. september',
+'october-date' => '$1. oktober',
+'november-date' => '$1. november',
+'december-date' => '$1. desember',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategori|Kategoriar}}',
@@ -508,6 +520,7 @@ $messages = array(
 'create-this-page' => 'Opprett sida',
 'delete' => 'Slett',
 'deletethispage' => 'Slett denne sida',
+'undeletethispage' => 'Attopprett sida',
 'undelete_short' => 'Attopprett {{PLURAL:$1|éin versjon|$1 versjonar}}',
 'viewdeleted_short' => 'Vis {{PLURAL:$1|éin sletta versjon|$1 sletta versjonar}}',
 'protect' => 'Vern',
@@ -561,7 +574,6 @@ $1',
 'disclaimers' => 'Atterhald',
 'disclaimerpage' => 'Project:Atterhald',
 'edithelp' => 'Endringshjelp',
-'edithelppage' => 'Help:Endring',
 'helppage' => 'Help:Innhald',
 'mainpage' => 'Hovudside',
 'mainpage-description' => 'Hovudside',
@@ -697,6 +709,8 @@ $2',
 'namespaceprotected' => "Du har ikkje tilgang til å endre sidene i '''$1'''-namnerommet.",
 'customcssprotected' => '↓Du har ikkje tilgang til å endre denne sida, fordi ho inneheld ein annan brukar sine personlege innstillingar.',
 'customjsprotected' => '↓Du har ikkje tilgang til å endra denne JavaScript-sida fordi ho inneheld ein annen brukar sine personlege innstillingar.',
+'mycustomcssprotected' => 'Du har ikkje løyve til å endra denne CSS-sida.',
+'mycustomjsprotected' => 'Du har ikkje løyve til å endra denne JavaScript-sida.',
 'ns-specialprotected' => 'Sider i {{ns:special}}-namnerommet kan ikkje endrast.',
 'titleprotected' => "Denne sidetittelen er verna mot oppretting av [[User:$1|$1]].
 Grunnen som er gjeven er: ''$2''.",
@@ -724,13 +738,17 @@ Gløym ikkje å endra [[Special:Preferences|innstillingane dine for {{SITENAME}}
 'yourname' => 'Brukarnamn:',
 'userlogin-yourname' => 'Brukarnamn',
 'userlogin-yourname-ph' => 'Skriv inn brukarnamnet ditt',
+'createacct-another-username-ph' => 'Skriv inn brukarnamnet',
 'yourpassword' => 'Passord:',
 'userlogin-yourpassword' => 'Passord',
 'userlogin-yourpassword-ph' => 'Skriv inn passordet ditt',
+'createacct-yourpassword-ph' => 'Skriv inn eit passord',
 'yourpasswordagain' => 'Skriv opp att passordet',
+'createacct-yourpasswordagain' => 'Stadfest passord',
+'createacct-yourpasswordagain-ph' => 'Skriv inn passordet på nytt',
 'remembermypassword' => 'Hugs innlogginga mi på denne datamaskinen (høgst {{PLURAL:$1|éin dag|$1 dagar}})',
 'userlogin-remembermypassword' => 'Hald meg innlogga',
-'userlogin-signwithsecure' => 'Logg inn med trygg tenar',
+'userlogin-signwithsecure' => 'Nytt trygg kopling',
 'securelogin-stick-https' => 'Fortset HTTPS-tilkopling etter innlogging.',
 'yourdomainname' => 'Domenet ditt',
 'password-change-forbidden' => 'Du kan ikkje endra passord på denne wikien.',
@@ -744,20 +762,39 @@ Gløym ikkje å endra [[Special:Preferences|innstillingane dine for {{SITENAME}}
 'userlogout' => 'Logg ut',
 'notloggedin' => 'Ikkje innlogga',
 'userlogin-noaccount' => 'Har du ingen konto?',
-'userlogin-joinproject' => 'Vert med {{SITENAME}}',
-'nologin' => "Har du ingen brukarkonto? '''$1'''.",
+'userlogin-joinproject' => 'Vert med på {{SITENAME}}',
+'nologin' => 'Har du ingen brukarkonto? $1.',
 'nologinlink' => 'Registrer deg',
 'createaccount' => 'Opprett ny konto',
 'gotaccount' => "Har du ein brukarkonto? '''$1'''.",
 'gotaccountlink' => 'Logg inn',
 'userlogin-resetlink' => 'Har du gløymd påloggingsopplysingane dine?',
+'userlogin-resetpassword-link' => 'Attendestill passordet ditt',
 'helplogin-url' => 'Help:Innlogging',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hjelp med innlogging]]',
+'createacct-join' => 'Skriv inn informasjonen din under.',
+'createacct-another-join' => 'Skriv inn informasjonen til den nye kontoen under',
+'createacct-emailrequired' => 'E-postadresse:',
+'createacct-emailoptional' => 'E-postadresse (valfritt)',
+'createacct-email-ph' => 'Skriv inn e-postadressa di',
+'createacct-another-email-ph' => 'Skriv inn e-postadresse',
 'createaccountmail' => 'Bruk eit mellombels tilfeldig passord og send det til e-postadressa som er oppgjeven under',
+'createacct-realname' => 'Sant namn (valfritt)',
 'createaccountreason' => 'Årsak:',
+'createacct-reason' => 'Årsak',
+'createacct-reason-ph' => 'Kvifor du lagar ein ny konto',
+'createacct-captcha' => 'Tryggingssjekk',
+'createacct-imgcaptcha-ph' => 'Skriv inn teksten du ser over',
+'createacct-submit' => 'Opprett kontoen din',
+'createacct-another-submit' => 'Opprett ein konto til',
+'createacct-benefit-heading' => '{{SITENAME}} er laga av folk som deg.',
+'createacct-benefit-body1' => '{{PLURAL:$1|éi endring|$1 endringar}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|éi side|$1 sider}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|nyleg bidragsytar|nylege bidragsytarar}}',
 'badretype' => 'Passorda du skreiv inn er ikkje like.',
 'userexists' => 'Brukarnamnet er alt i bruk. Vel eit anna brukarnamn.',
 'loginerror' => 'Innloggingsfeil',
+'createacct-error' => 'Kontoopprettingsfeil',
 'createaccounterror' => 'Kunne ikkje oppretta kontoen:  $1',
 'nocookiesnew' => 'Brukarkontoen vart oppretta, men du er ikkje innlogga. {{SITENAME}} bruker informasjonskapslar for å logge inn brukarar,
 nettlesaren din er innstilt for ikkje å godta desse. Etter at du har endra innstillingane slik at nettlesaren godtek informasjonskapslar, kan du logge inn med det nye brukarnamnet og passordet ditt.',
@@ -802,7 +839,7 @@ Grunna dette vil ikkje vitjande som nyttar denne IP-adressa kunna oppretta nye k
 'cannotchangeemail' => 'Epost-adresser knytta til brukarkonti kan ikkje endrast på denne wikien.',
 'emaildisabled' => 'Denne nettstaden kan ikkje senda e-postar.',
 'accountcreated' => 'Brukarkonto oppretta',
-'accountcreatedtext' => 'Brukarkontoen til $1 er oppretta.',
+'accountcreatedtext' => 'Brukarkontoen til [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|diskusjon]]) er oppretta.',
 'createaccount-title' => 'Oppretting av brukarkonto på {{SITENAME}}',
 'createaccount-text' => 'Nokon oppretta ein brukarkonto for $2 på {{SITENAME}} ($4). Passordet til «$2» er «$3». Du bør logge inn og endre passordet ditt med ein gong.
 
@@ -835,14 +872,14 @@ Du kan sjå bort frå denne meldinga dersom kontoen vart oppretta med eit uhell.
 'resetpass-wrong-oldpass' => 'Feil mellombels eller noverande passord.
 Du kan allereie ha byta passordet, eller ha bede om å få eit nytt mellombels passord.',
 'resetpass-temp-password' => 'Mellombels passord:',
+'resetpass-abort-generic' => 'Passordbytet vart stogga av ei utviding.',
 
 # Special:PasswordReset
 'passwordreset' => 'Attendestilling av passord',
-'passwordreset-text' => '↓Fyll ut dette skjemaet for å motta ei påminning om kontoopplysningane dine i ein e-post.',
+'passwordreset-text-one' => 'Fyll ut dette skjemaet for å attendestilla passordet ditt.',
 'passwordreset-legend' => '↓Nullstill passordet',
 'passwordreset-disabled' => '↓Tilbakestilling av passord er ikkje aktivert på denne wikien',
 'passwordreset-emaildisabled' => 'E-postfunksjonen er slegen av på wikien.',
-'passwordreset-pretext' => '↓{{PLURAL:$1||Tast inn ein av datadelane nedanfor}}',
 'passwordreset-username' => 'Brukarnamn:',
 'passwordreset-domain' => 'Domene:',
 'passwordreset-capture' => 'Vis resulterande epost',
@@ -911,7 +948,7 @@ Mellombels passord: $2',
 'showdiff' => 'Vis skilnader',
 'anoneditwarning' => "'''Åtvaring:''' Du er ikkje innlogga.
 IP-adressa di vert lagra i endringshistorikken til sida.",
-'anonpreviewwarning' => "''Du er ikkje innlogga. Lagrar du vil IP-adressa di verta førd opp i endringshistorikken til denne sida.''",
+'anonpreviewwarning' => "''Du er ikkje innlogga. Lagrar du vil IP-adressa di verta ført opp i endringshistorikken til denne sida.''",
 'missingsummary' => "'''Påminning:''' Du har ikkje skrive noko endringssamandrag. Dersom du trykkjer «Lagre» ein gong til, vert endringa di lagra utan.",
 'missingcommenttext' => 'Ver venleg og skriv ein kommentar nedanfor.',
 'missingcommentheader' => "'''Påminning:''' Du har ikkje oppgjeve noko emne/overskrift for denne kommentaren.
@@ -1065,13 +1102,14 @@ Sletteloggen for sida finn du her:",
 Det ser ut til at ho er sletta.',
 'edit-conflict' => 'Endringskonflikt.',
 'edit-no-change' => 'Redigeringa di vart ignorert fordi det ikkje vart gjort endringar i teksten.',
+'postedit-confirmation' => 'Endringa di vart lagra.',
 'edit-already-exists' => 'Kunne ikkje opprette ny side fordi ho alt eksisterer.',
 'defaultmessagetext' => 'Standard meldingstekst',
 'content-failed-to-parse' => 'Klarte ikkje å tolke innhaldet «$2» for innhaldsmodellen «$1»: $3',
 'invalid-content-data' => 'Ugyldig innhald',
 'content-not-allowed-here' => 'Innhaldsmodellen «$1» er ikkje tillaten på sida [[$2]]',
-'editwarning-warning' => 'Gjennom å navigera vekk frå denne sida vil du mista alle endringane du måtte ha gjort.
-Denne åtvaringa kan slåast av under {{int:prefs-editing}} i instillingane dine.',
+'editwarning-warning' => 'Ved å forlata denne sida kan du mista alle endringane du måtte ha gjort.
+Er du innlogga kan denne åtvaringa slåast av under bolken «Endring» i innstillingane dine.',
 
 # Content models
 'content-model-wikitext' => 'WikiTekst',
@@ -1131,8 +1169,8 @@ Grunnen som vart gjeven av $3 er ''$2''",
 'histlegend' => 'Merk av for dei versjonane du vil samanlikne og trykk [Enter] eller klikk på knappen nedst på sida.<br />Forklaring: (no) = skilnad frå den noverande versjonen, (førre) = skilnad frå den førre versjonen, <b>s</b> = småplukk',
 'history-fieldset-title' => 'Finn dato',
 'history-show-deleted' => 'Berre sletta',
-'histfirst' => 'Første',
-'histlast' => 'Siste',
+'histfirst' => 'eldste',
+'histlast' => 'nyaste',
 'historysize' => '({{PLURAL:$1|1 byte|$1 byte}})',
 'historyempty' => '(tom)',
 
@@ -1281,11 +1319,12 @@ Pass på at den nye sida også har innhald frå den innfletta sida.',
 'compareselectedversions' => 'Samanlikn valde versjonar',
 'showhideselectedversions' => 'Vis/løyn valde versjonar',
 'editundo' => 'angre',
+'diff-empty' => '(Ingen skilnad)',
 'diff-multi' => '({{PLURAL:$1|Éin mellomversjon|$1 mellomversjonar}} frå {{PLURAL:$2|éin brukar|$2 brukarar}} er ikkje {{PLURAL:$1|vist|viste}})',
 'diff-multi-manyusers' => '({{PLURAL:$1|Ein mellomversjon|$1 mellomversjonar}} av meir enn $2 {{PLURAL:$2|brukar|brukarar}}  er ikkje {{PLURAL:$1|vist|viste}})',
-'difference-missing-revision' => '{{PLURAL:$2|Éin versjon|$2 versjonar}} av skilnaden ($1) vart ikkje funne.
+'difference-missing-revision' => '{{PLURAL:$2|Éin versjon|$2 versjonar}} av skilnaden ($1) vart ikkje {{PLURAL:$2|funnen|funne}}.
 
-Dette skriv seg som oftast frå at ein har fylgd ei forelda versjonslenkje til ei side som er sletta.
+Dette skriv seg som oftast frå at ein har fylgt ei forelda versjonslenkje til ei side som er sletta.
 Detaljar kan ein finna i [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} sletteloggen].',
 
 # Search results
@@ -1308,7 +1347,6 @@ Detaljar kan ein finna i [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE
 'searchmenu-legend' => 'Søkjeval',
 'searchmenu-exists' => "* Sida '''[[$1]]'''",
 'searchmenu-new' => "'''Opprett sida «[[:$1|$1]]» på denne wikien.'''",
-'searchhelp-url' => 'Help:Innhald',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Sjå gjennom alle sider med denne forstavinga]]',
 'searchprofile-articles' => 'Innhaldssider',
 'searchprofile-project' => 'Hjelp- og prosjektsider',
@@ -1386,7 +1424,6 @@ Ver merksam på at registra deira kan vera utdaterte.',
 'resetprefs' => 'Rull attende',
 'restoreprefs' => 'Hent attende alle standardinnstillingane',
 'prefs-editing' => 'Endring',
-'prefs-edit-boxsize' => 'Storleiken på redigeringsvindauget.',
 'rows' => 'Rekkjer',
 'columns' => 'Kolonnar',
 'searchresultshead' => 'Søk',
@@ -1397,9 +1434,6 @@ Ver merksam på at registra deira kan vera utdaterte.',
 'recentchangesdays-max' => '(høgst $1 {{PLURAL:$1|dag|dagar}})',
 'recentchangescount' => 'Tal på endringar som viser som standard:',
 'prefs-help-recentchangescount' => 'Dette inkluderer nylege endringar, sidehistorikk og loggar.',
-'prefs-help-watchlist-token' => 'Om du fyller ut dette feltet med eit hemmeleg tal, vil det opprettast ei RSS opplisting for overvakingslista di.
-Alle som veit det rette talet vil vera i stand til å lesa overvakingslista di, så vél gjerne ein trygg verdi.
-Her er det framlegg til eit tal som kan nyttast, tilfelleleg henta fram: $1',
 'savedprefs' => 'Brukarinnstillingane er lagra.',
 'timezonelegend' => 'Tidssone:',
 'localtime' => 'Lokaltid:',
@@ -1430,7 +1464,6 @@ Her er det framlegg til eit tal som kan nyttast, tilfelleleg henta fram: $1',
 'prefs-reset-intro' => 'Du kan nytta denne sida til å tilbakestilla innstillingane dine til standardinnstillingane.
 Dette kan ikkje tilbakestillast.',
 'prefs-emailconfirm-label' => 'Stadfesting av e-post:',
-'prefs-textboxsize' => 'Storleiken til redigeringsvindauga',
 'youremail' => 'E-post:',
 'username' => '{{GENDER:$1|Brukarnamn}}:',
 'uid' => '{{GENDER:$1|Brukar-ID}}:',
@@ -1460,6 +1493,7 @@ Dette kan ikkje tilbakestillast.',
 'prefs-dateformat' => 'Datoformat',
 'prefs-timeoffset' => 'Tidforskuving',
 'prefs-advancedediting' => 'Avanserte val',
+'prefs-preview' => 'Førehandsvising',
 'prefs-advancedrc' => 'Avanserte val',
 'prefs-advancedrendering' => 'Avanserte val',
 'prefs-advancedsearchoptions' => 'Avanserte val',
@@ -1564,6 +1598,10 @@ Dette kan ikkje tilbakestillast.',
 'right-editusercssjs' => 'Endre andre brukarar sine CSS- og JS-filer',
 'right-editusercss' => 'Endre andre brukarar sine CSS-filer',
 'right-edituserjs' => 'Endre andre brukarar sine JS-filer',
+'right-editmyusercss' => 'Endra eigne CSS-filer',
+'right-editmyuserjs' => 'Endra eigne JavaScript-filer',
+'right-viewmywatchlist' => 'Sjå eiga overvakingsliste',
+'right-editmywatchlist' => 'Endra eiga overvakingsliste. Merk at somme handlingane framleis vil leggja til sider utan denne retten.',
 'right-rollback' => 'Snøgt rulla attende endringane til den siste brukaren som endra ei viss side',
 'right-markbotedits' => 'Markere tilbakerullingar som robotendringar',
 'right-noratelimit' => 'Vert ikkje påverka av snøggleiksgrenser',
@@ -1625,12 +1663,15 @@ Dette kan ikkje tilbakestillast.',
 'action-userrights-interwiki' => 'endre brukarrettar for brukarar på andre wikiar',
 'action-siteadmin' => 'låse eller låse opp databasen',
 'action-sendemail' => 'senda e-postar',
+'action-editmywatchlist' => 'endra overvakingslista di',
+'action-viewmywatchlist' => 'sjå overvakingslista di',
 
 # Recent changes
 'nchanges' => '{{PLURAL:$1|Éi endring|$1 endringar}}',
 'recentchanges' => 'Siste endringar',
 'recentchanges-legend' => 'Alternativ for siste endringar',
 'recentchanges-summary' => 'På denne sida ser du dei sist endra sidene i {{SITENAME}}.',
+'recentchanges-noresult' => 'Ingen endringar i den gjevne perioden passar med kriteria.',
 'recentchanges-feed-description' => 'Fylg med på dei siste endringane på denne wikien med dette abonnementet.',
 'recentchanges-label-newpage' => 'Endringa oppretta ei ny side',
 'recentchanges-label-minor' => 'Endringa er småplukk',
@@ -1667,7 +1708,6 @@ Dette kan ikkje tilbakestillast.',
 'recentchangeslinked-feed' => 'Relaterte endringar',
 'recentchangeslinked-toolbox' => 'Relaterte endringar',
 'recentchangeslinked-title' => 'Endringar relaterte til «$1»',
-'recentchangeslinked-noresult' => 'Det er ikkje gjort endringar på sidene som var lenkja hit i den oppgjevne perioden.',
 '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',
@@ -1678,7 +1718,7 @@ Dette kan ikkje tilbakestillast.',
 'reuploaddesc' => 'Attende til opplastingsskjemaet.',
 'upload-tryagain' => 'Send inn endra filskildring',
 'uploadnologin' => 'Ikkje innlogga',
-'uploadnologintext' => 'Du lyt vera [[Special:UserLogin|innlogga]] for å kunna laste opp filer.',
+'uploadnologintext' => 'Du lyt $1 for å kunna laste opp filer.',
 'upload_directory_missing' => 'Opplastingsmappa ($1) manglar og kunne ikkje opprettast av tenaren.',
 'upload_directory_read_only' => 'Opplastingsmappa ($1) er skriveverna.',
 'uploaderror' => 'Feil under opplasting av fil',
@@ -2299,7 +2339,6 @@ E-postadressa du har sett i [[Special:Preferences|innstillingane dine]] vil dukk
 'unwatchthispage' => 'Fjern overvaking',
 'notanarticle' => 'Ikkje innhaldsside',
 'notvisiblerev' => 'Sideversjonen er sletta',
-'watchnochange' => 'Ingen av sidene i overvakingslista er endra i den valde perioden.',
 'watchlist-details' => '{{PLURAL:$1|Éi side|$1 sider}} er overvaka, utanom diskusjonssider.',
 'wlheader-enotif' => 'Funksjonen for endringsmeldingar per e-post er på.',
 'wlheader-showupdated' => "Sider som har vorte endra sidan du sist såg på dei er '''utheva'''",
@@ -2540,7 +2579,7 @@ $1',
 'mycontris' => 'Bidrag',
 'contribsub2' => 'For $1 ($2)',
 'nocontribs' => 'Det vart ikkje funne nokon endringar gjorde av denne brukaren.',
-'uctop' => ' (øvst)',
+'uctop' => '(gjeldande)',
 'month' => 'Månad:',
 'year' => 'År:',
 
@@ -2759,7 +2798,7 @@ I desse falla lyt du flytta eller fletta sida manuelt, om ynskjeleg.",
 'newtitle' => 'Til ny tittel:',
 'move-watch' => 'Overvak sida',
 'movepagebtn' => 'Flytt side',
-'pagemovedsub' => 'Flyttinga er gjennomførd',
+'pagemovedsub' => 'Flyttinga er gjennomført',
 'movepage-moved' => "'''«$1» er flytt til «$2»'''",
 'movepage-moved-redirect' => 'Det er oppretta ei omdirigering.',
 'movepage-moved-noredirect' => 'Det vart ikkje oppretta ei omdirigering.',
@@ -2990,7 +3029,7 @@ Vitja [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] og [//trans
 'tooltip-watchlistedit-raw-submit' => 'Oppdater overvakingslista',
 'tooltip-recreate' => 'Ved å trykkje på «Nyopprett» vert sida oppretta på nytt.',
 'tooltip-upload' => 'Start opplastinga',
-'tooltip-rollback' => '«Rulla attende»-knappen rullar med eitt klikk attende endringa(ne) på sida gjorde av den siste bidragsytaren',
+'tooltip-rollback' => '«Rull attende»-knappen rullar med eitt klikk attende endringa(ne) på sida gjorde av den siste bidragsytaren',
 'tooltip-undo' => '«Gjer om» attenderullar endringar og opnar endringsvindauga med førehandsvising. Gjer at ein kan leggje til ei årsak samandragsboksen.',
 'tooltip-preferences-save' => 'Lagra innstillingar',
 'tooltip-summary' => 'Skriv inn eit kort samandrag',
@@ -3157,11 +3196,25 @@ $1',
 'minutes' => '{{PLURAL:$1|$1 minutt|$1 minutt}}',
 'hours' => '{{PLURAL:$1|$1 time|$1 timar}}',
 'days' => '{{PLURAL:$1|$1 dag|$1 dagar}}',
+'weeks' => '{{PLURAL:$1|$1 veke|$1 veker}}',
 'months' => '{{PLURAL:$1|éin månad|$1 månader}}',
 'years' => '{{PLURAL:$1|éitt år|$1 år}}',
 'ago' => '$1 sidan',
 'just-now' => 'akkurat no',
 
+# Human-readable timestamps
+'hours-ago' => '$1 {{PLURAL:$1|time|timar}} sidan',
+'minutes-ago' => '$1 {{PLURAL:$1|minutt}} sidan',
+'seconds-ago' => '$1 {{PLURAL:$1|sekund}} sidan',
+'monday-at' => 'Måndag kl. $1',
+'tuesday-at' => 'Tysdag kl. $1',
+'wednesday-at' => 'Onsdag kl. $1',
+'thursday-at' => 'Torsdag kl. $1',
+'friday-at' => 'Fredag kl. $1',
+'saturday-at' => 'Laurdag kl. $1',
+'sunday-at' => 'Sundag kl. $1',
+'yesterday-at' => 'I går kl. $1',
+
 # Bad image list
 'bad_image_list' => 'Formatet er slik:
 
@@ -3756,7 +3809,6 @@ Du kan òg [[Special:EditWatchlist|nytte standardverktøyet]].',
 'version-other' => 'Anna',
 'version-mediahandlers' => 'Mediahandsamarar',
 'version-hooks' => 'Tilleggsuttrykk',
-'version-extension-functions' => 'Utvidingsfunksjonar',
 'version-parser-extensiontags' => 'Parserutvidingsmerke',
 'version-parser-function-hooks' => 'Parserfunksjonstillegg',
 'version-hook-name' => 'Namn på tillegg',
@@ -3778,6 +3830,18 @@ Du skal ha motteke [{{SERVER}}{{SCRIPTPATH}}/COPYING ein kopi av GNU General Pub
 'version-entrypoints-header-entrypoint' => 'Inngangspunkt',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
+'redirect' => 'Omdiriger etter filnamn, brukar- eller versjons-ID',
+'redirect-legend' => 'Omdiriger til ei fil eller ei side',
+'redirect-summary' => 'Denne spesialsida omdirigerer til ei fil (med eit filnamn), ei side (med ein versjons-ID) eller ei brukarside (med eit brukartal).',
+'redirect-submit' => 'Gå',
+'redirect-lookup' => 'Sjå etter:',
+'redirect-value' => 'Verdi',
+'redirect-user' => 'Brukar-ID',
+'redirect-revision' => 'Sideversjon',
+'redirect-file' => 'Filnamn',
+'redirect-not-exists' => 'Fann ikkje verdi',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Søk etter duplikatfiler',
 'fileduplicatesearch-summary' => 'Søk etter duplikatfiler basert på hash-verdiane deira.',
@@ -3868,6 +3932,7 @@ Du skal ha motteke [{{SERVER}}{{SCRIPTPATH}}/COPYING ein kopi av GNU General Pub
 'htmlform-selectorother-other' => 'Andre',
 'htmlform-no' => 'Nei',
 'htmlform-yes' => 'Ja',
+'htmlform-chosen-placeholder' => 'Vel ein',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 med støtte for fulltekstsøk',
@@ -3886,7 +3951,7 @@ Du skal ha motteke [{{SERVER}}{{SCRIPTPATH}}/COPYING ein kopi av GNU General Pub
 'logentry-suppress-event-legacy' => '$1 {{GENDER:$2|endra}} i løyndom synlegdomen til logghendingar på $3',
 'logentry-suppress-revision-legacy' => '$1 {{GENDER:$2|endra}} i løyndom synlegdomen til versjonar på sida $3',
 'revdelete-content-hid' => 'innhald løynt',
-'revdelete-summary-hid' => 'endringsamandrag gøymt',
+'revdelete-summary-hid' => 'endringsamandrag løynt',
 'revdelete-uname-hid' => 'brukarnamn gøymt',
 'revdelete-content-unhid' => 'innhald gjort synleg',
 'revdelete-summary-unhid' => 'endringssamandrag gjort synleg',
index 3aa00b7..08c1412 100644 (file)
@@ -235,7 +235,6 @@ $messages = array(
 'disclaimers' => 'Hlapa-matsogo',
 'disclaimerpage' => 'Project:Hlapa-Matsogo',
 'edithelp' => 'Thušo ya go fetola',
-'edithelppage' => 'Help:Fetola',
 'helppage' => 'Help:Mateng',
 'mainpage' => 'Letlakala la Pele',
 'mainpage-description' => 'Letlakala la Pele',
@@ -562,7 +561,6 @@ fetola tshenolo',
 'viewprevnext' => 'Lebelela ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-exists' => "'''Go ena le letlaka la leina la \"[[:\$1]]\" go wiki ye.'''",
 'searchmenu-new' => "'''Hlola letlakala \"[[:\$1]]\" go wiki ye!'''",
-'searchhelp-url' => 'Help:Mateng',
 'searchprofile-articles' => 'Matlakala a diteng',
 'searchprofile-project' => 'Thušo le matlaka a diprojeke',
 'searchprofile-images' => 'Diphatlalatši tša "multi"',
@@ -691,7 +689,6 @@ Ga re fane ka e-poso ya gago go bašumiši ba bangwe ge ba polela le wena ka yon
 'recentchangeslinked-feed' => 'Diphetogo tša go tswalana',
 'recentchangeslinked-toolbox' => 'Diphetogo tša go tswalana',
 'recentchangeslinked-title' => 'Diphetogo tša go tswalana le "$1"',
-'recentchangeslinked-noresult' => 'Gago na diphetogo go matlakala a hlomaganya ka sebaka/sekga seo o se kgethilego.',
 'recentchangeslinked-summary' => "Letlakala le le laetša diphetogo tša bjale matlakaleng a go hlomaganya.
 Matlakala ago ba [[Special:Watchlist|lenanong la gago la matlakala ditlhapetšo]]  a '''ngwadilwe ka bogolo'''.",
 'recentchangeslinked-page' => 'Leina la letlakala:',
index 148b3ed..99a1024 100644 (file)
@@ -14,6 +14,7 @@
  * @author Jfblanc
  * @author Kaganer
  * @author McDutchie
+ * @author Nemo bis
  * @author Spacebirdy
  * @author Горан Анђелковић
  * @author לערי ריינהארט
@@ -399,6 +400,18 @@ $messages = array(
 'oct' => "d'oct",
 'nov' => 'de nov',
 'dec' => 'de dec',
+'january-date' => '$1 genièr',
+'february-date' => '$1 febrièr',
+'march-date' => '$1 març',
+'april-date' => '$1 abril',
+'may-date' => '$1 mai',
+'june-date' => '$1 junh',
+'july-date' => '$1 julhet',
+'august-date' => '$1 agost',
+'september-date' => '$1 setembre',
+'october-date' => '$1 octobre',
+'november-date' => '$1 novembre',
+'december-date' => '$1 decembre',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Categoria|Categorias}}',
@@ -480,6 +493,7 @@ $messages = array(
 'create-this-page' => 'Crear aquesta pagina',
 'delete' => 'Suprimir',
 'deletethispage' => 'Suprimir aquesta pagina',
+'undeletethispage' => "Anullar la supression d'aquesta pagina",
 'undelete_short' => 'Restablir {{PLURAL:$1|1 modificacion| $1 modificacions}}',
 'viewdeleted_short' => 'Veire {{PLURAL:$1|una edicion escafada|$1 edicions escafadas}}',
 'protect' => 'Protegir',
@@ -533,7 +547,6 @@ $1",
 'disclaimers' => 'Avertiments',
 'disclaimerpage' => 'Project:Avertiments generals',
 'edithelp' => 'Ajuda',
-'edithelppage' => 'Help:Cossí modificar una pagina',
 'helppage' => 'Help:Acuèlh',
 'mainpage' => 'Acuèlh',
 'mainpage-description' => 'Acuèlh',
@@ -671,17 +684,25 @@ Requèsta : $2',
 'viewyourtext' => "Podètz veire e copiar lo contengut de '''vòstras modificacions''' a aquesta pagina :",
 'protectedinterface' => 'Aquesta pagina provesís de tèxte d’interfàcia pel logicial susaqueste wiki, e es protegida per evitar los abuses.
 Per apondre o modificar de traduccions sus totes los wikis, utilizatz [//translatewiki.net/ translatewiki.net], lo projècte de localizacion de MediaWiki.',
-'editinginterface' => "'''Atencion :''' sètz a editar una pagina utilizada per crear lo tèxte de l’interfàcia del logicial. Los cambiaments se repercutaràn, segon lo contèxte, sus totas o d'unas paginas visiblas pels autres utilizaires. Per las traduccions, vos convidam a utilizar lo projècte MediaWiki d'internacionalizacion dels messatges [//translatewiki.net/wiki/Main_Page?setlang=oc translatewiki.net].",
+'editinginterface' => "'''Atencion :''' sètz a mand de modificar una pagina utilizada per crear lo tèxte de l’interfàcia del logicial. Los cambiaments sus aquesta pagina se repercutaràn sus l'aparéncia de l'interfàcia d'utilizaire pels autres utilizaires d'aqueste wiki. Per apondre o modificar de traduccions per totes los wikis, utilizatz [//translatewiki.net/translatewiki.net], lo projècte MediaWiki d'internacionalizacion dels messatges .",
 'sqlhidden' => '(Requèsta SQL amagada)',
 'cascadeprotected' => "Aquesta pagina es actualament protegida perque es inclusa dins {{PLURAL:$1|la pagina seguenta|las paginas seguentas}}, {{PLURAL:$1|qu'es estada protegida|que son estadas protegidas}} amb l’opcion « proteccion en cascada » activada :
 $2",
 'namespaceprotected' => "Avètz pas la permission de modificar las paginas de l’espaci de noms « '''$1''' ».",
 'customcssprotected' => "Avètz pas la permission d'editar aquesta pagina CSS perque conten de preferéncias d’autres utilizaires.",
 'customjsprotected' => "Avètz pas la permission d'editar aquesta pagina JavaScript perque conten de preferéncias d’autres utilizaires.",
+'mycustomcssprotected' => 'Avètz pas lo drech de modificar aquesta pagina CSS.',
+'mycustomjsprotected' => 'Avètz pas lo drech de modificar aquesta pagina JavaScript.',
 'ns-specialprotected' => 'Las paginas dins l’espaci de noms « {{ns:special}} » pòdon pas èsser modificadas',
 'titleprotected' => "Aqueste títol es estat protegit a la creacion per [[User:$1|$1]].
 Lo motiu avançat es « ''$2'' ».",
+'filereadonlyerror' => "Impossible de modificar lo fichièr « $1 » perque lo repertòri de fichièrs « $2 » es en lectura sola.
+
+L'administrator que l'a varrolhat a provesit aqueste motiu : « $3 ».",
+'invalidtitle-knownnamespace' => "Títol invalid amb l'espaci de noms « $2 » e l'intitulat « $3 »",
+'invalidtitle-unknownnamespace' => "Títol invalid amb lo numèro d'espaci de noms $1 e l'intitulat « $2 » desconeguts",
 'exception-nologin' => 'Pas connectat',
+'exception-nologin-text' => "Aquesta pagina o aquesta accion necessita d'èsser connectada sus aqueste wiki.",
 
 # Virus scanner
 'virus-badscanner' => "Marrida configuracion : escaner de virús desconegut : ''$1''",
@@ -697,9 +718,18 @@ Notatz que d'unas paginas pòdon èsser encara afichadas coma s'eratz encara con
 'welcomecreation-msg' => "Vòstre compte d'utilizaire es estat creat.
 Doblidetz pas de modificar [[Special:Preferences|vòstras preferéncias per {{SITENAME}}]].",
 'yourname' => "Nom d'utilizaire :",
+'userlogin-yourname' => "Nom d'utilizaire",
+'userlogin-yourname-ph' => "Picatz vòstre nom d'utilizaire",
 'yourpassword' => 'Vòstre senhal :',
+'userlogin-yourpassword' => 'Senhal',
+'userlogin-yourpassword-ph' => 'Picatz vòstre senhal',
+'createacct-yourpassword-ph' => 'Picatz un senhal',
 'yourpasswordagain' => 'Confirmar lo senhal :',
+'createacct-yourpasswordagain' => 'Confirmatz lo senhal',
+'createacct-yourpasswordagain-ph' => 'Entratz lo senhal tornarmai',
 'remembermypassword' => 'Me reconnectar automaticament a las visitas venentas (al maximum $1 {{PLURAL:$1|jorn|jorns}})',
+'userlogin-remembermypassword' => 'Gardar ma sesilha activa',
+'userlogin-signwithsecure' => 'Utilizar una connexion securizada',
 'securelogin-stick-https' => 'Demorar connectat en HTTPS aprèp la connexion',
 'yourdomainname' => 'Vòstre domeni',
 'password-change-forbidden' => 'Podètz pas modificar los senhals sus aqueste wiki.',
@@ -712,21 +742,43 @@ Doblidetz pas de modificar [[Special:Preferences|vòstras preferéncias per {{SI
 'logout' => 'Se desconnectar',
 'userlogout' => 'Desconnexion',
 'notloggedin' => 'Vos sètz pas identificat(ada)',
+'userlogin-noaccount' => 'Avètz pas de compte ?',
+'userlogin-joinproject' => 'Rejonhètz {{SITENAME}}',
 'nologin' => "Avètz pas un compte ? '''$1'''.",
 'nologinlink' => 'Creatz un compte',
 'createaccount' => 'Crear un compte novèl',
 'gotaccount' => "Ja avètz un compte ? '''$1'''.",
 'gotaccountlink' => 'Identificatz-vos',
 'userlogin-resetlink' => 'Avètz doblidat vòstres detalhs de connexion ?',
+'userlogin-resetpassword-link' => 'Reïnicializar lo senhal',
+'helplogin-url' => 'Help:Connexion',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Ajuda a la connexion]]',
+'createacct-join' => 'Entratz vòstras informacions çaijós.',
+'createacct-emailrequired' => 'Adreça electronica',
+'createacct-emailoptional' => 'Adreça de corrièr electronic (facultativa)',
+'createacct-email-ph' => 'Entratz vòstra adreça de corrièr electronic',
 'createaccountmail' => 'Utilizar un senhal aleatòri temporari e lo mandar a l’adreça de corrièl especificada çaijós',
+'createacct-realname' => 'Nom vertadièr (facultatiu)',
 'createaccountreason' => 'Motiu :',
+'createacct-reason' => 'Motiu',
+'createacct-reason-ph' => 'Perqué creatz un autre compte',
+'createacct-captcha' => 'Contraròtle de seguretat',
+'createacct-imgcaptcha-ph' => 'Entratz lo tèxte que vesètz çaisús',
+'createacct-submit' => 'Creatz vòstre compte',
+'createacct-benefit-heading' => '{{SITENAME}} es escrich per de monde coma vos.',
+'createacct-benefit-body1' => '{{PLURAL:$1|cambiament|cambiaments}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|pagina|paginas}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|contributor recent|contributors recents}}',
 'badretype' => "Los senhals qu'avètz picats son pas identics.",
 'userexists' => "Lo nom d'utilizaire qu'avètz picat ja es utilizat.
 Causissètz-ne un autre.",
 'loginerror' => "Error d'identificacion",
+'createacct-error' => 'Error al moment de la creacion del compte',
 'createaccounterror' => 'Impossible de crear lo compte : $1',
 'nocookiesnew' => "Lo compte d'utilizaire es estat creat, mas sètz pas connectat. {{SITENAME}} utiliza de cookies per la connexion mas los avètz desactivats. Activatz-los e reconnectatz-vos amb lo meteis nom e lo meteis senhal.",
 'nocookieslogin' => '{{SITENAME}} utiliza de cookies per la connexion mas avètz los cookies desactivats. Activatz-los e reconnectatz-vos.',
+'nocookiesfornew' => "Lo compte d'utilizaire es pas estat creat, perque avèm pas pogut identificar son origina.
+Verificatz qu'avètz activat los cookies, recargatz la pagina e tornatz ensajar.",
 'noname' => "Avètz pas picat de nom d'utilizaire valid.",
 'loginsuccesstitle' => 'Identificacion capitada.',
 'loginsuccess' => 'Sètz actualament connectat(ada) sus {{SITENAME}} en tant que « $1 ».',
@@ -759,7 +811,7 @@ Identificatz-vos tre que l'aurètz recebut.",
 'blocked-mailpassword' => 'Vòstra adreça IP es blocada en edicion, la foncion de rapèl del senhal es doncas desactivada per evitar los abuses.',
 'eauthentsent' => 'Un corrièr de confirmacion es estat mandat a l’adreça indicada.
 Abans qu’un autre corrièr sià mandat a aqueste compte, vos caldrà seguir las instruccions donadas dins lo messatge per confirmar que sètz plan lo titular.',
-'throttled-mailpassword' => 'Un corrièr electronic de rapèl de vòstre senhal ja es estat mandat durant {{PLURAL:$1|la darrièra ora|las $1 darrièras oras}}. Per evitar los abuses, un sol corrièr de rapèl serà mandat per {{PLURAL:$1|ora|interval de $1 oras}}.',
+'throttled-mailpassword' => 'Un corrièr electronic de reïnicializacion de vòstre senhal es ja estat mandat durant {{PLURAL:$1|la darrièra ora|las $1 darrièras oras}}. Per evitar los abuses, un sol corrièr de reïnicializacion de vòstre senhal serà pas mandat per {{PLURAL:$1|ora|interval de $1 oras}}.',
 'mailerror' => 'Error en mandant lo corrièr electronic : $1',
 'acct_creation_throttle_hit' => "De visitors d'aqueste wiki qu'utilizan vòstra adreça IP an creat $1 {{PLURAL:$1|compte|comptes}} lo jorn darrièr, aquò es lo limit maximum autorizat pendent aqueste periòde.
 Atal los visitors qu'utilizan aquesta adreça IP pòdon pas crear mai de compte novèl pel moment.",
@@ -769,9 +821,10 @@ Atal los visitors qu'utilizan aquesta adreça IP pòdon pas crear mai de compte
 'emailconfirmlink' => 'Confirmatz vòstra adreça de corrièr electronic',
 'invalidemailaddress' => "Aquesta adreça de corrièr electronic pòt pas èsser acceptada perque sembla qu'a un format incorrècte.
 Picatz una adreça plan formatada o daissatz aqueste camp void.",
+'cannotchangeemail' => 'Las adreças de corrièr electronic dels comptes pòdon pas èsser modificadas sus aqueste wiki.',
 'emaildisabled' => 'Aqueste site pòt pas mandar de corrièls.',
 'accountcreated' => 'Compte creat.',
-'accountcreatedtext' => "Lo compte d'utilizaire de $1 es estat creat.",
+'accountcreatedtext' => "Lo compte d'utilizaire per [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|discussion]]) es estat creat.",
 'createaccount-title' => "Creacion d'un compte per {{SITENAME}}",
 'createaccount-text' => "Qualqu'un a creat un compte per vòstra adreça de corrièr electronic sus {{SITENAME}} ($4) intitolat « $2 », amb per senhal « $3 ». Deuriaz dobrir una sessilha e cambiar, tre ara, aqueste senhal.
 
@@ -785,6 +838,8 @@ Esperatz abans d’ensajar tornamai.',
 
 # Email sending
 'php-mail-error-unknown' => 'Error desconeguda dins la foncion mail() de PHP.',
+'user-mail-no-addy' => 'Ensajat de mandar un corrièr electronic sens adreça',
+'user-mail-no-body' => "Ensag de mandadís d'un corrièr electronic amb un còs void o desrasonablament cort.",
 
 # Change password dialog
 'resetpass' => 'Cambiar lo senhal del compte',
@@ -803,25 +858,46 @@ Esperatz abans d’ensajar tornamai.',
 'resetpass-wrong-oldpass' => 'Senhal actual o temporari invalid.
 Benlèu ja avètz modificat vòstre senhal o demandat un senhal temporari novèl.',
 'resetpass-temp-password' => 'Senhal temporari :',
+'resetpass-abort-generic' => 'La modificacion del senhal es estada anulada per una extension.',
 
 # Special:PasswordReset
 'passwordreset' => 'Remesa a zèro del senhal',
+'passwordreset-text-one' => 'Emplenatz aqueste formulari per reïnicializar vòstre senhal.',
+'passwordreset-text-many' => "{{PLURAL:$1|Completatz un d'aqueles camps per reïnicializar vòstre senhal.}}",
 'passwordreset-legend' => 'Reïnicializar lo senhal',
+'passwordreset-disabled' => 'La reïnicializacion dels senhals es estada desactivada sus aqueste wiki.',
+'passwordreset-emaildisabled' => 'Las foncionalitats e-mail son estadas desactivadas sus aqueste wiki.',
 'passwordreset-username' => "Nom d'utilizaire :",
 'passwordreset-domain' => 'Domeni:',
 'passwordreset-capture' => 'Veire lo corrièl resultant ?',
+'passwordreset-capture-help' => "Se marcatz aquesta casa, lo corrièr electronic (amb lo senhal temporari) vos serà afichat al meteis temps que serà mandat a l'utilizaire.",
 'passwordreset-email' => 'Adreça de corrièr electronic :',
 '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 :
+
+$2
+
+{{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 :
+
+$2
+
+{{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
 Senhal temporari: $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",
 
 # Special:ChangeEmail
 'changeemail' => "Cambiar l'adreça electronica:",
 'changeemail-header' => "Cambiar l'adreça electronica del compte",
+'changeemail-text' => 'Emplenatz aqueste formulari per cambiar vòstra adreça de corrièr electronic. Vos cal entrar vòstre senhal per confirmar aqueste cambiament.',
 'changeemail-no-info' => 'Vos cal èsser connectat per aver accès a aquesta pagina.',
 'changeemail-oldemail' => 'Adreça electronica actuala:',
 'changeemail-newemail' => 'Novela adreça electronica:',
 'changeemail-none' => '(pas cap)',
+'changeemail-password' => 'Vòstre senhal sus {{SITENAME}} :',
 'changeemail-submit' => "Cambiar l'adreça electronica:",
 'changeemail-cancel' => 'Anullar',
 
@@ -917,11 +993,19 @@ o [{{fullurl:{{FULLPAGENAME}}|action=edit}} crear aquesta pagina]</span>.',
 'noarticletext-nopermission' => 'Actualament i a pas cap de tèxte dins aquesta pagina.
 Podètz [[Special:Search/{{PAGENAME}}|far una recèrca sul títol de la pagina]] dins las autras paginas,
 o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} recercar dins los jornals associats]</span>.',
+'missing-revision' => "La rrvision n° $1 de la pagina intitulada « {{PAGENAME}} » existís pas.
+
+Aquò se produsís en general en seguent un ligam istoric obsolèt cap a una pagina qu'es estada suprimida.
+Podètz trobar mai de detalhs dins lo [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} jornal de las supressions].",
 'userpage-userdoesnotexist' => "Lo compte d'utilizaire « <nowiki>$1</nowiki> » es pas enregistrat. Indicatz se volètz crear o editar aquesta pagina.",
 'userpage-userdoesnotexist-view' => "Lo compte d'utilizaire « $1 » es pas enregistrat.",
 'blocked-notice-logextract' => 'Aqueste utilizaire es actualament blocat.
 La darrièra entrada del jornal dels blocatges es indicada çaijós a títol d’informacion :',
-'clearyourcache' => "'''Nòta :''' Aprèp aver publicat la pagina, vos cal forçar son recargament complet tot ignorant lo contengut actual de l'amagatal de vòstre navigador per veire los cambiaments : '''Mozilla / Firefox / Konqueror / Safari :''' mantenètz la tòca ''Majuscula'' (''Shift'') en clicant lo boton ''Actualizar'' (''Reload,'') o quichatz sus ''Maj-Ctrl-R'' (''Maj-Cmd-R'' sus Apple) ; '''Internet Explorer / Opera :''' mantenètz la tòca ''Ctrl'' en clicant lo boton ''Actualizar'' o quichatz sus ''Ctrl-F5''.",
+'clearyourcache' => "'''Nòta :''' Aprèp aver enregistrat vòstras modificacions, es possible que vos calga forçar lo recargament complet de l'escondedor de vòstre navigador per veire los cambiaments : 
+*'''Firefox / Safari :''' mantenètz la tòca ''Majuscula'' (''Shift'') en clicant lo boton ''Actualizar'' (''Reload,'') o quichatz sus ''Ctrl-F5'' o ''Ctrl-R''  (''⌘-R'' sus un Mac)
+* '''Google Chrome:''' Quichatz sus ''Ctrl-Shift-R'' (''⌘-Shift-R'' sus un Mac) 
+* '''Internet Explorer:''' Mantenètz la tòca ''Ctrl'' en clicant sul boton ''Actualizar'', o quichatz ''Ctrl-F5'' 
+* '''Opera:''' Voidatz l'escondedor dins ''Aisinas → Preferéncias''",
 'usercssyoucanpreview' => "'''Astúcia :''' Utilizatz lo boton 'Previsualizacion' per testar vòstre fuèlh css/js novèl abans de l'enregistrar.",
 'userjsyoucanpreview' => "'''Astúcia :''' Utilizatz lo boton 'Previsualizacion' per testar vòstre fuèlh css/js novèl abans de l'enregistrar.",
 'usercsspreview' => "'''Remembratz-vos que sètz a previsualizar vòstre pròpri fuèlh CSS !'''
@@ -986,7 +1070,7 @@ Podètz tonar en rèire e modificar una pagina existenta, [[Special:UserLogin|vo
 'nocreate-loggedin' => 'Avètz pas la permission de crear de paginas novèlas.',
 'sectioneditnotsupported-title' => 'Modificacion de seccion pas presa en carga',
 'sectioneditnotsupported-text' => "La modificacion d'una seccion es pas suportada dins aquesta pagina de modificacion.",
-'permissionserrors' => 'Error de permissions',
+'permissionserrors' => 'Error de permission',
 'permissionserrorstext' => 'Avètz pas la permission d’efectuar l’operacion demandada per {{PLURAL:$1|la rason seguenta|las rasons seguentas}} :',
 'permissionserrorstext-withaction' => 'Sètz pas autorizat(ada) a $2, per {{PLURAL:$1|la rason seguenta|las rasons seguentas}} :',
 'recreate-moveddeleted-warn' => "'''Atencion : sètz a tornar crear una pagina qu'es estada suprimida precedentament.'''
@@ -1002,11 +1086,14 @@ Cap d'explicacion pas balhada.",
 Sembla que siá estada suprimida.',
 'edit-conflict' => 'Modificar lo conflicte.',
 'edit-no-change' => 'Vòstra modificacion es estada ignorada perque cap de cambiament es pas estat fach dins lo tèxte.',
+'postedit-confirmation' => 'Vòstra modificacion es estada salvada.',
 'edit-already-exists' => 'La pagina novèla a pogut èsser creada .
 Existís ja.',
 'defaultmessagetext' => 'Messatge per defaut',
-'editwarning-warning' => "Quitar aquesta pagina vos farà pèrdre totas las modificacions qu'avètz fachas.
-Se sètz connectat amb vòstre compte, podètz levar aqueste avertiment dins la seccion {{int:prefs-editing}} de vòstras preferéncias.",
+'content-failed-to-parse' => "Fracàs de l'analisi del contengut de $2 pel modèl $1: $3",
+'invalid-content-data' => 'Donadas del contengut invalidas',
+'content-not-allowed-here' => 'Lo contengut "$1" es pas autorizat sus la pagina [[$2]]',
+'editwarning-warning' => "Quitar aquesta pagina vos farà pèrdre totas las modificacions qu'avètz fachas. Se sètz connectat amb vòstre compte, podètz levar aqueste avertiment dins la seccion « Modificacion » de vòstras preferéncias.",
 
 # Content models
 'content-model-wikitext' => 'wikitèxte',
@@ -1027,12 +1114,20 @@ D'unas inclusions seràn pas efectuadas.",
 'parser-template-loop-warning' => 'Modèl en bocla detectat : [[$1]]',
 'parser-template-recursion-depth-warning' => 'Limit de longor de la recursion del modèl depassat ($1)',
 'language-converter-depth-warning' => 'Limit de prigondor del convertissor de lenga depassada ($1)',
+'node-count-exceeded-category' => 'Paginas ont nombre de nosèls es depassat',
+'node-count-exceeded-warning' => 'Pagina depassant lo nombre de nosèls',
+'expansion-depth-exceeded-category' => "Paginas ont la prigondor d'espandiment es depassada",
+'expansion-depth-exceeded-warning' => "Pagina depassant la prigondor d'espandiment",
+'parser-unstrip-loop-warning' => 'Bocla pas desmontabla detectada',
+'parser-unstrip-recursion-limit' => 'Limit de recursion pas desmontable depassat ($1)',
+'converter-manual-rule-error' => 'Error detectada dins la règla manuala de conversion de lenga',
 
 # "Undo" feature
 'undo-success' => "Aquesta modificacion va èsser desfacha. Confirmatz los cambiaments (visibles en bas d'aquesta pagina), puèi salvatz se sètz d’acòrdi. Mercés de motivar l’anullacion dins la bóstia de resumit.",
 'undo-failure' => 'Aquesta modificacion a pas pogut èsser desfacha a causa de conflictes amb de modificacions intermediàrias.',
 'undo-norev' => 'La modificacion a pas pogut èsser desfacha perque siá es inexistenta siá es estada suprimida.',
 'undo-summary' => 'Anullacion de las modificacions $1 de [[Special:Contributions/$2|$2]] ([[User talk:$2|discutir]] | [[Special:Contributions/$2|{{MediaWiki:Contribslink}}]])',
+'undo-summary-username-hidden' => 'Anullar la revision $1 per un utilizaire amagat',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Podètz pas crear de compte.',
@@ -1086,22 +1181,22 @@ Coma administrator, podètz encara [$1 veire aquesta version] s'o volètz.",
 I pòt aver mai de detalhs dins [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} lo jornal de las supressions].
 Coma administrator, podètz encara [$1 veire aquesta version] s'o volètz.",
 'rev-deleted-text-view' => "Aquesta version de la pagina es estada '''escafada'''.
-En tant qu’administrator, la podètz visualizar ; i pòt aver de detalhs dins lo [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} jornal dels escafaments].",
+La podètz visualizar ; de detalhs son disponibles dins lo [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} jornal dels escafaments].",
 'rev-suppressed-text-view' => "Aquesta version de la pagina es estada '''suprimida'''.
-En tant qu’administrator, la podètz visualizar ; i pòt aver de detalhs dins lo [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} jornal de las supressions].",
+La podètz visualizar ; de detalhs son disponibles dins lo [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} jornal de las supressions].",
 'rev-deleted-no-diff' => "Podètz pas veire aquesta dif per que una de las versions es estada '''escafada'''.
 I pòt aver mai de detalhs dins lo [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} jornal dels escafaments].",
 'rev-suppressed-no-diff' => "Pod�tz pas veire aquesta difer�ncia perque una de las revisions es estada '''suprimida'''.",
 'rev-deleted-unhide-diff' => "Una de las revisions d'aquesta diferéncia es estada '''escafada'''.
-I pòt aver mai de detalhs dins lo [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} jornal dels escafaments].
-En tant qu'administrator, podètz encara [$1 veire aquesta diferéncia] se volètz.",
+De detalhs son disponibles dins lo [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} jornal dels escafaments].
+Podètz totjorn [$1 veire aquesta diferéncia] se lo volètz.",
 'rev-suppressed-unhide-diff' => "Una de las revisions d'aqueste diff es estada '''suprimida'''.
-I pòt aver de detalhs dins lo [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} jornal de las supressions].
-En tant qu'administrator, podètz totjorn [$1 veire aqueste diff] se volètz contunhar.",
+De detalhs son disponibles dins lo [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} jornal de las supressions].
+Podètz totjorn [$1 veire aqueste diff] se volètz contunhar.",
 'rev-deleted-diff-view' => "Una de las revisions d'aquesta diff es estada '''suprimida'''.
-En tant qu'administrator podètz veire aquesta diff ; i pòt aver mai de detalhs dins lo [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} jornal de las supressions].",
+Podètz veire aquesta diff ; i pòt aver mai de detalhs dins lo [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} jornal de las supressions].",
 'rev-suppressed-diff-view' => "Una de las revisions d'aquesta diff es estada '''escafada'''.
-En tant qu'administrator podètz veire aquesta diff ; i pòt aver mai de detalhs dins lo [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} jornal dels escafaments].",
+Podètz veire aquesta diff ; i pòt aver mai de detalhs dins lo [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} jornal dels escafaments].",
 'rev-delundel' => 'afichar/amagar',
 'rev-showdeleted' => 'afichar',
 'revisiondelete' => 'Suprimir/Restablir de versions',
@@ -1160,7 +1255,9 @@ Verificatz los jornals.",
 'revdelete-only-restricted' => "Error al moment de la supression de l'entrada datada del $1 a $2 : podètz pas suprimir aqueles elements als administrators sens seleccionar tanben d'opcions de supression mai.",
 'revdelete-reason-dropdown' => "* Rasons correntas de supression
 ** Violacion dels dreches d'autors
-** Entresenhas personalas inapropriadas",
+** Entresenhas personalas inapropriadas
+** Nom d'utilizaire inapropriat
+** Informacions potencialament difamatòrias.",
 'revdelete-otherreason' => 'Autra rason / rason suplementària :',
 'revdelete-reasonotherlist' => 'Autra rason',
 'revdelete-edit-reasonlist' => 'Modifica los motius de la supression',
@@ -1168,7 +1265,7 @@ Verificatz los jornals.",
 
 # Suppression log
 'suppressionlog' => 'Jornal de las supressions',
-'suppressionlogtext' => 'Çaijós, se tròba la tièra de las supressions e dels blocatges que comprenon las revisions amagadas als administrators. Vejatz [[Special:IPBlockList|la lista dels blocatges de las IP]] per la lista dels fòrabandiments e dels blocatges operacionals.',
+'suppressionlogtext' => 'Çaijós, se tròba la lista de las supressions e dels blocatges que comprenon las revisions amagadas als administrators. Vejatz [[Special:BlockList|la lista dels blocatges de las IP]] per la lista dels fòrabandiments e dels blocatges operacionals.',
 
 # History merging
 'mergehistory' => "Fusion dels istorics d'una pagina",
@@ -1201,6 +1298,8 @@ Asseguratz-vos qu'aqueste cambiament pòsca conservar la continuitat de l'istori
 
 # Diffs
 'history-title' => '$1 : Istoric de las versions',
+'difference-title' => '$1 : Diferéncia entre versions',
+'difference-title-multipage' => 'Diferéncias entre las paginas « $1 » e « $2 »',
 'difference-multipage' => '(Diferéncias entre las paginas)',
 'lineno' => 'Linha $1 :',
 'compareselectedversions' => 'Comparar las versions seleccionadas',
@@ -1229,7 +1328,6 @@ Asseguratz-vos qu'aqueste cambiament pòsca conservar la continuitat de l'istori
 'searchmenu-legend' => 'Opcions de recèrca',
 'searchmenu-exists' => "* Pagina '''[[$1]]'''",
 'searchmenu-new' => "'''Crear la pagina ''[[:$1|$1]]'' sus aqueste wiki !'''",
-'searchhelp-url' => 'Help:Acuèlh',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Recercar las paginas amb aqueste prefix]]',
 'searchprofile-articles' => 'Paginas de contengut',
 'searchprofile-project' => "Paginas d'ajuda e del projècte",
@@ -1251,7 +1349,7 @@ Asseguratz-vos qu'aqueste cambiament pòsca conservar la continuitat de l'istori
 'search-interwiki-default' => '$1 resultats :',
 'search-interwiki-more' => '(mai)',
 'search-relatedarticle' => 'Relatat',
-'mwsuggest-disable' => 'Desactivar las suggestions AJAX',
+'mwsuggest-disable' => 'Desactivar las suggestions de recèrca',
 'searcheverything-enable' => 'Recercar dins totes los espacis de noms',
 'searchrelated' => 'relatat',
 'searchall' => 'Totes',
@@ -1273,6 +1371,7 @@ Ensajatz en utilizant lo prefix ''all:'' per recercar tot lo contengut (tot incl
 'searchdisabled' => 'La recèrca sus {{SITENAME}} es desactivada.
 En esperant la reactivacion, podètz efectuar una recèrca via Google.
 Atencion, lor indexacion de contengut {{SITENAME}} benlèu es pas a jorn.',
+'search-error' => "Una error s'es producha en recercant : $1",
 
 # Preferences page
 'preferences' => 'Preferéncias',
@@ -1306,7 +1405,6 @@ Atencion, lor indexacion de contengut {{SITENAME}} benlèu es pas a jorn.',
 'resetprefs' => 'Restablir las preferéncias',
 'restoreprefs' => 'Restablir totas las valors per defaut',
 'prefs-editing' => 'Fenèstra de modificacion',
-'prefs-edit-boxsize' => 'Talha de la fenèstra de modificacion.',
 'rows' => 'Rengadas :',
 'columns' => 'Colomnas :',
 'searchresultshead' => 'Recèrca',
@@ -1317,9 +1415,6 @@ Atencion, lor indexacion de contengut {{SITENAME}} benlèu es pas a jorn.',
 'recentchangesdays-max' => '(maximum $1 {{PLURAL:$1|jorn|jorns}})',
 'recentchangescount' => "Nombre de modificacions d'afichar per defaut :",
 'prefs-help-recentchangescount' => 'Aquò inclutz las modificacions recentas, las paginas d’istorics e los jornals.',
-'prefs-help-watchlist-token' => 'Emplenar aquò amb una valor secreta generarà un flux RSS per vòstra lista de seguiment.
-Tota persona que coneis aqueste geton poirà legir vòstra lista de seguiment, causissètz doncas una valor securizada.
-Vaquí una valor generada aleatòriament que podètz utilizar : $1',
 'savedprefs' => 'Las preferéncias son estadas salvadas.',
 'timezonelegend' => 'Fus orari :',
 'localtime' => 'Ora locala :',
@@ -1349,7 +1444,6 @@ Vaquí una valor generada aleatòriament que podètz utilizar : $1',
 'prefs-common-css-js' => 'JavaScript e CSS partejat per totes los abilhatges :',
 'prefs-reset-intro' => 'Podètz utilizar aquesta pagina per restablir vòstras preferéncias a las valors per defaut del site. Aquò pòt pas èsser desfach.',
 'prefs-emailconfirm-label' => 'Confirmacion del corrièr electronic :',
-'prefs-textboxsize' => 'Talha de la fenèstra de modificacion',
 'youremail' => 'Adreça de corrièr electronic :',
 'username' => "{{GENDER:$1|Nom d'utilizaire|Nom d'utilizaira}}:",
 'uid' => "Numèro d'{{GENDER:$1|utilizaire|utilizaira}}:",
@@ -1379,7 +1473,9 @@ Tanben podètz causir de permetre a d’autres de vos contactar per vòstra pagi
 'prefs-signature' => 'Signatura',
 'prefs-dateformat' => 'Format de las datas',
 'prefs-timeoffset' => 'Descalatge orari',
-'prefs-advancedediting' => 'Opcions avançadas',
+'prefs-advancedediting' => 'General',
+'prefs-editor' => 'Editor',
+'prefs-preview' => 'Apercebut',
 'prefs-advancedrc' => 'Opcions avançadas',
 'prefs-advancedrendering' => 'Opcions avançadas',
 'prefs-advancedsearchoptions' => 'Opcions avançadas',
@@ -1398,7 +1494,7 @@ Tanben podètz causir de permetre a d’autres de vos contactar per vòstra pagi
 'userrights-lookup-user' => "Gestion dels dreches d'utilizaire",
 'userrights-user-editname' => 'Entrar un nom d’utilizaire :',
 'editusergroup' => "Modificacion dels gropes d'utilizaires",
-'editinguser' => "Cambiament dels dreches de l'utilizaire '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]]{{int:pipe-separator}}[[Special:Contributions/$1|{{int:contribslink}}]])",
+'editinguser' => "Modificacion dels dreches de l'{{GENDER:$1|utilizaire|utilizaire}} '''[[User:$1|$1]]''' $2",
 'userrights-editusergroup' => 'Modificar los gropes de l’utilizaire',
 'saveusergroups' => "Salvar los gropes d'utilizaires",
 'userrights-groupsmember' => 'Membre de :',
@@ -1483,6 +1579,9 @@ Tanben podètz causir de permetre a d’autres de vos contactar per vòstra pagi
 'right-editusercssjs' => "Modificar los fichièrs CSS e JS d'autres utilizaires",
 'right-editusercss' => "Modificar los fichièrs CSS d'autres utilizaires",
 'right-edituserjs' => "Modificar los fichièrs JS d'autres utilizaires",
+'right-editmyusercss' => 'Modificar vòstres pròpris fichièrs CSS utilizaire',
+'right-editmyuserjs' => 'Modificar vòstres pròpris fichièrs JavaScript utilizaire',
+'right-viewmywatchlist' => 'Afichar vòstra pròpria lista de seguiment',
 'right-rollback' => "Revocacion rapida del darrièr utilizaire qu'a modificat una pagina particulara",
 'right-markbotedits' => 'Marcar los cambiaments revocats coma de cambiaments que son estats fachs per de robòts',
 'right-noratelimit' => 'Pas afectat pels limits de taus',
@@ -1498,7 +1597,7 @@ Tanben podètz causir de permetre a d’autres de vos contactar per vòstra pagi
 'right-siteadmin' => 'Varrolhar e desvarrolhar la banca de donadas',
 'right-override-export-depth' => 'Exportar las paginas en incluent las paginas ligadas fins a una prigondor de 5 nivèls',
 'right-sendemail' => 'Mandar un corrièl als autres utilizaires',
-'right-passwordreset' => 'Tòrna inicializar lo senhal d’un utilizaire ([[Special:PasswordReset|pagina especiala]])',
+'right-passwordreset' => 'Veire los corrièrs electronics de reïnicializacion dels senhals',
 
 # Special:Log/newusers
 'newuserlogpage' => 'Istoric de las creacions de comptes',
@@ -1543,6 +1642,8 @@ Tanben podètz causir de permetre a d’autres de vos contactar per vòstra pagi
 'action-userrights-interwiki' => 'modificar los dreches d’utilizaire e los sus d’autres wikis',
 'action-siteadmin' => 'varrolhar o desvarrolhar la banca de donadas',
 'action-sendemail' => 'mandar corrièrs electronics',
+'action-editmywatchlist' => 'modificar vòstra lista de seguiment',
+'action-viewmywatchlist' => 'afichar vòstra pròpria lista de seguiment',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|cambiament|cambiaments}}',
@@ -1574,16 +1675,17 @@ Tanben podètz causir de permetre a d’autres de vos contactar per vòstra pagi
 'number_of_watching_users_pageview' => '[$1 {{PLURAL:$1|utilizaire seguent|utilizaires seguents}}]',
 'rc_categories' => 'Limit de las categorias (separacion amb « | »)',
 'rc_categories_any' => 'Totas',
+'rc-change-size-new' => '$1 {{PLURAL:$1|octet|octets}} aprèp cambiament',
 'newsectionsummary' => '/* $1 */ seccion novèla',
 'rc-enhanced-expand' => 'Vejatz los detalhs (necessita JavaScript)',
 'rc-enhanced-hide' => 'Amagar los detalhs',
+'rc-old-title' => 'creat amb lo títol « $1 »',
 
 # Recent changes linked
 'recentchangeslinked' => 'Seguit dels ligams',
 'recentchangeslinked-feed' => 'Seguit dels ligams',
 'recentchangeslinked-toolbox' => 'Seguit dels ligams',
 'recentchangeslinked-title' => 'Seguit dels ligams associats a "$1"',
-'recentchangeslinked-noresult' => 'Cap de cambiament sus las paginas ligadas pendent lo periòde causit.',
 'recentchangeslinked-summary' => "Aquesta pagina especiala fa veire los darrièrs cambiaments sus las paginas que son ligadas. Las paginas de [[Special:Watchlist|vòstra tièra de seguit]] son '''en gras'''.",
 'recentchangeslinked-page' => 'Nom de la pagina :',
 'recentchangeslinked-to' => 'Afichar los cambiaments cap a las paginas ligadas al luòc de la pagina donada',
@@ -1594,8 +1696,7 @@ Tanben podètz causir de permetre a d’autres de vos contactar per vòstra pagi
 'reuploaddesc' => 'Anullar lo cargament e tornar al formulari.',
 'upload-tryagain' => 'Mandar la descripcion del fichièr modificada',
 'uploadnologin' => 'Vos sètz pas identificat(ada)',
-'uploadnologintext' => 'Vos cal èsser [[Special:UserLogin|connectat(ada)]]
-per copiar de fichièrs sul servidor.',
+'uploadnologintext' => 'Vos cal $1 per importar de fichièrs.',
 'upload_directory_missing' => 'Lo repertòri d’impòrt ($1) es mancant e a pas pogut èsser creat pel servidor web.',
 'upload_directory_read_only' => 'Lo servidor Web pòt escriure dins lo dorsièr cibla ($1).',
 'uploaderror' => 'Error',
@@ -1603,7 +1704,7 @@ per copiar de fichièrs sul servidor.',
 
 Lo jornal de las supressions e lo dels desplaçaments d'aquesta pagina son afichats aicí per informacion :",
 'uploadtext' => "Utilizatz lo formulari çaijós per importar de fichièrs sul servidor.
-Per veire o recercar d'imatges mandats precedentament, consultatz [[Special:FileList|la tièra dels imatges]]. Las còpias e las supressions tanben son enregistradas dins l'[[Special:Log/upload|istoric dels impòrts]], las supressions dins l’[[Special:Log/delete|istoric de las supressions]].
+Per veire o recercar d'imatges mandats precedentament, consultatz [[Special:FileList|la lista dels imatges]]. Las còpias e las supressions tanben son enregistradas dins l'[[Special:Log/upload|istoric dels impòrts]], las supressions dins l’[[Special:Log/delete|istoric de las supressions]].
 
 Per inclure un imatge dins una pagina, utilizatz un ligam de la forma
 * '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:fichièr.jpg]]</nowiki></code>''',
@@ -1614,7 +1715,7 @@ Per inclure un imatge dins una pagina, utilizatz un ligam de la forma
 'upload-prohibited' => 'Formats de fichièrs interdiches : $1.',
 'uploadlog' => 'Istoric de las importacions',
 'uploadlogpage' => 'Istoric de las importacions de fichièrs multimèdia',
-'uploadlogpagetext' => 'Vaquí la tièra dels darrièrs fichièrs copiats sul servidor.
+'uploadlogpagetext' => 'Aquí la lista dels darrièrs fichièrs copiats sul servidor.
 Vejatz la [[Special:NewFiles|galariá dels imatges novèls]] per una presentacion mai visuala.',
 'filename' => 'Nom del fichièr',
 'filedesc' => 'Descripcion',
@@ -1627,14 +1728,15 @@ Vejatz la [[Special:NewFiles|galariá dels imatges novèls]] per una presentacio
 'ignorewarnings' => 'Ignorar los avertiments al moment de l’impòrt',
 'minlength1' => 'Los noms de fichièrs devon comprendre almens una letra.',
 'illegalfilename' => 'Lo nom de fichièr « $1 » conten de caractèrs interdiches dins los títols de paginas. Mercé de lo tornar nomenar e de lo copiar tornarmai.',
+'filename-toolong' => 'Lo nom del fichièr pòt pas depassar 240 octets.',
 'badfilename' => "L'imatge es estat renomenat « $1 ».",
-'filetype-mime-mismatch' => 'L’extension del fichier correspond pas al tipe MIME.',
+'filetype-mime-mismatch' => "L'extension del fichièr « .$1 » correspond pas al tipe MIME detectat del fichièr ($2).",
 'filetype-badmime' => 'Los fichièrs del tipe MIME « $1 » pòdon pas èsser importats.',
 'filetype-bad-ie-mime' => 'Lo fichièr pòt pas èsser importat perque serià detectat coma « $1 » per Internet Explorer, tipe de fichièr interdich perque potencialament dangierós.',
 'filetype-unwanted-type' => "«.$1»''' es un format de fichièr pas desirat.
 {{PLURAL:$3|Lo tipe de fichièr preconizat es|Los tipes de fichièrs preconizats son}} $2.",
-'filetype-banned-type' => "'''\".\$1\"''' es dins un format pas admes.
-{{PLURAL:\$3|Lo qu'es acceptat es|Los que son acceptats son}} \$2.",
+'filetype-banned-type' => "''' « .$1 » '''{{PLURAL:$4|est pas un tipe de fichièr autorizat|son pas de tipes de fichièrs autorizats}}. 
+{{PLURAL:$3|lo tipe de fichièr autorizat es |los tipes de fichièrs autorizats son}} $2.",
 'filetype-missing' => "Lo fichièr a pas cap d'extension (coma « .jpg » per exemple).",
 'empty-file' => "Lo fichièr qu'avètz somés èra void.",
 'file-too-large' => "Lo fichièr qu'avètz somés èra tròp grand.",
@@ -1709,7 +1811,7 @@ MGP # Pentax
 PICT # misc.
  #</pre> <!-- daissatz aquesta linha coma es -->',
 'upload-success-subj' => 'Importacion capitada',
-'upload-success-msg' => 'Çò mandat es disponible aicí : [[:{{ns:file}}:$1]]',
+'upload-success-msg' => 'Vòstre impòrt dempuèi [$2] a capitat. Es disponible aicí : [[:{{ns:file}}:$1]]',
 'upload-failure-subj' => 'Problèma de mandadís',
 'upload-failure-msg' => 'I a agut un problèma amb vòstre mandadís [$2]: $1',
 'upload-warning-subj' => 'Avertiment al moment del telecargament',
@@ -1725,11 +1827,17 @@ Se lo problèma persistís, contactatz un [[Special:ListUsers/sysop|administrato
 'upload-too-many-redirects' => "L'URL conten tròp de redireccions",
 'upload-unknown-size' => 'Talha desconeguda',
 'upload-http-error' => 'Una error HTTP es intervenguda : $1',
+'upload-copy-upload-invalid-domain' => 'La còpia dels telecargaments es pas disponibla dempuèi aqueste domeni.',
 
 # File backend
 'backend-fail-stream' => 'Impossible de legir lo fichièr $1.',
 'backend-fail-backup' => 'Impossible de salvar lo fichièr $1.',
 'backend-fail-notexists' => 'Lo fichièr $1 existís pas.',
+'backend-fail-hashes' => "Impossible d'obténer lis hashatges del fichièr per comparason.",
+'backend-fail-notsame' => 'Un fichièr diferent existís ja per $1 .',
+'backend-fail-invalidpath' => "$1 es pas un camin d'emmagazinatge valid.",
+'backend-fail-delete' => 'Impossible de suprimir lo fichièr « $1 ».',
+'backend-fail-describe' => 'Impossible de modificar las metadonadas del fichièr "$1".',
 'backend-fail-alreadyexists' => 'Lo fichièr $1 existís ja.',
 'backend-fail-store' => "Impossible d'emmagazinar lo fichièr « $1 » dins « $2 ».",
 'backend-fail-copy' => 'Impossible de copiar lo fichièr « $1 » dins « $2 ».',
@@ -1739,23 +1847,34 @@ Se lo problèma persistís, contactatz un [[Special:ListUsers/sysop|administrato
 'backend-fail-closetemp' => 'Impossible de tampar lo fichièr temporari.',
 'backend-fail-read' => 'Impossible de legir lo fichièr $1.',
 'backend-fail-create' => "Impossible d'escriure lo fichièr $1.",
+'backend-fail-maxsize' => "Impossible d'escriure lo fichièr $1 perque es mai grand {{PLURAL:$2|qu'un octet|que $2 octets}}.",
 
 # Lock manager
+'lockmanager-notlocked' => 'Impossible de desvarrolhar « $1 » ; es pas varrolhada.',
 'lockmanager-fail-closelock' => 'Impossible de tampar lo fichièr de varrolh per « $1 ».',
 'lockmanager-fail-deletelock' => 'Impossible de suprimir lo fichièr de varrolh per « $1 ».',
 'lockmanager-fail-acquirelock' => "Impossible d'obténer lo fichièr de varrolh per « $1 ».",
 'lockmanager-fail-openlock' => 'Impossible de dobrir lo fichièr de varrolh per « $1 ».',
 'lockmanager-fail-releaselock' => 'Impossible de daissar anar lo fichièr de varrolh per « $1 ».',
+'lockmanager-fail-db-release' => 'Impossible de daissar anar los varrolhs sus la banca de donadas $1.',
+'lockmanager-fail-svr-acquire' => "Impossible d'aquerir de varrolhs sul servidor $1.",
+'lockmanager-fail-svr-release' => 'Impossible de daissar anar los varrolhs sul servidor $1.',
+
+# ZipDirectoryReader
+'zip-file-open-error' => "Una error s'es producha al moment de la dobertura del fichièr ZIP per contraròtle.",
 
 # Special:UploadStash
 'uploadstash' => "Escondedor d'impòrt",
+'uploadstash-clear' => 'Escafar los fichièrs en escondedor',
+'uploadstash-nofiles' => "Avètz pas de fichièrs en escondedor d'impòrt.",
+'uploadstash-errclear' => "L'escafament dels fichièrs a fracassat.",
+'uploadstash-refresh' => 'Actualizar la lista dels fichièrs',
+'invalid-chunk-offset' => 'Offset de segment invalid',
 
 # img_auth script messages
 'img-auth-accessdenied' => 'Accès refusat',
-'img-auth-nopathinfo' => 'PATH_INFO mancant.
-Vòstre servidor es pas parametrat per passar aquesta informacion.
-Benlèu que fonciona en CGI e supòrta pas img_atuh.
-Consultatz https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
+'img-auth-nopathinfo' => 'PATH_INFO mancant. Vòstre servidor es pas parametrat per passar aquesta informacion.
+Benlèu que fonciona en CGI e supòrta pas img_atuh. Consultatz https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
 'img-auth-notindir' => 'Lo camin demandat es pas lo repertòri de telecargament configurat.',
 'img-auth-badtitle' => 'Impossible de construire un títol valid a partir de « $1 ».',
 'img-auth-nologinnWL' => 'Sètz pas connectat e « $1 » es pas dins la lista blanca.',
@@ -1767,6 +1886,7 @@ Sol l'accès als fichièrs es permesa.",
 Aqueste wiki es configurat coma un wiki public.
 Per una seguretat optimala, img_auth.php es desactivat.",
 'img-auth-noread' => "L'utilizaire a pas lo drech en lectura sus « $1 ».",
+'img-auth-bad-query-string' => "L'URL a una cadena de requèsta invalida.",
 
 # HTTP errors
 'http-invalid-url' => 'URL incorrècta : $1',
@@ -1791,9 +1911,8 @@ Per una seguretat optimala, img_auth.php es desactivat.",
 'upload_source_file' => ' (un fichièr sus vòstre ordenador)',
 
 # Special:ListFiles
-'listfiles-summary' => 'Aquesta pagina especiala fa veire totes los fichièrs importats.
-Per defaut, las darrièrs fichièrs importats son afichats en naut de la lista.
-Un clic en tèsta de colomna càmbia l’òrdre d’afichatge.',
+'listfiles-summary' => 'Aquesta pagina especiala permet de far la lista de totes los fichièrs importats.
+Quand es filtrada per utilizaire, sols los fichièrs que la version la mai recenta es estada importada per aqueste utilizaire son afichats.',
 'listfiles_search_for' => 'Recèrca del mèdia nomenat :',
 'imgfile' => 'fichièr',
 'listfiles' => 'Lista dels imatges',
@@ -1839,6 +1958,7 @@ Una [[Special:WhatLinksHere/$2|tièra completa]] es disponibla.',
 'uploadnewversion-linktext' => "Importar una version novèla d'aqueste fichièr",
 'shared-repo-from' => 'de $1',
 'shared-repo' => 'un depaus partejat',
+'upload-disallowed-here' => 'Podètz pas remplaçar aqueste fichièr.',
 
 # File reversion
 'filerevert' => 'Revocar $1',
@@ -1868,6 +1988,7 @@ Una [[Special:WhatLinksHere/$2|tièra completa]] es disponibla.',
 ** Fichièr duplicat',
 'filedelete-edit-reasonlist' => 'Modifica los motius de la supression',
 'filedelete-maintenance' => 'La supression e lo restabliment de fichièrs es temporàriament desactivada pendent la mantenença.',
+'filedelete-maintenance-title' => 'Impossible de suprimir lo fichièr',
 
 # MIME search
 'mimesearch' => 'Recèrca per tipe MIME',
@@ -1921,6 +2042,11 @@ Doblidetz pas de verificar se i a pas d’autre ligam cap als modèls abans de l
 Deurián puslèu puntar cap a una pagina apropriada.<br />
 Una pagina es tractada coma una pagina d’omonimia s'utiliza un modèl qu'es ligat a partir de [[MediaWiki:Disambiguationspage]]",
 
+'pageswithprop' => 'Paginas amb una proprietat de pagina',
+'pageswithprop-legend' => 'Paginas amb una proprietat de pagina',
+'pageswithprop-prop' => 'Nom de la proprietat :',
+'pageswithprop-submit' => 'Anar',
+
 'doubleredirects' => 'Redireccions doblas',
 'doubleredirectstext' => 'Vaquí una lista de las paginas que redirigisson cap a de paginas que son elas-meteissas de paginas de redireccion.
 Cada entrada conten de ligams cap a la primièra e la segonda redireccions, e mai la primièra linha de tèxte de la segonda pagina, çò que provesís, de costuma, la « vertadièra » pagina cibla, cap a la quala la primièra redireccion deuriá redirigir.
@@ -1944,6 +2070,7 @@ Las entradas <del>barradas</del> son estadas resolgudas.',
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|octet|octets}}',
 'ncategories' => '$1 {{PLURAL:$1|categoria|categorias}}',
+'ninterwikis' => '$1 {{PLURAL:$1|interwiki|interwikis}}',
 'nlinks' => '$1 {{PLURAL:$1|ligam|ligams}}',
 'nmembers' => '$1 {{PLURAL:$1|membre|membres}}',
 'nrevisions' => '$1 {{PLURAL:$1|revision|revisions}}',
@@ -1970,8 +2097,10 @@ Las entradas <del>barradas</del> son estadas resolgudas.',
 'mostlinkedtemplates' => 'Modèls mai utilizats',
 'mostcategories' => 'Articles utilizant mai de categorias',
 'mostimages' => 'Fichièrs mai utilizats',
+'mostinterwikis' => "Paginas amb lo mai d'interwikis",
 'mostrevisions' => 'Articles mai modificats',
 'prefixindex' => 'Totas las paginas que començan per…',
+'prefixindex-namespace' => 'Totas las paginas amb prefix (espaci de noms $1)',
 'shortpages' => 'Paginas brèvas',
 'longpages' => 'Paginas longas',
 'deadendpages' => "Paginas sul camin d'enlòc",
@@ -2022,6 +2151,7 @@ Notatz que d’autres sites pòdon aver un ligam dirècte cap a un fichièr, e d
 Podètz restrénher la vista en seleccionant un tipe de jornal, un nom d’utilizaire (cassa sensibla) o una pagina ciblada (idem).',
 'logempty' => 'I a pas res dins l’istoric per aquesta pagina.',
 'log-title-wildcard' => 'Recercar de títols que començan per aqueste tèxte',
+'showhideselectedlogentries' => 'Afichar/amagar las entradas de jornal seleccionadas',
 
 # Special:AllPages
 'allpages' => 'Totas las paginas',
@@ -2039,6 +2169,10 @@ Podètz restrénher la vista en seleccionant un tipe de jornal, un nom d’utili
 'allpagesprefix' => 'Afichar las paginas que començan pel prefix :',
 'allpagesbadtitle' => 'Lo títol rensenhat per la pagina es incorrècte o possedís un prefix reservat. Conten segurament un o mantun caractèr especial que pòt pas èsser utilizats dins los títols.',
 'allpages-bad-ns' => '{{SITENAME}} a pas d’espaci de noms « $1 ».',
+'allpages-hide-redirects' => 'Amagar las redireccions',
+
+# SpecialCachedPage
+'cachedspecial-refresh-now' => 'Veire lo mai recent.',
 
 # Special:Categories
 'categories' => 'Categorias',
@@ -2059,7 +2193,9 @@ Vejatz tanben [[Special:WantedCategories|las categorias demandadas]].',
 'linksearch-pat' => 'Recercar l’expression :',
 'linksearch-ns' => 'Espacis de noms :',
 'linksearch-ok' => 'Recercar',
-'linksearch-text' => 'De caractèrs « joker » pòdon èsser utilizats, per exemple <code>*.wikipedia.org</code>.<br />Protocòls reconeguts : <code>$1</code>.',
+'linksearch-text' => 'De caractèrs jokers coma « *.wikipedia.org » pòdon èsser utilizats.
+Necessitan al mens un domeni de nivèl superior, per exemple « *.org ».<br />
+{{PLURAL:$2|Protocòl reconegut|Protocòls reconeguts}}: <code>$1</code> (http:// per defaut se cap de protocòl es pas indicat).',
 'linksearch-line' => '$1 amb un ligam a partir de $2',
 'linksearch-error' => 'Los caractèrs « joker » pòdon pas èsser utilizats qu’al començament del nom de domeni.',
 
@@ -2072,7 +2208,7 @@ Vejatz tanben [[Special:WantedCategories|las categorias demandadas]].',
 # Special:ActiveUsers
 'activeusers' => 'Lista dels utilizaires actius',
 'activeusers-intro' => "Aquò es una lista dels utilizaires qu'an exerçat una activitat quina que siá al cors {{PLURAL:$1|de la darrièra jornada|dels $1 darrièrs jorns}}.",
-'activeusers-count' => '$1 {{PLURAL:$1|modificacion recenta|modificacions recentas}} dins {{PLURAL:$3|lo darrièr jorn|los $3 darrièrs jorns}}',
+'activeusers-count' => '$1 {{PLURAL:$1|accion|accions}} al moment {{PLURAL:$3|del darrièr jorn|dels $3 darrièrs jorns}}',
 'activeusers-from' => 'Afichar los utilizaires dempuèi :',
 'activeusers-hidebots' => 'Amagar los robòts',
 'activeusers-hidesysops' => 'Amagar los administrators',
@@ -2116,6 +2252,8 @@ L'adreça electronica qu'avètz indicada dins [[Special:Preferences|vòstras pre
 'noemailtext' => "Aqueste utilizaire a pas especificat d'adreça electronica valida.",
 'nowikiemailtitle' => 'Pas de corrièr electronic autorizat',
 'nowikiemailtext' => "Aqueste utilizaire a causit de recebre pas de corrièr electronic de la part d'autres utilizaires.",
+'emailnotarget' => "Nom d'utilizaire del destinatari inexistent o invalid.",
+'emailtarget' => "Entratz lo nom d'utilizaire del destinatari",
 'emailusername' => "Nom d'utilizaire :",
 'emailusernamesubmit' => 'Sometre',
 'email-legend' => 'Mandar un corrièr electronic a un autre utilizaire de {{SITENAME}}',
@@ -2144,8 +2282,7 @@ L'adreça electronica qu'avètz indicada dins [[Special:Preferences|vòstras pre
 'watchnologintext' => 'Vos cal èsser [[Special:UserLogin|connectat(ada)]]
 per modificar vòstra lista de seguiment.',
 'addwatch' => 'Ajustar a la lista de seguiment',
-'addedwatchtext' => 'La pagina "[[:$1]]" es estada aponduda a vòstra [[Special:Watchlist|lista de seguiment]].
-Las modificacions venentas d\'aquesta pagina e de la pagina de discussion associada seràn repertoriadas aicí, e la pagina apareisserà <b>en gras</b> dins la [[Special:RecentChanges|tièra dels darrièrs cambiaments]] per èsser localizada mai aisidament.',
+'addedwatchtext' => "La pagina « [[:$1]] » es estada aponduda a vòstra [[Special:Watchlist|lista de seguiment]]. Las modificacions venentas d'aquesta pagina e de la pagina de discussion associada i seràn repertoriadas.",
 'removewatch' => 'Suprimir de la lista de seguiment',
 'removedwatchtext' => 'La pagina « [[:$1]] » es estada levada de vòstra [[Special:Watchlist|lista de seguiment]].',
 'watch' => 'Seguir',
@@ -2154,15 +2291,14 @@ Las modificacions venentas d\'aquesta pagina e de la pagina de discussion associ
 'unwatchthispage' => 'Arrestar de seguir',
 'notanarticle' => "Pas cap d'article",
 'notvisiblerev' => 'Version suprimida',
-'watchnochange' => 'Cap de las paginas que seguissètz son pas estadas modificadas pendent lo periòde afichat.',
 'watchlist-details' => 'I a {{PLURAL:$1|pagina|paginas}} dins vòstra lista de seguiment, sens comptar las paginas de discussion.',
 'wlheader-enotif' => 'La notificacion per corrièr electronic es activada.',
-'wlheader-showupdated' => 'Las paginas que son estadas modificadas dempuèi vòstra darrièra visita son mostradas en <b>gras</b>',
+'wlheader-showupdated' => "Las paginas que son estadas modificadas dempuèi vòstra darrièra visita son afichadas en '''gras'''.",
 'watchmethod-recent' => 'verificacion dels darrièrs cambiaments de las paginas seguidas',
 'watchmethod-list' => 'verificacion de las paginas seguidas per de modificacions recentas',
 'watchlistcontains' => 'Vòstra lista de seguiment conten $1 {{PLURAL:$1|pagina|paginas}}.',
 'iteminvalidname' => "Problèma amb l'article « $1 » : lo nom es invalid...",
-'wlnote' => 'Çaijós se {{PLURAL:$1|tròba la darrièra modificacion|tròban las $1 darrièras modificacions}} dempuèi {{PLURAL:$2|la darrièra ora|las <b>$2</b> darrièras oras}}.',
+'wlnote' => "Çaijós {{PLURAL:$1|se tròba la darrièra modificacion efectuada|se tròban las $1 darrièras modificacions efectuadas}} pendent {{PLURAL:$2|la darrièra ora|las '''$2''' darrièras oras}} dempuèi $3, $4.",
 'wlshowlast' => 'Far veire las darrièras $1 oras, los darrièrs $2 jorns, o $3.',
 'watchlist-options' => 'Opcions de la lista de seguiment',
 
@@ -2278,6 +2414,8 @@ Consultatz la [[Special:ProtectedPages|lista de las paginas protegidas]] per la
 'protect-title' => 'Cambiar lo nivèl de proteccion de « $1 »',
 'protect-title-notallowed' => 'Veire lo nivèl de proteccion de « $1 »',
 'prot_1movedto2' => 'a renomenat [[$1]] en [[$2]]',
+'protect-badnamespace-title' => 'Espaci de noms pas protegible',
+'protect-norestrictiontypes-title' => 'Pagina pas protegibla',
 'protect-legend' => 'Confirmar la proteccion',
 'protectcomment' => 'Rason :',
 'protectexpiry' => 'Expiracion (expira pas per defaut)',
@@ -2337,8 +2475,7 @@ Consultatz la [[Special:ProtectedPages|lista de las paginas protegidas]] per la
 L'archiu pòt èsser escafat periodicament.",
 'undelete-fieldset-title' => 'Restablir las versions',
 'undeleteextrahelp' => "Per restablir l'istoric complet d'aquesta pagina, daissatz vèrjas totas las casas de marcar, puèi clicatz sus '''''Restablir'''''.
-Per restablir pas que d'unas versions, marcatz las casas que correspondon a las versions que son de restablir, puèi clicatz sus '''''Restablir'''''.
-En clicant sul boton '''''Reïnicializar''''', la bóstia de resumit e las casas marcadas seràn remesas a zèro.",
+Per efectuar un restabliment parcial, marcatz las casas que correspondon a las versions que son de restablir, puèi clicatz sus '''''Restablir'''''.",
 'undeleterevisions' => '$1 {{PLURAL:$1|revision archivada|revisions archivadas}}',
 'undeletehistory' => "Se restablissètz la pagina, totas las revisions seràn plaçadas tornamai dins l'istoric.
 
@@ -2357,11 +2494,13 @@ S'una pagina novèla amb lo meteis nom es estada creada dempuèi la supression,
 'undeletedrevisions' => '{{PLURAL:$1|1 revision restablida|$1 revisions restablidas}}',
 'undeletedrevisions-files' => '{{PLURAL:$1|1 revision|$1 revisions}} e {{PLURAL:$2|1 fichièr restablit|$2 fichièrs restablits}}',
 'undeletedfiles' => '$1 {{PLURAL:$1|fichièr restablit|fichièrs restablits}}',
-'cannotundelete' => 'Lo restabliment a pas capitat. Un autre utilizaire a probablament restablit la pagina abans.',
+'cannotundelete' => 'Fracàs del restabliment :
+$1',
 'undeletedpage' => "'''La pagina $1 es estada restablida'''.
 
 Consultatz l’[[Special:Log/delete|istoric de las supressions]] per veire las paginas recentament suprimidas e restablidas.",
 'undelete-header' => 'Consultatz l’[[Special:Log/delete|istoric de las supressions]] per veire las paginas recentament suprimidas.',
+'undelete-search-title' => 'Recercar las paginas suprimidas',
 'undelete-search-box' => 'Cercar una pagina suprimida',
 'undelete-search-prefix' => 'Far veire las paginas que començan per :',
 'undelete-search-submit' => 'Cercar',
@@ -2370,6 +2509,7 @@ Consultatz l’[[Special:Log/delete|istoric de las supressions]] per veire las p
 'undelete-bad-store-key' => 'Impossible de restablir lo fichièr datat del $1 : lo fichièr èra absent abans la supression.',
 'undelete-cleanup-error' => 'Error al moment de la supression de l’archiu inutilizada « $1 ».',
 'undelete-missing-filearchive' => 'Impossible de restablir lo fichièr amb l’ID $1 perque es pas dins la banca de donadas. Benlèu ja i es estat restablit.',
+'undelete-error' => "Pagina d'error d'anullacion",
 'undelete-error-short' => 'Error al moment del restabliment del fichièr : $1',
 'undelete-error-long' => "D'errors son estadas rencontradas al moment del restabliment del fichièr :
 
@@ -2389,7 +2529,7 @@ $1",
 'mycontris' => 'Contribucions',
 'contribsub2' => 'Lista de las contribucions de $1 ($2). Las paginas que son estadas escafadas son pas afichadas.',
 'nocontribs' => 'Cap de modificacion correspondenta a aquestes critèris es pas estada trobada.',
-'uctop' => '(darrièra)',
+'uctop' => '(actual)',
 'month' => 'A partir del mes (e precedents) :',
 'year' => 'A partir de l’annada (e precedentas) :',
 
@@ -2483,8 +2623,15 @@ a partir d'una adreça IP precedentament blocada.",
 'blocklist' => 'Utilizaires o adreças IP blocats',
 'ipblocklist' => 'Utilizaires o adreças IP blocats',
 'ipblocklist-legend' => 'Cercar un utilizaire blocat',
+'blocklist-userblocks' => 'Amagar los blocatges de comptes',
+'blocklist-tempblocks' => 'Amagar los blocatges temporaris',
+'blocklist-addressblocks' => "Amagar los blocatges d'adreças IP unicas",
+'blocklist-rangeblocks' => 'Amagar los blòts de portada',
+'blocklist-timestamp' => 'Data e ora',
 'blocklist-target' => 'Cibla',
 'blocklist-expiry' => "Data d'expiracion",
+'blocklist-by' => "Administrator qu'a efectuat lo blocatge",
+'blocklist-params' => 'Paramètres de blocatge',
 'blocklist-reason' => 'Motiu',
 'ipblocklist-submit' => 'Recercar',
 'ipblocklist-localblock' => 'Blocatge local',
@@ -2563,6 +2710,7 @@ Doblidetz pas de la desvarrolhar quand auretz acabat vòstra operacion de manten
 'unlockdbsuccesstext' => 'La banca de donadas de {{SITENAME}} es desvarrolhada.',
 'lockfilenotwritable' => 'Lo fichièr de blocatge de la banca de donadas es pas inscriptible. Per blocar o desblocar la banca de donadas, vos cal poder escriure sul servidor web.',
 'databasenotlocked' => 'La banca de donadas es pas varrolhada.',
+'lockedbyandtime' => '(per $1 lo $2 a $3)',
 
 # Move page
 'move-page' => 'Tornar nomenar $1',
@@ -2859,10 +3007,13 @@ Aquò es probablament causat per un ligam sus lista negra que punta cap a un sit
 'pageinfo-default-sort' => 'Clau de triada per defaut',
 'pageinfo-length' => 'Talha de la pagina (en octets)',
 'pageinfo-article-id' => 'Numèro de la pagina',
+'pageinfo-language' => 'Lenga del contengut de la pagina',
 'pageinfo-robot-policy' => 'Estatut de motor de recèrca',
 'pageinfo-robot-index' => 'Indexable',
 'pageinfo-robot-noindex' => 'Pas indexable',
 'pageinfo-views' => 'Nombre de vistas',
+'pageinfo-watchers' => "Nombre de contributors qu'an la pagina dins lor lista de seguiment",
+'pageinfo-few-watchers' => 'Mens de $1 {{PLURAL:$1|observator|observators}}',
 'pageinfo-redirects-name' => 'Redireccions cap a aquesta pagina',
 'pageinfo-subpages-name' => "Sospaginas d'aquesta pagina",
 'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|redireccion|redireccions}}; $3 {{PLURAL:$3|non-redireccion|non-redireccions}})',
@@ -2877,11 +3028,15 @@ Aquò es probablament causat per un ligam sus lista negra que punta cap a un sit
 'pageinfo-magic-words' => '{{PLURAL:$1|Mot magic|Mots magics}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Categoria amagada|Categorias amagadas}} ($1)',
 'pageinfo-templates' => '{{PLURAL:$1|Modèl inclús|Modèls incluses}} ($1)',
+'pageinfo-transclusions' => '{{PLURAL:$1|Pagina tradusida|Paginas tradusidas}} sus ($1)',
 'pageinfo-toolboxlink' => 'Informacion sus la pagina',
 'pageinfo-redirectsto' => 'Redirigir cap a',
 'pageinfo-redirectsto-info' => 'info',
+'pageinfo-contentpage' => 'Comptat coma pagina de contengut',
 'pageinfo-contentpage-yes' => 'Òc',
+'pageinfo-protect-cascading' => "Las proteccions son dedusidas d'aicí",
 'pageinfo-protect-cascading-yes' => 'Òc',
+'pageinfo-protect-cascading-from' => 'Las proteccions son dedusidas dempuèi',
 'pageinfo-category-info' => 'Informacions sus la categoria',
 'pageinfo-category-pages' => 'Nombre de paginas',
 'pageinfo-category-subcats' => 'Nombre de soscategorias',
@@ -2902,6 +3057,7 @@ Aquò es probablament causat per un ligam sus lista negra que punta cap a un sit
 'markedaspatrollederror' => 'Pòt pas èsser marcat coma pas vandalizat',
 'markedaspatrollederrortext' => 'Vos cal seleccionar una version per poder la marcar coma pas vandalizada.',
 'markedaspatrollederror-noautopatrol' => 'Avètz pas lo drech de marcar vòstras pròprias modificacions coma susvelhadas.',
+'markedaspatrollederrornotify' => 'Fracàs del marcatge coma contrarotlat.',
 
 # Patrol log
 'patrol-log-page' => 'Istoric de las versions patrolhadas',
@@ -2935,6 +3091,7 @@ Se l'executatz, vòstre sistèma pòt èsser compromés.",
 'file-nohires' => 'Pas de resolucion mai nauta disponibla.',
 'svg-long-desc' => 'Fichièr SVG, resolucion de $1 × $2 pixèls, talha : $3',
 'svg-long-desc-animated' => 'Fichièr SVG animat, talha $1 x $2 pixèls, talha del fichièr : $3',
+'svg-long-error' => 'Fichièr SVG invalid : $1',
 'show-big-image' => 'Imatge en resolucion mai nauta',
 'show-big-image-preview' => "Talha d'aqueste apercebut : $1.",
 'show-big-image-other' => '{{PLURAL:$2|Autra resolucion|Autras resolucions}} : $1.',
@@ -2962,9 +3119,25 @@ Se l'executatz, vòstre sistèma pòt èsser compromés.",
 'minutes' => '{{PLURAL:$1|$1 minuta|$1 minutas}}',
 'hours' => '{{PLURAL:$1|$1 ora|$1 oras}}',
 'days' => '{{PLURAL:$1|$1 jorn|$1 jorns}}',
+'weeks' => '{{PLURAL:$1|$1 setmana|$1 setmanas}}',
+'months' => '{{PLURAL:$1|$1 mes|$1 meses}}',
+'years' => '{{PLURAL:$1|$1 an|$1 ans}}',
 'ago' => 'I a $1',
 'just-now' => 'sulpic',
 
+# Human-readable timestamps
+'hours-ago' => 'i a $1 {{PLURAL:$1|ora|oras}}',
+'minutes-ago' => 'i a $1 {{PLURAL:$1|minuta|minutas}}',
+'seconds-ago' => 'i a $1 {{PLURAL:$1|segonda|segondas}}',
+'monday-at' => 'Diluns a $1',
+'tuesday-at' => 'Dimars a $1',
+'wednesday-at' => 'Dimècres a $1',
+'thursday-at' => 'Dijòus a $1',
+'friday-at' => 'Divendres a $1',
+'saturday-at' => 'Dissabte a $1',
+'sunday-at' => 'Dimenge a $1',
+'yesterday-at' => 'Ièr a $1',
+
 # Bad image list
 'bad_image_list' => "Lo format es lo seguent :
 
@@ -3149,6 +3322,9 @@ Los autres ligams sus la meteissa linha son considerats coma d'excepcions, per e
 'exif-copyrightowner' => "Detentor del drech d'autor",
 'exif-usageterms' => "Condicions d'utilizacion",
 'exif-webstatement' => "Declaracion de dreches d'autor en linha",
+'exif-originaldocumentid' => 'Identificant unic del document original',
+'exif-licenseurl' => 'URL de la licéncia',
+'exif-morepermissionsurl' => 'Informacions sus las licéncias alternativas',
 'exif-pngfilecomment' => 'Comentari de fichièr JPEG',
 'exif-disclaimer' => 'Desistiment',
 'exif-contentwarning' => 'Avertiment sul contengut',
@@ -3460,7 +3636,6 @@ Confirmatz que desiratz tornar crear aqueste article.",
 
 # Separators for various lists, etc.
 'colon-separator' => '&nbsp;:&#32;',
-'autocomment-prefix' => '-',
 
 # Multipage image navigation
 'imgmultipageprev' => '← pagina precedenta',
@@ -3536,21 +3711,36 @@ Ensajatz la previsualizacion normala.',
 'version-specialpages' => 'Paginas especialas',
 'version-parserhooks' => 'Extensions del parser',
 'version-variables' => 'Variablas',
+'version-antispam' => 'Prevencion del spam',
 'version-skins' => 'Abilhatges',
 'version-other' => 'Divèrs',
 'version-mediahandlers' => 'Supòrts mèdia',
 'version-hooks' => 'Croquets',
-'version-extension-functions' => 'Foncions de las extensions',
 'version-parser-extensiontags' => 'Balisas suplementàrias del parser',
 'version-parser-function-hooks' => 'Croquets de las foncions del parser',
 'version-hook-name' => 'Nom del croquet',
 'version-hook-subscribedby' => 'Definit per',
 'version-version' => '(Version $1)',
 'version-license' => 'Licéncia',
+'version-poweredby-credits' => "Aqueste wiki fonciona gràcias a '''[//www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
 'version-poweredby-others' => 'autres',
 'version-software' => 'Logicial installat',
 'version-software-product' => 'Produch',
 'version-software-version' => 'Version',
+'version-entrypoints' => "URL dels punts d'entrada",
+'version-entrypoints-header-entrypoint' => "Punt d'entrada",
+'version-entrypoints-header-url' => 'URL',
+
+# Special:Redirect
+'redirect' => 'Redirigit per fichièr, utilizaire, o ID de revision',
+'redirect-legend' => 'Redirigir cap a una pagina o un fichièr',
+'redirect-submit' => 'Validar',
+'redirect-lookup' => 'Recèrca :',
+'redirect-value' => 'Valor :',
+'redirect-user' => "ID de l'utilizaire",
+'redirect-revision' => 'Revision de la pagina',
+'redirect-file' => 'Nom del fichièr',
+'redirect-not-exists' => 'Valor pas trobada',
 
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Recèrca dels fichièrs en doble',
@@ -3619,6 +3809,7 @@ Ensajatz la previsualizacion normala.',
 'compare-submit' => 'Comparar',
 'compare-invalid-title' => "Lo títol qu'avètz especificat es incorrècte.",
 'compare-title-not-exists' => "Lo títol qu'avètz especificat existís pas",
+'compare-revision-not-exists' => "La revision qu'avètz especificada existís pas.",
 
 # Database error messages
 'dberr-header' => 'Aqueste wiki a un problèma',
@@ -3640,10 +3831,16 @@ Ensajatz la previsualizacion normala.',
 'htmlform-submit' => 'Sometre',
 'htmlform-reset' => 'Desfar las modificacions',
 'htmlform-selectorother-other' => 'Autre',
+'htmlform-no' => 'Non',
+'htmlform-yes' => 'Òc',
+'htmlform-chosen-placeholder' => 'Causir una opcion',
+
+# SQLite database support
+'sqlite-has-fts' => '$1 amb recèrca en tèxte integral suportada',
 
 # New logging system
-'logentry-delete-delete' => '$1 a suprimit la pagina $3',
-'logentry-delete-restore' => '$1 a restablit la pagina $3',
+'logentry-delete-delete' => '$1 {{GENDER:$2|a suprimit}} la pagina $3',
+'logentry-delete-restore' => '$1 {{GENDER:$2|a restablit}} la pagina $3',
 'revdelete-content-hid' => 'contengut amagat',
 'revdelete-summary-hid' => 'resumit de modificacion amagat',
 'revdelete-uname-hid' => 'nom d’utilizaire amagat',
@@ -3652,14 +3849,18 @@ Ensajatz la previsualizacion normala.',
 'revdelete-uname-unhid' => 'nom d’utilizaire afichat',
 'revdelete-restricted' => 'aplicar las restriccions als administrators',
 'revdelete-unrestricted' => 'restriccions levadas pels administrators',
-'logentry-move-move' => '$1 a deplaçat la pagina $3 cap a $4',
-'logentry-move-move-noredirect' => '$1 a deplaçat la pagina $3 cap a $4 sens daissar cap de redireccion',
-'logentry-move-move_redir' => '$1 a deplaçat la pagina $3 cap a $4 per dessús una redireccion',
+'logentry-move-move' => '$1  {{GENDER:$2|a deplaçat}} la pagina $3 cap a $4',
+'logentry-move-move-noredirect' => '$1 {{GENDER:$2|a deplaçat}} la pagina $3 cap a $4 sens daissar cap de redireccion',
+'logentry-move-move_redir' => '$1 {{GENDER:$2|a deplaçat}} la pagina $3 cap a $4 per dessús una redireccion',
 'logentry-move-move_redir-noredirect' => '$1 a deplaçat la pagina $3 cap a $4 per dessús una redireccion sens daissar cap de redireccion',
-'logentry-newusers-newusers' => "Lo compte d'utilizaire $1 es estat creat",
-'logentry-newusers-create' => "Lo compte d'utilizaire $1 es estat creat",
-'logentry-newusers-create2' => "Lo compte d'utilizaire $3 es estat creat per $1",
-'logentry-newusers-autocreate' => 'Lo compte $1 es estat creat automaticament',
+'logentry-newusers-newusers' => 'Lo compte utilizaire $1 {{GENDER:$2|es estat creat}}',
+'logentry-newusers-create' => "Lo compte d'utilizaire $1 {{GENDER:$2|es estat creat}}",
+'logentry-newusers-create2' => "Lo compte d'utilizaire $3 {{GENDER:$2|es estat creat}} per $1",
+'logentry-newusers-byemail' => "Lo compte d'utilizaire $3 {{GENDER:$2|es estat creat}} per $1 e lo senhal es estat mandat per corrièr electronic",
+'logentry-newusers-autocreate' => 'Lo compte $1 {{GENDER:$2|es estat creat}} automaticament',
+'logentry-rights-rights' => "$1 {{GENDER:$2|a modificat}} l'apartenéncia al grop per $3 de $4 a $5",
+'logentry-rights-rights-legacy' => "$1 {{GENDER:$2|a modificat}} l'apartenéncia al grop per $3",
+'logentry-rights-autopromote' => '$1 {{GENDER:$2|es estat promolgut}} automaticament de $4 a $5',
 'rightsnone' => '(cap)',
 
 # Feedback
@@ -3667,13 +3868,31 @@ Ensajatz la previsualizacion normala.',
 'feedback-message' => 'Messatge :',
 'feedback-cancel' => 'Anullar',
 'feedback-submit' => 'Mandar vòstres comentaris',
+'feedback-adding' => 'Apondon de vòstres comentaris a la pagina...',
+'feedback-error1' => "Error : Resultat de l'IPA pas reconegut",
+'feedback-error2' => 'Error : la modificacion a fracassat',
+'feedback-error3' => "Error : pas cap de responsa de l'API",
 'feedback-close' => 'Fach',
+'feedback-bugnew' => 'Ai verificat. Senhalar un bug novèl',
 
 # Search suggestions
 'searchsuggest-search' => 'Recercar',
 'searchsuggest-containing' => 'que conten...',
 
 # API errors
+'api-error-badaccess-groups' => 'Sètz pas autorizat a cargar de fichièrs sus aqueste wiki.',
+'api-error-badtoken' => 'Error intèrna : marrit « geton ».',
+'api-error-copyuploaddisabled' => 'Los cargaments via URL son desactivats sus aqueste servidor.',
+'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-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.",
+'api-error-fileexists-forbidden' => 'Un fichièr nomenat "$1" existís ja, e pòt pas èsser espotir.',
+'api-error-file-too-large' => "Lo fichièr qu'avètz somés èra tròp grand.",
+'api-error-filename-tooshort' => 'Lo nom del fichièr es tròp cort.',
+'api-error-filetype-banned' => 'Aqueste tipe de fichièr es interdich',
+'api-error-illegal-filename' => 'Lo nom del fichièr es pas autorizat.',
 'api-error-unknown-code' => 'Error desconeguda : « $1 »',
 'api-error-unknown-warning' => 'Avertiment desconegut : $1',
 'api-error-unknownerror' => 'Error desconeguda : « $1 »',
index 1b7b93c..894881a 100644 (file)
@@ -18,6 +18,7 @@
  * @author Shijualex
  * @author Shisir 1945
  * @author Ævar Arnfjörð Bjarmason <avarab@gmail.com>
+ * @author ଶିତିକଣ୍ଠ ଦାଶ
  */
 
 $digitTransformTable = array(
@@ -33,6 +34,8 @@ $digitTransformTable = array(
        '9' => '୯', # &#x0b6f;
 );
 
+$linkTrail = "/^([a-z\x{0B00}-\x{0B7F}]+)(.*)$/sDu";
+
 /** namespace translations from translatewiki.net 
  * @author Shijualex
  * @author Psubhashish
@@ -258,7 +261,7 @@ $digitGroupingPattern = "##,##,###";
 $messages = array(
 # User preference toggles
 'tog-underline' => 'ତଳେ ଥିବା ଲିଙ୍କ:',
-'tog-justify' => 'ପାରାà¬\97à­\8dରାଫà¬\97à­\81ଡ଼ିà¬\95ର à¬¬à¬¾à¬\86à¬\81 ଡାହାଣ ସମଭାବେ ସଜାଡ଼ିବେ',
+'tog-justify' => 'ପାରାà¬\97à­\8dରାଫà¬\97à­\81ଡ଼ିà¬\95ର à¬¬à¬¾à¬® ଡାହାଣ ସମଭାବେ ସଜାଡ଼ିବେ',
 'tog-hideminor' => 'ଛୋଟ ଛୋଟ ନଗଦ ବଦଳ ସବୁକୁ ଲୁଚାଇବେ',
 'tog-hidepatrolled' => 'ନଗଦ ବଦଳରେ ଥିବା ଜଗାହୋଇଥିବା ବଦଳ ସବୁକୁ ଲୁଚାଇବେ',
 'tog-newpageshidepatrolled' => 'ନୂଆ ପୃଷ୍ଠାତାଲିକାରୁ ଜଗାହୋଇଥିବା ବଦଳସବୁକୁ ଲୁଚାଇବେ',
@@ -270,7 +273,7 @@ $messages = array(
 'tog-editsection' => '[ବଦଳାଇବେ] ଲିଙ୍କରେ ବିଭାଗର ସମ୍ପାଦନାକୁ ସଚଳ କରିବେ',
 'tog-editsectiononrightclick' => 'ବିଭାଗ ନାମରେ ଡାହାଣ କ୍ଲିକ କରି ବିଭାଗ ସମ୍ପାଦନାକୁ ସଚଳ କରିବେ (ଜାଭାସ୍କ୍ରିପ୍ଟ ଲୋଡ଼ା)',
 'tog-showtoc' => 'ସୂଚୀପତ୍ର ଦେଖାଇବେ (୩ରୁ ଅଧିକ ମୁଖ୍ୟ ନାମ ଥିଲେ)',
-'tog-rememberpassword' => 'à¬\8fହି à¬¬à­\8dରାà¬\89à¬\9cରରà­\87 (ସବà­\81ଠà­\81 à¬\85ଧିà¬\95 à¬¹à­\87ଲà­\87 $1 {{PLURAL:$1|day|ଦିନ}}) à¬ªà¬¾à¬\87à¬\81 à¬®à­\8b à¬²à¬\97à¬\87ନ à¬®à¬¨à­\87 ରଖିଥିବେ',
+'tog-rememberpassword' => 'à¬\8fହି à¬¬à­\8dରାà¬\89à¬\9cରରà­\87 (ସରà­\8dବାଧିà¬\95 $1 {{PLURAL:$1|day|ଦିନ}}) à¬ªà¬¾à¬\87à¬\81 à¬®à­\8b à¬²à¬\97-à¬\87ନ à¬®à¬¨à­\87ରଖିଥିବେ',
 'tog-watchcreations' => 'ମୋ ତିଆରି ପୃଷ୍ଠାସବୁକୁ ଏବଂ ମୋ ଅପଲୋଡ଼ଗୁଡ଼ିକୁ ମୋର ଦେଖଣାତାଲିକାରେ ଯୋଡ଼ନ୍ତୁ',
 'tog-watchdefault' => 'ମୁଁ ବଦଳେଇଥିବା ପୃଷ୍ଠା ଏବଂ ଫାଇଲଗୁଡ଼ିକୁ ମୋର ଦେଖଣାତାଲିକାରେ ଯୋଡ଼ନ୍ତୁ',
 'tog-watchmoves' => 'ମୁଁ ଘୁଞ୍ଚାଇଥିବା ପୃଷ୍ଠା ଏବଂ ଫାଇଲଗୁଡ଼ିକୁ ମୋର ଦେଖଣାତାଲିକାରେ ଯୋଡ଼ନ୍ତୁ',
@@ -278,13 +281,13 @@ $messages = array(
 'tog-minordefault' => 'ସବୁଯାକ ସମ୍ପାଦନାକୁ ଛାଏଁ ଛୋଟ ବଦଳ ଭାବରେ ସୂଚିତ କରିବେ',
 'tog-previewontop' => 'ଏଡ଼ିଟ ବାକ୍ସ ଆଗରୁ ଦେଖଣା ଦେଖାଇବେ',
 'tog-previewonfirst' => 'ପ୍ରଥମ ବଦଳର ଦେଖଣା ଦେଖାଇବେ',
-'tog-nocache' => 'ବà­\8dରାà¬\89à¬\9cର à¬ªà­\83ଷà­\8dଠା à¬¸à¬\82ରà¬\95à­\8dଷଣà¬\95à­\81 à¬\85à¬\9aଳ à¬\95ରିବà­\87',
+'tog-nocache' => 'ବà­\8dରାà¬\89à¬\9cର à¬ªà­\83ଷà­\8dଠା à¬¸à¬¾à¬\87ତିବାà¬\95à­\81 à¬\85à¬\95ାମà­\80 à¬\95ରନà­\8dତà­\81',
 'tog-enotifwatchlistpages' => 'ମୋ ଦେଖଣାତାଲିକାରେ ଥିବା ପୃଷ୍ଠା ବା ଫାଇଲରେ କିଛି ବଦଳ ହେଲେ ମୋତେ ଇମେଲ କରିବେ',
 'tog-enotifusertalkpages' => 'ମୋର ଆଲୋଚନା ପୃଷ୍ଠାରେ କିଛି ବଦଳ ହେଲେ ମୋତେ ଇ-ମେଲ କରିବେ',
 'tog-enotifminoredits' => 'ପୃଷ୍ଠାରେ ଏବଂ ଫାଇଲଗୁଡିକରେ ଛୋଟ ଛୋଟ ବଦଳ ହେଲେ ବି ମୋତେ ଇ-ମେଲ କରିବେ',
-'tog-enotifrevealaddr' => 'ସà­\82à¬\9aନା à¬\87ମà­\87ଲ à¬°à­\87 à¬®à­\8bର à¬\87ମà­\87ଲ à¬ à¬¿à¬\95ଣା ଦେଖାଇବେ',
-'tog-shownumberswatching' => 'ଦà­\87à¬\96à­\81ଥିବା à¬¬à­\8dà­\9fବହାରà¬\95ାରà­\80à¬\99à­\8dà¬\95 à¬¸à¬\82à¬\96à­\8dà­\9fା à¬¦à­\87à¬\96ାà¬\87ବà­\87',
-'tog-oldsig' => 'ଏବେ ଥିବା ନାମ:',
+'tog-enotifrevealaddr' => 'ନà­\8bà¬\9fିଫିà¬\95à­\87ସନ à¬\87ମà­\87ଲରà­\87 à¬®à­\8b à¬\87-ମà­\87ଲ ଦେଖାଇବେ',
+'tog-shownumberswatching' => 'ଦà­\87à¬\96à­\81ଥିବା à¬¬à­\8dà­\9fବହାରà¬\95ାରà­\80à¬\99à­\8dà¬\95 à¬¸à¬\82à¬\96à­\8dà­\9fା à¬¦à­\87à¬\96ାନà­\8dତà­\81',
+'tog-oldsig' => 'ଏବେକାର ଦସ୍ତଖତ:',
 'tog-fancysig' => 'ଦସ୍ତଖତକୁ ଉଇକିଟେକ୍ସଟ ଭାବରେ ଗଣିବେ (ଆପେଆପେ ଥିବା ଲିଙ୍କ ବିନା)',
 'tog-showjumplinks' => '"ଡେଇଁଯିବେ" ଲିଙ୍କସବୁକୁ ସଚଳ କରିବେ',
 'tog-uselivepreview' => 'ସାଥେ ସାଥେ ଚାଲିଥିବା ଦେଖଣା ବ୍ୟବହାର କରିବେ (ଜାଭାସ୍କ୍ରିପ୍ଟ ଲୋଡ଼ା)',
@@ -395,22 +398,22 @@ $messages = array(
 'noindex-category' => 'ସୂଚୀହୀନ ପୃଷ୍ଠାସବୁ',
 'broken-file-category' => 'ଭଙ୍ଗା ଫାଇଲ ଲିଙ୍କ ଥିବା ପୃଷ୍ଠାସମୂହ',
 
-'about' => 'ବାବଦରେ',
+'about' => 'à¬\8fହା à¬¬à¬¾à¬¬à¬¦à¬°à­\87',
 'article' => 'ସୂଚୀପତ୍ର',
 'newwindow' => '(ଏହା ନୂଆ ଉଇଣ୍ଡୋରେ ଖୋଲିବ)',
 'cancel' => 'ନାକଚ',
 'moredotdotdot' => 'ଅଧିକ...',
-'morenotlisted' => 'à¬\86à¬\89 à¬\85ଧିà¬\95 à¬¤à¬¾à¬²à¬¿à¬\95ାଭà­\81à¬\95à­\8dତ à¬¹à­\8bà¬\87ନାହିଁ...',
+'morenotlisted' => 'à¬\85ଧିà¬\95 à¬\95ିà¬\9bି à¬¤à¬¾à¬²à¬¿à¬\95ାରà­\87 ନାହିଁ...',
 'mypage' => 'ପୃଷ୍ଠା',
 'mytalk' => 'ଆଲୋଚନା',
-'anontalk' => 'ଏହି ଆଇ.ପି. ଠିକଣା ଉପରେ ଆଲୋଚନା',
+'anontalk' => 'ଏହି IP address ଉପରେ ଆଲୋଚନା',
 'navigation' => 'ଦିଗବାରେଣି',
 'and' => '&#32;ଓ',
 
 # Cologne Blue skin
 'qbfind' => 'ଖୋଜନ୍ତୁ',
-'qbbrowse' => 'à¬\96à­\8bà¬\9cିବା',
-'qbedit' => 'à¬\8fହାà¬\95à­\81 à¬¬à¬¦à¬³à¬¾à¬¨à­\8dତà­\81',
+'qbbrowse' => 'ବà­\8dରାà¬\89à¬\9c',
+'qbedit' => 'ସମà­\8dପାଦନା (Edit)',
 'qbpageoptions' => 'ଏହି ପୃଷ୍ଠାଟି',
 'qbmyoptions' => 'ମୋ ପୃଷ୍ଠାଗୁଡ଼ିକ',
 'qbspecialpages' => 'ବିଶେଷ ପୃଷ୍ଠା',
@@ -424,13 +427,13 @@ $messages = array(
 'vector-action-protect' => 'କିଳିବେ',
 'vector-action-undelete' => 'ଲିଭାଇବେ ନାହିଁ',
 'vector-action-unprotect' => 'କିଳିବେ ନାହିଁ',
-'vector-simplesearch-preference' => 'ସହà¬\9c ଖୋଜା ବାରଟିକୁ ସଚଳ କରିବେ (କେବଳ ଭେକ୍ଟର ସ୍କିନ)',
-'vector-view-create' => 'à¬\97ଢ଼ନ୍ତୁ',
-'vector-view-edit' => 'à¬\8fହାà¬\95à­\81 à¬¬à¬¦à¬³à¬¾à¬¨à­\8dତà­\81',
+'vector-simplesearch-preference' => 'ସରଳ ଖୋଜା ବାରଟିକୁ ସଚଳ କରିବେ (କେବଳ ଭେକ୍ଟର ସ୍କିନ)',
+'vector-view-create' => 'ତିà¬\86ରି à¬\95ରନ୍ତୁ',
+'vector-view-edit' => 'ସମà­\8dପାଦନା (Edit)',
 'vector-view-history' => 'ଇତିହାସ',
 'vector-view-view' => 'ପଢ଼ନ୍ତୁ',
-'vector-view-viewsource' => 'ମà­\82ଳାଧାର à¬¦à­\87à¬\96ିବà­\87',
-'actions' => 'କାମ',
+'vector-view-viewsource' => 'ସà­\8bରà­\8dସ à¬¦à­\87à¬\96ନà­\8dତà­\81',
+'actions' => 'à¬\95ାରà­\8dଯà­\8dà­\9fà¬\95à­\8dରମ',
 'namespaces' => 'ନେମସ୍ପେସ',
 'variants' => 'ନିଆରା',
 
@@ -439,10 +442,10 @@ $messages = array(
 'returnto' => '$1କୁ ଫେରିଯାନ୍ତୁ ।',
 'tagline' => '{{SITENAME}} ରୁ',
 'help' => 'ସହଯୋଗ',
-'search' => 'à¬\96à­\8bà¬\9cିବà­\87',
-'searchbutton' => 'à¬\96à­\8bà¬\9cିବà­\87',
-'go' => 'ଯିବା',
-'searcharticle' => 'ଯିବା',
+'search' => 'à¬\96à­\8bà¬\9cନà­\8dତà­\81',
+'searchbutton' => 'à¬\96à­\8bà¬\9cନà­\8dତà­\81',
+'go' => 'ଯାà¬\86ନà­\8dତà­\81',
+'searcharticle' => 'ଯାà¬\86ନà­\8dତà­\81',
 'history' => 'ଫାଇଲ ଇତିହାସ',
 'history_short' => 'ଇତିହାସ',
 'updatedmarker' => 'ମୋ ଶେଷ ଆସିବା ପରେ ଅପଡେଟ କରାଯାଇଅଛି',
@@ -450,8 +453,8 @@ $messages = array(
 'permalink' => 'ସବୁଦିନିଆ ଲିଙ୍କ',
 'print' => 'ପ୍ରିଣ୍ଟ କରିବେ',
 'view' => 'ଦେଖଣା',
-'edit' => 'à¬\8fହାà¬\95à­\81 à¬¬à¬¦à¬³à¬¾à¬¨à­\8dତà­\81',
-'create' => 'ତିà¬\86ରି à¬\95ରିବà­\87',
+'edit' => 'ସମà­\8dପାଦନା (Edit)',
+'create' => 'ତିà¬\86ରି à¬\95ରନà­\8dତà­\81',
 'editthispage' => 'ଏହି ପୃଷ୍ଠାଟିକୁ ବଦଳାଇବେ',
 'create-this-page' => 'ଏହି ପୃଷ୍ଠା ତିଆରି କରିବେ',
 'delete' => 'ଲିଭାଇବେ',
@@ -508,7 +511,6 @@ $1',
 'disclaimers' => 'ଆମେ ଦାୟୀ ନୋହୁଁ',
 'disclaimerpage' => 'Project:ଆମେ ଦାୟୀ ନୋହୁଁ',
 'edithelp' => 'ଲେଖା ସାହାଯ୍ୟ',
-'edithelppage' => 'Help:ବଦଳାଇବା',
 'helppage' => 'Help:ସୂଚୀ',
 'mainpage' => 'ପ୍ରଧାନ ପୃଷ୍ଠା',
 'mainpage-description' => 'ପ୍ରଧାନ ପୃଷ୍ଠା',
@@ -529,7 +531,7 @@ $1',
 'ok' => 'ଠିକ ଅଛି',
 'retrievedfrom' => '"$1" ରୁ ଅଣାଯାଇଅଛି',
 'youhavenewmessages' => 'ଆପଣଙ୍କ ପାଇଁ $1 ($2)।',
-'newmessageslink' => 'ନà­\82à¬\86 à¬¸à¬¨à­\8dଦà­\87ଶ',
+'newmessageslink' => 'ନà­\82à¬\86 à¬®à­\87ସà­\87à¬\9c',
 'newmessagesdifflink' => 'ଶେଷ ବଦଳ',
 'youhavenewmessagesfromusers' => 'ଆପଣଙ୍କର {{PLURAL:$3|another user|$3 users}} ($2)ରୁ $1 ଅଛି ।',
 'youhavenewmessagesmanyusers' => 'ଆପଣଙ୍କର ବହୁତ ବ୍ୟବହାରକାରୀ($2)ମାନଙ୍କଠାରୁ $1 ଅଛି ।',
@@ -568,7 +570,7 @@ $1',
 'nstab-special' => 'ବିଶେଷ ପୃଷ୍ଠା',
 'nstab-project' => 'ପ୍ରକଳ୍ପ ପୃଷ୍ଠା',
 'nstab-image' => 'ଫାଇଲ',
-'nstab-mediawiki' => 'ସନà­\8dଦà­\87ଶ',
+'nstab-mediawiki' => 'ମà­\87ସà­\87à¬\9c',
 'nstab-template' => 'ଛାଞ୍ଚ',
 'nstab-help' => 'ସାହାଯ୍ୟ ପୃଷ୍ଠା',
 'nstab-category' => 'ଶ୍ରେଣୀ',
@@ -673,10 +675,10 @@ $2',
 'virus-unknownscanner' => 'ଅଜଣା ଆଣ୍ଟିଭାଇରସ:',
 
 # Login and logout pages
-'logouttext' => "'''à¬\86ପଣ à¬²à¬\97ାà¬\86à¬\89à¬\9f à¬\95ରିଦà­\87ଲà­\87'''
+'logouttext' => "'''ଲà¬\97-à¬\86à¬\89à¬\9f à¬¹à­\8bà¬\87à¬\97ଲା à¥¤'''
 
-à¬\86ପଣ à¬\85à¬\9cଣା à¬­à¬¾à¬¬à¬°à­\87 {{SITENAME}}à¬\95à­\81 à¬¯à¬¾à¬\87ପାରିବà­\87, à¬\95ିମà­\8dବା <span class='plainlinks'>[$1 à¬\86à¬\89ଥରà­\87]</span> à¬\86à¬\97ର à¬\87à¬\89à¬\9cର à¬¨à¬¾à¬\86à¬\81ରà­\87/à¬\85ଲà¬\97ା à¬¨à¬¾à¬\86à¬\81ରà­\87 à¬²à¬\97à¬\87ନ à¬\95ରିପାରିବà­\87 ।
-ଜାଣିରଖନ୍ତୁ, କିଛି ପୃଷ୍ଠା ଲଗାଆଉଟ କଲାପରେ ବି ଆଗପରି ଦେଖାଯାଇପାରେ, ଆପଣ ବ୍ରାଉଜର କାସକୁ ହଟାଇଲା ଯାଏଁ ଏହା ଏମିତି ରହିବ ।",
+à¬\86ପଣ à¬\85à¬\9aିହà­\8dନା à¬­à¬¾à¬¬à¬°à­\87 {{SITENAME}}à¬\95à­\81 à¬¯à¬¾à¬\87ପାରିବà­\87, à¬\95ିମà­\8dବା  à¬\86à¬\97ରà­\81 à¬²à¬\97-à¬\87ନ à¬\95ରିଥିବା Usernameରà­\87 <span class='plainlinks'>[$1 à¬\86à¬\89ଥରà­\87 à¬²à¬\97-à¬\87ନ à¬\95ରିପାରିବà­\87]</span> ।
+ଜାଣିରଖନ୍ତୁ, କିଛି ପୃଷ୍ଠା ଲଗ-ଆଉଟ କଲାପରେ ବି ଆଗପରି ଦେଖାଯାଇପାରେ,  ବ୍ରାଉଜରର Cache (ଅସ୍ଥାୟୀ ସ୍ମୃତି) ହଟାଇଲା ଯାଏଁ ଏହା ଏମିତି ରହିବ ।",
 'welcomeuser' => 'ସ୍ଵାଗତ, $1!',
 'welcomecreation-msg' => 'ଆପଣଙ୍କ ଖାତାଟି ଖୋଲାଗଲା
 ନିଜର [[Special:Preferences|{{SITENAME}} ପସନ୍ଦସବୁକୁ]] ବଦଳାଇବାକୁ ଭୁଲିବେ ନାହିଁ ।',
@@ -685,17 +687,20 @@ $2',
 'yourpassword' => 'ପାସୱାର୍ଡ଼',
 'userlogin-yourpassword' => 'ପାସୱାର୍ଡ଼',
 'userlogin-yourpassword-ph' => 'ଆପଣଙ୍କ ପାସୱାର୍ଡ଼ ନିବେଶ କରନ୍ତୁ',
+'createacct-yourpassword-ph' => 'ପାସୱର୍ଡ଼ ନିବେଶ କରନ୍ତୁ',
 'yourpasswordagain' => 'ପାସୱାର୍ଡ଼ ଆଉଥରେ:',
+'createacct-yourpasswordagain' => 'ପାସୱର୍ଡ଼ ନିଶ୍ଚିତ କରିବେ',
+'createacct-yourpasswordagain-ph' => 'ପୁଣି ପାସୱର୍ଡ଼ ନିବେଶ କରନ୍ତୁ',
 'remembermypassword' => 'ଏହି ବ୍ରାଉଜରରେ (ସବୁଠୁ ଅଧିକ ହେଲେ $1 {{PLURAL:$1|day|ଦିନ}}) ପାଇଁ ମୋ ଲଗଇନ ମନେ ରଖିଥିବେ',
 'securelogin-stick-https' => 'ଲଗ ଇନ କଲାପରେ HTTPS ସହ ଯୋଡ଼ି ହୋଇ ରହନ୍ତୁ',
 'yourdomainname' => 'ଆପଣଙ୍କ ଡୋମେନ:',
 'password-change-forbidden' => 'ଆପଣ ଏହି ଉଇକିରେ ପାସୱାର୍ଡ ବଦଳାଇ ପାରିବେ ନାହିଁ ।',
 'externaldberror' => 'ବୋଧ ହୁଏ ଚିହ୍ନଟ ଡାଟାବେସ ଭୁଲଟିଏ ହୋଇଥିଲା ବା ଆପଣଙ୍କୁ ନିଜର ବାହାର ଖାତା ଅପଡେଟ କରିବା ନିମନ୍ତେ ଅନୁମତି ମିଳିନାହିଁ ।',
-'login' => 'ଲଗଇନ',
+'login' => 'ଲଗ-ଇନ (Log in)',
 'nav-login-createaccount' => 'ଲଗ ଇନ /ନୂଆ ଖାତା ଖୋଲନ୍ତୁ',
 'loginprompt' => "{{SITENAME}}ରେ ଲଗ ଇନ କରିବାପାଇଁ ଆପଣଙ୍କୁ '''କୁକି''' ସଚଳ କରିବାକୁ ପଡ଼ିବ ।",
 'userlogin' => 'ଲଗ ଇନ /ନୂଆ ଖାତା ଖୋଲନ୍ତୁ',
-'userloginnocreate' => 'ଲଗ ଇନ',
+'userloginnocreate' => 'ଲଗ-ଇନ (Log in)',
 'logout' => 'ଲଗଆଉଟ',
 'userlogout' => 'ଲଗ ଆଉଟ',
 'notloggedin' => 'ଲଗ‌‌ ଇନ କରିନାହାନ୍ତି',
@@ -704,10 +709,16 @@ $2',
 'nologinlink' => 'ନୂଆ ଖାତାଟିଏ ଖୋଲନ୍ତୁ',
 'createaccount' => 'ନୂଆ ଖାତାଟିଏ ଖୋଲନ୍ତୁ',
 'gotaccount' => 'ଆଗରୁ ଖାତାଟିଏ ଅଛି କି? $1.',
-'gotaccountlink' => 'ଲଗ ଇନ',
+'gotaccountlink' => 'ଲଗ ଇନ (Log in)',
 'userlogin-resetlink' => 'ଲଗଇନ ତଥ୍ୟ ସବୁ ଭୁଲିଗେଲେକି?',
+'createacct-emailrequired' => 'ଇମେଲ ଠିକଣା',
+'createacct-emailoptional' => 'ଇମେଲ ଠିକଣା (ଇଚ୍ଛାଧୀନ)',
+'createacct-email-ph' => 'ଆପଣଙ୍କ ଇମେଲ ଠିକଣା ନିବେଶ କରନ୍ତୁ',
 'createaccountmail' => 'ଗୋଟିଏ ସାମୟିକ ଜାହିତାହି ପାସୱାର୍ଡ ବ୍ୟବହାର କରନ୍ତୁ ଏବଂ ଏହାକୁ ତଳେ ଦିଆଯାଇଥିବା ଇ-ମେଲ ଠିକଣାକୁ ପଠେଇ ଦିଅନ୍ତୁ',
+'createacct-realname' => 'ପ୍ରକୃତ ନାମ (ଇଚ୍ଛାଧୀନ)',
 'createaccountreason' => 'କାରଣ:',
+'createacct-reason' => 'କାରଣ',
+'createacct-reason-ph' => 'ଆପଣ ଅନ୍ୟଏକ ଖାତା କାହିଁକି ତିଆରି କରୁଛନ୍ତି',
 'badretype' => 'ଆପଣ ଦେଇଥିବା ପାସବାର୍ଡ଼ଟି ମେଳଖାଉନାହିଁ ।',
 'userexists' => 'ଆପଣ ଦେଇଥିବା ଇଉଜର ନାମ ଆଗରୁ ଅଛି ।
 ଦୟାକରି ଅଲଗା ନାମଟିଏ ବାଛନ୍ତୁ ।',
@@ -722,8 +733,8 @@ $2',
 'nocookiesfornew' => 'ଯେହେତୁ ଆମ୍ଭେ ଏହାର ମୂଳାଧାର ଜାଣିପାରିଲୁ ନାହିଁ ଏହି ଇଉଜର ଖାତାଟି ତିଆରି କରାଗଲା ନାହିଁ ।
 ଥୟ କରନ୍ତୁ କି ଆପଣ କୁକି ସଚଳ କରିଅଛନ୍ତି, ପୃଷ୍ଠାଟିକୁ ଆଉଥରେ ଲୋଡ଼ କରି ଚେଷ୍ଟା କରନ୍ତୁ ।',
 'noname' => 'ଆପଣ ଗୋଟିଏ ବୈଧ ଇଉଜର ନାମ ଦେଇନାହାନ୍ତି ।',
-'loginsuccesstitle' => 'ଠିକଭାବେ ଲଗଇନ ହେଲା',
-'loginsuccess' => "'''à¬\86ପଣ {{SITENAME}}ରà­\87 \"\$1\" à¬­à¬¾à¬¬à¬°à­\87 à¬²à¬\97ଇନ କରିଛନ୍ତି ।'''",
+'loginsuccesstitle' => 'ଠିକଭାବେ ଲଗ-ଇନ ହେଲା',
+'loginsuccess' => "'''à¬\86ପଣ {{SITENAME}}ରà­\87 \"\$1\" à¬¨à¬¾à¬®à¬°à­\87 à¬²à¬\97-ଇନ କରିଛନ୍ତି ।'''",
 'nosuchuser' => '"$1" ନାମରେ କେହି ଜଣେ ବି ସଭ୍ୟ ନାହାନ୍ତି ।
 ଇଉଜର ନାମ ଇଂରାଜୀ ଛୋଟ ଓ ବଡ଼ ଅକ୍ଷର ପ୍ରତି ସମ୍ବେଦନଶୀଳ ।
 ଆପଣ ନିଜର ବନାନ ପରଖି ନିଅନ୍ତୁ, ଅଥବା [[Special:UserLogin/signup|ନୂଆ ଖାତାଟିଏ ତିଆରି କରନ୍ତୁ]] ।',
@@ -810,11 +821,9 @@ continue using your old password.',
 
 # Special:PasswordReset
 'passwordreset' => 'ପାସୱାର୍ଡ଼ ପୁନସ୍ଥାପନ କରନ୍ତୁ',
-'passwordreset-text' => 'ନିଜ ପାସୱାର୍ଡ଼କୁ ପୁନଃସ୍ଥାପନ କରିବା ପାଇଁ ଏହି ଆବେଦନ ପତ୍ରଟି ପୂରଣ କରନ୍ତୁ ।',
 'passwordreset-legend' => 'ପାସୱାର୍ଡ଼ ପୁନସ୍ଥାପନ କରନ୍ତୁ',
 'passwordreset-disabled' => 'ପାସୱାର୍ଡ଼କୁ ପୁରାପୁରି ମୂଳକୁ ଫେରାଇବା ଏହି ଉଇକିରେ ଅଚଳ କରାଯାଇଅଛି ।',
 'passwordreset-emaildisabled' => 'ଏହି ଉଇକିରେ ଇମେଲ ସୁବିଧା ଅଚଳ କରାଯାଇଅଛି ।',
-'passwordreset-pretext' => '{{PLURAL:$1||ତଳେ ଥିବା ତଥ୍ୟସମୂହରୁ କୌଣସି ଗୋଟିଏ ଦିଅନ୍ତୁ}}',
 'passwordreset-username' => 'ବ୍ୟବହାରକାରୀଙ୍କ ନାମ:',
 'passwordreset-domain' => 'ଡୋମେନ:',
 'passwordreset-capture' => 'ଯାଉଥିବା ଇ-ମେଲଟି ଦେଖିବେ?',
@@ -879,13 +888,13 @@ $2
 'subject' => 'ବିଷୟ/ଶିରୋନାମା',
 'minoredit' => 'ଏହା ଖୁବ ଛୋଟ ବଦଳଟିଏ',
 'watchthis' => 'ଏହି ପୃଷ୍ଠାଟିକୁ ଦେଖିବେ',
-'savearticle' => 'ସାଇତିବେ',
-'preview' => 'ସାà¬\87ତା à¬\86à¬\97ରà­\81 à¬¦à­\87à¬\96ଣା',
-'showpreview' => 'ଦେଖଣା',
+'savearticle' => 'ସାଇତିବେ [Save]',
+'preview' => 'ସାà¬\87ତିବା à¬\86à¬\97ରà­\81 à¬¦à­\87à¬\96ନà­\8dତà­\81',
+'showpreview' => 'ଦେଖଣା [Preview]',
 'showlivepreview' => 'ଜୀବନ୍ତ ଦେଖଣା',
 'showdiff' => 'ବଦଳଗୁଡ଼ିକ ଦେଖାଇବେ',
-'anoneditwarning' => "'''à¬\9cାଣିରà¬\96ନà­\8dତà­\81:''' à¬\86ପଣ à¬²à¬\97ଇନ କରିନାହାନ୍ତି ।
-ଏହି ପୃଷ୍ଠାର ଇତିହାସରେ ଆପଣଙ୍କ ଆଇପି ଠିକଣାଟି ସାଇତା ହୋଇଯିବ ।",
+'anoneditwarning' => "'''ସାବଧାନ:''' à¬\86ପଣ à¬²à¬\97-ଇନ କରିନାହାନ୍ତି ।
+ଏହି ପୃଷ୍ଠାର ଇତିହାସରେ ଆପଣଙ୍କ IP Address ଟି ସାଇତା ହୋଇଯିବ ।",
 'anonpreviewwarning' => "''ଆପଣ ଲଗ ଇନ କରି ନାହାନ୍ତି । ବଦଳକରି ସାଇତିଲେ ଆପଣଙ୍କର IP ଠିକଣା ଏହି ପୃଷ୍ଠାର ଇତିହାସରେ ସାଇତା ହୋଇଯିବ ।''",
 'missingsummary' => "'''ଚେତାବନୀ:''' ଆପଣ ଏକ ସମ୍ପାଦନା ସାରକଥା ଦେଇନାହାନ୍ତି ।
 ଯଦି ଆପଣ \"{{int:savearticle}}\"ରେ ଆଉଥରେ କ୍ଲିକ କରନ୍ତି, ତେବେ ଆପଣଙ୍କ ବଦଳ ସାରକଥା ବିନା ସାଇତା ହୋଇଯିବ ।",
@@ -931,7 +940,7 @@ $1 ଦ୍ଵାରା ପ୍ରତିରୋଧ କରାଯାଇଛି
 'nosuchsectiontext' => 'ଆପଣ ସମ୍ପାଦନା କରିବାକୁ ଚେଷ୍ଟା କରୁଥିବା ବିଭାଗଟି ଏଯାଏଁ ତିଆରି କରାଯାଇ ନାହିଁ ।
 ଆପଣ ଏହି ପୃଷ୍ଠାଟି ଦେଖିବା ବେଳେ ତାହାକୁ ଘୁଞ୍ଚାଇ ବା ଲିଭାଇ ଦିଆଯାଇ ଥାଇପାରେ ।',
 'loginreqtitle' => 'ଲଗ ଇନ ଲୋଡ଼ା',
-'loginreqlink' => 'ଲଗଇନ',
+'loginreqlink' => 'ଲଗ-ଇନ (Log in)',
 'loginreqpagetext' => 'ବାକି ପୃଷ୍ଠାମାନ ଦେଖିବା ନିମନ୍ତେ ଆପଣଙ୍କୁ $1 କରିବାକୁ ପଡ଼ିବ ।',
 'accmailtitle' => 'ପାସୱାର୍ଡ଼ଟି ପଠାଇ ଦିଆଗଲା ।',
 'accmailtext' => "[[User talk:$1|$1]]ଙ୍କ ନିମନ୍ତେ ଏକ ଯାହିତାହି ପାସୱାର୍ଡ଼ $2ଙ୍କ ନିକଟକୁ ପଠାଗଲା ।
@@ -1063,6 +1072,7 @@ $1 ଦ୍ଵାରା ପ୍ରତିରୋଧ କରାଯାଇଛି
 ଏହାକୁ ଲିଭାଇ ଦିଆଗଲା ପରି ମନେ ହେଉଛି ।',
 'edit-conflict' => 'ବଦଳାଇବା ଦ୍ଵନ୍ଦ.',
 'edit-no-change' => 'ଆପଣଙ୍କ ସମ୍ପାଦନାକୁ ଅଣଦେଖା କରାଗଲା, କାରଣ ଲେଖାରେ କିଛି ବି ବଦଳ କରାଯାଇନଥିଲା ।',
+'postedit-confirmation' => 'ଆପଣଙ୍କ ବଦଳ ସାଇତା ଗଲା ।',
 'edit-already-exists' => 'ନୂଆ ପୃଷ୍ଠାଟିଏ ତିଆରି କରିପାରିଲୁଁ ନାହିଁ ।
 ଏହା ଆଗରୁ ଅଛି ।',
 'defaultmessagetext' => 'ଡିଫଲ୍ଟ ମେସେଜ ଲେଖାଗୁଡିକ',
@@ -1279,7 +1289,7 @@ $1",
 
 # Diffs
 'history-title' => '"$1" ର ପୁନରାବୃତି ଇତିହାସ',
-'difference-title' => '"$1"ର ପୁନରାବୃତିଗୁଡିକରେ ପାର୍ଥକ୍ୟ',
+'difference-title' => '"$1" ପୃଷ୍ଠାର ସଂସ୍କରଣ‌ଗୁଡ଼ିକ ମଧ୍ୟରେ ତଫାତ',
 'difference-title-multipage' => 'ପୃଷ୍ଠା "$1" ଏବଂ "$2" ମଧ୍ୟରେ ଥିବା ପାର୍ଥକ୍ୟ',
 'difference-multipage' => '(ପୃଷ୍ଠା ଭିତରେ ଥିବା ତଫାତ)‌',
 'lineno' => '$1 କ ଧାଡ଼ି:',
@@ -1313,7 +1323,6 @@ $1",
 'searchmenu-legend' => 'ଖୋଜିବା ବିକଳ୍ପ',
 'searchmenu-exists' => "'''ଏହି ଉଇକିରେ \"[[:\$1]]\" ନାଆଁରେ ପୃଷ୍ଠାଟିଏ ଅଛି ।'''",
 'searchmenu-new' => "'''ଏହି ପ୍ରସଙ୍ଗଟି ଆଗରୁ ନାହିଁ, ତେଣୁ ''[[:$1]]'' ନାମରେ ପ୍ରସଙ୍ଗଟିଏ ଏଠାରେ ଗଢ଼ନ୍ତୁ!'''",
-'searchhelp-url' => 'Help:ସୂଚୀ',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|ଏହି ନାମ ଆଗରୁ ଥିବା ପୃଷ୍ଠାସବୁ ଖୋଜିବେ]]',
 'searchprofile-articles' => 'ସୂଚୀ ପୃଷ୍ଠା',
 'searchprofile-project' => 'ସାହାଯ୍ୟ ଓ ପ୍ରକଳ୍ପ ପୃଷ୍ଠା',
@@ -1386,11 +1395,10 @@ $1",
 'prefs-setemail' => 'ଇ-ମେଲ ଠିକଣାଟିଏ  ଥୟ କରିବେ',
 'prefs-email' => 'ଇ-ମେଲ ବିକଳ୍ପମାନ',
 'prefs-rendering' => 'ଦେଖଣା',
-'saveprefs' => 'ସାଇତିବେ',
+'saveprefs' => 'ସାଇତିବେ [Save]',
 'resetprefs' => 'ସାଇତା ହୋଇନଥିବା ବଦଳ ଲିଭାଇଦେବେ',
 'restoreprefs' => 'ଆପେଆପେ ଥିବା ମୂଳ ସଜାଣିକୁ ଫେରିଯିବେ',
 'prefs-editing' => 'ସମ୍ପାଦନା',
-'prefs-edit-boxsize' => 'ସମ୍ପାଦନା ଘରର ଆକାର ।',
 'rows' => 'ଧାଡ଼ି:',
 'columns' => 'ସ୍ତମ୍ଭସବୁ:',
 'searchresultshead' => 'ଖୋଜିବା',
@@ -1401,9 +1409,6 @@ $1",
 'recentchangesdays-max' => 'ସବୁଠାରୁ ଅଧିକ ହେଲେ $1 {{PLURAL:$1|ଦିନ|ଦିନ}}',
 'recentchangescount' => 'ଆପେଆପେ ଦେଖାଯାଉଥିବା ବଦଳର ସଂଖ୍ୟା:',
 'prefs-help-recentchangescount' => 'ଏଥିରେ ନଗଦ ବଦଳ, ପୃଷ୍ଠାର ଇତିହାସ ଓ ଲଗ ଇତିହାସ ରହିଅଛି ।',
-'prefs-help-watchlist-token' => 'ଏହି ଘରେ ଏକ ଗୋପନ ଲେଖା ଦେଲେ RSS ଫିଡ଼ଟିଏ ଆପଣଙ୍କ ଦେଖଣାତାଲିକାରେ ତିଆରିବ ।
-ଗୋପନ ଲେଖା ଜାଣିଥିବା କେହି ବି ଏହି ଘରେ ଆପଣଙ୍କ ଦେଖଣାତାଲିକା ଦେଖିପାରିବ, ତେଣୁ ଏକ ସୁରକ୍ଷିତ ନାମ ଦିଅନ୍ତୁ ।
-ଏଠାରେ ଏକ ଇଆଡୁ ସିଆଡୁ ନାମ ଆପଣଙ୍କ ଜାଣିବା ପାଇଁ ଦିଆଗଲା: $1',
 'savedprefs' => 'ଆପଣଙ୍କ ପସନ୍ଦସବୁ ସାଇତାଗଲା ।',
 'timezonelegend' => 'ସମୟ ମଣ୍ଡଳ:',
 'localtime' => 'ସ୍ଥାନୀୟ ସମୟ:',
@@ -1434,7 +1439,6 @@ $1",
 'prefs-reset-intro' => 'ଆପଣ ଏହି ପୃଷ୍ଠାଟି ବ୍ୟବହାର କରି ଆପଣା ପସନ୍ଦସବୁକୁ ସାଇଟର ଆରମ୍ଭରେ ଥିବା ସଜାଣିକୁ ଲେଉଟାଇଦେଇପାରିବେ ।
 ଏହାକୁ ପଛକୁ ଫେରାଯାଇପାରିବ ନାହିଁ',
 'prefs-emailconfirm-label' => 'ଇ-ମେଲ ସଜାଣି:',
-'prefs-textboxsize' => 'ସମ୍ପାଦନା ଘରର ଆକାର',
 'youremail' => 'ଇ-ମେଲ:',
 'username' => '{{GENDER:$1|Username}}:',
 'uid' => '{{GENDER:$1|User}} ID:',
@@ -1468,7 +1472,7 @@ HTML ଟାଗ ପରଖିନିଅନ୍ତୁ ।',
 'prefs-signature' => 'ସନ୍ତକ',
 'prefs-dateformat' => 'ତାରିଖ ସଜାଣି',
 'prefs-timeoffset' => 'ସମୟ ଆରମ୍ଭ',
-'prefs-advancedediting' => 'à¬\89ନà­\8dନତ à¬¬à¬¿à¬\95ଳà­\8dପସମà­\82ହ',
+'prefs-advancedediting' => 'ସାଧାରଣ',
 'prefs-advancedrc' => 'ଉନ୍ନତ ବିକଳ୍ପସମୂହ',
 'prefs-advancedrendering' => 'ଉନ୍ନତ ବିକଳ୍ପସମୂହ',
 'prefs-advancedsearchoptions' => 'ଉନ୍ନତ ବିକଳ୍ପସମୂହ',
@@ -1676,7 +1680,6 @@ HTML ଟାଗ ପରଖିନିଅନ୍ତୁ ।',
 'recentchangeslinked-feed' => 'ଯୋଡ଼ାଥିବା ବଦଳ',
 'recentchangeslinked-toolbox' => 'ଯୋଡ଼ାଥିବା ବଦଳ',
 'recentchangeslinked-title' => '"$1" ସାଁଗରେ ଜୋଡ଼ାଥିବା ବଦଳ',
-'recentchangeslinked-noresult' => 'ଯୋଡ଼ାଯାଇଥିବା ପୃଷ୍ଠା ସବୁରେ ଏଇ ସମୟସୀମା ଭିତରେ କିଛି ବଦଳାଯାଇନାହିଁ ।',
 'recentchangeslinked-summary' => "ଏଇଟି କିଛିସମୟ ଆଗରୁ ନିର୍ଦ୍ଦିଷ୍ଟ ପୃଷ୍ଠାରୁ ଲିଙ୍କ ହୋଇଥିବା ଆଉ ବଦଳାଯାଇଥିବା (ଅବା ଗୋଟିଏ ନିର୍ଦ୍ଦିଷ୍ଟ ଶ୍ରେଣୀର) ପୃଷ୍ଠାସବୁର ତାଲିକା ।  [[Special:Watchlist|ମୋର ଦେଖାତାଲିକା]]ର ପୃଷ୍ଠା ସବୁ '''ବୋଲଡ଼'''।",
 'recentchangeslinked-page' => 'ଫରଦର ନାଆଁ',
 'recentchangeslinked-to' => 'ଦିଆଯାଇଥିବା ଫରଦରେ ଯୋଡ଼ା ବାକି ଫରଦମାନଙ୍କର ବଦଳ ସବୁ ଦେଖାନ୍ତୁ ।',
@@ -2299,7 +2302,7 @@ URLଟି ଠିକ ଅଚିକି କି ନାଁ ଓ ସାଇଟଟି ସ
 
 # User Messenger
 'usermessage-summary' => 'ସିଷ୍ଟମ ମେସେଜକୁ ଛାଡୁଛି ।',
-'usermessage-editor' => 'ସିଷà­\8dà¬\9fମ à¬¦à­\82ତ',
+'usermessage-editor' => 'ସିଷà­\8dà¬\9fମ à¬®à­\87ସà­\87à¬\9eà­\8dà¬\9cର',
 
 # Watchlist
 'watchlist' => 'ଦେଖଣାତାଲିକା',
@@ -2320,10 +2323,9 @@ URLଟି ଠିକ ଅଚିକି କି ନାଁ ଓ ସାଇଟଟି ସ
 'unwatchthispage' => 'ଦେଖନ୍ତୁ ନାହିଁ',
 'notanarticle' => 'ବିଷୟବସ୍ତୁର ପୃଷ୍ଠାଟିଏ ନୁହେଁ',
 'notvisiblerev' => 'ଜଣେ ଅଲଗା ବ୍ୟବହାରକାରୀଙ୍କ ଦେଇ କରାଯାଇଥିବା ସେଶ ସଂସ୍କରଣଟି ଲିଭାଇଦିଆଗଲା ।',
-'watchnochange' => 'ଆପଣଙ୍କ ଦେଇ ଦେଖାଯାଇଥିବା ସମୟ ସୀମା ଭିତରେ କୌଣସିଟି ପୃଷ୍ଠାର ବଦଳ କରାଯାଇନାହିଁ ।',
 'watchlist-details' => 'ଆପଣଙ୍କ ଦେଖଣା ତାଲିକାରେ ଆଲୋଚନା ପୃଷ୍ଠାକୁ ଛାଡ଼ି {{PLURAL:$1|$1 ଟି ପୃଷ୍ଠା|$1 ଟି ପୃଷ୍ଠା}} ଅଛି ।',
-'wlheader-enotif' => 'ଇ-ମେଲ ସୂଚନାକୁ ସଚଳ କରାଗଲା ।',
-'wlheader-showupdated' => "à¬\86ପଣ à¬¶à­\87ଷଥର à¬¦à­\87à¬\96ିଥିବା à¬ªà­\83ଷà­\8dଠାà¬\97à­\81ଡ଼ିà¬\95 '''ମà­\8bà¬\9fା à¬\85à¬\95à­\8dଷର'''ରà­\87 à¬¦à­\87à¬\96ାଯାà¬\87ଅଛି ।",
+'wlheader-enotif' => 'ଇମେଲ ସୂଚନା ସଚଳ କରାଗଲା ।',
+'wlheader-showupdated' => "à¬\86ପଣ à¬¶à­\87ଷଥର à¬¦à­\87à¬\96ିଥିବା à¬ªà­\83ଷà­\8dଠାà¬\97à­\81ଡ଼ିà¬\95 '''ମà­\8bà¬\9fା à¬\85à¬\95à­\8dଷର'''ରà­\87 à¬¦à­\87à¬\96ାଯାà¬\89ଅଛି ।",
 'watchmethod-recent' => 'ଏଡଖାଯାଇଥିବା ପୃଷ୍ଠାର ନଗଦ ବଦଳ ପରଖୁଛୁଁ',
 'watchmethod-list' => 'ନଗଦ ବଦଳ ନିମନ୍ତେ ଦେଖାଯାଇଥିବା ପୃଷ୍ଠାମାନ ପରଖୁଛୁଁ',
 'watchlistcontains' => 'ଆପଣଙ୍କ ଦେଖଣାତାଲିକାରେ $1 {{PLURAL:$1|ଗୋଟି ପୃଷ୍ଠା|ଗୋଟି ପୃଷ୍ଠା}} ରହିଅଛି ।',
@@ -2574,7 +2576,7 @@ $1',
 'mycontris' => 'ଅବଦାନ',
 'contribsub2' => '$1 ($2) ପାଇଁ',
 'nocontribs' => 'ଏହି ନିର୍ଣ୍ଣାୟକବଳୀ ନିମନ୍ତେ କିଛି ବି ବଦଳ ମେଳ ଖାଇଲା ନାହିଁ ।',
-'uctop' => '(à¬\89ପର)',
+'uctop' => '(à¬\8fବà­\87à¬\95ାର)',
 'month' => 'ମାସରୁ (ଓ ତା ଆଗରୁ)',
 'year' => 'ବର୍ଷରୁ (ଆଉ ତା ଆଗରୁ)',
 
@@ -2887,7 +2889,7 @@ MediaWiki ବ୍ୟବହାର କରି [[Special:Import|ପୃଷ୍ଠା 
 'export-pagelinks' => 'ଯୋଡ଼ାଯାଇଥିବା ପୃଷ୍ଠାର ଗଭୀରତା:',
 
 # Namespace 8 related
-'allmessages' => 'ସିଷà­\8dà¬\9fମ à¬¸à¬¨à­\8dଦà­\87ଶ',
+'allmessages' => 'ସିଷà­\8dà¬\9fମ à¬®à­\87ସà­\87à¬\9c',
 'allmessagesname' => 'ନାମ',
 'allmessagesdefault' => 'ଆପେଆପେ ଚିଠିରେ ରହିବା କଥା',
 'allmessagescurrent' => 'ଏବେକର ସନ୍ଦେଶ ଲେଖା',
@@ -2996,7 +2998,7 @@ MediaWiki ବ୍ୟବହାର କରି [[Special:Import|ପୃଷ୍ଠା 
 'tooltip-pt-preferences' => 'ମୋ ପସନ୍ଦ',
 'tooltip-pt-watchlist' => 'ବଦଳ ପାଇଁ ଆପଣ ଦେଖାଶୁଣା କରୁଥିବା ପୃଷ୍ଠାଗୁଡ଼ିକର ତାଲିକା',
 'tooltip-pt-mycontris' => 'ଆପଣଙ୍କ ଅବଦାନ',
-'tooltip-pt-login' => 'ଆପଣଙ୍କୁ ଲଗଇନ କରିବାକୁ କୁହାଯାଉଅଛି ସିନା, ବାଧ୍ୟ କରାଯାଉନାହିଁ',
+'tooltip-pt-login' => 'ଆପଣଙ୍କୁ ଲଗ-ଇନ କରିବାକୁ କୁହାଯାଉଅଛି ସିନା, ବାଧ୍ୟ କରାଯାଉନାହିଁ',
 'tooltip-pt-anonlogin' => 'ଆପଣଙ୍କୁ ଲଗଇନ କରିବାକୁ କୁହାଯାଉଅଛି ସିନା, ବାଧ୍ୟ କରାଯାଉନାହିଁ',
 'tooltip-pt-logout' => 'ଲଗଆଉଟ',
 'tooltip-ca-talk' => 'ଏହି ପୃଷ୍ଠାଟି ଉପରେ ଆଲୋଚନା',
@@ -3045,7 +3047,7 @@ MediaWiki ବ୍ୟବହାର କରି [[Special:Import|ପୃଷ୍ଠା 
 'tooltip-ca-nstab-category' => 'ଶ୍ରେଣୀ ପୃଷ୍ଠାଟିକୁ ଦେଖାଇବେ',
 'tooltip-minoredit' => 'ଏହାକୁ ଏକ ଛୋଟ ବଦଳ ଭାବେ ଗଣିବେ',
 'tooltip-save' => 'ବଦଳଗୁଡ଼ିକ ସାଇତିବେ',
-'tooltip-preview' => 'à¬\86ପଣନà­\8dà¬\95 à¬¬à¬¦à¬³ à¬¦à­\87à¬\96ିନିà¬\85ନà­\8dତà­\81, à¬¸à¬¾à¬\87ତିବା à¬\86à¬\97ରà­\81 à¬\8fହା à¬¬à­\8dà­\9fà­\8dà¬\85ବହାର à¬\95ରନ୍ତୁ!',
+'tooltip-preview' => 'ସାà¬\87ତିବା à¬\86à¬\97ରà­\81 à¬\95ରିଥିବା à¬¬à¬¦à¬³ à¬ªà¬°à¬\96ିନିà¬\85ନ୍ତୁ!',
 'tooltip-diff' => 'ଏହି ଲେଖାରେ ଆପଣ କରିଥିବା ବଦଳଗୁଡିକୁ ଦେଖନ୍ତୁ ।',
 'tooltip-compareselectedversions' => 'ଏହି ଫରଦର ଦୁଇଟି ବଛାଯାଇଥିବା ସଁକଳନକୁ ତଉଲିବା',
 'tooltip-watch' => 'ଆପଣଙ୍କ ଦେଖାତାଲିକାରେ ଏଇ ପୃଷ୍ଠାଟି ମିଶାଇବେ',
@@ -3811,7 +3813,6 @@ $5
 'version-other' => 'ବାକି',
 'version-mediahandlers' => 'ମିଡ଼ିଆ ହ୍ୟାଣ୍ଡଲର',
 'version-hooks' => 'ହୁକ',
-'version-extension-functions' => 'ଏକ୍ସଟେନସନ କାମସବୁ',
 'version-parser-extensiontags' => 'ପାର୍ସର ଏକ୍ସଟେନସନ ଚିହ୍ନ',
 'version-parser-function-hooks' => 'ପାର୍ସର କାମ ହୁକ',
 'version-hook-name' => 'ହୁକ ନାମ',
@@ -3851,7 +3852,7 @@ MediaWiki ଉପଯୋଗୀ ହେବା ଲକ୍ଷରେ ବଣ୍ଟାଯ
 * <span class="mw-specialpagerestricted">କିଳାଯାଇଥିବା ବିଶେଷ ପୃଷ୍ଠାମାନ ।</span>',
 'specialpages-group-maintenance' => 'ରକ୍ଷଣାବେକ୍ଷଣା ବିବରଣୀ',
 'specialpages-group-other' => 'ବାକି ବିଶେଷ ପୃଷ୍ଠା',
-'specialpages-group-login' => 'ଲଗଇନ / ଖାତା ଖୋଲିବେ',
+'specialpages-group-login' => 'ଲଗ-ଇନ (Log in)/ ନୂଆ ଖାତା ଖୋଲିବେ (Sign up)',
 'specialpages-group-changes' => 'ନଗଦ ବଦଳ ଓ ଇତିହାସ',
 'specialpages-group-media' => 'ମିଡ଼ିଆ ବିବରଣୀ ଓ ଅପଲୋଡ଼',
 'specialpages-group-users' => 'ବ୍ୟବହାରକାରୀଗଣ ଓ ଅଧିକାରମାନ',
@@ -3955,13 +3956,13 @@ MediaWiki ଉପଯୋଗୀ ହେବା ଲକ୍ଷରେ ବଣ୍ଟାଯ
 'logentry-move-move_redir-noredirect' => '$1 $3 ପୃଷ୍ଠାଟି $4କୁ ପୁନପ୍ରେରଣକୁ ଛାଡ଼ି ପୁନପ୍ରେରଣ ବିନା ଘୁଞ୍ଚାଇଲେ',
 'logentry-patrol-patrol' => '$1 $3 ପୃଷ୍ଠାର $4 ତମ ସଙ୍କଳନକୁ ଜଗାଯାଇଅଛି ବୋଲି ଚିହ୍ନିତ କଲେ',
 'logentry-patrol-patrol-auto' => '$1 ଆପେଆପେ $3 ପୃଷ୍ଠାର $4 ତମ ସଙ୍କଳନକୁ ଜଗାଯାଇଅଛି ବୋଲି ଚିହ୍ନିତ କଲେ',
-'logentry-newusers-newusers' => 'ସଭ୍ୟ ଖାତା $1 ତିଆରି କରାଗଲା',
-'logentry-newusers-create' => 'ସଭ୍ୟ ଖାତା $1 ତିଆରି କରାଗଲା',
+'logentry-newusers-newusers' => 'ସଭ୍ୟ ଖାତା $1 {{GENDER:$2|ତିଆରି}} କରାଗଲା',
+'logentry-newusers-create' => 'ସଭ୍ୟ ଖାତା $1 {{GENDER:$2|ତିଆରି}} କରାଗଲା',
 'logentry-newusers-create2' => 'ସଭ୍ୟ ଖାତା $3ଟି $1 ଦ୍ଵାରା ତିଆରି କରାଗଲା',
 'logentry-newusers-byemail' => '$1ଙ୍କ ଦ୍ଵାରା $3 ବ୍ୟବହାରକାରୀ ଖାତାଟି ଖୋଳାଗଲା ଏବଂ ପାସୱାର୍ଡଟି ଇ-ମେଲ ଦ୍ଵାରା ପଠାଗଲା',
-'logentry-newusers-autocreate' => '$1 ଖାତାଟି ଆପେଆପେ ତିଆରିହେଲା',
+'logentry-newusers-autocreate' => 'ବ୍ୟବହାରକାରୀ ଖାତା $1 ଆପେଆପେ {{GENDER:$2|ତିଆରିହେଲା}}',
 'logentry-rights-rights' => '$1, $3 ପାଇଁ $4ରୁ $5କୁ ସଭ୍ୟପଦ ବଦଳାଇଲେ',
-'logentry-rights-rights-legacy' => '$1, $3 ପାଇଁ ଗୋଷ୍ଠୀ ସଭ୍ୟପଦ ବଦଳାଇଛି',
+'logentry-rights-rights-legacy' => '$1 ଗୋଷ୍ଠୀ ସଭ୍ୟପଦ $3 ପାଇଁ {{GENDER:$2|ବଦଳିଗଲା}}',
 'logentry-rights-autopromote' => '$1 ଆପେ ଆପେ $4ରୁ $5କୁ ଗଲେ',
 'rightsnone' => '(କିଛି ନାହିଁ)',
 
@@ -3983,7 +3984,7 @@ MediaWiki ଉପଯୋଗୀ ହେବା ଲକ୍ଷରେ ବଣ୍ଟାଯ
 
 # Search suggestions
 'searchsuggest-search' => 'ଖୋଜିବା',
-'searchsuggest-containing' => 'ଧାରଣ à¬¹à­\87à¬\89ଛି...',
+'searchsuggest-containing' => 'à¬\96à­\8bà¬\9cà­\81ଛି...',
 
 # API errors
 'api-error-badaccess-groups' => 'ଆପଣଙ୍କୁ ଏହି ଉଇକିରେ ଅପଲୋଡ଼ କରିବାକୁ ଅନୁମତି ଦିଆଯାଇନାହିଁ ।',
index 347739c..d112c5b 100644 (file)
@@ -427,7 +427,6 @@ $1',
 'disclaimers' => 'Бæрн',
 'disclaimerpage' => 'Project:Бæрн',
 'edithelp' => 'Ивынæн æххуыс',
-'edithelppage' => 'Help:Ивын',
 'helppage' => 'Help:Мидис',
 'mainpage' => 'Сæйраг фарс',
 'mainpage-description' => 'Сæйраг фарс',
@@ -613,7 +612,7 @@ $2',
 'yourpasswordagain' => 'Пароль ногæй бафысс:',
 'createacct-yourpasswordagain' => 'Сбæлвырд кæн пароль',
 'createacct-yourpasswordagain-ph' => 'Пароль ногæй бафысс',
-'remembermypassword' => 'Ð\91аÑ\85Ñ\8aÑ\83Ñ\8bдÑ\8b Ð¼Ã¦ ÐºÃ¦Ð½Ã¦Ð´ Ð°Ñ\88Ñ\8b Ð±Ñ\80аÑ\83зеÑ\80Ñ\8b (макÑ\81имÑ\83м $1 {{PLURAL:$1|бонмæ|бонмæ}})',
+'remembermypassword' => 'Ð\91аÑ\85Ñ\8aÑ\83Ñ\8bдÑ\8b Ð¼Ã¦ ÐºÃ¦Ð½Ã¦Ð´ Ð°Ñ\86Ñ\8b Ð±Ñ\80аÑ\83зеÑ\80Ñ\8b (макÑ\81имÑ\83м $1 {{PLURAL:$1|бонмæ}})',
 'userlogin-remembermypassword' => 'Системæйы мæ дар',
 'userlogin-signwithsecure' => 'Æдас бастдзинадæй',
 'securelogin-stick-https' => 'Дарддæр дæр HTTPS-ы уылты, бахизыны фæстæ',
@@ -755,11 +754,9 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'Пароль раппарæн',
-'passwordreset-text' => 'Байдзаг кæн ацы формæ, цæмæй райсай дæ пароль ногæй сæвæрай.',
 'passwordreset-legend' => 'Пароль раппарын',
 'passwordreset-disabled' => 'Парол фæлварын ацы викийы хицæн у.',
 'passwordreset-emaildisabled' => 'Электрон пост ацы викийы хицæн у.',
-'passwordreset-pretext' => '{{PLURAL:$1||Дæлдæр цы рардты хæйттæ ис, уыдонæй иу бафысс}}',
 'passwordreset-username' => 'Фæсномыг:',
 'passwordreset-domain' => 'Домен:',
 'passwordreset-capture' => 'Цы e-mail рауадис, уый æвдыст æрцæуæт?',
@@ -1057,7 +1054,6 @@ ASCII нысæнттæм чи нæ хауы, уыдон ивыны бынаты
 'viewprevnext' => 'Кæсын ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-exists' => "'''Ацы викийы ис фарс \"[[:\$1]]\" номимæ.'''",
 'searchmenu-new' => "'''Сараз фарс \"[[:\$1]]\" ацы викийы!'''",
-'searchhelp-url' => 'Help:Мидис',
 'searchprofile-articles' => 'Мидисы фæрстæ',
 'searchprofile-project' => 'Æххуыс æмæ Проекты фæрстæ',
 'searchprofile-images' => 'Мультимеди',
@@ -1256,7 +1252,6 @@ $3',
 'recentchangeslinked-feed' => 'Баст ивдтытæ',
 'recentchangeslinked-toolbox' => 'Баст ивдтытæ',
 'recentchangeslinked-title' => '"{{grammar:comitative|$1}}" баст ивдтытæ',
-'recentchangeslinked-noresult' => 'Нæй баст фæрсты ивдтытæ амынд рæстæджы',
 'recentchangeslinked-summary' => "Адон сты фæстаг рæстæджы ивдтытæ ахæм уацты, кæдонмæ æрвиты амынд фарс (кæнæ амынд категорийы уæнгтæ). [[Special:Watchlist|Дæ цæстдард фæрстæ]] сты '''бæзджынæй''' нысангонд.",
 'recentchangeslinked-page' => 'Фарсы ном:',
 'recentchangeslinked-to' => 'Уый бæсты равдисæт амынд фарсмæ æрвитгæ фæрсты ивдтытæ',
@@ -1449,7 +1444,6 @@ $3',
 'watch' => 'Цæст æрдарын',
 'watchthispage' => 'Цæст дарын ацы фарсмæ',
 'unwatch' => 'Нал дарын цæст',
-'watchnochange' => 'Дæ цæстдард уацтæй иу дæр ивд не ’рцыдис.',
 'watchlist-details' => '{{PLURAL:$1|$1 фарсмæ|$1 фарсмæ}} дæ цæст дарыс, тæрхоны фæрстæ нæ нымайгæйæ.',
 'watchlistcontains' => 'Дæ цæст $1 {{PLURAL:$1|фарсмæ|фарсмæ}} дарыс.',
 'wlnote' => "Дæлæ афæстаг '''$2 сахаты дæргъы''' цы $1 {{PLURAL:$1|ивддзинад|ивддзинады}} æрцыди.",
index 075e00d..79e4138 100644 (file)
@@ -61,13 +61,13 @@ $namespaceAliases = array(
 );
 
 $specialPageAliases = array(
-       'Activeusers'               => array( 'ਸਰà¨\97ਰਮ_ਮà©\88à¨\82ਬਰ' ),
+       'Activeusers'               => array( 'ਸਰà¨\97ਰਮ_ਵਰਤà©\8bà¨\82à¨\95ਾਰ' ),
        'Allmessages'               => array( 'ਸਾਰੇ_ਸਨੇਹੇ' ),
        'Allpages'                  => array( 'ਸਾਰੇ_ਪੰਨੇ' ),
        'Ancientpages'              => array( 'ਪੁਰਾਣੇ_ਪੰਨੇ' ),
-       'Badtitle'                  => array( 'ਖਰਾਬ_ਸਿਰਲੇਖ' ),
-       'Blankpage'                 => array( 'ਖਾਲੀ_ਪੰਨਾ' ),
-       'Block'                     => array( 'ਪਾਬੰਦà©\80_ਲਾà¨\93', 'IP_â\80\99ਤà©\87_ਪਾਬੰਦà©\80_ਲਾà¨\93', 'ਮà©\88à¨\82ਬਰ_’ਤੇ_ਪਾਬੰਦੀ_ਲਾਓ' ),
+       'Badtitle'                  => array( 'à¨\96਼ਰਾਬ_ਸਿਰਲà©\87à¨\96' ),
+       'Blankpage'                 => array( 'à¨\96਼ਾਲà©\80_ਪੰਨਾ' ),
+       'Block'                     => array( 'ਪਾਬੰਦà©\80_ਲਾà¨\93', 'IP_â\80\99ਤà©\87_ਪਾਬੰਦà©\80_ਲਾà¨\93', 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ_’ਤੇ_ਪਾਬੰਦੀ_ਲਾਓ' ),
        'Blockme'                   => array( 'ਮੇਰੇ_’ਤੇ_ਪਾਬੰਦੀ_ਲਾਓ' ),
        'Booksources'               => array( 'ਕਿਤਾਬ_ਸਰੋਤ' ),
        'BrokenRedirects'           => array( 'ਟੁੱਟੇ_ਰੀਡਿਰੈਕਟ' ),
@@ -83,7 +83,7 @@ $specialPageAliases = array(
        'Disambiguations'           => array( 'ਗੁੰਝਲਖੋਲ੍ਹ' ),
        'DoubleRedirects'           => array( 'ਦੂਹਰੇ_ਰੀਡਿਰੈਕਟ' ),
        'EditWatchlist'             => array( 'ਨਿਗਰਾਨੀ-ਲਿਸਟ_ਸੋਧੋ' ),
-       'Emailuser'                 => array( 'ਮà©\88à¨\82ਬਰ_ਨੂੰ_ਈ-ਮੇਲ_ਕਰੋ' ),
+       'Emailuser'                 => array( 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ_ਨੂੰ_ਈ-ਮੇਲ_ਕਰੋ' ),
        'Export'                    => array( 'ਨਿਰਯਾਤ' ),
        'Fewestrevisions'           => array( 'ਸਭ_ਤੋਂ_ਘੱਟ_ਰੀਵਿਜ਼ਨਾਂ' ),
        'FileDuplicateSearch'       => array( 'ਨਕਲੀ_ਫ਼ਾਈਲ_ਖੋਜੋ' ),
@@ -133,14 +133,14 @@ $specialPageAliases = array(
        'Revisiondelete'            => array( 'ਰੀਵਿਜਨ_ਮਿਟਾਓ' ),
        'Search'                    => array( 'ਖੋਜੋ' ),
        'Shortpages'                => array( 'ਛੋਟੇ_ਪੰਨੇ' ),
-       'Specialpages'              => array( 'ਖਾਸ_ਪੰਨੇ' ),
+       'Specialpages'              => array( 'à¨\96਼ਾਸ_ਪੰਨà©\87' ),
        'Statistics'                => array( 'ਅੰਕੜੇ' ),
        'Tags'                      => array( 'ਟੈਗ' ),
        'Unblock'                   => array( 'ਪਾਬੰਦੀ_ਹਟਾਓ' ),
        'Uncategorizedcategories'   => array( 'ਸ਼੍ਰੇਣੀਹੀਣ_ਸ਼੍ਰੇਣੀਆਂ' ),
        'Uncategorizedimages'       => array( 'ਸ਼੍ਰੇਣੀਹੀਣ_ਫ਼ਾਈਲਾਂ' ),
        'Uncategorizedpages'        => array( 'ਸ਼੍ਰੇਣੀਹੀਣ_ਪੰਨੇ' ),
-       'Uncategorizedtemplates'    => array( 'ਸ਼à©\8dਰà©\87ਣà©\80ਹà©\80ਣ_ਸਾà¨\82à¨\9aੇ' ),
+       'Uncategorizedtemplates'    => array( 'ਸ਼à©\8dਰà©\87ਣà©\80ਹà©\80ਣ_ਫਰਮੇ' ),
        'Undelete'                  => array( 'ਅਣ-ਹਟਾਓਣ' ),
        'Unlockdb'                  => array( 'ਡੈਟਾਬੇਸ_ਖੋਲ੍ਹੋ' ),
        'Unusedcategories'          => array( 'ਅਣਵਰਤੀਆਂ_ਸ਼੍ਰੇਣੀਆਂ' ),
@@ -148,9 +148,9 @@ $specialPageAliases = array(
        'Unusedtemplates'           => array( 'ਅਣਵਰਤੇ_ਫਰਮੇ' ),
        'Unwatchedpages'            => array( 'ਬੇ-ਨਿਗਰਾਨ_ਪੰਨੇ' ),
        'Upload'                    => array( 'ਅੱਪਲੋਡ' ),
-       'Userlogin'                 => array( 'ਮà©\88à¨\82ਬਰ_ਲਾਗਇਨ' ),
-       'Userlogout'                => array( 'ਮà©\88à¨\82ਬਰ_ਲਾਗਆਊਟ' ),
-       'Userrights'                => array( 'ਮà©\88à¨\82ਬਰ_ਹੱਕ', 'ਪ੍ਰਬੰਧਕ_ਬਣਾਓ', 'ਬੋਟ_ਬਣਾਓ' ),
+       'Userlogin'                 => array( 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ_ਲਾਗਇਨ' ),
+       'Userlogout'                => array( 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ_ਲਾਗਆਊਟ' ),
+       'Userrights'                => array( 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ_ਹੱਕ', 'ਪ੍ਰਬੰਧਕ_ਬਣਾਓ', 'ਬੋਟ_ਬਣਾਓ' ),
        'Version'                   => array( 'ਰੂਪ' ),
        'Wantedcategories'          => array( 'ਚਾਹੀਦੀਆਂ_ਸ਼੍ਰੇਣੀਆਂ' ),
        'Wantedfiles'               => array( 'ਚਾਹੀਦੀਆਂ_ਫ਼ਾਈਲਾਂ' ),
@@ -191,57 +191,58 @@ $messages = array(
 # User preference toggles
 'tog-underline' => 'ਲਿੰਕ ਹੇਠ-ਲਾਈਨ:',
 'tog-justify' => 'ਪੈਰਾਗਰਾਫ਼ ਇਕਸਾਰ',
-'tog-hideminor' => 'ਹਾਲ â\80\99à¨\9a à¨¹à©\8bà¨\8f à¨¬à¨¦à¨²à¨¾à¨\85 à¨µà¨¿à©±à¨\9a à¨\9bà©\8bà¨\9fà©\87 à¨¬à¨¦à¨²à¨¾à¨\85 à¨\9bà©\81ਪਾਓ',
-'tog-hidepatrolled' => 'ਹਾਲ â\80\99à¨\9a à¨¹à©\8bà¨\8f à¨¬à¨¦à¨²à¨¾à¨\85 à¨µà¨¿à©±à¨\9aà©\8bà¨\82 à¨\9cਾà¨\82à¨\9aà©\87 à¨¸à©°à¨ªà¨¾à¨¦à¨¨ਾਂ ਲੁਕਾਓ',
-'tog-newpageshidepatrolled' => 'ਨਵà©\80à¨\82 à¨¸à¨«à¨¼à¨¾ à¨¸à©\82à¨\9aà©\80 à¨µà¨¿à©±à¨\9aà©\8bà¨\82 à¨¨à¨¿à¨\97ਰਾਨà©\80 à¨¸à¨«à¨¼à©\87 à¨\93ਹਲà©\87 à¨\95ਰà©\8b',
-'tog-extendwatchlist' => 'à¨\95à©\87ਵਲ à¨¹à¨¾à¨²à¨¿à¨\86 à¨¹à©\80 à¨¨à¨¹à©\80à¨\82, à¨¸à¨\97à©\8bà¨\82 à¨¸à¨¾à¨°à©\87 à¨ªà¨°à¨¿à¨µà¨°à¨¤à¨¨ à¨µà¨¿à¨\96ਾà¨\89ਣ à¨²à¨\88 à¨§à¨¿à¨\86ਨਸà©\82à¨\9aà©\80 à¨¨à©\82à©° à¨µà¨¿à¨¸à¨¥à¨¾à¨°à¨¿à¨¤ à¨\95ਰà©\8b',
-'tog-usenewrc' => 'ਹਾਲ â\80\99à¨\9a à¨¹à©\8bà¨\8f à¨¬à¨¦à¨²à¨¾à¨\85 à¨\85ਤà©\87 à¨§à¨¿à¨\86ਨਸà©\82à¨\9aà©\80 à¨µà¨¿à©±à¨\9a à¨ªà©°à¨¨à©\87 à¨®à©\81ਤਾਬà¨\95 à¨¬à¨¦à¨²à¨¾à¨\85 à¨¦à©\87 à¨¸à¨®à©\82ਹ à¨¬à¨£à¨¾à¨\93 (à¨\9cਾਵਾਸà¨\95à©\8dਰਿਪà¨\9f à¨¦à©\80 à¨\9cਰà©\82ਰਤ ਹੈ)',
-'tog-numberheadings' => 'à¨\86à¨\9fà©\8b-ਨੰਬਰ à¨¹à©\88ਡਿੰà¨\97',
-'tog-showtoolbar' => 'ਸà©\8bਧ à¨\9fà©\82ਲਬਾਰ à¨µà©\87à¨\96à©\8b (JavaScript à¨\9aਾਹà©\80ਦੀ ਹੈ)',
-'tog-editondblclick' => 'ਦੂਹਰੇ ਕਲਿੱਕ ’ਤੇ ਪੰਨੇ ਦਾ ਸੰਪਾਦਨ ਕਰੋ (ਜਾਵਾਸਕ੍ਰਿਪਟ ਦੀ ਜਰੂਰਤ ਹੈ)',
-'tog-editsection' => '[ਸੰਪਾਦਨ] à¨\95à©\9cà©\80à¨\86à¨\82 à¨¦à©\81à¨\86ਰਾ à¨\85ਨà©\81ਭਾà¨\97 à¨¸à©°à¨ªà¨¾à¨¦à¨¨ à¨¸à¨®à¨°à©±à¨¥à¨¾à¨µà¨¾à¨¨ ਕਰੋ',
-'tog-editsectiononrightclick' => 'ਭਾà¨\97 à¨¸à¨¿à¨°à¨²à©\87à¨\96ਾà¨\82 à¨¤à©\87 à¨¸à©±à¨\9cà©\80 à¨\95ਲਿੱà¨\95 à¨¦à©\81à¨\86ਰਾ à¨¸à©\8bਧ à¨¯à©\8bà¨\97 à¨\95ਰà©\8b (à¨\9cਾਵਾ à¨¸à¨\95à©\8dਰਿਪਟ ਲੋੜੀਂਦੀ ਹੈ)',
-'tog-showtoc' => 'ਤਤà¨\95ਰਾ à¨µà¨\96ਾà¨\93 (3 à¨¤à©\8bà¨\82 à¨µà©±à¨§ à¨¸à¨¿à¨°à¨²à©\87à¨\96ਾà¨\82 à¨µà¨¾à¨²à©\87 à¨ªà©°à¨¨ਿਆਂ ਲਈ)',
-'tog-rememberpassword' => 'à¨\87ਸ à¨¬à¨°à¨¾à¨\8aà¨\9c਼ਰ à¨\89ੱਤà©\87 à¨®à©\87ਰਾ à¨²à¨¾à¨\97à¨\87ਨ à¨¯à¨¾à¨¦ à¨°à©±à¨\96à©\8b ($1 {{PLURAL:$1|ਦਿਨ|ਦਿਨਾà¨\82}} à¨²à¨\88 à¨µà©±à¨§ à¨¤à©\8bà¨\82 à¨µà©±à¨§)',
-'tog-watchcreations' => 'ਮà©\87ਰà©\87 à¨µà¨²à©\8bà¨\82 à¨¬à¨£à¨¾à¨\8f à¨\97à¨\8f à¨ªà©°à¨¨à©\87 à¨\85ਤà©\87 à¨\85ੱਪਲà©\8bਡ à¨\95à©\80ਤà©\80à¨\86à¨\82 à¨«à¨¾à¨\88ਲਾà¨\82 à¨®à©\87ਰà©\80 à¨§à¨¿à¨\86ਨਸà©\82à¨\9aà©\80 ਵਿੱਚ ਪਾਓ',
-'tog-watchdefault' => 'ਮà©\87ਰà©\87 à¨µà©±à¨²à©\8bà¨\82 à¨¸à©°à¨ªà¨¾à¨¦à¨¤ à¨\97à¨\8f à¨ªà©°à¨¨à©\87 à¨\85ਤà©\87 à¨«à¨¾à¨\88ਲਾà¨\82 à¨®à©\87ਰà©\80 à¨§à¨¿à¨\86ਨਸà©\82à¨\9aà©\80 ਵਿੱਚ ਪਾਓ',
-'tog-watchmoves' => 'ਮà©\87ਰà©\87 à¨µà©±à¨²à©\8bà¨\82 à¨¸à¨¥à¨¾à¨¨à¨¾à¨\82ਤਰਤ à¨ªà©°à¨¨à©\87 à¨\85ਤà©\87 à¨«à¨¾à¨\88ਲਾà¨\82 à¨®à©\87ਰà©\80 à¨§à¨¿à¨\86ਨਸà©\82à¨\9aà©\80 ਵਿੱਚ ਪਾਓ',
-'tog-watchdeletion' => 'ਮà©\87ਰà©\87 à¨µà¨²à©\8bà¨\82 à¨¹à¨\9fਾà¨\8f à¨\97à¨\8f à¨ªà©°à¨¨à©\87 à¨\85ਤà©\87 à¨«à¨¾à¨\88ਲਾà¨\82 à¨®à©\87ਰà©\80 à¨§à¨¿à¨\86ਨਸà©\82à¨\9aà©\80 ਵਿੱਚ ਪਾਓ',
-'tog-minordefault' => 'ਮà©\87ਰà©\87 à¨¸à¨¾à¨°à©\87 à¨¸à©°à¨ªà¨¾à¨¦à¨¨ à¨\9bà©\8bà¨\9fà©\87 à¨¬à¨¦à¨²à¨¾à¨\85 à¨¹à¨¨',
-'tog-previewontop' => 'ਸà©\8bਧ à¨¬à¨¾à¨\95ਸ à¨¤à©\8bà¨\82 à¨ªà¨¹à¨¿à¨²à¨¾à¨\82 à¨\9dਲà¨\95 à¨µà©\87ਖਾਓ',
-'tog-previewonfirst' => 'ਪਹਿਲà©\80 à¨¸à©\8bਧ à¨\89ੱਤà©\87 à¨\9dਲà¨\95 à¨µà©\87à¨\96ਾà¨\93',
+'tog-hideminor' => 'ਤਾà¨\9c਼ਾ à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82 à¨µà¨¿à©±à¨\9aà©\8bà¨\82 à¨\9bà©\8bà¨\9fà©\80à¨\86à¨\82 à¨¸à©\8bਧਾà¨\82 à¨²à©\81à¨\95ਾਓ',
+'tog-hidepatrolled' => 'ਤਾà¨\9c਼ਾ à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82 à¨µà¨¿à©±à¨\9aà©\8bà¨\82 à¨\9cਾà¨\82à¨\9aà©\80à¨\86à¨\82 à¨¸à©\8bਧਾਂ ਲੁਕਾਓ',
+'tog-newpageshidepatrolled' => 'ਨਵà©\80à¨\82 à¨¸à¨«à¨¼à¨¾ à¨¸à©\82à¨\9aà©\80 à¨µà¨¿à©±à¨\9aà©\8bà¨\82 à¨\9cਾà¨\82à¨\9aà©\87 à¨¸à¨«à¨¼à©\87 à¨²à©\81à¨\95ਾà¨\93',
+'tog-extendwatchlist' => 'ਸਿਰਫ਼ à¨¤à¨¾à¨\9c਼ਾ à¨¹à©\80 à¨¨à¨¹à©\80à¨\82, à¨¸à¨\97à©\8bà¨\82 à¨¸à¨¾à¨°à©\80à¨\86à¨\82 à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82 à¨¨à©\82à©° à¨µà¨\96ਾà¨\89ਣ à¨²à¨\88 à¨¨à¨¿à¨\97ਰਾਨà©\80-ਲਿਸà¨\9f à¨¨à©\82à©° à¨µà¨§à¨¾à¨\93',
+'tog-usenewrc' => 'ਤਾà¨\9c਼ਾ à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82 à¨\85ਤà©\87 à¨¨à¨¿à¨\97ਰਾਨà©\80-ਲਿਸà¨\9f à¨µà¨¿à©±à¨\9a à¨¸à¨«à¨¼à©\87 à¨®à©\81ਤਾਬà¨\95 à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82 à¨¦à©\87 à¨\97ਰà©\81ੱà¨\95 à¨¬à¨£à¨¾à¨\93 (à¨\9cਾਵਾਸà¨\95ਰਿਪà¨\9f à¨²à©\8bà©\9cà©\80à¨\82ਦà©\80 ਹੈ)',
+'tog-numberheadings' => 'à¨\86à¨\9fà©\8b-ਨੰਬਰ à¨¸à¨¿à¨°à¨¨à¨¾à¨µà©\87à¨\82',
+'tog-showtoolbar' => 'ਸà©\8bਧ à¨¸à©°à¨¦à¨¬à¨\95ਸਾ à¨µà©\87à¨\96à©\8b (à¨\9cਾਵਾਸà¨\95ਰਿਪà¨\9f à¨²à©\8bà©\9cà©\80à¨\82ਦੀ ਹੈ)',
+'tog-editondblclick' => "ਦੋ ਵਾਰ ਕਲਿੱਕ ਕਰਨ 'ਤੇ ਸਫ਼ੇ ਸੋਧੋ (ਜਾਵਾਸਕਰਿਪਟ ਲੋੜੀਂਦੀ ਹੈ)",
+'tog-editsection' => '[ਸà©\8bਧà©\8b] à¨²à¨¿à©°à¨\95ਾà¨\82 à¨°à¨¾à¨¹à©\80à¨\82 à¨­à¨¾à¨\97 à¨¸à©\8bਧਣਾ à¨\9aਾਲà©\82 ਕਰੋ',
+'tog-editsectiononrightclick' => 'ਭਾà¨\97 à¨¸à¨¿à¨°à¨²à©\87à¨\96ਾà¨\82 à¨¤à©\87 à¨¸à©±à¨\9cà©\80 à¨\95ਲਿੱà¨\95 à¨¨à¨¾à¨²à¨¼ à¨¸à©\8bਧ à¨\9aਾਲà©\82 à¨\95ਰà©\8b (à¨\9cਾਵਾਸà¨\95ਰਿਪਟ ਲੋੜੀਂਦੀ ਹੈ)',
+'tog-showtoc' => 'ਤਤà¨\95ਰਾ à¨µà¨¿à¨\96ਾà¨\93 (à©© à¨¤à©\8bà¨\82 à¨µà©±à¨§ à¨¸à¨¿à¨°à¨²à©\87à¨\96ਾà¨\82 à¨µà¨¾à¨²à©\87 à¨¸à¨«à¨¼ਿਆਂ ਲਈ)',
+'tog-rememberpassword' => 'à¨\87ਸ à¨¬à¨°à¨¾à¨\8aà¨\9c਼ਰ à¨\89ੱਤà©\87 à¨®à©\87ਰਾ à¨¦à¨¾à¨\96਼ਲਾ à¨¯à¨¾à¨¦ à¨°à©±à¨\96à©\8b (ਵੱਧ à¨¤à©\8bà¨\82 à¨µà©±à¨§ $1 {{PLURAL:$1|ਦਿਨ|ਦਿਨਾà¨\82}} à¨²à¨\88)',
+'tog-watchcreations' => 'ਮà©\87ਰà©\87 à¨µà¨²à©\8bà¨\82 à¨¬à¨£à¨¾à¨\8f à¨\97à¨\8f à¨¸à¨«à¨¼à©\87 à¨\85ਤà©\87 à¨\85ੱਪਲà©\8bਡ à¨\95à©\80ਤà©\80à¨\86à¨\82 à¨«à¨¼à¨¾à¨\88ਲਾà¨\82 à¨®à©\87ਰà©\80 à¨¨à¨¿à¨\97ਰਾਨà©\80-ਲਿਸà¨\9f ਵਿੱਚ ਪਾਓ',
+'tog-watchdefault' => 'ਮà©\87ਰà©\87 à¨µà©±à¨²à©\8bà¨\82 à¨¸à©\8bਧà©\87 à¨\97à¨\8f à¨¸à¨«à¨¼à©\87 à¨\85ਤà©\87 à¨«à¨¼à¨¾à¨\88ਲਾà¨\82 à¨®à©\87ਰà©\80 à¨¨à¨¿à¨\97ਰਾਨà©\80-ਲਿਸà¨\9f ਵਿੱਚ ਪਾਓ',
+'tog-watchmoves' => 'ਮà©\87ਰà©\87 à¨µà©±à¨²à©\8bà¨\82 à¨¬à¨¦à¨²à©\87 à¨¸à¨¿à¨°à¨²à©\87à¨\96ਾà¨\82 à¨µà¨¾à¨²à¨¼à©\87 à¨¸à¨«à¨¼à©\87 à¨\85ਤà©\87 à¨«à¨¼à¨¾à¨\88ਲਾà¨\82 à¨®à©\87ਰà©\80 à¨¨à¨¿à¨\97ਰਾਨà©\80-ਲਿਸà¨\9f ਵਿੱਚ ਪਾਓ',
+'tog-watchdeletion' => 'ਮà©\87ਰà©\87 à¨µà¨²à©\8bà¨\82 à¨®à¨¿à¨\9fਾà¨\8f à¨\97à¨\8f à¨¸à¨«à¨¼à©\87 à¨\85ਤà©\87 à¨«à¨¼à¨¾à¨\88ਲਾà¨\82 à¨®à©\87ਰà©\80 à¨¨à¨¿à¨\97ਰਾਨà©\80-ਲਿਸà¨\9f ਵਿੱਚ ਪਾਓ',
+'tog-minordefault' => 'ਸਾਰà©\80à¨\86à¨\82 à¨¸à©\8bਧਾà¨\82 â\80\99ਤà©\87 à¨®à©\82ਲ à¨°à©\82ਪ à¨µà¨¿à¨\9a à¨\9bà©\8bà¨\9fà©\87 à¨¹à©\8bਣ à¨¦à¨¾ à¨¨à¨¿à¨¸à¨¼à¨¾à¨¨ à¨²à¨¾à¨\93',
+'tog-previewontop' => 'ਸà©\8bਧ à¨¬à¨\95ਸà©\87 à¨¤à©\8bà¨\82 à¨ªà¨¹à¨¿à¨²à¨¾à¨\82 à¨\9dਲà¨\95 à¨µਖਾਓ',
+'tog-previewonfirst' => 'ਪਹਿਲੀ ਸੋਧ ਉੱਤੇ ਝਲਕ ਵਖਾਓ',
 'tog-nocache' => 'ਬਰਾਊਜ਼ਰ ਸਫ਼ਾ ਕੈਸ਼ ਕਰਨਾ ਬੰਦ ਕਰੋ',
-'tog-enotifwatchlistpages' => 'ਜਦੋਂ ਮੇਰੀ ਨਿਗਰਾਨ-ਸੂਚੀ ਵਿਚ ਦਰਜ ਕੋਈ ਸਫ਼ਾ ਬਦਲਿਆ ਜਾਵੇ ਜਾਂ ਫਾਇਲ ਬਦਲੀ ਜਾਵੇ ਤਾਂ ਮੈਨੂੰ ਈਮੇਲ ਭੇਜੋ',
+'tog-enotifwatchlistpages' => 'ਜਦੋਂ ਮੇਰੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿੱਚ ਦਰਜ ਕੋਈ ਸਫ਼ਾ ਜਾਂ ਫ਼ਾਈਲ ਬਦਲੀ ਜਾਵੇ ਤਾਂ ਮੈਨੂੰ ਈਮੇਲ ਭੇਜੋ',
 'tog-enotifusertalkpages' => 'ਜਦੋਂ ਮੇਰਾ ਗੱਲ-ਬਾਤ ਸਫ਼ਾ ਬਦਲਿਆ ਜਾਵੇ ਤਾਂ ਮੈਨੂੰ ਈ-ਮੇਲ ਭੇਜੋ',
-'tog-enotifminoredits' => 'ਸਫ਼ਿà¨\86à¨\82 à¨\85ਤà©\87 à¨«à¨¾à¨\87ਲਾਂ ਦੀਆਂ ਛੋਟੀਆਂ ਤਬਦੀਲੀਆਂ ਲਈ ਵੀ ਮੈਨੂੰ ਈ-ਮੇਲ ਭੇਜੋ',
-'tog-enotifrevealaddr' => 'ਇਤਲਾਹ ਦੇਣ ਵਾਲੀਆਂ ਈ-ਮੇਲਾਂ ਵਿਚ ਮੇਰਾ ਈ-ਮੇਲ ਪਤਾ ਜ਼ਾਹਰ ਕਰੋ',
-'tog-shownumberswatching' => 'ਨà¨\9c਼ਰ à¨°à©±à¨\96 à¨°à¨¹à©\87 à¨®à©\88à¨\82ਬਰਾà¨\82 à¨¦à©\80 à¨\97ਿਣਤà©\80 à¨µà©\87ਖਾਓ',
-'tog-oldsig' => 'ਮੌਜੂਦਾ ਦਸਤਖਤ:',
-'tog-fancysig' => 'ਦਸਤà¨\96਼ਤ à¨¨à©\82à©° à¨¬à¨¤à©\8cਰ à¨µà¨¿à¨\95ਿਲਿà¨\96ਤ à¨µà¨°à¨¤à©\8bà¨\82 (ਬਿਨਾਂ ਆਟੋਮੈਟਿਕ ਲਿੰਕ)',
-'tog-showjumplinks' => '"ਇਸ ਤੇ ਜਾਓ" ਅਸੈਸਬਿਲਟੀ ਲਿੰਕ ਚਾਲੂ ਕਰੋ',
-'tog-uselivepreview' => 'ਸਿੱਧੀ ਝਲਕ ਵਰਤੋਂ (ਜਾਵਾਸਕ੍ਰਿਪਟ ਲੋੜੀਂਦੀ ਹੈ) (ਤਜਰਬੇ-ਅਧੀਨ)',
-'tog-forceeditsummary' => 'à¨\9cਦà©\8bà¨\82 à¨®à©\88à¨\82 à¨\96਼ਾਲà©\80 à¨¸à©\8bਧ à¨¸à¨¾à¨° à¨¦à©\87ਵਾà¨\82 à¨¤à¨¾à¨\82 à¨®à©\88ਨà©\82à©° à¨ªà©\81ੱà¨\9bੋ',
-'tog-watchlisthideown' => 'ਨਿਗਰਾਨ-ਸੂਚੀ ਵਿੱਚੋਂ ਮੇਰੇ ਸੋਧ ਓਹਲੇ ਕਰੋ',
-'tog-watchlisthidebots' => 'ਨਿਗਰਾਨ-ਸੂਚੀ ਵਿੱਚੋਂ ਬੋਟ ਸੋਧਾਂ ਓਹਲੇ ਕਰੋ',
-'tog-watchlisthideminor' => 'ਨਿਗਰਾਨ-ਸੂਚੀ ਵਿੱਚੋਂ ਛੋਟੀਆਂ ਸੋਧਾਂ ਓਹਲੇ ਕਰੋ',
-'tog-watchlisthideliu' => 'ਨਿà¨\97ਰਾਨà©\80-ਸà©\82à¨\9aà©\80 à¨µà¨¿à¨\9aà©\8bà¨\82 à¨²à¨¾à¨\97 à¨\87ਨ ਮੈਂਬਰਾਂ ਦੀਆਂ ਸੋਧਾਂ ਓਹਲੇ ਕਰੋ',
+'tog-enotifminoredits' => 'ਸਫ਼ਿà¨\86à¨\82 à¨\85ਤà©\87 à¨«à¨¼à¨¾à¨\88ਲਾਂ ਦੀਆਂ ਛੋਟੀਆਂ ਤਬਦੀਲੀਆਂ ਲਈ ਵੀ ਮੈਨੂੰ ਈ-ਮੇਲ ਭੇਜੋ',
+'tog-enotifrevealaddr' => 'à¨\87ਤਲਾਹ à¨¦à©\87ਣ à¨µà¨¾à¨²à©\80à¨\86à¨\82 à¨\88-ਮà©\87ਲਾà¨\82 à¨µà¨¿à©±à¨\9a à¨®à©\87ਰਾ à¨\88-ਮà©\87ਲ à¨ªà¨¤à¨¾ à¨\9c਼ਾਹਰ à¨\95ਰà©\8b',
+'tog-shownumberswatching' => 'ਨà¨\9c਼ਰ à¨°à©±à¨\96 à¨°à¨¹à©\87 à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰਾà¨\82 à¨¦à©\80 à¨\97ਿਣਤà©\80 à¨µਖਾਓ',
+'tog-oldsig' => 'ਮà©\8cà¨\9cà©\82ਦਾ à¨¦à¨¸à¨¤à¨\96਼ਤ:',
+'tog-fancysig' => 'ਦਸਤà¨\96਼ਤ à¨¨à©\82à©° à¨¬à¨¤à©\8cਰ à¨µà¨¿à¨\95à©\80ਲਿà¨\96ਤ à¨®à©°à¨¨à©\8b (ਬਿਨਾਂ ਆਟੋਮੈਟਿਕ ਲਿੰਕ)',
+'tog-showjumplinks' => '"ਇਸ ਤੇ ਜਾਓ" ਅਸੈਸਬਿਲਟੀ ਲਿੰਕ ਚਾਲੂ ਕਰੋ',
+'tog-uselivepreview' => 'ਸਿੱਧੀ ਝਲਕ ਵਰਤੋ (ਜਾਵਾਸਕਰਿਪਟ ਲੋੜੀਂਦੀ ਹੈ) (ਤਜਰਬੇ-ਅਧੀਨ)',
+'tog-forceeditsummary' => 'à¨\9cਦà©\8bà¨\82 à¨®à©\88à¨\82 à¨\96਼ਾਲà©\80 à¨¸à©\8bਧ à¨¸à¨¾à¨° à¨¦à©\87ਵਾà¨\82 à¨¤à¨¾à¨\82 à¨®à©\88ਨà©\82à©° à¨\86à¨\97ਾਹ à¨\95ਰੋ',
+'tog-watchlisthideown' => 'ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿੱਚੋਂ ਮੇਰੀਆਂ ਸੋਧਾਂ ਲੁਕਾਓ',
+'tog-watchlisthidebots' => 'ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿੱਚੋਂ ਬੋਟਾਂ ਦੀਆਂ ਸੋਧਾਂ ਲੁਕਾਓ',
+'tog-watchlisthideminor' => 'ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿੱਚੋਂ ਛੋਟੀਆਂ ਸੋਧਾਂ ਲੁਕਾਓ',
+'tog-watchlisthideliu' => 'ਨਿà¨\97ਰਾਨà©\80-ਸà©\82à¨\9aà©\80 à¨µà¨¿à¨\9aà©\8bà¨\82 à¨¦à¨¾à¨\96਼ਲ à¨¹à©\8bà¨\8f ਮੈਂਬਰਾਂ ਦੀਆਂ ਸੋਧਾਂ ਓਹਲੇ ਕਰੋ',
 'tog-watchlisthideanons' => 'ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚੋਂ ਗੁਮਨਾਮ ਮੈਂਬਰਾਂ ਦੇ ਕੀਤੇ ਫੇਰ-ਬਦਲ ਲੁਕਾਓ',
 'tog-watchlisthidepatrolled' => 'ਵੇਖੀਆਂ ਜਾ ਚੁੱਕੀਆਂ ਸੋਧਾਂ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚੋਂ ਲੁਕਾਓ',
 'tog-ccmeonemails' => 'ਜੋ ਈ-ਮੇਲਾਂ ਮੈਂ ਦੂਜੇ ਮੈਂਬਰਾਂ ਨੂੰ ਭੇਜਦਾ ਹਾਂ ਓਹਨਾਂ ਦੀਆਂ ਨਕਲਾਂ ਮੈਨੂੰ ਭੇਜੋ',
-'tog-diffonly' => 'ਫ਼ਰਕ ਤੋਂ ਹੇਠ ਸਫ਼ੇ ਦੀ ਸਮੱਗਰੀ ਨਾ ਵੇਖਾਓ',
-'tog-showhiddencats' => 'ਲੁਕਵੀਆਂ ਸ਼੍ਰੇਣੀਆਂ ਵੇਖਾਓ',
-'tog-norollbackdiff' => '"ਵਾਪਸ ਮੋੜੌ"ਅਮਲ ਵਿਚ ਲਿਆਣ ਬਾਦ ਫ਼ਰਕ ਨਾ ਦਿਖਾਓ',
+'tog-diffonly' => 'ਫ਼ਰਕ ਤੋਂ ਹੇਠ ਸਫ਼ੇ ਦੀ ਸਮੱਗਰੀ ਨਾ ਵਖਾਓ',
+'tog-showhiddencats' => 'ਲੁਕਵੀਆਂ ਸ਼੍ਰੇਣੀਆਂ ਵਖਾਓ',
+'tog-norollbackdiff' => '"ਵਾਪਸ ਮੋੜੋ" ਅਮਲ ਵਿਚ ਲਿਆਣ ਮਗਰੋਂ ਫ਼ਰਕ ਨਾ ਵਖਾਓ',
+'tog-useeditwarning' => 'ਜਦੋਂ ਮੈਂ ਅਣ-ਸਾਂਭੀਆਂ ਸੋਧਾਂ ਵਾਲਾ ਸਫ਼ਾ ਛੱਡਾਂ ਤਾਂ ਮੈਨੂੰ ਖ਼ਬਰ ਦਿਉ',
 
 'underline-always' => 'ਹਮੇਸ਼ਾਂ',
 'underline-never' => 'ਕਦੇ ਨਹੀਂ',
 'underline-default' => 'ਸਕਿਨ ਜਾਂ ਬਰਾਊਜ਼ਰ ਮੂਲ',
 
 # Font style option in Special:Preferences
-'editfont-style' => 'ਸà©\8bਧ à¨\96à©\87ਤਰ à¨«à©\8bà¨\82à¨\9f à¨¸à¨\9fਾà¨\87ਲ:',
+'editfont-style' => 'ਸà©\8bਧ à¨\96à©\87ਤਰ à¨«à¨¼à©\8cà¨\82à¨\9f à¨¸à¨\9fਾà¨\88ਲ:',
 'editfont-default' => 'ਬਰਾਊਜ਼ਰ ਮੂਲ',
-'editfont-monospace' => 'ਮà©\8bਨà©\8bਸਪà©\87ਸ à¨«à©\8bਂਟ',
-'editfont-sansserif' => 'Sans-serif à¨«à©\8bਂਟ',
-'editfont-serif' => 'ਨà©\8bà¨\95ਦਾਰ à¨«à©\8bਂਟ',
+'editfont-monospace' => 'ਮà©\8bਨà©\8bਸਪà©\87ਸ à¨«à¨¼à©\8cਂਟ',
+'editfont-sansserif' => 'Sans-serif à¨«à¨¼à©\8cਂਟ',
+'editfont-serif' => 'ਨà©\8bà¨\95ਦਾਰ à¨«à¨¼à©\8cਂਟ',
 
 # Dates
 'sunday' => 'ਐਤਵਾਰ',
@@ -285,68 +286,80 @@ $messages = array(
 'jan' => 'ਜਨ',
 'feb' => 'ਫ਼ਰ',
 'mar' => 'ਮਾਰ',
-'apr' => 'ਅਪ੍ਰੈ॰',
+'apr' => 'ਅਪ',
 'may' => 'ਮਈ',
 'jun' => 'ਜੂਨ',
 'jul' => 'ਜੁਲਾ',
 'aug' => 'ਅਗ',
-'sep' => 'ਸਤੰ',
-'oct' => 'ਅਕਤੂ',
-'nov' => 'ਨਵੰ',
-'dec' => 'ਦਸੰ',
+'sep' => 'ਸਤ',
+'oct' => 'ਅਕ',
+'nov' => 'ਨਵ',
+'dec' => 'ਦਸ',
+'january-date' => '$1 ਜਨਵਰੀ',
+'february-date' => '$1 ਫ਼ਰਵਰੀ',
+'march-date' => '$1 ਮਾਰਚ',
+'april-date' => '$1 ਅਪ੍ਰੈਲ',
+'may-date' => '$1 ਮਈ',
+'june-date' => '$1 ਜੂਨ',
+'july-date' => '$1 ਜੁਲਾਈ',
+'august-date' => '$1 ਅਗਸਤ',
+'september-date' => '$1 ਸਤੰਬਰ',
+'october-date' => '$1 ਅਕਤੂਬਰ',
+'november-date' => '$1 ਨਵੰਬਰ',
+'december-date' => '$1 ਦਸੰਬਰ',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|ਸ਼੍ਰੇਣੀ|ਸ਼੍ਰੇਣੀਆਂ}}',
 'category_header' => 'ਸ਼੍ਰੇਣੀ "$1" ਵਿੱਚ ਲੇਖ',
 'subcategories' => 'ਉਪਸ਼੍ਰੇਣੀਆਂ',
 'category-media-header' => 'ਸ਼੍ਰੇਣੀ "$1" ਵਿੱਚ ਮੀਡੀਆ',
-'category-empty' => "''à¨\87ਸ à¨¸à¨¼à©\8dਰà©\87ਣà©\80 à¨µà¨¿à©±à¨\9a à¨\87ਸ à¨µà©\87ਲà©\87 à¨\95à©\8bà¨\88 à¨µà©\80 à¨ªà©°à¨¨ਾ ਜਾਂ ਮੀਡੀਆ ਨਹੀਂ ਹੈ।''",
+'category-empty' => "''à¨\87ਸ à¨¸à¨¼à©\8dਰà©\87ਣà©\80 à¨µà¨¿à©±à¨\9a à¨\87ਸ à¨µà©\87ਲà©\87 à¨\95à©\8bà¨\88 à¨µà©\80 à¨¸à¨«à¨¼ਾ ਜਾਂ ਮੀਡੀਆ ਨਹੀਂ ਹੈ।''",
 'hidden-categories' => '{{PLURAL:$1|ਲੁਕਵੀਂ ਸ਼੍ਰੇਣੀ|ਲੁਕਵੀਂਆਂ ਸ਼੍ਰੇਣੀਆਂ}}',
-'hidden-category-category' => 'ਲà©\81à¨\95ਵà©\80à¨\86à¨\82 à¨\95à©\88à¨\9fà©\87à¨\97ਰੀਆਂ',
-'category-subcat-count' => 'ਇਸ ਸ਼੍ਰੇਣੀ ਵਿੱਚ, ਕੁੱਲ $2 ਵਿੱਚੋਂ, {{PLURAL:$2|ਕੇਵਲ ਇਹ ਉਪਸ਼੍ਰੇਣੀ ਹੈ|ਇਹ {{PLURAL:$1|ਉਪਸ਼੍ਰੇਣੀ ਹੈ|$1 ਉਪਸ਼੍ਰੇਣੀਆਂ ਹਨ}}}}।',
-'category-subcat-count-limited' => 'à¨\87ਸ à¨\95à©\88à¨\9fà©\87à¨\97ਰà©\80 à¨µà¨¿à¨\9a {{PLURAL:$1|ਸਬ-à¨\95à©\88à¨\9fà©\87à¨\97ਰà©\80 à¨¹à©\88|$1 à¨¸à¨¬-à¨\95à©\88à¨\9fà©\87à¨\97ਰੀਆਂ ਹਨ}}।',
-'category-article-count' => '{{PLURAL:$2|à¨\87ਸ à¨¸à¨¼à©\8dਰà©\87ਣà©\80 à¨µà¨¿à©±à¨\9a à¨\95à©\87ਵਲ à¨\87ਹ à¨ªà©°à¨¨à¨¾ à¨¹à©\88।| à¨\87ਸ à¨¸à¨¼à©\8dਰà©\87ਣà©\80 à¨µà¨¿à©±à¨\9a, à¨\95à©\81ੱਲ $2 à¨µà¨¿à©±à¨\9aà©\8bà¨\82, à¨\87ਹ {{PLURAL:$1|ਪੰਨਾ à¨¹à©\88|$1 à¨ªà©°à¨¨ੇ ਹਨ}}}}।',
+'hidden-category-category' => 'ਲà©\81à¨\95ਵà©\80à¨\86à¨\82 à¨¸à¨¼à©\8dਰà©\87ਣੀਆਂ',
+'category-subcat-count' => '{{PLURAL:$2|ਇਸ ਸ਼੍ਰੇਣੀ ਵਿਚ ਸਿਰਫ਼ ਇਹ ਉਪ-ਸ਼੍ਰੇਣੀ ਹੈ।|ਇਸ ਸ਼੍ਰੇਣੀ ਵਿੱਚ, ਕੁੱਲ $2 ਵਿੱਚੋਂ, {{PLURAL:$1|ਸਿਰਫ਼ ਇਹ ਉਪਸ਼੍ਰੇਣੀ ਹੈ|ਇਹ $1 ਉਪਸ਼੍ਰੇਣੀਆਂ ਹਨ}}}}।',
+'category-subcat-count-limited' => 'à¨\87ਸ à¨¸à¨¼à©\8dਰà©\87ਣà©\80 à¨µà¨¿à¨\9a {{PLURAL:$1|à¨\89ਪ-ਸ਼à©\8dਰà©\87ਣà©\80 à¨¹à©\88|$1 à¨\89ਪ-ਸ਼à©\8dਰà©\87ਣੀਆਂ ਹਨ}}।',
+'category-article-count' => '{{PLURAL:$2|à¨\87ਸ à¨¸à¨¼à©\8dਰà©\87ਣà©\80 à¨µà¨¿à©±à¨\9a à¨\95à©\87ਵਲ à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨¹à©\88।|à¨\87ਸ à¨¸à¨¼à©\8dਰà©\87ਣà©\80 à¨µà¨¿à©±à¨\9a, à¨\95à©\81ੱਲ $2 à¨µà¨¿à©±à¨\9aà©\8bà¨\82, à¨\87ਹ {{PLURAL:$1|ਸਫ਼ਾ à¨¹à©\88|$1 à¨¸à¨«à¨¼ੇ ਹਨ}}}}।',
 'category-article-count-limited' => 'ਮੌਜੂਦਾ ਕੈਟੇਗਰੀ ਵਿਚ ਇਹ {{PLURAL:$1|ਸਫ਼ਾ ਹੈ|$1 ਸਫ਼ੇ ਹਨ}}।',
-'category-file-count' => '{{PLURAL:$2|ਇਸ ਸ਼੍ਰੇਣੀ ਵਿੱਚ ਕੇਵਲ ਇਹ ਫ਼ਾਈਲ ਹੈ|ਇਸ ਸ਼੍ਰੇਣੀ ਵਿੱਚ {{PLURAL:$1|ਫ਼ਾਈਲ ਹੈ|$1 ਫ਼ਾਈਲਾਂ ਹਨ}}}}।',
+'category-file-count' => '{{PLURAL:$2|ਇਸ ਸ਼੍ਰੇਣੀ ਵਿੱਚ ਕੇਵਲ ਇਹ ਫ਼ਾਈਲ ਹੈ।| ਇਸ ਸ਼੍ਰੇਣੀ ਵਿੱਚ, ਕੁੱਲ $2 ਵਿੱਚੋਂ, ਇਹ {{PLURAL:$1|ਫ਼ਾਈਲ ਹੈ|$1 ਫ਼ਾਈਲਾਂ ਹਨ}}}}।',
 'category-file-count-limited' => 'ਮੌਜੂਦਾ ਕੈਟੇਗਰੀ ਵਿਚ ਇਹ {{PLURAL:$1|ਫ਼ਾਈਲ ਹੈ|$1 ਫ਼ਾਈਲਾਂ ਹਨ}}।',
 'listingcontinuesabbrev' => 'ਜਾਰੀ',
-'index-category' => 'ਤਤà¨\95ਰਾ ਸਫ਼ੇ',
-'noindex-category' => 'ਬਿਨਾà¨\82 à¨¤à¨¤à¨\95ਰà©\87 à¨µà¨¾à¨²à©\87 à¨ªà©°à¨¨ੇ',
+'index-category' => 'ਤਤà¨\95ਰà©\87 à¨µà¨¾à¨²à¨¼à©\87 ਸਫ਼ੇ',
+'noindex-category' => 'ਬਿਨਾà¨\82 à¨¤à¨¤à¨\95ਰà©\87 à¨µà¨¾à¨²à©\87 à¨¸à¨«à¨¼ੇ',
 'broken-file-category' => 'ਟੁੱਟੇ ਹੋਏ ਫ਼ਾਈਲ ਜੋੜਾਂ ਵਾਲ਼ੇ ਸਫ਼ੇ',
 
 'about' => 'ਇਸ ਬਾਰੇ',
 'article' => 'ਸਮੱਗਰੀ ਸਫ਼ਾ',
 'newwindow' => '(ਨਵੀਂ ਵਿੰਡੋ ਵਿੱਚ ਖੁੱਲ੍ਹਦੀ ਹੈ)',
 'cancel' => 'ਰੱਦ ਕਰੋ',
-'moredotdotdot' => '...ਹੋਰ',
+'moredotdotdot' => 'ਹੋਰ...',
 'morenotlisted' => '....ਹੋਰ ਸੂਚੀਬੱਧ ਨਹੀਂ',
 'mypage' => 'ਸਫ਼ਾ',
-'mytalk' => 'à¨\9aਰà¨\9aਾ',
+'mytalk' => 'à¨\97ੱਲ-ਬਾਤ',
 'anontalk' => 'ਇਸ IP ਲਈ ਗੱਲ-ਬਾਤ',
-'navigation' => 'ਨà©\87ਵà©\80à¨\97à©\87ਸ਼ਨ',
+'navigation' => 'ਫà©\87ਰà©\80 à¨ªà¨¾à¨\93',
 'and' => '&#32;ਅਤੇ',
 
 # Cologne Blue skin
 'qbfind' => 'ਖੋਜ',
 'qbbrowse' => 'ਝਲਕ',
-'qbedit' => 'ਸੰਪਾਦਨ',
+'qbedit' => 'ਸà©\8bਧ',
 'qbpageoptions' => 'ਇਹ ਸਫ਼ਾ',
 'qbmyoptions' => 'ਮੇਰੇ ਸਫ਼ੇ',
-'qbspecialpages' => 'ਵਿਸ਼à©\87ਸ਼ à¨ªà©°à¨¨ੇ',
-'faq' => 'ਸਵਾਲ-à¨\9cਵਾਬ',
+'qbspecialpages' => 'à¨\96਼ਾਸ à¨¸à¨«à¨¼ੇ',
+'faq' => 'à¨\85à¨\95ਸਰ à¨ªà©\81ੱà¨\9bà©\87 à¨\9cਾà¨\82ਦà©\87 à¨¸à©\81à¨\86ਲ',
 'faqpage' => 'Project:ਸਵਾਲ-ਜਵਾਬ',
 
 # Vector skin
 'vector-action-addsection' => 'ਵਿਸ਼ਾ ਜੋੜੋ',
 'vector-action-delete' => 'ਹਟਾਓ',
-'vector-action-move' => 'ਸਥਾਨਾà¨\82ਤਰਨ',
+'vector-action-move' => 'ਭà©\87à¨\9cà©\8b',
 'vector-action-protect' => 'ਸੁਰੱਖਿਆ',
 'vector-action-undelete' => 'ਹਟਾਉਣਾ-ਵਾਪਸ',
 'vector-action-unprotect' => 'ਸੁਰੱਖਿਆ ਬਦਲੋ',
 'vector-simplesearch-preference' => 'ਸਧਾਰਨ ਖੋਜ ਸਲਾਹ ਪੱਟੀ ਯੋਗ ਕਰੋ (ਸਿਰਫ਼ ਵਿਕਟਰ ਸਕਿੰਨ ਵਿਚ)',
 'vector-view-create' => 'ਬਣਾਓ',
-'vector-view-edit' => 'ਸੰਪਾਦਨ',
-'vector-view-history' => 'à¨\87ਤਿਹਾਸ ਵੇਖੋ',
+'vector-view-edit' => 'ਸà©\8bਧà©\8b',
+'vector-view-history' => 'à¨\85ਤà©\80ਤ ਵੇਖੋ',
 'vector-view-view' => 'ਪੜ੍ਹੋ',
 'vector-view-viewsource' => 'ਸਰੋਤ ਵੇਖੋ',
 'actions' => 'ਕਾਰਵਾਈਆਂ',
@@ -362,19 +375,20 @@ $messages = array(
 'searchbutton' => 'ਖੋਜ',
 'go' => 'ਜਾਓ',
 'searcharticle' => 'ਜਾਓ',
-'history' => 'ਪੰਨà©\87 à¨¦à¨¾ à¨\87ਤਿਹਾਸ',
-'history_short' => 'à¨\87ਤਿਹਾਸ',
+'history' => 'ਸਫ਼à©\87 à¨¦à¨¾ à¨\85ਤà©\80ਤ',
+'history_short' => 'à¨\85ਤà©\80ਤ',
 'updatedmarker' => 'ਮੇਰੀ ਆਖਰੀ ਫੇਰੀ ਤੋਂ ਬਾਅਦ ਦੇ ਅੱਪਡੇਟ',
 'printableversion' => 'ਛਪਣਯੋਗ ਵਰਜਨ',
-'permalink' => 'ਪੱà¨\95ਾ à¨²à¨¿à©°à¨\95',
+'permalink' => 'ਪੱà¨\95à©\80 à¨\95à©\9cà©\80',
 'print' => 'ਛਾਪੋ',
 'view' => 'ਵੇਖੋ',
-'edit' => 'ਸੰਪਾਦਨ à¨\95ਰੋ',
+'edit' => 'ਸà©\8bਧੋ',
 'create' => 'ਬਣਾਓ',
 'editthispage' => 'ਇਹ ਸਫ਼ਾ ਸੋਧੋ',
 'create-this-page' => 'ਇਹ ਸਫ਼ਾ ਬਣਾਓ',
 'delete' => 'ਹਟਾਓ',
 'deletethispage' => 'ਇਹ ਸਫ਼ਾ ਹਟਾਓ',
+'undeletethispage' => 'ਇਹ ਸਫ਼ਾ ਅਣ-ਮਿਟਿਆ ਕਰੋ',
 'undelete_short' => '{{PLURAL:$1|ਇੱਕ ਸੋਧ|$1 ਸੋਧਾਂ}} ਹਟਾਉਣਾ-ਵਾਪਸ',
 'viewdeleted_short' => '{{PLURAL:$1|ਹਟਾਈ ਸੋਧ|$1 ਹਟਾਈਆਂ ਸੋਧਾਂ}} ਵੇਖੋ',
 'protect' => 'ਸੁਰੱਖਿਆ',
@@ -384,37 +398,37 @@ $messages = array(
 'unprotectthispage' => 'ਇਹ ਸਫ਼ੇ ਦੀ ਸੁਰੱਖਿਆ ਬਦਲੋ',
 'newpage' => 'ਨਵਾਂ ਸਫ਼ਾ',
 'talkpage' => 'ਇਸ ਸਫ਼ੇ ਬਾਰੇ ਚਰਚਾ ਕਰੋ',
-'talkpagelinktext' => 'à¨\9aਰà¨\9aਾ',
+'talkpagelinktext' => 'à¨\97ੱਲ-ਬਾਤ',
 'specialpage' => 'ਖ਼ਾਸ ਸਫ਼ਾ',
 'personaltools' => 'ਨਿੱਜੀ ਸੰਦ',
 'postcomment' => 'ਨਵਾਂ ਭਾਗ',
 'articlepage' => 'ਸਮੱਗਰੀ ਸਫ਼ਾ ਵੇਖੋ',
 'talk' => 'ਚਰਚਾ',
-'views' => 'ਵà©\87à¨\96à©\8b',
+'views' => 'ਵà¨\96ਾਵà©\87',
 'toolbox' => 'ਸੰਦ ਬਕਸਾ',
-'userpage' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ à¨ªà©°à¨¨ਾ ਵੇਖੋ',
+'userpage' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ à¨¸à¨«à¨¼ਾ ਵੇਖੋ',
 'projectpage' => 'ਪ੍ਰੋਜੈਕਟ ਸਫ਼ਾ ਵੇਖੋ',
 'imagepage' => 'ਫਾਇਲ ਸਫ਼ਾ ਵੇਖੋ',
 'mediawikipage' => 'ਸੁਨੇਹਾ ਪੇਜ ਵੇਖੋ',
-'templatepage' => 'ਸਾà¨\82à¨\9aਾ à¨ªà©°à¨¨ਾ ਵੇਖੋ',
-'viewhelppage' => 'ਮੱਦਦ à¨¸à¨«à¨¼à¨¾ à¨µà©\87à¨\96à©\8b',
-'categorypage' => 'à¨\95à©\88à¨\9fà©\88à¨\97ਰੀ ਸਫ਼ਾ ਵੇਖੋ',
+'templatepage' => 'ਫਰਮਾ à¨¸à¨«à¨¼ਾ ਵੇਖੋ',
+'viewhelppage' => 'ਮਦਦ ਸਫ਼ਾ ਵੇਖੋ',
+'categorypage' => 'ਸ਼à©\8dਰà©\87ਣੀ ਸਫ਼ਾ ਵੇਖੋ',
 'viewtalkpage' => 'ਚਰਚਾ ਵੇਖੋ',
-'otherlanguages' => 'ਹà©\8bਰ à¨­à¨¾à¨¸à¨¼à¨¾à¨µà¨¾à¨\82 à¨µà¨¿à©±à¨\9a',
+'otherlanguages' => 'ਹੋਰ ਭਾਸ਼ਾਵਾਂ ਵਿਚ',
 'redirectedfrom' => '($1 ਤੋਂ ਰੀਡਿਰੈਕਟ)',
 'redirectpagesub' => 'ਰੀਡਿਰੈਕਟ ਸਫ਼ਾ',
-'lastmodifiedat' => 'à¨\87ਸ à¨ªà©°à¨¨à©\87 à¨¦à¨¾ à¨ªà¨¿à©±à¨\9bਲਾ à¨¬à¨¦à¨²à¨¾à¨\85  $1 à¨¨à©\82à©°  $2 à¨µà¨\9cà©\87 à¨¹à©\8bà¨\87à¨\86 à¨¸à©\80।',
+'lastmodifiedat' => 'à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨µà¨¿à©±à¨\9a à¨\86à¨\96਼ਰà©\80 à¨¸à©\8bਧ $1 à¨¨à©\82à©° $2 à¨µà¨\9cà©\87 à¨¹à©\8bà¨\88।',
 'viewcount' => 'ਇਹ ਸਫ਼ਾ {{PLURAL:$1|ਇੱਕ ਵਾਰ|$1 ਵਾਰ}} ਵੇਖਿਆ ਗਿਆ।',
-'protectedpage' => 'ਸà©\81ਰੱà¨\96ਿà¨\85ਤ à¨ªà©\87à¨\9c',
+'protectedpage' => 'ਸà©\81ਰੱà¨\96ਿà¨\85ਤ à¨¸à¨«à¨¼à¨¾',
 'jumpto' => 'ਇਸ ’ਤੇ ਜਾਓ:',
-'jumptonavigation' => 'ਨà©\87ਵà©\80à¨\97à©\87ਸ਼ਨ',
+'jumptonavigation' => 'ਫà©\87ਰà©\80 à¨ªà¨¾à¨\93',
 'jumptosearch' => 'ਖੋਜ',
 'view-pool-error' => 'ਅਫ਼ਸੋਸ, ਸਰਵਰ ਇਸ ਵੇਲੇ ਓਵਰਲੋਡ ਹੈ।
 ਬਹੁਤ ਸਾਰੇ ਮੈਂਬਰ ਇਸ ਸਫ਼ੇ ਨੂੰ ਵੇਖਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਹੇ ਹਨ।
 ਫੇਰ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਥੋੜੀ ਉਡੀਕ ਕਰੋ ਜੀ।
 $1',
 'pool-timeout' => 'ਲਾਕ ਲਈ ਉਡੀਕ ਦਾ ਵਕਤ ਖ਼ਤਮ ਹੋ ਗਿਆ ਹੈ',
-'pool-queuefull' => 'ਪੂਲ ਕਤਾਰ ਭਰੀ ਹੈ',
+'pool-queuefull' => 'ਪà©\82ਲ à¨\95ਤਾਰ à¨­à¨°à©\80 à¨¹à©\8bà¨\88 à¨¹à©\88',
 'pool-errorunknown' => 'ਅਣਜਾਣ ਗਲਤੀ',
 
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
@@ -426,20 +440,19 @@ $1',
 'currentevents-url' => 'Project:ਹਾਲ ਦੀਆਂ ਘਟਨਾਵਾਂ',
 'disclaimers' => 'ਦਾਅਵੇ',
 'disclaimerpage' => 'Project:ਆਮ ਦਾਅਵੇ',
-'edithelp' => 'ਸੋਧ ਮੱਦਦ',
-'edithelppage' => 'Help:ਸੋਧ',
+'edithelp' => 'ਸੋਧ ਸਬੰਧੀ ਮਦਦ',
 'helppage' => 'Help:ਸਮੱਗਰੀ',
 'mainpage' => 'ਮੁੱਖ ਸਫ਼ਾ',
 'mainpage-description' => 'ਮੁੱਖ ਸਫ਼ਾ',
 'policy-url' => 'Project:ਨੀਤੀ',
-'portal' => 'ਸਮਾà¨\9c à¨®à©\81ੱà¨\96 à¨ªà©°à¨¨à¨¾',
-'portal-url' => 'Project:ਸਮਾà¨\9c à¨¸à©±à¨¥',
-'privacy' => 'ਪਰਾà¨\88ਵà©\87ਸà©\80 ਨੀਤੀ',
-'privacypage' => 'Project:ਪਰਾà¨\88ਵà©\87ਸà©\80 ਨੀਤੀ',
+'portal' => 'ਭਾà¨\88à¨\9aਾਰà¨\95 à¨¸à©±à¨¥',
+'portal-url' => 'Project:ਸੱਥ',
+'privacy' => 'ਪਰਦਾ ਨੀਤੀ',
+'privacypage' => 'Project:ਪਰਦਾ ਨੀਤੀ',
 
-'badaccess' => 'à¨\85ਧਿà¨\95ਾਰ ਗਲਤੀ',
-'badaccess-group0' => 'ਤà©\81ਹਾਨà©\82à©° à¨\89ਹ à¨\90à¨\95ਸ਼ਨ à¨\95ਰਨ à¨¦à©\80 à¨®à¨¨à¨\9c਼à©\82ਰà©\80 à¨¨à¨¹à©\80à¨\82, à¨\9cਿਸ ਦੀ ਤੁਸੀਂ ਮੰਗ ਕੀਤੀ ਹੈ।',
-'badaccess-groups' => 'à¨\9cà©\8b à¨\95ੰਮ à¨¤à©\81ਸà©\80à¨\82 à¨\95ਰਨਾ à¨\9aਾਹਿà¨\86 à¨¹à©\88 à¨\93ਹ {{PLURAL:$2|à¨\87ਸ à¨\97ਰà©\81ੱਪ|à¨\87ਹਨਾà¨\82 à¨\97ਰà©\81ੱਪਾਂ}} ਦੇ ਮੈਂਬਰ ਹੀ ਕਰ ਸਕਦੇ ਹਨ: $1',
+'badaccess' => 'ਮਨà¨\9c਼à©\82ਰà©\80 ਗਲਤੀ',
+'badaccess-group0' => 'ਤà©\81ਹਾਨà©\82à©° à¨\89ਹ à¨\95ਾਰਵਾà¨\88 à¨\95ਰਨ à¨¦à©\80 à¨®à¨¨à¨\9c਼à©\82ਰà©\80 à¨¨à¨¹à©\80à¨\82 à¨\9cਿਹਦੀ ਤੁਸੀਂ ਮੰਗ ਕੀਤੀ ਹੈ।',
+'badaccess-groups' => 'à¨\9cà©\8b à¨\95ਾਰਵਾà¨\88 à¨¤à©\81ਸà©\80à¨\82 à¨\95ਰਨà©\80 à¨\9aਾਹà©\80 à¨¹à©\88 à¨\93ਹ {{PLURAL:$2|à¨\87ਸ à¨¸à¨®à©\82ਹ|à¨\87ਹਨਾà¨\82 à¨¸à¨®à©\82ਹਾਂ}} ਦੇ ਮੈਂਬਰ ਹੀ ਕਰ ਸਕਦੇ ਹਨ: $1',
 
 'versionrequired' => 'ਮੀਡੀਆਵਿਕੀ ਦੇ $1 ਵਰਜਨ ਦੀ ਲੋੜ ਹੈ',
 'versionrequiredtext' => 'ਇਸ ਸਫ਼ੇ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ ਮੀਡੀਆਵਿਕੀ ਦੇ $1 ਵਰਜਨ ਦੀ ਲੋੜ ਹੈ।
@@ -449,20 +462,20 @@ $1',
 'retrievedfrom' => '"$1" ਤੋਂ ਲਿਆ',
 'youhavenewmessages' => 'ਤੁਹਾਡੇ ਲਈ $1। ($2)',
 'newmessageslink' => 'ਨਵੇਂ ਸੁਨੇਹੇ',
-'newmessagesdifflink' => 'ਪਿੱà¨\9bਲਾ à¨¬à¨¦à¨²à¨¾à¨\85',
+'newmessagesdifflink' => 'à¨\86à¨\96਼ਰà©\80 à¨¤à¨¬à¨¦à©\80ਲà©\80',
 'youhavenewmessagesfromusers' => '{{PLURAL:$3|ਇੱਕ ਵਰਤੋਂਕਾਰ|$3 ਵਰਤੋਂਕਾਰਾਂ}} ਵੱਲੋਂ ਤੁਹਾਨੂੰ $1 ($2)।',
 'youhavenewmessagesmanyusers' => 'ਕਈ ਯੂਜ਼ਰ ਵੱਲੋਂ ਤੁਹਾਨੂੰ $1 ($2)।',
 'newmessageslinkplural' => '{{PLURAL:$1|ਇੱਕ ਨਵਾਂ ਸੁਨੇਹਾ|ਨਵੇਂ ਸੁਨੇਹੇ}} {{PLURAL:$1|ਹੈ|ਹਨ}}',
 'newmessagesdifflinkplural' => 'ਆਖ਼ਰੀ {{PLURAL:$1|ਤਬਦੀਲੀ|ਤਬਦੀਲੀਆਂ}}',
 'youhavenewmessagesmulti' => '$1 ’ਤੇ ਤੁਹਾਡੇ ਲਈ ਨਵੇਂ ਸੁਨੇਹੇ ਹਨ',
-'editsection' => 'ਸੋਧ',
+'editsection' => 'ਸੋਧ',
 'editold' => 'ਸੋਧ',
 'viewsourceold' => 'ਸਰੋਤ ਵੇਖੋ',
-'editlink' => 'ਸੋਧ',
+'editlink' => 'ਸੋਧ',
 'viewsourcelink' => 'ਸਰੋਤ ਵੇਖੋ',
 'editsectionhint' => 'ਭਾਗ ਸੋਧ: $1',
 'toc' => 'ਵਿਸ਼ਾ ਸੂਚੀ',
-'showtoc' => 'ਵà©\87ਖਾਓ',
+'showtoc' => 'ਵਿਖਾਓ',
 'hidetoc' => 'ਓਹਲੇ',
 'collapsible-collapse' => 'ਸਮੇਟੋ',
 'collapsible-expand' => 'ਫੈਲਾਓ',
@@ -471,54 +484,56 @@ $1',
 'restorelink' => '{{PLURAL:$1|ਇਕ ਮਿਟਾਈ ਹੋਈ ਸੋਧ|$1 ਮਿਟਾਈਆਂ ਹੋਈਆਂ ਸੋਧਾਂ}}',
 'feedlinks' => 'ਫੀਡ:',
 'feed-invalid' => 'ਸਬਸਕ੍ਰਿਪਸ਼ਨ ਫ਼ੀਡ ਦੀ ਗ਼ਲਤ ਕਿਸਮ',
-'feed-unavailable' => 'ਸੰਸਥਾਵਾà¨\82  à¨¸à¨®à©±à¨\97ਰà©\80 à¨¦à¨¾ à¨\86ਧà©\81ਨà¨\95à©\80à¨\95ਰਣ ਉਪਲਬਧ ਨਹੀਂ',
+'feed-unavailable' => 'ਸਿੰਡà©\80à¨\95à©\87ਸ਼ਨ à¨«à¨¼à©\80ਡਾà¨\82 ਉਪਲਬਧ ਨਹੀਂ',
 'site-rss-feed' => '$1 RSS ਫੀਡ',
-'site-atom-feed' => '$1 à¨\90à¨\9fਮ à¨«ੀਡ',
+'site-atom-feed' => '$1 à¨¦à©\80 à¨\90à¨\9fਮ à¨«à¨¼ੀਡ',
 'page-rss-feed' => '"$1" RSS ਫੀਡ',
 'page-atom-feed' => '"$1" ਐਟਮ ਫੀਡ',
 'red-link-title' => '$1 (ਸਫ਼ਾ ਮੌਜੂਦ ਨਹੀਂ ਹੈ)',
-'sort-descending' => 'à¨\98ੱà¨\9fਦਾ à¨\95à©\8dਰਮ',
-'sort-ascending' => 'ਵੱਧਦਾ à¨\95à©\8dਰਮ',
+'sort-descending' => 'ਘਟਦਾ ਕ੍ਰਮ',
+'sort-ascending' => 'ਵਧਦਾ ਕ੍ਰਮ',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'ਸਫ਼ਾ',
-'nstab-user' => 'ਯà©\82à¨\9c਼ਰ ਸਫ਼ਾ',
-'nstab-media' => 'ਮà©\80ਡਿਆ ਸਫ਼ਾ',
-'nstab-special' => 'ਖਾਸ ਸਫ਼ਾ',
+'nstab-user' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ ਸਫ਼ਾ',
+'nstab-media' => 'ਮà©\80ਡà©\80ਆ ਸਫ਼ਾ',
+'nstab-special' => 'à¨\96਼ਾਸ à¨¸à¨«à¨¼à¨¾',
 'nstab-project' => 'ਪਰੋਜੈਕਟ ਸਫ਼ਾ',
-'nstab-image' => 'ਫਾà¨\87ਲ',
+'nstab-image' => 'ਫ਼ਾà¨\88ਲ',
 'nstab-mediawiki' => 'ਸੁਨੇਹਾ',
-'nstab-template' => 'à¨\9fà©\88ਪਲà©\87à¨\9f',
-'nstab-help' => 'ਮੱਦਦ à¨¸à¨«à¨¼à¨¾',
+'nstab-template' => 'ਫਰਮਾ',
+'nstab-help' => 'ਮਦਦ ਸਫ਼ਾ',
 'nstab-category' => 'ਸ਼੍ਰੇਣੀ',
 
 # Main script and global functions
-'nosuchaction' => 'à¨\90ਸਾ à¨\95à©\8bà¨\88 à¨\90à¨\95ਸ਼ਨ ਨਹੀਂ ਹੈ',
+'nosuchaction' => 'à¨\85à¨\9cਿਹà©\80 à¨\95à©\8bà¨\88 à¨\95ਾਰਵਾà¨\88 ਨਹੀਂ ਹੈ',
 'nosuchactiontext' => 'URL ਦੁਆਰਾ ਦੱਸਿਆ ਕੰਮ ਗ਼ਲਤ ਹੈ।
 ਸ਼ਾਇਦ ਤੁਸੀਂ URL ਸਹੀ ਨਹੀਂ ਲਿਖਿਆ ਜਾਂ ਕਿਸੇ ਗ਼ਲਤ ਲਿੰਕ ਤੇ ਆਏ ਹੋ।
 ਇਹ ਵੀ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਇਹ {{SITENAME}} ਦੁਆਰੇ ਵਰਤੇ ਜਾਂਦੇ ਸਾਫ਼ਟਵੇਅਰ ਵਿਚਲੀ ਗ਼ਲਤੀ ਵੱਲ ਇਸ਼ਾਰਾ ਹੋਵੇ।',
-'nosuchspecialpage' => 'à¨\90ਸਾ ਕੋਈ ਖ਼ਾਸ ਸਫ਼ਾ ਨਹੀਂ ਹੈ',
+'nosuchspecialpage' => 'à¨\85à¨\9cਿਹਾ ਕੋਈ ਖ਼ਾਸ ਸਫ਼ਾ ਨਹੀਂ ਹੈ',
 'nospecialpagetext' => '<strong>ਤੁਸੀਂ ਇੱਕ ਗ਼ਲਤ ਖ਼ਾਸ ਸਫ਼ੇ ਲਈ ਬੇਨਤੀ ਕੀਤੀ ਹੈ।</strong>
 ਸਹੀ ਖ਼ਾਸ ਸਫ਼ਿਆਂ ਦੀ ਲਿਸਟ [[Special:SpecialPages|{{int:specialpages}}]] ’ਤੇ ਵੇਖੀ ਜਾ ਸਕਦੀ ਹੈ।',
 
 # General errors
 'error' => 'ਗ਼ਲਤੀ',
 'databaseerror' => 'ਡਾਟਾਬੇਸ ਗਲਤੀ',
-'dberrortext' => 'ਡੈਟਾਬੇਸ ਪੁ੍ਛ ਗਿੱਛ ਵਿਚ ਹਿਦਾਇਤਾਂ ਦੀ ਤਰੁੱਟੀ ਮਿਲੀ ਹੈ।
-ਹੋ ਸਕਦਾ ਹੈ ਇਹ ਤਰੁ੍ੱਟੀ ਸਾਫ਼ਟਵੇਅਰ ਦੀ ਹੋਵੇ।
-ਇਸ ਗਣਿਤਫ਼ਲ "<tt>$2</tt>" ਵਿਚੌਂ ਪਿਛਲੀ ਡੈਟਬਾਸ ਪੁੱਛ ਗਿੱਛ ਸੀ: <blockquote><tt>$1</tt></blockquote.
-ਡੈਟਾਬੇਸ ਨੇ ਇਹ ਤਰੁੱਟੀ "<tt>$3: $4</tt>"ਜਵਾਬ ਵਿਚ ਦਿੱਤੀ।',
+'dberrortext' => 'ਡਾਟਾਬੇਸ ਪੁ੍ਛ-ਗਿੱਛ ਦੀਆਂ ਹਿਦਾਇਤਾਂ ਵਿਚ ਦੋਸ਼ ਆਇਆ ਹੈ।
+ਹੋ ਸਕਦਾ ਹੈ ਇਹ ਦੋਸ਼ ਸਾਫ਼ਟਵੇਅਰ ਦਾ ਹੋਵੇ।
+ਡਾਟਾਬੇਸ ਪੁਛ-ਗਿੱਛ ਦੀ ਆਖ਼ਰੀ ਕੋਸ਼ਿਸ਼ ਸੀ:
+<blockquote><code>$1</code></blockquote>
+"<code>$2</code>" ਫੰਕਸ਼ਨ ਵਿੱਚੋਂ।
+ਡਾਟਾਬੇਸ ਨੇ "<samp>$3: $4</samp>" ਦੋਸ਼ ਕੱਢਿਆ।',
 'dberrortextcl' => 'ਡੈਟਾਬੇਸ ਪੁੱਛਗਿੱਛ ਵਿਚ ਹਿਦਾਇਤ ਗਲਤੀ ਮਿਲੀ ਹੈ।
 ਫੰਕਸ਼ਨ "$2" ਤੋਂ ਪਿਛਲੀ ਡਾਟਬਾਸ ਪੁੱਛ ਗਿੱਛ ਸੀ: "$1".
 ਡੈਟਾਬੇਸ ਨੇ ਇਹ ਗਲਤੀ "$3:$4" ਦਿੱਤੀ',
 'laggedslavemode' => "'''ਖ਼ਬਰਦਾਰ:''' ਹੋ ਸਕਦਾ ਹੈ ਸਫ਼ੇ ਵਿਚ ਤਾਜ਼ਾ ਤਬਦੀਲੀਆਂ ਸ਼ਾਮਲ ਨਾ ਹੋਣ।",
-'readonly' => 'ਡਾà¨\9fਾਬà©\87ਸ à¨²à¨¾à¨\95 ਹੈ',
+'readonly' => 'ਡਾà¨\9fਾਬà©\87ਸ à¨¨à©\82à©° à¨¤à¨¾à¨²à¨¼à¨¾ à¨²à©±à¨\97ਿà¨\86 à¨¹à©\8bà¨\87à¨\86 ਹੈ',
 'enterlockreason' => 'ਤਾਲਾ-ਬੰਦੀ ਲਈ ਕਾਰਨ ਦਾਖ਼ਲ ਕਰੋ, ਨਾਲ਼ ਹੀ ਤਾਲਾ-ਬੰਦੀ ਦੇ ਰਿਲੀਜ਼ ਹੋਣ ਦਾ ਅੰਦਾਜ਼ਨ ਵਕਤ',
 'readonlytext' => 'ਡੈਟਾਬੇਸ ਨੂੰ ਇਸ ਵੇਲ਼ੇ ਤਾਲਾ ਲੱਗਾ ਹੋਇਆ ਹੈ, ਸ਼ਾਇਦ ਆਮ ਰੱਖ-ਰਖਾਵ ਲਈ, ਇਸਤੋਂ ਬਾਅਦ ਇਹ ਆਮ ਵਾਂਗ ਉਪਲੱਬਧ ਹੋਵੇਗਾ।
 ਜਿਸ ਪ੍ਰਬੰਧਕ ਨੇ ਇਸਨੂੰ ਤਾਲਾ ਲਾਇਆ ਹੈ ਉਸਦਾ ਕਹਿਣਾ ਹੈ ਕਿ: $1',
-'missing-article' => "ਡਾà¨\9fਾਬà©\87ਸ à¨¨à©\82à©° ''$1'' $2 à¨¨à¨¾à¨® à¨¦à¨¾ à¨\95à©\8bà¨\88 à¨ªà©°à¨¨ਾ ਨਹੀਂ ਮਿਲਿਆ।
-à¨\86ਮ à¨¤à©\8cਰ à¨¤à©\87 à¨¹à¨\9fਾà¨\88 à¨\9cਾ à¨\9aà©\81ੱà¨\95à©\87 à¨ªà©°à¨¨à©\87 à¨¦à¨¾ à¨\87ਤਿਹਾਸ ਕੜੀ ਦੀ ਵਰਤੋਂ ਕਰਨ ਨਾਲ ਇੰਝ ਹੁੰਦਾ ਹੈ।
-à¨\9cà©\87 à¨\87ਹ à¨\97ੱਲ à¨¨à¨¹à©\80à¨\82 à¨¤à¨¾à¨\82 à¨¹à©\8b à¨¸à¨\95ਦਾ à¨¹à©\88 à¨¤à©\81ਹਾਨà©\82à©° à¨¸à¨¾à¨«à¨¼à¨\9fਵà©\87à¨\85ਰ à¨µà¨¿à¨\9a à¨\96ਾਮà©\80 à¨®à¨¿à¨² à¨\97à¨\88 à¨¹à©\88। à¨\95ਿਰਪਾ à¨\95ਰà¨\95à©\87 à¨ªà©°à¨¨à©\87 à¨¦à©\87 à¨ªà¨¤à©\87 à¨¸à¨®à©\87ਤ [[Special:ListUsers/sysop|administrator]] ਨੂੰ ਇਤਲਾਹ ਦਿਓ।",
+'missing-article' => "ਡਾà¨\9fਾਬà©\87ਸ à¨¨à©\82à©° ''$1'' $2 à¨¨à¨¾à¨® à¨¦à¨¾ à¨\95à©\8bà¨\88 à¨¸à¨«à¨¼ਾ ਨਹੀਂ ਮਿਲਿਆ।
+à¨\86ਮ à¨¤à©\8cਰ à¨¤à©\87 à¨¹à¨\9fਾà¨\8f à¨\9cਾ à¨\9aà©\81ੱà¨\95à©\87 à¨¸à¨«à¨¼à©\87 à¨¦à©\80 à¨\85ਤà©\80ਤ ਕੜੀ ਦੀ ਵਰਤੋਂ ਕਰਨ ਨਾਲ ਇੰਝ ਹੁੰਦਾ ਹੈ।
+à¨\9cà©\87 à¨\87ਹ à¨\97ੱਲ à¨¨à¨¹à©\80à¨\82 à¨¤à¨¾à¨\82 à¨¹à©\8b à¨¸à¨\95ਦਾ à¨¹à©\88 à¨¤à©\81ਹਾਨà©\82à©° à¨¸à¨¾à¨«à¨¼à¨\9fਵà©\87à¨\85ਰ à¨µà¨¿à¨\9a à¨\96ਾਮà©\80 à¨®à¨¿à¨² à¨\97à¨\88 à¨¹à©\88। à¨\95ਿਰਪਾ à¨\95ਰà¨\95à©\87 à¨¸à¨«à¨¼à©\87 à¨¦à©\87 à¨ªà¨¤à©\87 à¨¸à¨®à©\87ਤ [[Special:ListUsers/sysop|ਪà©\8dਰਸ਼ਾਸà¨\95]] ਨੂੰ ਇਤਲਾਹ ਦਿਓ।",
 'missingarticle-rev' => '(ਰੀਵਿਜ਼ਨ#: $1)',
 'missingarticle-diff' => '(ਅੰਤਰ: $1, $2)',
 'readonly_lag' => 'ਜਦੌਂ ਤਕ ਅਧੀਨ ਡੇਟਾਬੇਸ ਸਰਵਰ ਸੁਤੰਤਰ ਡੈਟਾਬੇਸ ਸਰਵਰ ਦੀ ਪਕੜ ਵਿਚ ਨਹੀਂ ਆ ਜਾਂਦੇ ਡੈਟਾਬੇਸ ਸਵੈ ਜਕੜਿਆ ਗਿਆ ਹੈ।',
@@ -526,12 +541,12 @@ $1',
 'internalerror_info' => 'ਅੰਦਰੂਨੀ ਗ਼ਲਤੀ: $1',
 'fileappenderrorread' => 'ਅੰਤਕਾ ਜੋੜਨ ਲਗਿਆਂ "$1"ਪੜ੍ਹਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ।',
 'fileappenderror' => "''$1'' ''$2'' ਨਾਲ਼ ਜੋੜਿਆ ਨਹੀ ਜਾ ਸਕਦਾ",
-'filecopyerror' => "ਫਾà¨\87ਲ '''$1'' '$2''' ਵਿੱਚ ਕਾਪੀ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ।",
-'filerenameerror' => "ਫਾà¨\87ਲ ''$1'' à¨¦à¨¾ à¨¨à¨¾à¨\82 ''$2'' à¨¬à¨¦à¨²à¨¿à¨\86 à¨¨à¨¹à©\80à¨\82 à¨\9cਾ ਸਕਿਆ।",
-'filedeleteerror' => "''$1'' à¨«à¨¾à¨\87ਲ ਹਟਾਈ ਨਹੀਂ ਜਾ ਸਕੀ।",
+'filecopyerror' => "ਫ਼ਾà¨\88ਲ '''$1'' '$2''' ਵਿੱਚ ਕਾਪੀ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ।",
+'filerenameerror' => "ਫ਼ਾà¨\88ਲ ''$1'' à¨¦à¨¾ à¨¨à¨¾à¨\82 ''$2'' à¨¨à¨¹à©\80à¨\82 à¨¸ਾ ਸਕਿਆ।",
+'filedeleteerror' => "''$1'' à¨«à¨¼à¨¾à¨\88ਲ ਹਟਾਈ ਨਹੀਂ ਜਾ ਸਕੀ।",
 'directorycreateerror' => "ਡਾਇਰੈਕਟਰੀ ''$1'' ਬਣਾਈ ਨਹੀਂ ਜਾ ਸਕੀ।",
-'filenotfound' => "ਫਾà¨\87ਲ ''$1'' ਲੱਭੀ ਨਹੀਂ ਜਾ ਸਕੀ।",
-'fileexistserror' => 'ਫਾà¨\87ਲ "$1" à¨\89ੱਤà©\87 à¨²à¨¿à¨\96 à¨¨à¨¹à©\80à¨\82 à¨¸à¨\95ਦà©\87: à¨«à¨¾à¨\87ਲ ਮੌਜੂਦ ਹੈ।',
+'filenotfound' => "ਫ਼ਾà¨\88ਲ ''$1'' ਲੱਭੀ ਨਹੀਂ ਜਾ ਸਕੀ।",
+'fileexistserror' => 'ਫ਼ਾà¨\88ਲ "$1" à¨\89ੱਤà©\87 à¨²à¨¿à¨\96 à¨¨à¨¹à©\80à¨\82 à¨¸à¨\95ਦà©\87: à¨«à¨¼à¨¾à¨\88ਲ ਮੌਜੂਦ ਹੈ।',
 'unexpected' => 'ਅਣਉਮੀਦਿਆ ਮੁੱਲ: "$1"="$2"।',
 'formerror' => 'ਗ਼ਲਤੀ: ਫ਼ਾਰਮ ਪੇਸ਼ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ',
 'badarticleerror' => 'ਇਹ ਕਾਰਵਾਈ ਇਸ ਸਫ਼ੇ ਤੇ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ।',
@@ -540,8 +555,10 @@ $1',
 'cannotdelete-title' => "ਸਫ਼ਾ ''$1'' ਨੂੰ ਹਟਾਇਆ ਨਹੀਂ ਜਾ ਸਕਿਆ",
 'delete-hook-aborted' => 'ਹੁੱਕ ਨੇ ਮਿਟਾਉਣਾ ਨਾਕਾਮ ਕੀਤਾ।
 ਇਸਨੇ ਕੋਈ ਕਾਰਨ ਨਹੀਂ ਦੱਸਿਆ।',
-'badtitle' => 'ਗਲਤ ਸਿਰਲੇਖ',
+'badtitle' => 'à¨\97਼ਲਤ à¨¸à¨¿à¨°à¨²à©\87à¨\96',
 'badtitletext' => 'ਤੁਹਾਡਾ ਦਰਖਾਸਤਸ਼ੁਦਾ ਸਿਰਲੇਖ ਨਾਕਾਬਿਲ, ਖਾਲੀ ਜਾਂ ਗਲਤ ਜੁੜਿਆ ਹੋਇਆ inter-languagd ਜਾਂ inter-wiki ਸਿਰਲੇਖ ਹੈ। ਇਹ ਵੀ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਇਸ ਵਿੱਚ ਇਕ-ਦੋ ਅੱਖਰ ਐਸੇ ਹੋਣ ਜੋ ਸਿਰਲੇਖ ਵਿੱਚ ਵਰਤੇ ਨਹੀਂ ਜਾ ਸਕਦੇ।',
+'perfcached' => 'ਹੇਠ ਦਿੱਤੀ ਸਮੱਗਰੀ ਕੈਸ਼ ਵਿਚ ਹੈ ਅਤੇ ਪੁਰਾਣੀ ਹੋ ਸਕਦੀ ਹੈ। ਕੈਸ਼ ਵਿਚ ਵੱਧ ਤੋਂ ਵੱਧ {{PLURAL:$1|ਇੱਕ ਨਤੀਜੇ ਦੀ|$1 ਨਤੀਜਿਆਂ ਦੀ}} ਉਪਲਬਧੀ ਹੈ।',
+'perfcachedts' => 'ਹੇਠ ਦਿੱਤੀ ਸਮੱਗਰੀ ਕੈਸ਼ ਵਿਚ ਹੈ ਅਤੇ ਆਖ਼ਰੀ ਵਾਰ ਅੱਪਡੇਟ $1 ਨੂੰ ਕੀਤੀ ਗਈ ਸੀ। ਕੈਸ਼ ਵਿਚ ਵੱਧ ਤੋਂ ਵੱਧ {{PLURAL:$4|ਇੱਕ ਨਤੀਜੇ|$4 ਨਤੀਜਿਆਂ}} ਦੀ ਉਪਲਬਧੀ ਹੈ।',
 'querypage-no-updates' => 'ਇਸ ਪੇਜ  ਦਾ ਆਧੁਨੀਕਰਣ ਵਰਜਿਤ ਹੈ।
 ਆਂਕੜੇ ਹੱਲੇ ਤਾਜ਼ੇ ਨਹੀ ਹੋ ਸਕਦੇ ।',
 'wrong_wfQuery_params' => ' wfQuery()<br /> ਨੂ ਲਤ ਰਾਸ਼ੀ ਮਿਲੇ ਹੋਯੇ ਨੇ
@@ -550,40 +567,50 @@ $1',
 'viewsource' => 'ਸਰੋਤ ਵੇਖੋ',
 'viewsource-title' => '$1 ਲਈ ਸਰੋਤ ਵੇਖੋ',
 'actionthrottled' => 'ਕਾਰਵਾਈ ਬੰਦ ਕੀਤੀ ਗਈ।',
-'actionthrottledtext' => 'ਸਪà©\88ਮ à¨¦à©\80 à¨°à©\8bà¨\95ਥਾਮ à¨²à¨\88, à¨\87ਹ à¨\95ਰà©\80à¨\86 à¨\87ਨà©\8dਹà©\87 à¨\98ੱà¨\9f à¨¸à¨®à©\87à¨\82 à¨µà¨¿à©±à¨\9a à¨\87ੱà¨\95 à¨¸à©\80ਮਾ à¨¤à©\8bà¨\82 à¨\9cਿà¨\86ਦਾ à¨µà¨¾à¨° à¨\95ਰਨ à¨¤à©\8bà¨\82 à¨®à¨¨à¨¾à¨¹à©\80 à¨¹à©\88, à¨\85ਤà©\87 à¨¤à©\81ਸà©\80à¨\82 à¨\87ਸ à¨¸à©\80ਮਾ à¨¨à©\82à©° ਪਾਰ ਕਰ ਚੁੱਕੇ ਹੋ।
-à¨\95ਿਰਪਾ à¨\95ਰà¨\95à©\87 à¨\95à©\81à¨\9d à¨¸à¨®à©\87à¨\82 à¨¬à¨¾à¨\85ਦ à¨ªà©\81ੰਨ: à¨\9cਤਨ ਕਰੋ।',
+'actionthrottledtext' => 'ਸਪà©\88ਮ à¨¦à©\80 à¨°à©\8bà¨\95ਥਾਮ à¨²à¨\88, à¨\87ਹ à¨\95ਾਰਵਾà¨\88 à¨\87ੱà¨\95 à¨®à¨¿à©±à¨¥à©\87 à¨¸à¨®à©\87à¨\82 à¨µà¨¿à©±à¨\9a à¨\87ੱà¨\95 à¨¤à©\8bà¨\82 à¨\9c਼ਿà¨\86ਦਾ à¨µà¨¾à¨° à¨\95ਰਨ à¨¦à©\80 à¨®à¨¨à¨¾à¨¹à©\80 à¨¹à©\88 à¨\85ਤà©\87 à¨¤à©\81ਸà©\80à¨\82 à¨\87ਸ à¨¹à©±à¨¦ ਪਾਰ ਕਰ ਚੁੱਕੇ ਹੋ।
+à¨\95ਿਰਪਾ à¨\95ਰà¨\95à©\87 à¨\95à©\81à¨\9d à¨¸à¨®à©\87à¨\82 à¨¬à¨¾à¨\85ਦ à¨¦à©\81ਬਾਰਾ à¨\95à©\8bਸ਼ਿਸ਼ ਕਰੋ।',
 'protectedpagetext' => 'ਇਹ ਪੰਨੇ ਸੰਪਾਦਨ ਅਤੇ ਹੋਰ ਕੰਮ ਤੋਂ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਹੋਇਆ ਹੈ।',
 'viewsourcetext' => 'ਤੁਸੀਂ ਇਸ ਸਫ਼ੇ ਦਾ ਸਰੋਤ ਵੇਖ ਅਤੇ ਕਾਪੀ ਕਰ ਸਕਦੇ ਹੋ:',
 'viewyourtext' => 'ਤੁਸੀਂ ਇਸ ਸਫ਼ੇ ’ਤੇ ਕੀਤੀਆਂ "ਆਪਣੀਆਂ ਸੋਧਾਂ" ਦਾ ਸਰੋਤ ਵੇਖ ਅਤੇ ਨਕਲ ਕਰ ਸਕਦੇ ਹੋ:',
-'protectedinterface' => 'ਇਹ ਪੰਨਾ ਸਾਫ਼ਟਵੇਅਰ ਇੰਟਰਫ਼ੇਸ ਦਾ ਮੂਲ ਪਾਠ ਹੈ ,ਅਤੇ ਦੁਰਵਰਤੌਂ ਤੌਂ ਬਚਾਅ ਲਈ ਰਾਖਵਾਂ ਕੀਤਾ ਗਿਆ ਹੈ।',
-'editinginterface' => "'''ਚਿਤਾਵਨੀ''' ਤੁਸੀਂ ਐਸੇ ਪੰਨੇ ਨੂੰ ਬਦਲ ਰਹੇ ਹੋ ਜੋ ਸਾਫ਼ਟਵੇਅਰ ਇੰਟਰਫ਼ੇਸ ਦੇ ਮੂਲ ਪਾਠ ਲਈ ਵਰਤਿਆ ਗਿਆ ਹੈ।
-ਇਸ ਪੰਨੇ ਦੇ ਬਦਲਾਅ ਦੁਸਰੇ ਵਰਤੋਂ ਕਰਣ ਵਾਲਿਆਂ ਲਈ ਵਰਤੇ ਜਾਣ ਵਾਲੇ ਇੰਟਰਫਲੇਸ ਦੀ ਸ਼ਕਲ ਤੇ ਅਸਰ ਪਾ ਦੇਣਗੇ।ਅਨੁਵਾਦ ਕਰਣ ਲਈ ,ਕਿਰਪਾ ਕਰਕੇ [//translatewiki.net/wiki/Main_Page?setlang=pa ਟ੍ਰਾਂਸਲੇਟਵਿਕੀ.ਨੈਟ] ਦੀ ਵਰਤੌਂ ਕਰੋ,ਇਹ ਮੀਡੀਆਵਿਕੀ ਦੀ ਸਥਾਨਕੀਕਰਣ ਯੋਜਨਾ ਹੈ।",
-'sqlhidden' => '(SQL ਪ੍ਰਸ਼ਨ ਚੁਪ੍ਪੇ ਹੁਏ ਨੇ)',
-'cascadeprotected' => 'ਇਹ ਪੰਨਾ ਸੁਰੱਖਿਅਤ ਹੈ, ਕਿਉਂਕਿ ਇਹ ਨਿੱਚੇ ਲਿਖੇ {{PLURAL:$1|ਪੰਨਾ|ਪੰਨੇ}} ਦੀ ਸੁਰੱਖਿਆ-ਸੀੜੀ ਵਿੱਚ ਸ਼ਾਮਲ ਹੈ:
+'protectedinterface' => 'ਇਹ ਸਫ਼ਾ ਇਸ ਵਿਕੀ ਉਤਲੇ ਸਾਫ਼ਟਵੇਅਰ ਲਈ ਇੰਟਰਫ਼ੇਸ-ਲਿਖਤ ਦਿੰਦਾ ਹੈ ਅਤੇ ਦੁਰਵਰਤੋਂ ਤੋਂ ਬਚਾਉਣ ਲਈ ਰਾਖਵਾਂ ਰੱਖਿਆ ਗਿਆ ਹੈ।
+ਸਾਰੇ ਵਿਕੀਆਂ ਲਈ ਅਨੁਵਾਦ ਜੋੜਨ ਜਾਂ ਬਦਲਣ ਲਈ [//translatewiki.net/ translatewiki.net], ਮੀਡੀਆਵਿਕੀ ਸਥਾਨੀਕਰਨ ਪ੍ਰੋਜੈਕਟ ਦੀ ਵਰਤੋਂ ਕਰੋ ਜੀ।',
+'editinginterface' => "'''ਚਿਤਾਵਨੀ''' ਤੁਸੀਂ ਐਸੇ ਸਫ਼ੇ ਨੂੰ ਬਦਲ ਰਹੇ ਹੋ ਜੋ ਸਾਫ਼ਟਵੇਅਰ ਇੰਟਰਫ਼ੇਸ ਦੇ ਮੂਲ ਪਾਠ ਲਈ ਵਰਤਿਆ ਗਿਆ ਹੈ।
+ਇਸ ਸਫ਼ੇ ਵਿਚਲੀ ਤਬਦੀਲੀ ਦੂਜੇ ਵਰਤੋਂਕਾਰਾਂ ਲਈ ਵਰਤੇ ਜਾਣ ਵਾਲੇ ਇੰਟਰਫ਼ੇਸ ਦੀ ਸ਼ਕਲ ’ਤੇ ਅਸਰ ਪਾ ਦੇਵੇਗੀ। ਉਲਥਾ ਕਰਨ ਲਈ ਕਿਰਪਾ ਕਰਕੇ [//translatewiki.net/wiki/Main_Page?setlang=pa ਟ੍ਰਾਂਸਲੇਟਵਿਕੀ.ਨੈਟ] ਦੀ ਵਰਤੋਂ ਕਰੋ, ਇਹ ਮੀਡੀਆਵਿਕੀ ਦੀ ਸਥਾਨੀਕਰਨ ਪ੍ਰੋਜੈਕਟ ਹੈ।",
+'sqlhidden' => '(SQL ਪੁਛ-ਗਿੱਛ ਲੁਕੀ ਹੋਈ ਹੈ)',
+'cascadeprotected' => 'ਇਹ ਸਫ਼ਾ ਸੁਰੱਖਿਅਤ ਹੈ, ਕਿਉਂਕਿ ਇਹ ਹੇਠ ਲਿਖੇ {{PLURAL:$1|ਸਫ਼ੇ|ਸਫ਼ਿਆਂ}} ਦੀ ਸੁਰੱਖਿਆ-ਪੌੜੀ ਵਿੱਚ ਸ਼ਾਮਲ ਹੈ:
 $2',
 'namespaceprotected' => "ਤੁਹਾਨੂੰ '''$1''' ਥਾਂ-ਨਾਮ ਵਾਲ਼ੇ ਸਫ਼ਿਆਂ ਵਿਚ ਫੇਰ-ਬਦਲ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।",
 'customcssprotected' => 'ਤੁਹਾਨੂੰ ਇਸ CSS ਸਫ਼ੇ ਵਿਚ ਸੋਧ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ ਕਿਉਂਕਿ ਇਸ ਵਿਚ ਕਿਸੇ ਹੋਰ ਮੈਂਬਰ ਦੀਆਂ ਨਿੱਜੀ ਸੈਟਿੰਗਾਂ ਹਨ।',
 'customjsprotected' => 'ਤੁਹਾਨੂੰ ਇਸ CSS ਸਫ਼ੇ ਵਿਚ ਸੋਧ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ ਕਿਉਂਕਿ ਇਸ ਵਿਚ ਕਿਸੇ ਹੋਰ ਮੈਂਬਰ ਦੀਆਂ ਨਿੱਜੀ ਸੈਟਿੰਗਾਂ ਹਨ।',
+'mycustomcssprotected' => 'ਤੁਹਾਨੂੰ ਇਸ CSS ਸਫ਼ੇ ਵਿੱਚ ਸੋਧ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।',
+'mycustomjsprotected' => 'ਤੁਹਾਨੂੰ ਇਸ ਜਾਵਾਸਕਰਿਪਟ ਸਫ਼ੇ ਵਿੱਚ ਸੋਧ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।',
+'myprivateinfoprotected' => 'ਤੁਹਾਨੂੰ ਆਪਣੀ ਨਿੱਜੀ ਜਾਣਕਾਰੀ ਵਿੱਚ ਸੋਧ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।',
+'mypreferencesprotected' => 'ਤੁਹਾਨੂੰ ਆਪਣੀਆਂ ਪਸੰਦਾਂ ਵਿੱਚ ਸੋਧ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।',
 'ns-specialprotected' => 'ਖ਼ਾਸ ਸਫ਼ਿਆਂ ’ਚ ਫੇਰ-ਬਦਲ ਨਹੀਂ ਹੋ ਸਕਦੇ।',
 'titleprotected' => 'ਇਹ ਸਿਰਲੇਖ [[User:$1|$1]] ਵੱਲੋਂ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਗਿਆ ਹੈ ਅਤੇ ਵਰਤਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ। ਦਿੱਤਾ ਹੋਇਆ ਕਾਰਨ ਹੈ, "\'\'$2\'\'"।',
+'filereadonlyerror' => '"$1" ਫ਼ਾਈਲ ਵਿੱਚ ਤਬਦੀਲੀ ਨਹੀਂ ਹੋ ਰਹੀ ਕਿਉਂਕਿ ਫ਼ਾਈਲ ਭੰਡਾਰ "$2" ਸਿਰਫ਼ ਪੜ੍ਹਨਯੋਗ ਰੂਪ ਵਿਚ ਹੈ।
+
+ਉਹ ਪ੍ਰਸ਼ਾਸਕ, ਜਿਹਨੇ ਇਹ ਰੋਕ ਲਾਈ ਹੈ, ਦਾ ਕਹਿਣਾ ਹੈ:',
 'invalidtitle-knownnamespace' => 'ਥਾਂ-ਨਾਮ "$2" ਅਤੇ ਲਿਖਤ "$3" ਵਾਲ਼ਾ ਗ਼ਲਤ ਸਿਰਲੇਖ',
+'invalidtitle-unknownnamespace' => 'ਅਣਜਾਣ ਨਾਂ-ਸਥਾਨ ਗਿਣਤੀ $1 ਅਤੇ ਲਿਖਤ $2 ਵਾਲ਼ਾ ਗ਼ਲਤ ਸਿਰਲੇਖ',
 'exception-nologin' => 'ਲਾਗਇਨ ਨਹੀਂ ਕੀਤਾ',
 'exception-nologin-text' => 'ਇਹ ਸਫ਼ਾ ਜਾਂ ਕਾਰਵਾਈ ਤੁਹਾਡਾ ਇਸ ਵਿਕੀ ’ਤੇ ਲਾਗਇਨ ਕੀਤਾ ਹੋਣਾ ਲੋੜਦੀ ਹੈ।',
 
 # Virus scanner
+'virus-badscanner' => "ਮੰਦਾ ਪ੍ਰਬੰਧ: ਅਣਜਾਣ ਵਾਇਰਸ ਸਕੈਨਰ: ''$1''",
 'virus-scanfailed' => 'ਸਕੈਨ ਫੇਲ੍ਹ ਹੈ (ਕੋਡ $1)',
 'virus-unknownscanner' => 'ਅਣਪਛਾਤਾ ਐਂਟੀਵਾਇਰਸ:',
 
 # Login and logout pages
-'logouttext' => "'''ਹà©\81ਣ à¨¤à©\81ਸà©\80à¨\82 à¨²à¨¾à¨\97à¨\86à¨\89à¨\9f à¨¹à©\8b à¨\97à¨\8f ਹੋ।'''
+'logouttext' => "'''ਹà©\81ਣ à¨¤à©\81ਸà©\80à¨\82 à¨µà¨¿à¨¦à¨¾à¨\88 à¨²à©\88 à¨\9aà©\81ੱà¨\95à©\87 ਹੋ।'''
 
-You can continue to use {{SITENAME}} anonymously, or you can log in again as the same or as a different user.
-Note that some pages may continue to be displayed as if you were still logged in, until you clear your browser cache.",
+ਤੁਸੀਂ {{SITENAME}} ਦੀ ਵਰਤੋਂ ਗੁਮਨਾਮ ਰਹਿ ਕੇ ਕਰ ਸਕਦੇ ਹੋ ਜਾਂ ਦੁਬਾਰਾ ਇਹੋ ਜਾਂ ਵੱਖਰੇ ਵਰਤੋਂਕਾਰ ਵਜੋਂ ਦਾਖ਼ਲਾ ਲੈ ਸਕਦੇ ਹੋ।
+ਧਿਆਨ ਦਿਉ ਕਿ ਜਿੰਨੀ ਦੇਰ ਤੱਕ ਤੁਸੀਂ ਆਪਣੇ ਬਰਾਊਜ਼ਰ ਦਾ ਕੈਸ਼ ਸਾਫ਼ ਨਹੀਂ ਕਰਦੇ, ਕੁਝ ਸਫ਼ੇ ਇੱਦਾਂ ਵਿਖਣਗੇ ਜਿਵੇਂ ਤੁਸੀਂ ਅਜੇ ਵੀ ਦਾਖ਼ਲ ਹੀ ਹੋ।",
 'welcomeuser' => '$1 ਜੀ ਆਇਆਂ ਨੂੰ!',
 'welcomecreation-msg' => 'ਤੁਹਾਡਾ ਖਾਤਾ ਬਣ ਚੁੱਕਾ ਹੈ। ਆਪਣੀਆਂ [[Special:Preferences|{{SITENAME}} ਪਸੰਦ]] ਬਦਲਣੀ ਨਾ ਭੁੱਲੋ।',
-'yourname' => 'ਯà©\82à¨\9c਼ਰ-ਨਾਂ:',
-'userlogin-yourname' => 'ਯà©\82à¨\9c਼ਰ ਨਾਂ',
-'userlogin-yourname-ph' => 'à¨\86ਪਣਾ à¨¯à©\82à¨\9cਰ-ਨਾà¨\82 à¨¦à¨¿à¨\89',
+'yourname' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ-ਨਾਂ:',
+'userlogin-yourname' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰà©\80 ਨਾਂ',
+'userlogin-yourname-ph' => 'à¨\86ਪਣਾ à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰà©\80 à¨¨à¨¾à¨\82 à¨­à¨°à©\8b',
 'yourpassword' => 'ਪਾਸਵਰਡ:',
 'userlogin-yourpassword' => 'ਪਾਸਵਰਡ',
 'userlogin-yourpassword-ph' => 'ਆਪਣਾ ਪਾਸਵਰਡ ਦਿਉ',
@@ -591,19 +618,20 @@ Note that some pages may continue to be displayed as if you were still logged in
 'yourpasswordagain' => 'ਪਾਸਵਰਡ ਮੁੜ ਲਿਖੋ:',
 'createacct-yourpasswordagain' => 'ਪਾਸਵਰਡ ਪੁਸ਼ਟੀ',
 'createacct-yourpasswordagain-ph' => 'ਪਾਸਵਰਡ ਫੇਰ ਦਿਉ',
-'remembermypassword' => 'à¨\87ਸ à¨\95ੰਪਿà¨\8aà¨\9fਰ â\80\99ਤà©\87 à¨®à©\87ਰਾ à¨²à¨¾à¨\97à¨\87ਨ ਯਾਦ ਰੱਖੋ (ਵੱਧ ਤੋਂ ਵੱਧ $1 {{PLURAL:$1|ਦਿਨ|ਦਿਨਾਂ}} ਲਈ)',
-'userlogin-remembermypassword' => 'ਮà©\88ਨà©\82à©° à¨¯à¨¾à¨¦ ਰੱਖੋ',
-'userlogin-signwithsecure' => 'ਸà©\81ਰੱà¨\96ਿà¨\85ਤ à¨¸à¨°à¨µà¨° à¨¨à¨¾à¨² à¨¸à¨¾à¨\87ਨ à¨\95ਰੋ',
-'securelogin-stick-https' => 'ਲਾà¨\97à¨\87ਨ à¨\95ਰਨ à¨¦à©\87 à¨¬à¨¾à¨\85ਦ HTTPS à¨¨à¨¾à¨² à¨\95à©\81ਨà©\88à¨\95à¨\9f ਰਹੋ',
-'yourdomainname' => 'ਤà©\81ਹਾਡà©\80 ਡੋਮੇਨ:',
+'remembermypassword' => 'à¨\87ਸ à¨\95ੰਪਿà¨\8aà¨\9fਰ â\80\99ਤà©\87 à¨®à©\87ਰਾ à¨¦à¨¾à¨\96਼ਲਾ ਯਾਦ ਰੱਖੋ (ਵੱਧ ਤੋਂ ਵੱਧ $1 {{PLURAL:$1|ਦਿਨ|ਦਿਨਾਂ}} ਲਈ)',
+'userlogin-remembermypassword' => 'ਮà©\88ਨà©\82à©° à¨¦à¨¾à¨\96਼ਲ ਰੱਖੋ',
+'userlogin-signwithsecure' => 'ਸà©\81ਰੱà¨\96ਿà¨\85ਤ à¨\95ਨà©\88à¨\95ਸ਼ਨ à¨°à©±à¨\96ੋ',
+'securelogin-stick-https' => 'ਦਾà¨\96਼ਲ à¨\95ਰਨ à¨®à¨\97ਰà©\8bà¨\82 HTTPS à¨¨à¨¾à¨² à¨\9cà©\81à©\9cà©\87 ਰਹੋ',
+'yourdomainname' => 'ਤà©\81ਹਾਡਾ ਡੋਮੇਨ:',
 'password-change-forbidden' => 'ਇਸ ਵਿਕੀ ਤੇ ਤੁਸੀਂ ਪਾਸਵਰਡ ਨਹੀਂ ਬਦਲ ਸਕਦੇ।',
-'login' => 'ਲਾਗ ਇਨ',
-'nav-login-createaccount' => 'ਲਾਗ ਇਨ/ਖਾਤਾ ਬਣਾਓ',
+'externaldberror' => 'ਜਾਂ ਤਾਂ ਪ੍ਰਮਾਣਕੀ ਡਾਟਾਬੇਸ ਦੋਸ਼ ਆਇਆ ਹੈ ਜਾਂ ਤੁਹਾਨੂੰ ਆਪਣੇ ਬਾਹਰੀ ਖਾਤੇ ਨੂੰ ਅੱਪਡੇਟ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।',
+'login' => 'ਦਾਖ਼ਲ ਹੋਵੋ',
+'nav-login-createaccount' => 'ਦਾਖ਼ਲ ਹੋਵੋ/ਖਾਤਾ ਬਣਾਓ',
 'loginprompt' => 'ਤੁਹਾਨੂੰ {{SITENAME}} ’ਤੇ ਲਾਗਇਨ ਕਰਨ ਲਈ ਕੂਕੀਸ ਯੋਗ ਕਰਨੇ ਜ਼ਰੂਰੀ ਹਨ।',
-'userlogin' => 'ਲਾà¨\97 à¨\87ਨ/ਖਾਤਾ ਬਣਾਓ',
-'userloginnocreate' => 'ਲਾà¨\97 à¨\87ਨ',
-'logout' => 'ਲਾà¨\97 à¨\86à¨\89ਟ',
-'userlogout' => 'ਲਾà¨\97 à¨\86à¨\89ਟ',
+'userlogin' => 'ਦਾà¨\96਼ਲ à¨¹à©\8bਵà©\8b/ਖਾਤਾ ਬਣਾਓ',
+'userloginnocreate' => 'ਦਾà¨\96ਲ਼ à¨¹à©\8bਵà©\8b',
+'logout' => 'ਲਾà¨\97 à¨\86à¨\8aਟ',
+'userlogout' => 'ਲਾà¨\97 à¨\86à¨\8aਟ',
 'notloggedin' => 'ਲਾਗਇਨ ਨਹੀਂ',
 'userlogin-noaccount' => 'ਖਾਤਾ ਨਹੀਂ ਹੈ?',
 'userlogin-joinproject' => '{{SITENAME}} ਦਾ ਹਿੱਸਾ ਬਣੋ',
@@ -611,40 +639,46 @@ Note that some pages may continue to be displayed as if you were still logged in
 'nologinlink' => 'ਖਾਤਾ ਬਣਾਓ',
 'createaccount' => 'ਖਾਤਾ ਬਣਾਓ',
 'gotaccount' => 'ਖਾਤਾ ਪਹਿਲਾਂ ਹੀ ਹੈ? $1',
-'gotaccountlink' => 'ਲਾਗ ਇਨ',
-'userlogin-resetlink' => 'ਆਪਣੀ ਲਾਗਇਨ ਜਾਣਕਾਰੀ ਭੁੱਲ ਗਏ ਹੋ?',
-'helplogin-url' => 'Help: ਲਾਗਇਨ ਕਰਨਾ',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|ਲਾਗਇਨ ਕਰਨ ਬਾਰੇ ਮੱਦਦ]]',
+'gotaccountlink' => 'ਦਾਖ਼ਲ ਹੋਵੋ',
+'userlogin-resetlink' => 'ਆਪਣੀ ਦਾਖ਼ਲਾ ਜਾਣਕਾਰੀ ਭੁੱਲ ਗਏ ਹੋ?',
+'userlogin-resetpassword-link' => 'ਆਪਣਾ ਪਾਸਵਰਡ ਫੇਰ ਬਣਾਓ',
+'helplogin-url' => 'Help: ਦਾਖ਼ਲਾ',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|ਦਾਖ਼ਲ ਹੋਣ ਬਾਰੇ ਮਦਦ]]',
 'createacct-join' => 'ਆਪਣੀ ਜਾਣਕਾਰੀ ਹੇਠਾਂ ਦਿਉ।',
-'createacct-emailrequired' => 'à¨\88ਮà©\87ਲ à¨\90ਡਰà©\88ਸ',
-'createacct-emailoptional' => 'à¨\88ਮà©\87ਲ à¨\90ਡਰà©\88ਸ (ਚੋਣਵਾਂ)',
-'createacct-email-ph' => 'à¨\86ਪਣਾ à¨\88ਮà©\87ਲ à¨\90ਡਰà©\88ਸ ਦਿਉ',
-'createaccountmail' => 'à¨\86ਰà¨\9c਼à©\80 à¨°à¨²à¨µà¨¾à¨\82 à¨ªà¨¾à¨¸à¨µà¨°à¨¡ à¨µà¨°à¨¤à©\8bà¨\82 à¨\85ਤà©\87 à¨\87ਸ à¨¨à©\82à©° à¨¹à©\87ਠ à¨¦à¨¿à©±à¨¤à©\87 à¨\88ਮà©\87ਲ à¨¸à¨¿à¨°à¨¨à¨¾à¨µà©\87à¨\82 ਉੱਤੇ ਭੇਜ ਦਿਉ',
+'createacct-emailrequired' => 'à¨\88ਮà©\87ਲ à¨ªà¨¤à¨¾',
+'createacct-emailoptional' => 'à¨\88ਮà©\87ਲ à¨ªà¨¤à¨¾ (ਚੋਣਵਾਂ)',
+'createacct-email-ph' => 'à¨\86ਪਣਾ à¨\88ਮà©\87ਲ à¨ªà¨¤à¨¾ ਦਿਉ',
+'createaccountmail' => 'à¨\86ਰà¨\9c਼à©\80 à¨°à¨²à¨¼à¨µà¨¾à¨\82 à¨ªà¨¾à¨¸à¨µà¨°à¨¡ à¨µà¨°à¨¤à©\8bà¨\82 à¨\85ਤà©\87 à¨\87ਸ à¨¨à©\82à©° à¨¹à©\87ਠ à¨¦à¨¿à©±à¨¤à©\87 à¨\88ਮà©\87ਲ à¨ªà¨¤à©\87 ਉੱਤੇ ਭੇਜ ਦਿਉ',
 'createacct-realname' => 'ਅਸਲੀ ਨਾਂ (ਚੋਣਵਾਂ)',
 'createaccountreason' => 'ਕਾਰਨ:',
 'createacct-reason' => 'ਕਾਰਨ',
+'createacct-reason-ph' => 'ਤੁਸੀਂ ਹੋਰ ਖਾਤਾ ਕਿਉਂ ਬਣਾ ਰਹੇ ਹੋ',
 'createacct-captcha' => 'ਸੁਰੱਖਿਆ ਜਾਂਚ',
 'createacct-imgcaptcha-ph' => 'ਉੱਤੇ ਵੇਖਾਈ ਦੇ ਰਿਹਾ ਸ਼ਬਦ ਦਿਉ',
+'createacct-submit' => 'ਆਪਣਾ ਖਾਤਾ ਬਣਾਓ',
 'createacct-benefit-heading' => '{{SITENAME}} ਨੂੰ ਤੁਹਾਡੇ ਵਰਗੇ ਲੋਕਾਂ ਵਲੋਂ ਹੀ ਬਣਾਇਆ ਗਿਆ ਹੈ।',
-'createacct-benefit-body1' => 'ਸੋਧਾਂ',
-'createacct-benefit-body2' => 'ਸਫ਼ੇ',
-'createacct-benefit-body3' => 'à¨\87ਹ à¨®à¨¹à©\80ਨà©\87 à¨²à¨\88 à¨¯à©\8bà¨\97ਦਾਨ',
+'createacct-benefit-body1' => '{{PLURAL:$1|ਸੋਧ|ਸੋਧਾਂ}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|ਸਫ਼ਾ|ਸਫ਼ੇ}}',
+'createacct-benefit-body3' => 'ਹਾਲà©\80à¨\86 {{PLURAL:$1|ਯà©\8bà¨\97ਦਾਨà©\80}}',
 'badretype' => 'ਤੁਹਾਡੇ ਵਲੋਂ ਦਿੱਤੇ ਪਾਸਵਰਡ ਮਿਲਦੇ ਨਹੀਂ ਹਨ।',
 'userexists' => 'ਯੂਜ਼ਰ-ਨਾਂ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ। ਵੱਖਰਾ ਨਾਂ ਚੁਣੋ ਜੀ।',
-'loginerror' => 'ਲਾà¨\97à¨\87ਨ à¨\97਼ਲਤੀ',
-'createacct-error' => 'ਖਾਤਾ ਬਣਾਉਣ ਗਲਤੀ',
+'loginerror' => 'ਦਾà¨\96਼ਲਾ à¨\97ਲਤੀ',
+'createacct-error' => 'à¨\96ਾਤਾ à¨¬à¨£à¨¾à¨\89ਣ à¨µà¨¿à¨\9a à¨\97ਲਤà©\80',
 'createaccounterror' => 'ਖਾਤਾ ਬਣਾਇਆ ਨਹੀਂ ਜਾ ਸਕਿਆ: $1',
 'nocookiesnew' => 'ਯੂਜ਼ਰ ਅਕਾਊਂਟ ਬਣਾਇਆ ਗਿਆ ਹੈ, ਪਰ ਤੁਸੀਂ ਲਾਗਇਨ ਨਹੀਂ ਕੀਤਾ ਹੈ।{{SITENAME}} uses cookies to log in users. You have cookies disabled. Please enable them, then log in with your new username and password.',
 'nocookieslogin' => '{{SITENAME}} ਯੂਜ਼ਰਾਂ ਨੂੰ ਲਾਗਇਨ ਕਰਨ ਲਈ ਕੂਕੀਜ਼ ਵਰਤਦੀ ਹੈ। ਤੁਹਾਡੇ ਕੂਕੀਜ਼ ਆਯੋਗ ਕੀਤੇ ਹੋਏ ਹਨ। ਉਨ੍ਹਾਂ ਨੂੰ ਯੋਗ ਕਰਕੇ ਮੁੜ ਟਰਾਈ ਕਰੋ।',
-'noname' => 'ਤੁਸੀਂ ਇੱਕ ਸਹੀ ਯੂਜ਼ਰ-ਨਾਂ ਨਹੀਂ ਦਿੱਤਾ ਹੈ।',
-'loginsuccesstitle' => 'ਲਾਗਇਨ ਸਫ਼ਲ',
-'loginsuccess' => "'''ਤੁਸੀਂ {{SITENAME}} ਉੱਤੇ \"\$1\" ਵਜੋਂ ਲਾਗਇਨ ਕਰ ਚੁੱਕੇ ਹੋ।'''",
-'nosuchuser' => '!"$1" ਨਾਂ ਨਾਲ ਕੋਈ ਯੂਜ਼ਰ ਨਹੀਂ ਹੈ। ਆਪਣੇ ਸ਼ਬਦ ਜੋੜ ਧਿਆਨ ਨਾਲ ਚੈਕ ਕਰੋ ਉਪਰ ਹੇਠਾਂ ਦਾ ਕੇਸ ਵਰਤਣ ਨਾਲ ਫ਼ਰਕ ਪੈਂਦਾ ਹੈ ਜਾਂ [[Special:UserLogin/signup|ਨਵਾਂ ਖਾਤਾ ਬਣਾਓ]]',
-'nosuchusershort' => '"$1" ਨਾਂ ਨਾਲ ਕੋਈ ਵੀ ਯੂਜ਼ਰ ਨਹੀਂ ਹੈ। ਆਪਣੇ ਸ਼ਬਦ ਧਿਆਨ ਨਾਲ ਚੈੱਕ ਕਰੋ।',
-'nouserspecified' => 'ਤੁਹਾਨੂੰ ਇੱਕ ਯੂਜ਼ਰ-ਨਾਂ ਦੇਣਾ ਪਵੇਗਾ।',
-'login-userblocked' => 'ਇਹ ਯੂਜ਼ਰ ਪਾਬੰਦੀਸ਼ੁਦਾ ਹੈ। ਲਾਗਇਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।',
-'wrongpassword' => 'ਗਲਤ ਪਾਸਵਰਡ ਦਿੱਤਾ ਹੈ। ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜੀ।',
-'wrongpasswordempty' => 'ਖਾਲੀ ਪਾਸਵਰਡ ਦਿੱਤਾ ਹੈ। ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜੀ।',
+'nocookiesfornew' => 'ਵਰਤੋਂਕਾਰ ਖਾਤਾ ਨਹੀਂ ਬਣਾਇਆ ਗਿਆ ਕਿਉਂਕਿ ਅਸੀਂ ਇਹਦੇ ਸਰੋਤ ਨੂੰ ਤਸਦੀਕ ਨਹੀਂ ਕਰ ਸਕੇ।
+ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਹਾਡੀਆਂ ਕੁਕੀਆਂ ਕੰਮ ਕਰ ਰਹੀਆਂ ਹਨ, ਸਫ਼ਾ ਫੇਰ ਲੋਡ ਕਰੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।',
+'noname' => 'ਤੁਸੀਂ ਇੱਕ ਸਹੀ ਵਰਤੋਂਕਾਰ-ਨਾਂ ਨਹੀਂ ਦਿੱਤਾ।',
+'loginsuccesstitle' => 'ਦਾਖ਼ਲਾ ਸਫ਼ਲ',
+'loginsuccess' => "'''ਤੁਸੀਂ {{SITENAME}} ਉੱਤੇ \"\$1\" ਵਜੋਂ ਦਾਖ਼ਲ ਹੋ ਚੁੱਕੇ ਹੋ।'''",
+'nosuchuser' => '!"$1" ਨਾਂ ਨਾਲ਼ ਕੋਈ ਵਰਤੋਂਕਾਰ ਨਹੀਂ ਹੈ। ਵੱਡੇ ਅਤੇ ਛੋਟੇ ਅੱਖਰ ਵਰਤਣ ਨਾਲ ਫ਼ਰਕ ਪੈਂਦਾ ਹੈ।
+ਆਪਣੇ ਹਿੱਜਿਆਂ ਨੂੰ ਧਿਆਨ ਨਾਲ ਚੈੱਕ ਕਰੋ ਜਾਂ [[Special:UserLogin/signup|ਨਵਾਂ ਖਾਤਾ ਬਣਾਓ]]',
+'nosuchusershort' => '"$1" ਨਾਂ ਨਾਲ ਕੋਈ ਵੀ ਵਰਤੋਂਕਾਰ ਨਹੀਂ ਹੈ। ਆਪਣੇ ਹਿੱਜੇ ਧਿਆਨ ਨਾਲ ਚੈੱਕ ਕਰੋ।',
+'nouserspecified' => 'ਤੁਹਾਨੂੰ ਇੱਕ ਵਰਤੋਂਕਾਰ-ਨਾਂ ਦੇਣਾ ਪਵੇਗਾ।',
+'login-userblocked' => 'ਇਹ ਵਰਤੋਂਕਾਰ ਪਾਬੰਦੀਸ਼ੁਦਾ ਹੈ। ਦਾਖ਼ਲੇ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।',
+'wrongpassword' => 'ਗ਼ਲਤ ਪਾਸਵਰਡ ਦਿੱਤਾ ਹੈ। ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜੀ।',
+'wrongpasswordempty' => 'ਖ਼ਾਲੀ ਪਾਸਵਰਡ ਦਿੱਤਾ ਹੈ। ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜੀ।',
 'passwordtooshort' => 'ਪਾਸਵਰਡ {{PLURAL:$1|1 ਅੱਖਰ|$1 ਅੱਖਰਾਂ}} ਦਾ ਹੋਣਾ ਲਾਜ਼ਮੀ ਹੈ।',
 'password-name-match' => 'ਤੁਹਾਡਾ ਪਾਸਵਰਡ ਤੁਹਾਡੇ ਯੂਜ਼ਰ ਨਾਂ ਤੋਂ ਵੱਖਰਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।',
 'password-login-forbidden' => 'ਇਹ ਯੂਜ਼ਰ-ਨਾਂ ਅਤੇ ਪਾਸਵਰਡ ਵਰਤਣ ਦੀ ਮਨਾਹੀ ਹੈ।',
@@ -657,9 +691,9 @@ Note that some pages may continue to be displayed as if you were still logged in
 
 ਜੇ ਕਿਸੇ ਹੋਰ ਨੇ ਇਹ ਬੇਨਤੀ ਕੀਤੀ ਸੀ ਜਾਂ ਜੇ ਤੁਹਾਨੂੰ ਆਪਣਾ ਪਾਸਵਰਡ ਯਾਦ ਹੈ ਅਤੇ ਤੁਸੀਂ ਇਸਨੂੰ ਬਦਲਣਾ ਨਹੀਂ ਚਾਹੁੰਦੇ ਤਾਂ ਤੁਸੀਂ ਇਸ ਸੁਨੇਹੇ ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰ ਕੇ ਆਪਣਾ ਪੁਰਾਣਾ ਪਾਸਵਰਡ ਵਰਤਣਾ ਜਾਰੀ ਰੱਖ ਸਕਦੇ ਹੋ।',
 'noemail' => 'ਯੂਜ਼ਰ "$1" ਲਈ ਰਿਕਾਰਡ ਵਿੱਚ ਕੋਈ ਈਮੇਲ ਐਡਰੈੱਸ ਨਹੀਂ ਹੈ।',
-'noemailcreate' => 'ਤà©\81ਹਾਨà©\82à©° à¨ à©\80à¨\95 à¨\88ਮà©\87ਲ à¨\90ਡਰà©\88ੱਸ ਦੇਣਾ ਪਵੇਗਾ',
-'passwordsent' => '"$1" à¨¨à¨¾à¨² à¨°à¨\9cਿਸà¨\9fਰ à¨\95à©\80ਤà©\87 à¨\88ਮà©\87ਲ à¨\90ਡਰà©\88ੱਸ ਉੱਤੇ ਈਮੇਲ ਭੇਜੀ ਗਈ ਹੈ।
-ਇਹ ਮਿਲ ਦੇ ਬਾਅਦ ਮੁੜ ਲਾਗਇਨ ਕਰੋ ਜੀ।',
+'noemailcreate' => 'ਤà©\81ਹਾਨà©\82à©° à¨ à©\80à¨\95 à¨\88ਮà©\87ਲ à¨ªà¨¤à¨¾ ਦੇਣਾ ਪਵੇਗਾ',
+'passwordsent' => '"$1" à¨¨à¨¾à¨² à¨°à¨\9cਿਸà¨\9fਰ à¨\95à©\80ਤà©\87 à¨\88ਮà©\87ਲ à¨ªà¨¤à©\87 ਉੱਤੇ ਈਮੇਲ ਭੇਜੀ ਗਈ ਹੈ।
+ਇਹ ਮਿਲਣ ਮਗਰੋਂ ਮੁੜ ਦਾਖ਼ਲ ਹੋਵੋ ਜੀ।',
 'blocked-mailpassword' => 'ਤੁਹਾਡੇ IP ਪਤੇ ਤੇ ਸੋਧ ਕਰਨ ਤੇ ਪਾਬੰਦੀ ਹੈ ਅਤੇ ਇਸੇ ਕਰਕੇ, ਗ਼ਲਤ ਵਰਤੋਂ ਤੋਂ ਬਚਣ ਲਈ, ਪਾਸਵਰਡ ਹਾਸਲ ਕਰਨ ਵਾਲ਼ੀ ਸਹੂਲਤ ਦੀ ਵਰਤੋਂ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।',
 'eauthentsent' => 'ਇਕ ਤਸਦੀਕੀ ਈ-ਮੇਲ ਨਾਮਜ਼ਦ ਕੀਤੇ ਈ-ਮੇਲ ਪਤੇ ਤੇ ਭੇਜੀ ਜਾ ਚੁੱਕੀ ਹੈ।
 ਤੁਹਾਡੇ ਪਤੇ ਤੇ ਕੋਈ ਹੋਰ ਈ-ਮੇਲ ਭੇਜਣ ਤੋਂ ਪਹਿਲਾਂ, ਇਹ ਤਸਦੀਕ ਕਰਨ ਲਈ ਕਿ ਖਾਤਾ ਅਸਲ ਵਿਚ ਤੁਹਾਡਾ ਹੀ ਹੈ, ਤੁਹਾਨੂੰ ਉਸ ਈ-ਮੇਲ ਵਿਚਲੀਆਂ ਹਦਾਇਤਾਂ ਤੇ ਅਮਲ ਕਰਨਾ ਹੋਵੇਗਾ।',
@@ -668,29 +702,32 @@ Note that some pages may continue to be displayed as if you were still logged in
 'mailerror' => 'ਈਮੇਲ ਭੇਜਣ ਦੌਰਾਨ ਗਲਤੀ: $1',
 'acct_creation_throttle_hit' => 'ਤੁਹਾਡਾ IP ਪਤਾ ਵਰਤ ਕੇ ਆਉਣ ਵਾਲ਼ਿਆਂ ਨੇ ਆਖ਼ਰੀ ਦਿਨਾਂ ਵਿਚ ਇਸ ਵਿਕੀ ’ਤੇ {{PLURAL:$1|੧ ਖਾਤਾ ਬਣਾਇਆ ਹੈ|$1 ਖਾਤੇ ਬਣਾਏ ਹਨ}} ਜੋ ਕਿ, ਹਾਲ ਦੀ ਘੜੀ, ਖਾਤੇ ਬਣਾਉਣ ਦੀ ਆਖ਼ਰੀ ਹੱਦ ਹੈ।
 ਨਤੀਜੇ ਵਜੋਂ ਇਸ IP ਪਤੇ ਨੂੰ ਵਰਤਣ ਵਾਲ਼ੇ ਫ਼ਿਲਹਾਲ ਹੋਰ ਖਾਤੇ ਨਹੀਂ ਬਣਾ ਸਕਦੇ।',
-'emailauthenticated' => 'ਤੁਹਾਡਾ ਈ-ਮੇਲ ਪਤਾ $2 ਨੂੰ $1 ’ਤੇ ਤਸਦੀਕ ਕੀਤਾ ਗਿਆ।',
-'emailnotauthenticated' => 'ਤà©\81ਹਾਡਾ à¨\88ਮà©\87ਲ à¨\90ਡਰà©\88ੱਸ à¨¹à¨¾à¨²à©\87 à¨ªà¨°à¨®à¨¾à¨£à¨¿à¨¤ à¨¨à¨¹à©\80à¨\82 à¨¹à©\88। ਹੇਠ ਦਿੱਤੇ ਫੀਚਰਾਂ ਲਈ ਕੋਈ ਵੀ ਈਮੇਲ ਨਹੀਂ ਭੇਜੀ ਜਾਵੇਗੀ।',
+'emailauthenticated' => 'ਤੁਹਾਡਾ ਈ-ਮੇਲ ਪਤਾ $2 ਨੂੰ $3 ’ਤੇ ਤਸਦੀਕ ਕੀਤਾ ਗਿਆ।',
+'emailnotauthenticated' => 'ਤà©\81ਹਾਡਾ à¨\88ਮà©\87ਲ à¨ªà¨¤à¨¾ à¨¹à¨¾à¨²à©\87 à¨¤à¨¸à¨\95ਦà©\80à¨\95 à¨¨à¨¹à©\80à¨\82 à¨¹à©\8bà¨\87à¨\86। ਹੇਠ ਦਿੱਤੇ ਫੀਚਰਾਂ ਲਈ ਕੋਈ ਵੀ ਈਮੇਲ ਨਹੀਂ ਭੇਜੀ ਜਾਵੇਗੀ।',
 'noemailprefs' => 'ਇਹਨਾਂ ਸਹੂਲਤਾਂ ਦੀ ਵਰਤੋਂ ਲਈ ਆਪਣੀਆਂ ਪਸੰਦਾਂ ਵਿਚ ਇਕ ਈ-ਮੇਲ ਪਤਾ ਦਿਓ।',
-'emailconfirmlink' => 'à¨\86ਪਣà©\87 à¨\88ਮà©\87ਲ à¨\90ਡਰà©\88ਸ à¨¦à©\80 à¨ªà©\81ਸ਼à¨\9fà©\80 à¨\95ਰà©\8b',
+'emailconfirmlink' => 'à¨\86ਪਣਾ à¨\88ਮà©\87ਲ à¨ªà¨¤à¨¾ à¨¤à¨¸à¨¦à©\80à¨\95 à¨\95ਰਾà¨\93',
 'invalidemailaddress' => 'ਈ-ਮੇਲ ਪਤਾ ਕਬੂਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਕਿਉਂਕਿ ਇਹ ਸਹੀ ਅੰਦਾਜ਼ ਵਿਚ ਲਿਖਿਆ ਨਹੀਂ ਜਾਪਦਾ ਹੈ।
 ਸਹੀ ਅੰਦਾਜ਼ ਵਿਚ ਦਿਓ ਜਾਂ ਇਹ ਖ਼ਾਨਾ ਖ਼ਾਲੀ ਛੱਡ ਦਿਓ।',
 'cannotchangeemail' => 'ਇਸ ਵਿਕੀ ਤੇ ਈ-ਮੇਲ ਪਤੇ ਬਦਲੇ ਨਹੀਂ ਜਾ ਸਕਦੇ।',
 'emaildisabled' => 'ਇਹ ਸਾਈਟ ਈ-ਮੇਲਾਂ ਨਹੀਂ ਭੇਜ ਸਕਦੀ।',
 'accountcreated' => 'ਖਾਤਾ ਬਣਾਇਆ',
-'accountcreatedtext' => '$1 ਲਈ ਯੂਜ਼ਰ ਖਾਤਾ ਬਣਾਇਆ ਗਿਆ।',
+'accountcreatedtext' => '[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|ਗੱਲਬਾਤ]]) ਲਈ ਵਰਤੋਂਕਾਰ ਖਾਤਾ ਬਣਾਇਆ ਗਿਆ।',
 'createaccount-title' => '{{SITENAME}} ਲਈ ਅਕਾਊਂਟ ਬਣਾਉਣਾ',
 'createaccount-text' => 'ਕਿਸੇ ਨੇ "$2" ਮੈਂਬਰ-ਨਾਮ ਅਤੇ "$3" ਪਾਸਵਰਡ ਨਾਲ਼ {{SITENAME}} ($4) ਤੇ, ਤੁਹਾਡਾ ਈ-ਮੇਲ ਪਤਾ ਵਰਤਦੇ ਹੋਏ, ਖਾਤਾ ਬਣਾਇਆ ਹੈ।
 ਤੁਹਾਨੂੰ ਹੁਣੇ ਲਾਗਇਨ ਕਰਕੇ ਆਪਣਾ ਪਾਸਵਰਡ ਬਦਲਣਾ ਚਾਹੀਦਾ ਹੈ।
 
 ਜੇ ਇਹ ਖਾਤਾ ਗ਼ਲਤੀ ਨਾਲ਼ ਬਣ ਗਿਆ ਹੈ ਤਾਂ ਤੁਸੀਂ ਇਸ ਸੁਨੇਹੇ ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰ ਸਕਦੇ ਹੋ।',
-'usernamehasherror' => 'ਮà©\88à¨\82ਬਰ-ਨਾਮ ਵਿਚ ਹੈਸ਼ ਅੱਖਰ ਨਹੀਂ ਹੋ ਸਕਦੇ',
-'login-throttled' => 'ਤà©\81ਸà©\80à¨\82 à¨¬à¨¹à©\81ਤ à¨¸à¨¾à¨°à©\80à¨\86à¨\82 à¨¤à¨¾à¨\9c਼ਾ à¨²à¨¾à¨\97à¨\87ਨ ਕੋਸ਼ਿਸ਼ਾਂ ਕੀਤੀਆਂ ਹਨ।
-ਮਿਹਰਬਾਨੀ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਥੋੜੀ ਉਡੀਕ ਕਰੋ।',
-'login-abort-generic' => 'ਤà©\81ਹਾਡà©\80 à¨²à¨¾à¨\97à¨\87ਨ ਨਾਕਾਮ ਸੀ - ਅਧੂਰਾ ਛੱਡਿਆ',
+'usernamehasherror' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ à¨¦à©\87 à¨¨à¨¾à¨\82 ਵਿਚ ਹੈਸ਼ ਅੱਖਰ ਨਹੀਂ ਹੋ ਸਕਦੇ',
+'login-throttled' => 'ਤà©\81ਸà©\80à¨\82 à¨¬à¨¹à©\81ਤ à¨¸à¨¾à¨°à©\80à¨\86à¨\82 à¨¤à¨¾à¨\9c਼ਾ à¨¦à¨¾à¨\96਼ਲਾ ਕੋਸ਼ਿਸ਼ਾਂ ਕੀਤੀਆਂ ਹਨ।
+ਮਿਹਰਬਾਨà©\80 à¨\95ਰà¨\95à©\87 à¨¦à©\81ਬਾਰਾ à¨\95à©\8bਸ਼ਿਸ਼ à¨\95ਰਨ à¨¤à©\8bà¨\82 à¨ªà¨¹à¨¿à¨²à¨¾à¨\82 à¨¥à©\8bà©\9cà©\8dਹà©\80 à¨\89ਡà©\80à¨\95 à¨\95ਰà©\8b।',
+'login-abort-generic' => 'ਤà©\81ਹਾਡਾ à¨¦à¨¾à¨\96਼ਲਾ ਨਾਕਾਮ ਸੀ - ਅਧੂਰਾ ਛੱਡਿਆ',
 'loginlanguagelabel' => 'ਭਾਸ਼ਾ: $1',
+'suspicious-userlogout' => 'ਤੁਹਾਡੀ ਵਿਦਾਇਗੀ ਦੀ ਬੇਨਤੀ ਨਕਾਰ ਦਿੱਤੀ ਗਈ ਕਿਉਂਕਿ ਲੱਗਦਾ ਹੈ ਕਿ ਇਹ ਕਿਸੇ ਟੁੱਟੇ ਹੋਏ ਬਰਾਊਜ਼ਰ ਜਾਂ ਕੈਸ਼ ਹੋਈ ਪ੍ਰਾਕਸੀ ਤੋਂ ਭੇਜੀ ਗਈ ਸੀ।',
 
 # Email sending
+'php-mail-error-unknown' => 'PHP ਦੇ ਮੇਲ() ਕਰਜ ਵਿੱਚ ਅਣਜਾਣ ਦੋਸ਼',
 'user-mail-no-addy' => 'ਬਿਨਾਂ ਈ-ਮੇਲ ਪਤਾ ਦਿੱਤੇ ਈ-ਮੇਲ ਭੇਜਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ।',
+'user-mail-no-body' => 'ਖ਼ਾਲੀ ਜਾਂ ਬਹੁਤੀ ਛੋਟੀ ਸਮੱਗਰੀ ਨਾਲ਼ ਈਮੇਲ ਭੇਜਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਗਈ',
 
 # Change password dialog
 'resetpass' => 'ਪਾਸਵਰਡ ਬਦਲੋ',
@@ -708,15 +745,19 @@ Note that some pages may continue to be displayed as if you were still logged in
 'resetpass-wrong-oldpass' => 'ਗ਼ਲਤ ਆਰਜ਼ੀ ਜਾਂ ਚਾਲੂ ਪਾਸਵਰਡ।
 ਸ਼ਾਇਦ ਤੁਸੀਂ ਕਾਮਯਾਬੀ ਨਾਲ਼ ਆਪਣਾ ਪਾਸਵਰਡ ਬਦਲ ਚੁੱਕੇ ਹੋ ਜਾਂ ਆਰਜ਼ੀ ਪਾਸਵਰਡ ਲਈ ਬੇਨਤੀ ਕੀਤੀ ਸੀ।',
 'resetpass-temp-password' => 'ਆਰਜ਼ੀ ਪਾਸਵਰਡ:',
+'resetpass-abort-generic' => 'ਇੱਕ ਐਕਸਟੈਂਸ਼ਨ ਵੱਲੋਂ ਪਾਸਵਰਡ ਦੀ ਤਬਦੀਲੀ ਰੱਦ ਕੀਤੀ ਗਈ',
 
 # Special:PasswordReset
 'passwordreset' => 'ਪਾਸਵਰਡ ਮੁੜ-ਸੈੱਟ ਕਰੋ',
-'passwordreset-text' => 'ਆਪਣਾ ਪਾਸਵਰਡ ਮੁੜ-ਸੈੱਟ ਕਰਨ ਲਈ ਇਹ ਫਾਰਮ ਪੂਰਾ ਕਰੋ।',
+'passwordreset-text-one' => 'ਪਾਸਵਰਡ ਦੁਬਾਰਾ ਬਣਾਉਣ ਲਈ ਇਹ ਫ਼ਾਰਮ ਭਰੋ।',
+'passwordreset-text-many' => '{{PLURAL:$1|ਆਪਣਾ ਪਾਸਵਰਡ ਮੁੜ ਬਣਾਉਣ ਲਈ ਕੋਈ ਇੱਕ ਥਾਂ ਭਰੋ।}}',
 'passwordreset-legend' => 'ਪਾਸਵਰਡ ਮੁੜ-ਸੈੱਟ ਕਰੋ',
 'passwordreset-disabled' => 'ਇਸ ਵਿਕੀ ਤੇ ਪਾਸਵਰਡ ਰੀਸੈੱਟ ਬੰਦ ਕੀਤੇ ਗਏ ਹਨ।',
 'passwordreset-emaildisabled' => 'ਇਹ ਵਿਕਿ ਉੱਤੇ ਈਮੇਲ ਫੀਚਰ ਬੰਦ ਕੀਤਾ ਹੋਇਆ ਹੈ।',
-'passwordreset-username' => 'ਯà©\82à¨\9c਼ਰ-ਨਾਂ:',
+'passwordreset-username' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ ਨਾਂ:',
 'passwordreset-domain' => 'ਡੋਮੇਨ:',
+'passwordreset-capture' => 'ਨਤੀਜੇ ਵਜੋਂ ਬਣਦੀ ਈਮੇਲ ਵੇਖੋ?',
+'passwordreset-capture-help' => 'ਜੇਕਰ ਤੁਸੀਂ ਇਹ ਬਕਸਾ ਸਹੀ ਕਰਦੇ ਹੋ ਤਾਂ ਇਹ ਈਮੇਲ (ਅਸਥਾਈ ਪਾਸਵਰਡ ਸਮੇਤ) ਤੁਹਾਨੂੰ ਵਿਖਾਈ ਜਾਵੇਗੀ ਅਤੇ ਵਰਤੋਂਕਾਰ ਨੂੰ ਵੀ ਭੇਜੀ ਜਾਵੇਗੀ।',
 'passwordreset-email' => 'ਈ-ਮੇਲ ਸਿਰਨਾਵਾਂ:',
 'passwordreset-emailtitle' => '{{SITENAME}} ਤੇ ਖਾਤੇ ਦੀ ਜਾਣਕਾਰੀ',
 'passwordreset-emailtext-ip' => 'ਕਿਸੇ ਨੇ (ਸ਼ਾਇਦ ਤੁਸੀਂ, IP ਪਤਾ $1 ਤੋਂ) {{SITENAME}}
@@ -745,40 +786,40 @@ $2
 'changeemail-cancel' => 'ਰੱਦ ਕਰੋ',
 
 # Edit page toolbar
-'bold_sample' => 'à¨\97à©\82à©\9cà©\8dਹà©\87 à¨\85ੱà¨\96ਰ',
-'bold_tip' => 'à¨\97à©\82à©\9cà©\8dਹà©\87 à¨\85ੱà¨\96ਰ',
-'italic_sample' => 'à¨\9fà©\87ਡà©\87 à¨\85ੱà¨\96ਰ',
-'italic_tip' => 'à¨\9fà©\87ਢà©\80 à¨\85ੱà¨\96ਰ',
-'link_sample' => 'ਲਿੰà¨\95 à¨¨à¨¾à¨\82',
-'link_tip' => 'à¨\85ੰਦਰà©\82ਨà©\80 à¨²à¨¿à©°à¨\95',
-'extlink_sample' => 'http://www.example.com à¨²à¨¿à©°à¨\95 à¨¨à¨¾à¨\82',
-'extlink_tip' => 'ਬਾਹਰà©\80 à¨²à¨¿à©°à¨\95 (à¨\85à¨\97à©\87ਤਰ http:// ਯਾਦ ਰੱਖੋ)',
-'headline_sample' => 'ਸਿਰਲà©\87à¨\96 à¨¸à¨¼à¨¬à¨¦',
+'bold_sample' => 'ਮà©\8bà¨\9fà©\80 à¨²à¨¿à¨\96ਤ',
+'bold_tip' => 'ਮà©\8bà¨\9fà©\80 à¨²à¨¿à¨\96ਤ',
+'italic_sample' => 'à¨\9fà©\87ਢà©\80 à¨²à¨¿à¨\96ਤ',
+'italic_tip' => 'à¨\9fà©\87ਢà©\80 à¨²à¨¿à¨\96ਤ',
+'link_sample' => 'à¨\95à©\9cà©\80 à¨¦à¨¾ à¨¸à¨¿à¨°à¨²à©\87à¨\96',
+'link_tip' => 'à¨\85ੰਦਰà©\82ਨà©\80 à¨\95à©\9cà©\80',
+'extlink_sample' => 'http://www.example.com à¨\95à©\9cà©\80 à¨¦à¨¾ à¨¸à¨¿à¨°à¨²à©\87à¨\96',
+'extlink_tip' => 'ਬਾਹਰà©\80 à¨\95à©\9cà©\80 (http:// à¨\85à¨\97à©\87ਤਰ ਯਾਦ ਰੱਖੋ)',
+'headline_sample' => 'ਸਿਰਨਾਵà©\87à¨\82 à¨¦à©\80 à¨²à¨¿à¨\96ਤ',
 'headline_tip' => 'ਦੂਜੇ ਦਰਜੇ ਦਾ ਸਿਰਲੇਖ',
 'nowiki_sample' => 'ਅਸੰਗਠਿਤ ਪਾਠ (NON -FORMATTED) ਇੱਥੇ ਰਖੋ।',
 'nowiki_tip' => 'ਵਿਕੀ ਫਾਰਮੈਟਿੰਗ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰੋ',
-'image_tip' => 'à¨\87ੰਬà©\88ੱਡ à¨«à¨¾à¨\87ਲ',
-'media_tip' => 'ਫਾà¨\87ਲ à¨²à¨¿à©°à¨\95',
-'sig_tip' => 'ਤà©\81ਹਾਡà©\87 à¨¦à¨¸à¨¤à¨\96ਤ ਸਮੇਂ ਸਮੇਤ',
-'hr_tip' => 'ਲà©\87à¨\9fਵà©\80à¨\82 à¨²à¨¾à¨\88ਨ (use sparingly)',
+'image_tip' => 'à¨\87ੰਬà©\88ੱਡ à¨«à¨¼à¨¾à¨\88ਲ',
+'media_tip' => 'ਫ਼ਾà¨\88ਲ à¨\95à©\9cà©\80',
+'sig_tip' => 'ਤà©\81ਹਾਡà©\87 à¨¦à¨¸à¨¤à¨\96਼ਤ, ਸਮੇਂ ਸਮੇਤ',
+'hr_tip' => 'ਲà©\87à¨\9fਵà©\80à¨\82 à¨°à©\87à¨\96ਾ (à¨\9fਾਵà©\80à¨\82-à¨\9fਾਵà©\80à¨\82 à¨µà¨°à¨¤à©\8bà¨\82 à¨\95ਰà©\8b)',
 
 # Edit pages
 'summary' => 'ਸਾਰ:',
 'subject' => 'ਵਿਸ਼ਾ/ਹੈੱਡਲਾਈਨ:',
-'minoredit' => 'à¨\87ਹ à¨\87ੱà¨\95 à¨\9bà©\8bà¨\9fਾ à¨¬à¨¦à¨²à¨¾à¨\85 ਹੈ',
-'watchthis' => 'à¨\87ਸ à¨ªà©°à¨¨à©\87 â\80\99ਤà©\87 à¨§à¨¿à¨\86ਨ ਰੱਖੋ',
+'minoredit' => 'à¨\87ਹ à¨\87ੱà¨\95 à¨\9bà©\8bà¨\9fà©\80 à¨¸à©\8bਧ ਹੈ',
+'watchthis' => 'à¨\87ਸ à¨¸à¨«à¨¼à©\87 â\80\99ਤà©\87 à¨¨à¨\9c਼ਰ ਰੱਖੋ',
 'savearticle' => 'ਸਫ਼ਾ ਸੰਭਾਲੋ',
 'preview' => 'ਝਲਕ',
-'showpreview' => 'à¨\9dਲà¨\95 à¨µà©\87ਖਾਓ',
+'showpreview' => 'à¨\9dਲà¨\95 à¨µà¨¿ਖਾਓ',
 'showlivepreview' => 'ਲਾਈਵ ਝਲਕ',
-'showdiff' => 'ਬਦਲਾà¨\85 à¨µà©\87à¨\96à©\8b',
-'anoneditwarning' => "'''à¨\9aà©\87ਤਾਵਨà©\80:''' à¨¤à©\81ਸà©\80à¨\82 à¨²à¨¾à¨\97à¨\87ਨ à¨¨à¨¹à©\80à¨\82 à¨\95à©\80ਤਾ à¨¹à©\88। à¨¤à©\81ਹਾਡਾ IP à¨\90ਡਰà©\88ੱਸ ਇਸ ਸਫ਼ੇ ਦੇ ਅਤੀਤ ਵਿੱਚ ਰਿਕਾਰਡ ਕੀਤਾ ਜਾਵੇਗਾ।",
-'anonpreviewwarning' => "''ਤੁਸੀਂ ਲਾਗਇਨ ਨਹੀਂ ਕੀਤਾ। ਤਬਦੀਲੀ ਸਾਂਭਣ ਨਾਲ਼ ਤੁਹਾਡਾ IP ਪਤਾ ਸਫ਼ੇ ਦੇ ਸੋਧ ਅਤੀਤ ਵਿਚ ਰਿਕਾਰਡ ਹੋ ਜਾਵੇਗਾ।''",
+'showdiff' => 'ਤਬਦà©\80ਲà©\80à¨\86à¨\82 à¨µà¨\96ਾà¨\93',
+'anoneditwarning' => "'''à¨\96਼ਬਰਦਾਰ:''' à¨¤à©\81ਸà©\80à¨\82 à¨²à¨¾à¨\97à¨\87ਨ à¨¨à¨¹à©\80à¨\82 à¨\95à©\80ਤਾ à¨¹à©\8bà¨\87à¨\86। à¨¤à©\81ਹਾਡਾ IP à¨ªà¨¤à¨¾ ਇਸ ਸਫ਼ੇ ਦੇ ਅਤੀਤ ਵਿੱਚ ਰਿਕਾਰਡ ਕੀਤਾ ਜਾਵੇਗਾ।",
+'anonpreviewwarning' => "''ਤੁਸੀਂ ਲਾਗਇਨ ਨਹੀਂ ਕੀਤਾ ਹੋਇਆ। ਤਬਦੀਲੀ ਸਾਂਭਣ ਨਾਲ਼ ਤੁਹਾਡਾ IP ਪਤਾ ਸਫ਼ੇ ਦੇ ਸੋਧ ਅਤੀਤ ਵਿਚ ਰਿਕਾਰਡ ਹੋ ਜਾਵੇਗਾ।''",
 'missingsummary' => "'''ਯਾਦ-ਦਹਾਨੀ:''' ਤੁਸੀਂ ਸੋਧ ਸਾਰ ਮੁਹੱਈਆ ਨਹੀਂ ਕਰਵਾਇਆ। ਜੇ ਤੁਸੀਂ \"{{int:savearticle}}\" ਤੇ ਦੁਬਾਰਾ ਕਲਿੱਕ ਕੀਤਾ ਤਾਂ ਤੁਹਾਡਾ ਸਫ਼ਾ ਇਸਦੇ ਬਿਨਾਂ ਹੀ ਸਾਂਭਿਆ ਜਾਵੇਗਾ।",
 'missingcommenttext' => 'ਹੇਠਾਂ ਇੱਕ ਟਿੱਪਣੀ ਦਿਓ।',
 'summary-preview' => 'ਸੋਧ ਸਾਰ ਦੀ ਝਲਕ:',
-'subject-preview' => 'ਵਿਸ਼ਾ/ਹà©\88ੱਡਲਾà¨\88ਨ ਝਲਕ:',
-'blockedtitle' => 'ਯà©\82à¨\9c਼ਰ à¨\89ੱਤà©\87 à¨ªà¨¾à¨¬à©°à¨¦à©\80 à¨²à¨\97ਾà¨\88',
+'subject-preview' => 'ਵਿਸ਼à©\87/ਸਿਰਨਾਵà©\87à¨\82 à¨¦à©\80 ਝਲਕ:',
+'blockedtitle' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ à¨\89ੱਤà©\87 à¨ªà¨¾à¨¬à©°à¨¦à©\80 à¨²à©±à¨\97à©\80 à¨¹à©\8bà¨\88 à¨¹à©\88',
 'blockedtext' => "'''ਤੁਹਾਡੇ ਮੌਮਬਰ ਨਾਮ ਜਾਂ IP ਪਤੇ ’ਤੇ ਪਾਬੰਦੀ ਲੱਗ ਚੁੱਕੀ ਹੈ।'''
 
 ਪਾਬੰਦੀ $1 ਨੇ ਲਾਈ ਹੈ।
@@ -796,32 +837,32 @@ sysop}}|administrator]] ਨਾਲ ਰਾਬਤਾ ਕਰ ਸਕਦੇ ਹੋ।
 ਅਤੇ ਪਾਬੰਦੀ ਪਤਾ #$5 ਹੈ।
 ਮਿਹਰਬਾਨੀ ਕਰਕੇ ਆਪਣੇ ਕਿਸੇ ਵੀ ਸਵਾਲ ਜਾਂ ਪੁੱਛ-ਗਿੱਛ ਵਿਚ ਇਹ ਉੱਪਰਲੀ ਤਫ਼ਸੀਲ ਜ਼ਰੂਰ ਸ਼ਾਮਲ ਕਰੋ।",
 'blockednoreason' => 'ਕੋਈ ਕਾਰਨ ਨਹੀਂ ਦੱਸਿਆ ਗਿਆ',
-'whitelistedittext' => 'ਪà©\87à¨\9c ਸੋਧਣ ਲਈ ਤੁਹਾਨੂੰ $1 ਕਰਨਾ ਪਵੇਗਾ।',
+'whitelistedittext' => 'ਸਫ਼à©\87 ਸੋਧਣ ਲਈ ਤੁਹਾਨੂੰ $1 ਕਰਨਾ ਪਵੇਗਾ।',
 'confirmedittext' => 'ਸਫ਼ਿਆਂ ਨੂੰ ਸੋਧਣ ਤੋਂ ਪਹਿਲਾਂ ਤੁਹਾਨੂੰ ਆਪਣਾ ਈ-ਮੇਲ ਪਤਾ ਤਸਦੀਕ ਕਰਨਾ ਪਵੇਗਾ।
 ਮਿਹਰਬਾਨੀ ਕਰਕੇ ਆਪਣੀਆਂ [[Special:Preferences|ਖਾਤਾ ਪਸੰਦਾ]] ਜ਼ਰੀਏ ਸਹੀ ਈ-ਮੇਲ ਪਤਾ ਦਿਓ ਅਤੇ ਤਸਦੀਕ ਕਰੋ।',
-'nosuchsectiontitle' => 'ਸà©\88à¨\95ਸ਼ਨ à¨²à©±à¨­à¨¿à¨\86 à¨¨à¨¹à©\80à¨\82 à¨\9cਾ à¨¸à¨\95ਦਾ',
-'nosuchsectiontext' => 'ਤà©\81ਸà©\80à¨\82 à¨¨à¨¾-ਮà©\8cà¨\9cà©\82ਦ à¨¸à©\88à¨\95ਸ਼ਨ ਨੂੰ ਸੋਧਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਹੈ।
+'nosuchsectiontitle' => 'ਭਾà¨\97 à¨²à©±à¨­ à¨¨à¨¹à©\80à¨\82 à¨°à¨¿à¨¹ਾ',
+'nosuchsectiontext' => 'ਤà©\81ਸà©\80à¨\82 à¨¨à¨¾-ਮà©\8cà¨\9cà©\82ਦ à¨­à¨¾à¨\97 ਨੂੰ ਸੋਧਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਹੈ।
 ਸ਼ਾਇਦ ਤੁਹਾਡੇ ਸਫ਼ੇ ਨੂੰ ਵੇਖਣ ਦੇ ਦੌਰਾਨ ਇਹ ਮਿਟਾਇਆ ਜਾਂ ਇਸਦਾ ਸਿਰਲੇਖ ਬਦਲਿਆ ਜਾ ਚੁੱਕਾ ਹੈ।',
-'loginreqtitle' => 'ਲਾà¨\97à¨\87ਨ ਚਾਹੀਦਾ ਹੈ',
-'loginreqlink' => 'ਲਾà¨\97à¨\87ਨ',
-'loginreqpagetext' => 'ਹà©\8bਰ à¨ªà©\87à¨\9c ਵੇਖਣ ਲਈ ਤੁਹਾਨੂੰ $1 ਕਰਨਾ ਪਵੇਗਾ।',
+'loginreqtitle' => 'ਦਾà¨\96਼ਲਾ ਚਾਹੀਦਾ ਹੈ',
+'loginreqlink' => 'ਦਾà¨\96਼ਲ à¨¹à©\8bਵà©\8b',
+'loginreqpagetext' => 'ਹà©\8bਰ à¨¸à¨«à¨¼à©\87 ਵੇਖਣ ਲਈ ਤੁਹਾਨੂੰ $1 ਕਰਨਾ ਪਵੇਗਾ।',
 'accmailtitle' => 'ਪਾਸਵਰਡ ਭੇਜਿਆ।',
 'accmailtext' => "[[User talk:$1|$1]] ਲਈ ਰਲ਼ਵੇਂ ਤੌਰ ’ਤੇ ਬਣਿਆ ਪਾਸਵਰਡ $2 ਨੂੰ ਭੇਜਿਆ ਜਾ ਚੁੱਕਾ ਹੈ।
 ਇਸ ਨਵੇਂ ਖਾਤੇ ਲਈ ਲਾਗਇਨ ਕਰਨ ਤੋਂ ਬਾਅਦ ''[[Special:ChangePassword|ਪਾਸਵਰਡ ਬਦਲੋ]]'' ’ਤੇ ਜਾ ਕੇ ਪਾਸਵਰਡ ਬਦਲਿਆ ਜਾ ਸਕਦਾ ਹੈ।",
 'newarticle' => '(ਨਵਾਂ)',
-'newarticletext' => "ਤà©\81ਸà©\80à¨\82 à¨\95ਿਸà©\87 à¨\90ਸà©\87 à¨ªà©°à¨¨ੇ ਦੇ ਕੜੀ ’ਤੇ ਹੋ ਜੋ ਹਾਲੇ ਬਣਾਇਆ ਨਹੀਂ ਗਿਆ।
-ਸਫ਼ਾ à¨¬à¨£à¨¾à¨\89ਣ à¨²à¨\88 à¨¹à©\87ਠ à¨¦à¨¿à©±à¨¤à©\87 à¨\96ਾਨà©\87 à¨µà¨¿à©±à¨\9a à¨²à¨¿à¨\96ਣਾ à¨¸à¨¼à©\81ਰà©\82 à¨\95ਰà©\8b। (ਹà©\8bਰ à¨®à¨¦à¨¦ à¨²à¨\88 [[{{MediaWiki:Helppage}}|ਮਦਦ à¨ªà©°à¨¨ਾ]] ਵੇਖੋ।)
-ਜੇ ਤੁਸੀਂ ਗਲਤੀ ਨਾਲ ਇੱਥੇ ਆਏ ਹੋ ਤਾਂ ਆਪਣੇ ਬ੍ਰਾਊਜ਼ਰ ਦੇ '''ਪਿੱਛੇ''' ਬਟਨ ’ਤੇ ਕਲਿੱਕ ਕਰੋ।",
+'newarticletext' => "ਤà©\81ਸà©\80à¨\82 à¨\95ਿਸà©\87 à¨\85à¨\9cਿਹà©\87 à¨¸à¨«à¨¼ੇ ਦੇ ਕੜੀ ’ਤੇ ਹੋ ਜੋ ਹਾਲੇ ਬਣਾਇਆ ਨਹੀਂ ਗਿਆ।
+ਸਫ਼ਾ à¨¬à¨£à¨¾à¨\89ਣ à¨²à¨\88 à¨¹à©\87ਠ à¨¦à¨¿à©±à¨¤à©\87 à¨\96ਾਨà©\87 à¨µà¨¿à¨\9a à¨²à¨¿à¨\96ਣਾ à¨¸à¨¼à©\81ਰà©\82 à¨\95ਰà©\8b। (ਹà©\8bਰ à¨®à¨¦à¨¦ à¨²à¨\88 [[{{MediaWiki:Helppage}}|ਮਦਦ à¨¸à¨«à¨¼ਾ]] ਵੇਖੋ।)
+à¨\9cà©\87 à¨¤à©\81ਸà©\80à¨\82 à¨\97਼ਲਤà©\80 à¨¨à¨¾à¨² à¨\87ੱਥà©\87 à¨\86à¨\8f à¨¹à©\8b à¨¤à¨¾à¨\82 à¨\86ਪਣà©\87 à¨¬à©\8dਰਾà¨\8aà¨\9c਼ਰ à¨¦à©\87 '''ਪਿੱà¨\9bà©\87''' à¨¬à¨\9fਨ â\80\99ਤà©\87 à¨\95ਲਿੱà¨\95 à¨\95ਰà©\8b।",
 'anontalkpagetext' => "----''ਇਹ ਇਕ ਗੁਮਨਾਮ ਮੈਂਬਰ ਲਈ ਇਕ ਚਰਚਾ ਸਫ਼ਾ ਹੈ ਜਿਸਨੇ ਹਾਲੇ ਖਾਤਾ ਨਹੀ ਬਣਾਇਆ ਜਾਂ ਉਸਨੂੰ ਵਰਤ ਨਹੀਂ ਰਿਹਾ।
 ਇਸ ਵਾਸਤੇ ਸਾਡੇ ਕੋਲ ਉਸਨੂੰ ਪਛਾਨਣ ਲਈ IP ਪਤਾ ਹੈ।
 ਇਕ IP ਪਤਾ ਕਈ ਵਰਤਣ ਵਾਲ਼ਿਆਂ ਦੁਆਰਾ ਸਾਂਝਾ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
 ਜੇ ਤੁਸੀਂ ਇੱਕ ਗੁਮਨਾਮ ਮੈਂਬਰ ਹੋ ਅਤੇ ਸਮਝਦੇ ਹੋ ਕਿ ਇਹ ਟਿੱਪਣੀਆਂ ਤੁਹਾਡੇ ਲਈ ਹਨ ਤਾਂ ਮਿਹਰਬਾਨੀ ਕਰਕੇ ਹੋਰਾਂ ਗੁਮਨਾਮ ਮੈਂਬਰਾਂ ਨਾਲ਼ ਪੈਦਾ ਹੋਣ ਵਾਲ਼ੀ ਉਲਝਣ ਤੋਂ ਬਚਣ ਲਈ [[Special:UserLogin/signup|ਖਾਤਾ ਬਣਾਓ]] ਜਾਂ [[Special:UserLogin|ਲਾਗਇਨ ਕਰੋ]]।''",
-'noarticletext' => 'ਫ਼ਿਲਹਾਲ à¨\87ਸ à¨ªà©°à¨¨à©\87 â\80\99ਤà©\87 à¨\95à©\8bà¨\88 à¨²à¨¿à¨\96ਤ à¨¨à¨¹à©\80à¨\82 à¨¹à©\88। à¨¤à©\81ਸà©\80à¨\82 à¨¦à©\82à¨\9cà©\87 à¨ªà©°à¨¨à¨¿à¨\86à¨\82 â\80\99ਤà©\87 [[Special:Search/{{PAGENAME}}|à¨\87ਸ à¨¸à¨¿à¨°à¨²à©\87à¨\96 à¨¦à©\80 à¨\96à©\8bà¨\9c]] à¨\95ਰ à¨¸à¨\95ਦà©\87 à¨¹à©\8b, <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} à¨¸à¨¬à©°à¨§à¨¿à¨¤ à¨\9aਿੱਠà©\87 à¨\96à©\8bà¨\9c] à¨¸à¨\95ਦà©\87 à¨¹à©\8b à¨\9cਾà¨\82 à¨\87ਸ [{{fullurl:{{FULLPAGENAME}}|action=edit}} à¨ªà©°à¨¨à©\87 à¨µà¨¿à©±ਚ ਲਿਖ] ਸਕਦੇ ਹੋ</span>।',
+'noarticletext' => 'ਫ਼ਿਲਹਾਲ à¨\87ਸ à¨¸à¨«à¨¼à©\87 â\80\99ਤà©\87 à¨\95à©\8bà¨\88 à¨²à¨¿à¨\96ਤ à¨¨à¨¹à©\80à¨\82 à¨¹à©\88। à¨¤à©\81ਸà©\80à¨\82 à¨¦à©\82à¨\9cà©\87 à¨¸à¨«à¨¼à¨¿à¨\86à¨\82 â\80\99ਤà©\87 [[Special:Search/{{PAGENAME}}|à¨\87ਸ à¨¸à¨¿à¨°à¨²à©\87à¨\96 à¨¦à©\80 à¨\96à©\8bà¨\9c]] à¨\95ਰ à¨¸à¨\95ਦà©\87 à¨¹à©\8b, <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} à¨¸à¨¬à©°à¨§à¨¤ à¨\9aਿੱਠà©\87 à¨²à©±à¨­] à¨¸à¨\95ਦà©\87 à¨¹à©\8b à¨\9cਾà¨\82 à¨\87ਸ [{{fullurl:{{FULLPAGENAME}}|action=edit}} à¨¸à¨«à¨¼à©\87 à¨µà¨¿ਚ ਲਿਖ] ਸਕਦੇ ਹੋ</span>।',
 'noarticletext-nopermission' => 'ਫ਼ਿਲਹਾਲ ਇਸ ਪੰਨੇ ’ਤੇ ਕੋਈ ਲਿਖਤ ਨਹੀਂ ਹੈ। ਤੁਸੀਂ ਦੂਸਰੇ ਪੰਨਿਆਂ ’ਤੇ [[Special:Search/{{PAGENAME}}|ਇਸ ਸਿਰਲੇਖ ਦੀ ਖੋਜ]] ਕਰ ਸਕਦੇ ਹੋ, ਸਬੰਧਤ <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ਚਿੱਠੇ] ਖੋਜ ਸਕਦੇ ਹੋ ਜਾਂ [{{fullurl:{{FULLPAGENAME}}|action=edit}} ਇਸ ਪੰਨੇ ਵਿੱਚ ਲਿਖ] ਸਕਦੇ ਹੋ।</span>',
-'userpage-userdoesnotexist' => 'ਮà©\88à¨\82ਬਰ ਖਾਤਾ "$1" ਰਜਿਸਟਰ ਨਹੀਂ ਹੈ।
+'userpage-userdoesnotexist' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ ਖਾਤਾ "$1" ਰਜਿਸਟਰ ਨਹੀਂ ਹੈ।
 ਜੇ ਤੁਸੀਂ ਇਸਨੂੰ ਬਣਾਉਣਾ/ਸੋਧਣਾ ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ ਮਿਰਬਾਨੀ ਕਰਕੇ ਜਾਂਚ ਕਰ ਲਓ।',
-'userpage-userdoesnotexist-view' => 'ਯà©\82à¨\9c਼ਰ à¨\96ਾਤਾ "$1" à¨°à¨\9cਿਸà¨\9fਰ ਨਹੀਂ ਹੈ।',
-'blocked-notice-logextract' => 'à¨\87ਹ à¨®à©\88à¨\82ਬਰ ਇਸ ਵੇਲ਼ੇ ਪਾਬੰਦੀਸ਼ੁਦਾ ਹੈ।
+'userpage-userdoesnotexist-view' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ à¨\96ਾਤਾ "$1" à¨°à¨\9cਿਸà¨\9fਰਡ ਨਹੀਂ ਹੈ।',
+'blocked-notice-logextract' => 'à¨\87ਹ à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰ ਇਸ ਵੇਲ਼ੇ ਪਾਬੰਦੀਸ਼ੁਦਾ ਹੈ।
 ਹਵਾਲੇ ਲਈ ਪਾਬੰਦੀ ਚਿੱਠੇ ਦਾ ਨਵਾਂ ਦਾਖ਼ਲਾ ਹੇਠ ਦਿੱਤਾ ਗਿਆ ਹੈ:',
 'usercssyoucanpreview' => "'''ਟੋਟਕਾ:''' ਆਪਣੇ ਨਵੇਂ CSS ਸਫ਼ੇ ਨੂੰ ਸਾਂਭਣ ਤੋਂ ਪਹਿਲਾਂ ਪਰਖ ਕਰਨ ਲਈ \"{{int:showpreview}}\" ਬਟਨ ਵਰਤੋ।",
 'userjsyoucanpreview' => "'''ਟੋਟਕਾ:''' ਆਪਣੀ ਜਾਵਾਸਕ੍ਰਿਪਟ ਨੂੰ ਸਾਂਭਣ ਤੋਂ ਪਹਿਲਾਂ ਪਰਖ ਕਰਨ ਲਈ \"{{int:showpreview}}\" ਬਟਨ ਵਰਤੋ।",
@@ -834,19 +875,19 @@ sysop}}|administrator]] ਨਾਲ ਰਾਬਤਾ ਕਰ ਸਕਦੇ ਹੋ।
 'sitejspreview' => "'''ਯਾਦ ਰੱਖੋ ਤੁਸੀਂ ਇਸ ਜਾਵਾਸਕ੍ਰਿਪਟ ਕੋਡ ਦੀ ਸਿਰਫ਼ ਇਕ ਝਲਕ ਵੇਖ ਰਹੇ ਹੋ।'''
 '''ਇਹ ਹਾਲੇ ਸਾਂਭੀ ਨਹੀਂ ਗਈ ਹੈ!'''",
 'updated' => '(ਅੱਪਡੇਟ)',
-'note' => "'''ਨà©\8bà¨\9f:'''",
-'previewnote' => "'''ਯਾਦ ਰੱਖੋ, ਇਹ ਕੇਵਲ ਇੱਕ ਝਲਕ ਹੈ।'''
-ਤà©\81ਹਾਡà©\87 à¨¬à¨¦à¨²à¨¾à¨\85 à¨¹à©\81ਣà©\87 à¨¤à©±à¨\95 à¨¸à¨¾à¨\82ਭà©\87 à¨¨à¨¹à©\80à¨\82 à¨\97à¨\8f à¨¹à¨¨!",
-'continue-editing' => 'ਸੰਪਾਦਨ à¨\96à©\87ਤਰ â\80\99ਤੇ ਜਾਓ',
+'note' => "'''à¨\9fਿੱਪਣà©\80:'''",
+'previewnote' => "'''ਯਾਦ ਰੱਖੋ ਇਹ ਸਿਰਫ਼ ਇੱਕ ਝਲਕ ਹੈ।'''
+ਤà©\81ਹਾਡà©\80à¨\86à¨\82 à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82 à¨¹à¨¾à¨²à©\87 à¨¸à¨¾à¨\82ਭà©\80à¨\86à¨\82 à¨¨à¨¹à©\80à¨\82 à¨\97à¨\88à¨\86à¨\82!",
+'continue-editing' => 'ਸà©\8bਧ à¨\96à©\87ਤਰ ਤੇ ਜਾਓ',
 'previewconflict' => 'ਇਹ ਝਲਕ ਲਿਖਤ ਦਾ ਓਹ ਅਕਸ ਪੇਸ਼ ਕਰਦੀ ਹੈ ਜਿਵੇਂ ਓਹ ਤੁਹਾਡੇ ਸਾਂਭੇ ਜਾਣ ਤੋਂ ਬਾਅਦ ਦਿੱਸੇਗਾ।',
-'editing' => '$1 ਸੋਧ ਜਾਰੀ',
+'editing' => '$1 ਸੋਧਣਾ ਜਾਰੀ',
 'creating' => '$1 ਬਣਾਇਆ ਜਾ ਰਿਹਾ ਹੈ',
 'editingsection' => '$1 (ਭਾਗ) ਸੋਧ ਜਾਰੀ',
 'editingcomment' => '$1 (ਨਵਾਂ ਭਾਗ) ਸੋਧ ਜਾਰੀ',
-'editconflict' => 'à¨\85ਪਵਾਦ à¨\9fਿੱਪਣà©\80: $1',
-'yourtext' => 'ਤà©\81ਹਾਡਾ à¨\9fà©\88à¨\95ਸà¨\9f',
+'editconflict' => 'ਸà©\8bਧ à¨¤à¨\95ਰਾਰ: $1',
+'yourtext' => 'ਤà©\81ਹਾਡà©\80 à¨²à¨¿à¨\96ਤ',
 'storedversion' => 'ਸੰਭਾਲਿਆ ਵਰਜਨ',
-'yourdiff' => 'à¨\85ੰਤਰ',
+'yourdiff' => 'ਫ਼ਰà¨\95',
 'longpageerror' => "'''ਗ਼ਲਤੀ: ਤੁਹਾਡੀ ਪੇਸ਼ ਕੀਤੀ ਲਿਖਤ {{PLURAL:$1|ਇੱਕ ਕਿਲੋਬਾਈਟ|$1 ਕਿਲੋਬਾਈਟ}} ਦੀ ਹੈ ਜੋ ਕਿ {{PLURAL:$2|ਇੱਕ ਕਿਲੋਬਾਈਟ|$2 ਕਿਲੋਬਾਈਟ}} ਦੇ ਵੱਧ ਤੋਂ ਵੱਧ ਅਕਾਰ ਤੋਂ ਜ਼ਿਆਦਾ ਹੈ।'''
 ਇਹ ਸਾਂਭੀ ਨਹੀਂ ਜਾ ਸਕਦੀ।",
 'readonlywarning' => "'''ਖ਼ਬਰਦਾਰ: ਡੈਟਾਬੇਸ ਰੱਖ-ਰਖਾਵ ਦੇ ਕਰਕੇ ਤਾਲਾ-ਬੱਧ ਹੈ ਇਸ ਕਰਕੇ ਤੁਸੀਂ ਹੁਣੇ ਆਪਣੀ ਤਬਦੀਲੀ ਨਹੀਂ ਸਾਂਭ ਸਕਦੇ।'''
@@ -864,47 +905,56 @@ sysop}}|administrator]] ਨਾਲ ਰਾਬਤਾ ਕਰ ਸਕਦੇ ਹੋ।
 'templatesusedsection' => 'ਇਹ ਭਾਗ ਵਿੱਚ {{PLURAL:$1|ਸਾਂਚਾ|ਸਾਂਚੇ}} ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ:',
 'template-protected' => '(ਸੁਰੱਖਿਅਤ)',
 'template-semiprotected' => '(ਨੀਮ-ਸੁਰੱਖਿਅਤ)',
-'hiddencategories' => 'à¨\87ਹ à¨ªà©°à¨¨ਾ {{PLURAL:$1|੧ ਲੁਕਵੀਂ ਸ਼੍ਰੇਣੀ|
+'hiddencategories' => 'à¨\87ਹ à¨¸à¨«à¨¼ਾ {{PLURAL:$1|੧ ਲੁਕਵੀਂ ਸ਼੍ਰੇਣੀ|
 $1 ਲੁਕਵੀਆਂ ਸ਼੍ਰੇਣੀਆਂ}} ਦਾ ਮੈਂਬਰ ਹੈ:',
 'nocreatetext' => '{{SITENAME}} ਨੇ ਨਵੇਂ ਸਫ਼ੇ ਬਣਾਉਣ ਤੇ ਰੋਕ ਲਾਈ ਹੋਈ ਹੈ।
 ਤੁਸੀਂ ਵਾਪਸ ਜਾ ਕੇ ਮੌਜੂਦਾ ਸਫ਼ੇ ਸੋਧ ਸਕਦੇ ਹੋ ਜਾਂ [[Special:UserLogin|ਲਾਗਇਨ ਜਾਂ ਖਾਤਾ ਬਣਾ]] ਸਕਦੇ ਹੋ।',
 'nocreate-loggedin' => 'ਤੁਹਾਨੂੰ ਨਵੇਂ ਸਫ਼ੇ ਬਣਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।',
-'permissionserrors' => 'ਅਧਿਕਾਰ ਗਲਤੀਆਂ',
+'sectioneditnotsupported-title' => 'ਭਾਗ ਦੀ ਸੋਧ ਬੰਦ ਕੀਤੀ ਹੋਈ ਹੈ',
+'sectioneditnotsupported-text' => 'ਇਸ ਸਫ਼ੇ ਉੱਤੇ ਭਾਗ ਦੀ ਸੋਧ ਬੰਦ ਹੈ',
+'permissionserrors' => 'ਇਜਾਜ਼ਤ ਦੀਆਂ ਗ਼ਲਤੀਆਂ',
 'permissionserrorstext' => 'ਤੁਹਾਨੂੰ ਇੰਝ ਕਰਨ ਦੇ ਅਧਿਕਾਰ ਨਹੀਂ ਹਨ। ਹੇਠ ਦਿੱਤੇ {{PLURAL:$1|ਕਾਰਨ|ਕਾਰਨ}} ਨੇ:',
-'permissionserrorstext-withaction' => 'ਤà©\81ਹਾਨà©\82à©°  $2 à¨²à¨\88 à¨\85ਧਿà¨\95ਾਰ à¨¨à¨¹à©\80à¨\82 à¨¹à¨¨, à¨\85ੱà¨\97à©\87 à¨¦à¨¿à©±à¨¤à©\87 {{PLURAL:$1|à¨\95ਾਰਨ|à¨\95ਾਰਨਾà¨\82}} à¨\95ਰà¨\95à©\87:',
-'recreate-moveddeleted-warn' => "'''à¨\9aਿਤਾਵਣà©\80:
-ਤà©\81ਸà©\80à¨\82 à¨\90ਸਾ à¨ªà©°à¨¨à¨¾ à¨¬à¨£à¨¾ à¨°à¨¹à©\87 à¨¹à©\8b à¨\9cà©\8b à¨ªà¨¹à¨¿à¨²à¨¾à¨\82 à¨¹à¨\9fਾà¨\87à¨\86 à¨\9cਾ à¨\9aà©\81ੱà¨\95ਾ à¨¹à©\88।'''
-
-ਖਿਆਲ ਕਰੋ ਕਿ ਕੀ ਇਸ ਪੰਨੇ ਦਾ ਕਾਇਮ ਰਹਿਣਾ ਠੀਕ ਹੈ।
-à¨\87ਸਨà©\82à©° à¨®à¨¿à¨\9fਾà¨\89ਣ à¨\9cਾà¨\82 à¨¸à¨¿à¨°à¨²à©\87à¨\96 à¨¬à¨¦à¨²à©\80 à¨¦à¨¾ à¨\9aਿੱਠਾ à¨¹à©\87ਠਾà¨\82 à¨¦à¨¿à©±à¨¤à¨¾ à¨\97ਿà¨\86 à¨¹à©\88।",
-'moveddeleted-notice' => 'ਇਹ ਪੰਨਾ ਹਟਾ ਦਿੱਤਾ ਗਿਆ ਹੈ।
-ਇਸਦੇ ਹਟਾਉਣ ਜਾਂ ਸਿਰਲੇਖ ਬਦਲੀ ਦਾ ਚਿੱਠਾ ਹਵਾਲੇ ਲਈ ਹੇਠ ਦਿੱਤਾ ਗਿਆ ਹੈ।',
-'log-fulllog' => 'ਪੂਰਾ ਲਾਗ ਵੇਖਾਓ',
+'permissionserrorstext-withaction' => 'à¨\85ੱà¨\97à©\87 à¨¦à¨¿à©±à¨¤à©\87 {{PLURAL:$1|à¨\95ਾਰਨ|à¨\95ਾਰਨਾà¨\82}} à¨\95ਰà¨\95à©\87 à¨¤à©\81ਹਾਡà©\87 à¨\95à©\8bਲ $2 à¨²à¨\88 à¨¹à©±à¨\95 à¨¨à¨¹à©\80à¨\82 à¨¹à¨¨:',
+'recreate-moveddeleted-warn' => "'''à¨\96਼ਬਰਦਾਰ:ਤà©\81ਸà©\80à¨\82 à¨\85à¨\9cਿਹਾ à¨¸à¨«à¨¼à¨¾ à¨¬à¨£à¨¾ à¨°à¨¹à©\87 à¨¹à©\8b à¨\9cà©\8b à¨ªà¨¹à¨¿à¨²à¨¾à¨\82 à¨®à¨¿à¨\9fਾà¨\87à¨\86 à¨\9cਾ à¨\9aà©\81ੱà¨\95ਾ à¨¹à©\88।'''
+ਵਿà¨\9aਾਰ à¨\95ਰà©\8b à¨\95ਿ à¨\95à©\80 à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨¨à©\82à©° à¨¸à©\8bਧਣਾ à¨ à©\80à¨\95 à¨¹à©\88।
+ਇਸਨੂੰ ਮਿਟਾਉਣ ਜਾਂ ਸਿਰਲੇਖ ਬਦਲੀ ਦਾ ਚਿੱਠਾ ਸੌਖ ਲਈ ਇੱਥੇ ਦਿੱਤਾ ਗਿਆ ਹੈ।",
+'moveddeleted-notice' => 'ਇਹ ਸਫ਼ਾ ਮਿਟਾ ਦਿੱਤਾ ਗਿਆ ਹੈ।
+à¨\87ਸਦà©\87 à¨®à¨¿à¨\9fਾà¨\89ਣ à¨\9cਾà¨\82 à¨¸à¨¿à¨°à¨²à©\87à¨\96 à¨¬à¨¦à¨²à©\80 à¨¦à¨¾ à¨\9aਿੱਠਾ à¨¹à¨µà¨¾à¨²à©\87 à¨²à¨\88 à¨¹à©\87ਠ à¨¦à¨¿à©±à¨¤à¨¾ à¨\97ਿà¨\86 à¨¹à©\88।',
+'log-fulllog' => 'ਪੂਰਾ ਇੰਦਰਾਜ ਵਿਖਾਓ',
+'edit-hook-aborted' => 'ਹੁੱਕ ਨੇ ਮਿਟਾਉਣਾ ਨਾਕਾਮ ਕੀਤਾ।
+ਇਹਨੇ ਕੋਈ ਕਾਰਨ ਨਹੀਂ ਦੱਸਿਆ।',
 'edit-gone-missing' => 'ਇਹ ਸਫ਼ਾ ਅੱਪਡੇਟ ਨਹੀਂ ਹੋ ਸਕਿਆ।
 ਜਾਪਦਾ ਹੈ ਕਿ ਇਹ ਹਟਾਇਆ ਜਾ ਚੁੱਕਾ ਹੈ।',
+'edit-conflict' => 'ਸੋਧ ਤਕਰਾਰ',
 'edit-no-change' => 'ਤੁਹਾਡੀ ਸੋਧ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰ ਦਿੱਤੀ ਗਈ ਹੈ ਕਿਉਂਕਿ ਲਿਖਤ ਵਿਚ ਕੋਈ ਤਬਦੀਲੀ ਨਹੀਂ ਕੀਤੀ ਗਈ।',
+'postedit-confirmation' => 'ਤੁਹਾਡੀ ਸੋਧ ਸਾਂਭੀ ਗਈ ਹੈ।',
 'edit-already-exists' => 'ਨਵਾਂ ਸਫ਼ਾ ਨਹੀਂ ਬਣਾਇਆ ਜਾ ਸਕਿਆ।
 ਇਹ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ।',
+'defaultmessagetext' => 'ਮੂਲ ਸੰਦੇਸ਼ ਲਿਖਤ',
+'invalid-content-data' => 'ਗ਼ਲਤ ਸਮੱਗਰੀ',
+'content-not-allowed-here' => '"$1" ਸਮੱਗਰੀ ਨੂੰ [[$2]] ਉੱਤੇ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ',
+'editwarning-warning' => 'ਇਹ ਸਫ਼ਾ ਛੱਡਣ ਕਰਕੇ ਤੁਹਾਡੇ ਵੱਲੋਂ ਕੀਤੀਆਂ ਸੋਧਾਂ ਗੁੰਮ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਜੇਕਰ ਤੁਸੀਂ ਦਾਖ਼ਲਾ ਲਿਆ ਹੋਇਆ ਹੈ ਤਾਂ ਤੁਸੀਂ ਇਸ ਚਿਤਾਵਨੀ ਨੂੰ ਆਪਣੀਆਂ ਪਸੰਦਾਂ ਦੇ "ਸੰਪਾਦਨ" ਭਾਗ ਵਿਚ ਜਾ ਕੇ ਬੰਦ ਕਰ ਸਕਦੇ ਹੋ।',
 
 # Content models
-'content-model-wikitext' => 'ਵਿà¨\95ਿà¨\9fà©\88à¨\95ਸà¨\9f',
-'content-model-text' => 'à¨\86ਮ à¨\9fà©\88à¨\95ਸà¨\9f',
-'content-model-javascript' => 'à¨\9cਾਵਾਸà¨\95à©\8dਰਿਪà¨\9f',
+'content-model-wikitext' => 'ਵਿà¨\95à©\80ਲਿà¨\96ਤ',
+'content-model-text' => 'à¨\86ਮ à¨²à¨¿à¨\96ਤ',
+'content-model-javascript' => 'ਜਾਵਾਸਕਰਿਪਟ',
 'content-model-css' => 'ਸੀਐਸਐਸ',
 
 # Parser/template warnings
-'post-expand-template-inclusion-warning' => "'''à¨\96ਬਰਦਾਰ:''' à¨¸à¨¾à¨\82à¨\9aਾ à¨¦à¨¾ à¨\85à¨\95ਾਰ à¨¬à¨¹à©\81ਤ à¨µà©±à¨¡à¨¾ à¨¹à©\88। à¨\95à©\81à¨\9d à¨\9fà©\88à¨\82ਪਲà©\87à¨\9f ਸ਼ਾਮਲ ਨਹੀਂ ਹੋਣਗੇ।",
-'post-expand-template-inclusion-category' => 'à¨\93ਹ à¨ªà©°à¨¨à©\87 à¨\9cਿੱਥà©\87 à¨\9fà©\88à¨\82ਪਲà©\87à¨\9fਾà¨\82 à¨¦à©\87 à¨¸à¨¼à¨¾à¨®à¨² à¨\95ਰਨ à¨¦à¨¾ à¨\85à¨\95ਾਰ à¨¹à©±à¨¦à©\8bà¨\82 à¨µਧ ਗਿਆ ਹੈ',
+'post-expand-template-inclusion-warning' => "'''à¨\96਼ਬਰਦਾਰ:''' à¨«à¨°à¨®à©\87 à¨¦à¨¾ à¨\85à¨\95ਾਰ à¨¬à¨¹à©\81ਤ à¨µà©±à¨¡à¨¾ à¨¹à©\88। à¨\95à©\81à¨\9d à¨«à¨°à¨®à©\87 ਸ਼ਾਮਲ ਨਹੀਂ ਹੋਣਗੇ।",
+'post-expand-template-inclusion-category' => 'à¨\89ਹ à¨¸à¨«à¨¼à©\87 à¨\9cਿੱਥà©\87 à¨«à¨°à¨®à©\87 à¨¸à¨¼à¨¾à¨®à¨² à¨\95ਰਨ à¨¦à¨¾ à¨\85à¨\95ਾਰ à¨¹à©±à¨¦à©\8bà¨\82 à¨µà©±ਧ ਗਿਆ ਹੈ',
 'post-expand-template-argument-warning' => "'''ਚੇਤਾਵਨੀ:'''
 ਇਸ ਪੰਨੇ ਤੇ ਘੱਟੋ ਘੱਟ ਇੱਕ ਐਸੀ ਸਾਂਚਾ ਬਹਿਸ ਹੈ ਜਿਸ ਦਾ ਅਕਾਰ ਬਹੁਤ ਵੱਡਾ ਹੈ। ਅਜਿਹੀਆਂ ਬਹਿਸਾਂ ਨੂੰ ਛੱਡ ਦਿੱਤਾ ਗਿਆ ਹੈ।",
 'post-expand-template-argument-category' => 'ਐਸੇ ਪੰਨੇ ਜਿਨ੍ਹਾਂ ਵਿੱਚ ਸਾਂਚੇ ਦੇ ਸਁਘਟਕ ਛੁੱਟ ਗਏ ਹਨ ।',
-'parser-template-loop-warning' => 'ਸਾà¨\82à¨\9aੇ ਦਾ ਲੂਪ ਲੱਭਿਆ: [[$1]]',
+'parser-template-loop-warning' => 'ਫਰਮੇ ਦਾ ਲੂਪ ਲੱਭਿਆ: [[$1]]',
 
 # "Undo" feature
 'undo-success' => 'ਇਹ ਸੋਧ ਨਕਾਰੀ ਜਾ ਸਕਦੀ ਹੈ।
 ਮਿਹਰਬਾਨੀ ਕਰਕੇ ਇਹ ਤਸਦੀਕ ਕਰਨ ਲਈ ਹੇਠਲੀ ਤੁਲਨਾ ਜਾਂਚੋ ਕਿ ਇਹ ਓਹੀ ਹੈ ਜੋ ਤੁਸੀਂ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ ਅਤੇ ਫਿਰ ਸੋਧ ਨਕਾਰਨ ਲਈ ਤਬਦੀਲੀਆਂ ਸਾਂਭ ਦਿਓ।',
 'undo-norev' => 'ਸੋਧ ਨਕਾਰੀ ਨਹੀਂ ਜਾ ਸਕਦੀ ਕਿਉਂਕਿ ਇਹ ਮੌਜੂਦ ਨਹੀਂ ਜਾਂ ਮਿਟਾ ਦਿੱਤੀ ਗਈ ਹੈ।',
 'undo-summary' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|ਗੱਲ-ਬਾਤ]]) ਦੀ ਸੋਧ $1 ਨਕਾਰੀ',
+'undo-summary-username-hidden' => 'ਗੁਪਤ ਵਰਤੋਂਕਾਰ ਵੱਲੋਂ ਕੀਤੀ $1 ਸੋਧ ਰੱਦ ਕਰੋ',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'ਖਾਤਾ ਬਣਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ',
@@ -913,8 +963,8 @@ $1 ਲੁਕਵੀਆਂ ਸ਼੍ਰੇਣੀਆਂ}} ਦਾ ਮੈਂਬਰ 
 $3 ਨੇ ਕਾਰਨ ਇਹ ਦੱਸਿਆ ਹੈ, ''$2''",
 
 # History pages
-'viewpagelogs' => 'à¨\87ਹ à¨¸à¨«à¨¼à©\87 à¨²à¨\88 à¨²à¨¾à¨\97 ਵੇਖੋ',
-'nohistory' => 'à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨¦à¨¾ ਕੋਈ ਸੋਧ ਅਤੀਤ ਨਹੀਂ ਹੈ।',
+'viewpagelogs' => 'à¨\87ਹ à¨¸à¨«à¨¼à©\87 à¨²à¨\88 à¨\87ੰਦਰਾà¨\9c ਵੇਖੋ',
+'nohistory' => 'à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨²à¨\88 ਕੋਈ ਸੋਧ ਅਤੀਤ ਨਹੀਂ ਹੈ।',
 'currentrev' => 'ਮੌਜੂਦਾ ਰੀਵਿਜ਼ਨ',
 'currentrev-asof' => '$1 ਮੁਤਾਬਕ ਸਭ ਤੋਂ ਨਵਾਂ ਰੀਵਿਜਨ',
 'revisionasof' => '$1 ਦਾ ਰੀਵਿਜਨ',
@@ -924,22 +974,22 @@ $3 ਨੇ ਕਾਰਨ ਇਹ ਦੱਸਿਆ ਹੈ, ''$2''",
 'currentrevisionlink' => 'ਸਭ ਤੋ ਨਵਾਂ ਰੀਵਿਜਨ',
 'cur' => 'ਮੌਜੂਦਾ',
 'next' => 'ਅੱਗੇ',
-'last' => 'ਪਿੱà¨\9bà©\87',
+'last' => 'ਪਿà¨\9bਲਾ',
 'page_first' => 'ਪਹਿਲਾਂ',
-'page_last' => 'ਆਖਰੀ',
-'histlegend' => "à¨\85ੰਤਰ ਵੇਖੋ:
-ਮੁਕਾਬਲਾ ਕਰਨ ਲਈ ਰੀਵਿਜਨਾਂ ਦੇ ਰੇਡੀਓ ਬਟਨਾਂ ਵਿੱਚ ਨਿਸ਼ਾਨ ਲਾਓ ਅਤੇ ਜਾਓ ਜਾਂ ਸਭ ਤੋਂ ਥੱਲੇ ਵਾਲੇ ਬਟਨ ਤੇ ਕਲਿੱਕ ਕਰੋ। <br />
+'page_last' => 'à¨\86à¨\96਼ਰà©\80',
+'histlegend' => "ਫ਼ਰà¨\95 ਵੇਖੋ:
+ਮੁਕਾਬਲਾ ਕਰਨ ਲਈ ਰੀਵਿਜਨਾਂ ਦੇ ਰੇਡੀਓ ਬਟਨਾਂ ਵਿੱਚ ਨਿਸ਼ਾਨ ਲਾਓ ਅਤੇ \"ਜਾਓ\" ਜਾਂ ਸਭ ਤੋਂ ਥੱਲੇ ਵਾਲੇ ਬਟਨ ਤੇ ਕਲਿੱਕ ਕਰੋ। <br />
 ਲੈਜਅੰਡ:
-'''({{int:cur}})''' = à¨¨à¨µà©\87à¨\82 à¨°à©\80ਵਿà¨\9cਨ à¨¨à¨¾à¨²à©\8bà¨\82 à¨\85ੰਤਰ, '''({{int:last}})''' = à¨ªà¨¿à©±à¨\9bਲà©\80 à¨°à©\80ਵਿà¨\9cਨ à¨¨à¨¾à¨²à©\8bà¨\82 à¨\85ੰਤਰ, '''({{int:minoreditletter}})''' = à¨\9bà©\8bà¨\9fਾ à¨¬à¨¦à¨²à¨¾à¨µ।",
+'''({{int:cur}})''' = à¨¨à¨µà©\87à¨\82 à¨°à©\80ਵਿà¨\9cਨ à¨¨à¨¾à¨²à©\8bà¨\82 à¨«à¨¼à¨°à¨\95, '''({{int:last}})''' = à¨ªà¨¿à¨\9bਲà©\87 à¨°à©\80ਵਿà¨\9cਨ à¨¨à¨¾à¨²à©\8bà¨\82 à¨«à¨¼à¨°à¨\95, '''({{int:minoreditletter}})''' = à¨\9bà©\8bà¨\9fà©\80 à¨¤à¨¬à¨¦à©\80ਲà©\80।",
 'history-fieldset-title' => 'ਬਰਾਊਜ਼ਰ ਅਤੀਤ',
-'history-show-deleted' => 'à¨\95à©\87ਵਲ à¨¹ਟਾਏ ਗਏ',
-'histfirst' => 'ਸਭ à¨¤à©\8bà¨\82 à¨ªà¨¹à¨¿à¨²à¨¾à¨\82 à¨¦ੇ',
-'histlast' => 'ਸਭ à¨¤à©\8bà¨\82 à¨¨à¨µà¨¾ਂ',
+'history-show-deleted' => 'ਸਿਰਫ਼ à¨®à¨¿ਟਾਏ ਗਏ',
+'histfirst' => 'ਸਭ à¨¤à©\8bà¨\82 à¨ªà©\81ਰਾਣੇ',
+'histlast' => 'ਸਭ à¨¤à©\8bà¨\82 à¨¨à¨µà©\87ਂ',
 'historysize' => '({{PLURAL:$1|1 ਬਾਈਟ|$1 ਬਾਈਟ}})',
-'historyempty' => '(ਖਾਲੀ)',
+'historyempty' => '(à¨\96਼ਾਲà©\80)',
 
 # Revision feed
-'history-feed-title' => 'ਰੀਵਿਜ਼ਨ ਅਤੀਤ',
+'history-feed-title' => 'ਰà©\80ਵਿà¨\9c਼ਨ à¨¦à¨¾ à¨\85ਤà©\80ਤ',
 'history-feed-description' => 'ਵਿਕੀ ’ਤੇ ਇਸ ਸਫ਼ੇ ਦਾ ਰੀਵਿਜ਼ਨ ਅਤੀਤ',
 'history-feed-item-nocomment' => '$1 ਤੋਂ $2 ’ਤੇ',
 'history-feed-empty' => 'ਦਰਖ਼ਾਸਤਸ਼ੁਦਾ ਸਫ਼ਾ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।
@@ -948,7 +998,7 @@ $3 ਨੇ ਕਾਰਨ ਇਹ ਦੱਸਿਆ ਹੈ, ''$2''",
 
 # Revision deletion
 'rev-deleted-comment' => '(ਸੋਧ ਸਾਰ ਹਟਾਇਆ)',
-'rev-deleted-user' => '(ਯà©\82à¨\9c਼ਰ ਨਾਂ ਹਟਾਇਆ)',
+'rev-deleted-user' => '(ਵਰਤà©\8bà¨\82à¨\95ਾਰ ਨਾਂ ਹਟਾਇਆ)',
 'rev-deleted-event' => '(ਲਾਗ ਕਾਰਵਾਈ ਹਟਾਈ ਗਈ)',
 'rev-deleted-user-contribs' => '[ਮੈਂਬਰ-ਨਾਂ ਜਾਂ IP ਪਤਾ ਹਟਾਇਆ - ਸੋਧ ਯੋਗਦਾਨਾਂ ਵਿਚੋਂ ਓਹਲੇ ਕੀਤੀ]',
 'rev-deleted-text-permission' => "ਸਫ਼ੇ ਦੀ ਇਹ ਰੀਵਿਜ਼ਨ '''ਮਿਟਾਈ''' ਜਾ ਚੁੱਕੀ ਹੈ।
@@ -969,28 +1019,31 @@ page={{FULLPAGENAMEE}}}} ਮਿਟਾਉਣ ਦੇ ਚਿੱਠੇ] ਵਿਚ 
 'rev-suppressed-diff-view' => "ਇਸ ਫ਼ਰਕ ਵਿੱਚੋਂ ਇੱਕ ਰੀਵਿਜ਼ਨ '''ਜ਼ਬਤ''' ਕੀਤੀ ਜਾ ਚੁੱਕੀ ਹੈ।
 ਤਫ਼ਸੀਲ [{{fullurl:{{#Special:Log}}/delete|
 page={{FULLPAGENAMEE}}}} ਜ਼ਬਤੀ ਦੇ ਚਿੱਠੇ] ਵਿਚ ਵੇਖੀ ਜਾ ਸਕਦੀ ਹੈ।",
-'rev-delundel' => 'ਵà©\87à¨\96ਾà¨\93/à¨\93ਹਲà©\87',
-'rev-showdeleted' => 'ਵà©\87ਖਾਓ',
+'rev-delundel' => 'ਵਿà¨\96ਾà¨\93/ਲà©\81à¨\95ਾà¨\93',
+'rev-showdeleted' => 'ਵਿਖਾਓ',
 'revisiondelete' => 'ਰੀਵਿਜ਼ਨ ਹਟਾਓ/ਹਟਾਇਆ-ਵਾਪਸ',
-'revdelete-nooldid-title' => 'à¨\95à©\8bà¨\88 à¨\9fਾਰà¨\97à©\87à¨\9f ਰੀਵਿਜ਼ਨ ਨਹੀਂ',
+'revdelete-nooldid-title' => 'à¨\95à©\8bà¨\88 à¨¨à¨¿à¨¸à¨¼à¨¾à¨¨à©\87 à¨µà¨¾à¨²à©\80 ਰੀਵਿਜ਼ਨ ਨਹੀਂ',
 'revdelete-nologtype-title' => 'ਚਿੱਠੇ ਦੀ ਕਿਸਮ ਨਹੀਂ ਦੱਸੀ ਗਈ',
 'revdelete-nologtype-text' => 'ਇਹ ਕਾਰਵਾਈ ਕਰਨ ਲਈ ਤੁਸੀਂ ਚਿੱਠੇ ਦੀ ਕਿਸਮ ਨਹੀਂ ਦੱਸੀ।',
+'revdelete-nologid-title' => 'ਗ਼ਲਤ ਦਾਖ਼ਲਾ ਇੰਦਰਾਜ',
 'revdelete-no-file' => 'ਦਿੱਤੀ ਗਈ ਫਾਇਲ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।',
 'revdelete-show-file-confirm' => 'ਤੁਹਾਨੂੰ ਯਕੀਨ ਹੈ ਤੁਸੀਂ $2 ਨੂੰ $3 ਦੀ ਫ਼ਾਈਲ "<nowiki>$1</nowiki>" ਦੀ ਮਿਟਾਈ ਗਈ ਰੀਵਿਜ਼ਨ ਵੇਖਣਾ ਚਾਹੁੰਦੇ ਹੋ?',
 'revdelete-show-file-submit' => 'ਹਾਂ',
 'revdelete-selected' => "'''[[:$1]] {{PLURAL:$2|ਦੀ ਚੁਣੀ ਹੋਈ ਰੀਵਿਜ਼ਨ|ਦੀਆਂ ਚੁਣੀਆਂ ਹੋਈਆਂ ਰੀਵਿਜ਼ਨਾਂ}}:'''",
 'revdelete-legend' => 'ਵੇਖਣ ਪਾਬੰਦੀਆਂ ਸੈੱਟ ਕਰੋ:',
-'revdelete-hide-text' => 'ਰà©\80ਵਿà¨\9c਼ਨ à¨\9fà©\88à¨\95ਸà¨\9f ਓਹਲੇ',
-'revdelete-hide-image' => 'ਫਾà¨\87ਲ ਸਮੱਗਰੀ ਓਹਲੇ',
+'revdelete-hide-text' => 'ਰà©\80ਵਿà¨\9c਼ਨ à¨²à¨¿à¨\96ਤ ਓਹਲੇ',
+'revdelete-hide-image' => 'ਫ਼ਾà¨\88ਲ ਸਮੱਗਰੀ ਓਹਲੇ',
 'revdelete-hide-name' => 'ਕਾਰਵਾਈ ਅਤੇ ਟਾਰਗੇਟ ਓਹਲੇ',
-'revdelete-hide-comment' => 'ਸà©\8bਧ à¨¸à¨¾à¨° à¨\93ਹਲà©\87',
+'revdelete-hide-comment' => 'ਸà©\8bਧ à¨¸à¨¾à¨° à¨²à©\81à¨\95ਾà¨\93',
 'revdelete-hide-user' => 'ਸੋਧਣ ਵਾਲ਼ੇ ਦਾ ਮੈਂਬਰ-ਨਾਂ/IP ਪਤਾ ਲੁਕਾਓ',
+'revdelete-hide-restricted' => 'ਪ੍ਰਸ਼ਾਸਕਾਂ ਅਤੇ ਹੋਰਾਂ ਦੀ ਸਮੱਗਰੀ ਲੁਕਾਓ',
 'revdelete-radio-same' => '(ਨਾ ਬਦਲੋ)',
 'revdelete-radio-set' => 'ਹਾਂ',
 'revdelete-radio-unset' => 'ਨਹੀਂ',
+'revdelete-suppress' => 'ਪ੍ਰਸ਼ਾਸਕਾਂ ਅਤੇ ਹੋਰਾਂ ਦੀ ਸਮੱਗਰੀ ਲੁਕਾਓ',
 'revdelete-unsuppress' => 'ਮੁੜ ਬਹਾਲ ਕੀਤੀਆਂ ਰੀਵਿਜ਼ਨਾਂ ਤੋਂ ਰੋਕਾਂ ਹਟਾਓ',
 'revdelete-log' => 'ਕਾਰਨ:',
-'revdelete-submit' => 'à¨\9aà©\81ਣà©\87 à¨°à©\80ਵਿà¨\9cਨ ਉੱਤੇ ਲਾਗੂ ਕਰੋ',
+'revdelete-submit' => 'à¨\9aà©\81ਣà©\87 à¨¹à©\8bà¨\8f {{PLURAL:$1|ਸà©\81ਧਾਰ|ਸà©\81ਧਾਰਾà¨\82}} ਉੱਤੇ ਲਾਗੂ ਕਰੋ',
 'logdelete-success' => "'''ਚਿੱਠੇ ਦੀ ਦਿੱਖ ਕਾਮਯਾਬੀ ਨਾਲ਼ ਸੈੱਟ ਕੀਤੀ।'''",
 'logdelete-failure' => "'''ਚਿੱਠੇ ਦੀ ਦਿੱਖ ਸੈੱਟ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ:''' $1",
 'revdel-restore' => 'ਦਿੱਖ ਬਦਲੋ',
@@ -1005,15 +1058,22 @@ page={{FULLPAGENAMEE}}}} ਜ਼ਬਤੀ ਦੇ ਚਿੱਠੇ] ਵਿਚ ਵ
 'revdelete-edit-reasonlist' => 'ਮਿਟਾਏ ਜਾਣ ਦੇ ਕਾਰਨ ਸੋਧੋ',
 'revdelete-offender' => 'ਰੀਵਿਜ਼ਨ ਲੇਖਕ:',
 
+# Suppression log
+'suppressionlog' => 'ਲੁਕਾਅ ਇੰਦਰਾਜ',
+
 # History merging
 'mergehistory' => 'ਸਫ਼ਿਆਂ ਦੇ ਅਤੀਤ ਰਲ਼ਾਓ',
+'mergehistory-box' => 'ਦੋ ਸਫ਼ਿਆਂ ਦੇ ਸੁਧਾਰ ਮਿਲਾਓ:',
 'mergehistory-from' => 'ਸਰੋਤ ਸਫ਼ਾ:',
+'mergehistory-into' => 'ਮੰਜਲੀ ਸਫ਼ਾ:',
 'mergehistory-list' => 'ਰਲ਼ਾਉਣਯੋਗ ਸੋਧ ਅਤੀਤ',
 'mergehistory-go' => 'ਰਲ਼ਾਉਣਯੋਗ ਸੋਧਾਂ ਵਖਾਓ',
 'mergehistory-submit' => 'ਰੀਵਿਜ਼ਨਾਂ ਰਲ਼ਾਓ',
 'mergehistory-empty' => 'ਕੋਈ ਰੀਵਿਜ਼ਨ ਰਲ਼ਾਈ ਨਹੀ ਜਾ ਸਕਦੀ।',
 'mergehistory-success' => '[[:$1]] {{PLURAL:|ਦੀ|ਦੀਆਂ}} $3 {{PLURAL:$3|ਰੀਵਿਜ਼ਨ|ਰੀਵਿਜ਼ਨਾਂ}} ਕਾਮਯਾਬੀ ਨਾਲ਼ [[:$2]] ਵਿਚ {{PLURAL:$3|ਰਲ਼ਾਈ|ਰਲ਼ਾਈਆਂ}}।',
 'mergehistory-no-source' => 'ਸਰੋਤ ਸਫ਼ਾ $1 ਮੌਜੂਦ ਨਹੀਂ ਹੈ।',
+'mergehistory-invalid-source' => 'ਸਰੋਤ ਸਫ਼ਾ ਇੱਕ ਸਹੀ ਸਿਰਲੇਖ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।',
+'mergehistory-invalid-destination' => 'ਮੰਜ਼ਿਲ ਸਫ਼ਾ ਇੱਕ ਸਹੀ ਸਿਰਲੇਖ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।',
 'mergehistory-autocomment' => '[[:$1]] ਨੂੰ [[:$2]] ਵਿੱਚ ਰਲ਼ਾਇਆ',
 'mergehistory-comment' => '[[:$1]] ਨੂੰ [[:$2]] ਵਿੱਚ ਰਲ਼ਾਇਆ: $3',
 'mergehistory-same-destination' => 'ਸਰੋਤ ਸਫ਼ਾ ਅਤੇ ਮੰਜ਼ਿਲ ਸਫ਼ਾ ਇੱਕੋ ਜਿਹੇ ਨਹੀਂ ਹੋ ਸਕਦੇ',
@@ -1026,14 +1086,14 @@ page={{FULLPAGENAMEE}}}} ਜ਼ਬਤੀ ਦੇ ਚਿੱਠੇ] ਵਿਚ ਵ
 'mergelogpagetext' => 'ਹੇਠਾਂ ਇੱਕ ਸਫ਼ੇ ਦੇ ਅਤੀਤ ਨੂੰ ਦੂਜੇ ਦੇ ਅਤੀਤ ਵਿਚ ਰਲ਼ਾਉਣ ਦੀ ਸਭ ਤੋਂ ਤਾਜ਼ਾ ਲਿਸਟ ਹੈ।',
 
 # Diffs
-'history-title' => 'ਰੀਵਿਜਨ ਦਾ ਇਤਿਹਾਸ "$1"',
+'history-title' => '"$1" ਦੇ ਰੀਵਿਜਨ ਦਾ ਅਤੀਤ',
 'difference-title' => '"$1" ਦੇ ਰੀਵਿਜ਼ਨਾਂ ਵਿਚ ਫ਼ਰਕ',
 'difference-title-multipage' => 'ਸਫ਼ਿਆਂ "$1" ਅਤੇ "$2" ਵਿਚ ਫ਼ਰਕ',
 'difference-multipage' => '(ਦੋ ਸਫ਼ਿਆਂ ਵਿਚਕਾਰ ਫ਼ਰਕ)',
 'lineno' => 'ਲਾਈਨ $1:',
 'compareselectedversions' => 'ਚੁਣੇ ਵਰਜਨਾਂ ਦੀ ਤੁਲਨਾ',
 'showhideselectedversions' => 'ਚੁਣੇ ਰੀਵਿਜ਼ਨ ਵਖਾਓ/ਲੁਕਾਓ',
-'editundo' => 'ਵਾਪਸ',
+'editundo' => 'ਰੱਦ à¨\95ਰà©\8b',
 'diff-multi' => '({{PLURAL:$2|ਵਰਤੋਂਕਾਰ ਦੀ|$2 ਵਰਤੋਂਕਾਰਾਂ ਦੀਆਂ}} {{PLURAL:$1|ਵਿਚਕਾਰਲੀ ਰੀਵਿਜਨ ਨਹੀਂ ਦਿਖਾਈ ਜਾ ਰਹੀ|ਵਿਚਕਾਰਲੀਆਂ $1 ਰੀਵਿਜਨਾਂ ਨਹੀਂ ਦਿਖਾਈਆਂ ਜਾ ਰਹੀਆਂ}})',
 
 # Search results
@@ -1044,42 +1104,41 @@ page={{FULLPAGENAMEE}}}} ਜ਼ਬਤੀ ਦੇ ਚਿੱਠੇ] ਵਿਚ ਵ
 'searchsubtitleinvalid' => "ਤੁਸੀਂ'''$1''' ਲਈ ਖੋਜ ਕੀਤੀ।",
 'titlematches' => 'ਆਰਟੀਕਲ ਟੈਕਸਟ ਮਿਲਦਾ',
 'notitlematches' => 'ਕੋਈ ਪੇਜ ਟਾਇਟਲ ਨਹੀਂ ਮਿਲਦਾ',
-'textmatches' => 'ਸਫ਼ਾ à¨\9fà©\88à¨\95ਸà¨\9f à¨®à¨¿à¨²à¨¦à¨¾',
-'notextmatches' => 'à¨\95à©\8bà¨\88 à¨ªà©\87à¨\9c à¨\9fà©\88à¨\95ਸà¨\9f à¨¨à¨¹à©\80à¨\82 à¨®à¨¿à¨²à¨¦à¨¾',
+'textmatches' => 'ਸਫ਼à©\87 à¨¦à©\80 à¨²à¨¿à¨\96ਤ à¨®à©\87ਲ à¨\96ਾà¨\82ਦà©\80 à¨¹à©\88',
+'notextmatches' => 'à¨\95ਿਸà©\87 à¨¸à¨«à¨¼à©\87 à¨¦à©\80 à¨²à¨¿à¨\96ਤ à¨®à©\87ਲ à¨¨à¨¹à©\80à¨\82 à¨\96ਾà¨\82ਦà©\80',
 'prevn' => 'ਪਿੱਛੇ {{PLURAL:$1|$1}}',
 'nextn' => 'ਅੱਗੇ {{PLURAL:$1|$1}}',
 'prevn-title' => 'ਪਿਛਲੇ $1 {{PLURAL:$1|ਨਤੀਜਾ|ਨਤੀਜੇ}}',
-'nextn-title' => 'ਅਗਲੇ $1 {{PLURAL:$1|ਨਤੀਜਾ|ਨਤੀਜੇ}}',
-'shown-title' => 'ਪà©\8dਰਤà©\80 à¨ªà©°à¨¨à¨¾ $1 {{PLURAL:$1|ਨਤà©\80à¨\9cਾ|ਨਤà©\80à¨\9cà©\87}} à¨µਖਾਓ',
+'nextn-title' => '{{PLURAL:$1|ਅਗਲਾ|ਅਗਲੇ}} $1 {{PLURAL:$1|ਨਤੀਜਾ|ਨਤੀਜੇ}}',
+'shown-title' => 'ਪà©\8dਰਤà©\80 à¨¸à¨«à¨¼à¨¾ $1 {{PLURAL:$1|ਨਤà©\80à¨\9cਾ|ਨਤà©\80à¨\9cà©\87}} à¨µà¨¿ਖਾਓ',
 'viewprevnext' => 'ਵੇਖੋ ($1 {{int:pipe-separator}} $2) ($3)',
-'searchmenu-legend' => 'ਖੋਜ ਚੋਣਾਂ',
+'searchmenu-legend' => 'ਖੋਜ-ਸਬੰਧੀ ਚੋਣਾਂ',
 'searchmenu-exists' => "'''ਇਸ ਵਿਕੀ ’ਤੇ \"[[:\$1]]\" ਨਾਮ ਦਾ ਸਫਾ ਹੈ।'''",
-'searchmenu-new' => "'''ਇਸ ਵਿਕੀ ’ਤੇ \"[[:\$1]]\" ਪੰਨਾ ਬਣਾਓ!'''",
-'searchhelp-url' => 'Help:ਸਮੱਗਰੀ',
+'searchmenu-new' => "'''ਇਸ ਵਿਕੀ ’ਤੇ \"[[:\$1]]\" ਸਫ਼ਾ ਬਣਾਓ!'''",
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|ਇਸ ਅਗੇਤਰ ਵਾਲ਼ੇ ਸਫ਼ੇ ਵੇਖੋ]]',
-'searchprofile-articles' => 'ਸਮੱà¨\97ਰà©\80 à¨ªà©°à¨¨ੇ',
-'searchprofile-project' => 'ਮੱਦਦ à¨¤à©\87 à¨ªà¨°à©\8bà¨\9cà©\88à¨\95à¨\9f à¨¸à¨«à¨¼à©\87',
+'searchprofile-articles' => 'ਸਮੱà¨\97ਰà©\80 à¨¸à¨«à¨¼ੇ',
+'searchprofile-project' => 'ਮਦਦ ਤੇ ਪਰੋਜੈਕਟ ਸਫ਼ੇ',
 'searchprofile-images' => 'ਮਲਟੀਮੀਡੀਆ',
 'searchprofile-everything' => 'ਸਭ ਕੁਝ',
-'searchprofile-advanced' => 'ਤà¨\95ਨà©\80à¨\95à©\80',
+'searchprofile-advanced' => 'à¨\89ੱਨਤ',
 'searchprofile-articles-tooltip' => '$1 ਵਿੱਚ ਖੋਜ',
 'searchprofile-project-tooltip' => '$1 ਵਿੱਚ ਖੋਜ',
-'searchprofile-images-tooltip' => 'ਫਾà¨\87ਲ à¨¦à©\80 à¨\96à©\8bà¨\9c',
-'searchprofile-everything-tooltip' => 'ਸਭ à¨\9aà©\80à¨\9c਼ਾà¨\82 à¨\96à©\8bà¨\9cà©\8b (à¨\9aਰà¨\9aਾ à¨ªà©°à¨¨ਿਆਂ ਸਮੇਤ)',
-'searchprofile-advanced-tooltip' => 'à¨\86ਪਣà©\87 à¨¬à¨£à¨¾à¨\8f à¨¨à¨¾à¨®-ਥਾਂਵਾਂ ਵਿੱਚ ਖੋਜੋ',
+'searchprofile-images-tooltip' => 'ਫ਼ਾà¨\88ਲਾà¨\82 à¨\96à©\8bà¨\9cà©\8b',
+'searchprofile-everything-tooltip' => 'ਸਾਰà©\80 à¨¸à¨®à©±à¨\97ਰà©\80 à¨µà¨¿à©±à¨\9aà©\8bà¨\82 à¨\96à©\8bà¨\9cà©\8b (à¨\97ੱਲ-ਬਾਤ à¨¸à¨«à¨¼ਿਆਂ ਸਮੇਤ)',
+'searchprofile-advanced-tooltip' => 'à¨\86ਪਣà©\80à¨\86à¨\82 à¨¬à¨£à¨¾à¨\88à¨\86à¨\82 à¨¨à¨¾à¨\82-ਥਾਂਵਾਂ ਵਿੱਚ ਖੋਜੋ',
 'search-result-size' => '$1 ({{PLURAL:$2|1 ਸ਼ਬਦ|$2 ਸ਼ਬਦ}})',
 'search-result-category-size' => '{{PLURAL:$1|1 ਮੈਂਬਰ|$1 ਮੈਂਬਰ}} ({{PLURAL:$2|1 ਉਪਸ਼੍ਰੇਣੀ|$2 ਉਪਸ਼੍ਰੇਣੀਆਂ}}, {{PLURAL:$3|1 ਫ਼ਾਈਲ|$3 ਫ਼ਾਈਲਾਂ}})',
 'search-result-score' => 'ਸਹੀ: $1%',
 'search-redirect' => '($1 ਰੀਡਿਰੈਕਟ)',
-'search-section' => '(ਭਾà¨\97 $1)',
+'search-section' => '(ਹਿੱਸਾ $1)',
 'search-suggest' => 'ਕੀ ਤੁਹਾਡਾ ਮਤਲਬ ਸੀ: $1',
 'search-interwiki-caption' => 'ਸਾਥੀ ਪ੍ਰੋਜੈਕਟ',
 'search-interwiki-default' => '$1 ਨਤੀਜੇ:',
 'search-interwiki-more' => '(ਹੋਰ)',
-'search-relatedarticle' => 'ਸਬੰਧਿਤ',
-'mwsuggest-disable' => 'AJAX ਸਲਾਹਾਂ ਬੰਦ ਕਰੋ',
+'search-relatedarticle' => 'ਸਬੰਧਤ',
+'mwsuggest-disable' => 'ਖੋਜ ਦੀਆਂ ਸਲਾਹਾਂ ਬੰਦ ਕਰੋ',
 'searcheverything-enable' => 'ਸਾਰੇ ਥਾਂ-ਨਾਂਵਾਂ ਵਿਚ ਖੋਜੋ',
-'searchrelated' => 'ਸਬੰਧਿਤ',
+'searchrelated' => 'ਸਬੰਧਤ',
 'searchall' => 'ਸਭ',
 'showingresults' => "ਹੇਠਾਂ #'''$2''' ਨਾਲ਼ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲ਼ੇ {{PLURAL:
 $1|'''1''' ਨਤੀਜਾ|'''$1''' ਤੱਕ ਨਤੀਜੇ}} ਵਖਾਓ।",
@@ -1090,18 +1149,19 @@ $3|'''1''' ਨਤੀਜਾ|'''$3''' ਨਤੀਜੇ}} ਵਖਾਓ।",
 'powersearch' => 'ਤਕਨੀਕੀ ਖੋਜ',
 'powersearch-legend' => 'ਤਕਨੀਕੀ ਖੋਜ',
 'powersearch-ns' => 'ਨੇਮ-ਸਪੇਸ ਵਿੱਚ ਖੋਜ:',
-'powersearch-redir' => 'ਰà©\80-ਡਿਰà©\88à¨\95à¨\9f à¨²à¨¿à¨¸à¨\9f',
+'powersearch-redir' => 'ਰà©\80-ਡਿਰà©\88à¨\95à¨\9f à¨¸à©\82à¨\9aà©\80ਬੱਧ à¨\95ਰà©\8b',
 'powersearch-field' => 'ਇਸ ਲਈ ਖੋਜ',
 'powersearch-togglelabel' => 'ਜਾਂਚੋ:',
 'powersearch-toggleall' => 'ਸਭ',
 'powersearch-togglenone' => 'ਕੋਈ ਨਹੀਂ',
 'search-external' => 'ਬਾਹਰੀ ਖੋਜ',
+'search-error' => 'ਖੋਜ ਕਰਦੇ ਵਕਤ ਇੱਕ ਦੋਸ਼ ਮਿਲਿਆ:$1',
 
 # Preferences page
-'preferences' => 'ਮà©\87ਰà©\80 à¨ªà¨¸à©°à¨¦',
-'mypreferences' => 'ਪਸੰਦ',
+'preferences' => 'ਪਸੰਦਾà¨\82',
+'mypreferences' => 'ਪਸੰਦਾਂ',
 'prefs-edits' => 'ਸੋਧਾਂ ਦੀ ਗਿਣਤੀ:',
-'prefsnologin' => 'ਲਾà¨\97à¨\87ਨ à¨¨à¨¹à©\80à¨\82',
+'prefsnologin' => 'ਦਾà¨\96਼ਲ à¨¨à¨¹à©\80à¨\82 à¨¹à©\8b',
 'prefsnologintext' => 'ਵਰਤੋਂਕਾਰ ਪਸੰਦਾਂ ਸੈੱਟ ਕਰਨ ਲਈ ਤੁਹਾਨੂੰ <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} ਲਾਗਇਨ]</span> ਕਰਨਾ ਪਵੇਗਾ।',
 'changepassword' => 'ਪਾਸਵਰਡ ਬਦਲੋ',
 'prefs-skin' => 'ਸਕਿਨ',
@@ -1110,7 +1170,7 @@ $3|'''1''' ਨਤੀਜਾ|'''$3''' ਨਤੀਜੇ}} ਵਖਾਓ।",
 'prefs-beta' => 'ਬੀਟਾ ਫੀਚਰ',
 'prefs-datetime' => 'ਮਿਤੀ ਅਤੇ ਸਮਾਂ',
 'prefs-labs' => 'ਲੈਬ ਫੀਚਰ',
-'prefs-user-pages' => 'ਯà©\82à¨\9c਼ਰ ਸਫ਼ੇ',
+'prefs-user-pages' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ ਸਫ਼ੇ',
 'prefs-personal' => 'ਯੂਜ਼ਰ ਪਰੋਫਾਇਲ',
 'prefs-rc' => 'ਤਾਜ਼ਾ ਬਦਲਾਅ',
 'prefs-watchlist' => 'ਨਿਗਰਾਨ-ਸੂਚੀ',
@@ -1126,22 +1186,24 @@ $3|'''1''' ਨਤੀਜਾ|'''$3''' ਨਤੀਜੇ}} ਵਖਾਓ।",
 'prefs-email' => 'ਈਮੇਲ ਚੋਣਾਂ',
 'prefs-rendering' => 'ਦਿੱਖ',
 'saveprefs' => 'ਸੰਭਾਲੋ',
-'resetprefs' => 'ਰੀ-ਸੈੱਟ',
-'restoreprefs' => 'ਸਭ ਮੂਲ ਸੈਟਿੰਗ ਮੁੜ-ਸਟੋਰ ਕਰੋ',
-'prefs-editing' => 'ਸੰਪਾਦਨ ਜਾਰੀ',
-'prefs-edit-boxsize' => 'ਸੋਧ ਖਿੜਕੀ ਦਾ ਅਕਾਰ',
+'resetprefs' => 'ਅਣ-ਸਾਂਭੀਆਂ ਤਬਦੀਲੀਆਂ ਸਾਫ਼ ਕਰੋ',
+'restoreprefs' => 'ਸਭ ਮੂਲ ਸੈਟਿੰਗਾਂ ਮੋੜ ਲਿਆਓ',
+'prefs-editing' => 'ਸੋਧ ਜਾਰੀ',
 'rows' => 'ਕਤਾਰਾਂ:',
 'columns' => 'ਕਾਲਮ:',
 'searchresultshead' => 'ਖੋਜ',
-'resultsperpage' => 'ਪà©\8dਰਤà©\80 à¨ªà©\87à¨\9c à¨¹à¨¿à©±à¨\9f:',
+'resultsperpage' => 'ਪà©\8dਰਤà©\80 à¨¸à¨«à¨¼à¨¾ à¨«à©\87ਰà©\80à¨\86à¨\82:',
 'stub-threshold-disabled' => 'ਬੰਦ ਹੈ',
-'recentchangesdays' => 'ਤਾà¨\9c਼ਾ à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82 à¨µà¨¿à¨\9a à¨¦ਿਖਾਉਣ ਲਈ ਦਿਨ:',
+'recentchangesdays' => 'ਤਾà¨\9c਼ਾ à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82 à¨µà¨¿à¨\9a à¨µਿਖਾਉਣ ਲਈ ਦਿਨ:',
 'recentchangesdays-max' => 'ਵੱਧ ਤੋਂ ਵੱਧ $1 {{PLURAL:$1|ਦਿਨ|ਦਿਨ}}',
+'recentchangescount' => "ਮੂਲ ਤੌਰ 'ਤੇ ਵਿਖਾਈਆਂ ਸੋਧਾਂ ਦੀ ਗਿਣਤੀ:",
 'prefs-help-recentchangescount' => 'ਇਸ ਵਿਚ ਤਾਜ਼ਾ ਤਬਦੀਲੀਆਂ, ਸਫ਼ਿਆਂ ਦੇ ਅਤੀਤ ਅਤੇ ਚਿੱਠੇ ਸ਼ਾਮਲ ਹਨ।',
-'savedprefs' => 'ਤੁਹਾਡੀ ਪਸੰਦ ਸੰਭਾਲੀ ਗਈ ਹੈ।',
-'timezonelegend' => 'ਸਮਾਂ ਖੇਤਰ:',
-'localtime' => 'ਲੋਕਲ ਸਮਾਂ:',
-'timezoneuseserverdefault' => 'ਸਰਵਰ ਡਿਫਾਲਟ ਵਰਤੋਂ',
+'savedprefs' => 'ਤੁਹਾਡੀਆਂ ਪਸੰਦਾਂ ਸਾਂਭੀਆਂ ਗਈਆਂ ਹੈ।',
+'timezonelegend' => 'ਸਮਾਂ ਜੋਨ:',
+'localtime' => 'ਸਥਾਨਕ ਸਮਾਂ:',
+'timezoneuseserverdefault' => 'ਵਿਕੀ ਮੂਲ ($1) ਵਰਤੋ',
+'timezoneuseoffset' => 'ਹੋਰ (ਆਫ਼ਸੈੱਟ ਦੱਸੋ)',
+'timezoneoffset' => 'ਆਫ਼ਸੈੱਟ¹:',
 'servertime' => 'ਸਰਵਰ ਦਾ ਟਾਈਮ:',
 'guesstimezone' => 'ਬਰਾਊਜ਼ਰ ਤੋਂ ਭਰੋ',
 'timezoneregion-africa' => 'ਅਫ਼ਰੀਕਾ',
@@ -1159,22 +1221,26 @@ $3|'''1''' ਨਤੀਜਾ|'''$3''' ਨਤੀਜੇ}} ਵਖਾਓ।",
 'prefs-namespaces' => 'ਥਾਂ-ਨਾਮ',
 'defaultns' => 'ਨਹੀਂ ਤਾਂ ਇਹਨਾਂ ਥਾਂ-ਨਾਂਵਾਂ ਵਿਚ ਖੋਜੋ:',
 'default' => 'ਮੂਲ',
-'prefs-files' => 'ਫਾਇਲਾਂ',
+'prefs-files' => 'ਫ਼ਾਈਲਾਂ',
+'prefs-custom-css' => 'ਰਿਵਾਇਤੀ CSS',
+'prefs-custom-js' => 'ਰਿਵਾਇਤੀ ਜਾਵਾਸਕਰਿਪਟ',
+'prefs-common-css-js' => 'ਸਾਰੀਆਂ ਸਕਿਨਾਂ ਲਈ ਸਾਂਝਾ CSS/ਜਾਵਾਸਕਰਿਪਟ:',
 'prefs-emailconfirm-label' => 'ਈ-ਮੇਲ ਪੁਸ਼ਟੀ:',
-'prefs-textboxsize' => 'ਸੋਧ ਖਿੜਕੀ ਦਾ ਅਕਾਰ',
 'youremail' => 'ਈ-ਮੇਲ:',
 'username' => '{{GENDER:$1|ਯੂਜ਼ਰਨਾਂ}}:',
 'uid' => '{{GENDER:$1|User}} ਆਈਡੀ:',
 'prefs-memberingroups' => '{{PLURAL:$1|ਗਰੁੱਪ|ਗਰੁੱਪਾਂ}} ਦਾ ਮੈਂਬਰ:',
 'prefs-registration' => 'ਰਜਿਸਟਰੇਸ਼ਨ ਸਮਾਂ:',
-'yourrealname' => 'à¨\85ਸਲà©\80 à¨¨à¨¾à¨®:',
+'yourrealname' => 'à¨\85ਸਲà©\80 à¨¨à¨¾à¨\82:',
 'yourlanguage' => 'ਭਾਸ਼ਾ:',
-'yourvariant' => 'ਸਮੱਗਰੀ ਭਾਸ਼ਾ ਰੂਪ:',
-'yournick' => 'ਨਵà©\87à¨\82 à¨¹à¨¸à¨¤à¨¾à¨\96ਰ:',
+'yourvariant' => 'ਸਮੱà¨\97ਰà©\80 à¨­à¨¾à¨¸à¨¼à¨¾ à¨¦à¨¾ à¨¹à©\8bਰ à¨°à©\82ਪ:',
+'yournick' => 'ਨਵà©\87à¨\82 à¨¦à¨¸à¨¤à¨\96਼ਤ:',
 'prefs-help-signature' => 'ਗੱਲ-ਬਾਤ ਸਫ਼ਿਆਂ ਉੱਤੇ ਟਿੱਪਣੀਆਂ ਦੇ ਆਖ਼ਰ ਵਿਚ "<nowiki>~~~~</nowiki>" ਲਾਓ ਜੋ ਤੁਹਾਡੇ ਦਸਤਖ਼ਤ ਅਤੇ ਵਕਤ ਦੀ ਮੋਹਰ ਵਿਚ ਤਬਦੀਲ ਹੋ ਜਾਵੇਗਾ।',
+'badsig' => 'ਗ਼ਲਤ ਕੱਚੇ ਦਸਤਖ਼ਤ।
+HTML ਟੈਗ ਚੈੱਕ ਕਰੋ।',
 'badsiglength' => 'ਦਸਤਖ਼ਤ ਬਹੁਤ ਲੰਬਾ ਹੋ ਗਿਆ ਹੈ। ਇਹ {{PLURAL:$1|ਅੱਖਰ|ਅੱਖਰਾਂ}} ਤੋਂ ਲੰਬਾ ਨਹੀਂ ਹੋਣਾ ਚਾਹੀਦਾ।',
 'yourgender' => 'ਲਿੰਗ:',
-'gender-unknown' => 'à¨\9c਼ਾਹਿਰ à¨¨à¨¹à©\80à¨\82 à¨\95à©\80ਤਾ',
+'gender-unknown' => 'ਜ਼ਾਹਰ ਨਹੀਂ ਕੀਤਾ',
 'gender-male' => 'ਮਰਦ',
 'gender-female' => 'ਔਰਤ',
 'email' => 'ਈਮੇਲ',
@@ -1183,11 +1249,14 @@ $3|'''1''' ਨਤੀਜਾ|'''$3''' ਨਤੀਜੇ}} ਵਖਾਓ।",
 'prefs-help-email-others' => 'ਤੁਸੀਂ ਇਹ ਵੀ ਚੁਣ ਸਕਦੇ ਹੋ ਕਿ ਤੁਹਾਡੇ ਵਰਤੋਂਕਾਰ ਜਾਂ ਚਰਚਾ ਪੰਨੇ ਤੋਂ ਹੋਰ ਵਰਤੋਂਕਾਰ ਤੁਹਾਨੂੰ ਈ-ਮੇਲ ਭੇਜ ਸਕਣ?
 ਜਦੋਂ ਹੋਰ ਵਰਤੋਂਕਾਰ ਤੁਹਾਨੂੰ ਈ-ਮੇਲ ਭੇਜਦੇ ਹਨ ਤਾਂ ਤੁਹਾਡਾ ਈ-ਮੇਲ ਪਤਾ ਜ਼ਾਹਰ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ।',
 'prefs-help-email-required' => 'ਈ-ਮੇਲ ਪਤਾ ਚਾਹੀਦਾ ਹੈ।',
-'prefs-info' => 'ਮà©\81ੱਢਲà©\80 à¨\9cਾਣà¨\95ਾਰà©\80',
+'prefs-info' => 'ਮੁਢਲੀ ਜਾਣਕਾਰੀ',
 'prefs-i18n' => 'ਅੰਤਰਰਾਸ਼ਟਰੀਕਰਨ',
 'prefs-signature' => 'ਦਸਤਖ਼ਤ',
-'prefs-dateformat' => 'ਮਿਤੀ ਦੀ ਸ਼ੈਲੀ',
-'prefs-advancedediting' => 'ਤਕਨੀਕੀ ਚੋਣਾਂ',
+'prefs-dateformat' => 'ਮਿਤੀ ਦਾ ਅੰਦਾਜ਼',
+'prefs-timeoffset' => 'ਸਮੇਂ ਦਾ ਆਫ਼ਸੈੱਟ',
+'prefs-advancedediting' => 'ਆਮ',
+'prefs-editor' => 'ਸੰਪਾਦਕ',
+'prefs-preview' => 'ਝਲਕ',
 'prefs-advancedrc' => 'ਤਕਨੀਕੀ ਚੋਣਾਂ',
 'prefs-advancedrendering' => 'ਤਕਨੀਕੀ ਚੋਣਾਂ',
 'prefs-advancedsearchoptions' => 'ਤਕਨੀਕੀ ਚੋਣਾਂ',
@@ -1203,30 +1272,39 @@ $3|'''1''' ਨਤੀਜਾ|'''$3''' ਨਤੀਜੇ}} ਵਖਾਓ।",
 
 # User rights
 'userrights' => 'ਵਰਤੋਂਕਾਰ ਦੇ ਅਧਿਕਾਰਾਂ ਦਾ ਰੱਖ-ਰਖਾਓ',
-'userrights-lookup-user' => 'ਯà©\82à¨\9c਼ਰ à¨\97ਰà©\81ੱਪ ਦੇਖਭਾਲ',
-'userrights-user-editname' => 'à¨\87ੱà¨\95 à¨¯à©\82à¨\9c਼ਰ à¨¨à¨¾à¨\82 à¨¦à¨¿à¨\93:',
-'editusergroup' => 'ਯà©\82à¨\9c਼ਰ à¨\97ਰà©\81ੱਪ ਸੋਧ',
-'editinguser' => "'''[[User:$1|$1]]''' $2 à¨¯à©\82à¨\9c਼ਰ à¨¦à©\87 à¨¯à©\82à¨\9c਼ਰ ਹੱਕ ਬਦਲੇ ਜਾ ਰਹੇ ਹਨ",
-'userrights-editusergroup' => 'ਯà©\82à¨\9c਼ਰ à¨\97ਰà©\81ੱਪ ਸੋਧ',
-'saveusergroups' => 'ਯà©\82à¨\9c਼ਰ à¨\97ਰà©\81ੱਪ ਸੰਭਾਲੋ',
+'userrights-lookup-user' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ à¨¸à¨®à©\82ਹਾà¨\82 à¨¦à©\80 ਦੇਖਭਾਲ',
+'userrights-user-editname' => 'à¨\87ੱà¨\95 à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰ à¨¨à¨¾à¨\82 à¨­à¨°à©\8b:',
+'editusergroup' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ à¨¸à¨®à©\82ਹਾà¨\82 à¨¦à©\80 ਸੋਧ',
+'editinguser' => "'''[[User:$1|$1]]''' $2 à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰ à¨¦à©\87 à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰ ਹੱਕ ਬਦਲੇ ਜਾ ਰਹੇ ਹਨ",
+'userrights-editusergroup' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ à¨¸à¨®à©\82ਹਾà¨\82 à¨¦à©\80 ਸੋਧ',
+'saveusergroups' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ à¨¸à¨®à©\82ਹ ਸੰਭਾਲੋ',
 'userrights-groupsmember' => 'ਇਸ ਦਾ ਮੈਂਬਰ:',
+'userrights-groupsmember-auto' => 'ਇਹਦਾ ਇਤਬਾਰੀ ਮੈਂਬਰ:',
 'userrights-reason' => 'ਕਾਰਨ:',
 'userrights-no-interwiki' => 'ਤੁਹਾਨੂੰ ਦੂਜੇ ਵਿਕੀਆਂ ਤੇ ਮੈਂਬਰਾਂ ਦੇ ਹੱਕਾਂ ਵਿਚ ਤਬਦੀਲੀ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।',
 'userrights-nodatabase' => 'ਡੈਟਾਬੇਸ $1 ਮੌਜੂਦ ਨਹੀਂ ਜਾਂ ਮਕਾਮੀ ਨਹੀਂ ਹੈ।',
 'userrights-notallowed' => 'ਤੁਹਾਡੇ ਖਾਤੇ ਨੂੰ ਮੈਂਬਰ ਨੂੰ ਹੱਕ ਦੇਣ ਜਾਂ ਖੋਹਣ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।',
+'userrights-changeable-col' => 'ਉਹ ਸਮੂਹ ਜਿਨ੍ਹਾਂ ਨੂੰ ਤੁਸੀਂ ਬਦਲ ਸਕਦੇ ਹੋ',
+'userrights-unchangeable-col' => 'ਉਹ ਸਮੂਹ ਜਿਨ੍ਹਾਂ ਨੂੰ ਤੁਸੀਂ ਬਦਲ ਨਹੀਂ ਸਕਦੇ',
 
 # Groups
-'group' => 'à¨\97ਰà©\81ੱਪ:',
+'group' => 'ਸਮà©\82ਹ:',
 'group-user' => 'ਵਰਤੋਂਕਾਰ',
 'group-autoconfirmed' => 'ਖ਼ੁਦ-ਤਸਦੀਕਸ਼ੁਦਾ ਮੈਂਬਰ',
-'group-bot' => 'ਬੋਟ',
-'group-sysop' => 'ਪਰਸ਼ਾਸ਼ਕ',
+'group-bot' => 'ਬੌਟ',
+'group-sysop' => 'ਪ੍ਰਸ਼ਾਸਕ',
+'group-bureaucrat' => 'ਅਫ਼ਸਰ',
+'group-suppress' => 'ਨਿਗਰਾਨੀਆਂ',
 'group-all' => '(ਸਭ)',
 
 'group-user-member' => '{{GENDER:$1|ਵਰਤੋਂਕਾਰ}}',
-'group-bot-member' => 'ਬà©\8bਟ',
+'group-bot-member' => 'ਬà©\8cਟ',
 
 'grouppage-user' => '{{ns:project}}:ਵਰਤੋਂਕਾਰ',
+'grouppage-bot' => '{{ns:project}}:ਬੌਟ',
+'grouppage-sysop' => '{{ns:project}}:ਪ੍ਰਸ਼ਾਸਕ',
+'grouppage-bureaucrat' => '{{ns:project}}:ਅਫ਼ਸਰ',
+'grouppage-suppress' => '{{ns:project}}:ਨਿਗਰਾਨੀ',
 
 # Rights
 'right-read' => 'ਸਫ਼ੇ ਪੜ੍ਹਨਾ',
@@ -1236,21 +1314,31 @@ $3|'''1''' ਨਤੀਜਾ|'''$3''' ਨਤੀਜੇ}} ਵਖਾਓ।",
 'right-createaccount' => 'ਨਵੇਂ ਖਾਤੇ ਬਣਾਉਣਾ',
 'right-minoredit' => 'ਸੋਧਾਂ ਦੇ ਛੋਟਾ ਹੋਣ ਲਈ ਨਿਸ਼ਾਨ ਲਾਉਣਾ',
 'right-move' => 'ਸਫ਼ੇ ਭੇਜਣਾ',
+'right-move-subpages' => 'ਉਪ-ਸਫ਼ਿਆਂ ਸਮੇਤ ਸਫ਼ੇ ਭੇਜੋ',
 'right-movefile' => 'ਫਾਇਲਾਂ ਭੇਜਣੀਆਂ',
 'right-upload' => 'ਫਾਇਲਾਂ ਅੱਪਲੋਡ',
 'right-upload_by_url' => 'URL ਤੋਂ ਫਾਇਲਾਂ ਅੱਪਲੋਡ ਕਰੋ',
 'right-autoconfirmed' => 'ਨੀਮ-ਸੁਰੱਖਿਅਤ ਸਫ਼ਿਆਂ ਨੂੰ ਸੋਧਣਾ',
 'right-delete' => 'ਸਫ਼ੇ ਹਟਾਓ',
-'right-bigdelete' => 'ਵੱਡà©\87 à¨\87ਤਿਹਾਸ à¨µà¨¾à¨²à©\87 à¨ªà©°à¨¨à©\87 à¨¹ਟਾਉਣੇ',
-'right-browsearchive' => 'ਹà¨\9fਾà¨\8f à¨\97à¨\8f à¨ªà©°à¨¨ੇ ਖੋਜੋ',
+'right-bigdelete' => 'ਵੱਡà©\87 à¨\85ਤà©\80ਤ à¨µà¨¾à¨²à©\87 à¨ªà©°à¨¨à©\87 à¨®à¨¿ਟਾਉਣੇ',
+'right-browsearchive' => 'ਮਿà¨\9fਾà¨\8f à¨¹à©\8bà¨\8f à¨¸à¨«à¨¼ੇ ਖੋਜੋ',
 'right-undelete' => 'ਸਫ਼ੇ ਨੂੰ ਅਣ-ਮਿਟਾਇਆ ਕਰਨਾ',
-'right-suppressionlog' => 'ਪ੍ਰਾਈਵੇਟ ਚਿੱਠੇ ਵੇਖਣਾ',
-'right-block' => 'ਦੂਜੇ ਮੈਂਬਰਾਂ ਦੇ ਸੋਧ ਕਰਨ ਤੇ ਪਾਬੰਦੀ ਲਾਉਣੀ',
-'right-blockemail' => 'ਮੈਂਬਰ ਦੇ ਈ-ਮੇਲ ਭੇਜਣ ਤੇ ਪਾਬੰਦੀ ਲਾਉਣੀ',
-'right-hideuser' => 'ਮੈਂਬਰ-ਨਾਂ ਤੇ ਪਾਬੰਦੀ ਲਾਉਣੀ ਅਤੇ ਇਸਨੂੰ ਲੋਕਾਂ ਤੋਂ ਲੁਕਾਉਣਾ',
+'right-suppressionlog' => 'ਨਿੱਜੀ ਚਿੱਠੇ ਵੇਖਣਾ',
+'right-block' => 'ਦੂਜੇ ਵਰਤੋਂਕਾਰਾਂ ਦੇ ਸੋਧ ਕਰਨ ਤੇ ਪਾਬੰਦੀ ਲਾਉਣੀ',
+'right-blockemail' => 'ਵਰਤੋਂਕਾਰ ਦੇ ਈ-ਮੇਲ ਭੇਜਣ ਤੇ ਪਾਬੰਦੀ ਲਾਉਣੀ',
+'right-hideuser' => 'ਵਰਤੋਂਕਾਰ ਦੇ ਨਾਂ ਤੇ ਪਾਬੰਦੀ ਲਾਉਣੀ ਅਤੇ ਇਸਨੂੰ ਲੋਕਾਂ ਤੋਂ ਲੁਕਾਉਣਾ',
+'right-unblockself' => 'ਆਪਣੇ-ਆਪ ਰੋਕ ਹਟਾਉਣ',
+'right-editinterface' => 'ਵਰਤੋਂਕਾਰ ਇੰਟਰਫ਼ੇਸ ਸੋਧੋ',
+'right-editusercss' => 'ਹੋਰ ਵਰਤੋਂਕਾਰਾਂ ਦੀਆਂ CSS ਫ਼ਾਈਲਾਂ ਸੋਧਣ',
+'right-edituserjs' => 'ਹੋਰ ਵਰਤੋਂਕਾਰਾਂ ਦੀਆਂ ਜਾਵਾਸਕਰਿਪਟ ਫ਼ਾਈਲਾਂ ਸੋਧਣ',
+'right-editmyusercss' => 'ਆਪਣੀਆਂ ਵਰਤੋਂਕਾਰ CSS ਫ਼ਾਈਲਾਂ ਸੋਧੋ',
+'right-editmyuserjs' => 'ਆਪਣੀਆਂ ਵਰਤੋਂਕਾਰ ਜਾਵਾਸਕਰਿਪਟ ਫ਼ਾਈਲਾਂ ਸੋਧੋ',
+'right-viewmywatchlist' => 'ਆਪਣੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵੇਖੋ',
+'right-editmywatchlist' => 'ਆਪਣੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਸੋਧੋ। ਧਿਆਨ ਦਿਓ ਕਿ ਕੁਝ ਸਫ਼ੇ ਇਸ ਹੱਕ ਤੋਂ ਬਿਨਾਂ ਵੀ ਜੁੜਨਗੇ।',
+'right-editmyoptions' => 'ਆਪਣੀਆਂ ਪਸੰਦਾਂ ਸੋਧੋ',
 'right-unwatchedpages' => 'ਨਜ਼ਰ ਨਾ ਰੱਖੇ ਜਾ ਰਹੇ ਸਫ਼ਿਆਂ ਦੀ ਲਿਸਟ ਵੇਖਣੀ',
 'right-mergehistory' => 'ਸਫ਼ਿਆਂ ਦੇ ਅਤੀਤਾਂ ਨੂੰ ਰਲ਼ਾਉਣਾ',
-'right-userrights' => 'ਸਾਰà©\87 à¨®à©\88à¨\82ਬਰ à¨¹à©±à¨\95ਾà¨\82 à¨µà¨¿à¨\9a à¨¸à©\8bਧ à¨\95ਰਨਾ',
+'right-userrights' => 'ਸਾਰà©\87 à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰਾà¨\82 à¨¦à©\87 à¨¹à©±à¨\95 à¨¬à¨¦à¨²à¨£à©\87',
 'right-userrights-interwiki' => 'ਦੂਜੇ ਵਿਕੀਆਂ ਤੇ ਮੈਂਬਰਾਂ ਦੇ ਮੈਂਬਰ ਹੱਕਾਂ ਵਿਚ ਸੋਧ ਕਰਨਾ',
 'right-siteadmin' => 'ਡੈਟਾਬੇਸ ਨੂੰ ਤਾਲਾ ਲਾਉਣਾ ਤੇ ਖੋਲ੍ਹਣਾ',
 'right-sendemail' => 'ਦੂਜੇ ਮੈਂਬਰਾਂ ਨੂੰ ਈ-ਮੇਲ ਭੇਜਣਾ',
@@ -1261,66 +1349,70 @@ $3|'''1''' ਨਤੀਜਾ|'''$3''' ਨਤੀਜੇ}} ਵਖਾਓ।",
 'newuserlogpagetext' => 'ਇਹ ਬਣੇ ਮੈਂਬਰਾਂ ਦਾ ਚਿੱਠਾ ਹੈ।',
 
 # User rights log
-'rightslog' => 'ਮà©\88à¨\82ਬਰ ਹੱਕਾਂ ਦਾ ਚਿੱਠਾ',
+'rightslog' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ ਹੱਕਾਂ ਦਾ ਚਿੱਠਾ',
 'rightslogtext' => 'ਇਹ ਮੈਂਬਰ ਹੱਕਾਂ ਵਿਚ ਹੋਈਆਂ ਤਬਦੀਲੀਆਂ ਦਾ ਚਿੱਠਾ ਹੈ।',
 
 # Associated actions - in the sentence "You do not have permission to X"
-'action-read' => 'à¨\87ਹ à¨ªà©°à¨¨à¨¾ à¨ªà©\9cà©\8dਹà©\8bà¨\82',
-'action-edit' => 'à¨\87ਹ à¨ªà©°à¨¨à©\87 à¨¨à©\82à©° à¨¸à©°à¨ªà¨¾à¨¦à¨¿à¨¤ à¨\95ਰਨ',
-'action-createpage' => 'ਪੰਨੇ ਬਣਾਓ',
+'action-read' => 'à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨ªà©\9cà©\8dਹà©\8b',
+'action-edit' => 'à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨¸à©\8bਧà©\8b',
+'action-createpage' => 'ਸਫ਼ੇ ਬਣਾਓ',
 'action-createtalk' => 'ਚਰਚਾ ਸਫ਼ੇ ਬਣਾਉਣ',
 'action-createaccount' => 'ਇਹ ਵਰਤੋਂਕਾਰ ਖਾਤਾ ਬਣਾਓ',
 'action-minoredit' => 'ਇਹ ਸੋਧ ਨੂੰ ਛੋਟੀ ਤੌਰ ਉੱਤੇ ਮੰਨੋ',
 'action-move' => 'ਇਹ ਸਫ਼ਾ ਭੇਜੋ',
 'action-move-subpages' => 'ਇਹ ਸਫ਼ਾ ਤੇ ਇਸ ਦੇ ਅਧੀਨ-ਸਫ਼ਿਆਂ ਨੂੰ ਭੇਜੋ',
-'action-movefile' => 'à¨\87ਹ à¨«à¨¾à¨\87ਲ ਭੇਜੋ',
-'action-upload' => 'à¨\87ਹ à¨«à¨¾à¨\87ਲ à¨\85ੱਪਲà©\8bਡ',
-'action-reupload' => 'à¨\87ਹ à¨®à©\8cà¨\9cà©\82ਦਾ à¨«à¨¾à¨\87ਲ ਉੱਤੇ ਲਿਖੋ',
-'action-reupload-shared' => 'à¨\87ਹ à¨«à¨¾à¨\87ਲ à¨¨à©\82à©° à¨¸à¨¾à¨\82à¨\9dà©\80 à¨\95à©\80ਤà©\80 à¨°à¨¿à¨ªà©\8bà¨\9c਼à¨\9fਰà©\80 à¨\89ੱਤà©\87 à¨²à¨¿à¨\96ੋ',
-'action-upload_by_url' => 'à¨\87ਹ à¨«à¨¾à¨\87ਲ à¨¨à©\82à©° URL ਤੋਂ ਅੱਪਲੋਡ ਕਰੋ',
-'action-writeapi' => 'ਲਿà¨\96ਣ API à¨µà¨°à¨¤à©\8bà¨\82',
-'action-delete' => 'à¨\87ਹ à¨ªà©°à¨¨à¨¾ à¨¹ਟਾਓ',
-'action-deleterevision' => 'à¨\87ਹ à¨°à©\80ਵਿà¨\9cਨ à¨¹ਟਾਓ',
-'action-deletedhistory' => 'à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨¦à¨¾ à¨®à¨¿à¨\9fਾà¨\87à¨\86 à¨\85ਤà©\80ਤ à¨µà©\87à¨\96ਣ',
-'action-browsearchive' => 'ਮਿà¨\9fਾà¨\8f à¨¸à¨«à¨¼à©\87 à¨\96à©\8bà¨\9cਣ',
-'action-undelete' => 'à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨\85ਣ-ਮਿà¨\9fਿà¨\86 à¨\95ਰਨ',
+'action-movefile' => 'à¨\87ਹ à¨«à¨¼à¨¾à¨\88ਲ ਭੇਜੋ',
+'action-upload' => 'à¨\87ਹ à¨«à¨¼à¨¾à¨\88ਲ à¨\85ੱਪਲà©\8bਡ à¨\95ਰà©\8b',
+'action-reupload' => 'à¨\87ਹ à¨®à©\8cà¨\9cà©\82ਦਾ à¨«à¨¼à¨¾à¨\88ਲ ਉੱਤੇ ਲਿਖੋ',
+'action-reupload-shared' => 'à¨\87ਸ à¨«à¨¼à¨¾à¨\88ਲ à¨¨à©\82à©° à¨¸à¨¾à¨\82à¨\9dà©\80 à¨\95à©\80ਤà©\80 à¨°à¨¿à¨ªà©\8bà¨\9c਼à¨\9fਰà©\80 à¨\89ੱਤà©\87 à¨§à¨°ੋ',
+'action-upload_by_url' => 'à¨\87ਹ à¨«à¨¼à¨¾à¨\88ਲ à¨¨à©\82à©° à¨\87ੱà¨\95 URL ਤੋਂ ਅੱਪਲੋਡ ਕਰੋ',
+'action-writeapi' => 'ਲਿà¨\96ਾà¨\88 API à¨µà¨°à¨¤à©\8b',
+'action-delete' => 'à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨®à¨¿ਟਾਓ',
+'action-deleterevision' => 'à¨\87ਹ à¨°à¨¿à¨µà©\80à¨\9c਼ਨ à¨®à¨¿ਟਾਓ',
+'action-deletedhistory' => 'à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨¦à¨¾ à¨®à¨¿à¨\9fਾà¨\87à¨\86 à¨\85ਤà©\80ਤ à¨µà©\87à¨\96à©\8b',
+'action-browsearchive' => 'ਮਿà¨\9fਾà¨\8f à¨¸à¨«à¨¼à©\87 à¨²à©±à¨­à©\8b',
+'action-undelete' => 'à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨\85ਣ-ਮਿà¨\9fਿà¨\86 à¨\95ਰà©\8b',
 'action-suppressrevision' => 'ਇਹ ਲੁਕਵਾਂ ਰੀਵਿਜ਼ਨ ਜਾਂਚੋ ਅਤੇ ਮੁੜ-ਸਟੋਰ ਕਰੋ',
-'action-suppressionlog' => 'à¨\87ਹ à¨ªà©\8dਰਾà¨\88ਵà©\87à¨\9f à¨²à¨¾à¨\97 ਵੇਖੋ',
-'action-block' => 'à¨\87ਸ à¨®à©\88à¨\82ਬਰ à¨¦à©\87 à¨¸à©\8bਧ à¨\95ਰਨ à¨¤à©\87 à¨ªà¨¾à¨¬à©°à¨¦à©\80 à¨²à¨¾à¨\89ਣ',
-'action-protect' => 'à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨¦à©\80 à¨¸à©\81ਰੱà¨\96ਿà¨\86 à¨¬à¨¦à¨²à¨£',
-'action-import' => 'ਹà©\8bਰ à¨µà¨¿à¨\95ਿ à¨¤à©\8bà¨\82 à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨\87ੰਪà©\8bਰà¨\9f à¨\95ਰà©\8b',
-'action-importupload' => 'ਫਾà¨\87ਲ à¨\85ੱਪਲà©\8bਡ à¨¤à©\8bà¨\82 à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨\87ੰਪà©\8bਰà¨\9f à¨\95ਰà©\8b',
-'action-unwatchedpages' => 'ਨà¨\9c਼ਰ à¨¨à¨¾ à¨°à©±à¨\96à©\87 à¨\9cਾ à¨°à¨¹à©\87 à¨¸à¨«à¨¼à¨¿à¨\86à¨\82 à¨¦à©\80 à¨²à¨¿à¨¸à¨\9f à¨µà©\87à¨\96ਣ',
+'action-suppressionlog' => 'à¨\87ਹ à¨¨à¨¿à©±à¨\9cà©\80 à¨\87ੰਦਰਾà¨\9c ਵੇਖੋ',
+'action-block' => 'à¨\87ਸ à¨®à©\88à¨\82ਬਰ à¨¦à©\87 à¨¸à©\8bਧ à¨\95ਰਨ à¨¤à©\87 à¨ªà¨¾à¨¬à©°à¨¦à©\80 à¨²à¨¾à¨\93',
+'action-protect' => 'à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨¦à©\80 à¨¸à©\81ਰੱà¨\96ਿà¨\86 à¨¬à¨¦à¨²à©\8b',
+'action-import' => 'ਹà©\8bਰ à¨µà¨¿à¨\95à©\80 à¨¤à©\8bà¨\82 à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨®à©°à¨\97ਾà¨\93',
+'action-importupload' => 'ਫ਼ਾà¨\88ਲ à¨\85ੱਪਲà©\8bਡ à¨¤à©\8bà¨\82 à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨®à©°à¨\97ਾà¨\93',
+'action-unwatchedpages' => 'ਨà¨\9c਼ਰ à¨¨à¨¾ à¨°à©±à¨\96à©\87 à¨\9cਾ à¨°à¨¹à©\87 à¨¸à¨«à¨¼à¨¿à¨\86à¨\82 à¨¦à©\80 à¨¸à©\82à¨\9aà©\80 à¨µà©\87à¨\96à©\8b',
 'action-mergehistory' => 'ਇਸ ਸਫ਼ੇ ਦੇ ਅਤੀਤ ਨੂੰ ਰਲ਼ਾਉਣ',
-'action-userrights' => 'ਸਾਰà©\87 à¨®à©\88à¨\82ਬਰ ਹੱਕ ਸੋਧਣ',
-'action-userrights-interwiki' => 'ਦà©\82à¨\9cà©\87 à¨µà¨¿à¨\95à©\80à¨\86à¨\82 à¨¤à©\87 à¨®à©\88à¨\82ਬਰਾà¨\82 à¨¦à©\87 à¨®à©\88à¨\82ਬਰ ਹੱਕ ਸੋਧਣ',
-'action-siteadmin' => 'ਡà©\88à¨\9fਾਬà©\87ਸ à¨¨à©\82à©° à¨¤à¨¾à¨²à¨¾ à¨²à¨¾à¨\89ਣ à¨\9cਾà¨\82 à¨\96à©\8bਲà©\8dਹਣ',
+'action-userrights' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ à¨¦à©\87 à¨¸à¨¾à¨°à©\87 ਹੱਕ ਸੋਧਣ',
+'action-userrights-interwiki' => 'ਦà©\82à¨\9cà©\87 à¨µà¨¿à¨\95à©\80à¨\86à¨\82 à¨¦à©\87 à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰਾà¨\82 à¨¦à©\87 à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰ-ਹੱਕ ਸੋਧਣ',
+'action-siteadmin' => 'ਡਾà¨\9fਾਬà©\87ਸ à¨¨à©\82à©° à¨¤à¨¾à¨²à¨¾ à¨²à¨¾à¨\93 à¨\9cਾà¨\82 à¨\96à©\8bਲà©\8dਹà©\8b',
 'action-sendemail' => 'ਈ-ਮੇਲਾਂ ਭੇਜੋ',
+'action-editmywatchlist' => 'ਆਪਣੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਸੋਧੋ',
+'action-viewmywatchlist' => 'ਆਪਣੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵੇਖੋ',
+'action-viewmyprivateinfo' => 'ਆਪਣੀ ਨਿੱਜੀ ਜਾਣਕਾਰੀ ਵੇਖੋ',
+'action-editmyprivateinfo' => 'ਆਪਣੀ ਨਿੱਜੀ ਜਾਣਕਾਰੀ ਸੋਧੋ',
 
 # Recent changes
-'nchanges' => '$1 {{PLURAL:$1|ਬਦਲਾà¨\85}}',
-'recentchanges' => 'ਹਾਲ â\80\99à¨\9a à¨¹à©\8bà¨\8f à¨¬à¨¦à¨²à¨¾à¨\85',
-'recentchanges-legend' => 'ਹਾਲ à¨¦à©\87 à¨ªà¨°à¨¿à¨µà¨°à¨¤à¨¨ à¨¸à¨¬à©°à¨§à©\80 à¨µà¨¿à¨\95ਲਪ',
+'nchanges' => '$1 {{PLURAL:$1|ਤਬਦà©\80ਲà©\80|ਤਬਦà©\80ਲà©\80à¨\86à¨\82}}',
+'recentchanges' => 'ਹਾਲ â\80\99à¨\9a à¨¹à©\8bà¨\88à¨\86à¨\82 à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82',
+'recentchanges-legend' => 'ਹਾਲ à¨¦à©\80à¨\86à¨\82 à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82 à¨¸à¨¬à©°à¨§à©\80 à¨\9aà©\8bਣਾà¨\82',
 'recentchanges-summary' => 'ਇਸ ਵਿਕੀ ’ਤੇ ਹੋਈਆਂ ਸਭ ਤੋਂ ਨਵੀਆਂ ਤਬਦੀਲੀਆਂ ਇਸ ਸਫ਼ੇ ’ਤੇ ਵੇਖੋ।',
-'recentchanges-feed-description' => 'ਇਸ ਵਿਕੀ ਪਰ ਹਾਲ ਵਿਚ ਹੋਏ ਬਦਲਾਅ ਇਸ ਫ਼ੀਡ ਵਿਚ ਦੇਖੇ ਜਾ ਸਕਦੇ ਹਨ।',
-'recentchanges-label-newpage' => 'à¨\87ਹ à¨¸à©°à¨ªà¨¾à¨¦à¨¨ à¨¨à¨¾à¨² à¨¨à¨µà¨¾à¨\82 à¨ªà©°à¨¨à¨¾ à¨¬à¨£à¨¾à¨\87à¨\86 à¨\97ਿà¨\86',
-'recentchanges-label-minor' => 'à¨\87ਹ à¨\87ੱà¨\95 à¨\9bà©\8bà¨\9fਾ à¨¬à¨¦à¨²à¨¾à¨\85 ਹੈ',
-'recentchanges-label-bot' => 'à¨\87ਹ à¨¸à©°à¨ªà¨¾à¨¦à¨¨ à¨\87ੱà¨\95 à¨¬à©\8bà¨\9fਾ à¨¦à©\81à¨\86ਰਾ à¨\95à©\80ਤਾ à¨\97ਿà¨\86 ਸੀ',
+'recentchanges-feed-description' => 'ਇਸ ਵਿਕੀ ’ਤੇ ਹਾਲ ‘ਚ ਹੋਈਆਂ ਤਬਦੀਲੀਆਂ ਇਸ ਫ਼ੀਡ ’ਚ ਵੇਖੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ।',
+'recentchanges-label-newpage' => 'à¨\87ਸ à¨¸à©\8bਧ à¨¨à¨¾à¨²à¨¼ à¨¨à¨µà¨¾à¨\82 à¨¸à¨«à¨¼à¨¾ à¨¬à¨£à¨¿à¨\86 à¨¹à©\88',
+'recentchanges-label-minor' => 'à¨\87ਹ à¨\87ੱà¨\95 à¨\9bà©\8bà¨\9fà©\80 à¨¸à©\8bਧ ਹੈ',
+'recentchanges-label-bot' => 'à¨\87ਹ à¨¸à©\8bਧ à¨\87ੱà¨\95 à¨¬à©\8bà¨\9f à¨¦à©\81à¨\86ਰਾ à¨\95à©\80ਤà©\80 à¨\97à¨\88 ਸੀ',
 'recentchanges-label-unpatrolled' => 'ਇਹ ਫੇਰ-ਬਦਲ ਹਾਲੇ ਵੇਖਿਆ ਨਹੀਂ ਗਿਆ',
 'rcnote' => "$4, $5 ਤੱਕ ਆਖਰੀ {{PLURAL:$2|ਦਿਨ|'''$2''' ਦਿਨਾਂ}} ਵਿੱਚ {{PLURAL:$1|'''1''' ਬਦਲੀ ਹੋਈ ਹੈ।|'''$1''' ਬਦਲੀਆਂ ਹੋਈਆਂ ਹਨ।}}",
 'rcnotefrom' => "'''$2''' ਤੱਕ ('''$1''' ਤੱਕ ਦਿੱਸਦੇ) ਬਦਲਾਵ ਹੇਠ ਦਿੱਤੀਆਂ ਹਨ।",
-'rclistfrom' => '$1 à¨¤à©\8bà¨\82 à¨¸à¨¼à©\81ਰà©\82 à¨\95ਰà¨\95à©\87 à¨¨à¨µà©\87à¨\82 à¨¬à¨¦à¨²à¨¾à¨\85 à¨µà©\87ਖਾਓ',
-'rcshowhideminor' => '$1 ਛੋਟੇ ਬਦਲਾਅ',
-'rcshowhidebots' => '$1 à¨¬à©\8bਟ',
-'rcshowhideliu' => '$1 à¨²à¨¾à¨\97à¨\87ਨ ਹੋਏ ਵਰਤੋਂਕਾਰ',
-'rcshowhideanons' => '$1 à¨\86à¨\88॰ਪà©\80 à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰਾà¨\82 à¨¦à©\87 à¨¬à¨¦à¨²à¨¾à¨\85',
-'rcshowhidepatr' => 'à¨\9cਾà¨\82à¨\9aà©\87 à¨¹à©\8bà¨\8f à¨¸à©°à¨ªà¨¾à¨¦à¨¨ $1',
-'rcshowhidemine' => 'ਮà©\87ਰà©\87 à¨¬à¨¦à¨²à¨¾à¨\85  $1',
-'rclinks' => 'ਪਿੱà¨\9bਲà©\87 $2 à¨¦à¨¿à¨¨à¨¾à¨\82 à¨µà¨¿à©±à¨\9a à¨¹à©\8bà¨\8f $1 à¨¬à¨¦à¨²à¨¾à¨\85 à¨µà©\87ਖਾਓ<br /> $3',
-'diff' => 'à¨\85ੰਤਰ',
-'hist' => 'à¨\87ਤਿਹਾਸ',
+'rclistfrom' => '$1 à¨¤à©\8bà¨\82 à¨¸à¨¼à©\81ਰà©\82 à¨\95ਰà¨\95à©\87 à¨¨à¨µà©\80à¨\86à¨\82 à¨¸à©\8bਧਾà¨\82 à¨µਖਾਓ',
+'rcshowhideminor' => 'ਛੋਟੀਆਂ ਤਬਦੀਲੀਆਂ $1',
+'rcshowhidebots' => '$1 à¨¬à©\8cਟ',
+'rcshowhideliu' => '$1 à¨¦à¨¾à¨\96਼ਲ ਹੋਏ ਵਰਤੋਂਕਾਰ',
+'rcshowhideanons' => '$1 à¨\97à©\81ਮਨਾਮ à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰ',
+'rcshowhidepatr' => 'à¨\9cਾà¨\82à¨\9aà©\80à¨\86à¨\82 à¨¹à©\8bà¨\88à¨\86à¨\82 à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82 $1',
+'rcshowhidemine' => 'ਮà©\87ਰà©\80à¨\86à¨\82 à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82  $1',
+'rclinks' => 'ਪਿà¨\9bਲà©\87 $2 à¨¦à¨¿à¨¨à¨¾à¨\82 à¨µà¨¿à©±à¨\9a à¨¹à©\8bà¨\88à¨\86à¨\82 $1 à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82 à¨µਖਾਓ<br /> $3',
+'diff' => 'ਫ਼ਰà¨\95',
+'hist' => 'à¨\85ਤà©\80ਤ',
 'hide' => 'ਲੁਕਾਓ',
-'show' => 'ਵà©\87à¨\96ਾà¨\93',
+'show' => 'ਵਖਾਓ',
 'minoreditletter' => 'ਛੋ',
 'newpageletter' => 'ਨ',
 'boteditletter' => 'ਬੋ',
@@ -1328,63 +1420,68 @@ $3|'''1''' ਨਤੀਜਾ|'''$3''' ਨਤੀਜੇ}} ਵਖਾਓ।",
 'rc_categories_any' => 'ਕੋਈ ਵੀ',
 'newsectionsummary' => '/* $1 */ ਨਵਾਂ ਭਾਗ',
 'rc-enhanced-expand' => 'ਵੇਰਵਾ ਵੇਖਾਓ (ਜਾਵਾਸਕ੍ਰਿਪਟ ਲੋੜੀਂਦੀ ਹੈ)',
-'rc-enhanced-hide' => 'ਵà©\87ਰਵਾ à¨\9bà©\81ਪਾਓ',
+'rc-enhanced-hide' => 'ਵà©\87ਰਵਾ à¨²à©\81à¨\95ਾਓ',
 'rc-old-title' => 'ਅਸਲ ਵਿੱਚ "$1" ਵਜੋਂ ਬਣਾਇਆ',
 
 # Recent changes linked
-'recentchangeslinked' => 'ਸਬੰਧਤ à¨¬à¨¦à¨²à¨¾à¨\85',
+'recentchangeslinked' => 'ਸਬੰਧਤ à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82',
 'recentchangeslinked-feed' => 'ਸਬੰਧਤ ਤਬਦੀਲੀਆਂ',
-'recentchangeslinked-toolbox' => 'ਸਬੰਧਤ ਬਦਲਾਅ',
-'recentchangeslinked-title' => '"$1" ਨਾਲ ਸਬੰਧਿਤ ਬਦਲਾਵ',
-'recentchangeslinked-noresult' => 'ਜੁੜੇ ਪੰਨਿਆਂ ’ਤੇ, ਦਿੱਤੇ ਸਮੇਂ ’ਚ ਕੋਈ ਬਦਲਾਵ ਨਹੀਂ ਹੋਈ।',
-'recentchangeslinked-summary' => 'ਇਹ ਸੂਚੀ ਇੱਕ ਵਿਸ਼ੇਸ਼ ਪੰਨੇ ਨਾਲ ਸਬੰਧਿਤ ਪੰਨਿਆਂ ਜਾਂ ਕਿਸੇ ਵਿਸ਼ੇਸ਼ ਸ਼੍ਰੇਣੀ ਦੇ ਮੈਂਬਰਾਂ ਦੇ ਹਾਲ ‘ਚ ਹੋਏ ਬਦਲਾਵਾਂ ਨੂੰ ਦਰਸਾਂਉਦੀ ਹੈ। [[Special:Watchlist|ਤੁਹਾਡੀ ਧਿਆਨਸੂਚੀ]] ਵਿੱਚ ਮੌਜੂਦ ਪੰਨੇ ਮੋਟੇ ਅੱਖਰਾਂ ਵਿੱਚ ਦਿਖਾਈ ਦੇਣਗੇ।',
-'recentchangeslinked-page' => 'ਪੰਨੇ ਦਾ ਨਾਮ:',
-'recentchangeslinked-to' => 'ਇਸਦੇ ਬਦਲੇ ਇਸ ਪੰਨੇ ਨਾਲ ਜੁੜੇ ਪੰਨਿਆਂ ਵਿੱਚ ਹੋਏ ਬਦਲਾਅ ਵਿਖਾਓ',
+'recentchangeslinked-toolbox' => 'ਸਬੰਧਤ ਤਬਦੀਲੀਆਂ',
+'recentchangeslinked-title' => '"$1" ਨਾਲ ਸਬੰਧਤ ਤਬਦੀਲੀਆਂ',
+'recentchangeslinked-summary' => 'ਇਹ ਕਿਸੇ ਖ਼ਾਸ ਸਫ਼ੇ ਤੋਂ ਲਿੰਕ ਕੀਤੇ ਸਫ਼ਿਆਂ (ਜਾਂ ਕਿਸੇ ਖ਼ਾਸ ਸ਼੍ਰੇਣੀ ਦੇ ਮੈਂਬਰਾਂ) ਵਿੱਚ ਹੋਈਆਂ ਤਾਜ਼ਾ ਤਬਦੀਲੀਆਂ ਦੀ ਲਿਸਟ ਹੈ। [[Special:Watchlist|ਤੁਹਾਡੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ]] ਵਿੱਚ ਮੌਜੂਦ ਸਫ਼ੇ ਮੋਟੇ ਅੱਖਰਾਂ ਵਿੱਚ ਵਖਾਈ ਦੇਣਗੇ।',
+'recentchangeslinked-page' => 'ਸਫ਼ੇ ਦਾ ਨਾਂ:',
+'recentchangeslinked-to' => 'ਇਹਦੇ ਬਦਲੇ ਇਸ ਸਫ਼ੇ ਨਾਲ ਜੁੜੇ ਸਫ਼ਿਆਂ ਵਿੱਚ ਹੋਈਆਂ ਤਬਦੀਲੀਆਂ ਵਿਖਾਓ',
 
 # Upload
-'upload' => 'ਫਾà¨\88ਲ à¨\85ਪਲੋਡ ਕਰੋ',
-'uploadbtn' => 'ਫਾà¨\87ਲ ਅੱਪਲੋਡ ਕਰੋ',
+'upload' => 'ਫ਼ਾà¨\88ਲ à¨\85ੱਪਲੋਡ ਕਰੋ',
+'uploadbtn' => 'ਫ਼ਾà¨\88ਲ ਅੱਪਲੋਡ ਕਰੋ',
 'reuploaddesc' => 'ਅੱਪਲੋਡ ਫਾਰਮ ਉੱਤੇ ਜਾਓ।',
-'uploadnologin' => 'ਲਾਗਇਨ ਨਹੀਂ ਹੋ',
-'uploadnologintext' => 'ਤੁਹਾਨੂੰ[[Special:UserLogin|logged in] ਕਰਨਾ ਪਵੇਗਾ]
-to upload files.',
+'upload-tryagain' => 'ਬਦਲਿਆ ਹੋਇਆ ਫ਼ਾਈਲ ਵੇਰਵਾ ਪੇਸ਼ ਕਰੋ',
+'uploadnologin' => 'ਦਾਖ਼ਲ ਨਹੀਂ ਹੋ',
+'uploadnologintext' => 'ਫ਼ਾਈਲਾਂ ਅੱਪਲੋਡ ਕਰਨ ਲਈ ਤੁਹਾਨੂੰ $1 ਕਰਨਾ ਪਵੇਗਾ।',
 'uploaderror' => 'ਅੱਪਲੋਡ ਗਲਤੀ',
 'upload-recreate-warning' => "'''ਖ਼ਬਰਦਾਰ: ਇਸ ਨਾਮ ਦੀ ਫ਼ਾਈਲ ਮਿਟਾਈ ਜਾਂ ਹੋਰ ਨਾਮ ਤੇ ਭੇਜੀ ਜਾ ਚੁੱਕੀ ਹੈ।'''
 ਮਿਟਾਉਣ ਅਤੇ ਭੇਜੇ ਜਾਣ ਦਾ ਚਿੱਠਾ ਸਹੂਲਤ ਲਈ ਇੱਥੇ ਦਿੱਤਾ ਗਿਆ ਹੈ:",
 'uploadlog' => 'ਅੱਪਲੋਡ ਲਾਗ',
 'uploadlogpage' => 'ਅਪਲੋਡਾਂ ਦਾ ਚਿੱਠਾ',
-'filename' => 'ਫਾà¨\87ਲ à¨¨à¨¾à¨\82',
+'filename' => 'ਫ਼ਾà¨\88ਲ à¨¦à¨¾ à¨¨à¨¾à¨\82:',
 'filedesc' => 'ਸਾਰ',
-'fileuploadsummary' => 'ਸੰà¨\96à©\87ਪ:',
-'filereuploadsummary' => 'ਫਾà¨\87ਲ à¨¬à¨¦à¨²à¨¾à¨\85',
+'fileuploadsummary' => 'ਸਾਰ:',
+'filereuploadsummary' => 'ਫ਼ਾà¨\88ਲ à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82:',
 'filestatus' => 'ਕਾਪੀਰਾਈਟ ਹਾਲਤ:',
-'filesource' => 'ਸੋਰਸ:',
-'uploadedfiles' => 'ਅੱਪਲੋਡ ਕੀਤੀਆਂ ਫਾਇਲਾਂ',
-'ignorewarning' => 'ਚੇਤਾਵਨੀ ਅਣਡਿੱਠੀ ਕਰਕੇ ਕਿਵੇਂ ਵੀ ਫਾਇਲ ਸੰਭਾਲੋ।',
-'ignorewarnings' => 'ਕੋਈ ਚੇਤਾਵਨੀ ਹੋਈ ਤਾਂ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰੋ',
-'minlength1' => 'ਫਾਇਲ ਨਾਂ ਵਿੱਚ ਘੱਟੋ-ਘੱਟ ਇੱਕ ਅੱਖਰ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।',
-'badfilename' => 'ਫਾਇਲ ਨਾਂ "$1" ਬਦਲਿਆ ਗਿਆ ਹੈ।',
-'filetype-missing' => 'ਫਾਇਲ ਦੀ ਕੋਈ ਐਕਸ਼ਟੇਸ਼ਨ ਨਹੀਂ ਹੈ (ਜਿਵੇਂ ".jpg").',
-'empty-file' => 'ਤੁਹਾਡੇ ਵਲੋਂ ਦਿੱਤੀ ਫਾਇਲ ਖਾਲੀ ਸੀ।',
-'file-too-large' => 'ਤੁਹਾਡੇ ਵਲੋਂ ਦਿੱਤੀ ਫਾਇਲ ਬਹੁਤ ਵੱਡੀ ਸੀ।',
-'filename-tooshort' => 'ਫਾਈਲ ਬਹੁਤ ਛੋਟੀ ਹੈ।',
-'filetype-banned' => 'ਇਸ ਕਿਸਮ ਦੀ ਫਾਈਲ ਦੀ ਮਨਾਹੀ ਹੈ।',
-'verification-error' => 'ਇਹ ਫਾਇਲ ਫਾਇਲ ਜਾਂਚ ਪੂਰੀ ਨਹੀਂ ਕਰਦੀ ਹੈ।',
-'illegal-filename' => 'ਇਸ ਫਾਈਲ-ਨਾਮ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।',
-'unknown-error' => 'ਅਣਜਾਣ ਗਲਤੀ ਆਈ ਹੈ।',
-'tmp-create-error' => 'ਆਰਜ਼ੀ ਫਾਇਲ ਬਣਾਉਣ ਲਈ ਅਸਮਰੱਥ ਹੈ।',
-'tmp-write-error' => 'ਆਰਜ਼ੀ ਫਾਇਲ ਲਿਖਣ ਲਈ ਗਲਤੀ ਹੈ।',
-'fileexists' => 'ਇਹ ਫਾਇਲ ਨਾਂ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ। ਜੇ ਤੁਸੀਂ ਇਹ ਬਦਲਣ ਬਾਰੇ ਦ੍ਰਿੜ ਨਹੀਂ ਹੋ ਤਾਂ  <strong>[[:$1]]</strong> ਵੇਖੋ ਜੀ। [[$1|thumb]]',
-'fileexists-extension' => 'ਇਸ ਨਾਂ ਨਾਲ ਰਲਦੀ ਫਾਇਲ ਮੌਜੂਦ ਹੈ: [[$2|thumb]]
-* ਅੱਪਲੋਡ ਕੀਤੀ ਜਾਂਦੀ ਫਾਇਲ ਦਾ ਨਾਂ: <strong>[[:$1]]</strong>
-* ਮੌਜੂਦ ਫਾਇਲ ਦਾ ਨਾਂ: <strong>[[:$2]]</strong>
-ਇੱਕ ਵੱਖਰਾ ਨਾਂ ਚੁਣੋ ਜੀ',
+'filesource' => 'ਸਰੋਤ:',
+'uploadedfiles' => 'ਅੱਪਲੋਡ ਕੀਤੀਆਂ ਫ਼ਾਈਲਾਂ',
+'ignorewarning' => 'ਚਿਤਾਵਨੀ ਅਣਡਿੱਠੀ ਕਰਕੇ ਕਿਵੇਂ ਵੀ ਫ਼ਾਈਲ ਸਾਂਭੋ।',
+'ignorewarnings' => 'ਕੋਈ ਚਿਤਾਵਨੀ ਹੋਈ ਤਾਂ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰੋ',
+'minlength1' => 'ਫ਼ਾਈਲ ਦੇ ਨਾਂ ਵਿਚ ਘੱਟੋ-ਘੱਟ ਇੱਕ ਅੱਖਰ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।',
+'filename-toolong' => 'ਫ਼ਾਈਲਾਂ ਦੇ ਨਾਂ ੨੪੦ ਬਾਈਟਾਂ ਤੋਂ ਵੱਡੇ ਨਹੀਂ ਹੋ ਸਕਦੇ।',
+'badfilename' => 'ਫ਼ਾਈਲ ਦਾ ਨਾਂ ਬਦਲ ਦੇ "$1" ਕਰ ਦਿੱਤਾ ਗਿਆ ਹੈ।',
+'filetype-missing' => 'ਫ਼ਾਈਲ ਦੀ ਕੋਈ ਐਕਸ਼ਟੇਸ਼ਨ (ਜਿਵੇਂ ".jpg") ਨਹੀਂ ਹੈ।',
+'empty-file' => 'ਤੁਹਾਡੇ ਵਲੋਂ ਦਿੱਤੀ ਫ਼ਾਈਲ ਖ਼ਾਲੀ ਸੀ।',
+'file-too-large' => 'ਤੁਹਾਡੇ ਵਲੋਂ ਦਿੱਤੀ ਫ਼ਾਈਲ ਬਹੁਤ ਵੱਡੀ ਸੀ।',
+'filename-tooshort' => 'ਫ਼ਾਈਲ ਦਾ ਨਾਂ ਬਹੁਤ ਛੋਟਾ ਹੈ।',
+'filetype-banned' => 'ਇਸ ਕਿਸਮ ਦੀ ਫ਼ਾਈਲ ਦੀ ਮਨਾਹੀ ਹੈ।',
+'verification-error' => "ਇਹ ਫ਼ਾਈਲ ਫ਼ਾਈਲ-ਜਾਂਚ 'ਤੇ ਖ਼ਰੀ ਨਾ ਉੱਤਰ ਸਕੀ।",
+'illegal-filename' => 'ਇਸ ਫ਼ਾਈਲ-ਨਾਂ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।',
+'unknown-error' => 'ਅਣਜਾਣ ਗ਼ਲਤੀ ਆਈ ਹੈ।',
+'tmp-create-error' => 'ਆਰਜ਼ੀ ਫ਼ਾਈਲ ਬਣਾਈ ਨਾ ਜਾ ਸਕੀ।',
+'tmp-write-error' => 'ਆਰਜ਼ੀ ਫ਼ਾਈਲ ਲਿਖਣ ਲਈ ਗ਼ਲਤੀ ਆਈ।',
+'windows-nonascii-filename' => 'ਵਿਕੀ ਖ਼ਾਸ ਚਿੰਨ੍ਹਾਂ ਵਾਲੇ ਫ਼ਾਈਲ ਨਾਮਾਂ ਨੂੰ ਇਜਾਜ਼ਤ ਨਹੀਂ ਦਿੰਦਾ।',
+'fileexists' => 'ਇਹ ਫ਼ਾਈਲ ਨਾਂ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ। ਜੇ ਤੁਸੀਂ ਇਹਨੂੰ ਬਦਲਣ ਬਾਰੇ ਦ੍ਰਿੜ ਨਹੀਂ ਹੋ ਤਾਂ  <strong>[[:$1]]</strong> ਵੇਖੋ ਜੀ। [[$1|thumb]]',
+'fileexists-extension' => 'ਇਸ ਨਾਂ ਨਾਲ਼ ਰਲਦੀ ਫ਼ਾਈਲ ਮੌਜੂਦ ਹੈ: [[$2|thumb]]
+* ਅੱਪਲੋਡ ਕੀਤੀ ਜਾਂਦੀ ਫ਼ਾਈਲ ਦਾ ਨਾਂ: <strong>[[:$1]]</strong>
+* ਮੌਜੂਦ ਫ਼ਾਈਲ ਦਾ ਨਾਂ: <strong>[[:$2]]</strong>
+ਕੋਈ ਵੱਖਰਾ ਨਾਂ ਚੁਣੋ ਜੀ।',
 'file-exists-duplicate' => 'ਇਹ ਫ਼ਾਈਲ {{PLURAL:$1|ਇਸ ਫ਼ਾਈਲ|ਇਹਨਾਂ ਫ਼ਾਈਲਾਂ}} ਦੀ ਨਕਲ ਹੈ:',
-'uploadwarning' => 'ਅੱਪਲੋਡ ਚੇਤਾਵਨੀ',
-'savefile' => 'ਫਾਇਲ ਸੰਭਾਲੋ',
+'uploadwarning' => 'ਅੱਪਲੋਡ ਚਿਤਾਵਨੀ',
+'uploadwarning-text' => 'ਕਿਰਪਾ ਕਰਕੇ ਹੇਠ ਦਿੱਤਾ ਫ਼ਾਈਲ ਵੇਰਵਾ ਬਦਲੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।',
+'savefile' => 'ਫ਼ਾਈਲ ਸਾਂਭੋ',
 'uploadedimage' => '"[[$1]]" ਅੱਪਲੋਡ ਕੀਤੀ',
 'overwroteimage' => '"[[$1]]" ਦਾ ਨਵਾਂ ਰੂਪ ਅੱਪਲੋਡ ਕਰੋ',
 'uploaddisabled' => 'ਅੱਪਲੋਡ ਆਯੋਗ ਹੈ',
+'copyuploaddisabled' => 'URL ਰਾਹੀਂ ਅੱਪਲੋਡ ਰੋਕੇ ਹੋਏ ਹਨ।',
+'uploadfromurl-queued' => 'ਤੁਹਾਡਾ ਅੱਪਲੋਡ ਕਤਾਰ ਵਿਚ ਹੈ।',
+'uploaddisabledtext' => 'ਫ਼ਾਈਲਾਂ ਦੇ ਅੱਪਲੋਡ ਰੋਕੇ ਹੋਏ ਹਨ।',
 'uploadvirus' => 'ਇਹ ਫਾਇਲ ਵਿੱਚ ਵਾਇਰਸ ਹੈ! ਵੇਰਵੇ ਲਈ ਵੇਖੋ: $1',
 'upload-source' => 'ਸਰੋਤ ਫਾਇਲ',
 'sourcefilename' => 'ਸੋਰਸ ਫਾਇਲ ਨਾਂ:',
@@ -1394,14 +1491,15 @@ to upload files.',
 'upload-description' => 'ਫਾਈਲ ਵੇਰਵਾ',
 'upload-options' => 'ਅੱਪਲੋਡ ਚੋਣਾਂ',
 'watchthisupload' => 'ਇਸ ਫ਼ਾਈਲ ’ਤੇ ਨਜ਼ਰ ਰੱਖੋ',
-'upload-success-subj' => 'ਠà©\80à¨\95 à¨¤à¨°à©\8dਹਾà¨\82 ਅੱਪਲੋਡ',
+'upload-success-subj' => 'ਸਫ਼ਲ ਅੱਪਲੋਡ',
 'upload-failure-subj' => 'ਅੱਪਲੋਡ ਸਮੱਸਿਆ',
 'upload-warning-subj' => 'ਅੱਪਲੋਡ ਚੇਤਾਵਨੀ',
 
 'upload-proto-error' => 'ਗਲਤ ਪਰੋਟੋਕਾਲ',
 'upload-file-error' => 'ਅੰਦਰੂਨੀ ਗਲਤੀ',
-'upload-misc-error' => 'ਅਣਜਾਣ ਅੱਪਲੋਡ ਗਲਤੀ',
-'upload-unknown-size' => 'ਅਣਜਾਣ ਆਕਾਰ',
+'upload-misc-error' => 'ਅਣਪਛਾਤੀ ਅੱਪਲੋਡ ਗਲਤੀ',
+'upload-unknown-size' => 'ਅਣਪਛਾਤਾ ਅਕਾਰ',
+'upload-http-error' => 'ਇੱਕ HTTP ਗ਼ਲਤੀ ਹੋਈ: $1',
 
 # File backend
 'backend-fail-notexists' => 'ਫ਼ਾਈਲ $1 ਮੌਜੂਦ ਨਹੀਂ ਹੈ।',
@@ -1410,7 +1508,11 @@ to upload files.',
 'backend-fail-store' => 'ਫ਼ਾਈਲ "$1", "$2" ਵਿਚ ਸਾਂਭੀ ਨਹੀਂ ਜਾ ਸਕੀ।',
 'backend-fail-copy' => 'ਫ਼ਾਈਲ "$1", "$2" ਵਿਚ ਨਕਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ।',
 'backend-fail-move' => 'ਫ਼ਾਈਲ "$1", "$2" ਤੇ ਭੇਜੀ ਨਹੀਂ ਜਾ ਸਕੀ।',
-'backend-fail-opentemp' => 'ਅਸਥਾਈ ਫਾਈਲ ਖੋਲ੍ਹੀ ਨਹੀਂ ਜਾ ਸਕੀ।',
+'backend-fail-opentemp' => 'ਆਰਜ਼ੀ ਫ਼ਾਈਲ ਖੋਲ੍ਹੀ ਨਹੀਂ ਜਾ ਸਕੀ।',
+'backend-fail-writetemp' => 'ਆਰਜ਼ੀ ਫ਼ਾਈਲ ਉੱਤੇ ਲਿਖ ਨਹੀਂ ਹੋਇਆ।',
+'backend-fail-closetemp' => 'ਆਰਜ਼ੀ ਫ਼ਾਈਲ ਬੰਦ ਨਹੀਂ ਹੋਈ।',
+'backend-fail-read' => '"$1" ਫ਼ਾਈਲ ਪੜ੍ਹੀ ਨਾ ਜਾ ਸਕੀ।',
+'backend-fail-create' => '"$1" ਫ਼ਾਈਲ ਲਿਖੀ ਨਾ ਜਾ ਸਕੀ।',
 
 # Special:UploadStash
 'uploadstash-refresh' => 'ਫ਼ਾਈਲਾਂ ਦੀ ਲਿਸਟ ਨੂੰ ਤਾਜ਼ਾ ਕਰੋ',
@@ -1424,27 +1526,27 @@ to upload files.',
 ਮਿਹਰਬਾਨੀ ਕਰਕੇ ਦੁਬਾਰਾ ਜਾਂਚ ਕਰੋ ਕਿ URL ਸਹੀ ਹੈ ਅਤੇ ਸਾਈਟ ਉਪਲੱਬਧ ਹੈ।',
 'upload-curl-error28' => 'ਅੱਪਲੋਡ ਟਾਈਮ-ਆਉਟ',
 
-'license' => 'ਲਾà¨\88ਸà©\88à¨\82ਸ:',
-'license-header' => 'ਲਾà¨\88ਸà©\88à¨\82ਸ',
+'license' => 'ਲਸੰਸ:',
+'license-header' => 'ਲਸੰਸ',
 'nolicense' => 'ਕੁਝ ਵੀ ਚੁਣਿਆ',
 'license-nopreview' => '(ਝਲਕ ਉਪਲੱਬਧ ਨਹੀਂ)',
 'upload_source_file' => ' (ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ ਉੱਤੇ ਇੱਕ ਫਾਇਲ)',
 
 # Special:ListFiles
-'listfiles_search_for' => 'à¨\87ਸ à¨®à©\80ਡà©\80à¨\86 à¨¨à¨¾à¨® ਨੂੰ ਖੋਜੋ:',
-'imgfile' => 'ਫਾà¨\87ਲ',
-'listfiles' => 'ਫਾà¨\87ਲ à¨²à¨¿à¨¸à¨\9f',
+'listfiles_search_for' => 'à¨\87ਸ à¨®à©\80ਡà©\80à¨\86 à¨¨à¨¾à¨\82 ਨੂੰ ਖੋਜੋ:',
+'imgfile' => 'ਫ਼ਾà¨\88ਲ',
+'listfiles' => 'ਫ਼ਾà¨\88ਲਾà¨\82 à¨¦à©\80 à¨¸à©\82à¨\9aà©\80',
 'listfiles_thumb' => 'ਨਮੂਨਾ-ਤਸਵੀਰ',
 'listfiles_date' => 'ਮਿਤੀ',
 'listfiles_name' => 'ਨਾਂ',
-'listfiles_user' => 'ਯà©\82à¨\9c਼ਰ',
+'listfiles_user' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ',
 'listfiles_size' => 'ਆਕਾਰ',
 'listfiles_description' => 'ਵੇਰਵਾ',
 'listfiles_count' => 'ਵਰਜਨ',
 
 # File description page
-'file-anchor-link' => 'ਫਾਈਲ',
-'filehist' => 'ਫਾà¨\88ਲ à¨¦à¨¾ à¨\87ਤਿਹਾਸ',
+'file-anchor-link' => 'ਫ਼ਾà¨\88ਲ',
+'filehist' => 'ਫ਼ਾà¨\88ਲ à¨¦à¨¾ à¨\85ਤà©\80ਤ',
 'filehist-help' => 'ਤਾਰੀਖ/ਸਮੇਂ ’ਤੇ ਕਲਿੱਕ ਕਰੋ ਤਾਂ ਉਸ ਸਮੇਂ ਦੀ ਫਾਈਲ ਪੇਸ਼ ਹੋ ਜਾਵੇਗੀ।',
 'filehist-deleteall' => 'ਸਭ ਹਟਾਓ',
 'filehist-deleteone' => 'ਇਹ ਹਟਾਓ',
@@ -1452,21 +1554,21 @@ to upload files.',
 'filehist-current' => 'ਮੌਜੂਦਾ',
 'filehist-datetime' => 'ਮਿਤੀ/ਸਮਾਂ',
 'filehist-thumb' => 'ਨਮੂਨਾ',
-'filehist-thumbtext' => '$1 à¨¦à©\87 à¨¸à¨®à©\87à¨\82 à¨¦à©\87 à¨¸à©°à¨¸à¨\95ਰਨ à¨¦à¨¾ à¨\85à©°à¨\97à©\82ਠਾà¨\95ਾਰ à¨ªà©\8dਰਤà©\80ਰੂਪ',
+'filehist-thumbtext' => '$1 à¨µà©\87ਲà©\87 à¨¦à©\87 à¨µà¨°à¨\9cਨ à¨¦à¨¾ à¨\85à©°à¨\97à©\82ਠਾà¨\95ਾਰ ਰੂਪ',
 'filehist-nothumb' => 'ਕੋਈ ਨਮੂਨਾ-ਤਸਵੀਰ ਨਹੀਂ',
 'filehist-user' => 'ਵਰਤੋਂਕਾਰ',
 'filehist-dimensions' => 'ਨਾਪ',
 'filehist-filesize' => 'ਫਾਇਲ ਆਕਾਰ',
 'filehist-comment' => 'ਟਿੱਪਣੀ',
 'filehist-missing' => 'ਫਾਈਲ ਗੁੰਮ',
-'imagelinks' => 'ਫਾà¨\88ਲ ਵਰਤੋਂ',
-'linkstoimage' => 'à¨\87ਹ {{PLURAL:$1|ਪੰਨà©\87 à¨¦à©\87 à¨²à¨¿à©°à¨\95|$1 à¨ªà©°à¨¨à©\87}} à¨\87ਸ à¨«à¨¼à¨¾à¨\88ਲ à¨¨à¨¾à¨² à¨\9cà©\8bà©\9cਦà©\87 à¨¹à¨¨à©\87:',
-'nolinkstoimage' => 'à¨\95à©\8bà¨\88 à¨µà©\80 à¨ªà©°à¨¨ਾ ਇਸ ਫ਼ਾਈਲ ਨਾਲ ਨਹੀਂ ਜੋੜਦਾ।',
+'imagelinks' => 'ਫ਼ਾà¨\88ਲ à¨¦à©\80 ਵਰਤੋਂ',
+'linkstoimage' => 'à¨\87ਹ {{PLURAL:$1|ਸਫ਼ਾ|$1 à¨¸à¨«à¨¼à©\87}} à¨\87ਸ à¨«à¨¼à¨¾à¨\88ਲ à¨¨à¨¾à¨² à¨\9cà©\8bà©\9cਦà©\87 à¨¹à¨¨:',
+'nolinkstoimage' => 'à¨\95à©\8bà¨\88 à¨µà©\80 à¨¸à¨«à¨¼ਾ ਇਸ ਫ਼ਾਈਲ ਨਾਲ ਨਹੀਂ ਜੋੜਦਾ।',
 'morelinkstoimage' => 'ਇਸ ਫ਼ਾਈਲ ਨਾਲ਼ ਜੋੜਦੇ [[Special:WhatLinksHere/$1|ਹੋਰ ਲਿੰਕ]] ਵੇਖੋ।',
 'sharedupload' => 'ਇਹ ਫ਼ਾਈਲ $1 ਤੋਂ ਹੈ ਅਤੇ ਸ਼ਾਇਦ ਦੂਜੇ ਪ੍ਰੋਜੈਕਟਾਂ ਤੇ ਵਰਤੀ ਜਾ ਸਕਦੀ ਹੈ।',
 'sharedupload-desc-there' => 'ਇਹ ਫ਼ਾਈਲ $1 ਤੋਂ ਹੈ ਅਤੇ ਸ਼ਾਇਦ ਦੂਜੇ ਪ੍ਰੋਜੈਕਟਾਂ ਦੁਆਰਾ ਵਰਤੀ ਜਾ ਸਕਦੀ ਹੈ।
 ਜ਼ਿਆਦਾ ਜਾਣਕਾਰੀ ਲਈ ਮਿਹਰਬਾਨੀ ਕਰਕੇ [$2 ਫ਼ਾਈਲ ਦਾ ਵੇਰਵਾ ਸਫ਼ਾ] ਵੇਖੋ।',
-'sharedupload-desc-here' => 'à¨\87ਹ à¨«à¨¼à¨¾à¨\88ਲ $1 à¨¦à©\80 à¨¹à©\88 à¨\85ਤà©\87 à¨¹à©\8bਰ à¨ªà¨°à¨¿à¨¯à©\8bà¨\9cਨਾਵਾà¨\82 à¨µà¨¿à©±à¨\9a à¨µà©\80 à¨µà¨°à¨¤à©\80 à¨\9cਾ à¨¸à¨\95ਦà©\80 à¨¹à©\88 à¥¤ à¨\87ਸ [$2 à¨«à¨¼à¨¾à¨\88ਲ à¨¦à©\87 à¨µà©\87ਰਵਾ à¨ªà©°à¨¨ੇ] ਵਿੱਚ ਮੌਜੂਦ ਵੇਰਵਾ ਹੇਠ ਦਿਸ ਰਿਹਾ ਹੈ।',
+'sharedupload-desc-here' => 'à¨\87ਹ à¨«à¨¼à¨¾à¨\88ਲ $1 à¨¦à©\80 à¨¹à©\88 à¨\85ਤà©\87 à¨¹à©\8bਰ à¨ªà¨°à¨¿à¨¯à©\8bà¨\9cਨਾਵਾà¨\82 à¨µà¨¿à©±à¨\9a à¨µà©\80 à¨µà¨°à¨¤à©\80 à¨\9cਾ à¨¸à¨\95ਦà©\80 à¨¹à©\88 à¥¤ à¨\87ਸ [$2 à¨«à¨¼à¨¾à¨\88ਲ à¨¦à©\87 à¨µà©\87ਰਵਾ à¨¸à¨«à¨¼ੇ] ਵਿੱਚ ਮੌਜੂਦ ਵੇਰਵਾ ਹੇਠ ਦਿਸ ਰਿਹਾ ਹੈ।',
 'sharedupload-desc-edit' => 'ਇਹ ਫ਼ਾਈਲ $1 ਤੋਂ ਹੈ ਅਤੇ ਸ਼ਾਇਦ ਦੂਜੇ ਪ੍ਰੋਜੈਕਟਾਂ ਦੁਆਰਾ ਵਰਤੀ ਜਾ ਸਕਦੀ ਹੈ।
 ਸ਼ਾਇਦ ਤੁਸੀਂ [$2 ਫ਼ਾਈਲ ਦੇ ਵੇਰਵੇ ਸਫ਼ੇ] ਤੇ ਇਸਦਾ ਵੇਰਵਾ ਬਦਲਣਾ ਚਾਹੋ।',
 'sharedupload-desc-create' => 'ਇਹ ਫ਼ਾਈਲ $1 ਤੋਂ ਹੈ ਅਤੇ ਸ਼ਾਇਦ ਦੂਜੇ ਪ੍ਰੋਜੈਕਟਾਂ ਦੁਆਰਾ ਵਰਤੀ ਜਾ ਸਕਦੀ ਹੈ।
@@ -1512,36 +1614,43 @@ to upload files.',
 'listredirects' => 'ਰੀਡਾਇਰੈਕਟਾਂ ਦੀ ਲਿਸਟ',
 
 # Unused templates
-'unusedtemplates' => 'à¨\85ਣ-ਵਰਤà©\87 à¨\97à¨\8f à¨¸à¨¾à¨\82à¨\9aੇ',
-'unusedtemplateswlh' => 'ਹà©\8bਰ à¨²à¨¿à©°à¨\95',
+'unusedtemplates' => 'à¨\85ਣ-ਵਰਤà©\87 à¨«à¨°à¨®ੇ',
+'unusedtemplateswlh' => 'ਹà©\8bਰ à¨\95à©\9cà©\80à¨\86à¨\82',
 
 # Random page
-'randompage' => 'ਰਲਵਾà¨\82 à¨ªà©°à¨¨ਾ',
+'randompage' => 'ਰਲ਼ਵਾà¨\82 à¨¸à¨«à¨¼ਾ',
 'randompage-nopages' => '{{PLURAL:$2|ਇਸ ਥਾਂ-ਨਾਮ|ਇਹਨਾਂ ਥਾਂ-ਨਾਂਵਾ}} ਵਿਚ ਕੋਈ ਸਫ਼ਾ ਨਹੀਂ ਹੈ: $1।',
 
+# Random redirect
+'randomredirect' => 'ਰਲ਼ਵਾਂ ਰੀਡਿਰੈਕਟ',
+
 # Statistics
 'statistics' => 'ਅੰਕੜੇ',
 'statistics-header-pages' => 'ਸਫ਼ਾ ਅੰਕੜੇ',
 'statistics-header-edits' => 'ਸੋਧ ਅੰਕੜੇ',
-'statistics-header-views' => 'ਵà©\87à¨\96ਣ à¨\85à©°à¨\95à©\9cà©\87',
-'statistics-header-users' => 'ਯà©\82à¨\9c਼ਰ ਅੰਕੜੇ',
+'statistics-header-views' => 'à¨\85à©°à¨\95à©\9cà©\87 à¨µà¨¿à¨\96ਾà¨\93',
+'statistics-header-users' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ ਅੰਕੜੇ',
 'statistics-header-hooks' => 'ਹੋਰ ਅੰਕੜੇ',
 'statistics-articles' => 'ਸਮੱਗਰੀ ਸਫ਼ੇ',
 'statistics-pages' => 'ਸਫ਼ੇ',
 'statistics-pages-desc' => 'ਇਸ ਵਿਕੀ ਦੇ ਸਾਰੇ ਸਫ਼ੇ, ਗੱਲ-ਬਾਤ ਸਫ਼ਿਆਂ, ਰੀਡਾਇਰੈਕਟਾਂ ਇਤਿਆਦਿ ਨੂੰ ਸ਼ਾਮਲ ਕਰਦੇ ਹੋਏ',
 'statistics-files' => 'ਅਪਲੋਡ ਕੀਤੀਆਂ ਗਈਆਂ ਫਾਈਲਾਂ',
-'statistics-edits-average' => 'ਪ੍ਰਤੀ ਸਫ਼ਾ ਔਸਤਨ ਸੋਧਾਂ',
-'statistics-users' => 'ਪੰਜੀਕਰਿਤ [[Special:ListUsers|ਵਰਤੋਂਕਾਰਾਂ]]',
-'statistics-users-active' => 'ਸਰਗਰਮ ਯੂਜ਼ਰ',
+'statistics-edits-average' => 'ਪ੍ਰਤੀ ਸਫ਼ਾ ਔਸਤ ਸੋਧਾਂ',
+'statistics-views-total' => 'ਕੁੱਲ ਫੇਰੀਆਂ',
+'statistics-views-peredit' => 'ਪ੍ਰਤੀ ਸੋਧ ਫੇਰੀਆਂ',
+'statistics-users' => 'ਰਜਿਸਟਰਡ [[Special:ListUsers|ਵਰਤੋਂਕਾਰ]]',
+'statistics-users-active' => 'ਸਰਗਰਮ ਵਰਤੋਂਕਾਰ',
 'statistics-users-active-desc' => 'ਮੈਂਬਰ, ਜਿੰਨ੍ਹਾ ਨੇ ਆਖ਼ਰੀ {{PLURAL:$1|ਦਿਨ|$1 ਦਿਨਾਂ}} ਵਿਚ ਕੋਈ ਕੰਮ ਕੀਤਾ ਹੈ।',
 'statistics-mostpopular' => 'ਸਭ ਤੋਂ ਵੱਧ ਵੇਖੇ ਸਫ਼ੇ',
 
+'disambiguations' => 'ਗੁੰਝਲ-ਖੋਲ੍ਹ ਸਫ਼ਿਆਂ ਨਾਲ਼ ਜੁੜਦੇ ਸਫ਼ੇ',
 'disambiguationspage' => 'Template:ਗੁੰਝਲ ਖੋਲ੍ਹ',
 
 'pageswithprop-submit' => 'ਜਾਉ',
 
 'doubleredirects' => 'ਦੋਹਰੇ ਰੀਡਿਰੈਕਟ',
 
+'brokenredirects' => 'ਟੁੱਟੇ ਹੋਏ ਰੀਡਿਰੈਕਟ',
 'brokenredirectstext' => 'ਇਹ ਰਿਡਿਰੈਕਟ ਨਾ-ਮੌਜੂਦ ਸਫ਼ਿਆਂ ’ਤੇ ਜੋੜਦੇ ਹਨ:',
 'brokenredirects-edit' => 'ਸੋਧ',
 'brokenredirects-delete' => 'ਹਟਾਓ',
@@ -1549,7 +1658,7 @@ to upload files.',
 'withoutinterwiki' => 'ਬਿਨਾਂ ਬੋਲੀ ਲਿੰਕਾਂ ਦੇ ਸਫ਼ੇ',
 'withoutinterwiki-summary' => 'ਇਹ ਸਫ਼ੇ ਹੋਰ ਬੋਲੀਆਂ ਵਾਲ਼ੇ ਵਰਜਨਾਂ ਨਾਲ਼ ਨਹੀਂ ਜੁੜਦੇ।',
 'withoutinterwiki-legend' => 'ਅਗੇਤਰ',
-'withoutinterwiki-submit' => 'ਵà©\87ਖਾਓ',
+'withoutinterwiki-submit' => 'ਵਿਖਾਓ',
 
 'fewestrevisions' => 'ਸਭ ਤੋਂ ਘੱਟ ਰੀਵਿਜ਼ਨਾਂ ਵਾਲ਼ੇ ਸਫ਼ੇ',
 
@@ -1559,7 +1668,7 @@ to upload files.',
 'nlinks' => '$1 {{PLURAL:$1|ਲਿੰਕ|ਲਿੰਕ}}',
 'nmembers' => '$1 {{PLURAL:$1|ਮੈਂਬਰ|ਮੈਂਬਰਾਂ}}',
 'nrevisions' => '$1 {{PLURAL:$1|ਰੀਵਿਜ਼ਨ|ਰੀਵਿਜ਼ਨਾਂ}}',
-'nviews' => '$1 {{PLURAL:$1|à¨\9dਲà¨\95|à¨\9dਲà¨\95}}',
+'nviews' => '$1 {{PLURAL:$1|ਫà©\87ਰà©\80|ਫà©\87ਰà©\80à¨\86à¨\82}}',
 'nimagelinks' => '$1 {{PLURAL:$1|ਸਫ਼ੇ|ਸਫ਼ਿਆਂ}} ’ਤੇ ਵਰਤਿਆ ਹੋਇਆ',
 'ntransclusions' => '$1 {{PLURAL:$1|ਸਫ਼ੇ|ਸਫ਼ਿਆਂ}} ’ਤੇ ਵਰਤਿਆ ਹੋਇਆ',
 'specialpage-empty' => 'ਇਸ ਰਿਪੋਟ ਦਾ ਕੋਈ ਨਤੀਜਾ ਨਹੀਂ ਹੈ।',
@@ -1576,23 +1685,30 @@ to upload files.',
 'wantedfiles' => 'ਚਾਹੀਦੀਆਂ ਫਾਇਲਾਂ',
 'wantedtemplates' => 'ਚਾਹੀਦੇ ਟੈਪਲੇਟ',
 'mostcategories' => 'ਸਭ ਤੋਂ ਵੱਧ ਕੈਟੇਗਰੀਆਂ ਵਾਲ਼ੇ ਸਫ਼ੇ',
-'prefixindex' => 'à¨\87ਸ à¨\85à¨\97à©\87ਤਰ à¨µà¨¾à¨²à©\87 à¨¸à¨¾à¨°à©\87 à¨ªà©°à¨¨ੇ',
+'prefixindex' => 'à¨\87ਸ à¨\85à¨\97à©\87ਤਰ à¨µà¨¾à¨²à©\87 à¨¸à¨¾à¨°à©\87 à¨¸à¨«à¨¼ੇ',
 'shortpages' => 'ਛੋਟੇ ਸਫ਼ੇ',
+'longpages' => 'ਲੰਮੇ ਸਫ਼ੇ',
+'protectedpages' => 'ਸੁਰੱਖਿਅਤ ਸਫ਼ੇ',
+'protectedtitles' => 'ਸੁਰੱਖਿਅਤ ਸਿਰਲੇਖ',
+'protectedtitlestext' => 'ਹੇਠ ਲਿਖੇ ਸਿਰਲੇਖਾਂ ਨੂੰ ਬਣਾਉਣ ਤੋਂ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਹੋਇਆ ਹੈ।',
 'listusers' => 'ਯੂਜ਼ਰ ਲਿਸਟ',
+'listusers-editsonly' => 'ਸਿਰਫ਼ ਸੋਧਾਂ ਵਾਲੇ ਵਰਤੋਂਕਾਰ ਵਿਖਾਓ',
+'listusers-creationsort' => 'ਬਣਾਉਣ ਦੀ ਮਿਤੀ ਮੁਤਾਬਕ ਤਰਤੀਬ ਵਿਚ ਕਰੋ',
 'usercreated' => '$1 ਨੂੰ $2 ’ਤੇ {{GENDER:$3|ਬਣਾਇਆ}}',
 'newpages' => 'ਨਵੇਂ ਸਫ਼ੇ',
-'newpages-username' => 'ਯà©\82à¨\9c਼ਰ-ਨਾਂ:',
-'ancientpages' => 'ਸਭ à¨¤à©\8bà¨\82 à¨ªà©\81ਰਾਣà©\87 à¨ªà©\87à¨\9c',
-'move' => 'ਸਥਾਨਾà¨\82ਤਰਨ',
-'movethispage' => 'ਪà©\87à¨\9c à¨¦à¨¾ à¨¨à¨¾à¨® à¨¬à¨¦à¨²ੋ',
+'newpages-username' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ ਨਾਂ:',
+'ancientpages' => 'ਸਭ à¨¤à©\8bà¨\82 à¨ªà©\81ਰਾਣà©\87 à¨¸à¨«à¨¼à©\87',
+'move' => 'ਸਿਰਲà©\87à¨\96 à¨¬à¨¦à¨²à©\8b',
+'movethispage' => 'à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨­à©\87à¨\9cੋ',
 'unusedcategoriestext' => 'ਇਹ ਕੈਟੇਗਰੀ ਸਫ਼ੇ ਮੌਜੂਦ ਹਨ ਹਾਲਾਂਕਿ ਕਿਸੇ ਵੀ ਸਫ਼ੇ ਜਾਂ ਕੈਟੇਗਰੀ ਨੇ ਇਹਨਾਂ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕੀਤੀ।',
-'notargettitle' => 'ਟਾਰਗੇਟ ਨਹੀਂ',
+'notargettitle' => 'ਕੋਈ ਨਿਸ਼ਾਨਾ ਨਹੀਂ',
+'nopagetitle' => 'ਕੋਈ ਅਜਿਹਾ ਨਿਸ਼ਾਨਾ ਸਫ਼ਾ ਨਹੀਂ ਹੈ',
 'pager-newer-n' => '{{PLURAL:$1|1 ਨਵਾਂ|$1 ਨਵੇਂ}}',
 'pager-older-n' => '{{PLURAL:$1|1 ਪੁਰਾਣਾ|$1 ਪੁਰਾਣੇ}}',
 
 # Book sources
 'booksources' => 'ਪੁਸਤਕਾਂ ਦੇ ਸਰੋਤ',
-'booksources-search-legend' => 'ਪà©\81ਸਤà¨\95ਾਂ ਦੇ ਸਰੋਤ ਖੋਜੋ',
+'booksources-search-legend' => 'à¨\95ਿਤਾਬਾਂ ਦੇ ਸਰੋਤ ਖੋਜੋ',
 'booksources-go' => 'ਜਾਓ',
 'booksources-invalid-isbn' => 'ਦਿੱਤਾ ਗਿਆ ISBN ਸਹੀ ਨਹੀਂ ਲਗਦਾ, ਅਸਲੀ ਸਰੋਤ ਤੋਂ ਨਕਲ ਕਰਦੇ ਵਕਤ ਹੋਈਆਂ ਗ਼ਲਤੀਆਂ ਜਾਂਚੋ।',
 
@@ -1608,13 +1724,13 @@ to upload files.',
 # Special:AllPages
 'allpages' => 'ਸਭ ਸਫ਼ੇ',
 'alphaindexline' => '$1 ਤੋਂ $2',
-'nextpage' => 'à¨\85ੱà¨\97à©\87 ਸਫ਼ਾ ($1)',
-'prevpage' => 'ਪਿੱà¨\9bà©\87 ਸਫ਼ਾ ($1)',
-'allpagesfrom' => 'ਇਸਤੋਂ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲ਼ੇ ਸਫ਼ੇ ਵਖਾਓ:',
+'nextpage' => 'à¨\85à¨\97ਲਾ ਸਫ਼ਾ ($1)',
+'prevpage' => 'ਪਿà¨\9bਲਾ ਸਫ਼ਾ ($1)',
+'allpagesfrom' => 'à¨\87ਸਤà©\8bà¨\82 à¨¸à¨¼à©\81ਰà©\82 à¨¹à©\8bਣ à¨µà¨¾à¨²à¨¼à©\87 à¨¸à¨«à¨¼à©\87 à¨µà¨¿à¨\96ਾà¨\93:',
 'allpagesto' => 'ਇਸਤੇ ਖ਼ਤਮ ਹੋਣ ਵਾਲ਼ੇ ਸਫ਼ੇ ਵਖਾਓ:',
 'allarticles' => 'ਸਭ ਸਫ਼ੇ',
-'allinnamespace' => 'ਸਭ à¨ªà©\87à¨\9c ($1 à¨¨à©\87ਮਸਪà©\87ਸ)',
-'allnotinnamespace' => 'ਸਭ à¨ªà©\87à¨\9c ($1 à¨¨à©\87ਮਸਪà©\87ਸ à¨µà¨¿à©±ਚ ਨਹੀਂ)',
+'allinnamespace' => 'ਸਭ à¨¸à¨«à¨¼à©\87 ($1 à¨¨à¨¾à¨\82-ਥਾà¨\82)',
+'allnotinnamespace' => 'ਸਭ à¨¸à¨«à¨¼à©\87 ($1 à¨¨à¨¾à¨\82-ਥਾà¨\82 à¨µà¨¿ਚ ਨਹੀਂ)',
 'allpagesprev' => 'ਪਿੱਛੇ',
 'allpagesnext' => 'ਅੱਗੇ',
 'allpagessubmit' => 'ਜਾਓ',
@@ -1629,59 +1745,65 @@ to upload files.',
 'categories' => 'ਸ਼੍ਰੇਣੀਆਂ',
 'categoriesfrom' => 'ਇਸਤੋਂ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲ਼ੀਆਂ ਕੈਟੇਗਰੀਆਂ ਵਖਾਓ:',
 'special-categories-sort-count' => 'ਗਿਣਤੀ ਮੁਤਾਬਕ ਤਰਤੀਬ ਦੇਵੋ',
-'special-categories-sort-abc' => 'à¨\85ੱà¨\96ਰਾà¨\82 à¨®à©\81ਤਾਬà¨\95 à¨¤à¨°à¨¤à©\80ਬ à¨¦à©\87ਵà©\8b',
+'special-categories-sort-abc' => 'à¨\85ੱà¨\96ਰਾà¨\82 à¨®à©\81ਤਾਬà¨\95 à¨¤à¨°à¨¤à©\80ਬ à¨¦à¨¿à¨\93',
 
 # Special:DeletedContributions
-'deletedcontributions' => 'ਮਿà¨\9fਾà¨\8f à¨¹à©\8bà¨\8f à¨®à©\88à¨\82ਬਰ ਯੋਗਦਾਨ',
-'deletedcontributions-title' => 'ਮਿà¨\9fਾà¨\8f à¨¹à©\8bà¨\8f à¨®à©\88à¨\82ਬਰ ਯੋਗਦਾਨ',
+'deletedcontributions' => 'ਮਿà¨\9fਾà¨\8f à¨¹à©\8bà¨\8f à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰ ਯੋਗਦਾਨ',
+'deletedcontributions-title' => 'ਮਿà¨\9fਾà¨\8f à¨¹à©\8bà¨\8f à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰ ਯੋਗਦਾਨ',
 'sp-deletedcontributions-contribs' => 'ਯੋਗਦਾਨ',
 
 # Special:LinkSearch
 'linksearch' => 'ਬਾਹਰੀ ਲਿੰਕ ਖੋਜ',
-'linksearch-ns' => 'ਥਾਂ-ਨਾਮ:',
+'linksearch-pat' => 'ਨਮੂਨਾ ਖੋਜੋ:',
+'linksearch-ns' => 'ਨਾਂ-ਥਾਂ:',
 'linksearch-ok' => 'ਖੋਜ',
 'linksearch-line' => '$2 ਵਿੱਚ $1 ਬਾਹਰੀ ਸਿਰਨਾਵਾਂ ਹੈ',
 
 # Special:ListUsers
 'listusersfrom' => 'ਇਸਤੋਂ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲ਼ੇ ਮੈਂਬਰ ਵਖਾਓ:',
-'listusers-submit' => 'ਵà©\87ਖਾਓ',
-'listusers-noresult' => 'à¨\95à©\8bà¨\88 à¨¯à©\82à¨\9c਼ਰ à¨¨à¨¹à©\80à¨\82 à¨²à©±à¨­à¨¿à¨\86।',
+'listusers-submit' => 'ਵਿਖਾਓ',
+'listusers-noresult' => 'à¨\95à©\8bà¨\88 à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰ à¨¨à¨¹à©\80à¨\82 à¨²à©±à¨­à¨¾।',
 'listusers-blocked' => '(ਪਾਬੰਦੀਸ਼ੁਦਾ)',
 
 # Special:ActiveUsers
-'activeusers' => 'à¨\9aà©\81ਸਤ à¨®à©\88à¨\82ਬਰਾà¨\82 à¨¦à©\80 à¨²à¨¿à¨¸à¨\9f',
+'activeusers' => 'à¨\9aà©\81ਸਤ à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰਾà¨\82 à¨¦à©\80 à¨¸à©\82à¨\9aà©\80',
 'activeusers-intro' => 'ਇਹ ਓਹਨਾਂ ਮੈਂਬਰਾਂ ਦੀ ਲਿਸਟ ਹੈ ਜਿੰਨ੍ਹਾਂ ਨੇ ਆਖ਼ਰੀ $1 {{PLURAL:$1|ਦਿਨ|ਦਿਨਾਂ}} ਵਿਚ ਕਿਸੇ ਤਰ੍ਹਾਂ ਦਾ ਕੋਈ ਕੰਮ ਕੀਤਾ ਹੈ।',
 'activeusers-count' => 'ਆਖ਼ਰੀ {{PLURAL:$3|ਦਿਨ|$3 ਦਿਨਾਂ}} ਵਿਚ $1 {{PLURAL:$1|ਸੋਧ|ਸੋਧਾਂ}}',
 'activeusers-from' => 'ਇਸਤੋਂ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲ਼ੇ ਮੈਂਬਰ ਵਖਾਓ:',
-'activeusers-hidebots' => 'ਬà©\8bਟਾਂ ਨੂੰ ਲੁਕਾਓ',
-'activeusers-hidesysops' => 'à¨\90ਡਮਨਿਸà¨\9fà©\8dਰà©\87à¨\9fਰ ਲੁਕਾਓ',
-'activeusers-noresult' => 'à¨\95à©\8bà¨\88 à¨®à©\88à¨\82ਬਰ à¨¨à¨¹à©\80à¨\82 à¨²à©±à¨­à¨¿à¨\86।',
+'activeusers-hidebots' => 'ਬà©\8cਟਾਂ ਨੂੰ ਲੁਕਾਓ',
+'activeusers-hidesysops' => 'ਪà©\8dਰਸ਼ਾਸà¨\95 ਲੁਕਾਓ',
+'activeusers-noresult' => 'à¨\95à©\8bà¨\88 à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰ à¨¨à¨¹à©\80à¨\82 à¨²à©±à¨­à¨¾।',
 
 # Special:ListGroupRights
-'listgrouprights-group' => 'ਗਰੁੱਪ',
+'listgrouprights' => 'ਵਰਤੋਂਕਾਰ ਸਮੂਹਾਂ ਦੇ ਹੱਕ',
+'listgrouprights-group' => 'ਸਮੂਹ',
 'listgrouprights-rights' => 'ਹੱਕ',
-'listgrouprights-helppage' => 'Help:à¨\97ਰà©\81ੱਪ ਹੱਕ',
+'listgrouprights-helppage' => 'Help:ਸਮà©\82ਹਾà¨\82 à¨¦à©\87 ਹੱਕ',
 'listgrouprights-members' => '(ਮੈਂਬਰਾਂ ਦੀ ਸੂਚੀ)',
-'listgrouprights-addgroup-all' => 'ਸਾਰੇ ਗਰੁੱਪ ਜੋੜੋ',
-'listgrouprights-removegroup-all' => 'ਸਾਰੇ ਗਰੁੱਪ ਹਟਾਓ',
+'listgrouprights-addgroup' => '{{PLURAL:$2|ਸਮੂਹ}} ਜੋੜੋ: $1',
+'listgrouprights-removegroup' => '{{PLURAL:$2|ਸਮੂਹ}} ਹਟਾਓ: $1',
+'listgrouprights-addgroup-all' => 'ਸਾਰੇ ਸਮੂਹ ਜੋੜੋ',
+'listgrouprights-removegroup-all' => 'ਸਾਰੇ ਸਮੂਹ ਹਟਾਓ',
+'listgrouprights-addgroup-self-all' => 'ਆਪਣੇ ਖਾਤੇ ਵਿਚ ਸਾਰੇ ਸਮੂਹ ਜੋੜੋ',
+'listgrouprights-removegroup-self-all' => 'ਆਪਣੇ ਖਾਤੇ ਤੋਂ ਸਾਰੇ ਸਮੂਹ ਹਟਾਓ',
 
 # Email user
-'mailnologin' => 'à¨\95à©\8bà¨\88 à¨­à©\87à¨\9cਣ à¨\90ਡਰà©\88ੱਸ ਨਹੀਂ',
-'mailnologintext' => 'ਦà©\82à¨\9cà©\87 à¨®à©\88à¨\82ਬਰਾà¨\82 à¨¨à©\82à©° à¨\88-ਮà©\87ਲ à¨­à©\87à¨\9cਣ à¨²à¨\88 à¨¤à©\81ਹਾਨà©\82à©° [[Special:UserLogin|ਲਾà¨\97à¨\87ਨ]] à¨¹à©\8bਣਾ à¨\85ਤà©\87 à¨\86ਪਣà©\80à¨\86à¨\82 [[Special:Preferences|ਪਸੰਦਾà¨\82]] à¨µà¨¿à¨\9a à¨\87ਕ ਸਹੀ ਈ-ਮੇਲ ਪਤਾ ਦੇਣਾ ਪਵੇਗਾ।',
+'mailnologin' => 'ਭà©\87à¨\9cਣ à¨²à¨\88 à¨\95à©\8bà¨\88 à¨ªà¨¤à¨¾ ਨਹੀਂ',
+'mailnologintext' => 'ਦà©\82à¨\9cà©\87 à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰਾà¨\82 à¨¨à©\82à©° à¨\88-ਮà©\87ਲ à¨­à©\87à¨\9cਣ à¨²à¨\88 à¨¤à©\81ਹਾਨà©\82à©° [[Special:UserLogin|ਦਾà¨\96਼ਲ]] à¨¹à©\8bਣਾ à¨ªà¨µà©\87à¨\97ਾ à¨\85ਤà©\87 à¨\86ਪਣà©\80à¨\86à¨\82 [[Special:Preferences|ਪਸੰਦਾà¨\82]] à¨µà¨¿à¨\9a à¨\87ੱਕ ਸਹੀ ਈ-ਮੇਲ ਪਤਾ ਦੇਣਾ ਪਵੇਗਾ।',
 'emailuser' => 'ਇਸ ਵਰਤੋਂਕਾਰ ਨੂੰ ਈ-ਮੇਲ ਭੇਜੋ',
 'emailuser-title-target' => 'ਇਹ {{GENDER:$1|ਯੂਜ਼ਰ}} ਨੂੰ ਈਮੇਲ ਭੇਜੋ',
 'emailuser-title-notarget' => 'ਯੂਜ਼ਰ ਨੂੰ ਈਮੇਲ',
 'emailpage' => 'ਯੂਜ਼ਰ ਨੂੰ ਈਮੇਲ ਕਰੋ',
 'defemailsubject' => '{{SITENAME}} ਈਮੇਲ',
-'usermaildisabled' => 'ਮà©\88à¨\82ਬਰ ਈ-ਮੇਲ ਬੰਦ ਹੈ',
-'usermaildisabledtext' => 'à¨\87ਸ à¨µà¨¿à¨\95à©\80 â\80\99ਤà©\87 à¨¤à©\81ਸà©\80à¨\82 à¨¦à©\82à¨\9cà©\87 à¨®à©\88à¨\82ਬਰਾਂ ਨੂੰ ਈ-ਮੇਲ ਨਹੀਂ ਭੇਜ ਸਕਦੇ',
-'noemailtitle' => 'à¨\95à©\8bà¨\88 à¨\88ਮà©\87ਲ à¨\90ਡਰà©\88ੱਸ ਨਹੀਂ',
-'noemailtext' => 'à¨\87ਸ à¨®à©\88à¨\82ਬਰ ਨੇ ਸਹੀ ਈ-ਮੇਲ ਪਤਾ ਨਹੀਂ ਦਿੱਤਾ ਹੋਇਆ।',
+'usermaildisabled' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ à¨¦à©\80 ਈ-ਮੇਲ ਬੰਦ ਹੈ',
+'usermaildisabledtext' => 'à¨\87ਸ à¨µà¨¿à¨\95à©\80 â\80\99ਤà©\87 à¨¤à©\81ਸà©\80à¨\82 à¨¦à©\82à¨\9cà©\87 à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰਾਂ ਨੂੰ ਈ-ਮੇਲ ਨਹੀਂ ਭੇਜ ਸਕਦੇ',
+'noemailtitle' => 'à¨\95à©\8bà¨\88 à¨\88ਮà©\87ਲ à¨ªà¨¤à¨¾ ਨਹੀਂ',
+'noemailtext' => 'à¨\87ਸ à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰ ਨੇ ਸਹੀ ਈ-ਮੇਲ ਪਤਾ ਨਹੀਂ ਦਿੱਤਾ ਹੋਇਆ।',
 'nowikiemailtitle' => 'ਈ-ਮੇਲ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ',
 'nowikiemailtext' => 'ਇਸ ਮੈਂਬਰ ਨੇ ਦੂਜੇ ਮੈਂਬਰਾਂ ਤੋਂ ਈ-ਮੇਲ ਨਾ ਪ੍ਰਾਪਤ ਕਰਨਾ ਚੁਣ ਰੱਖਿਆ ਹੈ।',
 'emailnotarget' => 'ਪ੍ਰਾਪਤ ਕਰਤਾ ਦਾ ਨਾ-ਮੌਜੂਦ ਜਾਂ ਗ਼ਲਤ ਮੈਂਬਰ-ਨਾਂ।',
 'emailtarget' => 'ਪ੍ਰਾਪਤ ਕਰਤਾ ਦਾ ਮੈਂਬਰ-ਨਾਂ ਦਾਖ਼ਲ ਕਰੋ',
-'emailusername' => 'ਯà©\82à¨\9c਼ਰ-ਨਾਂ:',
+'emailusername' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ ਨਾਂ:',
 'emailusernamesubmit' => 'ਭੇਜੋ',
 'email-legend' => 'ਕਿਸੇ ਦੂਜੇ {{SITENAME}} ਮੈਂਬਰ ਨੂੰ ਈ-ਮੇਲ ਭੇਜੋ',
 'emailfrom' => 'ਵਲੋਂ:',
@@ -1695,9 +1817,13 @@ to upload files.',
 'emailsenttext' => 'ਤੁਹਾਡੀ ਈਮੇਲ ਭੇਜੀ ਗਈ ਹੈ।',
 'emailuserfooter' => 'ਇਹ ਈ-ਮੇਲ $1 ਨੇ {{SITENAME}} ’ਤੇ "ਇਸ ਮੈਂਬਰ ਨੂੰ ਈ-ਮੇਲ ਭੇਜੋ" ਸਹੂਲਤ ਜ਼ਰੀਏ $2 ਨੂੰ ਭੇਜੀ ਸੀ।',
 
+# User Messenger
+'usermessage-summary' => 'ਸਿਸਟਮ ਸੁਨੇਹਾ ਛੱਡਿਆ ਜਾ ਰਿਹਾ ਹੈ।',
+'usermessage-editor' => 'ਸਿਸਟਮ ਦੂਤ',
+
 # Watchlist
 'watchlist' => 'ਨਿਗਰਾਨ-ਸੂਚੀ',
-'mywatchlist' => 'ਧਿà¨\86ਨਸà©\82à¨\9aà©\80',
+'mywatchlist' => 'ਨਿà¨\97ਰਾਨà©\80-ਲਿਸà¨\9f',
 'watchlistfor2' => '$1 $2 ਲਈ',
 'nowatchlist' => 'ਤੁਹਾਡੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚ ਕੋਈ ਚੀਜ਼ ਨਹੀਂ ਹੈ।',
 'watchlistanontext' => 'ਆਪਣੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚਲੀਆਂ ਚੀਜ਼ਾਂ ਵੇਖਣ ਜਾਂ ਸੋਧਣ ਲਈ ਮਿਹਰਬਾਨੀ ਕਰਕੇ $1।',
@@ -1708,19 +1834,18 @@ to upload files.',
 ਇਸ ਅਤੇ ਇਸਦੇ ਚਰਚਾ ਪੰਨੇ ’ਚ ਹੋਈਆਂ ਬਦਲੀਆਂ ਓਥੇ ਵਖਾਈ ਦੇਣਗੀਆਂ ਅਤੇ ਵੇਖਣ ਦੀ ਸੌਖ ਲਈ [[Special:RecentChanges|ਹਾਲ ਹੀ ’ਚ ਹੋਈਆਂ ਬਦਲੀਆਂ]] ਵਿੱਚ ਇਹ ਪੰਨਾ '''ਗੂੜ੍ਹਾ''' ਦਿਖਾਈ ਦੇਵੇਗਾ।",
 'removewatch' => 'ਨਿਗਰਾਨੀ-ਲਿਸਟ ’ਚੋਂ ਹਟਾਓ',
 'removedwatchtext' => 'ਸਫ਼ਾ "[[:$1]]" [[Special:Watchlist|ਤੁਹਾਡੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ]] ’ਚੋਂ ਹਟ ਚੁੱਕਾ ਹੈ।',
-'watch' => 'ਧਿà¨\86ਨ ਰੱਖੋ',
-'watchthispage' => 'ਇਹ ਪੇਜ ਵਾਚ ਕਰੋ',
-'unwatch' => 'ਧਿà¨\86ਨ ਹਟਾਓ',
+'watch' => 'ਨਿà¨\97ਰਾਨà©\80 ਰੱਖੋ',
+'watchthispage' => "ਇਸ ਸਫ਼ੇ 'ਤੇ ਨਿਗਰਾਨੀ ਰੱਖੋ",
+'unwatch' => 'ਨਿà¨\97ਰਾਨà©\80 ਹਟਾਓ',
 'unwatchthispage' => 'ਨਜ਼ਰ ਰੱਖਣੀ ਬੰਦ ਕਰੋ',
 'notanarticle' => 'ਕੋਈ ਸਮੱਗਰੀ ਸਫ਼ਾ ਨਹੀਂ ਹੈ',
 'notvisiblerev' => 'ਇੱਕ ਵੱਖਰੇ ਮੈਂਬਰ ਦੀ ਬਣਾਈ ਆਖ਼ਰੀ ਰੀਵਿਜ਼ਨ ਮਿਟਾਈ ਜਾ ਚੁੱਕੀ ਹੈ',
-'watchnochange' => 'ਵਖਾਏ ਜਾ ਰਹੇ ਸਮੇਂ ਅੰਦਰ ਤੁਹਾਡੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚਲਾ ਕੋਈ ਵੀ ਸਫ਼ਾ ਸੋਧਿਆ ਨਹੀਂ ਗਿਆ।',
-'watchlist-details' => 'ਚਰਚਾ ਪੰਨੇ ਨਾ ਗਿਣਦੇ ਹੋਏ, ਤੁਹਾਡੀ ਧਿਆਨਸੂਚੀ ਵਿੱਚ{{PLURAL:$1|$1 ਪੰਨਾ ਹੈ|$1 ਪੰਨੇ ਹਨ}}।',
+'watchlist-details' => 'ਗੱਲ-ਬਾਤ ਸਫ਼ੇ ਨਾ ਗਿਣਦੇ ਹੋਏ, ਤੁਹਾਡੀ ਨਿਗਰਾਨੀ-ਸੂਚੀ ਵਿਚ{{PLURAL:$1|$1 ਸਫ਼ਾ ਹੈ|$1 ਸਫ਼ੇ ਹਨ}}।',
 'watchlistcontains' => 'ਤੁਹਾਡੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚ $1 {{PLURAL:$1|ਸਫ਼ਾ ਹੈ|ਸਫ਼ੇ ਹਨ}}।',
 'wlnote' => "$3, $4 ਮੁਤਾਬਕ ਆਖ਼ਰੀ {{PLURAL:$2|ਘੰਟੇ|'''$2''' ਘੰਟਿਆਂ}} ਵਿਚ {{PLURAL:
 $1|ਤਬਦੀਲੀ ਹੋਈ|'''$1''' ਤਬਦੀਲੀਆਂ ਹੋਈਆਂ}}, ਹੇਠਾਂ ਵੇਖੋ।",
-'wlshowlast' => 'ਪਿੱà¨\9bਲà©\87 $1 à¨\98à©°à¨\9fà©\87 $2 à¨¦à¨¿à¨¨ $3 à¨µà©\87à¨\96à©\8b',
-'watchlist-options' => 'ਧਿà¨\86ਨਸà©\82à¨\9aà©\80 à¨µà¨¿à¨\95ਲਪ',
+'wlshowlast' => 'ਪਿà¨\9bਲà©\87 $1 à¨\98à©°à¨\9fà©\87 $2 à¨¦à¨¿à¨¨ $3 à¨µà¨\96ਾà¨\93',
+'watchlist-options' => 'ਨਿà¨\97ਰਾਨà©\80-ਲਿਸà¨\9f à¨¦à©\80à¨\86à¨\82 à¨\9aà©\8bਣਾà¨\82',
 
 # Displayed when you click the "watch" button and it is in the process of watching
 'watching' => 'ਨਿਗ੍ਹਾ (ਵਾਚ) ਰੱਖੀ ਜਾ ਰਹੀ ਹੈ...',
@@ -1729,7 +1854,7 @@ $1|ਤਬਦੀਲੀ ਹੋਈ|'''$1''' ਤਬਦੀਲੀਆਂ ਹੋਈਆ
 'enotif_impersonal_salutation' => '{{SITENAME}} ਯੂਜ਼ਰ',
 'enotif_lastvisited' => 'ਤੁਹਾਡੀ ਆਖ਼ਰੀ ਆਮਦ ਤੋਂ ਲੈ ਕੇ ਹੋਈਆਂ ਤਬਦੀਲੀਆਂ ਵੇਖਣ ਲਈ $1 ਵੇਖੋ।',
 'enotif_lastdiff' => 'ਇਸ ਤਬਦੀਲੀ ਨੂੰ ਵੇਖਣ ਲਈ $1 ਵੇਖੋ।',
-'enotif_anon_editor' => 'à¨\85à¨\97ਿà¨\86ਤ à¨¯à©\82à¨\9c਼ਰ $1',
+'enotif_anon_editor' => 'à¨\97à©\81ਮਨਾਮ à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰ $1',
 'created' => 'ਬਣਾਇਆ',
 'changed' => 'ਬਦਲਿਆ',
 
@@ -1748,7 +1873,8 @@ $1|ਤਬਦੀਲੀ ਹੋਈ|'''$1''' ਤਬਦੀਲੀਆਂ ਹੋਈਆ
 ਤਾਜ਼ੀਆਂ ਮਿਟਾਉਣਾਂ ਦੇ ਰਿਕਾਰਡ ਲਈ $2 ਵੇਖੋ।',
 'dellogpage' => 'ਹਟਾਉਣ ਦਾ ਚਿੱਠਾ',
 'dellogpagetext' => 'ਹੇਠਾਂ ਸਭ ਤੋਂ ਤਾਜ਼ਾ ਮਿਟਾਉਣਾਂ ਦੀ ਲਿਸਟ ਹੈ।',
-'deletionlog' => 'ਮਿਟਾਉਣਾਂ ਦਾ ਚਿੱਠਾ',
+'deletionlog' => 'ਮਿਟਾਉਣ ਦਾ ਚਿੱਠਾ',
+'reverted' => 'ਪੁਰਾਣੀ ਰੀਵਿਜਨ ਵੱਲ ਉਲਟਾਇਆ ਗਿਆ',
 'deletecomment' => 'ਕਾਰਨ:',
 'deleteotherreason' => 'ਹੋਰ/ਵਾਧੂ ਕਾਰਨ:',
 'deletereasonotherlist' => 'ਹੋਰ ਕਾਰਨ',
@@ -1767,6 +1893,9 @@ $1|ਤਬਦੀਲੀ ਹੋਈ|'''$1''' ਤਬਦੀਲੀਆਂ ਹੋਈਆ
 'rollbackfailed' => 'ਰੋਲਬੈਕ ਫੇਲ੍ਹ',
 'editcomment' => "ਸੋਧ ਸਾਰ ਸੀ: \"''\$1''\"",
 
+# Edit tokens
+'sessionfailure-title' => 'ਇਜਲਾਸ ਫੇਲ੍ਹ',
+
 # Protect
 'protectlogpage' => 'ਸੁਰੱਖਿਆ ਚਿੱਠਾ',
 'protectedarticle' => '"[[$1]]" ਸੁਰੱਖਿਅਤ ਕੀਤਾ',
@@ -1775,19 +1904,20 @@ $1|ਤਬਦੀਲੀ ਹੋਈ|'''$1''' ਤਬਦੀਲੀਆਂ ਹੋਈਆ
 'protect-title' => '"$1" ਦੀ ਸੁਰੱਖਿਆ ਬਦਲੋ',
 'protect-title-notallowed' => '"$1" ਦਾ ਸੁਰੱਖਿਆ ਦਰਜਾ ਵੇਖੋ',
 'prot_1movedto2' => '[[$1]] ਨੂੰ [[$2]] ’ਤੇ ਭੇਜਿਆ',
-'protect-badnamespace-title' => 'ਨਾ-ਸà©\81ਰੱà¨\96ਿà¨\86ਯà©\8bà¨\97 à¨¥à¨¾à¨\82-ਨਾਮ',
+'protect-badnamespace-title' => 'à¨\97਼à©\88ਰ-ਸà©\81ਰੱà¨\96ਿà¨\86ਯà©\8bà¨\97 à¨¨à¨¾à¨\82-ਥਾà¨\82',
 'protect-badnamespace-text' => 'ਇਸ ਥਾਂ-ਨਾਮ ਵਿਚਲੇ ਸਫ਼ੇ ਸੁਰੱਖਿਅਤ ਨਹੀਂ ਕੀਤੇ ਜਾ ਸਕਦੇ।',
-'protect-legend' => 'ਸà©\81ਰੱà¨\96ਿà¨\86 à¨ªà©\81ਸ਼à¨\9fੀ',
+'protect-legend' => 'ਸà©\81ਰੱà¨\96ਿà¨\86 à¨¤à¨¸à¨¦à©\80à¨\95ੀ',
 'protectcomment' => 'ਕਾਰਨ:',
 'protectexpiry' => 'ਮਿਆਦ:',
 'protect_expiry_invalid' => 'ਖ਼ਤਮ ਹੋਣ ਦਾ ਸਮਾਂ ਗ਼ਲਤ ਹੈ।',
 'protect_expiry_old' => 'ਖ਼ਤਮ ਹੋਣ ਦਾ ਸਮਾਂ ਗੁਜ਼ਰਿਆ ਹੋਇਆ ਹੈ।',
 'protect-text' => "ਇੱਥੇ ਸ਼ਾਇਦ ਤੁਸੀਂ ਸਫ਼ਾ '''$1''' ਦਾ ਸੁਰੱਖਿਆ ਦਰਜਾ ਵੇਖ ਅਤੇ ਬਦਲ ਸਕਦੇ ਹੋ।",
-'protect-default' => 'ਸਭ à¨¯à©\82à¨\9c਼ਰ ਮਨਜ਼ੂਰ',
-'protect-fallback' => '"$1" ਅਧਿਕਾਰ ਲੋੜੀਦਾ ਹੈ',
-'protect-level-autoconfirmed' => 'ਨਵà©\87à¨\82 à¨¤à©\87 à¨\97à©\88ਰ-ਰà¨\9cਿਸà¨\9fਰ à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰਾà¨\82 à¨\89ੱਤà©\87 à¨ªà¨¾à¨¬à©°à¨¦à©\80',
-'protect-level-sysop' => 'à¨\95à©\87ਵਲ à¨ªà¨°à¨¸à¨¼à¨¾à¨¸à¨¼à¨\95 à¨¹à©\80 à¨®à¨¨à¨\9c਼à©\82ਰ',
+'protect-default' => 'ਸਭ à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰ ਮਨਜ਼ੂਰ',
+'protect-fallback' => 'ਸਿਰਫ਼ "$1" ਹੱਕਾਂ ਵਾਲੇ ਵਰਤੋਂਕਾਰਾਂ ਨੂੰ ਇਜਾਜ਼ਤ ਦਿਓ',
+'protect-level-autoconfirmed' => 'ਸਿਰ਼ਫ à¨\96਼à©\81ਦ-ਤਸਦà©\80à¨\95ਸ਼à©\81ਦਾ à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰਾà¨\82 à¨¨à©\82à©° à¨\87à¨\9cਾà¨\9c਼ਤ à¨¦à¨¿à¨\93',
+'protect-level-sysop' => 'à¨\95à©\87ਵਲ à¨ªà©\8dਰਸ਼ਾਸà¨\95ਾà¨\82 à¨¨à©\82à©° à¨\87à¨\9cਾà¨\9c਼ਤ à¨¦à¨¿à¨\93',
 'protect-summary-cascade' => 'ਕਾਸਕੇਡਿੰਗ',
+'protect-expiry-indefinite' => 'ਅਣਮਿੱਥਿਆ',
 'protect-cascade' => 'ਇਸ ਸਫ਼ੇ ਵਿਚ ਸ਼ਾਮਲ ਸਫ਼ੇ ਸੁਰੱਖਿਅਤ ਕਰੋ (ਕਾਸਕੇਡਿੰਗ ਸੁਰੱਖਿਆ)',
 'protect-cantedit' => 'ਤੁਸੀਂ ਇਸ ਸਫ਼ੇ ਦਾ ਸੁਰੱਖਿਆ ਦਰਜਾ ਨਹੀਂ ਬਦਲ ਸਕਦੇ ਕਿਉਂਕਿ ਤੁਹਾਨੂੰ ਇਸਨੂੰ ਸੋਧਣ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।',
 'protect-othertime' => 'ਹੋਰ ਸਮਾਂ:',
@@ -1825,75 +1955,87 @@ $1|ਤਬਦੀਲੀ ਹੋਈ|'''$1''' ਤਬਦੀਲੀਆਂ ਹੋਈਆ
 'undeleteviewlink' => 'ਵੇਖੋ',
 'undeletereset' => 'ਮੁੜ-ਸੈੱਟ',
 'undeletecomment' => 'ਕਾਰਨ:',
-'undelete-header' => 'ਤਾਜ਼ੇ ਹਟਾਏ ਗਏ ਪੰਨਿਆਂ ਲਈ [[Special:Log/
-delete|ਹਟਾਉਣ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
+'undelete-header' => 'ਤਾਜ਼ੇ ਹਟਾਏ ਗਏ ਪੰਨਿਆਂ ਲਈ  [[Special:Log/delete|ਹਟਾਇਆ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'undelete-search-title' => 'ਮਿਟਾਏ ਹੋਏ ਸਫ਼ੇ ਖੋਜੋ',
 'undelete-search-box' => 'ਮਿਟਾਏ ਹੋਏ ਸਫ਼ੇ ਖੋਜੋ',
+'undelete-search-prefix' => 'ਇਸ ਨਾਲ਼ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੇ ਸਫ਼ੇ ਵਿਖਾਓ:',
 'undelete-search-submit' => 'ਖੋਜ',
+'undelete-error' => 'ਸਫ਼ੇ ਨੂੰ ਅਣ-ਮਿਟਿਆ ਕਰਨ ਵਿਚ ਗ਼ਲਤੀ',
 'undelete-show-file-submit' => 'ਹਾਂ',
 
 # Namespace form on various pages
-'namespace' => 'ਥਾà¨\82-ਨਾਮ:',
+'namespace' => 'ਨਾà¨\82-ਥਾà¨\82:',
 'invert' => 'ਉਲਟ ਚੋਣ',
+'namespace_association' => 'ਸਬੰਧਤ ਨਾਂ-ਥਾਂ',
 'blanknamespace' => '(ਮੁੱਖ)',
 
 # Contributions
 'contributions' => '{{GENDER:$1|ਮੈਂਬਰ}} ਯੋਗਦਾਨ',
-'contributions-title' => '$1 à¨¦à©\87 ਯੋਗਦਾਨ',
+'contributions-title' => '$1 à¨²à¨\88 à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰ ਯੋਗਦਾਨ',
 'mycontris' => 'ਯੋਗਦਾਨ',
 'contribsub2' => '$1 ($2) ਲਈ',
-'uctop' => '(à¨\9fà©\80ਸà©\80)',
+'uctop' => '(ਮà©\8cà¨\9cà©\82ਦਾ)',
 'month' => 'ਇਸ (ਅਤੇ ਪਿਛਲੇ) ਮਹੀਨੇ ਤੋਂ :',
 'year' => 'ਇਸ (ਅਤੇ ਪਿਛਲੇ) ਸਾਲ ਤੋਂ :',
 
 'sp-contributions-newbies' => 'ਸਿਰਫ਼ ਨਵੇਂ ਵਰਤੋਂਕਾਰਾਂ ਦੇ ਯੋਗਦਾਨ ਵਖਾਓ',
 'sp-contributions-newbies-sub' => 'ਨਵੇਂ ਖਾਤਿਆਂ ਲਈ',
 'sp-contributions-blocklog' => 'ਪਾਬੰਦੀ ਚਿੱਠਾ',
+'sp-contributions-deleted' => 'ਮਿਟਾਏ ਗਏ ਵਰਤੋਂਕਾਰ ਯੋਗਦਾਨ',
 'sp-contributions-uploads' => 'ਅੱਪਲੋਡ',
-'sp-contributions-logs' => 'ਲਾਗ',
-'sp-contributions-talk' => 'ਚਰਚਾ',
-'sp-contributions-blocked-notice' => 'ਇਹ ਮੈਂਬਰ ਇਸ ਵੇਲ਼ੇ ਪਾਬੰਦੀਸ਼ੁਦਾ ਹੈ।
+'sp-contributions-logs' => 'ਚਿੱਠੇ',
+'sp-contributions-talk' => 'ਗੱਲ-ਬਾਤ',
+'sp-contributions-userrights' => 'ਵਰਤੋਂਕਾਰ ਦੇ ਹੱਕਾਂ ਦਾ ਪ੍ਰਬੰਧ',
+'sp-contributions-blocked-notice' => 'ਇਹ ਵਰਤੋਂਕਾਰ ਇਸ ਵੇਲ਼ੇ ਪਾਬੰਦੀਸ਼ੁਦਾ ਹੈ।
 ਪਾਬੰਦੀ ਚਿੱਠੇ ਦਾ ਤਾਜ਼ਾ ਦਾਖ਼ਲਾ ਹਵਾਲੇ ਲਈ ਹੇਠਾਂ ਦਿੱਤਾ ਗਿਆ ਹੈ:',
 'sp-contributions-blocked-notice-anon' => 'ਇਹ IP ਪਤਾ ਇਸ ਵੇਲ਼ੇ ਪਾਬੰਦੀਸ਼ੁਦਾ ਹੈ।
 ਪਾਬੰਦੀ ਚਿੱਠੇ ਦਾ ਤਾਜ਼ਾ ਦਾਖ਼ਲਾ ਹਵਾਲੇ ਲਈ ਹੇਠਾਂ ਦਿੱਤਾ ਗਿਆ ਹੈ:',
 'sp-contributions-search' => 'ਯੋਗਦਾਨ ਖੋਜੋ',
 'sp-contributions-username' => 'IP ਪਤਾ ਜਾਂ ਵਰਤੋਂਕਾਰਨਾਮ:',
-'sp-contributions-toponly' => 'à¨\95à©\87ਵਲ à¨\89ਨà©\8dਹਾà¨\82 à¨¸à©°à¨ªà¨¾à¨¦à¨¨à¨¾à¨\82 à¨¨à©\82à©° à¨µà¨\96ਾà¨\93 à¨\9cà©\8b à¨¨à¨µà©\80ਨਤਮ à¨¸à©°à¨¸à¨¼à©\8bਧਨ ਹਨ',
+'sp-contributions-toponly' => 'ਸਿਰਫ à¨\89ਹ à¨¸à©\8bਧਾà¨\82 à¨µà¨¿à¨\96ਾà¨\93 à¨\9cà©\8b à¨¸à¨­ à¨¤à©\8bà¨\82 à¨¤à¨¾à¨\9c਼à©\80à¨\86à¨\82 à¨°à¨¿à¨µà©\80à¨\9cਨਾà¨\82 ਹਨ',
 'sp-contributions-submit' => 'ਖੋਜ',
 
 # What links here
-'whatlinkshere' => 'à¨\95ਿਹà©\9cà©\87 (ਪੰਨà©\87) à¨\87ੱਥà©\87 à¨\9cà©\8bà©\9cਦà©\87 à¨¹à¨¨',
-'whatlinkshere-title' => '$1 à¨¨à¨¾à¨² à¨\9cà©\8bà©\9cਨ à¨µà¨¾à¨²à©\87 à¨ªà©°à¨¨ੇ',
-'whatlinkshere-page' => 'ਪੰਨਾ:',
+'whatlinkshere' => 'à¨\87ੱਥà©\87 à¨\95à©\80 à¨\86 à¨\95à©\87 à¨\9cà©\81à©\9cਦਾ à¨¹à©\88',
+'whatlinkshere-title' => '$1 à¨¨à¨¾à¨² à¨\9cà©\8bà©\9cਨ à¨µà¨¾à¨²à©\87 à¨¸à¨«à¨¼ੇ',
+'whatlinkshere-page' => 'ਸਫ਼ਾ:',
 'linkshere' => "ਇਹ ਪੰਨੇ '''[[:$1]]''' ਨਾਲ ਜੋੜਦੇ ਹਨ:",
-'nolinkshere' => "à¨\95à©\8bà¨\88 à¨µà©\80 à¨ªà©°à¨¨ਾ '''[[:$1]]''' ਨਾਲ ਨਹੀਂ ਜੋੜਦਾ।",
-'isredirect' => 'ਰà©\80ਡਿਰà©\88à¨\95à¨\9f à¨ªà©°à¨¨ਾ',
+'nolinkshere' => "à¨\95à©\8bà¨\88 à¨µà©\80 à¨¸à¨«à¨¼ਾ '''[[:$1]]''' ਨਾਲ ਨਹੀਂ ਜੋੜਦਾ।",
+'isredirect' => 'ਰà©\80ਡਿਰà©\88à¨\95à¨\9f à¨¸à¨«à¨¼ਾ',
 'istemplate' => 'ਟਾਕਰਾ ਕਰੋ',
-'isimage' => 'ਫਾà¨\88ਲ à¨²à¨¿à©°à¨\95',
+'isimage' => 'ਫ਼ਾà¨\88ਲ à¨\95à©\9cà©\80',
 'whatlinkshere-prev' => '{{PLURAL:$1|ਪਿਛਲਾ|ਪਿਛਲੇ $1}}',
 'whatlinkshere-next' => '{{PLURAL:$1|ਅਗਲਾ|ਅਗਲੇ $1}}',
-'whatlinkshere-links' => 'â\86\90 à¨²à¨¿à©°à¨\95',
+'whatlinkshere-links' => 'â\86\90 à¨\95à©\9cà©\80à¨\86à¨\82',
 'whatlinkshere-hideredirs' => 'ਅਸਿੱਧੇ ਰਾਹ $1',
 'whatlinkshere-hidetrans' => '$1 ਇੱਥੇ ਕੀ ਕੀ ਜੁੜਦਾ ਹੈ।',
 'whatlinkshere-hidelinks' => '$1 ਲਿੰਕ',
-'whatlinkshere-hideimages' => 'ਫਾਈਲ ਲਿੰਕ $1',
+'whatlinkshere-hideimages' => 'ਫ਼ਾà¨\88ਲ à¨²à¨¿à©°à¨\95 $1',
 'whatlinkshere-filters' => 'ਫਿਲਟਰ',
 
 # Block/unblock
-'blockip' => 'ਅਵਰੋਧਤ ਕਰੋ',
+'block' => "ਵਰਤੋਂਕਾਰ 'ਤੇ ਪਾਬੰਦੀ ਲਾਓ",
+'unblock' => "ਵਰਤੋਂਕਾਰ 'ਤੇ ਲੱਗੀ ਪਾਬੰਦੀ ਹਟਾਓ",
+'blockip' => 'ਪਾਬੰਦੀਸ਼ੁਦਾ ਵਰਤੋਂਕਾਰ',
+'blockip-title' => "ਵਰਤੋਂਕਾਰ 'ਤੇ ਪਾਬੰਦੀ ਲਾਓ",
+'blockip-legend' => "ਵਰਤੋਂਕਾਰ 'ਤੇ ਪਾਬੰਦੀ ਲਾਓ",
 'ipadressorusername' => 'IP ਐਡਰੈਸ ਜਾਂ ਯੂਜ਼ਰ ਨਾਂ:',
 'ipbexpiry' => 'ਮਿਆਦ:',
 'ipbreason' => 'ਕਾਰਨ:',
 'ipbreasonotherlist' => 'ਹੋਰ ਕਾਰਨ',
+'ipbcreateaccount' => "ਖਾਤਾ ਬਣਾਉਣ 'ਤੇ ਰੋਕ ਲਾਓ",
+'ipbemailban' => 'ਵਰਤੋਂਕਾਰ ਉੱਤੇ ਈਮੇਲ ਭੇਜਣ ਦੀ ਰੋਕ ਲਾਓ',
 'ipbsubmit' => 'ਇਹ ਯੂਜ਼ਰ ਲਈ ਪਾਬੰਦੀ',
 'ipbother' => 'ਹੋਰ ਟਾਈਮ:',
-'ipboptions' => '2 ਘੰਟੇ:2 hours, 1 ਦਿਨ:1 day, 3 ਦਿਨ:3 days, 1 ਹਫ਼ਤਾ:1 week, 2 ਹਫ਼ਤੇ:2 weeks, 2 ਮਹੀਨਾ:1 month, 3 ਮਹੀਨੇ:3 months, 6 ਮਹੀਨੇ:6 months, 1 ਸਾਲ:1 year, ਹਮੇਸ਼ਾ ਲਈ:infinite',
+'ipboptions' => '2 ਘੰਟੇ:2 hours, 1 ਦਿਨ:1 day, 3 ਦਿਨ:3 days, 1 ਹਫ਼ਤਾ:1 week, 2 ਹਫ਼ਤੇ:2 weeks, 2 ਮਹੀਨਾ:1 month, 3 ਮਹੀਨੇ:3 months, 6 ਮਹੀਨੇ:6 months, 1 ਸਾਲ:1 year, ਹਮੇਸ਼ਾ ਲਈ:infinite',
 'ipbotheroption' => 'ਹੋਰ',
 'ipbotherreason' => 'ਹੋਰ/ਆਮ ਕਾਰਨ:',
-'ipbwatchuser' => 'ਇਸ ਮੈਂਬਰ ਦੇ ਮੈਂਬਰ ਅਤੇ ਗੱਲ-ਬਾਤ ਸਫ਼ਿਆਂ ਤੇ ਨਜ਼ਰ ਰੱਖੋ',
+'ipbhidename' => 'ਸੋਧਾਂ ਅਤੇ ਕੜੀਆਂ ਤੋਂ ਵਰਤੋਂਕਾਰ ਦਾ ਨਾਂ ਲੁਕਾਓ',
+'ipbwatchuser' => 'ਇਸ ਵਰਤੋਂਕਾਰ ਦੇ ਵਰਤੋਂਕਾਰ ਅਤੇ ਗੱਲ-ਬਾਤ ਸਫ਼ਿਆਂ ਤੇ ਨਜ਼ਰ ਰੱਖੋ',
 'ipb-confirm' => 'ਪਾਬੰਦੀ ਤਸਦੀਕ ਕਰੋ',
 'badipaddress' => 'ਗਲਤ IP ਐਡਰੈੱਸ',
 'blockipsuccesssub' => 'ਪਾਬੰਦੀ ਕਾਮਯਾਬ',
+'ipb-blockingself' => "ਤੁਸੀਂ ਆਪਣੇ ਆਪ 'ਤੇ ਪਾਬੰਦੀ ਲਾਉਣ ਲੱਗੇ ਹੋ! ਕੀ ਤੁਸੀਂ ਸੱਚੀਂ ਇਹ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?",
 'ipb-edit-dropdown' => 'ਪਾਬੰਦੀ ਲਾਉਣ ਦੇ ਕਾਰਨ ਸੋਧੋ',
 'ipb-unblock-addr' => '$1 ਤੋਂ ਪਾਬੰਦੀ ਹਟਾਓ',
 'ipb-unblock' => 'ਇੱਕ ਯੂਜ਼ਰ ਨਾਂ ਜਾਂ IP ਐਡਰੈੱਸ ਅਣ-ਬਲਾਕ ਕਰੋ',
@@ -1911,20 +2053,24 @@ delete|ਹਟਾਉਣ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'blocklist-tempblocks' => 'ਆਰਜ਼ੀ ਪਾਬੰਦੀਆਂ ਲੁਕਾਓ',
 'blocklist-timestamp' => 'ਵਕਤ ਦੀ ਮੋਹਰ',
 'blocklist-target' => 'ਨਿਸ਼ਾਨਾ',
-'blocklist-by' => 'ਪਾਬੰਦੀ ਲਾਉਣ ਵਾਲ਼ਾ ਐਡਮਿਨ',
+'blocklist-expiry' => 'ਮਿਆਦ',
+'blocklist-by' => 'ਪਾਬੰਦੀ ਲਾਉਣ ਵਾਲ਼ਾ ਪ੍ਰਸ਼ਾਸਕ',
+'blocklist-params' => "ਮਾਪਦੰਡਾਂ 'ਤੇ ਪਾਬੰਦੀ ਲਾਓ",
 'blocklist-reason' => 'ਕਾਰਨ',
 'ipblocklist-submit' => 'ਖੋਜ',
+'ipblocklist-localblock' => 'ਸਥਾਨਕ ਪਾਬੰਦੀ',
 'ipblocklist-otherblocks' => 'ਹੋਰ {{PLURAL:$1|ਪਾਬੰਦੀ|ਪਾਬੰਦੀਆਂ}}',
 'infiniteblock' => 'ਬੇਅੰਤ',
 'expiringblock' => 'ਮਿਆਦ ਖ਼ਤਮ $1 ਨੂੰ $2 ’ਤੇ',
 'anononlyblock' => 'anon. ਹੀ',
+'noautoblockblock' => 'ਖ਼ੁਦ ਪਾਬੰਦੀ ਲਾਉਣੀ ਬੰਦ ਕੀਤੀ ਹੋਈ ਹੈ',
 'createaccountblock' => 'ਖਾਤਾ ਬਣਾਉਣਾ ’ਤੇ ਪਾਬੰਦੀ ਹੈ',
 'emailblock' => 'ਈਮੇਲ ਬਲਾਕ ਹੈ',
 'blocklist-nousertalk' => 'ਆਪਣਾ ਗੱਲ-ਬਾਤ ਸਫ਼ਾ ਨਹੀਂ ਸੋਧ ਸਕਦਾ',
 'ipblocklist-empty' => 'ਪਾਬੰਦੀ ਲਿਸਟ ਖ਼ਾਲੀ ਹੈ।',
 'ipblocklist-no-results' => 'ਦਿੱਤੇ ਗਏ IP ਪਤੇ ਜਾਂ ਮੈਂਬਰ-ਨਾਂ ’ਤੇ ਪਾਬੰਦੀ ਨਹੀਂ ਹੈ।',
 'blocklink' => 'ਪਾਬੰਦੀ ਲਾਓ',
-'unblocklink' => 'ਪਾਬੰਦà©\80 à¨°à©±à¨¦ à¨\95ਰà©\8b',
+'unblocklink' => 'ਪਾਬੰਦà©\80 à¨¹à¨\9fਾà¨\93',
 'change-blocklink' => 'ਪਾਬੰਦੀ ਬਦਲੋ',
 'contribslink' => 'ਯੋਗਦਾਨ',
 'emaillink' => 'ਈ-ਮੇਲ ਭੇਜੋ',
@@ -1936,7 +2082,7 @@ delete|ਹਟਾਉਣ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'block-log-flags-anononly' => 'ਸਿਰਫ਼ ਗੁੰਮਨਾਮ ਮੈਂਬਰ',
 'block-log-flags-nocreate' => 'ਖਾਤਾ ਬਣਾਉਣ ’ਤੇ ਪਾਬੰਦੀ ਹੈ',
 'block-log-flags-nousertalk' => 'ਆਪਣਾ ਗੱਲ-ਬਾਤ ਸਫ਼ਾ ਨਹੀਂ ਸੋਧ ਸਕਦਾ',
-'block-log-flags-hiddenname' => 'ਮà©\88à¨\82ਬਰ-ਨਾà¨\82 à¨²à©\81à¨\95ਾਇਆ',
+'block-log-flags-hiddenname' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ à¨¨à¨¾à¨\82 à¨²à©\81à¨\95ਾà¨\87à¨\86 à¨¹à©\8bਇਆ',
 'ipb_expiry_invalid' => 'ਖ਼ਤਮ ਹੋਣ ਦਾ ਸਮਾਂ ਗ਼ਲਤ।',
 'ipb_already_blocked' => '"$1" ਪਹਿਲਾਂ ਹੀ ਪਾਬੰਦੀਸ਼ੁਦਾ ਹੈ',
 'ipb-needreblock' => '$1 ਪਹਿਲਾਂ ਹੀ ਪਾਬੰਦੀਸ਼ੁਦਾ ਹੈ। ਕੀ ਤੁਸੀਂ ਸੈਟਿੰਗਾਂ ਬਦਲਣੀਆਂ ਚਾਹੁੰਦੇ ਹੋ?',
@@ -1953,10 +2099,13 @@ delete|ਹਟਾਉਣ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'lockdb' => 'ਡਾਟਾਬੇਸ ਲਾਕ',
 
 # Move page
-'move-page-legend' => 'ਪੰਨਾ ਸਥਾਨਾਂਤਰਨ',
+'move-page' => '$1 ਭੇਜੋ',
+'move-page-legend' => 'ਸਫ਼ਾ ਭੇਜੋ',
 'movearticle' => 'ਸਫ਼ਾ ਭੇਜੋ:',
 'movenologin' => 'ਲਾਗਇਨ ਨਹੀਂ ਹੋ',
 'movenologintext' => 'ਇਕ ਸਫ਼ੇ ਦਾ ਸਿਰਲੇਖ ਬਦਲਣ ਲਈ ਤੁਸੀਂ ਰਜਿਸਟਰਡ ਮੈਂਬਰ ਹੋਣੇ ਚਾਹੀਦੇ ਹੋ ਅਤੇ [[Special:UserLogin|ਲਾਗਇਨ]] ਕੀਤਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।',
+'movenotallowedfile' => 'ਤੁਹਾਨੂੰ ਫ਼ਾਈਲਾਂ ਭੇਜਣ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।',
+'cant-move-user-page' => 'ਤੁਹਾਨੂੰ ਵਰਤੋਂਕਾਰ ਸਫ਼ਿਆਂ (ਉਪ-ਸਫ਼ਿਆਂ ਤੋਂ ਛੁੱਟ) ਨੂੰ ਭੇਜਣ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।',
 'newtitle' => 'ਨਵੇਂ ਟਾਈਟਲ ਲਈ:',
 'move-watch' => 'ਸਰੋਤ ਤੇ ਟਾਰਗੇਟ ਸਫ਼ੇ ਉੱਤੇ ਨਿਗਰਾਨੀ ਰੱਖੋ',
 'movepagebtn' => 'ਸਫ਼ਾ ਭੇਜੋ',
@@ -1965,117 +2114,141 @@ delete|ਹਟਾਉਣ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'movepage-moved-redirect' => 'ਇੱਕ ਰੀਡਿਰੈਕਟ ਬਣਾ ਦਿੱਤਾ ਗਿਆ।',
 'articleexists' => 'ਇਸ ਨਾਮ ਦਾ ਸਫ਼ਾ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ ਜਾਂ ਤੁਹਾਡਾ ਚੁਣਿਆ ਹੋਇਆ ਨਾਮ ਸਹੀ ਨਹੀਂ ਹੈ।
 ਮਿਹਰਬਾਨੀ ਕਰਕੇ ਕੋਈ ਹੋਰ ਨਾਮ ਚੁਣੋ।',
-'movedto' => 'ਮੂਵ ਕੀਤਾ',
+'movedto' => 'ਭੇਜਿਆ',
+'movetalk' => 'ਨਾਲ਼ ਲੱਗਦਾ ਗੱਲ-ਬਾਤ ਸਫ਼ਾ ਭੇਜੋ',
 'movepage-page-moved' => 'ਸਫ਼ਾ $1 ਨੂੰ $2 ’ਤੇ ਭੇਜਿਆ ਜਾ ਚੁੱਕਾ ਹੈ।',
-'movelogpage' => 'ਸਥਾਨਾਂਤਰਣ ਦਾ ਚਿੱਠਾ',
+'movelogpage' => 'ਸਿਰਲੇਖ ਬਦਲੀ ਦਾ ਚਿੱਠਾ',
+'movesubpage' => '{{PLURAL:$1|ਉਪਸਫ਼ਾ|ਉਪਸਫ਼ੇ}}',
+'movenosubpage' => 'ਇਸ ਸਫ਼ੇ ਵਿਚ ਕੋਈ ਉਪਸਫ਼ੇ ਨਹੀਂ ਹਨ।',
 'movereason' => 'ਕਾਰਨ:',
 'revertmove' => 'ਉਲਟਾਓ',
 'delete_and_move' => 'ਹਟਾਓ ਅਤੇ ਮੂਵ ਕਰੋ',
 'delete_and_move_confirm' => 'ਹਾਂ, ਸਫ਼ਾ ਮਿਟਾ ਦੇਵੋ',
+'immobile-source-page' => 'ਇਹ ਸਫ਼ਾ ਭੇਜਣ ਯੋਗ ਨਹੀਂ ਹੈ।',
 'move-leave-redirect' => 'ਪਿੱਛੇ ਇਕ ਰੀਡਿਰੈਕਟ ਛੱਡੋ',
 
 # Export
-'export' => 'ਪੰਨੇ ਐਕਸਪੋਰਟ ਕਰੋ',
+'export' => 'ਸਫ਼ੇ ਨਿਰਯਾਤ ਕਰੋ',
+'exportall' => 'ਸਾਰੇ ਸਫ਼ਿਆਂ ਦਾ ਨਿਰਯਾਤ ਕਰੋ',
 'exportcuronly' => 'ਸਿਰਫ਼ ਮੌਜੂਦਾ ਰੀਵਿਜ਼ਨ ਸ਼ਾਮਲ ਕਰੋ, ਸਾਰਾ ਅਤੀਤ ਨਹੀਂ',
 'export-submit' => 'ਐਕਸਪੋਰਟ',
-'export-addcat' => 'ਸ਼ਾਮਲ',
-'export-addns' => 'ਸ਼ਾਮਲ',
-'export-download' => 'ਫਾਇਲ ਵਜੋਂ ਸੰਭਾਲੋ',
-'export-templates' => 'ਸਾਂਚੇ ਸ਼ਾਮਲ ਕਰੋ',
+'export-addcattext' => 'ਇਸ ਸ਼੍ਰੇਣੀ ਤੋਂ ਸਫ਼ੇ ਜੋੜੋ',
+'export-addcat' => 'ਜੋੜੋ',
+'export-addnstext' => 'ਇਸ ਥਾਂ-ਨਾਂ ਤੋਂ ਸਫ਼ੇ ਜੋੜੋ:',
+'export-addns' => 'ਜੋੜੋ',
+'export-download' => 'ਫ਼ਾਈਲ ਵਜੋਂ ਸਾਂਭੋ',
+'export-templates' => 'ਫਰਮੇ ਸ਼ਾਮਲ ਕਰੋ',
 
 # Namespace 8 related
 'allmessages' => 'ਸਿਸਟਮ ਸੁਨੇਹੇ',
-'allmessagesname' => 'ਨਾਮ',
-'allmessagesdefault' => 'ਡਿਫਾਲਟ ਪਾਠ',
-'allmessagescurrent' => 'ਮੌਜੂਦਾ ਟੈਕਸਟ',
-'allmessages-filter-legend' => 'ਫਿਲਟਰ',
+'allmessagesname' => 'ਨਾਂ',
+'allmessagesdefault' => 'ਮੂਲ ਸੁਨੇਹਾ ਲਿਖਤ',
+'allmessagescurrent' => 'ਮੌਜੂਦਾ ਸੁਨੇਹਾ ਲਿਖਤ',
+'allmessages-filter-legend' => 'ਛਾਨਣੀ',
+'allmessages-filter-unmodified' => 'ਅਣ-ਬਦਲਿਆ',
 'allmessages-filter-all' => 'ਸਭ',
+'allmessages-filter-modified' => 'ਬਦਲਿਆ ਗਿਆ',
+'allmessages-prefix' => 'ਇਸ ਅਗੇਤਰ ਨਾਲ਼ ਛਾਣੋ:',
 'allmessages-language' => 'ਭਾਸ਼ਾ:',
 'allmessages-filter-submit' => 'ਜਾਓ',
 
 # Thumbnails
 'thumbnail-more' => 'ਵਧਾਓ',
-'filemissing' => 'ਫਾà¨\87ਲ ਗੁੰਮ ਹੈ',
+'filemissing' => 'ਫ਼ਾà¨\88ਲ ਗੁੰਮ ਹੈ',
 'thumbnail_error' => 'ਨਮੂਨਾ ਬਣਾਉਣ ਵਿੱਚ ਗਲਤੀ ਹੋਈ ਹੈ: $1',
 
 # Special:Import
-'import' => 'ਪੇਜ ਇੰਪੋਰਟ ਕਰੋ',
-'import-interwiki-submit' => 'ਇੰਪੋਰਟ',
+'import' => 'ਸਫ਼ੇ ਮੰਗਾਓ',
+'importinterwiki' => 'ਅੰਤਰ-ਵਿਕੀ ਮੰਗ',
+'import-interwiki-source' => 'ਸਰੋਤ ਵਿਕੀ/ਸਫ਼ਾ:',
+'import-interwiki-templates' => 'ਸਾਰੇ ਫਰਮੇ ਸ਼ਾਮਲ ਕਰੋ',
+'import-interwiki-submit' => 'ਮੰਗਾਓ',
+'import-upload-filename' => 'ਫ਼ਾਈਲ ਦਾ ਨਾਂ:',
 'import-comment' => 'ਟਿੱਪਣੀ:',
 'importstart' => 'ਪੇਜ ਇੰਪੋਰਟ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ...',
 'import-revision-count' => '$1 {{PLURAL:$1|ਰੀਵਿਜ਼ਨ|ਰੀਵਿਜ਼ਨਾਂ}}',
+'importnopages' => 'ਮੰਗਾਉਣ ਲਈ ਕੋਈ ਸਫ਼ੇ ਨਹੀਂ ਹਨ।',
 'importfailed' => 'ਇੰਪੋਰਟ ਫੇਲ੍ਹ: $1',
-'importnotext' => 'ਖਾਲੀ ਜਾਂ ਕੋਈ ਟੈਕਸਟ ਨਹੀਂ',
+'importunknownsource' => 'ਮੰਗਾਉਣ ਦੇ ਸਰੋਤ ਦੀ ਅਣਪਛਾਤੀ ਕਿਸਮ',
+'importcantopen' => 'ਫ਼ਾਈਲ ਮੰਗਾਈ ਨਾ ਜਾ ਸਕੀ',
+'importbadinterwiki' => 'ਗ਼ਲਤ ਅੰਤਰਵਿਕੀ ਕੜੀ',
+'importnotext' => 'ਖ਼ਾਲੀ ਜਾਂ ਕੋਈ ਲਿਖਤ ਨਹੀਂ',
 'importsuccess' => 'ਇੰਪੋਰਟ ਸਫ਼ਲ!',
 'importnofile' => 'ਕੋਈ ਇੰਪੋਰਟ ਫਾਇਲ ਅੱਪਲੋਡ ਨਹੀਂ ਕੀਤੀ।',
+'import-noarticle' => 'ਮੰਗਾਉਣ ਲਈ ਕੋਈ ਸਫ਼ਾ ਨਹੀਂ!',
+'import-token-mismatch' => 'ਇਸ ਇਜਲਾਸ ਦਾ ਡਾਟਾ ਉੱਡ ਗਿਆ।
+ਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜੀ।',
+'import-invalid-interwiki' => 'ਦੱਸੇ ਹੋਏ ਵਿਕੀ ਤੋਂ ਮੰਗਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ।',
 
 # Import log
-'importlogpage' => 'à¨\87ੰਪà©\8bਰà¨\9f à¨²à¨¾à¨\97',
+'importlogpage' => 'ਮੰà¨\97ਾà¨\89ਣ à¨¦à¨¾ à¨\9aਿੱਠਾ',
 'import-logentry-upload-detail' => '$1 ਰੀਵਿਜਨ',
 
 # Tooltip help for the actions
-'tooltip-pt-userpage' => 'ਤੁਹਾਡਾ ਵਰਤੋਂਕਾਰ ਪੰਨਾ',
-'tooltip-pt-mytalk' => 'ਤੁਹਾਡਾ ਚਰਚਾ ਪੰਨਾ',
+'tooltip-pt-userpage' => 'ਤੁਹਾਡਾ ਵਰਤੋਂਕਾਰ ਸਫ਼ਾ',
+'tooltip-pt-mytalk' => 'ਤੁਹਾਡਾ ਗੱਲ-ਬਾਤ ਸਫ਼ਾ',
+'tooltip-pt-anontalk' => 'ਇਸ IP ਪਤੇ ਤੋਂ ਹੋਈਆਂ ਸੋਧਾਂ ਬਾਰੇ ਚਰਚਾ',
 'tooltip-pt-preferences' => 'ਤੁਹਾਡੀਆਂ ਪਸੰਦਾਂ',
-'tooltip-pt-watchlist' => 'ਓਹਨਾਂ ਪੰਨਿਆਂ ਦੀ ਸੂਚੀ ਜੋ ਤੁਸੀਂ ਤਬਦੀਲੀਆਂ ਲਈ ਵੇਖ ਰਹੇ ਹੋ',
-'tooltip-pt-mycontris' => 'ਤà©\81ਹਾਡà©\87 à¨¯à©\8bà¨\97ਦਾਨਾà¨\82 à¨¦à©\80 à¨²à¨¿à¨¸à¨\9f',
-'tooltip-pt-login' => 'ਤà©\81ਹਾਨà©\82à©° à¨²à¨¾à¨\97à¨\87ਨ à¨\95ਰਨ à¨²à¨\88 à¨\89ਤਸ਼ਾਹਿਤ à¨\95à©\80ਤਾ ਜਾਂਦਾ ਹੈ; ਪਰ ਇਹ ਕੋਈ ਲਾਜ਼ਮੀ ਨਹੀਂ',
+'tooltip-pt-watchlist' => "ਉਹਨਾਂ ਸਫ਼ਿਆਂ ਦੀ ਸੂਚੀ ਜਿਹਨਾਂ ਦੀਆਂ ਤਬਦੀਲੀਆਂ 'ਤੇ ਤੁਸੀਂ ਅੱਖ ਰੱਖ ਰਹੇ ਹੋ",
+'tooltip-pt-mycontris' => 'ਤà©\81ਹਾਡà©\87 à¨¯à©\8bà¨\97ਦਾਨਾà¨\82 à¨¦à©\80 à¨¸à©\82à¨\9aà©\80',
+'tooltip-pt-login' => 'ਤà©\81ਹਾਨà©\82à©° à¨¦à¨¾à¨\96਼ਲ à¨¹à©\8bਣ à¨²à¨\88 à¨ªà©\8dਰà©\87ਰਿà¨\86 ਜਾਂਦਾ ਹੈ; ਪਰ ਇਹ ਕੋਈ ਲਾਜ਼ਮੀ ਨਹੀਂ',
 'tooltip-pt-anonlogin' => 'ਤੁਹਾਨੂੰ ਲਾਗਇਨ ਕਰਨ ਲਈ ਉਤਸ਼ਾਹਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ; ਪਰ ਇਹ ਕੋਈ ਲਾਜ਼ਮੀ ਨਹੀਂ ਹੈ',
-'tooltip-pt-logout' => 'ਲਾà¨\97 à¨\86à¨\89à¨\9f',
-'tooltip-ca-talk' => 'ਸਮà¨\97ੱਰà©\80 à¨ªà©°à¨¨ੇ ਬਾਰੇ ਚਰਚਾ',
-'tooltip-ca-edit' => 'ਤੁਸੀ ਇਹ ਪੰਨਾ ਬਦਲ ਸਕਦੇ ਹੋ। ਕਿਰਪਾ ਕਰਕੇ ਤਬਦੀਲੀ ਸੰਜੋਣ ਤੋਂ ਪਹਿਲਾਂ ਝਲਕ ਵੇਖੋ।',
+'tooltip-pt-logout' => 'ਸਾà¨\88à¨\9f à¨¤à©\8bà¨\82 à¨µà¨¿à¨¦à¨¾à¨\88 à¨²à¨\93',
+'tooltip-ca-talk' => 'ਸਮà¨\97ੱਰà©\80 à¨¸à¨«à¨¼ੇ ਬਾਰੇ ਚਰਚਾ',
+'tooltip-ca-edit' => 'ਤੁਸੀਂ ਇਹ ਸਫ਼ਾ ਸੋਧ ਸਕਦੇ ਹੋ। ਕਿਰਪਾ ਕਰਕੇ ਤਬਦੀਲੀ ਸਾਂਭਣ ਤੋਂ ਪਹਿਲਾਂ ਝਲਕ ਵੇਖੋ।',
 'tooltip-ca-addsection' => 'ਨਵਾਂ ਭਾਗ ਸ਼ੁਰੂ ਕਰੋ',
-'tooltip-ca-viewsource' => 'à¨\87ਹ à¨ªà©°à¨¨ਾ ਸੁਰੱਖਿਅਤ ਹੈ।
-ਤà©\81ਸà©\80à¨\82 à¨\87ਸਦਾ ਸਰੋਤ ਵੇਖ ਸਕਦੇ ਹੋ।',
-'tooltip-ca-history' => 'à¨\87ਸ à¨ªà©°à¨¨ੇ ਦੇ ਪਿਛਲੇ ਰੀਵਿਜਨ',
-'tooltip-ca-protect' => 'à¨\87ਹ à¨ªà©°à¨¨ਾ ਸੁਰੱਖਿਅਤ ਕਰੋ',
+'tooltip-ca-viewsource' => 'à¨\87ਹ à¨¸à¨«à¨¼ਾ ਸੁਰੱਖਿਅਤ ਹੈ।
+ਤà©\81ਸà©\80à¨\82 à¨\87ਹਦਾ ਸਰੋਤ ਵੇਖ ਸਕਦੇ ਹੋ।',
+'tooltip-ca-history' => 'à¨\87ਸ à¨¸à¨«à¨¼ੇ ਦੇ ਪਿਛਲੇ ਰੀਵਿਜਨ',
+'tooltip-ca-protect' => 'à¨\87ਹ à¨¸à¨«à¨¼ਾ ਸੁਰੱਖਿਅਤ ਕਰੋ',
 'tooltip-ca-unprotect' => 'ਇਸ ਸਫ਼ੇ ਦੀ ਸੁਰੱਖਿਆ ਬਦਲੋ',
-'tooltip-ca-delete' => 'à¨\87ਹ à¨ªà©°à¨¨à¨¾ ਨੂੰ ਹਟਾਓ',
-'tooltip-ca-move' => 'à¨\87ਹ à¨ªà©°à¨¨à¨¾ à¨®à©\81ੰਤà¨\95ਿਲ à¨\95ਰੋ',
-'tooltip-ca-watch' => 'à¨\87ਹ à¨ªà©°à¨¨à¨¾ à¨\86ਪਣà©\80 à¨§à¨¿à¨\86ਨਸà©\82à¨\9aà©\80 à¨µà¨¿à©±à¨\9a à¨¸à¨¼à¨¾à¨®à¨² à¨\95ਰੋ',
-'tooltip-ca-unwatch' => 'à¨\87ਹ à¨ªà©°à¨¨à¨¾ à¨\86ਪਣà©\80 à¨§à¨¿à¨\86ਨਸà©\82à¨\9aà©\80 ’ਚੋਂ ਹਟਾਓ',
+'tooltip-ca-delete' => 'à¨\87ਸ à¨¸à¨«à¨¼à©\87 ਨੂੰ ਹਟਾਓ',
+'tooltip-ca-move' => 'à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨­à©\87à¨\9cੋ',
+'tooltip-ca-watch' => 'à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨¨à©\82à©° à¨\86ਪਣà©\80 à¨¨à¨¿à¨\97ਰਾਨà©\80-ਲਿਸà¨\9f à¨µà¨¿à¨\9a à¨\9cà©\8bà©\9cੋ',
+'tooltip-ca-unwatch' => 'à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨\86ਪਣà©\80 à¨¨à¨¿à¨\97ਰਾਨà©\80-ਲਿਸà¨\9f ’ਚੋਂ ਹਟਾਓ',
 'tooltip-search' => '{{SITENAME}} ’ਤੇ ਖੋਜੋ',
 'tooltip-search-go' => 'ਠੀਕ ਇਸ ਨਾਮ ਵਾਲੇ ਪੰਨੇ ’ਤੇ ਜਾਉ, ਜੇ ਮੌਜੂਦ ਹੈ ਤਾਂ',
-'tooltip-search-fulltext' => 'à¨\87ਸ à¨²à¨¿à¨\96ਤ à¨²à¨\88 à¨ªà©°à¨¨ੇ ਲੱਭੋ',
-'tooltip-p-logo' => 'ਮà©\81ੱà¨\96 à¨ªà©°à¨¨ੇ ’ਤੇ ਜਾਓ',
-'tooltip-n-mainpage' => 'ਮà©\81ੱà¨\96 à¨ªà©°à¨¨ੇ ’ਤੇ ਜਾਓ',
-'tooltip-n-mainpage-description' => 'ਮà©\81ੱà¨\96 à¨ªà©°à¨¨ੇ ’ਤੇ ਜਾਓ',
-'tooltip-n-portal' => 'ਪਰਯà©\8bà¨\9cਨਾ à¨¬à¨¾à¨°à©\87, à¨¤à©\81ਸà©\80à¨\82 à¨\95à©\80 à¨\95ਰ à¨¸à¨\95ਦà©\87 à¨¹à©\8b, à¨\95ਿੱਥà©\87 à¨\95à©\81ੱਝ ਲੱਭਣਾ ਹੈ',
-'tooltip-n-currentevents' => 'ਮà©\8cà¨\9cà©\82ਦਾ à¨¸à¨®à¨¾à¨\97ਮ à¨¬à¨¾à¨°à©\87 à¨ªà¨¿à¨\9bਲੀ ਜਾਣਕਾਰੀ ਲੱਭੋ',
-'tooltip-n-recentchanges' => 'ਵਿà¨\95à©\80 à¨µà¨¿à©±à¨\9a à¨¹à¨¾à¨² â\80\99à¨\9a à¨¹à©\8bà¨\88à¨\86à¨\82 à¨¬à¨¦ਲੀਆਂ ਦੀ ਸੂਚੀ',
-'tooltip-n-randompage' => 'à¨\87ੱà¨\95 à¨°à¨²à¨µà¨¾à¨\82 à¨ªà©°à¨¨ਾ ਲੋਡ ਕਰੋ',
+'tooltip-search-fulltext' => 'à¨\87ਸ à¨²à¨¿à¨\96ਤ à¨²à¨\88 à¨¸à¨«à¨¼ੇ ਲੱਭੋ',
+'tooltip-p-logo' => 'ਮà©\81ੱà¨\96 à¨¸à¨«à¨¼ੇ ’ਤੇ ਜਾਓ',
+'tooltip-n-mainpage' => 'ਮà©\81ੱà¨\96 à¨¸à¨«à¨¼ੇ ’ਤੇ ਜਾਓ',
+'tooltip-n-mainpage-description' => 'ਮà©\81ੱà¨\96 à¨¸à¨«à¨¼ੇ ’ਤੇ ਜਾਓ',
+'tooltip-n-portal' => 'ਪà©\8dਰà©\8bà¨\9cà©\88à¨\95à¨\9f à¨¬à¨¾à¨°à©\87, à¨¤à©\81ਸà©\80à¨\82 à¨\95à©\80 à¨\95ਰ à¨¸à¨\95ਦà©\87 à¨¹à©\8b, à¨\95ਿੱਥà©\87 à¨\95à©\81ਝ ਲੱਭਣਾ ਹੈ',
+'tooltip-n-currentevents' => 'ਹਾਲ à¨¦à©\80à¨\86à¨\82 à¨\98à¨\9fਨਾਵਾà¨\82 à¨¬à¨¾à¨°à©\87 à¨ªà¨¿à¨\9bà©\8bà¨\95à©\9cੀ ਜਾਣਕਾਰੀ ਲੱਭੋ',
+'tooltip-n-recentchanges' => 'ਵਿà¨\95à©\80 à¨µà¨¿à¨\9a à¨¹à¨¾à¨² â\80\99à¨\9a à¨¹à©\8bà¨\88à¨\86à¨\82 à¨¤à¨¬à¨¦à©\80ਲੀਆਂ ਦੀ ਸੂਚੀ',
+'tooltip-n-randompage' => 'à¨\87ੱà¨\95 à¨°à¨²à¨¼à¨µà¨¾à¨\82 à¨¸à¨«à¨¼ਾ ਲੋਡ ਕਰੋ',
 'tooltip-n-help' => 'ਖੋਜਣ ਲਈ ਥਾਂ',
-'tooltip-t-whatlinkshere' => 'ਵਿਕੀ ਦੇ ਸਾਰੇ ਪੰਨਿਆਂ ਦੀ ਸੂਚੀ, ਜੋ ਇੱਥੇ ਜੋੜਦੇ ਹਨ',
-'tooltip-t-recentchangeslinked' => 'ਇਸ ਪੰਨੇ ਤੋਂ ਲਿੰਕ ਕੀਤੇ ਪੰਨਿਆਂ ਵਿੱਚ ਤਾਜ਼ਾ ਤਬਦੀਲੀਆਂ',
-'tooltip-feed-atom' => 'ਇਸ ਪੰਨੇ ਦੀ ਐਟਮ ਫ਼ੀਡ',
+'tooltip-t-whatlinkshere' => 'ਵਿਕੀ ਦੇ ਸਾਰੇ ਸਫ਼ਿਆ ਦੀ ਸੂਚੀ, ਜੋ ਇੱਥੇ ਜੋੜਦੇ ਹਨ',
+'tooltip-t-recentchangeslinked' => 'ਇਸ ਸਫ਼ੇ ਤੋਂ ਲਿੰਕ ਕੀਤੇ ਸਫ਼ਿਆਂ ਵਿਚ ਤਾਜ਼ਾ ਤਬਦੀਲੀਆਂ',
+'tooltip-feed-rss' => 'ਇਸ ਸਫ਼ੇ ਲਈ RSS ਫ਼ੀਡ',
+'tooltip-feed-atom' => 'ਇਸ ਸਫ਼ੇ ਦੀ ਐਟਮ ਫ਼ੀਡ',
 'tooltip-t-contributions' => 'ਇਸ ਵਰਤੋਂਕਾਰ ਦੇ ਯੋਗਦਾਨ ਦੀ ਸੂਚੀ',
 'tooltip-t-emailuser' => 'ਇਸ ਵਰਤੋਂਕਾਰ ਨੂੰ ਈ-ਮੇਲ ਭੇਜੋ',
-'tooltip-t-upload' => 'à¨\9aਿੱਤਰ à¨\9cਾà¨\82 à¨®à©\80ਡà©\80à¨\86 à¨«ਾਈਲਾਂ ਅਪਲੋਡ ਕਰੋ',
-'tooltip-t-specialpages' => 'ਸਾਰà©\87 à¨µà¨¿à¨¸à¨¼à©\87ਸ਼ à¨ªà©°à¨¨ਿਆਂ ਦੀ ਸੂਚੀ',
-'tooltip-t-print' => 'à¨\87ਹ à¨ªà©°à¨¨ੇ ਦਾ ਛਪਣਯੋਗ ਵਰਜਨ',
-'tooltip-t-permalink' => 'ਪੰਨà©\87 à¨¦à©\87 à¨\87ਸ à¨°à©\80ਵਿà¨\9cਨ à¨²à¨\88 à¨ªà©±à¨\95ਾ à¨²à¨¿à©°à¨\95',
-'tooltip-ca-nstab-main' => 'ਸਮੱà¨\97ਰà©\80 à¨ªà©°à¨¨ਾ ਵੇਖੋ',
-'tooltip-ca-nstab-user' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ à¨ªà©°à¨¨ਾ ਵੇਖੋ',
+'tooltip-t-upload' => 'ਫ਼ਾਈਲਾਂ ਅਪਲੋਡ ਕਰੋ',
+'tooltip-t-specialpages' => 'ਸਾਰà©\87 à¨\96਼ਾਸ à¨¸à¨«à¨¼ਿਆਂ ਦੀ ਸੂਚੀ',
+'tooltip-t-print' => 'à¨\87ਸ à¨¸à¨«à¨¼ੇ ਦਾ ਛਪਣਯੋਗ ਵਰਜਨ',
+'tooltip-t-permalink' => 'ਸਫ਼à©\87 à¨¦à©\87 à¨\87ਸ à¨°à©\80ਵਿà¨\9cਨ à¨²à¨\88 à¨ªà©±à¨\95à©\80 à¨\95à©\9cà©\80',
+'tooltip-ca-nstab-main' => 'ਸਮੱà¨\97ਰà©\80 à¨¸à¨«à¨¼ਾ ਵੇਖੋ',
+'tooltip-ca-nstab-user' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ à¨¸à¨«à¨¼ਾ ਵੇਖੋ',
 'tooltip-ca-nstab-media' => 'ਮੀਡਿਆ ਪੇਜ ਵੇਖੋ',
-'tooltip-ca-nstab-special' => 'à¨\87ਹ à¨µà¨¿à¨¸à¨¼à©\87ਸ਼ à¨ªà©°à¨¨à¨¾ à¨¹à©\88, à¨¤à©\81ਸà©\80à¨\82 à¨\87ਸ à¨ªà©°à¨¨à©\87 à¨¨à©\82à©° à¨¬à¨¦à¨² ਨਹੀਂ ਸਕਦੇ।',
-'tooltip-ca-nstab-project' => 'ਪਰਯà©\8bà¨\9cਨਾ à¨ªà©°à¨¨ਾ ਵੇਖੋ',
-'tooltip-ca-nstab-image' => 'ਫਾà¨\88ਲ à¨ªà©°à¨¨ਾ ਵੇਖੋ',
+'tooltip-ca-nstab-special' => 'à¨\87ਹ à¨\87ੱà¨\95 à¨\96਼ਾਸ à¨¸à¨«à¨¼à¨¾ à¨¹à©\88, à¨¤à©\81ਸà©\80à¨\82 à¨\87ਸਨà©\82à©° à¨¸à©\8bਧ ਨਹੀਂ ਸਕਦੇ।',
+'tooltip-ca-nstab-project' => 'ਪà©\8dਰà©\8bà¨\9cà©\88à¨\95à¨\9f à¨¸à¨«à¨¼ਾ ਵੇਖੋ',
+'tooltip-ca-nstab-image' => 'ਫ਼ਾà¨\88ਲ à¨¸à¨«à¨¼ਾ ਵੇਖੋ',
 'tooltip-ca-nstab-mediawiki' => 'ਸਿਸਟਮ ਸੁਨੇਹੇ ਵੇਖੋ',
-'tooltip-ca-nstab-template' => 'ਸਾà¨\82à¨\9aਾ ਵੇਖੋ',
-'tooltip-ca-nstab-help' => 'ਮਦਦ à¨ªà©°à¨¨ਾ ਵੇਖੋ',
-'tooltip-ca-nstab-category' => 'ਸ਼à©\8dਰà©\87ਣà©\80 à¨ªà©°à¨¨ਾ ਵੇਖੋ',
-'tooltip-minoredit' => 'à¨\87ਸ â\80\99ਤà©\87 à¨¬à¨¤à©\8cਰ à¨\9bà©\8bà¨\9fਾ à¨¬à¨¦à¨²à¨¾à¨µ ਨਿਸ਼ਾਨ ਲਾਓ',
+'tooltip-ca-nstab-template' => 'ਫਰਮਾ ਵੇਖੋ',
+'tooltip-ca-nstab-help' => 'ਮਦਦ à¨¸à¨«à¨¼ਾ ਵੇਖੋ',
+'tooltip-ca-nstab-category' => 'ਸ਼à©\8dਰà©\87ਣà©\80 à¨¸à¨«à¨¼ਾ ਵੇਖੋ',
+'tooltip-minoredit' => 'à¨\87ਸ â\80\99ਤà©\87 à¨¬à¨¤à©\8cਰ à¨\9bà©\8bà¨\9fà©\80 à¨¤à¨¬à¨¦à©\80ਲà©\80 ਨਿਸ਼ਾਨ ਲਾਓ',
 'tooltip-save' => 'ਆਪਣੀਆਂ ਤਬਦੀਲੀਆਂ ਸਾਂਭੋ',
-'tooltip-preview' => 'à¨\86ਪਣà©\87 à¨¬à¨¦à¨²à¨¾à¨µ ਦੀ ਝਲਕ ਵੇਖੋ, ਸਾਂਭਣ ਤੋਂ ਪਹਿਲਾਂ ਇਹ ਵਰਤੋਂ!',
-'tooltip-diff' => 'ਤà©\81ਹਾਡà©\87 à¨¦à©\81à¨\86ਰਾ ਲਿਖਤ ਵਿੱਚ ਕੀਤੀਆਂ ਤਬਦੀਲੀਆਂ ਵਖਾਉਂਦਾ ਹੈ',
-'tooltip-compareselectedversions' => 'à¨\87ਸ à¨ªà©°à¨¨à©\87 à¨¦à©\87 à¨¦à©\8b à¨\9aà©\81ਣà©\87 à¨¹à©\8bà¨\8f à¨¸à©\8bਧਾà¨\82 à¨µà¨¿à©±ਚ ਫ਼ਰਕ ਵੇਖੋ',
-'tooltip-watch' => 'à¨\87ਸ à¨ªà©°à¨¨à©\87 à¨¨à©\82à©° à¨\86ਪਣà©\80 à¨§à¨¿à¨\86ਨਸà©\82à¨\9aà©\80 à¨µà¨¿à©±ਚ ਪਾਓ',
+'tooltip-preview' => 'à¨\86ਪਣà©\80 à¨¤à¨¬à¨¦à©\80ਲà©\80 ਦੀ ਝਲਕ ਵੇਖੋ, ਸਾਂਭਣ ਤੋਂ ਪਹਿਲਾਂ ਇਹ ਵਰਤੋਂ!',
+'tooltip-diff' => 'ਤà©\81ਹਾਡà©\87 à¨µà©±à¨²à©\8bà¨\82 ਲਿਖਤ ਵਿੱਚ ਕੀਤੀਆਂ ਤਬਦੀਲੀਆਂ ਵਖਾਉਂਦਾ ਹੈ',
+'tooltip-compareselectedversions' => 'à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨¦à©\80à¨\86à¨\82 à¨¦à©\8b à¨\9aà©\81ਣà©\80à¨\86à¨\82 à¨¹à©\8bà¨\88à¨\86à¨\82 à¨¸à©\8bਧਾà¨\82 à¨µà¨¿ਚ ਫ਼ਰਕ ਵੇਖੋ',
+'tooltip-watch' => 'à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨¨à©\82à©° à¨\86ਪਣà©\80 à¨¨à¨¿à¨\97ਰਾਨà©\80-ਲਿਸà¨\9f à¨µà¨¿ਚ ਪਾਓ',
 'tooltip-watchlistedit-normal-submit' => 'ਸਿਰਲੇਖ ਹਟਾਓ',
-'tooltip-watchlistedit-raw-submit' => 'ਧਿà¨\86ਨਸà©\82à¨\9aà©\80 à¨¨à©\82à©° à¨\85ਪਡà©\87à¨\9f ਕਰੋ',
+'tooltip-watchlistedit-raw-submit' => 'ਨਿà¨\97ਰਾਨà©\80-ਲਿਸà¨\9f à¨¤à¨¾à¨\9c਼ਾ ਕਰੋ',
 'tooltip-upload' => 'ਅਪਲੋਡ ਸ਼ੁਰੂ ਕਰੋ',
 'tooltip-rollback' => "''ਵਾਪਸ ਮੋੜੋ'' ਇੱਕ ਹੀ ਕਲਿੱਕ ਨਾਲ ਆਖਰੀ ਯੋਗਦਾਨ ਨੂੰ ਰੱਦ ਕਰ ਦਿੰਦਾ ਹੈ",
-'tooltip-undo' => '"à¨\89ਧà©\87à©\9cਨਾ" à¨\87ਸ à¨¬à¨¦à¨²à¨¾à¨µ à¨¨à©\82à©° à¨°à©±à¨¦ à¨\95ਰà¨\95à©\87 à¨¸à©\8bਧ à¨«à¨¼à¨¾à¨°à¨® à¨¨à©\82à©° à¨\9dਲà¨\95 à¨¦à©\87 à¨¸à¨¼à©\88ਲà©\80 ਵਿੱਚ ਦਿਖਾਉਂਦਾ ਹੈ।
-à¨\87à©°à¨\9d "ਸਾਰ" à¨µà¨¿à©±à¨\9a à¨¬à¨¦à¨²à¨¾à¨µ ਨਕਾਰਨ ਦਾ ਕਾਰਨ ਲਿਖਿਆ ਜਾ ਸਕਦਾ ਹੈ।',
+'tooltip-undo' => '"à¨\89ਧà©\87à©\9cਨਾ" à¨\87ਸ à¨¤à¨¬à¨¦à©\80ਲà©\80 à¨¨à©\82à©° à¨°à©±à¨¦ à¨\95ਰà¨\95à©\87 à¨¸à©\8bਧ à¨«à¨¾à¨°à¨® à¨¨à©\82à©° à¨\9dਲà¨\95 à¨¦à©\87 à¨\85ੰਦਾà¨\9c਼ ਵਿੱਚ ਦਿਖਾਉਂਦਾ ਹੈ।
+à¨\87à©°à¨\9d "ਸਾਰ" à¨µà¨¿à©±à¨\9a à¨¤à¨¬à¨¦à©\80ਲà©\80 ਨਕਾਰਨ ਦਾ ਕਾਰਨ ਲਿਖਿਆ ਜਾ ਸਕਦਾ ਹੈ।',
 'tooltip-preferences-save' => 'ਪਸੰਦ ਸੰਭਾਲੋ',
 'tooltip-summary' => 'ਸੰਖੇਪ ਸਾਰ ਦਰਜ ਕਰੋ',
 
@@ -2083,30 +2256,49 @@ delete|ਹਟਾਉਣ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'lastmodifiedatby' => 'ਇਹ ਸਫ਼ਾ ਆਖ਼ਰੀ ਵਾਰ $1 ਨੂੰ $2 ’ਤੇ $3 ਨੇ ਸੋਧਿਆ ਸੀ।',
 'others' => 'ਹੋਰ',
 'siteusers' => '{{SITENAME}} {{PLURAL:$2|ਵਰਤੋਂਕਾਰ|ਵਰਤੋਂਕਾਰਾਂ}} $1',
-'creditspage' => 'ਪੰਨਾ à¨®à¨¾à¨£',
+'creditspage' => 'ਸਫ਼à©\87 à¨¬à¨¾à¨¬à¨¤ à¨\95ਰà¨\9c਼',
 
 # Spam protection
 'spamprotectiontitle' => 'Spam ਸੁਰੱਖਿਆ ਫਿਲਟਰ',
 
 # Info page
 'pageinfo-header-edits' => 'ਸੋਧਾਂ ਦਾ ਅਤੀਤ',
-'pageinfo-article-id' => 'ਪੰਨਾ ਆਈ.ਡੀ',
+'pageinfo-header-restrictions' => 'ਸਫ਼ੇ ਦੀ ਸੁਰੱਖਿਆ',
+'pageinfo-length' => 'ਸਫ਼ੇ ਦੀ ਲੰਬਾਈ (ਬਾਈਟਾਂ ਵਿਚ)',
+'pageinfo-article-id' => 'ਸਫ਼ੇ ਦੀ ਸ਼ਨਾਖ਼ਤ',
+'pageinfo-language' => 'ਸਫ਼ੇ ਦੀ ਸਮੱਗਰੀ ਦੀ ਭਾਸ਼ਾ',
+'pageinfo-robot-policy' => 'ਇੰਜਨ ਦੀ ਹਾਲਤ ਖੋਜੋ',
+'pageinfo-robot-index' => 'ਤਤਕਰਾਯੋਗ',
+'pageinfo-robot-noindex' => 'ਗ਼ੈਰ-ਤਤਕਰਾਯੋਗ',
+'pageinfo-views' => 'ਵਖਾਵਿਆਂ ਦੀ ਗਿਣਤੀ',
 'pageinfo-watchers' => 'ਸਫ਼ੇ ’ਤੇ ਨਜ਼ਰ ਰੱਖਣ ਵਾਲਿਆਂ ਦੀ ਗਿਣਤੀ',
+'pageinfo-subpages-name' => 'ਇਸ ਸਫ਼ੇ ਦੇ ਉਪ-ਸਫ਼ੇ',
+'pageinfo-lastuser' => 'ਸਭ ਤੋਂ ਨਵਾਂ ਸੰਪਾਦਕ',
+'pageinfo-lasttime' => 'ਸਭ ਤੋਂ ਨਵੀਂ ਸੋਧ ਦੀ ਮਿਤੀ',
 'pageinfo-edits' => 'ਕੁੱਲ ਸੋਧਾਂ',
+'pageinfo-toolboxlink' => 'ਸਫ਼ੇ ਬਾਬਤ ਜਾਣਕਾਰੀ',
+'pageinfo-redirectsto-info' => 'ਜਾਣਕਾਰੀ',
+'pageinfo-contentpage' => 'ਸਮੱਗਰੀ ਸਫ਼ੇ ਵਜੋਂ ਗਿਣਿਆ ਗਿਆ',
+'pageinfo-contentpage-yes' => 'ਹਾਂ',
+'pageinfo-protect-cascading-yes' => 'ਹਾਂ',
+'pageinfo-category-info' => 'ਸ਼੍ਰੇਣੀ ਬਾਬਤ ਜਾਣਕਾਰੀ',
+'pageinfo-category-pages' => 'ਸਫ਼ਿਆਂ ਦੀ ਗਿਣਤੀ',
+'pageinfo-category-subcats' => 'ਉਪ-ਸ਼੍ਰੇਣੀਆਂ ਦੀ ਗਿਣਤੀ',
+'pageinfo-category-files' => 'ਫ਼ਾਈਲਾਂ ਦੀ ਗਿਣਤੀ',
 
 # Skin names
 'skinname-monobook' => 'ਮੋਨੋਬੁੱਕ',
 
 # Browsing diffs
-'previousdiff' => 'â\86\90 à¨ªà©\81ਰਾਣਾ à¨¬à¨¦à¨²à¨¾à¨\85',
-'nextdiff' => 'ਤਾà¨\9cਾ à¨¸à©°à¨ªà¨¾à¨¦à¨¨ →',
+'previousdiff' => 'â\86\90 à¨ªà©\81ਰਾਣà©\80 à¨¤à¨¬à¨¦à©\80ਲà©\80',
+'nextdiff' => 'ਨਵà©\80à¨\82 à¨¤à¨¬à¨¦à©\80ਲà©\80 →',
 
 # Media information
 'thumbsize' => 'ਥੰਮਨੇਲ ਆਕਾਰ:',
-'widthheightpage' => '$1 Ã\97 $2, $3 {{PLURAL:$3|ਪੰਨਾ|ਪੰਨੇ}}',
+'widthheightpage' => '$1 Ã\97 $2, $3 {{PLURAL:$3|ਸਫ਼ਾ|ਸਫ਼ੇ}}',
 'file-info' => 'ਫਾਇਲ ਆਕਾਰ: $1, MIME ਕਿਸਮ: $2',
-'file-info-size' => '$1 Ã\97 $2 à¨ªà¨¿à¨\95ਸਲ, à¨«à¨¼à¨¾à¨\88ਲ à¨\86ਕਾਰ: $3, MIME ਕਿਸਮ: $4',
-'file-nohires' => 'à¨\87ਸ à¨¤à©\8bà¨\82 à¨µà©±à¨¡à©\80 à¨\9aਿੱਤਰ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।',
+'file-info-size' => '$1 Ã\97 $2 à¨ªà¨¿à¨\95ਸਲ, à¨«à¨¼à¨¾à¨\88ਲ à¨\85ਕਾਰ: $3, MIME ਕਿਸਮ: $4',
+'file-nohires' => 'à¨\87ਸ à¨¤à©\8bà¨\82 à¨µà©±à¨¡à©\80 à¨¤à¨¸à¨µà©\80ਰ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।',
 'svg-long-desc' => 'SVG ਫ਼ਾਈਲ, ਆਮ ਤੌਰ ’ਤੇ $1 × $2 ਪਿਕਸਲ, ਫ਼ਾਈਲ ਦਾ ਅਕਾਰ: $3',
 'show-big-image' => 'ਪੂਰਾ ਰੈਜੋਲੇਸ਼ਨ',
 
@@ -2115,6 +2307,31 @@ delete|ਹਟਾਉਣ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'noimages' => 'ਵੇਖਣ ਲਈ ਕੁਝ ਨਹੀਂ',
 'ilsubmit' => 'ਖੋਜ',
 'bydate' => 'ਮਿਤੀ ਨਾਲ',
+'sp-newimages-showfrom' => '$2, $1 ਤੋਂ ਸ਼ੁਰੂ ਹੋ ਕੇ ਨਵੀਆਂ ਫ਼ਾਈਲਾਂ ਵਿਖਾਓ',
+
+# Video information, used by Language::formatTimePeriod() to format lengths in the above messages
+'seconds' => '{{PLURAL:$1|$1 ਸਕਿੰਟ}}',
+'minutes' => '{{PLURAL:$1|$1 ਮਿੰਟ}}',
+'hours' => '{{PLURAL:$1|$1 ਘੰਟਾ|$1 ਘੰਟੇ}}',
+'days' => '{{PLURAL:$1|$1 ਦਿਨ}}',
+'weeks' => '{{PLURAL:$1|$1 ਹਫ਼ਤਾ|$1 ਹਫ਼ਤੇ}}',
+'months' => '{{PLURAL:$1|$1 ਮਹੀਨਾ|$1 ਮਹੀਨੇ}}',
+'years' => '{{PLURAL:$1|$1 ਵਰ੍ਹਾ|$1 ਵਰ੍ਹੇ}}',
+'ago' => '$1 ਪਹਿਲਾਂ',
+'just-now' => 'ਹੁਣੇ',
+
+# Human-readable timestamps
+'hours-ago' => '$1 {{PLURAL:$1|ਘੰਟਾ|ਘੰਟੇ}} ਪਹਿਲਾਂ',
+'minutes-ago' => '$1 {{PLURAL:$1|ਮਿੰਟ}} ਪਹਿਲਾਂ',
+'seconds-ago' => '$1 {{PLURAL:$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
 'bad_image_list' => 'ਤਰਤੀਬ ਇਸ ਤਰਾਂ ਹੈ:
@@ -2122,57 +2339,224 @@ delete|ਹਟਾਉਣ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 ਲਾਈਨ ਵਿਚ ਪਹਿਲੀ ਕੜੀ ਗ਼ਲਤ ਫ਼ਾਈਲ ਦੀ ਕੜੀ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ। ਉਸ ਲਾਈਨ ’ਚ ਅੱਗੇ ਦਿਤੀਆਂ ਕੜੀਆਂ ਨੂੰ ਇਤਰਾਜ਼ਯੋਗ ਮੰਨਿਆ ਜਾਵੇਗਾ, ਭਾਵ ਉਹ ਪੰਨੇ ਜਿਨ੍ਹਾਂ ਵਿਚ ਫ਼ਾਈਲ ਕਿਸੇ ਲਾਈਨ ਵਿਚ ਸਥਿਤ ਹੋ ਸਕਦੀ ਹੈ।',
 
 # Metadata
-'metadata' => 'ਮà©\80à¨\9fਾਡਾਟਾ',
+'metadata' => 'ਮà©\88à¨\9fਾਡà©\88ਟਾ',
 'metadata-help' => 'ਇਸ ਫ਼ਾਈਲ ਵਿੱਚ ਵਾਧੂ ਜਾਣਕਾਰੀਆਂ ਹਨ, ਜੋ ਸ਼ਾਇਦ ਉਸ ਕੈਮਰੇ ਜਾਂ ਸਕੈਨਰ ਦੀ ਦੇਣ ਹਨ ਜੋ ਇਸਨੂੰ ਬਣਾਉਣ ਲਈ ਵਰਤਿਆ ਗਿਆ। ਜੇ ਇਸ ਫ਼ਾਈਲ ਵਿੱਚ ਕੋਈ ਤਬਦੀਲੀ ਕੀਤੀ ਗਈ ਹੈ ਤਾਂ ਹੋ ਸਕਦਾ ਹੈ ਕੁਝ ਵੇਰਵੇ ਬਦਲੀ ਫ਼ਾਈਲ ਦਾ ਸਹੀ ਰੂਪਮਾਨ ਨਾ ਹੋਣ।',
+'metadata-expand' => 'ਵਾਧੂ ਦਾ ਬਿਓਰਾ ਵਿਖਾਓ',
+'metadata-collapse' => 'ਵਾਧੂ ਦਾ ਬਿਓਰਾ ਲੁਕਾਓ',
 'metadata-fields' => 'ਇਸ ਸੁਨੇਹੇ ਵਿੱਚ ਸੂਚੀਬੱਧ ਖੇਤਰ ਚਿੱਤਰ ਪੰਨੇ ’ਚ ਸ਼ਾਮਲ ਕੀਤੇ ਜਾਣਗੇ ਜੋ ਉਦੋਂ ਦਿੱਸਦੇ ਹਨ ਜਦੋ ਮੈਟਾਡੈਟਾ ਖਾਕਾ ਬੰਦ ਹੋਵੇ। ਬਾਕੀ ਉਂਞ ਹੀ ਲੁਕੇ ਹੋਣਗੇ।',
 
 # Exif tags
 'exif-imagewidth' => 'ਚੌੜਾਈ',
 'exif-imagelength' => 'ਉਚਾਈ',
 'exif-samplesperpixel' => 'ਭਾਗਾਂ ਦੀ ਗਿਣਤੀ',
+'exif-rowsperstrip' => 'ਪ੍ਰਤੀ ਪੱਟੀ ਕਤਾਰਾਂ ਦੀ ਗਿਣਤੀ',
+'exif-jpeginterchangeformatlength' => 'JPEG ਸਮੱਗਰੀ ਦੇ ਬਾਈਟ',
 'exif-imagedescription' => 'ਚਿੱਤਰ ਟਾਇਟਲ',
 'exif-make' => 'ਕੈਮਰਾ ਨਿਰਮਾਤਾ',
 'exif-model' => 'ਕੈਮਰਾ ਮਾਡਲ',
 'exif-software' => 'ਵਰਤਿਆ ਸਾਫਟਵੇਅਰ',
 'exif-artist' => 'ਲੇਖਕ',
 'exif-copyright' => 'ਕਾਪੀਰਾਈਟ ਟਾਇਟਲ',
+'exif-pixelydimension' => 'ਤਸਵੀਰ ਦੀ ਚੌੜਾਈ',
+'exif-pixelxdimension' => 'ਤਸਵੀਰ ਦੀ ਲੰਬਾਈ',
+'exif-usercomment' => 'ਵਰਤੋਂਕਾਰ ਦੀਆਂ ਟਿੱਪਣੀਆਂ',
+'exif-relatedsoundfile' => 'ਮਿਲਦੀ-ਜੁਲਦੀ ਆਡੀਓ ਫ਼ਾਈਲ',
+'exif-fnumber' => 'ਐੱਫ਼ ਨੰਬਰ',
+'exif-subjectdistance' => 'ਵਿਸ਼ੇ ਦੀ ਵਿੱਥ',
+'exif-lightsource' => 'ਚਾਨਣ ਦਾ ਸਰੋਤ',
+'exif-flash' => 'ਫ਼ਲੈਸ਼',
+'exif-focallength' => 'ਲੈਨਜ਼ ਦੀ ਫੋਕਲ-ਲੰਬਾਈ',
 'exif-subjectarea' => 'ਵਿਸ਼ਾ ਖੇਤਰ',
+'exif-flashenergy' => 'ਫ਼ਲੈਸ਼ ਦੀ ਊਰਜਾ',
+'exif-filesource' => 'ਫ਼ਾਈਲ ਦਾ ਸਰੋਤ',
+'exif-scenetype' => 'ਸੀਨ ਦੀ ਕਿਸਮ',
+'exif-gpslatituderef' => 'ਉੱਤਰੀ ਜਾਂ ਦੱਖਣੀ ਅਕਸ਼ਾਂਸ਼',
+'exif-gpslatitude' => 'ਅਕਸ਼ਾਂਸ਼',
+'exif-gpslongituderef' => 'ਪੂਰਬੀ ਜਾਂ ਪੱਛਮੀ ਰੇਖਾਂਸ਼',
+'exif-gpslongitude' => 'ਰੇਖਾਂਸ਼',
+'exif-gpsaltituderef' => 'ਉਚਾਈ ਦਾ ਹਵਾਲਾ',
+'exif-gpsaltitude' => 'ਉਚਾਈ',
+'exif-gpstimestamp' => 'ਜੀ੦ਪੀ੦ਐੱਸ ਸਮਾਂ (ਪ੍ਰਮਾਣੂ ਘੜੀ)',
+'exif-gpssatellites' => 'ਮਿਣਨ ਲਈ ਵਰਤੇ ਗਏ ਉਪਗ੍ਰਹਿ',
+'exif-gpsspeedref' => 'ਗਤੀ ਦੀ ਇਕਾਈ',
+'exif-gpstrack' => 'ਚਾਲ ਦੀ ਦਿਸ਼ਾ',
+'exif-gpsimgdirection' => 'ਤਸਵੀਰ ਦੀ ਦਿਸ਼ਾ',
+'exif-gpsareainformation' => 'ਜੀਪੀਐੱਸ ਖੇਤਰ ਦਾ ਨਾਂ',
 'exif-gpsdatestamp' => 'GPS ਮਿਤੀ',
-
-'exif-unknowndate' => 'ਅਣਜਾਣ ਮਿਤੀ',
-
+'exif-countrycreated' => 'ਉਹ ਦੇਸ਼ ਜਿਸ ਵਿਚ ਇਹ ਤਸਵੀਰ ਲਈ ਗਈ ਸੀ',
+'exif-countrycodecreated' => 'ਉਸ ਦੇਸ਼ ਦਾ ਕੋਡ ਜਿਸ ਵਿਚ ਇਹ ਤਸਵੀਰ ਲਈ ਗਈ ਸੀ',
+'exif-provinceorstatecreated' => 'ਸੂਬਾ ਜਾਂ ਰਾਜ ਜਿਸ ਵਿਚ ਇਹ ਤਸਵੀਰ ਲਈ ਗਈ ਸੀ',
+'exif-citycreated' => 'ਸ਼ਹਿਰ ਜਿਸ ਵਿਚ ਇਹ ਤਸਵੀਰ ਲਈ ਗਈ ਸੀ',
+'exif-worldregiondest' => 'ਦਰਸਾਇਆ ਗਿਆ ਦੁਨਿਆਵੀ ਖੇਤਰ',
+'exif-countrydest' => 'ਦਰਸਾਇਆ ਗਿਆ ਦੇਸ਼',
+'exif-countrycodedest' => 'ਦਰਸਾਏ ਗਏ ਦੇਸ਼ ਲਈ ਕੋਡ',
+'exif-provinceorstatedest' => 'ਦਰਸਾਇਆ ਗਿਆ ਸੂਬਾ ਜਾਂ ਰਾਜ',
+'exif-citydest' => 'ਦਰਸਾਇਆ ਗਿਆ ਸ਼ਹਿਰ',
+'exif-objectname' => 'ਛੋਟਾ ਸਿਰਲੇਖ',
+'exif-specialinstructions' => 'ਖ਼ਾਸ ਹਦਾਇਤਾਂ',
+'exif-headline' => 'ਸਿਰਨਾਵਾਂ',
+'exif-source' => 'ਸਰੋਤ',
+'exif-editstatus' => 'ਤਸਵੀਰ ਦਾ ਸੰਪਾਦਕੀ ਰੁਤਬਾ',
+'exif-locationdest' => 'ਦਰਸਾਈ ਗਈ ਥਾਂ',
+'exif-locationdestcode' => 'ਦਰਸਾਈ ਥਾਂ ਦਾ ਕੋਡ',
+'exif-contact' => 'ਰਾਬਤੇ ਦੀ ਜਾਣਕਾਰੀ',
+'exif-writer' => 'ਲੇਖਕ',
+'exif-languagecode' => 'ਭਾਸ਼ਾ',
+'exif-iimversion' => 'IIM ਵਰਜ਼ਨ',
+'exif-iimcategory' => 'ਸ਼੍ਰੇਣੀ',
+'exif-lens' => 'ਵਰਤਿਆ ਗਿਆ ਲੈਨਜ਼',
+'exif-serialnumber' => 'ਕੈਮਰੇ ਦਾ ਸੀਰੀਅਲ ਨੰਬਰ',
+'exif-cameraownername' => 'ਕੈਮਰੇ ਦਾ ਮਾਲਕ',
+'exif-label' => 'ਲੇਬਲ',
+'exif-datetimemetadata' => 'ਮੈਟਾਡਾਟਾ ਦੀ ਆਖ਼ਰੀ ਤਬਦੀਲੀ ਦੀ ਮਿਤੀ',
+'exif-nickname' => 'ਤਸਵੀਰ ਦਾ ਗ਼ੈਰ-ਰਸਮੀ ਨਾਂ',
+'exif-rightscertificate' => 'ਹੱਕਾਂ ਦੇ ਪ੍ਰਬੰਧ ਦਾ ਪ੍ਰਮਾਣ-ਪੱਤਰ',
+'exif-copyrighted' => 'ਕਾਪੀਰਾਈਟ ਦਰਜਾ',
+'exif-copyrightowner' => 'ਕਾਪੀਰਾਈਟ ਦਾ ਮਾਲਕ',
+'exif-usageterms' => 'ਵਰਤੋਂ ਦੀਆਂ ਸ਼ਰਤਾਂ',
+'exif-webstatement' => 'ਕਾਪੀਰਾਈਟ ਦਾ ਆਨਲਾਈਨ ਬਿਆਨ',
+'exif-pngfilecomment' => 'PNG ਫ਼ਾਈਲ ਦੀ ਟਿੱਪਣੀ',
+'exif-disclaimer' => 'ਦਾਅਵੇ',
+'exif-contentwarning' => 'ਸਮੱਗਰੀ ਸਬੰਧੀ ਚਿਤਾਵਨੀ',
+'exif-giffilecomment' => 'GIF ਫ਼ਾਈਲ ਦੀ ਟਿੱਪਣੀ',
+'exif-intellectualgenre' => 'ਚੀਜ਼ ਦੀ ਕਿਸਮ',
+'exif-subjectnewscode' => 'ਵਿਸ਼ੇ ਦਾ ਕੋਡ',
+'exif-scenecode' => 'IPTC ਸੀਨ ਦਾ ਕੋਡ',
+'exif-event' => 'ਦਰਸਾਈ ਗਈ ਘਟਨਾ',
+'exif-organisationinimage' => 'ਦਰਸਾਈ ਗਈ ਸੰਸਥਾ',
+'exif-personinimage' => 'ਦਰਸਾਇਆ ਗਿਆ ਇਨਸਾਨ',
+'exif-originalimageheight' => 'ਕੱਟਣ ਤੋਂ ਪਹਿਲਾਂ ਤਸਵੀਰ ਦੀ ਉਚਾਈ',
+'exif-originalimagewidth' => 'ਕੱਟਣ ਤੋਂ ਪਹਿਲਾਂ ਤਸਵੀਰ ਦੀ ਚੌੜਾਈ',
+
+'exif-unknowndate' => 'ਅਣਪਛਾਤੀ ਮਿਤੀ',
+
+'exif-orientation-1' => 'ਸਧਾਰਨ',
+'exif-orientation-3' => '੧੮੦° ਘੁਮਾਇਆ ਗਿਆ',
+
+'exif-componentsconfiguration-0' => 'ਮੌਜੂਦ ਨਹੀਂ ਹੈ',
+
+'exif-exposureprogram-0' => 'ਪਰਿਭਾਸ਼ਤ ਨਹੀਂ',
+'exif-exposureprogram-1' => 'ਦਸਤੀ',
 'exif-exposureprogram-2' => 'ਸਧਾਰਨ ਪਰੋਗਰਾਮ',
 
-'exif-meteringmode-0' => 'ਅਣਜਾਣ',
+'exif-subjectdistance-value' => '$1 ਮੀਟਰ',
+
+'exif-meteringmode-0' => 'ਅਣਪਛਾਤਾ',
 'exif-meteringmode-1' => 'ਔਸਤ',
 'exif-meteringmode-5' => 'ਪੈਟਰਨ',
 'exif-meteringmode-255' => 'ਹੋਰ',
 
 'exif-lightsource-0' => 'ਅਣਜਾਣ',
+'exif-lightsource-4' => 'ਫ਼ਲੈਸ਼',
 'exif-lightsource-9' => 'ਵਧੀਆ ਮੌਸਮ',
 'exif-lightsource-10' => 'ਬੱਦਲ ਵਾਲਾ ਮੌਸਮ',
+'exif-lightsource-17' => 'ਮਿਆਰੀ ਚਾਨਣ A',
+'exif-lightsource-18' => 'ਮਿਆਰੀ ਚਾਨਣ B',
+'exif-lightsource-19' => 'ਮਿਆਰੀ ਚਾਨਣ C',
+'exif-lightsource-255' => 'ਚਾਨਣ ਦਾ ਹੋਰ ਸਰੋਤ',
 
 'exif-focalplaneresolutionunit-2' => 'ਇੰਚ',
 
 'exif-scenecapturetype-0' => 'ਸਟੈਂਡਰਡ',
 'exif-scenecapturetype-1' => 'ਲੈਂਡਸਕੇਪ',
 'exif-scenecapturetype-2' => 'ਪੋਰਟਰੇਟ',
+'exif-scenecapturetype-3' => 'ਰਾਤ ਦਾ ਨਜ਼ਾਰਾ',
+
+'exif-gaincontrol-0' => 'ਕੋਈ ਨਹੀਂ',
+
+'exif-contrast-0' => 'ਸਧਾਰਨ',
+'exif-contrast-1' => 'ਕੂਲ਼ਾ',
+'exif-contrast-2' => 'ਕਰੜਾ',
+
+'exif-saturation-0' => 'ਸਧਾਰਨ',
+
+'exif-sharpness-0' => 'ਸਧਾਰਨ',
+'exif-sharpness-1' => 'ਕੂਲਾ',
+'exif-sharpness-2' => 'ਕਰੜਾ',
 
 'exif-subjectdistancerange-0' => 'ਅਣਜਾਣ',
 'exif-subjectdistancerange-1' => 'ਮਾਈਕਰੋ',
 'exif-subjectdistancerange-2' => 'ਝਲਕ ਬੰਦ ਕਰੋ',
+'exif-subjectdistancerange-3' => 'ਦੂਰ ਦਾ ਨਜ਼ਾਰਾ',
+
+# Pseudotags used for GPSLatitudeRef and GPSDestLatitudeRef
+'exif-gpslatitude-n' => 'ਉੱਤਰੀ ਅਕਸ਼ਾਂਸ਼',
+'exif-gpslatitude-s' => 'ਦੱਖਣੀ ਅਕਸ਼ਾਂਸ਼',
+
+# Pseudotags used for GPSLongitudeRef and GPSDestLongitudeRef
+'exif-gpslongitude-e' => 'ਪੂਰਬੀ ਰੇਖਾਂਸ਼',
+'exif-gpslongitude-w' => 'ਪੱਛਮੀ ਰੇਖਾਂਸ਼',
+
+# Pseudotags used for GPSAltitudeRef
+'exif-gpsaltitude-above-sealevel' => 'ਸਮੁੰਦਰ ਤਲ ਤੋਂ $1 {{PLURAL:$1|ਮੀਟਰ}} ਉੱਤੇ',
+'exif-gpsaltitude-below-sealevel' => 'ਸਮੁੰਦਰ ਤਲ ਤੋਂ $1 {{PLURAL:$1|ਮੀਟਰ}} ਹੇਠਾਂ',
+
+'exif-gpsstatus-a' => 'ਮਾਪ ਜਾਰੀ ਹੈ',
+
+'exif-gpsmeasuremode-2' => '੨-ਆਯਾਮੀ ਨਾਪ',
+'exif-gpsmeasuremode-3' => '੩-ਆਯਾਮੀ ਨਾਪ',
 
 # Pseudotags used for GPSSpeedRef
 'exif-gpsspeed-k' => 'ਕਿਲੋਮੀਟਰ ਪ੍ਰਤੀ ਘੰਟਾ',
 'exif-gpsspeed-m' => 'ਮੀਲ ਪ੍ਰਤੀ ਘੰਟਾ',
-
-'exif-iimcategory-war' => 'ਯੁੱਧ, ਸੰਘਰਸ਼ ਅਤੇ ਅਸ਼ਾਂਤੀ',
+'exif-gpsspeed-n' => 'ਨਾਟ',
+
+# Pseudotags used for GPSDestDistanceRef
+'exif-gpsdestdistance-k' => 'ਕਿਲੋਮੀਟਰ',
+'exif-gpsdestdistance-m' => 'ਮੀਲ',
+'exif-gpsdestdistance-n' => 'ਸਮੁੰਦਰੀ ਮੀਲ',
+
+'exif-gpsdop-good' => 'ਵਧੀਆ ($1)',
+'exif-gpsdop-moderate' => 'ਠੀਕ-ਠਾਕ ($1)',
+'exif-gpsdop-poor' => 'ਘਟੀਆ ($1)',
+
+'exif-objectcycle-a' => 'ਸਿਰਫ਼ ਸਵੇਰ',
+'exif-objectcycle-p' => 'ਸਿਰਫ਼ ਸ਼ਾਮ',
+'exif-objectcycle-b' => 'ਸਵੇਰ ਅਤੇ ਸ਼ਾਮ ਦੋਵੇਂ',
+
+# Pseudotags used for GPSTrackRef, GPSImgDirectionRef and GPSDestBearingRef
+'exif-gpsdirection-t' => 'ਅਸਲੀ ਦਿਸ਼ਾ',
+'exif-gpsdirection-m' => 'ਚੁੰਬਕੀ ਦਿਸ਼ਾ',
+
+'exif-ycbcrpositioning-1' => 'ਕੇਂਦਰਤ',
+
+'exif-dc-contributor' => 'ਯੋਗਦਾਨੀ',
+'exif-dc-coverage' => 'ਮੀਡੀਆ ਦਾ ਸਥਾਨਕ ਅਤੇ ਵਕਤੀ ਅਧਿਕਾਰ-ਖੇਤਰ',
+'exif-dc-date' => 'ਮਿਤੀ(ਆਂ)',
+'exif-dc-publisher' => 'ਪ੍ਰਕਾਸ਼ਕ',
+'exif-dc-relation' => 'ਸਬੰਧਤ ਮੀਡੀਆ',
+'exif-dc-rights' => 'ਹੱਕ',
+'exif-dc-source' => 'ਸਰੋਤ ਮੀਡੀਆ',
+'exif-dc-type' => 'ਮੀਡੀਆ ਦੀ ਕਿਸਮ',
+
+'exif-rating-rejected' => 'ਨਕਾਰਿਆ ਗਿਆ',
+
+'exif-isospeedratings-overflow' => '੬੫੫੩੫ ਤੋਂ ਵੱਡਾ',
+
+'exif-iimcategory-ace' => 'ਕਲਾ, ਸੱਭਿਆਚਾਰ ਅਤੇ ਮਨੋਰੰਜਨ',
+'exif-iimcategory-clj' => 'ਅਪਰਾਧ ਅਤੇ ਕਨੂੰਨ',
+'exif-iimcategory-dis' => 'ਆਫ਼ਤਾਂ ਅਤੇ ਦੁਰਘਟਨਾਵਾਂ',
+'exif-iimcategory-fin' => 'ਅਰਥਚਾਰਾ ਅਤੇ ਵਪਾਰ',
+'exif-iimcategory-edu' => 'ਸਿੱਖਿਆ',
+'exif-iimcategory-evn' => 'ਵਾਤਾਵਰਨ',
+'exif-iimcategory-hth' => 'ਸਿਹਤ',
+'exif-iimcategory-hum' => 'ਮਨੁੱਖੀ ਹਿਤ',
+'exif-iimcategory-lab' => 'ਮਜ਼ਦੂਰੀ',
+'exif-iimcategory-lif' => 'ਜੀਵਨ-ਸ਼ੈਲੀ ਅਤੇ ਅਰਾਮ',
+'exif-iimcategory-pol' => 'ਸਿਆਸਤ',
+'exif-iimcategory-rel' => 'ਧਰਮ ਅਤੇ ਮਤ',
+'exif-iimcategory-sci' => 'ਵਿਗਿਆਨ ਅਤੇ ਤਕਨਾਲੋਜੀ',
+'exif-iimcategory-soi' => 'ਸਮਾਜਕ ਮੁੱਦੇ',
+'exif-iimcategory-spo' => 'ਖੇਡਾਂ',
+'exif-iimcategory-war' => 'ਯੁੱਧ, ਤਕਰਾਰ ਅਤੇ ਅਸ਼ਾਂਤੀ',
 'exif-iimcategory-wea' => 'ਮੌਸਮ',
 
 'exif-urgency-normal' => 'ਸਧਾਰਨ ($1)',
+'exif-urgency-low' => 'ਨੀਵਾਂ ($1)',
+'exif-urgency-high' => 'ਉੱਚਾ ($1)',
 
 # External editor support
-'edit-externally' => 'ਬਾਹਰੀ ਐਪਲੀਕੇਸ਼ਨ ਵਰਤਦੇ ਹੋਏ ਇਸ ਫਾਈਲ ਨੂੰ ਸੰਪਾਦਨ ਕਰੋ।',
+'edit-externally' => 'ਬਾਹਰੀ ਐਪਲੀਕੇਸ਼ਨ ਵਰਤ ਕੇ ਇਸ ਫ਼ਾਈਲ ਨੂੰ ਸੋਧੋ',
 'edit-externally-help' => '(ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ [//www.mediawiki.org/wiki/Manual:External_editors setup instructions] ਵੇਖੋ)',
 
 # 'all' in various places, this might be different for inflected languages
@@ -2183,33 +2567,45 @@ delete|ਹਟਾਉਣ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 
 # Email address confirmation
 'confirmemail' => 'ਈ-ਮੇਲ ਪਤਾ ਤਸਦੀਕ ਕਰੋ',
-'confirmemail_send' => 'à¨\87ੱà¨\95 à¨ªà©\81ਸ਼à¨\9fੀ ਕੋਡ ਭੇਜੋ',
-'confirmemail_sent' => 'ਪà©\81ਸ਼à¨\9fੀ ਈਮੇਲ ਭੇਜੀ ਗਈ।',
+'confirmemail_send' => 'à¨\87ੱà¨\95 à¨¤à¨¸à¨¦à©\80à¨\95ੀ ਕੋਡ ਭੇਜੋ',
+'confirmemail_sent' => 'ਤਸਦà©\80à¨\95ੀ ਈਮੇਲ ਭੇਜੀ ਗਈ।',
 'confirmemail_invalid' => 'ਗਲਤ ਪੁਸ਼ਟੀ ਕੋਡ ਹੈ। ਕੋਡ ਦੀ ਮਿਆਦ ਪੁੱਗੀ ਹੋ ਸਕਦੀ ਹੈ।',
 'confirmemail_loggedin' => 'ਤੁਹਾਡਾ ਈ-ਮੇਲ ਪਤਾ ਹੁਣ ਤਸਦੀਕ ਹੋ ਚੁੱਕਾ ਹੈ।',
-'confirmemail_subject' => '{{SITENAME}} ਈਮੇਲ ਐਡਰੈੱਸ ਪੁਸ਼ਟੀ',
+'confirmemail_subject' => '{{SITENAME}} ਈ-ਮੇਲ ਪਤਾ ਤਸਦੀਕ',
+'confirmemail_invalidated' => 'ਈਮੇਲ ਪਤੇ ਦੀ ਤਸਦੀਕੀ ਰੱਦ ਕੀਤੀ ਗਈ',
+'invalidateemail' => 'ਈਮੇਲ ਤਸਦੀਕੀ ਰੱਦ ਕਰੋ',
 
 # Scary transclusion
 'scarytranscludetoolong' => '[URL ਬਹੁਤ ਲੰਬਾ ਹੈ]',
 
 # Delete conflict
+'deletedwhileediting' => "'''ਖ਼ਬਰਦਾਰ:''' ਇਹ ਸਫ਼ਾ ਤੁਹਾਡੇ ਸੋਧ ਸ਼ੁਰੂ ਕਰਨ ਮਗਰੋਂ ਮਿਟਾ ਦਿੱਤਾ ਗਿਆ ਸੀ!",
 'recreate' => 'ਮੁੜ-ਬਣਾਓ',
 
 # action=purge
 'confirm_purge_button' => 'ਠੀਕ ਹੈ',
+'confirm-purge-top' => 'ਇਸ ਸਫ਼ੇ ਦਾ ਕੈਸ਼ ਸਾਫ਼ ਕੀਤਾ ਜਾਵੇ?',
+
+# action=watch/unwatch
+'confirm-watch-button' => 'ਠੀਕ ਹੈ',
+'confirm-watch-top' => 'ਇਸ ਸਫ਼ੇ ਨੂੰ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚ ਜੋੜਨਾ ਹੈ?',
+'confirm-unwatch-button' => 'ਠੀਕ ਹੈ',
+'confirm-unwatch-top' => 'ਇਸ ਸਫ਼ੇ ਨੂੰ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਤੋਂ ਹਟਾਉਣਾ ਹੈ?',
 
 # Multipage image navigation
-'imgmultipageprev' => 'â\86\90 à¨ªà¨¿à¨\9bਲਾ à¨ªà©°à¨¨ਾ',
-'imgmultipagenext' => 'à¨\85à¨\97ਲਾ à¨ªà©°à¨¨ਾ →',
+'imgmultipageprev' => 'â\86\90 à¨ªà¨¿à¨\9bਲਾ à¨¸à¨«à¨¼ਾ',
+'imgmultipagenext' => 'à¨\85à¨\97ਲਾ à¨¸à¨«à¨¼ਾ →',
 'imgmultigo' => 'ਜਾਓ!',
 'imgmultigoto' => '$1 ਸਫ਼ੇ ਉੱਤੇ ਜਾਓ',
 
 # Table pager
-'table_pager_next' => 'ਅਗਲਾ ਪੰਨਾ',
-'table_pager_prev' => 'ਪਿਛਲਾ ਪੰਨਾ',
-'table_pager_first' => 'ਪਹਿਲਾ ਪੰਨਾ',
-'table_pager_last' => 'ਆਖਰੀ ਪੰਨਾ',
-'table_pager_limit' => 'ਹਰੇਕ ਪੇਜ ਲਈ $1 ਆਈਟਮਾਂ',
+'ascending_abbrev' => 'ਵਧਦਾ',
+'descending_abbrev' => 'ਘਟਦਾ',
+'table_pager_next' => 'ਅਗਲਾ ਸਫ਼ਾ',
+'table_pager_prev' => 'ਪਿਛਲਾ ਸਫ਼ਾ',
+'table_pager_first' => 'ਪਹਿਲਾ ਸਫ਼ਾ',
+'table_pager_last' => 'ਆਖ਼ਰੀ ਸਫ਼ਾ',
+'table_pager_limit' => 'ਹਰੇਕ ਸਫ਼ੇ ਲਈ $1 ਆਈਟਮਾਂ',
 'table_pager_limit_label' => 'ਪ੍ਰਤੀ ਸਫ਼ਾ ਆਈਟਮਾਂ:',
 'table_pager_limit_submit' => 'ਜਾਓ',
 'table_pager_empty' => 'ਕੋਈ ਨਤੀਜਾ ਨਹੀਂ',
@@ -2219,35 +2615,82 @@ delete|ਹਟਾਉਣ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'autosumm-new' => '"$1" ਨਾਲ਼ ਸਫ਼ਾ ਬਣਾਇਆ',
 
 # Live preview
-'livepreview-loading' => '…ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ',
-'livepreview-ready' => '…ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ। ਤਿਆਰ!',
+'livepreview-loading' => 'ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ...',
+'livepreview-ready' => 'ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ... ਤਿਆਰ!',
+'livepreview-failed' => 'ਲਾਈਵ ਝਲਕ ਫੇਲ੍ਹ ਹੋਈ!
+ਸਧਾਰਨ ਝਲਕ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ।',
 
 # Watchlist editor
-'watchlistedit-normal-title' => 'ਧਿਆਨਸੂਚੀ ਬਦਲੋ',
-'watchlistedit-raw-titles' => 'ਟਾਇਟਲ:',
-'watchlistedit-raw-submit' => 'ਧਿਆਨਸੂਚੀ ਨੂੰ ਅਪਡੇਟ ਕਰੋ',
+'watchlistedit-noitems' => 'ਤੁਹਾਡੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚ ਕੋਈ ਸਿਰਲੇਖ ਨਹੀਂ ਹਨ।',
+'watchlistedit-normal-title' => 'ਨਿਗਰਾਨੀ-ਲਿਸਟ ਸੋਧੋ',
+'watchlistedit-normal-legend' => 'ਨਿਗਰਾਨੀ-ਲਿਸਟ ਤੋਂ ਸਿਰਲੇਖ ਹਟਾਓ',
+'watchlistedit-normal-submit' => 'ਸਿਰਲੇਖ ਹਟਾਓ',
+'watchlistedit-raw-title' => 'ਕੱਚੀ ਨਿਗਰਾਨ-ਸੂਚੀ ਸੋਧੋ',
+'watchlistedit-raw-legend' => 'ਕੱਚੀ ਨਿਗਰਾਨ-ਸੂਚੀ ਸੋਧੋ',
+'watchlistedit-raw-titles' => 'ਸਿਰਲੇਖ:',
+'watchlistedit-raw-submit' => 'ਨਿਗਰਾਨੀ-ਲਿਸਟ ਤਾਜ਼ੀ ਕਰੋ',
+'watchlistedit-raw-done' => 'ਤੁਹਾਡੀ ਨਿਗਰਾਨ-ਸੂਚੀ ਅੱਪਡੇਟ ਹੋ ਗਈ ਹੈ।',
 'watchlistedit-raw-added' => '{{PLURAL:$1|1 title was|$1 titles were}} ਸ਼ਾਮਲ:',
 'watchlistedit-raw-removed' => '{{PLURAL:$1|1 title was|$1 titles were}} ਹਟਾਓ:',
 
 # Watchlist editing tools
-'watchlisttools-view' => 'à¨\86ਧਾਰਿਤ à¨¬à¨¦à¨²à¨¾à¨\85 ਵੇਖੋ',
-'watchlisttools-edit' => 'ਧਿà¨\86ਨਸà©\82à¨\9aà©\80 à¨µà©\87à¨\96à©\8b â\80\99ਤà©\87 à¨¸à©°à¨ªà¨¾à¨¦à¨¨ à¨\95ਰੋ',
-'watchlisttools-raw' => 'à¨\95ੱà¨\9aà©\80 à¨§à¨¿à¨\86ਨਸà©\82à¨\9aà©\80 à¨¸à©°à¨ªà¨¾à¨¦à¨¨ à¨\95ਰੋ',
+'watchlisttools-view' => 'ਸਬੰਧਤ à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82 ਵੇਖੋ',
+'watchlisttools-edit' => 'ਨਿà¨\97ਰਾਨà©\80-ਸà©\82à¨\9aà©\80 à¨µà©\87à¨\96à©\8b â\80\99ਤà©\87 à¨¸à©\8bਧੋ',
+'watchlisttools-raw' => 'à¨\95ੱà¨\9aà©\80 à¨¨à¨¿à¨\97ਰਾਨ-ਸà©\82à¨\9aà©\80 à¨¸à©\8bਧੋ',
 
 # Core parser functions
 'duplicate-defaultsort' => 'ਪੁਰਾਣੀ ਮੂਲ ਕਰਮਾਂਕਨ ਕੁੰਜੀ $1 ਦੇ ਬਜਾਏ ਹੁਣ ਮੂਲ ਕਰਮਾਂਕਨ ਕੁੰਜੀ $2 ਹੋਵੇਗੀ।',
 
 # Special:Version
 'version' => 'ਵਰਜਨ',
+'version-specialpages' => 'ਖ਼ਾਸ ਸਫ਼ੇ',
+'version-skins' => 'ਸਕਿਨਾਂ',
 'version-other' => 'ਹੋਰ',
+'version-hooks' => 'ਹੁੱਕਾਂ',
+'version-hook-name' => 'ਹੁੱਕ ਦਾ ਨਾਂ',
+'version-license' => 'ਲਸੰਸ',
+'version-poweredby-others' => 'ਹੋਰ',
+'version-software' => 'ਇਨਸਟਾਲ ਕੀਤਾ ਸਾਫ਼ਟਵੇਅਰ',
+'version-software-product' => 'ਉਤਪਾਦ',
+'version-software-version' => 'ਵਰਜਨ',
+'version-entrypoints-header-entrypoint' => 'ਦਾਖ਼ਲਾ ਬਿੰਦੂ',
+'version-entrypoints-header-url' => 'ਯੂ.ਆਰ.ਐੱਲ',
+
+# Special:Redirect
+'redirect-legend' => 'ਕਿਸੇ ਸਫ਼ੇ ਜਾਂ ਫ਼ਾਈਲ ਵੱਲ ਰੀਡਾਇਰੈਕਟ ਕਰੋ',
+'redirect-submit' => 'ਜਾਓ',
+'redirect-lookup' => 'ਲੱਭੋ:',
+'redirect-value' => 'ਮੁੱਲ:',
+'redirect-user' => 'ਵਰਤੋਂਕਾਰ ਦੀ ਆਈ.ਡੀ.',
+'redirect-revision' => 'ਸਫ਼ੇ ਦੀ ਦੁਹਰਾਈ',
+'redirect-file' => 'ਫ਼ਾਈਲ ਦਾ ਨਾਂ',
+'redirect-not-exists' => 'ਮੁੱਲ ਲੱਭਿਆ ਨਹੀਂ',
+
+# Special:FileDuplicateSearch
+'fileduplicatesearch' => 'ਨਕਲੀ ਫ਼ਾਈਲਾਂ ਲਈ ਖੋਜ ਕਰੋ',
+'fileduplicatesearch-legend' => 'ਕਿਸੇ ਨਕਲ ਲਈ ਖੋਜੋ',
+'fileduplicatesearch-filename' => 'ਫ਼ਾਈਲ ਦਾ ਨਾਂ:',
+'fileduplicatesearch-submit' => 'ਖੋਜ',
+'fileduplicatesearch-noresults' => '"$1" ਨਾਂ ਦੀ ਕੋਈ ਫ਼ਾਈਲ ਨਹੀਂ ਲੱਭੀ।',
 
 # Special:SpecialPages
-'specialpages' => 'ਵਿਸ਼ੇਸ਼ ਪੰਨੇ',
+'specialpages' => 'ਖ਼ਾਸ ਸਫ਼ੇ',
+'specialpages-group-maintenance' => 'ਪ੍ਰਬੰਧਕੀ ਰਪਟਾਂ',
+'specialpages-group-other' => 'ਹੋਰ ਖ਼ਾਸ ਸਫ਼ੇ',
 'specialpages-group-login' => 'ਲਾਗਇਨ / ਖਾਤਾ ਬਣਾਓ',
-'specialpages-group-users' => 'ਵਰਤੋਂਕਾਰਾਂ ਅਤੇ ਅਧਿਕਾਰ',
+'specialpages-group-changes' => 'ਤਾਜ਼ਾ ਤਬਦੀਲੀਆਂ ਅਤੇ ਚਿੱਠੇ',
+'specialpages-group-media' => 'ਮੀਡੀਆ ਦੀਆਂ ਰਪਟਾਂ ਅਤੇ ਅੱਪਲੋਡ',
+'specialpages-group-users' => 'ਵਰਤੋਂਕਾਰ ਅਤੇ ਹੱਕ',
+'specialpages-group-highuse' => 'ਜ਼ਿਆਦਾ ਵਰਤੋਂ ਵਾਲੇ ਸਫ਼ੇ',
+'specialpages-group-pages' => 'ਸਫ਼ਿਆਂ ਦੀਆਂ ਸੂਚੀਆਂ',
+'specialpages-group-pagetools' => 'ਸਫ਼ੇ ਦੇ ਸੰਦ',
+'specialpages-group-wiki' => 'ਸਮੱਗਰੀ ਅਤੇ ਸੰਦ',
+'specialpages-group-redirects' => 'ਖ਼ਾਸ ਸਫ਼ੇ ਰੀਡਿਰੈਕਟ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ',
+'specialpages-group-spam' => 'ਸਪੈਮ ਦੇ ਸੰਦ',
 
 # Special:BlankPage
 'blankpage' => 'ਖ਼ਾਲੀ ਸਫ਼ਾ',
+'intentionallyblankpage' => 'ਇਹ ਸਫ਼ਾ ਜਾਣ-ਬੁੱਝ ਕੇ ਖ਼ਾਲੀ ਛੱਡਿਆ ਗਿਆ ਹੈ।',
 
 # External image whitelist
 'external_image_whitelist' => " #ਇਸ ਲਾਈਨ ਨੂੰ ਇੰਝ ਹੀ ਰਹਿਣ ਦਿਓ <pre>
@@ -2261,38 +2704,112 @@ delete|ਹਟਾਉਣ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 
 # Special:Tags
 'tag-filter' => '[[Special:Tags|ਟੈਗ]] ਫਿਲਟਰ:',
+'tag-filter-submit' => 'ਛਾਨਣੀ',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|ਟੈਗ}}]]: $2)',
+'tags-title' => 'ਟੈਗ',
 'tags-tag' => 'ਟੈਗ ਦਾ ਨਾਮ',
-'tags-edit' => 'ਸੰਪਾਦਨ ਕਰੋ',
+'tags-description-header' => 'ਅਰਥ ਦਾ ਪੂਰਾ ਬਿਓਰਾ',
+'tags-hitcount-header' => 'ਟੈਗ ਕੀਤੀਆਂ ਤਬਦੀਲੀਆਂ',
+'tags-edit' => 'ਸੋਧੋ',
+'tags-hitcount' => '$1 {{PLURAL:$1|ਤਬਦੀਲੀ|ਤਬਦੀਲੀਆਂ}}',
+
+# Special:ComparePages
+'comparepages' => 'ਸਫ਼ੇ ਮਿਲਾਓ',
+'compare-selector' => 'ਸਫ਼ੇ ਦੀਆਂ ਰਿਵੀਜਨਾਂ ਮਿਲਾਓ',
+'compare-page1' => 'ਸਫ਼ਾ ੧',
+'compare-page2' => 'ਸਫ਼ਾ ੨',
+'compare-rev1' => 'ਰਿਵੀਜਨ 1',
+'compare-rev2' => 'ਰਿਵੀਜਨ ੨',
+'compare-submit' => 'ਮਿਲਾਓ',
+'compare-invalid-title' => 'ਤੁਹਾਡੇ ਵੱਲੋਂ ਦਿੱਤਾ ਗਿਆ ਸਿਰਲੇਖ ਗ਼ਲਤ ਹੈ।',
+'compare-title-not-exists' => 'ਦਿੱਤਾ ਗਿਆ ਸਿਰਲੇਖ ਮੌਜੁਦ ਨਹੀਂ ਹੈ।',
+'compare-revision-not-exists' => 'ਦਿੱਤੀ ਗਈ ਰਿਵੀਜਨ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।',
+
+# Database error messages
+'dberr-header' => 'ਇਸ ਵਿਕੀ ਵਿਚ ਔਕੜ ਹੈ',
+'dberr-problems' => "ਅਫ਼ਸੋਸ!
+ਇਸ ਸਾਈਟ 'ਤੇ ਕੁਝ ਤਕਨੀਕੀ ਔਕੜਾਂ ਆ ਰਹੀਆਂ ਹਨ।",
+'dberr-again' => 'ਕੁਝ ਮਿੰਟਾਂ ਲਈ ਉਡੀਕ ਕਰਨ ਅਤੇ ਮੁੜ ਲੋਡ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ',
+'dberr-usegoogle' => 'ਉਨੀ ਦੇਰ ਤੱਕ ਤੁਸੀਂ ਗੂਗਲ ਰਾਹੀਂ ਲੱਭਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਸਕਦੇ ਹੋ।',
 
 # HTML forms
+'htmlform-invalid-input' => 'ਤੁਹਾਡੀ ਕੁਝ ਇਨਪੁਟ ਵਿਚ ਔਕੜਾਂ ਹਨ।',
+'htmlform-select-badoption' => 'ਤੁਹਾਡੇ ਵੱਲੋਂ ਦਿੱਤਾ ਮੁੱਲ ਇੱਕ ਸਹੀ ਚੋਣ ਨਹੀਂ ਹੈ।',
+'htmlform-float-invalid' => 'ਤੁਹਾਡੇ ਵੱਲੋਂ ਦਿੱਤਾ ਮੁੱਲ ਇੱਕ ਅੰਕ ਨਹੀਂ ਹੈ।',
+'htmlform-required' => 'ਇਹ ਮੁੱਲ ਲੋੜੀਂਦਾ ਹੈ',
 'htmlform-submit' => 'ਭੇਜੋ',
-'htmlform-reset' => 'ਬਦਲਾà¨\85 à¨µà¨¾à¨ªà¨¸ à¨²à¨µੋ',
+'htmlform-reset' => 'ਤਬਦà©\80ਲà©\80à¨\86à¨\82 à¨µà¨¾à¨ªà¨¸ à¨\95ਰੋ',
 'htmlform-selectorother-other' => 'ਹੋਰ',
+'htmlform-no' => 'ਨਹੀਂ',
+'htmlform-yes' => 'ਹਾਂ',
+'htmlform-chosen-placeholder' => 'ਕੋਈ ਚੋਣ ਚੁਣੋ',
 
 # New logging system
-'logentry-move-move' => "$1 ਨੇ $3 ਪੰਨੇ $4 'ਤੇ ਸਥਾਨਾਂਤਰਿਤ ਕੀਤਾ",
-'logentry-newusers-newusers' => 'ਮੈਂਬਰ ਖਾਤਾ $1 ਬਣਾਇਆ ਗਿਆ',
+'revdelete-content-hid' => 'ਸਮੱਗਰੀ ਲੁਕਾਈ ਹੋਈ',
+'revdelete-summary-hid' => 'ਸੋਧ ਸਾਰ ਲੁਕਾਈ ਹੋਈ',
+'revdelete-uname-hid' => 'ਵਰਤੋਂਕਾਰ ਨਾਂ ਲੁਕਾਇਆ ਹੋਇਆ',
+'revdelete-content-unhid' => 'ਸਮੱਗਰੀ ਲੁਕਾਈ ਹੋਈ',
+'revdelete-summary-unhid' => 'ਸੋਧ ਸਾਰ ਲੁਕਾਈ ਹੋਈ',
+'revdelete-uname-unhid' => 'ਵਰਤੋਂਕਾਰ ਨਾਂ ਲੁਕਾਇਆ ਹੋਇਆ',
+'logentry-move-move' => '$1 ਨੇ ਸਫ਼ਾ $3 ਨੂੰ $4 ’ਤੇ ਭੇਜਿਆ',
+'logentry-newusers-newusers' => 'ਵਰਤੋਂਕਾਰ ਖਾਤਾ $1 ਬਣਾਇਆ ਗਿਆ',
 'logentry-newusers-create' => 'ਵਰਤੋਂਕਾਰ ਖਾਤਾ $1 ਬਣਾਇਆ ਗਿਆ',
-'logentry-newusers-create2' => 'ਵਰਤੋਂਕਾਰ ਖਾਤਾ $3 $1 ਦੁਆਰਾ ਬਣਾਇਆ ਗਿਆ ਸੀ',
+'logentry-newusers-create2' => 'ਵਰਤੋਂਕਾਰ ਖਾਤਾ $3, $1 ਦੁਆਰਾ ਬਣਾਇਆ ਗਿਆ ਸੀ',
 'rightsnone' => '(ਕੋਈ ਨਹੀਂ)',
 
 # Feedback
 'feedback-subject' => 'ਵਿਸ਼ਾ:',
 'feedback-message' => 'ਸੁਨੇਹਾ:',
 'feedback-cancel' => 'ਰੱਦ ਕਰੋ',
+'feedback-submit' => 'ਵਿਚਾਰ ਦਿਓ',
+'feedback-adding' => 'ਸਫ਼ੇ ਨਾਲ਼ ਵਿਚਾਰ ਜੁੜ ਰਹੇ ਹਨ...',
+'feedback-error2' => 'ਦੋਸ਼:ਸੋਧ ਫੇਲ੍ਹ ਹੋਈ',
+'feedback-error3' => 'ਦੋਸ਼:API ਵੱਲੋਂ ਕੋਈ ਜੁਆਬ ਨਹੀਂ',
+'feedback-close' => 'ਹੋ ਗਿਆ',
+'feedback-bugnew' => 'ਮੈਂ ਚੈੱਕ ਕੀਤਾ। ਇੱਕ ਨਵੇਂ ਦੋਸ਼ ਦੀ ਰਿਪੋਰਟ ਕਰੋ',
 
 # Search suggestions
 'searchsuggest-search' => 'ਖੋਜ',
 
+# API errors
+'api-error-badaccess-groups' => 'ਤੁਹਾਨੂੰ ਇਸ ਵਿਕੀ ਉੱਤੇ ਫ਼ਾਈਲਾਂ ਅੱਪਲੋਡ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।',
+'api-error-badtoken' => 'ਅੰਦਰੂਨੀ ਦੋਸ਼: ਗ਼ਲਤ ਟੋਕਨ',
+'api-error-empty-file' => 'ਤੁਹਾਡੇ ਵਲੋਂ ਦਿੱਤੀ ਫ਼ਾਈਲ ਖ਼ਾਲੀ ਸੀ।',
+'api-error-emptypage' => 'ਨਵੇਂ, ਖ਼ਾਲੀ ਸਫ਼ੇ ਬਣਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।',
+'api-error-file-too-large' => 'ਤੁਹਾਡੇ ਵਲੋਂ ਦਿੱਤੀ ਫ਼ਾਈਲ ਬਹੁਤ ਵੱਡੀ ਸੀ।',
+'api-error-filename-tooshort' => 'ਫ਼ਾਈਲ ਦਾ ਨਾਂ ਬਹੁਤ ਛੋਟਾ ਹੈ।',
+'api-error-filetype-banned' => 'ਇਸ ਕਿਸਮ ਦੀ ਫ਼ਾਈਲ ਦੀ ਮਨਾਹੀ ਹੈ।',
+'api-error-filetype-missing' => 'ਇਸ ਫ਼ਾਈਲ ਨਾਂ ਵਿਚ ਐਕਸਟੈਂਸ਼ਨ ਨਹੀਂ ਹੈ।',
+'api-error-http' => 'ਅੰਦਰੂਨੀ ਦੋਸ਼: ਸਰਵਰ ਨਾਲ਼ ਰਾਬਤਾ ਨਹੀਂ ਹੋ ਰਿਹਾ',
+'api-error-illegal-filename' => 'ਇਸ ਫ਼ਾਈਲ-ਨਾਂ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।',
+'api-error-mustbeloggedin' => 'ਫ਼ਾਈਲਾਂ ਅੱਪਲੋਡ ਕਰਨ ਲਈ ਤੁਹਾਡਾ ਦਾਖ਼ਲ ਹੋਣਾ ਲਾਜ਼ਮੀ ਹੈ।',
+'api-error-mustbeposted' => 'ਅੰਦਰੂਨੀ ਦੋਸ਼:ਬੇਨਤੀ ਲਈ HTTP POST ਲੋੜੀਂਦੀ ਹੈ।',
+'api-error-noimageinfo' => 'ਅੱਪਲੋਡ ਸਫਲ਼ ਹੋਇਆ ਪਰ ਸਰਵਰ ਨੇ ਇਸ ਫ਼ਾਈਲ ਬਾਰੇ ਸਾਨੂੰ ਕੋਈ ਜਾਣਕਾਰੀ ਨਹੀਂ ਦਿੱਤੀ।',
+'api-error-nomodule' => 'ਅੰਦਰੂਨੀ ਦੋਸ਼:ਕੋਈ ਅੱਪਲੋਡ ਮਾਪਦੰਡ ਨਹੀਂ ਰੱਖਿਆ ਗਿਆ।',
+'api-error-ok-but-empty' => 'ਅੰਦਰੂਨੀ ਦੋਸ਼: ਸਰਵਰ ਵੱਲੋਂ ਕੋਈ ਜੁਆਬ ਨਹੀਂ।',
+'api-error-stashfailed' => 'ਅੰਦਰੂਨੀ ਦੋਸ਼:ਸਰਵਰ ਆਰਜ਼ੀ ਫ਼ਾਈਲ ਦਾ ਨੂੰ ਸਾਂਭ ਨਾ ਸਕਿਆ।',
+'api-error-publishfailed' => 'ਅੰਦਰੂਨੀ ਦੋਸ਼:ਸਰਵਰ ਆਰਜ਼ੀ ਫ਼ਾਈਲ ਦਾ ਪ੍ਰਕਾਸ਼ਨ ਨਾ ਕਰ ਸਕਿਆ।',
+'api-error-timeout' => 'ਸਰਵਰ ਨੇ ਉਮੀਦ ਦੇ ਸਮੇਂ ਦੇ ਵਿਚ-ਵਿਚ ਕੋਈ ਜੁਆਬ ਨਹੀਂ ਦਿੱਤਾ।',
+'api-error-unclassified' => 'ਅਣਪਛਾਤਾ ਦੋਸ਼ ਆਇਆ ਹੈ।',
+'api-error-unknown-code' => 'ਅਣਪਛਾਤਾ ਦੋਸ਼: "$1"',
+'api-error-unknown-error' => 'ਅੰਦਰੂਨੀ ਦੋਸ਼:ਤੁਹਾਡੀ ਫ਼ਾਈਲ ਅੱਪਲੋਡ ਕਰਦੇ ਵਕਤ ਕੁਝ ਗੜਬੜ ਹੋ ਗਈ।',
+'api-error-unknown-warning' => 'ਅਣਪਛਾਤੀ ਚਿਤਾਵਨੀ: "$1".',
+'api-error-unknownerror' => 'ਅਣਪਛਾਤਾ ਦੋਸ਼: "$1".',
+'api-error-uploaddisabled' => 'ਇਸ ਵਿਕੀ ਉੱਤੇ ਅੱਪਲੋਡ ਬੰਦ ਕੀਤਾ ਹੋਇਆ ਹੈ।',
+'api-error-verification-error' => 'ਸ਼ਾਇਦ ਇਹ ਫ਼ਾਈਲ ਖ਼ਰਾਬ ਹੈ ਜਾਂ ਇਹਦੀ ਐਕਸਟੈਂਸ਼ਨ ਗ਼ਲਤ ਹੈ।',
+
 # Durations
-'duration-seconds' => '$1 {{PLURAL:$1|ਸਕਿੰਟ|ਸਕਿੰਟ}}',
-'duration-minutes' => '$1 {{PLURAL:$1|ਮਿੰਟ |ਮਿੰਟ }}',
+'duration-seconds' => '$1 {{PLURAL:$1|ਸਕਿੰਟ}}',
+'duration-minutes' => '$1 {{PLURAL:$1|ਮਿੰਟ}}',
 'duration-hours' => '$1 {{PLURAL:$1|ਘੰਟਾ |ਘੰਟੇ }}',
-'duration-days' => '$1 {{PLURAL:$1|ਦਿਨ |ਦਿਨ }}',
+'duration-days' => '$1 {{PLURAL:$1|ਦਿਨ}}',
 'duration-weeks' => '$1 {{PLURAL:$1|ਹਫ਼ਤਾ |ਹਫ਼ਤੇ }}',
-'duration-years' => '$1 {{PLURAL:$1|ਸਾਲ |ਸਾਲ }}',
+'duration-years' => '$1 {{PLURAL:$1|ਵਰà©\8dਹਾ|ਵਰà©\8dਹà©\87}}',
 'duration-decades' => '$1 {{PLURAL:$1|ਦਹਾਕਾ  |ਦਹਾਕੇ }}',
-'duration-centuries' => '$1 {{PLURAL:$1|ਸੌ |ਸੌ }}',
-'duration-millennia' => '$1 {{PLURAL:$1|ਸਾਹਸ਼ਤਾਬਦੀ  |ਵਧੇਰੇ ਸਾਹਸ਼ਤਾਬਦੀ  }}',
+'duration-centuries' => '$1 {{PLURAL:$1|ਸਦੀ|ਸਦੀਆਂ}}',
+'duration-millennia' => '$1 {{PLURAL:$1|ਸਾਹਸ਼ਤਾਬਦੀ|ਸਾਹਸ਼ਤਾਬਦੀਆਂ}}',
+
+# Image rotation
+'rotate-comment' => 'ਤਸਵੀਰ ਨੂੰ ਘੜੀ ਦੇ ਰੁਖ ਵਿਚ $1 {{PLURAL:$1|ਡਿਗਰੀ|ਡਿਗਰੀਆਂ}} ਨਾਲ਼ ਘੁਮਾਇਆ ਗਿਆ',
 
 );
index 94ce761..e587d2d 100644 (file)
@@ -7,6 +7,7 @@
  * @ingroup Language
  * @file
  *
+ * @author Geitost
  * @author Kaganer
  * @author Katimawan2005
  * @author Urhixidur
@@ -231,7 +232,6 @@ Pabusten ing pamanaliling dake kapamilatan [alilan] ning suglung',
 'disclaimers' => 'Pamananggi',
 'disclaimerpage' => 'Project:Pangkabilugan a pamananggi',
 'edithelp' => 'Saup pamanalili',
-'edithelppage' => 'Help:Pamag-edit',
 'helppage' => 'Help:Kalamnan',
 'mainpage' => 'Pun Bulung',
 'mainpage-description' => 'Pun Bulung',
@@ -379,7 +379,7 @@ Apansingan mung mapalyaring makalto la pa murin deng aliwang bulung a bala mu ma
 'logout' => 'Mag-log out',
 'userlogout' => 'Mag logout',
 'notloggedin' => 'E maka login',
-'nologin' => "Ala kang login? '''$1'''.",
+'nologin' => 'Ala kang login? $1.',
 'nologinlink' => 'Maglalang kang account',
 'createaccount' => 'Maglalang kang account',
 'gotaccount' => "Atin na kang account? '''$1'''.",
@@ -762,7 +762,6 @@ Tutuking $1 {{PLURAL:$1|result|results}}',
 'viewprevnext' => 'Lon ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-exists' => "'''Atin bulung a mikilagiung \"[[:\$1]]\" keng wiking ini.'''",
 'searchmenu-new' => "↓'''Maglalang kang bulung \"[[:\$1]] keng wiking ini!'''",
-'searchhelp-url' => 'Help:Kalamnan',
 'searchprofile-articles' => '↓Kalamnan bulung',
 'searchprofile-project' => '↓Saup ampong bulung proyectu',
 'searchprofile-images' => '↓Dakalmedia',
@@ -986,7 +985,6 @@ Nung ibie me, magamit ya bang kilalanan ing kekang ambag.',
 'recentchangeslinked-feed' => 'Miyalilan a makaugne',
 'recentchangeslinked-toolbox' => 'Miyalilan a makaugne',
 'recentchangeslinked-title' => 'Deng miyalilan a maki kaugnayan king "$1"',
-'recentchangeslinked-noresult' => 'Alang miyalilan kareng bulung a pakasuglung ketang mebanggit a panaun.',
 'recentchangeslinked-summary' => "↓Makalista la king bulung a iti deng tauling mengayalilan kareng 
 bulung a makasuglung ketang partikular a bulung. '''Makapal la pangasulat''' deng bulung
 king kekang watchlist (tala da reng babanten).",
@@ -1074,11 +1072,11 @@ Mamili ka sanang lagyung mas maglarawan keng kekang simpan.",
 'upload-proto-error-text' => 'Mangailangan yang URL a magumpisa king <code>http://</code> o <code>ftp://</code> ing pang-malaut a pamaglulan (remote upload).',
 'upload-file-error' => 'Pamagkamaling pangkilub (internal error)',
 'upload-file-error-text' => 'Mika pamagkamaling pangkilub aniang susubukan nang maglalang pansamantalang simpan king server.
-Pakiyaus me ing metung a talapanibala ning sistema (system administrator).',
+Pakiyaus me ing metung a talapanibala ([[Special:ListUsers/sysop|administrator]]).',
 'upload-misc-error' => 'E makikilalang pamagkamali king pamaglulan (unknown upload error)',
 'upload-misc-error-text' => 'Ating miliaring e makikilalang pamagkamali aniang maglulan.
 Pakilawe mu nung ustu ya at maliari yang luban ing URL, at subukan mung pasibayu.
-Nung atin pa muring prublema, maus kang talapanibala king sistema (system administrator).',
+Nung atin pa muring prublema, maus kang talapanibala ([[Special:ListUsers/sysop|administrator]]).',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => 'E ne ayabut ing URL',
@@ -1362,7 +1360,6 @@ click me ing \"Tuknangan ing pamagbante\" (Unwatch) king gilid na ning bulung.",
 'unwatchthispage' => 'Tuknang kang magbante',
 'notanarticle' => 'E ya bulung ding kalamnan (content page)',
 'notvisiblerev' => 'Mebura ya itang mibayu (revision)',
-'watchnochange' => 'Alang me-edit kareng kekang babanten ketang panaun a makabili keti.',
 'watchlist-details' => "{{PLURAL:$1|$1 bulung|$1 bulung}} king kekang watchlist, e la kayabe deng ''talk pages''.",
 'wlheader-enotif' => 'Makasalangi (enabled) ing pamipabalu kapamilatan ning e-mail.',
 'wlheader-showupdated' => "'''Makapal''' la pangasulat deng bulung a miyalilan manibat aniang tauli mu lang pintalan.",
index 64377fa..b507879 100644 (file)
@@ -228,7 +228,6 @@ $messages = array(
 'disclaimers' => 'Démintis',
 'disclaimerpage' => 'Project:Déminti général',
 'edithelp' => 'Éditer el aiyude',
-'edithelppage' => 'Help:Édichion',
 'helppage' => 'Help:Étnus',
 'mainpage' => 'Moaite Pache',
 'mainpage-description' => 'Moaite Pache',
@@ -616,7 +615,6 @@ Ale doét mie éte pu longue éq $1 {{PLURAL:$1|caracter|caractéres}}.',
 'recentchangeslinked' => 'Darins canjemints érliés',
 'recentchangeslinked-toolbox' => 'Suivi des paches loïées',
 'recentchangeslinked-title' => 'Cangemints à pérpos éd "$1"',
-'recentchangeslinked-noresult' => "I n’y a poin d' modificacion des paches loïées pindant l'période couésie.",
 'recentchangeslinked-summary' => "Ch'est eune lisse d'chés darins canjemints su chés paches qu'ont un loïen aveuc l'pache-lo. Chés paches din vote [[Special:Watchlist|''lisse à suire'']] il sont in '''cros'''.",
 'recentchangeslinked-page' => 'Nom del pache:',
 'recentchangeslinked-to' => "Vir putot chés canjemints d'chés paches aveuc un loïen su l'pache-lo",
index f52d5d3..3dfc3fe 100644 (file)
@@ -217,7 +217,6 @@ $messages = array(
 'disclaimers' => 'Impressum',
 'disclaimerpage' => 'Project:Impressum',
 'edithelp' => 'Hilf zum Ennere',
-'edithelppage' => 'Help:Tscheensche',
 'helppage' => 'Help:Hilf',
 'mainpage' => 'Haaptblatt',
 'mainpage-description' => 'Haaptblatt',
@@ -399,7 +398,6 @@ Paesswatt fer nau: $2',
 'nextn' => 'neegschte {{PLURAL:$1|$1}}',
 'viewprevnext' => 'Zeige ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-new' => "'''Schtaert des Blatt „[[:$1|$1]]“ uf dem Wiki.'''",
-'searchhelp-url' => 'Help:Hilf',
 'searchprofile-everything' => 'Abaddiche',
 'searchprofile-articles-tooltip' => 'Uffgucke in $1',
 'searchprofile-project-tooltip' => 'Uffgucke in $1',
index a254e04..eddecda 100644 (file)
@@ -8,6 +8,7 @@
  * @file
  *
  * @author Als-Holder
+ * @author Imbericle
  * @author M-sch
  * @author Manuae
  * @author SPS
@@ -20,8 +21,8 @@ $namespaceNames = array(
        NS_MEDIA            => 'Medium',
        NS_SPECIAL          => 'Schbezial',
        NS_TALK             => 'Babble',
-       NS_USER             => 'Benudzer',
-       NS_USER_TALK        => 'Benudzer_Dischbediere',
+       NS_USER             => 'Middawaida',
+       NS_USER_TALK        => 'Middawaida_Dischbediere',
        NS_PROJECT_TALK     => '$1_Dischbediere',
        NS_FILE             => 'Dadai',
        NS_FILE_TALK        => 'Dadai_Dischbediere',
@@ -31,46 +32,63 @@ $namespaceNames = array(
        NS_TEMPLATE_TALK    => 'Vorlach_Dischbediere',
        NS_HELP             => 'Hilf',
        NS_HELP_TALK        => 'Hilf_Dischbediere',
-       NS_CATEGORY         => 'Kadegorie',
-       NS_CATEGORY_TALK    => 'Kadegorie_Dischbediere',
+       NS_CATEGORY         => 'Sachgrubb',
+       NS_CATEGORY_TALK    => 'Sachgrubb_Dischbediere',
 );
 
 $namespaceAliases = array(
        # German namespaces
-       'Medium'               => NS_MEDIA,
-       'Spezial'              => NS_SPECIAL,
-       'Diskussion'           => NS_TALK,
-       'Benutzer'             => NS_USER,
-       'Benutzer_Diskussion'  => NS_USER_TALK,
-       '$1_Diskussion'        => NS_PROJECT_TALK,
-       'Datei'                => NS_FILE,
-       'Datei_Diskussion'     => NS_FILE_TALK,
-       'MediaWiki_Diskussion' => NS_MEDIAWIKI_TALK,
-       'Vorlage'              => NS_TEMPLATE,
-       'Vorlage_Diskussion'   => NS_TEMPLATE_TALK,
-       'Hilfe'                => NS_HELP,
-       'Hilfe_Diskussion'     => NS_HELP_TALK,
-       'Kategorie'            => NS_CATEGORY,
-       'Kategorie_Diskussion' => NS_CATEGORY_TALK,
+       'Medium'                 => NS_MEDIA,
+       'Spezial'                => NS_SPECIAL,
+       'Diskussion'             => NS_TALK,
+       'Benutzer'               => NS_USER,
+       'Benutzer_Diskussion'    => NS_USER_TALK,
+       'Benudzer'               => NS_USER,
+       'Benudzer_Dischbediere'  => NS_USER_TALK,
+       '$1_Diskussion'          => NS_PROJECT_TALK,
+       'Datei'                  => NS_FILE,
+       'Datei_Diskussion'       => NS_FILE_TALK,
+       'MediaWiki_Diskussion'   => NS_MEDIAWIKI_TALK,
+       'Vorlage'                => NS_TEMPLATE,
+       'Vorlage_Diskussion'     => NS_TEMPLATE_TALK,
+       'Hilfe'                  => NS_HELP,
+       'Hilfe_Diskussion'       => NS_HELP_TALK,
+       'Kategorie'              => NS_CATEGORY,
+       'Kategorie_Diskussion'   => NS_CATEGORY_TALK,
+       'Kadegorie'              => NS_CATEGORY,
+       'Kadegorie_Dischbediere' => NS_CATEGORY_TALK,
 );
 
 $messages = array(
 # User preference toggles
-'tog-showtoolbar' => "Werkzaich zum Bearwaide zaische (dodezu brauchd's JavaScript)",
-'tog-showhiddencats' => 'Zaisch vaschdeglde Kadegorije',
-
-'underline-always' => 'Immer',
-'underline-never' => 'Garnet',
-'underline-default' => 'Des nemme, was em Browser gsaachd hoschd.',
+'tog-underline' => 'Lingg unnaschdraische',
+'tog-hideminor' => 'Vaschdegg klääne Bearwaidunge',
+'tog-hidepatrolled' => 'Vaschdegg gsischdede Ännarunge',
+'tog-extendwatchlist' => 'Zaisch alle Ännarunge unn ned nur die ledschde',
+'tog-showtoolbar' => "Wergzaisch fas Beawaide zaische (dodezu brauchd's JavaScript)",
+'tog-previewontop' => 'Vorbligg owwahalwb vum Beaawaidungsfenschda zaische',
+'tog-previewonfirst' => 'Zaischen Vorbligg baim erschdemol Schaffe',
+'tog-oldsig' => 'Voahonneni Unnaschfrid',
+'tog-showjumplinks' => 'Schdellde "Hubs uff"-Lingg',
+'tog-uselivepreview' => 'Uuvazeschada Vorbligg (bneedischd JavaScript) (vasugswais)',
+'tog-showhiddencats' => 'Zaisch vaschdeglde Grubbe',
+
+'underline-always' => 'Imma',
+'underline-never' => 'Gaaned',
+'underline-default' => 'Des nemme, wum Browser gsachd hoschd.',
+
+# Font style option in Special:Preferences
+'editfont-sansserif' => 'Sans-serif Schrifd',
+'editfont-serif' => 'Serif Schrifd',
 
 # Dates
 'sunday' => 'Sundaach',
 'monday' => 'Mondaach',
 'tuesday' => 'Dienschdaach',
-'wednesday' => 'Midwoch',
+'wednesday' => 'Middwoch',
 'thursday' => 'Dunnaschdaach',
 'friday' => 'Fraidaach',
-'saturday' => 'Somschdaach',
+'saturday' => 'Sõmschdaach',
 'sun' => 'Su',
 'mon' => 'Mo',
 'tue' => 'Di',
@@ -86,24 +104,24 @@ $messages = array(
 'june' => 'Juni',
 'july' => 'Juli',
 'august' => 'Auguschd',
-'september' => 'Sebdember',
-'october' => 'Ogdower',
-'november' => 'Nowember',
-'december' => 'Dezember',
-'january-gen' => 'Jänner',
-'february-gen' => 'Fewwer',
+'september' => 'Sebdemba',
+'october' => 'Ogdowa',
+'november' => 'Nowemba',
+'december' => 'Dezemba',
+'january-gen' => 'Janua',
+'february-gen' => 'Februa',
 'march-gen' => 'März',
 'april-gen' => 'Abril',
 'may-gen' => 'Mai',
 'june-gen' => 'Juni',
 'july-gen' => 'Juli',
 'august-gen' => 'Auguschd',
-'september-gen' => 'Sebdember',
-'october-gen' => 'Ogdower',
-'november-gen' => 'Nowember',
-'december-gen' => 'Dezember',
-'jan' => 'Jän',
-'feb' => 'Few',
+'september-gen' => 'Sebdemba',
+'october-gen' => 'Ogdowa',
+'november-gen' => 'Nowemba',
+'december-gen' => 'Dezemba',
+'jan' => 'Jan',
+'feb' => 'Feb',
 'mar' => 'Mär',
 'apr' => 'Abr',
 'may' => 'Mai',
@@ -116,287 +134,437 @@ $messages = array(
 'dec' => 'Dez',
 
 # Categories related messages
-'pagecategories' => '{{PLURAL:$1|Kadegorie|Kadegorie}}',
-'category_header' => 'Saide in de Kadegorie „$1“',
-'subcategories' => 'Unnerkadegorie',
-'category-media-header' => 'Medie in de Kadegorie „$1“',
-'category-empty' => '"Die Kadegorie hod kä Said oda Medije."',
-'hidden-categories' => '{{PLURAL:$1|Verschdegelde Kadegorie|Verschdegelde Kadegorije}}',
-'hidden-category-category' => 'Verschdegelde Kadegorije',
-'category-subcat-count' => '{{PLURAL:$2|Die Kadegorie hod bloß die Unnakadegorie.|Die Kadegorie hod {{PLURAL:$1|Unnakadegorie|$1 Unnakadegorije}},vun gsomd $2.}}',
-'category-article-count' => "{{PLURAL:$2|In derre Kadegorie hot's numme die Said.|Die {{PLURAL:$1|Said|$1 Saide}} gebbt's in derre Kadegorie, vun insgsamt $2.}}",
-'category-file-count' => "{{PLURAL:$2|Die Kadegorie hod bloß ä Said.|Die {{PLURAL:$1|Said isch äni vun $2 Saide:|S'werren $1 vun gsomd $2 Saide gzaischd:}}}}",
-'listingcontinuesabbrev' => '(Forts.)',
-'noindex-category' => 'Saide, wu ned im Vazaischnis sin',
-
-'about' => 'Iwwer',
-'newwindow' => '(werd im e naie Fenschter uffgmacht)',
+'pagecategories' => '{{PLURAL:$1|Sachgrubb|Sachgrubbe}}',
+'category_header' => 'Saide inde Sachgrubb „$1“',
+'subcategories' => 'Unnagrubbe',
+'category-media-header' => 'Medje indɐ Sachgrubb „$1“',
+'category-empty' => '"Die Sachgrubb hodd kä Said odda Medje."',
+'hidden-categories' => '{{PLURAL:$1|Vaschdegldi Sachgrubb|Vaschdeglde Sachgrubbe}}',
+'hidden-category-category' => 'Verschdegelde Grubbe',
+'category-subcat-count' => '{{PLURAL:$2|Die Sachgrubb hod die Unnagrubb.|Die Sachgrubb hod {{PLURAL:$1|Unnagrubb|$1 Unnagrubbe}}, vun gsomd $2.}}',
+'category-subcat-count-limited' => 'Die Sachgrubb hod die {{PLURAL:$1|Unagrubb|$1 Unagrubbe}}.',
+'category-article-count' => '{{PLURAL:$2|Indɐ Sachgrubb hodds die Said.|Die {{PLURAL:$1|Said|$1 Saide}} gibbds inde Sachgrubb, vun gsomd $2.}}',
+'category-article-count-limited' => 'Die {{PLURAL:$1|Said|$1 Saide}} hodds inde Sachgrubb.',
+'category-file-count' => "{{PLURAL:$2|Die Sachgrubb hodd ä Said.|Die {{PLURAL:$1|Said isch änni vun $2 Saide:|S'werren $1 vun gsomd $2 Saide gzaischd:}}}}",
+'category-file-count-limited' => 'Die {{PLURAL:$1|Dadai|$1 Dadije}} hodds inde Sachgrubb.',
+'listingcontinuesabbrev' => '(Waida)',
+'index-category' => 'Eafassdi Saide',
+'noindex-category' => 'Saide, wu ned im Vazaischnis sinn',
+
+'about' => 'Iwwa',
+'newwindow' => '(werd innem naije Fenschda uffgmachd)',
 'cancel' => 'Abbresche',
+'moredotdotdot' => 'Mea …',
 'mypage' => 'Said',
 'mytalk' => 'Dischbediere',
 'navigation' => 'Nawigadzion',
+'and' => '&#32;unn',
 
 # Cologne Blue skin
 'qbfind' => 'Finne',
-'qbedit' => 'Bearwaide',
-'qbmyoptions' => 'Mai Saide',
+'qbbrowse' => 'Duaschschdewere',
+'qbedit' => 'Beawaide',
+'qbpageoptions' => 'Die Said',
+'qbmyoptions' => 'Moi Saide',
+'qbspecialpages' => 'Schbezialsaide',
 'faq' => 'Ofd gschdeldi Froche',
 
 # Vector skin
+'vector-action-addsection' => 'Abschnidd dzufiesche',
 'vector-action-delete' => 'Lesche',
-'vector-action-move' => 'Verschiewe',
+'vector-action-move' => 'Vaschiewe',
 'vector-action-protect' => 'Schidze',
-'vector-view-create' => 'Oleesche',
-'vector-view-edit' => 'Bearwaide',
+'vector-action-undelete' => 'Zriggbringe',
+'vector-view-create' => 'Õleesche',
+'vector-view-edit' => 'Beawaide',
 'vector-view-history' => 'Dadaigschischd',
 'vector-view-view' => 'Lese',
-'vector-view-viewsource' => 'Gwelltegschd ozaische',
-'actions' => 'Agzione',
-'namespaces' => 'Nomensreum',
+'vector-view-viewsource' => 'Gwelltegschd zaische',
+'actions' => 'Maßnõhme',
+'namespaces' => 'Nõmensreum',
 'variants' => 'Tibbe',
 
-'errorpagetitle' => 'Fehler',
+'errorpagetitle' => 'Irrdumm',
 'returnto' => 'Zrick zu $1.',
 'tagline' => 'Vun {{SITENAME}}',
-'help' => 'Hilf',
-'search' => 'Suche',
-'searchbutton' => 'Such',
-'go' => 'Adiggel',
-'searcharticle' => 'Suche',
-'history' => 'Gschichd vun de Said',
-'history_short' => 'Versione',
-'printableversion' => 'Drugg-Aasischd',
-'permalink' => 'Permanentlink',
-'print' => 'Ausdrugge',
-'view' => 'Lese',
-'edit' => 'Bearwaide',
-'create' => 'Aleesche',
-'editthispage' => 'Die Said bearwaide',
+'help' => 'Unaschdidzung',
+'search' => 'Nochgugge',
+'searchbutton' => 'Gugg',
+'go' => 'Ausfiere',
+'searcharticle' => 'Ausfiare',
+'history' => 'Gschischd vunde Said',
+'history_short' => 'Gschischd',
+'printableversion' => 'Drugg-Õsischd',
+'permalink' => 'Schdendischa Lingg',
+'print' => 'Drugge',
+'view' => 'Ogugge',
+'edit' => 'Beawaide',
+'create' => 'Õleesche',
+'editthispage' => 'Die Said beawaide',
+'create-this-page' => 'Mach die Said',
 'delete' => 'Lesche',
-'undelete_short' => '{{PLURAL:$1|ä Ännerung|$1 Ännerunge}} widderherschdelle',
+'deletethispage' => 'Lesch die Said',
+'undelete_short' => '{{PLURAL:$1|ä Ännarung|$1 Ännarunge}} widdaheaschdelle',
+'viewdeleted_short' => 'Zaisch {{PLURAL:$1|ä gleschdi Ännarung|$1 gleschde Ännarunge}}',
 'protect' => 'schidze',
-'protect_change' => 'ännere',
+'protect_change' => 'ännare',
 'protectthispage' => 'Die Said schidze',
-'unprotect' => 'Saideschudz änare',
-'newpage' => 'Naie Said',
-'talkpage' => 'Iwwer die Said dischbediere',
+'unprotect' => 'Saideschudz ännare',
+'newpage' => 'Naiji Said',
+'talkpage' => 'Iwwa die Said dischbediere',
 'talkpagelinktext' => 'Dischbediere',
-'personaltools' => 'Perseenliche Werkzeische',
+'specialpage' => 'Schbezielli Said',
+'personaltools' => 'Persenlischs Wergzaisch',
+'postcomment' => 'Naije Abschnidd',
+'articlepage' => 'Inhald õgugge',
 'talk' => 'Dischbediere',
 'views' => 'Uffruf',
-'toolbox' => 'Wergzaisch',
-'otherlanguages' => 'In annere Schbroche',
-'redirectedfrom' => '(Wairrerglaidet vun $1)',
-'redirectpagesub' => 'Wairerlaidungssaid',
-'lastmodifiedat' => 'Die Said isch zum ledschde Mol gännad worre om $1, om $2.',
-'viewcount' => 'Die Seid isch bis jetzerd {{PLURAL:$1|$1|$1}} mol uffgerufe worre.',
-'jumpto' => 'Wegsl zu:',
+'toolbox' => 'Wergzaischkischd',
+'userpage' => 'Middawaidasaid õgugge',
+'projectpage' => 'Brojegdsaid õgugge',
+'imagepage' => 'Dadaisaid õgugge',
+'mediawikipage' => 'Nochrischd õgugge',
+'templatepage' => 'Voalach õgugge',
+'viewhelppage' => 'Hilf õgugge',
+'categorypage' => 'Zaisch die Kadegorie',
+'viewtalkpage' => 'Zaischs Gbabbl',
+'otherlanguages' => 'In õnnare Schbroche',
+'redirectedfrom' => '(Nochgschiggd worre vun $1)',
+'redirectpagesub' => 'Nochschigg-Said',
+'lastmodifiedat' => 'Die Said ischs ledschde Mol gännad worre õm $1, õm $2.',
+'viewcount' => 'Die Said isch bis jedz {{PLURAL:$1|$1|$1}} mol uffgrufe worre.',
+'protectedpage' => 'Said schidze',
+'jumpto' => 'Hubs uff:',
 'jumptonavigation' => 'Nawigadzion',
-'jumptosearch' => 'Suche',
+'jumptosearch' => 'Nochgugge',
+'view-pool-error' => 'Dudma leed, die Maschine isch graad iwwalaschd.
+Zu vieli Middawaida guggn grad die Said õ.
+Waad ä bissl un brobieas nomol.
+
+$1',
+'pool-errorunknown' => 'Ubkonnde Irrdumm',
 
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
-'aboutsite' => 'Iwwer {{SITENAME}}',
-'aboutpage' => 'Project:Iwwer',
-'copyright' => 'Was do drin schdeht isch unner $1 verfiechbar.',
-'copyrightpage' => '{{ns:project}}:Urhewerrecht',
-'currentevents' => 'Was grad so bassierd isch',
-'currentevents-url' => 'Project: Leschdi Eraigniss',
+'aboutsite' => 'Iwwa {{SITENAME}}',
+'aboutpage' => 'Project:Iwwa',
+'copyright' => 'Was do drin schded isch unna $1 vafieschba.',
+'copyrightpage' => '{{ns:project}}:Urhewareschd',
+'currentevents' => 'Aggduelli Gscheniss',
+'currentevents-url' => 'Project: Leschdi Gschneniss',
 'disclaimers' => 'Hafdungsausschluß',
 'disclaimerpage' => 'Project:Impressum',
-'edithelp' => 'Hilf fas Bearwaide',
-'edithelppage' => 'Help:Ännere',
+'edithelp' => 'Unaschdizung fas Beawaide',
 'helppage' => 'Help:Inhald',
 'mainpage' => 'Schdadsaid',
 'mainpage-description' => 'Schdadsaid',
+'policy-url' => 'Project:Grundsedz',
 'portal' => '{{SITENAME}}-Bordal',
 'portal-url' => 'Project:Gmoinschafdsbordal',
-'privacy' => 'Dadeschuds',
-'privacypage' => 'Project:Daadeschutz',
+'privacy' => 'Daadeschuds',
+'privacypage' => 'Project:Daadeschuds',
 
-'badaccess' => 'Kää ausraichende Reschd',
+'badaccess' => 'Ned genuch Reschd',
 
+'ok' => 'Alla gud',
 'retrievedfrom' => 'Vun "$1"',
-'youhavenewmessages' => 'Du hoscht $1 ($2).',
-'newmessageslink' => 'naie Nochrischde',
-'newmessagesdifflink' => 'ledschde Ännerung',
-'editsection' => 'bearwaide',
-'editold' => 'bearwaide',
-'viewsourceold' => 'Quelltegschd ogugge',
-'editlink' => 'bearwaide',
-'viewsourcelink' => 'Gwell aagugge',
-'editsectionhint' => 'Abschnidd ännere: $1',
+'youhavenewmessages' => 'Du hoschd $1 ($2).',
+'newmessageslink' => 'naije Nochrischde',
+'newmessagesdifflink' => 'ledschdi Ännarung',
+'newmessagesdifflinkplural' => 'ledschdi {{PLURAL:$1|Ännarung|Ännarunge}}',
+'youhavenewmessagesmulti' => 'Do hoschd ä Nochrischd grischd: $1',
+'editsection' => 'beawaide',
+'editold' => 'beawaide',
+'viewsourceold' => 'Gwelltegschd õgugge',
+'editlink' => 'beawaide',
+'viewsourcelink' => 'Gwell õgugge',
+'editsectionhint' => 'Deel ännare: $1',
 'toc' => 'Inhald',
 'showtoc' => 'zaische',
-'hidetoc' => 'versteggle',
-'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 (Said gebbds nid)',
+'hidetoc' => 'vaschdeggle',
+'collapsible-collapse' => 'Oiglabbe',
+'collapsible-expand' => 'Uffglabbe',
+'thisisdeleted' => '$1 õgugge odda widdaheaschdelle?',
+'viewdeleted' => '$1 zaische?',
+'restorelink' => '{{PLURAL:$1|ä gleschdi Ännarung|$1 gleschde Ännarunge}}',
+'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 (Said hodds nedd)',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'Said',
-'nstab-user' => 'Benudzersaid',
-'nstab-media' => 'Media',
+'nstab-user' => 'Middawaidasaid',
+'nstab-media' => 'Medije',
 'nstab-special' => 'Schbezialsaid',
 'nstab-project' => 'Bordal',
-'nstab-image' => 'Dadei',
-'nstab-mediawiki' => 'Mitdeelung',
-'nstab-template' => 'Vorlaach',
-'nstab-help' => 'Hilf',
-'nstab-category' => 'Kadegorie',
+'nstab-image' => 'Dadai',
+'nstab-mediawiki' => 'Middeelung',
+'nstab-template' => 'Vorlach',
+'nstab-help' => 'Unaschdidzung',
+'nstab-category' => 'Sachgrubb',
 
-# General errors
-'missing-article' => "De Text fer „$1“ $2 isch inde Daadebong'g nit gfunne worre.
+# Main script and global functions
+'nosuchaction' => 'Des hodds nedd',
+'nosuchspecialpage' => 'Schbezialsaid hodds nedd',
 
-Normalerwais hääßd des, dass die Said gleschd worre isch.
-
-Wenns des nit isch, hoschd villaischd en Fehler in de Daadebong'g gfunne.
-Bidde meldsm [[Special:ListUsers/sysop|Adminischdrador]], un gebb d URL dezu aa.",
-'missingarticle-rev' => '(Versionsnummer#: $1)',
+# General errors
+'error' => 'Irrdumm',
+'databaseerror' => 'Daadebongg-Irrdumm',
+'readonly' => 'Daadebongg blogiead',
+'missing-article' => 'De Tegschd fa „$1“ $2 isch inde Daadebongg nedd gfunne worre.
+
+Noamalawees heeßd des, dass die Said gleschd worre isch.
+
+Wonnse des awwa nedd isch, hoschd villaischdn Irdumm inde Daadebongg gfunne.
+Bidde meldsm [[Special:ListUsers/sysop|Adminischdrador]], un gebbde URL dzu õ.',
+'missingarticle-rev' => '(Ausgawenumma#: $1)',
+'missingarticle-diff' => '(Unnaschied: $1, $2)',
+'internalerror' => 'Inderna Irrdumm',
+'internalerror_info' => 'Inderna Irrdumm: $1',
+'fileappenderrorread' => 'Beim dzugiesche hoddma „$1“ nedd lese kenne.',
+'fileappenderror' => '"$1" hoddma nedd zu "$2" dzugiesche kenne.',
+'filecopyerror' => '"$1" hoddma nedd zu "$2" kobiere kenne.',
+'filerenameerror' => 'Die Said "$1" hoddma nedd uff "$2" umbenenne kenne.',
+'filedeleteerror' => '"$1" hoddma nedd lesche kenne.',
+'directorycreateerror' => 'S\'Vazaischnis "$1" hoddma nedd mache kenne.',
+'filenotfound' => '"$1" hoddma nedd finne kenne.',
+'fileexistserror' => '"$1" hodds schun: do hoddma nix schraiwe kenne.',
+'unexpected' => 'Uueawadeda Wead: "$1"="$2".',
+'formerror' => 'Irrdumm: hoddma nedd mache kenne.',
+'badarticleerror' => 'Des geed nedd uffde Said.',
+'cannotdelete-title' => '"$1" komma nedd lesche',
 'badtitle' => 'Schleschde Didl',
-'badtitletext' => 'De Titel vun de aageforderte Said isch nid giltich, leer, odder e nid giltiche Link vun eme annere Wiki.
-S kann sai, dass es ää odder meh Zaiche drin hot, wu im Titel vun de Said nid gebraucht werre därfe.',
-'viewsource' => 'Quelltegschd bedrachde',
+'badtitletext' => 'De Tidl vunde õgfordad Said isch nedd gildisch, lea, oddan nedd gildische Lingg vunem õnnare Wiki.
+S konn soi, dasses ä odda mea Zaische drin hodd, wu im Tidl vunde Said nedd gbrauchd werre dirfn.',
+'viewsource' => 'Gwelltegschd õgugge',
+'viewsource-title' => "D'Tegschd vun $1 õgugge",
+'viewsourcetext' => 'Konschdas õgugge un abschraiwe',
+'viewyourtext' => 'Konschda doi Eawed uff de Said õgugge un abschraiwe:',
+'ns-specialprotected' => 'Do komma nedd drõ schaffe',
+'exception-nologin' => 'Bischd nedd õgmeld',
+
+# Virus scanner
+'virus-unknownscanner' => 'Uubekonnda Viresucha:',
 
 # Login and logout pages
-'yourname' => 'Benutzername:',
-'yourpassword' => 'Password:',
-'yourpasswordagain' => 'Password nomol oigewe:',
-'remembermypassword' => 'Mai Passwort uff dem Computer merke (hechschtens fer $1 {{PLURAL:$1|Dach|Dach}})',
-'login' => 'Omelde',
-'nav-login-createaccount' => 'Aamelde / Benudzerkondo aaleche',
-'loginprompt' => 'Cookies mugschd fa {{SITENAME}} schun ohawe.',
-'userlogin' => 'Omelde / Benutzerkonto anleche',
-'logout' => 'Abmelde',
+'welcomeuser' => 'Willkumme, $1!',
+'yourname' => 'Middawaidanõme:',
+'yourpassword' => 'Kennword:',
+'yourpasswordagain' => 'Kennword nomol oigewe:',
+'remembermypassword' => 'Moi Kennword uffm Rechna merge (hegschdns fa $1 {{PLURAL:$1|Daach|Daach}})',
+'login' => 'Õmelde',
+'nav-login-createaccount' => 'Õmelde / Kondo õleesche',
+'loginprompt' => 'Cookies mugschd fa {{SITENAME}} schun õhawe.',
+'userlogin' => 'Õmelde / Kondo õleesche',
+'userloginnocreate' => 'Oilogge',
+'logout' => 'Uffhere',
 'userlogout' => 'Uffhere',
 'nologin' => 'Hoschd noch kä Kondo? $1',
-'nologinlink' => 'E Benutzerkondo aaleche',
-'createaccount' => 'Bnudza oleesche',
+'nologinlink' => 'E Kondo õleesche',
+'createaccount' => 'Kondo õleesche',
 'gotaccount' => 'Hoschd schun ä Kondo? $1',
-'gotaccountlink' => 'Omelde',
-'userlogin-resetlink' => 'Hoschd doi Dade vagesse?',
-'mailmypassword' => 'Nais Passwort per E-Mail schicke',
+'gotaccountlink' => 'Õmelde',
+'userlogin-resetlink' => 'Hoschd doi Daade vagesse?',
+'createaccountreason' => 'Grund:',
+'badretype' => 'Kennword bassd nedd',
+'userexists' => 'De Middawaida hodds schun.
+Nemmen onnare.',
+'loginerror' => 'Irrdumm baim Õmelde',
+'createaccounterror' => 'Kondo $1 komma nedd mache',
+'loginsuccesstitle' => 'Konschd schaffe',
+'login-userblocked' => 'De Middawaida deaf do nemme schaffe.',
+'wrongpasswordempty' => 'Hoschds Kennword vagesse. Mags nomol.',
+'passwordtooshort' => 'Kennword muss {{PLURAL:$1|1 Zaische|$1 Zaische}} hawe.',
+'password-name-match' => 'Doi Kennword deaf nedd so heese wie du.',
+'password-login-forbidden' => 'De Nõme uns Kennword sinn fabode.',
+'mailmypassword' => 'Naijs Kennword iwwa E-Mail schigge',
+'accountcreated' => 'Kondo õgleeschd',
+'login-abort-generic' => 'Hodd nedd gklabbd - Abgbroche',
 'loginlanguagelabel' => 'Schbrooch: $1',
 
+# Change password dialog
+'resetpass' => 'Kennword wegsle',
+'oldpassword' => 'Alds Kennword',
+'newpassword' => 'Naijes Kennword',
+'retypenew' => 'Naijes Kennword nomol oigewe:',
+'resetpass_forbidden' => 'Kennwerda komma nedd wegsle',
+'resetpass-submit-loggedin' => 'Password wegsle',
+'resetpass-submit-cancel' => 'Uffhere',
+'resetpass-temp-password' => 'Bschrengds Kennword',
+
+# Special:PasswordReset
+'passwordreset' => 'Kennword zriggsedze',
+'passwordreset-legend' => 'Kennword zriggsedze',
+'passwordreset-username' => 'Middawaida:',
+'passwordreset-capture' => 'E-Mail õgugge?',
+
+# Special:ChangeEmail
+'changeemail-none' => '(käni)',
+'changeemail-cancel' => 'Uffhere',
+
 # Edit page toolbar
 'bold_sample' => 'Feddi Schrifd',
-'bold_tip' => 'Fedde Schrifd',
-'italic_sample' => 'Kursiv Schrifd',
-'italic_tip' => 'Kursiv Schrifd',
-'link_sample' => 'Schdischword',
-'link_tip' => 'Interner Link',
-'extlink_sample' => "http://www.example.com Ling'gtegschd",
-'extlink_tip' => 'Externer Link (uff http:// Acht gewwe)',
-'headline_sample' => 'Schlaachzail Iwwaschrifd',
-'headline_tip' => 'Iwwerschrift Ewene 2',
-'nowiki_sample' => 'Gebb do en Tegschd ai, wu nit formatiert werd',
-'nowiki_tip' => 'Wiki-Formatierunge ignoriere',
-'image_tip' => 'Bildverwais',
-'media_tip' => 'Dadeilink',
-'sig_tip' => 'Dai Unnerschrifd mid ener Zaidaagab',
-'hr_tip' => 'Horizontale Linie (sparsam verwenne)',
+'bold_tip' => 'Feddi Schrifd',
+'italic_sample' => 'Schebbi Schrifd',
+'italic_tip' => 'Schebbi Schrifd',
+'link_sample' => 'Schdischwoad',
+'link_tip' => 'Inderna Lingg',
+'extlink_sample' => 'http://www.example.com Linggtegschd',
+'extlink_tip' => 'Exderna Lingg (uff http:// uffbasse)',
+'headline_sample' => 'Schlaachzail',
+'headline_tip' => 'Iwwaschrifd Ewene 2',
+'nowiki_sample' => "Gebb do'n Tegschd oi, wu nedd uffberaid werd",
+'nowiki_tip' => 'Wiki-Formatierunge ned beachde',
+'image_tip' => 'Bildvawais',
+'media_tip' => 'Dadailingg',
+'sig_tip' => 'Doi Unnaschrifd midena Zaidõgawb',
+'hr_tip' => 'Waagreschdi Linje (schbaasõm vawende)',
 
 # Edit pages
-'summary' => 'Zammefassung:',
+'summary' => 'Iwwabligg:',
 'subject' => 'Bedreff:',
-'minoredit' => 'Des isch e klänni Bearwaidung',
-'watchthis' => 'Die Said im Aach bhalde',
-'savearticle' => 'Said schbeichere',
+'minoredit' => 'Des ische glänni Beawaidung',
+'watchthis' => 'Die Said im Aach palde',
+'savearticle' => 'Said schbaischere',
 'preview' => 'Voaschau',
-'showpreview' => 'Vorschau zaische',
-'showlivepreview' => 'Live-Vorschau',
-'showdiff' => 'Ännerunge zaische',
-'anoneditwarning' => "'''Baßma uff:''' Du bischd nit aagemeldt. Dai IP-Adress werd in de Gschichd vum Aadiggl gspaischad.",
-'summary-preview' => 'Zammefassung:',
-'newarticle' => '(Nai)',
-'newarticletext' => "Du bisch eme Link nogange zu re Said, wu s no gar nit gebbt.
-Zum die Said aaleche, kannscht do in dem Käschtel unne aafange mid schraiwe (guck[[{{MediaWiki:Helppage}}|Hilfe]] fer meh Informatione).
-Wenn do nid hin hoscht welle, no druck in Daim Browser uff '''Zrick'''.",
-'noarticletext' => 'Uff de Said hods noch kän Tegschd. Du konnschd uff onnere Saide nochm [[Special:Search/{{PAGENAME}}|Aidrach gugge]], <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} Logbuchaidrach gugge, wu dezu gherd],
-odda [{{fullurl:{{FULLPAGENAME}}|action=edit}} die Said bearwaide]</span>.',
-'previewnote' => "'''Deng'g droa, dass des numme e Vorschau isch.'''
-Doi Ännerunge sinn no nid gschbaichert worre!",
-'editing' => 'Am $1 bearwaide',
-'editingsection' => '$1 bearwaide (Abschnitt)',
+'showpreview' => 'Voaschau zaische',
+'showlivepreview' => 'Live-Voaschau',
+'showdiff' => 'Ännarunge zaische',
+'anoneditwarning' => "'''Baßma uff:''' Du bischd ned õgemeld. Doi IP-Adress werd inde Gschischd vum Adiggl gschbaischad.",
+'summary-preview' => 'Iwwabligg:',
+'blockedtitle' => 'Middawaida isch gschbead',
+'blockednoreason' => "s'hod kän Grund",
+'whitelistedittext' => 'Mugschd disch $1 fas schaffe',
+'loginreqtitle' => 'Mugschd disch õmelde',
+'loginreqlink' => 'Õmelde',
+'loginreqpagetext' => 'Mugschd disch $1 fas õgugge.',
+'accmailtitle' => 'Kennword gschiggd',
+'newarticle' => '(Naij)',
+'newarticletext' => "Du bischdm Lingg nochgõnge zu enna Said, wus ganedd hodd.
+Fa die Said õzleesche, konnschd do im Käschdl unne õfonge mid schraiwe (gugg [[{{MediaWiki:Helppage}}|Hilf]] fa mea Auskinfd).
+Wonn do nedd hoschd heakumme wolle, drigg uff Browser uff '''Zrigg'''.",
+'noarticletext' => 'Uffde Said hods noch kän Tegschd. Du konnschd uff õnnare Saide nochm [[Special:Search/{{PAGENAME}}|Oidrach gugge]], <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} Logbuchaidrach gugge, wu dezu kead],
+odda [{{fullurl:{{FULLPAGENAME}}|action=edit}} die Said beawaide]</span>.',
+'noarticletext-nopermission' => 'Do hods känn Tegschd.
+Du konschd uff onnare Saide [[Special:Search/{{PAGENAME}}|faden Tidl gugge]], odda <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} in alle Logs gugge]</span>, awwa du hoschd kä Ealauwnis die Said zu mache.',
+'updated' => '(Gännad)',
+'note' => "'''Hiwes:'''",
+'previewnote' => "'''Deng'g drõõ, dasses nua e Vorschau isch.'''
+Doi Ännarunge sinn noch nedd gschbaischadd worre!",
+'editing' => 'Õm $1 beawaide',
+'creating' => 'Magsch $1',
+'editingsection' => '$1 beawaide (de Deel)',
+'editingcomment' => '$1 beawaide (de Deel)',
+'editconflict' => 'Schdraid ums Ännare: $1',
 'yourtext' => 'Doin Tegschd',
 'storedversion' => 'Gschbaischerdi Version',
 'yourdiff' => 'Unaschied',
-'copyrightwarning' => "Bidde gebb achd, dass alle Baidräch zu {{SITENAME}} unner $2 vereffentlischd werre (guck $1 fer mehr Details).
-Wenn du nit willschd, dass deswu du gschriwwe hoschd, gänneret un kopierd werre kann, dann duu s do nit naischraiwe.<br />
-du gebbschd do au zu, dass Du des selwerschd gschriwwe hoschd orrer vun ere effendliche, fraie Quell ('''public domain''') orrer vun ere ähnliche fraie Quell her hoschd.
-'''SCHRAIB DO NIX NAI, WAS URHEWERRECHDLICH GSCHIZD ISCH!'''",
-'templatesused' => '{{PLURAL:$1|Vorlach wu uff derre Said gbrauchd werd|Vorlache wu uff derre Said gbrauchd werre}}:',
-'templatesusedpreview' => '{{PLURAL:$1|Vorlach wu in derre Vorschau gbrauchd werd|Vorlache wu in derre Vorschau gbrauchd werre}}:',
+'copyrightwarning' => "Baß uff, dass alli Baidräch fa {{SITENAME}} unna $2 vaeffendlischd werren (gugg $1 fa mea Enzlhaide).
+Wonnsda ned basse dud, dass des wu gschriwwe hoschd, gännad un kopiead werre konn, donn duus do ned noischraiwe.<br />
+Du gibbschd do a zu, dasses selwaschd gschriwwe hoschd odda vuna effendlischi, fraiji Gwell ('''public domain''') odda vuna ähnlichi fraiji Gwell hawe duschd.
+'''Du do nix noi schraiwe, wa unnam Uahewareschd gschizd isch!'''",
+'templatesused' => '{{PLURAL:$1|Vorlach wu uffde Said gbrauchd werd|Vorlache wu uffde Saide gbrauchd werren}}:',
+'templatesusedpreview' => '{{PLURAL:$1|Vorlach wu inde Vorschau gbrauchd werd|Vorlache wu inde Vorschau gbrauchd werren}}:',
 'template-protected' => '(gschizd)',
-'template-semiprotected' => '(halb-gschizd)',
-'hiddencategories' => 'Die Said ghert zu {{PLURAL:$1|1 versteckelte Kategorie|$1 versteckelte Kategorie}}:',
-'permissionserrorstext-withaction' => 'Du därfscht nid $2, wesche{{PLURAL:$1|m Grund|de Grind}}:',
-'recreate-moveddeleted-warn' => "'''Baßma uff: Du magschd do ä Said, wuma frija schumol geleschd kabd hod.'''",
+'template-semiprotected' => '(halwa-gschizd)',
+'hiddencategories' => 'Die Said kerd zu vaschdeggelde {{PLURAL:$1|1 Sachgrubb|$1 Sachgrubbe}}:',
+'permissionserrorstext-withaction' => 'Du därfschd nedd $2, weesch{{PLURAL:$1|m Grund|ede Grind}}:',
+'recreate-moveddeleted-warn' => "'''Baßma uff: Du maggschd do ä Said, wuma frija schumol geleschd kabd hod.'''",
 'moveddeleted-notice' => 'Die Said isch gleschd worre.
-De Leschaidrach fa die Said isch do unne als Kwell aagewwe.',
+De Leschoidrach fa die Said isch do unne als Gwell õgewwe.',
+'log-fulllog' => 'Alli Oidräsch vunde Logbischa õgugge',
+'edit-conflict' => 'Schdraid ums Ännare.',
+
+# Content models
+'content-model-text' => 'Glaategschd',
+'content-model-css' => 'CSS',
 
 # Parser/template warnings
 'post-expand-template-inclusion-warning' => "'''Baßma uff:''' Greeß vunde Vorlach isch iwwaschridde. Oinischi Vorlache werren ned bnuzd.",
 'post-expand-template-inclusion-category' => 'Saide mid Vorlache, wu die Greeß iwwaschridde worre isch',
-'post-expand-template-argument-warning' => "'''Baßma uff:''' Die Said hod wenigschdns ä Vorlach mida Kenngreeß, wu groß werre dud. Die Kenngreeß wead do ned ogeguggd.",
+'post-expand-template-argument-warning' => "'''Baßma uff:''' Die Said hodd wenigschdns ä Vorlach midä Kenngreeß, wu groß werre dud. Die Kenngreeß wead do nedd õgeguggd.",
+'post-expand-template-argument-category' => 'Saide, wu wegfallene Vorlachewead hawen.',
 
 # History pages
-'viewpagelogs' => 'Lochbischer fer die Said aagucke',
+'viewpagelogs' => 'Lochbischa fa die Said õgugge',
 'currentrev' => 'Ledschdi Änarung',
-'currentrev-asof' => 'Agduell Version vun $1',
-'revisionasof' => 'Version vun $1',
+'currentrev-asof' => 'Agduell Ausgab vun $1',
+'revisionasof' => 'Iwwaawaidung vun $1',
 'revision-info' => 'Ännarung vun $1 duasch $2',
 'previousrevision' => '← Älderi Beawaidung',
-'nextrevision' => 'Naiere Versione →',
-'currentrevisionlink' => 'Agduell Version',
+'nextrevision' => 'Naijari Ausgawb →',
+'currentrevisionlink' => 'Agduelli Ausgawb',
 'cur' => 'jedzischi',
-'next' => 'Negschde',
+'next' => 'Negschd',
 'last' => 'vorischi',
-'histlegend' => "Du kannscht zwää Versione auswähle un verglaiche.<br />
-Erklärung: '''({{int:cur}})''' = Unnerschied zu jetzert,
-'''({{int:last}})''' = Unnerschied zu de voriche Version, '''{{int:minoreditletter}}''' = klenni Ännerung.",
-'history-fieldset-title' => 'In de Versionsgschichd gugge',
+'page_first' => 'Easchd',
+'page_last' => 'Ledschd',
+'histlegend' => "Du konnschd zwää Ausgawe wehle un vaglaische.<br />
+Ealaidarung: '''({{int:cur}})''' = Unnaschied zu jezd,
+'''({{int:last}})''' = Unnaschied zude vorischi Ausgab, '''{{int:minoreditletter}}''' = gleni Ännarung.",
+'history-fieldset-title' => 'Gugg die Gschischd',
 'history-show-deleted' => 'Bloß gleschdi Saide zaische',
-'histfirst' => 'Ältschde',
-'histlast' => 'Naischde',
+'histfirst' => 'Äldschde',
+'histlast' => 'Naijschde',
+'historyempty' => '(lea)',
 
 # Revision feed
-'history-feed-item-nocomment' => '$1 om $2',
+'history-feed-title' => 'Ännarungsgschischd',
+'history-feed-item-nocomment' => '$1 õm $2',
 
 # Revision deletion
-'rev-delundel' => 'zaisch/verschdeggle',
+'rev-delundel' => 'zaisch/vaschdeggl',
+'rev-showdeleted' => 'zaische',
+'revisiondelete' => 'Lesche/Heaschdelle vun Ännarunge',
 'revdelete-show-file-submit' => 'Ja',
+'revdelete-hide-image' => 'Vaschdegglde Inhald',
+'revdelete-hide-name' => 'Vaschdeggls',
+'revdelete-hide-comment' => 'Vaschdeggls Resimee',
+'revdelete-hide-user' => 'Vaschdeggl Middawaidanome/IP',
+'revdelete-radio-same' => '(dudo nix ännare)',
 'revdelete-radio-set' => 'Ja',
 'revdelete-radio-unset' => 'Nä',
-'revdelete-submit' => 'Uff die gewehld {{PLURAL:$1|Version|Versione}} owende',
-'revdel-restore' => 'Sischdbakaid ännere',
-'revdel-restore-deleted' => 'gleschdi Änarunge',
-'revdel-restore-visible' => 'sischdbari Änarunge',
+'revdelete-log' => 'Grund:',
+'revdelete-submit' => 'Uff die {{PLURAL:$1|gewehld Asugab|gewehldi Ausgawe}} owende',
+'revdel-restore' => 'Sischdbakaid ännare',
+'revdel-restore-deleted' => 'gleschdi Ännarunge',
+'revdel-restore-visible' => 'sischdbari Ännarunge',
+'pagehist' => 'Gschischd vunde Said',
+'deletedhist' => 'Gleschde Gschischde',
+'revdelete-reasonotherlist' => 'Õnnare Grund',
+
+# History merging
+'mergehistory' => 'Gschischde zõmmefiere',
+'mergehistory-go' => 'Zaisch, wasma vaoinische konn',
+'mergehistory-submit' => 'Gschischde zõmmefiere',
+'mergehistory-reason' => 'Grund:',
 
 # Merge log
-'revertmerge' => 'Zammefiehrung rickgängich mache',
+'revertmerge' => 'Zõmmefiehrung rigggängisch mache',
 
 # Diffs
-'history-title' => 'Änarungsgschischd vun "$1"',
+'history-title' => 'Ännarungsgschischd vun "$1"',
 'lineno' => 'Zail $1:',
-'compareselectedversions' => 'Die Versione midnonna vaglaische',
-'editundo' => 'zrigg',
+'compareselectedversions' => 'Ausgawe midnonna vaglaische',
+'showhideselectedversions' => 'Zaisch/Vaschdeggl gwehldi Ausgawe',
+'editundo' => 'zriggnemme',
 
 # Search results
-'searchresults' => 'Ergebnis suche',
-'searchresults-title' => 'Ergewnis suche fer "$1"',
-'searchresulttext' => 'Fer mehr Informatione iwwer d Such in {{SITENAME}}, guck emol uff [[{{MediaWiki:Helppage}}|{{int:help}}]].',
-'searchsubtitle' => 'Du hoscht no \'\'\'[[:$1]]\'\'\' gesucht ([[Special:Prefixindex/$1|alle Saide wo mit "$1" aafange]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|alle Saide wo uf "$1" verlinkt sin]])',
-'searchsubtitleinvalid' => "Du hoscht '''$1''' gsucht",
-'notitlematches' => 'Kää Saidetitel gfunne',
-'notextmatches' => 'Kää Iwwerainstimmunge mit Inhalde',
-'prevn' => 'vorisch {{PLURAL:$1|$1}}',
-'nextn' => 'negschde {{PLURAL:$1|$1}}',
-'prevn-title' => 'Frijari $1 {{PLURAL:$1|result|Ergewnis}}',
-'nextn-title' => 'Negschdi $1 {{PLURAL:$1|result|Ergewnis}}',
-'shown-title' => 'Zaisch $1 {{PLURAL:$1|Ergewnis}} vunde Said',
+'searchresults' => 'Eagewnis nochgugge',
+'searchresults-title' => 'Eagewnis gugge fa "$1"',
+'searchresulttext' => 'Fa mea Ogawe iwwas Nochgugge uff {{SITENAME}}, guggmol uff [[{{MediaWiki:Helppage}}|{{int:help}}]].',
+'searchsubtitle' => 'Du hoschd noch \'\'\'[[:$1]]\'\'\' geguggd ([[Special:Prefixindex/$1|alle Saide, wu mid "$1" aafange]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|alle Saide, wu uff "$1" valinggd sinn]])',
+'searchsubtitleinvalid' => "Du hoschd '''$1''' gsuchd",
+'notitlematches' => 'Kän Saidedidl gfunne',
+'notextmatches' => 'Kä Iwwaoinschdimmunge midm Tegschd',
+'prevn' => 'ledschda {{PLURAL:$1|$1}}',
+'nextn' => 'negschd {{PLURAL:$1|$1}}',
+'prevn-title' => 'Frijari $1 {{PLURAL:$1|Eagewnis|Eagewnis}}',
+'nextn-title' => 'Negschdi $1 {{PLURAL:$1|Eagewnis|Eagewnis}}',
+'shown-title' => 'Zaisch $1 {{PLURAL:$1|Eagewnis}} bro Said',
 'viewprevnext' => 'Gugg ($1 {{int:pipe-separator}} $2) ($3)',
+'searchmenu-exists' => "'''Dohods ä Said \"[[:\$1]]\".'''",
 'searchmenu-new' => "'''Mach die Said „[[:$1]]“ im Wiki.'''",
 'searchprofile-articles' => 'Inhald',
 'searchprofile-project' => 'Hilf- un Brojegdsaide',
@@ -405,44 +573,90 @@ Erklärung: '''({{int:cur}})''' = Unnerschied zu jetzert,
 'searchprofile-advanced' => 'Foadgschridde',
 'searchprofile-articles-tooltip' => 'In $1 gugge',
 'searchprofile-project-tooltip' => 'In $1 gugge',
-'searchprofile-images-tooltip' => 'Gugg noch Bilder',
+'searchprofile-images-tooltip' => 'Gugg noch Bilda',
 'searchprofile-everything-tooltip' => 'Such iwwaraal (a wuma dischbedierd)',
-'searchprofile-advanced-tooltip' => 'Gugg in onare Nomensraim',
-'search-result-size' => '$1 ({{PLURAL:$2|1 Word|$2 Wärder}})',
+'searchprofile-advanced-tooltip' => 'Gugg in õnnare Nõmensreum',
+'search-result-size' => '$1 ({{PLURAL:$2|1 Word|$2 Wärda}})',
+'search-result-category-size' => '{{PLURAL:$1|1 Said|$1 Saide}} ({{PLURAL:$2|1 Sachgrubb|$2 Sachgrubbe}}, {{PLURAL:$3|1 Dadai|$3 Dadaije}})',
+'search-result-score' => 'Bdaidung: $1%',
 'search-redirect' => '(Waidalaidung $1)',
 'search-section' => '(Abschnidd $1)',
 'search-suggest' => 'Hoschd gemäänd: $1',
 'search-interwiki-caption' => 'Schweschterprojekt',
 'search-interwiki-default' => '$1 Ergebnis:',
 'search-interwiki-more' => '(meh)',
+'search-relatedarticle' => 'Vawond',
+'mwsuggest-disable' => 'Schald Voaschlesch ab',
+'searcheverything-enable' => 'Gugg iwwaraal',
 'searchrelated' => 'vawond',
 'searchall' => 'alle',
-'showingresultsheader' => "{{PLURAL:$5|Ergewnis '''$1''' vun '''$3'''|Ergewnis '''$1–$2''' vun '''$3'''}} fa '''$4'''",
+'showingresultsheader' => "{{PLURAL:$5|Eagewnis '''$1''' vun '''$3'''|Eagewnis '''$1–$2''' vun '''$3'''}} fa '''$4'''",
 'nonefound' => "'''Hiiwais:''' S werre standardmäßich numme e Dail Namensraim durchsucht. Setz ''all:'' vor Dai Suchbegriff zum alle Saide (mit Dischbediersaide, Voalaache usw.) durchsuche odder direkt de Name vum Namensraum, wu durchsucht werre sell.",
-'search-nonefound' => 'Fa die Such hods kä Ergewnis.',
+'search-nonefound' => 'Kä Eagewnis vunde Õfroch.',
 'powersearch' => 'Erwaiterte Such',
 'powersearch-legend' => 'Erwaiterte Such',
 'powersearch-ns' => 'In de Namensraim suche:',
-'powersearch-redir' => 'Wairerlaitunge aazaiche',
+'powersearch-redir' => 'Waiderlaidunge aazaische',
 'powersearch-field' => 'Suche noch',
+'powersearch-togglelabel' => 'Wehl:',
+'powersearch-toggleall' => 'Alli',
 'powersearch-togglenone' => 'Kään',
 
 # Preferences page
-'preferences' => 'Optione',
+'preferences' => 'Obzione',
 'mypreferences' => 'Oischdellunge',
-'saveprefs' => 'Oischdellunge schbeichere',
-'resetprefs' => 'Oischdellunge verwerfe',
+'datedefault' => 'Kä Oischdellunge',
+'prefs-watchlist' => 'Beowachdungslischd',
+'prefs-watchlist-edits-max' => 'Hegschdi Õzahl: 1000',
+'prefs-misc' => 'Schunschdisches',
+'prefs-rendering' => 'Uffdridd',
+'saveprefs' => 'Oischdellunge schbaischere',
+'resetprefs' => 'Oischdellunge vawerfe',
+'prefs-editing' => 'Schaffe',
+'rows' => 'Zaile',
+'columns' => 'Schbalde',
+'searchresultshead' => 'Nochgugge',
+'resultsperpage' => 'Dreffa bro Said',
+'stub-threshold-disabled' => 'Abgschdeld',
 'guesstimezone' => 'Aus em Browser iwwernemme',
+'timezoneregion-africa' => 'Afrika',
+'timezoneregion-america' => 'Õmerika',
+'timezoneregion-antarctica' => 'Õngdagdika',
+'timezoneregion-arctic' => 'Aadigk',
+'timezoneregion-asia' => 'Asije',
+'timezoneregion-atlantic' => 'Adlõndischa Ozeõn',
+'timezoneregion-australia' => 'Auschdralije',
+'timezoneregion-europe' => 'Oirobba',
+'timezoneregion-indian' => 'Indischa Ozeõn',
+'timezoneregion-pacific' => 'Pazifischa Ozeõn',
+'prefs-searchoptions' => 'Nochgugge',
+'default' => 'Schdondad',
 'youremail' => 'E-Mail:',
-'yourrealname' => 'Birscherlischer Nome:',
+'username' => '{{GENDER:$1|Middawaida}}:',
+'uid' => '{{GENDER:$1|Middawaida}}-Numma:',
+'prefs-memberingroups' => '{{GENDER:$2|Middglied}} vun {{PLURAL:$1|Grubb|Grubbe}}:',
+'yourrealname' => 'Birschalischa Nõme:',
 'yourlanguage' => 'Schbrooch:',
+'yournick' => 'Naiji Unnaschfrid',
+'yourgender' => 'Gschleschd:',
 'gender-unknown' => 'Ghoim gkalde',
+'gender-male' => 'Männlisch',
+'gender-female' => 'Waiblisch',
+'prefs-help-email' => 'E-mail muss ned soi, awwa wead fas naijsedze vum Kennwoad bneedischd, wonns vagesse hoschd.',
+'prefs-help-email-others' => 'Konschd a wehle, ob õnnare disch iwwan Lingg uff doina Dischbedier-Said õschbresche kennen.
+Doi Address werd ned gzaischd, wõnse midda babbln.',
+'prefs-diffs' => 'Unaschied',
+
+# User rights
+'userrights-groupsmember' => 'Midglied vun:',
+'userrights-reason' => 'Grund:',
 
 # Groups
 'group' => 'Grubb:',
+'group-user' => 'Middawaida',
 'group-bot' => 'Bots',
 'group-sysop' => 'Adminischdradore',
-'group-bureaucrat' => 'Birokrade',
+'group-bureaucrat' => 'Birograde',
 'group-all' => '(alle)',
 
 'group-bot-member' => '{{GENDER:$1|Bot}}',
@@ -451,62 +665,80 @@ Erklärung: '''({{int:cur}})''' = Unnerschied zu jetzert,
 
 'grouppage-sysop' => '{{ns:project}}:Adminischtratore',
 
+# Rights
+'right-read' => 'Saide leese',
+'right-edit' => 'Õnde Saide schaffe',
+'right-createpage' => 'Saide mache',
+'right-createtalk' => 'Dischbediersaide mache',
+'right-move' => 'Said bwesche',
+'right-move-subpages' => 'Said midde Unasaide bwesche',
+'right-movefile' => 'Saide vaschiewe',
+'right-upload' => 'Dadaije nufflade',
+'right-upload_by_url' => 'Dadaije vunna Address nufflaade',
+'right-delete' => 'Saide lesche',
+'right-undelete' => 'Said widdaheaschdelle',
+
 # Special:Log/newusers
-'newuserlogpage' => 'Naiaameldungs-Logbuch',
+'newuserlogpage' => 'Naimeldungs-Logbuch',
 
 # User rights log
-'rightslog' => 'Benutzerrecht-Logbuch',
+'rightslog' => 'Middawaidareschd-Logbuch',
 
 # Associated actions - in the sentence "You do not have permission to X"
-'action-edit' => 'die Said bearwaide',
+'action-edit' => 'die Said beawaide',
 
 # Recent changes
-'nchanges' => '$1 {{PLURAL:$1|Ännerung|Ännerunge}}',
+'nchanges' => '$1 {{PLURAL:$1|Ännarung|Ännarunge}}',
 'recentchanges' => 'Ledschdi Ännarunge',
-'recentchanges-legend' => 'Optione fa die Aazaisch',
-'recentchanges-feed-description' => 'Di letschte Ännerunge vun {{SITENAME}} in des Feed aigewwe.',
-'recentchanges-label-minor' => "S'ische glänni Beawaidung",
+'recentchanges-legend' => 'Wehl ä Õzaisch fa die ledschde Ännarunge',
+'recentchanges-feed-description' => 'Ledschde Ännarunge vun {{SITENAME}} im Feed oigewwe.',
+'recentchanges-label-newpage' => 'Domid magschd ä naiji Said',
+'recentchanges-label-minor' => "S'ische glenni Beawaidung",
 'recentchanges-label-bot' => 'Ännarunge duaschn Bod',
-'rcnote' => "Aagezaicht {{PLURAL:$1|werd '''1''' Ännerung|werre die letschte '''$1''' Ännerunge}} {{PLURAL:$2|vum letschte Dach|in de letschte '''$2''' Dache}} (Stand: $4, $5)",
-'rclistfrom' => 'Zaisch die ledschd Ännerunge ab $1',
-'rcshowhideminor' => 'Klenne Ännerunge $1',
+'recentchanges-label-unpatrolled' => 'Die Ännarung isch noch nedd iwwabriefd worre',
+'rcnote' => "Õgzaischd {{PLURAL:$1|werd '''1''' Ännarung|werren die ledschde '''$1''' Ännarunge}} {{PLURAL:$2|vum ledschde Daach|inde ledschde '''$2''' Daache}} (Schdond: $4, $5)",
+'rcnotefrom' => "Unne sinn Ännarunge said '''$2''' (bis '''$1''').",
+'rclistfrom' => 'Zaisch die ledschde Ännarunge ab $1',
+'rcshowhideminor' => 'Glenni Ännarunge $1',
 'rcshowhidebots' => 'Bots $1',
-'rcshowhideliu' => 'Aagemeldte Benutzer $1',
-'rcshowhideanons' => 'Nit aagemeldt Benutzer $1',
+'rcshowhideliu' => 'Õgmelda Middawaida $1',
+'rcshowhideanons' => 'Ned õgmelda Middawaida $1',
 'rcshowhidepatr' => '$1 iwabriefde Ännarunge',
-'rcshowhidemine' => 'Mai Beawaidunge $1',
-'rclinks' => 'Zeich die letschte $1 Ännerunge in de letschte $2 Dache<br />$3',
-'diff' => 'Unnerschied',
+'rcshowhidemine' => 'Moi Beawaidunge $1',
+'rclinks' => 'Zaisch die ledschde $1 Ännarunge inde ledschde $2 Daach<br />$3',
+'diff' => 'Unnaschied',
 'hist' => 'Gschischd',
 'hide' => 'vaschdeggle',
 'show' => 'zaische',
 'minoreditletter' => 'k',
 'newpageletter' => 'N',
 'boteditletter' => 'B',
-'rc-enhanced-expand' => 'Details zaische (dodezu brauchds JavaScript)',
-'rc-enhanced-hide' => 'Ogawe vaschdeggle',
+'rc_categories' => 'Oigschrengd uff Sachgrubbe (abgdeeld middm "|")',
+'rc_categories_any' => 'Ebbes',
+'rc-enhanced-expand' => 'Änzlhaide zaische (dozu brauchds JavaScript)',
+'rc-enhanced-hide' => 'Õgawe vaschdeggle',
 
 # Recent changes linked
-'recentchangeslinked' => 'Was on verlinggde Saide gemachd worre isch',
-'recentchangeslinked-feed' => 'Was on verlinkde Seide gemacht worre isch',
-'recentchangeslinked-toolbox' => 'Was on verlingde Seide gemachd worre isch',
-'recentchangeslinked-title' => 'Ännerunge an Saide, wu „$1“ druff verlinggd',
-'recentchangeslinked-summary' => "Die Lischd zaischd ledschde Ännarunge, vunna bschdimmde Said, wu do valinggd isch (odda zu Midglied vuna bschdimmde Kadegorije isch).
-Saide uff [[Special:Watchlist|Dainer Beowachdungslischd]] sinn '''fedd'''.",
+'recentchangeslinked' => 'Was õn valinggde Saide gännad worre isch',
+'recentchangeslinked-feed' => 'Ännarunge on valinggde Saide',
+'recentchangeslinked-toolbox' => 'Ännarunge uff verlingde Saide',
+'recentchangeslinked-title' => 'Ännarunge õn Saide, wu „$1“ druff verlinggd',
+'recentchangeslinked-summary' => "Die Lischd zaischd ledschdi Ännarunge, vunna bschdimmde Said, wu do valinggd isch (odda ä Midglied vunna bschdimmde Sachgrubb isch).
+Saide uff [[Special:Watchlist|Doina Beowachdungslischd]] sinn '''fedd'''.",
 'recentchangeslinked-page' => 'Saide:',
-'recentchangeslinked-to' => 'Zaisch Ännerunge uff Saide, wu do her verlinkt sinn',
+'recentchangeslinked-to' => 'Zaisch Ännarunge uff Saide, wu do her valinggd sinn',
 
 # Upload
 'upload' => 'Nufflade',
-'uploadbtn' => 'Datei hochlade',
-'uploadlogpage' => 'Dateie-Logbuch',
-'filedesc' => 'Zommefassung',
-'fileuploadsummary' => 'Zommefassung:',
-'savefile' => 'Datei schbeichere',
-'uploadedimage' => 'hod „[[$1]]“ nuffglade',
+'uploadbtn' => 'Dadai nufflade',
+'uploadlogpage' => 'Dadaije-Logbuch',
+'filedesc' => 'Iwwabligg',
+'fileuploadsummary' => 'Iwwabligg:',
+'savefile' => 'Dadai schbaischere',
+'uploadedimage' => 'hodd „[[$1]]“ nuffglade',
 
 # Lock manager
-'lockmanager-notlocked' => '„$1“ hod ned uffgmachd were kenne, die isch ganed gschberd gwesd.',
+'lockmanager-notlocked' => "„$1“ hod ned uffgmachd were kenne, s'isch ganed gschberd gwesd.",
 'lockmanager-fail-closelock' => 'Die gbscherd Dadai „$1“ hod ned gschlosse were kenne.',
 'lockmanager-fail-deletelock' => 'Die gbscherd Dadai „$1“ hod ned gleschd were kenne.',
 'lockmanager-fail-acquirelock' => '„$1“ komma ned schberre.',
@@ -517,56 +749,94 @@ Saide uff [[Special:Watchlist|Dainer Beowachdungslischd]] sinn '''fedd'''.",
 'license-header' => 'Bwillischung',
 
 # Special:ListFiles
+'listfiles_name' => 'Nome',
+'listfiles_size' => 'Greeß',
 'listfiles_count' => 'Versione',
 
 # File description page
 'file-anchor-link' => 'Dadai',
 'filehist' => 'Dadaigschischd',
-'filehist-help' => 'Drigg uff e Zaidpunggd zum aazaische, wie s dord ausgseh hod.',
-'filehist-revert' => 'zuriggsedze',
+'filehist-help' => 'Drigg uffn Zaidpunggd zum õzaische, wies dord ausgseje hodd.',
+'filehist-deleteall' => 'alles lesche',
+'filehist-deleteone' => 'lesche',
+'filehist-revert' => 'zriggsedze',
 'filehist-current' => 'agduell',
 'filehist-datetime' => 'Zaidpungd',
 'filehist-thumb' => 'Gleenes Bild',
-'filehist-thumbtext' => 'Vorschaubild fer Version vum $1',
-'filehist-user' => 'Benudzer',
+'filehist-thumbtext' => 'Skizz fa die Ausgab vum $1',
+'filehist-user' => 'Middawaida',
 'filehist-dimensions' => 'Maß',
-'filehist-comment' => 'Aißarung',
+'filehist-comment' => 'Oißarung',
 'imagelinks' => 'Dadaivawendung',
-'linkstoimage' => 'Die {{PLURAL:$1|Said verwaisd|$1 Saide verwaise}} uff die Datei:',
+'linkstoimage' => 'Die {{PLURAL:$1|Said vawaisd|$1 Saide vawaisn}} uff die Dadai:',
+'nolinkstoimage' => 'Do hodds kä Said, wu dohea zaischd.',
 'sharedupload' => 'Die Datei isch vun $1 un s kann sai, dass se ach vun annere Projekt gebraucht werd.',
+'sharedupload-desc-here' => 'Die Dadai isch vun $1 un konn a wuonaschda bnuzd werre.
+Ä Bschraiwung finschd [$2 Dadaibschraiwungssaid] unne.',
 'uploadnewversion-linktext' => 'E naiere Version vun derre Datei hochlade',
 
 # File deletion
+'filedelete' => 'Lesch $1',
+'filedelete-legend' => 'Dadai lesche',
 'filedelete-submit' => 'Lesche',
+'filedelete-success' => "'''$1''' isch gleschd worre.",
+'filedelete-maintenance-title' => 'Dadai konnned gleschd werre',
+
+# MIME search
+'download' => 'Runalaade',
 
 # Random page
-'randompage' => 'Irschnd en Adiggel',
+'randompage' => 'Irschndn Adiggl',
 
 # Statistics
-'statistics' => 'Statischtike',
+'statistics' => 'Schdadischdigge',
+'statistics-pages' => 'Saide',
 
 'disambiguationspage' => 'Template:Vadaidlischung',
 
-'brokenredirects-edit' => 'bearwaide',
+'brokenredirects-edit' => 'beawaide',
 'brokenredirects-delete' => 'lesche',
 
+'withoutinterwiki-submit' => 'Zaische',
+
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|Byte|Bytes}}',
-'nmembers' => '$1 {{PLURAL:$1|Mitglied|Mitglieder}}',
-'prefixindex' => 'Alle Saide (mid Präfix)',
+'ncategories' => '$1 {{PLURAL:$1|Sachgrubb|Sachgrubbe}}',
+'ninterwikis' => '$1 {{PLURAL:$1|interwiki|interwikis}}',
+'nlinks' => '$1 {{PLURAL:$1|Lingg|Linggs}}',
+'nmembers' => '$1 {{PLURAL:$1|Middawaida|Middawaida}}',
+'nrevisions' => '$1 {{PLURAL:$1|Ännarung|Ännarunge}}',
+'nimagelinks' => 'Used on $1 {{PLURAL:$1|Said|Saide}}',
+'ntransclusions' => 'oigsedzd uff $1 {{PLURAL:$1|Said|Saide}}',
+'uncategorizedpages' => 'Said ohne Sachgrubb',
+'uncategorizedcategories' => 'Sachgrubb ohne Sachgrubb',
+'uncategorizedimages' => 'Dadai ohne Sachgrubb',
+'uncategorizedtemplates' => 'Vorlach ohne Sachgrubb',
+'unusedcategories' => 'Vawaisdi Sachgrubb',
+'unusedimages' => 'Vawaisde Dadaije',
+'popularpages' => 'Bliewbde Saide',
+'wantedcategories' => 'Gwinschde Sachgrubbe',
+'wantedpages' => 'Gwinschde Saide',
+'mostlinkedcategories' => 'Nizlischi Sachgrubbe',
+'mostlinkedtemplates' => 'Niylischi Vorlache',
+'mostcategories' => 'Saide midd õm maigschde Sachgrubbe',
+'prefixindex' => 'Alle Saide (midd Voasilw)',
+'listusers-editsonly' => 'Zaisch bloß Bnudza mid Baidräsch',
+'usercreated' => '{{GENDER:$3|Gmachd}} vun $1 om $2',
 'newpages' => 'Naije Saide',
-'move' => 'Verschiewe',
+'move' => 'Vaschiewe',
 'movethispage' => 'Die Said verschiewe',
-'pager-newer-n' => '{{PLURAL:$1|negschte 1|negschte $1}}',
-'pager-older-n' => '{{PLURAL:$1|vorich 1|voriche $1}}',
+'unusedcategoriestext' => 'Die Sachgrubb hodds, a wonnse vun känna onnare Said odda Sachgrubb gnumme werd.',
+'pager-newer-n' => '{{PLURAL:$1|negschd 1|negschd $1}}',
+'pager-older-n' => '{{PLURAL:$1|vorisch 1|vorische $1}}',
 
 # Book sources
 'booksources' => 'Buchgwelle',
-'booksources-search-legend' => 'No Buchquelle suche',
+'booksources-search-legend' => 'Noch Buchgwelle gugge',
 'booksources-go' => 'Geh',
 
 # Special:Log
-'log' => 'Logbicher',
+'log' => 'Logbischa',
 
 # Special:AllPages
 'allpages' => 'Alle Saide',
@@ -576,35 +846,52 @@ Saide uff [[Special:Watchlist|Dainer Beowachdungslischd]] sinn '''fedd'''.",
 'allpagesto' => 'Saide aazaische wu ufhere mid:',
 'allarticles' => 'Alle Saide',
 'allpagesprev' => 'Voriche',
-'allpagesnext' => 'Negschte',
+'allpagesnext' => 'Negschd',
 'allpagessubmit' => 'Zaische',
 
 # Special:Categories
-'categories' => 'Kadegorije',
+'categories' => 'Sachgrubbe',
+'categoriespagetext' => 'Folschndi {{PLURAL:$1|Sachgrubb hodd|Sachgrubbe hawen}} Saide odda Dadaije. [[Special:UnusedCategories|Ubnudze Sachgrubbe]] werren do nedd gzaischd. Gugg a uffde [[Special:WantedCategories|gwinschde Sachgrubbe]].',
+'categoriesfrom' => 'Zaisch Sachgrubbe õgfonge middt:',
+
+# Special:DeletedContributions
+'sp-deletedcontributions-contribs' => 'Baidräsch',
 
 # Special:LinkSearch
-'linksearch' => 'Externe Links',
+'linksearch' => 'Exderne Lings',
+'linksearch-pat' => 'Suchmuschda',
+'linksearch-line' => '$1 isch vun $2 valinggd',
+
+# Special:ListUsers
+'listusers-submit' => 'Zaische',
+'listusers-noresult' => 'Kä Middawaida gfunne',
+'listusers-blocked' => '(gschberd)',
 
 # Special:ListGroupRights
-'listgrouprights-members' => '(Midgliederlischd)',
+'listgrouprights-group' => 'Grubb',
+'listgrouprights-members' => '(Midgliedalischd)',
 
 # Email user
-'emailuser' => 'E-Mail on de Benutzer',
+'emailuser' => 'E-Mail õnde Middawaida',
+'emailusername' => 'Middawaidanõme:',
+'emailfrom' => 'Vum:',
+'emailto' => 'Fa:',
+'emailsubject' => 'Bdreff:',
+'emailmessage' => 'Middeelung:',
 'emailsend' => 'Abschigge',
 
 # Watchlist
 'watchlist' => 'Beowachdungslischd',
 'mywatchlist' => 'Beowachdungslischd',
 'watchlistfor2' => 'Vun $1 $2',
-'addedwatchtext' => "Die Said \"[[:\$1]]\" isch zu Dainer [[Special:Watchlist|Beowachdungslischt]] zugefiecht worre.
-Zukimftiche Ännerunge an derre Said un de Dischbediersaid, wu dezu ghert, werre doo aagezaicht, un d Said werd '''fett''' aagezaicht in de [[Special:RecentChanges|Letschte Ännerunge]] fer dass es ääfacher isch zum finne.",
+'addedwatchtext' => "Die Said \"[[:\$1]]\" isch zu doina [[Special:Watchlist|Beowachdungslischd]] zugfieschd worre. Zukinfdischi Ännarunge õnde Said unde Dischbediersaid, wu dzu kead, werren doo õgzaischd, un die Said werd '''fedd''' inde [[Special:RecentChanges|Ledschdi Ännarunge]] õgzaischd domidmas efacha finne konn.",
 'removedwatchtext' => 'D Said "[[:$1]]" isch aus [[Special:Watchlist|Dainer Beowachdungslischt]] rausgenumme worre.',
 'watch' => 'Beowachde',
 'watchthispage' => 'Die Said beowachde',
-'unwatch' => 'Nimmi beowachde',
-'watchlist-details' => 'S hot {{PLURAL:$1|$1 Said|$1 Saide}} uff Dainer Beowachdungslischt, Dischbediersaide zelle nid.',
-'wlshowlast' => 'Die letschte $1 Stunne $2 Dache $3 zaiche',
-'watchlist-options' => 'Optione vun de Beowachdungslischt',
+'unwatch' => 'Nemme beowachde',
+'watchlist-details' => 'S hodd {{PLURAL:$1|$1 Said|$1 Saide}} uff doina Beowachdungslischd, Dischbediersaide zeeln nedd.',
+'wlshowlast' => 'Die ledschde $1 Schdunnd $2 Daach $3 zaische',
+'watchlist-options' => 'Meschlischkaide vunde Beowachdungslischd',
 
 # Displayed when you click the "watch" button and it is in the process of watching
 'watching' => 'Beowachde ...',
@@ -614,11 +901,11 @@ Zukimftiche Ännerunge an derre Said un de Dischbediersaid, wu dezu ghert, werre
 
 # Delete
 'deletepage' => 'Said lesche',
-'confirm' => 'Bestädiche',
+'confirm' => 'Beschdedische',
 'delete-legend' => 'Lesche',
 'confirmdeletetext' => 'Du bisch debai e Said z lesche mid alle Versione.
 Bitte du bstätiche, dass Du des wllscht du, dass Du verstehsch, was des hääßt, un dass Du des machscht in Iwweraistimmung mit de [[{{MediaWiki:Policy-url}}|Richtline]].',
-'actioncomplete' => 'Agzion ferdisch',
+'actioncomplete' => 'Maßnohm ferdisch',
 'actionfailed' => 'Maßnohm gschaidad',
 'deletedtext' => '"$1" isch gelescht worre.
 Guck $2 fer e Lischt vun de letschte Leschunge.',
@@ -628,223 +915,234 @@ Guck $2 fer e Lischt vun de letschte Leschunge.',
 'deletereasonotherlist' => 'Annere Grund',
 
 # Rollback
-'rollbacklink' => 'Zeriggsedze',
+'rollbacklink' => 'Zriggsedze',
 
 # Protect
-'protectlogpage' => 'Saideschutz-Logbuch',
-'protectedarticle' => 'hot "[[$1]]" gschizd',
+'protectlogpage' => 'Saideschudz-Logbuch',
+'protectedarticle' => 'hodd "[[$1]]" gschizd',
 'modifiedarticleprotection' => 'hot de Schutzstatus vun "[[$1]]" gännert',
 'protectcomment' => 'Grund:',
 'protectexpiry' => 'Bis:',
 'protect_expiry_invalid' => 'Zaidraum isch nid gildich.',
 'protect_expiry_old' => 'Zaidraum licht in de Vergangehääd.',
 'protect-text' => "Du kannscht de Schutzstatus vun de Said '''$1''' aagucke un ännere.",
-'protect-locked-access' => "Dai Benutzerkonto hot ken Recht zum de Schutzstatus vun ener Said ze ännere.
-Do hot s di aktuelle Aistellunge vun de Said '''$1''':",
+'protect-locked-access' => "Doi Kondo hodd kä Reschd um de Schudzsdadus vunna Said zu ännare.
+Do hodds die Oischdellunge vunde Said '''$1''':",
 'protect-cascadeon' => 'Die Said isch gschizd, wail se {{PLURAL:$1|zu derre Said ghert|zu denne Saide ghert}}, wu e Kaskadesperrung gelt.
 Der Schutzstatus vun derre Said kannscht ännere, awwer des hot kää Aifluss uff d Kaskadesperrung.',
-'protect-default' => 'Alle Benutzer erlääwe',
-'protect-fallback' => '«$1»-Berechdichung nedich',
-'protect-level-autoconfirmed' => 'Naie un nid aagemeldte Benutzer sperre',
-'protect-level-sysop' => 'Numme Adminischtratore',
+'protect-default' => 'Alle Middawaida erlauwe',
+'protect-fallback' => 'Bloß fa Laid mid "$1" Bereschdischung',
+'protect-level-autoconfirmed' => 'Naiji un nedd õgmeld Middawaida schberre',
+'protect-level-sysop' => 'Bloß fa Adminischdradore',
 'protect-summary-cascade' => 'Kaskade',
 'protect-expiring' => 'bis $1 (UTC)',
+'protect-expiring-local' => 'bis $1',
 'protect-cascade' => 'Kaskadesperrung – alle aigebunnene Vorlache sinn midgsperrd.',
 'protect-cantedit' => 'Du kannscht de Schutzstatus vun derre Said nit ännere, wail Du nid d Berechdichung dezu hoscht.',
 'restriction-type' => 'Berechdichung:',
-'restriction-level' => 'Schutzewene:',
+'restriction-level' => 'Schudsewene:',
 
 # Restrictions (nouns)
-'restriction-edit' => 'Bearwaide',
+'restriction-edit' => 'Beawaide',
 'restriction-move' => 'Verschiewe',
 
 # Undelete
 'undelete' => 'Widderherschdelle',
 'undeletebtn' => 'Widderherschdelle',
-'undeletelink' => 'aagucke/widda herschdelle',
-'undeleteviewlink' => 'Ogugge',
-'undeletereset' => 'Zuricksetze',
+'undeletelink' => 'õgugge/widda herschdelle',
+'undeleteviewlink' => 'Õgugge',
+'undeletereset' => 'Zuriggsedze',
 'undelete-show-file-submit' => 'Ja',
 
 # Namespace form on various pages
-'namespace' => 'Nomensraum',
-'invert' => 'Auswahl umkehre',
-'blanknamespace' => '(Haaptsaid)',
+'namespace' => 'Nõmensraum',
+'invert' => 'Wahl dausche',
+'blanknamespace' => '(Schdadsaid)',
 
 # Contributions
-'contributions' => '{{GENDER:$1|Wasa gemachd hod}}',
-'contributions-title' => 'Benutzerbaidräch vun $1',
+'contributions' => '{{GENDER:$1|Wassa gemachd hodd}}',
+'contributions-title' => 'Middawaidabaidräsch vun $1',
 'mycontris' => 'Baidräsch',
-'contribsub2' => 'Fer $1 ($2)',
-'uctop' => '(akduell)',
-'month' => 'un Monet (un frieher):',
-'year' => 'Ab em Johr (un frieher):',
+'contribsub2' => 'Fa $1 ($2)',
+'uctop' => '(geschewedisch)',
+'month' => 'än Monad (un frieja):',
+'year' => 'Abm Johr (un frieja):',
 
-'sp-contributions-newbies' => 'Zaich numme Baidräch vun naie Benutzerkonte',
-'sp-contributions-blocklog' => 'Sperrlogbuch',
+'sp-contributions-newbies' => 'Zaisch nua Baidräsch vun naije Konde',
+'sp-contributions-blocklog' => 'Schberrlogbuch',
 'sp-contributions-uploads' => 'Nufflade',
-'sp-contributions-logs' => 'Logbicha',
+'sp-contributions-logs' => 'Logbischa',
 'sp-contributions-talk' => 'Dischbediere',
-'sp-contributions-search' => 'No Baidräch suche',
-'sp-contributions-username' => 'IP-Adress orrer Benutzername:',
+'sp-contributions-search' => 'Noch Baidräsch gugge',
+'sp-contributions-username' => 'IP-Adress odda Middawaidanõme:',
 'sp-contributions-toponly' => 'Bloß agduelli Ännarunge zaische',
-'sp-contributions-submit' => 'Suche',
+'sp-contributions-submit' => 'Gugge',
 
 # What links here
-'whatlinkshere' => 'Was doher zeische dud',
-'whatlinkshere-title' => 'Saide wu uff "$1" verlinke',
+'whatlinkshere' => 'Was doher zaische dud',
+'whatlinkshere-title' => 'Saide wu uff "$1" valinggn',
 'whatlinkshere-page' => 'Said:',
-'linkshere' => "Die Saide verlinke zu '''[[:$1]]''':",
+'linkshere' => "Die Saide valinggn uff '''[[:$1]]''':",
 'nolinkshere' => "Kä Said zaischd uff '''[[:$1]]'''.",
-'isredirect' => 'Wairerlaitungsaid',
-'istemplate' => 'Vorlacheaibindung',
-'isimage' => "Dadailing'g",
-'whatlinkshere-prev' => '{{PLURAL:$1|vorich|voriche $1}}',
-'whatlinkshere-next' => '{{PLURAL:$1|negscht|negschte $1}}',
-'whatlinkshere-links' => '← Links',
+'isredirect' => 'Waidalaidungsaid',
+'istemplate' => 'Vorlacheoibindung',
+'isimage' => 'Dadailingg',
+'whatlinkshere-prev' => '{{PLURAL:$1|vorisch|vorische $1}}',
+'whatlinkshere-next' => '{{PLURAL:$1|negschd|negschde $1}}',
+'whatlinkshere-links' => '← Linggs',
 'whatlinkshere-hideredirs' => '$1 Waidalaidunge',
-'whatlinkshere-hidetrans' => '$1 Vorlacheaibindunge',
-'whatlinkshere-hidelinks' => '$1 Links',
+'whatlinkshere-hidetrans' => '$1 Vorlacheoibindunge',
+'whatlinkshere-hidelinks' => '$1 Linggs',
+'whatlinkshere-hideimages' => '$1 Dadailinggs',
 'whatlinkshere-filters' => 'Filda',
 
 # Block/unblock
-'blockip' => 'Benutzer bloggiere',
-'ipbsubmit' => 'Benutzer bloggiere',
-'ipboptions' => '2 Stunne:2 hours,1 Dach:1 day,3 Dache:3 days,1 Woch:1 week,2 Woche:2 weeks,1 Monet:1 month,3 Monet:3 months,6 Monet:6 months,1 Johr:1 year,Fer immer:infinite',
-'ipusubmit' => 'Die Adreß freigewwe',
-'ipblocklist' => 'Gschberrdi IP-Adress un Benudzernome',
+'blockip' => 'Middawaida bloggiere',
+'ipbsubmit' => 'Middawaida bloggiere',
+'ipboptions' => '2 Schdunne:2 hours,1 Daach:1 day,3 Daach:3 days,1 Woch:1 week,2 Woche:2 weeks,1 Monad:1 month,3 Monad:3 months,6 Monad:6 months,1 Johr:1 year,Fa imma:infinite',
+'ipbotheroption' => 'onnari',
+'ipusubmit' => 'Die Adreß fraigewwe',
+'ipblocklist' => 'Gschberrdi IP-Adress un Middawaidanõme',
+'infiniteblock' => 'ubgrensd',
 'blocklink' => 'schberre',
 'unblocklink' => 'Sperr uffhewe',
-'change-blocklink' => 'Schberr ännere',
-'contribslink' => 'Baidräch',
-'blocklogpage' => 'Sperrlogbuch',
-'blocklogentry' => 'hot [[$1]] gsperrt fer e Zaidraum vun $2 $3',
+'change-blocklink' => 'Schberr ännare',
+'contribslink' => 'Baidräsch',
+'blocklogpage' => 'Schberrlogbuch',
+'blocklogentry' => "hodd [[$1]] gschberrd fa'n Zaidraum vun $2 $3",
 'unblocklogentry' => 'hot d Sperr vun $1 uffghowwe',
-'block-log-flags-nocreate' => 'Aaleche vun Benutzerkonte isch gsperrt',
+'block-log-flags-nocreate' => 'Õleesche vun Konde isch gschberrd',
 
 # Developer tools
-'lockbtn' => 'Dadebonk schberre',
-'unlockbtn' => 'Dadebonk freigewwe',
+'lockbtn' => 'Dadebongg schberre',
+'unlockbtn' => 'Dadebongg fraigewwe',
 
 # Move page
-'move-page-legend' => 'Said verschiewe',
-'movepagetext' => "Mid dem Format kannscht ener Said e naie Name gewwe, debai werre alle alde Versione uff de nai Name verschowe.
-Aus em Alde Name werd e Wairerlaidungssaid´zum naie Name.
-Wairerlaidungssaide, wu uff de ald Name umlaire, kannscht automatisch aktualisiere.
-Wenn De des nid willsch, no guck uff [[Special:DoubleRedirects|doppelte]] orrer [[Special:BrokenRedirects|kaputte Wairerlaidunge]].
-Du solltescht defer sorche, dass Links wairer zu de richdiche Saide fiehre.
-
-Gebb Acht, dass die Said '''nid''' verschowe werd, wenn s scho e Said mid em naie Name hot, außer wenn se leer isch orrer e Wairerlaidung.
-Des hääßt, Du kannscht ke Said, wu s schun gebbt, iwwerschraiwe.
-
-'''WARNUNG!'''
-Des isch e wichdiche Ännerung fer e Said un kann ziehmlich unerwartet sai fer wichdiche Saide;
-bitte mach des numme, wenn Du die Folche vun derre Aktion kannsch abschätze.",
+'move-page-legend' => 'Said vaschiewe',
+'movepagetext' => "Midm Formad konnschd ä Said en naije Nome gewwe, debai werrem alli alde Ausgawe uffde nai Nome vaschowe.
+Ausm alde Nome werd e Waidalaidungssaid zum naije Nome.
+Waidalaidungssaide, wu uffde ald Nome umlaide dun, konnschd vun allä uffde naischde Schdond bringe.
+Wonndes ned willschd, guggschd uff [[Special:DoubleRedirects|dobbldi]] odda [[Special:BrokenRedirects|kabuddi Waidalaidunge]].
+Soasch dfia, dass Linggs waida uffdie rischdische Saide fiehan.
+
+Gebb Achd, dass die Said '''ned''' vaschowe werd, wonns schunä Said midm naije Nome hod, außa wonnse lea isch odda e Waidalaidung.
+Des heeßd, Du konnschd ke Said, wus schun gibbd, iwwaschraiwe.
+
+'''BAßMAUFF!'''
+Des isch e wischdischi Ännarung fa e Said un konn zimlisch uuerwaaded soi fa wischdischi Saide;
+mach des bloß, wonn die Folsche vunde Maßnohm a abschedze konnschd.",
 'movepagetalktext' => "D Dischbediersaid werd ach mid verschowe, '''ausser:'''
 * Du verschiebsch die Saide in e annere Namensraum, odder
 * s gebbt schun e Dischbediersaid mi dem Name, orrer
 * Du wählsch unne d Option, se nid z verschiewe.
 
 In denne Fäll misst mer d Dischbediersaid vun Hand kopiere.",
-'movearticle' => 'Said verschiewe:',
-'newtitle' => 'Zum naie Titel:',
+'movearticle' => 'Said vaschiewe:',
+'newtitle' => 'Zum naije Didl:',
 'move-watch' => 'Die Said beowachde',
-'movepagebtn' => 'Said verschiewe',
+'movepagebtn' => 'Said vaschiewe',
 'pagemovedsub' => 'Verschiewung hot geklappt',
 'movepage-moved' => '\'\'\'"$1" isch verschowe worre uff "$2"\'\'\'',
 'articleexists' => 'E Said mid dem Name gebbt s schun, orrer de Name, wu du gewählt hoscht, isch nid gildich.
 Bitte nemm e annere Name.',
 'talkexists' => "'''Die Said selwerschd, isch verschowe worre, awwer d Dischbediersaid hot nid kenne verschowe werre, wail s schun enni gebbt mid dem Name.
 Bitte duu se vun Hand zammefiehre.'''",
-'movedto' => 'verschowe uff',
+'movedto' => 'vaschowe uff',
 'movetalk' => 'Dischbediersaid, wu dezu ghert, verschiewe',
-'movelogpage' => 'Verschiewungs-Logbuch',
+'movelogpage' => 'Vaschiewungs-Logbuch',
 'movereason' => 'Grund:',
-'revertmove' => 'Zerigg verschiewe',
+'revertmove' => 'Zurigg vaschiewe',
 'delete_and_move' => 'Lesche un Verschiewe',
 'delete_and_move_confirm' => 'Ja, Said lesche',
 
 # Export
-'export' => 'Saide expordiere',
-'export-submit' => 'Seide exbordiere',
+'export' => 'Saide rausgewe',
+'export-submit' => 'Saide exbordiere',
+'export-addcattext' => 'Saide vunde Sachgrubb dzufiesche:',
 
 # Namespace 8 related
-'allmessagesname' => 'Nome',
+'allmessagesname' => 'Nõme',
 'allmessagesdefault' => 'Vorgewene Tegschd',
+'allmessages-filter-modified' => 'Vaännad',
 
 # Thumbnails
-'thumbnail-more' => 'Greßer mache',
+'thumbnail-more' => 'Mags greßa',
+'thumbnail_error' => 'Baim Voaschaubild ischwas falsch glaafe: $1',
 
 # Special:Import
 'import-interwiki-submit' => 'Impordiere',
 
 # Tooltip help for the actions
-'tooltip-pt-userpage' => 'Dai Benudzersaid',
-'tooltip-pt-mytalk' => 'Dai Said fas Dischbediere',
-'tooltip-pt-preferences' => 'Dai Aistellunge',
-'tooltip-pt-watchlist' => 'D Lischd vun Saide, wu du beowachde duschd',
-'tooltip-pt-mycontris' => 'Lischd vun Daine Baidräch',
-'tooltip-pt-login' => 'Du kannscht Dich aamelde, awwer du muscht s nit',
-'tooltip-pt-logout' => 'Abmelde',
-'tooltip-ca-talk' => 'Iwwer d Inhaltssaid dischbediere',
-'tooltip-ca-edit' => 'Du kannschd die Said bearwaide.
-Bidde nemmde Vorschau-Knobb vorm Schbaischere',
-'tooltip-ca-addsection' => 'E naie Abschnitt aaleche',
-'tooltip-ca-viewsource' => 'Die Said isch gschizd.
-Du konnschd awwer de Gwelltegschd aagugge',
-'tooltip-ca-history' => 'Ledschde Versione vun derre Said',
+'tooltip-pt-userpage' => 'Doi Miaddawaidasaid',
+'tooltip-pt-mytalk' => 'Doi Said fas Dischbediere',
+'tooltip-pt-preferences' => 'Doi Oischdellunge',
+'tooltip-pt-watchlist' => 'Lischd vun Saide, wu beowachde duschd',
+'tooltip-pt-mycontris' => 'Lischd vun doine Baidräsch',
+'tooltip-pt-login' => 'Du konnschd disch õmelde, awwa mugschd ned',
+'tooltip-pt-logout' => 'Uffhere',
+'tooltip-ca-talk' => 'Iwwa d Inhaldssaid dischbediere',
+'tooltip-ca-edit' => 'Du konnschd die Said beawaide.
+Bidde nemmde Vorschau-Gnobb vorm Schbaischare',
+'tooltip-ca-addsection' => "N'naije Abschnidd õleche",
+'tooltip-ca-viewsource' => 'Die Said isch gschizd. Du konnschdda de Gwelltegschd õgugge.',
+'tooltip-ca-history' => 'Ledschdi Ausgawe vunde Said',
 'tooltip-ca-protect' => 'Die Said schidze',
 'tooltip-ca-delete' => 'Die Said lesche',
-'tooltip-ca-move' => 'Die Said verschiewe',
-'tooltip-ca-watch' => 'Die Said zu Dainer Beowachdungslischd zufiesche',
-'tooltip-ca-unwatch' => 'Die Said aus Dainer Beowachdunschlischde rausnemme',
-'tooltip-search' => 'Durschsuch {{SITENAME}}',
-'tooltip-search-go' => 'Geh zu ere Said mid genää dem Namme, wenn s se gebbt',
-'tooltip-search-fulltext' => 'Gugg in de Said nochm Tegschd',
-'tooltip-p-logo' => 'Haubdsaid',
-'tooltip-n-mainpage' => 'Uff d Schdadsaid geje',
-'tooltip-n-mainpage-description' => 'Haubdsaid aagucke',
-'tooltip-n-portal' => 'Iwwers Brojegd, wude duu kannschd, wu ebbes finne duschd',
-'tooltip-n-currentevents' => 'Finn Auskinfd iwwa naiji Voafell',
-'tooltip-n-recentchanges' => 'Lischd vun de ledschde Ännarunge in dem Wiki',
-'tooltip-n-randompage' => 'E zufällisch Said lade',
+'tooltip-ca-move' => 'Die Said vaschiewe',
+'tooltip-ca-watch' => 'Die Said zu doina Beowachdungslischd dzufiesche',
+'tooltip-ca-unwatch' => 'Die Said vun doina Beowachdunschlischd wegnemme',
+'tooltip-search' => 'Gugg uff {{SITENAME}} fa',
+'tooltip-search-go' => 'Geh zude Said midm Nõme, wonnses hodd',
+'tooltip-search-fulltext' => 'Gugg inde Said nochm Tegschd',
+'tooltip-p-logo' => 'Schdadsaid',
+'tooltip-n-mainpage' => "Uff d'Schdadsaid geje",
+'tooltip-n-mainpage-description' => 'Haubdsaid õgugge',
+'tooltip-n-portal' => 'Iwwas Brojegd, wu mache konnschd, wu ebbes finne duschd',
+'tooltip-n-currentevents' => 'Finn Auskinfd iwwas Naijischde',
+'tooltip-n-recentchanges' => 'Lischd vunde ledschde Ännarunge im Wiki',
+'tooltip-n-randompage' => 'Laad e zufellischi Said',
 'tooltip-n-help' => 'Do konschds rausfinne',
-'tooltip-t-whatlinkshere' => 'Lischd vun alle Wikisaide, wu do hie verlingd sinn',
-'tooltip-t-recentchangeslinked' => 'Ledschde Ännerunge in Saide, wu vun do verlinggd sin',
+'tooltip-t-whatlinkshere' => 'Lischd vun alle Wikisaide, wu dohie verlingd sinn',
+'tooltip-t-recentchangeslinked' => 'Ledschdi Ännarunge in Saide, wu vun do verlinggd sinn',
 'tooltip-feed-rss' => 'RSS feed fer die Said',
-'tooltip-feed-atom' => 'Atom feed fer die Said',
-'tooltip-t-contributions' => 'Die ledschde Baidräch vun däm Benudzer aagucke',
-'tooltip-t-emailuser' => 'Dem Benutzer e E-Mail schicke',
+'tooltip-feed-atom' => 'Atom-Feed fa die Said',
+'tooltip-t-contributions' => 'Ledschdi Baidräsch vum Middawaida õgugge',
+'tooltip-t-emailuser' => 'Dem Middawaida e E-Mail schigge',
 'tooltip-t-upload' => 'Dadaije nufflade',
-'tooltip-t-specialpages' => 'Lischd vun alle Schbezialsaide',
-'tooltip-t-print' => 'Druggversion vun derre Said',
-'tooltip-t-permalink' => 'E dauerhafte Link zu derre Version vun de Said',
-'tooltip-ca-nstab-main' => 'D Inhaldssaid aagucke',
-'tooltip-ca-nstab-user' => 'D Benutzersaid aagucke',
-'tooltip-ca-nstab-special' => 'Des isch e Spezialsaid, du kannscht d Said sälwerscht nit ännere',
-'tooltip-ca-nstab-project' => 'D Projektsaid aagucke',
-'tooltip-ca-nstab-image' => 'D Dadaisaid aaugugge',
-'tooltip-ca-nstab-template' => 'Vorlach aagugge',
-'tooltip-ca-nstab-category' => 'D Kategoriesaid aagucke',
-'tooltip-minoredit' => 'Des als klenne Ännerung markiere',
-'tooltip-save' => 'Dai Ännerunge spaichere',
-'tooltip-preview' => 'Guck Daine Ännerunge in de Vorschau aa, vor Du uff Spaichere driksch!',
-'tooltip-diff' => 'Guck, welle Ännerunge Du im Text gmacht hoscht',
-'tooltip-compareselectedversions' => 'D Unnaschied zwische denne zwee gwehlde Versione aagugge',
-'tooltip-watch' => 'Die Said zu Dainer Beowachdunglischd zufieche',
-'tooltip-rollback' => "„Zeriggsetze“ machd alle Bearwaidunge vum ledschde Bearwaider rigg'gängisch",
-'tooltip-undo' => "„Zerigg“ machd numme die Ännerung rigg'gängich un zaichd d Vorschau aa.
-Du kannschd e Grund in dr Zammfassung aagewwe",
+'tooltip-t-specialpages' => 'Lischd vunde Schbezialsaide',
+'tooltip-t-print' => 'Druggausgab vunde Said',
+'tooltip-t-permalink' => "N'dauwahafde Lingg uff die Ausgab vunde Said",
+'tooltip-ca-nstab-main' => 'Inhald õgugge',
+'tooltip-ca-nstab-user' => 'Middawaidasaid õgugge',
+'tooltip-ca-nstab-special' => 'Des isch e Spezialsaid, du konnschd d Said selwaschd nedd ännare',
+'tooltip-ca-nstab-project' => 'Brojegdsaid õgugge',
+'tooltip-ca-nstab-image' => 'Dadaisaid õgugge',
+'tooltip-ca-nstab-template' => 'Vorlach õgugge',
+'tooltip-ca-nstab-category' => 'Sachgrubbsaid õgugge',
+'tooltip-minoredit' => 'Als gleeni Ännarung makiere',
+'tooltip-save' => 'Doi Ännarunge schbaischare',
+'tooltip-preview' => 'Guggda doi Ännarunge inde Vorschau õ, bvor uff Schbaischare drigschd!',
+'tooltip-diff' => 'Gugg, welschi Ännarunge im Tegschd gmachd hoschd',
+'tooltip-compareselectedversions' => 'D Unnaschied zwische denne zwee gwehlde Ausgawe õgugge',
+'tooltip-watch' => 'Die Said zu doina Beowachdunglischd zufiesche',
+'tooltip-rollback' => "„Zriggsedze“ machd alli Beawaidunge vum ledschde Middawaida rigg'gängisch",
+'tooltip-undo' => "„Zrigg“ machd nua die Ännarung rigg'gängich un zaischd ä Vorschau õ.
+Konnschdn Grund inde Zommefassung õgewwe.",
 'tooltip-summary' => 'Gebä koaz Resimee',
 
+# Info page
+'pageinfo-hidden-categories' => '{{PLURAL:$1|Vaschdeggldi Sachgrubb|Vaschdegglde Sachgrubbe}} ($1)',
+'pageinfo-category-info' => 'Sachgrubb-Õgawe',
+'pageinfo-category-subcats' => 'Õzahl vun Unnagrubbe',
+
 # Browsing diffs
-'previousdiff' => '← Ältere Bearwaidung',
-'nextdiff' => 'Naiere Bearwaidung →',
+'previousdiff' => '← Äldari Beawaidung',
+'nextdiff' => 'Naijari Beawaidung →',
 
 # Media information
-'file-info-size' => '$1 × $2 Pixels, Dateigreß: $3, MIME-Type: $4',
-'file-nohires' => 'Ke hechere Ufflesung verfiechbar.',
-'svg-long-desc' => 'SVG-Datei, Basisgreß $1 × $2 Pixels, Dateigreß: $3',
+'file-info-size' => '$1 × $2 Pixels, Dadaigreß: $3, MIME-Type: $4',
+'file-nohires' => 'Ke heheri Ufflesung vafieschba.',
+'svg-long-desc' => 'SVG-Datei, Grundgreß $1 × $2 Pixels, Dadaigreß: $3',
 'show-big-image' => 'Volli Ufflesung',
 
 # Special:NewFiles
@@ -852,20 +1150,18 @@ Du kannschd e Grund in dr Zammfassung aagewwe",
 'ilsubmit' => 'Such',
 
 # Bad image list
-'bad_image_list' => 'Formad:
-
-nur Zaile, wu mid eme * aafange werre bericksichdischd.
-De erschd Link muss e Link zu ere unerwinschd Dadei sai.
-Annere Links in der glaiche Zail werre als Ausnahme behanneld, d. h. Saide, wu d Dadei drin vorkumme därfd.',
+'bad_image_list' => 'Uffbau: bloß Zaile, wu midm * õfonge werren briggsischdischd.
+De erschd Lingg mussn Lingg zu änna uuerwinschde Dadai soi.
+Õnnare Linggs inde glaische Zail werren als Ausnõhm gnumme, des heesd, Saide, wu inde Dadai vorkumme dirfn.',
 
 # Metadata
-'metadata' => 'Metadata',
-'metadata-help' => 'Die Dadei hot waidere Informatione, wahrschainlich vun de Digidalkamera oder vum Scanner, mid dem wu sie gmacht worre sinn.
-Wenn die Dadei verännerd worre isch, dann kann s sai, dass die zusädzlich Information fer die verännert Dadei nimmi richdisch isch.',
+'metadata' => 'Medadaade',
+'metadata-help' => 'Die Dadai hodd waidari Õgawe, waschoinlisch vunde Digidalkõmara odda vum Skänna, wumase mid gmachd hodd.
+Wonn die Dadai vaännad worre isch, donn konns soi, daß zusedzlischi Õgawe fa die vaännad Dadai nemme rischdisch sinn.',
 'metadata-expand' => 'Erwaiterte Details aazaiche',
 'metadata-collapse' => 'Erwaiterte Details versteckeln',
-'metadata-fields' => 'Die EXIF-Medadaade werren inde Bild-Bschraiwung a ogzaischd, wonn die Medadaade-Tabelle verschdegld isch.
-Annere Medadaade sinn noamalawais verschdegld.
+'metadata-fields' => 'Die EXIF-Medadaade werren inde Bild-Bschraiwung a õgzaischd, wonn die Medadaade-Tabell vaschdegld isch.
+Õnnare Medadaade sinn noamalawais vaschdegld.
 * make
 * model
 * datetimeoriginal
@@ -880,11 +1176,15 @@ Annere Medadaade sinn noamalawais verschdegld.
 * gpslongitude
 * gpsaltitude',
 
+# Exif tags
+'exif-iimcategory' => 'Sachgrubb',
+'exif-iimsupplementalcategory' => 'Ergenzndi Sachgrubbe',
+
 'exif-gaincontrol-0' => 'Kään',
 
 # External editor support
-'edit-externally' => 'Die Datei bearwaide mit ener externe Aawendung',
-'edit-externally-help' => '(Guck uff [//www.mediawiki.org/wiki/Manual:External_editors Installationsaawisige] fer meh Informatione)',
+'edit-externally' => 'Die Dadai midm õnnare Weagzaisch beawaide',
+'edit-externally-help' => '(Gugg uff [//www.mediawiki.org/wiki/Manual:External_editors Inschdallazionsõwaisunge] fa mea Auskinfd)',
 
 # 'all' in various places, this might be different for inflected languages
 'watchlistall2' => 'alle',
@@ -892,9 +1192,9 @@ Annere Medadaade sinn noamalawais verschdegld.
 'monthsall' => 'alle',
 
 # Watchlist editing tools
-'watchlisttools-view' => 'Die wichdiche Ännerunge aagucke',
-'watchlisttools-edit' => 'D Beowachdunglischt aagucke un bearwaide',
-'watchlisttools-raw' => 'ime große Textfeld bearwaide',
+'watchlisttools-view' => 'Die wischdische Ännarunge õgugge',
+'watchlisttools-edit' => 'Beowachdunglischd õgugge un beawaide',
+'watchlisttools-raw' => 'Im große Tegschdfeld beawaide',
 
 # Core parser functions
 'duplicate-defaultsort' => '\'\'\'Baßma uff:\'\'\' De Schlissl "$2" dudde frijare Schlissl "$1" iwwaschraiwe.',
@@ -918,4 +1218,18 @@ Annere Medadaade sinn noamalawais verschdegld.
 # Search suggestions
 'searchsuggest-search' => 'Suche',
 
+# API errors
+'api-error-unknownerror' => 'Uubekonde Irrdumm: "$1".',
+
+# Durations
+'duration-seconds' => '$1 {{PLURAL:$1|Sekund|Sekunde}}',
+'duration-minutes' => '$1 {{PLURAL:$1|Minud|Minude}}',
+'duration-hours' => '$1 {{PLURAL:$1|Schdund|Schdunde}}',
+'duration-days' => '$1 {{PLURAL:$1|Daach|Daache}}',
+'duration-weeks' => '$1 {{PLURAL:$1|Woch|Woche}}',
+'duration-years' => '$1 {{PLURAL:$1|Joa|Joare}}',
+'duration-decades' => '$1 {{PLURAL:$1|Jaazehnd|Jaazehnde}}',
+'duration-centuries' => '$1 {{PLURAL:$1|Jaahunnad|Jaahunnade}}',
+'duration-millennia' => '$1 {{PLURAL:$1|Jaadausnd|Jaadausnde}}',
+
 );
index 021f771..9a08bce 100644 (file)
@@ -18,6 +18,7 @@
  * @author Derbeth
  * @author Equadus
  * @author Fizykaa
+ * @author Geitost
  * @author Herr Kriss
  * @author Holek
  * @author Jwitos
@@ -308,7 +309,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Ukryj sprawdzone edycje w ostatnich zmianach',
 'tog-newpageshidepatrolled' => 'Ukryj sprawdzone strony na liście nowych stron',
 'tog-extendwatchlist' => 'Pokaż na liście obserwowanych wszystkie zmiany, nie tylko ostatnie',
-'tog-usenewrc' => 'Grupuj zmiany według stron na liście ostatnich zmian i obserwowanych (Wymaga JavaScript)',
+'tog-usenewrc' => 'Grupuj zmiany według stron na liście ostatnich zmian i obserwowanych (wymaga JavaScript)',
 'tog-numberheadings' => 'Automatyczna numeracja nagłówków',
 'tog-showtoolbar' => 'Pokaż pasek narzędzi (JavaScript)',
 'tog-editondblclick' => 'Podwójne kliknięcie rozpoczyna edycję (JavaScript)',
@@ -502,6 +503,7 @@ $messages = array(
 'create-this-page' => 'Utwórz tę stronę',
 'delete' => 'Usuń',
 'deletethispage' => 'Usuń tę stronę',
+'undeletethispage' => 'Przywróć tę stronę',
 'undelete_short' => 'odtwórz {{PLURAL:$1|1 wersję|$1 wersje|$1 wersji}}',
 'viewdeleted_short' => 'Podgląd {{PLURAL:$1|usuniętej|$1 usuniętych}} wersji',
 'protect' => 'Zabezpiecz',
@@ -555,7 +557,6 @@ $1',
 'disclaimers' => 'Informacje prawne',
 'disclaimerpage' => 'Project:Informacje prawne',
 'edithelp' => 'Pomoc w edycji',
-'edithelppage' => 'Help:Jak edytować stronę',
 'helppage' => 'Help:Spis treści',
 'mainpage' => 'Strona główna',
 'mainpage-description' => 'Strona główna',
@@ -703,6 +704,10 @@ $2',
 'namespaceprotected' => "Nie masz uprawnień do edytowania stron w przestrzeni nazw '''$1'''.",
 'customcssprotected' => 'Nie jesteś uprawniony do edytowania tej strony CSS, ponieważ zawiera ona ustawienia osobiste innego użytkownika.',
 'customjsprotected' => 'Nie jesteś uprawniony do edytowania tej strony JavaScript, ponieważ zawiera ona ustawienia osobiste innego użytkownika.',
+'mycustomcssprotected' => 'Nie masz uprawnień do edytowania tej strony CSS.',
+'mycustomjsprotected' => 'Nie masz uprawnień do edytowania tej strony JavaScript.',
+'myprivateinfoprotected' => 'Nie masz uprawnień do edytowania swoich prywatnych danych.',
+'mypreferencesprotected' => 'Nie masz uprawnień do edytowania swoich preferencji.',
 'ns-specialprotected' => 'Stron specjalnych nie można edytować.',
 'titleprotected' => "Utworzenie strony o tej nazwie zostało zablokowane przez [[User:$1|$1]].
 Uzasadnienie blokady: ''$2''.",
@@ -730,6 +735,7 @@ Nie zapomnij dostosować [[Special:Preferences|preferencji]].',
 'yourname' => 'Nazwa {{GENDER:|użytkownika|użytkowniczki}}',
 'userlogin-yourname' => 'Nazwa użytkownika',
 'userlogin-yourname-ph' => 'Wprowadź swoją nazwę użytkownika',
+'createacct-another-username-ph' => 'Wprowadź nazwę użytkownika',
 'yourpassword' => 'Hasło',
 'userlogin-yourpassword' => 'Hasło',
 'userlogin-yourpassword-ph' => 'Wpisz swoje hasło',
@@ -753,8 +759,8 @@ Nie zapomnij dostosować [[Special:Preferences|preferencji]].',
 'userlogout' => 'Wyloguj',
 'notloggedin' => 'Nie jesteś zalogowany',
 'userlogin-noaccount' => 'Nie masz konta?',
-'userlogin-joinproject' => 'Dołącz do {{SITENAME}}',
-'nologin' => "Nie masz konta? '''$1'''.",
+'userlogin-joinproject' => 'Dołącz do {{GRAMMAR:D.lp|{{SITENAME}}}}',
+'nologin' => 'Nie masz konta? $1.',
 'nologinlink' => 'Zarejestruj się',
 'createaccount' => 'Załóż nowe konto',
 'gotaccount' => "Masz już konto? '''$1'''.",
@@ -775,7 +781,7 @@ Nie zapomnij dostosować [[Special:Preferences|preferencji]].',
 'createacct-captcha' => 'Kontrola bezpieczeństwa',
 'createacct-imgcaptcha-ph' => 'Wpisz tekst widoczny powyżej',
 'createacct-submit' => 'Utwórz konto',
-'createacct-benefit-heading' => '{{grammar:4sg|{{SITENAME}}}} tworzą ludzie tacy jak ty.',
+'createacct-benefit-heading' => '{{grammar:B.lp|{{SITENAME}}}} tworzą ludzie tacy jak Ty.',
 'createacct-benefit-body1' => '{{PLURAL:$1|edycja|edycje|edycji}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|strona|strony|stron}}',
 'createacct-benefit-body3' => '{{PLURAL:$1|użytkownik|użytkowników}} w ostatnim czasie',
@@ -840,7 +846,7 @@ Wpisz poprawny adres e‐mail lub wyczyść pole.',
 'cannotchangeemail' => 'Na tej wiki nie ma możliwości zmiany adresu e‐mail przypisanego do konta.',
 'emaildisabled' => 'Ta witryna nie może wysłać wiadomości e-mail.',
 'accountcreated' => 'Konto zostało utworzone',
-'accountcreatedtext' => 'Konto dla $1 zostało utworzone.',
+'accountcreatedtext' => 'Konto dla [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|dyskusja]]) zostało utworzone.',
 'createaccount-title' => 'Utworzenie konta w {{GRAMMAR:MS.lp|{{SITENAME}}}}',
 'createaccount-text' => 'Ktoś utworzył w {{GRAMMAR:MS.lp|{{SITENAME}}}} ($4), podając Twój adres e‐mail, konto „$2”. Aktualnym hasłem jest „$3”.
 Zaloguj się teraz i je zmień.
@@ -880,11 +886,11 @@ Być może właśnie zmienił{{GENDER:|eś|aś|eś(‐aś)}} swoje hasło lub po
 
 # Special:PasswordReset
 'passwordreset' => 'Wyczyść hasło',
-'passwordreset-text' => 'Wypełnij formularz, aby zresetować swoje hasło.',
+'passwordreset-text-one' => 'Wypełnij ten formularz, aby zresetować hasło.',
+'passwordreset-text-many' => '{{PLURAL:$1|Wypełnij jedno z poniższych pól, aby zresetować hasło.}}',
 'passwordreset-legend' => 'Zresetuj hasło',
 'passwordreset-disabled' => 'Na tej wiki wyłączono możliwość resetowania haseł.',
 'passwordreset-emaildisabled' => 'Wysyłanie emaili zostało wyłączone na tej wiki',
-'passwordreset-pretext' => '{{PLURAL:$1||Wprowadź jedną z danych poniżej}}',
 'passwordreset-username' => 'Nazwa użytkownika:',
 'passwordreset-domain' => 'Domena',
 'passwordreset-capture' => 'Czy pokazywać treść wiadomości e‐mail?',
@@ -1017,7 +1023,7 @@ Możesz [[Special:Search/{{PAGENAME}}|poszukać „{{PAGENAME}}” na innych str
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} przeszukać rejestr] lub [{{fullurl:{{FULLPAGENAME}}|action=edit}} utworzyć tę stronę]</span>.',
 'noarticletext-nopermission' => 'Ta strona nie posiada jeszcze zawartości.
 Możesz [[Special:Search/{{PAGENAME}}|wyszukać ten tytuł]] w treści innych stron
-lub <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} przeszukać powiązane dzienniki]</span>, ale nie masz uprawnień do utworzenia tej strony',
+lub <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} przeszukać powiązane rejestry]</span>, ale nie masz uprawnień do utworzenia tej strony',
 'missing-revision' => 'Wersja #$1 strony "{{PAGENAME}}" nie istnieje.
 
 Zazwyczaj jest to spowodowane przestarzałym linkiem do usuniętej strony. Powód usunięcia znajduje się w [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} rejestrze].',
@@ -1107,7 +1113,7 @@ Możesz edytować istniejące strony bądź też [[Special:UserLogin|zalogować
 'nocreate-loggedin' => 'Nie masz uprawnień do tworzenia nowych stron.',
 'sectioneditnotsupported-title' => 'Edycja sekcji nie jest obsługiwana',
 'sectioneditnotsupported-text' => 'Edycja sekcji na tej stronie nie jest obsługiwana.',
-'permissionserrors' => 'BÅ\82Ä\99dy uprawnień',
+'permissionserrors' => 'BÅ\82Ä\85d uprawnień',
 'permissionserrorstext' => 'Nie masz uprawnień do tego działania z {{PLURAL:$1|następującej przyczyny|następujących przyczyn}}:',
 'permissionserrorstext-withaction' => 'Nie masz uprawnień do $2, z {{PLURAL:$1|następującego powodu|następujących powodów}}:',
 'recreate-moveddeleted-warn' => "'''Uwaga! Zamierzasz utworzyć stronę, która została wcześniej usunięta.'''
@@ -1123,6 +1129,7 @@ Wystąpił z nieokreślonej przyczyny.',
 Zdaje się, że została skasowana.',
 'edit-conflict' => 'Konflikt edycji.',
 'edit-no-change' => 'Twoja edycja została zignorowana, ponieważ nie zmienił{{GENDER:|eś|aś|eś(‐aś)}} niczego w tekście.',
+'postedit-confirmation' => 'Twoja edycja została zapisana.',
 'edit-already-exists' => 'Nie udało się stworzyć nowej strony.
 Strona już istnieje.',
 'defaultmessagetext' => 'Domyślny tekst komunikatu',
@@ -1164,7 +1171,8 @@ Argument ten będzie pominięty.',
 'undo-success' => 'Edycja może zostać wycofana. Porównaj ukazane poniżej różnice między wersjami, a następnie zapisz zmiany.',
 'undo-failure' => 'Edycja nie może zostać wycofana z powodu konfliktu z wersjami pośrednimi.',
 'undo-norev' => 'Edycja nie może być cofnięta, ponieważ nie istnieje lub została usunięta.',
-'undo-summary' => 'Anulowanie wersji nr $1 utworzonej przez [[Special:Contributions/$2|$2]] ([[User talk:$2|dyskusja]])',
+'undo-summary' => 'Anulowanie wersji $1 autora [[Special:Contributions/$2|$2]] ([[User talk:$2|dyskusja]])',
+'undo-summary-username-hidden' => 'Anulowanie wersji $1 autorstwa ukrytego użytkownika',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Nie można utworzyć konta',
@@ -1192,8 +1200,8 @@ Legenda: (bież.) – pokaż zmiany od tej wersji do bieżącej,
 (poprz.) – pokaż zmiany od wersji poprzedzającej, m – mała (drobna) zmiana",
 'history-fieldset-title' => 'Przeglądaj historię',
 'history-show-deleted' => 'Tylko usunięte',
-'histfirst' => 'od początku',
-'histlast' => 'od końca',
+'histfirst' => 'od najstarszych',
+'histlast' => 'od najświeższych',
 'historysize' => '({{PLURAL:$1|1 bajt|$1 bajty|$1 bajtów}})',
 'historyempty' => '(pusta)',
 
@@ -1215,7 +1223,7 @@ Szczegółowe informacje mogą znajdować się w [{{fullurl:{{#Special:Log}}/del
 'rev-deleted-text-unhide' => "Ta wersja strony została '''usunięta'''.
 Szczegółowe informacje mogą znajdować się w [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} rejestrze usunięć].
 Jeśli chcesz możesz [$1 obejrzeć tę wersję].",
-'rev-suppressed-text-unhide' => "Ta wersja strony została '''ukryta'''.
+'rev-suppressed-text-unhide' => "Ta wersja strony została '''utajniona'''.
 Szczegółowe informacje mogą znajdować się w [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} rejestrze utajniania].
 Jeśli chcesz możesz [$1 obejrzeć tę wersję].",
 'rev-deleted-text-view' => "Ta wersja strony została '''usunięta'''.
@@ -1233,8 +1241,8 @@ Szczegółowe informacje mogą znajdować się w [{{fullurl:{{#Special:Log}}/sup
 Jeśli chcesz możesz [$1 obejrzeć porównanie wersji].",
 'rev-deleted-diff-view' => "Jedna z wersji użytych w porównaniu została '''usunięta'''.
 Jeśli chcesz możesz zobaczyć porównanie. Szczegóły mogą znajdować się w [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} rejestrze usunięć].",
-'rev-suppressed-diff-view' => "Jedna z wersji użytych w porównaniu została '''ukryta'''.
-Jeśli chcesz możesz zobaczyć porównanie. Szczegóły mogą znajdować się w [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} rejestrze ukrywania].",
+'rev-suppressed-diff-view' => "Jedna z wersji użytych w porównaniu została '''utajniona'''.
+Jeśli chcesz możesz zobaczyć porównanie. Szczegóły mogą znajdować się w [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} rejestrze utajniania].",
 'rev-delundel' => 'pokaż/ukryj',
 'rev-showdeleted' => 'pokaż',
 'revisiondelete' => 'Usuń/odtwórz wersje',
@@ -1344,6 +1352,7 @@ Użycie linków nawigacyjnych kasuje wybór w kolumnie.',
 'compareselectedversions' => 'porównaj wybrane wersje',
 'showhideselectedversions' => 'Pokaż lub ukryj zaznaczone wersje',
 'editundo' => 'anuluj edycję',
+'diff-empty' => '(Brak różnic)',
 'diff-multi' => '(Nie pokazano $1 wersji {{PLURAL:$1|utworzonej|utworzonych}} przez {{PLURAL:$2|jednego użytkownika|$2 użytkowników}})',
 'diff-multi-manyusers' => '(Nie pokazano $1 {{PLURAL:$1|pośredniej wersji utworzonej|pośrednich wersji utworzonych}} przez {{PLURAL:$2|jednego użytkownika|$2 użytkowników}})',
 'difference-missing-revision' => '{{PLURAL:$2|Wersja|$2 wersje|$2 wersji}} #$1 strony "{{PAGENAME}}" nie {{PLURAL:$2|została znaleziona|zostały znalezione|zostało znalezionych}}.
@@ -1370,7 +1379,6 @@ Zazwyczaj jest to spowodowane przestarzałym linkiem do usuniętej strony. Powó
 'searchmenu-legend' => 'Opcje wyszukiwania',
 'searchmenu-exists' => "* Strona '''[[$1]]'''",
 'searchmenu-new' => "'''Utwórz stronę „[[:$1|$1]]” na tej wiki.'''",
-'searchhelp-url' => 'Help:Spis treści',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Przeglądaj strony zaczynające się od tego przedrostka]]',
 'searchprofile-articles' => 'Strony',
 'searchprofile-project' => 'Strony pomocy i projektu',
@@ -1447,7 +1455,6 @@ Jednak informacje o treści {{GRAMMAR:D.lp|{{SITENAME}}}} mogą być w Google ni
 'resetprefs' => 'Cofnij niezapisane zmiany',
 'restoreprefs' => 'Przywróć wszystkie domyślne preferencje',
 'prefs-editing' => 'Edycja',
-'prefs-edit-boxsize' => 'Rozmiar okna edycji.',
 'rows' => 'Wiersze',
 'columns' => 'Kolumny',
 'searchresultshead' => 'Wyszukiwanie',
@@ -1458,9 +1465,6 @@ Jednak informacje o treści {{GRAMMAR:D.lp|{{SITENAME}}}} mogą być w Google ni
 'recentchangesdays-max' => '(maksymalnie $1 {{PLURAL:$1|dzień|dni}})',
 'recentchangescount' => 'Domyślna liczba wyświetlanych edycji',
 'prefs-help-recentchangescount' => 'Uwzględnia ostatnie zmiany, historię stron i rejestry.',
-'prefs-help-watchlist-token' => 'Wypełnianie tego pola tajnym kluczem spowoduje wygenerowanie RSS dla Twojej listy obserwowanych.
-Każdy znający ten klucz będzie mógł zobaczyć listę obserwowanych, należy więc wybrać bezpieczną wartość.
-Wygenerowany losowo klucz, którego możesz użyć to $1',
 'savedprefs' => 'Twoje preferencje zostały zapisane.',
 'timezonelegend' => 'Strefa czasowa',
 'localtime' => 'Czas lokalny',
@@ -1491,7 +1495,6 @@ Wygenerowany losowo klucz, którego możesz użyć to $1',
 'prefs-reset-intro' => 'Na tej stronie można przywrócić domyślne ustawienia preferencji dla tej witryny.
 Tej operacji nie można później cofnąć.',
 'prefs-emailconfirm-label' => 'Potwierdzenie adresu e‐mail',
-'prefs-textboxsize' => 'Rozmiar okna edycji',
 'youremail' => 'Twój adres e‐mail',
 'username' => '{{GENDER:$1|Nazwa użytkownika}}:',
 'uid' => '{{GENDER:$1|Identyfikator użytkownika}}:',
@@ -1522,7 +1525,9 @@ Jeśli zdecydujesz się je podać, zostaną użyte, by udokumentować Twoje auto
 'prefs-signature' => 'Podpis',
 'prefs-dateformat' => 'Format daty',
 'prefs-timeoffset' => 'Różnica czasu',
-'prefs-advancedediting' => 'Zaawansowane',
+'prefs-advancedediting' => 'Ogólne',
+'prefs-editor' => 'Edytor',
+'prefs-preview' => 'Podgląd',
 'prefs-advancedrc' => 'Zaawansowane',
 'prefs-advancedrendering' => 'Zaawansowane',
 'prefs-advancedsearchoptions' => 'Zaawansowane',
@@ -1549,7 +1554,7 @@ Jeśli zdecydujesz się je podać, zostaną użyte, by udokumentować Twoje auto
 'userrights-groups-help' => 'Możesz zmienić przynależność tego użytkownika do podanych grup.
 * Zaznaczone pole oznacza przynależność użytkownika do danej grupy.
 * Niezaznaczone pole oznacza, że użytkownik nie należy do danej grupy.
-* Gwiazdka * informuje, że nie możesz usunąć z grupy po dodaniu do niej lub dodać po usunięciu z grupy.',
+* Gwiazdka * informuje, że nie możesz usunąć użytkownika z grupy po dodaniu do niej lub dodać po usunięciu.',
 'userrights-reason' => 'Powód',
 'userrights-no-interwiki' => 'Nie masz dostępu do edycji uprawnień na innych wiki.',
 'userrights-nodatabase' => 'Baza danych $1 nie istnieje lub nie jest lokalna.',
@@ -1558,6 +1563,7 @@ Jeśli zdecydujesz się je podać, zostaną użyte, by udokumentować Twoje auto
 'userrights-changeable-col' => 'Grupy, które możesz wybrać',
 'userrights-unchangeable-col' => 'Grupy, których nie możesz wybrać',
 'userrights-conflict' => 'Konflikt uprawnień użytkownika! Proszę zastosować zmiany ponownie.',
+'userrights-removed-self' => 'Pomyślnie odebrałeś sobie uprawnienia. W związku z tym nie masz już dostępu do tej strony.',
 
 # Groups
 'group' => 'Grupa',
@@ -1597,7 +1603,7 @@ Jeśli zdecydujesz się je podać, zostaną użyte, by udokumentować Twoje auto
 'right-suppressredirect' => 'Przenoszenie stron bez tworzenia przekierowania w miejscu starej nazwy',
 'right-upload' => 'Przesyłanie plików na serwer',
 'right-reupload' => 'Nadpisywanie istniejącego pliku',
-'right-reupload-own' => 'Nadpisywanie istniejącego, wcześniej przesłanego pliku',
+'right-reupload-own' => 'Nadpisywanie wcześniej przesłanego pliku',
 'right-reupload-shared' => 'Lokalne nadpisywanie pliku istniejącego we współdzielonych zasobach',
 'right-upload_by_url' => 'Przesyłanie plików z adresu URL',
 'right-purge' => 'Czyszczenie pamięci podręcznej stron bez pytania o potwierdzenie',
@@ -1610,30 +1616,38 @@ Jeśli zdecydujesz się je podać, zostaną użyte, by udokumentować Twoje auto
 'right-bigdelete' => 'Usuwanie stron z długą historią edycji',
 'right-deletelogentry' => 'Usuwanie i przywracanie wpisów rejestru',
 'right-deleterevision' => 'Usuwanie i odtwarzanie określonej wersji strony',
-'right-deletedhistory' => 'Podgląd usuniętych wersji, bez przypisanego im tekstu',
+'right-deletedhistory' => 'Podgląd usuniętych wersji bez przypisanego im tekstu',
 'right-deletedtext' => 'Podgląd usuniętego tekstu i zmian pomiędzy usuniętymi wersjami',
 'right-browsearchive' => 'Przeszukiwanie usuniętych stron',
 'right-undelete' => 'Odtwarzanie usuniętych stron',
 'right-suppressrevision' => 'Podgląd i odtwarzanie wersji ukrytych przed Administratorami',
 'right-suppressionlog' => 'Podgląd rejestru ukrywania',
 'right-block' => 'Blokowanie użytkownikom możliwości edycji',
-'right-blockemail' => 'Blokowanie wysyłania wiadomości przez użytkownika',
+'right-blockemail' => 'Blokowanie użytkownikom możliwości wysyłania wiadomości',
 'right-hideuser' => 'Blokowanie użytkownika, niewidoczne publicznie',
-'right-ipblock-exempt' => 'Obejście blokad, automatycznych blokad i blokad zakresów, adresów IP',
+'right-ipblock-exempt' => 'Obejście blokad, automatycznych blokad i blokad zakresów adresów IP',
 'right-proxyunbannable' => 'Obejście automatycznych blokad proxy',
 'right-unblockself' => 'Odblokowanie samego siebie',
-'right-protect' => 'Zmiana poziomu zabezpieczenia i dostęp do edycji zabezpieczonych stron',
-'right-editprotected' => 'Dostęp do edycji zabezpieczonych stron (bez zabezpieczenia dziedziczonego)',
+'right-protect' => 'Zmiana stopnia zabezpieczenia i dostęp do edycji stron zabezpieczonych kaskadowo',
+'right-editprotected' => 'Edycja stron zabezpieczonych na poziomie „{{int:protect-level-sysop}}”',
+'right-editsemiprotected' => 'Edycja stron zabezpieczonych na poziomie „{{int:protect-level-autoconfirmed}}”',
 'right-editinterface' => 'Edycja interfejsu użytkownika',
 'right-editusercssjs' => 'Edycja plików CSS i JS innych użytkowników',
 'right-editusercss' => 'Edycja plików CSS innych użytkowników',
 'right-edituserjs' => 'Edycja plików JS innych użytkowników',
+'right-editmyusercss' => 'Edytuj własne pliki CSS',
+'right-editmyuserjs' => 'Edytuj własne pliki JavaScript',
+'right-viewmywatchlist' => 'Podgląd swojej listy obserwowanych stron',
+'right-editmywatchlist' => 'Edycja swojej listy obserwowanych stron. Niektóre akcje mogą dodawać strony do obserwowanych bez tego uprawnienia.',
+'right-viewmyprivateinfo' => 'Podgląd swoich prywatnych danych (np. adres e-mail, prawdziwe imię i nazwisko)',
+'right-editmyprivateinfo' => 'Edycja swoich prywatnych danych (np. adres e-mail, prawdziwe imię i nazwisko)',
+'right-editmyoptions' => 'Edycja swoich preferencji',
 'right-rollback' => 'Szybkie wycofanie zmian wprowadzonych przez użytkownika, który jako ostatni edytował jakąś stronę',
 'right-markbotedits' => 'Oznaczanie rewertu jako edycji bota',
 'right-noratelimit' => 'Brak ograniczeń przepustowości',
 'right-import' => 'Import stron z innych wiki',
 'right-importupload' => 'Import stron poprzez przesłanie pliku',
-'right-patrol' => 'Oznaczanie edycji jako „sprawdzonych”',
+'right-patrol' => 'Oznaczanie edycji jako „sprawdzone”',
 'right-autopatrol' => 'Własne edycje automatycznie oznaczane jako „sprawdzone”',
 'right-patrolmarks' => 'Podgląd znaczników patrolowania ostatnich zmian – oznaczania jako „sprawdzone”',
 'right-unwatchedpages' => 'Podgląd listy stron nieobserwowanych',
@@ -1689,12 +1703,17 @@ Jeśli zdecydujesz się je podać, zostaną użyte, by udokumentować Twoje auto
 'action-userrights-interwiki' => 'edytowania uprawnień użytkowników na innych witrynach wiki',
 'action-siteadmin' => 'blokowania i odblokowywania bazy danych',
 'action-sendemail' => 'wysyłania e-maili',
+'action-editmywatchlist' => 'edycji swojej listy obserwowanych stron',
+'action-viewmywatchlist' => 'zobaczenia swojej listy obserwowanych stron',
+'action-viewmyprivateinfo' => 'zobaczenia swoich prywatnych danych',
+'action-editmyprivateinfo' => 'edycji swoich prywatnych danych',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|zmiana|zmiany|zmian}}',
 'recentchanges' => 'Ostatnie zmiany',
 'recentchanges-legend' => 'Opcje ostatnich zmian',
 'recentchanges-summary' => 'Ta strona przedstawia historię ostatnich zmian w tej wiki.',
+'recentchanges-noresult' => 'Brak zmian w wybranym okresie spełniających twoje kryteria.',
 'recentchanges-feed-description' => 'Obserwuj najświeższe zmiany w tej wiki.',
 'recentchanges-label-newpage' => 'W tej edycji utworzono nową stronę',
 'recentchanges-label-minor' => 'To jest drobna zmiana',
@@ -1722,7 +1741,7 @@ Jeśli zdecydujesz się je podać, zostaną użyte, by udokumentować Twoje auto
 'rc_categories_any' => 'Wszystkie',
 'rc-change-size-new' => '$1 {{PLURAL:$1|bajt|bajty|bajtów}} po zmianie',
 'newsectionsummary' => '/* $1 */ nowa sekcja',
-'rc-enhanced-expand' => 'Pokaż szczegóły (wymagana JavaScript)',
+'rc-enhanced-expand' => 'Pokaż szczegóły (wymagany JavaScript)',
 'rc-enhanced-hide' => 'Ukryj szczegóły',
 'rc-old-title' => 'oryginalnie utworzono jako "$1"',
 
@@ -1731,7 +1750,6 @@ Jeśli zdecydujesz się je podać, zostaną użyte, by udokumentować Twoje auto
 'recentchangeslinked-feed' => 'Zmiany w linkowanych',
 'recentchangeslinked-toolbox' => 'Zmiany w linkowanych',
 'recentchangeslinked-title' => 'Zmiany w linkowanych z „$1”',
-'recentchangeslinked-noresult' => 'Nie było żadnych zmian na (zależnie od ustawień) linkowanych lub linkujących stronach w wybranym okresie.',
 'recentchangeslinked-summary' => "Poniżej znajduje się lista ostatnich zmian na stronach linkowanych z podanej strony (lub we wszystkich stronach należących do podanej kategorii).
 Strony z [[Special:Watchlist|listy obserwowanych]] są '''wytłuszczone'''.",
 'recentchangeslinked-page' => 'Tytuł strony',
@@ -1743,7 +1761,7 @@ Strony z [[Special:Watchlist|listy obserwowanych]] są '''wytłuszczone'''.",
 'reuploaddesc' => 'Przerwij wysyłanie i wróć do formularza wysyłki',
 'upload-tryagain' => 'Zapisz zmieniony opis pliku',
 'uploadnologin' => 'Nie jesteś zalogowany',
-'uploadnologintext' => 'Musisz się [[Special:UserLogin|zalogować]] przed przesłaniem plików.',
+'uploadnologintext' => 'Musisz $1 przed przesłaniem plików.',
 'upload_directory_missing' => 'Katalog dla przesyłanych plików ($1) nie istnieje i nie może zostać utworzony przez serwer WWW.',
 'upload_directory_read_only' => 'Serwer nie może zapisywać do katalogu ($1) przeznaczonego na przesyłane pliki.',
 'uploaderror' => 'Błąd wysyłania',
@@ -1879,11 +1897,11 @@ $1',
 'upload-proto-error-text' => 'Zdalne przesyłanie plików wymaga podania adresu URL zaczynającego się od <code>http://</code> lub <code>ftp://</code>.',
 'upload-file-error' => 'Błąd wewnętrzny',
 'upload-file-error-text' => 'Wystąpił błąd wewnętrzny podczas próby utworzenia tymczasowego pliku na serwerze.
-Skontaktuj się z [[Special:ListUsers/sysop|administratorem systemu]].',
+Skontaktuj się z [[Special:ListUsers/sysop|administratorem]].',
 'upload-misc-error' => 'Nieznany błąd przesyłania',
 'upload-misc-error-text' => 'Wystąpił nieznany błąd podczas przesyłania.
 Sprawdź, czy podany adres URL jest poprawny i dostępny, a następnie spróbuj ponownie.
-Jeśli problem będzie się powtarzał, skontaktuj się z [[Special:ListUsers/sysop|administratorem systemu]].',
+Jeśli problem będzie się powtarzał, skontaktuj się z [[Special:ListUsers/sysop|administratorem]].',
 'upload-too-many-redirects' => 'URL zawiera zbyt wiele przekierowań',
 'upload-unknown-size' => 'Nieznany rozmiar',
 'upload-http-error' => 'Wystąpił błąd protokołu HTTP – $1',
@@ -2314,7 +2332,8 @@ Wymaga podania co najmniej domeny najwyższego poziomu np. „*.org”.<br />
 'listgrouprights' => 'Uprawnienia grup użytkowników',
 'listgrouprights-summary' => 'Poniżej znajduje się spis zdefiniowanych na tej wiki grup użytkowników, z wyszczególnieniem przydzielonych im uprawnień.
 Sprawdź stronę z [[{{MediaWiki:Listgrouprights-helppage}}|dodatkowymi informacjami]] o uprawnieniach.',
-'listgrouprights-key' => '* <span class="listgrouprights-granted">Przyznane uprawnienie</span>
+'listgrouprights-key' => 'Legenda:
+* <span class="listgrouprights-granted">Przyznane uprawnienie</span>
 * <span class="listgrouprights-revoked">Odebrane uprawnienie</span>',
 'listgrouprights-group' => 'Grupa',
 'listgrouprights-rights' => 'Uprawnienia',
@@ -2385,10 +2404,9 @@ Każda zmiana treści tej strony lub związanej z nią strony dyskusji zostanie
 'unwatchthispage' => 'Nie obserwuj',
 'notanarticle' => 'To nie jest artykuł',
 'notvisiblerev' => 'Wersja została usunięta',
-'watchnochange' => 'Żadna z obserwowanych stron nie była edytowana w podanym okresie.',
 'watchlist-details' => 'Lista obserwowanych przez Ciebie stron zawiera {{PLURAL:$1|$1 pozycję|$1 pozycje|$1 pozycji}}, nie licząc stron dyskusji.',
 'wlheader-enotif' => 'Wysyłanie powiadomień na adres e‐mail jest włączone.',
-'wlheader-showupdated' => "'''Wytłuszczone''' zostały strony, które zostały zmodyfikowane od Twojej ostatniej na nich wizyty.",
+'wlheader-showupdated' => "'''Wytłuszczone''' zostały strony, które zostały zmodyfikowane od Twojej ostatniej wizyty na nich.",
 'watchmethod-recent' => 'poszukiwanie ostatnich zmian wśród obserwowanych stron',
 'watchmethod-list' => 'poszukiwanie obserwowanych stron wśród ostatnich zmian',
 'watchlistcontains' => 'Na liście obserwowanych przez Ciebie stron {{PLURAL:$1|znajduje się 1 pozycja|znajdują się $1 pozycje|znajduje się $1 pozycji}}.',
@@ -2491,7 +2509,7 @@ Ktoś inny zdążył już to zrobić lub wprowadził własne poprawki do treści
 Autorem ostatniej zmiany jest teraz [[User:$3|$3]] ([[User talk:$3|dyskusja]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "Edycję opisał „''$1''”.",
 'revertpage' => 'Wycofano edycje użytkownika [[Special:Contributions/$2|$2]] ([[User talk:$2|dyskusja]]). Autor przywróconej wersji to [[User:$1|$1]].',
-'revertpage-nouser' => 'Wycofano edycje (nazwa użytkownika usunięta). Autor przywróconej wersji to [[User:$1|$1]].',
+'revertpage-nouser' => 'Wycofano edycje ukrytego użytkownika. Autor przywróconej wersji to [[User:$1|$1]].',
 'rollback-success' => 'Wycofano edycje użytkownika $1;
 przywrócono ostatnią wersję autorstwa $2.',
 
@@ -2530,7 +2548,7 @@ Obecne ustawienia dla strony '''$1''' to:",
 'protect-cascadeon' => 'Ta strona jest zabezpieczona przed edycją, ponieważ jest używana przez {{PLURAL:$1|następującą stronę, która została zabezpieczona|następujące strony, które zostały zabezpieczone}} z włączoną opcją dziedziczenia. Możesz zmienić stopień zabezpieczenia strony, ale nie wpłynie to na dziedziczenie zabezpieczenia.',
 'protect-default' => 'Dostęp mają wszyscy użytkownicy',
 'protect-fallback' => 'Wymaga uprawnień „$1”',
-'protect-level-autoconfirmed' => 'Dozwolone dla wszystkich poza nowymi i niezalogowanymi użytkownikami',
+'protect-level-autoconfirmed' => 'Dozwolone tylko dla użytkowników automatycznie zatwierdzonych',
 'protect-level-sysop' => 'Dozwolone tylko dla administratorów',
 'protect-summary-cascade' => 'dziedziczenie',
 'protect-expiring' => 'wygasa $1 (UTC)',
@@ -2636,7 +2654,7 @@ $1',
 'mycontris' => 'Edycje',
 'contribsub2' => 'Dla użytkownika $1 ($2)',
 'nocontribs' => 'Brak zmian odpowiadających tym kryteriom.',
-'uctop' => ' (jako ostatnia)',
+'uctop' => '(ostatnia)',
 'month' => 'Do miesiąca (włącznie)',
 'year' => 'Do roku (włącznie)',
 
@@ -2677,7 +2695,7 @@ Poniżej znajduje się ostatni wpis w rejestrze blokowania.',
 'whatlinkshere-filters' => 'Filtry',
 
 # Block/unblock
-'autoblockid' => 'Automatyczna blokada nr $1',
+'autoblockid' => 'automatyczna blokada nr $1',
 'block' => 'Zablokuj użytkownika',
 'unblock' => 'Odblokuj użytkownika',
 'blockip' => 'Zablokuj użytkownika',
@@ -2965,7 +2983,7 @@ Odwiedź [//www.mediawiki.org/wiki/Localisation Tłumaczenie MediaWiki] oraz [//
 'thumbnail-more' => 'Powiększ',
 'filemissing' => 'Brak pliku',
 'thumbnail_error' => 'Błąd przy generowaniu miniatury $1',
-'thumbnail_error_remote' => 'Komunikat o błędzie z  $1 :
+'thumbnail_error_remote' => 'Komunikat o błędzie z {{grammar:2sg|$1}}:
 $2',
 'djvu_page_error' => 'Strona DjVu poza zakresem',
 'djvu_no_xml' => 'Nie można pobrać danych w formacie XML dla pliku DjVu',
@@ -3838,7 +3856,6 @@ Czy na pewno chcesz ją ponownie utworzyć?",
 'confirm-unwatch-top' => 'Usunąć tę stronę z listy obserwowanych?',
 
 # Separators for various lists, etc.
-'autocomment-prefix' => '–&#32;',
 'percent' => '$1&nbsp;%',
 
 # Multipage image navigation
@@ -3964,14 +3981,13 @@ Możesz także użyć [[Special:EditWatchlist|standardowego edytora obserwowanyc
 'version-other' => 'Pozostałe',
 'version-mediahandlers' => 'Wtyczki obsługi mediów',
 'version-hooks' => 'Haki (ang. hooks)',
-'version-extension-functions' => 'Funkcje rozszerzeń',
 'version-parser-extensiontags' => 'Znaczniki rozszerzeń dla analizatora składni',
 'version-parser-function-hooks' => 'Funkcje haków analizatora składni (ang. parser function hooks)',
 'version-hook-name' => 'Nazwa haka (ang. hook name)',
 'version-hook-subscribedby' => 'Zapotrzebowany przez',
 'version-version' => '(Wersja $1)',
 'version-license' => 'Licencja',
-'version-poweredby-credits' => "To wiki korzysta z oprogramowania '''[//www.mediawiki.org/ MediaWiki]''', copyright © 2001‐$1 $2.",
+'version-poweredby-credits' => "Ta wiki korzysta z oprogramowania '''[//www.mediawiki.org/ MediaWiki]''', copyright © 2001‐$1 $2.",
 'version-poweredby-others' => 'inni',
 'version-credits-summary' => 'Następujące osoby wniosły istotny wkład w rozwój oprogramowania [[Special:Version|MediaWiki]].',
 'version-license-info' => 'MediaWiki jest wolnym oprogramowaniem – możesz je dystrybuować i modyfikować zgodnie z warunkami licencji GNU General Public License opublikowanej przez Free Software Foundation w wersji 2 tej licencji lub (jeśli wolisz) dowolnej późniejszej.
@@ -3987,8 +4003,9 @@ Powinieneś otrzymać [{{SERVER}}{{SCRIPTPATH}}/COPYING kopię licencji GNU Gene
 'version-entrypoints-header-url' => 'URL',
 
 # Special:Redirect
-'redirect' => 'Przekierowanie przez identyfikator pliku, użytkownika lub zmiany',
+'redirect' => 'Przekierowanie według pliku, użytkownika albo identyfikatora wersji',
 'redirect-legend' => 'Przekieruj do pliku lub strony',
+'redirect-summary' => 'Ta strona specjalna przekierowuje do pliku (wg nazwy pliku), do strony (wg numeru wersji) albo do strony użytkownika (wg liczbowego identyfikatora użytkownika)',
 'redirect-submit' => 'Przejdź',
 'redirect-lookup' => 'Wyszukaj:',
 'redirect-value' => 'Wartość:',
@@ -4044,7 +4061,8 @@ Powinieneś otrzymać [{{SERVER}}{{SCRIPTPATH}}/COPYING kopię licencji GNU Gene
 'tags' => 'Sprawdź zmiany w oparciu o wzorce tekstu',
 'tag-filter' => 'Filtr [[Special:Tags|wzorców tekstu]]',
 'tag-filter-submit' => 'Filtr',
-'tags-title' => 'Wzorce tekstu',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Znacznik|Znaczniki}}]]: $2)',
+'tags-title' => 'Znaczniki',
 'tags-intro' => 'Na tej stronie znajduje się lista wzorców tekstu, dla których oprogramowanie może oznaczyć edycje, dodatkowo wskazując ich znaczenie.',
 'tags-tag' => 'Nazwa znacznika',
 'tags-display-header' => 'Wystąpienia na listach zmian',
@@ -4130,7 +4148,7 @@ Powinieneś otrzymać [{{SERVER}}{{SCRIPTPATH}}/COPYING kopię licencji GNU Gene
 'rightsnone' => 'brak',
 
 # Feedback
-'feedback-bugornote' => 'Jeśli jesteś {{GENDER:|gotów|gotowa}} szczegółowo opisać problem techniczny, proszę [$1 zgłoś błąd].
+'feedback-bugornote' => 'Jeśli jesteś w stanie szczegółowo opisać problem techniczny, proszę [$1 zgłoś błąd].
 W przeciwnym wypadku można użyć prostego formularza poniżej. Komentarz zostanie dodany do strony "[$3  $2]", wraz z nazwą użytkownika.',
 'feedback-subject' => 'Temat',
 'feedback-message' => 'Wiadomość:',
index efc409a..c6fbadd 100644 (file)
@@ -10,6 +10,7 @@
  * @author Borichèt
  * @author Bèrto 'd Sèra
  * @author Dragonòt
+ * @author Geitost
  * @author Kaganer
  * @author MaxSem
  * @author SabineCretella
@@ -192,81 +193,81 @@ $messages = array(
 'faqpage' => 'Project:Soèns An Ciamo',
 
 # Vector skin
-'vector-action-addsection' => 'Gionta argoment',
-'vector-action-delete' => 'Scancela',
-'vector-action-move' => 'Tramuda',
-'vector-action-protect' => 'Protegg',
-'vector-action-undelete' => 'Arcùpera',
+'vector-action-addsection' => "Gionté n'argoment",
+'vector-action-delete' => 'Scancelé',
+'vector-action-move' => 'Tramudé',
+'vector-action-protect' => 'Protege',
+'vector-action-undelete' => 'Arcuperé',
 'vector-action-unprotect' => 'Cangé la protession',
 'vector-simplesearch-preference' => "Abilité la bara d'arserca semplificà (mach për la pel Vector)",
-'vector-view-create' => 'Crea',
-'vector-view-edit' => 'Modìfica',
-'vector-view-history' => 'Varda stòria',
-'vector-view-view' => 'Les',
-'vector-view-viewsource' => 'Varda sorgiss',
+'vector-view-create' => 'Creé',
+'vector-view-edit' => 'Modifiché',
+'vector-view-history' => 'Smon-e la stòria',
+'vector-view-view' => 'Lese',
+'vector-view-viewsource' => 'Vëdde la sorgiss',
 'actions' => 'Assion',
 'namespaces' => 'Spassi nominaj',
 'variants' => 'Variant',
 
 'navigation-heading' => 'Lista ëd navigassion',
 'errorpagetitle' => 'Eror',
-'returnto' => 'Torna andré a $1.',
+'returnto' => 'Torné andré a $1.',
 'tagline' => 'Da {{SITENAME}}.',
 'help' => 'Agiut',
-'search' => 'Sërca',
-'searchbutton' => 'Sërca',
-'go' => 'Va',
-'searcharticle' => 'Va',
+'search' => 'Sërc',
+'searchbutton' => 'Sërc',
+'go' => 'Andé',
+'searcharticle' => 'Andé',
 'history' => 'Version pì veje',
 'history_short' => 'Stòria',
-'updatedmarker' => "Agiornà da 'nt l'ùltima vira che i son passà",
+'updatedmarker' => "agiornà da l'ùltima vira che i son passà",
 'printableversion' => 'Version bon-a për stampé',
 'permalink' => 'Anliura fissa',
-'print' => 'Stampa',
+'print' => 'Stampé',
 'view' => 'Vardé',
-'edit' => 'Modìfica',
+'edit' => 'Modifiché',
 'create' => 'Creé',
-'editthispage' => "Modìfica st'artìcol-sì",
+'editthispage' => 'Modifiché costa pàgina',
 'create-this-page' => 'Creé sta pàgina',
-'delete' => 'Scancela',
-'deletethispage' => 'Scancela pàgina',
-'undelete_short' => 'Disdëscancela {{PLURAL:$1|na modìfica|$1 modìfiche}}',
+'delete' => 'Scancelé',
+'deletethispage' => 'Scancelé sa pàgina',
+'undelete_short' => 'Arcuperé {{PLURAL:$1|na modìfica|$1 modìfiche}}',
 'viewdeleted_short' => 'Vardé {{PLURAL:$1|na modìfica scancelà|$1 modìfiche scancelà}}',
-'protect' => 'Protegg',
-'protect_change' => 'cambia',
-'protectthispage' => 'Protegg sta pàgina-sì',
+'protect' => 'Protege',
+'protect_change' => 'modifiché',
+'protectthispage' => 'Protege sta pàgina-sì',
 'unprotect' => 'Cangé la protession',
 'unprotectthispage' => 'Cangé la protession ëd sa pàgina',
 'newpage' => 'Pàgina neuva',
 'talkpage' => 'Discussion',
 'talkpagelinktext' => 'discussion',
-'specialpage' => 'Pàgina Special',
+'specialpage' => 'Pàgina special',
 'personaltools' => 'Utiss përsonaj',
 'postcomment' => 'Session neuva',
-'articlepage' => "Che a varda l'artìcol",
+'articlepage' => 'Vëdde la pàgina ëd contnù',
 'talk' => 'Discussion',
-'views' => 'vìsite',
-'toolbox' => 'utiss',
+'views' => 'Vìsite',
+'toolbox' => "Bòita dj'utiss",
 'userpage' => 'Che a varda la pàgina Utent',
-'projectpage' => 'Che a varda la pàgina ëd servissi',
-'imagepage' => "Varda la pàgina dl'archivi",
-'mediawikipage' => 'Mostra ël mëssagi',
-'templatepage' => 'Mostra lë stamp',
-'viewhelppage' => "Smon la pàgina d'agiut",
-'categorypage' => 'Fa vëdde la categorìa',
+'projectpage' => 'Che a varda la pàgina ëd proget',
+'imagepage' => "Vëdde la pàgina dl'archivi",
+'mediawikipage' => 'Mostré ël mëssagi',
+'templatepage' => 'Vëdde lë stamp',
+'viewhelppage' => "Smon-e la pàgina d'agiut",
+'categorypage' => 'Vëdde la categorìa',
 'viewtalkpage' => 'Vardé la discussion',
 'otherlanguages' => 'Àutre lenghe',
 'redirectedfrom' => '(Ridiression da $1)',
 'redirectpagesub' => 'Pàgina ëd ridiression',
-'lastmodifiedat' => "Modificà l'ùltima vira al $2, $1.",
+'lastmodifiedat' => "Modificà l'ùltima vira ai $1 a $2.",
 'viewcount' => "St'artìcol-sì a l'é stàit lesù {{PLURAL:$1|na vira|$1 vire}}.",
 'protectedpage' => 'Pàgina proteta',
-'jumpto' => 'Va a:',
+'jumpto' => 'Andé a:',
 'jumptonavigation' => 'navigassion',
-'jumptosearch' => 'arserca',
+'jumptosearch' => 'arserc',
 'view-pool-error' => "An dëspias, ij servent a son motobin carià al moment.
 Tròpi utent a son an camin ch'a preuvo a lese sta pàgina-sì.
-Për piasì, speta un pòch prima ëd prové torna a vardé sta pàgina-sì.
+Për piasì, ch'a speta un pòch prima ëd prové torna a lese costa pàgina.
 
 $1",
 'pool-timeout' => "Ël temp a l'é finì antramentre ch'a së spetava la saradura",
@@ -280,68 +281,67 @@ $1",
 'copyrightpage' => "{{ns:project}}:Drit d'autor",
 'currentevents' => 'Neuve',
 'currentevents-url' => 'Project:Neuve',
-'disclaimers' => 'Difide',
+'disclaimers' => 'Avertense',
 'disclaimerpage' => 'Project:Avertense generaj',
-'edithelp' => 'Manual dë spiegassion',
-'edithelppage' => "Help:Coma scrive n'artìcol",
-'helppage' => 'Help:Agiut',
+'edithelp' => 'Agiut a la modìfica',
+'helppage' => 'Help:Contnù',
 'mainpage' => 'Intrada',
 'mainpage-description' => 'Intrada',
-'policy-url' => 'Project:Deuit',
+'policy-url' => 'Project:Régole',
 'portal' => 'Piòla',
 'portal-url' => 'Project:Piòla',
-'privacy' => 'Polìtica ëd confindensialità',
-'privacypage' => 'Project:Polìtica ëd confidensialità',
+'privacy' => 'Régole ëd confidensialità',
+'privacypage' => 'Project:Régole ëd confidensialità',
 
 'badaccess' => 'Përmess nen giust',
 'badaccess-group0' => "A l'ha pa ij përmess dont a fa dë manca për fé st'operassion-sì.",
 'badaccess-groups' => "Costa funsion-sì a l'é riservà a j'utent che a sio almanch ant {{PLURAL:$2|la partìa|un-a dle partìe}}: $1.",
 
 'versionrequired' => 'A-i va për fòrsa la version $1 ëd MediaWiki',
-'versionrequiredtext' => 'Për dovré sta pàgina-sì a-i va la version $1 dël programa MediaWiki. Che a varda [[Special:Version]]',
+'versionrequiredtext' => 'Për dovré sta pàgina-sì a-i va la version $1 dël programa MediaWiki. Che a varda [[Special:Version|la pàgina dle version]].',
 
 'ok' => 'Va bin',
-'retrievedfrom' => 'Pijàit da  "$1"',
+'retrievedfrom' => 'Pijàit da «$1»',
 'youhavenewmessages' => "A l'ha $1 ($2).",
-'newmessageslink' => 'mëssagi neuv',
-'newmessagesdifflink' => "A-i é chèich-còs ëd diferent da 'nt l'ùltima revision",
-'youhavenewmessagesfromusers' => "It l'has $1 da {{PLURAL:$3|n'autr utent|$3 utent}} ($2).",
+'newmessageslink' => 'ëd mëssagi neuv',
+'newmessagesdifflink' => 'ùltima modìfica',
+'youhavenewmessagesfromusers' => "A l'ha $1 da {{PLURAL:$3|n'autr utent|$3 utent}} ($2).",
 'youhavenewmessagesmanyusers' => "A l'ha $1 da vàire utent ($2).",
 'newmessageslinkplural' => '{{PLURAL:$1|un mëssagi neuv|$1 mëssagi neuv}}',
-'newmessagesdifflinkplural' => 'ùltime {{PLURAL:$1|modìfica|modìfiche}}',
+'newmessagesdifflinkplural' => '{{PLURAL:$1|ùltima modìfica|ùltime modìfiche}}',
 'youhavenewmessagesmulti' => "A l'ha dij neuv mëssagi an $1",
-'editsection' => 'modìfica',
-'editold' => 'modìfica',
-'viewsourceold' => 'fa vëdde ël còdes sorgiss',
-'editlink' => 'modìfica',
-'viewsourcelink' => 'fà vëdde ël còdes sorgiss',
-'editsectionhint' => 'I soma dapress a modifiché la session: $1',
+'editsection' => 'modifiché',
+'editold' => 'modifiché',
+'viewsourceold' => 'vëdde la sorgiss',
+'editlink' => 'modifiché',
+'viewsourcelink' => 'vëdde la sorgiss',
+'editsectionhint' => 'Modifiché la session: $1',
 'toc' => 'Contnù',
-'showtoc' => 'smon',
-'hidetoc' => 'stërma',
-'collapsible-collapse' => 'Sëré',
-'collapsible-expand' => 'Deurbe',
+'showtoc' => 'smon-e',
+'hidetoc' => 'stërmé',
+'collapsible-collapse' => 'Saré',
+'collapsible-expand' => 'deurbe',
 'thisisdeleted' => 'Veul-lo vardé ò ripristiné $1?',
 'viewdeleted' => 'Veul-lo vardé $1?',
 'restorelink' => '{{PLURAL:$1|na modìfica scancelà|$1 modìfiche scancelà}}',
 'feedlinks' => 'Fluss:',
-'feed-invalid' => 'Modalità ëd sot-ëscrission dël fluss nen vàlida.',
+'feed-invalid' => "Sòrt ëd fluss d'abonament nen vàlida.",
 'feed-unavailable' => 'Ij fluss ëd neuve a son nen disponìbij',
 'site-rss-feed' => 'Emission RSS $1',
-'site-atom-feed' => 'Emission Atom $1',
-'page-rss-feed' => 'Emission RSS "$1"',
-'page-atom-feed' => 'Emission Atom "$1"',
-'red-link-title' => "$1 (pàgina ch'a-i é ancor pa)",
+'site-atom-feed' => 'Emission Atom ëd $1',
+'page-rss-feed' => 'Emission RSS ëd «$1»',
+'page-atom-feed' => 'Emission Atom ëd «$1»',
+'red-link-title' => "$1 (pàgina ch'a esist pa)",
 'sort-descending' => 'Ordinament an caland',
-'sort-ascending' => 'Órdina an chërsend',
+'sort-ascending' => 'Ordinament an chërsend',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
-'nstab-main' => 'Artìcol',
+'nstab-main' => 'Pàgina',
 'nstab-user' => "Pàgina dl'utent",
-'nstab-media' => 'Pàgina multimedial',
+'nstab-media' => 'Pàgina multimojen',
 'nstab-special' => 'Pàgina special',
-'nstab-project' => 'Pàgina ëd servissi',
-'nstab-image' => 'Figura',
+'nstab-project' => 'Pàgina ëd proget',
+'nstab-image' => 'Archivi',
 'nstab-mediawiki' => 'Mëssagi',
 'nstab-template' => 'Stamp',
 'nstab-help' => 'Agiut',
@@ -350,72 +350,72 @@ $1",
 # Main script and global functions
 'nosuchaction' => 'Operassion nen arconossùa',
 'nosuchactiontext' => "L'operassion che a l'ha ciamà ant l'anliura a l'é nen arconossùa.
-A peul esse che it l'abie batù mal l'URL, o che it sie andàit dapress a n'anliura nen giusta.
-Sossì a podrìa ëdcò esse un bigat andrinta al programa dovrà da {{SITENAME}}.",
-'nosuchspecialpage' => "A-i é pa gnun-a pàgina special tan-me cola che chiel a l'ha ciamà.",
-'nospecialpagetext' => "<strong>It l'has ciamà na pàgina special pa bon-a.</strong>
+A peul esse che a l'abie batù mal l'adrëssa, o che a sia andàit dapress a n'anliura nen giusta.
+Sossì a podrìa ëdcò esse un givo andrinta al programa dovrà da {{SITENAME}}.",
+'nosuchspecialpage' => "A-i é gnun-a pàgina special tan-me cola che chiel a l'ha ciamà.",
+'nospecialpagetext' => "<strong>A l'ha ciamà na pàgina special ch'a esist pa.</strong>
 
-Na lista ëd pàgine speciaj bon-e a peul esse trovà ambelessì [[Special:SpecialPages|{{int:specialpages}}]].",
+Na lista dle pàgine speciaj bon-e a peul esse trovà ambelessì [[Special:SpecialPages|{{int:specialpages}}]].",
 
 # General errors
 'error' => 'Eror',
-'databaseerror' => 'Eror ant la base dat',
+'databaseerror' => 'Eror ant la base ëd dat',
 'dberrortext' => "A l'é capitaje n'eror ëd sintassi ant la domanda mandà a la base dij dat.
 Sòn a peul vorèj dì n'eror ant ël programa.
 L'ùltima arcesta mandà a la base dij dat a l'é stàita:
-<blockquote><tt>$1</tt></blockquote>
-da 'nt la funsion «<tt>$2</tt>».
-La base dij dat a l'ha dàit n'eror «<tt>$3: $4</tt>».",
-'dberrortextcl' => 'A-i é staje n\'eror ant la sintassi d\'anterogassion dla base dat.
-L\'ùltima anterogassion a l\'é stàita:
-"$1"
-da andrinta a la funsion "$2".
-La base dat a l\'ha dane n\'eror "$3: $4"',
-'laggedslavemode' => 'Avis: la pàgina a podrìa ëdcò nen mostré tute soe modìfiche.',
-'readonly' => 'Acess a la base dat sërà për chèich temp.',
+<blockquote><code>$1</code></blockquote>
+da 'nt la funsion «<code>$2</code>».
+La base dij dat a l'ha dàit n'eror «<samp>$3: $4</samp>».",
+'dberrortextcl' => "A-i é staje n'eror ant la sintassi d'anterogassion dla base ëd dat.
+L'ùltima anterogassion a l'é stàita:
+«$1»
+da andrinta a la funsion «$2».
+La base ëd dat a l'ha dane l'eror «$3: $4»",
+'laggedslavemode' => "'''Avis:''' la pàgina a podrìa ëdcò nen mostré le modìfiche pi recente.",
+'readonly' => 'Acess a la base ëd dat sërà për chèich temp.',
 'enterlockreason' => 'Che a buta na rason për ël blocagi, con andrinta data e ora ëd quand che a stima che a sarà gavà.',
-'readonlytext' => "La base dat ëd {{SITENAME}} për adess a l'é blocà, e as peulo pa fesse nì dle neuve imission, nì dle modìfiche, con tute le probabilità për n'operassion ëd manutension dël servent. Se a l'é parèj, motobin ampressa la base a sarà torna duvèrta.<br />
-L'aministrator che a l'ha blocala a l'ha lassà sto messagi-sì:
-<p>:$1",
-'missing-article' => "Ël database a l'ha nen trovà ël test ëd na pagina che a l'avrìa dovù trové, ciamà \"\$1\" \$2.
-
-Sossì ëd sòlit a l'é causà përché a l'é ciamasse na diferensa o n'anliura stòrica a na paginà scancelà.
-
-Se cost a l'é nen ël cas, it podrìe avèj trovà un bigat ant ël programa.
-Për piasì, fa rapòrt a n'[[Special:ListUsers/sysop|aministrator]], pijand nòta ëd la URL.",
-'missingarticle-rev' => '(revision#: $1)',
-'missingarticle-diff' => '(Diff: $1, $2)',
-'readonly_lag' => "La base dat a l'é staita blocà n'automàtich antramentr che le màchine dël sircùit secondari (slave) as buto an pari con cole dël prinsipal (master)",
+'readonlytext' => "La base ëd dat për adess a l'é blocà, e as peulo pa fesse nì dle neuve imission, nì dle modìfiche, con tute le probabilità për n'operassion ëd manutension dël servent. Se a l'é parèj, motobin ampressa la base a sarà torna duvèrta.
+
+L'aministrator che a l'ha blocala a l'ha lassà sta spiegassion: $1",
+'missing-article' => "La base ëd dàit a l'ha nen trovà ël test ëd na pàgina che a l'avrìa dovù trové, ciamà «$1» $2.
+
+Sossì ëd sòlit a l'é causà përché a l'é ciamasse na diferensa o n'anliura stòrica a na pàgina scancelà.
+
+Se cost a l'é nen ël cas, a podrìa avèj trovà un givo ant ël programa.
+Për piasì, ch'a lo signala a n'[[Special:ListUsers/sysop|aministrator]], sensa dësmentié l'adrëssa dla liura.",
+'missingarticle-rev' => '(nùmer ëd revision: $1)',
+'missingarticle-diff' => '(Dif: $1, $2)',
+'readonly_lag' => "La base ëd dat a l'é staita blocà n'automàtich antramentr che le màchine dël sircùit secondari as buto an pari con cole dël prinsipal",
 'internalerror' => 'Eror intern',
 'internalerror_info' => 'Eror antern: $1',
-'fileappenderrorread' => 'As peul pa les-se "$1" durant dla gionta.',
-'fileappenderror' => 'As peul pa pendse "$1" a "$2".',
-'filecopyerror' => 'A l\'é pa stàit possibil copié l\'archivi "$1" coma "$2".',
-'filerenameerror' => 'A l\'é pa podusse cangeje nòm a l\'archivi "$1" an "$2".',
-'filedeleteerror' => 'A l\'é pa podusse scancelé l\'archivi "$1".',
-'directorycreateerror' => 'A l\'é pa podusse fé ël dossié "$1".',
-'filenotfound' => ' A l\'é pa trovasse l\'archivi "$1".',
-'fileexistserror' => 'As peul pa scriv-se l\'archivi "$1": a-i é già',
-'unexpected' => 'Valor che i së spitavo pa: "$1"="$2".',
-'formerror' => "Eror: la domanda a l'é stàita mandà mal",
+'fileappenderrorread' => 'As peul pa les-se «$1» durant la gionta.',
+'fileappenderror' => "A l'é pa podusse taché «$1» a «$2».",
+'filecopyerror' => "A l'é pa stàit possìbil copié l'archivi «$1» coma «$2».",
+'filerenameerror' => "A l'é pa podusse cangeje nòm a l'archivi «$1» an «$2».",
+'filedeleteerror' => "A l'é pa podusse scancelé l'archivi «$1».",
+'directorycreateerror' => "A l'é pa podusse creé ël dossié «$1».",
+'filenotfound' => "A l'é pa trovasse l'archivi «$1».",
+'fileexistserror' => "As peul pa scriv-se l'archivi «$1»: a-i é già.",
+'unexpected' => 'Valor che i së spetavo pa: «$1»=«$2».',
+'formerror' => "Eror: A l'é nen podusse mandé ël formolari.",
 'badarticleerror' => "N'operassion parèj as peul pa fesse ansima a sta pàgina-sì.",
-'cannotdelete' => "La pàgina o l'archivi \"\$1\" a peul pa esse scancelà.
+'cannotdelete' => "La pàgina o l'archivi «$1» a l'ha pa podù esse scancelà.
 Peul desse ch'a l'é già stàit ëscancelà da cheidun d'àutr.",
-'cannotdelete-title' => 'A peul pa scancelesse la pàgina «$1»',
-'delete-hook-aborted' => "Modìfica anulà da n'estension.
+'cannotdelete-title' => 'As peul pa scancelesse la pàgina «$1»',
+'delete-hook-aborted' => "Scancelassion anulà da n'estension.
 A l'ha smonù gnun-e spiegassion.",
 'badtitle' => 'Tìtol nen giust',
-'badtitletext' => "La pàgina che a l'ha ciamà a peul pa esse mostrà. A podrìa tratesse ëd na pàgina nen bon-a, veujda, ò pura a podrìa ëdcò esse n'eror ant n'anliura antra lenghe diferente ò tra diferente version ëd {{SITENAME}}.",
+'badtitletext' => "Ël tìtol ëd la pàgina che a l'ha ciamà a l'era nen giust, veuid, o un tìtol nen lijà ëd fasson giusta antra le lenghe o antra le wiki. A podrìa conten-e un o pi caràter ch'a peulo nen esse dovrà ant ij tìtoj.",
 'perfcached' => "Ij dat sì-dapress a sòn ëstàit memorisà an local e a peulo esse nen agiornà. Al pi {{PLURAL:$1|n'arzultà a l'é disponìbil|$1 arzultà a son disponìbij}} ant la memòria local.",
 'perfcachedts' => "Ij dat sì-dapress a son ëstàit memorisà an local, e a son ëstàit agiornà l'ùltima vira ël $1. Al pi {{PLURAL:$4|n'arzultà a l'é disponìbil|$4 arzultà a son disponìbij}} ant la memòria local.",
-'querypage-no-updates' => "J'agiornament për sta pàgina-sì për adess a travajo nen. Ij dat ambelessì a saran nen rinfrescà.",
+'querypage-no-updates' => "J'agiornament për sta pàgina-sì për adess a marcio nen. Ij dat ambelessì a saran nen agiornà.",
 'wrong_wfQuery_params' => 'Paràmetro nen giust për wfQuery()<br />
 Funsion: $1<br />
 Arcesta: $2',
 'viewsource' => 'Vardé la sorgiss',
 'viewsource-title' => 'Vëdde la sorgiss ëd $1',
-'actionthrottled' => 'Assion frenà',
-'actionthrottledtext' => "Për evité che gent ò màchine an carìo dla rumenta, st'assion-sì as peul nen fesse tròp ëd soèns, e chiel/chila a l'ha arpetula tròpe vire. Ch'a sia gentil, ch'a preuva torna antra dontre minute.",
+'actionthrottled' => 'Assion limità',
+'actionthrottledtext' => "Për evité che gent ò màchine an carìo dla rumenta, st'assion-sì as peul nen fesse tròp ëd soèns, e chiel a l'ha arpetula tròpe vire. Ch'a sia gentil, ch'a preuva torna antra dontré minute.",
 'protectedpagetext' => "Sta pàgina-sì a l'è stàita blocà për evité 'd modìfiche o d'àutre assion.",
 'viewsourcetext' => 'A peul vardé e copié la sorgiss dë sta pàgina:',
 'viewyourtext' => "A peule vëdde e copié la sorziss ëd '''soe modìfiche''' a costa pàgina-sì:",
@@ -468,7 +468,7 @@ Che as dësmentia pa ëd cambié ij [[Special:Preferences|"sò gust" an {{SITENA
 'logout' => "Seurte da 'nt ël sistema",
 'userlogout' => 'seurte dal sistema',
 'notloggedin' => "a l'é pa ant ël sistema",
-'nologin' => "Ha-lo ancó nen un cont? '''$1'''.",
+'nologin' => 'Ha-lo ancó nen un cont? $1.',
 'nologinlink' => 'creésse un cont.',
 'createaccount' => 'Crea un cont neuv',
 'gotaccount' => "Ha-lo già un sò cont? '''$1'''.",
@@ -566,13 +566,12 @@ Për piasì speta prima ëd prové torna.",
 'resetpass-wrong-oldpass' => "Ciav a temp o corenta nen bon-a.
 Miraco it l'has già cambià la ciav o it l'has ciamà na neuva ciav a temp.",
 'resetpass-temp-password' => 'Ciav a temp:',
+'resetpass-abort-generic' => "Ël cangiament ëd la ciav a l'é stàit anulà da n'estension.",
 
 # Special:PasswordReset
 'passwordreset' => 'Cambi ëd ciav',
-'passwordreset-text' => "Ch'a completa 's formolari për arsèive un mëssagi ëd pòsta eletrònica con ij detaj ëd sò cont.",
 'passwordreset-legend' => 'Cambié la ciav',
 'passwordreset-disabled' => 'Ij cangiament ëd ciav a son stàit disabilità su sta wiki.',
-'passwordreset-pretext' => "{{PLURAL:$1||Ch'a anserissa un dij tòch ëd dat sì-sota}}",
 'passwordreset-username' => 'Stranòm:',
 'passwordreset-domain' => 'Domini:',
 'passwordreset-capture' => 'Vardé ël mëssagi arzultant?',
@@ -804,14 +803,15 @@ A-i é pa gnun-e spiegassion.",
 A smija che a sia stàita scancelà.',
 'edit-conflict' => "Conflit d'edission.",
 'edit-no-change' => "Toa modìfica a l'é stàita ignorà, përchè a l'é pa stàit fàit gnun cambiament al test.",
+'postedit-confirmation' => "Soa modìfica a l'é stàita salvà!",
 'edit-already-exists' => 'As peul nen creesse la pàgina.
 A esist già.',
 'defaultmessagetext' => "Test che a-i sarìa se a-i fusso pa 'd modìfiche",
 'content-failed-to-parse' => "Faliment ëd l'anàlisi dël contnù ëd $2 për ël model $1: $3",
 'invalid-content-data' => 'Dat dël contnù pa bon',
 'content-not-allowed-here' => "Ël contnù «$1» a l'é nen autorisà an sla pàgina [[$2]]",
-'editwarning-warning' => "Lassé sta pàgina-sì a peul fé an manera che it perde tute le modìfiche ch'it l'has fàit.
-S'it ses logà, it peule disabilité st'avis-sì ant la session \"{{int:prefs-editing}}\" dij tò gust.",
+'editwarning-warning' => "Chité sta pàgina-sì a peul feje perde tute le modìfiche ch'a l'ha fàit.
+S'a l'é rintrà ant ël sistema, a peul disabilité st'avis ant la session «Modìfiche» dij sò gust.",
 
 # Content models
 'content-model-wikitext' => 'test wiki',
@@ -1052,7 +1052,6 @@ Sòn a l'é normalment causà da l'andèje dapress a na veja liura stòrica a na
 'searchmenu-legend' => "Opsion d'arserca",
 'searchmenu-exists' => "'''A-i é na pàgina ciamà \"[[:\$1]]\" dzora a costa wiki'''",
 'searchmenu-new' => "'''Creé la pàgina «[[:$1]]» ansima a sta wiki-sì!'''",
-'searchhelp-url' => 'Help:Contnù',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Visualisé le pàgine con sto prefiss-sì]]',
 'searchprofile-articles' => 'Pàgine ëd contnù',
 'searchprofile-project' => "Pàgine d'agiut e ëd proget",
@@ -1127,7 +1126,6 @@ Ch'a preuva a gionté dnans a soa arserca ël prefiss ''all:'' për sërché an
 'resetprefs' => 'Buté torna ij "mè gust" coma a-i ero al prinsipi',
 'restoreprefs' => "Buté torna j'ampostassion dë stàndard",
 'prefs-editing' => 'Quàder ëd modìfica dël test',
-'prefs-edit-boxsize' => 'Dimension ëd la fnesta ëd modìfica.',
 'rows' => 'Righe:',
 'columns' => 'Colòne:',
 'searchresultshead' => "Specifiché soe preferense d'arserca",
@@ -1138,9 +1136,6 @@ Ch'a preuva a gionté dnans a soa arserca ël prefiss ''all:'' për sërché an
 'recentchangesdays-max' => '(al pì $1 {{PLURAL:$1|di|di}})',
 'recentchangescount' => 'Nùmer ëd modìfiche da smon-e për stàndard:',
 'prefs-help-recentchangescount' => "Sòn a comprend j'ùltime modìfiche, le stòrie dle pàgine e ij registr.",
-'prefs-help-watchlist-token' => "An ampinend sto camp-sì con na ciav segreta as genererà un fluss RSS për la ròba che as ten sot euj.
-Chicassìa che a conossa la ciav an sto camp-sì a podrà lese la ròba ch'a ten sot euj, parèj ch'a serna un valor sigur.
-Ambelessì a-i é un valor generà a asar che a peul dovré: $1",
 'savedprefs' => 'Ij sò gust a son ëstàit salvà.',
 'timezonelegend' => 'Fus orari:',
 'localtime' => 'Ora local:',
@@ -1171,7 +1166,6 @@ Ambelessì a-i é un valor generà a asar che a peul dovré: $1",
 'prefs-reset-intro' => 'A peul dovré costa pàgina për amposté torna ij sò gust a coj dë stàndard.
 Sòn a peul pa esse anulà.',
 'prefs-emailconfirm-label' => "Conferma dl'adrëssa ëd pòsta eletrònica:",
-'prefs-textboxsize' => 'Dimension ëd la fnestra ëd modìfica',
 'youremail' => 'Soa adrëssa ëd pòsta eletrònica:',
 'username' => '{{GENDER:$1|Stranòm}}:',
 'uid' => "Identificativ dl'{{GENDER:$1|utent}}:",
@@ -1413,7 +1407,6 @@ Costa anformassion a sarà pùblica.",
 'recentchangeslinked-feed' => 'Modìfiche colegà',
 'recentchangeslinked-toolbox' => 'Modìfiche colegà',
 'recentchangeslinked-title' => 'Modìfiche ch\'a-i intro con "$1"',
-'recentchangeslinked-noresult' => "Ant ël moment dont ës parla a-i é pa staie gnun-a modìfica a le pàgine con dj'anliure ch'a men-o ambelessì.",
 'recentchangeslinked-summary' => "Costa a l'é na lista ëd modìfiche fàite da pòch a pàgine colegà a cola spessificà (o a mèmber ëd na categorìa spessificà).
 Le pàgine dzora a [[Special:Watchlist|la lista ëd lòn ch'as ten sot-euj]] a resto marcà an '''grassèt'''.",
 'recentchangeslinked-page' => 'Nòm ëd la pàgina:',
@@ -2060,7 +2053,6 @@ Le modìfiche che a-i saran ant costa pàgina-sì e ant soa pàgina ëd discussi
 'unwatchthispage' => 'Chité-lì ëd ten-e sossì sot-euj',
 'notanarticle' => "Sòn a l'é pa n'artìcol",
 'notvisiblerev' => "La revision a l'é stàita scancelà",
-'watchnochange' => "Gnun-a dle ròbe che as ten sot-euj a l'é staita modificà ant ël periòd ësmonù.",
 'watchlist-details' => "A l'é dëmentrè ch'as ten sot-euj {{PLURAL:$1|$1 pàgina|$1 pàgine}}, nen contand cole ëd discussion.",
 'wlheader-enotif' => 'Le notìfiche për pòsta eletrònica a son abilità.',
 'wlheader-showupdated' => "Cole pàgine che a son ëstàite modificà da quand che a l'é passaje ansima l'ùltima vira a resto marcà an '''grassèt'''",
@@ -3575,7 +3567,6 @@ As peul ëdcò [[Special:EditWatchlist|dovré l'editor sòlit]].",
 'version-other' => 'Àutr',
 'version-mediahandlers' => 'Gestor multimojen',
 'version-hooks' => 'Gancio',
-'version-extension-functions' => "Fonsion dj'estension",
 'version-parser-extensiontags' => "Tichëtte dj'estension conossùe dal dëscompositor",
 'version-parser-function-hooks' => 'Gancio për le fonsion dël dëscompositor',
 'version-hook-name' => 'Nòm dël gancio',
index 8324dc0..e26b1fe 100644 (file)
@@ -257,7 +257,6 @@ $messages = array(
 'disclaimers' => 'منکرنا',
 'disclaimerpage' => 'Project:عام منکرنا',
 'edithelp' => 'لکھن وچ مدد',
-'edithelppage' => 'Help:لکھنا',
 'helppage' => 'Help:لسٹ',
 'mainpage' => 'پہلا صفہ',
 'mainpage-description' => 'پہلا صفہ',
@@ -526,10 +525,8 @@ Note that some pages may continue to be displayed as if you were still logged in
 
 # Special:PasswordReset
 'passwordreset' => 'کنجی واپس لیاؤ',
-'passwordreset-text' => 'اے فارم مکمل کرکے اپنے کھاتے دی معلومات اپنے ای-میل تے منگوالو۔',
 'passwordreset-legend' => 'کنجی واپس لیاؤ',
 'passwordreset-disabled' => 'اس وکی تے کنجی واپس نئیں لیائی جاسکدی۔',
-'passwordreset-pretext' => '{{PLURAL:$1||تھلے دتے ہوۓ ڈیٹا چوں اک ایتھے دیو}}',
 'passwordreset-username' => 'ورتن ناں:',
 'passwordreset-domain' => 'ڈومین',
 'passwordreset-capture' => 'آن والی ای-میل ویکھو؟',
@@ -976,7 +973,6 @@ $1",
 'searchmenu-legend' => 'چنوتیاں کھوجو',
 'searchmenu-exists' => "'''ایس وکی تے \"[[:\$1]]\" ناں دا صفہ ہے۔.'''",
 'searchmenu-new' => "'''ایس وکی تے \"[[:\$1]]\" بناؤ'''",
-'searchhelp-url' => 'Help:فہرست',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|ایس پریفکس نال صفے کھوجو]]',
 'searchprofile-articles' => 'لسٹ صفے',
 'searchprofile-project' => 'مدد تے ویونت صفے',
@@ -1052,7 +1048,6 @@ $1",
 'resetprefs' => 'ناں بچائیاں ہویاں تبدیلیاں مکاؤ',
 'restoreprefs' => 'ڈیفالٹ سیٹنگز دوبارہ لیاؤ',
 'prefs-editing' => 'لکھائی',
-'prefs-edit-boxsize' => 'تبدیلی کرن والی ونڈو دا ناپ',
 'rows' => 'قطار:',
 'columns' => 'کالم:',
 'searchresultshead' => 'کھوج',
@@ -1063,8 +1058,6 @@ $1",
 'recentchangesdays-max' => 'میکسیمم $1 {{PLURAL:$1|دن|دن}}',
 'recentchangescount' => 'ڈیفالٹ چ تبدیلیاں دی گنتی:',
 'prefs-help-recentchangescount' => 'ہن دیاں تبدیلیاں صفیاں دے رکارڈ تے لاگاں ہیگیاں نیں۔',
-'prefs-help-watchlist-token' => 'ایس فیلڈ نوں پعرنا اک لکی کنجی نال تواڈی اکھ تھلے رکھی لسٹ لئی اک آر ایس ایس فیڈ بناۓ گا۔ کوئی وی ایس فیلڈ چ جیہڑا کنجی جاندا اے  تواڈی اکھ تھلے رکھی  لسٹ نوں پڑھ لے گا، ایس لئی اک پکا نمبر چنو۔
-ایتھے اک الٹا پلٹا نمبر دتا گیا اے جینوں تسیں ورت سکدے او: $1',
 'savedprefs' => 'تواڈیاں تانگاں بچا لئیاں گئیاں نیں۔',
 'timezonelegend' => 'ویلے دا علاقہ',
 'localtime' => 'مقامی ویلا:',
@@ -1096,7 +1089,6 @@ $1",
 
 اے واپس نئیں ہوسکدا۔',
 'prefs-emailconfirm-label' => 'ای-میل کنفرمیشن:',
-'prefs-textboxsize' => 'تبدیلی کرن والی ونڈو دا ناپ',
 'youremail' => 'ای میل:',
 'username' => 'ورتن آلے دا ناں:',
 'uid' => 'ورتن والے دی آئی ڈی',
@@ -1337,7 +1329,6 @@ $1",
 'recentchangeslinked-feed' => 'ملدیاں جلدیاں تبدیلیاں',
 'recentchangeslinked-toolbox' => 'ملدیاں جلدیاں تبدیلیاں',
 'recentchangeslinked-title' => '"$1" نال تعلق آلیاں تبدیلیاں',
-'recentchangeslinked-noresult' => 'جڑیاں صفحیاں چ دتے ہوۓ ویلے چ کوئی تبدیلیاں نہیں۔',
 'recentchangeslinked-summary' => "اے اوناں تبدیلیاں دی لسٹ اے جیڑیاں تھوڑا چر پہلاں بنائیاں گئیاں اوناں صفحیاں تے جیڑے خاص صفحے تے جڑدے نے یا کسی خاص کیٹاگری دے ممبراں نوں۔<br />
 تواڈی [[Special:Watchlist|اکھ تھلے صفحے]] '''موٹے''' نیں۔",
 'recentchangeslinked-page' => 'صفے دا ناں:',
@@ -1954,7 +1945,6 @@ $1",
 'unwatchthispage' => 'اکھ رکھنا چھڈو',
 'notanarticle' => 'لکھن صفہ نئیں۔',
 'notvisiblerev' => 'آخری ریوین کسے ہور ورتن والے دی مٹادتی گئی اے۔',
-'watchnochange' => 'دسے گۓ ویلے چ تھواڈیاں ویکھیاںشیواں نئیں بدلیاں گیاں۔',
 'watchlist-details' => '{{PLURAL:$1|$1 صفحہ|$1 صفحہ}} تواڈی اکھ تھلے گلاں باتاں شامل نہیں۔',
 'wlheader-enotif' => 'ای-میل نوٹیفیکیشن قابل',
 'wlheader-showupdated' => ' صفے جیہڑے بدلے کۓ تھواڈے آخری وار آن مکرون  اونان نوں موٹا کرکے دسیا گیا اے۔',
@@ -3370,7 +3360,6 @@ $5
 'version-other' => 'دوجے',
 'version-mediahandlers' => 'میڈیا ہینڈلرز',
 'version-hooks' => 'ہکز',
-'version-extension-functions' => 'ایکسٹنشن فنکشن',
 'version-parser-extensiontags' => 'پاسر ایکسٹنشن ٹیگز',
 'version-parser-function-hooks' => 'پاسر فنکشن ہکز',
 'version-hook-name' => 'ہک ناں',
index 7bb4f58..9c82721 100644 (file)
@@ -243,7 +243,6 @@ $messages = array(
 'disclaimers' => 'Ιμπρέσουμ',
 'disclaimerpage' => 'Project:Ιμπρέσουμ',
 'edithelp' => "Βοήθεια για τ' αλλαγμαν",
-'edithelppage' => 'Help:Άλλαγμαν',
 'helppage' => 'Help:Περιεχόμενα',
 'mainpage' => 'Αρχικόν σελίδα',
 'mainpage-description' => 'Αρχικόν σελίδα',
@@ -593,7 +592,6 @@ $messages = array(
 'prevn' => '{{PLURAL:$1|$1}} προηγουμένων',
 'nextn' => '{{PLURAL:$1|$1}} επομένων',
 'viewprevnext' => 'Τέρεν ($1 {{int:pipe-separator}} $2) ($3)',
-'searchhelp-url' => 'Help:Περιεχόμενα',
 'searchprofile-images' => 'Πολυμέσα',
 'searchprofile-everything' => 'Όλεα',
 'search-result-size' => '$1 ({{PLURAL:$2|1 λέξη|$2 λέξεις}})',
@@ -747,7 +745,6 @@ $messages = array(
 'recentchangeslinked-feed' => 'Σχετικά αλλαγάς',
 'recentchangeslinked-toolbox' => 'Σχετικά αλλαγάς',
 'recentchangeslinked-title' => 'Αλλαγάς τη "$1"',
-'recentchangeslinked-noresult' => "Σ' αβούτα τα σελίδας 'κ εγένταν αλλαγάς.",
 'recentchangeslinked-summary' => "Αβούτος εν κατάλογον με τ' υστερνά τ' αλλαγάς σελιδίων με σύνδεσμον ασ' έναν συγκεκριμένον σελίδαν (για σε σελίδας συγκεκριμένου κατηγορίας).
 Τα σελίδας σον [[Special:Watchlist|κατάλογον ωριαγματί]] είν' '''σκηρά'''.",
 'recentchangeslinked-page' => 'Όνεμαν σελίδας:',
index 2a792d8..5835973 100644 (file)
@@ -233,7 +233,6 @@ Pāusai en kategōrijai "$1"',
 'disclaimers' => 'Etrāwingiskwas arāikinsenei',
 'disclaimerpage' => 'Project:Etrāwingiskwas arāikinsenei',
 'edithelp' => 'Redigīsnas pagalba',
-'edithelppage' => 'Help:Redigīsna',
 'helppage' => 'Help:Ēnturs',
 'mainpage' => 'Galwas pāusan',
 'mainpage-description' => 'Galwas pāusan',
@@ -799,7 +798,6 @@ Nawigaciōnis autengīsenin terpausnā naikinna etrīnksenin en kōlunei.',
 'searchmenu-legend' => 'Laukīsnas mazīngiskwas',
 'searchmenu-exists' => "'''Ast pāusan \"[[:\$1]]\" en šissei wikkin''",
 'searchmenu-new' => "'''Teīkeis pāusan \"[[:\$1|\$1]]\" en šissei wikki!'''",
-'searchhelp-url' => 'Help:Ēnturs',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Pradirēis pāusans sen šin prefiksan]]',
 'searchprofile-project' => 'Pagalbas be prōjaktas pāusai',
 'searchprofile-everything' => 'Wiss',
@@ -863,7 +861,6 @@ Pamēnais, kāi tenēisan indicai mazzi ni būtwei aktuālin.',
 'saveprefs' => 'Enpeisāis',
 'resetprefs' => 'Ausadinnais nienpeisātans kitawīdinsnans',
 'restoreprefs' => 'Etwārtai wartinnais wissans auprestaminans pirminiskwans',
-'prefs-edit-boxsize' => 'Redigīsnas langstas debban.',
 'rows' => 'Rīndas:',
 'columns' => 'Kōlunis:',
 'searchresultshead' => 'Laukīs',
@@ -898,7 +895,6 @@ Pamēnais, kāi tenēisan indicai mazzi ni būtwei aktuālin.',
 'prefs-custom-css' => 'swājs CSS',
 'prefs-custom-js' => 'swājs JavaScript',
 'prefs-emailconfirm-label' => 'E-mailas padruktinsna:',
-'prefs-textboxsize' => 'Redigīsnas langstas debban',
 'youremail' => 'Twajā e-mail adressi:',
 'username' => 'Tērpautajas pabilisnā:',
 'uid' => 'Tērpautajas ID:',
@@ -1110,7 +1106,6 @@ Tū mazzi dīgi etrīnktun dātun kitēimans drāugautwei sen tin pra tērpautaj
 # Recent changes linked
 'recentchangeslinked' => 'Kitawīdinsnas en preiristamans',
 'recentchangeslinked-title' => 'Kitawīdinsnas en pāusamans, prei kawīdans "$1" autenginna',
-'recentchangeslinked-noresult' => 'Ni bēi niaīnas kitawīdinsnas en preiristamans anga autenginantimmans pāusans en etrīnktan kērdasetrapan.',
 'recentchangeslinked-summary' => 'Zemmais ast listi stēisan panzdauman kitawīdinsnan en pāusamans prei kawīdans autenginna dātan pāusan (anga en wisēimans pāusans perlānkintimans prei dātan kategōrijan).
 Pāusai iz [[Special:Watchlist|nadirītan listin]] ast pastarīntan.',
 'recentchangeslinked-page' => 'Pāusas tītels',
@@ -1575,7 +1570,6 @@ Eraīna šisse pāusas ēnturas kitawīdinsna anga diskusiōnis pāusas sēitan
 'unwatchthispage' => 'Wanginnais nadirītun',
 'notanarticle' => 'Sta ni ast artīkels',
 'notvisiblerev' => 'Wersiōni pastāi āupausintan',
-'watchnochange' => 'Niaīnan iz nadirītans pāusans ni bēi redigītan en padātan kērdasetrapan.',
 'watchlist-details' => 'Ast {{PLURAL:$1|$1 pāusan|$1 pāusai}} en twajjai listin stēisan nadirītan, ni gīrbawintei diskusiōnis pāusans.',
 'wlheader-enotif' => 'E-mail pawakīsenei ast enklaūtan.',
 'wlheader-showupdated' => "Pastāi '''pastarīntan''' pāusai,  kawīdai bēi kitawīdintan ezze Twajjai panzdauman tenēisan kāimalukisnan..",
@@ -2604,7 +2598,6 @@ Tu mazzi dīgi [[Special:EditWatchlist|tērpautun stāndardiskan editōran]].',
 'version-variables' => 'Wariāblis',
 'version-other' => 'Kitāi',
 'version-hooks' => 'Ānsai',
-'version-extension-functions' => 'Plattinsenes funkciōnis',
 'version-parser-extensiontags' => 'Parseras plattinsenes zentlitajai',
 'version-parser-function-hooks' => 'Parseras funkciōnis ānsai',
 'version-hook-name' => 'Ānsas pabilisnā',
index 5d7037a..9de55b9 100644 (file)
@@ -302,6 +302,7 @@ $messages = array(
 'newwindow' => '(په نوې کړکۍ کې پرانيستل کېږي)',
 'cancel' => 'ناګارل',
 'moredotdotdot' => 'نور ...',
+'morenotlisted' => 'ډېر نور نالړليک اوډلي...',
 'mypage' => 'زما مخ',
 'mytalk' => 'خبرې اترې',
 'anontalk' => 'ددې IP خبرې اترې',
@@ -357,6 +358,7 @@ $messages = array(
 'create-this-page' => 'همدا مخ ليکل',
 'delete' => 'ړنګول',
 'deletethispage' => 'دا مخ ړنګول',
+'undeletethispage' => 'دا مخ ناړنګول',
 'undelete_short' => '{{PLURAL:$1|يو سمون|$1 سمونې}} ناړنګول',
 'viewdeleted_short' => '{{PLURAL:$1|يو ړنګ شوی سمون|$1 ړنګ شوي سمونونه}} کتل',
 'protect' => 'ژغورل',
@@ -409,7 +411,6 @@ $1',
 'disclaimers' => 'ردادعاليکونه',
 'disclaimerpage' => 'Project:ټولګړی ردادعاليک',
 'edithelp' => 'د لارښود سمون',
-'edithelppage' => 'Help:سمونه',
 'helppage' => 'Help:نيوليک',
 'mainpage' => 'لومړی مخ',
 'mainpage-description' => 'لومړی مخ',
@@ -534,6 +535,10 @@ $1',
 'namespaceprotected' => "تاسې د '''$1''' په نوم-تشيال کې د مخونو د سمولو اجازه نه لرۍ.",
 'customcssprotected' => 'تاسې د دې CSS مخ د سمولو اجازه نه لرۍ، دا ځکه چې دا مخ د بل کارن شخصي امستنې لري.',
 'customjsprotected' => 'تاسې د دې جاواسکرېپټ مخ د سمولو اجازه نه لرۍ، دا ځکه چې دا مخ د بل کارن شخصي امستنې لري.',
+'mycustomcssprotected' => 'تاسې د دې CSS مخ د سمولو اجازه نلرۍ.',
+'mycustomjsprotected' => 'تاسې د دې جاوا سكريپټ مخ د سمولو اجازه نلرۍ.',
+'myprivateinfoprotected' => 'تاسې د دې شخصي مالوماتو د سمولو اجازه نلرۍ.',
+'mypreferencesprotected' => 'تاسې د خپلو غوره توبونو د سمولو اجازه نلرۍ.',
 'ns-specialprotected' => 'ځانګړي مخونو کې سمون او بدلون نه شی راوستلای.',
 'titleprotected' => 'د [[User:$1|$1]] لخوا د دې سرليک د جوړېدلو مخنيوی شوی.
 او د دې کړنې سبب "\'\'$2\'\'" ورکړ شوی.',
@@ -555,6 +560,7 @@ $1',
 'yourname' => 'کارن-نوم:',
 'userlogin-yourname' => 'کارن-نوم',
 'userlogin-yourname-ph' => 'کارن-نوم مو وليکۍ',
+'createacct-another-username-ph' => 'كارن نوم مو وركړۍ',
 'yourpassword' => 'پټنوم:',
 'userlogin-yourpassword' => 'پټنوم',
 'userlogin-yourpassword-ph' => 'پټنوم مو وليکۍ',
@@ -564,7 +570,7 @@ $1',
 'createacct-yourpasswordagain-ph' => 'پټنوم مو بيا وټاپۍ',
 'remembermypassword' => 'زما پټنوم په دې کمپيوټر (تر $1 {{PLURAL:$1|ورځې|ورځو}}) په ياد وساته!',
 'userlogin-remembermypassword' => 'غونډال کې مې ننوتلی وساته',
-'userlogin-signwithsecure' => 'د Ø®Ù\88Ù\86دÙ\8a Ù¾Ø§Ù\84Ù\86ګر Ù¾Ù\87 Ù\85رستÙ\87 Ù\86Ù\86Ù\88تل',
+'userlogin-signwithsecure' => 'Ø®Ù\88Ù\86دÙ\8a Ø§Ú\93Ù\8aکتÙ\8aا Ú©Ø§Ø±Ù\88ل',
 'securelogin-stick-https' => 'وروسته د ننوتلو HTTPS سره تړلی پاتې کېدل',
 'yourdomainname' => 'ستاسې شپول:',
 'password-change-forbidden' => 'تاسې په دې ويکي باندې خپل پټنوم نه شی بدلولی.',
@@ -584,16 +590,21 @@ $1',
 'gotaccount' => 'آيا وار دمخې يو ګڼون لری؟ $1.',
 'gotaccountlink' => 'ننوتل',
 'userlogin-resetlink' => 'د ننوتلو مالومات مو هېر شوي؟',
+'userlogin-resetpassword-link' => 'پټنوم مو بياپرځايول',
+'createacct-join' => 'خپل مالومات لاندې ورکړۍ',
 'createacct-emailrequired' => 'برېښليک پته',
 'createacct-emailoptional' => 'برېښليک پته (اختياري)',
 'createacct-email-ph' => 'برېښليک پته مو وټاپۍ',
+'createacct-another-email-ph' => 'برېښليک پته مو ورکړۍ',
 'createaccountmail' => 'يو لنډمهاله ناټاکلی پټنوم کارول او په لاندې ورکړل شوې برېښليک پته کې ورلېږل',
 'createacct-realname' => 'آر نوم (اختياري)',
 'createaccountreason' => 'سبب:',
 'createacct-reason' => 'سبب',
 'createacct-reason-ph' => 'ولې تاسې بل ګڼون جوړول غوااړۍ',
+'createacct-captcha' => 'امنيتي تدبير',
 'createacct-imgcaptcha-ph' => 'پورته تاسې ته ښکاره شوی متن وټاپۍ',
 'createacct-submit' => 'ګڼون مو جوړ کړۍ',
+'createacct-another-submit' => 'بل ګڼون جوړول',
 'createacct-benefit-heading' => '{{SITENAME}} ستاسې په شان خلکو لخوا جوړ شوی.',
 'createacct-benefit-body1' => '{{PLURAL:$1|سمون|سمونونه}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|مخ|مخونه}}',
@@ -653,7 +664,7 @@ $1',
 'cannotchangeemail' => 'پدې ويکي کې د ګڼون برېښليک پتې نشي بدلېدلی.',
 'emaildisabled' => 'دا وېبځی د برېښليک لېږلو چارو څخه برخمن نه دی.',
 'accountcreated' => 'ګڼون مو جوړ شو.',
-'accountcreatedtext' => 'د $1 لپاره يو ګڼون جوړ شو.',
+'accountcreatedtext' => 'د [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|خبرې اترې]]) لپاره يو ګڼون جوړ شو.',
 'createaccount-title' => 'د {{SITENAME}} د ګڼون جوړېدنه',
 'createaccount-text' => 'يو چا د {{SITENAME}} په وېبځي ($4) کې ستاسې د برېښليک پتې لپاره د "$2" په نامه يو ګڼون جوړ کړی چې پټنوم يې "$3" دی.
 تاسې بايد غونډال ته ورننوځۍ او همدا اوس خپل پټنوم بدل کړی.
@@ -686,10 +697,8 @@ $1',
 
 # Special:PasswordReset
 'passwordreset' => 'پټنوم بياپرځايول',
-'passwordreset-text' => 'د برېښليک د  بياپرځای کېدنې لپاره دا فورمه ډکه کړۍ.',
 'passwordreset-legend' => 'پټنوم بياپرځايول',
 'passwordreset-disabled' => 'په دې ويکي پټنوم بياپرځای کولو کړنه ناچارنه شوې.',
-'passwordreset-pretext' => '{{PLURAL:$1||د لاندې اومتوک يوه برخه مالومات وليکۍ}}',
 'passwordreset-username' => 'کارن-نوم:',
 'passwordreset-domain' => 'شپول:',
 'passwordreset-capture' => 'د پايلې برېښليک کتل غواړې؟',
@@ -844,7 +853,7 @@ $1',
 'nocreate-loggedin' => 'تاسې د نوو مخونو د جوړولو پرېښله نلرۍ.',
 'sectioneditnotsupported-title' => 'د برخې د سمون ملاتړ نه کېږي',
 'sectioneditnotsupported-text' => 'په دې مخ د برخې د سمون ملاتړ نه کېږي.',
-'permissionserrors' => 'د اجازې ستونزې',
+'permissionserrors' => 'د پرېښې تېروتنه',
 'permissionserrorstext' => 'تاسې د لاندې {{PLURAL:$1|سبب|سببونو}} پخاطر د دې کړنې اجازه نه لرۍ:',
 'permissionserrorstext-withaction' => 'تاسې د $2 اجازه نه لری، دا د {{PLURAL:$1|دغه سبب|دغو سببونو}} پخاطر:',
 'recreate-moveddeleted-warn' => "'''ګواښنه: تاسې د يوه داسې مخ بياجوړونه کوۍ کوم چې يو ځل پخوا ړنګ شوی وو.'''
@@ -858,6 +867,7 @@ $1',
 داسې ښکاري چې دا مخ ړنګ شوی.',
 'edit-conflict' => 'د سمولو خنډ',
 'edit-no-change' => 'ستاسې سمون بابېزه وګڼل شو، دا ځکه چې تاسې په متن کې کوم بدلون نه دی راوستلی.',
+'postedit-confirmation' => 'ستاسې سمون خوندي شو.',
 'edit-already-exists' => 'په دې نوم يو نوی مخ جوړ نه شو.
 پدې نوم د پخوا نه يو مخ شته.',
 'defaultmessagetext' => 'تلواليزه پيغام متن',
@@ -902,8 +912,8 @@ $1',
 (وروست) = د وروستۍ بڼې سره توپير، و = وړه سمونه.',
 'history-fieldset-title' => 'پېښليک سپړل',
 'history-show-deleted' => 'يواځې ړنګ شوي',
-'histfirst' => 'پخواني',
-'histlast' => 'تازÙ\87',
+'histfirst' => 'تر ټولو زاړه',
+'histlast' => 'تر Ù¼Ù\88Ù\84Ù\88 Ù\86Ù\88Ù\8a',
 'historysize' => '({{PLURAL:$1|1 بايټ|$1 بايټونه}})',
 'historyempty' => '(تش)',
 
@@ -990,7 +1000,6 @@ $1',
 'searchmenu-legend' => 'د پلټلو خوښنې',
 'searchmenu-exists' => "'''په دې ويکي يو مخ د \"[[:\$1]]\" په نامه دی'''",
 'searchmenu-new' => "'''په دې ويکي د \"[[:\$1]]\" مخ جوړول!'''",
-'searchhelp-url' => 'Help:لړليک',
 'searchprofile-articles' => 'مېنځپانګيز مخونه',
 'searchprofile-project' => 'د لارښود او پروژې مخونه',
 'searchprofile-images' => 'ګڼرسنۍ',
@@ -1060,7 +1069,6 @@ $1',
 'resetprefs' => 'بيا سمول',
 'restoreprefs' => 'ټولې تلواليزې امستنې پرځای کول',
 'prefs-editing' => 'سمېدنې کې دی',
-'prefs-edit-boxsize' => 'د سمون کړکۍ کچه.',
 'rows' => 'ليکې:',
 'columns' => 'ستنې:',
 'searchresultshead' => 'پلټل',
@@ -1098,7 +1106,6 @@ $1',
 'prefs-custom-js' => 'ځاني جاواسکرېپټ',
 'prefs-common-css-js' => 'د ټولو پوښونو لپاره د CSS/جاواسکرېپټ دوتنه:',
 'prefs-emailconfirm-label' => 'د برېښليک باورتيا:',
-'prefs-textboxsize' => 'د سمون کړکۍ کچه',
 'youremail' => 'برېښليک *',
 'username' => '{{GENDER:$1|کارن نوم}}:',
 'uid' => '{{GENDER:$1|کارن}} پېژندنه:',
@@ -1124,7 +1131,9 @@ $1',
 'prefs-signature' => 'لاسليک',
 'prefs-dateformat' => 'د نېټې بڼه',
 'prefs-timeoffset' => 'د وخت واټن',
-'prefs-advancedediting' => 'پرمختللې خوښنې',
+'prefs-advancedediting' => 'ټولګړی',
+'prefs-editor' => 'سمونګر',
+'prefs-preview' => 'مخليدنه',
 'prefs-advancedrc' => 'پرمختللې خوښنې',
 'prefs-advancedrendering' => 'پرمختللې خوښنې',
 'prefs-advancedsearchoptions' => 'پرمختللې خوښنې',
@@ -1146,7 +1155,12 @@ $1',
 'userrights-editusergroup' => 'کارن ډلې سمول',
 'saveusergroups' => 'کارن ډلې خوندي کول',
 'userrights-groupsmember' => 'غړی د:',
+'userrights-groups-help' => 'تاسې هغه ډلې چې همدا کارن يې غړی دی بدلولی شی:
+* يو په نښه شوی بکس د دې مانا لري چې کارن د هغې ډلې غړيتوب لري.
+* يو نانښه شوی بکس د دې مانا لري چې کارن د هغې ډلې غړيتوب نلري.
+* د * يوه نښه په دې مانا ده چې هر کله تاسې څوک په همدې ډلې کې غړی کړی بيا يې ترې نشی وېستلی او د دې برعکس هم.',
 'userrights-reason' => 'سبب:',
+'userrights-no-interwiki' => 'په همدې ويکي باندې تاسې د کارن رښتو د سمولو اجازه نه لرۍ.',
 'userrights-changeable-col' => 'هغه ډلې چې تاسې يې بدلولی شی',
 'userrights-unchangeable-col' => 'هغه ډلې چې تاسې يې نه شی بدلولی',
 
@@ -1233,6 +1247,7 @@ $1',
 'action-suppressionlog' => 'دا شخصي يادښت کتل',
 'action-block' => 'پر دې کارن د سمون د آسانتياوؤ بنديز لګول',
 'action-protect' => 'د دې مخ د ژغورنې کچه بدلول',
+'action-unwatchedpages' => 'د ناکتلو مخونو لړليک کتل',
 'action-mergehistory' => 'د دې مخ پېښليک سره اخږل',
 'action-userrights' => 'د کارن ټولې رښتې سمول',
 'action-userrights-interwiki' => 'په نورو ويکي ګانو د کارنانو رښتې سمول',
@@ -1279,7 +1294,6 @@ $1',
 'recentchangeslinked-feed' => 'اړونده بدلونونه',
 'recentchangeslinked-toolbox' => 'اړونده بدلونونه',
 'recentchangeslinked-title' => '"$1" ته اړونده بدلونونه',
-'recentchangeslinked-noresult' => 'په دې موده، په تړل شويو مخونو کې هېڅ کوم بدلونونه نه دي راپېښ شوي.',
 'recentchangeslinked-summary' => "دا د هغه بدلونونو لړليک دی چې وروستۍ ځل په تړن لرونکيو مخونو کې د يوه ځانګړي مخ (او يا هم د يوې ځانګړې وېشنيزې غړو) نه رامېنځ ته شوي.
 [[Special:Watchlist|ستاسې د کتنلړ]] مخونه په '''زغرد ليک''' کې ښکاري.",
 'recentchangeslinked-page' => 'د مخ نوم:',
@@ -1291,7 +1305,7 @@ $1',
 'reuploaddesc' => 'پورته کېدنه ناګارل او بېرته د پورته کېدنې فورمې ته ورګرځېدل',
 'upload-tryagain' => 'د بدلون موندلې دوتنې څرګندونې سپارل',
 'uploadnologin' => 'غونډال کې نه ياست ننوتي',
-'uploadnologintext' => 'ددې لپاره چې دوتنې پورته کړای شۍ، نو لومړی غونډال کې [[Special:UserLogin|ورننوځۍ]].',
+'uploadnologintext' => 'د دوتنې پورته کولو لپاره بايد $1',
 'uploaderror' => 'د پورته کولو ستونزه',
 'uploadtext' => "د دوتنې د پورته کېدو لپاره لاندينی چوکاټ وکاروۍ.
 که چېرته د پخونيو پورته شويو دوتنو کتل او پلټل غواړۍ نو [[Special:FileList|د پورته شويو دوتنو لړليک]] ته ورشۍ، [[Special:Log/upload|د (بيا) پورته شويو دوتنو يادښتونه]] او [[Special:Log/delete|د ړنګېدو يادښتونه]] هم کتلای شی.
@@ -1874,7 +1888,7 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'contributions-title' => 'د $1 کارن ونډې',
 'mycontris' => 'ونډې',
 'contribsub2' => 'د $1 لپاره ($2)',
-'uctop' => '(سرپاڼÙ\87)',
+'uctop' => '(اÙ\88سÙ\86Û\8c)',
 'month' => 'له مياشتې د (او پخواني):',
 'year' => 'له کال د (او پخواني):',
 
@@ -2213,6 +2227,7 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'pageinfo-contentpage' => 'مېنځپانګيز مخ کې شمېرل شوی',
 'pageinfo-contentpage-yes' => 'هو',
 'pageinfo-protect-cascading-yes' => 'هو',
+'pageinfo-category-files' => 'د دوتنو شمېر',
 
 # Skin names
 'skinname-cologneblue' => 'شين کلون',
@@ -2264,6 +2279,8 @@ $1',
 'minutes' => '{{PLURAL:$1|$1 دقيقه|$1 دقيقې}}',
 'hours' => '{{PLURAL:$1|$1 ساعت|$1 ساعتونه}}',
 'days' => '{{PLURAL:$1|$1 ورځ|$1 ورځې}}',
+'months' => '{{PLURAL:$1|$1 مياشت|$1 مياشتې}}',
+'years' => '{{PLURAL:$1|$1 کال|$1 کالونه}}',
 'ago' => '$1 دمخه',
 'just-now' => 'همدا اوس',
 
index e1e8b79..27f6aca 100644 (file)
@@ -36,7 +36,9 @@
  * @author McDutchie
  * @author MetalBrasil
  * @author Minh Nguyen
+ * @author Nemo bis
  * @author Nuno Tavares
+ * @author OTAVIO1981
  * @author Opraco
  * @author Paulo Juntas
  * @author Pedroca cerebral
@@ -325,9 +327,9 @@ $messages = array(
 'tog-numberheadings' => 'Auto-numerar cabeçalhos',
 'tog-showtoolbar' => 'Mostrar barra de edição (JavaScript)',
 'tog-editondblclick' => 'Editar páginas quando houver um clique duplo (JavaScript)',
-'tog-editsection' => 'Possibilitar a edição de secções com links [editar]',
-'tog-editsectiononrightclick' => 'Possibilitar a edição de secções por clique com o botão direito no título da secção (JavaScript)',
-'tog-showtoc' => 'Mostrar índice (para páginas com mais de três secções)',
+'tog-editsection' => 'Possibilitar a edição de seções com links [editar]',
+'tog-editsectiononrightclick' => 'Possibilitar a edição de seções por clique com o botão direito no título da seção (JavaScript)',
+'tog-showtoc' => 'Mostrar índice (para páginas com mais de três seções)',
 'tog-rememberpassword' => 'Recordar os meus dados neste browser (no máximo, durante $1 {{PLURAL:$1|dia|dias}})',
 'tog-watchcreations' => 'Adicionar as páginas e ficheiros que eu criar às minhas páginas vigiadas',
 'tog-watchdefault' => 'Adicionar as páginas e ficheiros que eu editar às minhas páginas vigiadas',
@@ -336,7 +338,7 @@ $messages = array(
 'tog-minordefault' => 'Por omissão, marcar todas as edições como menores',
 'tog-previewontop' => 'Mostrar a antevisão antes da caixa de edição',
 'tog-previewonfirst' => 'Mostrar a antevisão na primeira edição',
-'tog-nocache' => 'Desactivar a cache de páginas do browser',
+'tog-nocache' => 'Desativar a cache de páginas do browser',
 'tog-enotifwatchlistpages' => 'Notificar-me por correio electrónico quando uma página ou ficheiro vigiado for alterado',
 'tog-enotifusertalkpages' => 'Notificar-me por correio electrónico quando a minha página de discussão é editada',
 'tog-enotifminoredits' => 'Notificar-me por correio electrónico também sobre edições menores de páginas ou ficheiros',
@@ -422,13 +424,25 @@ $messages = array(
 'oct' => 'Out.',
 'nov' => 'Nov.',
 'dec' => 'Dez.',
+'january-date' => '$1 de Janeiro',
+'february-date' => '$1 de Fevereiro',
+'march-date' => '$1 de Março',
+'april-date' => '$1 de Abril',
+'may-date' => '$1 de Maio',
+'june-date' => '$1 de Junho',
+'july-date' => '$1 de Julho',
+'august-date' => '$1 de Agosto',
+'september-date' => '$1 de Setembro',
+'october-date' => '$1 de Outubro',
+'november-date' => '$1 de Novembro',
+'december-date' => '$1 de Dezembro',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Categoria|Categorias}}',
 'category_header' => 'Páginas na categoria "$1"',
 'subcategories' => 'Subcategorias',
 'category-media-header' => 'Multimédia na categoria "$1"',
-'category-empty' => "''Esta categoria não contém actualmente nenhuma página ou ficheiro multimédia.''",
+'category-empty' => "''Esta categoria não contém atualmente nenhuma página ou ficheiro multimídia.''",
 'hidden-categories' => '{{PLURAL:$1|Categoria oculta|Categorias ocultas}}',
 'hidden-category-category' => 'Categorias ocultas',
 'category-subcat-count' => '{{PLURAL:$2|Esta categoria só contém a seguinte subcategoria.|Esta categoria contém {{PLURAL:$1|a seguinte subcategoria|as seguintes $1 subcategorias}} (de um total de $2).}}',
@@ -470,8 +484,8 @@ $messages = array(
 'vector-action-move' => 'Mover',
 'vector-action-protect' => 'Proteger',
 'vector-action-undelete' => 'Restaurar',
-'vector-action-unprotect' => 'Alterar protecção',
-'vector-simplesearch-preference' => 'Activar barra de buscas simplificada (apenas no tema Vector)',
+'vector-action-unprotect' => 'Alterar proteção',
+'vector-simplesearch-preference' => 'Ativar barra de buscas simplificada (apenas no tema Vector)',
 'vector-view-create' => 'Criar',
 'vector-view-edit' => 'Editar',
 'vector-view-history' => 'Ver histórico',
@@ -503,13 +517,14 @@ $messages = array(
 'create-this-page' => 'Criar/iniciar esta página',
 'delete' => 'Eliminar',
 'deletethispage' => 'Eliminar esta página',
+'undeletethispage' => 'Restaurar esta página',
 'undelete_short' => 'Restaurar {{PLURAL:$1|uma edição|$1 edições}}',
 'viewdeleted_short' => 'Ver {{PLURAL:$1|uma edição eliminada|$1 edições eliminadas}}',
 'protect' => 'Proteger',
 'protect_change' => 'alterar',
 'protectthispage' => 'Proteger esta página',
-'unprotect' => 'Alterar protecção',
-'unprotectthispage' => 'Alterar a protecção desta página',
+'unprotect' => 'Alterar proteção',
+'unprotectthispage' => 'Alterar a proteção desta página',
 'newpage' => 'Nova página',
 'talkpage' => 'Discutir esta página',
 'talkpagelinktext' => 'discussão',
@@ -530,7 +545,7 @@ $messages = array(
 'viewtalkpage' => 'Ver discussão',
 'otherlanguages' => 'Noutras línguas',
 'redirectedfrom' => '(Redireccionado de $1)',
-'redirectpagesub' => 'Página de redireccionamento',
+'redirectpagesub' => 'Página de redirecionamento',
 'lastmodifiedat' => 'Esta página foi modificada pela última vez à(s) $2 de $1.',
 'viewcount' => 'Esta página foi acedida {{PLURAL:$1|uma vez|$1 vezes}}.',
 'protectedpage' => 'Página protegida',
@@ -556,7 +571,6 @@ $1',
 'disclaimers' => 'Exoneração de responsabilidade',
 'disclaimerpage' => 'Project:Aviso_geral',
 'edithelp' => 'Ajuda de edição',
-'edithelppage' => 'Help:Editar',
 'helppage' => 'Help:Conteúdos',
 'mainpage' => 'Página principal',
 'mainpage-description' => 'Página principal',
@@ -645,7 +659,7 @@ A última tentativa de consulta à base de dados foi:
 "$1"
 na função "$2".
 A base de dados devolveu o erro "$3: $4"',
-'laggedslavemode' => "'''Aviso:''' A página pode não conter as actualizações mais recentes.",
+'laggedslavemode' => "'''Aviso:''' A página pode não conter as atualizações mais recentes.",
 'readonly' => 'Base de dados bloqueada (limitada a leituras)',
 'enterlockreason' => 'Introduza um motivo para bloquear, incluindo uma estimativa de quando será desbloqueada',
 'readonlytext' => 'A base de dados está bloqueada para impedir a inserção e modificação de dados, provavelmente para uma manutenção de rotina, após a qual a situação será normalizada.
@@ -653,7 +667,7 @@ A base de dados devolveu o erro "$3: $4"',
 O administrador que a bloqueou deu a seguinte explicação: $1',
 'missing-article' => 'A base de dados não encontrou o texto de uma página que deveria ter encontrado, com o nome "$1" $2.
 
-Geralmente, esta situação ocorre ao clicar um link para diferenças desactualizado ou para o histórico de uma página que tenha sido removida.
+Geralmente, esta situação ocorre ao clicar um link para diferenças desatualizado ou para o histórico de uma página que tenha sido removida.
 
 Se nenhuma destas situações se verifica, pode ter encontrado um defeito no programa.
 Anote a URL e reporte este incidente a um [[Special:ListUsers/sysop|administrador]], por favor.',
@@ -667,7 +681,7 @@ Anote a URL e reporte este incidente a um [[Special:ListUsers/sysop|administrado
 'filecopyerror' => 'Não foi possível copiar o ficheiro "$1" para "$2".',
 'filerenameerror' => 'Não foi possível alterar o nome do ficheiro "$1" para "$2".',
 'filedeleteerror' => 'Não foi possível eliminar o ficheiro "$1".',
-'directorycreateerror' => 'Não foi possível criar o directório "$1".',
+'directorycreateerror' => 'Não foi possível criar o diretório "$1".',
 'filenotfound' => 'Não foi possível encontrar o ficheiro "$1".',
 'fileexistserror' => 'Não foi possível gravar no ficheiro "$1": ele já existe',
 'unexpected' => 'Valor não esperado: "$1"="$2".',
@@ -681,10 +695,10 @@ Não foi dada nenhuma explicação.',
 'badtitle' => 'Título inválido',
 'badtitletext' => 'O título de página solicitado era inválido, vazio, ou um link interlínguas ou interwikis incorrecto.
 Talvez contenha um ou mais caracteres que não podem ser usados em títulos.',
-'perfcached' => "Os seguintes dados encontram-se armazenados na ''cache'' e podem não estar actualizados. No máximo {{PLURAL:$1|um resultado é disponível|$1 resultados são disponíveis}} na ''cache''.",
-'perfcachedts' => "Os seguintes dados encontram-se armazenados na ''cache'' e foram actualizados pela última vez a $1. No máximo {{PLURAL:$4|um resultado está disponível|$4 resultados estão disponíveis}} na ''cache''.",
-'querypage-no-updates' => 'As actualizações estão presentemente desactivadas para esta página.
-Por enquanto, os dados aqui presentes não poderão ser actualizados.',
+'perfcached' => "Os seguintes dados encontram-se armazenados na ''cache'' e podem não estar atualizados. No máximo {{PLURAL:$1|um resultado é disponível|$1 resultados são disponíveis}} na ''cache''.",
+'perfcachedts' => "Os seguintes dados encontram-se armazenados na ''cache'' e foram atualizados pela última vez a $1. No máximo {{PLURAL:$4|um resultado está disponível|$4 resultados estão disponíveis}} na ''cache''.",
+'querypage-no-updates' => 'As atualizações estão presentemente desativadas para esta página.
+Por enquanto, os dados aqui presentes não poderão ser atualizados.',
 'wrong_wfQuery_params' => 'Parâmetros incorrectos para wfQuery()<br />
 Função: $1<br />
 Consulta: $2',
@@ -696,13 +710,15 @@ Consulta: $2',
 'viewsourcetext' => 'Pode ver e copiar o conteúdo desta página:',
 'viewyourtext' => "Pode ver e copiar o código-fonte das '''suas edições''' desta página:",
 'protectedinterface' => 'Esta página fornece o texto da interface ao software, e está protegida para prevenir abusos.',
-'editinginterface' => "'''Aviso:''' Está a editar uma página usada para fornecer texto de interface ao software. Alterações a esta página afectarão a aparência da interface de utilizador para os outros utilizadores. Para traduções, considere utilizar a [//translatewiki.net/wiki/Main_Page?setlang=pt translatewiki.net], um projecto destinado à tradução do MediaWiki.",
+'editinginterface' => "'''Aviso:''' Está a editar uma página usada para fornecer texto de interface ao software. Alterações a esta página afetarão a aparência da interface de utilizador para os outros utilizadores. Para traduções, considere utilizar a [//translatewiki.net/wiki/Main_Page?setlang=pt translatewiki.net], um projeto destinado à tradução do MediaWiki.",
 'sqlhidden' => '(Consulta SQL em segundo-plano)',
-'cascadeprotected' => 'Esta página foi protegida contra edições por estar incluída {{PLURAL:$1|na página listada|nas páginas listadas}} a seguir, ({{PLURAL:$1|página essa que está protegida|páginas essas que estão protegidas}} com a opção de protecção "em cascata" activada):
+'cascadeprotected' => 'Esta página foi protegida contra edições por estar incluída {{PLURAL:$1|na página listada|nas páginas listadas}} a seguir, ({{PLURAL:$1|página essa que está protegida|páginas essas que estão protegidas}} com a opção de proteção "em cascata" ativada):
 $2',
 'namespaceprotected' => "Não possui permissão para editar páginas no espaço nominal '''$1'''.",
 'customcssprotected' => 'Não tem permissões para editar esta página de CSS porque ela contém as configurações pessoais de outro utilizador.',
 'customjsprotected' => 'Não tem permissões para editar esta página de JavaScript porque ela contém as configurações pessoais de outro utilizador.',
+'mycustomcssprotected' => 'Não tem permissão para editar esta página de CSS.',
+'mycustomjsprotected' => 'Não tem permissão para editar esta página de JavaScript.',
 'ns-specialprotected' => 'Não é possível editar páginas especiais',
 'titleprotected' => 'Este título foi protegido contra criação por [[User:$1|$1]].
 A justificação foi "\'\'$2\'\'".',
@@ -738,29 +754,30 @@ Não se esqueça de personalizar as suas [[Special:Preferences|preferências]].'
 'createacct-yourpasswordagain' => 'Confirme a palavra-chave',
 'createacct-yourpasswordagain-ph' => 'Digite a palavra-chave novamente',
 'remembermypassword' => 'Recordar os meus dados neste computador (no máximo, por $1 {{PLURAL:$1|dia|dias}})',
-'userlogin-remembermypassword' => 'Memorizar neste computador',
-'userlogin-signwithsecure' => 'Inicie sessão com servidor seguro',
+'userlogin-remembermypassword' => 'Manter-me autenticado',
+'userlogin-signwithsecure' => 'Use uma ligação segura',
 'securelogin-stick-https' => 'Manter a ligação HTTPS após a autenticação',
 'yourdomainname' => 'O seu domínio:',
 'password-change-forbidden' => 'Não podes alterar senhas nesta wiki.',
-'externaldberror' => 'Ocorreu um erro externo à base de dados durante a autenticação ou não lhe é permitido actualizar a sua conta externa.',
+'externaldberror' => 'Ocorreu um erro externo à base de dados durante a autenticação ou não lhe é permitido atualizar a sua conta externa.',
 'login' => 'Autenticação',
 'nav-login-createaccount' => 'Entrar / criar conta',
-'loginprompt' => "É necessário ter os ''cookies'' activados no seu browser para poder autenticar-se na {{SITENAME}}.",
+'loginprompt' => "É necessário ter os ''cookies'' ativados no seu browser para poder autenticar-se na {{SITENAME}}.",
 'userlogin' => 'Criar uma conta ou entrar',
 'userloginnocreate' => 'Autenticação',
 'logout' => 'Sair',
 'userlogout' => 'Sair',
 'notloggedin' => 'Não autenticado',
 'userlogin-noaccount' => 'Não tem uma conta?',
-'userlogin-joinproject' => 'Junte {{SITENAME}}',
+'userlogin-joinproject' => 'Junte-se ao projeto {{SITENAME}}',
 'nologin' => 'Não possui uma conta? $1.',
 'nologinlink' => 'Criar uma conta',
 'createaccount' => 'Criar conta',
 'gotaccount' => "Já possui uma conta? '''$1'''.",
 'gotaccountlink' => 'Autentique-se',
 'userlogin-resetlink' => 'Esqueceu-se do seu nome de utilizador ou da palavra-chave?',
-'helplogin-url' => 'Ajuda:login',
+'userlogin-resetpassword-link' => 'Recuperar palavra-chave',
+'helplogin-url' => 'Help:Autenticação',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Ajuda a fazer login]]',
 'createacct-join' => 'Insira a sua informação abaixo.',
 'createacct-emailrequired' => 'Endereço de email',
@@ -770,21 +787,29 @@ Não se esqueça de personalizar as suas [[Special:Preferences|preferências]].'
 'createacct-realname' => 'Nome verdadeiro (opcional)',
 'createaccountreason' => 'Motivo:',
 'createacct-reason' => 'Razão',
+'createacct-reason-ph' => 'Porque está a criar outra conta',
 'createacct-captcha' => 'Verificar segurança',
+'createacct-imgcaptcha-ph' => 'Digite o texto que vê acima',
+'createacct-submit' => 'Crie a sua conta',
+'createacct-benefit-heading' => '{{SITENAME}} é feito por pessoas como você.',
+'createacct-benefit-body1' => '{{PLURAL:$1|edição|edições}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|página|páginas}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|contribuidor|contribuidores}} recentes',
 'badretype' => 'As palavras-chave que introduziu não são iguais.',
 'userexists' => 'O nome de utilizador introduzido já existe.
 Por favor escolha um nome diferente.',
 'loginerror' => 'Erro de autenticação',
+'createacct-error' => 'Erro na criação da conta',
 'createaccounterror' => 'Não foi possível criar a conta: $1',
 'nocookiesnew' => "A conta de utilizador foi criada, mas neste momento não está autenticado.
 A {{SITENAME}} utiliza ''cookies'' para autenticar os utilizadores.
-Os ''cookies'' estão desactivados no seu browser.
-Active-os e autentique-se com o seu nome de utilizador e a sua palavra-chave, por favor.",
+Os ''cookies'' estão desativados no seu browser.
+Ative-os e autentique-se com o seu nome de utilizador e a sua palavra-chave, por favor.",
 'nocookieslogin' => "A {{SITENAME}} utiliza ''cookies'' para autenticar os utilizadores.
-Os ''cookies'' estão desactivados no seu browser.
-Active-os e tente novamente, por favor.",
+Os ''cookies'' estão desativados no seu browser.
+Ative-os e tente novamente, por favor.",
 'nocookiesfornew' => 'A conta de utilizador não foi criada, porque não foi possível confirmar a sua origem.
-Certifique-se de que tem os cookies activados, recarregue esta página e tente novamente.',
+Certifique-se de que tem os cookies ativados, recarregue esta página e tente novamente.',
 'noname' => 'Não especificou um nome de utilizador válido.',
 'loginsuccesstitle' => 'Login bem sucedido',
 'loginsuccess' => "'''Encontra-se agora ligado à {{SITENAME}} como \"\$1\"'''.",
@@ -822,14 +847,14 @@ Em resultado, visitantes com este endereço IP não podem criar mais nenhuma con
 'emailauthenticated' => 'O seu endereço de correio electrónico foi autenticado a $2 às $3.',
 'emailnotauthenticated' => 'O seu endereço de correio electrónico ainda não foi autenticado.
 Não serão enviados correios de nenhuma das seguintes funcionalidades.',
-'noemailprefs' => 'Especifique um endereço de correio electrónico nas suas preferências para activar estas funcionalidades.',
+'noemailprefs' => 'Especifique um endereço de correio eletrónico nas suas preferências para ativar estas funcionalidades.',
 'emailconfirmlink' => 'Confirme o seu endereço de correio electrónico',
 'invalidemailaddress' => 'O endereço de correio electrónico não pode ser aceite porque parece ter um formato inválido.
 Introduza um endereço formatado correctamente ou deixe o campo vazio.',
 'cannotchangeemail' => 'Os endereços de correio electrónico das contas não podem ser alterados nesta wiki.',
 'emaildisabled' => 'Este site não consegue enviar e-mails.',
 'accountcreated' => 'Conta criada',
-'accountcreatedtext' => 'A conta de utilizador para $1 foi criada.',
+'accountcreatedtext' => 'A conta de utilizador para [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) foi criada.',
 'createaccount-title' => 'Criação de conta na {{SITENAME}}',
 'createaccount-text' => 'Alguém criou uma conta com o nome $2 para o seu endereço de correio electrónico, na wiki {{SITENAME}} ($4), com a palavra-chave "$3".
 Deve agora autenticar-se e alterar a sua palavra-chave.
@@ -845,6 +870,7 @@ Aguarde antes de tentar novamente, por favor.',
 # Email sending
 'php-mail-error-unknown' => 'Erro desconhecido na função mail() do PHP',
 'user-mail-no-addy' => 'Tentou enviar uma mensagem sem um endereço de correio electrónico',
+'user-mail-no-body' => 'Tentou mandar email sem conteúdo ou com conteúdo demasiado pequeno.',
 
 # Change password dialog
 'resetpass' => 'Alterar palavra-chave',
@@ -864,34 +890,38 @@ Para prosseguir, será necessário definir uma nova palavra-chave.',
 'resetpass-wrong-oldpass' => 'Palavra-chave temporária ou actual inválida.
 Pode ter já alterado com sucesso a sua palavra-chave ou solicitado uma nova palavra-chave temporária.',
 'resetpass-temp-password' => 'Palavra-chave temporária:',
+'resetpass-abort-generic' => 'Alteração de senha foi cancelada por uma extensão.',
 
 # Special:PasswordReset
 'passwordreset' => 'Repor palavra-chave',
-'passwordreset-text' => 'Preencha este formulário para repor a sua palavra-passe.',
+'passwordreset-text-one' => 'Preencha este formulário para repor a sua palavra-passe.',
+'passwordreset-text-many' => '{{PLURAL:$1|Digite uma parte dos dados para redefinir sua senha.}}',
 'passwordreset-legend' => 'Reiniciar a palavra-chave',
 'passwordreset-disabled' => 'O reinício da palavra-chave foi impossibilitado nesta wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Introduza um dos dados abaixo}}',
+'passwordreset-emaildisabled' => 'Recursos de e-mail foram desativados neste wiki.',
 'passwordreset-username' => 'Nome de utilizador:',
 'passwordreset-domain' => 'Domínio:',
 'passwordreset-capture' => 'Ver o email resultante?',
 'passwordreset-capture-help' => 'Se marcar esta caixa, o e-mail (com a senha temporária) será-lhe mostrado, além de ser enviado para o utilizador.',
 'passwordreset-email' => 'Correio electrónico:',
 '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 dos detalhes da sua conta na {{SITENAME}} ($4). {{PLURAL:$3|A seguinte conta está associada|As seguintes contas estão associadas}} a este correio electrónico:
+'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:
 
 $2
 
-{{PLURAL:$3|Esta palavra-chave temporária irá|Estas palavras-chave temporárias irão}} expirar dentro de {{PLURAL:$5|um dia|$5 dias}}. Deve autenticar-se e escolher uma palavra-chave nova agora. Se este pedido não foi feito por si, ou se entretanto se recordou da sua palavra-chave original e já não deseja alterá-la, pode ignorar esta mensagem e continuar a usar a palavra-chave antiga.',
-'passwordreset-emailtext-user' => 'O utilizador $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 correio electrónico:
+{{PLURAL:$3|Esta palavra-passe temporária irá|Estas palavras-passes temporárias irão}} expirar dentro de {{PLURAL:$5|um dia|$5 dias}}.
+Deve 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:
 
 $2
 
-{{PLURAL:$3|Esta palavra-chave temporária irá|Estas palavras-chave temporárias irão}} expirar dentro de {{PLURAL:$5|um dia|$5 dias}}. Deve autenticar-se e escolher uma palavra-chave nova agora. Se este pedido não foi feito por si, ou se entretanto se recordou da sua palavra-chave original e já não deseja alterá-la, pode ignorar esta mensagem e continuar a usar a palavra-chave antiga.',
+{{PLURAL:$3|Esta palavra-passe temporária irá|Estas palavras-passes temporárias irão}} expirar dentro de {{PLURAL:$5|um dia|$5 dias}}.
+Deve 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: $1
 Palavra-chave temporária: $2',
-'passwordreset-emailsent' => 'Foi enviado um correio electrónico de recuperação dos dados da conta.',
-'passwordreset-emailsent-capture' => 'Foi enviado um e-mail de lembrete, que é mostrado abaixo.',
-'passwordreset-emailerror-capture' => 'Foi gerado o lembrete de e-mail mostrado abaixo, contudo falhou o envio para o utilizador: $1',
+'passwordreset-emailsent' => 'Foi enviado um correio eletrónico para recuperação da palavra-passe.',
+'passwordreset-emailsent-capture' => 'Foi enviado um e-mail de recuperação da palavra-passe, que é mostrado abaixo.',
+'passwordreset-emailerror-capture' => 'Foi gerado o e-mail de reposição de palavra-passe mostrado abaixo, contudo falhou o seu envio para {{GENDER:$2|o utilizador|a utilizadora}}: $1',
 
 # Special:ChangeEmail
 'changeemail' => 'Alterar o endereço de correio electrónico',
@@ -901,6 +931,7 @@ Palavra-chave temporária: $2',
 'changeemail-oldemail' => 'Correio electrónico actual:',
 'changeemail-newemail' => 'Correio electrónico novo:',
 'changeemail-none' => '(nenhum)',
+'changeemail-password' => 'A sua senha {{SITENAME}}:',
 'changeemail-submit' => 'Alterar correio electrónico',
 'changeemail-cancel' => 'Cancelar',
 
@@ -980,7 +1011,7 @@ Inclua todos os detalhes acima em quaisquer contactos relacionados com este bloq
 'confirmedittext' => 'Precisa de confirmar o seu endereço de correio electrónico antes de começar a editar páginas.
 Introduza e valide o endereço através das [[Special:Preferences|preferências do utilizador]], por favor.',
 'nosuchsectiontitle' => 'Não foi possível encontrar a seção',
-'nosuchsectiontext' => 'Tentou editar uma secção que não existe.
+'nosuchsectiontext' => 'Tentou editar uma seção que não existe.
 Ela pode ter sido movida ou removida enquanto estava a ver a página.',
 'loginreqtitle' => 'Autenticação necessária',
 'loginreqlink' => 'autenticar-se',
@@ -1009,8 +1040,8 @@ Os detalhes podem ser encontrados no [{{fullurl:{{#Special:Log}}/delete|page={{F
 'userpage-userdoesnotexist' => 'A conta "<nowiki>$1</nowiki>" não se encontra registada.
 Verifique se deseja realmente criar ou editar esta página, por favor.',
 'userpage-userdoesnotexist-view' => 'A conta de utilizador "$1" não está registada.',
-'blocked-notice-logextract' => 'Este utilizador encontra-se actualmente bloqueado.
-Para referência, o último registo de bloqueio é apresentado abaixo:',
+'blocked-notice-logextract' => 'Este utilizador encontra-se atualmente bloqueado.
+Para referência, o último registro de bloqueio é apresentado abaixo:',
 'clearyourcache' => "'''Nota:''' Após gravar, terá de limpar a ''cache'' do seu browser para ver as alterações.
 *'''Firefox / Safari:''' Pressione ''Shift'' enquanto clica ''Recarregar'', ou pressione ''Ctrl-F5'' ou ''Ctrl-R'' (''⌘-R'' no Mac)
 *'''Google Chrome:''' Pressione ''Ctrl-Shift-R'' (''⌘-Shift-R'' no Mac)
@@ -1059,8 +1090,8 @@ Terá de reintegrar as suas mudanças no texto da caixa abaixo.
 'yourtext' => 'O seu texto',
 'storedversion' => 'Versão guardada',
 'nonunicodebrowser' => "'''Aviso: O seu browser não é compatível com as especificações Unicode.
-Foi activado um sistema de edição alternativo que lhe permite editar as páginas com segurança: os caracteres não-ASCII aparecerão na caixa de edição no formato de códigos hexadecimais.'''",
-'editingold' => "'''Aviso: Está a editar uma revisão desactualizada desta página.'''
+Foi ativado um sistema de edição alternativo que lhe permite editar as páginas com segurança: os caracteres não-ASCII aparecerão na caixa de edição no formato de códigos hexadecimais.'''",
+'editingold' => "'''Aviso: Está a editar uma revisão desatualizada desta página.'''
 Se gravar, todas as mudanças feitas a partir desta revisão serão perdidas.",
 'yourdiff' => 'Diferenças',
 'copyrightwarning' => "Note, por favor, que todas as suas contribuições na {{SITENAME}} são consideradas publicadas nos termos da licença $2 (consulte $1 para mais detalhes).
@@ -1074,7 +1105,7 @@ Garante-nos também que isto é algo escrito por si, ou copiado do domínio púb
 'longpageerror' => "'''Erro: O texto que submeteu ocupa {{PLURAL:$1|um kilobyte|$1 kilobytes}}, que excede o máximo de {{PLURAL:$2|um kilobyte|$2 kilobytes}}.'''
 A página não pode ser gravada.",
 'readonlywarning' => "'''Aviso: A base de dados foi bloqueada para manutenção, pelo que não poderá gravar a sua edição neste momento.'''
-Pode, no entanto, copiar o seu texto para um editor externo e guardá-lo para posterior submissão.
+Pode, no entanto, copiar e colar o seu texto num ficheiro de texto e guardá-lo para mais tarde.
 
 O administrador que bloqueou a base de dados forneceu a seguinte explicação: $1",
 'protectedpagewarning' => "'''Aviso: Esta página foi protegida para só poder ser editada por administradores.'''
@@ -1094,8 +1125,8 @@ Para referência, é apresentada abaixo a última entrada do registo:",
 'nocreatetext' => 'A {{SITENAME}} restringe a criação de páginas novas por utilizadores anónimos.
 Pode voltar atrás e editar uma página já existente, ou [[Special:UserLogin|autenticar-se ou criar uma conta]].',
 'nocreate-loggedin' => 'Não possui permissão para criar novas páginas.',
-'sectioneditnotsupported-title' => 'Edição de secções não é suportada',
-'sectioneditnotsupported-text' => 'A edição de secções não é suportada nesta página de edição.',
+'sectioneditnotsupported-title' => 'Edição de seções não é suportada',
+'sectioneditnotsupported-text' => 'A edição de seções não é suportada nesta página de edição.',
 'permissionserrors' => 'Erros de permissões',
 'permissionserrorstext' => 'Não possui permissão para fazer isso, {{PLURAL:$1|pelo seguinte motivo|pelos seguintes motivos}}:',
 'permissionserrorstext-withaction' => 'Não possui permissão para $2, {{PLURAL:$1|pelo seguinte motivo|pelos seguintes motivos}}:',
@@ -1112,12 +1143,15 @@ Não foi dada nenhuma explicação.',
 Ela parece ter sido eliminada.',
 'edit-conflict' => 'Conflito de edição.',
 'edit-no-change' => 'A sua edição foi ignorada, uma vez que o texto não sofreu alterações.',
+'postedit-confirmation' => 'A sua edição foi gravada.',
 'edit-already-exists' => 'Não foi possível criar uma página nova.
 Ela já existia.',
 'defaultmessagetext' => 'Texto da mensagem padrão',
+'content-failed-to-parse' => 'Falha ao analisar conteúdo $2 para modelo $1:$3',
+'invalid-content-data' => 'Dados de conteúdo inválidos',
 'content-not-allowed-here' => 'Conteúdo do tipo "$1" não é permitido na página [[$2]]',
-'editwarning-warning' => 'Sair desta página fará com que você perca todas as alterações feitas por você.
-Se você fez login, pode desabilitar este aviso na seção "{{int:prefs-editing}}" das suas preferências.',
+'editwarning-warning' => 'Sair desta página fará com que você perca quaisquer alterações feitas por você.
+Se você se autenticou, pode desabilitar este aviso na seção "Edição" das suas preferências.',
 
 # Content models
 'content-model-wikitext' => 'wikitexto',
@@ -1126,9 +1160,9 @@ Se você fez login, pode desabilitar este aviso na seção "{{int:prefs-editing}
 'content-model-css' => 'CSS',
 
 # Parser/template warnings
-'expensive-parserfunction-warning' => 'Aviso: Esta página contém demasiadas chamadas de funções exigentes do analisador sintáctico.
+'expensive-parserfunction-warning' => "'''Aviso:''' Esta página contém demasiadas chamadas de funções exigentes do analisador sintático.
 
-Devia ter menos de $2 {{PLURAL:$2|chamada|chamadas}}. Neste momento tem $1 {{PLURAL:$1|chamada|chamadas}}.',
+Devia ter menos de $2 {{PLURAL:$2|chamada|chamadas}}. Neste momento tem $1 {{PLURAL:$1|chamada|chamadas}}.",
 'expensive-parserfunction-category' => 'Páginas com demasiadas chamadas a funções exigentes',
 'post-expand-template-inclusion-warning' => 'Aviso: O tamanho de inclusão de predefinições é demasiado grande, algumas predefinições não serão incluídas.',
 'post-expand-template-inclusion-category' => 'Páginas onde o tamanho de inclusão de predefinições é excedido',
@@ -1164,7 +1198,7 @@ O motivo apresentado por $3 foi ''$2''",
 'viewpagelogs' => 'Ver registos para esta página',
 'nohistory' => 'Não há histórico de edições para esta página.',
 'currentrev' => 'Revisão atual',
-'currentrev-asof' => 'Edição actual desde as $1',
+'currentrev-asof' => 'Edição atual desde as $1',
 'revisionasof' => 'Revisão das $1',
 'revision-info' => 'Revisão das $1 por $2',
 'previousrevision' => '← Revisão anterior',
@@ -1175,9 +1209,9 @@ O motivo apresentado por $3 foi ''$2''",
 'last' => 'ant',
 'page_first' => 'primeira',
 'page_last' => 'última',
-'histlegend' => "Selecção de diferenças: use os botões de opção para marcar as versões que deseja comparar.
+'histlegend' => "Seleção de diferenças: use os botões de opção para marcar as versões que deseja comparar.
 Pressione 'Enter' ou clique o botão \"{{int:compareselectedversions}}\".<br />
-Legenda: '''({{int:cur}})''' = diferenças para a versão actual,
+Legenda: '''({{int:cur}})''' = diferenças para a versão atual,
 '''({{int:last}})''' = diferenças para a versão anterior,
 '''{{int:minoreditletter}}''' = edição menor",
 'history-fieldset-title' => 'Navegar pelo histórico',
@@ -1229,7 +1263,7 @@ Você pode ver a diferença entre revisões; podem existir mais detalhes no [{{f
 'rev-showdeleted' => 'mostrar',
 'revisiondelete' => 'Eliminar/restaurar edições',
 'revdelete-nooldid-title' => 'Edição de destino inválida',
-'revdelete-nooldid-text' => 'Ocorreu uma das seguintes: não especificou a revisão (ou revisões) de destino para realizar esta função, a revisão que especificou não existe, ou está tentando ocultar a revisão actual.',
+'revdelete-nooldid-text' => 'Ocorreu uma das seguintes: não especificou a revisão (ou revisões) de destino para realizar esta função, a revisão que especificou não existe, ou está tentando ocultar a revisão atual.',
 'revdelete-nologtype-title' => 'Tipo de registo não especificado',
 'revdelete-nologtype-text' => 'Não especificou um tipo de registo sobre o qual será executada esta operação.',
 'revdelete-nologid-title' => 'Entrada de registo inválida',
@@ -1237,8 +1271,8 @@ Você pode ver a diferença entre revisões; podem existir mais detalhes no [{{f
 'revdelete-no-file' => 'O ficheiro especificado não existe.',
 'revdelete-show-file-confirm' => 'Tem a certeza de que quer ver uma revisão eliminada do ficheiro "<nowiki>$1</nowiki>" de $2 às $3?',
 'revdelete-show-file-submit' => 'Sim',
-'revdelete-selected' => "'''{{PLURAL:$2|Edição seleccionada|Edições seleccionadas}} de [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Evento do registo seleccionado|Eventos do registo seleccionados}}:'''",
+'revdelete-selected' => "'''{{PLURAL:$2|Edição selecionada|Edições selecionadas}} de [[:$1]]:'''",
+'logdelete-selected' => "'''{{PLURAL:$1|Evento do registo selecionado|Eventos do registo selecionados}}:'''",
 'revdelete-text' => "'''Edições e eventos eliminados continuarão a aparecer no histórico e registos da página, mas partes do seu conteúdo estarão inacessíveis ao público.'''
 Outros administradores da {{SITENAME}} continuarão a poder aceder ao conteúdo escondido e podem restaurá-lo novamente através desta mesma interface, a menos que restrições adicionais sejam definidas.",
 'revdelete-confirm' => 'Por favor confirme que pretende executar esta operação, que compreende as suas consequências e que o faz em concordância com as [[{{MediaWiki:Policy-url}}|políticas e recomendações]].',
@@ -1259,9 +1293,9 @@ Outros administradores da {{SITENAME}} continuarão a poder aceder ao conteúdo
 'revdelete-suppress' => 'Ocultar dados dos administradores e de todos os outros',
 'revdelete-unsuppress' => 'Remover restrições das revisões restauradas',
 'revdelete-log' => 'Motivo:',
-'revdelete-submit' => 'Aplicar {{PLURAL:$1|à revisão seleccionada|às revisões seleccionadas}}',
-'revdelete-success' => "'''A visibilidade da revisão foi actualizada.'''",
-'revdelete-failure' => "'''A visibilidade da revisão não foi actualizada:'''
+'revdelete-submit' => 'Aplicar {{PLURAL:$1|à revisão selecionada|às revisões selecionadas}}',
+'revdelete-success' => "'''A visibilidade da revisão foi atualizada.'''",
+'revdelete-failure' => "'''A visibilidade da revisão não foi atualizada:'''
 $1",
 'logdelete-success' => "'''A visibilidade da entrada do registo foi definida.'''",
 'logdelete-failure' => "'''Não foi possível definir a visibilidade da entrada do registo:'''
@@ -1281,7 +1315,7 @@ Não tem acesso.',
 'revdelete-no-change' => "'''Aviso:''' a revisão com data de $2, $1 já tem as configurações de visibilidade solicitadas.",
 'revdelete-concurrent-change' => 'Erro ao modificar o item com data/hora $2, $1: o seu estado parece ter sido alterado por outra pessoa enquanto você tentava modificá-lo.
 Verifique os registos, por favor.',
-'revdelete-only-restricted' => 'Erro ao ocultar o item de $2 às $1: não pode impedir que os itens sejam vistos pelos administradores sem seleccionar também uma das outras opções de visibilidade.',
+'revdelete-only-restricted' => 'Erro ao ocultar o item de $2 às $1: não pode impedir que os itens sejam vistos pelos administradores sem selecionar também uma das outras opções de visibilidade.',
 'revdelete-reason-dropdown' => '*Razões comuns para eliminação
 ** Violação de direitos de autor
 ** Comentário ou informações pessoais inapropriados
@@ -1334,7 +1368,7 @@ Note que, se usar os links de navegação, os botões de opção voltarão aos v
 'difference-title-multipage' => 'Diferenças entre as páginas "$1" e "$2"',
 'difference-multipage' => '(Diferenças entre páginas)',
 'lineno' => 'Linha $1:',
-'compareselectedversions' => 'Comparar as versões seleccionadas',
+'compareselectedversions' => 'Comparar as versões selecionadas',
 'showhideselectedversions' => 'Mostrar/ocultar versões selecionadas',
 'editundo' => 'desfazer',
 'diff-multi' => '({{PLURAL:$1|Uma edição intermédia|$1 edições intermédias}} de {{PLURAL:$2|um utilizador|$2 utilizadores}} {{PLURAL:$1|não apresentada|não apresentadas}})',
@@ -1364,10 +1398,9 @@ Os detalhes podem ser encontrados no [{{fullurl:{{#Special:Log}}/delete|page={{F
 'searchmenu-legend' => 'Opções de pesquisa',
 'searchmenu-exists' => "'''Há uma página com o nome \"[[:\$1]]\" nesta wiki'''",
 'searchmenu-new' => "'''Crie a página \"[[:\$1]]\" nesta wiki!'''",
-'searchhelp-url' => 'Help:Conteúdos',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Navegar as páginas com este prefixo]]',
 'searchprofile-articles' => 'Páginas de conteúdo',
-'searchprofile-project' => 'Páginas de Ajuda e de Projecto',
+'searchprofile-project' => 'Páginas de ajuda e de projeto',
 'searchprofile-images' => 'Multimédia',
 'searchprofile-everything' => 'Todas',
 'searchprofile-advanced' => 'Personalizar',
@@ -1379,14 +1412,14 @@ Os detalhes podem ser encontrados no [{{fullurl:{{#Special:Log}}/delete|page={{F
 'search-result-size' => '$1 ({{PLURAL:$2|1 palavra|$2 palavras}})',
 'search-result-category-size' => '{{PLURAL:$1|1 membro|$1 membros}} ({{PLURAL:$2|1 subcategoria|$2 subcategorias}}, {{PLURAL:$3|1 ficheiro|$3 ficheiros}})',
 'search-result-score' => 'Relevancia: $1%',
-'search-redirect' => '(redireccionamento de $1)',
+'search-redirect' => '(redirecionamento de $1)',
 'search-section' => '(seção $1)',
 'search-suggest' => 'Será que queria dizer: $1',
-'search-interwiki-caption' => 'Projectos associados',
+'search-interwiki-caption' => 'Projetos irmãos',
 'search-interwiki-default' => 'Resultados de $1:',
 'search-interwiki-more' => '(mais)',
 'search-relatedarticle' => 'Relacionado',
-'mwsuggest-disable' => 'Desactivar sugestões de pesquisa',
+'mwsuggest-disable' => 'Desativar sugestões de pesquisa',
 'searcheverything-enable' => 'Pesquisar em todos os espaços nominais',
 'searchrelated' => 'relacionados',
 'searchall' => 'todos',
@@ -1399,7 +1432,7 @@ Tente usar o prefixo ''all:'' para pesquisar todo o conteúdo (incluindo página
 'powersearch' => 'Pesquisa avançada',
 'powersearch-legend' => 'Pesquisa avançada',
 'powersearch-ns' => 'Pesquisar nos espaços nominais:',
-'powersearch-redir' => 'Listar redireccionamentos',
+'powersearch-redir' => 'Listar redirecionamentos',
 'powersearch-field' => 'Pesquisar',
 'powersearch-togglelabel' => 'Marcar:',
 'powersearch-toggleall' => 'Todos',
@@ -1407,7 +1440,8 @@ Tente usar o prefixo ''all:'' para pesquisar todo o conteúdo (incluindo página
 'search-external' => 'Pesquisa externa',
 'searchdisabled' => 'Foi impossibilitada a realização de pesquisas na {{SITENAME}}.
 Entretanto, pode realizar pesquisas através do Google.
-Note, no entanto, que a indexação da {{SITENAME}} neste motor de busca pode estar desactualizada.',
+Note, no entanto, que a indexação da {{SITENAME}} neste motor de busca pode estar desatualizada.',
+'search-error' => 'Um erro ocorreu enquanto se efectuava a busca: $1',
 
 # Preferences page
 'preferences' => 'Preferências',
@@ -1441,7 +1475,6 @@ Note, no entanto, que a indexação da {{SITENAME}} neste motor de busca pode es
 'resetprefs' => 'Eliminar as alterações que não foram gravadas',
 'restoreprefs' => 'Repor todas as configurações padrão',
 'prefs-editing' => 'Edição',
-'prefs-edit-boxsize' => 'Dimensões da janela de edição.',
 'rows' => 'Linhas:',
 'columns' => 'Colunas:',
 'searchresultshead' => 'Pesquisar',
@@ -1452,9 +1485,6 @@ Note, no entanto, que a indexação da {{SITENAME}} neste motor de busca pode es
 'recentchangesdays-max' => 'Máximo: $1 {{PLURAL:$1|dia|dias}}',
 'recentchangescount' => 'Número de edições a apresentar por omissão:',
 'prefs-help-recentchangescount' => 'Inclui mudanças recentes, histórico de páginas e registos.',
-'prefs-help-watchlist-token' => "Preencher este campo com uma senha secreta gera um ''feed'' RSS para a sua lista de páginas vigiadas.
-Qualquer pessoa que conheça esta senha será capaz de ler a sua lista de páginas vigiadas, por isso escolha um valor seguro.
-Eis um valor gerado aleatoriamente, que pode usar: $1",
 'savedprefs' => 'As suas preferências foram gravadas.',
 'timezonelegend' => 'Fuso horário:',
 'localtime' => 'Hora local:',
@@ -1486,10 +1516,9 @@ Eis um valor gerado aleatoriamente, que pode usar: $1",
 As suas preferências serão modificadas para os valores predefinidos do site.
 Esta operação não pode ser desfeita.',
 'prefs-emailconfirm-label' => 'Confirmação do endereço:',
-'prefs-textboxsize' => 'Tamanho da janela de edição',
 'youremail' => 'Correio electrónico:',
 'username' => 'Nome de {{GENDER:$1|utilizador|utilizadora}}:',
-'uid' => 'Número de identificação:',
+'uid' => 'Identificação de {{GENDER:$1|utilizador|utilizadora}}:',
 'prefs-memberingroups' => '{{GENDER:$2|Membro}} {{PLURAL:$1|do grupo|dos grupos}}:',
 'prefs-registration' => 'Hora de registo:',
 'yourrealname' => 'Nome verdadeiro:',
@@ -1542,8 +1571,8 @@ Esta informação será pública.',
 'userrights-groupsmember' => 'Membro de:',
 'userrights-groupsmember-auto' => 'Membro implícito de:',
 'userrights-groups-help' => 'É possível alterar os grupos a que este utilizador pertence:
-* Uma caixa de selecção marcada significa que o utilizador se encontra no grupo.
-* Uma caixa de selecção desmarcada significa que o utilizador não se encontra no grupo.
+* Uma caixa de seleção marcada significa que o utilizador se encontra no grupo.
+* Uma caixa de seleção desmarcada significa que o utilizador não se encontra no grupo.
 * Um asterisco (*) indica que não pode remover o grupo depois de o adicionar, ou vice-versa.',
 'userrights-reason' => 'Motivo:',
 'userrights-no-interwiki' => 'Não tem permissões para alterar os privilégios de utilizadores noutras wikis.',
@@ -1552,6 +1581,8 @@ Esta informação será pública.',
 'userrights-notallowed' => 'A sua conta não tem permissão para adicionar ou remover privilégios a utilizadores.',
 'userrights-changeable-col' => 'Grupos que pode alterar',
 'userrights-unchangeable-col' => 'Grupos que não pode alterar',
+'userrights-conflict' => 'Conflito com os privilégios dos utilizadores! Por favor, aplique as suas mudanças novamente.',
+'userrights-removed-self' => 'Você removeu com sucesso os seus privilégios. Como resultado disso, já não consegue aceder a esta página.',
 
 # Groups
 'group' => 'Grupo:',
@@ -1588,7 +1619,7 @@ Esta informação será pública.',
 'right-move-subpages' => 'Mover páginas com as suas subpáginas',
 'right-move-rootuserpages' => 'Mover páginas raiz de utilizadores',
 'right-movefile' => 'Mover ficheiros',
-'right-suppressredirect' => 'Não criar um redireccionamento do nome antigo quando uma página é movida',
+'right-suppressredirect' => 'Não criar um redirecionamento do nome antigo quando uma página é movida',
 'right-upload' => 'Carregar ficheiros',
 'right-reupload' => 'Sobrescrever um ficheiro existente',
 'right-reupload-own' => 'Sobrescrever um ficheiro existente carregado pelo mesmo utilizador',
@@ -1616,15 +1647,17 @@ Esta informação será pública.',
 'right-ipblock-exempt' => 'Contornar bloqueios de IP, bloqueios automáticos e bloqueios de gamas de IPs',
 'right-proxyunbannable' => 'Contornar bloqueios automáticos de proxies',
 'right-unblockself' => 'Desbloquearem-se a si próprios',
-'right-protect' => 'Mudar níveis de protecção e editar páginas protegidas',
-'right-editprotected' => 'Editar páginas protegidas (sem protecção em cascata)',
+'right-protect' => 'Mudar níveis de proteção e editar páginas protegidas em cascata',
+'right-editprotected' => 'Editar páginas protegidas como "{{int:protect-level-sysop}}"',
 'right-editinterface' => 'Editar a interface de utilizador',
 'right-editusercssjs' => 'Editar os ficheiros CSS e JS de outros utilizadores',
 'right-editusercss' => 'Editar os ficheiros CSS de outros utilizadores',
 'right-edituserjs' => 'Editar os ficheiros JS de outros utilizadores',
+'right-editmyusercss' => 'Editar os seus próprios ficheiros CSS de utilizador',
+'right-editmyuserjs' => 'Editar os seus próprios ficheiros JavaScript de utilizador',
 'right-rollback' => 'Reverter rapidamente as edições do último utilizador que editou uma página em particular',
 'right-markbotedits' => 'Marcar edições revertidas como edições de bot',
-'right-noratelimit' => 'Não ser afectado pelos limites de velocidade de operação',
+'right-noratelimit' => 'Não ser afetado pelos limites de velocidade de operação',
 'right-import' => 'Importar páginas de outras wikis',
 'right-importupload' => 'Importar páginas de um ficheiro xml',
 'right-patrol' => 'Marcar edições de outros utilizadores como patrulhadas',
@@ -1671,7 +1704,7 @@ Esta informação será pública.',
 'action-suppressrevision' => 'rever e restaurar esta edição oculta',
 'action-suppressionlog' => 'ver este registo privado',
 'action-block' => 'impedir este utilizador de editar',
-'action-protect' => 'alterar os níveis de protecção desta página',
+'action-protect' => 'alterar os níveis de proteção desta página',
 'action-rollback' => 'reverter rapidamente as edições do último utilizador que editou uma dada página',
 'action-import' => 'importar esta página a partir de outra wiki',
 'action-importupload' => 'importar esta página a partir de um ficheiro xml',
@@ -1725,7 +1758,6 @@ Esta informação será pública.',
 'recentchangeslinked-feed' => 'Alterações relacionadas',
 'recentchangeslinked-toolbox' => 'Alterações relacionadas',
 'recentchangeslinked-title' => 'Alterações relacionadas com "$1"',
-'recentchangeslinked-noresult' => 'Nenhuma mudança nas páginas relacionadas durante o período.',
 'recentchangeslinked-summary' => "Lista das mudanças recentes a todas as páginas para as quais a página fornecida contém links (ou de todas as que pertencem à categoria fornecida).
 As suas [[Special:Watchlist|páginas vigiadas]] aparecem a '''negrito'''.",
 'recentchangeslinked-page' => 'Nome da página:',
@@ -1738,8 +1770,8 @@ As suas [[Special:Watchlist|páginas vigiadas]] aparecem a '''negrito'''.",
 'upload-tryagain' => 'Submeta a descrição do ficheiro modificado',
 'uploadnologin' => 'Não autenticado',
 'uploadnologintext' => 'Tem de estar [[Special:UserLogin|autenticado]] para enviar ficheiros.',
-'upload_directory_missing' => 'O directório de carregamento de ficheiros ($1) não existe e o servidor de internet não conseguiu criá-lo.',
-'upload_directory_read_only' => 'O servidor de internet não possui permissão de escrita no directório de carregamento de ficheiros ($1).',
+'upload_directory_missing' => 'O diretório de carregamento de ficheiros ($1) não existe e o servidor de internet não conseguiu criá-lo.',
+'upload_directory_read_only' => 'O servidor de internet não possui permissão de escrita no diretório de carregamento de ficheiros ($1).',
 'uploaderror' => 'Erro ao carregar',
 'upload-recreate-warning' => "'''Aviso: Um ficheiro com esse nome foi eliminado ou movido.'''
 
@@ -1800,7 +1832,7 @@ Isto pode dever-se a um erro no nome do ficheiro.
 Verifique se é realmente este o ficheiro que deseja carregar, por favor.',
 'windows-nonascii-filename' => 'A wiki não aceita nomes de ficheiros com caracteres especiais.',
 'fileexists' => 'Já existe um ficheiro com este nome.
-Verifique <strong>[[:$1]]</strong> caso não tenha a certeza de que quer alterar o ficheiro actual, por favor.
+Verifique <strong>[[:$1]]</strong> caso não tenha a certeza de que quer alterar o ficheiro atual, por favor.
 [[$1|thumb]]',
 'filepageexists' => 'A página de descrição deste ficheiro já foi criada em <strong>[[:$1]]</strong>, mas neste momento não existe nenhum ficheiro com este nome.
 O resumo que introduzir não aparecerá na página de descrição.
@@ -1863,7 +1895,7 @@ JD # Jenoptik
 MGP # Pentax
 PICT # misc.
  #</pre> <!-- deixe esta linha exactamente como está -->',
-'upload-success-subj' => 'Envio efectuado com sucesso',
+'upload-success-subj' => 'Envio efetuado com sucesso',
 'upload-success-msg' => 'O seu upload de [$2] foi bem sucedido. Está disponível aqui: [[:{{ns:file}}:$1]]',
 'upload-failure-subj' => 'Problema no upload',
 'upload-failure-msg' => 'Ocorreu um problema com o seu upload de [$2]:
@@ -1881,7 +1913,7 @@ Contacte um [[Special:ListUsers/sysop|administrador]], por favor.',
 'upload-misc-error-text' => 'Ocorreu um erro desconhecido durante o envio.
 Verifique se o endereço (URL) é válido e acessível e tente novamente.
 Caso o problema persista, contacte um [[Special:ListUsers/sysop|administrador]].',
-'upload-too-many-redirects' => 'A URL continha demasiados redireccionamentos',
+'upload-too-many-redirects' => 'A URL continha demasiados redirecionamentos',
 'upload-unknown-size' => 'Tamanho desconhecido',
 'upload-http-error' => 'Ocorreu um erro HTTP: $1',
 'upload-copy-upload-invalid-domain' => 'Não é possível realizar carregamentos remotos neste domínio.',
@@ -1894,6 +1926,7 @@ Caso o problema persista, contacte um [[Special:ListUsers/sysop|administrador]].
 'backend-fail-notsame' => 'Já existe um ficheiro não idêntico em $1 .',
 'backend-fail-invalidpath' => '$1 não é um caminho de armazenamento válido.',
 'backend-fail-delete' => 'Não foi possível excluir o ficheiro $1.',
+'backend-fail-describe' => 'Não foi possível mudar metadados para o ficheiro "$1".',
 'backend-fail-alreadyexists' => 'O ficheiro $1 já existe.',
 'backend-fail-store' => 'Não foi possível armazenar o ficheiro $1 em $2.',
 'backend-fail-copy' => 'Não foi possível copiar o ficheiro $1 para $2.',
@@ -1904,13 +1937,13 @@ Caso o problema persista, contacte um [[Special:ListUsers/sysop|administrador]].
 'backend-fail-read' => 'Não foi possível ler o ficheiro $1.',
 'backend-fail-create' => 'Não foi possível gravar o ficheiro $1.',
 'backend-fail-maxsize' => 'Não foi possível gravar o ficheiro $1 porque tem mais do que {{PLURAL:$2|um byte|$2 bytes}}.',
-'backend-fail-readonly' => 'O servidor de armazenamento "$1" está actualmente no modo "somente leitura". A razão dada foi: "$2"',
+'backend-fail-readonly' => 'O servidor de armazenamento "$1" está atualmente no modo "somente leitura". A razão dada foi: "$2"',
 'backend-fail-synced' => 'O ficheiro "$1" está num estado inconsistente nos servidores de armazenamento interno',
 'backend-fail-connect' => 'Não foi possível estabelecer ligação com o servidor de armazenamento "$1".',
 'backend-fail-internal' => 'Ocorreu um erro desconhecido no servidor de armazenamento "$1".',
 'backend-fail-contenttype' => 'Não foi possível determinar o tipo de conteúdo do ficheiro para armazenar em "$1".',
 'backend-fail-batchsize' => 'Foi fornecido um bloco de $1 {{PLURAL:$1|operação|operações}} sobre ficheiros ao servidor de armazenamento; o limite é de $2 {{PLURAL:$2|operação|operações}}.',
-'backend-fail-usable' => 'Não foi possível gravar o ficheiro $1 devido a permissões insuficientes ou a directórios ou repositórios inexistentes.',
+'backend-fail-usable' => 'Não foi possível ler ou gravar o ficheiro "$1" devido a permissões insuficientes ou a directórios/repositórios inexistentes.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'Não foi possível estabelecer ligação à base de dados de registos no servidor de armazenamento "$1".',
@@ -1938,12 +1971,12 @@ A sua segurança não pode ser devidamente verificada.',
 
 # Special:UploadStash
 'uploadstash' => 'Ficheiros escondidos',
-'uploadstash-summary' => 'Esta página dá acesso aos ficheiros enviados (ou que estão no processo de envio) mas que ainda não foram publicados na wiki. Estes ficheiros não são visíveis para ninguém, excepto para o utilizador que os enviou.',
+'uploadstash-summary' => 'Esta página dá acesso aos ficheiros enviados (ou que estão no processo de envio) mas que ainda não foram publicados na wiki. Estes ficheiros não são visíveis para ninguém, exceto para o utilizador que os enviou.',
 'uploadstash-clear' => 'Apagar os ficheiros escondidos',
 'uploadstash-nofiles' => 'Não tem ficheiros escondidos.',
 'uploadstash-badtoken' => 'Não foi possível executar essa operação, talvez porque as suas credenciais de edição expiraram. Tente novamente.',
 'uploadstash-errclear' => 'Não foi possível apagar os ficheiros.',
-'uploadstash-refresh' => 'Actualizar a lista de ficheiros',
+'uploadstash-refresh' => 'Atualizar a lista de ficheiros',
 'invalid-chunk-offset' => 'Deslocamento de fragmento inválido',
 
 # img_auth script messages
@@ -1952,11 +1985,11 @@ A sua segurança não pode ser devidamente verificada.',
 O seu servidor não está configurado para passar esta informação.
 Pode ser baseado em CGI e não consegue suportar img_auth.
 Consulte a documentação em https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
-'img-auth-notindir' => 'O endereço especificado não conduz ao directório de carregamento de ficheiros configurado.',
+'img-auth-notindir' => 'O endereço especificado não conduz ao diretório de carregamento de ficheiros configurado.',
 'img-auth-badtitle' => 'Não é possível construir um título válido a partir de "$1".',
 'img-auth-nologinnWL' => 'Não está autenticado e o ficheiro "$1" não está na lista branca.',
 'img-auth-nofile' => 'O ficheiro "$1" não existe.',
-'img-auth-isdir' => 'Está tentando aceder ao directório "$1".
+'img-auth-isdir' => 'Está tentando aceder ao diretório "$1".
 Só é permitido o acesso a ficheiros.',
 'img-auth-streaming' => "A fazer o ''streaming'' de \"\$1\".",
 'img-auth-public' => 'A função do img_auth.php é produzir ficheiros a partir de uma wiki privada.
@@ -1983,7 +2016,7 @@ Verifique se o endereço está correcto e o site disponível, por favor.',
 
 'license' => 'Licença:',
 'license-header' => 'Licenciamento',
-'nolicense' => 'Nenhuma seleccionada',
+'nolicense' => 'Nenhuma selecionada',
 'license-nopreview' => '(Antevisão indisponível)',
 'upload_source_url' => ' (uma URL válida, publicamente acessível)',
 'upload_source_file' => ' (um ficheiro no seu computador)',
@@ -2026,7 +2059,7 @@ A lista abaixo apresenta apenas {{PLURAL:$1|a primeira página|as primeiras $1 p
 Encontra-se disponível uma [[Special:WhatLinksHere/$2|lista completa]].',
 'nolinkstoimage' => 'Nenhuma página contém links para este ficheiro.',
 'morelinkstoimage' => 'Ver a [[Special:WhatLinksHere/$1|lista completa]] de páginas que contêm links para este ficheiro.',
-'linkstoimage-redirect' => '$1 (redireccionamento de ficheiro) $2',
+'linkstoimage-redirect' => '$1 (redirecionamento de ficheiro) $2',
 'duplicatesoffile' => '{{PLURAL:$1|O seguinte ficheiro é duplicado|Os seguintes $1 ficheiros são duplicados}} deste ficheiro ([[Special:FileDuplicateSearch/$2|mais detalhes]]):',
 'sharedupload' => 'Este ficheiro provém de $1 e pode ser usado por outros projectos.',
 'sharedupload-desc-there' => 'Este ficheiro provém de $1 e pode ser usado por outros projectos.
@@ -2084,7 +2117,7 @@ Talvez queira editar a descrição na [$2 página original de descrição do fic
 'unwatchedpages' => 'Páginas não vigiadas',
 
 # List redirects
-'listredirects' => 'Redireccionamentos',
+'listredirects' => 'Lista de redirecionamentos',
 
 # Unused templates
 'unusedtemplates' => 'Predefinições não utilizadas',
@@ -2096,8 +2129,8 @@ Talvez queira editar a descrição na [$2 página original de descrição do fic
 'randompage-nopages' => 'Não há páginas {{PLURAL:$2|no seguinte espaço nominal|nos seguintes espaços nominais}}: $1.',
 
 # Random redirect
-'randomredirect' => 'Redireccionamento aleatório',
-'randomredirect-nopages' => 'Não há redireccionamentos no espaço nominal "$1".',
+'randomredirect' => 'Redirecionamento aleatório',
+'randomredirect-nopages' => 'Não há redirecionamentos no espaço nominal "$1".',
 
 # Statistics
 'statistics' => 'Estatísticas',
@@ -2108,7 +2141,7 @@ Talvez queira editar a descrição na [$2 página original de descrição do fic
 'statistics-header-hooks' => 'Outras estatísticas',
 'statistics-articles' => 'Páginas de conteúdo',
 'statistics-pages' => 'Páginas',
-'statistics-pages-desc' => 'Todas as páginas da wiki, incluindo páginas de discussão, redireccionamentos, etc.',
+'statistics-pages-desc' => 'Todas as páginas da wiki, incluindo páginas de discussão, redirecionamentos, etc.',
 'statistics-files' => 'Ficheiros carregados',
 'statistics-edits' => 'Edições de páginas desde que a {{SITENAME}} foi instalada',
 'statistics-edits-average' => 'Média de edições por página',
@@ -2116,7 +2149,7 @@ Talvez queira editar a descrição na [$2 página original de descrição do fic
 'statistics-views-total-desc' => 'Não estão incluídos os visionamentos de páginas inexistentes e páginas especiais',
 'statistics-views-peredit' => 'Visionamentos por edição',
 'statistics-users' => '[[Special:ListUsers|Utilizadores]] registados',
-'statistics-users-active' => 'Utilizadores activos',
+'statistics-users-active' => 'Utilizadores ativos',
 'statistics-users-active-desc' => 'Utilizadores que efectuaram uma operação {{PLURAL:$1|no último dia|nos últimos $1 dias}}',
 'statistics-mostpopular' => 'Páginas mais vistas',
 
@@ -2126,17 +2159,23 @@ Talvez queira editar a descrição na [$2 página original de descrição do fic
 Estes links deviam ser desambiguados, apontando-os para uma página mais apropriada.<br />
 Considera-se que uma página é de desambiguação se nela for utilizada uma predefinição que esteja definida em [[MediaWiki:Disambiguationspage]].",
 
-'doubleredirects' => 'Redireccionamentos duplos',
-'doubleredirectstext' => 'Esta página lista todas as páginas que redireccionam para outras páginas de redireccionamento.
-Cada linha contém links para o primeiro e segundo redireccionamentos, bem como o destino do segundo redireccionamento, geralmente contendo a verdadeira página de destino, que devia ser o destino do primeiro redireccionamento.
+'pageswithprop' => 'Páginas com uma propriedade',
+'pageswithprop-legend' => 'Páginas com uma propriedade',
+'pageswithprop-text' => 'Esta página lista páginas que usam uma propriedade em particular.',
+'pageswithprop-prop' => 'Nome da propriedade:',
+'pageswithprop-submit' => 'Avançar',
+
+'doubleredirects' => 'Redirecionamentos duplos',
+'doubleredirectstext' => 'Esta página lista todas as páginas que redirecionam para outras páginas de redirecionamento.
+Cada linha contém links para o primeiro e segundo redirecionamentos, bem como o destino do segundo redirecionamento, geralmente contendo a verdadeira página de destino, que devia ser o destino do primeiro redirecionamento.
 <del>Entradas cortadas</del> já foram solucionadas.',
 'double-redirect-fixed-move' => '[[$1]] foi movido.
 Agora redirecciona para [[$2]].',
-'double-redirect-fixed-maintenance' => 'A corrigir redireccionamento duplo de [[$1]] para [[$2]].',
-'double-redirect-fixer' => 'Corrector de redireccionamentos',
+'double-redirect-fixed-maintenance' => 'A corrigir redirecionamento duplo de [[$1]] para [[$2]].',
+'double-redirect-fixer' => 'Corretor de redirecionamentos',
 
-'brokenredirects' => 'Redireccionamentos quebrados',
-'brokenredirectstext' => 'Os seguintes redireccionamentos ligam para páginas inexistentes:',
+'brokenredirects' => 'Redirecionamentos quebrados',
+'brokenredirectstext' => 'Os seguintes redirecionamentos ligam para páginas inexistentes:',
 'brokenredirects-edit' => 'editar',
 'brokenredirects-delete' => 'eliminar',
 
@@ -2188,8 +2227,8 @@ Agora redirecciona para [[$2]].',
 'deadendpages' => 'Páginas sem saída',
 'deadendpagestext' => 'As seguintes páginas não contêm links para outras páginas na {{SITENAME}}.',
 'protectedpages' => 'Páginas protegidas',
-'protectedpages-indef' => 'Apenas protecções infinitas',
-'protectedpages-cascade' => 'Apenas protecções em cascata',
+'protectedpages-indef' => 'Apenas proteções indefinidas',
+'protectedpages-cascade' => 'Apenas proteções em cascata',
 'protectedpagestext' => 'As seguintes páginas estão protegidas contra edição ou movimentação',
 'protectedpagesempty' => 'Neste momento, nenhuma das páginas está protegida com estes parâmetros.',
 'protectedtitles' => 'Títulos protegidos',
@@ -2215,7 +2254,7 @@ No entanto, outros sites na internet podem ter links para um ficheiro através d
 'pager-newer-n' => '{{PLURAL:$1|posterior|$1 posteriores}}',
 'pager-older-n' => '{{PLURAL:$1|1 anterior|$1 anteriores}}',
 'suppress' => 'Supervisor',
-'querypage-disabled' => 'Esta página especial está desactivada para não prejudicar o desempenho.',
+'querypage-disabled' => 'Esta página especial está desativada para não prejudicar o desempenho.',
 
 # Book sources
 'booksources' => 'Fontes bibliográficas',
@@ -2233,7 +2272,7 @@ No entanto, outros sites na internet podem ter links para um ficheiro através d
 Pode reduzir a lista escolhendo um tipo de registo, um nome de utilizador ou um título de página. Respeite maiúsculas e minúsculas.',
 'logempty' => 'Não há dados a apresentar.',
 'log-title-wildcard' => 'Procurar títulos iniciados por este texto',
-'showhideselectedlogentries' => 'Mostrar ou ocultar as entradas seleccionadas',
+'showhideselectedlogentries' => 'Mostrar ou ocultar as entradas selecionadas',
 
 # Special:AllPages
 'allpages' => 'Todas as páginas',
@@ -2244,7 +2283,7 @@ Pode reduzir a lista escolhendo um tipo de registo, um nome de utilizador ou um
 'allpagesto' => 'Apresentar páginas até:',
 'allarticles' => 'Todas as páginas',
 'allinnamespace' => 'Todas as páginas (espaço nominal $1)',
-'allnotinnamespace' => 'Todas as páginas (excepto as do espaço nominal $1)',
+'allnotinnamespace' => 'Todas as páginas (exceto as do espaço nominal $1)',
 'allpagesprev' => 'Anterior',
 'allpagesnext' => 'Próximo',
 'allpagessubmit' => 'Ver',
@@ -2291,8 +2330,8 @@ Veja também as [[Special:WantedCategories|categorias desejadas]].',
 'listusers-blocked' => '(bloqueado)',
 
 # Special:ActiveUsers
-'activeusers' => 'Utilizadores activos',
-'activeusers-intro' => 'Esta é uma lista dos utilizadores com qualquer tipo de actividade {{PLURAL:$1|no último dia|nos últimos $1 dias}}.',
+'activeusers' => 'Lista de utilizadores ativos',
+'activeusers-intro' => 'Esta é uma lista dos utilizadores com qualquer tipo de atividade {{PLURAL:$1|no último dia|nos últimos $1 dias}}.',
 'activeusers-count' => '$1 {{PLURAL:$1|ação|ações}} {{PLURAL:$3|no último dia|nos últimos $3 dias}}',
 'activeusers-from' => 'Mostrar utilizadores começando por:',
 'activeusers-hidebots' => 'Esconder robôs',
@@ -2323,12 +2362,13 @@ Encontram-se disponíveis [[{{MediaWiki:Listgrouprights-helppage}}|informações
 'mailnologintext' => 'Precisa de estar [[Special:UserLogin|autenticado]] e possuir um endereço de correio válido nas suas [[Special:Preferences|preferências]], para poder enviar correio electrónico a outros utilizadores.',
 'emailuser' => 'Enviar correio electrónico a este utilizador',
 'emailuser-title-target' => 'Enviar correio eletrónico a {{GENDER:$1|este utilizador|esta utilizadora}}',
+'emailuser-title-notarget' => 'Enviar correio electrónico ao utilizador',
 'emailpage' => 'Enviar correio electrónico ao utilizador',
 'emailpagetext' => 'Pode usar o formulário abaixo para enviar uma mensagem por correio eletrónico para {{GENDER:$1|este utilizador|esta utilizadora}}.
 O endereço de correio que introduziu nas [[Special:Preferences|suas preferências]] irá aparecer no campo do remetente da mensagem "De:", para que o destinatário lhe possa responder diretamente.',
 'usermailererror' => 'O sistema de correio devolveu o erro:',
 'defemailsubject' => 'Correio electrónico da {{SITENAME}}, do utilizador "$1"',
-'usermaildisabled' => 'Correio electrónico do utilizador foi desactivado',
+'usermaildisabled' => 'Correio eletrónico do utilizador foi desativado',
 'usermaildisabledtext' => 'Não pode enviar correio electrónico aos outros utilizadores desta wiki',
 'noemailtitle' => 'Sem endereço de correio electrónico',
 'noemailtext' => 'Este utilizador não especificou um endereço de correio electrónico válido.',
@@ -2363,9 +2403,8 @@ O endereço de correio que introduziu nas [[Special:Preferences|suas preferênci
 'watchnologin' => 'Não está autenticado(a)',
 'watchnologintext' => 'Precisa de [[Special:UserLogin|autenticar-se]] para modificar a sua lista de páginas vigiadas.',
 'addwatch' => 'Adicionar às páginas vigiadas',
-'addedwatchtext' => "A página \"[[:\$1]]\" foi adicionada à sua lista de [[Special:Watchlist|páginas vigiadas]], onde serão indicadas quaisquer
-modificações futuras desta página e da respectiva página de discussão.
-O nome desta página passará a aparecer a '''negrito''' na lista de [[Special:RecentChanges|mudanças recentes]], para que a encontre facilmente.",
+'addedwatchtext' => 'A página "[[:$1]]" foi adicionada à sua [[Special:Watchlist|lista de páginas vigiadas]].
+Modificações futuras desta página e da respetiva página de discussão serão listadas lá.',
 'removewatch' => 'Remover das páginas vigiadas',
 'removedwatchtext' => 'A página "[[:$1]]" foi removida da sua lista de [[Special:Watchlist|páginas vigiadas]].',
 'watch' => 'Vigiar',
@@ -2374,10 +2413,9 @@ O nome desta página passará a aparecer a '''negrito''' na lista de [[Special:R
 'unwatchthispage' => 'Parar de vigiar esta página',
 'notanarticle' => 'Não é uma página de conteúdo',
 'notvisiblerev' => 'Edição eliminada',
-'watchnochange' => 'Nenhuma das páginas vigiadas foi editada no período apresentado.',
 'watchlist-details' => '{{PLURAL:$1|Existe $1 página|Existem $1 páginas}} na sua lista de páginas vigiadas, excluindo páginas de discussão.',
-'wlheader-enotif' => 'A notificação por correio electrónico está activada.',
-'wlheader-showupdated' => "As páginas modificadas desde a última vez que as visitou aparecem destacadas a '''negrito'''",
+'wlheader-enotif' => 'A notificação por correio electrónico está activa.',
+'wlheader-showupdated' => "As páginas modificadas desde a última vez que as visitou aparecem destacadas a '''negrito'''.",
 'watchmethod-recent' => 'a procurar páginas vigiadas nas mudanças recentes',
 'watchmethod-list' => 'a procurar mudanças recentes nas páginas vigiadas',
 'watchlistcontains' => 'A sua lista de páginas vigiadas contém $1 {{PLURAL:$1|página|páginas}}.',
@@ -2394,7 +2432,17 @@ O nome desta página passará a aparecer a '''negrito''' na lista de [[Special:R
 'enotif_mailer' => 'Gerador de Notificações da {{SITENAME}}',
 'enotif_reset' => 'Marcar todas as páginas como visitadas',
 'enotif_impersonal_salutation' => 'Utilizador da "{{SITENAME}}"',
-'enotif_lastvisited' => 'Consulte $1 para todas as alterações efectuadas desde a sua última visita.',
+'enotif_subject_deleted' => 'A página  $1 de {{SITENAME}} foi {{GENDER:$2|eliminada}} por $2',
+'enotif_subject_created' => 'A página $1 de {{SITENAME}} foi {{GENDER:$2|criada}} por $2',
+'enotif_subject_moved' => 'A página $1 de {{SITENAME}} foi {{GENDER:$2|movida}} por $2',
+'enotif_subject_restored' => 'A página $1 de {{SITENAME}} foi {{GENDER:$2|restaurada}} por $2',
+'enotif_subject_changed' => 'A página $1 de {{SITENAME}} foi {{GENDER:$2|alterada}} por $2',
+'enotif_body_intro_deleted' => 'A página $1 de {{SITENAME}} foi {{GENDER:$2|eliminada}} em $PAGEEDITDATE por $2, ver $3.',
+'enotif_body_intro_created' => 'A página $1 em {{SITENAME}} foi {{GENDER:$2| criada}} em $PAGEEDITDATE por $2, ver $3 para a versão actual.',
+'enotif_body_intro_moved' => 'A página $1 em {{SITENAME}} foi {{GENDER:$2|movida}} em $PAGEEDITDATE por $2, ver $3 para a versão actual.',
+'enotif_body_intro_restored' => 'A página $1 em {{SITENAME}} foi {{GENDER:$2|restaurada}} em $PAGEEDITDATE por $2, ver $3 para a versão actual.',
+'enotif_body_intro_changed' => 'A página $1 em {{SITENAME}} foi {{GENDER:$2|alterada}} em $PAGEEDITDATE por $2, ver $3 para a versão actual.',
+'enotif_lastvisited' => 'Consulte $1 para todas as alterações efetuadas desde a sua última visita.',
 'enotif_lastdiff' => 'Consulte $1 para ver esta alteração.',
 'enotif_anon_editor' => 'utilizador anónimo $1',
 'enotif_body' => '{{GENDER:$WATCHINGUSERNAME|Caro|Cara|Caro(a)}},
@@ -2438,7 +2486,7 @@ Para comentários e pedidos de ajuda:
 'delete-legend' => 'Eliminar',
 'historywarning' => "'''Aviso:''' A página que está prestes a eliminar tem um histórico com aproximadamente $1 {{PLURAL:$1|revisão|revisões}}:",
 'confirmdeletetext' => 'Está prestes a eliminar permanentemente uma página ou uma imagem e todo o seu histórico.
-Confirme que é realmente esta a sua intenção, que compreende as consequências e que o faz de acordo com as [[{{MediaWiki:Policy-url}}|políticas e recomendações]] do projecto, por favor.',
+Confirme que é realmente esta a sua intenção, que compreende as consequências e que o faz de acordo com as [[{{MediaWiki:Policy-url}}|políticas e recomendações]] do projeto, por favor.',
 'actioncomplete' => 'Operação executada',
 'actionfailed' => 'Operação falhou',
 'deletedtext' => '"$1" foi eliminada.
@@ -2481,37 +2529,39 @@ A última edição foi de [[User:$3|$3]] ([[User talk:$3|discussão]]{{int:pipe-
 # Edit tokens
 'sessionfailure-title' => 'Erro de sessão',
 'sessionfailure' => 'Foram detectados problemas com a sua sessão;
-a operação foi cancelada como medida de protecção contra a interceptação de sessões.
+a operação foi cancelada como medida de proteção contra a interceptação de sessões.
 Volte à página anterior, refresque-a e tente novamente.',
 
 # Protect
-'protectlogpage' => 'Registo de protecção',
-'protectlogtext' => 'Encontra abaixo o registo de protecção e desprotecção de páginas.
+'protectlogpage' => 'Registo de proteção',
+'protectlogtext' => 'Encontra abaixo o registo de proteção e desproteção de páginas.
 Consulte a [[Special:ProtectedPages|lista de páginas protegidas]] para ver as páginas que se encontram protegidas neste momento.',
 'protectedarticle' => 'protegeu "[[$1]]"',
-'modifiedarticleprotection' => 'alterou o nível de protecção para "[[$1]]"',
+'modifiedarticleprotection' => 'alterou o nível de proteção para "[[$1]]"',
 'unprotectedarticle' => 'desprotegeu "[[$1]]"',
-'movedarticleprotection' => 'moveu as configurações de protecção de "[[$2]]" para "[[$1]]"',
-'protect-title' => 'Alterar o nível de protecção de "$1"',
+'movedarticleprotection' => 'moveu as configurações de proteção de "[[$2]]" para "[[$1]]"',
+'protect-title' => 'Alterar o nível de proteção de "$1"',
 'protect-title-notallowed' => 'Ver o nível de proteção de "$1"',
 'prot_1movedto2' => 'moveu [[$1]] para [[$2]]',
-'protect-badnamespace-title' => 'Espaço nominal não passível de protecção',
+'protect-badnamespace-title' => 'Espaço nominal não passível de proteção',
 'protect-badnamespace-text' => 'Páginas neste espaço nominal não podem ser protegidas.',
-'protect-legend' => 'Confirmar protecção',
+'protect-norestrictiontypes-text' => 'Esta página não pode ser protegida porque não há nenhum tipo de restrição disponível.',
+'protect-norestrictiontypes-title' => 'Página não passível de proteção',
+'protect-legend' => 'Confirmar proteção',
 'protectcomment' => 'Motivo:',
 'protectexpiry' => 'Expiração:',
 'protect_expiry_invalid' => 'O tempo de expiração fornecido é inválido.',
 'protect_expiry_old' => 'O tempo de expiração fornecido situa-se no passado.',
-'protect-unchain-permissions' => 'Desbloquear outras opções de protecção',
-'protect-text' => "Pode ver e alterar aqui o nível de protecção da página '''$1'''.",
-'protect-locked-blocked' => "Não pode alterar níveis de protecção enquanto estiver bloqueado.
+'protect-unchain-permissions' => 'Desbloquear outras opções de proteção',
+'protect-text' => "Pode ver e alterar aqui o nível de proteção da página '''$1'''.",
+'protect-locked-blocked' => "Não pode alterar níveis de proteção enquanto estiver bloqueado.
 Esta é a configuração presente para a página '''$1''':",
-'protect-locked-dblock' => "Não é possível alterar os níveis de protecção, porque a base de dados está bloqueada.
-Esta é a configuração actual para a página '''$1''':",
-'protect-locked-access' => "A sua conta não tem permissões para alterar os níveis de protecção de uma página.
-Esta é a configuração actual da página '''$1''':",
-'protect-cascadeon' => 'Esta página está protegida porque se encontra incluída {{PLURAL:$1|na página listada a seguir, protegida|nas páginas listadas a seguir, protegidas}} com protecção em cascata.
-Pode alterar o nível de protecção desta página, mas isso não afectará a protecção em cascata.',
+'protect-locked-dblock' => "Não é possível alterar os níveis de proteção, porque a base de dados está bloqueada.
+Esta é a configuração atual para a página '''$1''':",
+'protect-locked-access' => "A sua conta não tem permissões para alterar os níveis de proteção de uma página.
+Esta é a configuração atual da página '''$1''':",
+'protect-cascadeon' => 'Esta página está protegida porque se encontra incluída {{PLURAL:$1|na página listada a seguir, protegida|nas páginas listadas a seguir, protegidas}} com proteção em cascata.
+Pode alterar o nível de proteção desta página, mas isso não afetará a proteção em cascata.',
 'protect-default' => 'Permitir todos os utilizadores',
 'protect-fallback' => 'Permitir apenas utilizadores com o privilégio de "$1"',
 'protect-level-autoconfirmed' => 'Permitir apenas utilizadores auto-confirmados',
@@ -2520,19 +2570,19 @@ Pode alterar o nível de protecção desta página, mas isso não afectará a pr
 'protect-expiring' => 'expira a $1 (UTC)',
 'protect-expiring-local' => 'expira a $1',
 'protect-expiry-indefinite' => 'indefinidamente',
-'protect-cascade' => 'Proteja quaisquer páginas que estejam incluídas nesta (protecção em cascata)',
-'protect-cantedit' => 'Não pode alterar o nível de protecção desta página, porque não tem permissão para editá-la.',
+'protect-cascade' => 'Proteja quaisquer páginas que estejam incluídas nesta (proteção em cascata)',
+'protect-cantedit' => 'Não pode alterar o nível de proteção desta página, porque não tem permissão para editá-la.',
 'protect-othertime' => 'Outra duração:',
 'protect-othertime-op' => 'outra duração',
-'protect-existing-expiry' => 'A protecção actual expirará às $3 de $2',
+'protect-existing-expiry' => 'A proteção atual expirará às $3 de $2',
 'protect-otherreason' => 'Outro motivo/motivo adicional:',
 'protect-otherreason-op' => 'Outro motivo',
-'protect-dropdown' => "*Motivos comuns para protecção
+'protect-dropdown' => "*Motivos comuns para proteção
 ** Vandalismo excessivo
 ** ''Spam'' excessivo
 ** Guerra de edições improdutiva
 ** Página muito visitada",
-'protect-edit-reasonlist' => 'Editar motivos de protecção',
+'protect-edit-reasonlist' => 'Editar motivos de proteção',
 'protect-expiry-options' => '1 hora:1 hour,1 dia:1 day,1 semana:1 week,2 semanas:2 weeks,1 mês:1 month,3 meses:3 months,6 meses:6 months,1 ano:1 year,indefinido:infinite',
 'restriction-type' => 'Permissão:',
 'restriction-level' => 'Nível de restrição:',
@@ -2558,14 +2608,14 @@ Pode alterar o nível de protecção desta página, mas isso não afectará a pr
 'viewdeletedpage' => 'Ver páginas eliminadas',
 'undeletepagetext' => '{{PLURAL:$1|A seguinte página foi eliminada|As seguintes páginas foram eliminadas}}, mas ainda {{PLURAL:$1|permanece|permanecem}} em arquivo e podem ser restauradas. O arquivo pode ser limpo periodicamente.',
 'undelete-fieldset-title' => 'Restaurar edições',
-'undeleteextrahelp' => "Para restaurar o histórico de edições completo desta página, desmarque todas as caixas de selecção e clique '''''{{int:undeletebtn}}'''''.
-Para efectuar uma restauração selectiva, marque as caixas correspondentes às edições que pretende restaurar e clique '''''{{int:undeletebtn}}'''''.",
+'undeleteextrahelp' => "Para restaurar o histórico de edições completo desta página, desmarque todas as caixas de seleção e clique '''''{{int:undeletebtn}}'''''.
+Para efetuar uma restauração seletiva, marque as caixas correspondentes às edições que pretende restaurar e clique '''''{{int:undeletebtn}}'''''.",
 'undeleterevisions' => '$1 {{PLURAL:$1|edição disponível|edições disponíveis}}',
 'undeletehistory' => 'Se restaurar uma página, todas as edições serão restauradas para o histórico.
 Se uma nova página foi criada com o mesmo nome desde a eliminação, as edições restauradas aparecerão no histórico anterior.',
-'undeleterevdel' => 'O restauro não será efectuado se resulta na remoção parcial da versão mais recente da página ou ficheiro.
+'undeleterevdel' => 'O restauro não será efetuado se resulta na remoção parcial da versão mais recente da página ou ficheiro.
 Nestes casos, deverá desmarcar ou revelar a versão eliminada mais recente.',
-'undeletehistorynoadmin' => 'Esta página foi eliminada. O motivo de eliminação é apresentado no súmario abaixo, junto dos detalhes do utilizador que editou esta página antes de eliminar. O texto actual destas edições eliminadas encontra-se agora apenas disponível para administradores.',
+'undeletehistorynoadmin' => 'Esta página foi eliminada. O motivo de eliminação é apresentado no sumário abaixo, junto dos detalhes do utilizador que editou esta página antes de eliminar. O texto atual destas edições eliminadas encontra-se agora apenas disponível para administradores.',
 'undelete-revision' => 'Edição eliminada da página $1 (das $5 de $4), por $3:',
 'undeleterevision-missing' => 'Edição inválida ou não encontrada.
 Pode ter usado um link incorrecto ou talvez a revisão tenha sido restaurada ou removida do arquivo.',
@@ -2605,9 +2655,9 @@ $1',
 # Namespace form on various pages
 'namespace' => 'Espaço nominal:',
 'invert' => 'Inverter seleção',
-'tooltip-invert' => 'Marque esta caixa para esconder as alterações a páginas no espaço nominal seleccionado (e no espaço nominal associado, se escolheu fazê-lo)',
+'tooltip-invert' => 'Marque esta caixa para esconder as alterações a páginas no espaço nominal selecionado (e no espaço nominal associado, se escolheu fazê-lo)',
 'namespace_association' => 'Espaço nominal associado',
-'tooltip-namespace_association' => 'Marque esta caixa para incluir também o espaço nominal de conteúdo ou de discussão associado à sua selecção',
+'tooltip-namespace_association' => 'Marque esta caixa para incluir também o espaço nominal de conteúdo ou de discussão associado à sua seleção',
 'blanknamespace' => '(Principal)',
 
 # Contributions
@@ -2616,7 +2666,7 @@ $1',
 'mycontris' => 'Contribuições',
 'contribsub2' => 'Para $1 ($2)',
 'nocontribs' => 'Não foram encontradas alterações com este critério.',
-'uctop' => ' (edição actual)',
+'uctop' => '(atual)',
 'month' => 'Até o mês:',
 'year' => 'Até o ano:',
 
@@ -2644,14 +2694,14 @@ Para referência é apresentado abaixo o último registo de bloqueio:',
 'whatlinkshere-page' => 'Página:',
 'linkshere' => "As seguintes páginas têm links para '''[[:$1]]''':",
 'nolinkshere' => "Não existem afluentes para '''[[:$1]]''' com as condições especificadas.",
-'nolinkshere-ns' => "Não existem links para '''[[:$1]]''' no espaço nominal seleccionado.",
-'isredirect' => 'página de redireccionamento',
+'nolinkshere-ns' => "Não existem links para '''[[:$1]]''' no espaço nominal selecionado.",
+'isredirect' => 'página de redirecionamento',
 'istemplate' => 'inclusão',
 'isimage' => 'link para o ficheiro',
 'whatlinkshere-prev' => '{{PLURAL:$1|anterior|$1 anteriores}}',
 'whatlinkshere-next' => '{{PLURAL:$1|próximo|próximos $1}}',
 'whatlinkshere-links' => '← links',
-'whatlinkshere-hideredirs' => '$1 redireccionamentos',
+'whatlinkshere-hideredirs' => '$1 redirecionamentos',
 'whatlinkshere-hidetrans' => '$1 transclusões',
 'whatlinkshere-hidelinks' => '$1 links',
 'whatlinkshere-hideimages' => '$1 links para ficheiros',
@@ -2697,7 +2747,7 @@ Isto só deve ser feito para prevenir vandalismo e de acordo com a [[{{MediaWiki
 'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] foi {{GENDER:$1|bloqueado|bloqueada}}.<br />
 Consulte a [[Special:BlockList|lista de bloqueios]] para rever os bloqueios.',
 'ipb-blockingself' => 'Está prestes a bloquear-se a si próprio. Tem a certeza de que pretende fazê-lo?',
-'ipb-confirmhideuser' => 'Está prestes a bloquear um utilizador com "Ocultar nome de utilizador/IP" activado. Isto irá suprimir o nome do utilizador de todas as listas e entradas dos registos. Tem a certeza de que pretende fazê-lo?',
+'ipb-confirmhideuser' => 'Está prestes a bloquear um utilizador com "Ocultar nome de utilizador/IP" ativado. Isto irá suprimir o nome do utilizador de todas as listas e entradas dos registros. Tem a certeza de que pretende fazê-lo?',
 'ipb-edit-dropdown' => 'Editar motivos de bloqueio',
 'ipb-unblock-addr' => 'Desbloquear $1',
 'ipb-unblock' => 'Desbloquear um utilizador ou endereço IP',
@@ -2728,7 +2778,7 @@ Consulte a [[Special:BlockList|lista de bloqueios]] para rever os bloqueios.',
 'infiniteblock' => 'infinito',
 'expiringblock' => 'expira em $1 às $2',
 'anononlyblock' => 'apenas anón.',
-'noautoblockblock' => 'bloqueio automático desactivado',
+'noautoblockblock' => 'bloqueio automático desativado',
 'createaccountblock' => 'criação de conta bloqueada',
 'emailblock' => 'correio electrónico bloqueado',
 'blocklist-nousertalk' => 'impedido de editar a própria página de discussão',
@@ -2753,12 +2803,12 @@ Consulte a [[Special:BlockList|lista de bloqueios]] para obter a lista de bloque
 'unblocklogentry' => 'desbloqueou $1',
 'block-log-flags-anononly' => 'apenas utilizadores anónimos',
 'block-log-flags-nocreate' => 'criação de contas impossibilitada',
-'block-log-flags-noautoblock' => 'bloqueio automático desactivado',
+'block-log-flags-noautoblock' => 'bloqueio automático desativado',
 'block-log-flags-noemail' => 'correio electrónico bloqueado',
 'block-log-flags-nousertalk' => 'impossibilitado de editar a própria página de discussão',
-'block-log-flags-angry-autoblock' => 'activado o bloqueio automático melhorado',
+'block-log-flags-angry-autoblock' => 'ativado o bloqueio automático melhorado',
 'block-log-flags-hiddenname' => 'nome de utilizador ocultado',
-'range_block_disabled' => 'A funcionalidade de administrador para o bloqueio de gamas de IPs está desactivada.',
+'range_block_disabled' => 'A funcionalidade de administrador para o bloqueio de gamas de IPs está desativada.',
 'ipb_expiry_invalid' => 'Tempo de expiração inválido.',
 'ipb_expiry_temp' => 'Bloqueios com nome de utilizador ocultado devem ser permanentes.',
 'ipb_hide_invalid' => 'Não foi possível suprimir esta conta; ela poderá ter demasiadas edições.',
@@ -2778,6 +2828,7 @@ Contacte o seu fornecedor de internet ou o serviço de apoio técnico e informe-
 'proxyblocksuccess' => 'Concluído.',
 'sorbsreason' => "O seu endereço IP encontra-se listado como ''proxy'' aberto na DNSBL utilizada pela {{SITENAME}}.",
 'sorbs_create_account_reason' => "O seu endereço IP encontra-se listado como ''proxy'' aberto na DNSBL utilizada pela {{SITENAME}}. Não pode criar uma conta",
+'xffblockreason' => 'Um endereço IP presente no cabeçalho X-Forwarded-For, seja seu ou de um servidor de proxy que estiver a usar, foi bloqueado. A razão do bloqueio original foi: $1',
 'cant-block-while-blocked' => 'Não pode bloquear outros utilizadores enquanto estiver bloqueado.',
 'cant-see-hidden-user' => "O utilizador que está tentando bloquear já está bloqueado e oculto.
 Como não tem o privilégio para ocultar utilizadores ''(hideuser)'', não pode ver ou editar o bloqueio deste utilizador.",
@@ -2809,23 +2860,23 @@ Para bloquear ou desbloquear a base de dados, este precisa de poder ser escrito
 'move-page' => 'Mover $1',
 'move-page-legend' => 'Mover página',
 'movepagetext' => "Usando o formulário abaixo pode mover esta página e todo o seu histórico de edições para uma página nova com outro nome.
-A página original será transformada num redireccionamento para a página nova.
-Pode corrigir de forma automática os redireccionamentos existentes que apontam para a página original.
-Caso escolha não o fazer, após a operação certifique-se de que dela não resultaram  [[Special:DoubleRedirects|redireccionamentos duplos]] ou [[Special:BrokenRedirects|quebrados]].
+A página original será transformada num redirecionamento para a página nova.
+Pode corrigir de forma automática os redirecionamentos existentes que apontam para a página original.
+Caso escolha não o fazer, após a operação certifique-se de que dela não resultaram  [[Special:DoubleRedirects|redirecionamentos duplos]] ou [[Special:BrokenRedirects|quebrados]].
 É da sua responsabilidade verificar que os links continuam a apontar para onde é suposto que apontem.
 
-Note que a página '''não''' será movida se já existir uma página com o novo nome, a menos que esta esteja vazia ou seja um redireccionamento sem qualquer histórico de edições.
+Note que a página '''não''' será movida se já existir uma página com o novo título, a menos que esta última seja um redirecionamento sem qualquer histórico de edições.
 Isto significa que pode mover uma página de volta para o seu nome original se a tiver movido por engano e que não pode mover uma página para cima de outra já existente.
 
 '''CUIDADO!'''
 Numa página popular esta operação pode representar uma mudança drástica e inesperada;
 certifique-se de que compreende as consequências da mudança antes de prosseguir, por favor.",
 'movepagetext-noredirectfixer' => "Usando o formulário abaixo, pode alterar o nome de uma página e mover todo o histórico desta para o nome novo.
-A página antiga é transformada numa página de redireccionamento para a nova.
-Verifique a existência de [[Special:DoubleRedirects|redireccionamentos duplos]] ou [[Special:BrokenRedirects|quebrados]].
+A página antiga é transformada numa página de redirecionamento para a nova.
+Verifique a existência de [[Special:DoubleRedirects|redirecionamentos duplos]] ou [[Special:BrokenRedirects|quebrados]].
 É da sua responsabilidade certificar-se de que os links continuam a apontar para onde é suposto.
 
-Note que a página '''não''' será movida se já existir uma página com o nome novo, a menos que esta página já existente esteja vazia ou seja uma página de redireccionamento e não tenha um histórico de edições.
+Note que a página '''não''' será movida se já existir uma página com o nome novo, a menos que esta página já existente esteja vazia ou seja uma página de redirecionamento e não tenha um histórico de edições.
 Isto também significa que, se se tiver enganado, pode alterar o nome da página movida de volta para o seu nome original; e que não pode sobrescrever o conteúdo de uma página existente.
 
 '''Aviso!'''
@@ -2833,7 +2884,7 @@ Para páginas populares, esta operação pode representar uma mudança drástica
 certifique-se de que compreende as consequências da operação antes de continuar.",
 'movepagetalktext' => "Se existir uma página de discussão associada, ela será automaticamente movida, '''a não ser que:'''
 *já exista uma página de discussão com o novo título que não esteja vazia, ou
-*desmarque a correspondente caixa de selecção abaixo.
+*desmarque a correspondente caixa de seleção abaixo.
 
 Nestes casos, terá de mover a página de discussão manualmente, ou fundi-la com a existente, se assim desejar.",
 'movearticle' => 'Mover página',
@@ -2849,8 +2900,8 @@ Nestes casos, terá de mover a página de discussão manualmente, ou fundi-la co
 'movepagebtn' => 'Mover página',
 'pagemovedsub' => 'Página movida com sucesso',
 'movepage-moved' => '\'\'\'"$1" foi movida para "$2"\'\'\'',
-'movepage-moved-redirect' => 'Foi criado um redireccionamento.',
-'movepage-moved-noredirect' => 'A criação de um redireccionamento foi suprimida.',
+'movepage-moved-redirect' => 'Foi criado um redirecionamento.',
+'movepage-moved-noredirect' => 'A criação de um redirecionamento foi suprimida.',
 'articleexists' => 'Uma página com este nome já existe, ou o nome que escolheu é inválido.
 Escolha outro nome, por favor.',
 'cantmove-titleprotected' => 'Não pode mover uma página para esse destino, porque o novo título foi protegido para evitar a sua criação',
@@ -2888,8 +2939,8 @@ não é possível mover uma página para ela mesma.',
 'nonfile-cannot-move-to-file' => 'Não é possível mover algo que não é um ficheiro para o espaço nominal de ficheiros',
 'imagetypemismatch' => 'A extensão do novo ficheiro não corresponde ao seu tipo',
 'imageinvalidfilename' => 'O nome do ficheiro alvo é inválido',
-'fix-double-redirects' => 'Actualizar todos os redireccionamentos que apontem para o título original',
-'move-leave-redirect' => 'Criar um redireccionamento',
+'fix-double-redirects' => 'Atualizar todos os redirecionamentos que apontem para o título original',
+'move-leave-redirect' => 'Criar um redirecionamento',
 'protectedpagemovewarning' => "'''Aviso:''' Esta página foi protegida de maneira a que apenas utilizadores com privilégio de administrador possam movê-la.
 O último registo é apresentado abaixo para referência:",
 'semiprotectedpagemovewarning' => "'''Nota:''' Esta página protegida de maneira a que apenas utilizadores registados possam movê-la.
@@ -2907,9 +2958,9 @@ Para exportar páginas, introduza os títulos na caixa de texto abaixo (um títu
 
 Se desejar, pode utilizar um link (por exemplo, [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] para a [[{{MediaWiki:Mainpage}}]]).',
 'exportall' => 'Exportar todas as páginas',
-'exportcuronly' => 'Incluir apenas a edição actual, não o histórico completo',
+'exportcuronly' => 'Incluir apenas a edição atual, não o histórico completo',
 'exportnohistory' => "----
-'''Nota:''' a exportação do histórico completo de páginas através deste formulário foi desactivada por afectar o desempenho do sistema.",
+'''Nota:''' a exportação do histórico completo de páginas através deste formulário foi desativada por afetar o desempenho do sistema.",
 'exportlistauthors' => 'Incluir uma lista completa de colaboradores para cada página',
 'export-submit' => 'Exportar',
 'export-addcattext' => 'Adicionar à lista páginas da categoria:',
@@ -2941,12 +2992,14 @@ Se deseja colaborar na localização genérica do MediaWiki, visite [//www.media
 'thumbnail-more' => 'Ampliar',
 'filemissing' => 'Ficheiro não encontrado',
 'thumbnail_error' => 'Erro ao criar miniatura: $1',
+'thumbnail_error_remote' => 'Mensagem de erro de $1 :
+$2',
 'djvu_page_error' => 'página DjVu inacessível',
 'djvu_no_xml' => 'Não foi possível aceder ao XML para o ficheiro DjVU',
 'thumbnail-temp-create' => 'Não foi possível criar o ficheiro temporário da miniatura',
 'thumbnail-dest-create' => 'Não é possível gravar a miniatura no destino',
 'thumbnail_invalid_params' => 'Parâmetros de miniatura inválidos',
-'thumbnail_dest_directory' => 'Não foi possível criar o directório de destino',
+'thumbnail_dest_directory' => 'Não foi possível criar o diretório de destino',
 'thumbnail_image-type' => 'Tipo de imagem não suportado',
 'thumbnail_gd-library' => 'Configuração da biblioteca GD incompleta: função $1 em falta',
 'thumbnail_image-missing' => 'Ficheiro em falta: $1',
@@ -2954,14 +3007,15 @@ Se deseja colaborar na localização genérica do MediaWiki, visite [//www.media
 # Special:Import
 'import' => 'Importar páginas',
 'importinterwiki' => 'Importação transwikis',
-'import-interwiki-text' => 'Seleccione uma wiki e um título de página a importar.
+'import-interwiki-text' => 'Selecione uma wiki e um título de página a importar.
 As datas das edições e os seus editores serão mantidos.
-Todas as acções de importação transwikis são registadas no [[Special:Log/import|Registo de importações]].',
+Todas as ações de importação transwikis são registadas no [[Special:Log/import|Registo de importações]].',
 'import-interwiki-source' => 'Wiki ou página de origem:',
 'import-interwiki-history' => 'Copiar todo o histórico de revisões desta página',
 'import-interwiki-templates' => 'Incluir todas as predefinições',
 'import-interwiki-submit' => 'Importar',
 'import-interwiki-namespace' => 'Espaço nominal de destino:',
+'import-interwiki-rootpage' => 'Raiz da página de destino (opcional):',
 'import-upload-filename' => 'Nome do ficheiro:',
 'import-comment' => 'Comentário:',
 'importtext' => 'Exporte o ficheiro da wiki de origem utilizando a página especial [[Special:Export|exportação de páginas]].
@@ -2977,14 +3031,14 @@ Grave o ficheiro no seu computador e importe-o aqui.',
 'importnotext' => 'Vazio ou sem texto',
 'importsuccess' => 'Importação completa!',
 'importhistoryconflict' => 'Existem conflitos de edições no histórico (talvez esta página já tenha sido importada anteriormente)',
-'importnosources' => 'Não foram definidas fontes de importação transwikis e o carregamento directo de históricos encontra-se desactivado.',
+'importnosources' => 'Não foram definidas fontes de importação transwikis e o carregamento direto de históricos encontra-se desativado.',
 'importnofile' => 'Nenhum ficheiro de importação foi carregado.',
 'importuploaderrorsize' => 'O carregamento do ficheiro importado falhou.
 O ficheiro é maior do que o tamanho máximo permitido.',
 'importuploaderrorpartial' => 'O carregamento do ficheiro importado falhou.
 O ficheiro foi recebido parcialmente.',
 'importuploaderrortemp' => 'O carregamento do ficheiro importado falhou.
-Não há um directório temporário.',
+Não há um diretório temporário.',
 'import-parse-failure' => 'Falha ao importar dados XML',
 'import-noarticle' => 'Sem páginas para importar!',
 'import-nonewrevisions' => 'Todas as revisões já tinham sido importadas anteriormente.',
@@ -2997,7 +3051,10 @@ Não há um directório temporário.',
 'import-error-interwiki' => 'A página "$1" não pode ser importada pois seu nome está reservado para um link externo (interwiki).',
 'import-error-special' => 'A página "$1" não pode ser importada porque ela pertence a um espaço nominal especial que não permite páginas.',
 'import-error-invalid' => 'A página "$1" não pode ser importada porque seu nome é inválido.',
+'import-error-unserialize' => 'Revisão $2 da página "$1" não pode ser desserializada. Foi relatado que a revisão usava o modelo de conteúdo $3 serializado como $4.',
 'import-options-wrong' => '{{PLURAL:$2|Opção errada|Opções erradas}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'A raiz da página dada é um título inválido.',
+'import-rootpage-nosubpage' => 'O domínio "$1" da página de raiz não permite subpáginas.',
 
 # Import log
 'importlogpage' => 'Registo de importações',
@@ -3035,7 +3092,7 @@ Utilize o botão "Antever resultado" antes de gravar, por favor.',
 'tooltip-ca-viewsource' => 'Esta página está protegida; só pode ver o conteúdo.',
 'tooltip-ca-history' => 'Edições anteriores desta página.',
 'tooltip-ca-protect' => 'Proteger esta página',
-'tooltip-ca-unprotect' => 'Alterar a protecção desta página',
+'tooltip-ca-unprotect' => 'Alterar a proteção desta página',
 'tooltip-ca-delete' => 'Apagar esta página',
 'tooltip-ca-undelete' => 'Restaurar edições feitas a esta página antes da eliminação',
 'tooltip-ca-move' => 'Mover esta página',
@@ -3048,7 +3105,7 @@ Utilize o botão "Antever resultado" antes de gravar, por favor.',
 'tooltip-n-mainpage' => 'Visitar a página principal',
 'tooltip-n-mainpage-description' => 'Visitar a página principal',
 'tooltip-n-portal' => 'Sobre o projecto',
-'tooltip-n-currentevents' => 'Informação temática sobre acontecimentos actuais',
+'tooltip-n-currentevents' => 'Informação temática sobre acontecimentos atuais',
 'tooltip-n-recentchanges' => 'A lista de mudanças recentes nesta wiki.',
 'tooltip-n-randompage' => 'Carregar página aleatória',
 'tooltip-n-help' => 'Um local reservado para auxílio.',
@@ -3076,10 +3133,10 @@ Utilize o botão "Antever resultado" antes de gravar, por favor.',
 'tooltip-save' => 'Gravar as alterações',
 'tooltip-preview' => 'Antever as suas alterações. Use antes de gravar, por favor!',
 'tooltip-diff' => 'Mostrar alterações que fez a este texto.',
-'tooltip-compareselectedversions' => 'Ver as diferenças entre as duas versões seleccionadas desta página.',
+'tooltip-compareselectedversions' => 'Ver as diferenças entre as duas versões selecionadas desta página.',
 'tooltip-watch' => 'Adicionar esta página à lista de páginas vigiadas',
 'tooltip-watchlistedit-normal-submit' => 'Remover títulos',
-'tooltip-watchlistedit-raw-submit' => 'Actualizar a lista de vigiados',
+'tooltip-watchlistedit-raw-submit' => 'Atualizar a lista de vigiados',
 'tooltip-recreate' => 'Recriar a página apesar de ter sido eliminada',
 'tooltip-upload' => 'Iniciar o carregamento',
 'tooltip-rollback' => '"{{int:rollbacklink}}" reverte, com um só clique, as edições do último editor desta página.',
@@ -3136,14 +3193,16 @@ Este bloqueio foi provavelmente causado por um link para um site externo que con
 'pageinfo-header-restrictions' => 'Proteção da página',
 'pageinfo-header-properties' => 'Propriedades da página',
 'pageinfo-display-title' => 'Título exibido',
+'pageinfo-default-sort' => 'Chave de classificação padrão',
 'pageinfo-length' => 'Tamanho da página (em bytes)',
 'pageinfo-article-id' => 'ID da página',
 'pageinfo-language' => 'Idioma do conteúdo da página',
-'pageinfo-robot-policy' => 'Status do mecanismo de pesquisa',
+'pageinfo-robot-policy' => 'Estado para mecanismos de pesquisa',
 'pageinfo-robot-index' => 'Indexável',
 'pageinfo-robot-noindex' => 'Não indexável',
 'pageinfo-views' => 'Número de visitas',
 'pageinfo-watchers' => 'Número de vigilantes da página',
+'pageinfo-few-watchers' => 'Menos do que $1 {{PLURAL:$1|vigilante|vigilantes}}',
 'pageinfo-redirects-name' => 'Redirecionamentos para esta página',
 'pageinfo-subpages-name' => 'Subpáginas desta página',
 'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|redirecionamento|redirecionamentos}}; $3 {{PLURAL:$3|não-redirecionamento|não-redirecionamentos}})',
@@ -3157,12 +3216,16 @@ Este bloqueio foi provavelmente causado por um link para um site externo que con
 'pageinfo-recent-authors' => 'Número recente de autores distintos',
 'pageinfo-magic-words' => '{{PLURAL:$1|Palavra mágica|Palavras mágicas}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Categoria oculta|Categorias ocultas}} ($1)',
+'pageinfo-templates' => '{{PLURAL:$1|Predefinição|Predefinições}} transcluídas ($1)',
+'pageinfo-transclusions' => '{{PLURAL:$1|Página|Páginas}} onde é transcluída ($1)',
 'pageinfo-toolboxlink' => 'Informações da página',
 'pageinfo-redirectsto' => 'Redireciona para',
 'pageinfo-redirectsto-info' => 'informação',
 'pageinfo-contentpage' => 'Contada como página de conteúdo',
 'pageinfo-contentpage-yes' => 'Sim',
+'pageinfo-protect-cascading' => 'A protecção é em cascata a partir daqui',
 'pageinfo-protect-cascading-yes' => 'Sim',
+'pageinfo-protect-cascading-from' => 'As proteções são em cascata a partir de',
 'pageinfo-category-info' => 'Informações da categoria',
 'pageinfo-category-pages' => 'Número de páginas',
 'pageinfo-category-subcats' => 'Número de subcategorias',
@@ -3178,12 +3241,14 @@ Este bloqueio foi provavelmente causado por um link para um site externo que con
 'markaspatrolleddiff' => 'Marcar como patrulhada',
 'markaspatrolledtext' => 'Marcar esta página como patrulhada',
 'markedaspatrolled' => 'Marcada como patrulhada',
-'markedaspatrolledtext' => 'A edição seleccionada de [[:$1]] foi marcada como patrulhada.',
-'rcpatroldisabled' => 'Edições patrulhadas nas Mudanças Recentes desactivadas',
-'rcpatroldisabledtext' => 'A funcionalidade de edições patrulhadas nas Mudanças Recentes está actualmente desactivada.',
+'markedaspatrolledtext' => 'A edição selecionada de [[:$1]] foi marcada como patrulhada.',
+'rcpatroldisabled' => 'Edições patrulhadas nas Mudanças Recentes desativadas',
+'rcpatroldisabledtext' => 'A funcionalidade de edições patrulhadas nas Mudanças Recentes está atualmente desativada.',
 'markedaspatrollederror' => 'Não é possível marcar como patrulhada',
 'markedaspatrollederrortext' => 'É necessário especificar uma edição a ser marcada como patrulhada.',
 'markedaspatrollederror-noautopatrol' => 'Não está autorizado a marcar as suas próprias edições como edições patrulhadas.',
+'markedaspatrollednotify' => 'Esta mudança em $1 foi marcada como patrulhada.',
+'markedaspatrollederrornotify' => 'A marcação como patrulhada falhou.',
 
 # Patrol log
 'patrol-log-page' => 'Registo de edições patrulhadas',
@@ -3199,7 +3264,7 @@ $1',
 'filedelete-missing' => 'Não é possível eliminar "$1" já que o ficheiro não existe.',
 'filedelete-old-unregistered' => 'A edição de ficheiro especificada para "$1" não se encontra na base de dados.',
 'filedelete-current-unregistered' => 'O ficheiro "$1" não se encontra na base de dados.',
-'filedelete-archive-read-only' => 'O servidor de internet não é capaz de fazer alterações no directório "$1".',
+'filedelete-archive-read-only' => 'O servidor de internet não é capaz de fazer alterações no diretório "$1".',
 
 # Browsing diffs
 'previousdiff' => '← Edição anterior',
@@ -3247,11 +3312,25 @@ Executá-lo poderá comprometer a segurança do seu sistema.",
 'minutes' => '{{PLURAL:$1|um minuto|$1 minutos}}',
 'hours' => '{{PLURAL:$1|uma hora|$1 horas}}',
 'days' => '{{PLURAL:$1|um dia|$1 dias}}',
+'weeks' => '{{PLURAL:$1|$1 semana|$1 semanas}}',
 'months' => '{{PLURAL:$1|1 mês|$1 meses}}',
 'years' => '{{PLURAL:$1|1 ano|$1 anos}}',
 'ago' => '$1 atrás',
 'just-now' => 'agora mesmo',
 
+# Human-readable timestamps
+'hours-ago' => 'há $1 {{PLURAL:$1|hora|horas}}',
+'minutes-ago' => 'há $1 {{PLURAL:$1|minuto|minutos}}',
+'seconds-ago' => 'há $1 {{PLURAL:$1|segundo|segundos}}',
+'monday-at' => 'Segunda-feira às $1',
+'tuesday-at' => 'Terça-feira às $1',
+'wednesday-at' => 'Quarta-feira às $1',
+'thursday-at' => 'Quinta-feira às $1',
+'friday-at' => 'Sexta-feira às $1',
+'saturday-at' => 'Sábado às $1',
+'sunday-at' => 'Domingo às $1',
+'yesterday-at' => 'Ontem às $1',
+
 # Bad image list
 'bad_image_list' => 'O formato é o seguinte:
 
@@ -3262,7 +3341,7 @@ Quaisquer outros links nessa mesma linha são considerados excepções (ou seja,
 # Metadata
 'metadata' => 'Metadados',
 'metadata-help' => 'Este ficheiro contém informação adicional, provavelmente acrescentada pela câmara digital ou pelo digitalizador usados para criá-lo.
-Caso o ficheiro tenha sido modificado a partir do seu estado original, alguns detalhes poderão não reflectir completamente as mudanças efectuadas.',
+Caso o ficheiro tenha sido modificado a partir do seu estado original, alguns detalhes poderão não refletir completamente as mudanças efetuadas.',
 'metadata-expand' => 'Mostrar detalhes adicionais',
 'metadata-collapse' => 'Esconder detalhes adicionais',
 'metadata-fields' => 'Os campos de metadados de imagens listados nesta mensagem serão incluídos na página de descrição da imagem quando a tabela de metadados estiver recolhida. Por omissão, outros campos estarão ocultos.
@@ -3690,8 +3769,8 @@ insira a URL no seu browser para confirmar que o seu endereço de correio electr
 caso tenha criado a conta recentemente, é recomendado que aguarde alguns minutos até o receber antes de tentar pedir um novo código.',
 'confirmemail_send' => 'Enviar código de confirmação',
 'confirmemail_sent' => 'Correio de confirmação enviado.',
-'confirmemail_oncreate' => 'Foi enviado um código de confirmação para o seu endereço de correio electrónico.
-Este código não é necessário para se autenticar no sistema, mas será necessário para activar qualquer funcionalidade baseada no uso de correio na wiki.',
+'confirmemail_oncreate' => 'Foi enviado um código de confirmação para o seu endereço de correio eletrónico.
+Este 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.
 Verifique se o seu endereço de correio electrónico tem caracteres inválidos.
 
@@ -3704,16 +3783,16 @@ Pode agora [[Special:UserLogin|autenticar-se]] e desfrutar da wiki.',
 'confirmemail_error' => 'Alguma coisa correu mal ao gravar a sua confirmação.',
 'confirmemail_subject' => 'Confirmação de endereço de correio electrónico da {{SITENAME}}',
 'confirmemail_body' => 'Alguém, provavelmente você a partir do endereço IP $1,
-registou uma conta "$2" com este endereço de correio electrónico na {{SITENAME}}.
+registrou uma conta "$2" com este endereço de correio eletrónico na {{SITENAME}}.
 
-Para confirmar que esta conta é realmente sua e activar
-as funcionalidades de correio electrónico na {{SITENAME}},
+Para confirmar que esta conta é realmente sua e ativar
+as funcionalidades de correio eletrónico na {{SITENAME}},
 abra o seguinte link no seu browser:
 
 $3
 
 Se a conta *não* é sua, abra o seguinte link para cancelar
-a confirmação do endereço de correio electrónico:
+a confirmação do endereço de correio eletrónico:
 
 $5
 
@@ -3754,6 +3833,7 @@ Este código de confirmação expira a $4.',
 # Scary transclusion
 'scarytranscludedisabled' => '[Transclusão interwikis foi impossibilitada]',
 'scarytranscludefailed' => '[Não foi possível obter a predefinição a partir de $1]',
+'scarytranscludefailed-httpstatus' => '[Não foi possível obter a predefinição a partir de $1: HTTP $2]',
 'scarytranscludetoolong' => '[URL longa demais]',
 
 # Delete conflict
@@ -3796,7 +3876,7 @@ Confirme que deseja realmente recriar esta página, por favor.",
 # Auto-summaries
 'autosumm-blank' => 'Limpou toda a página',
 'autosumm-replace' => "Página substituída por '$1'",
-'autoredircomment' => 'Redireccionamento para [[$1]]',
+'autoredircomment' => 'Redirecionamento para [[$1]]',
 'autosumm-new' => "Criou nova página com '$1'",
 
 # Live preview
@@ -3817,7 +3897,7 @@ Tente a antevisão normal.',
 'watchlistedit-normal-title' => 'Editar lista de páginas vigiadas',
 'watchlistedit-normal-legend' => 'Remover páginas da lista de páginas vigiadas',
 'watchlistedit-normal-explain' => 'As suas páginas vigiadas são listadas abaixo.
-Para remover uma página, marque a caixa de selecção correspondente e clique o botão "{{int:Watchlistedit-normal-submit}}".
+Para remover uma página, marque a caixa de seleção correspondente e clique o botão "{{int:Watchlistedit-normal-submit}}".
 Também pode [[Special:EditWatchlist/raw|editar a lista de páginas vigiadas em forma de texto]].',
 'watchlistedit-normal-submit' => 'Remover páginas',
 'watchlistedit-normal-done' => '{{PLURAL:$1|Foi removida uma página|Foram removidas $1 páginas}} da sua lista de páginas vigiadas:',
@@ -3830,7 +3910,7 @@ Quando terminar, clique "{{int:Watchlistedit-raw-submit}}".
 Também pode [[Special:EditWatchlist|editar a lista da maneira convencional]].',
 'watchlistedit-raw-titles' => 'Páginas:',
 'watchlistedit-raw-submit' => 'Atualizar a lista de páginas vigiadas',
-'watchlistedit-raw-done' => 'A sua lista de páginas vigiadas foi actualizada.',
+'watchlistedit-raw-done' => 'A sua lista de páginas vigiadas foi atualizada.',
 'watchlistedit-raw-added' => '{{PLURAL:$1|Foi adicionada uma página|Foram adicionadas $1 páginas}}:',
 'watchlistedit-raw-removed' => '{{PLURAL:$1|Foi removida uma página|Foram removidas $1 páginas}}:',
 
@@ -3850,22 +3930,22 @@ Também pode [[Special:EditWatchlist|editar a lista da maneira convencional]].',
 'version' => 'Versão',
 'version-extensions' => 'Extensões instaladas',
 'version-specialpages' => 'Páginas especiais',
-'version-parserhooks' => "''Hooks'' do analisador sintáctico",
+'version-parserhooks' => "''Hooks'' do analisador sintático",
 'version-variables' => 'Variáveis',
 'version-antispam' => 'Prevenção contra spam',
 'version-skins' => 'Temas',
 'version-other' => 'Diversos',
 'version-mediahandlers' => 'Leitura e tratamento de multimédia',
 'version-hooks' => 'Hooks',
-'version-extension-functions' => 'Funções de extensão',
-'version-parser-extensiontags' => 'Extensões do analisador sintáctico',
-'version-parser-function-hooks' => "''Hooks'' das funções do analisador sintáctico",
+'version-parser-extensiontags' => 'Extensões do analisador sintático',
+'version-parser-function-hooks' => "''Hooks'' das funções do analisador sintático",
 'version-hook-name' => 'Nome do hook',
 'version-hook-subscribedby' => 'Subscrito por',
 'version-version' => '(Versão $1)',
 'version-license' => 'Licença',
 'version-poweredby-credits' => "Esta é uma wiki '''[//www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
 'version-poweredby-others' => 'outros',
+'version-credits-summary' => 'Gostaríamos de reconhecer as seguintes pessoas pela sua contribuição para o [[Special:Version|MediaWiki]].',
 'version-license-info' => 'O MediaWiki é software livre; pode redistribuí-lo e/ou modificá-lo nos termos da licença GNU General Public License, tal como publicada pela Free Software Foundation; tanto a versão 2 da Licença, como (por opção sua) qualquer versão posterior.
 
 O MediaWiki é distribuído na esperança de que seja útil, mas SEM QUALQUER GARANTIA; inclusive, sem a garantia implícita da POSSIBILIDADE DE SER COMERCIALIZADO ou de ADEQUAÇÂO PARA QUALQUER FINALIDADE ESPECÍFICA. Consulte a licença GNU General Public License para mais detalhes.
@@ -3878,6 +3958,18 @@ Em conjunto com este programa deve ter recebido [{{SERVER}}{{SCRIPTPATH}}/COPYIN
 'version-entrypoints-header-entrypoint' => 'Ponto de entrada',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
+'redirect' => 'Redirecionar pelo ID do ficheiro, utilizador ou revisão',
+'redirect-legend' => 'Redirecionar para um ficheiro ou página',
+'redirect-summary' => 'Esta página especial redireciona a um ficheiro (dado o nome do ficheiro), a uma página (dado um ID de revisão) ou a uma página de utilizador (dado o ID do utilizador).',
+'redirect-submit' => 'Ir',
+'redirect-lookup' => 'Pesquisa:',
+'redirect-value' => 'Valor:',
+'redirect-user' => 'Identificador do utilizador',
+'redirect-revision' => 'Revisão da página',
+'redirect-file' => 'Nome do ficheiro',
+'redirect-not-exists' => 'Valor não encontrado',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Ficheiros duplicados',
 'fileduplicatesearch-summary' => "Procure ficheiros duplicados tendo por base o seu resumo criptográfico ''(hash value)''.",
@@ -3903,7 +3995,7 @@ Em conjunto com este programa deve ter recebido [{{SERVER}}{{SCRIPTPATH}}/COPYIN
 'specialpages-group-highuse' => 'Páginas muito usadas',
 'specialpages-group-pages' => 'Listas de páginas',
 'specialpages-group-pagetools' => 'Ferramentas de páginas',
-'specialpages-group-wiki' => 'Dados e ferramentas da wiki',
+'specialpages-group-wiki' => 'Dados e ferramentas',
 'specialpages-group-redirects' => 'Pesquisas e aleatoriedade',
 'specialpages-group-spam' => 'Ferramentas anti-spam',
 
@@ -3925,6 +4017,7 @@ Em conjunto com este programa deve ter recebido [{{SERVER}}{{SCRIPTPATH}}/COPYIN
 'tags' => 'Etiquetas de modificação válidas',
 'tag-filter' => 'Filtro de [[Special:Tags|etiquetas]]:',
 'tag-filter-submit' => 'Filtrar',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Etiqueta|Etiquetas}}]]: $2)',
 'tags-title' => 'Etiquetas',
 'tags-intro' => 'Esta página lista as etiquetas com que o software poderá marcar uma edição, e o seu significado.',
 'tags-tag' => 'Nome da etiqueta',
@@ -3952,8 +4045,8 @@ Em conjunto com este programa deve ter recebido [{{SERVER}}{{SCRIPTPATH}}/COPYIN
 'dberr-again' => 'Experimente esperar alguns minutos e atualizar.',
 'dberr-info' => '(Não foi possível contactar o servidor da base de dados: $1)',
 'dberr-usegoogle' => 'Pode tentar pesquisar no Google entretanto.',
-'dberr-outofdate' => 'Note que os seus índices relativos ao nosso conteúdo podem estar desactualizados.',
-'dberr-cachederror' => 'A seguinte página é uma cópia em cache da página pedida e pode não estar actualizada.',
+'dberr-outofdate' => 'Note que os seus índices relativos ao nosso conteúdo podem estar desatualizados.',
+'dberr-cachederror' => 'A seguinte página é uma cópia em cache da página pedida e pode não estar atualizada.',
 
 # HTML forms
 'htmlform-invalid-input' => 'Existem problemas com alguns dos dados introduzidos',
@@ -3966,6 +4059,9 @@ Em conjunto com este programa deve ter recebido [{{SERVER}}{{SCRIPTPATH}}/COPYIN
 'htmlform-submit' => 'Enviar',
 'htmlform-reset' => 'Desfazer alterações',
 'htmlform-selectorother-other' => 'Outros',
+'htmlform-no' => 'Não',
+'htmlform-yes' => 'Sim',
+'htmlform-chosen-placeholder' => 'Seleccione uma opção',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 com suporte de pesquisa de texto completo',
@@ -3974,15 +4070,15 @@ Em conjunto com este programa deve ter recebido [{{SERVER}}{{SCRIPTPATH}}/COPYIN
 # New logging system
 'logentry-delete-delete' => '$1 apagou a página $3',
 'logentry-delete-restore' => '$1 restaurou a página $3',
-'logentry-delete-event' => '$1 alterou a visibilidade {{PLURAL:$5|de uma entrada|das $5 entradas}} em $3: $4',
-'logentry-delete-revision' => '$1 alterou a visibilidade de {{PLURAL:$5|uma revisão|$5 revisões}} em $3: $4',
-'logentry-delete-event-legacy' => '$1 alterou a visibilidade de uma entrada em $3',
-'logentry-delete-revision-legacy' => '$1 alterou a visibilidade de uma revisão em $3',
-'logentry-suppress-delete' => '$1 suprimiu a página $3',
-'logentry-suppress-event' => '$1 alterou secretamente a visibilidade {{PLURAL:$5|de uma entrada|das $5 entradas}} em $3: $4',
-'logentry-suppress-revision' => '$1 secretamente alterou a visibilidade {{PLURAL:$5|de uma revisão|das $5 revisões}} em $3: $4',
-'logentry-suppress-event-legacy' => '$1 secretamente alterou a visibilidade das entradas em $3',
-'logentry-suppress-revision-legacy' => '$1 secretamente alterou a visibilidade das revisões em $3',
+'logentry-delete-event' => '$1 alterou a visibilidade de {{PLURAL:$5|uma entrada|$5 entradas}} em $3: $4',
+'logentry-delete-revision' => '$1 {{GENDER:$2|alterou}} a visibilidade de {{PLURAL:$5|uma revisão|$5 revisões}} em $3: $4',
+'logentry-delete-event-legacy' => '$1 {{GENDER:$2|alterou}} a visibilidade de entradas de registo em $3',
+'logentry-delete-revision-legacy' => '$1 {{GENDER:$2|alterou}} a visibilidade de revisões na página $3',
+'logentry-suppress-delete' => '$1 {{GENDER:$2|suprimiu}} a página $3',
+'logentry-suppress-event' => '$1 {{GENDER:$2|alterou}} secretamente a visibilidade de {{PLURAL:$5|uma entrada|$5 entradas}} em $3: $4',
+'logentry-suppress-revision' => '$1 secretamente alterou a visibilidade de {{PLURAL:$5|uma revisão|$5 revisões}} em $3: $4',
+'logentry-suppress-event-legacy' => '$1 {{GENDER:$2|alterou}} secretamente a visibilidade de entradas de registo em $3',
+'logentry-suppress-revision-legacy' => '$1 {{GENDER:$2|alterou}} secretamente a visibilidade de revisões da página $3',
 'revdelete-content-hid' => 'conteúdo oculto',
 'revdelete-summary-hid' => 'sumário de edição oculto',
 'revdelete-uname-hid' => 'utilizador oculto',
@@ -3992,16 +4088,18 @@ Em conjunto com este programa deve ter recebido [{{SERVER}}{{SCRIPTPATH}}/COPYIN
 'revdelete-restricted' => 'restrições a administradores aplicadas',
 'revdelete-unrestricted' => 'restrições a administradores removidas',
 'logentry-move-move' => '$1 moveu a página $3 para $4',
-'logentry-move-move-noredirect' => '$1 moveu a página $3 para $4 sem deixar um redireccionamento',
-'logentry-move-move_redir' => '$1 moveu a página $3 para $4 através de um redireccionamento',
-'logentry-move-move_redir-noredirect' => '$1 moveu a página $3 para $4 sem um redireccionamento',
-'logentry-patrol-patrol' => '$1 marcou a revisão $4 da página $3 como patrulhada',
-'logentry-patrol-patrol-auto' => '$1 marcou automaticamente a revisão $4 da página $3 como patrulhada',
-'logentry-newusers-newusers' => 'A conta de utilizador $1 foi criada',
+'logentry-move-move-noredirect' => '$1 moveu a página $3 para $4 sem deixar um redirecionamento',
+'logentry-move-move_redir' => '$1 moveu a página $3 para $4 sobre um redirecionamento',
+'logentry-move-move_redir-noredirect' => '$1 moveu a página $3 para $4 sobre um redirecionamento sem deixar um redirecionamento',
+'logentry-patrol-patrol' => '$1 {{GENDER:$2|marcou}} a revisão $4 da página $3 como patrulhada',
+'logentry-patrol-patrol-auto' => '$1 {{GENDER:$2|marcou}} automaticamente a revisão $4 da página $3 como patrulhada',
+'logentry-newusers-newusers' => 'A conta de utilizador $1 foi {{GENDER:$2|criada}}',
 'logentry-newusers-create' => 'A conta de utilizador $1 foi criada',
 'logentry-newusers-create2' => 'A conta de utilizador $3 foi criada por $1',
-'logentry-newusers-autocreate' => 'A conta $1 foi criada automaticamente',
-'logentry-rights-rights' => '$1 modificou os privilégios do utilizador  $3  de  $4  para $5',
+'logentry-newusers-byemail' => 'Conta de utilizador $3 foi {{GENDER:$2|criada}} por $1 e a senha foi enviada por e-mail',
+'logentry-newusers-autocreate' => 'A conta de utilizador $1 foi criada automaticamente',
+'logentry-rights-rights' => '$1 modificou os privilégios do utilizador $3 de $4 para $5',
+'logentry-rights-rights-legacy' => '$1 {{GENDER:$2|mudou}} as permissões de $3',
 'logentry-rights-autopromote' => '$1 foi automaticamente {{GENDER:$2|promovido|promovida}} de $4 a $5',
 'rightsnone' => '(nenhum)',
 
@@ -4057,6 +4155,7 @@ Caso contrário, pode facilmente usar o formulário abaixo. O seu comentário se
 'api-error-ok-but-empty' => 'Erro interno: o servidor não respondeu.',
 'api-error-overwrite' => 'Não é permitido sobrescrever um ficheiro existente.',
 '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-timeout' => 'O servidor não respondeu no prazo esperado.',
 'api-error-unclassified' => 'Ocorreu um erro desconhecido',
 'api-error-unknown-code' => 'Erro desconhecido: "$1"',
@@ -4077,4 +4176,7 @@ Caso contrário, pode facilmente usar o formulário abaixo. O seu comentário se
 'duration-centuries' => '$1 {{PLURAL:$1|século|séculos}}',
 'duration-millennia' => '$1 {{PLURAL:$1|milénio|milénios}}',
 
+# Image rotation
+'rotate-comment' => 'Imagem rodada em $1 {{PLURAL:$1|grau|graus}} no sentido dos ponteiros do relógio',
+
 );
index 9d654ed..4cdf9f4 100644 (file)
@@ -19,6 +19,7 @@
  * @author Crazymadlover
  * @author Daemorris
  * @author Danielsouzat
+ * @author Dianakc
  * @author Dicionarista
  * @author Diego Queiroz
  * @author Eduardo.mps
@@ -46,6 +47,8 @@
  * @author McDutchie
  * @author MetalBrasil
  * @author MisterSanderson
+ * @author Nemo bis
+ * @author OTAVIO1981
  * @author Opraco
  * @author Pedroca cerebral
  * @author Ppena
@@ -329,7 +332,7 @@ $messages = array(
 'tog-extendwatchlist' => 'Expandir a lista de páginas vigiadas para mostrar todas as mudanças, não apenas as mais recentes',
 'tog-usenewrc' => 'Agrupar alterações por páginas nas mudanças recentes e na lista de páginas vigiadas (requer JavaScript)',
 'tog-numberheadings' => 'Auto-numerar cabeçalhos',
-'tog-showtoolbar' => 'Mostrar barra de edição (JavaScript)',
+'tog-showtoolbar' => 'Mostrar barra de ferramentas de edição (requer JavaScript)',
 'tog-editondblclick' => 'Editar páginas quando houver clique duplo (JavaScript)',
 'tog-editsection' => 'Ativar a edição de seções com links [editar]',
 'tog-editsectiononrightclick' => 'Habilitar edição de seção por clique com o botão direito no título da seção (JavaScript)',
@@ -428,6 +431,18 @@ $messages = array(
 'oct' => 'out.',
 'nov' => 'nov.',
 'dec' => 'dez.',
+'january-date' => '$1 de janeiro',
+'february-date' => '$1 de fevereiro',
+'march-date' => '$1 de março',
+'april-date' => '$1 de abril',
+'may-date' => '$1 de maio',
+'june-date' => '$1 de junho',
+'july-date' => '$1 de julho',
+'august-date' => '$1 de agosto',
+'september-date' => '$1 de setembro',
+'october-date' => '$1 de outubro',
+'november-date' => '$1 de novembro',
+'december-date' => '$1 de dezembro',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Categoria|Categorias}}',
@@ -437,9 +452,9 @@ $messages = array(
 'category-empty' => "''No momento esta categoria não possui nenhuma página ou arquivo multimídia.''",
 'hidden-categories' => '{{PLURAL:$1|Categoria oculta|Categorias ocultas}}',
 'hidden-category-category' => 'Categorias ocultas',
-'category-subcat-count' => '{{PLURAL:$2|Esta categoria possui apenas a seguinte subcategoria.|Esta categoria possui {{PLURAL:$1|uma subcategoria|$1 subcategorias}}, de um total de $2.}}',
+'category-subcat-count' => '{{PLURAL:$2|Esta categoria tem apenas a seguinte subcategoria.|Esta categoria tem {{PLURAL:$1|a seguinte subcategoria|as seguintes $1 subcategorias}}, de um total de $2.}}',
 'category-subcat-count-limited' => 'Esta categoria possui {{PLURAL:$1|a seguinte sub-categoria|as $1 sub-categorias a seguir}}.',
-'category-article-count' => '{{PLURAL:$2|Esta categoria possui apenas a seguinte página.|Esta categoria possui {{PLURAL:$1|a seguinte página|as $1 páginas a seguir}}, de um total de $2.}}',
+'category-article-count' => '{{PLURAL:$2|Esta categoria contém apenas a página seguinte.|{{PLURAL:$1|A seguinte página está|As $1 páginas seguintes estão}} nesta categoria, de um total de $2.}}',
 'category-article-count-limited' => 'Esta categoria possui {{PLURAL:$1|a seguinte página|as $1 páginas a seguir}}.',
 'category-file-count' => '{{PLURAL:$2|Esta categoria possui apenas o seguinte arquivo.|Esta categoria possui {{PLURAL:$1|o seguinte arquivo|os $1 arquivos a seguir}}, de um total de $2.}}',
 'category-file-count-limited' => 'Esta categoria possui {{PLURAL:$1|um arquivo|$1 arquivos}}.',
@@ -509,6 +524,7 @@ $messages = array(
 'create-this-page' => 'Iniciar esta página',
 'delete' => 'Eliminar',
 'deletethispage' => 'Eliminar esta página',
+'undeletethispage' => 'Restaure esta página',
 'undelete_short' => 'Restaurar {{PLURAL:$1|uma edição|$1 edições}}',
 'viewdeleted_short' => 'Ver {{PLURAL:$1|uma edição eliminada|$1 edições eliminadas}}',
 'protect' => 'Proteger',
@@ -549,7 +565,7 @@ Aguarde um instante antes de tentar acessar esta página novamente.
 
 $1',
 'pool-timeout' => 'Tempo limite de espera para o bloqueio excedido',
-'pool-queuefull' => 'A pool queue está cheia',
+'pool-queuefull' => 'A fila de processos está cheia',
 'pool-errorunknown' => 'Erro desconhecido',
 
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
@@ -562,7 +578,6 @@ $1',
 'disclaimers' => 'Exoneração de responsabilidade',
 'disclaimerpage' => 'Project:Aviso_geral',
 'edithelp' => 'Ajuda de edição',
-'edithelppage' => 'Help:Editar',
 'helppage' => 'Help:Conteúdos',
 'mainpage' => 'Página principal',
 'mainpage-description' => 'Página principal',
@@ -713,6 +728,8 @@ $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.',
+'mycustomcssprotected' => 'Você não tem permissão para editar esta página CSS',
+'mycustomjsprotected' => 'Você não tem permissão para editar esta página JavaScript',
 'ns-specialprotected' => 'Não é possível editar páginas especiais',
 'titleprotected' => "Este título foi protegido, para que não seja criado.
 Quem o protegeu foi [[User:$1|$1]], com a justificativa: ''$2''.",
@@ -749,7 +766,7 @@ Não se esqueça de personalizar as suas [[Special:Preferences|preferências no
 'createacct-yourpasswordagain-ph' => 'Digite a senha novamente',
 'remembermypassword' => 'Lembrar meu login neste navegador (por no máximo $1 {{PLURAL:$1|dia|dias}})',
 'userlogin-remembermypassword' => 'Mantenha-me conectado',
-'userlogin-signwithsecure' => 'Entrar com um servidor seguro',
+'userlogin-signwithsecure' => 'Use a conexão segura',
 'securelogin-stick-https' => 'Permanecer conectado ao HTTPS após a autenticação',
 'yourdomainname' => 'Seu domínio:',
 'password-change-forbidden' => 'Você não pode alterar senhas nessa wiki.',
@@ -763,13 +780,14 @@ Não se esqueça de personalizar as suas [[Special:Preferences|preferências no
 'userlogout' => 'Sair',
 'notloggedin' => 'Não autenticado',
 'userlogin-noaccount' => 'Não possui uma conta?',
-'userlogin-joinproject' => 'Sobre {{SITENAME}}',
+'userlogin-joinproject' => 'Junte-se ao projeto {{SITENAME}}',
 'nologin' => 'Não possui uma conta? $1.',
 'nologinlink' => 'Criar uma conta',
 'createaccount' => 'Criar conta',
 'gotaccount' => "Já possui uma conta? '''$1'''.",
 'gotaccountlink' => 'Autenticar-se',
 'userlogin-resetlink' => 'Esqueceu-se do seu nome de usuário ou da senha?',
+'userlogin-resetpassword-link' => 'Troque sua senha',
 'helplogin-url' => 'Help:Iniciar sessão',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Ajuda para iniciar sessão]]',
 'createacct-join' => 'Insira suas informações abaixo.',
@@ -787,7 +805,7 @@ Não se esqueça de personalizar as suas [[Special:Preferences|preferências no
 'createacct-benefit-heading' => '{{SITENAME}} é feita por pessoas como você.',
 'createacct-benefit-body1' => '{{PLURAL:$1|edição|edições}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|página|páginas}}',
-'createacct-benefit-body3' => 'contribuidores recentes',
+'createacct-benefit-body3' => '{{PLURAL:$1|contribuidor|contribuidores}} recentes',
 'badretype' => 'As senhas que você digitou não são iguais.',
 'userexists' => 'O nome de usuário fornecido já está em uso.
 Escolha um nome diferente.',
@@ -842,7 +860,7 @@ Como resultado, visitantes que usam este endereço IP não podem criar mais nenh
 'cannotchangeemail' => 'A conta de e-mail não pode ser alterada neste wiki.',
 'emaildisabled' => 'Este site não tem como enviar e-mails.',
 'accountcreated' => 'Conta criada',
-'accountcreatedtext' => 'A conta de usuário para $1 foi criada.',
+'accountcreatedtext' => 'A conta de usuário para [[{{ns:User}}:$1|$1]] ([[{{ns:Usuário Discussão}}:$1|Discussão]]) foi criada.',
 'createaccount-title' => 'Criação de conta em {{SITENAME}}',
 'createaccount-text' => 'Alguém criou uma conta de nome $2 para o seu endereço de email no wiki {{SITENAME}} ($4), tendo como senha "$3".
 Você deve se autenticar e alterar sua senha.
@@ -881,11 +899,11 @@ Você pode já ter alterado com sucesso a sua senha, ou solicitado uma nova senh
 
 # Special:PasswordReset
 'passwordreset' => 'Redefinir senha',
-'passwordreset-text' => 'Preencha este formulário para recuperar os dados da sua conta pelo e-mail.',
+'passwordreset-text-one' => 'Complete este formulário para trocar sua senha.',
+'passwordreset-text-many' => '{{PLURAL:$1|Preencha um dos campos para trocar sua senha.}}',
 'passwordreset-legend' => 'Reiniciar a senha',
 'passwordreset-disabled' => 'Redefinições de senha foram desabilitadas nesta wiki.',
 'passwordreset-emaildisabled' => 'Os recursos de e-mail foram desativados nesta wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Introduza um dos dados abaixo}}',
 'passwordreset-username' => 'Nome de usuário:',
 'passwordreset-domain' => 'Domínio:',
 'passwordreset-capture' => 'Ver o e-mail resultante?',
@@ -1023,7 +1041,7 @@ ou <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}
 'missing-revision' => 'A revisão #$1 da página denominada "{{PAGENAME}}" não existe.
 
 Isto é geralmente causado por seguir um link de histórico desatualizado para uma página que foi eliminada.
-Os detalhes podem ser encontrados no [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registo de eliminação].',
+Os detalhes podem ser encontrados no [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registro de eliminação].',
 'userpage-userdoesnotexist' => 'A conta "<nowiki>$1</nowiki>" não se encontra registrada.
 Verifique se deseja mesmo criar/editar esta página.',
 'userpage-userdoesnotexist-view' => 'A conta de usuário "$1" não está registrada.',
@@ -1110,7 +1128,7 @@ Volte à tela anterior e edite uma página já existente, ou [[Special:UserLogin
 'nocreate-loggedin' => 'Você não possui permissão para criar novas páginas.',
 'sectioneditnotsupported-title' => 'Edição por seções não suportada',
 'sectioneditnotsupported-text' => 'Edição por seções não suportada nesta página.',
-'permissionserrors' => 'Erros de permissões',
+'permissionserrors' => 'Erro de permissão',
 'permissionserrorstext' => 'Você não possui permissão de fazer isso, {{PLURAL:$1|pelo seguinte motivo|pelos seguintes motivos}}:',
 'permissionserrorstext-withaction' => 'Você não possui permissão para $2, {{PLURAL:$1|pelo seguinte motivo|pelos motivos a seguir}}:',
 'recreate-moveddeleted-warn' => "'''Atenção: Você está recriando uma página já eliminada em outra ocasião.'''
@@ -1126,6 +1144,7 @@ Ele não deu nenhuma explicação.",
 Ela parece ter sido eliminada.',
 'edit-conflict' => 'Conflito de edição.',
 'edit-no-change' => 'A sua edição foi ignorada, uma vez que o texto não sofreu alterações.',
+'postedit-confirmation' => 'Sua edição foi salva',
 'edit-already-exists' => 'Não foi possível criar uma nova página.
 Ela já existia.',
 'defaultmessagetext' => 'Texto da mensagem padrão',
@@ -1133,7 +1152,7 @@ Ela já existia.',
 'invalid-content-data' => 'Dados de conteúdo inválidos',
 'content-not-allowed-here' => 'Conteúdo do tipo "$1" não é permitido na página [[$2]]',
 'editwarning-warning' => 'Abandonar esta página pode fazer com que você perca todas as alterações que fez.
-Se você estiver autenticado, você pode desabilitar este aviso na seção "{{int:prefs-editing}}" de suas preferências.',
+Se você estiver autenticado, você pode desabilitar este aviso na seção "Edição" de suas preferências.',
 
 # Content models
 'content-model-wikitext' => 'wikitexto',
@@ -1168,6 +1187,7 @@ Estes argumentos foram omitidos.',
 'undo-failure' => 'A edição não pôde ser desfeita devido a alterações intermediárias conflitantes.',
 'undo-norev' => 'A edição não pôde ser desfeita porque não existe ou foi apagada.',
 'undo-summary' => 'Desfeita a edição $1 de [[Special:Contributions/$2|$2]] ([[User talk:$2|Discussão]])',
+'undo-summary-username-hidden' => 'Desfazer a revisão $1 de um usuário oculto',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Não é possível criar uma conta',
@@ -1194,8 +1214,8 @@ A justificativa apresentada por $3 foi ''$2''",
 Legenda: '''({{int:cur}})''' = diferenças em relação a última versão, '''({{int:last}})''' = diferenças em relação a versão anterior, '''{{int:minoreditletter}}''' = edição menor.",
 'history-fieldset-title' => 'Navegar pelo histórico',
 'history-show-deleted' => 'Apenas as eliminadas',
-'histfirst' => 'Mais antigas',
-'histlast' => 'Mais recentes',
+'histfirst' => 'Mais velhas',
+'histlast' => 'Mais novas',
 'historysize' => '({{PLURAL:$1|1 byte|$1 bytes}})',
 'historyempty' => '(vazio)',
 
@@ -1351,7 +1371,7 @@ Certifique-se de que tal alteração manterá a continuidade das ações.',
 'difference-missing-revision' => '{{PLURAL:$2|Uma revisão|$2 revisões}} desta diferença ($1) não {{PLURAL:$2|foi encontrada|foram encontradas}}.
 
 Isto é geralmente causado por seguir um link de histórico desatualizado para uma página que foi eliminada.
-Os detalhes podem ser encontrados no [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registo de eliminação].',
+Os detalhes podem ser encontrados no [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registro de eliminação].',
 
 # Search results
 'searchresults' => 'Resultados da pesquisa',
@@ -1373,7 +1393,6 @@ Os detalhes podem ser encontrados no [{{fullurl:{{#Special:Log}}/delete|page={{F
 'searchmenu-legend' => 'Opções de pesquisa',
 'searchmenu-exists' => "'''Há uma página com o nome \"[[:\$1]]\" nesta wiki'''",
 'searchmenu-new' => "'''Criar a página \"[[:\$1|\$1]]\" nesta wiki!'''",
-'searchhelp-url' => 'Help:Conteúdos',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Navegue pelas páginas com este prefixo]]',
 'searchprofile-articles' => 'Páginas de conteúdo',
 'searchprofile-project' => 'Ajuda e páginas de projeto',
@@ -1451,7 +1470,6 @@ Note que os índices do sistema de busca externo poderão conter referências de
 'resetprefs' => 'Eliminar as alterações não-salvas',
 'restoreprefs' => 'Restaurar todas as configurações padrão',
 'prefs-editing' => 'Opções de edição',
-'prefs-edit-boxsize' => 'Tamanho da janela de edição.',
 'rows' => 'Linhas:',
 'columns' => 'Colunas:',
 'searchresultshead' => 'Pesquisar',
@@ -1462,9 +1480,6 @@ Note que os índices do sistema de busca externo poderão conter referências de
 'recentchangesdays-max' => '(máximo: $1 {{PLURAL:$1|dia|dias}})',
 'recentchangescount' => 'Número de edições a serem exibidas por padrão:',
 'prefs-help-recentchangescount' => 'Isto inclui mudanças recentes, histórico de páginas e registros.',
-'prefs-help-watchlist-token' => "O preenchimento deste campo com uma senha secreta irá gerar um ''feed'' RSS para a sua lista de páginas vigiadas.
-Qualquer um que conheça a senha deste campo será capaz de ler sua lista de páginas vigiadas, então escolha um valor seguro.
-Eis um valor gerado aleatoriamente que você pode usar: $1",
 'savedprefs' => 'As suas preferências foram salvas.',
 'timezonelegend' => 'Fuso horário:',
 'localtime' => 'Horário local:',
@@ -1495,7 +1510,6 @@ Eis um valor gerado aleatoriamente que você pode usar: $1",
 'prefs-reset-intro' => 'Você pode usar esta página para restaurar as suas preferências para os valores predefinidos do sítio.
 Esta ação não pode ser desfeita.',
 'prefs-emailconfirm-label' => 'Confirmação do e-mail:',
-'prefs-textboxsize' => 'Tamanho da janela de edição',
 'youremail' => 'Seu e-mail:',
 'username' => 'Nome de {{GENDER:$1|usuário|usuária}}:',
 'uid' => 'ID de {{GENDER:$1|usuário|usuária}}:',
@@ -1526,7 +1540,8 @@ Caso decida fornecê-lo, este será utilizado para dar-lhe crédito pelo seu tra
 'prefs-signature' => 'Assinatura',
 'prefs-dateformat' => 'Formato de data',
 'prefs-timeoffset' => 'Desvio horário',
-'prefs-advancedediting' => 'Opções avançadas',
+'prefs-advancedediting' => 'Gerais',
+'prefs-preview' => 'Pré-visualizar',
 'prefs-advancedrc' => 'Opções avançadas',
 'prefs-advancedrendering' => 'Opções avançadas',
 'prefs-advancedsearchoptions' => 'Opções avançadas',
@@ -1605,7 +1620,7 @@ Caso decida fornecê-lo, este será utilizado para dar-lhe crédito pelo seu tra
 'right-reupload-shared' => 'Sobrescrever localmente arquivos no repositório partilhado de mídias',
 'right-upload_by_url' => 'Enviar um arquivo por um URL',
 'right-purge' => 'Carregar a cache de uma página no site sem página de confirmação',
-'right-autoconfirmed' => 'Editar páginas semi-protegidas',
+'right-autoconfirmed' => 'Não ser afetado pelos limites de frequência baseados no número de IP',
 'right-bot' => 'Ser tratado como um processo automatizado',
 'right-nominornewtalk' => 'Não ter o aviso de novas mensagens despoletado quando são feitas edições menores a páginas de discussão',
 'right-apihighlimits' => 'Usar limites superiores em consultas (queries) via API',
@@ -1626,12 +1641,14 @@ Caso decida fornecê-lo, este será utilizado para dar-lhe crédito pelo seu tra
 'right-ipblock-exempt' => 'Contornar bloqueios de IP, automáticos e de intervalo',
 'right-proxyunbannable' => 'Contornar bloqueios automáticos de proxies',
 'right-unblockself' => 'Desbloquearem-se a si próprios',
-'right-protect' => 'Mudar níveis de proteção e editar páginas protegidas',
+'right-protect' => 'Mudar níveis de proteção e editar páginas protegidas em cascata',
 'right-editprotected' => 'Editar páginas protegidas (sem proteção em cascata)',
 'right-editinterface' => 'Editar a interface de usuário',
 'right-editusercssjs' => 'Editar os arquivos CSS e JS de outros usuários',
 'right-editusercss' => 'Editar os arquivos CSS de outros usuários',
 'right-edituserjs' => 'Editar os arquivos JS de outros usuários',
+'right-editmyusercss' => 'Edite seu próprio arquivo CSS de usuário',
+'right-editmyuserjs' => 'Edite seu próprio arquivo JavaScript de usuário',
 'right-rollback' => 'Reverter rapidamente o último usuário que editou uma página em particular',
 'right-markbotedits' => 'Marcar edições revertidas como edições de bot',
 'right-noratelimit' => 'Não afetado pelos limites de velocidade de operação',
@@ -1735,7 +1752,6 @@ Caso decida fornecê-lo, este será utilizado para dar-lhe crédito pelo seu tra
 'recentchangeslinked-feed' => 'Alterações relacionadas',
 'recentchangeslinked-toolbox' => 'Alterações relacionadas',
 'recentchangeslinked-title' => 'Alterações relacionadas com "$1"',
-'recentchangeslinked-noresult' => 'Nenhuma mudança nas páginas relacionadas durante o período.',
 'recentchangeslinked-summary' => "Esta página lista alterações feitas recentemente em páginas com links a uma em específico (ou de membros de uma categoria especificada).
 Páginas de sua [[Special:Watchlist|lista de páginas vigiadas]] são exibidas em '''negrito'''.",
 'recentchangeslinked-page' => 'Nome da página:',
@@ -2265,7 +2281,7 @@ Você pode diminuir a lista escolhendo um tipo de registro, um nome de usuário
 'allpagesto' => 'Última página na listagem:',
 'allarticles' => 'Todas as páginas',
 'allinnamespace' => 'Todas as páginas (espaço nominal $1)',
-'allnotinnamespace' => 'Todas as páginas (excepto as do espaço nominal $1)',
+'allnotinnamespace' => 'Todas as páginas (exceto as do espaço nominal $1)',
 'allpagesprev' => 'Anterior',
 'allpagesnext' => 'Próximo',
 'allpagessubmit' => 'Ver',
@@ -2394,10 +2410,9 @@ Futuras modificações em tal página e páginas de discussão relacionadas ser
 'unwatchthispage' => 'Parar de vigiar esta página',
 'notanarticle' => 'Não é uma página de conteúdo',
 'notvisiblerev' => 'Edição eliminada',
-'watchnochange' => 'Nenhuma das páginas vigiadas foi editada no período exibido.',
 'watchlist-details' => '{{PLURAL:$1|$1 página|$1 páginas}} na sua lista de páginas vigiadas, excluindo páginas de discussão.',
 'wlheader-enotif' => 'A notificação por email encontra-se ativada.',
-'wlheader-showupdated' => "As páginas modificadas desde a sua última visita são mostradas em '''negrito'''",
+'wlheader-showupdated' => "Páginas modificadas desde a sua última visita são mostradas em '''negrito'''",
 'watchmethod-recent' => 'verificando edições recentes para as páginas vigiadas',
 'watchmethod-list' => 'verificando páginas vigiadas para edições recentes',
 'watchlistcontains' => 'Sua lista de páginas vigiadas contém $1 {{PLURAL:$1|página|páginas}}.',
@@ -2968,6 +2983,7 @@ Acesse [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] e [//trans
 'thumbnail-more' => 'Ampliar',
 'filemissing' => 'arquivo não encontrado',
 'thumbnail_error' => 'Erro ao criar miniatura: $1',
+'thumbnail_error_remote' => 'Mensagem de erro para $1, $2',
 'djvu_page_error' => 'página DjVu inacessível',
 'djvu_no_xml' => 'Não foi possível acessar o XML do arquivo DjVU',
 'thumbnail-temp-create' => 'Não foi possível criar o arquivo temporário de miniatura',
@@ -3164,7 +3180,7 @@ Tal bloqueio foi provavelmente causado por uma ligação para um ''website'' ext
 'pageinfo-length' => 'Tamanho da página (em bytes)',
 'pageinfo-article-id' => 'ID da página',
 'pageinfo-language' => 'Idioma do conteúdo da página',
-'pageinfo-robot-policy' => 'Status do mecanismo de pesquisa',
+'pageinfo-robot-policy' => 'Estado para mecanismos de pesquisa',
 'pageinfo-robot-index' => 'Indexável',
 'pageinfo-robot-noindex' => 'Não indexável',
 'pageinfo-views' => 'Número de visitas',
@@ -3900,7 +3916,6 @@ Você também pode [[Special:EditWatchlist|editar a lista da maneira convenciona
 'version-other' => 'Diversos',
 'version-mediahandlers' => 'Executores de média',
 'version-hooks' => 'Hooks',
-'version-extension-functions' => 'Funções de extensão',
 'version-parser-extensiontags' => 'Etiquetas de extensões de tipo "parser"',
 'version-parser-function-hooks' => 'Funções "hooks" de "parser"',
 'version-hook-name' => 'Nome do hook',
@@ -3981,6 +3996,7 @@ Em conjunto com este programa deve ter recebido [{{SERVER}}{{SCRIPTPATH}}/COPYIN
 'tags' => 'Etiquetas de modificação válidas',
 'tag-filter' => 'Filtrar [[Special:Tags|etiquetas]]:',
 'tag-filter-submit' => 'Filtrar',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Etiqueta|Etiquetas}}]]: $2)',
 'tags-title' => 'Etiquetas',
 'tags-intro' => 'Esta página lista as etiquetas com que o software poderá marcar uma edição, e o seu significado.',
 'tags-tag' => 'Nome da etiqueta',
@@ -4035,12 +4051,12 @@ Em conjunto com este programa deve ter recebido [{{SERVER}}{{SCRIPTPATH}}/COPYIN
 'logentry-delete-restore' => '$1 restaurou a página $3',
 'logentry-delete-event' => '$1 alterou a visibilidade {{PLURAL:$5|de uma entrada|de $5 entradas}} do registro $3: $4',
 'logentry-delete-revision' => '$1 alterou a visibilidade de {{PLURAL:$5|uma revisão|$5 revisões}} na página $3: $4',
-'logentry-delete-event-legacy' => '$1 alterou a visibilidade de eventos de log em $3',
+'logentry-delete-event-legacy' => '$1 alterou a visibilidade do registro de eventos em $3',
 'logentry-delete-revision-legacy' => '$1 alterou a visibilidade de revisões na página $3',
-'logentry-suppress-delete' => '$1 suprimiu a página $3',
+'logentry-suppress-delete' => '$1 supervisionou a página $3',
 'logentry-suppress-event' => '$1 alterou secretamente a visibilidade {{PLURAL:$5|de uma entrada|das $5 entradas}} em $3: $4',
 'logentry-suppress-revision' => '$1 alterou secretamente a visibilidade {{PLURAL:$5|de uma revisão|das $5 revisões}} em $3: $4',
-'logentry-suppress-event-legacy' => '$1 alterou secretamente a visibilidade das entradas em $3',
+'logentry-suppress-event-legacy' => '$1 alterou secretamente a visibilidade do registro de eventos em $3',
 'logentry-suppress-revision-legacy' => '$1 alterou secretamente a visibilidade de revisões na página $3',
 'revdelete-content-hid' => 'conteúdo oculto',
 'revdelete-summary-hid' => 'sumário de edição oculto',
index e789898..a01944e 100644 (file)
@@ -8,6 +8,7 @@
  * @file
  *
  * @author *Surak*
+ * @author 127.0.0.1
  * @author Abanima
  * @author Ahonc
  * @author Aleator
@@ -66,6 +67,7 @@
  * @author Leinad
  * @author Lejonel
  * @author Li-sung
+ * @author Liangent
  * @author Lloffiwr
  * @author MF-Warburg
  * @author Malafaya
@@ -84,6 +86,7 @@
  * @author Mpradeep
  * @author Murma174
  * @author Najami
+ * @author Naudefj
  * @author Nemo bis
  * @author Niels
  * @author Nike
  * @author SPQRobin
  * @author Sanbec
  * @author Sborsody
+ * @author Se4598
  * @author Seb35
  * @author Sherbrooke
  * @author Shirayuki
@@ -416,13 +420,17 @@ This can also appear in the credits page if the credits feature is enabled,for e
 # Cologne Blue skin
 'qbfind' => 'Alternative for "search" as used in Cologne Blue skin.
 {{Identical|Find}}',
-'qbbrowse' => '{{Identical|Browse}}',
-'qbedit' => '{{Identical|Edit}}',
+'qbbrowse' => 'Heading in sidebar menu in CologneBlue skin as seen in http://i.imgur.com/I08Y3jW.png
+{{Identical|Browse}}',
+'qbedit' => 'Heading in sidebar menu in CologneBlue skin as seen in http://i.imgur.com/I08Y3jW.png
+{{Identical|Edit}}',
+'qbpageoptions' => 'Heading in sidebar menu in CologneBlue skin as seen in http://i.imgur.com/I08Y3jW.png
+{{Identical|This page}}',
 'qbmyoptions' => 'Heading in the Cologne Blue skin user menu containing links to user (talk) page, preferences, watchlist, etc.
 {{Identical|My pages}}',
 'qbspecialpages' => '{{Identical|Special page}}',
 'faq' => "FAQ is short for ''frequently asked questions''.",
-'faqpage' => "FAQ is short for ''frequently asked questions''. This page is only linked on some of the old skins, not in Monobook or Modern.
+'faqpage' => "FAQ is short for ''frequently asked questions''. This page is only linked in CologneBlue (an old skin), not in Monobook or Vector.
 
 {{doc-important|Do not translate <tt>Project:</tt> part.}}",
 
@@ -440,8 +448,7 @@ This can also appear in the credits page if the credits feature is enabled,for e
 'vector-action-undelete' => 'Tab at top of page, in vector skin.
 {{Identical|Undelete}}',
 'vector-action-unprotect' => 'Tab at top of page, in vector skin.
-
-{{Identical|Unprotect}}',
+{{Identical|Change protection}}',
 'vector-simplesearch-preference' => 'Preference for enhanced search suggestion in the Vector skin.',
 'vector-view-create' => 'Tab label in the Vector skin. See for example {{canonicalurl:Foo|useskin=vector}}
 {{Identical|Create}}',
@@ -449,7 +456,8 @@ This can also appear in the credits page if the credits feature is enabled,for e
 {{Identical|Edit}}',
 'vector-view-history' => 'Tab label in the Vector skin. See for example {{canonicalurl:Main_Page|useskin=vector}}
 {{Identical|View history}}',
-'vector-view-view' => 'Tab label in the Vector skin (verb). See for example {{canonicalurl:Main_Page|useskin=vector}}',
+'vector-view-view' => 'Tab label in the Vector skin (verb). See for example {{canonicalurl:Main_Page|useskin=vector}}.
+{{Identical|Read}}',
 'vector-view-viewsource' => 'Tab label in the Vector skin.
 {{Identical|View source}}',
 'actions' => '{{Identical|Action}}',
@@ -534,6 +542,7 @@ See also:
 {{Identical|Delete}}',
 'deletethispage' => 'In the Cologne Blue skin this is the text for link to delete the page in admin view, at the bottom of the page.
 {{Identical|Delete this page}}',
+'undeletethispage' => 'In the Cologne Blue skin this is the text for link to undelete the page in admin view, at the bottom of the page.',
 'undelete_short' => "It is tab label. It's really can be named ''nstab-undelete''.",
 'viewdeleted_short' => 'Tab label for the undelete button when the user has permission to view the deleted history but not undelete.',
 'protect' => 'Name of protect tab displayed for admins. Should be in the infinitive mood.
@@ -553,7 +562,7 @@ See also:
 * {{msg-mw|Unprotect}}
 * {{msg-mw|Accesskey-ca-unprotect}}
 * {{msg-mw|Tooltip-ca-unprotect}}
-{{Identical|Unprotect}}',
+{{Identical|Change protection}}',
 'unprotectthispage' => 'In this Cologne Blue skin this is the anchor text for the link to unprotect the page in admin view, at the bottom of the page.
 {{Identical|Unprotect this page}}',
 'newpage' => '{{Identical|New page}}',
@@ -608,7 +617,8 @@ See also:
 'protectedpage' => "This message is displayed when trying to edit a page you can't edit because it has been protected.
 
 This message is the title for the message {{msg-mw|protectedpagetext}}.",
-'jumpto' => '"Jump to" navigation links. Hidden by default in monobook skin. The format is: {{int:jumpto}} [[MediaWiki:Jumptonavigation/{{SUBPAGENAME}}|{{int:jumptonavigation}}]], [[MediaWiki:Jumptosearch/{{SUBPAGENAME}}|{{int:jumptosearch}}]].',
+'jumpto' => '"Jump to" navigation links. Hidden by default in monobook skin. The format is: {{int:jumpto}} [[MediaWiki:Jumptonavigation/{{SUBPAGENAME}}|{{int:jumptonavigation}}]], [[MediaWiki:Jumptosearch/{{SUBPAGENAME}}|{{int:jumptosearch}}]].
+{{Identical|Jump to}}',
 'jumptonavigation' => 'Part of the "jump to" navigation links. Hidden by default in monobook skin. The format is: [[MediaWiki:Jumpto/{{SUBPAGENAME}}|{{int:jumpto}}]] {{int:jumptonavigation}}, [[MediaWiki:Jumptosearch/{{SUBPAGENAME}}|{{int:jumptosearch}}]].
 
 {{Identical|Navigation}}',
@@ -650,12 +660,11 @@ See also:
 * {{msg-mw|Tooltip-n-currentevents}}',
 'currentevents-url' => "Target page of ''CurrentEvents'' in the sidebar. See also {{msg-mw|currentevents}}.
 {{doc-important|Do not translate the \"<tt>Project:</tt>\" part.}}",
-'disclaimers' => 'Used as display name for the link to [[{{MediaWiki:Disclaimerpage}}]] shown at the bottom of every page on the wiki. Example [[{{MediaWiki:Disclaimerpage}}|{{MediaWiki:Disclaimers}}]].',
+'disclaimers' => 'Used as display name for the link to [[{{MediaWiki:Disclaimerpage}}]] shown at the bottom of every page on the wiki. Example [[{{MediaWiki:Disclaimerpage}}|{{MediaWiki:Disclaimers}}]].
+{{Identical|Disclaimer}}',
 'disclaimerpage' => 'Used as page for that contains the site disclaimer. Used at the bottom of every page on the wiki. Example: [[{{MediaWiki:Disclaimerpage}}|{{MediaWiki:Disclaimers}}]].
 {{doc-important|Do not change the "<tt>Project:</tt>" part.}}',
 'edithelp' => 'This is the text that appears on the editing help link that is near the bottom of the editing page',
-'edithelppage' => 'The help page displayed when a user clicks on editing help link which is present on the right of Show changes button.
-{{doc-important|Do not change the "<tt>Help:</tt>" part.}}',
 'helppage' => 'The link destination used by default in the sidebar, and in {{msg-mw|noarticletext}}.
 {{doc-important|Do not change the "<tt>Help:</tt>" part.}}
 {{Identical|HelpContent}}',
@@ -695,7 +704,8 @@ See also:
 'privacypage' => 'Used as page for that contains the privacy policy. Used at the bottom of every page on the wiki. Example: [[{{MediaWiki:Privacypage}}|{{MediaWiki:Privacy}}]].
 {{doc-important|Do not change the "<tt>Project:</tt>" part.}}',
 
-'badaccess' => 'Title shown within page indicating unauthorized access.',
+'badaccess' => 'Title shown within page indicating unauthorized access.
+{{Identical|Permission error}}',
 'badaccess-group0' => 'Shown when you are not allowed to do something.',
 'badaccess-groups' => "Error message when you aren't allowed to do something. Parameters:
 * $1 - a list of groups
@@ -726,7 +736,8 @@ Used in message {{msg-mw|youhavenewmessages}} (as parameter $1).
 'newmessagesdifflink' => 'This is the second link displayed in an orange rectangle when a user gets a message on his talk page. Used in message {{msg-mw|youhavenewmessages}} (as parameter $2).
 
 See also:
-* {{msg-mw|Newmessagesdifflinkplural}}',
+* {{msg-mw|Newmessagesdifflinkplural}}
+{{Identical|Last change}}',
 'youhavenewmessagesfromusers' => 'New talk indicator message: the message appearing when someone edited your user talk page. Parameters:
 * $1 - defined as {{msg-mw|newmessageslinkplural}}
 * $2 - defined as {{msg-mw|newmessagesdifflinkplural}}
@@ -740,21 +751,22 @@ Parameters:
 * $2 - {{msg-mw|newmessagesdifflinkplural}}',
 'newmessageslinkplural' => 'Like {{msg-mw|newmessageslink}} but supporting pluralization. Used in message {{msg-mw|youhavenewmessagesfromusers}} (as parameter $1).
 This message itself takes one parameter, $1, which is 1 if there was one new edit, or 2 if there was more than one new edit
-since the last time the user has seen his or her talk page.',
+since the last time the user has seen his or her talk page.
+{{Identical|New messages}}',
 'newmessagesdifflinkplural' => 'This message itself takes one parameter, $1, which is the number of new edits since the last time the user has seen his or her talk page: it should be used only for correct [[plural]] as in the source text, as the exact number is not relevant.
 
 Like {{msg-mw|newmessagesdifflink}} but supporting pluralization.
 
-Used in message {{msg-mw|youhavenewmessagesfromusers}} (as parameter $2).',
+Used in message {{msg-mw|youhavenewmessagesfromusers}} (as parameter $2).
+{{Identical|Last change}}',
 'youhavenewmessagesmulti' => 'The alternative of {{msg|youhavenewmessages}} as used on wikis with a special setup so they can receive the "new message" notice on other wikis as well. Used on [http://www.wikia.com/ Wikia].
 The format is: "{{int:youhavenewmessagesmulti| [[MediaWiki:Newmessageslink/{{SUBPAGENAME}}|{{int:newmessageslink}}]]}}"',
 'editsection' => 'Display name of link to edit a section on a content page. Example: [{{MediaWiki:Editsection}}].
 
 {{Identical|Edit}}',
-'editsection-brackets' => '{{optional}}',
 'editold' => '{{Identical|Edit}}',
 'viewsourceold' => '{{Identical|View source}}',
-'editlink' => 'Teks dari pranala yang terlihat di sebelah setiap templat yang dapat disunting (tidak diproteksi) pada daftar templat di bawah jendela penyuntingan. Lihat juga {{msg-mw|Viewsourcelink}}.
+'editlink' => 'Text of the edit link shown next to every (editable) template in the list of used templates below the edit window. See also {{msg-mw|Viewsourcelink}}.
 
 {{Identical|Edit}}',
 'viewsourcelink' => 'Text of the link shown next to every uneditable (protected) template in the list of used templates below the edit window. See also {{msg-mw|Editlink}}.
@@ -794,6 +806,7 @@ See also:
 'restorelink' => "This text is always displayed in conjunction with the {{msg-mw|thisisdeleted}} message (View or restore $1?). The user will see
 View or restore <nowiki>{{PLURAL:$1|one deleted edit|$1 deleted edits}}</nowiki>?    i.e ''View or restore one deleted edit?''     or
 ''View or restore n deleted edits?''",
+'feedlinks' => '{{Identical|Feed}}',
 'feed-invalid' => 'Result of check whether feed type is valid or not.',
 'feed-unavailable' => 'This message is displayed when a user tries to use an RSS or Atom feed on a wiki where such feeds have been disabled.',
 'site-rss-feed' => "Used in the HTML header of a wiki's RSS feed.
@@ -1006,6 +1019,9 @@ See also:
 'actionthrottledtext' => 'Used as error message. Read it in combination with {{msg-mw|actionthrottled}}.',
 'protectedpagetext' => "This message is displayed when trying to edit a page you can't edit because it has been protected.
 
+Parameters:
+* $1 - the raw name of the right which is needed to edit the page
+
 The title for this message is {{msg-mw|protectedpage}}.",
 'viewsourcetext' => 'The text shown when displaying the source of a page that the user has no permission to edit',
 'viewyourtext' => 'Same as {{msg-mw|viewsourcetext}} but when showing the text submitted by the user, this happens e.g. when the user was blocked while he is editing the page',
@@ -1022,6 +1038,10 @@ See also {{msg-mw|protectedinterface}}.',
 'namespaceprotected' => '* $1 - namespace name',
 'customcssprotected' => 'Used as error message.',
 'customjsprotected' => 'Used as error message.',
+'mycustomcssprotected' => 'Used as error message.',
+'mycustomjsprotected' => 'Used as error message.',
+'myprivateinfoprotected' => 'Used as error message.',
+'mypreferencesprotected' => 'Used as error message.',
 'ns-specialprotected' => 'Error message displayed when trying to edit a page in the Special namespace',
 'titleprotected' => 'Use $1 for GENDER.',
 'filereadonlyerror' => 'Parameters:
@@ -1052,48 +1072,47 @@ Parameters:
 * $1 - 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. $1 is 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. $1 is the username of the new user. Replaces welcomecreation in 1.21wmf5,see [[bugzilla:42215]]',
-'yourname' => "{{doc-important|<nowiki>{{</nowiki>[[Gender|GENDER]]<nowiki>}}</nowiki> is '''NOT''' supported.}}
-In user preferences.
-{{Identical|Username}}",
-'userlogin-yourname' => 'In new vertical user login & create account forms, label for username field.
-
-See examples: [{{canonicalurl:Special:UserLogin|useNew=1}} Special:UserLogin?useNew=1] and [{{canonicalurl:Special:UserLogin|type=signup&useNew=1}} Special:UserLogin?type=signup&useNew=1]
+'yourname' => 'Since 1.22 no longer used in core, but used by some extensions.
 {{Identical|Username}}',
-'userlogin-yourname-ph' => 'Placeholder text in new userlogin/create account form field.
+'userlogin-yourname' => "In user login & create account forms, label for username field.
+{{doc-important|<nowiki>{{</nowiki>[[Gender|GENDER]]<nowiki>}}</nowiki> is '''NOT''' supported.}}
+
+See examples: [[Special:UserLogin]] and [{{canonicalurl:Special:UserLogin|type=signup}} Special:UserLogin?type=signup]
+{{Identical|Username}}",
+'userlogin-yourname-ph' => 'Placeholder text in login & create account form field.
 
-See example: [{{canonicalurl:Special:UserLogin|useNew=1}} Special:UserLogin?useNew=1] and [{{canonicalurl:Special:UserLogin|type=signup&useNew=1}} Special:UserLogin?type=signup&useNew=1]',
+See example: [[Special:UserLogin]] and [{{canonicalurl:Special:UserLogin|type=signup}} Special:UserLogin?type=signup]',
+'createacct-another-username-ph' => 'Placeholder text in create account form field when one user creates an account for another.',
 'yourpassword' => 'In user preferences
 
 {{Identical|Password}}',
-'userlogin-yourpassword' => 'In new vertical user login & create account forms, label for password field.
+'userlogin-yourpassword' => 'In login & create account forms, label for password field.
 
-See examples: [{{canonicalurl:Special:UserLogin|useNew=1}} Special:UserLogin?useNew=1] and [{{canonicalurl:Special:UserLogin|type=signup&useNew=1}} Special:UserLogin?type=signup&useNew=1]
+See examples: [[Special:UserLogin]] and [{{canonicalurl:Special:UserLogin|type=signup}} Special:UserLogin?type=signup]
 {{Identical|Password}}',
-'userlogin-yourpassword-ph' => 'Placeholder text in new userlogin form for password field.
+'userlogin-yourpassword-ph' => 'Placeholder text in login form for password field.
 
-See examples: [{{canonicalurl:Special:UserLogin|useNew=1}} Special:UserLogin?useNew=1] and [{{canonicalurl:Special:UserLogin|type=signup&useNew=1}} Special:UserLogin?type=signup&useNew=1]
+See examples: [[Special:UserLogin]] and [{{canonicalurl:Special:UserLogin|type=signup}} Special:UserLogin?type=signup]
 {{Identical|Enter password}}',
-'createacct-yourpassword-ph' => 'Placeholder text in new create account form for password field.
+'createacct-yourpassword-ph' => 'Placeholder text in create account form for password field.
 
-See example: [{{canonicalurl:Special:UserLogin|type=signup&useNew=1}} Special:UserLogin?type=signup&useNew=1]
+See example: [{{canonicalurl:Special:UserLogin|type=signup}} Special:UserLogin?type=signup]
 {{Identical|Enter password}}',
-'yourpasswordagain' => 'In user preferences',
-'createacct-yourpasswordagain' => 'In new create account form, label for field to re-enter password
+'yourpasswordagain' => 'Since 1.22 no longer used in core, but may be used by some extensions. DEPRECATED',
+'createacct-yourpasswordagain' => 'In create account form, label for field to re-enter password
 
-See example: [{{canonicalurl:Special:UserLogin|type=signup&useNew=1}} Special:UserLogin?type=signup&useNew=1]
+See example: [{{canonicalurl:Special:UserLogin|type=signup}} Special:UserLogin?type=signup]
 {{Identical|Confirm password}}',
-'createacct-yourpasswordagain-ph' => 'Placeholder text in new create account form for re-enter password field.
+'createacct-yourpasswordagain-ph' => 'Placeholder text in create account form for re-enter password field.
 
-See example: [{{canonicalurl:Special:UserLogin|type=signup&useNew=1}} Special:UserLogin?type=signup&useNew=1]',
+See example: [{{canonicalurl:Special:UserLogin|type=signup}} Special:UserLogin?type=signup]',
 'remembermypassword' => 'A check box in [[Special:UserLogin]]
 
 {{Identical|Remember my login on this computer}}',
-'userlogin-remembermypassword' => 'The text for a check box in the new-style [[Special:UserLogin]].
-
-See example: [{{canonicalurl:Special:UserLogin|useNew=1}} Special:UserLogin?useNew=1]',
+'userlogin-remembermypassword' => 'The text for a check box in [[Special:UserLogin]].',
 'userlogin-signwithsecure' => 'Text of link to HTTPS login form.
 
-See example: [{{canonicalurl:Special:UserLogin|useNew=1}} Special:UserLogin?useNew=1]',
+See example: [[Special:UserLogin]]',
 'securelogin-stick-https' => 'Used as label for checkbox.',
 'yourdomainname' => 'Used as label for listbox.',
 'password-change-forbidden' => 'Error message shown when an external authentication source does not allow the password to be changed.',
@@ -1108,9 +1127,10 @@ See also:
 'nav-login-createaccount' => "Shown to anonymous users in the upper right corner of the page. When you can't create an account, the message {{msg-mw|login}} is shown.
 {{Identical|Log in / create account}}",
 'loginprompt' => 'A small notice in the log in form.',
-'userlogin' => 'Name of special page [[Special:UserLogin]] where a user can log in or click to create a user account.
+'userlogin' => 'Since 1.22 no longer used in core, but may still be used by extensions. DEPRECATED
+
 {{Identical|Log in / create account}}',
-'userloginnocreate' => 'A variant of {{msg-mw|Userlogin}} when the user is not allowed to create a new account.
+'userloginnocreate' => 'Since 1.22 no longer used in core, but may still be used by some extensions. A variant of {{msg-mw|Userlogin}} when the user is not allowed to create a new account. DEPRECATED
 
 {{Identical|Log in}}',
 'logout' => 'Used as link text in your personal toolbox (upper right side).
@@ -1126,33 +1146,31 @@ See also:
 'notloggedin' => 'This message is displayed in the standard skin when not logged in. The message is placed above the login link in the top right corner of pages.
 
 {{Identical|Not logged in}}',
-'userlogin-noaccount' => 'In the new-style [[Special:Userlogin]] form, this is the text prior to button inviting user to join project.
-
-See example: [{{canonicalurl:Special:UserLogin|useNew=1}} Special:UserLogin?useNew=1]
+'userlogin-noaccount' => 'In the [[Special:Userlogin]] form, this is the text prior to button inviting user to join project.
 {{Identical|Do not have an account}}',
 'userlogin-joinproject' => 'Text of button inviting user to create an account.
 
-See example: [{{canonicalurl:Special:UserLogin|useNew=1}} Special:UserLogin?useNew=1]',
-'nologin' => 'A message shown in the log in form. Parameters:
+See example: [[Special:UserLogin]]',
+'nologin' => 'Since 1.22 no longer used in core, but may be used by some extensions. DEPRECATED. Parameters:
 * $1 - a link to the account creation form, and the text of it is {{msg-mw|Nologinlink}}
 {{Identical|Do not have an account}}',
-'nologinlink' => 'Text of the link to the account creation form. Before that link, the message {{msg-mw|Nologin}} appears.
+'nologinlink' => 'Since 1.22 no longer used in core, but may be used by some extensions. DEPRECATED.
 {{Identical|Create an account}}',
-'createaccount' => '{{doc-special|CreateAccount}}
-The special page enables users to register a new account.
+'createaccount' => 'Used on the top of the page for logged out users, where it appears next to {{msg-mw|login}}, so consider making them similar.
 
-Used on the submit button in the form where you register a new account.
-
-It is also used on the top of the page for logged out users, where it appears next to {{msg-mw|login}}, so consider making them similar.
+It is also used on the submit button in the form/special page where you register a new account.
+{{doc-special|CreateAccount}}
 {{Identical|Create account}}',
-'gotaccount' => 'A message shown in the account creation form.
+'gotaccount' => 'Since 1.22 no longer used in core, but may be used by some extensions. DEPRECATED. Parameter:
 * $1 - a link to the log in form, and the text of it is {{msg-mw|Gotaccountlink}}',
-'gotaccountlink' => 'Text of the link to the log in form. Before that link, the message {{msg-mw|Gotaccount}} appears.
+'gotaccountlink' => 'Since 1.22 no longer used in core, but may be used by some extensions. DEPRECATED.
 {{Identical|Log in}}',
-'userlogin-resetlink' => 'Used on the login page.',
-'userlogin-resetpassword-link' => 'Text of link to [[Special:PasswordReset]] on new vertical-layout create account form.
+'userlogin-resetlink' => 'Since 1.22 no longer used in core, but may be used by some extensions. DEPRECATED.',
+'userlogin-resetpassword-link' => 'Used as link text on login form.
+
+The link points to the local [[Special:PasswordReset]].
 
-See example: [{{canonicalurl:Special:UserLogin|useNew=1}} Special:UserLogin?useNew=1]
+See example: [[Special:UserLogin]]
 
 userlogin-resetpassword-link may have to be shorter than the old {{msg-mw|userlogin-resetlink}}',
 'helplogin-url' => '{{doc-important|Do not translate the namespace name <code>Help</code>.}}
@@ -1162,64 +1180,69 @@ Used as a link target in the message {{msg-mw|Userlogin-helplink}}.',
 'userlogin-helplink' => '{{doc-important|Do not change <code><nowiki>{{MediaWiki:helplogin-url}}</nowiki></code>.}}
 Wikitext linking to login help.
 
-See example: [{{canonicalurl:Special:UserLogin|useNew=1}} Special:UserLogin?useNew=1]
+See example: [[Special:UserLogin]]
 
 See also:
 * {{msg-mw|Helplogin-url}}',
 'createacct-join' => 'Subheading of vertical-layout create account form encouraging user to join the wiki.
 
-See example: [{{canonicalurl:Special:UserLogin|type=signup&useNew=1}} Special:UserLogin?type=signup&useNew=1]',
-'createacct-emailrequired' => 'Label in vertical-layout create account form for email field when it is required.
+See example: [{{canonicalurl:Special:UserLogin|type=signup}} Special:UserLogin?type=signup]',
+'createacct-another-join' => 'Subheading of create account form when one user creates an account for another.',
+'createacct-emailrequired' => 'Label in create account form for email field when it is required.
 
 See also:
 * {{msg-mw|Createacct-emailoptional}}
 {{Identical|E-mail address}}',
 'createacct-emailoptional' => 'Label in vertical-layout create account form for email field when it is optional.
 
-See example: [{{canonicalurl:Special:UserLogin|type=signup&useNew=1}} Special:UserLogin?type=signup&useNew=1]
+See example: [{{canonicalurl:Special:UserLogin|type=signup}} Special:UserLogin?type=signup]
 
 See also:
 * {{msg-mw|Createacct-emailrequired}}',
 'createacct-email-ph' => 'Placeholder in vertical-layout create account form for email field.
 
-See example: [{{canonicalurl:Special:UserLogin|type=signup&useNew=1}} Special:UserLogin?type=signup&useNew=1]',
-'createaccountmail' => 'Used as label for the checkbox for creating a new account and sending the new password to the specified e-mail address directly, as used on [[Special:UserLogin/signup]] if creating accounts by e-mail is allowed.
+See example: [{{canonicalurl:Special:UserLogin|type=signup}} Special:UserLogin?type=signup]',
+'createacct-another-email-ph' => 'Placeholder in create account form for email field when one user creates an account for another.',
+'createaccountmail' => 'The label for the checkbox for creating a new account and sending the new password to the specified e-mail address directly, as used on [[Special:UserLogin/signup]] when one user creates an account for another (if creating accounts by e-mail is allowed).
 
-See example: [{{canonicalurl:Special:UserLogin|type=signup&useNew=1}} Special:UserLogin?type=signup&useNew=1]',
+See example: [{{canonicalurl:Special:UserLogin|type=signup}} Special:UserLogin?type=signup]',
 'createacct-realname' => 'In vertical-layout create account form, label for field to enter optional real name.',
-'createaccountreason' => '{{Identical|Reason}}',
-'createacct-reason' => 'In vertical-layout create account form, label for field to enter reason to create an account when already logged-in.
+'createaccountreason' => 'Since 1.22 no longer used in core, but may be used by some extensions. DEPRECATED
 
-See example: [{{canonicalurl:Special:UserLogin|type=signup&useNew=1}} Special:UserLogin?type=signup&useNew=1]
+{{Identical|Reason}}',
+'createacct-reason' => 'In create account form, label for field to enter reason to create an account when already logged-in.
+
+See example: [{{canonicalurl:Special:UserLogin|type=signup}} Special:UserLogin?type=signup]
 {{Identical|Reason}}',
 'createacct-reason-ph' => 'Placeholder in vertical-layout create account form for reason field.
 
-See example: [{{canonicalurl:Special:UserLogin|type=signup&useNew=1}} Special:UserLogin?type=signup&useNew=1]',
+See example: [{{canonicalurl:Special:UserLogin|type=signup}} Special:UserLogin?type=signup]',
 'createacct-captcha' => 'Label in vertical-layout create account form for CAPTCHA input field when repositioned by JavaScript.',
 'createacct-imgcaptcha-ph' => 'Placehodler text in vertical-layout create account form for image CAPTCHA input field when repositioned by JavaScript.',
 'createacct-submit' => 'Submit button on vertical-layout create account form.
 
-See example: [{{canonicalurl:Special:UserLogin|type=signup&useNew=1}} Special:UserLogin?type=signup&useNew=1]',
+See example: [{{canonicalurl:Special:UserLogin|type=signup}} Special:UserLogin?type=signup]',
+'createacct-another-submit' => 'Submit button on create account form when one user creates an account for another.',
 'createacct-benefit-heading' => 'In vertical-layout create account form, the heading for the section describing the benefits of creating an account.
 
-See example: [{{canonicalurl:Special:UserLogin|type=signup&useNew=1}} Special:UserLogin?type=signup&useNew=1]',
+See example: [{{canonicalurl:Special:UserLogin|type=signup}} Special:UserLogin?type=signup]',
 'createacct-benefit-body1' => 'In vertical-layout create account form, the text for the first benefit.
 
 Preceded by the message {{msg-mw|Createacct-benefit-head1}} (number of edits).
 
-See example: [{{canonicalurl:Special:UserLogin|type=signup&useNew=1}} Special:UserLogin?type=signup&useNew=1]
+See example: [{{canonicalurl:Special:UserLogin|type=signup}} Special:UserLogin?type=signup]
 {{Identical|Edit}}',
 'createacct-benefit-body2' => 'In vertical-layout create account form, the text for the second benefit.
 
 Preceded by the message {{msg-mw|Createacct-benefit-head2}} (number of pages).
 
-See example: [{{canonicalurl:Special:UserLogin|type=signup&useNew=1}} Special:UserLogin?type=signup&useNew=1]
+See example: [{{canonicalurl:Special:UserLogin|type=signup}} Special:UserLogin?type=signup]
 {{Identical|Page}}',
 'createacct-benefit-body3' => 'In vertical-layout create account form, the text for the third benefit.
 
 Preceded by the message {{msg-mw|Createacct-benefit-head3}} (number of contributors).
 
-See example: [{{canonicalurl:Special:UserLogin|type=signup&useNew=1}} Special:UserLogin?type=signup&useNew=1]',
+See example: [{{canonicalurl:Special:UserLogin|type=signup}} Special:UserLogin?type=signup]',
 'badretype' => 'Used as error message when the new password and its retype do not match.',
 'userexists' => 'Used as error message in creating a user account.',
 'loginerror' => 'Used as title of error message.
@@ -1258,7 +1281,7 @@ Parameters:
 $1 is the minimum number of characters in the password.',
 'password-name-match' => 'Used as error message when password validity check failed.',
 'password-login-forbidden' => 'Error message shown when the user has tried to log in using one of the special username/password combinations used for MediaWiki testing. (See [[mwr:75589]], [[mwr:75605]].)',
-'mailmypassword' => 'Shown at [[Special:UserLogin]]',
+'mailmypassword' => 'Heading in [[Special:PasswordReset]]',
 'passwordremindertitle' => 'Title of e-mail which contains temporary password',
 'passwordremindertext' => 'This text is used in an e-mail sent when a user requests a new temporary password (he has forgotten his password) or when an sysop creates a new user account choosing to have password and username sent to the new user by e-mail.
 * $1 is an IP address. Example: 123.123.123.123
@@ -1303,8 +1326,8 @@ See also:
 See also:
 * {{msg-mw|Accountcreated|title}}
 * {{msg-mw|Accountcreatedtext|message}}',
-'createaccount-title' => 'This is the subject of an e-mail sent to the e-mail address entered at [[Special:CreateAccount]] if the button "by e-mail" is clicked.',
-'createaccount-text' => 'This text is sent as an e-mail to the e-mail address entered at [[Special:CreateAccount]] if the button "by e-mail" is clicked.
+'createaccount-title' => 'Subject of the e-mail sent to the e-mail address entered at [[Special:CreateAccount]] when one user creates an account for another and clicks the checkbox labelled "{{msg-mw|createaccountmail}}".',
+'createaccount-text' => 'Body of the e-mail sent to the e-mail address entered at [[Special:CreateAccount]] when one user creates an account for another and clicks the checkbox labelled "{{msg-mw|createaccountmail}}".
 
 *Parameter $2 is the name entered as username.
 *Parameter $3 is a password (randomly generated).
@@ -1348,13 +1371,18 @@ See also:
 # Special:PasswordReset
 'passwordreset' => 'Title of [[Special:PasswordReset]].
 {{Identical|Reset password}}',
-'passwordreset-text' => 'Text on [[Special:PasswordReset]]',
+'passwordreset-text-one' => 'Text on [[Special:PasswordReset]] that appears when there is only one way of resetting the password.
+
+{{msg-mw|Passwordreset-text-many}} will be used, when there are multiple ways of resetting the password.',
+'passwordreset-text-many' => 'Text on [[Special:PasswordReset]] that appears when there are multiple ways of resetting the password.
+
+Parameters:
+* $1 - the number of password reset routes
+
+{{msg-mw|Passwordreset-text-one}} will be used, when there is only one way of resetting the password.',
 'passwordreset-legend' => '{{Identical|Reset password}}',
 'passwordreset-disabled' => 'Used as error message in changing password.',
 'passwordreset-emaildisabled' => "Used as error message in changing password when site's email feature is disabled.",
-'passwordreset-pretext' => 'These instructions are shown on the password reset dialogue, which can, in principle, take the user\'s email address as well as, or instead of, their username. This text displays above one or more fields, at least one of which needs to be completed, and the message does not know which routes are available, so it needs to refer to some vague noun rather than specifically "username".
-"One of the pieces of data" means "an info"/"a datum" (probably to be translatea with a singular noun in your language if available). Parameters:
-* $1 is the number of password reset routes. This is never 1, but always two or more. Thus, the first plural option is empty in English.',
 'passwordreset-username' => '{{Identical|Username}}',
 'passwordreset-domain' => 'A domain like used in Domain Name System (DNS) or more specifically like a domain component in the Lightweight Directory Access Protocol (LDAP)',
 'passwordreset-capture' => 'Label for checkbox asking the user whether they want to see the contents of the password reset email (only shown if they have the <tt>passwordreset</tt> permission',
@@ -1411,6 +1439,22 @@ See also:
 
 {{Identical|Cancel}}',
 
+# Special:ResetTokens
+'resettokens' => '{{doc-special|ResetTokens}}
+{{Identical|Reset token}}',
+'resettokens-text' => 'Text on [[Special:ResetTokens]].',
+'resettokens-no-tokens' => 'Additional text on [[Special:ResetTokens]] if the user has no tokens.',
+'resettokens-legend' => 'Form legend on [[Special:ResetTokens]].
+{{Identical|Reset token}}',
+'resettokens-tokens' => 'Form label on [[Special:ResetTokens]].
+{{Identical|Token}}',
+'resettokens-token-label' => 'Label for each checkbox on [[Special:ResetTokens]]. Parameters:
+* $1 - short information about the token (for example {{msg-mw|resettokens-watchlist-token}})
+* $2 - its current value',
+'resettokens-watchlist-token' => 'Label for watchlist token checkbox on [[Special:ResetTokens]] (see {{msg-mw|prefs-watchlist-token}} at [[Special:Preferences#mw-prefsection-watchlist]]).',
+'resettokens-done' => 'Message shown on [[Special:ResetTokens]] after the tokens have been reset successfully.',
+'resettokens-resetbutton' => 'Form submit button on [[Special:ResetTokens]].',
+
 # Edit page toolbar
 'bold_sample' => 'This is the sample text that you get when you press the first button on the left on the edit toolbar.
 
@@ -1436,7 +1480,8 @@ See also:
 'nowiki_sample' => 'Text inserted between nowiki tags',
 'nowiki_tip' => 'This is the text that appears when you hover the mouse over the third button from the right on the edit toolbar.',
 'image_sample' => '{{optional}}
-Used in text generated by Picture button in toolbar.',
+Used in text generated by Picture button in toolbar.
+{{Identical|Example}}',
 'image_tip' => 'This is the text that appears when you hover the mouse over the sixth (middle) button on the edit toolbar.
 
 {{Identical|Embedded file}}',
@@ -1549,8 +1594,12 @@ See also:
 See also:
 * {{msg-mw|permissionserrors}}
 {{Identical|Login required}}',
-'loginreqlink' => 'Take a look on inflection. Used as parameter in {{msg-mw|loginreqpagetext}}, {{msg-mw|whitelistedittext}}, {{msg-mw|watchlistanontext‎}} and {{msg-mw|Confirmemail needlogin}}.
-
+'loginreqlink' => 'Take a look on inflection. Used as <code>$1</code> in the following messages:
+* {{msg-mw|loginreqpagetext}}
+* {{msg-mw|whitelistedittext}}
+* {{msg-mw|Uploadnologintext}}
+* {{msg-mw|watchlistanontext‎}}
+* {{msg-mw|Confirmemail needlogin}}
 {{Identical|Log in}}',
 'loginreqpagetext' => 'This message is displayed if an anonymous reader attempts to access a page which is only available to logged-in users.
 * $1 is a link to [[Special:UserLogin]] with {{msg-mw|loginreqlink}} as link description
@@ -1589,6 +1638,7 @@ Example: [{{canonicalurl:Project:News|oldid=9999999}} Permalink with invalid rev
 'sitejspreview' => 'Text displayed on preview of .js pages in MediaWiki namespace',
 'userinvalidcssjstitle' => '* $1 - skin name',
 'updated' => '{{Identical|Updated}}',
+'note' => '{{Identical|Note}}',
 'previewnote' => 'Note displayed when clicking on Show preview',
 'continue-editing' => '{{doc-actionlink}}
 A link to the beginning of the editing textarea on the same page.
@@ -1672,7 +1722,8 @@ See also:
 'permissionserrors' => 'Used as title of error message.
 
 See also:
-* {{msg-mw|loginreqtitle}}',
+* {{msg-mw|loginreqtitle}}
+{{Identical|Permission error}}',
 'permissionserrorstext' => "This message is \"without action\" version of {{msg-mw|Permissionserrorstext-withaction}}.
 * \$1 is 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}}.
@@ -1680,7 +1731,7 @@ See also:
 * $1 is the number of reasons that were found why the action cannot be performed.
 * $2 is one of the action-* messages (for example {{msg|action-edit}}) or other such messages tagged with {{tl|doc-action}} in their documentation.
 
-Please report at [[Support]] if you are unable to properly translate this message. Also see [[bugzilla:14246]]',
+Please report at [[Support]] if you are unable to properly translate this message. Also see [[bugzilla:14246]] (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]).',
 'log-fulllog' => 'Used as link text.',
@@ -1712,6 +1763,7 @@ See also:
 * {{msg-mw|edit-gone-missing}}
 * {{msg-mw|edit-conflict}}
 * {{msg-mw|edit-already-exists}}',
+'postedit-confirmation' => 'Confirmation message that is displayed upon successful edit. Parameter $1 is the current user, for GENDER support.',
 'edit-already-exists' => 'Used as error message.
 
 See also:
@@ -1742,7 +1794,8 @@ This message is substituted in:
 
 This message is substituted in:
 *{{msg-mw|Bad-target-model}}
-*{{msg-mw|Content-not-allowed-here}}',
+*{{msg-mw|Content-not-allowed-here}}
+{{Identical|Plain text}}',
 'content-model-javascript' => 'Name for the JavaScript content model, used when decribing what type of content a page contains.
 
 This message is substituted in:
@@ -1832,6 +1885,12 @@ See also:
 
 {{Identical|Undo}}',
 'undo-summary' => 'Edit summary for an undo action.{{Identical|Undo}}',
+'undo-summary-username-hidden' => 'Edit summary for an undo action where the username of the old revision is hidden.
+
+Parameters:
+* $1 - the revision ID being undone
+See also:
+* {{msg-mw|Undo-summary}}',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Used as title of the error message {{msg-mw|Cantcreateaccount-text}}.',
@@ -1891,11 +1950,12 @@ Parameters:
 Used in History and [[Special:Contributions]].',
 'histfirst' => 'This is part of the navigation message on the top and bottom of Page History pages which are lists of things in date order, e.g. [{{canonicalurl:Support|action=history}} Page History of Support].
 
-It is followed by the message {{msg-mw|Viewprevnext}}.',
+It is followed by the message {{msg-mw|Viewprevnext}}.
+{{Identical|Oldest}}',
 'histlast' => 'This is part of the navigation message on the top and bottom of Page History pages which are lists of things in date order, e.g. [{{canonicalurl:Support|action=history}} Page History of Support].
 
 It is followed by the message {{msg-mw|Viewprevnext}}.
-{{Identical|Latest}}',
+{{Identical|Newest}}',
 'historysize' => '* $1 - byte count',
 'historyempty' => 'Text in page history for empty page revisions
 
@@ -2275,6 +2335,7 @@ See also:
 
 This message has sometimes a tooltip {{msg-mw|tooltip-undo}}
 {{Identical|Undo}}',
+'diff-empty' => 'This message appears instead of a "diff" when comparing two revisions that are identical.',
 'diff-multi' => "This message appears in the revision history of a page when comparing two versions which aren't consecutive.
 
 *Parameter $1 is the number of revisions
@@ -2338,9 +2399,6 @@ Viewprevnext is sometimes preceded by the {{msg-mw|Showingresults}} or {{msg-mw|
 'searchmenu-legend' => '{{Identical|Search options}}',
 'searchmenu-exists' => 'An option shown in a menu beside search form offering a link to the existing page having the specified title (when using the default MediaWiki search engine).',
 'searchmenu-new' => 'An option shown in a menu beside search form offering a red link to the not yet existing page having the specified title (when using the default MediaWiki search engine).',
-'searchhelp-url' => 'Description: The URL of the search help page.
-{{doc-important|Do not change the "<tt>Help:</tt>" part.}}
-{{Identical|HelpContent}}',
 'searchmenu-prefix' => '{{doc-important|Do not translate "Special:PrefixIndex"}}
 Parameters:
 * $1 - prefix string',
@@ -2411,7 +2469,8 @@ $1 is the relevance of this result in per cent.
 
 {{Identical|Relevance: $1%}}',
 'search-redirect' => "\$1 is a link to the redirect to the page (so, \$1 is the page that the search result is redirected '''from'''). \"Redirect\" is a noun here, not a verb.",
-'search-section' => 'This text will be shown on the search result listing after the page title of a result if the search algorithm thinks that section is more relevant than the rest of the page. $1 is a section title.',
+'search-section' => 'This text will be shown on the search result listing after the page title of a result if the search algorithm thinks that section is more relevant than the rest of the page. $1 is a section title.
+{{Identical|Section}}',
 'search-suggest' => 'Used for "Did you mean" suggestions:
 * $1 - suggested link',
 'search-interwiki-caption' => 'Used in [[Special:Search]], when showing search results from other wikis.',
@@ -2447,7 +2506,8 @@ See also:
 'powersearch-ns' => 'Used in the extended search form at [[Special:Search]]',
 'powersearch-redir' => 'Used in the extended search form at [[Special:Search]]',
 'powersearch-field' => 'Used in the extended search form at [[Special:Search]]',
-'powersearch-togglelabel' => 'Used in [{{canonicalurl:Special:Search|advanced=1}} Advanced search]. Synonym: "Select" as verb.',
+'powersearch-togglelabel' => 'Used in [{{canonicalurl:Special:Search|advanced=1}} Advanced search]. Synonym: "Select" as verb.
+{{Identical|Check}}',
 'powersearch-toggleall' => '"All" refers to namespaces. It is used in Advanced search: {{canonicalurl:Special:Search|advanced=1}}
 {{Identical|All}}',
 'powersearch-togglenone' => '"None" refers to namespaces. It is used in Advanced search: {{canonicalurl:Special:Search|advanced=1}}
@@ -2530,7 +2590,6 @@ See also:
 'prefs-editing' => 'Title of a tab in [[Special:Preferences]].
 When changing this message, please also update {{msg-mw|vector-editwarning-warning}} which references to this message.
 {{Identical|Editing}}',
-'prefs-edit-boxsize' => 'Used on [[Special:Preferences]].',
 'rows' => 'Used on [[Special:Preferences]], "Editing" section in the "Size of editing window" fieldset',
 'columns' => 'Used on [[Special:Preferences]], "Editing" section in the "Size of editing window" fieldset',
 'searchresultshead' => 'This is the label of the tab in [[Special:Preferences|my preferences]] which contains options for searching the wiki.
@@ -2544,7 +2603,7 @@ When changing this message, please also update {{msg-mw|vector-editwarning-warni
 'recentchangesdays-max' => 'Shown as hint in [[Special:Preferences]], tab "Recent changes"',
 'recentchangescount' => 'Used in [[Special:Preferences]], tab "Recent changes".',
 'prefs-help-recentchangescount' => 'Used in [[Special:Preferences]], tab "Recent changes".',
-'prefs-help-watchlist-token' => 'Used in [[Special:Preferences]], tab Watchlist.',
+'prefs-help-watchlist-token2' => 'Used in [[Special:Preferences]], tab Watchlist. (Formerly in {{msg-mw|prefs-help-watchlist-token}}.)',
 'savedprefs' => 'This message appears after saving changes to your user preferences.',
 'timezonelegend' => '{{Identical|Time zone}}',
 'localtime' => 'Used as label in [[Special:Preferences#mw-prefsection-datetime|preferences]].',
@@ -2589,7 +2648,6 @@ This option lets your time zone setting use the one that is used on the wiki (of
 'prefs-common-css-js' => 'Used as label in [[Special:Preferences#mw-prefsection-rendering|preferences]], tab "Appearance", section "Skin".',
 'prefs-reset-intro' => 'Used in [[Special:Preferences/reset]].',
 'prefs-emailconfirm-label' => 'Sub-heading in [[Special:Preferences]] > {{int:prefs-personal}} > {{int:email}}.',
-'prefs-textboxsize' => "Header for the box specifying the size of the editing window, displayed on the 'editing' tab of the [[Special:Preferences|user preferences]] special page.",
 'youremail' => 'Label of the e-mail text box of the "E-mail options" section of [[Special:Preferences]].
 Also used on create account form.
 
@@ -2663,7 +2721,12 @@ See also:
 {{Identical|Date format}}',
 'prefs-timeoffset' => 'Used in [[Special:Preferences]], tab "Date and time".',
 'prefs-advancedediting' => 'Used in [[Special:Preferences]], tab "Editing".
-{{Identical|Advanced options}}',
+This used to say "Advanced options", the key name is a left over from that.',
+'prefs-editor' => 'Used in [[Special:Preferences]], tab "Editing" ({{int:prefs-editing}}).
+
+{{Identical|Editor}}',
+'prefs-preview' => 'Used in [[Special:Preferences]], tab "Editing".
+{{Identical|Preview}}',
 'prefs-advancedrc' => 'Used in [[Special:Preferences]], tab "Recent changes".
 {{Identical|Advanced options}}',
 'prefs-advancedrendering' => 'Used in [[Special:Preferences]], tab "Appearence".
@@ -2686,6 +2749,9 @@ Used in [[Special:Preferences]], tab "Search options". The display options refer
 Used in [[Special:Preferences]], tab "Watchlist". The display options refer to:
 * {{msg-mw|Prefs-watchlist-days}}
 * {{msg-mw|Prefs-watchlist-edits}}',
+'prefs-tokenwatchlist' => 'Section heading.
+Used in [[Special:Preferences]], tab "Watchlist".
+{{Identical|Token}}',
 'prefs-diffs' => 'Used in [[Special:Preferences]], tab "Misc".',
 
 # User preference: email validation using jQuery
@@ -2741,6 +2807,7 @@ Parameters:
 * $1 - optional, for PLURAL use, the number of items in the column following the message. Avoid PLURAL, if your language allows that.',
 'userrights-irreversible-marker' => '{{optional}}',
 'userrights-conflict' => "Shown on [[Special:UserRights]] if the target's rights have been changed since the form was loaded.",
+'userrights-removed-self' => 'Shown on [[Special:UserRights]] in a green box after the user removed its own rights to access that page.',
 
 # Groups
 'group' => '{{Identical|Group}}',
@@ -2781,7 +2848,8 @@ This is a member of the optional (disabled by default) user group, meant for the
 'right-read' => '{{doc-right|read}}
 Basic right to read any page.',
 'right-edit' => '{{doc-right|edit}}
-Basic right to edit pages that are not protected.',
+Basic right to edit pages that are not protected.
+{{Identical|Edit page}}',
 'right-createpage' => '{{doc-right|createpage}}
 Basic right to create pages. The right to edit discussion/talk pages is {{msg-mw|right-createtalk}}.',
 'right-createtalk' => '{{doc-right|createtalk}}
@@ -2824,7 +2892,7 @@ Related messages:
 The right to use <tt>&action=purge</tt> in the URL, without needing to confirm it (by default, anonymous users need to confirm it).',
 'right-autoconfirmed' => "{{doc-right|autoconfirmed}}
 If your account is older than [[mw:Manual:\$wgAutoConfirmAge|wgAutoConfirmAge]] and if you have at least [[mw:Manual:\$wgAutoConfirmCount|\$wgAutoConfirmCount]] edits, you are in the '''group \"autoconfirmed\"''' (note that you can't see this group at [[Special:ListUsers]]).
-If you are in that group, you have (by default) the '''right \"autoconfirmed\"'''. With this right, you can for example <!-- I think this right includes more things --> edit semi-protected pages.",
+If you are in that group, you have (by default) the '''right \"autoconfirmed\"''', which exempts you from certain rate limits (those based on your IP address or otherwise intended solely for new users). Other rate limits may still apply; see {{msg-mw|right-noratelimit}}.",
 'right-bot' => '{{doc-right|bot}}',
 'right-nominornewtalk' => '{{doc-right|nominornewtalk}}
 If someone with this right (bots by default) edits a user talk page and marks it as minor (requires {{msg-mw|right-minoredit}}), the user will not get a notification "You have new messages".',
@@ -2890,11 +2958,31 @@ This user automatically bypasses IP blocks, auto-blocks and range blocks - so I
 'right-unblockself' => '{{doc-right|unblockself}}
 {{doc-singularthey}}',
 'right-protect' => '{{doc-right|protect}}',
-'right-editprotected' => '{{doc-right|editprotected}}',
+'right-editprotected' => '{{doc-right|editprotected}}
+See also:
+* {{msg-mw|Right-editsemiprotected}}',
+'right-editsemiprotected' => '{{doc-right|editsemiprotected}}
+See also:
+* {{msg-mw|Right-editprotected}}',
 'right-editinterface' => '{{doc-right|editinterface}}',
 'right-editusercssjs' => '{{doc-right|editusercssjs}}',
-'right-editusercss' => '{{doc-right|editusercss}}',
-'right-edituserjs' => '{{doc-right|edituserjs}}',
+'right-editusercss' => '{{doc-right|editusercss}}
+See also:
+* {{msg-mw|Right-editmyusercss}}',
+'right-edituserjs' => '{{doc-right|edituserjs}}
+See also:
+* {{msg-mw|Right-editmyuserjs}}',
+'right-editmyusercss' => '{{doc-right|editmyusercss}}
+See also:
+* {{msg-mw|Right-editusercss}}',
+'right-editmyuserjs' => '{{doc-right|editmyuserjs}}
+See also:
+* {{msg-mw|Right-edituserjs}}',
+'right-viewmywatchlist' => '{{doc-right|viewmywatchlist}}',
+'right-editmywatchlist' => '{{doc-right|editmywatchlist}}',
+'right-viewmyprivateinfo' => '{{doc-right|viewmyprivateinfo}}',
+'right-editmyprivateinfo' => '{{doc-right|editmyprivateinfo}}',
+'right-editmyoptions' => '{{doc-right|editmyoptions}}',
 'right-rollback' => '{{doc-right|rollback}}
 {{Identical|Rollback}}',
 'right-markbotedits' => '{{doc-right|markbotedits}}
@@ -2930,7 +3018,8 @@ In [[Special:Log]]',
 # Associated actions - in the sentence "You do not have permission to X"
 'action-read' => '{{Doc-action|read}}',
 'action-edit' => '{{Doc-action|edit}}',
-'action-createpage' => '{{Doc-action|createpage}}',
+'action-createpage' => '{{Doc-action|createpage}}
+{{Identical|Create page}}',
 'action-createtalk' => '{{Doc-action|createtalk}}',
 'action-createaccount' => '{{Doc-action|createaccount}}',
 'action-minoredit' => '{{Doc-action|minoredit}}',
@@ -2967,6 +3056,10 @@ This action allows editing of all of the "user rights", not just the rights of t
 'action-userrights-interwiki' => '{{Doc-action|userrights-interwiki}}',
 'action-siteadmin' => '{{Doc-action|siteadmin}}',
 'action-sendemail' => '{{doc-action|sendemail}}',
+'action-editmywatchlist' => '{{doc-action|editmywatchlist}}',
+'action-viewmywatchlist' => '{{doc-action|viewmywatchlist}}',
+'action-viewmyprivateinfo' => '{{doc-action|viewmyprivateinfo}}',
+'action-editmyprivateinfo' => '{{doc-action|editmyprivateinfo}}',
 
 # Recent changes
 'nchanges' => 'Appears on the [[Special:RecentChanges]] special page in brackets after pages having more than one change on that date. $1 is the number of changes on that day.',
@@ -2979,6 +3072,7 @@ See also:
 {{Identical|Recent changes}}',
 'recentchanges-legend' => 'Legend of the fieldset of [[Special:RecentChanges]]',
 'recentchanges-summary' => 'Summary of [[Special:RecentChanges]].',
+'recentchanges-noresult' => 'Used in [[Special:RecentChanges]], [[Special:RecentChangesLinked]], and [[Special:Watchlist]] when there are no changes to be shown.',
 'recentchanges-feed-description' => 'Used in feed of RecentChanges. See example [{{canonicalurl:Special:RecentChanges|feed=atom}} feed].',
 'recentchanges-label-newpage' => 'Tooltip for {{msg-mw|newpageletter}}',
 'recentchanges-label-minor' => 'Tooltip for {{msg-mw|minoreditletter}}',
@@ -3077,7 +3171,6 @@ This message is followed by {{msg-mw|Recentchangeslinked-feed}}.
 
 Parameters:
 * \$1 - the name of the page for which related changes are shown",
-'recentchangeslinked-noresult' => 'Used in [[Special:RecentChangesLinked]], when there are no changes.',
 'recentchangeslinked-summary' => 'Summary of [[Special:RecentChangesLinked]].',
 'recentchangeslinked-page' => '{{Identical|Page name}}',
 'recentchangeslinked-to' => 'Checkbox in [[Special:RecentChangesLinked]].',
@@ -3110,7 +3203,8 @@ See also:
 * {{msg-mw|reuploaddesc|button text}}',
 'uploadnologin' => 'Used as title of the error message {{msg-mw|Uploadnologintext}}.
 {{Identical|Not logged in}}',
-'uploadnologintext' => 'Used as error message. The title for this message is {{msg-mw|Uploadnologin}}.
+'uploadnologintext' => 'Used as error message. The title for this message is {{msg-mw|Uploadnologin}}. Parameters:
+* $1 - Login link – {{msg-mw|Loginreqlink}}
 
 See also:
 * {{msg-mw|Whitelistedittext}}
@@ -3893,7 +3987,7 @@ $1 is the name of the shared repository. On wikimedia sites, $1 is {{msg-mw|shar
 'filerevert-intro' => 'Message displayed when you try to revert a version of a file.
 * $1 is the name of the media
 * $2 is a date
-* $3 is a hour
+* $3 is a time
 * $4 is a URL and must follow square bracket: [$4
 {{Identical|Revert}}',
 'filerevert-comment' => '{{Identical|Reason}}',
@@ -3904,7 +3998,7 @@ $1 is the name of the shared repository. On wikimedia sites, $1 is {{msg-mw|shar
 'filerevert-success' => 'Message displayed when you succeed in reverting a version of a file.
 * $1 is the name of the media
 * $2 is a date
-* $3 is a hour
+* $3 is a time
 * $4 is an URL and must follow square bracket: [$4
 {{Identical|Revert}}',
 'filerevert-badversion' => 'Used as error message.',
@@ -3922,7 +4016,7 @@ See also:
 'filedelete-intro-old' => 'Message displayed when you try to delete a version of a file.
 * $1 is the name of the media
 * $2 is a date
-* $3 is a hour
+* $3 is a time
 * $4 is a URL and must follow square bracket: [$4',
 'filedelete-comment' => '{{Identical|Reason}}',
 'filedelete-submit' => 'Delete button when deleting a file for admins
@@ -3932,7 +4026,7 @@ See also:
 'filedelete-success-old' => 'Message displayed when you succeed in deleting a version of a file.
 * $1 is the name of the media
 * $2 is a date
-* $3 is a hour',
+* $3 is a time',
 'filedelete-nofile' => '* $1 - filename',
 'filedelete-nofile-old' => '* $1 - filename',
 'filedelete-otherreason' => 'Message used when deleting a file. This is the description field for "Other/additional reason" for deletion.
@@ -4041,6 +4135,18 @@ This block of text is shown on [[:Special:Disambiguations]].
 {{Identical|Property name}}',
 'pageswithprop-submit' => 'Label for the submit button on [[Special:PagesWithProp]].
 {{Identical|Go}}',
+'pageswithprop-prophidden-long' => 'Information shown on [[Special:PagesWithProp]] when property value is longer than 1 kilobyte.
+
+Parameters:
+* $1 - size of property value in kilobytes
+See also:
+* {{msg-mw|pageswithprop-prophidden-binary}}',
+'pageswithprop-prophidden-binary' => 'Information shown on [[Special:PagesWithProp]] when property value contains binary data.
+
+Parameters:
+* $1 - size of property value in kilobytes
+See also:
+* {{msg-mw|pageswithprop-prophidden-long}}',
 
 'doubleredirects' => '{{doc-special|DoubleRedirects}}',
 'doubleredirectstext' => 'Shown on top of [[Special:Doubleredirects]]',
@@ -4104,6 +4210,11 @@ $1 is a page title",
 'prefixindex' => '{{doc-special|PrefixIndex}}
 When the user limits the list to a certain namespace, {{msg-mw|allinnamespace}} is used instead.',
 'prefixindex-namespace' => 'The page title of [[Special:PrefixIndex]] limited to a specific namespace. Similar to {{msg-mw|allinnamespace}}. $1 is the name of the namespace',
+'prefixindex-strip' => 'Label for a checkbox. If the checkbox is checked, the prefix searched will be removed from the title displayed in the list. Used in [[Special:PrefixIndex]].
+
+See the following search results:
+* [{{canonicalurl:Special:PrefixIndex|prefix=Doc&namespace=10}} Special:PrefixIndex?prefix=Doc&namespace=10] (prefix NOT stripped)
+* [{{canonicalurl:Special:PrefixIndex|prefix=Doc&namespace=10&stripprefix=1}} Special:PrefixIndex?prefix=Doc&namespace=10&stripprefix=1] (prefix stripped)',
 'shortpages' => '{{doc-special|ShortPages}}',
 'longpages' => '{{doc-special|LongPages}}',
 'deadendpages' => '{{doc-special|DeadendPages}}',
@@ -4170,12 +4281,18 @@ See also:
 '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).",
 
 # Book sources
-'booksources' => '{{doc-special|BookSources}}
+'booksources' => "{{doc-special|BookSources}}
+
+'''This message shouldn't be changed unless it has serious mistakes.'''
+
+It's used as the page name of the configuration page of [[Special:BookSources]]. Changing it breaks existing sites using the default version of this message.
+
 See also:
 * {{msg-mw|Booksources|title}}
-* {{msg-mw|Booksources-text|text}}',
+* {{msg-mw|Booksources-text|text}}",
 'booksources-search-legend' => 'Box heading on [[Special:BookSources|book sources]] special page. The box is for searching for places where a particular book can be bought or viewed.',
-'booksources-isbn' => '{{optional}}',
+'booksources-isbn' => '{{optional}}
+{{Identical|ISBN}}',
 'booksources-go' => 'Name of button in [[Special:BookSources]]
 
 {{Identical|Go}}',
@@ -4244,8 +4361,7 @@ The other parts are {{msg-mw|Prevpage}} and {{msg-mw|Nextpage}}.
 
 # Special:Categories
 'categories' => 'The page name of [[Special:Categories]].
-
-{{Identical|Categories}}',
+{{Identical|Category}}',
 'categoriespagetext' => "{{doc-important|Do not translate or change links.}}
 Text displayed in [[Special:Categories]].
 
@@ -4305,7 +4421,8 @@ You can apparently use 'URL' instead of 'hostname'.",
 {{Identical|Show}}',
 'listusers-noresult' => 'identical with {{msg-mw|activeusers-noresult}}',
 'listusers-blocked' => 'Used on [[Special:ActiveUsers]] when a user has been blocked.
-* $1 is a user name for use with GENDER (optional)',
+* $1 - a user name for use with GENDER (optional)
+{{Identical|Blocked}}',
 
 # Special:ActiveUsers
 'activeusers' => 'Title of [[Special:ActiveUsers]]',
@@ -4459,7 +4576,8 @@ Parameters:
 * $2 - Tool links (View relevant changes | View and edit watchlist | Edit raw watchlist)
 {{Identical|For $1}}',
 'nowatchlist' => 'Displayed when there is no pages in the watchlist.',
-'watchlistanontext' => '* $1 is a link to [[Special:UserLogin]] with {{msg-mw|loginreqlink}} as link description',
+'watchlistanontext' => 'Parameters:
+* $1 - a link to [[Special:UserLogin]] with {{msg-mw|loginreqlink}} as link description',
 'watchnologin' => 'Used as error page title.
 
 The error message for this title is:
@@ -4514,7 +4632,6 @@ Possible alternatives to the word 'content' are 'subject matter' or 'wiki subjec
 
 See also:
 * {{msg-mw|Cantrollback}}',
-'watchnochange' => 'Used in [[Special:Watchlist]] if there is nothing to show.',
 'watchlist-details' => 'Message on [[Special:Watchlist]]. Parameters:
 * $1 - number of pages in your watchlist
 This is paired with the message {{msg-mw|Nowatchlist}} which appears instead of Watchlist-details when $1 is 0.
@@ -4639,7 +4756,8 @@ The subject of the e-mail is one of the following messages:
 'created' => '{{Optional}}
 Possible value for $CHANGEDORCREATED in the following messages:
 * {{msg-mw|enotif_subject}}
-* {{msg-mw|enotif_body}}',
+* {{msg-mw|enotif_body}}
+{{Identical|Created}}',
 'changed' => '{{Optional}}
 Possible value for $CHANGEDORCREATED in the following messages:
 * {{msg|enotif_subject}}
@@ -4779,7 +4897,7 @@ Example:
 'protect-norestrictiontypes-title' => "Page title in case there aren't any restriction types (like edit or create) available ($1 represents the page title).",
 'protect-legend' => 'Legend of the fieldset around the input form of the protection form.',
 'protectcomment' => '{{Identical|Reason}}',
-'protectexpiry' => '{{Identical|Expires}}',
+'protectexpiry' => '{{Identical|Expire}}',
 'protect_expiry_invalid' => 'Used as error message about the Protection Form.
 
 See also:
@@ -4821,7 +4939,9 @@ See also:
 * $3 - a time (optional)
 If the expiry is indefinite, {{msg-mw|protect-expiry-indefinite}} is used.
 {{Identical|Expires $1 (UTC)}}',
-'protect-expiring-local' => '$1 is a timestamp like "22:51, 23 July 2011 (UTC)" depending on the wiki content language.',
+'protect-expiring-local' => 'Parameter:
+* $1 - a timestamp like "22:51, 23 July 2011 (UTC)" depending on the wiki content language.
+{{Identical|Expire}}',
 'protect-expiry-indefinite' => 'Used as expiry text in page history, and in [[Special:Protectedtitles]], [[Special:Protectedpages]], and extension FlaggedRevs.
 
 If the expiry is definite, {{msg-mw|protect-expiring}} is used.',
@@ -5034,7 +5154,8 @@ This message has a tooltip {{msg-mw|tooltip-invert}}
 
 This message has a tooltip {{msg-mw|tooltip-namespace association}}',
 'tooltip-namespace_association' => 'Used in [[Special:Recentchanges]] as a tooltip for the associated namespace checkbox. See also the message {{msg-mw|namespace_association}}',
-'blanknamespace' => 'Name for main namespace (blank namespace) in drop-down menus at [[Special:RecentChanges]] and other special pages.',
+'blanknamespace' => 'Name for main namespace (blank namespace) in drop-down menus at [[Special:RecentChanges]] and other special pages.
+{{Identical|Main}}',
 
 # Contributions
 'contributions' => "Display name for the 'User contributions', shown in the sidebar menu of all user pages and user talk pages. Also the page name of the target page. The target page shows an overview of the most recent contributions by a user.
@@ -5055,8 +5176,13 @@ See also:
 {{Identical|Contribution}}',
 'contribsub2' => 'Contributions for "user" (links)
 {{Identical|For $1}}',
-'nocontribs' => 'Optional parameter: $1 is the user name',
-'uctop' => 'This message is used in [[Special:Contributions]]. It is used to show that a particular edit was the last made to a page. Example: 09:57, 11 February 2008 (hist) (diff) Pagename‎ (edit summary) (top)
+'nocontribs' => 'Used in [[Special:Contributions]] and [[Special:DeletedContributions]].
+
+See examples: [[Special:Contributions/x]] and [[Special:DeletedContributions/x]].
+
+Parameters:
+* $1 - (Unused) the user name',
+'uctop' => 'This message is used in [[Special:Contributions]]. It is used to show that a particular edit was the last made to a page. Example: 09:57, 11 February 2008 (hist) (diff) Pagename‎ (edit summary) (current)
 {{Identical|Top}}',
 'month' => 'Used in [[Special:Contributions]] and history pages ([{{fullurl:Sandbox|action=history}} example]), as label for a dropdown box to select a specific month to view the edits made in that month, and the earlier months. See also {{msg-mw|year}}.',
 'year' => 'Used in [[Special:Contributions]] and history pages ([{{fullurl:Sandbox|action=history}} example]), as label for an input box to select a specific year to view the edits made in that year, and the earlier years.
@@ -5178,7 +5304,8 @@ Parameter $1 is a page title.',
 
 {{Identical|Redirect page}}',
 'istemplate' => 'Means that a page (a template, specifically) is used as <code><nowiki>{{Page name}}</nowiki></code>.
-Displayed in [[Special:WhatLinksHere]] (see [[Special:WhatLinksHere/Template:New portal]] for example).',
+Displayed in [[Special:WhatLinksHere]] (see [[Special:WhatLinksHere/Template:New portal]] for example).
+{{Identical|Transclusion}}',
 'isimage' => 'This message is displayed on [[Special:WhatLinksHere]] for images. It means that the image is used on the page (as opposed to just being linked to like an non-image page).',
 'whatlinkshere-prev' => 'This is part of the navigation message on the top and bottom of Whatlinkshere pages, where it is used as the first argument of {{msg-mw|Viewprevnext}}.
 $1 is the number of items shown per page. It is not used when $1 is zero; not sure what happens when $1 is one.
@@ -5379,7 +5506,8 @@ For an explanation of "range blocks", see [[mw:Help:Range_blocks]]
 'blocklist-timestamp' => 'This is a column header for dates and times in the table on the page [[Special:BlockList]].
 {{Identical|Timestamp}}',
 'blocklist-target' => 'The table header for the column containing the block targets, that is user names or IP-addresses linked to their respective user pages, in the table on the page [[Special:BlockList]].',
-'blocklist-expiry' => 'This is a column header in the table on the page [[Special:BlockList]].',
+'blocklist-expiry' => 'This is a column header in the table on the page [[Special:BlockList]].
+{{Identical|Expire}}',
 'blocklist-by' => 'This is a column header in the table on the page [[Special:BlockList]].',
 'blocklist-params' => 'This is a column header in the table on the page [[Special:BlockList]].',
 'blocklist-reason' => 'This is a column header in the table on the page [[Special:BlockList]].
@@ -5817,8 +5945,10 @@ See also:
 'movepagebtn' => "Button label on the special 'Move page'.
 
 {{Identical|Move page}}",
-'pagemovedsub' => 'Message displayed as aheader of the body, after succesfully moving a page from source to target name.',
-'movepage-moved' => 'Message displayed after succesfully moving a page from source to target name. Parameters:
+'pagemovedsub' => 'Message displayed as aheader of the body, after successfully moving a page from source to target name.',
+'movepage-moved' => 'Message displayed after successfully moving a page from source to target name.
+
+Parameters:
 * $1 - the source page as a link with display name
 * $2 - the target page as a link with display name
 * $3 - (optional) the source page name without a link
@@ -6182,7 +6312,8 @@ See also:
 * {{msg-mw|Import-interwiki-namespace}}
 * {{msg-mw|Import-comment}}
 * {{msg-mw|Import-interwiki-submit}}',
-'import-upload-filename' => 'Used on [[Special:Import]] as label for upload of an XML file containing the pages to import.',
+'import-upload-filename' => 'Used on [[Special:Import]] as label for upload of an XML file containing the pages to import.
+{{Identical|Filename}}',
 'import-comment' => 'Used as label for input box in [[Special:Import]].
 
 See also:
@@ -6933,13 +7064,15 @@ See also:
 'pageinfo-redirectsto-info' => 'Text to put in parentheses for the link to the action=info of the redirect target.
 {{Identical|Info}}',
 'pageinfo-contentpage' => 'Key for the row shown on [{{fullurl:News|action=info}} action=info] if this page is [[mw:Manual:Article count|counted as a content page]]',
-'pageinfo-contentpage-yes' => 'Yes, this page is a content page',
+'pageinfo-contentpage-yes' => 'Yes, this page is a content page.
+{{Identical|Yes}}',
 'pageinfo-protect-cascading' => 'Key for the row which shows whether this page has cascading protection enabled
 *{{msg-mw|Pageinfo-protect-cascading}}
 *{{msg-mw|Pageinfo-protect-cascading-yes}}',
 'pageinfo-protect-cascading-yes' => 'Yes, protections are cascading from here
 *{{msg-mw|Pageinfo-protect-cascading}}
-*{{msg-mw|Pageinfo-protect-cascading-yes}}',
+*{{msg-mw|Pageinfo-protect-cascading-yes}}
+{{Identical|Yes}}',
 'pageinfo-protect-cascading-from' => 'Key for a list of pages where protections are cascading from',
 'pageinfo-category-info' => 'Showed on the page displaying information about the current page (add "?action=info" to the URL)',
 'pageinfo-category-pages' => 'See also:
@@ -7154,22 +7287,15 @@ See also {{msg-mw|hours-abbrev}}, {{msg-mw|hours-ago}}.',
 See also {{msg-mw|Days-abbrev}}
 
 {{Identical|Day}}',
-'weeks' => 'Full word for "weeks".
-
-Parameters:
-* $1 - the number of weeks',
+'weeks' => 'Full word for "weeks". Parameters:
+* $1 is the number of weeks',
 'months' => 'Full word for "months". $1 is the number of months.',
 'years' => 'Full word for "years".
 
 Parameters:
 * $1 - the number of years',
-'ago' => 'Phrase for indicating how long ago something happened. $1 is something like "3 days 10 hours", taken from these messages:
-*{{msg-mw|Seconds}}
-*{{msg-mw|Minutes}}
-*{{msg-mw|Hours}}
-*{{msg-mw|Days}}
-*{{msg-mw|Months}}
-*{{msg-mw|Years}}',
+'ago' => 'Phrase for indicating how long ago something happened. Parameters:
+* $1 - some kind of timestamp',
 'just-now' => 'Phrase for indicating something happened just now.',
 
 # Human-readable timestamps
@@ -7698,7 +7824,8 @@ This property can come from xmp:Label in XMP ( http://www.adobe.com/content/dam/
 'exif-pngfilecomment' => 'See also:
 * {{msg-mw|Exif-pngfilecomment}}
 * {{msg-mw|Exif-giffilecomment}}',
-'exif-disclaimer' => 'Disclaimer for the image.',
+'exif-disclaimer' => 'Disclaimer for the image.
+{{Identical|Disclaimer}}',
 'exif-contentwarning' => 'Content warning for the image. For example if the image/media contains violent, sexual or otherwise offensive content.
 
 This comes from the png warning textual chunk. See http://www.w3.org/TR/PNG/#11keywords',
@@ -8109,7 +8236,8 @@ See: http://www.awaresystems.be/imaging/tiff/tifftags/ycbcrpositioning.html
 'exif-dc-source' => 'Source of the image. This is another image that this image is based on. This does not refer to the person who provided the image.',
 'exif-dc-type' => 'Type or genre of image/media. This might be something like painting or photograph.',
 
-'exif-rating-rejected' => 'If the rating field has a rating of -1 to mean that the file was totally "rejected"',
+'exif-rating-rejected' => 'If the rating field has a rating of -1 to mean that the file was totally "rejected".
+{{Identical|Rejected}}',
 
 'exif-isospeedratings-overflow' => "Exif can't store iso speed ratings beyond 65535. This message is shown if the iso speed is too big to be stored.",
 
@@ -8191,10 +8319,10 @@ See also:
 'confirmemail_success' => 'Explanation on [[Special:ConfirmEmail]] on completion of confirmation.',
 'confirmemail_loggedin' => 'Explanation on [[Special:ConfirmEmail]] on completion of confirmation.',
 'confirmemail_error' => 'Error message on [[Special:ConfirmEmail]]',
-'confirmemail_subject' => 'Text in subject box of e-mail sent to user during e-mail address confirmation
+'confirmemail_subject' => 'Subject of the e-mail sent to user during e-mail address confirmation
 {{Identical|SITENAME e-mail address confirmation}}',
-'confirmemail_body' => 'This message is sent as an e-mail to users when they add or change their e-mail adress in [[Special:Preferences]].
-*$1 is the IP address of the user that changed the e-mail address
+'confirmemail_body' => 'Body of the e-mail sent to user when their account is created or they confirm their e-mail address.
+*$1 is the IP address of the user that created or confirmed the e-mail address
 *$2 is the name of the user
 *$3 is a URL to [[Special:ConfirmEmail]]
 *$4 is a time and date (duplicated by $6 and $7)
@@ -8276,7 +8404,6 @@ See also:
 'comma-separator' => '{{optional}}',
 'colon-separator' => "{{optional}}
 Change it only if your language uses another character for ':' or it needs an extra space before the colon.",
-'autocomment-prefix' => '{{optional}}',
 'pipe-separator' => '{{optional}}',
 'word-separator' => '{{optional}}
 This is a string which is (usually) put between words of the language. It is used, e.g. when messages are concatenated (appended to each other). Note that you must express a space as html entity &amp;#32; because the editing and updating process strips leading and trailing spaces from messages.
@@ -8318,7 +8445,8 @@ See also:
 'table_pager_limit' => "Do not use PLURAL in this message, because ''$1'' is not the actual number. ''$1'' is a limit selector drop-down list.",
 'table_pager_limit_label' => 'Used as label for input field.',
 'table_pager_limit_submit' => '{{Identical|Go}}',
-'table_pager_empty' => 'Used in a table pager when there are no results (e.g. when there are no images in the table on [[Special:ImageList]]).',
+'table_pager_empty' => 'Used in a table pager when there are no results (e.g. when there are no images in the table on [[Special:ImageList]]).
+{{Identical|No result}}',
 
 # Auto-summaries
 'autosumm-blank' => 'The auto summary when blanking the whole page. This is not the same as deleting the page.',
@@ -8413,7 +8541,8 @@ See also:
 
 {{Identical|Edit raw watchlist}}',
 'watchlistedit-raw-explain' => 'An introduction/explanation about the [[Special:Watchlist/raw|raw edit watchlist function]].',
-'watchlistedit-raw-titles' => 'Text above edit box containing items being watched on [[Special:Watchlist/raw]].',
+'watchlistedit-raw-titles' => 'Text above edit box containing items being watched on [[Special:Watchlist/raw]].
+{{Identical|Title}}',
 'watchlistedit-raw-submit' => 'Text of submit button on [[Special:Watchlist/raw]].
 
 See also:
@@ -8584,7 +8713,6 @@ This message is followed by the list of SPAM prevention extensions.',
 'version-mediahandlers' => 'Used in [[Special:Version]]. It is the title of a section for media handler extensions (e.g. [[mw:Extension:OggHandler]]).
 There are no such extensions here, so look at [[wikipedia:Special:Version]] for an example.',
 'version-hooks' => 'Shown in [[Special:Version]]',
-'version-extension-functions' => 'Shown in [[Special:Version]]',
 'version-parser-extensiontags' => 'Part of [[Special:Version]].
 This message is followed by the list of parser extension tags like <code><nowiki><charinsert></nowiki></code>, <code><nowiki><coordinates></nowiki></code>, etc.',
 'version-parser-function-hooks' => 'Shown in [[Special:Version]]',
@@ -8610,7 +8738,8 @@ This message is followed by the list of installed software (MediaWiki, PHP and M
 'version-entrypoints' => 'Header on [[Special:Version]] above a table that lists the URLs of various entry points in this MediaWiki installation. Entry points are the "places" where the wiki\'s content and information can be accessed in various ways, for instance the standard index.php which shows normal pages, histories etc.',
 'version-entrypoints-header-entrypoint' => 'Header for the first column in the entry points table on [[Special:Version]].
 See also {{msg-mw|Version-entrypoints}}',
-'version-entrypoints-header-url' => 'Header for the second column in the entry points table on [[Special:Version]].',
+'version-entrypoints-header-url' => 'Header for the second column in the entry points table on [[Special:Version]].
+{{Identical|URL}}',
 'version-entrypoints-articlepath' => '{{Optional}}
 A short description of the article path entry point. Links to the mediawiki.org documentation page for $wgArticlePath.',
 'version-entrypoints-scriptpath' => '{{Optional}}
@@ -8713,6 +8842,11 @@ It appears that the word 'valid' describes 'tags', not 'change'. It also appears
 'tag-filter-submit' => 'Caption of the submit button displayed next to the tag filter on lists of changes (e.g. [[Special:Log]], [[Special:Contributions]], [[Special:Newpages]], [[Special:Recentchanges]], [[Special:Recentchangeslinked]], page histories)
 
 {{Identical|Filter}}',
+'tag-list-wrapper' => 'Wrapper for the list of tags shown on recent changes, watchlists, history pages and diffs.
+
+Parameters:
+* $1 - number of distinct tags for given edit
+* $2 - comma-separated list of tags for given edit',
 'tags-title' => 'The title of [[Special:Tags]]',
 'tags-intro' => 'Explanation on top of [[Special:Tags]]. For more information on tags see [[mw:Manual:Tags|MediaWiki]].',
 'tags-tag' => 'Caption of a column in [[Special:Tags]]. For more information on tags see [[mw:Manual:Tags|MediaWiki]].',
@@ -9019,13 +9153,19 @@ $4 is the gender of the target user.',
 'api-error-publishfailed' => 'API error message that can be used for client side localisation of API errors.',
 'api-error-timeout' => 'API error message that can be used for client side localisation of API errors.',
 'api-error-unclassified' => 'API error message that can be used for client side localisation of API errors.',
-'api-error-unknown-code' => 'API error message that can be used for client side localisation of API errors. Parameters:
-* $1 may contain more error details.',
+'api-error-unknown-code' => 'API error message that can be used for client side localisation of API errors.
+
+Parameters:
+* $1 - may contain more error details
+{{Identical|Unknown error}}',
 'api-error-unknown-error' => 'API error message that can be used for client side localisation of API errors.',
 'api-error-unknown-warning' => 'API error message that can be used for client side localisation of API errors. Parameters:
 * $1 is an unknown warning.',
-'api-error-unknownerror' => 'API error message that can be used for client side localisation of API errors. Parameters:
-* $1 is an unknown error message.',
+'api-error-unknownerror' => 'API error message that can be used for client side localisation of API errors.
+
+Parameters:
+* $1 - an unknown error message
+{{Identical|Unknown error}}',
 'api-error-uploaddisabled' => 'API error message that can be used for client side localisation of API errors.',
 'api-error-verification-error' => 'The word "extension" refers to the part behind the last dot in a file name, that by convention gives a hint about the kind of data format which a files contents are in.',
 
index c9d6c8f..13a8098 100644 (file)
@@ -373,6 +373,18 @@ $messages = array(
 'oct' => 'ukt',
 'nov' => 'nuw',
 'dec' => 'dis',
+'january-date' => '$1 ñiqin inirupi',
+'february-date' => '$1 ñiqin phiwrirupi',
+'march-date' => '$1 ñiqin marsupi',
+'april-date' => '$1 ñiqin awrilpi',
+'may-date' => '$1 ñiqin mayukillapi',
+'june-date' => '$1 ñiqin hunyupi',
+'july-date' => '$1 ñiqin hulyupi',
+'august-date' => '$1 ñiqin awustupi',
+'september-date' => '$1 ñiqin sitimripi',
+'october-date' => '$1 ñiqin uktuwripi',
+'november-date' => '$1 ñiqin nuwimripi',
+'december-date' => '$1 ñiqin disimripi',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Katiguriya|Katiguriyakuna}}',
@@ -454,6 +466,7 @@ $messages = array(
 'create-this-page' => "Kay p'anqata kamariy",
 'delete' => 'Qulluy',
 'deletethispage' => "Kay p'anqata qulluy",
+'undeletethispage' => "Kay p'anqata qullusqamanta paqarichiy",
 'undelete_short' => "Paqarichiy {{PLURAL:$1|huk llamk'apusqa|$1 llamk'apusqa}}",
 'viewdeleted_short' => '{{PLURAL:$1|qullusqa hukchasqa|$1 qullusqa hukchasqa}} qhaway',
 'protect' => 'Amachay',
@@ -507,7 +520,6 @@ $1",
 'disclaimers' => 'Chiqakunamanta rikuchiy',
 'disclaimerpage' => 'Project:Sapsilla saywachasqa paqtachiy',
 'edithelp' => "Llamk'ana yanapay",
-'edithelppage' => 'Help:Qillqa yanapay',
 'helppage' => 'Help:Yanapana',
 'mainpage' => "Qhapaq p'anqa",
 'mainpage-description' => "Qhapaq p'anqa",
@@ -654,6 +666,8 @@ $2",
 'namespaceprotected' => "'''$1''' nisqa suti k'ititaqa llamk'apuyta manam saqillasunkichu.",
 'customcssprotected' => "Manam saqillasunkichu kay CSS p'anqata llamk'apuyta, huk ruraqpa kikin tiyachisqankunayuq kaptinmi.",
 'customjsprotected' => "Manam saqillasunkichu kay JavaScript p'anqata llamk'apuyta, huk ruraqpa kikin tiyachisqankunayuq kaptinmi.",
+'mycustomcssprotected' => "Kay CSS p'anqataqa manam llamk'apuyta atinkichu.",
+'mycustomjsprotected' => "Kay JavaScript p'anqataqa manam llamk'apuyta atinkichu.",
 'ns-specialprotected' => "{{ns:special}} suti k'itipi p'anqakunaqa manam llamk'apunallachu.",
 'titleprotected' => "Kay p'anqa sutitaqa [[User:$1|$1]] sutiyuq ruraq kamariymanta hark'arqanmi, kayraykum nispa: ''$2''.",
 'filereadonlyerror' => 'Manam atinichu "$1" sutiyuq willañiqita hukchayta, "$2" sutiyuq willañiqi churamuna ñawirillanapaq kachkaptinmi.
@@ -720,10 +734,19 @@ Ama qunqaychu [[Special:Preferences|{{SITENAME}} allinkachinaykikunata]] hukchay
 'createacct-realname' => 'Chiqap suti (munaspayki)',
 'createaccountreason' => 'Kayrayku:',
 'createacct-reason' => 'Kayrayku',
+'createacct-reason-ph' => 'Imaraykutaq huk rakiqunata kamarichkanki',
+'createacct-captcha' => 'Amachana llanchiy',
+'createacct-imgcaptcha-ph' => 'Hanaqpi rikusqayki qillqata yaykuchiy',
+'createacct-submit' => 'Rakiqunaykita kamariy',
+'createacct-benefit-heading' => '{{SITENAME}}taqa qam hina runakunam ruran.',
+'createacct-benefit-body1' => "{{PLURAL:$1|llamk'apusqa|llamk'apusqakuna}}",
+'createacct-benefit-body2' => "{{PLURAL:$1|p'anqa|p'anqakuna}}",
+'createacct-benefit-body3' => "{{PLURAL:$1|llamk'apuq|llamk'apuqkuna}}",
 'badretype' => 'Qusqayki yaykuna rimakunaqa manam kaqllachu.',
 'userexists' => 'Munasqayki ruraqpa sutiykiqa kachkanñam.
 Ama hina kaspa, huk ruraqpa sutiykita akllay.',
 'loginerror' => "Pantasqa llamk'apuy tiyaypa qallarisqan",
+'createacct-error' => 'Rakiquna kamariy pantasqa',
 'createaccounterror' => 'Manam atinichu rakiqunata kamariyta: $1',
 'nocookiesnew' => "Ruraqpa rakiqunaykiqa kichasqañam, ichataq manaraqmi yaykurqankichu. {{SITENAME}}qa <em>kuki</em> nisqakunatam llamk'achin ruraqkunata kikinyachinapaq. Antañiqiqniykipiqa manam <em>kuki</em> nisqakuna atinchu. Ama hina kaspa, atichispa huk kutita yaykuykachay.",
 'nocookieslogin' => "{{SITENAME}} <em>kuki</em> nisqakunata llamk'achin ruraqkunata kikinyachinapaq. Antañiqiqniykipiqa manam <em>kuki</em> nisqakuna atinchu. Ama hina kaspa, atichispa huk kutita ruraykachay.",
@@ -768,7 +791,7 @@ Ama hina kaspa, chaskispaykiqa ruraqpa sutiykita nispa musuqmanta yaykuy.',
 'cannotchangeemail' => 'Ruraqpa rakiqunanpi e-chaski imamaytakunaqa kay wikipi manam hukchanallachu.',
 'emaildisabled' => 'Kay tiyayqa e-chaskita manam kachayta atinchu.',
 'accountcreated' => 'Rakiqunaqa kichasqañam',
-'accountcreatedtext' => '$1 sutiyuq ruraqpa rakiqunanqa kichasqañam.',
+'accountcreatedtext' => '[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|rimanakuy]]) sutiyuq ruraqpa rakiqunanqa kichasqañam.',
 'createaccount-title' => '{{SITENAME}}paq musuq rakiqunata kichariy',
 'createaccount-text' => 'Pipas e-chaski imamaytaykipaq {{SITENAME}}pi ($4) "$2" sutiyuq rakiqunatam kicharqan, "$3" nisqa yaykuna rimayuq. Yaykuspayki yaykuna rimaykita hukchanaykim tiyanman.
 
@@ -801,13 +824,15 @@ Kay willay pantasqa kaptinqa, qhawarparillay.',
 'resetpass-wrong-oldpass' => "Mit'alla icha kunan yaykuna rimaqa manam allinchu.
 Yaykuna rimaykitaqa aypalla hukcharqunkiñachá icha huk mit'alla yaykuna rimata mañakurqunkiñachá.",
 'resetpass-temp-password' => "Mit'alla yaykuna rima:",
+'resetpass-abort-generic' => "Yaykuna rima hukchaytaqa yapa wakichim p'itirqan.",
 
 # Special:PasswordReset
 'passwordreset' => 'Yaykuna rimata kutichiy',
-'passwordreset-text' => "Kay hunt'ana p'anqata hunt'ay, yaykuna rimaykita kutichinaykipaq.",
+'passwordreset-text-one' => "Kay hunt'ana p'anqata hunt'ay, yaykuna rimaykita kutichinaykipaq.",
+'passwordreset-text-many' => '{{PLURAL:$1|Kay willa rakikunamanta hukta yaykuchiy, yaykuna rimaykita kutichinaykipaq.}}',
 'passwordreset-legend' => 'Yaykuna rimata kutichiy',
 'passwordreset-disabled' => 'Kay wikipiqa yaykuna rimata manam kutichiyta atinkichu.',
-'passwordreset-pretext' => '{{PLURAL:$1||Qatiqpi kaq willa rakikunamanta huktam yaykuchiy}}',
+'passwordreset-emaildisabled' => "Kay wikipiqa e-chaski llamk'anakunaman ama nisqam.",
 'passwordreset-username' => 'Ruraqpa sutin:',
 'passwordreset-domain' => 'Duminyu:',
 'passwordreset-capture' => 'Llalliwaq e-chaskita qhawayta munankichu?',
@@ -1032,9 +1057,11 @@ Manam nirqanchu imarayku.",
 Qullusqachá.",
 'edit-conflict' => "Tuylla llamk'apuymanta sasachakuy.",
 'edit-no-change' => "Manapuni hukchaptiykim, llamk'apusqayki manam hallch'asqachu.",
+'postedit-confirmation' => "Llamk'apusqaykiqa waqaychasqañam.",
 'edit-already-exists' => "Manam atinichu musuq p'anqata kamariyta.
 Kachkañam.",
 'defaultmessagetext' => 'Ñawpaq qillqa',
+'content-failed-to-parse' => "Manam atinichu $2 samiqta $1 kikinchapaq t'ikrayta: $3",
 'invalid-content-data' => 'Samiqmanta willaykunaqa manam allinchu',
 'content-not-allowed-here' => '"$1" nisqa samiqqa [[$2]] sutiyuq p\'anqapi manam saqillasqachu',
 'editwarning-warning' => "Kay p'anqata saqispaykiqa lliw rurarqusqayki hukchasqakunatachá chinkachiykiman.
@@ -1277,7 +1304,6 @@ Imaymanata [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} qulluy ha
 'searchmenu-legend' => 'Maskaypaq akllanakuna',
 'searchmenu-exists' => "'''Kay wikipiqa «[[$1]]» sutiyuq p'anqam kachkan'''",
 'searchmenu-new' => "'''Kay wikipi \"[[:\$1]]\" sutiyuq p'anqata kamariy!'''",
-'searchhelp-url' => 'Help:Yanapana',
 'searchmenu-prefix' => "[[Special:PrefixIndex/$1|Kay ñawpa k'askaqchayuq huk p'anqakunata maskay]]",
 'searchprofile-articles' => "Samiq p'anqakuna",
 'searchprofile-project' => "Yanapanapaq ruraykamaypaqpas p'anqakuna",
@@ -1318,6 +1344,7 @@ Imaymanata [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} qulluy ha
 'powersearch-togglenone' => 'Mana imapas',
 'search-external' => 'Hawapi maskay',
 'searchdisabled' => "{{SITENAME}} nisqapi maskaymanqa ama nisqam. Hinachkaptinqa, maskariy google nisqawan icha huk hawa maskanakunawan, ichataq yuyariy, {{SITENAME}}manta hallch'asqankunaqa manañachá musuqllachu.",
+'search-error' => 'Maskaypiqa pantasqam tukurqan: $1',
 
 # Preferences page
 'preferences' => 'Allinkachinakuna',
@@ -1351,7 +1378,6 @@ Imaymanata [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} qulluy ha
 'resetprefs' => 'Mana waqaychasqa hukchasqakunaman ama niy',
 'restoreprefs' => 'Tukuy kikinmanta allinkachinakunata kutichimuy',
 'prefs-editing' => "Llamk'apusqa",
-'prefs-edit-boxsize' => "Llamk'apuna wintanap chhikan.",
 'rows' => 'Sinrukuna:',
 'columns' => 'Wachukuna:',
 'searchresultshead' => 'Maskay',
@@ -1362,8 +1388,6 @@ Imaymanata [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} qulluy ha
 'recentchangesdays-max' => "(ama $1-manta aswan {{PLURAL:$1|p'unchaw|p'unchaw}} kachunchu)",
 'recentchangescount' => 'Rikuchina hukchasqakunap yupaynin, kikinmanta:',
 'prefs-help-recentchangescount' => "Kaypiqa ñaqha hukchasqakunam, p'anqap wiñay kawsayninkunam, hallch'akunapas.",
-'prefs-help-watchlist-token' => "Kay k'itichata pakasqa llawiwan hunt'aspaykiqa, watiqasqaykikunapaq RSS mikhuchinatam kamarinki.
-Pi kay k'itichapi llawiykita riqsiqpas watiqasqaykikunata ñawiriytam atinqa. Chayrayku takyaq chanita akllay. Kaypiqa kikinmanta kamarisqa akllanallayki chanitam rikunki: $1",
 'savedprefs' => "Allinkachinaykikunaqa hallch'asqañam.",
 'timezonelegend' => "Pacha t'urpi:",
 'localtime' => 'Tiyaylla pacha:',
@@ -1394,7 +1418,6 @@ Pi kay k'itichapi llawiykita riqsiqpas watiqasqaykikunata ñawiriytam atinqa. Ch
 'prefs-reset-intro' => "Kay p'anqataqa llamk'achiyta atinki allinkachinaykikunata kikinmanta kasqaman kutichinaykipaq.
 Chaytataq manam kutichiyta atinkichu.",
 'prefs-emailconfirm-label' => 'E-chaskita takyachiy:',
-'prefs-textboxsize' => "Llamk'apuna wintanap chhikan kaynin",
 'youremail' => 'E-chaski imamaytayki',
 'username' => '{{GENDER:$1|Ruraqpa sutin}}:',
 'uid' => '{{GENDER:$1|Ruraqpa}} ID-nin:',
@@ -1459,6 +1482,7 @@ $1 {{PLURAL:$1|sanampamanta|sanampakunamanta}} aswan pisi kananmi.',
 'userrights-notallowed' => 'Qampa rakiqunaykiwanqa manam ruraqkunap hayñinkunata yapayta icha qichuyta atinkichu.',
 'userrights-changeable-col' => 'Hukchanayki huñukuna',
 'userrights-unchangeable-col' => 'Mana hukchanayki huñukuna',
+'userrights-conflict' => 'Ruraqpa hayñin tupanakuymi. Ama hina kaspa, hukchasqaykikunata musuqmanta quy.',
 
 # Groups
 'group' => 'Huñu:',
@@ -1529,6 +1553,8 @@ $1 {{PLURAL:$1|sanampamanta|sanampakunamanta}} aswan pisi kananmi.',
 'right-editusercssjs' => "Huk ruraqkunap CSS, JS willañiqinkunata llamk'apuy",
 'right-editusercss' => "Huk ruraqkunap CSS willañiqinkunata llamk'apuy",
 'right-edituserjs' => "Huk ruraqkunap JS willañiqinkunata llamk'apuy",
+'right-editmyusercss' => "Kikiykip ruraqpaq CSS willañiqiykikunata llamk'apuy",
+'right-editmyuserjs' => "Kikiykip ruraqpaq JavaScript willañiqiykikunata llamk'apuy",
 'right-rollback' => "Huk p'anqapi qhipaq llamk'apuqpa hukchasqankunata utqaylla kutichiy",
 'right-markbotedits' => "Kutichisqa llamk'apusqakunata rurana antachap llamk'apusqankunata hina sananchay",
 'right-noratelimit' => 'Achura saywakunap manam chayachisqanchu',
@@ -1632,7 +1658,6 @@ $1 {{PLURAL:$1|sanampamanta|sanampakunamanta}} aswan pisi kananmi.',
 'recentchangeslinked-feed' => "T'inkisqapi hukchasqakuna",
 'recentchangeslinked-toolbox' => "T'inkisqapi hukchasqakuna",
 'recentchangeslinked-title' => '"$1"-wan t\'inkisqa hukchasqa',
-'recentchangeslinked-noresult' => "Nisqa mit'apiqa manam hukchasqa t'inkimuqkuna kanchu.",
 'recentchangeslinked-summary' => "Kay sapaq p'anqaqa t'inkisqa p'anqakunapi ñaqha hukchasqakunatam rikuchin. Watiqasqayki p'anqakunaqa '''yanasapa qillqasqam'''.",
 'recentchangeslinked-page' => "P'anqap sutin:",
 'recentchangeslinked-to' => "Qusqa p'anqaman t'inkimuq p'anqakunapi hukchasqakunata rikuchiy chay ranti",
@@ -2249,7 +2274,6 @@ Qampa [[Special:Preferences|allinkachinaykikunapi]] qillqakamachisqayki imamayta
 'unwatchthispage' => 'Amaña watiqaychu',
 'notanarticle' => 'Manam qillqachu',
 'notvisiblerev' => 'Musuqchasqaqa qullusqam',
-'watchnochange' => "Manam ima watiqasqayki qillqapas llamk'apusqachu karqan rikuchisqa mit'api.",
 'watchlist-details' => "Watiqana sutisuyuykipiqa {{PLURAL:$1|huk p'anqam|$1 p'anqakunam}}, rimanakuna p'anqakunata mana yupaspa.",
 'wlheader-enotif' => 'E-chaskimanta musyachinaman arí nisqañam.',
 'wlheader-showupdated' => "Qayna watukamusqaykimantapacha hukchasqa p'anqakunataqa '''yanasapa''' nisqapim rikunki.",
@@ -2491,7 +2515,7 @@ $1',
 'mycontris' => "Llamk'apusqaykuna",
 'contribsub2' => '$1 ($2)',
 'nocontribs' => 'Manam kay hina hukchasqakuna kanchu.',
-'uctop' => ' (qhipaq hukchasqa)',
+'uctop' => '(qhipaq hukchasqa)',
 'month' => 'Kay killamanta (ñawpaqmantapas):',
 'year' => 'Kay watamanta (ñawpaqmantapas):',
 
@@ -2801,6 +2825,7 @@ Ama hina kaspa, [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] n
 'thumbnail-more' => 'Hatunchay',
 'filemissing' => 'Manam willañiqi kachkanchu',
 'thumbnail_error' => 'Manam atinichu rikchachata kamayta: $1',
+'thumbnail_error_remote' => '$1 nisqamanta pantasqa willasqa: $2',
 'djvu_page_error' => "DjVu nisqa p'anqaqa nisyum",
 'djvu_no_xml' => 'Manam atinichu XML-ta apamuy DjVu willañiqipaq',
 'thumbnail-temp-create' => "Manam atinichu mit'alla rikch'acha willañiqita kamariyta.",
@@ -2854,6 +2879,7 @@ Tukuy hawa wikimanta chaskisqakunaqa [[Special:Log/import|hawamanta chaskiy hall
 'import-error-interwiki' => '"$1" sutiyuq p\'anqaqa hawamanta manam chaskisqachu, sutin wikipura (interwiki) nisqapaq hallch\'asqa kaptinmi.',
 'import-error-special' => '"$1" sutiyuq p\'anqaqa hawamanta manam chaskisqachu, mana p\'anqapaq kaq sapaq suti k\'itiman kapuspanmi.',
 'import-error-invalid' => '"$1" sutiyuq p\'anqaqa hawamanta manam chaskisqachu, sutin mana allin kaptinmi.',
+'import-error-unserialize' => '"$1" nisqa p\'anqapi $2 musuqchasqataqa manam ñiqirayta atinichu. Kay musuqchasqaqa $4 hina ñiqichasqa $3 kikinchatas llamk\'achin.',
 'import-options-wrong' => 'Pantasqa {{PLURAL:$2|akllasqa|akllasqakuna}}: <nowiki>$1</nowiki>',
 'import-rootpage-invalid' => "Qusqa saphi p'anqaqa manam allin sutichu.",
 'import-rootpage-nosubpage' => 'Saphi p\'anqap "$1" sutisuyunpiqa urin p\'anqakuna manam kanqachu.',
@@ -3103,11 +3129,25 @@ Payta rurachiyqa antañiqiqniykita llikaykitapas waqllinqachá.",
 'minutes' => '{{PLURAL:$1|huk minutu|$1 minutu}}',
 'hours' => '{{PLURAL:$1|huk ura|$1 ura}}',
 'days' => "{{PLURAL:$1|huk p'unchaw|$1 p'unchaw}}",
+'weeks' => '{{PLURAL:$1|huk simana|$1 simana}}',
 'months' => '{{PLURAL:$1|huk killa|$1 killa}}',
 'years' => '{{PLURAL:$1|huk wata|$1 wata}}',
 'ago' => '$1 ñaqha',
 'just-now' => 'kunallan',
 
+# Human-readable timestamps
+'hours-ago' => '$1 {{PLURAL:$1|ura|urakuna}} ñaqha',
+'minutes-ago' => '$1 {{PLURAL:$1|minutu|minutukuna}} ñaqha',
+'seconds-ago' => '$1 {{PLURAL:$1|sikundu|sikundukuna}} ñaqha',
+'monday-at' => 'Killachaw $1 pachapi',
+'tuesday-at' => 'Atipachaw $1 pachapi',
+'wednesday-at' => 'Quyllurchaw $1 pachapi',
+'thursday-at' => 'Illapachaw $1 pachapi',
+'friday-at' => "Ch'askachaw $1 pachapi",
+'saturday-at' => "K'uychichaw $1 pachapi",
+'sunday-at' => 'Intichaw $1 pachapi',
+'yesterday-at' => "Qayna p'unchaw $1 pachapi",
+
 # Bad image list
 'bad_image_list' => "Chantaqa kay hinam:
 
@@ -3690,7 +3730,6 @@ Sapsilla ñawpaq qhawariyta tukuykachay.',
 'version-other' => 'Wakin',
 'version-mediahandlers' => "Midya llamk'apuq",
 'version-hooks' => "Ch'iwinakuna",
-'version-extension-functions' => "Mast'arina ruranakuna",
 'version-parser-extensiontags' => "T'ikrana mast'arina ruranakuna",
 'version-parser-function-hooks' => "T'ikrana rurana ch'iwinakuna",
 'version-hook-name' => "Ch'iwinap sutin",
@@ -3712,6 +3751,17 @@ MediaWikitaqa mast'ariyku runakunata yanapanapaqmi, ichataq MANAM FIYAKUYTA ATIY
 'version-entrypoints-header-entrypoint' => "Yaykuna t'uksi",
 'version-entrypoints-header-url' => 'URL tiyay',
 
+# Special:Redirect
+'redirect' => 'Willañiqikama, ruraqkama icha musuqchay ID-kama pusapuy',
+'redirect-legend' => "Willañiqiman icha p'anqaman pusapuy",
+'redirect-submit' => 'Riy',
+'redirect-lookup' => 'Maskay:',
+'redirect-value' => 'Chani:',
+'redirect-user' => 'Ruraqpa kikin kaynin',
+'redirect-revision' => "P'anqamanta musuqchasqa",
+'redirect-file' => 'Willañiqip sutin',
+'redirect-not-exists' => 'Chaniqa manam tarisqachu',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Iskaychasqa willañiqikunata maskay',
 'fileduplicatesearch-summary' => "Iskaychasqa willañiqikunata maskay ''hash'' chaninpi tiksispa.",
@@ -3800,6 +3850,9 @@ MediaWikitaqa mast'ariyku runakunata yanapanapaqmi, ichataq MANAM FIYAKUYTA ATIY
 'htmlform-submit' => 'Kachay',
 'htmlform-reset' => 'Hukchasqakunata kutichiy',
 'htmlform-selectorother-other' => 'Wakin',
+'htmlform-no' => 'Mana',
+'htmlform-yes' => 'Arí',
+'htmlform-chosen-placeholder' => 'Akllanata akllay',
 
 # SQLite database support
 'sqlite-has-fts' => "$1 hunt'a qillqa maskana yanapawan",
index 0544c24..b7e91e0 100644 (file)
@@ -259,7 +259,6 @@ $1',
 'disclaimers' => 'Kamachikmanta willaykuna',
 'disclaimerpage' => 'Project:Kamachikmanta kapak willaykuna',
 'edithelp' => 'Llankanapaa yanapa',
-'edithelppage' => 'Help:Imashina killkankapa yanapana ?',
 'helppage' => 'Help:Yanapa',
 'mainpage' => 'Kapak Panka',
 'mainpage-description' => 'Kapak panka',
@@ -569,7 +568,6 @@ Shuk rurakkunaka kikinpa e-chaski ''dirección''ta mana yachankachu.",
 'recentchangeslinked' => 'Shukchishka mushuk killkaykuna',
 'recentchangeslinked-toolbox' => 'Tinkishka mushuk killkaykuna',
 'recentchangeslinked-title' => '"$1"-wan tinkishka mushuk killkaykuna',
-'recentchangeslinked-noresult' => 'Tinkishka pankakunaka kay akllashka pachipi mana kutin killkashkachu karka.',
 'recentchangeslinked-summary' => "Kay pankaka tukuy shuk pankamanta pushashka pankakunapi (icha tukuy shuk ayllupi tiyak pankakunapi) mushuk killkaykunata rikuchiy. Kikinka shuk pankata [[Special:Watchlist|rikukpika]], chay pankapi mushuk killkaykunata '''yanachishkami''' kanka.",
 'recentchangeslinked-page' => 'Pankapa shuti',
 'recentchangeslinked-to' => 'Ama pankata rikuchina, ranti tukuy kay pankaman tinkiyuk pankakunapi mushuk killkaykunatalla rikuchina',
index db311ea..df0bd79 100644 (file)
@@ -281,7 +281,6 @@ $1',
 'disclaimers' => 'Impressum',
 'disclaimerpage' => 'Project:Impressum',
 'edithelp' => 'Agid per modifitgar',
-'edithelppage' => 'Help:Prims pass',
 'helppage' => 'Help:Cuntegn',
 'mainpage' => 'Pagina principala',
 'mainpage-description' => 'Pagina principala',
@@ -572,10 +571,8 @@ Eventualmain has ti gia midà cun success tes pled-clav u dumandà per in nov pl
 
 # Special:PasswordReset
 'passwordreset' => 'Redefinir il pled-clav',
-'passwordreset-text' => "Emplenescha quest formular per retschaiver in e-mail che cuntegna ils detagls per acceder tes conto d'utilisader.",
 'passwordreset-legend' => 'Redefinir il pled-clav',
 'passwordreset-disabled' => 'La pussaivladad da redefinir il pled-clav è vegnida deactivada sin questa wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Endatescha in dals tocs da data sutvart}}',
 'passwordreset-username' => "Num d'utilisader:",
 'passwordreset-domain' => 'Domain:',
 'passwordreset-capture' => "Mussar l'e-mail che resultescha?",
@@ -1066,7 +1063,6 @@ Detagls pon vegnir chattads en il [{{fullurl:{{#Special:Log}}/delete|page={{FULL
 'searchmenu-legend' => 'Opziuns da tschertgar',
 'searchmenu-exists' => "'''Igl exista ina pagina cun il num \"[[:\$1]] sin questa vichi\"'''",
 'searchmenu-new' => "'''Crear la pagina \"[[:\$1]]\" sin questa vichi!'''",
-'searchhelp-url' => 'Help:Cuntegn',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Mussar tut las paginas cun quest prefix]]',
 'searchprofile-articles' => 'Paginas da cuntegn',
 'searchprofile-project' => 'Agid e paginas dal project',
@@ -1143,7 +1139,6 @@ Considerescha che lur index da {{SITENAME}} po cuntegnair datas ch'èn betg pli
 'resetprefs' => 'remetter las preferenzas (reset)',
 'restoreprefs' => 'Restituir tut las preferenzas da standard',
 'prefs-editing' => 'Modifitgar',
-'prefs-edit-boxsize' => 'Grondezza da la fanestra da modifitgar',
 'rows' => 'Lingias:',
 'columns' => 'Colonnas:',
 'searchresultshead' => 'Tschertga',
@@ -1154,9 +1149,6 @@ Considerescha che lur index da {{SITENAME}} po cuntegnair datas ch'èn betg pli
 'recentchangesdays-max' => 'Maximalmain $1 {{PLURAL:$1|di|dis}}',
 'recentchangescount' => 'Dumber da modificaziuns che duai vegnir mussà sco standard:',
 'prefs-help-recentchangescount' => 'Quai cumpiglia las ultimas midadas, la cronologia da paginas ed ils protocols.',
-'prefs-help-watchlist-token' => "Emplenir quest champ cun ina clav secreta vegn a generar in feed RSS per tia glista d'observaziun.
-Mintgin che enconuscha questa clav vegn ad esser abel da leger tia glista d'observaziun, tscherna pia ina clav segira.
-Qua è ina valur casuali che ti pos utilisar: $1",
 'savedprefs' => 'Tias preferenzas èn vegnidas memorisadas.',
 'timezonelegend' => "Zona d'urari:",
 'localtime' => 'Temp local:',
@@ -1187,7 +1179,6 @@ Qua è ina valur casuali che ti pos utilisar: $1",
 'prefs-reset-intro' => 'Ti pos utilisar questa pagina per restituir las valurs da standard da questa pagina per tias preferenzas. 
 Questa operaziun na po betg vegnir revocada.',
 'prefs-emailconfirm-label' => 'Confirmaziun per e-mail:',
-'prefs-textboxsize' => 'Grondezza da la fanestra da modifitgar',
 'youremail' => 'Adressa dad e-mail:',
 'username' => "{{GENDER:$1|Num d'utilisader|Num da l'utilisadra}}:",
 'uid' => "ID da l'{{GENDER:$1|utilisader|utilisadra}}:",
@@ -1428,7 +1419,6 @@ Tia adressa dad e-mail na vegn betg mussada sche auters utilisaders ta contactes
 'recentchangeslinked-feed' => 'midadas sin paginas colliadas',
 'recentchangeslinked-toolbox' => 'midadas sin paginas colliadas',
 'recentchangeslinked-title' => 'Midadas en artitgels ch\'èn colliads cun "$1"',
-'recentchangeslinked-noresult' => 'Naginas midadas sin artitgels collads durant la perioda endatada.',
 'recentchangeslinked-summary' => "Quest è ina glista da las midadas ch'èn vegnidas fatgas da curt en artitgels ch'èn colliads cun ina pagina specifica (ni en commembers d'ina categoria specifica).
 Paginas sin [[Special:Watchlist|tia glista d'observaziun]] èn '''grassas'''.",
 'recentchangeslinked-page' => 'Num da la pagina:',
@@ -2067,7 +2057,6 @@ Midadas futuras vid questa pagina e la pagina da discussiun appertegnenta vegnan
 'unwatchthispage' => 'Betg pli observar',
 'notanarticle' => "Quai n'è betg ina pagina da cuntegn",
 'notvisiblerev' => "L'ultima versiun d'in auter utilisader è vegnida stizzada",
-'watchnochange' => 'Nagin dals artitgels che ti observeschas è vegnì midà durant la perioda da temp inditgada.',
 'watchlist-details' => "{{PLURAL:$1|Ina pagina|$1 paginas}} èn sin tia glista d'observaziun (senza dumbrar las paginas da discussiun).",
 'wlheader-enotif' => "Il servetsch d'infurmaziun per e-mail è activà.",
 'wlheader-showupdated' => "Artitgels ch'èn vegnids midads suenter che ti has vis els la davosa giada èn mussads '''grass'''",
@@ -3558,7 +3547,6 @@ Ti pos era utilisar [[Special:EditWatchlist|la pagina da standard]].',
 'version-other' => 'Auter',
 'version-mediahandlers' => 'Manipulaturs da meds',
 'version-hooks' => 'Hooks',
-'version-extension-functions' => 'Funcziuns dad extensiuns',
 'version-parser-extensiontags' => 'Tags che extendan il parser',
 'version-parser-function-hooks' => 'Hooks per funcziuns dal parser',
 'version-hook-name' => 'Num dal hook',
index a81f8b7..bce50fa 100644 (file)
@@ -12,6 +12,7 @@
  * @author Danutz
  * @author Emily
  * @author Firilacroco
+ * @author Geitost
  * @author Gutza
  * @author KlaudiuMihaila
  * @author Laurap
@@ -501,6 +502,7 @@ pe titlul secțiunii (JavaScript)',
 'create-this-page' => 'Creați această pagină',
 'delete' => 'Ștergere',
 'deletethispage' => 'Șterge pagina',
+'undeletethispage' => 'Recuperează această pagină',
 'undelete_short' => 'Recuperarea {{PLURAL:$1|unei modificări|a $1 modificări|a $1 de modificări}}',
 'viewdeleted_short' => 'Vedeți {{PLURAL:$1|o modificare ștearsă|$1 (de) modificări șterse}}',
 'protect' => 'Protejare',
@@ -554,7 +556,6 @@ $1',
 'disclaimers' => 'Termeni',
 'disclaimerpage' => 'Project:Termeni',
 'edithelp' => 'Ajutor pentru modificare',
-'edithelppage' => 'Help:Cum să modifici o pagină',
 'helppage' => 'Help:Ajutor',
 'mainpage' => 'Pagina principală',
 'mainpage-description' => 'Pagina principală',
@@ -703,6 +704,10 @@ $2',
 'namespaceprotected' => "Nu aveți permisiunea de a modifica pagini din spațiul de nume '''$1'''.",
 'customcssprotected' => 'Nu aveți permisiunea de a modifica această pagină CSS, deoarece conține setările personale ale altui utilizator.',
 'customjsprotected' => 'Nu aveți permisiunea de a modifica această pagină JavaScript, deoarece conține setările personale ale altui utilizator.',
+'mycustomcssprotected' => 'Nu aveți permisiunea să modificați această pagină CSS.',
+'mycustomjsprotected' => 'Nu aveți permisiunea să modificați această pagină JavaScript.',
+'myprivateinfoprotected' => 'Nu aveți permisiunea să vă modificați informațiile personale.',
+'mypreferencesprotected' => 'Nu aveți permisiunea să vă modificați preferințele.',
 'ns-specialprotected' => 'Paginile din spațiul de nume {{ns:special}} nu pot fi editate.',
 'titleprotected' => "Acest titlu a fos protejat la creare de [[User:$1|$1]].
 Motivul invocat este ''$2''.",
@@ -730,6 +735,7 @@ Nu uitați să vă modificați [[Special:Preferences|preferințele]] pentru {{SI
 'yourname' => 'Nume de utilizator:',
 'userlogin-yourname' => 'Nume de utilizator',
 'userlogin-yourname-ph' => 'Introduceți numele de utilizator',
+'createacct-another-username-ph' => 'Introduceți numele de utilizator',
 'yourpassword' => 'Parolă:',
 'userlogin-yourpassword' => 'Parolă',
 'userlogin-yourpassword-ph' => 'Introduceți parola',
@@ -754,7 +760,7 @@ Nu uitați să vă modificați [[Special:Preferences|preferințele]] pentru {{SI
 'notloggedin' => 'Nu sunteți autentificat',
 'userlogin-noaccount' => 'Nu aveți cont încă?',
 'userlogin-joinproject' => 'Înscrieți-vă la {{SITENAME}}',
-'nologin' => "Nu aveți cont încă? '''$1'''.",
+'nologin' => 'Nu aveți cont încă? $1.',
 'nologinlink' => 'Creați-vă un cont de utilizator acum',
 'createaccount' => 'Creare cont',
 'gotaccount' => "Aveți deja un cont de utilizator? '''$1'''.",
@@ -764,9 +770,11 @@ Nu uitați să vă modificați [[Special:Preferences|preferințele]] pentru {{SI
 'helplogin-url' => 'Help:Autentificare',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Ajutor la autentificare]]',
 'createacct-join' => 'Introduceți-vă informațiile mai jos.',
+'createacct-another-join' => 'Introduceți, mai jos, informațiile noului cont.',
 'createacct-emailrequired' => 'Adresă de e-mail',
 'createacct-emailoptional' => 'Adresă de e-mail (opțională)',
 'createacct-email-ph' => 'Introduceți adresa dumnevoastră de e-mail',
+'createacct-another-email-ph' => 'Introduceți adresa de e-mail',
 'createaccountmail' => 'Utilizează o parolă temporară aleasă la întâmplare și o trimite la adresa de e-mail indicată mai jos',
 'createacct-realname' => 'Nume real (opțional)',
 'createaccountreason' => 'Motiv:',
@@ -775,6 +783,7 @@ Nu uitați să vă modificați [[Special:Preferences|preferințele]] pentru {{SI
 'createacct-captcha' => 'Verificare de securitate',
 'createacct-imgcaptcha-ph' => 'Introduceți textul pe care îl vedeți deasupra',
 'createacct-submit' => 'Creați-vă contul',
+'createacct-another-submit' => 'Creează un alt cont',
 'createacct-benefit-heading' => '{{SITENAME}} este un proiect clădit de oameni ca dumneavoastră.',
 'createacct-benefit-body1' => '{{PLURAL:$1|modificare|modificări|de modificări}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|pagină|pagini|de pagini}}',
@@ -789,7 +798,7 @@ Vă rugăm să alegeți un alt nume.',
 'nocookieslogin' => '{{SITENAME}} folosește module cookie pentru a autentifica utilizatorii. Browser-ul dvs. are cookie-urile dezactivate. Vă rugăm să le activați și să incercați din nou.',
 'nocookiesfornew' => 'Contul de utilizator nu a fost creat, deoarece nu am putut confirma sursa.
 Asigurați-vă că aveți cookie-urile activate, reîncărcați pagina și încercați din nou.',
-'noname' => 'Numele de utilizator pe care l-ai specificat este invalid.',
+'noname' => 'Numele de utilizator pe care l-ați introdus nu este valid.',
 'loginsuccesstitle' => 'Autentificare reușită',
 'loginsuccess' => "'''Ați fost autentificat la {{SITENAME}} ca „$1”.'''",
 'nosuchuser' => 'Nu există nici un utilizator cu numele „$1”.
@@ -831,7 +840,7 @@ Prin urmare, vizitatorii care folosesc același IP nu mai pot crea alte conturi
 'cannotchangeemail' => 'Adresele de e-mail asociate conturilor nu pot fi schimbate pe acest wiki.',
 'emaildisabled' => 'Acest site nu poate trimite e-mailuri.',
 'accountcreated' => 'Contul a fost creat.',
-'accountcreatedtext' => 'Contul utilizatorului pentru $1 a fost creat.',
+'accountcreatedtext' => 'Contul utilizatorului pentru [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|discuție]]) a fost creat.',
 'createaccount-title' => 'Creare de cont la {{SITENAME}}',
 'createaccount-text' => 'Cineva a creat un cont asociat adresei dumneavoastră de e-mail pe {{SITENAME}} ($4) numit „$2” și având parola „$3”.
 Este de dorit să vă autentificați și să schimbați parola cât mai repede.
@@ -870,11 +879,11 @@ Este posibil să fi reușit deja schimbarea parolei sau să fi cerut o parolă t
 
 # Special:PasswordReset
 'passwordreset' => 'Resetare parolă',
-'passwordreset-text' => 'Completați acest formular pentru a vă reseta parola.',
+'passwordreset-text-one' => 'Completați acest formular pentru a vă reseta parola.',
+'passwordreset-text-many' => '{{PLURAL:$1|Completați unul din câmpuri pentru a vă reseta parola.}}',
 'passwordreset-legend' => 'Resetare parolă',
 'passwordreset-disabled' => 'Resetarea parolei a fost dezactivată pe acest wiki.',
 'passwordreset-emaildisabled' => 'Funcțiile de e-mail au fost dezactivate de pe acest wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1| | Introduceți mai jos o parte din informații}}',
 'passwordreset-username' => 'Nume de utilizator:',
 'passwordreset-domain' => 'Domeniu:',
 'passwordreset-capture' => 'Vizualizați e-mailul rezultat?',
@@ -915,6 +924,19 @@ Parolă temporară: $2',
 'changeemail-submit' => 'Modifică adresa de e-mail',
 'changeemail-cancel' => 'Revocare',
 
+# Special:ResetTokens
+'resettokens' => 'Resetare jetoane',
+'resettokens-text' => 'Puteți reseta, aici, jetoanele care permit accesul la anumite date asociate contului dumneavoastră.
+
+Ar 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.',
+'resettokens-legend' => 'Resetare jetoane',
+'resettokens-tokens' => 'Jetoane:',
+'resettokens-token-label' => '$1 (valoare actuală: $2)',
+'resettokens-watchlist-token' => 'Jeton pentru fluxul web al listei de pagini urmărite',
+'resettokens-done' => 'Jetoane resetate.',
+'resettokens-resetbutton' => 'Resetează jetoanele selectate',
+
 # Edit page toolbar
 'bold_sample' => 'Text aldin',
 'bold_tip' => 'Text aldin',
@@ -982,14 +1004,14 @@ Nu veți putea folosi opțiunea de "trimite e-mail" decât dacă aveți înregis
 Aveți adresa IP $3, iar identificatorul dumneavoastră de blocare este $5.
 Vă rugăm să includeți detaliile de mai sus în orice interogări pe care le faceți.',
 'blockednoreason' => 'nici un motiv oferit',
-'whitelistedittext' => 'Trebuie să $1 pentru a edita articole.',
+'whitelistedittext' => 'Trebuie să vă $1 pentru a putea modifica pagini.',
 'confirmedittext' => 'Trebuie să vă confirmați adresa de e-mail înainte de a edita pagini. Vă rugăm să vă setați și să vă validați adresa de e-mail cu ajutorul [[Special:Preferences|preferințelor utilizatorului]].',
 'nosuchsectiontitle' => 'Secțiunea nu poate fi găsită',
 'nosuchsectiontext' => 'Ați încercat să modificați o secțiune care nu există.
 Aceasta fie a fost mutată, fie a fost ștearsă în timp ce vizualizați pagina.',
 'loginreqtitle' => 'Necesită autentificare',
 'loginreqlink' => 'autentificați',
-'loginreqpagetext' => 'Trebuie să te $1 pentru a vizualiza alte pagini.',
+'loginreqpagetext' => 'Trebuie să  $1 pentru a vizualiza alte pagini.',
 'accmailtitle' => 'Parola a fost trimisă.',
 'accmailtext' => "Parola generată automat pentru [[User talk:$1|$1]] a fost trimisă la $2.
 
@@ -1100,7 +1122,7 @@ Puteți edita o pagină deja existentă sau puteți să vă [[Special:UserLogin|
 'nocreate-loggedin' => 'Nu ai permisiunea să creezi pagini noi.',
 'sectioneditnotsupported-title' => 'Modificarea secțiunilor nu este suportată',
 'sectioneditnotsupported-text' => 'Modificarea secțiunilor nu este suportată în această pagină.',
-'permissionserrors' => 'Erori de permisiune',
+'permissionserrors' => 'Eroare de permisiune',
 'permissionserrorstext' => 'Nu aveți permisiune pentru a face acest lucru, din următoarele {{PLURAL:$1|motiv|motive}}:',
 '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.'''
@@ -1116,6 +1138,7 @@ Nicio explicație furnizată.',
 Se pare că a fost ștearsă.',
 'edit-conflict' => 'Conflict de modificare.',
 'edit-no-change' => 'Modificarea dvs. a fost ignorată deoarece nu s-a efectuat nicio schimbare.',
+'postedit-confirmation' => 'Modificarea dumneavoastră a fost salvată.',
 'edit-already-exists' => 'Pagina nouă nu a putut fi creată.
 Ea există deja.',
 'defaultmessagetext' => 'Textul implicit',
@@ -1158,6 +1181,7 @@ Acsete argumente au fost omise.',
 'undo-failure' => 'Modificarea nu poate fi reversibilă datorită conflictului de modificări intermediare.',
 'undo-norev' => 'Modificarea nu poate fi reversibilă pentru că nu există sau pentru că a fost ștearsă.',
 'undo-summary' => 'Anularea modificării $1 făcute de [[Special:Contributions/$2|$2]] ([[User talk:$2|Discuție]])',
+'undo-summary-username-hidden' => 'Anularea versiunii $1 a unui utilizator ascuns',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Crearea contului nu poate fi realizată',
@@ -1184,8 +1208,8 @@ Motivul invocat de $3 este ''$2''",
 (prec) = diferențe față de versiunea precedentă, M = modificare minoră',
 'history-fieldset-title' => 'Răsfoire istoric',
 'history-show-deleted' => 'Doar șterse',
-'histfirst' => 'Primele',
-'histlast' => 'Ultimele',
+'histfirst' => 'cele mai vechi',
+'histlast' => 'cele mai noi',
 'historysize' => '({{PLURAL:$1|1 octet|$1 octeți|$1 de octeți}})',
 'historyempty' => '(gol)',
 
@@ -1336,6 +1360,7 @@ Folosirea linkurilor de navigare va reseta această coloană.',
 'compareselectedversions' => 'Compară versiunile marcate',
 'showhideselectedversions' => 'Șterge/recuperează versiunile marcate',
 'editundo' => 'anulare',
+'diff-empty' => '(Nicio diferență)',
 'diff-multi' => '(Nu {{PLURAL:$1|s-a afișat o versiune intermediară efectuată|s-au afișat $1 versiuni intermediare efectuate|s-au afișat $1 de versiuni intermediare efectuate}} de {{PLURAL:$2|un utilizator|$2 utilizatori|$2 de utilizatori}})',
 'diff-multi-manyusers' => '({{PLURAL:$1|O versiune intermediară efectuată de|$1 (de) versiuni intermediare efectuate de peste}} $2 {{PLURAL:$2|utilizator|utilizatori}} {{PLURAL:$1|neafișată|neafișate}})',
 'difference-missing-revision' => '{{PLURAL:$2|O versiune a|$2 versiuni ale|$2 de versiuni ale}} acestei diferențe ($1) nu {{PLURAL:$2|a fost găsită|au fost găsite}}.
@@ -1363,7 +1388,6 @@ Detalii se pot găsi în [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE
 'searchmenu-legend' => 'Opțiuni căutare',
 'searchmenu-exists' => "'''Există o pagină cu titlul „[[:$1]]'” pe acest site.'''",
 'searchmenu-new' => "'''Creați pagina „[[:$1]]” pe acest wiki!'''",
-'searchhelp-url' => 'Help:Ajutor',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Răsfoiește paginile cu acest prefix]]',
 'searchprofile-articles' => 'Pagini cu conținut',
 'searchprofile-project' => 'Pagini din spațiile Proiect și Ajutor',
@@ -1439,7 +1463,6 @@ Detalii se pot găsi în [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE
 'resetprefs' => 'Resetează preferințele',
 'restoreprefs' => 'Restaurează toate valorile implicite',
 'prefs-editing' => 'Modificare',
-'prefs-edit-boxsize' => 'Mărimea ferestrei de modificare.',
 'rows' => 'Rânduri:',
 'columns' => 'Coloane:',
 'searchresultshead' => 'Parametri căutare',
@@ -1450,9 +1473,9 @@ Detalii se pot găsi în [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE
 'recentchangesdays-max' => '(maxim {{PLURAL:$1|o zi|$1 zile}})',
 'recentchangescount' => 'Numărul modificărilor afișate implicit:',
 'prefs-help-recentchangescount' => 'Sunt incluse schimbările recente, istoricul paginilor și jurnalele.',
-'prefs-help-watchlist-token' => 'Completând această căsuță cu o cheie secretă se va genera un flux RSS pentru lista dumneavoastră de pagini urmărite.
-Oricine cunoaște cheia din această căsuță va putea citi această listă, așa că alegeți o combinație sigură.
-Aici se află o combinație generată întâmplător pe care o puteți folosi: $1',
+'prefs-help-watchlist-token2' => 'Aceasta este cheia secretă pentru fluxul web al listei dumneavoastră de pagini urmărite.
+Oricine o cunoaște vă va putea citi lista de pagini urmărite, așa că n-o partajați cu nimeni.
+[[Special:ResetTokens|Faceți clic aici dacă doriți să o resetați]].',
 'savedprefs' => 'Preferințele dumneavoastră au fost salvate.',
 'timezonelegend' => 'Fus orar:',
 'localtime' => 'Ora locală:',
@@ -1483,7 +1506,6 @@ Aici se află o combinație generată întâmplător pe care o puteți folosi: $
 'prefs-reset-intro' => 'Poți folosi această pagină pentru a reseta preferințele la valorile implicite.
 Acțiunea nu este reversibilă.',
 'prefs-emailconfirm-label' => 'Confirmare e-mail:',
-'prefs-textboxsize' => 'Mărime căsuță de modificare',
 'youremail' => 'Adresă de e-mail:',
 'username' => '{{GENDER:$1|Nume de utilizator}}:',
 'uid' => 'ID {{GENDER:$1|utilizator|utilizatoare}}:',
@@ -1515,7 +1537,9 @@ Dacă decideți furnizarea sa, acesta va fi folosit pentru a vă atribui munca.'
 'prefs-signature' => 'Semnătură',
 'prefs-dateformat' => 'Format dată',
 'prefs-timeoffset' => 'Decalaj orar',
-'prefs-advancedediting' => 'Opțiuni avansate',
+'prefs-advancedediting' => 'General',
+'prefs-editor' => 'Editor',
+'prefs-preview' => 'Previzualizare',
 'prefs-advancedrc' => 'Opțiuni avansate',
 'prefs-advancedrendering' => 'Opțiuni avansate',
 'prefs-advancedsearchoptions' => 'Opțiuni avansate',
@@ -1523,6 +1547,7 @@ Dacă decideți furnizarea sa, acesta va fi folosit pentru a vă atribui munca.'
 'prefs-displayrc' => 'Opțiuni de afișare',
 'prefs-displaysearchoptions' => 'Opțiuni de afișare',
 'prefs-displaywatchlist' => 'Opțiuni de afișare',
+'prefs-tokenwatchlist' => 'Jeton',
 'prefs-diffs' => 'Diferențe',
 
 # User preference: email validation using jQuery
@@ -1551,6 +1576,7 @@ Dacă decideți furnizarea sa, acesta va fi folosit pentru a vă atribui munca.'
 'userrights-changeable-col' => 'Grupuri pe care le puteți schimba',
 'userrights-unchangeable-col' => 'Grupuri pe care nu le puteți schimba',
 'userrights-conflict' => 'Conflict al drepturilor de utilizator! Aplicați din nou modificările dumneavoastră.',
+'userrights-removed-self' => 'V-ați eliminat cu succes propriile drepturi. Ca urmare, nu mai puteți accesa această pagină.',
 
 # Groups
 'group' => 'Grup:',
@@ -1594,7 +1620,7 @@ Dacă decideți furnizarea sa, acesta va fi folosit pentru a vă atribui munca.'
 'right-reupload-shared' => 'Rescrie fișierele disponibile în depozitul partajat',
 'right-upload_by_url' => 'Încarcă un fișier de la o adresă URL',
 'right-purge' => 'Curăță memoria cache pentru o pagină fără confirmare',
-'right-autoconfirmed' => 'Modifică paginile semi-protejate',
+'right-autoconfirmed' => 'Neafectat de limitele pe bază de IP ale raportului',
 'right-bot' => 'Tratare ca proces automat',
 'right-nominornewtalk' => 'Nu declanșează mesajul „Aveți un mesaj nou” atunci când efectuează o modificare minoră pe pagina de discuții a utilizatorului',
 'right-apihighlimits' => 'Folosește o limită mai mare pentru rezultatele cererilor API',
@@ -1615,12 +1641,20 @@ Dacă decideți furnizarea sa, acesta va fi folosit pentru a vă atribui munca.'
 'right-ipblock-exempt' => 'Nu au fost afectați de blocarea făcută IP-ului.',
 'right-proxyunbannable' => 'Treci peste blocarea automată a proxy-urilor',
 'right-unblockself' => 'Se deblochează singur',
-'right-protect' => 'Schimbă nivelurile de protejare și modifică pagini protejate',
-'right-editprotected' => 'Modificare pagini protejate (fără protejare în cascadă)',
+'right-protect' => 'Schimbă nivelurile de protejare și modifică pagini protejate în cascadă',
+'right-editprotected' => 'Modifică pagini protejate ca „{{int:protect-level-sysop}}”',
+'right-editsemiprotected' => 'Modifică pagini protejate ca „{{int:protect-level-autoconfirmed}}”',
 'right-editinterface' => 'Modificare interfața cu utilizatorul',
 'right-editusercssjs' => 'Modifică fișierele CSS și JS ale altor utilizatori',
 'right-editusercss' => 'Modifică fișierele CSS ale altor utilizatori',
 'right-edituserjs' => 'Modifică fișierele JS ale altor utilizatori',
+'right-editmyusercss' => 'Modificați-vă propriile fișiere CSS',
+'right-editmyuserjs' => 'Modificați-vă propriile fișiere JavaScript',
+'right-viewmywatchlist' => 'Vizualizați propria listă de pagini urmărite',
+'right-editmywatchlist' => 'Modificați propria listă de pagini urmărite. Rețineți că anumite acțiuni vor adăuga pagini chiar și fără acest drept.',
+'right-viewmyprivateinfo' => 'Vizualizați-vă datele private (de ex. adresa de e-mail, numele real)',
+'right-editmyprivateinfo' => 'Modificați-vă datele private (de ex. adresa de e-mail, numele real)',
+'right-editmyoptions' => 'Modificați-vă preferințele',
 'right-rollback' => 'Revocarea rapidă a modificărilor ultimului utilizator care a modificat o pagină particulară',
 'right-markbotedits' => 'Marchează revenirea ca modificare efectuată de robot',
 'right-noratelimit' => 'Neafectat de limitele raportului',
@@ -1682,12 +1716,17 @@ Dacă decideți furnizarea sa, acesta va fi folosit pentru a vă atribui munca.'
 'action-userrights-interwiki' => 'modificați permisiunile utilizatorilor de pe alte wiki',
 'action-siteadmin' => 'blocați sau deblocați baza de date',
 'action-sendemail' => 'trimite e-mailuri',
+'action-editmywatchlist' => 'vă modificați lista de pagini urmărite',
+'action-viewmywatchlist' => 'vă vizualizați lista de pagini urmărite',
+'action-viewmyprivateinfo' => 'vă vizualizați informațiile personale',
+'action-editmyprivateinfo' => 'să vă modificați informațiile personale',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|modificare|modificări|de modificări}}',
 'recentchanges' => 'Schimbări recente',
 'recentchanges-legend' => 'Opțiuni schimbări recente',
 'recentchanges-summary' => 'Urmăriți cele mai recente modificări din wiki pe această pagină.',
+'recentchanges-noresult' => 'Nicio modificare din intervalul specificat nu corespunde acestor criterii.',
 'recentchanges-feed-description' => 'Urmărește cele mai recente schimbări folosind acest flux.',
 'recentchanges-label-newpage' => 'Această modificare a creat o pagină nouă',
 'recentchanges-label-minor' => 'Aceasta este o modificare minoră',
@@ -1727,7 +1766,6 @@ $3',
 'recentchangeslinked-feed' => 'Modificări corelate',
 'recentchangeslinked-toolbox' => 'Modificări corelate',
 'recentchangeslinked-title' => 'Modificări legate de „$1”',
-'recentchangeslinked-noresult' => 'Nici o schimbare la paginile legate în perioada dată.',
 'recentchangeslinked-summary' => "Aceasta este o listă a schimbărilor efectuate recent asupra paginilor cu legături de la o anumită pagină (sau asupra membrilor unei anumite categorii).
 Paginile pe care le [[Special:Watchlist|urmăriți]] apar în '''aldine'''.",
 'recentchangeslinked-page' => 'Numele paginii:',
@@ -1739,7 +1777,7 @@ Paginile pe care le [[Special:Watchlist|urmăriți]] apar în '''aldine'''.",
 'reuploaddesc' => 'Revocare încărcare și întoarcere la formularul de trimitere.',
 'upload-tryagain' => 'Trimiteți descrierea fișierului modificată',
 'uploadnologin' => 'Nu sunteți autentificat',
-'uploadnologintext' => 'Trebuie să fiți [[Special:UserLogin|autentificat]] pentru a putea trimite fișiere.',
+'uploadnologintext' => 'Trebuie să vă $1 pentru a încărca fișiere.',
 'upload_directory_missing' => 'Directorul în care sunt încărcate fișierele ($1) lipsește și nu poate fi creat de serverul web.',
 'upload_directory_read_only' => 'Directorul de încărcare ($1) nu poate fi scris de server.',
 'uploaderror' => 'Eroare la trimitere fișier',
@@ -2126,6 +2164,8 @@ O pagină este considerată o pagină de dezambiguizare dacă folosește formate
 'pageswithprop-text' => 'Această pagină listează paginile care utilizează o anumită proprietate de pagină.',
 'pageswithprop-prop' => 'Numele proprietății:',
 'pageswithprop-submit' => 'Du-te',
+'pageswithprop-prophidden-long' => 'valoarea proprietății de text lung ascunsă ($1 kiloocteți)',
+'pageswithprop-prophidden-binary' => 'valoarea proprietății binare ascunsă ($1 kiloocteți)',
 
 'doubleredirects' => 'Redirecționări duble',
 'doubleredirectstext' => 'Această listă conține pagini care redirecționează la alte pagini de redirecționare.
@@ -2183,6 +2223,7 @@ Intrările <del>tăiate</del> au fost rezolvate.',
 'mostrevisions' => 'Articole cu cele mai multe revizuiri',
 'prefixindex' => 'Toate paginile cu prefix',
 'prefixindex-namespace' => 'Toate paginile cu prefix (spațiul de nume $1)',
+'prefixindex-strip' => 'Înlătură prefixul din cadrul listei',
 'shortpages' => 'Pagini scurte',
 'longpages' => 'Pagini lungi',
 'deadendpages' => 'Pagini fără legături',
@@ -2302,7 +2343,8 @@ Necesită cel puțin un domeniu de nivel superior, cum ar fi „*.org”.<br />
 'listgrouprights' => 'Permisiuni grupuri de utilizatori',
 'listgrouprights-summary' => 'Mai jos se află o listă a grupurilor de utilizatori definite în acest wiki, împreună cu permisiunile de acces asociate.
 Pot exista [[{{MediaWiki:Listgrouprights-helppage}}|informații suplimentare]] despre permisiuni individuale.',
-'listgrouprights-key' => '* <span class="listgrouprights-granted">Drept acordat</span>
+'listgrouprights-key' => 'Legendă:
+* <span class="listgrouprights-granted">Drept acordat</span>
 * <span class="listgrouprights-revoked">Drept revocat</span>',
 'listgrouprights-group' => 'Grup',
 'listgrouprights-rights' => 'Permisiuni',
@@ -2373,7 +2415,6 @@ Modificările viitoare efectuate asupra acestei pagini dar și asupra paginii de
 'unwatchthispage' => 'Nu mai urmări',
 'notanarticle' => 'Nu este un articol',
 'notvisiblerev' => 'Versiunea a fost ștearsă',
-'watchnochange' => 'Nici una dintre paginile pe care le urmăriți nu a fost modificată în perioada de timp afișată.',
 'watchlist-details' => '{{PLURAL:$1|O pagină|$1 pagini urmărite|$1 de pagini urmărite}}, excluzând paginile de discuție.',
 'wlheader-enotif' => 'Notificarea prin e-mail este activată.',
 'wlheader-showupdated' => "Paginile care au fost modificate ulterior accesării lor ultima dată de către dumneavoastră sunt '''îngroșate'''.",
@@ -2480,7 +2521,7 @@ acționați cu precauție.',
 Ultima editare a fost făcută de către [[User:$3|$3]] ([[User talk:$3|discuție]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "Descrierea modificărilor a fost: „''$1''”.",
 'revertpage' => 'Anularea modificărilor efectuate de către [[Special:Contributions/$2|$2]] ([[User talk:$2|discuție]]) și revenire la ultima versiune de către [[User:$1|$1]]',
-'revertpage-nouser' => 'Anularea modificărilor efectuate de (nume de utilizator șters) și revenirea la ultima modificare de către [[User:$1|$1]]',
+'revertpage-nouser' => 'Anularea modificărilor efectuate de un utilizator ascuns și revenirea la ultima modificare de către [[User:$1|$1]]',
 'rollback-success' => 'Anularea modificărilor făcute de $1;
 revenire la ultima versiune de $2.',
 
@@ -2622,7 +2663,7 @@ $1',
 'mycontris' => 'Contribuții',
 'contribsub2' => 'Pentru $1 ($2)',
 'nocontribs' => 'Nu a fost găsită nici o modificare care să satisfacă acest criteriu.',
-'uctop' => '(sus)',
+'uctop' => '(actuală)',
 'month' => 'Din luna (și dinainte):',
 'year' => 'Până în anul:',
 
@@ -3877,7 +3918,6 @@ Puteți folosi în schimb [[Special:EditWatchlist|editorul standard]].',
 'version-other' => 'Altele',
 'version-mediahandlers' => 'Suport media',
 'version-hooks' => 'Hook-uri',
-'version-extension-functions' => 'Funcțiile extensiilor',
 'version-parser-extensiontags' => 'Taguri extensie parser',
 'version-parser-function-hooks' => 'Hook-uri funcții parser',
 'version-hook-name' => 'Nume hook',
@@ -3959,6 +3999,7 @@ MediaWiki este distribuit în speranța că va fi folositor, dar FĂRĂ VREO GAR
 'tags' => 'Etichete valabile pentru marcarea modificărilor',
 'tag-filter' => 'Filtru pentru [[Special:Tags|etichete]]:',
 'tag-filter-submit' => 'Filtru',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Etichetă|Etichete}}]]: $2)',
 'tags-title' => 'Etichete',
 'tags-intro' => 'Această pagină afișează etichetele, inclusiv semnificația lor, pe care software-ul le poate folosi la marcarea modificărilor.',
 'tags-tag' => 'Numele etichetei',
index 1c232f7..e3cff0e 100644 (file)
@@ -228,6 +228,7 @@ $messages = array(
 'create-this-page' => "Ccreje 'a pàgene",
 'delete' => 'Scangìlle',
 'deletethispage' => 'Scangille sta pàgene',
+'undeletethispage' => 'Repristine sta pàgene',
 'undelete_short' => "Annulle {{PLURAL:$1|'nu camgiamende|$1 cangiaminde}}",
 'viewdeleted_short' => "Vide {{PLURAL:$1|'nu cangiamende scangellate|$1 cangiaminde scangellate}}",
 'protect' => 'Prutette',
@@ -281,7 +282,6 @@ $1",
 'disclaimers' => 'No ne sacce ninde',
 'disclaimerpage' => 'Project:Scareca uarrile',
 'edithelp' => "Cangianne l'ajute",
-'edithelppage' => 'Help:Cangiaminde',
 'helppage' => 'Help:Condenute',
 'mainpage' => 'Pàgene Prengepàle',
 'mainpage-description' => 'Pàgene Prengepàle',
@@ -313,7 +313,6 @@ Vide [[Special:Version|Versione d'a pàgene]].",
 'newmessagesdifflinkplural' => 'urteme {{PLURAL:$1|cangiamende|cangiaminde}}',
 'youhavenewmessagesmulti' => "T'onne arrevete mèssagge nueve sus 'a $1",
 'editsection' => 'cange',
-'editsection-brackets' => '[$1]',
 'editold' => 'cange',
 'viewsourceold' => 'vide sorgende',
 'editlink' => 'cange',
@@ -438,6 +437,10 @@ $2',
 'namespaceprotected' => "Non ge tine 'u permesse pe cangià pàggene d'u neimspeise '''$1'''.",
 'customcssprotected' => "Non ge tine 'u permesse pe cangià sta pàgene de CSS, purcè tène otre configurazione personale.",
 'customjsprotected' => "Non ge tine 'u permesse pe cangià sta pàgene de Javascript, purcè tène otre configurazione personale.",
+'mycustomcssprotected' => 'Non ge tìne le permesse pe cangià sta pàgene CSS',
+'mycustomjsprotected' => 'Non ge tìne le permesse pe cangià sta pàgene JavaScript',
+'myprivateinfoprotected' => "Non ge tìne le permesse pe cangià le 'mbormaziune private tune.",
+'mypreferencesprotected' => 'Non ge tìne le permesse pe cangià le preferenze tune.',
 'ns-specialprotected' => 'Le pàgene speciale no ponne essere cangete.',
 'titleprotected' => "Stu titele ha state prutette da 'a ccreazione da [[User:$1|$1]].
 'U mutive jè ''$2''.",
@@ -465,6 +468,7 @@ No te sce scurdanne de cangià le [[Special:Preferences|{{SITENAME}} preferenze
 'yourname' => 'Nome utende:',
 'userlogin-yourname' => 'Nome utende',
 'userlogin-yourname-ph' => "Mitte 'u nome utende tune",
+'createacct-another-username-ph' => "Mitte 'u nome utende",
 'yourpassword' => 'Passuord:',
 'userlogin-yourpassword' => 'Passuord',
 'userlogin-yourpassword-ph' => "Mitte 'a passuord toje",
@@ -499,9 +503,11 @@ No te sce scurdanne de cangià le [[Special:Preferences|{{SITENAME}} preferenze
 'helplogin-url' => 'Help:Trasenne',
 'userlogin-helplink' => "[[{{MediaWiki:helplogin-url}}|Aijute cu 'a trasute]]",
 'createacct-join' => "Mitte le 'mbormaziune tune aqquà sotte.",
+'createacct-another-join' => "Mitte le 'mbormaziune d'u cunde nuève aqquà sotte.",
 'createacct-emailrequired' => 'Indirizze email',
 'createacct-emailoptional' => 'Indirizze email (opzionale)',
 'createacct-email-ph' => "Mitte l'indirizze email tune",
+'createacct-another-email-ph' => "Mitte l'indirizze email",
 'createaccountmail' => 'Pe e-mail',
 'createacct-realname' => 'Nome vere (opzionale)',
 'createaccountreason' => 'Mutive:',
@@ -510,6 +516,7 @@ No te sce scurdanne de cangià le [[Special:Preferences|{{SITENAME}} preferenze
 'createacct-captcha' => 'Verifiche de securezze',
 'createacct-imgcaptcha-ph' => "Mitte 'u teste tune aqquà sus",
 'createacct-submit' => "Ccreje 'u cunde utende tune",
+'createacct-another-submit' => "Ccreje 'n'otre cunde",
 'createacct-benefit-heading' => '{{SITENAME}} jè fatte da crestiane cumme a te.',
 'createacct-benefit-body1' => '{{PLURAL:$1|cangiamende|cangiaminde}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|pàgene|pàggene}}',
@@ -579,7 +586,7 @@ Pe piacere mitte l'indirizze a cumme criste cumanne, ce nò no 'u scè mettènne
 'cannotchangeemail' => "Le indirizze e-mail d'u cunde utende non ge ponne essere cangiate sus a sta uicchi.",
 'emaildisabled' => 'Stu site non ge pò mannà e-mail.',
 'accountcreated' => 'cunde utende ccrejete',
-'accountcreatedtext' => "'U cunde utende pe $1 ha state ccrejete.",
+'accountcreatedtext' => "'U cunde utende pe [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|'ngazzaminde]]) ha state ccrejate.",
 'createaccount-title' => "Ccreazzione de 'u cunde utende pe {{SITENAME}}",
 'createaccount-text' => 'Quacchedune ha ccrejete \'nu cunde utende cu l\'indirizze e-mail tue sus a {{SITENAME}} ($4) chiamete "$2", cu password "$3".
 Tu, mò, t\'avisse a collegà e cangià \'a password toje.
@@ -619,11 +626,11 @@ Pò essere ca tu è già cangete 'a password toje o è richieste una temboranea
 
 # Special:PasswordReset
 'passwordreset' => "Azzere 'a passuord",
-'passwordreset-text' => "Comblete stu module pe ricevere 'na mail de promemorie de le dettaglie d'u cunde tune.",
+'passwordreset-text-one' => "Comblete stu module pe azzerà 'a passuord toje.",
+'passwordreset-text-many' => "{{PLURAL:$1|Inghie une de le cambe de date pe azzerà 'a passuord toje.}}",
 'passwordreset-legend' => "Azzere 'a passuord",
 'passwordreset-disabled' => "'U reset de le passuord ha state desabbilitate sus a sta uicchi.",
 'passwordreset-emaildisabled' => "Le funziune de l'email onne state disabbilitate sus a sta uicchi.",
-'passwordreset-pretext' => '{{PLURAL:$1||Mitte une de le stuèzze de le date aqquà sotte}}',
 'passwordreset-username' => 'Nome utende:',
 'passwordreset-domain' => 'Dominie:',
 'passwordreset-capture' => "Vide 'a mail resultande?",
@@ -661,6 +668,19 @@ Passuord temboranèe: $2',
 'changeemail-submit' => 'Cange e-mail',
 'changeemail-cancel' => 'Annulle',
 
+# Special:ResetTokens
+'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à.
+
+Tu 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à.',
+'resettokens-legend' => 'Azzere le gettone',
+'resettokens-tokens' => 'Gettone:',
+'resettokens-token-label' => '$1 (valore de mò: $2)',
+'resettokens-watchlist-token' => "Gettone de le feed de le pàggene condrollate cu 'u web",
+'resettokens-done' => 'Gettone azzerate.',
+'resettokens-resetbutton' => 'Azzere le gettone scacchiate',
+
 # Edit page toolbar
 'bold_sample' => 'Teste grascette',
 'bold_tip' => 'Teste grascette',
@@ -870,6 +890,7 @@ Non g'à date nisciune mutive.",
 Pare proprie ca l'onne scangellete.",
 'edit-conflict' => 'conflitte de cangiaminde.',
 'edit-no-change' => "'U cangiamende ca p fatte, avène scettate purcè 'u teste non g'à cangete manghe de 'na virgola.",
+'postedit-confirmation' => "'U cangiamende tune ha state reggistrate.",
 'edit-already-exists' => "Non ge puè ccrejà 'na pàgene nove purcè esiste già!",
 'defaultmessagetext' => 'Messàgge de teste de base',
 'content-failed-to-parse' => "L'analise d'u condenute $2 pu modelle $1 ha fallite: $3",
@@ -912,6 +933,7 @@ Pe piacere verifichesce 'u combronde sotte pe condrollà ca quiste ca tu vuè cc
 'undo-failure' => "'U cangiamende non ge pò essere annullete purcè stè 'nu conflitte de cangiaminde indermedije.",
 'undo-norev' => "'U cangiamende non ge pò essere annullete purcè non g'esiste o a state scangellete.",
 'undo-summary' => "Repristine 'a revisione $1 da [[Special:Contributions/$2|$2]] ([[User talk:$2|'Ngazzaminde]])",
+'undo-summary-username-hidden' => "Annulle 'a revisione $1 da 'n'utende scunnute",
 
 # Account creation failure
 'cantcreateaccounttitle' => "Non ge puè ccrejà 'nu cunde utende",
@@ -1095,6 +1117,7 @@ Vide Bbuene ca ausanne le collegaminde de navigazzione sta culonne avène azzera
 'compareselectedversions' => 'Combronde le versiune selezionete',
 'showhideselectedversions' => 'Fà vedè/scunne le revisiune selezionate',
 'editundo' => 'annulle',
+'diff-empty' => '(Nisciuna differenze)',
 'diff-multi' => "({{PLURAL:$1|'na versione de mmienze|$1 cchiù versiune de mmienze}} de {{PLURAL:$2|'n'utende|$2 utinde}} non ge se vèdene)",
 'diff-multi-manyusers' => "({{PLURAL:$1|'Na revisione de 'mmienze|$1 revisiune de 'mmienze}} non g'è viste da cchiù de $2 {{PLURAL:$2|utende|utinde}})",
 'difference-missing-revision' => "{{PLURAL:$2|'Na revisione|$2 revisiune}} de sta differenze ($1) {{PLURAL:$2|non g'onne|non g'onne}} state acchiate.
@@ -1122,7 +1145,6 @@ Le dettaglie le puè acchià jndr'à l'[{{fullurl:{{#Special:Log}}/delete|page={
 'searchmenu-legend' => 'Opzione de ricerche',
 'searchmenu-exists' => "'''Stè 'na pàgene nnumenete \"[[\$1]]\" sus 'a sta Uicchipèdie'''",
 'searchmenu-new' => "'''[[:\$1|Ccreje]] 'a pàgene \"[[:\$1|\$1]]\" sus 'a sta Uicchipèdie!'''",
-'searchhelp-url' => 'Help:Condenute',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Sfogghije le pàggene cu stu prefisse]]',
 'searchprofile-articles' => 'Vôsce',
 'searchprofile-project' => 'Pàggene de ajiute e de pruggette',
@@ -1200,7 +1222,6 @@ Però fa attenzione purcè l'indice lore sus a {{SITENAME}} ponne condenè pàgg
 'resetprefs' => "Pulizze le cangiaminde ca non g'è reggistrete",
 'restoreprefs' => "Repristene tutte le 'mbostaziune origginale",
 'prefs-editing' => 'Stoche a cange',
-'prefs-edit-boxsize' => "Dimenzione d'a pàgene de cangiamende.",
 'rows' => 'Righe:',
 'columns' => 'Culonne:',
 'searchresultshead' => 'Cirche',
@@ -1211,9 +1232,9 @@ Però fa attenzione purcè l'indice lore sus a {{SITENAME}} ponne condenè pàgg
 'recentchangesdays-max' => '(massime $1 {{PLURAL:$1|sciurne|sciurne}})',
 'recentchangescount' => 'Numere de cangiaminde da fà vedè pe default:',
 'prefs-help-recentchangescount' => "Quiste 'nglude le urteme cangiaminde, le storie de le pàggene e le archivije.",
-'prefs-help-watchlist-token' => "Anghienne stu cambe cu le chiave segrete avène generate 'nu RSS feed pa liste de le pàggene condrollate.<br />
-Ogneune ca canosce 'a chiave de stu cambe se pò leggere 'a liste de le pàggene condrollate tue, accussì scacchie 'nu valore secure.<br />
-Aqquà ste 'nu valore generate a uecchije ca tu puè ausà: $1",
+'prefs-help-watchlist-token2' => "Queste jè 'a chiave segrete a le feed d'u web de l'elenghe de le pàggene condrollate tune.
+Cengate vò ccu canosce ce pò leggere l'elenghe de le pàggene condrollate tune, accussì non g'ù pò condividere.
+[[Special:ResetTokens|Cazze aqquà ce tìne abbesogne de azzerarle]].",
 'savedprefs' => 'Le preferenze tue onne state aggiornete.',
 'timezonelegend' => "Orarie d'a zone:",
 'localtime' => 'Orarie lochele:',
@@ -1244,7 +1265,6 @@ Aqquà ste 'nu valore generate a uecchije ca tu puè ausà: $1",
 'prefs-reset-intro' => "Tu puè ausà sta pàgene pe azzerà le preferenze tue a quidde de default d'u site.
 Quiste non ge pò essere annullate.",
 'prefs-emailconfirm-label' => "Conferme de l'e-mail:",
-'prefs-textboxsize' => "Dimenzione d'a finestre de le cangiaminde",
 'youremail' => 'Poste:',
 'username' => "{{GENDER:$1|Nome de l'utende}}:",
 'uid' => '{{GENDER:$1|ID Utende}}:',
@@ -1278,7 +1298,9 @@ Ce tu 'u mitte, a fatje ca è fatte t'avène ricanusciute.",
 'prefs-signature' => 'Firme',
 'prefs-dateformat' => "Formate d'a data",
 'prefs-timeoffset' => "Differenze d'orarie",
-'prefs-advancedediting' => 'Opzione avanzate',
+'prefs-advancedediting' => 'Opziune avanzate',
+'prefs-editor' => 'Cangiatore',
+'prefs-preview' => 'Andeprime',
 'prefs-advancedrc' => 'Opzione avanzate',
 'prefs-advancedrendering' => 'Opzione avanzate',
 'prefs-advancedsearchoptions' => 'Opzione avanzate',
@@ -1286,6 +1308,7 @@ Ce tu 'u mitte, a fatje ca è fatte t'avène ricanusciute.",
 'prefs-displayrc' => "Fà vedè l'opzione",
 'prefs-displaysearchoptions' => "Fà vedè l'opzione",
 'prefs-displaywatchlist' => "Fà vedè l'opzione",
+'prefs-tokenwatchlist' => 'Gettone',
 'prefs-diffs' => 'Diff',
 
 # User preference: email validation using jQuery
@@ -1315,6 +1338,7 @@ Ce tu 'u mitte, a fatje ca è fatte t'avène ricanusciute.",
 'userrights-unchangeable-col' => 'Gruppe ca tu non ge puè cangià',
 'userrights-irreversible-marker' => '$1*',
 'userrights-conflict' => 'Conflitte sus a le deritte utende! Pe piacere appliche le cangiaminde tune arrete.',
+'userrights-removed-self' => "T'è luate le deritte tune. Mò non ge puè cchiù trasè jndr'à sta pàgene.",
 
 # Groups
 'group' => 'Gruppe:',
@@ -1379,12 +1403,20 @@ Ce tu 'u mitte, a fatje ca è fatte t'avène ricanusciute.",
 'right-ipblock-exempt' => "Zumbe le blocche de l'IP, auto blocche e le blocche a indervalle",
 'right-proxyunbannable' => "Zumbe automaticamende le condrolle d'u proxy",
 'right-unblockself' => 'Sbluecche lore',
-'right-protect' => 'Cange le levèelle de protezione e cange le pàggene prutette',
+'right-protect' => 'Cange le levèlle de protezione e cange le pàggene prutette',
 'right-editprotected' => 'Cange le pàggene prutette (senza protezzione a cascata)',
+'right-editsemiprotected' => 'Cange le pàggene prutette cumme a "{{int:protect-level-autoconfirmed}}"',
 'right-editinterface' => "Cange l'inderfacce utende",
 'right-editusercssjs' => "Cange 'u CSS e 'u JS de l'otre utinde",
 'right-editusercss' => "Cange 'u CSS de l'otre utinde",
 'right-edituserjs' => "Cange 'u JS de l'otre utinde",
+'right-editmyusercss' => 'Cange le file tune de CSS',
+'right-editmyuserjs' => 'Cange le file tune de JavaScript',
+'right-viewmywatchlist' => "'Ndruche le pàggene condrollate tune",
+'right-editmywatchlist' => 'Cange le pàggene condrollate tune. Vide bbuene ca certe aziune vonne a aggiungere pàggene pure ca non ge stonne le deritte.',
+'right-viewmyprivateinfo' => "'Ndruche le date private tune (p.e. indirizze email, nome vere)",
+'right-editmyprivateinfo' => 'Cange le date private tune (p.e. indirizze email, nome vere)',
+'right-editmyoptions' => 'Cange le preferenze tune',
 'right-rollback' => "Annulle velocemende le cangiaminde de l'urteme utende ca ha cangiate 'na pàgena particolare",
 'right-markbotedits' => 'Marche le cangiaminde annullate cumme cangiaminde de bot',
 'right-noratelimit' => "Non g'à state tuccate da le limite de le pundegge",
@@ -1446,12 +1478,17 @@ Ce tu 'u mitte, a fatje ca è fatte t'avène ricanusciute.",
 'action-userrights-interwiki' => "cange le deritte de l'utende de l'utinde de le otre Uicchi",
 'action-siteadmin' => "blocche o sblocche 'u database",
 'action-sendemail' => 'manne e-mail',
+'action-editmywatchlist' => 'cange le pàggene condrollate tune',
+'action-viewmywatchlist' => "'ndruche le pàggene condrollate tune",
+'action-viewmyprivateinfo' => "'ndruche le 'mbormaziune private tune",
+'action-editmyprivateinfo' => "cange le 'mbormaziune private tune",
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|cangiaminde|cangiaminde}}',
 'recentchanges' => 'Cangiaminde recende',
 'recentchanges-legend' => 'Opzione pe le cangiaminde recende',
 'recentchanges-summary' => 'Tracce le cchiù recednde cangiaminde de Uicchi sus a sta pàgene.',
+'recentchanges-noresult' => "Nisciune cangiamende duranne 'u periode ca ste soddisfe stu criterie.",
 'recentchanges-feed-description' => "Tracce le urteme cangiaminde sus 'a sta Uicchipedie jndr'à quiste feed.",
 'recentchanges-label-newpage' => "Stu cangiamende ha ccrejate 'na pàgena nove",
 'recentchanges-label-minor' => "Quiste ète 'nu cangiamende stuèdeche",
@@ -1490,7 +1527,6 @@ Ce tu 'u mitte, a fatje ca è fatte t'avène ricanusciute.",
 'recentchangeslinked-feed' => 'Cangiaminde culleghete',
 'recentchangeslinked-toolbox' => 'Cangiaminde culleghete',
 'recentchangeslinked-title' => 'Cangiaminde culleghete a "$1"',
-'recentchangeslinked-noresult' => "Non g'onne state fatte cangiaminde sus 'a sta pàgene jndr'à 'u periede selezionete.",
 'recentchangeslinked-summary' => "Queste jè 'a liste de le cangiaminde fatte de recende a le pàggene culleghete da ' na pàgene specifiche (o a le membre de 'na specifiche categorije).
 Pàggene sus 'a [[Special:Watchlist|le Pàggene condrollete]] sonde in '''grascette'''.",
 'recentchangeslinked-page' => "Nome d'a vôsce:",
@@ -1502,7 +1538,7 @@ Pàggene sus 'a [[Special:Watchlist|le Pàggene condrollete]] sonde in '''grasce
 'reuploaddesc' => "Scangille 'u carecamende e tuerne a 'a schermete de le carecaminde",
 'upload-tryagain' => "Conferme 'u cangiamende d'a descrizione d'u file",
 'uploadnologin' => 'non ge sinde colleghete',
-'uploadnologintext' => 'Tu a essere [[Special:UserLogin|colleghete]] pe carecà le file.',
+'uploadnologintext' => 'Tu a essere $1 pe carecà le file.',
 'upload_directory_missing' => "'A cartelle de le carecaminde ($1) s'à perdute o pò essere ca non g'à state ccreate da 'u webserver.",
 'upload_directory_read_only' => "'A cartelle d'u carecamende ($1) non ge se pò fà scrivere da 'u webserver.",
 'uploaderror' => 'Errore de carecamende',
@@ -1902,6 +1938,8 @@ Arrecuèrdete de condrollà pe otre collegaminde a le template apprime de scange
 'pageswithprop-text' => "Sta pàgene elenghe le pàggene ca ausane 'na particolare probbietà d'a pàgene.",
 'pageswithprop-prop' => "Nome d'a probbietà:",
 'pageswithprop-submit' => 'Véje',
+'pageswithprop-prophidden-long' => "valore d'a probbietà d'u teste lunghe scunnute ($1 kilobyte)",
+'pageswithprop-prophidden-binary' => 'valore probbietà binarie scunnute ($1 kilobyte)',
 
 'doubleredirects' => 'Ridirezionaminde a doppie',
 'doubleredirectstext' => "Sta pàgene elenghe le pàggene ca se ridirezionane sus a otre pàggene de ridirezionaminde.
@@ -1960,6 +1998,7 @@ Mò s'avène redirette a [[$2]].",
 'mostrevisions' => 'Pàggene cchiù cangete',
 'prefixindex' => "Tutte le pàggene cu 'u prefisse",
 'prefixindex-namespace' => "Tutte le pàggene cu 'u prefisse ($1 namespace)",
+'prefixindex-strip' => "Strisce d'u prefisse jndr'à l'elenghe",
 'shortpages' => 'Pàggene corte',
 'longpages' => 'Pàggene longhe',
 'deadendpages' => 'Pàggene senza collegamende',
@@ -2155,7 +2194,6 @@ Le cangiaminde future a sta pàgene e 'a pàgene de le 'ngazzaminde associete le
 'unwatchthispage' => "No condrollà cchiù 'a pàgene",
 'notanarticle' => "Non g'è 'na vosce",
 'notvisiblerev' => "'A revisione ha state scangellete",
-'watchnochange' => "Niscune de le vôsce condrollete onne state cangete jndr'à 'u periode visualizzate.",
 'watchlist-details' => "{{PLURAL:$1|$1 pàgene|$1 pàggene}} jndr'à liste de le pàggene condrollete, scartanne le pàggene de le 'ngazzaminde.",
 'wlheader-enotif' => '* Notifiche pe email abbilitate.',
 'wlheader-showupdated' => "* Le pàggene ca onne state cangiate da l'urtema visite avènene fatte vedè in '''grascette'''",
@@ -2267,7 +2305,7 @@ quacche otre ha cangiate o annullate ggià 'a pàgene.
 L'urteme cangiamende d'a pàgene ere de [[User:$3|$3]] ([[User talk:$3|'Ngazzaminde]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
 'editcomment' => "'U riepileghe d'u cangiamende ere: \"''\$1''\".",
 'revertpage' => "Cangiaminde annullate da [[Special:Contributions/$2|$2]] ([[User talk:$2|Talk]]) a l'urtema versione da [[User:$1|$1]]",
-'revertpage-nouser' => "Le cangiaminde annullate ba (nome utende luate) a l'urtema revisione da [[User:$1|$1]]",
+'revertpage-nouser' => "Le cangiaminde annullate da (nome utende luate) a l'urtema revisione da [[User:$1|$1]]",
 'rollback-success' => "Cangiaminde annullate da $1;
 turnate rete a l'urtema versione da $2.",
 
@@ -2417,7 +2455,7 @@ $1",
 'mycontris' => 'Condrebbute mie',
 'contribsub2' => 'Pe $1 ($2)',
 'nocontribs' => 'Nisciune cangiamende ha state acchiate cu ste criterie.',
-'uctop' => '(sus)',
+'uctop' => '(de mò)',
 'month' => "Da 'u mese (e cchiù recende):",
 'year' => "Da l'anne (e cchiù recende):",
 
@@ -3726,7 +3764,6 @@ Pe piacere conferme ca tu vuè avveramende reccrejà sta pàgene.",
 'semicolon-separator' => ';&#32;',
 'comma-separator' => ',&#32;',
 'colon-separator' => ':&#32;',
-'autocomment-prefix' => '-&#32;',
 'pipe-separator' => '&#32;•&#32;',
 'word-separator' => '&#32;',
 'ellipsis' => '...',
@@ -3896,7 +3933,6 @@ Tu puè pure [[Special:EditWatchlist|ausà 'u cangiatore standàrd]].",
 'version-other' => 'Otre',
 'version-mediahandlers' => 'Gestore de le Media',
 'version-hooks' => 'Hook',
-'version-extension-functions' => 'Funziune estese',
 'version-parser-extensiontags' => "Tag pe l'estenziune de l'analizzatore",
 'version-parser-function-hooks' => "Funziune hook de l'analizzatore",
 'version-hook-name' => "Nome de l'hook",
@@ -3979,6 +4015,7 @@ Avisse avè ricevute [{{SERVER}}{{SCRIPTPATH}}/COPYING 'na copie d'a GNU (Licenz
 'tags' => 'Cangiaminde de le tag valide',
 'tag-filter' => 'Filtre de le [[Special:Tags|tag]]:',
 'tag-filter-submit' => 'Filtre',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Tag}}]]: $2)',
 'tags-title' => 'Tag',
 'tags-intro' => "Sta pàgene elenghe le tag ca 'u software pò marcà cu 'nu cangiamende e 'u lore significate.",
 'tags-tag' => "Nome d'u tag",
index 0509978..8ab429c 100644 (file)
  * @author AlexSm
  * @author Alexander Sigachov (alexander.sigachov@gmail.com)
  * @author Alexandr Efremov
+ * @author Altai uul
  * @author Amikeco
  * @author Amire80
  * @author Anonim.one
  * @author Askarmuk
  * @author Assele
+ * @author BellaIlabekyan
  * @author Biathlon
  * @author Bouron
  * @author Chilin
@@ -40,6 +42,7 @@
  * @author Flrn
  * @author G0rn
  * @author Gazeb
+ * @author Geitost
  * @author Grigol
  * @author Haffman
  * @author HalanTul
  * @author KorneySan
  * @author Kv75
  * @author Lockal
+ * @author Lunacy1911
+ * @author Matma Rex
  * @author MaxBioHazard
  * @author MaxSem
  * @author NBS
+ * @author Nemo bis
  * @author Ola
  * @author Ole Yves
  * @author Putnik
@@ -82,6 +88,7 @@
  * @author Гусейн
  * @author ОйЛ
  * @author Умар
+ * @author Чаховіч Уладзіслаў
  * @author לערי ריינהארט
  * @author გიორგიმელა
  */
@@ -533,6 +540,18 @@ $messages = array(
 'oct' => 'окт',
 'nov' => 'ноя',
 'dec' => 'дек',
+'january-date' => 'Январь $1',
+'february-date' => 'Февраль $1',
+'march-date' => 'Март $1',
+'april-date' => 'Апрель $1',
+'may-date' => 'Май $1',
+'june-date' => 'Июнь $1',
+'july-date' => 'Июль $1',
+'august-date' => 'Август $1',
+'september-date' => 'Сентябрь $1',
+'october-date' => 'Октябрь $1',
+'november-date' => 'Ноябрь $1',
+'december-date' => 'Декабрь $1',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Категория|Категории}}',
@@ -558,7 +577,7 @@ $messages = array(
 'newwindow' => '(в новом окне)',
 'cancel' => 'Отменить',
 'moredotdotdot' => 'Далее…',
-'morenotlisted' => 'Больше ничего нету...',
+'morenotlisted' => 'Больше ничего нет',
 'mypage' => 'Страница',
 'mytalk' => 'Обсуждение',
 'anontalk' => 'Обсуждение для этого IP-адреса',
@@ -614,6 +633,7 @@ $messages = array(
 'create-this-page' => 'Создать эту страницу',
 'delete' => 'Удалить',
 'deletethispage' => 'Удалить эту страницу',
+'undeletethispage' => 'Восстановить эту страницу',
 'undelete_short' => 'Восстановить $1 {{PLURAL:$1|правку|правки|правок}}',
 'viewdeleted_short' => 'Просмотр $1 {{PLURAL:$1|удалённой правки|удалённых правок|удалённых правок}}',
 'protect' => 'Защитить',
@@ -667,7 +687,6 @@ $1',
 'disclaimers' => 'Отказ от ответственности',
 'disclaimerpage' => 'Project:Отказ от ответственности',
 'edithelp' => 'Справка по редактированию',
-'edithelppage' => 'Help:Редактирование',
 'helppage' => 'Help:Содержание',
 'mainpage' => 'Заглавная страница',
 'mainpage-description' => 'Заглавная страница',
@@ -690,7 +709,7 @@ $1',
 'youhavenewmessages' => 'Вы получили $1 ($2).',
 'newmessageslink' => 'новые сообщения',
 'newmessagesdifflink' => 'последнее изменение',
-'youhavenewmessagesfromusers' => 'Вы получили $1 от {{PLURAL:$3|$3 участника|$3 участников|$3 участников}} ($2).',
+'youhavenewmessagesfromusers' => 'Вы получили $1 от {{PLURAL:$3|$3 участника|$3 участников}} ($2).',
 'youhavenewmessagesmanyusers' => 'Вы получили $1 от множества пользователей ($2).',
 'newmessageslinkplural' => '{{PLURAL:$1|новое сообщение|новые сообщения}}',
 'newmessagesdifflinkplural' => '{{PLURAL:$1|последнее изменение|последние изменения}}',
@@ -815,6 +834,10 @@ $2',
 'namespaceprotected' => 'У вас нет разрешения редактировать страницы в пространстве имён «$1».',
 'customcssprotected' => 'У вас нет разрешения редактировать эту CSS-страницу, так как она содержит личные настройки другого участника.',
 'customjsprotected' => 'У вас нет разрешения редактировать эту JavaScript-страницу, так как она содержит личные настройки другого участника.',
+'mycustomcssprotected' => 'У вас нет прав для редактирования этого CSS страницы.',
+'mycustomjsprotected' => 'У вас нет прав для редактирования JavaScript на странице.',
+'myprivateinfoprotected' => 'У вас нет разрешения на изменение вашей личной информации',
+'mypreferencesprotected' => 'У вас нет прав для редактирования ваших настроек.',
 'ns-specialprotected' => 'Страницы пространства имён «{{ns:special}}» не могут правиться.',
 'titleprotected' => "Создание страницы с таким заголовком было запрещено участником [[Участник:$1|$1]].
 Указана следующая причина: ''$2''.",
@@ -842,6 +865,7 @@ $2',
 'yourname' => 'Имя учётной записи:',
 'userlogin-yourname' => 'Имя учётной записи',
 'userlogin-yourname-ph' => 'Введите имя вашей учётной записи',
+'createacct-another-username-ph' => 'Введите имя вашей учётной записи',
 'yourpassword' => 'Пароль:',
 'userlogin-yourpassword' => 'Пароль',
 'userlogin-yourpassword-ph' => 'Введите ваш пароль',
@@ -850,8 +874,8 @@ $2',
 'createacct-yourpasswordagain' => 'Подтвердите пароль',
 'createacct-yourpasswordagain-ph' => 'Введите пароль еще раз',
 'remembermypassword' => 'Помнить мою учётную запись на этом компьютере (не более $1 {{PLURAL:$1|дня|дней|дней}})',
-'userlogin-remembermypassword' => 'Ð\97апомниÑ\82Ñ\8c Ð¼ÐµÐ½Ñ\8f',
-'userlogin-signwithsecure' => 'Ð\92Ñ\8bполниÑ\82е Ð²Ñ\85од, Ð¸Ñ\81полÑ\8cзÑ\83Ñ\8f Ð±ÐµÐ·Ð¾Ð¿Ð°Ñ\81нÑ\8bй Ñ\81еÑ\80веÑ\80',
+'userlogin-remembermypassword' => 'Ð\9eÑ\81Ñ\82аваÑ\82Ñ\8cÑ\81Ñ\8f Ð² Ñ\81иÑ\81Ñ\82еме',
+'userlogin-signwithsecure' => 'Ð\97аÑ\89иÑ\89Ñ\91нное Ñ\81оединение',
 'securelogin-stick-https' => 'Продолжить подключение по HTTPS после входа',
 'yourdomainname' => 'Ваш домен:',
 'password-change-forbidden' => 'Вы не можете изменить пароль в этой вики.',
@@ -864,8 +888,8 @@ $2',
 'logout' => 'Завершение сеанса',
 'userlogout' => 'Завершение сеанса',
 'notloggedin' => 'Вы не представились системе',
-'userlogin-noaccount' => 'Нет аккаунта?',
-'userlogin-joinproject' => 'Присоединиться к {{grammar:genitive|{{SITENAME}}}}',
+'userlogin-noaccount' => 'Нет учетной записи?',
+'userlogin-joinproject' => 'Присоединиться к проекту',
 'nologin' => 'Нет учётной записи? $1.',
 'nologinlink' => 'Создать учётную запись',
 'createaccount' => 'Создать учётную запись',
@@ -873,22 +897,27 @@ $2',
 'gotaccountlink' => 'Представьтесь',
 'userlogin-resetlink' => 'Забыли данные для входа?',
 'userlogin-resetpassword-link' => 'Сброс пароля',
+'helplogin-url' => 'Help:Представление системе',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Помощь со входом в систему]]',
 'createacct-join' => 'Введите свои данные ниже.',
+'createacct-another-join' => 'Введите данные новой учетной записи ниже.',
 'createacct-emailrequired' => 'Адрес электронной почты',
 'createacct-emailoptional' => 'Адрес электронной почты (необязательно)',
 'createacct-email-ph' => 'Введите свой адрес электронной почты',
-'createaccountmail' => 'Использовать сгенерированный случайным образом временный пароль и выслать мне его на указанный ниже адрес электронной почты:',
+'createacct-another-email-ph' => 'Введите адрес электронной почты',
+'createaccountmail' => 'Использовать сгенерированный случайным образом временный пароль и выслать мне его на указанный ниже адрес электронной почты',
 'createacct-realname' => 'Настоящее имя (необязательно)',
 'createaccountreason' => 'Причина:',
 'createacct-reason' => 'Причина',
+'createacct-reason-ph' => 'Зачем вы создаёте другую учетную запись',
 'createacct-captcha' => 'Проверка безопасности',
 'createacct-imgcaptcha-ph' => 'Введите текст, который вы видите выше',
-'createacct-submit' => 'Зарегистрировать учётную запись',
-'createacct-benefit-heading' => '{{SITENAME}} сделана такими же людьми, как вы.',
+'createacct-submit' => 'Создать учётную запись',
+'createacct-another-submit' => 'Создать ещё одну учётную запись',
+'createacct-benefit-heading' => '{{SITENAME}} создана такими же людьми, как вы.',
 'createacct-benefit-body1' => '{{PLURAL:$1|правка|правки|правок}}',
-'createacct-benefit-body2' => '{{PLURAL:$1|страница|страницы|страниц}}',
-'createacct-benefit-body3' => '{{PLURAL:$1|Ñ\83Ñ\87аÑ\81Ñ\82ник|Ñ\83Ñ\87аÑ\81Ñ\82ников|Ñ\83Ñ\87аÑ\81Ñ\82ника}} Ð² последнее время',
+'createacct-benefit-body2' => '{{PLURAL:$1|статья|статьи|статей}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|Ñ\83Ñ\87аÑ\81Ñ\82ник|Ñ\83Ñ\87аÑ\81Ñ\82ника|Ñ\83Ñ\87аÑ\81Ñ\82ников}} Ð·Ð° последнее время',
 'badretype' => 'Введённые вами пароли не совпадают.',
 'userexists' => 'Введённое имя участника уже используется.
 Пожалуйста, выберите другое имя.',
@@ -946,7 +975,7 @@ $2',
 'cannotchangeemail' => 'Адреса электронной почты этой учётной записи не могут быть изменены в этой вики.',
 'emaildisabled' => 'Этот сайт не может отправлять сообщения электронной почты.',
 'accountcreated' => 'Учётная запись создана',
-'accountcreatedtext' => 'Создана учётная запись участника $1.',
+'accountcreatedtext' => 'Создана учётная запись участника [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|обс.]]).',
 'createaccount-title' => '{{SITENAME}}: создание учётной записи',
 'createaccount-text' => 'Кто-то создал учётную запись «$2» на сервере проекта {{SITENAME}} ($4), указав ваш адрес электронной почты. 
 
@@ -982,14 +1011,15 @@ $2',
 'resetpass-wrong-oldpass' => 'Неправильный временный или текущий пароль.
 Возможно, вы уже успешно изменили пароль, или запросили новый временный пароль.',
 'resetpass-temp-password' => 'Временный пароль:',
+'resetpass-abort-generic' => 'Изменение пароля было прервано расширением.',
 
 # Special:PasswordReset
 'passwordreset' => 'Сброс пароля',
-'passwordreset-text' => 'Чтобы сбросить свой пароль, заполните эту форму.',
+'passwordreset-text-one' => 'Заполните эту форму, чтобы сбросить свой пароль.',
+'passwordreset-text-many' => '{{PLURAL:$1|Заполните одно из полей для сброса пароля.}}',
 'passwordreset-legend' => 'Сбросить пароль',
 'passwordreset-disabled' => 'Сбросы пароля отключены на этой вики.',
 'passwordreset-emaildisabled' => 'Функции электронной почты отключены в этой вики.',
-'passwordreset-pretext' => '{{PLURAL:$1||Введите одну из частей данных, показанных ниже}}',
 'passwordreset-username' => 'Имя участника:',
 'passwordreset-domain' => 'Домен:',
 'passwordreset-capture' => 'Просмотреть получившееся письмо?',
@@ -1018,7 +1048,7 @@ $2
 Временный пароль: $2',
 'passwordreset-emailsent' => 'Отправлено электронное письмо с информацией о сбросе пароля.',
 'passwordreset-emailsent-capture' => 'Отправлено электронное письмо с информацией о сбросе пароля, текст которого можно увидеть ниже.',
-'passwordreset-emailerror-capture' => 'Было создано электронное письмо с информацией о сбросе пароля, текст которого можно увидеть ниже. Однако его не удалось отправить по следующей причине: $1',
+'passwordreset-emailerror-capture' => 'Было создано электронное письмо с информацией о сбросе пароля, текст которого можно увидеть ниже, однако его не удалось отправить {{GENDER:$2|участнику|участнице}} по следующей причине: $1',
 
 # Special:ChangeEmail
 'changeemail' => 'Изменить адрес электронной почты',
@@ -1217,7 +1247,7 @@ $2
 'nocreate-loggedin' => 'У вас нет разрешения создавать новые страницы.',
 'sectioneditnotsupported-title' => 'Редактирование разделов не поддерживается',
 'sectioneditnotsupported-text' => 'На этой странице не поддерживается редактирование разделов',
-'permissionserrors' => 'Ð\9eÑ\88ибки прав доступа',
+'permissionserrors' => 'Ð\9eÑ\88ибка прав доступа',
 'permissionserrorstext' => 'У вас нет прав на выполнение этой операции по {{PLURAL:$1|следующей причине|следующим причинам}}:',
 'permissionserrorstext-withaction' => 'У вас нет прав на $2 по {{PLURAL:$1|следующей причине|следующим причинам}}:',
 'recreate-moveddeleted-warn' => "'''Внимание. Вы пытаетесь воссоздать страницу, которая ранее удалялась.'''
@@ -1233,6 +1263,7 @@ $2
 Вероятно, она была удалена.',
 'edit-conflict' => 'Конфликт редактирования.',
 'edit-no-change' => 'Ваша правка была отклонена, так как в тексте не было сделано изменений.',
+'postedit-confirmation' => 'Ваша правка сохранена.',
 'edit-already-exists' => 'Невозможно создать новую страницу.
 Она уже существует.',
 'defaultmessagetext' => 'Текст по умолчанию',
@@ -1240,7 +1271,7 @@ $2
 'invalid-content-data' => 'Недопустимые данные',
 'content-not-allowed-here' => 'Содержимое "$1" недопустимо на странице [[$2]]',
 'editwarning-warning' => 'Переход на другую страницу может привести к потере сделанных вами изменений.
-Если вы зарегистрированы в системе, то вы можете отключить это предупреждение в разделе «{{int:prefs-editing}}» ваших настроек.',
+Если вы зарегистрированы в системе, то вы можете отключить это предупреждение в разделе «Редактирование» ваших настроек.',
 
 # Content models
 'content-model-wikitext' => 'вики-текст',
@@ -1275,6 +1306,7 @@ $2
 'undo-failure' => 'Правка не может быть отменена из-за несовместимости промежуточных изменений.',
 'undo-norev' => 'Правка не может быть отменена, так как её не существует или она была удалена.',
 'undo-summary' => 'Отмена правки $1, сделанной {{GENDER:$2|участником|участницей}} [[Special:Contributions/$2|$2]] ([[User talk:$2|обс.]])',
+'undo-summary-username-hidden' => 'Отмена правки $1, сделанной участником, чьё имя скрыто',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Невозможно создать учётную запись',
@@ -1302,7 +1334,7 @@ $3 {{GENDER:$3|указал|указала}} следующую причину:
 'history-fieldset-title' => 'Просмотреть историю',
 'history-show-deleted' => 'Только удалённые',
 'histfirst' => 'старейшие',
-'histlast' => 'недавние',
+'histlast' => 'новейÑ\88ие',
 'historysize' => '($1 {{PLURAL:$1|байт|байта|байт}})',
 'historyempty' => '(пусто)',
 
@@ -1453,6 +1485,7 @@ $1",
 'compareselectedversions' => 'Сравнить выбранные версии',
 'showhideselectedversions' => 'Показать/скрыть выбранные версии',
 'editundo' => 'отменить',
+'diff-empty' => '(нет различий)',
 'diff-multi' => '({{PLURAL:$1|не показана $1 промежуточная версия|не показаны $1 промежуточные версии|не показаны $1 промежуточных версий}} {{PLURAL:$2|$2 участника|$2 участников}})',
 'diff-multi-manyusers' => '(не {{PLURAL:$1|показана $1 промежуточная версия|показаны $1 промежуточные версии|показаны $1 промежуточных версий}}, сделанные более чем $2 {{PLURAL:$2|участником|участниками}})',
 'difference-missing-revision' => '{{PLURAL:$2|$2 версия|$2 версии|$2 версий}} для этого сравнения ($1) {{PLURAL:$2|не обнаружена|не обнаружены}}.
@@ -1480,7 +1513,6 @@ $1",
 'searchmenu-legend' => 'Настройки поиска',
 'searchmenu-exists' => "'''В этой вики есть страница «[[:$1]]»'''",
 'searchmenu-new' => "'''Создать страницу «[[:$1]]» в этом вики-проекте!'''",
-'searchhelp-url' => 'Help:Содержание',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Показать страницы с этим префиксом]]',
 'searchprofile-articles' => 'Основные страницы',
 'searchprofile-project' => 'Страницы справки и проекта',
@@ -1555,7 +1587,6 @@ $1",
 'resetprefs' => 'Сбросить',
 'restoreprefs' => 'Восстановить настройки по умолчанию',
 'prefs-editing' => 'Редактирование',
-'prefs-edit-boxsize' => 'Размер окна редактирования.',
 'rows' => 'Строк:',
 'columns' => 'Столбцов:',
 'searchresultshead' => 'Поиск',
@@ -1566,9 +1597,6 @@ $1",
 'recentchangesdays-max' => '(не более $1 {{PLURAL:$1|дня|дней|дней}})',
 'recentchangescount' => 'Количество правок, отображаемое по умолчанию:',
 'prefs-help-recentchangescount' => 'Включает свежие правки, истории страниц, журналы.',
-'prefs-help-watchlist-token' => 'Заполнение этого поля секретным ключом будет создавать RSS-трансляцию для вашего списка наблюдений.
-Каждый, кто знает ключ в этом поле, сможет читать ваш список наблюдения, поэтому выбирайте секретное значение.
-Вы можете использовать сгенерированное случайным образом значение: $1',
 'savedprefs' => 'Ваши настройки сохранены.',
 'timezonelegend' => 'Часовой пояс:',
 'localtime' => 'Местное время:',
@@ -1599,7 +1627,6 @@ $1",
 'prefs-reset-intro' => 'Эта страница может быть использована для сброса ваших настроек на настройки по умолчанию.
 Подтвердив данное действие, вы не сможете его отменить.',
 'prefs-emailconfirm-label' => 'Подтверждение электронной почты:',
-'prefs-textboxsize' => 'Размер окна редактирования',
 'youremail' => 'Электронная почта:',
 'username' => '{{GENDER:$1|Имя участника|Имя участницы}}:',
 'uid' => 'Код {{GENDER:$1|участника|участницы}}:',
@@ -1631,7 +1658,9 @@ $1",
 'prefs-signature' => 'Подпись',
 'prefs-dateformat' => 'Формат даты',
 'prefs-timeoffset' => 'Смещение поясного времени',
-'prefs-advancedediting' => 'Расширенные настройки',
+'prefs-advancedediting' => 'Общее',
+'prefs-editor' => 'редактор',
+'prefs-preview' => 'предварительный просмотр',
 'prefs-advancedrc' => 'Расширенные настройки',
 'prefs-advancedrendering' => 'Расширенные настройки',
 'prefs-advancedsearchoptions' => 'Расширенные настройки',
@@ -1666,6 +1695,8 @@ $1",
 'userrights-notallowed' => 'С вашей учётной записи не разрешено добавлять и удалять права участников.',
 'userrights-changeable-col' => 'Группы, которые вы можете изменять',
 'userrights-unchangeable-col' => 'Группы, которые вы не можете изменять',
+'userrights-conflict' => 'Конфликт прав участника! Пожалуйста, примените изменения заново.',
+'userrights-removed-self' => 'Вы успешно удалили собственные права. Таким образом, вы больше не сможете получить доступ к этой странице.',
 
 # Groups
 'group' => 'Группа:',
@@ -1709,7 +1740,7 @@ $1",
 'right-reupload-shared' => 'подмена файлов из общих хранилищ локальными',
 'right-upload_by_url' => 'загрузка файлов с адреса URL',
 'right-purge' => 'очистка кэша страниц без страницы подтверждения',
-'right-autoconfirmed' => 'пÑ\80авка Ñ\87аÑ\81Ñ\82иÑ\87но Ð·Ð°Ñ\89иÑ\89Ñ\91ннÑ\8bÑ\85 Ñ\81Ñ\82Ñ\80аниÑ\86',
+'right-autoconfirmed' => 'Ð\9dеÑ\82 Ð¾Ð³Ñ\80аниÑ\87ений Ð¿Ð¾ Ñ\81коÑ\80оÑ\81Ñ\82и Ð½Ð° IP-адÑ\80еÑ\81',
 'right-bot' => 'считаться автоматическим процессом',
 'right-nominornewtalk' => 'отсутствие малых правок на страницах обсуждений включает режим новых сообщений',
 'right-apihighlimits' => 'меньше ограничений на выполнение API-запросов',
@@ -1730,12 +1761,20 @@ $1",
 'right-ipblock-exempt' => 'обход блокировок по IP, автоблокировок и блокировок диапазонов',
 'right-proxyunbannable' => 'обход автоматической блокировки прокси',
 'right-unblockself' => 'разблокировка самого себя',
-'right-protect' => 'изменение уровня защиты страниц и правка защищённых страниц',
-'right-editprotected' => 'правка защищённых страниц (без каскадной защиты)',
+'right-protect' => 'Изменение уровня защиты страниц и правка каскадно защищённых страниц',
+'right-editprotected' => 'Правка страниц, защищённых как «{{int:protect-level-sysop}}»',
+'right-editsemiprotected' => 'Правка страниц, защищённых как «{{int:protect-level-autoconfirmed}}»',
 'right-editinterface' => 'изменение пользовательского интерфейса',
 'right-editusercssjs' => 'правка CSS- и JS-файлов других участников',
 'right-editusercss' => 'правка CSS-файлов других участников',
 'right-edituserjs' => 'правка JavaScript-файлов других участников',
+'right-editmyusercss' => 'Редактирование файлов CSS пользователя',
+'right-editmyuserjs' => 'Редактировать свои пользовательские JavaScript-файлы',
+'right-viewmywatchlist' => 'Посмотреть свой список наблюдения',
+'right-editmywatchlist' => 'Редактировать свой список наблюдения. Обратите внимание, что некоторые действия будут добавлять страницы даже без такого права.',
+'right-viewmyprivateinfo' => 'Просмотр собственных личных данных (например, адрес электронной почты, настоящее имя)',
+'right-editmyprivateinfo' => 'Правка собственных личных данных (например, адрес электронной почты, настоящее имя)',
+'right-editmyoptions' => 'Редактировать собственные предпочтения',
 'right-rollback' => 'быстрый откат правок последнего участника на определенной странице',
 'right-markbotedits' => 'отметка откатываемых правок как правок бота',
 'right-noratelimit' => 'нет ограничений по скорости',
@@ -1797,12 +1836,17 @@ $1",
 'action-userrights-interwiki' => 'изменение прав участников в других вики',
 'action-siteadmin' => 'блокировка и разблокировка базы данных',
 'action-sendemail' => 'отправка электронных писем',
+'action-editmywatchlist' => 'редактирование вашего списка наблюдения',
+'action-viewmywatchlist' => 'просмотр вашего списка наблюдения',
+'action-viewmyprivateinfo' => 'просмотр вашей частной информации',
+'action-editmyprivateinfo' => 'редактирование вашей частной информации',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|изменение|изменения|изменений}}',
 'recentchanges' => 'Свежие правки',
 'recentchanges-legend' => 'Настройки свежих правок',
 'recentchanges-summary' => 'Ниже в хронологическом порядке перечислены последние изменения на страницах {{grammar:genitive|{{SITENAME}}}}.',
+'recentchanges-noresult' => 'Изменений в указанный период, соответствующих указанным условиям, нет.',
 'recentchanges-feed-description' => 'Отслеживать в этом потоке последние изменения в вики.',
 'recentchanges-label-newpage' => 'Этой правкой была создана новая страница.',
 'recentchanges-label-minor' => 'Это незначительное изменение',
@@ -1840,7 +1884,6 @@ $1",
 'recentchangeslinked-feed' => 'Связанные правки',
 'recentchangeslinked-toolbox' => 'Связанные правки',
 'recentchangeslinked-title' => 'Связанные правки для «$1»',
-'recentchangeslinked-noresult' => 'На связанных страницах не было изменений за указанный период.',
 'recentchangeslinked-summary' => "Это список недавних изменений в страницах, на которые ссылается указанная страница (или входящих в указанную категорию).
 Страницы, входящие в [[Special:Watchlist|ваш список наблюдения]] '''выделены'''.",
 'recentchangeslinked-page' => 'Название страницы:',
@@ -1852,8 +1895,7 @@ $1",
 'reuploaddesc' => 'Вернуться к форме загрузки',
 'upload-tryagain' => 'Отправить изменённое описание файла',
 'uploadnologin' => 'Вы не представились системе',
-'uploadnologintext' => 'Вы должны [[Special:UserLogin|представиться системе]],
-чтобы загружать файлы на сервер.',
+'uploadnologintext' => 'Вы должны $1, чтобы загружать файлы на сервер.',
 'upload_directory_missing' => 'Директория для загрузок ($1) отсутствует и не может быть создана веб-сервером.',
 'upload_directory_read_only' => 'Веб-сервер не имеет прав записи в папку ($1), в которой предполагается хранить загружаемые файлы.',
 'uploaderror' => 'Ошибка загрузки файла',
@@ -1985,7 +2027,7 @@ $1',
 'upload-file-error-text' => 'Внутренняя ошибка при попытке создать временный файл на сервере.
 Пожалуйста, обратитесь к [[Special:ListUsers/sysop|администратору]].',
 'upload-misc-error' => 'Неизвестная ошибка загрузки',
-'upload-misc-error-text' => 'Неизвестная ошибка загрузки. Пожалуйста, проверьте, что адрес верен, и повторите попытку. Если проблема остаётся, обратитесь к системному администратору.',
+'upload-misc-error-text' => 'Неизвестная ошибка загрузки. Пожалуйста, проверьте, что адрес верен, и повторите попытку. Если проблема остаётся, обратитесь к [[Special:ListUsers/sysop|администратору]].',
 'upload-too-many-redirects' => 'URL содержит слишком много перенаправлений',
 'upload-unknown-size' => 'Неизвестный размер',
 'upload-http-error' => 'Произошла ошибка HTTP: $1',
@@ -2238,6 +2280,8 @@ $1',
 'pageswithprop-text' => 'Здесь перечислены страницы, у которых были вручную переопределены отдельные свойства.',
 'pageswithprop-prop' => 'Название свойства:',
 'pageswithprop-submit' => 'Найти',
+'pageswithprop-prophidden-long' => 'длинное значение текстового свойства скрыто ($1 килобайт)',
+'pageswithprop-prophidden-binary' => 'значение двоичного свойства скрыто ($1 килобайт)',
 
 'doubleredirects' => 'Двойные перенаправления',
 'doubleredirectstext' => 'На этой странице представлен список перенаправлений на другие перенаправления.
@@ -2415,7 +2459,8 @@ $1',
 'listgrouprights' => 'Права групп участников',
 'listgrouprights-summary' => 'Ниже представлен список определённых в этой вики групп участников, указаны соответствующие им права доступа.
 Возможно, существует [[{{MediaWiki:Listgrouprights-helppage}}|дополнительная информация]] об индивидуальных правах.',
-'listgrouprights-key' => '* <span class="listgrouprights-granted">Предоставленные права</span>
+'listgrouprights-key' => 'Легенда:
+* <span class="listgrouprights-granted">Предоставленные права</span>
 * <span class="listgrouprights-revoked">Отозванные права</span>',
 'listgrouprights-group' => 'Группа',
 'listgrouprights-rights' => 'Права',
@@ -2488,9 +2533,8 @@ $1',
 'unwatchthispage' => 'Прекратить наблюдение',
 'notanarticle' => 'Не статья',
 'notvisiblerev' => 'Версия была удалена',
-'watchnochange' => 'За этот период ни одна страница из списка наблюдения не менялась.',
 'watchlist-details' => 'В вашем списке наблюдения $1 {{PLURAL:$1|страница|страницы|страниц}}, не считая страниц обсуждения.',
-'wlheader-enotif' => 'Уведомление по эл. почте включено.',
+'wlheader-enotif' => 'Уведомления по эл. почте включены.',
 'wlheader-showupdated' => "Страницы, изменившиеся с вашего последнего их посещения, выделены '''жирным''' шрифтом.",
 'watchmethod-recent' => 'просмотр последних изменений для наблюдаемых страниц',
 'watchmethod-list' => 'просмотр наблюдаемых страниц для последних изменений',
@@ -2597,7 +2641,7 @@ $UNWATCHURL
 Последние изменения {{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]]',
-'revertpage-nouser' => 'Ð\9fÑ\80авки (имÑ\8f Ñ\83Ñ\87аÑ\81Ñ\82ника Ñ\83далено) откачены к версии [[User:$1|$1]]',
+'revertpage-nouser' => 'Ð\9fÑ\80авки (имÑ\8f Ñ\83Ñ\87аÑ\81Ñ\82ника Ñ\81кÑ\80Ñ\8bÑ\82о) откачены к версии [[User:$1|$1]]',
 'rollback-success' => 'Откачены правки $1; возврат к версии $2.',
 
 # Edit tokens
@@ -2738,7 +2782,7 @@ $1',
 'mycontris' => 'Вклад',
 'contribsub2' => 'Вклад $1 ($2)',
 'nocontribs' => 'Изменений, соответствующих заданным условиям, найдено не было.',
-'uctop' => '(последняя)',
+'uctop' => '(текущая)',
 'month' => 'С месяца (и ранее):',
 'year' => 'С года (и ранее):',
 
@@ -3065,6 +3109,8 @@ $1',
 'thumbnail-more' => 'Увеличить',
 'filemissing' => 'Файл не найден',
 'thumbnail_error' => 'Ошибка создания миниатюры: $1',
+'thumbnail_error_remote' => 'Сообщение об ошибке от $1:
+$2',
 'djvu_page_error' => 'Номер страницы DjVu вне досягаемости',
 'djvu_no_xml' => 'Невозможно получить XML для DjVu',
 'thumbnail-temp-create' => 'Не удаётся создать временный файл эскиза',
@@ -3164,7 +3210,7 @@ $1',
 'tooltip-ca-move' => 'Переименовать страницу',
 'tooltip-ca-watch' => 'Добавить эту страницу в ваш список наблюдения',
 'tooltip-ca-unwatch' => 'Удалить эту страницу из вашего списка наблюдения',
-'tooltip-search' => 'Искать в {{grammar:genitive|{{SITENAME}}}}',
+'tooltip-search' => 'Искать в {{grammar:prepositional|{{SITENAME}}}}',
 'tooltip-search-go' => 'Перейти к странице, имеющей в точности такое название',
 'tooltip-search-fulltext' => 'Найти страницы, содержащие указанный текст',
 'tooltip-p-logo' => 'Перейти на заглавную страницу',
@@ -3393,11 +3439,25 @@ $1',
 'minutes' => '{{PLURAL:$1|$1 минута|$1 минуты|$1 минут}}',
 'hours' => '{{PLURAL:$1|$1 час|$1 часа|$1 часов}}',
 'days' => '{{PLURAL:$1|$1 день|$1 дня|$1 дней}}',
+'weeks' => '{{PLURAL:$1|$1 неделя|$1 недели|$1 недель}}',
 'months' => '{{PLURAL:$1|$1 месяц|$1 месяца|$1 месяцев}}',
 'years' => '{{PLURAL:$1|$1 год|$1 года|$1 лет}}',
 'ago' => '$1 назад',
 'just-now' => 'только что',
 
+# Human-readable timestamps
+'hours-ago' => '$1 {{PLURAL:$1|час|часа|часов}} назад',
+'minutes-ago' => '$1 {{PLURAL:$1|минуту|минуты|минут}} назад',
+'seconds-ago' => '$1 {{PLURAL:$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
 'bad_image_list' => 'Формат должен быть следующим:
 
@@ -4078,7 +4138,6 @@ $5
 'version-other' => 'Иное',
 'version-mediahandlers' => 'Обработчики медиа',
 'version-hooks' => 'Перехватчики',
-'version-extension-functions' => 'Функции расширений',
 'version-parser-extensiontags' => 'Теги расширений синтаксического анализатора',
 'version-parser-function-hooks' => 'Перехватчики функций синтаксического анализатора',
 'version-hook-name' => 'Имя перехватчика',
@@ -4102,6 +4161,18 @@ MediaWiki распространяется в надежде, что она бу
 'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath Путь к статье]',
 'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath Путь к скрипту]',
 
+# Special:Redirect
+'redirect' => 'Перенаправление с файла, участника или идентификатора версии',
+'redirect-legend' => 'Перенаправление на файл или страницу',
+'redirect-summary' => 'Эта специальная страница перенаправляет на файл (с имени файла), страницу (с идентификатора версии) или страницу участника (с числового идентификатора участника).',
+'redirect-submit' => 'Перейти',
+'redirect-lookup' => 'Поиск:',
+'redirect-value' => 'Значение:',
+'redirect-user' => 'Идентификатор участника',
+'redirect-revision' => 'Версия страницы',
+'redirect-file' => 'Название файла',
+'redirect-not-exists' => 'Значение не найдено',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Поиск одинаковых файлов',
 'fileduplicatesearch-summary' => 'Поиск одинаковых файлов по хэш-коду.',
@@ -4150,6 +4221,7 @@ MediaWiki распространяется в надежде, что она бу
 'tags' => 'Действующие метки изменений',
 'tag-filter' => 'Фильтр [[Special:Tags|меток]]:',
 'tag-filter-submit' => 'Отфильтровать',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Метка|Метки}}]]: $2)',
 'tags-title' => 'Метки',
 'tags-intro' => 'На этой странице приведён список меток, которыми программное обеспечение отмечает правки, а также значения этих меток.',
 'tags-tag' => 'Имя метки',
@@ -4193,6 +4265,7 @@ MediaWiki распространяется в надежде, что она бу
 'htmlform-selectorother-other' => 'Иное',
 'htmlform-no' => 'Нет',
 'htmlform-yes' => 'Да',
+'htmlform-chosen-placeholder' => 'Выберите вариант',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 с поддержкой полнотекстового поиска',
index 99272b3..659acab 100644 (file)
@@ -225,6 +225,18 @@ $messages = array(
 'oct' => 'окт',
 'nov' => 'нов',
 'dec' => 'дец',
+'january-date' => '$1. януара',
+'february-date' => '$1. фебруара',
+'march-date' => '$1. марца',
+'april-date' => '$1. апріля',
+'may-date' => '$1. мая',
+'june-date' => '$1. юна',
+'july-date' => '$1. юла',
+'august-date' => '$1. авґуста',
+'september-date' => '$1. септембра',
+'october-date' => '$1. октобра',
+'november-date' => '$1. новембра',
+'december-date' => '$1. децембра',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Катеґорія|Катеґорії}}',
@@ -306,6 +318,7 @@ $messages = array(
 'create-this-page' => 'Створити тоту сторінку',
 'delete' => 'Вымазати',
 'deletethispage' => 'Змазати тоту сторінку',
+'undeletethispage' => 'Обновити тоту сторінку',
 'undelete_short' => 'Обновити $1 {{PLURAL:$1|верзію|верзії|верзії}}',
 'viewdeleted_short' => 'Видїти {{PLURAL:$1|змазанов едітаціёв|$1 змазаны едітації|$1 змазаных едітацій}}',
 'protect' => 'Всокотити',
@@ -359,7 +372,6 @@ $1',
 'disclaimers' => 'Вылучіня одповідности',
 'disclaimerpage' => 'Project:Вылучіня одповідности',
 'edithelp' => 'Поміч едітованя',
-'edithelppage' => 'Help:Едітованя',
 'helppage' => 'Help:Обсяг',
 'mainpage' => 'Головна сторінка',
 'mainpage-description' => 'Головна сторінка',
@@ -472,7 +484,7 @@ $1',
 'directorycreateerror' => 'Не мож вытворити адресарь «$1».',
 'filenotfound' => 'Не было можне найти файл «$1».',
 'fileexistserror' => 'Не дасть ся записати до файлу «$1»: файл екзістує.',
-'unexpected' => 'Неочекавана годнота: «$1»=«$2».',
+'unexpected' => 'Несподїване значіня: «$1»=«$2».',
 'formerror' => 'Хыба: небыло можне одослати формуларь',
 'badarticleerror' => 'Тота дїя не може быти выконана на тій сторінцї.',
 'cannotdelete' => 'Не є можне вымазати сторінку або файл "$1".
@@ -506,6 +518,10 @@ $2',
 'namespaceprotected' => 'Не маєте права едітовати сторінкы в просторї  назв «$1».',
 'customcssprotected' => 'Не маєте права едітовати тоту сторінку з CSS, бо обсягує персоналны наставлїна іншого хоснователя.',
 'customjsprotected' => 'Не маєте права едітовати тоту сторінку з JavaScript-ом, бо обсягує персоналны наставлїна іншого хоснователя.',
+'mycustomcssprotected' => 'Не мате права на управы той CSS сторінкы.',
+'mycustomjsprotected' => 'Не мате права на едітованя той JavaScript сторінкы.',
+'myprivateinfoprotected' => 'Не мате дозволїня мінити свої пріватны інформації.',
+'mypreferencesprotected' => 'Не мате дозволїня мінити свої наставлїня.',
 'ns-specialprotected' => 'Шпеціалны сторінкы не є можне едітовати.',
 'titleprotected' => "Створїня сторінкы з таков назвов было заборонене хоснователём [[User:$1|$1]] з причінов: ''$2''.",
 'filereadonlyerror' => "Не годно змінити файл „$1“, бо архів файлів „$2“ є теперь лем на чітаня.
@@ -531,6 +547,7 @@ $2',
 'yourname' => 'Імя хоснователя:',
 'userlogin-yourname' => 'Імя хоснователя',
 'userlogin-yourname-ph' => 'Уведьте ваше імя хоснователя',
+'createacct-another-username-ph' => 'Уведьте імя хоснователя',
 'yourpassword' => 'Гесло:',
 'userlogin-yourpassword' => 'Гесло',
 'userlogin-yourpassword-ph' => 'Уведьте ваше гесло',
@@ -565,9 +582,11 @@ $2',
 'helplogin-url' => 'Help:Приголошіня',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Поміч з приголошованём]]',
 'createacct-join' => 'Ниже уведьте вашы інформації',
+'createacct-another-join' => 'Ниже уведьте інформації нового конта',
 'createacct-emailrequired' => 'Адреса електронічной пошты',
 'createacct-emailoptional' => 'Адреса електронічной пошты (не обовязково)',
 'createacct-email-ph' => 'Уведьте вашу адресу електронічной пошты',
+'createacct-another-email-ph' => 'Уведьте адресу електронічной пошты',
 'createaccountmail' => 'Схосновати дочасне гесло та загнати го на ниже написану адресу',
 'createacct-realname' => 'Правдиве імя (не обовязково)',
 'createaccountreason' => 'Причіна:',
@@ -576,6 +595,7 @@ $2',
 'createacct-captcha' => 'Перевірка беспекы',
 'createacct-imgcaptcha-ph' => 'Опиште текст што видите высше',
 'createacct-submit' => 'Створити конто',
+'createacct-another-submit' => 'Створити інше конто',
 'createacct-benefit-heading' => '{{grammar:4sg|{{SITENAME}}}} творять люде як вы.',
 'createacct-benefit-body1' => '{{PLURAL:$1|едітованя|едітованя|едітовань}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|сторінка|сторінкы|сторінок}}',
@@ -635,7 +655,7 @@ $2',
 'cannotchangeemail' => 'В тій вікі не годен мінити імейловы адресы.',
 'emaildisabled' => 'Сесь сервер не годен одосылати імейлы.',
 'accountcreated' => 'Конто вытворене',
-'accountcreatedtext' => 'Конто хоснователя $1 было вытворене.',
+'accountcreatedtext' => 'Конто хоснователя [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]])  было створене.',
 'createaccount-title' => 'Вытвориня конта про  {{SITENAME}}',
 'createaccount-text' => 'Хтось створив про Вас конто «$2» на сервері проєкту {{SITENAME}} ($4) з геслом «$3», і зазначів вашу адресу електронічной пошты. Мали бы сьте ся што найскоре приголосити і змінити гесло.
 
@@ -672,26 +692,23 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'Ресет гесла',
-'passwordreset-text' => 'Выпиште тот формуларь, жебы ся вам могло обновити гесло',
+'passwordreset-text-one' => 'Выпиште тот формуларь, жебы сьте могли здобыти нове гесло',
+'passwordreset-text-many' => '{{PLURAL:$1|На здобытя нового гесла доповньте єдно з даных.}}',
 'passwordreset-legend' => 'Знову наставити гесло',
 'passwordreset-disabled' => 'Зновунаставлїня гесла є на тій вікі заказане',
 'passwordreset-emaildisabled' => 'Функції електронічной пошты были выпнуы на тій вікі.',
-'passwordreset-pretext' => '{{PLURAL:$1||Задайте єден з дат ниже}}',
 'passwordreset-username' => 'Мено хоснователя:',
 'passwordreset-domain' => 'Домена:',
 'passwordreset-capture' => 'Посмотрити выслїдный імейл?',
 'passwordreset-capture-help' => 'Кідь означіте тото поличко, буде імейл (з дочасным геслом) оркем посланя хоснователёви указаный і вам.',
 'passwordreset-email' => 'Адреса електронічной пошты:',
 'passwordreset-emailtitle' => 'Детайлы конта на {{SITENAME}}',
-'passwordreset-emailtext-ip' => 'Дахто (може вы, з IP адресы $1) пожадав о наставлїня гесла вашому 
-конту на {{grammar:6sg|{{SITENAME}}}} ($4). К тій адресї {{PLURAL:$3|є спрягнуте наступне конто|суть спрягнуты наступны конта}}:
+'passwordreset-emailtext-ip' => 'Дахто (може Вы, з IP адресы $1) попросив о наставлїня нового гесла до вашого конта на {{grammar:6sg|{{SITENAME}}}} ($4). З тов адресов {{PLURAL:$3|є повязане наступне конто|суть повазяны слїдуючі конта}}:
 
 $2
 
-{{PLURAL:$3|Тот дочасне гесло|Тоты дочасны гесла}} кінчать{{PLURAL:$5|за єден день|за $5 днїв|за $5 днїв}}.
-Нынї бы сьте ся мав(а) приголосити і зволити собі нове гесло. Як тоту пожадавку
-послав дахто другый або сьте собі на своє старе гесло спомянув(а), і не хочете го
-змінити, можете тото повідомлїня іґноровати та дале хосновати старе гесло.',
+{{PLURAL:$3|Тото дочасне гесло|Тоты дочасны гесла}} стануть неплатныма {{PLURAL:$5|за день|за $5 днї|за $5 днїв}}.
+Теперь бы хотїло, бы сьте ся приголосили та зволлил нове гесло. Кідь тоту просьбу післав хтось другый або сьте ся на старе гесло роспамнятали і не хочете го змінити, можете тото повідомлїня іґноровати та дале хосновати старе гесло.',
 'passwordreset-emailtext-user' => '{{gender:$1|Хоснователь|Хоснователька|Хоснователь}} $1 {{grammar:2sg|{{SITENAME}}}} {{gender:$1|попросив|попросила|попросив}} о наставлїня нового гесла к вашому
 конту на {{grammar:6sg|{{SITENAME}}}} ($4). К тій адресї {{PLURAL:$3|є спряжене наступне конто|суть спряжены наступну конта}}:
 
@@ -705,7 +722,7 @@ $2
 Дочасне гесло: $2',
 'passwordreset-emailsent' => 'Імейл з геслом быв посланый.',
 'passwordreset-emailsent-capture' => 'Быв выґенерованый імейл з геслом, што є вказаный ниже.',
-'passwordreset-emailerror-capture' => 'Быв выґенерованый імейл з геслом, котрый є указаный ниже, але одослати хоснователёви ся го не вдало: $1',
+'passwordreset-emailerror-capture' => 'Быв выґенерованый імейл з геслом, котрый є указаный ниже, але ся го не вдало загнати {{GENDER:$2|хоснователёви|хосновательцї}}: $1',
 
 # Special:ChangeEmail
 'changeemail' => 'Зміна імейловой адресы',
@@ -904,6 +921,7 @@ $2
 Асі была змазана.',
 'edit-conflict' => 'Конфлікт едітованя.',
 'edit-no-change' => 'Ваша едітація была іґнорована, бо ся не зробила жадна зміна тексту.',
+'postedit-confirmation' => 'Ваше едітованя было уложене.',
 'edit-already-exists' => 'Не вдало ся створити нову сторінку, бо она уж існує.',
 'defaultmessagetext' => 'Преднаставленый текст повідомлїня',
 'content-failed-to-parse' => 'Не вдало ся проаналізовати $2 як тіп $1: $3',
@@ -1150,7 +1168,6 @@ $1",
 'searchmenu-legend' => 'Параметры гляданя',
 'searchmenu-exists' => "'''У тій вікі є сторінка з назвов «[[:$1]]»'''",
 'searchmenu-new' => "'''Створити сторінку «[[:$1]]» у тій вікі!'''",
-'searchhelp-url' => 'Help:Обсяг',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Вказати сторінкы з тым префіксом]]',
 'searchprofile-articles' => 'Статї',
 'searchprofile-project' => 'Сторінкы помочі і проєкту',
@@ -1192,7 +1209,7 @@ $1",
 'powersearch-togglenone' => 'Жадный',
 'search-external' => 'Екстерне гляданя',
 'searchdisabled' => '<p>Перебачте. Повнотекстове гляданя є дочасно недоступне. Затля можете спробовати гляданя Google; є але можне, же ёго резултаты не мусять быти актуалны.</p>',
-'search-error' => 'Ð\9fÑ\96д Ñ\87аÑ\81 Ð³Ð»Ñ\8fданÑ\8f Ñ\81Ñ\8f Ñ\82Ñ\80аÑ\84ила Ñ\85Ñ\8bба',
+'search-error' => 'Як Ñ\81Ñ\8f Ð³Ð»Ñ\8fдало Ñ\82Ñ\80аÑ\84Ñ\96ла Ñ\81Ñ\8f Ñ\85Ñ\8bба: $1',
 
 # Preferences page
 'preferences' => 'Наставлїня',
@@ -1226,7 +1243,6 @@ $1",
 'resetprefs' => 'Вернути неуложены зміны',
 'restoreprefs' => 'Обновити вшыткы штандартны наставлїня',
 'prefs-editing' => 'Едітованя',
-'prefs-edit-boxsize' => 'Розмір окна едітованя:',
 'rows' => 'Рядкы:',
 'columns' => 'Колонкы:',
 'searchresultshead' => 'Гляданя',
@@ -1237,9 +1253,6 @@ $1",
 'recentchangesdays-max' => '(максімум $1 {{PLURAL:$1|день|днї|днїв}})',
 'recentchangescount' => 'Чісло імпліцітно зображованых едітовань:',
 'prefs-help-recentchangescount' => 'Тыкать ся послїднїх змін, історії сторінок і протоколовачіх записів.',
-'prefs-help-watchlist-token' => 'Кідь до того поля выповните тайный ключ, буде створеный RSS канал вашых слїдованых сторінок.
-Хоцьхто хто знає тот ключ, пак буде мочі ваш список слїдованых сторінок чітати, та же не забывайте на беспечность.
-Можете схосновати тото трафунково выґенероване значіня: $1',
 'savedprefs' => 'Ваше наставлїня было уложене.',
 'timezonelegend' => 'Часова зона:',
 'localtime' => 'Містный час:',
@@ -1270,7 +1283,6 @@ $1",
 'prefs-reset-intro' => 'Помочов той сторінкы можете вшыткы наставлїня вернути на імпліцітны годноты.
 Тоту операцію не годен вернути назад.',
 'prefs-emailconfirm-label' => 'Потверджіня електронічной пошты:',
-'prefs-textboxsize' => 'Розмір окна едітованя',
 'youremail' => 'Адреса електронічной пошты:',
 'username' => '{{GENDER:$1|Імя хоснователя}}:',
 'uid' => 'Ідентіфікатор {{GENDER:$1|хоснователя}}:',
@@ -1337,6 +1349,7 @@ $1",
 'userrights-changeable-col' => 'Ґрупы, котры можете змінити',
 'userrights-unchangeable-col' => 'Ґрупы, котры не можете змінити',
 'userrights-conflict' => 'Конфлікт прав хоснователїв! Учіньте потрібны зміны іщі раз.',
+'userrights-removed-self' => 'Вы успішно позбавили ся властных прав. Зато уж веце не мате приступ до той сторінкы.',
 
 # Groups
 'group' => 'Ґрупа:',
@@ -1408,6 +1421,8 @@ $1",
 'right-editusercssjs' => 'Едітованя CSS і JS файлів іншых хоснователїв',
 'right-editusercss' => 'Едітованя CSS файлів іншых хоснователїв',
 'right-edituserjs' => 'Едітованя JS файлів іншых хоснователїв',
+'right-editmyusercss' => 'Едітовати вашы властны хосновательскы CSS файлы.',
+'right-editmyuserjs' => 'Едітовати вашы властны хосновательскы JavaScript файлы',
 'right-rollback' => 'Швыдкый реверт управ послїднёго хоснователя едітуючого дану сторінку',
 'right-markbotedits' => 'Означованя ревертів як едітованя робота',
 'right-noratelimit' => 'Не має обмеджіня в швыдкости',
@@ -1511,7 +1526,6 @@ $1",
 'recentchangeslinked-feed' => 'Повязаны зміны',
 'recentchangeslinked-toolbox' => 'Повязаны зміны',
 'recentchangeslinked-title' => 'Зміны звязаны з «$1»',
-'recentchangeslinked-noresult' => 'В зазначенім часї не были жадны зміны на одказованых сторінках.',
 'recentchangeslinked-summary' => "Тото є список недавных змін на сторінках на котры одказує задана сторінка (або котры належать до той катеґорії).
 Сторінкы з [[Special:Watchlist|вашого списку слїдованых]] суть вызначены '''тучно'''.",
 'recentchangeslinked-page' => 'Назва сторінкы:',
@@ -2136,7 +2150,6 @@ $1',
 'unwatchthispage' => 'Не слїдовати сторінку',
 'notanarticle' => 'Тото не є статя',
 'notvisiblerev' => 'Верзія была змазана',
-'watchnochange' => 'Жадна із слїдованых положок не была едітована в часї, котрый є указаный.',
 'watchlist-details' => '{{PLURAL:$1|Єдна слїдована сторінка|слїдованы сторінкы|слїдованых сторінок}} (не рахувчі діскузны сторінкы).',
 'wlheader-enotif' => 'Упозорнїня  ел. поштов є запнуте.',
 'wlheader-showupdated' => "Сторінкы, котры ся змінили од вашой послїднёй навщівы суть вказаны '''грубо'''",
@@ -2280,9 +2293,9 @@ $UNWATCHURL
 Моменталны наставлїня про сторінку : '''$1''':",
 'protect-cascadeon' => 'Тота сторінка є теперь хранена, бо є загорнута {{PLURAL:$1|до зазначеной сторінкы ніже, на яку|до ниже зазначеных сторінок, на якы}} становлена каскадова охрана. Вы можете змінити рівень охраны той сторінкы, але тото не буде впливати на каскадову охрану.',
 'protect-default' => 'Дозволити вшыткым хоснователям',
-'protect-fallback' => 'Ð\9fоÑ\80Ñ\82Ñ\80Ñ\96бнÑ\8b "$1" Ð¿Ñ\80ава',
-'protect-level-autoconfirmed' => 'Ð\91локоваÑ\82и Ð½Ð¾Ð²Ñ\8bÑ\85 Ñ\96 Ð½ÐµÐ·Ð°Ñ\80еÒ\91Ñ\96Ñ\81Ñ\82Ñ\80ованÑ\8bÑ\85 Ñ\85оÑ\81новаÑ\82елÑ\97в',
-'protect-level-sysop' => 'Ð\9bем Ð°Ð´Ð¼Ñ\96нÑ\96Ñ\81Ñ\82Ñ\80аÑ\82оÑ\80Ñ\8b',
+'protect-fallback' => 'Ð\94озволено Ð»ÐµÐ¼ Ñ\85оÑ\81новаÑ\82елÑ\8fм Ð· Ð¿Ñ\80авом â\80\9e$1â\80\9c',
+'protect-level-autoconfirmed' => 'Ð\94озволиÑ\82и Ð»ÐµÐ¼ Ð°Ð²Ñ\82омаÑ\82Ñ\96Ñ\87но Ð¿Ð¾Ñ\82веÑ\80дженÑ\8bм Ñ\85оÑ\81новаÑ\82елÑ\8fм',
+'protect-level-sysop' => 'Ð\94озволено Ð»ÐµÐ¼ Ð°Ð´Ð¼Ñ\96нÑ\96Ñ\81Ñ\82Ñ\80аÑ\82оÑ\80ам',
 'protect-summary-cascade' => 'каскадовый',
 'protect-expiring' => 'кінчіть $1 (UTC)',
 'protect-expiring-local' => 'кінчіть ся $1',
@@ -2381,7 +2394,7 @@ $1',
 'mycontris' => 'Приспівкы',
 'contribsub2' => 'Приспівок $1 ($2)',
 'nocontribs' => 'Ненайджены жадны зміны за тыма крітеріями.',
-'uctop' => ' (послїдня)',
+'uctop' => '(остатня)',
 'month' => 'Од місяця (і скоре):',
 'year' => 'Од року (і скоре):',
 
@@ -2543,6 +2556,7 @@ $1',
 'proxyblocksuccess' => 'Готово.',
 'sorbsreason' => 'Ваша IP-адреса є веджена як отвореный проксі в DNSBL.',
 'sorbs_create_account_reason' => 'Ваша IP-адреса є веджена як одкрытый проксі в DNSBL. З той адресы собі не можете створити конто.',
+'xffblockreason' => 'IP адреса написана в голові X-Forwarded-For, ці уж ваша, або проксі сервера, што хоснуєете, была заблокована. Оріґінална прічіна того блокованя: $1',
 'cant-block-while-blocked' => 'Не можете блоковати іншых хоснователїв, кідь сьте сам заблокованый(а).',
 'cant-see-hidden-user' => 'Хоснователь, котрого хочете заблоковати, уж быв заблокованый і схованый. Кідьже не маєте права hideuser, не можете собі наставлїня блокованя того хоснователя посмотрити ани го змінити.',
 'ipbblocked' => 'Не можете блоковати або одблоковати іншых хоснователїв, {{GENDER:|сам|сама|сам}} сьте {{GENDER:|заблокованый|заблокована|заблокованый}}',
@@ -2570,14 +2584,14 @@ $1',
 # Move page
 'move-page' => 'Переменовати „$1“',
 'move-page-legend' => 'Переменовати сторінку',
-'movepagetext' => "ХоÑ\81нÑ\83вÑ\87Ñ\96 Ñ\84оÑ\80мÑ\83 Ð½Ð¸Ð¶Ðµ, Ð¼Ð¾Ð¶ÐµÑ\82е Ð¿ÐµÑ\80еменоваÑ\82и Ñ\81Ñ\82оÑ\80Ñ\96нкÑ\83, Ñ\94днÑ\8bм Ñ\80азом перемістивши на нове місце і лоґ єй едітовань.
-СÑ\82аÑ\80а Ð½Ð°Ð·Ð²Ð° Ñ\81Ñ\82ане Ð¿ÐµÑ\80енапÑ\80Ñ\8fмлинÑ\91м Ð½Ð° Ð½Ð¾Ð²Ñ\83 Ð½Ð°Ð·Ð²Ñ\83.
-Можете автоматично обновити напрямлиня на стару назву.
-Кідь вы тото не зробите, просиме Вас, перевірте наявність [[Special:DoubleRedirects|подвойных]] ці [[Special:BrokenRedirects|розорваных]] напрямлїнь.
+'movepagetext' => "ХоÑ\81нÑ\83вÑ\87Ñ\96 Ñ\84оÑ\80мÑ\83 Ð½Ð¸Ð¶Ðµ, Ð¼Ð¾Ð¶ÐµÑ\82е Ð¿ÐµÑ\80еменоваÑ\82и Ñ\81Ñ\82оÑ\80Ñ\96нкÑ\83, Ñ\82акой перемістивши на нове місце і лоґ єй едітовань.
+Стара назва стане напрямлинём на нову назву.
+Можете автоматично обновити напрямлїня на стару назву.
+Кідь вы тото не зробите, просиме Вас, перевірте [[Special:DoubleRedirects|подвойны]] ці [[Special:BrokenRedirects|розорваны]] напрямлїня.
 Вы одповідате за то, жебы одказы і надале вказовали там, де мають.
 
-Уважте, же сторінка '''не''' буде переменована, кідь сторінка з новов назвов уж екзістує, окрем того, коли она порожня або є напрямлїнём, а лоґ єй едітовань порожнїй.
-То Ð·Ð½Ð°Ñ\87Ñ\96Ñ\82Ñ\8c, Ð¶Ðµ Ð²Ñ\8b Ð¼Ð¾Ð¶ÐµÑ\82е Ð²ÐµÑ\80нÑ\83Ñ\82и Ñ\81Ñ\82оÑ\80Ñ\96нÑ\86Ñ\97 Ñ\81Ñ\82аÑ\80Ñ\83 Ð½Ð°Ð·Ð²Ñ\83, ÐºÑ\96дÑ\8c Ð²Ñ\8b Ð¿ÐµÑ\80еменовали Ñ\94й Ð¿Ð¾Ð¼Ñ\8bлково, Ð°Ð»Ðµ Ð²Ñ\8b Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ\82е Ð¿ÐµÑ\80епиÑ\81аÑ\82и ÐµÐºÐ·Ñ\96Ñ\81Ñ\82уючу сторінку.
+Уважте, же сторінка '''не''' буде переменована, кідь сторінка з новов назвов уж існує, окрем того, коли она порожня або є напрямлїнём, а лоґ єй едітовань порожнїй.
+То Ð·Ð½Ð°Ñ\87Ñ\96Ñ\82Ñ\8c, Ð¶Ðµ Ð²Ñ\8b Ð¼Ð¾Ð¶ÐµÑ\82е Ð²ÐµÑ\80нÑ\83Ñ\82и Ñ\81Ñ\82оÑ\80Ñ\96нÑ\86Ñ\97 Ñ\81Ñ\82аÑ\80Ñ\83 Ð½Ð°Ð·Ð²Ñ\83, ÐºÑ\96дÑ\8c Ð²Ñ\8b Ð¿ÐµÑ\80еменовали Ñ\94й Ð½ÐµÐ½Ð°Ñ\80оком, Ð°Ð»Ðµ Ð²Ñ\8b Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ\82е Ð¿ÐµÑ\80епиÑ\81аÑ\82и Ñ\96Ñ\81нуючу сторінку.
 
 '''ВАРОВАНЯ!'''
 Тота дїя може ся стати причінов серіозных а неочекованых змін популарных сторінок.
@@ -2704,6 +2718,8 @@ $1',
 'thumbnail-more' => 'Звекшыти',
 'filemissing' => 'Файл хыбить',
 'thumbnail_error' => 'Хыба створїня нагляду: $1',
+'thumbnail_error_remote' => 'Хыбове голошіня з {{grammar:2sg|$1}}:
+$2',
 'djvu_page_error' => 'Сторінка DjVu мімо россяг',
 'djvu_no_xml' => 'Створїня XML про файл DjVu ся не вдало.',
 'thumbnail-temp-create' => 'Дочасный файл нагляду негодно было створити',
@@ -2889,6 +2905,7 @@ $1',
 'pageinfo-robot-noindex' => 'Не індексує ся',
 'pageinfo-views' => 'Чісло переглядів',
 'pageinfo-watchers' => 'Кількость слїдуючіх сторінку',
+'pageinfo-few-watchers' => 'Менше як $1 {{PLURAL:$1|слїдуючій|слїдуючі|слїдуючіх}}',
 'pageinfo-redirects-name' => 'Напрямлїня на гевсю сторінку',
 'pageinfo-subpages-name' => 'Підсторінкы гевсёй сторінкы',
 'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|напрямлїня}}; $3 {{PLURAL:$3|ненапрямлїня}})',
@@ -2903,6 +2920,7 @@ $1',
 'pageinfo-magic-words' => '{{PLURAL:$1|Маґічне слово|Маґічны слова}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Скрыта катеґорія|Скрыты катеґорії}} ($1)',
 'pageinfo-templates' => '{{PLURAL:$1|Хоснована шаблона|Хоснованы шаблоны}} ($1)',
+'pageinfo-transclusions' => '{{PLURAL:$1|Сторінка, до котрой|Сторінкы, до котрых}} є тота сторінка вложена ($1)',
 'pageinfo-toolboxlink' => 'Інформації о сторінцї',
 'pageinfo-redirectsto' => 'Напрямлює на',
 'pageinfo-redirectsto-info' => 'інформація',
@@ -2911,6 +2929,10 @@ $1',
 'pageinfo-protect-cascading' => 'Одты ся почінать каскадна охорона',
 'pageinfo-protect-cascading-yes' => 'Гей',
 'pageinfo-protect-cascading-from' => 'Каскадна охорона ся почінать гев',
+'pageinfo-category-info' => 'Інформація о катеґорії',
+'pageinfo-category-pages' => 'Кількость сторінок',
+'pageinfo-category-subcats' => 'Кількость підкатеґорій',
+'pageinfo-category-files' => 'Кількость файлів',
 
 # Patrolling
 'markaspatrolleddiff' => 'Означіти як перевірене',
@@ -2988,9 +3010,25 @@ $1',
 'minutes' => '{{PLURAL:$1|$1 минута|$1 минуты|$1 минут}}',
 'hours' => '{{PLURAL:$1|$1 година|$1 годины|$1 годин}}',
 'days' => '{{PLURAL:$1|$1 день|$1 днї|$1 днїв}}',
+'weeks' => '{{PLURAL:$1|$1 тыждень|$1 тыжднї|$1 тыжднїв}}',
+'months' => '{{PLURAL:$1|$1 місяць|$1 місяцї|$1 місяцїв}}',
+'years' => '{{PLURAL:$1|$1 рік|$1 рокы|$1 років}}',
 'ago' => '$1 тому',
 'just-now' => 'акурат теперь',
 
+# Human-readable timestamps
+'hours-ago' => 'перед $1 {{PLURAL:$1|годинов|годинами}}',
+'minutes-ago' => '$1 {{PLURAL:$1|минуту|минуты|минут}} тому',
+'seconds-ago' => '$1 {{PLURAL:$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
 'bad_image_list' => 'Формат має быти наступным:
 
@@ -3583,7 +3621,6 @@ $5
 'version-other' => 'Інше',
 'version-mediahandlers' => 'Обслуга медії',
 'version-hooks' => 'Припойны пункты',
-'version-extension-functions' => 'Функції розшыриня',
 'version-parser-extensiontags' => 'Приданы сінтактічны значкы',
 'version-parser-function-hooks' => 'Функціа парсера',
 'version-hook-name' => 'Назва припойного пункту',
@@ -3605,6 +3642,18 @@ MediaWiki є дістрібуована в надїї, же буде хосно
 'version-entrypoints-header-entrypoint' => 'Вступный пункт',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
+'redirect' => 'Напрямлїня за файлом, хоснователям або ID ревізії',
+'redirect-legend' => 'Напрямити на файл або сторінку',
+'redirect-summary' => 'Тота шпеціална сторінка напрямує на файл (по назві), сторінку (по ID ревізії) або хоснователя (по чіселнім хоснователёвім ID).',
+'redirect-submit' => 'Перейти',
+'redirect-lookup' => 'Найти:',
+'redirect-value' => 'Значіня',
+'redirect-user' => 'ID хоснователя',
+'redirect-revision' => 'Ревізія сторінкы',
+'redirect-file' => 'Назва файлу',
+'redirect-not-exists' => 'Значіня ся не нашло',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Гляданя дуплікатных файлів',
 'fileduplicatesearch-summary' => 'Гляданя дупліцітных файлів ся базує на їх геш функції.',
@@ -3631,7 +3680,7 @@ MediaWiki є дістрібуована в надїї, же буде хосно
 'specialpages-group-highuse' => 'Часто поужываны сторінкы',
 'specialpages-group-pages' => 'Спискы сторінок',
 'specialpages-group-pagetools' => 'Інштрументы сторінок',
-'specialpages-group-wiki' => 'Ð\92Ñ\96кÑ\96 Ð´Ð°Ñ\82а і інштрументы',
+'specialpages-group-wiki' => 'Ð\94анÑ\8b і інштрументы',
 'specialpages-group-redirects' => 'Напрямлїня',
 'specialpages-group-spam' => 'Протиспамовы інштрументы',
 
@@ -3694,23 +3743,26 @@ MediaWiki є дістрібуована в надїї, же буде хосно
 'htmlform-submit' => 'Одослати',
 'htmlform-reset' => 'Вернути зміны',
 'htmlform-selectorother-other' => 'Інше',
+'htmlform-no' => 'Нє',
+'htmlform-yes' => 'Гей',
+'htmlform-chosen-placeholder' => 'Звольте параметер',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 з підпоров повнотекстового гляданя',
 'sqlite-no-fts' => '$1 без підпоры повнотекстового гляданя',
 
 # New logging system
-'logentry-delete-delete' => '$1 змазав сторінку $3',
-'logentry-delete-restore' => '$1 обновив сторінку $3',
-'logentry-delete-event' => '$1 змінив відимость {{PLURAL:$5|протоколового запису|$5 протоколовых записів}} к сторінцї $3: $4',
-'logentry-delete-revision' => '$1 змінив відимость {{PLURAL:$5|ревізії|$5 ревізій}} на сторінцї $3: $4',
-'logentry-delete-event-legacy' => '$1 змінив відимость протоколовых записів к сторінцї $3',
-'logentry-delete-revision-legacy' => '$1 змінив відимость ревізій на сторінцї $3',
-'logentry-suppress-delete' => '$1 утаїв сторінку $3',
-'logentry-suppress-event' => '$1 тайком змінив відимость {{PLURAL:$5|протоколового запису|$5 протоколовых записів}} к сторінцї $3: $4',
-'logentry-suppress-revision' => '$1 тайком змінив відимость {{PLURAL:$5|ревізії|$5 ревізій}} на сторінцї $3: $4',
-'logentry-suppress-event-legacy' => '$1 тайком змінив відимость протоколовых записів к сторінцї $3',
-'logentry-suppress-revision-legacy' => '$1 тайком змінив відимость ревізій на сторінцї $3',
+'logentry-delete-delete' => '$1 {{GENDER:$2|змазав|змазала}} сторінку $3',
+'logentry-delete-restore' => '$1 {{GENDER:$2|обновив|обновила}} сторінку $3',
+'logentry-delete-event' => '$1 {{GENDER:$2|змінив|змінила}}  відимость {{PLURAL:$5|протоколового запису|$5 протоколовых записів}} к сторінцї $3: $4',
+'logentry-delete-revision' => '$1 {{GENDER:$2|змінив|змінила}}  відимость {{PLURAL:$5|ревізії|$5 ревізій}} на сторінцї $3: $4',
+'logentry-delete-event-legacy' => '$1 {{GENDER:$2|змінив|змінила}} відимость протоколовых записів к сторінцї $3',
+'logentry-delete-revision-legacy' => '$1 {{GENDER:$2|змінив|змінила}}  відимость ревізій на сторінцї $3',
+'logentry-suppress-delete' => '$1 {{GENDER:$2|утаїв|утаїла}}  сторінку $3',
+'logentry-suppress-event' => '$1 тайком {{GENDER:$2|змінив|змінила}}  відимость {{PLURAL:$5|протоколового запису|$5 протоколовых записів}} к сторінцї $3: $4',
+'logentry-suppress-revision' => '$1 тайком {{GENDER:$2|змінив|змінила}}  відимость {{PLURAL:$5|ревізії|$5 ревізій}} на сторінцї $3: $4',
+'logentry-suppress-event-legacy' => '$1 тайком {{GENDER:$2|змінив|змінила}}  відимость протоколовых записів к сторінцї $3',
+'logentry-suppress-revision-legacy' => '$1 тайком {{GENDER:$2|змінив|змінила}} відимость ревізій на сторінцї $3',
 'revdelete-content-hid' => 'скрыти обсяг',
 'revdelete-summary-hid' => 'опис едітованя схованый',
 'revdelete-uname-hid' => 'імя хоснователя сховане',
@@ -3719,19 +3771,20 @@ MediaWiki є дістрібуована в надїї, же буде хосно
 'revdelete-uname-unhid' => 'імя хоснователя одкрыте',
 'revdelete-restricted' => 'приданы обмеджіня про адміністраторів',
 'revdelete-unrestricted' => 'зняты обмеджіня про адміністраторів',
-'logentry-move-move' => '$1 переменовав сторінку $3 на $4',
-'logentry-move-move-noredirect' => '$1 переменовав сторінку $3 на $4 без створїня напрямлїня',
-'logentry-move-move_redir' => '$1 переменовав сторінку $3 на $4 з вычерянём напрямлїнём',
-'logentry-move-move_redir-noredirect' => '$1 переменовав сторінку $3 на $4 місце напрямлїня без створїня напрямлїня',
-'logentry-patrol-patrol' => '$1 означів ревізію $4 сторінкы $3 як перевірену',
-'logentry-patrol-patrol-auto' => '$1 автоматічно означів ревізію $4 сторінкы $3 як перевірену',
-'logentry-newusers-newusers' => 'Створене хосновательске конто $1',
-'logentry-newusers-create' => 'Створене было хосновательске конто $1',
-'logentry-newusers-create2' => '$1 створив хосновательске конто $3',
-'logentry-newusers-autocreate' => 'Автоматічно было створене конто $1',
+'logentry-move-move' => '$1 {{GENDER:$2|переменовав|переменовала}} сторінку $3 на $4',
+'logentry-move-move-noredirect' => '$1 {{GENDER:$2|переменовав|переменовала}} сторінку $3 на $4 без створїня напрямлїня',
+'logentry-move-move_redir' => '$1 {{GENDER:$2|переменовав|переменовала}} сторінку $3 на $4 з вычерянём напрямлїнь',
+'logentry-move-move_redir-noredirect' => '$1 {{GENDER:$2|змінив|змінила}} сторінку $3 на $4 місце напрямлїня без створїня напрямлїня',
+'logentry-patrol-patrol' => '$1 {{GENDER:$2|означів|означіла}} ревізію $4 сторінкы $3 як перевірену',
+'logentry-patrol-patrol-auto' => '$1 автоматічно {{GENDER:$2|означів|означіла}} ревізію $4 сторінкы $3 як перевірену',
+'logentry-newusers-newusers' => 'Было {{GENDER:$2|створене}} хосновательске конто $1',
+'logentry-newusers-create' => 'Было {{GENDER:$2|створене}} хосновательске конто $1',
+'logentry-newusers-create2' => '$1 {{GENDER:$2|створив|створила}} хосновательске конто $3',
+'logentry-newusers-byemail' => '$1 {{GENDER:$2|створив|створила}} хосновательске конто $3, гесло послане было імейлом',
+'logentry-newusers-autocreate' => 'Автоматічно было {{GENDER:$2|створене}} конто $1',
 'logentry-rights-rights' => '$1 {{GENDER:$1|змінив|змінила}} членство в ґрупах про $3 із $4 на $5',
 'logentry-rights-rights-legacy' => '$1 {{GENDER:$1|змінив|змінила}} членство в ґрупах про $3',
-'logentry-rights-autopromote' => '$1 было автоматічно переведено із $4 в $5',
+'logentry-rights-autopromote' => '$1 {{GENDER:$2|быв автоматічно переведеный|была автоматічно переведана}} з $4 на $5',
 'rightsnone' => '(жадне)',
 
 # Feedback
@@ -3786,6 +3839,7 @@ MediaWiki є дістрібуована в надїї, же буде хосно
 'api-error-ok-but-empty' => 'Внутрїшня хыба: сервер не одповідать.',
 'api-error-overwrite' => 'Не є дозволене переписати екзістуючій файл.',
 'api-error-stashfailed' => 'Внутрїшня хыба: серверу ся не вдало уложыти дочасный файл.',
+'api-error-publishfailed' => 'Внутрїшня хыба: серверови ся не вдало опубліковати дочасный файл.',
 'api-error-timeout' => 'Сервер не одповідав в очекаванім часї.',
 'api-error-unclassified' => 'Трафила ся незнама хыба.',
 'api-error-unknown-code' => 'Незнама хыба: „$1“',
@@ -3806,4 +3860,7 @@ MediaWiki є дістрібуована в надїї, же буде хосно
 'duration-centuries' => '$1 {{PLURAL:$1|стороча|стороча|стороч}}',
 'duration-millennia' => '$1 {{PLURAL:$1|тісячроча|тісячроча|тісячроч}}',
 
+# Image rotation
+'rotate-comment' => 'Образчік обернутый о $1 {{PLURAL:$1|ґрадус|ґрадусів}} за цайґером',
+
 );
index 0828c2a..de8bf42 100644 (file)
@@ -518,7 +518,6 @@ $1',
 'disclaimers' => 'प्रत्याख्यानम्',
 'disclaimerpage' => 'Project:साधारणं प्रत्याख्यानम्',
 'edithelp' => 'सम्पादनार्थं सहाय्यम्',
-'edithelppage' => 'Help:सम्पादनम्',
 'helppage' => 'Help:आन्तर्यम्',
 'mainpage' => 'मुख्यपृष्ठम्',
 'mainpage-description' => 'मुख्यपृष्ठम्',
@@ -683,9 +682,15 @@ $2',
 'welcomecreation-msg' => 'भवतः लेखा रचिताऽस्ति।
 स्वकीयानां [[Special:Preferences|{{SITENAME}} इष्टतमानां]]. निगदनं मा विस्मर्यताम्।',
 'yourname' => 'योजकनामन्:',
+'userlogin-yourname' => 'प्रयोक्तुः नाम',
+'userlogin-yourname-ph' => 'स्वकीयं प्रयोक्तृनाम दीयताम्',
 'yourpassword' => 'कूटशब्दः',
+'userlogin-yourpassword-ph' => 'स्वकीयं कूटशब्दं दीयताम्',
+'createacct-yourpassword-ph' => 'कूटशब्दः प्रविश्यताम्',
 'yourpasswordagain' => 'कूटशब्दः पुनः लिख्यताम् ।',
+'createacct-yourpasswordagain-ph' => 'कूटशब्दः पुनः प्रविश्यताम्',
 'remembermypassword' => 'अस्मिन् सङ्गणके मम प्रवेशः स्मर्यताम् (अधिकतमम् $1 {{PLURAL:$1|दिनम्|दिनानि}})',
+'userlogin-remembermypassword' => 'अहं प्रविष्टमेव तिष्ठेयम्',
 'securelogin-stick-https' => 'प्रवेशोपरान्तं एचटीटीपीएस(HTTPS) इत्यनेन सह संबद्धः तिष्ठतु।',
 'yourdomainname' => 'भवतः प्रक्षेत्रम्:',
 'password-change-forbidden' => 'अस्यां विक्यां निकुञ्चं परिवर्तयितुं न शक्नोति ।',
@@ -698,14 +703,19 @@ $2',
 'logout' => 'निर्गमनम्',
 'userlogout' => 'निर्गमनम्',
 'notloggedin' => 'नैव प्रविष्टः',
+'userlogin-noaccount' => 'सदस्यता नास्ति किम्?',
 'nologin' => 'पूर्वमेव योजकः नास्ति किम् ? $1।',
 'nologinlink' => 'सदस्यता प्राप्यताम्',
 'createaccount' => 'सदस्यता प्राप्यताम्',
 'gotaccount' => 'पूर्वमेव योजकः अस्ति किम् ? $1।',
 'gotaccountlink' => 'प्रविश्यताम्',
 'userlogin-resetlink' => 'प्रवेशविवरणानि विस्मृतानि किम् ?',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|प्रवेशनार्थं सहायता]]',
+'createacct-join' => 'स्वकीया सूचना अधस्तात् प्रवेश्यताम्।',
 'createaccountmail' => 'ईपत्रद्वारा',
 'createaccountreason' => 'कारणम्',
+'createacct-reason' => 'कारणम्',
+'createacct-reason-ph' => 'भवान् अन्यां लेखां किमर्थं रचितुमिच्छसि?',
 'badretype' => 'भवता प्रदत्ते कूटशब्दे न खलु समाने स्तः। कृपया पुनः लिखतु।',
 'userexists' => 'भवतः प्रदत्तः प्रयोक्तृनाम अन्येन प्रयुज्यमानम् अस्ति। कृपया अन्यदेकं प्रयोक्तृनाम चिनोतु।',
 'loginerror' => 'प्रवेशने प्रमादः',
@@ -809,10 +819,8 @@ You may ignore this message, if this account was created in error.',
 
 # Special:PasswordReset
 'passwordreset' => 'कूटशब्द पुनःस्थापनम्',
-'passwordreset-text' => 'भवतः सदस्यताविवरणानि ईपत्रद्वारा प्राप्तुम् इदं प्रपत्रं पूर्यताम् ।',
 'passwordreset-legend' => 'कूटशब्द पुनःस्थापनम्',
 'passwordreset-disabled' => 'अस्मिन् विक्यां कूटशब्द पुनःस्थापनं असमर्थीकृतमस्ति।',
-'passwordreset-pretext' => '{{PLURAL:$1| |समंकेषु एकम् अधस्यात् प्रविष्टीकरोतु।}}',
 'passwordreset-username' => 'योजकनामन्:',
 'passwordreset-domain' => 'क्षेत्रम्:',
 'passwordreset-capture' => 'फलितरूपम् ईपत्रं किं दृश्यते ?',
@@ -1261,7 +1269,6 @@ You can still [$1 view this revision]",
 'searchmenu-legend' => 'अन्वेषणस्य विकल्पाः ।',
 'searchmenu-exists' => 'अस्मिन् विकिमध्ये "[[:$1]]"नामकं पृष्ठं विद्यते।',
 'searchmenu-new' => "'''अस्यां विक्यां \"[[:\$1]]\" इति पृष्ठं सृज्यताम्!'''",
-'searchhelp-url' => 'Help: साहाय्यम् : आधेयाः ।',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|एतदुपसर्गयुक्तपुटं पश्यतु ]]',
 'searchprofile-articles' => 'आन्तर्यम्',
 'searchprofile-project' => 'सहायता प्रकल्पपृष्ठानि च',
@@ -1339,7 +1346,6 @@ You can still [$1 view this revision]",
 'resetprefs' => 'असंरक्षितानि परिवर्तनानि विलुप्यन्ताम्',
 'restoreprefs' => 'समग्राः व्यवस्थादय व्यवस्थानुसारं पुनः संरक्ष्यताम्',
 'prefs-editing' => 'सम्पादनम्',
-'prefs-edit-boxsize' => 'सम्पादनकोष्ठस्य आकारः ।',
 'rows' => 'पंक्ति',
 'columns' => 'अध: पंक्त्याः',
 'searchresultshead' => 'अन्वेषणम्',
@@ -1350,7 +1356,6 @@ You can still [$1 view this revision]",
 'recentchangesdays-max' => 'अधिकतम $1 {{PLURAL:$1|दिवसः|दिवसानि}}',
 'recentchangescount' => 'सम्पादन संख्यकानि व्यवस्थानुसारेण दृश्यतु:',
 'prefs-help-recentchangescount' => 'अत्र सद्यः परिवर्तनानि, पुटेतिहासाः, प्रवेशाः च अन्तर्गताः ।',
-'prefs-help-watchlist-token' => 'अत्र रहस्यकुञ्चिकया पूरणेन भवतः नीरीक्षावल्यां RSS पूरितं भवति । रहस्यकुञ्चिकां यः जानाति तेन भवतः निरीक्षावली दृष्टुं शक्यते । अतः कृपया सुरक्षमौल्यं चिनोतु । अत्र यादृच्छया निर्मितं मौल्यं भवान्  $1 द्वारा पश्यति ।',
 'savedprefs' => 'आद्यताः संरक्षिताः ।',
 'timezonelegend' => 'समय मण्डल:',
 'localtime' => 'स्थानीय समय:',
@@ -1380,7 +1385,6 @@ You can still [$1 view this revision]",
 'prefs-common-css-js' => 'सर्वावरणानां कृते विभक्त सि.एस्.एस्./ जावालिपिः ।',
 'prefs-reset-intro' => 'आद्यतानां पुनर्निदेशार्थम् एतत्पुटम् उपयोक्तुं शकोति । एतत् अकृतं न भवति ।',
 'prefs-emailconfirm-label' => 'विद्युन्मानसङ्केतस्य दृढीकरणम् ।',
-'prefs-textboxsize' => 'सम्पादनकोष्ठस्य आकारः ।',
 'youremail' => 'ईपत्रसङ्केतः',
 'username' => 'योजकनामन्:',
 'uid' => 'प्रयोक्तृ-क्रमांकः :',
@@ -1621,7 +1625,6 @@ You can still [$1 view this revision]",
 'recentchangeslinked-feed' => 'पृष्ठ-सम्बन्धितानि परिवर्तनानि',
 'recentchangeslinked-toolbox' => 'पृष्ठसम्बद्धानि परिवर्तनानि',
 'recentchangeslinked-title' => '"$1" इत्यस्मिन् जातानि परिवर्तनानि',
-'recentchangeslinked-noresult' => 'निर्दिष्टे अवधौ सम्बद्धे पृष्ठे कोपि परिवर्तनं न जातम् ।',
 'recentchangeslinked-summary' => "एषा विशेषपृष्ठसम्बद्धेषु पॄष्ठेषु अथवा वर्गविशेषे अन्तर्भूतेषु पृष्ठेषु सद्योजातानां परिवर्तनानाम् आवलिः।
 
 [[Special:Watchlist|भवतः अवेक्षणसूच्यां]] विद्यमानानि पृष्ठानि '''स्थूलाक्षरैः''' दर्शितानि।",
@@ -2255,7 +2258,6 @@ See https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
 'unwatchthispage' => 'अवलोकनेन अलम् ।',
 'notanarticle' => 'न आधेयं पुटम् ।',
 'notvisiblerev' => 'अन्ययोजकेन कृतम् अवतरणम् अपमर्जितम् ।',
-'watchnochange' => 'दर्शितावधौ अवलोकितपदार्थाः न सम्पादिताः ।',
 'watchlist-details' => '{{PLURAL:$1|$1 पृष्ठं|$1 पृष्ठानि}} भवतः अवेक्षणसूच्यां सन्ति, सम्भाषणपृष्ठानि नात्र गणितानि।',
 'wlheader-enotif' => 'विद्युन्मानपत्रस्य सूचनाः सक्रियाः ।',
 'wlheader-showupdated' => 'भवतः सन्दर्शनस्य पश्चात् परिवर्तितानि पुटानि स्थूलाक्षरैः निर्दिष्टानि ।',
@@ -3713,7 +3715,6 @@ $5
 'version-other' => 'अन्यत्',
 'version-mediahandlers' => 'माध्यनिर्वाहकाः ।',
 'version-hooks' => 'आलम्बाः ।',
-'version-extension-functions' => 'विस्तरणस्य कार्यकलापाः ।',
 'version-parser-extensiontags' => 'विन्यासविस्तारणस्य सूत्रम् ।',
 'version-parser-function-hooks' => 'विन्यासकलापस्य आलम्बाः ।',
 'version-hook-name' => 'आलम्बस्य नाम ।',
index f8db620..73ad2a5 100644 (file)
@@ -13,6 +13,7 @@
  * @author HalanTul
  * @author Kaganer
  * @author Meno25
+ * @author Nemo bis
  * @author Urhixidur
  */
 
@@ -150,6 +151,18 @@ $messages = array(
 'oct' => 'Алт',
 'nov' => 'Сэт',
 'dec' => 'Ахс',
+'january-date' => 'Тохсунньу $1',
+'february-date' => 'Олунньу $1',
+'march-date' => 'Кулун тутар $1',
+'april-date' => 'Муус устар $1',
+'may-date' => 'Ыам ыйын $1',
+'june-date' => 'Бэс ыйын $1',
+'july-date' => 'От ыйын $1',
+'august-date' => 'Атырдьах ыйын $1',
+'september-date' => 'Балаҕан ыйын $1',
+'october-date' => 'Алтынньы $1',
+'november-date' => 'Сэтинньи $1',
+'december-date' => 'Ахсынньы $1',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Категория|Категориялар}}',
@@ -231,6 +244,7 @@ $messages = array(
 'create-this-page' => 'Бу сирэйи ай',
 'delete' => 'Соттор',
 'deletethispage' => 'Бу сирэйи соттор',
+'undeletethispage' => 'Бу сирэйи сөргүт (төннөр)',
 'undelete_short' => 'Төттөрү аҕал {{PLURAL:$1|биир уларытыыны|$1 уларытыылары}}',
 'viewdeleted_short' => '{{PLURAL:$1|Соҕотох сотторуллубут көннөрүүнү|$1 сотторуллубут көннөрүүнү}} көрүү',
 'protect' => 'Уларыппат гын',
@@ -284,7 +298,6 @@ $1',
 'disclaimers' => 'Бүк охсунуу',
 'disclaimerpage' => 'Project:Бүк охсунуу',
 'edithelp' => 'Уларытааччыларга көмө',
-'edithelppage' => 'Help:Уларытарга көмө',
 'helppage' => 'Help:Көмө',
 'mainpage' => 'Сүрүн сирэй',
 'mainpage-description' => 'Сүрүн сирэй',
@@ -428,6 +441,10 @@ $2',
 'namespaceprotected' => "Эн '''$1''' аат эйгэтигэр киирэр сирэйдэри уларытар кыаҕыҥ суох.",
 'customcssprotected' => 'Эн бу CSS-сирэйи уларытар кыаҕыҥ суох, тоҕо диэтэххэ онтуҥ атын киһи тус бэйэтин туруорууларын таарыйар.',
 'customjsprotected' => 'Эн бу JavaScript-сирэйи уларытар кыаҕыҥ суох, тоҕо диэтэххэ онтуҥ атын киһи тус бэйэтин туруорууларын таарыйар.',
+'mycustomcssprotected' => 'CSS-сирэйи уларытар кыаҕыҥ суох эбит.',
+'mycustomjsprotected' => 'Сирэйгэ JavaScript уларытар кыаҕыҥ суох эбит.',
+'myprivateinfoprotected' => 'Бэйэҥ тускунан информацияны уларытар кыаҕыҥ суох эбит.',
+'mypreferencesprotected' => 'Бэйэҥ туруорууларгын уларытар кыаҕыҥ суох эбит.',
 'ns-specialprotected' => '{{ns:special}} ааттаах сирэйдэр уларытыллыбаттар.',
 'titleprotected' => "Бу бас тыл оҥоһулларын [[User:$1|$1]] боппут.
 Төрүөтэ - ''$2''",
@@ -456,13 +473,17 @@ $2',
 'yourname' => 'Кыттааччы аатыҥ:',
 'userlogin-yourname' => 'Бэлиэ-аат',
 'userlogin-yourname-ph' => 'Бэлиэ-ааккын киллэр',
+'createacct-another-username-ph' => 'Ааккын суруй',
 'yourpassword' => 'Киирии тыла:',
 'userlogin-yourpassword' => 'Киирии тыл',
 'userlogin-yourpassword-ph' => 'Киирии тылгын суруй',
+'createacct-yourpassword-ph' => 'Киирии тылгын суруй',
 'yourpasswordagain' => 'Киирии тылгын хатылаа:',
+'createacct-yourpasswordagain' => 'Киирии тылгын бигэргэт',
+'createacct-yourpasswordagain-ph' => 'Киирии тылгын хатылаа',
 'remembermypassword' => 'Миигин бу көмпүүтэргэ сигээ ($1 {{PLURAL:$1|күн|күнтэн ордуга суох}})',
-'userlogin-remembermypassword' => 'Ð\94олоÒ\95ойгоÑ\80 Ñ\85аÑ\82аа',
-'userlogin-signwithsecure' => 'Ð\91игÑ\8d Ñ\81иÑ\8dÑ\80бÑ\8dÑ\80и Ñ\82Ñ\83һанан ÐºÐ¸Ð¸Ñ\80ии',
+'userlogin-remembermypassword' => 'ТиһиликÑ\82Ñ\8dн Ñ\82аÑ\85Ñ\81Ñ\8bма',
+'userlogin-signwithsecure' => 'Ð\91игÑ\8d Ñ\85олбонÑ\83Ñ\83',
 'securelogin-stick-https' => 'Киирэн баран HTTPS нөҥүө холбонууну салгыырга',
 'yourdomainname' => 'Эн дөмүөнүҥ:',
 'password-change-forbidden' => 'Бу биикигэ киирии тылы уоарытар табыллыбат.',
@@ -483,14 +504,33 @@ $2',
 'gotaccount' => "Бэлиэтэммитиҥ дуо? '''$1'''.",
 'gotaccountlink' => 'Аатыҥ',
 'userlogin-resetlink' => 'Киирэр тылгын умнубуккун дуо?',
+'userlogin-resetpassword-link' => 'Киирии тылы уларытыы',
 'helplogin-url' => 'Help:Бэлиэ-ааты киллэрии',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Бэлиэтэниигэ көмө]]',
+'createacct-join' => 'Аллара суруй.',
+'createacct-another-join' => 'Саҥа бэлиэ-аат туһунан аллара суруй.',
+'createacct-emailrequired' => 'Email аадырыс',
+'createacct-emailoptional' => 'Email аадырыс (булгуччута суох)',
+'createacct-email-ph' => 'Эл аадырыскын суруй',
+'createacct-another-email-ph' => 'Эл. почтаҕын киллэр',
 'createaccountmail' => 'Быстах киирии тылы туһаныы уонна ону email-ынан ыытыы',
+'createacct-realname' => 'Дьиҥнээх аатыҥ (булгуччута суох)',
 'createaccountreason' => 'Төрүөтэ:',
+'createacct-reason' => 'Төрүөтэ',
+'createacct-reason-ph' => 'Саҥа аатынан тоҕо киирэҕиний',
+'createacct-captcha' => 'Куттал суох буолуутун тургутуу',
+'createacct-imgcaptcha-ph' => 'Үөһэ көстөрү хатылаа',
+'createacct-submit' => 'Бэлиэтэнии',
+'createacct-another-submit' => 'Атын аатынан бэлиэтэн',
+'createacct-benefit-heading' => '{{SITENAME}} ситим-сири эн курдук дьон оҥороллор.',
+'createacct-benefit-body1' => '{{PLURAL:$1|уларытыы|уларытыы}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|сирэй|сирэй}}',
+'createacct-benefit-body3' => 'кэнники {{PLURAL:$1|кыттааччы|кыттааччы}}',
 'badretype' => 'Киирии тылларыҥ сөп түбэспэтилэр.',
 'userexists' => 'Суруйбут аатыҥ бэлиэр баар.
 Бука диэн, атын аатта тал.',
 'loginerror' => 'Ааккын система билбэтэ',
+'createacct-error' => 'Бэлиэтэнии кэмигэр алҕас таҕыста',
 'createaccounterror' => 'Саҥа аат бэлиэтиир кыах суох: $1',
 'nocookiesnew' => 'Маннык ааттаах кыттааччы баар буолла гынан баран, систиэмэҕэ киирэ илик. {{SITENAME}} «cookies» туттар, оттон эн көмпүүтэргэр ону туһанар бобуллубут. Бука диэн «cookies» холбоо, онтон өссө киирэн көр.',
 'nocookieslogin' => '{{SITENAME}} дьону билэргэ «cookies» туттар. Эн көмпүүтэргэр «cookies» бобуллубут. Ону холбоон баран өссө киирэн көр.',
@@ -544,7 +584,7 @@ $2',
 'cannotchangeemail' => 'Бу биикигэ бу аакка баайыллыбыт электроннай почта аадырыһа уларытыллар кыаҕа суох эбит.',
 'emaildisabled' => 'Бу ситим-сир сурук ыыппат эбит.',
 'accountcreated' => 'Саҥа аат иҥэрилиннэ',
-'accountcreatedtext' => 'Кыттааччы $1 диэн ааттанна.',
+'accountcreatedtext' => '[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|ыр.]]) бэлиэ аат оҥоһулунна.',
 'createaccount-title' => '{{SITENAME}} бырайыакка саҥа аат оҥоруу',
 'createaccount-text' => 'Ким эрэ {{SITENAME}} бырайыакка ($4) саҥа $2 ааты бэлиэтээбит. "$2" киирии тыла "$3". Билигин киирэн киирии тылгын уларытыаххын наада.
 
@@ -579,13 +619,15 @@ $2',
 'resetpass-wrong-oldpass' => 'Киирии тыл сөп түбэспэтэ.
 Баҕар уларыппытыҥ буолуо эбэтэр быстах кэмҥэ туттуллар киирии тылы оҥотторбутуҥ буолуо.',
 'resetpass-temp-password' => 'Быстах кэмҥэ туттуллар киирии тыл:',
+'resetpass-abort-generic' => 'Киирии тылы уларытыыны кэҥэтии тохтотто.',
 
 # Special:PasswordReset
 'passwordreset' => 'Киирии тылы саҥаттан',
-'passwordreset-text' => 'Урукку киирии тылы уларытарга бу форманы толор.',
+'passwordreset-text-one' => 'Урукку киирии тылы уларытарга бу форманы толор.',
+'passwordreset-text-many' => '{{PLURAL:$1|Киирии тылы уларытарга түннүктэртэн биирдэстэрин толор.}}',
 'passwordreset-legend' => 'Киирии тылы саҥаттан',
 'passwordreset-disabled' => 'Бу биикигэ киирии тылы саҥардыы бобуллубут.',
-'passwordreset-pretext' => '{{PLURAL:$1||Аллара көстөр дааннайдартан биирин талан суруй}}',
+'passwordreset-emaildisabled' => 'Бу биикигэ эл. почтаны туттуу араарыллыбыт',
 'passwordreset-username' => 'Кыттааччы:',
 'passwordreset-domain' => 'Домен:',
 'passwordreset-capture' => 'Суруллубут суругу көрөҕүн дуо?',
@@ -616,7 +658,7 @@ $2
 Быстах киирии тыл: $2',
 'passwordreset-emailsent' => 'Киирии тылы уларытар туһунан сурук барда.',
 'passwordreset-emailsent-capture' => 'Киирии тылы уларытар туһунан сурук аллара эмиэ көрдөрүлүннэ.',
-'passwordreset-emailerror-capture' => 'Манна киирии тылы уларытар туһунан сурук көрдөрүлүннэ. Ол эрэн сурук бу төрүөттэн сатаан барбата: $1',
+'passwordreset-emailerror-capture' => 'Манна киирии тылы уларытар туһунан сурук көрдөрүлүннэ. Ол эрэн сурук бу төрүөттэн $2 кыттааччыга сатаан барбата: $1',
 
 # Special:ChangeEmail
 'changeemail' => 'Ааадырыһын уларыт',
@@ -810,7 +852,7 @@ IP-аадырыһа эрэ көстөр.
 'nocreate-loggedin' => 'Эн саҥа сирэйи оҥорор кыаҕыҥ өссө суох.',
 'sectioneditnotsupported-title' => 'Салаалары уларытыы манна сатаммат',
 'sectioneditnotsupported-text' => 'Бу сирэйгэ салаалары уларытар кыаллыбат',
-'permissionserrors' => 'Көҥүллээһин моһуогурда',
+'permissionserrors' => 'Киирии алҕаһа',
 'permissionserrorstext' => 'Маны оҥорор кыаҕыҥ суох, {{PLURAL:$1|төрүтэ|төрүттэрэ}}:',
 'permissionserrorstext-withaction' => 'Бу дьайыыны ($2) оҥорор кыаҕыҥ суох.  {{PLURAL:$1|Биричиинэтэ|Биричиинэлэрэ}}:',
 'recreate-moveddeleted-warn' => "'''Болҕой: сотулубут сирэйи төттөрү оҥорон эрэҕин.'''
@@ -826,14 +868,15 @@ IP-аадырыһа эрэ көстөр.
 Арааһа сотуллубут быһыылаах.',
 'edit-conflict' => 'Көннөрүүлэр утарсыылара.',
 'edit-no-change' => 'Эн көннөрүүҥ киирбэтэ, тоҕо диэтэххэ тугу да уларыппатаххын.',
+'postedit-confirmation' => 'Көннөрүүҥ бигэргэннэ.',
 'edit-already-exists' => 'Саҥа сирэйи оҥорор табыллыбат.
 Маннык сирэй баар эбит.',
 'defaultmessagetext' => 'Туспа этиллибэтэҕинэ суруллар тиэкис',
 'content-failed-to-parse' => '$2 иһинээҕитэ $1 көрүҥэр сөп түбэспэт: $3.',
 'invalid-content-data' => 'Алҕастаах дааннайдар',
 'content-not-allowed-here' => '[[$2]] сирэйгэ "$1" туттуллуо суохтаах',
-'editwarning-warning' => 'Атын сирэйгэ көстөххүнэ билигин оҥорбут уларытыыларыҥ барыта сүтэн хаалыахтара.
-Бэлиэтэммит буоллаҕына, бу сэрэтиини туруорууларыҥ «{{int:prefs-editing}}» сирэйигэр араарыаххын сөп.',
+'editwarning-warning' => 'Атын сирэйгэ көстөххүнэ билигин оҥорбут уларытыыҥ барыта сүтэн хаалыаҕа.
+Бэлиэтэммит буоллаххына, бу сэрэтиини туруорууларыҥ «Уларытыы» салаатыгар араарар кыахтааххын.',
 
 # Content models
 'content-model-wikitext' => 'биики-тиэкис',
@@ -868,6 +911,7 @@ IP-аадырыһа эрэ көстөр.
 'undo-failure' => 'Уларытыы төннөр кыаҕа суох. Ыккардынааҕы көннөрүүлэр бэйэ бэйэлэригэр сөп түбэспэттэр.',
 'undo-norev' => 'Бу көннөрүү сотуллар кыаҕа суох, тоҕо диэтэххэ ончу суох эбэтэр номнуо сотуллубут.',
 'undo-summary' => '[[Special:Contributions/$2|$2]] кыттааччы ([[User talk:$2|ырытыы]] | [[Special:Contributions/$2|{{MediaWiki:Contribslink}}]]) $1 нүөмэрдээх уларытыытын сотон оннугар түһэрэргэ.',
+'undo-summary-username-hidden' => 'Кистэммит кыттааччы $1 уларытыытын төннөр',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Саҥа ааты киллэрэр сатаммат',
@@ -895,8 +939,8 @@ IP-аадырыһа эрэ көстөр.
 (инн.) = инники баар барылтан атына, '''к.''' = улахан суолтата суох көннөрүү.",
 'history-fieldset-title' => 'Историятын көрүү',
 'history-show-deleted' => 'Сотуллубуттары эрэ',
-'histfirst' => 'Эрдэтээҥи',
-'histlast' => 'Соторутааҥы',
+'histfirst' => 'саамай эргэ',
+'histlast' => 'саамай саҥа',
 'historysize' => '({{PLURAL:$1|1 байт|$1 баайтаах}})',
 'historyempty' => '(кураанах)',
 
@@ -1049,6 +1093,7 @@ $1",
 'compareselectedversions' => 'Талыллыбыт торумнары тэҥнээ',
 'showhideselectedversions' => 'Талыллыбыт барыллары көрдөр/кистээ',
 'editundo' => 'төнүн',
+'diff-empty' => '(уратыта суох)',
 'diff-multi' => '({{PLURAL:$2|$2 кыттааччы|$2 ахсааннаах кыттааччы}} {{PLURAL:$1|$1 ыккардынааҕы барыла көрдөрүллүбэтэ|$1 ахсааннаах ыккардынааҕы барыла көрдөрүллүбэтэ|$1.}})',
 'diff-multi-manyusers' => '(Кырата {{PLURAL:$2|$1 кыттааччы|$2 ахсааннаах кыттааччы}} оҥорбут {{PLURAL:$1|ыккардынааҕы $1 барыла|ыккардынааҕы $1 барыллара}} көрдөрүллүбэтэ)',
 'difference-missing-revision' => '$2 барыл бу тэҥнээһиҥҥэ ($1) көстүбэтэ.
@@ -1076,7 +1121,6 @@ $1",
 'searchmenu-legend' => 'Көрдөөһүн туруоруулара',
 'searchmenu-exists' => "'''Бу биикигэ бу сирэй маннык ааттаах \"[[\$1]]\"'''",
 'searchmenu-new' => "'''Бу биикигэ \"[[:\$1]]\" сирэйи айарга!'''",
-'searchhelp-url' => 'Help:Көмө',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Маннык префикстаах сирэйдэри көрөргө]]',
 'searchprofile-articles' => 'Ыстатыйалар истэрэ',
 'searchprofile-project' => 'Көмө уонна Бырайыак сирэйдэрэ',
@@ -1117,6 +1161,7 @@ $1",
 'powersearch-togglenone' => 'Бэлиэтээмэ',
 'search-external' => 'Тастан көрдөөһүн',
 'searchdisabled' => '{{SITENAME}} көрдүүр тэрилэ араарыллыбыт. Атын көрдүүр системаларынан наадыйар сирэйдэргитин көрдөтүөххүтүн сөп. Ол гынан баран поисковик кээһигэр баар торум эргэрбит буолуон сөп.',
+'search-error' => 'Көрдүүр кэмҥэ алҕас таҕыста: $1',
 
 # Preferences page
 'preferences' => 'Уларытыылар',
@@ -1150,7 +1195,6 @@ $1",
 'resetprefs' => 'Бигэргэтиллибэтэх уларыйыылары сот',
 'restoreprefs' => 'Туруоруулары саҥаттан',
 'prefs-editing' => 'Уларытыы',
-'prefs-edit-boxsize' => 'Эрэдээксийэлиир түннүк улахана.',
 'rows' => 'Строкаалара:',
 'columns' => 'Колонкалара:',
 'searchresultshead' => 'Көрдөөһүн түмүгэ',
@@ -1161,9 +1205,6 @@ $1",
 'recentchangesdays-max' => '(улааппыта $1 күн)',
 'recentchangescount' => 'Саҥа уларытыылар көрдөрүллэр ахсааннара:',
 'prefs-help-recentchangescount' => 'Бу саҥа көннөрүүлэри, сирэй устуоруйаларын уонна сурунааллары көрдөрөр.',
-'prefs-help-watchlist-token' => 'Бу түннүккэ кистэлэҥ күлүүһү суруйдаххына эн кэтээн көрүүҥ тиһигин RSS-трансляцията оҥоһуллуо.
-Бу күлүүһү билэр ханнык баҕарар киһи эн кэтээн көрөр тиһиккин көрүөн сөп, онон дьон дөбөҥнүк билбэт кистэлэҥ күлүүстэрин суруй.
-Ылбычча айыллыбыт күлүүһү туттуоххун сөп: $1',
 'savedprefs' => 'Эн туруорууларыҥ олохтоннулар.',
 'timezonelegend' => 'Олохтоох кэм:',
 'localtime' => 'Олохтоох кэмим:',
@@ -1194,7 +1235,6 @@ $1",
 'prefs-reset-intro' => 'Бу сирэй көмөтүнэн туруорууларгын саҥаттан туруорар турукка төннөрүөххүн сөп.
 Маны бигэргэттэххинэ билигин баар туруоруулары дэбигис сөргүппэккин.',
 'prefs-emailconfirm-label' => 'Эл. почтаны бигэргэтии:',
-'prefs-textboxsize' => 'Эрэдээкисэйлиир түннүк улахана',
 'youremail' => 'E-mail-ыҥ:',
 'username' => '{{GENDER:$1|Бэлиэтэммит аатыҥ}}:',
 'uid' => '{{GENDER:$1|Кыттааччы}} ID-та:',
@@ -1225,7 +1265,9 @@ $1 {{PLURAL:$1|бэлиэттэн|бэлиэттэн (буукубаттан)}}
 'prefs-signature' => 'Илии баттааһына',
 'prefs-dateformat' => 'Күн-дьыл көрүҥэ (формаата)',
 'prefs-timeoffset' => 'Кэм уратыта',
-'prefs-advancedediting' => 'Дириҥэтиллибит туруоруулар',
+'prefs-advancedediting' => 'Сүрүн (барытыгар сыһыаннаах)',
+'prefs-editor' => 'Эрэдээктэр',
+'prefs-preview' => 'Инники көрүү',
 'prefs-advancedrc' => 'Дириҥэтиллибит туруоруулар',
 'prefs-advancedrendering' => 'Дириҥэтиллибит туруоруулар',
 'prefs-advancedsearchoptions' => 'Дириҥэтиллибит туруоруулар',
@@ -1260,6 +1302,8 @@ $1 {{PLURAL:$1|бэлиэттэн|бэлиэттэн (буукубаттан)}}
 'userrights-notallowed' => 'Бэлиэтэммит ааккынан атын кыттааччы быраабын уларытар кыаҕыҥ суох эбит.',
 'userrights-changeable-col' => 'Эн уларытар кыахтаах бөлөхтөрүҥ',
 'userrights-unchangeable-col' => 'Бу бөлөхтөрү уларытар кыаҕыҥ суох',
+'userrights-conflict' => 'Кыттааччы быраабын быһаарарга алҕас таҕыста! Хатылаан көр.',
+'userrights-removed-self' => 'Бэйэҥ кыаххын сарбынныҥ. Онон бу сирэйгэ киирэр кыаҕыҥ суох буолла.',
 
 # Groups
 'group' => 'Бөлөх:',
@@ -1303,7 +1347,7 @@ $1 {{PLURAL:$1|бэлиэттэн|бэлиэттэн (буукубаттан)}}
 'right-reupload-shared' => 'Уопсай ыскылаат билэлэрин локальнай ыскылаат билэлэринэн уларытыы',
 'right-upload_by_url' => 'URL аадырыстан билэлэри киллэрии',
 'right-purge' => 'Кээһи бигэргэтэр сирэйэ суох ыраастааһын',
-'right-autoconfirmed' => 'Аҥардара (сорҕото) көмүскэммит сирэйдэри уларытыы',
+'right-autoconfirmed' => 'IP түргэнигэр олоҕурбут хааччахтан тутулуктаныма',
 'right-bot' => 'аптамаат быһыытынан ааҕыллар',
 'right-nominornewtalk' => 'Ырытыы сирэйдэригэр кыра көннөрүүлэр суох буоллахтарына саҥа этии эрэсиимэ холбонор',
 'right-apihighlimits' => 'API-запростарга үрдүк лимиити туттуу',
@@ -1324,12 +1368,20 @@ $1 {{PLURAL:$1|бэлиэттэн|бэлиэттэн (буукубаттан)}}
 'right-ipblock-exempt' => 'IP хааччахтааһынын, аптамаатынан уонна диапазоннары хааччахтааһыны тумнуу',
 'right-proxyunbannable' => 'Прокси аптааматынан хааччахтааһынын тумнуу',
 'right-unblockself' => 'хааччаҕы бэйэ устуута',
-'right-protect' => 'Сирэйдэр көмүскэллэрин таһымын уонна көмүскэммит сирэйдэри уларытыы',
-'right-editprotected' => 'Көмүскэллээх сирэйдэри уларытыыы (каскаднай көмүскэллэрэ суох буоллаҕына)',
+'right-protect' => 'Сирэйдэр көмүскэллэрин таһымын уонна каскаадынан көмүскэммит сирэйдэри уларытыы',
+'right-editprotected' => 'Уларытыллар сирэйдэр "{{int:protect-level-sysop}}" таһымынан көмүскэммиттэр',
+'right-editsemiprotected' => 'Уларытыллар сирэйдэр "{{int:protect-level-autoconfirmed}}" таһымынан көмүскэммиттэр',
 'right-editinterface' => 'Кыттааччы интерфейсын уларытыы',
 'right-editusercssjs' => 'Атын кыттааччылар CSS- и JS-билэлэрин уларытыы',
 'right-editusercss' => 'Атын кыттааччылар CSS-билэлэрин уларытыы',
 'right-edituserjs' => 'Атын кыттааччылар JS-билэлэрин уларытыы',
+'right-editmyusercss' => 'Кыттааччы CSS-билэтин уларытыы',
+'right-editmyuserjs' => 'Бэйэ JavaScript-билэлэрин уларытыы',
+'right-viewmywatchlist' => 'Бэйэ кэтиир тиһигин көрүү',
+'right-editmywatchlist' => 'Бэйэ кэтиир тиһигин уларытыы. Болҕой, сорох дьайыыларыҥ бу быраабы биэрбэтэҕиҥ да иһин сирэйдэри тиһиккэ эбиэхтэрин сөп.',
+'right-viewmyprivateinfo' => 'Бэйэҥ тускунан (холобур, эл. почтаҥ, дьиҥнээх аатыҥ)',
+'right-editmyprivateinfo' => 'Бэйэҥ тус дааннайданнаргын уларыт (холобур, эл. почтаҕын, дьиҥнээх ааккын)',
+'right-editmyoptions' => 'Туруорууларгын уларыт',
 'right-rollback' => 'Кыттааччы оҥорбут көннөрүүлэрин талыллыбыт биир сирэйгэ суох гыныы',
 'right-markbotedits' => 'Төннөрүллэр көннөрүүлэри робот уларытыытын курдук бэлиэтээһин',
 'right-noratelimit' => 'Нуорманнан хааччахтааһын суох',
@@ -1391,6 +1443,10 @@ $1 {{PLURAL:$1|бэлиэттэн|бэлиэттэн (буукубаттан)}}
 'action-userrights-interwiki' => 'атын биикигэ кыттыы бырааптарын уларытыы',
 'action-siteadmin' => 'билэ олоҕун хааччахтааһын уонна хааччахтааһынын устуу',
 'action-sendemail' => 'сурук ыытыы',
+'action-editmywatchlist' => 'кэтиир тиһиккин уларыт',
+'action-viewmywatchlist' => 'кэтиир тиһиккин көрдөр',
+'action-viewmyprivateinfo' => 'тус дааннайгын көрдөр',
+'action-editmyprivateinfo' => 'тус дааннайгын уларыт',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|уларытыы|уларытыылар}}',
@@ -1433,7 +1489,6 @@ $1 {{PLURAL:$1|бэлиэттэн|бэлиэттэн (буукубаттан)}}
 'recentchangeslinked-feed' => 'Сигэнэр уларытыылар',
 'recentchangeslinked-toolbox' => 'Сигэнэр уларытыылар',
 'recentchangeslinked-title' => '"$1" кытта сибээстээх уларытыылар',
-'recentchangeslinked-noresult' => 'Сигэммит сирэйдэргэ этиллибит кэмҥэ уларытыылар оҥоһуллубатылар.',
 'recentchangeslinked-summary' => "Бу анал сирэйгэ сигэнэр сирэйдэр бүтэһик уларыйыылара көһүннүлэр. [[Special:Watchlist|Кэтэнэр сирэйдэр]] '''модьу бичигинэн''' бэлиэтэннилэр.",
 'recentchangeslinked-page' => 'Сирэй аата:',
 'recentchangeslinked-to' => 'Төттөрүтүн, ыйыллыбыт сирэйгэ сигэнэр сирэйдэри көрдөр',
@@ -1593,6 +1648,7 @@ $1',
 'backend-fail-notsame' => 'Майгыннаабат гынан баран маннык ааттаах $1 билэ баар эбит',
 'backend-fail-invalidpath' => '$1 - бу суолунан сатаан угуллубат.',
 'backend-fail-delete' => '$1 билэни сотор табыллыбата.',
+'backend-fail-describe' => '"$1" билэ метадааннайдарын уларытар табыллыбата.',
 'backend-fail-alreadyexists' => '$1 билэ хайыы-үйэ баар эбит.',
 'backend-fail-store' => '$1 билэни манна $2 угар табыллыбата.',
 'backend-fail-copy' => '$1 билэни манна $2 хатылыыр табыллыбата.',
@@ -1825,6 +1881,12 @@ $1',
 Ол оннугар ханнык эрэ чопчу сирэйгэ сигэниэхтээхтэр.<br />
 Быһаарыы: [[MediaWiki:Disambiguationspage]] халыып баар сирэйдэрэ хас да суолталаах сирэй ахсааныгар киирэллэр.",
 
+'pageswithprop' => 'Эрдэттэн туруоруулаах сирэйдэр',
+'pageswithprop-legend' => 'Уларытыллыбыт туруоруулаах сирэйдэр',
+'pageswithprop-text' => 'Манна сорох туруоруулара уларытыллыбыт сирэйдэр көстүбүттэр.',
+'pageswithprop-prop' => 'Туруоруу аата:',
+'pageswithprop-submit' => 'Толор',
+
 'doubleredirects' => 'Хос көһөрөөһүн',
 'doubleredirectstext' => 'Бу сирэйгэ атын сиргэ утаарар хос утаарыылар тиһиктэрэ көстөр.
 Хас устуруока аайы бастакы уонна иккис утаарыга сигэ баар, ону таһынан иккис утаарыыга баар сирэй аадырыһа (аата) баар, ол аата бастакы утаарыы дьиҥинэн ханна утаарыахтааҕа көстөр.
@@ -2072,7 +2134,6 @@ $1',
 'unwatchthispage' => 'Кэтиири тохтот',
 'notanarticle' => 'Бу ыстатыйа буолбатах',
 'notvisiblerev' => 'Торум сотуллубут',
-'watchnochange' => 'Кэтиир сирэйдэргиттэн этиллибит кэмҥэ биир да уларыйбатах.',
 'watchlist-details' => '{{PLURAL:$1|$1 сирэйи кэтиигин|$1 сирэй кэтэбилгэ сылдьар}}, ырытыы сирэйдэрин аахпатахха.',
 'wlheader-enotif' => 'эл. почтанан биллэрии холбоммут.',
 'wlheader-showupdated' => "Бүтэһик киириигит кэннэ уларыйбыт сирэйдэр '''модьу''' бичигинэн бэлиэтэннилэр",
@@ -2092,6 +2153,16 @@ $1',
 'enotif_mailer' => '{{SITENAME}} Биллэрэр Сулууспата',
 'enotif_reset' => 'Бары сирэйдэри көрбүтүм курдук бэлиэтээ',
 'enotif_impersonal_salutation' => '{{SITENAME}} кыттааччыта',
+'enotif_subject_deleted' => '«{{SITENAME}}» бырайыак «$1» ааттаах сирэйин бу {{gender:$2|кыттааччы|кыттааччы}} соппут - $2',
+'enotif_subject_created' => '«{{SITENAME}}» бырайыак «$1» ааттаах сирэйин бу {{gender:$2|кыттааччы|кыттааччы}} айбыт - $2',
+'enotif_subject_moved' => '«{{SITENAME}}» бырайыак «$1» ааттаах сирэйин бу {{gender:$2|кыттааччы|кыттааччы}} аатын уларыппыт - $2',
+'enotif_subject_restored' => '«{{SITENAME}}» бырайыак «$1» ааттаах сирэйин бу {{gender:$2|кыттааччы|кыттааччы}} сөргүппүт - $2',
+'enotif_subject_changed' => '«{{SITENAME}}» бырайыак «$1» ааттаах сирэйин бу {{gender:$2|кыттааччы|кыттааччы}} уларыппыт - $2',
+'enotif_body_intro_deleted' => '$PAGEEDITDATE «{{SITENAME}}» бырайыак «$1» ааттаах сирэйин бу {{gender:$2|кыттааччы|кыттааччы}} соппут - $2, көр. $3.',
+'enotif_body_intro_created' => '«{{SITENAME}}» бырайыак «$1» ааттаах сирэйин бу {{gender:$2|кыттааччы|кыттааччы}} айбыт - $2, билиҥҥи барылын манна көр: $3',
+'enotif_body_intro_moved' => '$PAGEEDITDATE «{{SITENAME}}» бырайыак «$1» ааттаах сирэйин бу {{gender:$2|кыттааччы|кыттааччы}} аатын уларыппыт - $2, билиҥҥи барылын манна көр: $3',
+'enotif_body_intro_restored' => '$PAGEEDITDATE «{{SITENAME}}» бырайыак «$1» ааттаах сирэйин бу {{gender:$2|кыттааччы|кыттааччы}} соппут - $2, билиҥҥи барылын манна көр: $3',
+'enotif_body_intro_changed' => '$PAGEEDITDATE «{{SITENAME}}» бырайыак «$1» ааттаах сирэйин бу {{gender:$2|кыттааччы|кыттааччы}} айбыт - $2, билиҥҥи барылын манна көр: $3',
 'enotif_lastvisited' => 'Бутэһик киирииҥ кэнниттэн оҥоһуллубут уларыйыылары барытын көрөргө манна киир: $1.',
 'enotif_lastdiff' => 'Уларытыыны манна көрүҥ: $1.',
 'enotif_anon_editor' => 'ааттамматах кыттааччы $1',
@@ -2190,6 +2261,8 @@ $UNWATCHURL
 'prot_1movedto2' => '[[$1]] аата манныкка уларытылынна: [[$2]]',
 'protect-badnamespace-title' => 'Көмүскэммэт аат дала',
 'protect-badnamespace-text' => 'Бу аат далын сирэйдэрэ көмүскэниллэр кыахтара суохю',
+'protect-norestrictiontypes-text' => 'Бу сирэй көмүскэниллэр кыаҕа суох.',
+'protect-norestrictiontypes-title' => 'Көмүскэниллибэт сирэй',
 'protect-legend' => 'Уларытыы таһымын бигэргэт',
 'protectcomment' => 'Төрүөтэ:',
 'protectexpiry' => 'Бүтүөхтээх:',
@@ -2274,7 +2347,8 @@ $UNWATCHURL
 'undeletedrevisions' => '{{PLURAL:$1|1 уларытыы|$1 уларытыы}} төннөрүлүннэ',
 'undeletedrevisions-files' => '{{PLURAL:$1|1 уларытыы|$1 уларытыы}}  уонна {{PLURAL:$2|1 билэ|$2 билэ}} төннөрүлүннэ',
 'undeletedfiles' => '{{PLURAL:$1|1 билэ|$1 билэ}} төннөрүлүннэ',
-'cannotundelete' => 'Төннөрүллүбэтэ; баҕар ким эрэ номнуо төннөрө охсубута буолуо.',
+'cannotundelete' => 'Сөргүтүү алҕаһа:
+$1',
 'undeletedpage' => "'''$1 төннөрүлүннэ (төннөрүллүбүт)'''
 
 Кэнники сотуулар уонна төннөрүүлэр испииһэктэрин [[Special:Log/delete|манна]] көрүөххүн сөп.",
@@ -2310,7 +2384,7 @@ $1',
 'mycontris' => 'Суруйуу тиһигэ',
 'contribsub2' => 'Вклад $1 ($2)',
 'nocontribs' => 'Эппит критерийгэр эппиэттиир уларытыылар көстүбэтилэр.',
-'uctop' => '(бүтэһик)',
+'uctop' => '(билиҥҥи)',
 'month' => 'Ыйтан бэттэх:',
 'year' => 'Сылтан бэттэх:',
 
@@ -2471,6 +2545,7 @@ $1',
 'proxyblocksuccess' => 'Сатанна.',
 'sorbsreason' => 'Эн IP-ҥ {{SITENAME}} саайт DNSBL-гар аһаҕас прокси быһыытынан сылдьар.',
 'sorbs_create_account_reason' => 'Эн IP-ҥ {{SITENAME}} саайт DNSBL-гар аһаҕас прокси быһыытынан сылдьар. Саҥаттан бэлиэтэнэр кыаҕыҥ суох.',
+'xffblockreason' => 'X-Forwarded-For баһыгар баар IP-аадырыс бобуллубут. Бу IP Эйиэнэ эбэтэр туһанар проксиҥ гиэнэ буолуон сөп. Бобуу төрүөтэ маннык эбит: $1',
 'cant-block-while-blocked' => 'Бэйэҥ хааччахтаммыт кэмҥэр атын кыттааччылары хааччахтыыр кыаҕыҥ суох.',
 'cant-see-hidden-user' => 'Эн хааччахтаары гыммыт кыттааччыҥ урут хааччахтаммыт уонна кистэммит эбит. Кыттааччылары кистиир кыаҕыҥ суох буолан ол туһунан суругу көрөр да уларытар да быраабыҥ суох.',
 'ipbblocked' => 'Атын кыттааччылары хааччахтыыр да, хааччахтарын да устар кыаҕыҥ суох, тоҕо диэтэххэ бэйэҥ хааччахтааххын',
@@ -2577,6 +2652,7 @@ $1',
 'immobile-target-namespace-iw' => 'Интервики сигэтэ ааты уларытыыга туһаныллыбат.',
 'immobile-source-page' => 'Бу сирэйи аатын уларытар табыллыбат.',
 'immobile-target-page' => 'Сирэйгэ бу ааты иҥэрэр табыллыбат.',
+'bad-target-model' => 'Маны $1 манна $2 уларытар табыллыбат: дааннайдарын көрүҥнэрэ тус-туһунаннар.',
 'imagenocrossnamespace' => 'Ойууга атын аат далыттан аат биэрэр сатаммат',
 'nonfile-cannot-move-to-file' => 'Сирэйдэри билэ гынан ааттарын уларытар табыллыбат',
 'imagetypemismatch' => 'Билэ саҥа расширенията тиибигэр сөп түбэспэт',
@@ -2638,6 +2714,8 @@ $1',
 'thumbnail-more' => 'Улаатыннар',
 'filemissing' => 'Билэ көстүбэтэ',
 'thumbnail_error' => 'Кыра ойууну оҥоруу сатаммата: $1',
+'thumbnail_error_remote' => '$1 алҕас туһунан биллэрдэ:
+$2',
 'djvu_page_error' => 'DjVu сирэй тиһик таһыгар эбит',
 'djvu_no_xml' => 'DjVu билэтигэр аналлаах XML кыайан ылыллыбата',
 'thumbnail-temp-create' => 'Эскииз быстах билэтин оҥорор табыллыбата',
@@ -2828,11 +2906,13 @@ $1',
 'pageinfo-default-sort' => 'Наардааһын күлүүһэ',
 'pageinfo-length' => 'Сирэй устата (баайтынан)',
 'pageinfo-article-id' => 'Сирэй нүөмэрэ',
+'pageinfo-language' => 'Сирэй омугун тыла',
 'pageinfo-robot-policy' => 'Көрдүүр сулууспалар туруктара',
 'pageinfo-robot-index' => 'Индекстанар',
 'pageinfo-robot-noindex' => 'Индекстаммат',
 'pageinfo-views' => 'Көрүү ахсаана',
 'pageinfo-watchers' => 'Кэтээнэр сирэйдэр ахсааннара',
+'pageinfo-few-watchers' => '$1 кыттааччыттан аҕыйах кэтээччи',
 'pageinfo-redirects-name' => 'Бу сирэйгэ утаарыы ахсаана',
 'pageinfo-subpages-name' => 'Сирэй аннынааҕы сирэйдэр ахсааннара',
 'pageinfo-subpages-value' => '$1 ($2 утаарыы; $3 көннөрү (утаарыыта суох))',
@@ -2847,10 +2927,19 @@ $1',
 'pageinfo-magic-words' => 'Аптаах {{PLURAL:$1|тыл|тыллар}} ($1)',
 'pageinfo-hidden-categories' => 'Кистэммит {{PLURAL:$1|категория|категориялар}} ($1)',
 'pageinfo-templates' => '$1 халыыптаах ($1)',
+'pageinfo-transclusions' => 'Киллэриллэр {{PLURAL:$1|сирэйдэр|сирэйдэри}} ($1)',
+'pageinfo-toolboxlink' => 'Сирэй туһунан',
+'pageinfo-redirectsto' => 'Утаарыы',
+'pageinfo-redirectsto-info' => 'сибидиэнньэлэр',
+'pageinfo-contentpage' => 'Ис хоһоонноох сирэй курдук ааҕыллар',
 'pageinfo-contentpage-yes' => 'Сөп',
 'pageinfo-protect-cascading' => 'Каскаадынан көмүскэл мантан',
 'pageinfo-protect-cascading-yes' => 'Сөп',
 'pageinfo-protect-cascading-from' => 'Каскадынан көмүскэл мантан',
+'pageinfo-category-info' => 'Категория туһунан',
+'pageinfo-category-pages' => 'Сирэй ахсаана',
+'pageinfo-category-subcats' => 'Субкатегория ахсаана',
+'pageinfo-category-files' => 'Билэ ахсаана',
 
 # Skin names
 'skinname-modern' => 'Билиҥҥи',
@@ -2865,6 +2954,8 @@ $1',
 'markedaspatrollederror' => 'Бэрэбиэркэлэммит курдук бэлиэтиир сатаммата',
 'markedaspatrollederrortext' => 'Бэрэбиэркэлэммит курдук бэлиэтииргэ торуму чопчу талыахтааххын.',
 'markedaspatrollederror-noautopatrol' => 'Бэйэҥ уларытыыгын бэрэбиэркэлэммит курдук оҥороруҥ сатаммат.',
+'markedaspatrollednotify' => 'Бу «$1» сирэйгэ оҥоһуллубут уларытыы тургутуллубут курдук бэлиэтэммит.',
+'markedaspatrollederrornotify' => 'Бэлиэтэммит курдук бэлиэтиир сатаммата.',
 
 # Patrol log
 'patrol-log-page' => 'Бэрэбиэркэ сурунаала',
@@ -2898,6 +2989,7 @@ $1',
 'file-nohires' => 'Бу ойуу маннааҕар улахан торума суох.',
 'svg-long-desc' => 'SVG билэ, номинальнай кээмэйэ $1 × $2 пииксэл, билэ кээмэйэ: $3',
 'svg-long-desc-animated' => '$1 × $2 пииксэллээх анимацияламмыт SVG-билэ, кээмэйэ: $3',
+'svg-long-error' => 'Алҕастаах SVG-билэ: $1',
 'show-big-image' => 'Ойуу бэйэтин толору кээмэйэ',
 'show-big-image-preview' => 'Бигэргэтиэх иннинэ көрүү улахана: $1.',
 'show-big-image-other' => 'Атын {{PLURAL:$2|түмүк|түмүктэр}}: $1.',
@@ -2930,7 +3022,20 @@ $1',
 'minutes' => '{{PLURAL:$1|$1 мүнүүтэ|$1 мүнүүтэ}}',
 'hours' => '{{PLURAL:$1|$1 чаас|$1 чаас}}',
 'days' => '{{PLURAL:$1|$1 күн|$1 күн}}',
+'months' => '$1 ый',
+'years' => '$1 сыл',
 'ago' => '$1 ынараа өттүгэр',
+'just-now' => 'сибилигин',
+
+# Human-readable timestamps
+'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
 'bad_image_list' => 'Формаата маннык буолуохтаах:
@@ -3424,6 +3529,7 @@ $5
 # Scary transclusion
 'scarytranscludedisabled' => '[Interwiki transcluding араҕыста]',
 'scarytranscludefailed' => '[$1 халыыбы туһанар табыллыбата]',
+'scarytranscludefailed-httpstatus' => '[Манна $1 анаммыт халыыбы холбуур сатаммата: HTTP $2]',
 'scarytranscludetoolong' => '[URL наһаа уһун]',
 
 # Delete conflict
@@ -3526,7 +3632,6 @@ $5
 'version-other' => 'Атын',
 'version-mediahandlers' => 'Медиа уларытааччылар',
 'version-hooks' => 'Перехватчиктар',
-'version-extension-functions' => 'Расширениялар функциялара',
 'version-parser-extensiontags' => 'Синтаксииһы анаалыстыыр тэрил расширениятын тиэктэрэ',
 'version-parser-function-hooks' => 'Синтаксииһы анаалыстыыр тэрил функциятын перехватчиктара',
 'version-hook-name' => 'Перехватчик аата',
@@ -3535,6 +3640,7 @@ $5
 'version-license' => 'Лиссиэнзийэ',
 'version-poweredby-credits' => "Бу биики бу движокка олоҕурар '''[//www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
 'version-poweredby-others' => 'атыттар',
+'version-credits-summary' => '[[Special:Version|MediaWiki]] сайдыытыгар үлэлэрин иһин манна ахтыллыбыт дьоҥҥо махтанабыт.',
 'version-license-info' => 'MediaWiki көҥүл тарҕанар бырагырааммаларга киирэр, кинини көмпүүтэр аһаҕас бырагырааммаларын пуондатын GNU General Public License усулуобуйатынан көҥүл тарҕатаргыт уонна/эбэтэр уларытаргыт көҥүллэнэр; иккис эбэтэр онтон хойукку ханнык баҕарар барылыттан саҕалаан.
 
 MediaWiki туһалаах буоллун диэн тарҕатыллар, ол эрээри АТЫЫЛАНАР СЫАННАҺА эбэтэр ХАННЫК ЭРЭ ЧОПЧУ СОРУККА СӨП ТҮБЭҺИИТЭ бигэргэтиллибэт (гарантията суох). Сиһилии GNU General Public License усулуобуйатын көрүҥ.
@@ -3547,6 +3653,17 @@ MediaWiki туһалаах буоллун диэн тарҕатыллар, ол
 'version-entrypoints-header-entrypoint' => 'Киирии сирэ',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
+'redirect' => 'Билэттэн, кыттааччыттан эбэтэр барыл идентификаторыттан утаарыы',
+'redirect-legend' => 'Билэҕэ эбэтэр сирэйгэ утаарыы',
+'redirect-submit' => 'Толор',
+'redirect-lookup' => 'Көрдөт:',
+'redirect-value' => 'Суолтата:',
+'redirect-user' => 'Кыттааччы нүөмэрэ',
+'redirect-revision' => 'Сирэй барыла',
+'redirect-file' => 'Билэ аата',
+'redirect-not-exists' => 'Суолта көстүбэтэ',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Хос билэлэри көрдөөһүн',
 'fileduplicatesearch-summary' => 'Тэҥ билэлэри хэш-куодтарынан көрдөөһүн.',
@@ -3636,6 +3753,9 @@ MediaWiki туһалаах буоллун диэн тарҕатыллар, ол
 'htmlform-submit' => 'Ыыт',
 'htmlform-reset' => 'Уларытыыны төннөр',
 'htmlform-selectorother-other' => 'Атын',
+'htmlform-no' => 'Суох',
+'htmlform-yes' => 'Сөп',
+'htmlform-chosen-placeholder' => 'Барылы тал',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 толору тиэкистээх көрдөөһүнү өйүүр',
@@ -3644,8 +3764,8 @@ MediaWiki туһалаах буоллун диэн тарҕатыллар, ол
 # New logging system
 'logentry-delete-delete' => '$3 сирэйи $1 соппут',
 'logentry-delete-restore' => '$3 сирэйи $1 сөргүппүт',
-'logentry-delete-event' => 'Сурунаал {{PLURAL:$5|суругун|$5 суруктарын}} көстүүтүн манна $3: $4 $1 уларыппыт',
-'logentry-delete-revision' => 'Сурунаал {{PLURAL:$5|суругун|$5 суруктарын}} көстүүтүн бу сирэйгэ $3: $4 $1 уларыппыт',
+'logentry-delete-event' => 'Сурунаал $5 суругун көстүүтүн манна $3 $1 уларыппыт: $4',
+'logentry-delete-revision' => 'Сурунаал $5 суругун көстүүтүн бу сирэйгэ $3 $1 уларыппыт: $4',
 'logentry-delete-event-legacy' => '$3 сурунаал суруктарын көстүүтүн $1 уларыппыт',
 'logentry-delete-revision-legacy' => '$3 сирэй барылларын көстүүтүн $1 уларыппыт',
 'logentry-suppress-delete' => '$3 сирэйи $1 баттаабыт',
@@ -3670,7 +3790,11 @@ MediaWiki туһалаах буоллун диэн тарҕатыллар, ол
 'logentry-newusers-newusers' => 'Кыттааччы $1 диэн ааты бэлиэтээтэ',
 'logentry-newusers-create' => '$1 диэн кыттааччы бэлиэтэннэ',
 'logentry-newusers-create2' => '$3 кыттааччы аатын $1 бэлиэтээтэ',
-'logentry-newusers-autocreate' => 'Маннык аат $1 аптамаатынан бэлиэтэннэ',
+'logentry-newusers-byemail' => '$3 бэлиэ-ааты $1 оҥорбут, киирии тыла электрон почтанан ыытыллыбыт',
+'logentry-newusers-autocreate' => '$1 бэлиэ-аат аптамаатынан бэлиэтэннэ',
+'logentry-rights-rights' => '$3 бөлөхтөргө киириитин $1 уларыппыт: манныктан $4 манныкка $5',
+'logentry-rights-rights-legacy' => '$3 бөлөхтөргө киириитин $1 уларыппыт',
+'logentry-rights-autopromote' => '$1 мантан $4 манна $5 көһөрүллүбүт',
 'rightsnone' => '(суох)',
 
 # Feedback
@@ -3726,6 +3850,7 @@ MediaWiki туһалаах буоллун диэн тарҕатыллар, ол
 'api-error-ok-but-empty' => 'Ис алҕас: сиэрбэртэн хоруй кэлбэтэ.',
 'api-error-overwrite' => 'Баар билэни уларытар сатаммат.',
 'api-error-stashfailed' => 'Ис алҕас: сиэрбэр быстах кэмҥэ оҥоһуллубут билэни кыайан бигэргэппэтэх.',
+'api-error-publishfailed' => 'Ис алҕас: сиэрбэр быстах билэни кыайан бигэргэппэтэх.',
 'api-error-timeout' => 'Сиэрбэр кэтэһэр кэмҥэ хоруйдаабата.',
 'api-error-unclassified' => 'Биллибэт алҕас таҕыста',
 'api-error-unknown-code' => 'Биллибэт алҕас: «$1»',
@@ -3746,4 +3871,7 @@ MediaWiki туһалаах буоллун диэн тарҕатыллар, ол
 'duration-centuries' => '$1 үйэ',
 'duration-millennia' => '$1 тыһыынча сыл',
 
+# Image rotation
+'rotate-comment' => 'Ойуу $1 кыраадыс чаһы хоту эргитиллибит',
+
 );
index f962f00..1937627 100644 (file)
@@ -13,6 +13,7 @@
  * @author Joseph Mardy
  * @author Nipon087
  * @author Reedy
+ * @author Rillke
  * @author Salvator
  * @author Samar88
  * @author Srabony90
@@ -256,7 +257,6 @@ $1',
 'disclaimers' => 'Dạbi bạnuḱko',
 'disclaimerpage' => 'Project: Sadharon ḍiskleimarko(General disclaimer)',
 'edithelp' => 'Tońge goṛo',
-'edithelppage' => 'Help:So̠mpado̠n',
 'helppage' => 'Help: Bhitri renaḱ',
 'mainpage' => 'Mukhiạ Sakam',
 'mainpage-description' => 'Mukhiạ sakam',
@@ -429,7 +429,7 @@ Amaḱ sendrare kukiko bondo hoeakana. Dayakate kukiko kạmi hoe ocoemẽ ar am
 Ale do baḍae ocolem amaḱ kuki doe kạmikana, sakam do arhõ rakaṕ lạgit́te kurumuṭuemẽ.',
 'noname' => 'Am do asol beoharićaḱ ńutum ṭhikte bam emakada.',
 'loginsuccesstitle' => 'Bhitri boloḱ do moctege puraoena',
-'loginsuccess' => '\'\'\'Am do nitge "$1" ńutumte {{SITENAME}} rem bolo akana.',
+'loginsuccess' => "'''Am do nitge \"\$1\" ńutumte {{SITENAME}} rem bolo akana.'''",
 'nosuchuser' => '"$1" ńutuman jahan beoharić bạnuea.
 Beoharićaḱ ńutum do bukṛogea.
 Amaḱ bananko ńelmẽ, se [[Special:Userlogin/signup nãwã mit́ṭen ekaunṭ tearmẽ]].',
@@ -489,10 +489,8 @@ Nitoḱ do am bhitritem boloḱkana...',
 
 # Special:PasswordReset
 'passwordreset' => 'Nãwãte oku nambar emme',
-'passwordreset-text' => 'Amaḱ ekaunṭ reaḱ purapuri thuti e-mail hotete ńam lạgit́te latar reaḱ forom purạomẽ.',
 '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-pretext' => '{{PLURAL:$1 latar re menaḱ ḍaṭako khon mit́ṭen emmẽ}}',
 'passwordreset-username' => 'Beoharicaḱ ńutum:',
 'passwordreset-domain' => 'Ḍomen:',
 'passwordreset-capture' => 'Sendra fol reaḱ e-mail ńelmẽ?',
@@ -708,7 +706,6 @@ Unuduḱ: '''({{int:cur}})''' = nahaḱ nãwã aroeko saõte tulạo, '''({{int:
 'viewprevnext' => 'Ńelme ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-exists' => "'''Noa wiki re do \"[[:\$1]] ńutum sakam menaḱa",
 'searchmenu-new' => 'wiki re [[:$1]]nãwã sakam tear',
-'searchhelp-url' => 'Help: Goṛawaḱ',
 'searchprofile-articles' => 'Menaḱaḱ sakamko',
 'searchprofile-project' => 'Go̠ṛo ar Project sakam',
 'searchprofile-images' => 'Multimedia',
@@ -830,7 +827,6 @@ Amaḱ e-mail ṭhikạna do bań cabaḱa tinre onko do ko beohara',
 'recentchangeslinked' => 'Sãotenaḱ bodolko',
 'recentchangeslinked-toolbox' => 'Noṛjoṛ palaṭko',
 'recentchangeslinked-title' => 'Bodolaḱko do "$1" sãote joṛao geya',
-'recentchangeslinked-noresult' => 'Joṛao sakam re emoḱ oktere jahanaḱ bodolko bạnuḱa.',
 'recentchangeslinked-summary' => "Noa do ona tạlika kana oka do nebetarge bodol hoyakan oka do asokayte hatao akan sakam khon.
 
 [[Special:Watchlist|your watchlist]] renaḱ sakamko do '''bold''' .",
index c688b46..95baaa8 100644 (file)
@@ -280,7 +280,6 @@ $messages = array(
 'disclaimers' => 'Abbertimentos',
 'disclaimerpage' => 'Project:Abbertimentos generales',
 'edithelp' => "Agiudu pro s'acontzu o sa scritura",
-'edithelppage' => 'Help:Acontzare',
 'helppage' => 'Help:Agiudu',
 'mainpage' => 'Pàgina Base',
 'mainpage-description' => 'Pàgina Base',
@@ -300,7 +299,6 @@ $messages = array(
 'newmessagesdifflink' => 'ùrtima mudàntzia',
 'youhavenewmessagesmulti' => 'Tenes messàgios noos in $1',
 'editsection' => 'acontza',
-'editsection-brackets' => '[$1]',
 'editold' => 'acontza',
 'viewsourceold' => 'càstia mitza',
 'editlink' => 'acontza',
@@ -631,7 +629,6 @@ Cosas de ammentare: '''({{int:cur}})''' = diferèntzias cun sa versione currente
 'shown-title' => 'Ammustra $1 {{PLURAL:$1|resurtadu|resurtados}} pro pàgina',
 'viewprevnext' => 'Càstia ($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-legend' => 'Possibilidades de chirca',
-'searchhelp-url' => 'Help:Agiudu',
 'searchprofile-everything' => 'Totu',
 'searchprofile-advanced' => 'Avantzada',
 'searchprofile-articles-tooltip' => 'Chirca in $1',
@@ -1475,7 +1472,6 @@ Is acàpius chi sighint in sa matessi lìnia sunt cunsideraus comente eccetzione
 'semicolon-separator' => ';&#32;',
 'comma-separator' => ',&#32;',
 'colon-separator' => ':&#32;',
-'autocomment-prefix' => '-&#32;',
 'word-separator' => '&#32;',
 'ellipsis' => '…',
 'percent' => '$1%',
index 5decd0b..982fdb4 100644 (file)
@@ -195,6 +195,7 @@ $messages = array(
 'tog-diffonly' => "Nun visualizzari lu cuntinutu dâ pàggina quannu s'esequi na ''diff'' tra dui virsioni",
 'tog-showhiddencats' => 'Ammustra li catigurìi ammucciati.',
 'tog-norollbackdiff' => "Umettiri li ''diff'' doppu aviri fattu nu ''rollback''",
+'tog-useeditwarning' => 'Avvisa quannu si lasaa na paggina di canci cu canci nu sarbati',
 
 'underline-always' => 'sempri',
 'underline-never' => 'mai',
@@ -258,6 +259,18 @@ $messages = array(
 'oct' => 'utt',
 'nov' => 'nuv',
 'dec' => 'Dic',
+'january-date' => '$1 jinnaru',
+'february-date' => '$1 frivaru',
+'march-date' => '$1 di marzu',
+'april-date' => '$1 di aprili',
+'may-date' => '$1 di maiu',
+'june-date' => '$1 di giugnu',
+'july-date' => '$1 di giugnettu',
+'august-date' => '$1 di austu',
+'september-date' => '$1 di sittèmmiru',
+'october-date' => '$1 di uttùviru',
+'november-date' => '$1 di nuvèmmiru',
+'december-date' => '$1 di dicèmmiru',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Catigurìa|Catigurìi}}',
@@ -283,7 +296,8 @@ $messages = array(
 'newwindow' => '(grapi na finestra nova)',
 'cancel' => 'annulla',
 'moredotdotdot' => 'Àutru...',
-'mypage' => 'La mè pàggina',
+'morenotlisted' => 'cchiossai non ntâ lista',
+'mypage' => 'Pàggina',
 'mytalk' => 'la mè pàggina di discussioni',
 'anontalk' => 'Discussione pi stu IP',
 'navigation' => 'Navigazzioni',
@@ -306,7 +320,7 @@ $messages = array(
 'vector-action-protect' => 'Pruteggi',
 'vector-action-undelete' => 'Riprìstina',
 'vector-action-unprotect' => 'Cancia la prutizzioni',
-'vector-simplesearch-preference' => 'Abbilita li suggirimenti pâ ricerca avanzata',
+'vector-simplesearch-preference' => 'Abbilita la barra pâ ricerca simprificata (sulu pi la skin Vector)',
 'vector-view-create' => 'Crea',
 'vector-view-edit' => 'Cancia',
 'vector-view-history' => 'Talìa a storia',
@@ -316,6 +330,7 @@ $messages = array(
 'namespaces' => 'Namespace',
 'variants' => 'Varianti',
 
+'navigation-heading' => 'Menù di navigazzioni',
 'errorpagetitle' => 'Erruri',
 'returnto' => 'Ritorna a $1.',
 'tagline' => 'Di {{SITENAME}}',
@@ -337,6 +352,7 @@ $messages = array(
 'create-this-page' => 'Crea sta pàggina',
 'delete' => 'elìmina',
 'deletethispage' => 'Elìmina sta pàggina',
+'undeletethispage' => 'Annulla la scancillazzioni di sta pàggina',
 'undelete_short' => 'Ricùpira {{PLURAL:$1|na rivisioni|$1 rivisioni}}',
 'viewdeleted_short' => 'Talìa {{PLURAL:$1|nu canciamentu scancillatu|$1 canciamenti scancillati}}',
 'protect' => 'Pruteggi',
@@ -388,7 +404,6 @@ $1",
 'disclaimers' => 'Avvirtenzi',
 'disclaimerpage' => 'Project:Avvirtenzi ginirali',
 'edithelp' => 'Guida',
-'edithelppage' => 'Help:Canciamentu',
 'helppage' => 'Help:Cuntinuti',
 'mainpage' => 'Pàggina principali',
 'mainpage-description' => 'Pàggina principali',
@@ -410,6 +425,10 @@ $1",
 'youhavenewmessages' => 'Ricivìsti $1 ($2).',
 'newmessageslink' => 'missaggi novi',
 'newmessagesdifflink' => 'ùrtimi canciamenti',
+'youhavenewmessagesfromusers' => "Hai $1 di {{PLURAL:$3|n'àutru utenti|$3 utenti}} ($2).",
+'youhavenewmessagesmanyusers' => 'Hai $1 di na pocu di utenti ($2).',
+'newmessageslinkplural' => '{{PLURAL:$1|Nu missaggiu novu|missaggi novi}}',
+'newmessagesdifflinkplural' => '{{PLURAL:$1|ùrtimu canciamenti|ùrtimi canciamenti}}',
 'youhavenewmessagesmulti' => 'Hai missaggi novi supra $1',
 'editsection' => 'cancia',
 'editold' => 'cancia',
@@ -500,6 +519,8 @@ V\'arringrazziamu si signaliati zoccu succidìu a nu [[Special:ListUsers/sysop|a
 'badarticleerror' => 'Opirazzioni nun cunzintita pi sta pàggina.',
 'cannotdelete' => 'Mpussìbbili cancillari la pàggina o lu file "$1" addumannatu. Putissi siri già cancillatu di quarcun\'àutru.',
 'cannotdelete-title' => 'Mpussibbili eliminari la pàggina "$1"',
+'delete-hook-aborted' => "Canciamentu nun arsciuttiattu di l'hook.
+Nun desi nudda spiecazzioni.",
 'badtitle' => 'Tìtulu nun currettu',
 'badtitletext' => "Lu tìtulu dâ pàggina addumannata è vacanti, erratu o cu caràttiri nun ammessi oppuru diriva di n'erruri ntê culligamenti tra siti wiki diversi o virsioni n lingui diversi dû stissu situ.",
 'perfcached' => "'''Nota:''' li dati ca sèquinu sunnu stratti di na copia ''cache'' dû database, nun aggiurnati n tempu riali. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.",
@@ -514,7 +535,8 @@ Query: $2',
 '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 li canciamenti.',
 'viewsourcetext' => 'È pussìbbili visualizzari e cupiari lu còdici surgenti di sta pàggina:',
-'protectedinterface' => "Sta pàggina cunteni un elementu ca fà parti dâ nterfaccia utenti dû software; è quinni prutetta p'evitari pussìbbili abbusi.",
+'viewyourtext' => "È pussibbili visualizzarei cupiari lu còdici surgenti dî '''tò canciamenti''' 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' => "'''Accura:''' Lu testu di sta pàggina fà parti dî interfaccia utenti dû situ. Tutti li canciamenti appurtati a sta pàggina si riflèttinu supra li missaggi visualizzati pi tutti l'utenti. Pi li traduzioni, cunsidira â pussibilità di usari [//translatewiki.net/wiki/Main_Page?setlang=scn translatewiki.net], u prugettu di localizzazioni MediaWiki.",
 'sqlhidden' => '(la query SQL hà statu ammucciata)',
 'cascadeprotected' => 'Supra sta pàggina nun è pussìbbili effittuari canciamenti pirchì veni nclusa nt{{PLURAL:$1|â pàggina siquenti, ca fu prutetta|ê pàggini siquenti, ca foru prutetti}} silizziunannu la prutizzioni "ricursiva":
@@ -524,6 +546,8 @@ $2',
 'titleprotected' => "La criazzioni di sta pàggina cu stu tìtulu fu bluccata da [[User:$1|$1]].
 La mutivazzioni è chista: ''$2''.",
 'filereadonlyerror' => 'Nun fu pussìbbili canciari lu file "$1" pirchì lu repository di file "$2" è \'n mudalitati di sula littura.La mutivazzioni è "\'\'$3\'\'".',
+'exception-nologin' => 'Nun trasutu',
+'exception-nologin-text' => 'Sta pàggina o stâzzioni havi abbisognu ca tu si cunnittutu a sta wiki',
 
 # Virus scanner
 'virus-badscanner' => "Sbagghiu di cunfigurazzioni: antivirus scanusciutu: ''$1''",
@@ -536,11 +560,23 @@ La mutivazzioni è chista: ''$2''.",
 Poi cuntinuari a usari {{SITENAME}} di manera anònima, o poi <span class='plainlinks'>[$1 tràsiri n'àutra vota]</span> cu lu stissu o cu n'àutru nomu d'utenti.
 Accura 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.",
 'welcomeuser' => 'Bommegna, $1!',
+'welcomecreation-msg' => 'Lu cuntu fu criatu. Nun ascurdàriti di pirsunalizzari li prifirenzi pi {{SITENAME}}',
 'yourname' => "Lu tò nomu d'utenti (''user name'')",
+'userlogin-yourname' => 'Nomu utenti',
+'userlogin-yourname-ph' => 'Nzirìsci lu tò nomu utenti',
 'yourpassword' => "La tò ''password''",
+'userlogin-yourpassword' => 'Password',
+'userlogin-yourpassword-ph' => 'Nzirisci la tò password',
+'createacct-yourpassword-ph' => 'Nzirisci na password',
 'yourpasswordagain' => "Scrivi la password n'àutra vota",
+'createacct-yourpasswordagain' => 'Cunfirma la password',
+'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' => 'Usa na cunnissioni sicura',
+'securelogin-stick-https' => 'Resta cunnittutu cu HTTPS doppu la trasuta',
 'yourdomainname' => 'Lu tò dominiu',
+'password-change-forbidden' => 'Nun putiti canciari la password nti 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',
 'nav-login-createaccount' => 'Riggìstrati o trasi',
@@ -550,14 +586,32 @@ Accura chi quarchi pàggina pò cuntinuari a èssiri ammustrata comu si nun avis
 'logout' => 'Nesci',
 'userlogout' => 'Nesci',
 'notloggedin' => "Nun v'aviti riggistratu",
+'userlogin-noaccount' => "Nun ci l'hai nu cuntu?",
+'userlogin-joinproject' => 'Scrìviti a {{SITENAME}}',
 'nologin' => "Nun nn'aviti nu cuntu pi ccà? '''$1'''.",
 'nologinlink' => 'Criati nu cuntu sùbbitu',
 'createaccount' => 'Criati un cuntu novu',
 'gotaccount' => "Hai già nu cuntu? '''$1'''.",
 'gotaccountlink' => 'Trasi',
 'userlogin-resetlink' => "T'ascurdasti li dittagli pâ trasuta?",
-'createaccountmail' => 'via e-mail',
+'userlogin-resetpassword-link' => 'Reinizzializza la tò password',
+'helplogin-url' => 'Help:Cunnissioni',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Aiutu câ fasi di login]]',
+'createacct-join' => 'Nzirisci li tò nfurnazzioni ccà',
+'createacct-emailrequired' => 'Nnirizzu e-mail',
+'createacct-emailoptional' => 'Nnirizzu e-mail (facurtativu)',
+'createacct-email-ph' => 'Nzirisci lu tò nnirizzu e-mail',
+'createaccountmail' => 'Utilizzari na password timpurania casuali e mannàrila ô nnirizzu e-mail spicificatu ccàssutta',
+'createacct-realname' => 'Nomu riali (facurtativu)',
 'createaccountreason' => 'Mutivu:',
+'createacct-reason' => 'Mutivu',
+'createacct-reason-ph' => "Pirchì stai criannu n'àutru cuntu?",
+'createacct-captcha' => 'Cuntrollu di sicurezza',
+'createacct-imgcaptcha-ph' => 'Nzirìsci lu testu ca vidi ccassupra',
+'createacct-submit' => 'Crèa nu cuntu',
+'createacct-benefit-heading' => '{{SITENAME}} è fatta di pirsunu comu a tìa.',
+'createacct-benefit-body1' => '{{PLURAL:$1|cuntribbutu|cuntribbuti}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|pàggina|pàggini}}',
 'badretype' => "La ''password'' chi mittisti nun è bona.",
 'userexists' => 'Lu nomu utenti nzeritu è già usatu. Ti prijamu pirciò di vuliri scègghiri nu nomu utenti diversu.',
 'loginerror' => "Erruri nta l'accessu",
@@ -629,6 +683,10 @@ Aspetta tanticchia prima di pruvari  n'àutra vota.",
 Pò èssiri ca ggià canciasti cu successu la tò password o c'addumannasti na nova password timpurrània.",
 'resetpass-temp-password' => 'Password timpurrània:',
 
+# Special:PasswordReset
+'passwordreset' => 'Resetta la password',
+'passwordreset-text-one' => 'Jinchi stu mòdulu pi reimpostari la password',
+
 # Special:ChangeEmail
 'changeemail-submit' => 'Cancia e-mail',
 
@@ -722,7 +780,7 @@ P’idintificàrilu è pirciò nicissariu usari lu nùmmiru di lu sò nnirizzu I
 Li nnirizzi IP ponnu pirò èssiri spartuti di cchiù utenti.
 Siddu 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 oppuru <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} circari ntê riggistra currilati]</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.',
 'userpage-userdoesnotexist' => 'L\'account "<nowiki>$1</nowiki>" nun currispunni a n\'utenti riggistratu. Virificari si si voli criari o canciari sta pàggina.',
 'blocked-notice-logextract' => "Stu utenti è attualmenti bluccatu. L'ùrtimu elimentu dû riggistru dî blocca è ripurtatu ccà pi nfurnazzioni:",
 'clearyourcache' => "'''Nota:''' doppu aviri sarvatu è nicissariu puliri la cache dû propiu browser pi vìdiri li canciamenti. Pi '''Mozilla / Firefox / Safari''': fari clic supra ''Ricarica'' tinnennu primutu lu tastu dî maiùsculi, oppuru prèmiri ''Ctrl-Maiusc-R'' (''Cmd-Maiusc-R'' supra Mac); pi '''Internet Explorer:''' mantèniri primutu lu tastu ''Ctrl'' mentri si premi lu pulsanti ''Aggiorna'' o prèmiri ''Ctrl-F5''; pi '''Konqueror''': prèmiri lu pulsanti ''Ricarica'' o lu tastu ''F5''; pi '''Opera''' pò èssiri nicissariu svacantari cumpletamenti la cache dû menu ''Strumenti → Preferenze''.",
@@ -734,7 +792,8 @@ Siddu sî n’utenti anònimu e riteni ca li cummenti prisenti nta sta pàggina
 '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' => "'''Accura:'''",
-'previewnote' => "'''Ricurdàtivi ca chista è sulu n'antiprima, e ca nun hà statu ancora sarvata!'''",
+'previewnote' => "'''Ricurdàtivi ca chista è sulu n'antiprima.'''
+Li canci nun foru ancora sarvati!'''",
 'previewconflict' => "L'antiprima currispunni a lu testu prisenti ntâ casella di canciamentu supiriuri e rapprisenta la pàggina comu appari siddu si scegghi di prèmiri 'Sarva' 'n stu mumentu.",
 'session_fail_preview' => "'''Purtroppu nun hà statu pussìbbili sarvari li tò canciamenti pirchì li dati dâ sissioni hannu jutu pirduti. Pi favuri, riprova. Siddu arricevi stu missaggiu d'erruri cchiù voti, prova a sculligàriti e a culligàriti novamenti.'''",
 'session_fail_preview_html' => "'''Semu spiacenti, nun hà statu pussìbbili elabburari lu canciamentu pirchì hannu jutu pirduti li dati rilativi â sissioni.'''
@@ -794,6 +853,7 @@ Nun desi nudda spiecazzioni.",
 Pari ca fu scancillata.',
 'edit-conflict' => 'Cunflittu di edizzioni.',
 'edit-no-change' => 'La mudifica fu ignurata pirchì nu foru appurtati canci ntô testu.',
+'postedit-confirmation' => 'Lu canciamentu fu sarbatu.',
 'edit-already-exists' => 'Mpussìbbili criari na nova pàggina.
 Esisti ggià.',
 
@@ -962,13 +1022,13 @@ S'havi accirtari ca la cuntinuità storica di la pàggina nun veni altirata.",
 'mergelogpagetext' => "Appressu veni ammustrata na lista dî operazioni cchiù ricenti di unioni dâ storia di na pàggina ni n'autra.",
 
 # Diffs
-'history-title' => 'Crunoluggìa dî canciamenti di "$1"',
+'history-title' => '$1: crunoluggìa dî canciamenti',
 'difference-title' => '$1: diffirenzi ntra li virsiuni',
 'lineno' => 'Lìnia $1:',
 'compareselectedversions' => 'Fari lu paraguni',
 'showhideselectedversions' => 'Ammustra/ammuccia virsioni silizziunati',
 'editundo' => 'annulla',
-'diff-multi' => '({{PLURAL:$1|Na rivisioni ntirmèdia nun ammustrata|$1 rivisioni ntirmedi nun ammustrati}}.)',
+'diff-multi' => '({{PLURAL:$1|Na rivisioni ntirmèdia|$1 rivisioni ntirmedi}} di {{PLURAL:$2|nu utenti|$2 utenti}} nun {{PLURAL:$1|ammusciata|ammusciati}}.)',
 
 # Search results
 'searchresults' => 'Risurtati dâ circata',
@@ -990,7 +1050,6 @@ S'havi accirtari ca la cuntinuità storica di la pàggina nun veni altirata.",
 'searchmenu-legend' => 'Opzioni di circata',
 'searchmenu-exists' => "* Pàggina '''[[$1]]'''",
 'searchmenu-new' => "'''Crea la pàggina \"[[:\$1]]\" supra sta wiki!'''",
-'searchhelp-url' => 'Help:Cuntinuti',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Visualizza li pàggini cu stu prifissu]]',
 'searchprofile-articles' => 'Pàggini di cuntinutu',
 'searchprofile-project' => "Pàggini d'ajutu e dô pruggettu",
@@ -1003,6 +1062,7 @@ S'havi accirtari ca la cuntinuità storica di la pàggina nun veni altirata.",
 'searchprofile-everything-tooltip' => 'Cerca unnegghiè (puru ntî pàggini di discussioni)',
 'searchprofile-advanced-tooltip' => 'Cerca ntê namespace pirsunalizzati',
 'search-result-size' => '$1 ({{PLURAL:$2|na parola|$2 paroli}})',
+'search-result-category-size' => '{{PLURAL:$1|1 utenti|$1 utenti}} ({{PLURAL:$2|1 suttacatigurìa|$2 suttacatigurìi}}, {{PLURAL:$3|1 file|$3 files}})',
 'search-result-score' => 'Rilivanza: $1%',
 'search-redirect' => '(redirect $1)',
 'search-section' => '(sizzioni $1)',
@@ -1060,7 +1120,6 @@ S'havi accirtari ca la cuntinuità storica di la pàggina nun veni altirata.",
 'resetprefs' => 'Annulla',
 'restoreprefs' => 'Ripristina li mpustazzioni di default',
 'prefs-editing' => 'Cancia',
-'prefs-edit-boxsize' => 'Diminzioni dâ finestra di mudìfica.',
 'rows' => 'Righi:',
 'columns' => 'Culonni:',
 'searchresultshead' => 'Circata',
@@ -1071,7 +1130,6 @@ S'havi accirtari ca la cuntinuità storica di la pàggina nun veni altirata.",
 'recentchangesdays-max' => '(màssimu $1 {{PLURAL:$1|jornu|jorna}})',
 'recentchangescount' => 'Nùmmiru di canciamenti da ammustrari di default:',
 'prefs-help-recentchangescount' => 'Ciò includi li canciamenti ricenti, storii e riggistri.',
-'prefs-help-watchlist-token' => "Cumpilannu stu campu cu na chiavi sigreta sarà giniratu nu feed RSS pi propri ossirvati spiciali. Chiunqui sa sta chiavi ni stu campu putrà leggiri li osservati speciali, quindi assicurati di nsiriri nu valori sicuru. Ccà c'è nu valori ginirato casualmenti ca si pò usari: $1",
 'savedprefs' => 'Li tò prifirenzi foru sarvati.',
 'timezonelegend' => 'Fusu orariu:',
 'localtime' => 'Uràriu lucali',
@@ -1101,7 +1159,6 @@ S'havi accirtari ca la cuntinuità storica di la pàggina nun veni altirata.",
 'prefs-reset-intro' => "È pussibili usari sta pàggina pi reimpustari li propri prifirenzi a chiddi pridifiniti dô situ.
 L'operazioni nun pò èssiri annullata.",
 'prefs-emailconfirm-label' => 'Conferma dâ e-mail:',
-'prefs-textboxsize' => 'Diminsioni dâ casedda di canciamentu',
 'youremail' => 'Lu tò nnirizzu email:',
 'username' => "Nomu d'utenti:",
 'uid' => 'ID utenti:',
@@ -1121,7 +1178,7 @@ L'operazioni nun pò èssiri annullata.",
 'prefs-help-gender' => "Opzionali: cunsenti di adattari li missaggi dô software in funzioni dô generi d'utenti. Sta nfurmazioni sarà pubblica.",
 'email' => 'Nnirizzu email',
 'prefs-help-realname' => '* Nomu veru (upziunali): siddu scegghi di furnìrilu veni usatu pi dàriti crèditu dû tò travagghiu.',
-'prefs-help-email' => "* Imeil (opziunali): abbìlita l'àutri utenti a cuntattàriti attraversu la tò pàggina d'utenti o di discussioni, senza pi chissu rivilari la tò idintitati.",
+'prefs-help-email' => 'Lu nnirizzu e-mail è facurtativu, ma è abbisugnatu pi risittari la password, ntô casu n cui è scurdata.',
 'prefs-help-email-others' => "Putiti videmma scegghiri di pirmèttiri ca l'autri ti cuntattanu pi posta elittronica cu nu culligamentu di la tò pàggina d'utilizzaturi o di discussioni. Lu tò nnirizzu nun veni rivilatu quannu l'àutri utilizzatura ti cuntattanu.",
 'prefs-help-email-required' => 'Lu nnirizzu email è nicissariu.',
 'prefs-info' => 'Informazzioni di basi',
@@ -1321,7 +1378,6 @@ L'operazioni nun pò èssiri annullata.",
 'recentchangeslinked-feed' => 'Canciamenti culligati',
 'recentchangeslinked-toolbox' => 'Canciamenti culligati',
 'recentchangeslinked-title' => 'Canciamenti culligati a "$1"',
-'recentchangeslinked-noresult' => 'Nuddu canciamentu ê pàggini culligati ntô pirìudu spicificatu.',
 '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' => 'Nnomu dâ pàggina:',
 'recentchangeslinked-to' => 'Vidi sulu li canciamenti ê pàggini culligati a chidda spicificata',
@@ -1374,7 +1430,7 @@ Pi nziriri nu file nta na pàggina, fai nu lijami accussì:
 'filepageexists' => "La pàggina di discrizzioni di stu file fu ggià criata nnû nnirizzu <strong>[[:$1]]</strong>, macari si ancora non c'è nu file cu stu nomu. La discrizzioni di l'uggettu ca fu misa ntô mentri dû caricamentu non si vidi supra a la pàggina di discussioni. Pi fàrila cumpàriri ntâ pàggina di discussioni, c'è la nicissitati di mudificàrila a manu",
 'fileexists-extension' => "Nu file cu nu nomu simili a chistu esisti già; l'unica diffirenza è l'usu dê maiusculi nte l'estensioni: [[$2|thumb]]
 * Nomu dû file carricatu: <strong>[[:$1]]</strong>
-* Nome dû file esistenti: <strong>[[:$2]]</strong>
+* Nomu dû file esistenti: <strong>[[:$2]]</strong>
 Pi favuri scegghiti n'àutru nomu.",
 'fileexists-thumbnail-yes' => "Lu file carricato sembra èssiri lu risurtatu di n'antiprima ''(thumbnail)''. [[$1|thumb]]
 Virificari, pi cunfruntu, lu file <strong>[[:$1]]</strong>.
@@ -1768,7 +1824,7 @@ Protucolli suppurtati: <code>$1</code>',
 'emailuserfooter' => 'Sta e-mail fu mannata di $1 a $2 attraversu la funzionu "Manna nu missàggiu e-mail a l\'utenti" supra {{SITENAME}}.',
 
 # Watchlist
-'watchlist' => 'Lista taliata mia',
+'watchlist' => 'Taliati spiciali',
 'mywatchlist' => 'Lista taliata mia',
 'watchlistfor2' => 'Pi $1, $2',
 'nowatchlist' => "Nun hai innicatu pàggini a tèniri d'occhiu.",
@@ -1783,7 +1839,6 @@ Protucolli suppurtati: <code>$1</code>',
 'unwatchthispage' => 'Smetti di sèquiri',
 'notanarticle' => "Nun è n'artìculu",
 'notvisiblerev' => 'La revisioni fu cancillata',
-'watchnochange' => 'Nudda dî pàggini ossirvati hà statu canciata ntô pirìudu cunzidiratu.',
 'watchlist-details' => 'La lista dê pàggini taliati cunteni {{PLURAL:$1|na pàggina (cu la rispittiva pàggina di discussioni)|$1 pàggini (cu li rispittivi pàggini di discussioni)}}.',
 'wlheader-enotif' => 'La nutìfica via e-mail è attivata.',
 'wlheader-showupdated' => "Li pàggini ca hannu statu canciati dâ tò ùrtima vìsita sunnu evidinziati 'n '''grassettu'''",
@@ -1986,12 +2041,12 @@ $1',
 'blanknamespace' => '(Principali)',
 
 # Contributions
-'contributions' => 'cuntribbuti',
+'contributions' => 'Cuntribbuti {{GENDER:$1|utenti}}',
 'contributions-title' => 'Cuntribbuti di $1',
-'mycontris' => 'Li mei cuntribbuti',
+'mycontris' => 'Li mè cuntribbuti',
 'contribsub2' => 'Pi $1 ($2)',
 'nocontribs' => 'Secunnu sti criteri nun ci sunnu canci o cuntribbuti.',
-'uctop' => '(ùrtima pi la pàggina)',
+'uctop' => '(attuali)',
 'month' => 'A pàrtiri dô mese (e pricidenti):',
 'year' => "A pàrtiri di l'annu (e pricidenti):",
 
@@ -2025,7 +2080,7 @@ $1',
 'whatlinkshere-hideredirs' => '$1 redirect',
 'whatlinkshere-hidetrans' => '$1 nclusioni',
 'whatlinkshere-hidelinks' => '$1 link',
-'whatlinkshere-hideimages' => '$1 link di mmàggini',
+'whatlinkshere-hideimages' => '$1 liami di files',
 'whatlinkshere-filters' => 'Filtri',
 
 # Block/unblock
@@ -2883,7 +2938,6 @@ Stu còdici di cunferma scadi automaticamenti a li $4.',
 'version-other' => 'Àutru',
 'version-mediahandlers' => 'Gistori di cuntinuti multimediali',
 'version-hooks' => 'Hook',
-'version-extension-functions' => 'Funzioni ntrudotti di estenzioni',
 'version-parser-extensiontags' => 'Tag canusciuti dô parser ntrudotti di estenzioni',
 'version-parser-function-hooks' => 'Hook pi funzioni dû parser',
 'version-hook-name' => "Nomu di l'hook",
@@ -2965,9 +3019,11 @@ Stu còdici di cunferma scadi automaticamenti a li $4.',
 'htmlform-float-invalid' => "Lu valuri c'hai spicificatu nun è nu nnummuru.",
 'htmlform-int-toolow' => 'Lu valori spicificatu è sutta lu minimu di $1',
 'htmlform-int-toohigh' => 'Lu valori spicificatu è supra lu minimu di $1',
-'htmlform-submit' => 'Invia',
-'htmlform-reset' => 'Annulla canciamenti',
-'htmlform-selectorother-other' => 'Autri',
+'htmlform-required' => 'Stu valuri è addumannatu',
+'htmlform-submit' => 'Mànna',
+'htmlform-reset' => 'Annulla li canciamenti',
+'htmlform-selectorother-other' => 'Àutru',
+'htmlform-chosen-placeholder' => 'Silizziona na opzioni',
 
 # New logging system
 'logentry-delete-delete' => '$1 cancillau la pàggina $3',
index c271e88..db1717a 100644 (file)
@@ -240,7 +240,6 @@ $messages = array(
 'disclaimers' => 'Disclamation',
 'disclaimerpage' => 'Project:General_disclamation',
 'edithelp' => 'Editin help',
-'edithelppage' => 'Help:Editin',
 'helppage' => 'Help:Contents',
 'mainpage' => 'Main Page',
 'mainpage-description' => 'Main Page',
@@ -706,7 +705,6 @@ there micht be parteeculars in the [{{fullurl:{{#Special:Log}}/suppress|page={{F
 'viewprevnext' => 'View ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-exists' => "'''There is a page named \"[[:\$1]]\" oan this wiki.'''",
 'searchmenu-new' => "'''Mak the page \"[[:\$1]]\" on this wiki!'''",
-'searchhelp-url' => 'Help:Contents',
 'searchprofile-articles' => 'Content pages',
 'searchprofile-project' => 'Help and Project pages',
 'searchprofile-images' => 'Multimedia',
@@ -849,7 +847,6 @@ Yer e-mail address insae revealed whin ither uisers contact ye.",
 'recentchangeslinked-feed' => 'Relatit chynges',
 'recentchangeslinked-toolbox' => 'Relatit chynges',
 'recentchangeslinked-title' => 'Changes related to "$1"',
-'recentchangeslinked-noresult' => "Na changes oan linked pages during th' given period.",
 'recentchangeslinked-summary' => "This is a leet o' changes made recently tae pages linked frae a specified page (or tae members o' a specified category).
 Pages on [[Special:Watchlist|your watchleet]] are '''bold'''.",
 'recentchangeslinked-page' => 'Page name:',
@@ -1075,7 +1072,6 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'watchthispage' => 'Leuk ower this page',
 'unwatch' => 'Unwatch',
 'notanarticle' => 'No a content page',
-'watchnochange' => 'Nane o yer watched items were edited in the time period displayed.',
 'watchlist-details' => "{{PLURAL:$1|$1 page|$1 pages}} on yer watchleet, nae countin' collogue pages.",
 'watchlistcontains' => 'Yer watchleet contains $1 {{PLURAL:$1|page|pages}}.',
 'iteminvalidname' => "Trouble wi eitem '$1', invalid name...",
index 17e4204..54737eb 100644 (file)
@@ -321,7 +321,6 @@ $messages = array(
 'disclaimers' => 'غيرجوابداريناما',
 'disclaimerpage' => 'Project:عام غيرجوابدارينامو',
 'edithelp' => 'مدد براءِ ترميم',
-'edithelppage' => 'Help:سنوارڻ',
 'helppage' => 'Help:فهرست',
 'mainpage' => 'مُک صفحو',
 'mainpage-description' => 'مُک صفحو',
@@ -524,7 +523,6 @@ You cannot use the 'e-mail this user' feature unless a valid e-mail address is s
 'prevn' => 'پويان {{PLURAL:$1|$1}}',
 'nextn' => 'اڳيان {{PLURAL:$1|$1}}',
 'viewprevnext' => 'ڏسو ($1 {{int:pipe-separator}} $2) ($3)',
-'searchhelp-url' => 'Help:فهرست',
 'powersearch' => 'نفيس ڳولا',
 'powersearch-redir' => 'چورڻن جي فهرست ڏيکاريو',
 
@@ -584,7 +582,6 @@ $1 {{PLURAL:$1|اکر|اکرن}} کان ننڍي هوڻ گھرجي.',
 'recentchangeslinked-feed' => 'لاڳاپيل تبديليون',
 'recentchangeslinked-toolbox' => 'لاڳاپيل تبديليون',
 'recentchangeslinked-title' => '"$1" سان لاڳاپيل تبديليون',
-'recentchangeslinked-noresult' => 'ڄاڻايل مدي دوران ڳنڍيل صفحن ۾ ڪا به تبديلي ناهي ٿي.',
 
 # Upload
 'upload' => 'فائيل چاڙهيو',
index d180355..713ba4d 100644 (file)
@@ -304,7 +304,6 @@ $messages = array(
 'disclaimers' => 'Avvirthènzi',
 'disclaimerpage' => 'Project:Avvirthènzi ginarari',
 'edithelp' => 'Ghia',
-'edithelppage' => 'Help:Mudìfigga',
 'helppage' => 'Help:Indizi',
 'mainpage' => 'Pàgina prinzipari',
 'mainpage-description' => 'Pàgina prinzipari',
@@ -774,7 +773,6 @@ Cunsulthà lu [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} rigi
 'nextn' => 'sighenti {{PLURAL:$1|$1}}',
 'viewprevnext' => 'Vèdi ($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-legend' => 'Opzioni di zercha',
-'searchhelp-url' => 'Help:Indizi',
 'searchprofile-everything' => 'Tuttu',
 'search-result-size' => '$1 ({{PLURAL:$2|una paraura|$2 parauri}})',
 'search-redirect' => '(rinviu $1)',
@@ -941,7 +939,6 @@ Cunsulthà lu [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} rigi
 'recentchangeslinked-feed' => 'Mudìfigghi curriraddi',
 'recentchangeslinked-toolbox' => 'Mudìfigghi curriraddi',
 'recentchangeslinked-title' => 'Mudìfigghi curriraddi a "$1"',
-'recentchangeslinked-noresult' => "Nisciuna mudìfigga a li pàgini curriraddi i' lu perìodu sciubaraddu.",
 'recentchangeslinked-summary' => "Chistha pàgina ippiziari musthra li mudìfigghi più rizzenti a li pàgini curriraddi a chidda sciubaradda (o a li membri di un'ippizzifica categuria). Li [[Special:Watchlist|pàgini abbaidaddi]] so evidenziaddi in '''grasseddu'''.",
 'recentchangeslinked-page' => 'Innòmmu di la pàgina:',
 'recentchangeslinked-to' => 'Musthra soru li mudifigghi a li pagini curriraddi a chidda isciubaradda',
@@ -1273,7 +1270,6 @@ Si daboi s'à gana d'eliminà la pàgina da la listha di l'abbaidaddi ippiziarii
 'unwatchthispage' => 'Zissa di sighì',
 'notanarticle' => 'Chistha pàgina nò è una bozi',
 'notvisiblerev' => 'La ribisioni è isthadda canzilladda',
-'watchnochange' => "Nisciuna di li pàgini abbaidaddi è isthadda mudìfiggadda i' lu perìodu cunsidaraddu.",
 'watchlist-details' => "La listha di l'abbaidaddi ippiziari cunteni {{PLURAL:$1|una pagina (e la rippettiba pagina di dischussioni)|$1 pagini (e li rippettibi pagini di dischussioni)}}.",
 'wlheader-enotif' => 'La nutìfica via postha erettrònica è attiba.',
 'wlheader-showupdated' => "Li pàgini chi so isthaddi mudìfiggaddi daboi l'ulthima vìsita so evidenziaddi in '''grasseddu'''",
index dfdcdcb..01a1adf 100644 (file)
@@ -11,6 +11,7 @@
  * @author Jeblad
  * @author Kaganer
  * @author Laila
+ * @author Linnea
  * @author Skuolfi
  * @author Teak
  * @author The Evil IP address
@@ -330,7 +331,6 @@ $messages = array(
 'disclaimers' => 'Friijavuohta vástideamis',
 'disclaimerpage' => 'Project:Friijavuohta vástideamis',
 'edithelp' => 'Rievdadanrávvagat',
-'edithelppage' => 'Help:Mo rievdadit siidduid',
 'helppage' => 'Help:Sisdoallu',
 'mainpage' => 'Váldosiidu',
 'mainpage-description' => 'Váldosiidu',
@@ -618,7 +618,6 @@ Eará bajasdoallit sáhtet lohkat čihkojuvvon sisdoalu ja máhcahit dan.",
 
 $1 {{int:pipe-separator}} $2',
 'searchmenu-new' => "'''Álggat siiddu ''[[:$1]]'' dán Wikipediai'''",
-'searchhelp-url' => 'Help:Rávvagat',
 'searchprofile-articles' => 'Sisdoallosiiddut',
 'searchprofile-project' => 'Veahkke- ja prošeaktasiiddut',
 'searchprofile-everything' => 'Buot',
@@ -720,6 +719,12 @@ $1 {{int:pipe-separator}} $2',
 'rightslog' => 'Logga geavaheaddjirievttiin',
 'rightslogtext' => 'Vuolábealde lea logga geavaheaddjirivttiid rievdadusain.',
 
+# Associated actions - in the sentence "You do not have permission to X"
+'action-createpage' => 'álggahit siidduid',
+'action-createtalk' => 'álggahit ságastallansiidduid',
+'action-browsearchive' => 'ohcat sihkkojuvvon siidduid',
+'action-sendemail' => 'sáddet e-poasttaid',
+
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|rievdadus|rievdadusa}}',
 'recentchanges' => 'Varas rievdadusat',
@@ -1032,7 +1037,6 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'unwatch' => 'Heaite čuovvumis',
 'unwatchthispage' => 'Heaite čuovvumis',
 'notanarticle' => 'Ii leat siidu',
-'watchnochange' => 'Válljejuvvon áigodagas oktage du čuovvunlisttui gullevaš siidu leat rievdaduvvon.',
 'watchlist-details' => 'Du čuovvunlisttus {{PLURAL:$1|lea $1 siidu|leat $1 siiddu}}. Lohkui eai leat váldojuvvon ságastallansiidduid.',
 'wlheader-enotif' => 'E-poastaalmmuhusat leat anus.',
 'wlheader-showupdated' => "Siiddut, mat leat rievdaduvvon du maŋimus geavahangearddi maŋŋá leat merkojuvvon '''buoiddes teavsttain'''",
index 5f56f5e..fee1e56 100644 (file)
@@ -198,7 +198,6 @@ $messages = array(
 'disclaimers' => 'Isój cacóomx',
 'disclaimerpage' => 'Project:Isoj cacóomx geniiraloj',
 'edithelp' => 'Help ticpatlöx',
-'edithelppage' => 'Help:Ticpatlöx',
 'helppage' => 'Help:Caálixötöj',
 'mainpage' => 'Caálixötöj',
 'mainpage-description' => 'Caálixötöj',
@@ -577,7 +576,6 @@ Informacion: (curt) = quiíxde vercion currentua,
 'prevn' => 'jan {{PLURAL:$1|$1}}',
 'nextn' => 'hun {{PLURAL:$1|$1}}',
 'viewprevnext' => 'Cohuatlöx ($1 {{int:pipe-separator}} $2) ($3)',
-'searchhelp-url' => 'Help:Caálixötöj',
 'powersearch' => 'Yahöx',
 
 # Preferences page
index 2e2bba5..42b7cbd 100644 (file)
@@ -289,7 +289,6 @@ $1',
 'disclaimers' => 'Atsakuomībės aprėbuojims',
 'disclaimerpage' => 'Project:Atsakuomībės aprėbuojims',
 'edithelp' => 'Kāp redagoutė',
-'edithelppage' => 'Help:Redagavėms',
 'helppage' => 'Help:Torėnīs',
 'mainpage' => 'Pėrms poslapis',
 'mainpage-description' => 'Pėrms poslapis',
@@ -723,7 +722,6 @@ Kėtė admėnėstratuorē šėtom pruojekte vėsdar galės pasėiktė pasliepta
 'searchmenu-legend' => 'Paėiškuos nustatīmā',
 'searchmenu-exists' => "'''Poslapis pavadėnts „[[$1]]“ šėtuo wiki'''",
 'searchmenu-new' => "'''Sokortė poslapi „[[:$1]]“ šėtuo wiki!'''",
-'searchhelp-url' => 'Help:Torėnīs',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Ėiškuotė poslapiu so šėtuom prīšdielio]]',
 'searchprofile-articles' => 'Torėnė poslapē',
 'searchprofile-project' => 'Pagelbas ė pruojekta poslapē',
@@ -784,7 +782,6 @@ Kėtė admėnėstratuorē šėtom pruojekte vėsdar galės pasėiktė pasliepta
 'resetprefs' => 'Atstatītė nostatīmos',
 'restoreprefs' => 'Atstatītė vėsus numatītūsius nustatīmus',
 'prefs-editing' => 'Redagavėms',
-'prefs-edit-boxsize' => 'Redagavėma longa dėdoms.',
 'rows' => 'Eilotės:',
 'columns' => 'Štolpalē:',
 'searchresultshead' => 'Paėiškuos nostatīmā',
@@ -922,7 +919,6 @@ Ana gal sodarītė ne daugiau kāp $1 {{PLURAL:$1|sėmbuolis|sėmbuolē|sėmbuol
 'recentchangeslinked-feed' => 'Sosėjėn pakeitėmā',
 'recentchangeslinked-toolbox' => 'Sosėjėn pakeitėmā',
 'recentchangeslinked-title' => 'So $1 sosėje pakeitimā',
-'recentchangeslinked-noresult' => 'Nier juokiū pakeitėmu sosėitous poslapious douto čieso.',
 'recentchangeslinked-summary' => "Šėtom specēliajam poslapi ruodomė vielībė̅jė pakeitėmā poslapiūs, i katrūs īr nuruodoma. Poslapē ėš Tamstas [[Special:Watchlist|keravuojamu sāraša]] īr '''pastuorėntė'''.",
 'recentchangeslinked-page' => 'Poslapė pavadinėms:',
 'recentchangeslinked-to' => 'Ruodītė so doutu poslapiu sosėjosiu puslapiu pakeitėmus',
@@ -1262,7 +1258,6 @@ Jēgo bikumet ožsėnuorietomiet liautėis keravuotė straipsnė, spauskat \"neb
 'unwatch' => 'Nebkeravuotė',
 'unwatchthispage' => 'Nustuotė keravuotė',
 'notanarticle' => 'Ne torėnė poslapis',
-'watchnochange' => 'Pasėrėnkto čieso nebova redagouts nė vėins keravuojams straipsnis.',
 'watchlist-details' => 'Keravuojama $1 {{PLURAL:$1|poslapis|$1 poslapē|$1 poslapiu}} neskaitlioujant aptarėmu poslapiu.',
 'wlheader-enotif' => 'El. pašta primėnėmā ijongtė īr.',
 'wlheader-showupdated' => "Poslapē, katrėi pakeistė nu Tamstas paskotėnė apsėlonkėma čiesa anūs, īr pažīmietė '''pastuorintā'''",
index 00e3c75..6908e54 100644 (file)
@@ -8,6 +8,7 @@
  * @file
  *
  * @author Kaganer
+ * @author Nemo bis
  * @author OC Ripper
  * @author לערי ריינהארט
  */
@@ -250,6 +251,7 @@ $messages = array(
 'tog-diffonly' => 'Ne prikazuj sadržaj stranice ispod prikaza razlika',
 'tog-showhiddencats' => 'Prikaži skrivene kategorije',
 'tog-norollbackdiff' => 'Nakon povrata zanemari prikaz razlika',
+'tog-useeditwarning' => 'Upozori me kad napuštam stranicu za uređivanje bez snimanja izmjena',
 
 'underline-always' => 'Uvijek',
 'underline-never' => 'Nikad',
@@ -313,6 +315,18 @@ $messages = array(
 'oct' => 'okt',
 'nov' => 'nov',
 'dec' => 'dec',
+'january-date' => '$1. januar',
+'february-date' => '$1. februar',
+'march-date' => '$1. mart',
+'april-date' => '$1. april',
+'may-date' => '$1. maj',
+'june-date' => '$1. jun',
+'july-date' => '$1. jul',
+'august-date' => '$1. august',
+'september-date' => '$1. septembar',
+'october-date' => '$1. oktobar',
+'november-date' => '$1. novembar',
+'december-date' => '$1. decembar',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategorija|Kategorije}}',
@@ -394,6 +408,7 @@ $messages = array(
 'create-this-page' => 'Stvori ovu stranicu',
 'delete' => 'Obriši',
 'deletethispage' => 'Obriši ovu stranicu',
+'undeletethispage' => 'Vrati ovu stranicu',
 'undelete_short' => 'Vrati obrisanih {{PLURAL:$1|$1 izmjenu|$1 izmjene|$1 izmjena}}',
 'viewdeleted_short' => 'Pogledaj {{PLURAL:$1|jednu obrisanu izmjenu|$1 obrisane izmjene|$1 obrisanih izmjena}}',
 'protect' => 'Zaštiti',
@@ -447,7 +462,6 @@ $1',
 'disclaimers' => 'Odricanje odgovornosti',
 'disclaimerpage' => 'Project:Uslovi korištenja, pravne napomene i odricanje odgovornosti',
 'edithelp' => 'Pomoć pri uređivanju',
-'edithelppage' => 'Help:Uređivanje',
 'helppage' => 'Help:Sadržaj',
 'mainpage' => 'Glavna strana',
 'mainpage-description' => 'Glavna strana',
@@ -595,6 +609,10 @@ $2',
 'namespaceprotected' => "Nemate dozvolu uređivati stranice imenskog prostora '''$1'''.",
 'customcssprotected' => 'Nemate dozvolu za mijenjanje ove CSS stranice jer sadrži osobne postavke nekog drugog korisnika.',
 'customjsprotected' => 'Nemate dozvolu za mijenjanje ove JavaScript stranice jer sadrži osobne postavke nekog drugog korisnika.',
+'mycustomcssprotected' => 'Nemate ovlasti za uređivanje ove CSS stranice.',
+'mycustomjsprotected' => 'Nemate dozvolu da uređujete ovu stranicu sa JavaScriptom.',
+'myprivateinfoprotected' => 'Nemate dozvolu da uređujete svoje privatne informacije.',
+'mypreferencesprotected' => 'Nemate dozvolu da uređujete svoje postavke.',
 'ns-specialprotected' => 'Posebne stranice se ne mogu uređivati.',
 'titleprotected' => 'Naslov stranice je zaštićen od postavljanja od strane korisnika [[User:$1|$1]].
 Kao razlog je naveden "\'\'$2\'\'".',
@@ -620,9 +638,19 @@ Obratite pažnju da neke stranice mogu nastaviti da se prikazuju kao da ste još
 'welcomecreation-msg' => 'Vaš korisnički račun je napravljen.
 Ne zaboravite izmijeniti vlastite [[Special:Preferences|{{SITENAME}} postavke]].',
 'yourname' => 'Korisničko ime:',
+'userlogin-yourname' => 'Korisničko ime',
+'userlogin-yourname-ph' => 'Unesite svoje korisničko ime',
+'createacct-another-username-ph' => 'Unesi korisničko ime',
 'yourpassword' => 'Lozinka/zaporka:',
+'userlogin-yourpassword' => 'Lozinka/zaporka',
+'userlogin-yourpassword-ph' => 'Unesite svoju lozinku/zaporku',
+'createacct-yourpassword-ph' => 'Unesite lozinku/zaporku',
 'yourpasswordagain' => 'Ponovno utipkajte lozinku/zaporku:',
+'createacct-yourpasswordagain' => 'Potvrdite lozinku/zaporku',
+'createacct-yourpasswordagain-ph' => 'Unesite lozinku/zaporku ponovno',
 'remembermypassword' => 'Upamti moju lozinku na ovom kompjuteru (za maksimum od $1 {{PLURAL:$1|dan|dana}})',
+'userlogin-remembermypassword' => 'Držite me ulogiranog/u',
+'userlogin-signwithsecure' => 'Koristite sigurnu vezu',
 'securelogin-stick-https' => 'Ostanite povezani na HTTPS nakon prijave',
 'yourdomainname' => 'Vaš domen:',
 'password-change-forbidden' => 'Ne možete da promenite lozinku na ovom vikiju.',
@@ -635,18 +663,41 @@ Ne zaboravite izmijeniti vlastite [[Special:Preferences|{{SITENAME}} postavke]].
 'logout' => 'Odjavi me',
 'userlogout' => 'Odjava',
 'notloggedin' => 'Niste prijavljeni',
+'userlogin-noaccount' => 'Nemate račun?',
+'userlogin-joinproject' => 'Pridružite se {{SITENAME}}',
 'nologin' => "Nemate korisničko ime? '''$1'''.",
 'nologinlink' => 'Otvorite račun',
 'createaccount' => 'Napravi korisnički račun',
 'gotaccount' => "Imate račun? '''$1'''.",
 'gotaccountlink' => 'Prijavi se',
 'userlogin-resetlink' => 'Zaboravili ste detalje vaše prijave?',
+'userlogin-resetpassword-link' => 'Resetirajte svoju lozinku/zaporku',
+'helplogin-url' => 'Help:Logiranje',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Pomoć pri logiranju]]',
+'createacct-join' => 'Unesite svoje informacije ispod',
+'createacct-another-join' => 'Dolje unesite informacije o novom računu.',
+'createacct-emailrequired' => 'E-mail adresa',
+'createacct-emailoptional' => 'E-mail adresa (opcionalno)',
+'createacct-email-ph' => 'Unesite svoju E-mail adresu',
+'createacct-another-email-ph' => 'Postavite E-mail adresu',
 'createaccountmail' => 'Koristite privremenu slučajno stvorenu lozinku i pošaljite na dolje specificiranu e-mail adresu',
+'createacct-realname' => 'Stvarno ime (opcionalno)',
 'createaccountreason' => 'Razlog:',
+'createacct-reason' => 'Razlog',
+'createacct-reason-ph' => 'Zašto stvarate novi račun',
+'createacct-captcha' => 'Sigurnosna provjera',
+'createacct-imgcaptcha-ph' => 'Unesite tekst koji vidite iznad',
+'createacct-submit' => 'Stvorite svoj račun',
+'createacct-another-submit' => 'Stvorite novi račun',
+'createacct-benefit-heading' => '{{SITENAME}} se stvara od ljudi poput vas.',
+'createacct-benefit-body1' => '$1 {{PLURAL:$1|izmjena|izmjene}}',
+'createacct-benefit-body2' => '$1 {{PLURAL:$1|stranica|stranice|stranica}}',
+'createacct-benefit-body3' => 'nedavni {{PLURAL:$1|donator|donatora}}',
 'badretype' => 'Lozinke koje ste unijeli se ne poklapaju.',
 'userexists' => 'Uneseno korisničko ime već je u upotrebi.
 Unesite neko drugo ime.',
 'loginerror' => 'Greška pri prijavljivanju',
+'createacct-error' => 'Pogreška u stvaranju računa',
 'createaccounterror' => 'Ne može se napraviti račun: $1',
 'nocookiesnew' => "Korisnički nalog je napravljen, ali niste prijavljeni.
 {{SITENAME}} koristi kolačiće (''cookies'') da bi se korisnici prijavili.
@@ -702,7 +753,7 @@ Molimo vas da unesete ispravnu adresu ili ostavite prazno polje.',
 'cannotchangeemail' => 'Na ovom wikiju ne možete promeniti e-mail adresu računa.',
 'emaildisabled' => 'Ova web-stranica ne može da šalje e-poruke.',
 'accountcreated' => 'Korisnički račun je napravljen',
-'accountcreatedtext' => 'Korisnički račun za $1 je napravljen.',
+'accountcreatedtext' => 'Korisnički račun za [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|razgovor]]) je napravljen.',
 'createaccount-title' => 'Pravljenje korisničkog računa za {{SITENAME}}',
 'createaccount-text' => 'Neko je napravio korisnički račun za vašu e-mail adresu na {{SITENAME}} ($4) sa imenom "$2", i sa šifrom "$3".
 Trebali biste se prijaviti i promjeniti šifru.
@@ -737,21 +788,22 @@ Da biste završili prijavu, morate unijeti novu šifru ovdje:',
 'resetpass-wrong-oldpass' => 'Privremena ili trenutna lozinka nije valjana.
 Možda ste već uspješno promijenili Vašu lozinku ili ste tražili novu privremenu lozinku.',
 'resetpass-temp-password' => 'Privremena lozinka:',
+'resetpass-abort-generic' => 'Promjenu lozinke/zaporke je prekinula ekstenzija.',
 
 # Special:PasswordReset
 'passwordreset' => 'Ponovno postavi lozinku',
-'passwordreset-text' => 'Ispunite ovaj obrazac da biste dobili e-mail podsjetnik o vašim detaljima računa.',
+'passwordreset-text-one' => 'Dovršite ovaj obrazac kako biste resetirali svoju lozinku/zaporku.',
+'passwordreset-text-many' => '{{PLURAL:$1|Ispunite jedno od polja kako bi ste resetirali svoju lozinku/zaporku.}}',
 'passwordreset-legend' => 'Ponovno postavi lozinku',
 'passwordreset-disabled' => 'Ponovno postavljanje lozinke je onemogućeno na ovom wikiju.',
-'passwordreset-pretext' => '{{PLURAL:$1||Unesite jedan dio podataka ispod}}',
+'passwordreset-emaildisabled' => 'Postavke E-maila su deaktivirane na ovoj wiki.',
 'passwordreset-username' => 'Korisničko ime:',
 'passwordreset-domain' => 'Domena:',
 'passwordreset-capture' => 'Pogledati krajnji e-mail?',
 'passwordreset-capture-help' => 'Ako označite ovu kućicu, e-mail s privremenom lozinkom će biti prikazana i poslata korisniku.',
 'passwordreset-email' => 'E-mail adresa:',
 'passwordreset-emailtitle' => 'Detalji računa na {{SITENAME}}',
-'passwordreset-emailtext-ip' => 'Netko (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}}
+'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}}
 povezani s ovom e-mail adresom:
 
 $2
@@ -760,7 +812,7 @@ $2
 Trebate se prijaviti i odabrati novu lozinku. Ako je neko drugi napravio ovaj
 zahtjev, ili ako ste se sjetili Vaše početne lozinke, a ne želite je promijeniti, 
 možete zanemariti ovu poruku i nastaviti koristiti staru lozinku.',
-'passwordreset-emailtext-user' => 'Korisnik $1 na {{SITENAME}} je zatražio podsjetnik o detaljima Vašeg računa za {{SITENAME}}
+'passwordreset-emailtext-user' => 'Korisnik $1 na {{SITENAME}} je zatražio resetiranje vaše lozinke/zaporke za {{SITENAME}}
 ($4). Sljedeći {{PLURAL:$3|korisnički račun je|korisnički računi su}} povezani s ovom e-mail adresom:
 
 $2
@@ -771,9 +823,9 @@ zahtjev, ili ako ste se sjetili Vaše originalne lozinke, a ne želite je više
 možete zanemariti ovu poruku i nastaviti koristiti staru lozinku.',
 'passwordreset-emailelement' => 'Korisničko ime: $1
 Privremena šifra: $2',
-'passwordreset-emailsent' => 'E-mail podsjetnik je poslan.',
-'passwordreset-emailsent-capture' => 'Poslan je podsjetnik preko e-maila (prikazan dolje).',
-'passwordreset-emailerror-capture' => 'E-mail s podsjetnikom, prikazan dolje, je poslan, ali slanje korisniku nije uspjelo: $1',
+'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',
 
 # Special:ChangeEmail
 'changeemail' => 'Promijeni e-mail adresu',
@@ -974,7 +1026,7 @@ Možete se vratiti i uređivati već postojeće stranice ili se [[Special:UserLo
 'nocreate-loggedin' => 'Nemate dopuštenje da kreirate nove stranice.',
 'sectioneditnotsupported-title' => 'Uređivanje sekcije nije podržano',
 'sectioneditnotsupported-text' => 'Uređivanje sekcije nije podržano na ovoj stranici.',
-'permissionserrors' => 'Greške pri odobrenju',
+'permissionserrors' => 'Greška pri odobrenju',
 'permissionserrorstext' => 'Nemate dopuštenje da to uradite, iz {{PLURAL:$1|slijedećeg razloga|slijedećih razloga}}:',
 'permissionserrorstext-withaction' => 'Nemate dozvolu za $2, zbog {{PLURAL:$1|sljedećeg|sljedećih}} razloga:',
 'recreate-moveddeleted-warn' => "'''Upozorenje: Postavljate stranicu koja je prethodno brisana.'''
@@ -990,12 +1042,15 @@ Nije ponuđeno nikakvo objašnjenje.',
 Izgleda da je obrisana.',
 'edit-conflict' => 'Sukob izmjena.',
 'edit-no-change' => 'Vaša izmjena je ignorirana, jer nije bilo promjena teksta stranice.',
+'postedit-confirmation' => 'Vaša izmjena je snimljena.',
 'edit-already-exists' => 'Stranica nije mogla biti kreirana.
 Izgleda da već postoji.',
 'defaultmessagetext' => 'Uobičajeni tekst poruke',
 'content-failed-to-parse' => 'Ne mogu da raščlanim sadržaj tipa $2 za model $1: $3',
 'invalid-content-data' => 'Neispravni podaci sadržaja',
 'content-not-allowed-here' => 'Sadržaj modela „$1“ nije dozvoljen na stranici [[$2]]',
+'editwarning-warning' => 'Napuštanje ove stranice može dovesti do gubitka svih promjena koje ste načinili.
+Ako ste prijavljeni, možete isključiti ovo upozorenje u sekciji "Uređivanje" vaših postavki.',
 
 # Content models
 'content-model-wikitext' => 'wikitekst',
@@ -1031,6 +1086,7 @@ Molimo da provjerite usporedbu ispod da budete sigurni da to želite učiniti, a
 'undo-failure' => 'Izmjene se ne mogu vratiti zbog konflikta sa izmjenama u međuvremenu.',
 'undo-norev' => 'Izmjena se ne može vratiti jer ne postoji ranija ili je obrisana.',
 'undo-summary' => 'Vraćena izmjena $1 [[Special:Contributions/$2|korisnika $2]] ([[User talk:$2|razgovor]])',
+'undo-summary-username-hidden' => 'Poništi izmjenu $1 od skrivenog korisnika',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Nije moguće napraviti korisnički račun',
@@ -1058,8 +1114,8 @@ Objašnjenje: '''({{int:cur}})''' = razlika sa trenutnom verzijom,
 '''({{int:last}})''' = razlika sa prethodnom verzijom, '''{{int:minoreditletter}}''' = manja izmjena.",
 'history-fieldset-title' => 'Pretraga historije',
 'history-show-deleted' => 'Samo obrisane',
-'histfirst' => 'Najstarije',
-'histlast' => 'Najnovije',
+'histfirst' => 'najstarije',
+'histlast' => 'najnovije',
 'historysize' => '({{PLURAL:$1|1 bajt|$1 bajta|$1 bajtova}})',
 'historyempty' => '(prazno)',
 
@@ -1212,6 +1268,7 @@ Korištenje navigacionih linkova će resetovati ovaj stupac.',
 'compareselectedversions' => 'Uporedite označene verzije',
 'showhideselectedversions' => 'Pokaži/sakrij odabrane verzije',
 'editundo' => 'ukloni ovu izmjenu',
+'diff-empty' => '(nema razlike)',
 'diff-multi' => '({{PLURAL:$1|Nije prikazana jedna međuverzija|Nisu prikazane $1 međuverzije|Nije prikazano $1 međuverzija}}) od strane {{PLURAL:$2|korisnika|korisnika}}',
 'diff-multi-manyusers' => '({{PLURAL:$1|Nije prikazana jedna međuverzija|Nisu prikazane $1 međuverzije|Nije prikazano $1 međuverzija}}) od strane {{PLURAL:$2|korisnika|korisnika}}',
 'difference-missing-revision' => 'Ne mogu da pronađem {{PLURAL:$2|jednu izmenu|$2 izmene|$2 izmena}} od ove razlike ($1).
@@ -1239,7 +1296,6 @@ Više informacija možete pronaći u [{{fullurl:{{#Special:Log}}/delete|page={{F
 'searchmenu-legend' => 'Opcije pretrage',
 'searchmenu-exists' => "'''Postoji stranica pod nazivom \"[[:\$1]]\" na ovoj wiki'''",
 'searchmenu-new' => "'''Napravi stranicu \"[[:\$1|\$1]]\" na ovoj wiki!'''",
-'searchhelp-url' => 'Help:Sadržaj',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Pregledaj stranice sa ovim prefiksom]]',
 'searchprofile-articles' => 'Stranice sadržaja',
 'searchprofile-project' => 'Stranice pomoći i projekta',
@@ -1283,6 +1339,7 @@ Pokušajte u svoju pretragu staviti ''all:'' da se pretražuje cjelokupan sadrž
 'searchdisabled' => 'Pretraga teksta na ovoj Wiki je trenutno onemogućena.
 U međuvremenu možete pretraživati preko Googlea.
 Uzmite u obzir da njegovi indeksi za ovu Wiki ne moraju biti ažurirani.',
+'search-error' => 'Dogodila se pogreška prilikom pretraživanja: $1',
 
 # Preferences page
 'preferences' => 'Postavke',
@@ -1316,7 +1373,6 @@ Uzmite u obzir da njegovi indeksi za ovu Wiki ne moraju biti ažurirani.',
 'resetprefs' => 'Poništi nesnimljene promjene postavki',
 'restoreprefs' => 'Vrati sve pretpostavljene postavke',
 'prefs-editing' => 'Uređivanje',
-'prefs-edit-boxsize' => 'Veličina prozora za uređivanje.',
 'rows' => 'Redova:',
 'columns' => 'Kolona:',
 'searchresultshead' => 'Postavke rezultata pretrage',
@@ -1327,9 +1383,6 @@ Uzmite u obzir da njegovi indeksi za ovu Wiki ne moraju biti ažurirani.',
 'recentchangesdays-max' => '(najviše $1 {{PLURAL:$1|dan|dana}})',
 'recentchangescount' => 'Broj uređivanja za prikaz po pretpostavkama:',
 'prefs-help-recentchangescount' => 'Ovo uključuje nedavne izmjene, historije stranice i registre.',
-'prefs-help-watchlist-token' => 'Popunjavanjem ovog polja tajnim ključem će generisati RSS feed za Vaš spisak praćenja.
-Svako ko zna ključ u ovom polju će biti u mogućnosti da pročita Vaš spisak praćenja, tako da trebate izabrati sigurnu vrijednost.
-Ovdje su navedene neke nasumično odabrane vrijednosti koje možete koristiti: $1',
 'savedprefs' => 'Vaša postavke su snimljene.',
 'timezonelegend' => 'Vremenska zona:',
 'localtime' => 'Lokalno vrijeme:',
@@ -1360,7 +1413,6 @@ Ovdje su navedene neke nasumično odabrane vrijednosti koje možete koristiti: $
 'prefs-reset-intro' => 'Možete koristiti ovu stranicu da poništite Vaše postavke na ovom sajtu na pretpostavljene vrijednosti.
 Ovo se ne može vratiti unazad.',
 'prefs-emailconfirm-label' => 'E-mail potvrda:',
-'prefs-textboxsize' => 'Veličina prozora za uređivanje',
 'youremail' => 'E-mail:',
 'username' => 'Ime {{GENDER:$1|korisnika|korisnice}}:',
 'uid' => '{{GENDER:$1|Korisnički}} ID:',
@@ -1393,7 +1445,9 @@ Ako izaberete da date ime, biće korišteno za pripisivanje Vašeg rada.',
 'prefs-signature' => 'Potpis',
 'prefs-dateformat' => 'Format datuma',
 'prefs-timeoffset' => 'Vremenska razlika',
-'prefs-advancedediting' => 'Napredne opcije',
+'prefs-advancedediting' => 'Općenito',
+'prefs-editor' => 'Uređivač',
+'prefs-preview' => 'Pretpregled',
 'prefs-advancedrc' => 'Napredne opcije',
 'prefs-advancedrendering' => 'Napredne opcije',
 'prefs-advancedsearchoptions' => 'Napredne opcije',
@@ -1428,6 +1482,8 @@ Ako izaberete da date ime, biće korišteno za pripisivanje Vašeg rada.',
 'userrights-notallowed' => 'Vaš račun Vam ne daje dozvolu da postavljate i uklanjate korisnička prava.',
 'userrights-changeable-col' => 'Grupe koje možete mijenjati',
 'userrights-unchangeable-col' => 'Grupe koje ne možete mijenjati',
+'userrights-conflict' => 'Sukob u korisničkim pravima! Molimo pošaljite Vaše promjene ponovno.',
+'userrights-removed-self' => 'Uspješno ste uklonili vlastite prava. Zbog toga više niste u stanju pristupiti ovoj stranici.',
 
 # Groups
 'group' => 'Grupa:',
@@ -1471,7 +1527,7 @@ Ako izaberete da date ime, biće korišteno za pripisivanje Vašeg rada.',
 'right-reupload-shared' => 'Postavljanje novih lokalnih verzija datoteka identičnih onima u zajedničkoj ostavi',
 'right-upload_by_url' => 'Postavljanje datoteke sa URL adrese',
 'right-purge' => 'Osvježavanje keša za stranice bez potvrde',
-'right-autoconfirmed' => 'Uređivanje poluzaštićenih stranica',
+'right-autoconfirmed' => 'Izbjegavanje ograničenja stopa temeljenih na IP-u',
 'right-bot' => 'Postavljen kao automatski proces',
 'right-nominornewtalk' => "Male izmjene na stranici za razgovor ne uzrokuju prikazivanje oznake ''nova poruka'' na stranici za razgovor",
 'right-apihighlimits' => 'Korištenje viših ograničenja u API upitima',
@@ -1492,12 +1548,20 @@ Ako izaberete da date ime, biće korišteno za pripisivanje Vašeg rada.',
 'right-ipblock-exempt' => 'Zaobilaženje IP blokada, autoblokada i blokada IP grupe',
 'right-proxyunbannable' => 'Zaobilaženje automatskih blokada proxy-ja',
 'right-unblockself' => 'Deblokiranje samog sebe',
-'right-protect' => 'Promjena nivoa zaštite i uređivanje zaštićenih stranica',
-'right-editprotected' => 'Uređivanje zaštićenih stranica (bez povezanih zaštita)',
+'right-protect' => 'Promjena nivoa zaštite i uređivanje kaskadno zaštićenih stranica',
+'right-editprotected' => 'Uređivanje stranice zaštićenih kao "{{int:protect-level-sysop}}"',
+'right-editsemiprotected' => 'Uređivanje stranica zaštićenih kao  "{{int:protect-level-autoconfirmed}}"',
 'right-editinterface' => 'Uređivanje korisničkog interfejsa',
 'right-editusercssjs' => 'Uređivanje CSS i JS datoteka drugih korisnika',
 'right-editusercss' => 'Uređivanje CSS datoteka drugih korisnika',
 'right-edituserjs' => 'Uređivanje Javascript datoteka drugih korisnika',
+'right-editmyusercss' => 'Uredite svoje vlastite CSS datoteke',
+'right-editmyuserjs' => 'Uredite vlastite korisničke JavaScript datoteke',
+'right-viewmywatchlist' => 'Pregled vlastitog popisa praćenih stranica',
+'right-editmywatchlist' => 'Uredite vlastiti spisak praćenja. Obratite pažnju da će neke akcije dodati stranice čak bez ovog prava.',
+'right-viewmyprivateinfo' => 'Vidite svoje privatne podatke (npr. adresu e-pošte, stvarno ime)',
+'right-editmyprivateinfo' => 'Uredite svoje privatne podatke (npr. adresa e-pošte, stvarno ime)',
+'right-editmyoptions' => 'Uredite svoje postavke',
 'right-rollback' => 'Brzo vraćanje izmjena na zadnjeg korisnika koji je uređivao određenu stranicu',
 'right-markbotedits' => 'Označavanje vraćenih izmjena kao izmjene bota',
 'right-noratelimit' => 'Izbjegavanje ograničenja uzrokovanih brzinom',
@@ -1559,12 +1623,17 @@ Ako izaberete da date ime, biće korišteno za pripisivanje Vašeg rada.',
 'action-userrights-interwiki' => 'uređivanje korisničkih prava na drugim wikijima',
 'action-siteadmin' => 'zaključavanje i otključavanje baze podataka',
 'action-sendemail' => 'pošalji e-poštu',
+'action-editmywatchlist' => 'uredite svoj spisak praćenja',
+'action-viewmywatchlist' => 'pogledajte svoj spisak praćenja',
+'action-viewmyprivateinfo' => 'pogledajte svoje privatne informacije',
+'action-editmyprivateinfo' => 'uredite svoje privatne informacije',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|izmjena|izmjene|izmjena}}',
 'recentchanges' => 'Nedavne izmjene',
 'recentchanges-legend' => 'Postavke za Nedavne promjene',
 'recentchanges-summary' => 'Na ovoj stranici možete pratiti nedavne izmjene.',
+'recentchanges-noresult' => 'Bez promjena tokom cijelog perioda koji ispunjava ove kriterije.',
 'recentchanges-feed-description' => 'Praćenje nedavnih izmjena na ovom wikiju u ovom feedu.',
 'recentchanges-label-newpage' => 'Ovom izmjenom je stvorena nova stranica',
 'recentchanges-label-minor' => 'Ovo je manja izmjena',
@@ -1601,7 +1670,6 @@ Ako izaberete da date ime, biće korišteno za pripisivanje Vašeg rada.',
 'recentchangeslinked-feed' => 'Srodne izmjene',
 'recentchangeslinked-toolbox' => 'Srodne izmjene',
 'recentchangeslinked-title' => 'Srodne promjene sa "$1"',
-'recentchangeslinked-noresult' => 'Nema izmjena na povezanim stranicama u zadanom periodu.',
 'recentchangeslinked-summary' => "Ova posebna stranica prikazuje promjene na povezanim stranicama.
 Stranice koje su na vašem [[Special:Watchlist|spisku praćenja]] su '''podebljane'''.",
 'recentchangeslinked-page' => 'Naslov stranice:',
@@ -1613,7 +1681,7 @@ Stranice koje su na vašem [[Special:Watchlist|spisku praćenja]] su '''podeblja
 'reuploaddesc' => 'Vratite se na upitnik za slanje',
 'upload-tryagain' => 'Pošaljite izmijenjeni opis datoteke',
 'uploadnologin' => 'Niste prijavljeni',
-'uploadnologintext' => 'Morate biti [[Special:UserLogin|prijavljeni]] da bi ste slali datoteke.',
+'uploadnologintext' => 'Morate biti $1 da bi ste slali datoteke.',
 'upload_directory_missing' => 'Folder za postavljanje ($1) nedostaje i webserver ga ne može napraviti.',
 'upload_directory_read_only' => 'Folder za postavljanje ($1) na webserveru je postavljen samo za čitanje.',
 'uploaderror' => 'Greška pri slanju',
@@ -1991,6 +2059,12 @@ Prije brisanja provjerite da li druge stranice vode na te šablone.',
 One se možda moraju povezati sa konkretnim člankom.<br />
 Stranica se smatra stranicom za razvrstavanje, ukoliko koristi šablon koji je povezan sa spiskom [[MediaWiki:Disambiguationspage|stranica za razvrstavanje]]",
 
+'pageswithprop' => 'Stranice sa svojstvom stranice',
+'pageswithprop-legend' => 'Stranice sa svojstvom stranice',
+'pageswithprop-text' => 'Ova stranica navodi stranice sa specifičnim svojstvom stranice.',
+'pageswithprop-prop' => 'Naziv svojstva:',
+'pageswithprop-submit' => 'Idi',
+
 'doubleredirects' => 'Dvostruka preusmjerenja',
 'doubleredirectstext' => 'Ova stranica prikazuje stranice koje preusmjeravaju na druga preusmjerenja.
 Svaki red sadrži veze na prvo i drugo preusmjerenje, kao i na prvu liniju teksta drugog preusmjerenja, što obično daje "pravi" ciljni članak, na koji bi prvo preusmjerenje i trebalo da pokazuje.
@@ -2239,10 +2313,9 @@ Buduće promjene ove stranice i njoj pridružene stranice za razgovor će biti n
 'unwatchthispage' => 'Ukinite praćenje',
 'notanarticle' => 'Nije članak',
 'notvisiblerev' => 'Posljednja izmjena drugog korisnika je bila izbrisana',
-'watchnochange' => 'Ništa što pratite nije promjenjeno u prikazanom vremenu.',
 'watchlist-details' => '{{PLURAL:$1|$1 stranica praćena|$1 stranice praćene|$1 stranica praćeno}} ne računajući stranice za razgovor.',
-'wlheader-enotif' => 'Obavještavanje e-poštom je omogućeno.',
-'wlheader-showupdated' => "Stranice koje su izmijenjene od kad ste ih posljednji put posjetili su prikazane '''podebljanim slovima'''",
+'wlheader-enotif' => 'Obavještavanje e-poštom je omogućeno.',
+'wlheader-showupdated' => "Stranice koje su izmijenjene od kad ste ih posljednji put posjetili su prikazane '''podebljanim slovima'''",
 'watchmethod-recent' => 'provjerava se da li ima praćenih stranica u nedavnim izmjenama',
 'watchmethod-list' => 'provjerava se da li ima nedavnih izmjena u praćenim stranicama',
 'watchlistcontains' => 'Vaš spisak praćenih članaka sadrži $1 {{PLURAL:$1|stranicu|stranica}}.',
@@ -2350,7 +2423,7 @@ posljednji kontributor je jedini na ovoj stranici.',
 Posljednja izmjena je bila od korisnika [[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 [[Special:Contributions/$2|$2]] ([[User talk:$2|razgovor]]) na posljednju izmjenu korisnika [[User:$1|$1]]',
-'revertpage-nouser' => 'Vraćene izmjene korisnika (korisničko ime uklonjeno) na posljednju reviziju koju je načinio [[User:$1|$1]]',
+'revertpage-nouser' => 'Vraćene izmjene skrivenog korisnika na posljednju reviziju koju je načinio [[User:$1|$1]]',
 'rollback-success' => 'Poništene izmjene korisnika $1;
 vraćeno na posljednju verziju koju je snimio $2.',
 
@@ -2496,7 +2569,7 @@ $1',
 'mycontris' => 'Doprinosi',
 'contribsub2' => 'Za $1 ($2)',
 'nocontribs' => 'Nisu nađene promjene koje zadovoljavaju ove uslove.',
-'uctop' => '(vrh)',
+'uctop' => '(trenutno)',
 'month' => 'Od mjeseca (i ranije):',
 'year' => 'Od godine (i ranije):',
 
@@ -2664,6 +2737,7 @@ Molimo vas da kontaktirate vašeg davatelja internetskih usluga (Internet Servic
 'sorbsreason' => 'Vaša IP adresa je prikazana kao otvoreni proxy u DNSBL koji koristi {{SITENAME}}.',
 'sorbs_create_account_reason' => 'Vaša IP adresa je prikazana kao otvoreni proxy u DNSBL korišten od {{SITENAME}}.
 Ne možete napraviti račun',
+'xffblockreason' => 'IP adresa koja postoji u zagljavlju X-Forwarded-For, ili Vaša ili od proxy servera koji koristite, je blokirana. Originalni razlog za blokiranje je bio: $1',
 'cant-block-while-blocked' => 'Ne možete blokirati druge korisnike dok ste blokirani.',
 'cant-see-hidden-user' => 'Korisnik kojeg pokušavate blokirati je već blokiran i sakriven. 
 Pošto nemate prava hideuser (sakrivanje korisnika), ne možete vidjeti ni urediti korisnikovu blokadu.',
@@ -2828,6 +2902,8 @@ Molimo posjetite [//www.mediawiki.org/wiki/Localisation MediaWiki lokalizaciju]
 'thumbnail-more' => 'Uvećaj',
 'filemissing' => 'Nedostaje datoteka',
 'thumbnail_error' => 'Greška pri pravljenju umanjene slike: $1',
+'thumbnail_error_remote' => 'Poruka o pogrešci o $1:
+$2',
 'djvu_page_error' => 'DjVu stranica je van opsega',
 'djvu_no_xml' => 'Za XML-datoteku se ne može pozvati DjVu datoteka',
 'thumbnail-temp-create' => 'Ne mogu da napravim privremenu smanjenu sliku',
@@ -3127,11 +3203,25 @@ Njegovim izvršavanjem možete da ugrozite Vaš sistem.",
 'minutes' => '{{PLURAL:$1|$1 minut|$1 minuta|$1 minuta}}',
 'hours' => '{{PLURAL:$1|$1 sat|$1 sata|$1 sati}}',
 'days' => '{{PLURAL:$1|$1 dan|$1 dana|$1 dana}}',
+'weeks' => '{{PLURAL:$1|$1 sedmica}}',
 'months' => '{{PLURAL:$1|$1 mjesec|$1 mjeseci}}',
 'years' => '{{PLURAL:$1|$1 godina|$1 godine|$1 godina}}',
 'ago' => 'prije $1',
 'just-now' => 'upravo sada',
 
+# Human-readable timestamps
+'hours-ago' => '$1 {{PLURAL:$1|sat|sati}}',
+'minutes-ago' => '$1 {{PLURAL:$1|minut|minuta}}',
+'seconds-ago' => '$1 {{PLURAL:$1|sekunda|sekunde}}',
+'monday-at' => 'ponedjeljak u $1',
+'tuesday-at' => 'utorak u $1',
+'wednesday-at' => 'srijeda u $1',
+'thursday-at' => 'četvrtak u $1',
+'friday-at' => 'petak u $1',
+'saturday-at' => 'subota u $1',
+'sunday-at' => 'nedjelja u $1',
+'yesterday-at' => 'jučer u $1',
+
 # Bad image list
 'bad_image_list' => "Koristi se sljedeći format:
 
@@ -3734,7 +3824,6 @@ Također možete [[Special:EditWatchlist|koristiti standardni uređivač]].',
 'version-other' => 'Ostalo',
 'version-mediahandlers' => 'Upravljači medije',
 'version-hooks' => 'Kuke',
-'version-extension-functions' => 'Funkcije proširenja (ekstenzije)',
 'version-parser-extensiontags' => "Parser proširenja (''tagovi'')",
 'version-parser-function-hooks' => 'Kuke parserske funkcije',
 'version-hook-name' => 'Naziv kuke',
@@ -3756,6 +3845,18 @@ Trebali biste dobiti [{{SERVER}}{{SCRIPTPATH}}/KOPIJU GNU opće javne licence] z
 'version-entrypoints-header-entrypoint' => 'Ulazna tačka',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
+'redirect' => 'Preusmjeravanje preko datoteke, korisnika ili ID-a izmjene',
+'redirect-legend' => 'Preusmjeravanje na datoteku ili stranicu',
+'redirect-summary' => 'Ova posebna stranica preusmjerava na datoteku (ako je navedeno ime datoteke), stranicu (ako postoji ID revizije) ili korisničku stranicu (ako postoji brojčani ID korisnika).',
+'redirect-submit' => 'Idi',
+'redirect-lookup' => 'Pregled:',
+'redirect-value' => 'Vrijednost:',
+'redirect-user' => 'Korisnički ID',
+'redirect-revision' => 'Izmjena stranice',
+'redirect-file' => 'Naziv datoteke',
+'redirect-not-exists' => 'Vrijednost nije pronađena',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Potraga za duplim datotekama',
 'fileduplicatesearch-summary' => 'Pretraga duplih datoteka na bazi njihove haš vrijednosti.',
@@ -3804,6 +3905,7 @@ Trebali biste dobiti [{{SERVER}}{{SCRIPTPATH}}/KOPIJU GNU opće javne licence] z
 'tags' => 'Oznake valjane izmjene',
 'tag-filter' => 'Filter [[Special:Tags|oznaka]]:',
 'tag-filter-submit' => 'Filter',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|tag|tagova}}]]: $2)',
 'tags-title' => 'Oznake',
 'tags-intro' => 'Ova stranica prikazuje spisak oznaka (tagova) koje softver može staviti na svaku izmjenu i njihovo značenje.',
 'tags-tag' => 'Naziv oznake',
@@ -3845,23 +3947,26 @@ Trebali biste dobiti [{{SERVER}}{{SCRIPTPATH}}/KOPIJU GNU opće javne licence] z
 'htmlform-submit' => 'Unesi',
 'htmlform-reset' => 'Vrati izmjene',
 'htmlform-selectorother-other' => 'Ostalo',
+'htmlform-no' => 'Ne',
+'htmlform-yes' => 'Da',
+'htmlform-chosen-placeholder' => 'Odaberi opciju',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 sa podrškom pretrage cijelog teksta',
 'sqlite-no-fts' => '$1 bez podrške pretrage cijelog teksta',
 
 # New logging system
-'logentry-delete-delete' => '$1 obrisa stranicu $3',
-'logentry-delete-restore' => '$1 povrati stranicu $3',
-'logentry-delete-event' => '$1 promijeni vidljivost {{PLURAL:$5|događaja u historiji|$5 događaja u historiji|$5 događaja u historiji}} na $3: $4',
-'logentry-delete-revision' => '$1 promijeni vidljivost {{PLURAL:$5|izmjene|$5 izmjene|$5 izmjena}} na stranici $3: $4',
-'logentry-delete-event-legacy' => '$1 promijeni vidljivost događajâ u historiji na $3',
-'logentry-delete-revision-legacy' => '$1 promijeni vidljivost izmjenâ na stranici $3',
-'logentry-suppress-delete' => '$1 potisnu stranicu $3',
-'logentry-suppress-event' => '$1 potajno promijeni vidljivost {{PLURAL:$5|događaja u historiji|$5 događaja u historiji|$5 događaja u historiji}} na $3: $4',
-'logentry-suppress-revision' => '$1 potajno promijeni vidljivost {{PLURAL:$5|izmjene|$5 izmjene|$5 izmjena}} na stranici $3: $4',
-'logentry-suppress-event-legacy' => '$1 potajno promijeni vidljivost događajâ u registru na $3',
-'logentry-suppress-revision-legacy' => '$1 potajno promijeni vidljivost izmjenâ na stranici $3',
+'logentry-delete-delete' => '$1 je {{GENDER:$2|obrisao|obrisala}} stranicu $3',
+'logentry-delete-restore' => '$1 je {{GENDER:$2|vratio|vratila}} stranicu $3',
+'logentry-delete-event' => '$1 je {{GENDER:$2|promijenio|promijenila}} vidljivost {{PLURAL:$5|događaja|$5 događaja}} u evidenciji na $3: $4',
+'logentry-delete-revision' => '$1 je {{GENDER:$2|promijenio|promijenila}} vidljivost {{PLURAL:$5|izmjene|$5 izmjene|$5 izmjena}} na stranici $3: $4',
+'logentry-delete-event-legacy' => '$1 je {{GENDER:$2|promijenio|promijenila}} vidljivost događaja u evidenciji na $3',
+'logentry-delete-revision-legacy' => '$1 je {{GENDER:$2|promijenio|promijenila}} vidljivost izmjena na stranici $3',
+'logentry-suppress-delete' => '$1 je {{GENDER:$2|potisnuo|potisnula}} stranicu $3',
+'logentry-suppress-event' => '$1 je tajno {{GENDER:$2|promijenio|promijenila}} vidljivost {{PLURAL:$5|događaja|$5 događaja}} u evidenciji na $3: $4',
+'logentry-suppress-revision' => '$1 je tajno {{GENDER:$2|promijenio|promijenila}} vidljivost {{PLURAL:$5|izmjene|$5 izmjene|$5 izmjena}} na stranici $3: $4',
+'logentry-suppress-event-legacy' => '$1 je tajno {{GENDER:$2|promijenio|promijenila}} vidljivost događaja u evidenciji na $3',
+'logentry-suppress-revision-legacy' => '$1 je tajno {{GENDER:$2|promijenio|promijenila}} vidljivost izmjena na stranici $3',
 'revdelete-content-hid' => 'sadržaj je sakriven',
 'revdelete-summary-hid' => 'sažetak izmjene je sakriven',
 'revdelete-uname-hid' => 'korisničko ime sakriveno',
@@ -3870,20 +3975,20 @@ Trebali biste dobiti [{{SERVER}}{{SCRIPTPATH}}/KOPIJU GNU opće javne licence] z
 'revdelete-uname-unhid' => 'korisničko ime je otkriveno',
 'revdelete-restricted' => 'primijenjena ograničenja za administratore',
 'revdelete-unrestricted' => 'uklonjena ograničenja za administratore',
-'logentry-move-move' => '$1 premjesti stranicu $3 na $4',
-'logentry-move-move-noredirect' => '$1 premjesti stranicu $3 na $4 bez ostavljanja preusmjerenja',
-'logentry-move-move_redir' => '$1 je premjestio stranicu $3 na $4 preko preusmjerenja',
-'logentry-move-move_redir-noredirect' => '$1 premjesti stranicu $3 na $4 preko preusmjerenja bez ostavljanja preusmjerenja',
-'logentry-patrol-patrol' => '$1 označi izmjenu $4 pregledane stranice $3',
-'logentry-patrol-patrol-auto' => '$1 samostalno označi izmjenu $4 pregledane stranice $3',
-'logentry-newusers-newusers' => 'Korisnički račun $1 je napravljen',
-'logentry-newusers-create' => 'Korisnički račun $1 je napravljen',
-'logentry-newusers-create2' => 'Korisnički račun $3 {{GENDER:|je napravio|je napravila|je napravio}} $1',
-'logentry-newusers-byemail' => 'Korisnički račun $3 je napravio $1 i lozinka/šifra je poslana putem e-maila',
-'logentry-newusers-autocreate' => 'Račun $1 je samostalno otvoren',
-'logentry-rights-rights' => '$1 {{GENDER:$1|je promijenio|je promijenila|je promijenio}} članstvo grupe za $3 iz $4 u $5',
-'logentry-rights-rights-legacy' => '$1 {{GENDER:$1|je promenio|je promenila|je promenio}} članstvo grupe za $3',
-'logentry-rights-autopromote' => '$1 je automatski {{GENDER:$1|unaprijeđen|unaprijeđena|unaprijeđen}} iz $4 u $5',
+'logentry-move-move' => '$1 je {{GENDER:$2|premjestio|premjestila}} stranicu $3 na $4',
+'logentry-move-move-noredirect' => '$1 je {{GENDER:$2|premjestio|premjestila}} stranicu $3 na $4 bez ostavljanja preusmjerenja',
+'logentry-move-move_redir' => '$1 je {{GENDER:$2|premjestio|premjestila}} stranicu $3 na $4 preko preusmjeravanja',
+'logentry-move-move_redir-noredirect' => '$1 je {{GENDER:$2|premjestio|premjestila}} stranicu $3 na $4 preko preusmjeravanja bez ostavljanja preusmjeravanja',
+'logentry-patrol-patrol' => '$1 je {{GENDER:$2|označio|označila}} izmjenu $4 stranice $3 patroliranim',
+'logentry-patrol-patrol-auto' => '$1 je automatski {{GENDER:$2|označio|označila}} izmjenu $4 stranice $3 patroliranim',
+'logentry-newusers-newusers' => 'Korisnički račun $1 je {{GENDER:$2|napravljen}}',
+'logentry-newusers-create' => 'Korisnički račun $1 je {{GENDER:$2|napravljen}}',
+'logentry-newusers-create2' => 'Korisnički račun $3 {{GENDER:$2|je napravio|je napravila|je napravio}} $1',
+'logentry-newusers-byemail' => 'Korisnički račun $3 je {{GENDER:$2|napravio|napravila}} $1 i lozinka/šifra je poslana putem e-maila',
+'logentry-newusers-autocreate' => 'Korisnički račun $1 je automatski {{GENDER:$2|napravljen}}',
+'logentry-rights-rights' => '$1 je {{GENDER:$2|promijenio|promijenila|promijenio}} članstvo grupe za $3 iz $4 u $5',
+'logentry-rights-rights-legacy' => '$1 {{GENDER:$2|je promijenio|je promijenila|je promijenio}} članstvo grupe za $3',
+'logentry-rights-autopromote' => '$1 {{GENDER:$2|je automatski unaprijeđen|je automatski unaprijeđena}} iz $4 u $5',
 'rightsnone' => '(nema)',
 
 # Feedback
@@ -3959,4 +4064,7 @@ U suprotnom, poslužite se jednostavnim obrascem ispod. Vaš komentar će stajat
 'duration-centuries' => '$1 {{PLURAL:$1|vijek|vijekova}}',
 'duration-millennia' => '$1 {{PLURAL:$1|milenijum|milenijuma}}',
 
+# Image rotation
+'rotate-comment' => 'Slika rotirana za $1 {{PLURAL:$1|stepeni}} u smjeru kazaljke na satu',
+
 );
index 11f2e18..565d3a3 100644 (file)
@@ -247,7 +247,6 @@ $1',
 'disclaimers' => 'Ur darssuq',
 'disclaimerpage' => 'Project: Ur illa maddar illa ssuq',
 'edithelp' => 'Aws ɣ tirra',
-'edithelppage' => 'Help:Imaratn',
 'helppage' => 'Help:Mayllan',
 'mainpage' => 'Tasana tamzwarut',
 'mainpage-description' => 'Tasna tamzwarut',
@@ -274,7 +273,6 @@ $1',
 'newmessagesdifflink' => 'Imbddeln imĝura',
 'youhavenewmessagesmulti' => 'Dark tibratin timaynutin ɣ $1',
 'editsection' => 'Ẓreg (bddel)',
-'editsection-brackets' => '[$1]',
 'editold' => 'Ẓreg (bddel)',
 'viewsourceold' => 'Mel aɣbalu',
 'editlink' => 'Ẓreg (bddel)',
@@ -612,7 +610,6 @@ Tigira n ujbbad ns, ar takka yat tayafut bahra imqqurn,  ɣayan afan ur ttili.',
 'searchmenu-legend' => 'Istayn ucnubc',
 'searchmenu-exists' => '"\'Tlla yat tasna lli ilan assaɣ « [[:$1]] » ɣ wiki yad',
 'searchmenu-new' => "'''Skr Tasna « [[:$1|$1]] » ɣ wiki !'''",
-'searchhelp-url' => 'Help:Mayllan',
 'searchprofile-articles' => 'Mayllan ɣ tasna',
 'searchprofile-project' => 'Tisniwin n w-aws n usnfar',
 'searchprofile-images' => 'Multimedia',
@@ -679,7 +676,6 @@ Izdar ad urtili ɣ isbidn n mayllan ɣ {{SITENAME}} .',
 'resetprefs' => 'hiyd tghyirat li orsjilnin',
 'restoreprefs' => 'sglbd kollo regalega',
 'prefs-editing' => 'tahrir',
-'prefs-edit-boxsize' => 'hajm nafida n thrir',
 'rows' => 'sfof:',
 'columns' => 'aamida:',
 'searchresultshead' => 'Cabba',
@@ -783,7 +779,6 @@ Izdar ad urtili ɣ isbidn n mayllan ɣ {{SITENAME}} .',
 'recentchangeslinked-feed' => 'Imbddeln zund ɣwid',
 'recentchangeslinked-toolbox' => 'Imbddeln zund ɣwid',
 'recentchangeslinked-title' => 'Imbddeln li izdin "$1"',
-'recentchangeslinked-noresult' => 'Ur illi may budeln ɣ tisniwin li dar izdayn s ɣid',
 'recentchangeslinked-summary' => 'Ɣid umuɣ iymbddeln li ittyskarnin tigira yad ɣ tisniwin li ittuyzdayn d kra n tasna (ulla i igmamn n kra taggayt ittuyzlayn). Tisniwin  ɣ [[Special:Watchlist|Umuɣ n tisniwin li ttsaggat]].',
 'recentchangeslinked-page' => 'Assaɣ n tasna',
 'recentchangeslinked-to' => 'Afficher les changements vers les pages liées au lieu de la page donnée
@@ -1276,7 +1271,6 @@ Wiyyaḍ raggis ḥbun s ɣiklli sttin kkan gantn.
 'version-other' => 'wayya',
 'version-mediahandlers' => 'motahakkimat lmedia',
 'version-hooks' => 'lkhtatif',
-'version-extension-functions' => 'lkhdaym n limtidad',
 'version-parser-extensiontags' => 'imarkiwn n limtidad n lmohalil',
 'version-parser-function-hooks' => 'lkhtatif ndala',
 'version-poweredby-others' => 'wiyyad',
index b6c719f..f854e83 100644 (file)
@@ -194,7 +194,7 @@ $magicWords = array(
 $messages = array(
 # User preference toggles
 'tog-underline' => 'සබැඳි යටීර කිරීම:',
-'tog-justify' => 'ඡà·\9aදයනà·\8a à¶´à·\9aà·\85 ගස්වන්න',
+'tog-justify' => 'ඡà·\9aදයනà·\8a à¶´à·\99à·\85ගස්වන්න',
 'tog-hideminor' => 'මෑත වෙනස් කිරීම්වල සුළු සංස්කරණ සඟවන්න',
 'tog-hidepatrolled' => 'මෑත වෙනස් කිරීම්වල මුර සංචාරය කරන ලද සංස්කරණ සඟවන්න',
 'tog-newpageshidepatrolled' => 'විමසුමට ලක්කෙරුණු පිටු, අළුත් පිටු ලැයිස්තුවෙහි නොපෙන්වන්න',
@@ -300,6 +300,18 @@ $messages = array(
 'oct' => 'ඔක්',
 'nov' => 'නොවැ',
 'dec' => 'දෙසැ',
+'january-date' => 'ජනවාරි $1',
+'february-date' => 'පෙබරවාරි $1',
+'march-date' => 'මාර්තු $1',
+'april-date' => 'අප්‍රේල් $1',
+'may-date' => 'මැයි $1',
+'june-date' => 'ජූනි $1',
+'july-date' => 'ජූලි $1',
+'august-date' => 'අගෝස්තු $1',
+'september-date' => 'සැප්තැම්බර් $1',
+'october-date' => 'ඔක්තොම්බර් $1',
+'november-date' => 'නොවැම්බර් $1',
+'december-date' => 'දෙසැම්බර් $1',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|ප්‍රවර්ගය|ප්‍රවර්ග}}',
@@ -327,6 +339,7 @@ $messages = array(
 'newwindow' => '(නව කවුළුවක විවෘතවේ)',
 'cancel' => 'අත් හරින්න',
 'moredotdotdot' => 'තවත්...',
+'morenotlisted' => 'තවත් දේ ලැයිස්තුගත කොට නොමැත...',
 'mypage' => 'පිටුව',
 'mytalk' => 'සාකච්ඡාව',
 'anontalk' => 'මෙම අයිපී ලිපිනය සඳහා සාකච්ඡාව',
@@ -372,7 +385,7 @@ $messages = array(
 'history' => 'පිටුවේ ඉතිහාසය',
 'history_short' => 'ඉතිහාසය',
 'updatedmarker' => 'මාගේ අවසාන පිවිසුමෙන් පසුව යාවත්කාලීන කරඇත',
-'printableversion' => 'මà·\94දà·\8aâ\80\8dරණය à¶\9aල à·\84à·\90à¶\9aà·\92 à·\83à¶\82à·\83à·\8aà¶\9aරණය',
+'printableversion' => 'මà·\94දà·\8aâ\80\8dරà·\92ත à¶\85නà·\94à·\80à·\8fදය',
 'permalink' => 'ස්ථාවර සබැඳුම',
 'print' => 'මුද්‍රණය කරන්න',
 'view' => 'දසුන',
@@ -382,6 +395,7 @@ $messages = array(
 'create-this-page' => 'මෙම පිටුව තනන්න',
 'delete' => 'මකන්න',
 'deletethispage' => 'මෙම පිටුව මකන්න',
+'undeletethispage' => 'මෙම පිටුව මැකුම අවලංගු කරන්න',
 'undelete_short' => '{{PLURAL:$1|එක් සංස්කරණයක|සංස්කරණ $1 ක}} මකා දැමීම ප්‍රතිලෝම කරන්න',
 'viewdeleted_short' => 'මකා දමනු ලැබූ {{PLURAL:$1|එක් සංස්කරණයක්|සංස්කරණ $1  ක්}} බලන්න',
 'protect' => 'ආරක්‍ෂණය',
@@ -391,13 +405,13 @@ $messages = array(
 'unprotectthispage' => 'මෙම පිටුවෙහි ආරක්ෂණ තත්වය වෙනස් කරන්න',
 'newpage' => 'නව පිටුව',
 'talkpage' => 'මෙම පිටුව පිළිබඳ සංවාදයකට එළඹෙන්න',
-'talkpagelinktext' => 'à·\83à·\8fà¶\9aචà·\8aඡà·\8fà·\80',
+'talkpagelinktext' => 'à\9aතà·\8fබà·\84',
 'specialpage' => 'විශේෂ පිටුව',
 'personaltools' => 'පුද්ගලික මෙවලම්',
 'postcomment' => 'නව ඡේදයක්',
 'articlepage' => 'අන්තර්ගත පිටුව නරඹන්න',
 'talk' => 'සාකච්ඡාව',
-'views' => 'දà·\83à·\94න්',
+'views' => 'à¶\85දà·\84à·\83à·\8a à¶\8bදà·\84à·\83්',
 'toolbox' => 'මෙවලම් ගොන්න',
 'userpage' => 'පරිශීලක පිටුව නරඹන්න',
 'projectpage' => 'ව්‍යාපෘති පිටුව නරඹන්න',
@@ -435,14 +449,13 @@ $1",
 'disclaimers' => 'වියාචනයන්',
 'disclaimerpage' => 'Project:පොදු වියාචන',
 'edithelp' => 'සංස්කරණ උදවු',
-'edithelppage' => 'Help:සංස්කරණ',
 'helppage' => 'Help:පටුන',
 'mainpage' => 'මුල් පිටුව',
 'mainpage-description' => 'මුල් පිටුව',
 'policy-url' => 'Project:ප්‍රතිපත්තිය',
 'portal' => 'ප්‍රජා ද්වාරය',
 'portal-url' => 'Project:ප්‍රජා ද්වාරය',
-'privacy' => 'පà·\94ද්ගලිකත්ව ප්‍රතිපත්තිය',
+'privacy' => 'පà·\9eද්ගලිකත්ව ප්‍රතිපත්තිය',
 'privacypage' => 'Project:පුද්ගලිකත්ව ප්‍රතිපත්තිය',
 
 'badaccess' => 'අවසරදීමේ දෝෂයකි',
@@ -464,12 +477,11 @@ $1",
 'newmessagesdifflinkplural' => 'අවසන් {{PLURAL:$1|වෙනස්වීම|වෙනස්වීම්}}',
 'youhavenewmessagesmulti' => 'ඔබ හට $1 හි නව පණිවුඩ ඇත',
 'editsection' => 'සංස්කරණය',
-'editsection-brackets' => '[$1]',
 'editold' => 'සංස්කරණය',
 'viewsourceold' => 'මූලාශ්‍රය නරඹන්න',
 'editlink' => 'සංස්කරණය',
 'viewsourcelink' => 'මූලාශ්‍රය නරඹන්න',
-'editsectionhint' => 'ඡේදය සංස්කරණය කරන්න: $1',
+'editsectionhint' => 'ඡේදය සංස්කරණය: $1',
 'toc' => 'පටුන',
 'showtoc' => 'පෙන්වන්න',
 'hidetoc' => 'සඟවන්න',
@@ -588,6 +600,10 @@ $2',
 'namespaceprotected' => "'''$1''' නාමඅවකාශයෙහි පිටු සංස්කරණය කිරීමට ඔබහට අවසර නොමැත.",
 'customcssprotected' => 'මෙම CSS පිටුව සංස්කරණය කිරීමට ඔබට අවසර නොමැත්තේ එහි අනෙකුත් පරිශීලකයෙකුගේ පුද්ගලික පරිස්ථිතීන් අඩංගු බැවිනි.',
 'customjsprotected' => 'මෙම ජාවාස්ක්‍රිට් පිටුව සංස්කරණය කිරීමට ඔබට අවසර නොමැත්තේ එහි අනෙකුත් පරිශීලකයෙකුගේ පුද්ගලික පරිස්ථිතීන් අඩංගු බැවිනි.',
+'mycustomcssprotected' => 'මෙම CSS පිටුව සංස්කරණය කිරීමට ඔබට අවසර නොමැත.',
+'mycustomjsprotected' => 'මෙම ජාවාස්ක්‍රිප්ට් පිටුව සංස්කරණය කිරීමට ඔබට අවසර නොමැත.',
+'myprivateinfoprotected' => 'ඔබගේ පෞද්ගලික තොරතුරු සංස්කරණය කිරීමට ඔබට අවසර නොමැත.',
+'mypreferencesprotected' => 'ඔබගේ අභිරුචීන් සංස්කරණය කිරීමට ඔබට අවසර නොමැත.',
 'ns-specialprotected' => 'විශේෂ පිටු සංස්කරණය කිරීම සිදු කල නොහැක.',
 'titleprotected' => "මෙම ශීර්ෂ-නාමය තැනීම  [[User:$1|$1]] විසින් වාරණය කොට ඇත.
 මේ සඳහා  ''$2''  හේතුව දක්වා ඇත.",
@@ -618,7 +634,7 @@ $2',
 'createacct-yourpasswordagain-ph' => 'මුර පදය යළි ඇතුළු කරන්න',
 'remembermypassword' => 'මාගේ පිවිසීම මෙම ගවේෂක මතකයෙහි (උපරිම ලෙස {{PLURAL:$1|දින|දින}}) $1 ක් මතක තබාගන්න',
 'userlogin-remembermypassword' => 'මා ප්‍රවිෂ්ටයෙහි තබන්න',
-'userlogin-signwithsecure' => 'à·\83à·\94රà¶\9aà·\8aà·\82à·\92ත à·\83මà·\8aබනà·\8aධතà·\8fà·\80ය භාවිතා කරන්න',
+'userlogin-signwithsecure' => 'à\86රà¶\9aà·\8aâ\80\8dà·\82à·\92ත à·\83බඳතà·\8fà·\80 භාවිතා කරන්න',
 'securelogin-stick-https' => 'ඇතුල්වීමෙන් පසුවද HTTPS හරහා සම්බන්ධ වන්න',
 'yourdomainname' => 'ඔබගේ වසම:',
 'password-change-forbidden' => 'ඔබට මෙම විකියෙහි මුරපද වෙනස් කල නොහැක.',
@@ -651,10 +667,14 @@ $2',
 'createacct-reason' => 'හේතුව',
 'createacct-reason-ph' => 'ඔබ තවත් ගිණුමක් තනන්නේ කුමක් නිසාද',
 'createacct-captcha' => 'ආරක්ෂක පරික්ෂාව',
+'createacct-benefit-body1' => '{{PLURAL:$1|සංස්කරණය|සංස්කරණ}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|පිටුව|පිටු}}',
+'createacct-benefit-body3' => 'මෑත{{PLURAL:$1|දායකයා|දායකයෝ}}',
 'badretype' => 'ඔබ ඇතුළු කල මුරපදය නොගැලපේ.',
 'userexists' => 'ඔබ ඇතුළු කල පරිශීලක නාමය දැනටමත් භාවිතයෙහි ඇත.
 කරුණාකර වෙනත් නමක් තෝරා ගන්න.',
 'loginerror' => 'පිවිසීමේ දෝෂයකි',
+'createacct-error' => 'ගිණුම් තැනීමේ දෝෂය',
 'createaccounterror' => 'ගිණුම නිර්මාණය කළ නොහැකි විය:$1',
 'nocookiesnew' => 'පරිශීලක ගිණුම තනා ඇති නමුදු, ඔබ ප්‍රවිසී නැත.
 පරිශීලකයන් ප්‍රවිෂ්ට කර ගැනීම සඳහා, {{SITENAME}} විසින් කුකී භාවිතා කරයි.
@@ -694,8 +714,8 @@ $2',
 'blocked-mailpassword' => 'ඔබගේ අන්තර්ජාල ලිපිනය භාවිතා කරමින් සංස්කරණයෙහි යෙදීම වාරණය කොට ඇති අතර, අපයෙදුම වළකනු වස්,  මුර-පදය පුනරුත්ථාන  කෘත්‍යය භාවිත කිරීමට අවසරයද අහිමි කොට ඇත.',
 'eauthentsent' => 'නම් කර ඇති විද්‍යුත්-ලිපි ලිපිනය වෙත, තහවුරු කිරීම් විද්‍යුත්-ලිපියක් යවා ඇත.
 ගිණුම වෙත වෙනත් විද්‍යුත්-ලිපියක්  යැවීමට පෙර, ගිණුම සත්‍ය වශයෙන්ම ඔබගේම බව තහවුරු කරනු වස්, විද්‍යුත්-ලිපියෙහි අඩංගු උපදෙස්  පිළිපදින්න.',
-'throttled-mailpassword' => 'à¶\85à·\80à·\83නà·\8a {{PLURAL:$1|පà·\90ය|පà·\90ය $1}} à¶\85තරතà·\94රදà·\93, à¶¸à·\94රපද à¶ºà·\85à·\92 à·\83à·\90à¶\9aà·\83à·\94මà·\8a à·\80à·\92දà·\8aâ\80\8dයà·\94තà·\8a à¶­à·\90පà·\91ලà¶\9aà·\8a à¶¯à·\90නටමතà·\8a à¶ºà·\80à·\8f ඇත.
-à¶\85පයà·\99දà·\94ම à·\80à·\85à¶\9aà·\8aà·\80නà·\94 à·\80à·\83à·\8a, {{PLURAL:$1|à¶\91à¶\9aà·\8a à¶´à·\90යà¶\9a|පà·\90ය $1 à¶\9a}}ට à·\80රà¶\9aà·\8a à¶\91à¶\9aà·\8a à¶¸à·\94රපද à¶ºà·\85à·\92 à·\83à·\90à¶\9aà·\83à·\94මà·\8a à·\80à·\92දà·\8aâ\80\8dයà·\94තà·\8a à¶­à·\90පà·\91ලක් පමණක් යවනු ලැබේ.',
+'throttled-mailpassword' => 'à¶\85à·\80à·\83නà·\8a {{PLURAL:$1|පà·\90ය|පà·\90ය $1}} à¶­à·\94ල, à¶¸à·\94රපද à¶ºà·\85à·\92 à·\83à·\90à¶\9aà·\83à·\94මà·\8a à¶\8a-ලà·\92පà·\92යà¶\9aà·\8a à¶ºà·\80à·\8fඇත.
+à¶\85පයà·\99දà·\94ම à·\80à·\85à¶\9aනà·\94 à·\80à·\83à·\8a, {{PLURAL:$1|à¶\91à¶\9aà·\8a à¶´à·\90යà¶\9a|පà·\90ය $1 à¶\9a}}ට à·\80රà¶\9aà·\8a à¶\91à¶\9aà·\8a à¶¸à·\94රපද à¶ºà·\85à·\92 à·\83à·\90à¶\9aà·\83à·\94මà·\8a à¶\8a-ලà·\92පà·\92යක් පමණක් යවනු ලැබේ.',
 'mailerror' => 'තැපෑල යැවීමේදී වූ දෝෂය: $1',
 'acct_creation_throttle_hit' => 'ඔබගේ අන්තර්ජාල ලිපිනය භාවිතා කල මෙම විකියට අමුත්තන් විසින් {{PLURAL:$1|එක් ගිණුමක්|ගිණුම් $1 ක්}} පසුගිය දිනය තුලදී තනා ඇති අතර, එය මෙම කාල පරිච්ඡේදය තුලදී ඉඩ දෙනු ලබන උපරිමය වෙයි.
 මේ හේතුවෙන්, මෙම අන්තර්ජාල ලිපිනය භාවිතා කරන අමුත්තන් විසින් මෙම අවස්ථාවෙහිදී තවත් ගිණුම් තැනීම සිදු කල නොහැකිව ඇත.',
@@ -709,7 +729,7 @@ $2',
 'cannotchangeemail' => 'මෙම විකියේ ගිණුම් විද්‍යුත් ලිපිනය වෙනස් කල නොහැකිය.',
 'emaildisabled' => 'මෙම අඩවියට විද්‍යුත්-තැපැල් යැවිය නොහැක.',
 'accountcreated' => 'ගිණුම තනන ලදි',
-'accountcreatedtext' => ' $1 සඳහා පරිශීලක ගිණුම තනන ලදි.',
+'accountcreatedtext' => '[[{{ns:පරිශීලක}}:$1|$1]] ([[{{ns:පරිශීලක සාකච්ඡාව}}:$1|සාකච්ඡාව]]) සඳහා පරිශීලක ගිණුම තනා ඇත.',
 'createaccount-title' => '{{SITENAME}} සඳහා ගිණුම තැනීම',
 'createaccount-text' => 'කිසියම් අයෙකු, "$2" නමින් හා, "$3" යන මුර-පදය යොදමින්,  ඔබගේ විද්‍යුත්-තැපැල් ලිපිනය සඳහා {{SITENAME}} ($4) හි ගිණුමක් තනා ඇත.
 ඔබ දැන් ගිණුම‍ට පිවිස, ඔබගේ මුර-පදය වෙනස් කල යුතුව ඇත.
@@ -747,10 +767,8 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'මුරපදය වෙනස් කරන්න',
-'passwordreset-text' => 'ඔබගේ මුරපදය යළි සැකසීම සදහා මෙම ආකෘතිපත්‍රය සම්පූර්ණ කරන්න.',
 'passwordreset-legend' => 'මුරපදය යළි පිහිටුවන්න',
 'passwordreset-disabled' => 'මෙම විකියෙහි මුර පද ප්‍රත්‍යාරම්භ කිරීම් අක්‍රීය කොට ඇත.',
-'passwordreset-pretext' => '{{PLURAL:$1||පහත දැක්වෙන දත්ත කණ්ඩ වලින් එකක් ඇතුල් කරන්න}}',
 'passwordreset-username' => 'පරිශීලක නාමය:',
 'passwordreset-domain' => 'වසම:',
 'passwordreset-capture' => 'ප්‍රතිපලදායක විද්‍යුත් තැපෑල නරඹනවාද?',
@@ -958,8 +976,8 @@ $2
 'templatesused' => 'මෙම පිටුවෙහි භාවිත {{PLURAL:$1|සැකිල්ල|සැකිලි}}:',
 'templatesusedpreview' => 'මෙම පෙර-දසුනෙහි භාවිත {{PLURAL:$1|සැකිල්ල|සැකිලි}}',
 'templatesusedsection' => ' මෙම කොටසෙහි භාවිතා කර ඇති  {{PLURAL:$1|සැකිල්ල|සැකිලි }}:',
-'template-protected' => '(ආරක්‍ෂිත)',
-'template-semiprotected' => '(අර්ධ-ආරක්‍ෂිත)',
+'template-protected' => '(ආරක්‍ෂිතයි)',
+'template-semiprotected' => '(අර්ධ-ආරක්‍ෂිතයි)',
 'hiddencategories' => 'මෙම පිටුව, {{PLURAL:$1| එක් සැඟවුණු ප්‍රවර්ගයක| සැඟවුණු ප්‍රවර්ගයන් $1 ක}} අවයවයක් වේ:',
 'edittools' => '<!-- මෙම පෙළ සංස්කරණ හා උඩුගත ආකෘතින්ට පහළින් පෙන්නුම් කෙරේ. -->',
 'nocreatetext' => 'නව පිටු තැනීමේ හැකියාව {{SITENAME}} විසින් සීමාකර ඇත.
@@ -983,6 +1001,7 @@ $2
 එය මකා දමා ඇති බවක් පෙනේ.',
 'edit-conflict' => 'සංස්කරණ ගැටුම.',
 'edit-no-change' => 'පෙළට කිසිදු වෙනසක් සිදු නොකල  බැවින් ඔබගේ සංස්කරණය නොසලකාහරින ලදි.',
+'postedit-confirmation' => 'ඔබගේ සංස්කරණය සුරකින ලදී.',
 'edit-already-exists' => 'නව පිටුවක් තැනිය නොහැකි විය.
 එය දැනටමත් පවතියි.',
 'defaultmessagetext' => 'සාමාන්‍ය පණිවුඩ පෙළ',
@@ -1044,8 +1063,8 @@ $3 විසින් සපයා ඇති හේතුව ''$2'' වේ",
 '''({{int:last}})'''  = පෙර අනුවාදය හා සමග වෙනස, '''{{int:minoreditletter}}''' = සුළු සංස්කරණය.",
 'history-fieldset-title' => 'ඉතිහාසය පිරික්සන්න',
 'history-show-deleted' => 'මැකූ ඒවා පමණී',
-'histfirst' => 'පà·\90රණà·\92තම',
-'histlast' => 'නà·\80තම',
+'histfirst' => 'පැරණිම',
+'histlast' => 'à¶\85ලà·\94තà·\8aම',
 'historysize' => '({{PLURAL:$1|බයිට්1 |බයිට් $1 ගණනක්}})',
 'historyempty' => '(හිස්)',
 
@@ -1192,7 +1211,7 @@ $1",
 # Diffs
 'history-title' => '$1:  සංශෝධන ඉතිහාසය',
 'difference-multipage' => 'පිටු අතර වෙනස',
-'lineno' => 'පේළිය $1:',
+'lineno' => '$1 පේළිය:',
 'compareselectedversions' => 'තෝරාගත් සංශෝධන සසඳන්න',
 'showhideselectedversions' => 'තෝරාගත් සංශෝධන පෙන්වන්න/සඟවන්න',
 'editundo' => 'අහෝසිය',
@@ -1201,7 +1220,7 @@ $1",
 
 # Search results
 'searchresults' => 'ගවේෂණ ප්‍රතිඵල',
-'searchresults-title' => '"$1" à·\83ඳà·\84à·\8f à\9cà·\80à·\9aà·\82ණ ප්‍රතිඵල',
+'searchresults-title' => '"$1" à·\83ඳà·\84à·\8f à·\83à·\99à·\80à·\94මà·\8a ප්‍රතිඵල',
 'searchresulttext' => '{{SITENAME}} ගවේෂණය පිළිබඳ වැඩි විස්තර සඳහා , [[{{MediaWiki:Helppage}}|{{int:help}}]] බලන්න.',
 'searchsubtitle' => 'ඔබගේ ගවේෂණය වූයේ  \'\'\'[[:$1]]\'\'\'  සඳහාය ([[Special:Prefixindex/$1| "$1" යෙන් ඇරඹෙන සියළු පිටු]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1| "$1" වෙත සබැ‍ඳෙන සියළු පිටු]])',
 'searchsubtitleinvalid' => "ඔබගේ ගවේෂණය වූයේ  '''$1''' සඳහාය",
@@ -1211,7 +1230,7 @@ $1",
 'textmatches' => 'පිටු පෙළ ගැළපෙයි',
 'notextmatches' => 'පිටු පෙළ කිසිවක් නොගැළපෙයි',
 'prevn' => 'පෙර {{PLURAL:$1|$1}}',
-'nextn' => 'මà·\93ලඟ {{PLURAL:$1|$1}}',
+'nextn' => 'à¶\8aà·\85ඟ {{PLURAL:$1|$1}}',
 'prevn-title' => 'පූර්ව {{PLURAL:$1|ප්‍රතිඵලය|ප්‍රතිඵලයන් $1}}',
 'nextn-title' => 'මීලඟ {{PLURAL:$1|ප්‍රතිඵලය|ප්‍රතිඵල $1}}',
 'shown-title' => 'එක් පිටුවක {{PLURAL:$1|ප්‍රතිඵලයක්|ප්‍රතිඵල $1 ක්}} බැගින් පෙන්වන්න',
@@ -1219,13 +1238,12 @@ $1",
 'searchmenu-legend' => 'ගවේෂණ තෝරාගැනීම්',
 'searchmenu-exists' => "'''මෙම විකියෙහි \"[[:\$1]]\" ලෙස නම් කර ඇති පිටුවක් ඇත.'''",
 'searchmenu-new' => "'''මෙම විකියෙහි \"[[:\$1]]\" පිටුව තනන්න!'''",
-'searchhelp-url' => 'Help:පටුන',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|මෙම උපසර්ගය භාවිත කරමින් පිටු පිරික්සන්න]]',
 'searchprofile-articles' => 'අන්තර්ගත පිටු',
 'searchprofile-project' => 'උදවු හා ව්‍යාපෘති පිටු',
 'searchprofile-images' => 'බහුමාධ්‍ය',
 'searchprofile-everything' => 'සියල්ල',
-'searchprofile-advanced' => 'පà·\8aâ\80\8dරà¶\9cත',
+'searchprofile-advanced' => 'à¶\8bà·\83à·\83à·\8a',
 'searchprofile-articles-tooltip' => '$1 හි ගවේෂණය කරන්න',
 'searchprofile-project-tooltip' => '$1 හි ගවේෂණය කරන්න',
 'searchprofile-images-tooltip' => 'ගොනු සඳහා ගවේෂණය කරන්න',
@@ -1296,7 +1314,6 @@ $1",
 'resetprefs' => 'නොසුරැකූ වෙනස්වීම් නිෂ්කාශනය කරන්න',
 'restoreprefs' => 'පෙරනිමි සැකසුම් සියල්ලම යළි-පිහිටුවන්න',
 'prefs-editing' => 'සංස්කරණය කිරීම්',
-'prefs-edit-boxsize' => 'සංස්කරණ ‍කවුළුවෙහි ප්‍රමාණය.',
 'rows' => 'පේළි:',
 'columns' => 'තීරු:',
 'searchresultshead' => 'ගවේෂණය',
@@ -1307,9 +1324,6 @@ $1",
 'recentchangesdays-max' => '(උපරිමයෙන් {{PLURAL:$1|එක් දිනක්|දින $1 ක්}})',
 'recentchangescount' => 'පෙරනිමියෙන් පෙන්විය යුතු සංස්කරණ ගණන:',
 'prefs-help-recentchangescount' => 'මෑත වෙනස්වීම්, පිටු ඉතිහාසයන්, සහ ලඝු-සටහන් මෙයට ඇතුලත් වෙති.',
-'prefs-help-watchlist-token' => 'මෙම පාටීරය වෙත රහස් කේතයක් ඇතුළු කිරීමෙන් ඔබගේ මුරලැයිස්තුව වෙත RSS පෝෂකයක් ජනනය වනු ඇත.
-මෙම පාටීරයෙහි කේතය දන්නා ඕනෑම අයෙකුට ඔබගේ මුරලැයිස්තුව කියවිය හැකි වන අතර, එබැවින්ම විරල එකක් තෝරාගන්න.
-ඔබට භාවිතා කල හැකි අහඹු ලෙස-ජනනය වූ අගයක් මෙන්න: $1',
 'savedprefs' => 'අභිරුචීන් සුරැකිනි.',
 'timezonelegend' => 'වේලා කලාපය:',
 'localtime' => 'ප්‍රාදේශීය වේලාව:',
@@ -1340,7 +1354,6 @@ $1",
 'prefs-reset-intro' => 'ඔබගේ අභිප්‍රේතයන්, අඩවි පෙරනිමි වෙතට යළි-පිහිටුවීම සඳහා, ඔබ හට මෙම පිටුව භාවිතා කල හැක.
 මෙය අහෝසි කල නොහැක.',
 'prefs-emailconfirm-label' => 'විද්‍යුත්-ලිපිනය තහවුරුකිරීම:',
-'prefs-textboxsize' => 'සංස්කරණ කවුළුවෙහි ප්‍රමාණය',
 'youremail' => 'විද්‍යුත් තැපෑල:',
 'username' => '{{GENDER:$1|පරිශීලක නාමය}}:',
 'uid' => '{{GENDER:$1|පරිශීලක}} අනන්‍යාංකය:',
@@ -1373,7 +1386,7 @@ HTML ටැගයන් පිරික්සන්න.',
 'prefs-signature' => 'අත්සන',
 'prefs-dateformat' => 'දින ආකෘතිය',
 'prefs-timeoffset' => 'වේලා හිලව්ව',
-'prefs-advancedediting' => 'à·\80à·\90ඩà·\92දà·\94ර à¶­à·\9dරà·\8fà¶\9cà·\90නà·\93මà·\8a à·\83à·\90à¶\9aà·\83à·\94මà·\8a',
+'prefs-advancedediting' => 'à·\83à·\8fමà·\8fනà·\8aâ\80\8dය',
 'prefs-advancedrc' => 'වැඩිදුර සැකසුම් තෝරාගැනීම',
 'prefs-advancedrendering' => 'වැඩිදුර සැකසුම් තෝරාගැනීම',
 'prefs-advancedsearchoptions' => 'ප්‍රගත විකල්පයන්',
@@ -1560,7 +1573,7 @@ HTML ටැගයන් පිරික්සන්න.',
 'rcshowhidemine' => 'මගේ සංස්කරණයන් $1',
 'rclinks' => 'අවසන් දින $2 තුලදී සිදුවී ඇති අවසන් වෙනස්වීම් $1 පෙන්නුම් කරන්න<br />$3',
 'diff' => 'වෙනස',
-'hist' => 'ඉතිහාසය',
+'hist' => 'ඉති',
 'hide' => 'සඟවන්න',
 'show' => 'පෙන්වන්න',
 'minoreditletter' => 'සුළු',
@@ -1579,7 +1592,6 @@ HTML ටැගයන් පිරික්සන්න.',
 'recentchangeslinked-feed' => 'සහසම්බන්ධිත වෙනස්වීම්',
 'recentchangeslinked-toolbox' => 'සහසම්බන්ධිත වෙනස්වීම්',
 'recentchangeslinked-title' => '"$1" ආශ්‍රිත වෙනස්කිරීම්',
-'recentchangeslinked-noresult' => 'සලකා බැලූ කාලසීමාවෙහිදී, සබැඳි පිටු වල කිසිදු වෙනසක් සිදුවී නොමැත.',
 'recentchangeslinked-summary' => "විශේෂී ලෙස නිරූපිත පිටුවකට (හෝ විශේෂි ලෙස නිරූපිත ප්‍රවර්ගයක සාමාජීකයන්ට) සබැඳි පිටුවල මෑතදී සිදුවූ වෙනස්වීම් දැක්වෙන ලැයිස්තුවක් මෙහි දැක්වේ.
 [[Special:Watchlist|ඔබගේ  මුර-ලැයිස්තුවෙහි]] පිටු '''තදකුරු''' වලින් දක්වා ඇත.",
 'recentchangeslinked-page' => 'පිටු නාමය:',
@@ -1825,7 +1837,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization බලන්න.',
 කාර්ය බහුලත්වය අඩු වේලාවක උත්සාහ කිරීමට ඔබ හට සිදුවිය හැක.',
 
 'license' => 'බලය ලබා දීම:',
-'license-header' => 'à¶\85à·\80à·\83ර à¶¯à·\93ම',
+'license-header' => 'බලපතà·\8aâ\80\8dරà·\93à¶\9aරණය',
 'nolicense' => 'කිසිවක් තෝරාගෙන නැති',
 'license-nopreview' => '(පෙර-දසුන  නැරඹිය නොහැක)',
 'upload_source_url' => '(වලංගු සහ ප්‍රජාවට විවෘත URL ලිපිනයකි)',
@@ -2035,7 +2047,7 @@ When filtered by user, only files where that user uploaded the most recent versi
 'listusers-creationsort' => 'තැනූ දින අනුව සුබෙදන්න',
 'usereditcount' => ' {{PLURAL:$1|සංස්කරණ එකකි|සංස්කරණ $1 කි}}',
 'usercreated' => '$1 දින $2 වේලාවේදී {{GENDER:$3|තනන ලදි}}',
-'newpages' => 'à¶\85à·\85à·\94තà·\8a පිටු',
+'newpages' => 'නà·\80 පිටු',
 'newpages-username' => 'පරිශීලක-නාමය:',
 'ancientpages' => 'පැරණිම පිටු',
 'move' => 'ගෙනයන්න',
@@ -2205,7 +2217,6 @@ When filtered by user, only files where that user uploaded the most recent versi
 'unwatchthispage' => 'මුර-කිරීම නවතින්න',
 'notanarticle' => 'අන්තර්ගත පිටුවක් නොවේ',
 'notvisiblerev' => 'සංශෝධනය මකාදමා ඇත',
-'watchnochange' => 'ඔබ විසින් මුරකෙරෙන කිසිදු අයිතමයක් දක්වා ඇති කාල සීමාවෙහිදී  සංස්කරණයට භාජනය වී නොමැත.',
 'watchlist-details' => 'සාකච්ඡා පිටු නොගිණුනු කල, ඔබගේ මුර ලැයිස්තුවෙහි {{PLURAL:$1|එක් පිටුවක්|පිටු $1 ක්}} ඇත.',
 'wlheader-enotif' => 'විද්‍යුත්-තැපැල් දැනුම්දීම සක්‍රීය කෙරිණි.',
 'wlheader-showupdated' => "ඔබ විසින් ඒවාට අවසන් වරට පිවිසුනු පසුව වෙනස්කෙරුනු පිටු  '''තදකුරු''' වලින් පෙන්වා ඇත",
@@ -2277,7 +2288,7 @@ Feedback and further assistance:
 'actionfailed' => 'කාර්යය අසාර්ථක විය',
 'deletedtext' => '"$1" මකා දමා ඇත.
 මෑත මකාදැමීම් පිළිබඳ වාර්තාවක් සඳහා $2 බලන්න.',
-'dellogpage' => 'මà¶\9aà·\8fදà·\90මà·\94මà·\8a à¶½à·\9cà¶\9cà·\8a à·\83ටà·\84න',
+'dellogpage' => 'මà¶\9aà·\8fදà·\90මà·\94මà·\8a à¶½à·\9cà¶\9cය',
 'dellogpagetext' => 'පහත දැක්වෙන්නේ ඉතා මෑතදී සිදු කර ඇති මකාදැමීම් ලැයිස්තුවකි.',
 'deletionlog' => 'මකා-දැමුම් ලඝු-සටහන',
 'reverted' => 'පෙර සංශෝධනය වෙත ප්‍රතිවර්තනය කෙරිණි',
@@ -2408,7 +2419,7 @@ $2 ගේ අවසන් අනුවාදය වෙතට යළි වෙන
 එක්කෝ ඔබගේ සබැඳිය සදොස්ය, නැතහොත් සංශෝධනය ප්‍රතිෂ්ඨාපනයට හෝ සංරක්ෂිතයෙන් ඉවත් කිරීමට හෝ  ලක්ව තිබේ.',
 'undelete-nodiff' => 'පූර්ව සංශෝධන කිසිවක් සොයා ගත නොහැකි විය.',
 'undeletebtn' => 'යලි පිහිටුවන්න',
-'undeletelink' => 'බලනà·\8aන/යලà·\92 à¶´à·\92à·\84à·\92ටà·\94à·\80නà·\8aන',
+'undeletelink' => 'නරඹනà·\8aන/පà·\8aâ\80\8dරතà·\8aâ\80\8dයරà·\8aපණය',
 'undeleteviewlink' => 'නරඹන්න',
 'undeletereset' => 'ප්‍රත්‍යාරම්භ කරන්න',
 'undeleteinvert' => 'තෝරාගැනුම කණපිට පෙරලන්න',
@@ -2452,7 +2463,7 @@ $1',
 'mycontris' => 'දායකත්ව',
 'contribsub2' => '$1 සඳහා ($2)',
 'nocontribs' => 'මෙම උපමානයන් හා ගැලපෙන වෙනස්වීම් හමුනොවිණි.',
-'uctop' => '(à\89à·\84ලම)',
+'uctop' => '(à·\80තà·\8aමනà·\8a)',
 'month' => 'මෙම මස (හා ඉන් පෙර) සිට:',
 'year' => 'මෙම වසර (හා ඉන් පෙරාතුව) සිට:',
 
@@ -2475,7 +2486,7 @@ $1',
 'sp-contributions-submit' => 'සොයන්න',
 
 # What links here
-'whatlinkshere' => 'මà·\99තනට à·\83බà·\90ඳà·\92 à¶´à·\92ටà·\94',
+'whatlinkshere' => 'මà·\99තනට à·\83බà·\90ඳà·\99නà·\8aනà·\9a à¶\9aà·\94මà¶\9aà·\8aද',
 'whatlinkshere-title' => '"$1" වෙත සබැ‍ඳෙන පිටු',
 'whatlinkshere-page' => 'පිටුව:',
 'linkshere' => "ඉදිරියෙහි දැක්වෙන පිටු, '''[[:$1]]''' වෙත සබැඳෙයි:",
@@ -2487,7 +2498,7 @@ $1',
 'whatlinkshere-prev' => '{{PLURAL:$1|පූර්ව|පූර්ව $1}}',
 'whatlinkshere-next' => '{{PLURAL:$1|ඉදිරි|ඉදිරි $1}}',
 'whatlinkshere-links' => '← සබැඳි',
-'whatlinkshere-hideredirs' => '$1 යළි-යොමුකරයි',
+'whatlinkshere-hideredirs' => 'යළියොමු $1',
 'whatlinkshere-hidetrans' => '$1 අන්තර්ගතයන්',
 'whatlinkshere-hidelinks' => 'සබැඳියන් $1',
 'whatlinkshere-hideimages' => 'ගොනු සබැඳි $1',
@@ -2767,7 +2778,7 @@ $1 ගේ වාරණයට හේතුව මෙය වේ: "$2"',
 # Namespace 8 related
 'allmessages' => 'පද්ධති පණිවුඩ',
 'allmessagesname' => 'නම',
-'allmessagesdefault' => 'පà·\99රනà·\92මà·\92 පෙළ',
+'allmessagesdefault' => 'à·\83à·\8fමà·\8fනà·\8aâ\80\8dය à¶´à¶«à·\92à·\80à·\94ඩ පෙළ',
 'allmessagescurrent' => 'වත්මන් පෙළ',
 'allmessagestext' => 'මේ මාධ්‍යවිකි නාමඅවකාශයෙහිදී  හමුවන පද්ධති පණිවුඩයන් ලැයිස්තුවකි.
 වර්ගීය මාධ්‍යවිකි ප්‍රාදේශීයකරණයට දායක වීමට ඔබ රිසි නම් කරුණාකර [//www.mediawiki.org/wiki/Localisation මාධ්‍යවිකි ප්‍රාදේශීයකරණය]  සහ [//translatewiki.net බීටාවිකි] වෙත පිවිසෙන්න.',
@@ -2782,7 +2793,7 @@ $1 ගේ වාරණයට හේතුව මෙය වේ: "$2"',
 'allmessages-filter-submit' => 'යන්න',
 
 # Thumbnails
-'thumbnail-more' => 'විශාලනය කිරීම',
+'thumbnail-more' => 'විශාලනය',
 'filemissing' => 'ගොනුව දක්නට නොමැත',
 'thumbnail_error' => 'සිඟිති-රූපයක් තැනීමෙහිදී ඇතිවූ දෝෂය: $1',
 'djvu_page_error' => 'සීමාව ඉක්මවා ගිය DjVu පිටුව',
@@ -2879,13 +2890,13 @@ $1 ගේ වාරණයට හේතුව මෙය වේ: "$2"',
 'tooltip-ca-move' => 'මෙම පිටුව ගෙන යන්න',
 'tooltip-ca-watch' => 'මෙම පිටුව ඔබගේ මුර-ලැයිස්තුවට එක් කරන්න',
 'tooltip-ca-unwatch' => 'මෙම පිටුව ඔබගේ මුර-ලැයිස්තුවෙන් ඉවත් කරන්න',
-'tooltip-search' => '{{SITENAME}} ගවේෂණය කරන්න',
+'tooltip-search' => '{{SITENAME}} ගවේෂණය',
 'tooltip-search-go' => 'මෙම නාමය එලෙසම ඇති පිටුවක් ඇත්නම් එය වෙත යන්න',
 'tooltip-search-fulltext' => 'මෙම පාඨය සඳහා පිටු ගවේෂණය කරන්න',
 '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' => 'අහඹු පිටුවක් පූරණය කරන්න',
@@ -2898,8 +2909,8 @@ $1 ගේ වාරණයට හේතුව මෙය වේ: "$2"',
 'tooltip-t-emailuser' => 'මෙම පරිශීලකයාට විද්‍යුත්-තැපෑලක් යවන්න',
 'tooltip-t-upload' => 'ගොනු උඩුගත කරන්න',
 'tooltip-t-specialpages' => 'සියලු විශේෂ පිටු ලැයිස්තුව',
-'tooltip-t-print' => 'මà·\99ම à¶´à·\92ටà·\94à·\80à·\99à·\84à·\92 à¶¸à·\94දà·\8aâ\80\8dරණය à¶\9aල à·\84à·\90à¶\9aà·\92 අනුවාදය',
-'tooltip-t-permalink' => 'පිටුවෙහි මෙම අනුවාදයට, ස්ථාවර බැඳිය',
+'tooltip-t-print' => 'මà·\99ම à¶´à·\92ටà·\94à·\80à·\99à·\84à·\92 à¶¸à·\94දà·\8aâ\80\8dරà·\92ත අනුවාදය',
+'tooltip-t-permalink' => 'පිටුවෙහි මෙම අනුවාදයට ස්ථාවර සබැඳිය',
 'tooltip-ca-nstab-main' => 'අන්තර්ගත පිටුව නරඹන්න',
 'tooltip-ca-nstab-user' => 'පරිශීලක පිටුව නරඹන්න',
 'tooltip-ca-nstab-media' => 'මාධ්‍ය පිටුව නරඹන්න',
@@ -3798,7 +3809,6 @@ This confirmation code will expire at $4.',
 'version-other' => 'වෙනත්',
 'version-mediahandlers' => 'මාධ්‍ය හසුරුවනය',
 'version-hooks' => 'හසුරු',
-'version-extension-functions' => 'ප්‍රසර්ජිත කාර්යයන්',
 'version-parser-extensiontags' => 'ව්‍යාකරණ  විග්‍රහක ප්‍රසර්ජන ටැගයන්',
 'version-parser-function-hooks' => 'වයාකරණ විග්‍රහක ශ්‍රිත හසුරු',
 'version-hook-name' => 'හසුරු නම',
index 36a95c5..f34c0e4 100644 (file)
@@ -9,6 +9,7 @@
  *
  * @author Chiak
  * @author Danny B.
+ * @author Geitost
  * @author Helix84
  * @author Kaganer
  * @author Kusavica
  * @author Maros
  * @author Michawiki
  * @author Mormegil
+ * @author Nemo bis
  * @author Palica
  * @author Pitr2311
  * @author Ragimiri
  * @author Reedy
  * @author Rudko
  * @author Sp5uhe
+ * @author Sudo77(new)
  * @author Tchoř
  * @author Teslaton
  * @author Urhixidur
@@ -287,14 +290,14 @@ $messages = array(
 'tog-hideminor' => 'V posledných úpravách nezobrazovať drobné úpravy',
 'tog-hidepatrolled' => 'Skryť strážené úpravy v Posledných úpravách',
 'tog-newpageshidepatrolled' => 'Skryť strážené stránky zo zoznamu nových stránok',
-'tog-extendwatchlist' => 'Rozšíriť zoznam sledovaných, aby zobrazoval všetky zmeny, nie len posledné',
-'tog-usenewrc' => 'Zoskupiť zmeny v posledných úpravách a zoznamoch sledovaných (vyžaduje JavaScript)',
+'tog-extendwatchlist' => 'Rozšíriť zoznam sledovaných stránok, aby zobrazoval všetky zmeny, nie len posledné',
+'tog-usenewrc' => 'Zoskupiť v posledných úpravách a na zozname sledovaných stránok podľa stránky (vyžaduje JavaScript)',
 'tog-numberheadings' => 'Automaticky číslovať nadpisy',
-'tog-showtoolbar' => 'Zobraziť panel nástrojov úprav',
-'tog-editondblclick' => 'Upravovať stránky po dvojitom kliknutí (JavaScript)',
-'tog-editsection' => 'Umožniť úpravu sekcie pomocu odkazov [upraviť]',
-'tog-editsectiononrightclick' => 'Umožniť upravovať sekcie po kliknutí pravým tlačidlom na nadpisy sekcií (JavaScript)',
-'tog-showtoc' => 'Zobrazovať obsah (pre stránky s viac ako 3 nadpismi)',
+'tog-showtoolbar' => 'Zobraziť panel nástrojov úprav (vyžaduje JavaSkript)',
+'tog-editondblclick' => 'Upravovať stránky po dvojitom kliknutí (vyžaduje JavaScript)',
+'tog-editsection' => 'Umožniť upravovanie sekcie prostredníctvom odkazov [upraviť]',
+'tog-editsectiononrightclick' => 'Umožniť upravovanie sekcie pravým kliknutím na nadpisy sekcií (vyžaduje JavaScript)',
+'tog-showtoc' => 'Zobrazovať tabuľku s obsahom (pre stránky s viac ako 3 nadpismi)',
 'tog-rememberpassword' => 'Zapamätať si prihlásenie na tomto počítači (najviac $1 {{PLURAL:$1|deň|dni|dní}})',
 'tog-watchcreations' => 'Pridávať stránky, ktoré vytvorím a súbory, ktoré nahrám medzi sledované',
 'tog-watchdefault' => 'Pridávať stránky a súbory, ktoré upravím medzi sledované',
@@ -389,6 +392,18 @@ $messages = array(
 'oct' => 'okt',
 'nov' => 'nov',
 'dec' => 'dec',
+'january-date' => '$1. januára',
+'february-date' => '$1. februára',
+'march-date' => '$1. marca',
+'april-date' => '$1. apríla',
+'may-date' => '$1. mája',
+'june-date' => '$1. júna',
+'july-date' => '$1. júla',
+'august-date' => '$1. augusta',
+'september-date' => '$1. septembra',
+'october-date' => '$1. októbra',
+'november-date' => '$1. novembra',
+'december-date' => '$1. decembra',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategória|Kategórie|Kategórie}}',
@@ -470,6 +485,7 @@ $messages = array(
 'create-this-page' => 'Vytvoriť túto stránku',
 'delete' => 'Vymazať',
 'deletethispage' => 'Vymazať túto stránku',
+'undeletethispage' => 'Obnoviť túto stránku',
 'undelete_short' => 'Obnoviť {{PLURAL:$1|jednu úpravu|$1 úpravy|$1 úprav}}',
 'viewdeleted_short' => 'Zobraziť {{PLURAL:$1|jednu zmazanú úpravu|$1 zmazané úpravy|$1 zmazaných úprav}}',
 'protect' => 'Zamknúť',
@@ -523,7 +539,6 @@ $1',
 'disclaimers' => 'Vylúčenie zodpovednosti',
 'disclaimerpage' => 'Project:Vylúčenie zodpovednosti',
 'edithelp' => 'Ako upravovať stránku',
-'edithelppage' => 'Help:Ako upravovať stránku',
 'helppage' => 'Help:Obsah',
 'mainpage' => 'Hlavná stránka',
 'mainpage-description' => 'Hlavná stránka',
@@ -700,7 +715,10 @@ Nezabudnite zmeniť svoje [[Special:Preferences|Predvoľby {{GRAMMAR:genitív|{{
 'yourpassword' => 'Heslo:',
 'userlogin-yourpassword' => 'Heslo',
 'userlogin-yourpassword-ph' => 'Zadajte svoje heslo',
+'createacct-yourpassword-ph' => 'Zadajte heslo',
 'yourpasswordagain' => 'Zopakujte heslo:',
+'createacct-yourpasswordagain' => 'Potvrdiť heslo',
+'createacct-yourpasswordagain-ph' => 'Zadajte heslo znova',
 'remembermypassword' => 'Pamätať si prihlásenie na tomto počítači (naviac $1 {{PLURAL:$1|deň|dni|dní}})',
 'userlogin-remembermypassword' => 'Zapamätať si ma',
 'userlogin-signwithsecure' => 'Prihlásiť sa na zabezpečený server',
@@ -718,16 +736,27 @@ Nezabudnite zmeniť svoje [[Special:Preferences|Predvoľby {{GRAMMAR:genitív|{{
 'notloggedin' => 'Neprihlásený/á',
 'userlogin-noaccount' => 'Nemáte ešte účet?',
 'userlogin-joinproject' => 'Pridajte sa k {{GRAMMAR:lokál|{{SITENAME}}}}',
-'nologin' => "Nemáte ešte účet? '''$1'''.",
+'nologin' => 'Nemáte ešte účet? $1.',
 'nologinlink' => 'Vytvoriť nový účet',
 'createaccount' => 'Vytvoriť nový účet',
 'gotaccount' => "Máte už vytvorený účet? '''$1'''.",
 'gotaccountlink' => 'Prihlásiť',
 'userlogin-resetlink' => 'Zabudli ste svoje prihlasovacie údaje?',
+'userlogin-resetpassword-link' => 'Obnoviť heslo',
 'helplogin-url' => 'Pomoc:Prihlasovanie',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Pomoc s prihlásením]]',
+'createacct-emailrequired' => 'E-mailová adresa',
+'createacct-emailoptional' => 'E-mailová adresa (nepovinné)',
+'createacct-email-ph' => 'Zadajte vašu e-mailovú adresu',
 'createaccountmail' => 'Použiť dočasné náhodné heslo a poslať ho na nižšie uvedenú emailovú adresu',
+'createacct-realname' => 'Skutočné meno (nepovinné)',
 'createaccountreason' => 'Dôvod:',
+'createacct-reason' => 'Dôvod',
+'createacct-reason-ph' => 'Prečo si vytvárate ďalší účet',
+'createacct-captcha' => 'Bezpečnostná kontrola',
+'createacct-imgcaptcha-ph' => 'Zadajte text, ktorý vidíte vyššie',
+'createacct-submit' => 'Vytvoriť účet',
+'createacct-benefit-heading' => '{{grammar:4sg|{{SITENAME}}}} tvoria ľudia ako vy.',
 'badretype' => 'Zadané heslá nie sú rovnaké.',
 'userexists' => 'Zadané používateľské meno sa už používa.
 Prosím, zvoľte si iné meno.',
@@ -817,14 +846,13 @@ Prosím, počkajte predtým, než to skúsite znova.',
 'resetpass-wrong-oldpass' => 'Neplatné dočasné alebo aktuálne heslo.
 Je možné, že sa vám už podarilo úspešne zmeniť svoje heslo alebo ste si vyžiadali nové dočasné heslo.',
 'resetpass-temp-password' => 'Dočasné heslo:',
+'resetpass-abort-generic' => 'Zmena hesla bola zablokovaná rozšírením.',
 
 # Special:PasswordReset
 'passwordreset' => 'Reset hesla',
-'passwordreset-text' => 'Vyplnením tohto formulára si vytvoríte nové heslo.',
 'passwordreset-legend' => 'Obnoviť heslo',
 'passwordreset-disabled' => 'Obnovenie hesla bolo na tejto wiki zakázané.',
 'passwordreset-emaildisabled' => 'E-mailové funkcie boli na tejto wiki vypnuté.',
-'passwordreset-pretext' => '{{PLURAL:$1|Zadajte nižšie uvedený údaj|Zadajte jeden z nižšie uvedených údajov}}',
 'passwordreset-username' => 'Používateľské meno:',
 'passwordreset-domain' => 'Doména:',
 'passwordreset-capture' => 'Zobraziť výsledný e-mail?',
@@ -1066,6 +1094,7 @@ Neudala vysvetlenie.',
 Zdá sa, že bola zmazaná.',
 'edit-conflict' => 'Konflikt pri upravovaní.',
 'edit-no-change' => 'Vaša úprava bola ignorovaná, pretože ste v texte nič nezmenili.',
+'postedit-confirmation' => 'Vaša úprava bola uložená.',
 'edit-already-exists' => 'Nebolo možné vytvoriť novú stránku.
 Už existuje.',
 'defaultmessagetext' => 'Predvolený text správy',
@@ -1314,7 +1343,6 @@ Podrobnosti nájdete v [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}
 'searchmenu-legend' => 'Možnosti hľadania',
 'searchmenu-exists' => "*Stránka '''[[$1]]'''",
 'searchmenu-new' => "'''Vytvoriť stránku „[[:$1|$1]]“ na tejto wiki'''",
-'searchhelp-url' => 'Help:Obsah',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Prehliadať stránky s touto predponou]]',
 'searchprofile-articles' => 'Stránky s obsahom',
 'searchprofile-project' => 'Stránky pomocníka a projektu',
@@ -1389,7 +1417,6 @@ Podrobnosti nájdete v [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}
 'resetprefs' => 'Obnoviť pôvodné nastavenia',
 'restoreprefs' => 'Obnoviť všetky nastavenia na štandardné hodnoty',
 'prefs-editing' => 'Úpravy',
-'prefs-edit-boxsize' => 'Veľkosť okna na úpravy.',
 'rows' => 'Riadky:',
 'columns' => 'Stĺpce:',
 'searchresultshead' => 'Vyhľadávanie',
@@ -1400,8 +1427,6 @@ Podrobnosti nájdete v [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}
 'recentchangesdays-max' => '(maximálne $1 {{PLURAL:$1|deň|dni|dní}})',
 'recentchangescount' => 'Štandardne zobrazovaný počet úprav:',
 'prefs-help-recentchangescount' => 'Toto sa týka posledných úprav, histórií stránok a záznamov.',
-'prefs-help-watchlist-token' => 'Ak vyplníte toto pole tajným kľúčom, bude sa tvoriť RSS kanál vášho zoznamu sledovaných. Ktokoľvek, kto pozná tajný kľúč v tomto poli bude môcť čítať váš zoznam sledovaných, preto dbajte na to, aby bol bezpečený.
-Tu je náhodne vytvorená hodnota, ktorú môžete použiť: $1',
 'savedprefs' => 'Vaše nastavenia boli uložené.',
 'timezonelegend' => 'Časové pásmo:',
 'localtime' => 'Miestny čas:',
@@ -1432,7 +1457,6 @@ Tu je náhodne vytvorená hodnota, ktorú môžete použiť: $1',
 'prefs-reset-intro' => 'Túto stránku môžete použiť na vrátenie predvolených hodnôt vašich nastavení.
 Túto operáciu nemožno vrátiť.',
 'prefs-emailconfirm-label' => 'Potvrdenie emailu:',
-'prefs-textboxsize' => 'Veľkosť okna na úpravy',
 'youremail' => 'Váš e-mail²',
 'username' => 'Používateľské meno:',
 'uid' => 'ID používateľa:',
@@ -1463,6 +1487,7 @@ Musí obsahovať menej ako $1 {{PLURAL:$1|znak|znaky|znakov}}.',
 'prefs-dateformat' => 'Formát dátumu',
 'prefs-timeoffset' => 'Časový posun',
 'prefs-advancedediting' => 'Rozšírené možnosti',
+'prefs-preview' => 'Náhľad',
 'prefs-advancedrc' => 'Rozšírené možnosti',
 'prefs-advancedrendering' => 'Rozšírené možnosti',
 'prefs-advancedsearchoptions' => 'Rozšírené možnosti',
@@ -1628,6 +1653,10 @@ Musí obsahovať menej ako $1 {{PLURAL:$1|znak|znaky|znakov}}.',
 'action-userrights-interwiki' => 'upravovať práva používateľov na iných wiki',
 'action-siteadmin' => 'zamykať alebo odomykať databázu',
 'action-sendemail' => 'posielať e-maily',
+'action-editmywatchlist' => 'upraviť zoznam sledovaných stránok',
+'action-viewmywatchlist' => 'zobraziť zoznam sledovaných stránok',
+'action-viewmyprivateinfo' => 'zobraziť vaše súkromné údaje',
+'action-editmyprivateinfo' => 'upraviť vaše súkromné údaje',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|zmena|zmeny|zmien}}',
@@ -1670,7 +1699,6 @@ Musí obsahovať menej ako $1 {{PLURAL:$1|znak|znaky|znakov}}.',
 'recentchangeslinked-feed' => 'Súvisiace úpravy',
 'recentchangeslinked-toolbox' => 'Súvisiace úpravy',
 'recentchangeslinked-title' => 'Zmeny týkajúce sa „$1”',
-'recentchangeslinked-noresult' => 'V zadanom období neboli odkazované stránky zmenené.',
 'recentchangeslinked-summary' => "Táto špeciálna stránka obsahuje zoznam posledných úprav stránok, ''na ktoré odkazuje'' zadaná stránka (alebo ktoré patria do zadanej kategórie).
 Stránky, ktoré sa nachádzajú vo vašom [[Special:Watchlist|zozname sledovaných]] sú vyznačené '''hrubo'''.",
 'recentchangeslinked-page' => 'Názov stránky:',
@@ -2313,7 +2341,6 @@ Budú tam uvedené aj budúce úpravy tejto stránky a jej diskusie.',
 'unwatchthispage' => 'Prestať sledovať túto stránku',
 'notanarticle' => 'Toto nie je stránka',
 'notvisiblerev' => 'Revízia bola zmazaná',
-'watchnochange' => 'V rámci zobrazeného času nebola upravená žiadna z vašich sledovaných stránok.',
 'watchlist-details' => '{{PLURAL:$1|Jedna sledovaná stránka|$1 sledované stránky|$1 sledovaných stránok}}, nepočítajúc diskusné stránky.',
 'wlheader-enotif' => 'Upozorňovanie e-mailom je zapnuté.',
 'wlheader-showupdated' => "Stránky, ktoré boli zmené od vašej poslednej návštevy sú zobrazené '''tučne'''.",
@@ -2552,7 +2579,7 @@ $1',
 'blanknamespace' => '(Hlavný)',
 
 # Contributions
-'contributions' => 'Príspevky používateľa',
+'contributions' => 'Príspevky {{GENDER:$1|používateľa|používateľky}}',
 'contributions-title' => 'Príspevky používateľa pre $1',
 'mycontris' => 'Príspevky',
 'contribsub2' => 'Príspevky $1 ($2)',
@@ -3105,6 +3132,7 @@ Pravdepodobne to spôsobil odkaz na externú internetovú lokalitu, ktorá sa na
 'pageinfo-robot-noindex' => 'Neindexovať stránku',
 'pageinfo-views' => 'Počet zobrazení',
 'pageinfo-watchers' => 'Počet používateľov sledujúcich stránku',
+'pageinfo-few-watchers' => 'Menej ako $1 {{PLURAL:$1|sledujúci|sledujúci|sledujúcich}}',
 'pageinfo-redirects-name' => 'Presmerovania na túto stránku',
 'pageinfo-subpages-name' => 'Podstránky tejto stránky',
 'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|presmerovanie|presmerovania|presmerovaní}}; $3 {{PLURAL:$3|nie je presmerovanie|nie sú presmerovania}})',
@@ -3119,6 +3147,7 @@ Pravdepodobne to spôsobil odkaz na externú internetovú lokalitu, ktorá sa na
 'pageinfo-magic-words' => 'Magické {{PLURAL:$1|slovo|slová}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Skrytá kategória|Skryté kategórie}} ($1)',
 'pageinfo-templates' => '{{PLURAL:$1|Vložená šablóna|Vložené šablóny}} ($1)',
+'pageinfo-transclusions' => '{{PLURAL:$1|Stránka, do ktorej|Stránky, do ktorých}} je táto stránka vložená ($1)',
 'pageinfo-toolboxlink' => 'Informácie o stránke',
 'pageinfo-redirectsto' => 'Presmerovanie na',
 'pageinfo-redirectsto-info' => 'info',
@@ -3127,6 +3156,10 @@ Pravdepodobne to spôsobil odkaz na externú internetovú lokalitu, ktorá sa na
 'pageinfo-protect-cascading' => 'Kaskádové zamknutie',
 'pageinfo-protect-cascading-yes' => 'Áno',
 'pageinfo-protect-cascading-from' => 'Zámky pochádzajú z kaskádových zamknutí',
+'pageinfo-category-info' => 'Informácie o kategórii',
+'pageinfo-category-pages' => 'Počet stránok',
+'pageinfo-category-subcats' => 'Počet podkategórií',
+'pageinfo-category-files' => 'Počet súborov',
 
 # Skin names
 'skinname-cologneblue' => 'Kolínska modrá',
@@ -3832,7 +3865,6 @@ Tiež môžete [[Special:EditWatchlist|použiť štandardný editor]].',
 'version-other' => 'Iné',
 'version-mediahandlers' => 'Obsluha multimédií',
 'version-hooks' => 'Prípojné body',
-'version-extension-functions' => 'Rozširujúce funkcie',
 'version-parser-extensiontags' => 'Rozširujúce značky syntaxe',
 'version-parser-function-hooks' => 'Prípojné body funkcií syntaktického analyzátora',
 'version-hook-name' => 'Názov prípojného bodu',
@@ -3854,6 +3886,12 @@ Spolu s týmto programom by ste obdržať [{{SERVER}}{{SCRIPTPATH}}/COPYING kóp
 'version-entrypoints-header-entrypoint' => 'Vstupný bod',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
+'redirect-submit' => 'Ísť',
+'redirect-value' => 'Hodnota:',
+'redirect-file' => 'Názov súboru',
+'redirect-not-exists' => 'Hodnota nebola nájdená',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Hľadať duplicitné súbory',
 'fileduplicatesearch-summary' => 'Hľadanie duplicitných súborov na základe ich haš hodnôt.',
@@ -3945,6 +3983,7 @@ Spolu s týmto programom by ste obdržať [{{SERVER}}{{SCRIPTPATH}}/COPYING kóp
 'htmlform-selectorother-other' => 'Iné',
 'htmlform-no' => 'Nie',
 'htmlform-yes' => 'Áno',
+'htmlform-chosen-placeholder' => 'Vyberte možnosť',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 s podporou vyhľadávania v plnom texte',
@@ -3954,10 +3993,10 @@ Spolu s týmto programom by ste obdržať [{{SERVER}}{{SCRIPTPATH}}/COPYING kóp
 'logentry-delete-delete' => '$1 zmazal stránku $3',
 'logentry-delete-restore' => '$1 obnovil stránku $3',
 'logentry-delete-event' => '$1 zmenil viditeľnosť {{PLURAL:$5|záznamu udalostí|$5 záznamov udalostí}} k stránke $3: $4',
-'logentry-delete-revision' => '$1 zmenil viditeľnosť {{PLURAL:$5|revízie|$5 revízií}} na stránke $3: $4',
-'logentry-delete-event-legacy' => '$1 zmenil viditeľnosť záznamov udalostí k stránke $3',
-'logentry-delete-revision-legacy' => '$1 zmenil viditeľnosť revízií na stránke $3',
-'logentry-suppress-delete' => '$1 utajil stránku $3',
+'logentry-delete-revision' => '$1 {{GENDER:$2|zmenil|zmenila}} viditeľnosť {{PLURAL:$5|revízie|$5 revízií}} na stránke $3: $4',
+'logentry-delete-event-legacy' => '$1 {{GENDER:$2|zmenil|zmenila}} viditeľnosť záznamov udalostí k stránke $3',
+'logentry-delete-revision-legacy' => '$1 {{GENDER:$2|zmenil|zmenila}} viditeľnosť revízií na stránke $3',
+'logentry-suppress-delete' => '$1 {{GENDER:$2|utajil|utajila}} stránku $3',
 'logentry-suppress-event' => '$1 utajene zmenil viditeľnosť {{PLURAL:$5|záznamu udalostí|$5 záznamov udalostí}} k stránke $3: $4',
 'logentry-suppress-revision' => '$1 utajene zmenil viditeľnosť {{PLURAL:$5|revízie|$5 revízií}} na stránke $3: $4',
 'logentry-suppress-event-legacy' => '$1 utajene zmenil viditeľnosť záznamov udalostí k stránke $3',
index a4cb380..0c201fe 100644 (file)
@@ -11,7 +11,9 @@
  * @author Eleassar
  * @author Freakolowsky
  * @author Irena Plahuta
+ * @author Matej1234
  * @author McDutchie
+ * @author Nemo bis
  * @author Smihael
  * @author Vadgt
  * @author XJamRastafire
@@ -386,6 +388,7 @@ $messages = array(
 'create-this-page' => 'Ustvari stran',
 'delete' => 'Briši',
 'deletethispage' => 'Briši stran',
+'undeletethispage' => 'Obnovi stran',
 'undelete_short' => 'Vrni $1 {{PLURAL:$1|izbrisano urejanje|izbrisani urejanji|izbrisana urejanja|izbrisanih urejanj|izbrisanih urejanj}}',
 'viewdeleted_short' => 'Ogled {{PLURAL:$1|enega izbrisanega urejanja|$1 izbrisanih urejanj}}',
 'protect' => 'Zaščiti',
@@ -439,7 +442,6 @@ $1',
 'disclaimers' => 'Zanikanja odgovornosti',
 'disclaimerpage' => 'Project:Splošno zanikanje odgovornosti',
 'edithelp' => 'Pomoč pri urejanju',
-'edithelppage' => 'Help:Urejanje',
 'helppage' => 'Help:Vsebina',
 'mainpage' => 'Glavna stran',
 'mainpage-description' => 'Glavna stran',
@@ -590,6 +592,10 @@ $2',
 'namespaceprotected' => "Nimate dovoljenja urejati strani v imenskem prostoru '''$1'''.",
 'customcssprotected' => 'Nimate pravice urejati te strani CSS, ker vsebuje osebne nastavitve drugega uporabnika.',
 'customjsprotected' => 'Nimate pravice urejati te strani JavaScript, ker vsebuje osebne nastavitve drugega uporabnika.',
+'mycustomcssprotected' => 'Nimate pravic za urejanje te strani s CSS.',
+'mycustomjsprotected' => 'Nimate pravic za urejanje te strani z JavaScriptom.',
+'myprivateinfoprotected' => 'Nimate dovoljenja za urejanje svojih zasebnih podatkov.',
+'mypreferencesprotected' => 'Nimate dovoljenja za urejanje svojih nastavitev.',
 'ns-specialprotected' => 'Posebnih strani ni mogoče urejati.',
 'titleprotected' => "Uporabnik [[User:$1|$1]] je preprečil ustvarjanje strani s takim naslovom.
 Podani razlog je bil »''$2''«.",
@@ -617,6 +623,7 @@ Ne pozabite si prilagoditi vaših [[Special:Preferences|nastavitev {{GRAMMAR:rod
 'yourname' => 'Uporabniško ime:',
 'userlogin-yourname' => 'Uporabniško ime',
 'userlogin-yourname-ph' => 'Vnesite svoje uporabniško ime',
+'createacct-another-username-ph' => 'Vnesite uporabniško ime',
 'yourpassword' => 'Geslo:',
 'userlogin-yourpassword' => 'Geslo',
 'userlogin-yourpassword-ph' => 'Vnesite svoje geslo',
@@ -651,9 +658,11 @@ Ne pozabite si prilagoditi vaših [[Special:Preferences|nastavitev {{GRAMMAR:rod
 'helplogin-url' => 'Help:Prijava',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Pomoč pri prijavi]]',
 'createacct-join' => 'Spodaj vnesite svoje informacije.',
+'createacct-another-join' => 'Spodaj vnesite informacije o novem računu.',
 'createacct-emailrequired' => 'E-poštni naslov',
 'createacct-emailoptional' => 'E-poštni naslov (izbirno)',
 'createacct-email-ph' => 'Vnesite svoj e-poštni naslov',
+'createacct-another-email-ph' => 'Vnesite e-poštni naslov',
 'createaccountmail' => 'Ustvari začasno naključno geslo in ga pošlji na spodaj navedeni e-poštni naslov',
 'createacct-realname' => 'Pravo ime (izbirno)',
 'createaccountreason' => 'Razlog:',
@@ -662,6 +671,7 @@ Ne pozabite si prilagoditi vaših [[Special:Preferences|nastavitev {{GRAMMAR:rod
 'createacct-captcha' => 'Varnostno preverjanje',
 'createacct-imgcaptcha-ph' => 'Vnesite zgornje besedilo',
 'createacct-submit' => 'Ustvarite svoj račun',
+'createacct-another-submit' => 'Ustvarite še en račun',
 'createacct-benefit-heading' => '{{GRAMMAR:tožilnik|{{SITENAME}}}} ustvarjajo ljudje, kot ste vi.',
 'createacct-benefit-body1' => '{{PLURAL:$1|urejanje|urejanji|urejanja|urejanj}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|stran|strani}}',
@@ -681,7 +691,7 @@ Ker jih imate onemogočene, vas prosimo, da jih omogočite in se ponovno prijavi
 Poskrbite, da imate omogočene piškotke, osvežite to stran in poskusite znova.',
 'noname' => 'Niste vnesli veljavnega uporabniškega imena.',
 'loginsuccesstitle' => 'Uspešno ste se prijavili',
-'loginsuccess' => "'''Sedaj ste prijavljeni v {{GRAMMAR:tožilnik|{{SITENAME}}}} kot »$1«.'''",
+'loginsuccess' => "'''Zdaj ste prijavljeni v {{GRAMMAR:tožilnik|{{SITENAME}}}} kot »$1«.'''",
 'nosuchuser' => 'Uporabnik z imenom »$1« ne obstaja.
 Uporabniška imena so občutljiva na velikost črk.
 Preverite črkovanje ali pa si [[Special:UserLogin/signup|ustvarite nov uporabniški račun]].',
@@ -730,7 +740,7 @@ Prosimo, vpišite pravilno oblikovanega ali polje izpraznite.',
 'cannotchangeemail' => 'E-poštnih naslovov računa na tem wikiju ni mogoče spremeniti.',
 'emaildisabled' => 'Stran ne more pošiljati e-pošte.',
 'accountcreated' => 'Račun je ustvarjen',
-'accountcreatedtext' => 'Uporabniški račun za »$1« je ustvarjen.',
+'accountcreatedtext' => 'Ustvarili smo uporabniški račun za [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|pogovor]]).',
 'createaccount-title' => 'Ustvarjanje računa za {{GRAMMAR:tožilnik|{{SITENAME}}}}',
 'createaccount-text' => 'Nekdo je ustvaril račun $2 na {{GRAMMAR:dajalnik|{{SITENAME}}}} ($4). Geslo za »$2« je »$3«. Priporočljivo je, da se prijavite in spremenite svoje geslo sedaj.
 
@@ -769,11 +779,11 @@ Morda ste že uspešno spremenili geslo ali pa ste zahtevali novo začasno geslo
 
 # Special:PasswordReset
 'passwordreset' => 'Ponastavitev gesla',
-'passwordreset-text' => 'Izpolnite obrazec, da ponastavite geslo.',
+'passwordreset-text-one' => 'Izpolnite obrazec, da ponastavite svoje geslo.',
+'passwordreset-text-many' => 'Izpolnite {{PLURAL:$1|polje|enega od polj}}, da ponastavite svoje geslo.',
 'passwordreset-legend' => 'Ponastavitev gesla',
 'passwordreset-disabled' => 'Ponastavljanje gesla je na tem wikiju onemogočeno.',
 'passwordreset-emaildisabled' => 'Na tem wikiju so možnosti e-pošte onemogočene.',
-'passwordreset-pretext' => '{{PLURAL:$1||Vnesite enega od dela podatkov spodaj}}',
 'passwordreset-username' => 'Uporabniško ime:',
 'passwordreset-domain' => 'Domena:',
 'passwordreset-capture' => 'Ogled nastale e-pošte?',
@@ -819,6 +829,13 @@ Začasno geslo: $2',
 'changeemail-submit' => 'Spremeni e-naslov',
 'changeemail-cancel' => 'Prekliči',
 
+# Special:ResetTokens
+'resettokens' => 'Ponastavitev žetonov',
+'resettokens-text' => 'Žetone lahko ponastavite, kar omogoča dostop do nekaterih zasebnih podatkov, povezanih z vašim računom.
+
+To 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.',
+
 # Edit page toolbar
 'bold_sample' => 'Krepko besedilo',
 'bold_tip' => 'Krepko besedilo',
@@ -1000,7 +1017,7 @@ Lahko se vrnete nazaj in urejate že obstoječe strani, ali pa se [[Special:User
 'nocreate-loggedin' => 'Nimate pravic, da bi ustvarjali nove strani.',
 'sectioneditnotsupported-title' => 'Urejanje razdelkov ni podprto',
 'sectioneditnotsupported-text' => 'Urejanje razdelkov ni podprto na tej strani.',
-'permissionserrors' => 'Napake dovoljenj',
+'permissionserrors' => 'Napaka dovoljenja',
 'permissionserrorstext' => 'Nimate dovoljenja za izvedbo dejanja zaradi {{PLURAL:$1|naslednjega razloga|naslednjih razlogov|naslednjih razlogov|naslednjih razlogov|naslednjih razlogov}}:',
 'permissionserrorstext-withaction' => 'Nimate dovoljenja za $2 zaradi {{PLURAL:$1|naslednjega razloga|naslednjih $1 razlogov|naslednjih $1 razlogov|naslednjih $1 razlogov}}:',
 'recreate-moveddeleted-warn' => "'''Opozorilo: Pišete stran, ki je bila nekoč že izbrisana.'''
@@ -1015,13 +1032,14 @@ Spodaj sta za sklicevanje na razpolago dnevnik brisanja in dnevnik prestavljanja
 Izgleda, da je bila izbrisana.',
 'edit-conflict' => 'Navzkrižje urejanj.',
 'edit-no-change' => 'Vaše urejanje je bilo prezrto, saj ni vsebovalo sprememb.',
+'postedit-confirmation' => 'Vaše urejanje smo shranili.',
 'edit-already-exists' => 'Ni bilo mogoče ustvariti nove strani, ker že obstaja.',
 'defaultmessagetext' => 'Prednastavljeno besedilo',
 'content-failed-to-parse' => 'Nisem mogel razčleniti vsebine $2 za obliko $1: $3',
 'invalid-content-data' => 'Neveljavni podatki vsebine',
 'content-not-allowed-here' => 'Vsebina »$1« ni dovoljena na strani [[$2]]',
 'editwarning-warning' => 'Če zapustite stran, boste morda izgubili vse spremembe, ki ste jih naredili.
-Če ste prijavljeni, lahko to opozorilo onemogočite v razdelku »{{int:prefs-editing}}« v svojih nastavitvah.',
+Če ste prijavljeni, lahko to opozorilo onemogočite v razdelku »Urejanje« v svojih nastavitvah.',
 
 # Content models
 'content-model-wikitext' => 'wikibesedilo',
@@ -1056,6 +1074,7 @@ Naslednji argumenti so bili izpuščeni.",
 'undo-failure' => 'Zaradi navzkrižij urejanj, ki so se vmes pojavila, tega urejanja ni moč razveljaviti.',
 'undo-norev' => 'Urejanja ni mogoče razveljaviti, ker ne obstaja ali je bilo izbrisano.',
 'undo-summary' => 'Redakcija $1 uporabnika [[Special:Contributions/$2|$2]] ([[User talk:$2|pogovor]]) razveljavljena',
+'undo-summary-username-hidden' => 'Razveljavi redakcijo $1 skritega uporabnika',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Računa ni moč ustvariti',
@@ -1082,8 +1101,8 @@ Razlog, ki ga je podal $3, je ''$2''.",
 Legenda: '''({{int:cur}})''' = primerjava s trenutno redakcijo, '''({{int:last}})''' = primerjava s prejšnjo redakcijo, '''{{int:minoreditletter}}''' = manjše urejanje.",
 'history-fieldset-title' => 'Zgodovina poizvedovanj',
 'history-show-deleted' => 'Samo izbrisani',
-'histfirst' => 'Najstarejše',
-'histlast' => 'Najnovejše',
+'histfirst' => 'najstarejše',
+'histlast' => 'najnovejše',
 'historysize' => '({{PLURAL:$1|$1 zlog|$1 zloga|$1 zlogi|$1 zlogov}})',
 'historyempty' => '(prazno)',
 
@@ -1237,6 +1256,7 @@ Upoštevajte, da bo uporaba navigacijskih gumbov ponastavila ta stolpec.',
 'compareselectedversions' => 'Primerjaj izbrani redakciji',
 'showhideselectedversions' => 'Prikaži/skrij izbrane redakcije',
 'editundo' => 'razveljavi',
+'diff-empty' => '(Ni razlike)',
 'diff-multi' => '({{PLURAL:$1|$1 vmesna redakcija|$1 vmesni redakciji|$1 vmesne redakcije|$1 vmesnih redakcij}} {{PLURAL:$2|$2 uporabnika|$2 uporabnikov}} {{PLURAL:$1|ni prikazana|nista prikazani|niso prikazane|ni prikazanih}})',
 'diff-multi-manyusers' => '({{PLURAL:$1|$1 vmesna redakcija|$1 vmesni redakciji|$1 vmesne redakcije|$1 vmesnih redakcij}} več kot $2 {{PLURAL:$2|uporabnika|uporabnikov}} {{PLURAL:$1|ni prikazana|nista prikazani|niso prikazane|ni prikazanih}})',
 'difference-missing-revision' => '{{PLURAL:$2|Ene redakcije|$2 redakcij}} razlike ($1) {{PLURAL:$2|nisem}} našel.
@@ -1264,7 +1284,6 @@ Podrobnosti lahko najdete v [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENA
 'searchmenu-legend' => 'Možnosti za iskanje',
 'searchmenu-exists' => "'''Na tem wikiju obstaja stran »[[:$1]]«'''",
 'searchmenu-new' => "'''Ustvari stran »[[:$1]]« na tem wikiju!'''",
-'searchhelp-url' => 'Help:Vsebina',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Iskanje strani s to predpono]]',
 'searchprofile-articles' => 'Članki',
 'searchprofile-project' => 'Pomoč in projektne strani',
@@ -1341,7 +1360,6 @@ Upoštevajte, da so njihovi podatki vsebine {{GRAMMAR:rodilnik|{{SITENAME}}}} mo
 'resetprefs' => 'Počisti neshranjene spremembe',
 'restoreprefs' => 'Obnovi vse privzete nastavitve',
 'prefs-editing' => 'Urejanje',
-'prefs-edit-boxsize' => 'Velikost okna za urejanje.',
 'rows' => 'Vrstic:',
 'columns' => 'Stolpcev:',
 'searchresultshead' => 'Nastavitve poizvedovanja',
@@ -1352,9 +1370,6 @@ Upoštevajte, da so njihovi podatki vsebine {{GRAMMAR:rodilnik|{{SITENAME}}}} mo
 'recentchangesdays-max' => 'Največ $1 {{PLURAL:$1|dan|dneva|dnevi|dni}}',
 'recentchangescount' => 'Privzeto število prikazanih urejanj:',
 'prefs-help-recentchangescount' => 'Vključuje zadnje spremembe, zgodovine strani in dnevniške zapise.',
-'prefs-help-watchlist-token' => 'Izpolnjevanje tega polja s skrivnim ključem bo ustvarilo vir RSS za vaš spisek nadzorov.
-Kdorkoli pozna ta ključ bo lahko bral vaš spisek nadzorov, zato izbrite varen in čim daljši ključ.
-Tukaj je naključno ustvarjena vrednost, ki jo lahko uporabite: $1',
 'savedprefs' => 'Spremembe so bile uspešno shranjene.',
 'timezonelegend' => 'Časovni pas',
 'localtime' => 'Krajevni čas:',
@@ -1385,7 +1400,6 @@ Tukaj je naključno ustvarjena vrednost, ki jo lahko uporabite: $1',
 'prefs-reset-intro' => 'To stran lahko uporabite za ponastavitev nastavitev na privzete za to spletišče.
 Tega ni mogoče razveljaviti.',
 'prefs-emailconfirm-label' => 'Potrditev e-pošte:',
-'prefs-textboxsize' => 'Velikost urejevalnega polja',
 'youremail' => 'E-poštni naslov:',
 'username' => '{{GENDER:$1|Uporabniško|Uporabničino}} ime:',
 'uid' => 'ID {{GENDER:$1|uporabnika|uporabnice}}:',
@@ -1408,7 +1422,7 @@ Ne sme biti daljši od $1 {{PLURAL:$1|znaka|znakov}}.',
 'prefs-help-gender' => 'Podatek ni obvezen, uporablja pa se ga izključno za pravilno obliko naslavljanja programja glede na spol.
 Podatek bo javno prikazan.',
 'email' => 'E-pošta',
-'prefs-help-realname' => 'Pravo ime je neobvezno.
+'prefs-help-realname' => 'Pravo ime ni obvezno.
 Če se ga odločite navesti, bo uporabljeno za priznavanje vašega dela.',
 'prefs-help-email' => 'E-poštni naslov ni obvezen, vendar omogoča, da vam v primeru pozabljenega gesla pošljemo novo.',
 'prefs-help-email-others' => 'Omogočite lahko tudi možnost, da vam lahko ostali uporabniki pošiljajo e-pošto prek vaše uporabniške ali pogovorne strani.
@@ -1419,7 +1433,9 @@ Ko vas drugi uporabniki kontaktirajo, jim vašega e-poštnega naslova ne bomo ra
 'prefs-signature' => 'Podpis',
 'prefs-dateformat' => 'Zapis datuma',
 'prefs-timeoffset' => 'Časovni odmik',
-'prefs-advancedediting' => 'Napredne možnosti',
+'prefs-advancedediting' => 'Splošno',
+'prefs-editor' => 'Urejevalnik',
+'prefs-preview' => 'Predogled',
 'prefs-advancedrc' => 'Napredne možnosti',
 'prefs-advancedrendering' => 'Napredne možnosti',
 'prefs-advancedsearchoptions' => 'Napredne možnosti',
@@ -1455,6 +1471,7 @@ Ko vas drugi uporabniki kontaktirajo, jim vašega e-poštnega naslova ne bomo ra
 'userrights-changeable-col' => 'Skupine, ki jih lahko spremenite',
 'userrights-unchangeable-col' => 'Skupine, ki jih ne morete spremeniti',
 'userrights-conflict' => 'Spor uporabniških pravic! Prosimo, da ponovno uveljavite svoje spremembe.',
+'userrights-removed-self' => 'Uspešno ste odstranili svoje pravice. Tako sedaj ne morete več dostopati do te strani.',
 
 # Groups
 'group' => 'Skupina:',
@@ -1498,7 +1515,7 @@ Ko vas drugi uporabniki kontaktirajo, jim vašega e-poštnega naslova ne bomo ra
 'right-reupload-shared' => 'Nalaganje lokalnih zamenjav za datoteke iz skupnih večpredstavnostnih skladišč',
 'right-upload_by_url' => 'Nalaganje datotek iz naslova URL',
 'right-purge' => 'Osvežitev predpomnilnika strani, brez potrditve',
-'right-autoconfirmed' => 'Urejanje delno zaščitenih strani',
+'right-autoconfirmed' => 'Brez vplivov omejitev dejavnosti glede na IP',
 'right-bot' => 'Naj bo obravnavan kot avtomatiziran postopek',
 'right-nominornewtalk' => 'Urejanja pogovornih strani, ki niso označena kot manjša, sprožijo obvestilo o novem sporočilu',
 'right-apihighlimits' => 'Uporaba višje omejitve poizvedb API',
@@ -1519,12 +1536,20 @@ Ko vas drugi uporabniki kontaktirajo, jim vašega e-poštnega naslova ne bomo ra
 'right-ipblock-exempt' => 'Izogne se blokadam IP-naslova, samodejnim blokadam in blokadam območij',
 'right-proxyunbannable' => 'Izogne se samodejnim blokadam proxyjev',
 'right-unblockself' => 'Deblokiraj samega sebe',
-'right-protect' => 'Spreminjanje stopnje zaščite in urejanje zaščitenih strani',
-'right-editprotected' => 'Urejanje zaščitenih strani (brez kaskadne zaščite)',
+'right-protect' => 'Spreminjanje stopenj zaščite in urejanje kaskadno zaščitenih strani',
+'right-editprotected' => 'Urejanje strani, zaščitenih kot »{{int:protect-level-sysop}}«',
+'right-editsemiprotected' => 'Urejanje strani, zaščitenih kot »{{int:protect-level-autoconfirmed}}«',
 'right-editinterface' => 'Urejanje uporabniškega vmesnika',
 'right-editusercssjs' => 'Urejanje CSS- in JS-datotek drugih uporabnikov',
 'right-editusercss' => 'Uredi CSS datotek drugih uporabnikov',
 'right-edituserjs' => 'Uredi JS datotek drugih uporabnikov',
+'right-editmyusercss' => 'Uredite svoje uporabniške datoteke CSS',
+'right-editmyuserjs' => 'Uredite svoje uporabniške datoteke JavaScript',
+'right-viewmywatchlist' => 'Ogledovanje svojega spiska nadzorov',
+'right-editmywatchlist' => 'Urejanje svojega spiska nadzorov. Pomnite, da bodo nekatera dejanja dodala strani tudi brez te pravice.',
+'right-viewmyprivateinfo' => 'Ogled svojih zasebnih podatkov (npr. e-poštnega naslova, pravega imena)',
+'right-editmyprivateinfo' => 'Urejanje svojih zasebnih podatkov (npr. e-poštnega naslova, pravega imena)',
+'right-editmyoptions' => 'Urejanje svojih nastavitev',
 'right-rollback' => 'Hitro vračanje urejanj zadnjega uporabnika, ki je urejal določeno stran',
 'right-markbotedits' => 'Označi vrnjena urejanja kot urejanja botov',
 'right-noratelimit' => 'Omejitve dejavnosti ne veljajo',
@@ -1586,12 +1611,17 @@ Ko vas drugi uporabniki kontaktirajo, jim vašega e-poštnega naslova ne bomo ra
 'action-userrights-interwiki' => 'upravljanje uporabniških pravic za uporabnike drugih wikijev',
 'action-siteadmin' => 'zaklenitev ali odklepanje podatkovne baze',
 'action-sendemail' => 'pošiljanje e-sporočil',
+'action-editmywatchlist' => 'urejanje svojega spiska nadzorov',
+'action-viewmywatchlist' => 'ogleda svojega spiska nadzorov',
+'action-viewmyprivateinfo' => 'ogled svojih zasebnih informacij',
+'action-editmyprivateinfo' => 'urejanje svojih zasebnih informacij',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|sprememba|spremembi|spremembe|sprememb|sprememb}}',
 'recentchanges' => 'Zadnje spremembe',
 'recentchanges-legend' => 'Možnosti zadnjih sprememb',
 'recentchanges-summary' => 'Na tej strani lahko spremljate najnovejše spremembe wikija.',
+'recentchanges-noresult' => 'V podanem obdobju nobena sprememba ne ustreza tem merilom.',
 'recentchanges-feed-description' => 'Spremljajte zadnje spremembe wikija prek tega vira.',
 'recentchanges-label-newpage' => 'S tem urejanjem je bila ustvarjena nova stran',
 'recentchanges-label-minor' => 'Manjše urejanje',
@@ -1628,7 +1658,6 @@ Ko vas drugi uporabniki kontaktirajo, jim vašega e-poštnega naslova ne bomo ra
 'recentchangeslinked-feed' => 'Sorodne spremembe',
 'recentchangeslinked-toolbox' => 'Sorodne spremembe',
 'recentchangeslinked-title' => 'Spremembe, povezane z "$1"',
-'recentchangeslinked-noresult' => 'Na povezanih straneh v določenem obdobju ni bilo nobenih sprememb.',
 'recentchangeslinked-summary' => "To je seznam nedavnih sprememb strani povezanih na določeno stran (ali iz določene kategorije).
 Strani iz [[Special:Watchlist|vašega spiska nadzorov]] so '''odebeljene'''.",
 'recentchangeslinked-page' => 'Naslov strani:',
@@ -1640,7 +1669,7 @@ Strani iz [[Special:Watchlist|vašega spiska nadzorov]] so '''odebeljene'''.",
 'reuploaddesc' => 'Prekliči nalaganje in se vrni na obrazec za nalaganje',
 'upload-tryagain' => 'Vnesite spremenjen opis datoteke',
 'uploadnologin' => 'Niste prijavljeni',
-'uploadnologintext' => 'Za nalaganje datotek se [[Special:UserLogin|prijavite]].',
+'uploadnologintext' => 'Za nalaganje datotek se morate $1.',
 'upload_directory_missing' => 'Mapa za nalaganje datotek ($1) manjka in je ni bilo mogoče ustvariti s spletnim strežnikom.',
 'upload_directory_read_only' => 'V mapo za nalaganje datotek ($1) spletni strežnik ne more pisati.',
 'uploaderror' => 'Napaka',
@@ -2287,7 +2316,6 @@ Morebitne spremembe te strani in pripadajoče pogovorne strani bodo navedene tuk
 'unwatchthispage' => 'Prenehaj opazovati stran',
 'notanarticle' => 'Ni članek',
 'notvisiblerev' => 'Redakcija je bila izbrisana',
-'watchnochange' => 'V prikazanem časovnem obdobju ni nihče spremenil nadzorovanih strani.',
 'watchlist-details' => 'Spremljate $1 {{PLURAL:$1|stran|strani|strani|strani|strani}} (pogovorne strani niso vštete).',
 'wlheader-enotif' => 'Obveščanje po elektronski pošti je omogočeno.',
 'wlheader-showupdated' => "Strani, spremenjene od vašega zadnjega ogleda, so prikazane '''krepko'''.",
@@ -2397,7 +2425,7 @@ stran je spremenil ali vrnil že nekdo drug.
 Zadnji je stran urejal uporabnik [[User:$3|$3]] ([[User talk:$3|pogovor]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "Povzetek urejanja je bil: »''$1''«.",
 'revertpage' => 'vrnitev sprememb uporabnika [[Special:Contributions/$2|$2]] ([[User talk:$2|pogovor]]) na zadnje urejanje uporabnika [[User:$1|$1]]',
-'revertpage-nouser' => 'vrnitev sprememb (uporabniško ime odstranjeno) na  zadnje urejanje uporabnika [[User:$1|$1]]',
+'revertpage-nouser' => 'vrnitev sprememb skritega uporabnika na zadnjo redakcijo uporabnika [[User:$1|$1]]',
 'rollback-success' => 'Razveljavljene spremembe uporabnika $1;
 vrnjeno na urejanje uporabnika $2.',
 
@@ -2543,7 +2571,7 @@ $1',
 'mycontris' => 'Prispevki',
 'contribsub2' => 'Uporabnik: $1 ($2)',
 'nocontribs' => 'Ne najdem nobene merilom ustrezajoče spremembe.',
-'uctop' => ' (vrh)',
+'uctop' => '(trenutno)',
 'month' => 'Od meseca (in prej):',
 'year' => 'Od leta (in prej):',
 
@@ -3804,7 +3832,6 @@ Uporabite lahko tudi [[Special:EditWatchlist|standardni urejevalnik]].',
 'version-other' => 'Ostalo',
 'version-mediahandlers' => 'Upravljavci predstavnostnih vsebin',
 'version-hooks' => 'Razširitve',
-'version-extension-functions' => 'Funkcije razširitev',
 'version-parser-extensiontags' => 'Etikete razširitev razčlenjevalnika',
 'version-parser-function-hooks' => 'Funkcije razširitev razčlenjevalnika',
 'version-hook-name' => 'Ime razširitve',
@@ -3888,6 +3915,7 @@ Skupaj s programom bi morali bi prejeti [{{SERVER}}{{SCRIPTPATH}}/COPYING kopijo
 'tags' => 'Veljavne etikete sprememb',
 'tag-filter' => 'Filter [[Special:Tags|oznak]]:',
 'tag-filter-submit' => 'Filtriraj',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Oznaka|Oznaki|Oznake}}]]: $2)',
 'tags-title' => 'Etikete',
 'tags-intro' => 'Ta stran navaja etikete, s katerimi lahko programje označi urejanja, in njihov pomen.',
 'tags-tag' => 'Ime oznake',
index c60c2b8..ae58c79 100644 (file)
@@ -8,6 +8,7 @@
  * @file
  *
  * @author Als-Holder
+ * @author Geitost
  * @author Jens Liebenau
  * @author Jonny84
  * @author Kaganer
@@ -242,7 +243,6 @@ $1",
 'disclaimers' => 'Impressum',
 'disclaimerpage' => 'Project:Impressum',
 'edithelp' => 'Bearbeitungshilfe',
-'edithelppage' => 'Help:Bearbeitungshilfe',
 'helppage' => 'Help:Hilfe',
 'mainpage' => 'Hauptseite',
 'mainpage-description' => 'Hauptseite',
@@ -375,7 +375,7 @@ Beachte, doas einige Seyta noo oazeiga kinna, doas du oagemeldet best, sulange d
 'logout' => 'Oabmelda',
 'userlogout' => 'Oabmelda',
 'notloggedin' => 'Nä oangemeldet',
-'nologin' => "Du hast keen Benutzerkonto? '''$1'''.",
+'nologin' => 'Du hast keen Benutzerkonto? $1.',
 'nologinlink' => 'Neues Benutzerkonto oanleega',
 'createaccount' => 'Benutzerkonto oanlega',
 'gotaccount' => "Du hast bereits a Benutzerkonto? '''$1'''.",
@@ -822,7 +822,6 @@ Stelle sicher, doaß de Versionsgeschichte anner Seite historisch korrekt ies.',
 'saveprefs' => 'Eenstallunga speichern',
 'restoreprefs' => 'Olle Standardeinstallunga wiederherstalla',
 'prefs-editing' => 'Bearbta',
-'prefs-edit-boxsize' => 'Griße des Beoarbeetungsfansters:',
 'rows' => 'Zeila:',
 'columns' => 'Spalta:',
 'resultsperpage' => 'Treffer pro Seite:',
@@ -841,7 +840,6 @@ Stelle sicher, doaß de Versionsgeschichte anner Seite historisch korrekt ies.',
 'prefs-namespaces' => 'Noamasräume',
 'defaultns' => 'Andernfoalls ei diesen Noamasräumen sucha:',
 'prefs-custom-js' => 'Nutzerdefiniertes JS',
-'prefs-textboxsize' => 'Griße des Beoarbeetungsfansters',
 'youremail' => 'E-Mail-Adresse:',
 'username' => 'Benutzernoame:',
 'prefs-memberingroups' => 'Mitglied dar {{PLURAL:$1|Nutzergruppe|Nutzergruppen}}:',
@@ -1031,7 +1029,6 @@ Stelle sicher, doaß de Versionsgeschichte anner Seite historisch korrekt ies.',
 'recentchangeslinked-feed' => 'Änderunga oa verlinkta Seyta',
 'recentchangeslinked-toolbox' => 'Änderunga oa verlinkta Seyta',
 'recentchangeslinked-title' => 'Änneronga oa Seyta, de voo „$1“ verlinkt sein',
-'recentchangeslinked-noresult' => 'Eim ausgewählta Zeitraum wurden oa dann verlinkten Seyta kenne Änderunga vurgenumma.',
 'recentchangeslinked-summary' => "Diese Spezialseyte listet de letzta Änderunga oa dan verlinkta Seyta uff (bzw. bei Kategoria oa dan Mitgliedern dieser Kategorie). Seyta uff denner [[Special:Watchlist|Beobachtungsliste]] sein '''fett''' dargestellt.",
 'recentchangeslinked-page' => 'Seite:',
 'recentchangeslinked-to' => 'Zeige Änneronga uff Seita, de hierher verlinka',
@@ -1090,11 +1087,11 @@ Bitte gieb dar Datei an'n Noama, dar dann Inhalt besser beschreibt.",
 'upload-proto-error' => 'Foalsches Protokoll',
 'upload-proto-error-text' => 'De URL muuß miet <code>http://</code> oder <code>ftp://</code> beginna.',
 'upload-file-error-text' => "Bei dar Erstellung a'r temporären Datei uff'd Server ies a interner Fahler uffgetreta.
-Bitte informiere an'n [[Special:ListUsers/sysop|System-Administrator]].",
+Bitte informiere an'n [[Special:ListUsers/sysop|Administrator]].",
 'upload-misc-error' => 'Unbekennter Fahler beim Huchloada',
 'upload-misc-error-text' => "Beim Huchloada ies a unbekennter Fahler uffgetreta.
 Priefe de URL uff Fahler, dann Online-Status der Seite und versuche 's erneut.
-Wenn doas Problem wetter bestieht, informiere anna [[Special:ListUsers/sysop|System-Administrator]].",
+Wenn doas Problem wetter bestieht, informiere anna [[Special:ListUsers/sysop|Administrator]].",
 'upload-too-many-redirects' => 'De URL beinhaltete zu viele Wetterleitunga',
 'upload-unknown-size' => 'Unbekennte Grieße',
 'upload-http-error' => 'A HTTP-Fahler ies uffgetreta: $1',
@@ -1408,7 +1405,6 @@ Wenn du de Seite wieder vu denner Beobachtungsliste entferna mechtest, klicke uf
 'unwatch' => 'nä mehr beobachta',
 'unwatchthispage' => 'Nä mehr beobachta',
 'notanarticle' => 'Keene Seite',
-'watchnochange' => 'Kenne dar vu dir beobachteta Seyta wurde während des oagezeigta Zeitraums beoarbeetet.',
 'watchlist-details' => 'Du beobachtest {{PLURAL:$1|1 Seite|$1 Seita}}.',
 'wlheader-enotif' => 'Dar E-Mail-Benoachrichtigungsdienst ies aktiviert.',
 'wlheader-showupdated' => "Seyta miet noo ne gesehenen Änderunga waan '''fett''' dargestellt.",
@@ -2286,7 +2282,6 @@ Du koast au de [[Special:EditWatchlist|Standard-Beoarbeetungsseyte]] benutza.',
 'version-specialpages' => 'Spezialseyta',
 'version-other' => 'Oanderes',
 'version-hooks' => "Schnittstalla ''(Hooks)''",
-'version-extension-functions' => 'Funksjonnsuffruffe',
 'version-parser-extensiontags' => "Parser-Erweiterunga ''(tags)''",
 'version-parser-function-hooks' => 'Parser-Funksjonna',
 'version-hook-name' => 'Schnittstallanoame',
index d0ffe71..07a173f 100644 (file)
@@ -251,7 +251,6 @@ $1',
 'disclaimers' => "Masuul la'aan",
 'disclaimerpage' => "Project:Masuul la'aan guud",
 'edithelp' => 'Caawinaada wax ka bedelka',
-'edithelppage' => 'Help:Wax ka bedelka',
 'helppage' => 'Help:Caawinaad',
 'mainpage' => 'Bogga Hore',
 'mainpage-description' => 'Bogga Hore',
@@ -385,9 +384,18 @@ Sababta neh waxaa waaye "\'\'$2\'\'".',
 Waad sii isticmaali kartaa {{SITENAME}} adoona lagu aqoon, ama <span class='plainlinks'>[$1 gudaha gal]</span> adiga oo isticmaalaya magacaagii hore ama mid ka duwan. OGEYSIIS waxaa lagayabaa bogyaasha qaarkood in ay yiraahdaan wali gudaha ayaad ku jirtaa, ilaa inta aad ka nadiifineesid browsahaaga Internetka.",
 'welcomeuser' => 'Soo dhowoow, $1',
 'yourname' => 'Magaca gudagalka:',
+'userlogin-yourname' => 'Magaca gudagalka',
+'userlogin-yourname-ph' => 'Gasho magacaada kuu gaarka ah',
 'yourpassword' => 'Eraysir:',
+'userlogin-yourpassword' => 'Erey sir',
+'userlogin-yourpassword-ph' => 'Gali erey sir',
+'createacct-yourpassword-ph' => 'Gali erey sir',
 'yourpasswordagain' => 'Markale qor ereysirka:',
+'createacct-yourpasswordagain' => 'Hubi erey sirta',
+'createacct-yourpasswordagain-ph' => 'Mar kale gali erey sirta',
 'remembermypassword' => 'Kumbuyuutarkaan ku xasuusnaaw magaceyga gudagalka (ilaa  $1 {{PLURAL:$1|maalin|maalmood}})',
+'userlogin-remembermypassword' => 'Ka dhig mid diyaar ah mar waliba',
+'userlogin-signwithsecure' => 'Adeegso khad la hubo',
 'yourdomainname' => 'Magacaga shabakada',
 'password-change-forbidden' => 'Ma badali kartid Eraysir ee wiki.',
 'login' => 'Gudaha gal',
@@ -398,18 +406,33 @@ Waad sii isticmaali kartaa {{SITENAME}} adoona lagu aqoon, ama <span class='plai
 'logout' => 'Ka bax',
 'userlogout' => 'Ka bax',
 'notloggedin' => 'Gudaha kuma jirtid',
-'nologin' => "Akoon ma heysatid? '''$1'''.",
+'userlogin-noaccount' => 'Akoon ma heysatid?',
+'userlogin-joinproject' => 'Ku biir {{SITENAME}}',
+'nologin' => 'Akoon ma heysatid? $1.',
 'nologinlink' => 'Akoon sameyso',
 'createaccount' => 'Sameey gudagale',
 'gotaccount' => "Waan heystaa gudagale? '''$1'''.",
 'gotaccountlink' => 'Gudaha gal',
 'userlogin-resetlink' => 'Ma ilaawday tafaasiisha gudagalahaada?',
+'userlogin-resetpassword-link' => 'Dib usoo cesho erey sirtaada',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Caawinaad habka gudagalka]]',
+'createacct-join' => 'Gali macluumaadkaada gaarka ah.',
+'createacct-emailoptional' => 'Ciwaanka e-mail-ka (dooqasho)',
+'createacct-email-ph' => 'Gali Ciwaankaada e-mail-ka',
 'createaccountmail' => 'E-mail ahaan',
 'createaccountreason' => 'Sababta:',
+'createacct-captcha' => 'Hubin amni',
+'createacct-imgcaptcha-ph' => 'Gali qoraalka aad kor ku aragto',
+'createacct-submit' => 'Sameeyso akoonkaada',
+'createacct-benefit-heading' => 'Bogga {{SITENAME}} waxaa sameeyey dad kula mid ah.',
+'createacct-benefit-body1' => '{{PLURAL:$1|bedel|bedelaadyo}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|bog|Bogag}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|contributor|wax qoreyaasha}}',
 'badretype' => 'Ereyada sirta ah oo qortay ma islahan.',
 'userexists' => 'Magaca isticmaalaha aad qortay wuu jiraa.
 Fadlan dooro magac kale.',
 'loginerror' => 'Qalad gudagalista',
+'createacct-error' => 'Qalad dhacay samaynta akoonka',
 'createaccounterror' => 'Ma sameeyn karin akoon: $1',
 'nocookiesnew' => "Akoonka isticmaalahaan waa la sameeyay, laakiin adiga gudaha uma soo gelin.
 {{SITENAME}} wuxuu isticmaalaa cookies si ee gudaha u galaan isticmaale yaasha.
@@ -492,6 +515,7 @@ Hadda gudaha ku gal',
 
 # Special:PasswordReset
 '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',
@@ -739,7 +763,6 @@ sababteeda neh waxaa laga heli kartaa  [{{fullurl:{{#Special:Log}}/delete|page={
 'searchmenu-legend' => 'Raadi doorashooyinka',
 'searchmenu-exists' => "'''Wikigaan wuu ku jiraa bog la dhoho  \"[[:\$1]]\" .'''",
 'searchmenu-new' => "'''Ku sameey bogga  \"[[:\$1]]\" wikigaan!'''",
-'searchhelp-url' => 'Help:Caawinaad',
 'searchprofile-articles' => 'Maqaalada kooban',
 'searchprofile-project' => 'Caawin iyo Bogga mashruuca',
 'searchprofile-images' => 'Multimedia-ha',
@@ -900,7 +923,6 @@ E-mailkaada mala sheegaayo markii ee dadka kale kula soo xiriirayaan.',
 'recentchangeslinked' => "Isbedelada la'xiriira",
 'recentchangeslinked-toolbox' => "Isbedelada la'xiriira",
 'recentchangeslinked-title' => 'Wax bedelka la xiriiro "$1"',
-'recentchangeslinked-noresult' => 'Wax isbedel ah laguma sameyn boggaga ilaa xiligii la doortay.',
 'recentchangeslinked-summary' => "Liiskaan waa badalyada mardhow lagu sameeyay bogyaasha la xiriiray boggaga khaaska ah  (ama ka mid ahaa qeybaha khaaska ah).
 Boggaga ku jiro  [[Special:Watchlist|liiskaaga waardiyaha]] waa '''butac'''.",
 'recentchangeslinked-page' => 'Magaca bogga:',
@@ -911,6 +933,7 @@ Boggaga ku jiro  [[Special:Watchlist|liiskaaga waardiyaha]] waa '''butac'''.",
 'uploadbtn' => 'Soo geli file',
 'uploadnologin' => 'Gudaha kuma jirtid',
 'uploaderror' => 'Qalad soo gelinta',
+'upload-permitted' => 'Nuucyada faylasha la ogolyahay: $1.',
 'uploadlog' => 'gudagalaha soo galiyay',
 'uploadlogpage' => 'Gudagalaha soo galiyay',
 'filename' => 'Magaca faylka',
@@ -936,6 +959,10 @@ file'kaan waa  $2.",
 'uploaddisabledtext' => 'soo gelinta faylyada waa la xiray',
 'uploadvirus' => 'faylka waxaa ku jiro fayrus!
 ku saabsan: $1',
+'upload-source' => 'Asalka fileka',
+'destfilename' => 'Magaca faylka la doonayo',
+'upload-maxfilesize' => 'Ugu badnaan cabirka faylka: $1',
+'upload-description' => 'Qeexida faylka',
 'upload-options' => 'Dooqyada soo gelinta',
 'watchthisupload' => 'Faylkaan waardiyeey',
 'upload-failure-subj' => 'Dhibaatada soo gelinta',
@@ -1451,6 +1478,9 @@ waxaad awoodaa [[Special:EditWatchlist/raw|Liiska wax ka bedel]].',
 # Special:Version
 'version-poweredby-others' => 'kuwa kale',
 
+# Special:Redirect
+'redirect-file' => 'Magaca faylka',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch-legend' => 'Raadi mid tusaale ah',
 'fileduplicatesearch-submit' => 'Raadi',
index 2a78608..370744a 100644 (file)
@@ -456,7 +456,6 @@ $1",
 'disclaimers' => 'Shfajësimet',
 'disclaimerpage' => 'Project:Shfajësimet e përgjithshme',
 'edithelp' => 'Ndihmë për redaktim',
-'edithelppage' => 'Help:Redaktimi',
 'helppage' => 'Help:Përmbajtje',
 'mainpage' => 'Faqja kryesore',
 'mainpage-description' => 'Faqja kryesore',
@@ -736,10 +735,8 @@ Për të hyrë tërësisht duhet të vendosni një fjalëkalim të ri këtu:',
 
 # Special:PasswordReset
 'passwordreset' => 'Ndrysho fjalkalimin',
-'passwordreset-text' => 'Plotësoni këtë formular për të marrë një këshillë e-mail të dhënat e llogarisë suaj.',
 'passwordreset-legend' => 'Ndrysho fjalkalimin',
 'passwordreset-disabled' => 'Rivendosja e fjalëkalimit është deaktivizuar në këtë wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1| | Shkruani një nga pjesët e të dhënave më poshtë}}',
 'passwordreset-username' => 'Nofka:',
 'passwordreset-domain' => 'Domain:',
 'passwordreset-capture' => 'Dëshiron të shikosh e-mail-in që rezulton?',
@@ -1208,7 +1205,6 @@ Kini kujdes se përdorimi i lidhjeve të shfletimit do të ndryshojë përzgjedh
 'searchmenu-legend' => 'Parazgjedhjet e kërkimit',
 'searchmenu-exists' => "'''Në këtë wiki kjo faqe është emëruar \"[[:\$1]]\"'''",
 'searchmenu-new' => "'''Hapë faqen \"[[:\$1]]\" në këtë wiki!'''",
-'searchhelp-url' => 'Help:Ndihmë',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Shfletoi faqet me këtë parashtesë]]',
 'searchprofile-articles' => 'Përmbajtja e faqeve',
 'searchprofile-project' => 'Ndihmë dhe faqet e Projektit',
@@ -1282,7 +1278,6 @@ Kini kujdes se përdorimi i lidhjeve të shfletimit do të ndryshojë përzgjedh
 'resetprefs' => 'Rikthe parapëlqimet',
 'restoreprefs' => 'Rikthe të gjitha të dhënat e mëparshme',
 'prefs-editing' => 'Redaktimi',
-'prefs-edit-boxsize' => 'Madhësia e dritares së redaktimit.',
 'rows' => 'Rreshta:',
 'columns' => 'Kollona:',
 'searchresultshead' => 'Kërkimi',
@@ -1293,9 +1288,6 @@ Kini kujdes se përdorimi i lidhjeve të shfletimit do të ndryshojë përzgjedh
 'recentchangesdays-max' => '(maksimum $1 {{PLURAL:$1|dit|ditë}})',
 'recentchangescount' => 'Numri i redaktimeve për të treguar:',
 'prefs-help-recentchangescount' => 'Kjo përfshin ndryshimet e freskëta, historikun e faqes dhe regjistrat.',
-'prefs-help-watchlist-token' => 'Plotësimi në këtë fushë me një kyç të fshehtë do të gjenerojë një RSS për të listës mbikqyrëse tuaj. 
- Kushdo që e di të rëndësishme në këtë fushë do të jetë në gjendje për të lexuar lista mbikqyrëse e juaj, kështu që zgjidhni një vlerë të sigurt. 
- Këtu ka një vlerë të rastësishme-generated ju mund të përdorni: $1',
 'savedprefs' => 'Parapëlqimet tuaja janë ruajtur.',
 'timezonelegend' => 'Zona kohore:',
 'localtime' => 'Ora lokale:',
@@ -1326,7 +1318,6 @@ Kini kujdes se përdorimi i lidhjeve të shfletimit do të ndryshojë përzgjedh
 'prefs-reset-intro' => 'Mundeni me përdorë këtë faqe për me i kthy parapëlqimet tueja në ato të paracaktuemet e faqes.
 Kjo nuk mundet me u zhbâ.',
 'prefs-emailconfirm-label' => 'Konfirmimi i emailit:',
-'prefs-textboxsize' => 'Madhësia e dritares së redakrimit',
 'youremail' => 'Adresa e email-it*',
 'username' => 'Nofka e përdoruesit:',
 'uid' => 'Nr. i identifikimit:',
@@ -1565,7 +1556,6 @@ Kjo informatë është publike.',
 'recentchangeslinked-feed' => 'Ndryshime të ndërvarura',
 'recentchangeslinked-toolbox' => 'Ndryshime të ndërvarura',
 'recentchangeslinked-title' => 'Ndryshime që kanë lidhje me "$1"',
-'recentchangeslinked-noresult' => 'Nuk ka pasur ndryshime tek faqet e lidhura gjatë kohës së dhënë.',
 'recentchangeslinked-summary' => "Kjo është një listë e ndryshimeve së fundmi të faqeve të lidhura nga faqja e dhënë (ose bëjnë pjesë tek kategoria e dhënë).
 Faqet [[Special:Watchlist|nën mbikqyrjen tuaj]] duken të '''theksuara'''.",
 'recentchangeslinked-page' => 'Emri i faqes:',
@@ -2184,7 +2174,6 @@ Në qoftë se dëshironi të hiqni një faqe nga lista mbikqyrëse më vonë, sh
 'unwatchthispage' => 'Mos e mbikqyr',
 'notanarticle' => 'Nuk është artikull',
 'notvisiblerev' => 'Revizioni është grisur',
-'watchnochange' => 'Asnjë nga artikujt nën mbikqyrje nuk është redaktuar gjatë kohës së dhënë.',
 'watchlist-details' => '{{PLURAL:$1|$1 faqe|$1 faqe}} nën mbikqyrje duke mos numëruar faqet e diskutimit.',
 'wlheader-enotif' => 'Njoftimi me email është lejuar.',
 'wlheader-showupdated' => "Faqet që kanë ndryshuar nga vizita juaj e fundit do të tregohen të '''trasha'''",
@@ -3615,7 +3604,6 @@ Ju gjithashtu mund [[Special:EditWatchlist|të përdorni redaktuesin standart]].
 'version-other' => 'Të tjera',
 'version-mediahandlers' => 'Mbajtesit e Media-s',
 'version-hooks' => 'Goditjet',
-'version-extension-functions' => 'Funksionet shtese',
 'version-parser-extensiontags' => 'Parser etiketat shtese',
 'version-parser-function-hooks' => 'Parser goditjet e funksionit',
 'version-hook-name' => 'Emri i goditjes',
index 92bcdcc..bb9c100 100644 (file)
@@ -11,6 +11,7 @@
  * @author CERminator
  * @author Charmed94
  * @author FriedrickMILBarbarossa
+ * @author Geitost
  * @author Helios13
  * @author Kaganer
  * @author Kale
@@ -651,7 +652,6 @@ $1',
 'disclaimers' => 'Одрицање одговорности',
 'disclaimerpage' => 'Project:Одрицање одговорности',
 'edithelp' => 'Помоћ при уређивању',
-'edithelppage' => 'Help:Уређивање',
 'helppage' => 'Help:Садржај',
 'mainpage' => 'Главна страна',
 'mainpage-description' => 'Главна страна',
@@ -683,7 +683,6 @@ $1',
 'newmessagesdifflinkplural' => '{{PLURAL:$1|последњу измену|последње измене}}',
 'youhavenewmessagesmulti' => 'Имате нових порука на $1',
 'editsection' => 'уреди',
-'editsection-brackets' => '[$1]',
 'editold' => 'уреди',
 'viewsourceold' => 'изворни код',
 'editlink' => 'уреди',
@@ -833,12 +832,17 @@ $2',
 Не заборавите да промените своја [[Special:Preferences|подешавања]].',
 'yourname' => 'Корисничко име:',
 'userlogin-yourname' => 'Корисничко име',
+'userlogin-yourname-ph' => 'Унесите ваше корисничко име',
 'yourpassword' => 'Лозинка:',
 'userlogin-yourpassword' => 'Лозинка',
-'userlogin-yourpassword-ph' => 'Унесите лозинку',
+'userlogin-yourpassword-ph' => 'Унесите вашу лозинку',
+'createacct-yourpassword-ph' => 'Унесите нову лозинку',
 'yourpasswordagain' => 'Потврда лозинке:',
-'remembermypassword' => 'Запамти ме на овом прегледачу (најдуже $1 {{PLURAL:$1|дан|дана|дана}})',
-'userlogin-remembermypassword' => 'Запамти ме',
+'createacct-yourpasswordagain' => 'Потврдите лозинку',
+'createacct-yourpasswordagain-ph' => 'Унесите лозинку још једном',
+'remembermypassword' => 'Запамти моју лозинку на овом прегледачу (најдуже $1 {{PLURAL:$1|дан|дана}})',
+'userlogin-remembermypassword' => 'Остави ме пријављеног/у',
+'userlogin-signwithsecure' => 'Користите сигурну конекцију',
 'securelogin-stick-https' => 'Останите повезани са HTTPS након пријаве',
 'yourdomainname' => 'Домен:',
 'password-change-forbidden' => 'Не можете да промените лозинку на овом викију.',
@@ -851,17 +855,37 @@ $2',
 'logout' => 'Одјава',
 'userlogout' => 'Одјави ме',
 'notloggedin' => 'Нисте пријављени',
-'nologin' => 'Немате налог? Идите на страницу „$1“.',
+'userlogin-noaccount' => 'Немате налог?',
+'userlogin-joinproject' => 'Отворите га',
+'nologin' => 'Немате налог? Идите на страницу $1.',
 'nologinlink' => 'Отварање налога',
 'createaccount' => 'Отвори налог',
 'gotaccount' => 'Већ имате налог? Идите на страницу „$1“.',
 'gotaccountlink' => 'Пријава',
 'userlogin-resetlink' => 'Заборавили сте податке за пријаву?',
+'userlogin-resetpassword-link' => 'Ресетујте лозинку',
+'helplogin-url' => 'Help:Logging in',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Помоћ при пријављивању]]',
+'createacct-join' => 'Унесите своје податке испод',
+'createacct-emailrequired' => 'Адреса е-поште',
+'createacct-emailoptional' => 'Адреса е-поште (опцијоно)',
+'createacct-email-ph' => 'Унесите вашу адресу е-поште',
 'createaccountmail' => 'Користите привремену, случајно створену лозинку и пошаљите на доле наведену адресу електронске поште',
+'createacct-realname' => 'Право име (опцијоно)',
 'createaccountreason' => 'Разлог:',
+'createacct-reason' => 'Разлог',
+'createacct-reason-ph' => 'Зашто правите још један налог?',
+'createacct-captcha' => 'Сигурносна провера',
+'createacct-imgcaptcha-ph' => 'Унесите текст који видите изнад',
+'createacct-submit' => 'Отворите налог',
+'createacct-benefit-heading' => '{{SITENAME}} је направљен од стране људи као што сте ви.',
+'createacct-benefit-body1' => '{{PLURAL:$1|измена}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|страница}}',
+'createacct-benefit-body3' => 'скорашњих {{PLURAL:$1|доприноса}}',
 'badretype' => 'Унете лозинке се не поклапају.',
 'userexists' => 'Корисничко име је заузето. Изаберите друго.',
 'loginerror' => 'Грешка при пријављивању',
+'createacct-error' => 'Дошло је до грешке при креирању налога',
 'createaccounterror' => 'Не могу да отворим налог: $1',
 'nocookiesnew' => 'Кориснички налог је отворен, али нисте пријављени.
 Овај вики користи колачиће за пријаву. Вама су колачићи онемогућени.
@@ -957,10 +981,9 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'Обнављање лозинке',
-'passwordreset-text' => 'Попуните овај образац да бисте ресетовали лозинку.',
+'passwordreset-text-one' => 'Попуните овај образац да бисте ресетовали лозинку.',
 'passwordreset-legend' => 'Поништи лозинку',
 'passwordreset-disabled' => 'Обнављање лозинке је онемогућено на овом викију.',
-'passwordreset-pretext' => '{{PLURAL:$1||Унесите један од делова података испод}}',
 'passwordreset-username' => 'Корисничко име:',
 'passwordreset-domain' => 'Домен:',
 'passwordreset-capture' => 'Погледати крајњу поруку?',
@@ -1191,7 +1214,7 @@ $2
 'sectioneditnotsupported-text' => 'Уређивање одељка није подржано на овој страници.',
 'permissionserrors' => 'Грешке у дозволама',
 'permissionserrorstext' => 'Немате овлашћење за ту радњу из {{PLURAL:$1|следећег|следећих}} разлога:',
-'permissionserrorstext-withaction' => 'Ð\9dемаÑ\82е Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ\83 Ð´а $2 из {{PLURAL:$1|следећег|следећих}} разлога:',
+'permissionserrorstext-withaction' => 'Ð\9dемаÑ\82е Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ\83 Ð·а $2 из {{PLURAL:$1|следећег|следећих}} разлога:',
 'recreate-moveddeleted-warn' => "'''Упозорење: поново правите страницу која је претходно обрисана.'''
 
 Размотрите да ли је прикладно да наставите с уређивањем ове странице.
@@ -1205,6 +1228,7 @@ $2
 Изгледа да је обрисана.',
 'edit-conflict' => 'Сукоб измена.',
 'edit-no-change' => 'Ваша измена је занемарена јер није било никаквих измена у тексту.',
+'postedit-confirmation' => 'Ваша измена је сачувана.',
 'edit-already-exists' => 'Не могу да направим страницу.
 Изгледа да она већ постоји.',
 'defaultmessagetext' => 'Подразумевани текст поруке',
@@ -1275,8 +1299,8 @@ $2
 '''({{int:last}})''' – разлика с претходном изменом, '''{{int:minoreditletter}}''' – мала измена",
 'history-fieldset-title' => 'Преглед историје',
 'history-show-deleted' => 'само обрисано',
-'histfirst' => 'најстарије',
-'histlast' => 'најновије',
+'histfirst' => 'Ð\9dајстарије',
+'histlast' => 'Ð\9dајновије',
 'historysize' => '({{PLURAL:$1|1 бајт|$1 бајта|$1 бајтова}})',
 'historyempty' => '(празно)',
 
@@ -1438,7 +1462,7 @@ $1",
 
 # Search results
 'searchresults' => 'Резултати претраге',
-'searchresults-title' => 'РезÑ\83лÑ\82аÑ\82и Ð¿Ñ\80еÑ\82Ñ\80аге Ð·Ð° â\80\9e$1â\80\9d',
+'searchresults-title' => 'РезÑ\83лÑ\82аÑ\82и Ð¿Ñ\80еÑ\82Ñ\80аге Ð·Ð° â\80\9e$1â\80\9c',
 'searchresulttext' => 'За више информација о претраживању пројекта {{SITENAME}} погледајте [[{{MediaWiki:Helppage}}|{{int:help}}]].',
 'searchsubtitle' => "Тражили сте '''[[:$1]]''' ([[Special:Prefixindex/$1|све странице које почињу са „$1“]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|све странице које воде до „$1“]])",
 'searchsubtitleinvalid' => "Тражили сте '''$1'''",
@@ -1456,7 +1480,6 @@ $1",
 'searchmenu-legend' => 'Поставке претраге',
 'searchmenu-exists' => "'''Постоји и чланак под називом „[[:$1]]“.'''",
 'searchmenu-new' => "'''Направите страницу „[[:$1]]“.'''",
-'searchhelp-url' => 'Help:Садржај',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Прегледај странице с овим префиксом]]',
 'searchprofile-articles' => 'Чланци',
 'searchprofile-project' => 'Странице помоћи и пројеката',
@@ -1533,7 +1556,6 @@ $1",
 'resetprefs' => 'Очисти несачуване измене',
 'restoreprefs' => 'Врати све на подразумевано',
 'prefs-editing' => 'Уређивање',
-'prefs-edit-boxsize' => 'Величина оквира за уређивање.',
 'rows' => 'Редова:',
 'columns' => 'Колоне:',
 'searchresultshead' => 'Претрага',
@@ -1544,9 +1566,6 @@ $1",
 'recentchangesdays-max' => '(највише $1 {{PLURAL:$1|дан|дана|дана}})',
 'recentchangescount' => 'Број измена за приказ:',
 'prefs-help-recentchangescount' => 'Подразумева скорашње измене, историје страница и дневнике.',
-'prefs-help-watchlist-token' => 'Попуњавањем овог поља с тајном шифром направиће RSS довод вашег списка надгледања.
-Свако ко зна ту шифру биће у могућности да види ваша надгледања, зато изаберите безбедну.
-На пример: $1',
 'savedprefs' => 'Ваша подешавања су сачувана.',
 'timezonelegend' => 'Временска зона:',
 'localtime' => 'Локално време:',
@@ -1577,7 +1596,6 @@ $1",
 'prefs-reset-intro' => 'Можете користити ову страницу да поништите своје поставке на подразумеване вредности.
 Ова радња се не може вратити.',
 'prefs-emailconfirm-label' => 'Потврда е-адресе:',
-'prefs-textboxsize' => 'Величина оквира за уређивање',
 'youremail' => 'Е-адреса:',
 'username' => 'Корисничко име:',
 'uid' => 'Кориснички ID:',
@@ -1823,7 +1841,6 @@ $1",
 'recentchangeslinked-feed' => 'Сродне измене',
 'recentchangeslinked-toolbox' => 'Сродне измене',
 'recentchangeslinked-title' => 'Сродне измене са „$1“',
-'recentchangeslinked-noresult' => 'Нема измена на повезаним страницама у заданом периоду.',
 'recentchangeslinked-summary' => "Ова посебна страница приказује списак последњих измена на страницама које су повезане (или чланови одређене категорије).
 Странице с [[Special:Watchlist|вашег списка надгледања]] су '''подебљане'''.",
 'recentchangeslinked-page' => 'Назив странице:',
@@ -2493,7 +2510,6 @@ $1',
 'unwatchthispage' => 'Прекини надгледање',
 'notanarticle' => 'Није страница са садржајем',
 'notvisiblerev' => 'Измена је обрисана',
-'watchnochange' => 'Ништа што надгледате није промењено у приказаном времену.',
 'watchlist-details' => '{{PLURAL:$1|$1 страница|$1 странице|$1 страница}} на вашем списку надгледања, не рачунајући странице за разговор.',
 'wlheader-enotif' => 'Обавештење е-поруком је омогућено.',
 'wlheader-showupdated' => "Странице које су измењене откад сте их последњи пут посетили су '''подебљане'''.",
@@ -3419,6 +3435,7 @@ $1',
 'hours' => '{{PLURAL:$1|$1 сат|$1 сата|$1 сати}}',
 'days' => '{{PLURAL:$1|$1 дан|$1 дана|$1 дана}}',
 'ago' => 'пре $1',
+'just-now' => 'управо сад',
 
 # Bad image list
 'bad_image_list' => 'Формат је следећи:
@@ -4035,7 +4052,6 @@ $5
 'semicolon-separator' => ';&#32;',
 'comma-separator' => ',&#32;',
 'colon-separator' => ':&#32;',
-'autocomment-prefix' => '-&#32;',
 'pipe-separator' => '&#32;•&#32;',
 'word-separator' => '&#32;',
 'ellipsis' => '…',
@@ -4189,7 +4205,6 @@ $5
 'version-other' => 'Друго',
 'version-mediahandlers' => 'Руководиоци медијима',
 'version-hooks' => 'Куке',
-'version-extension-functions' => 'Функције',
 'version-parser-extensiontags' => 'Ознаке',
 'version-parser-function-hooks' => 'Куке',
 'version-hook-name' => 'Назив куке',
@@ -4200,11 +4215,11 @@ $5
 'version-poweredby-credits' => "Овај вики покреће '''[//www.mediawiki.org/ Медијавики]''', ауторска права © 2001-$1 $2.",
 'version-poweredby-others' => 'остали',
 'version-credits-summary' => 'Желели бисмо да захвалимо следећим људима на њиховом доприносу [[Special:Version|Медијавикији]].',
-'version-license-info' => 'Медијавики је слободан софтвер; можете га расподељивати и мењати под условима ГНУ-ове опште јавне лиценце (ОЈЛ) коју је објавила Задужбина за слободан софтвер, било да је у питању друго или новије издање лиценце.
+'version-license-info' => 'Медијавики је слободан софтвер можете га редистрибуирати и/или модификовати под условима ГНУ-ове опште јавне лиценце верзија 2 или сваке следеће коју објави Задужбина за слободан софтвер.
 
-Медијавики се нуди у нади да ће бити од користи, али БЕЗ ИКАКВЕ ГАРАНЦИЈЕ; чак и без подразумеване гаранције о ПРОДАЈНОЈ ВРЕДНОСТИ или ПОГОДНОСТИ ЗА ОДРЕЂЕНЕ НАМЕНЕ. Погледајте ГНУ-ову општу јавну лиценцу за више информација.
+Медијавики се редистрибуирати у нади да ће бити од користи, али БЕЗ ИКАКВЕ ГАРАНЦИЈЕ чак и без ПОДРАЗУМЕВАНЕ ГАРАНЦИЈЕ ФУНКЦИОНАЛНОСТИ или ПРИКЛАДНОСТИ ЗА ОДРЕЂЕНЕУ НАМЕНУ. Погледајте ГНУ-ову општу јавну лиценцу за више информација.
 
-Требало би да сте примили [{{SERVER}}{{SCRIPTPATH}}/COPYING примерак ГНУ-ове опште јавне лиценце] заједно с овим програмом. Ако нисте, пишите на Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA или [//www.gnu.org/licenses/old-licenses/gpl-2.0.html прочитајте овде].',
+Требало би да сте примили [{{SERVER}}{{SCRIPTPATH}}/COPYING примерак ГНУ-ове опште јавне лиценце] заједно са овим програмом. Ако нисте, пишите на Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA или [//www.gnu.org/licenses/old-licenses/gpl-2.0.html прочитајте овде].',
 'version-software' => 'Инсталирани софтвер',
 'version-software-product' => 'Производ',
 'version-software-version' => 'Верзија',
@@ -4213,9 +4228,11 @@ $5
 'version-entrypoints-header-url' => 'Адреса',
 
 # Special:Redirect
+'redirect-legend' => 'Преусмери на датотеку или страницу',
 'redirect-submit' => 'Иди',
 'redirect-value' => 'Вредност:',
 'redirect-file' => 'Назив датотеке',
+'redirect-not-exists' => 'Вредност није пронађена',
 
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Претрага дупликата',
@@ -4243,7 +4260,7 @@ $5
 'specialpages-group-highuse' => 'Најчешће коришћене странице',
 'specialpages-group-pages' => 'Спискови страница',
 'specialpages-group-pagetools' => 'Алатке',
-'specialpages-group-wiki' => 'Подаци и алати енциклопедије',
+'specialpages-group-wiki' => 'Подаци и алати',
 'specialpages-group-redirects' => 'Преусмеравање посебних страница',
 'specialpages-group-spam' => 'Алатке против непожељних порука',
 
@@ -4308,6 +4325,7 @@ $5
 'htmlform-selectorother-other' => 'Друго',
 'htmlform-no' => 'Не',
 'htmlform-yes' => 'Да',
+'htmlform-chosen-placeholder' => 'Изаберите опцију',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 с подршком претраге целог текста',
@@ -4420,4 +4438,7 @@ $5
 'duration-centuries' => '$1 {{PLURAL:$1|век|века|векова}}',
 'duration-millennia' => '$1 {{PLURAL:$1|миленијум|миленијума|миленијума}}',
 
+# Image rotation
+'rotate-comment' => 'Слика је ротирана за $1° у смеру казаљке на сату',
+
 );
index 342b443..0a281f1 100644 (file)
@@ -8,6 +8,7 @@
  * @file
  *
  * @author FriedrickMILBarbarossa
+ * @author Geitost
  * @author Kaganer
  * @author Liangent
  * @author Meno25
@@ -17,6 +18,7 @@
  * @author Red Baron
  * @author Reedy
  * @author Slaven Kosanovic
+ * @author TheStefan12345
  * @author Жељко Тодоровић
  * @author Михајло Анђелковић
  * @author לערי ריינהארט
@@ -411,6 +413,18 @@ $messages = array(
 'oct' => 'okt',
 'nov' => 'nov',
 'dec' => 'dec',
+'january-date' => '$1. januar',
+'february-date' => '$1. februar',
+'march-date' => '$1. mart',
+'april-date' => '$1. april',
+'may-date' => '$1. maj',
+'june-date' => '$1. jun',
+'july-date' => '$1. jul',
+'august-date' => '$1. august',
+'september-date' => '$1. septembar',
+'october-date' => '$1. oktobar',
+'november-date' => '$1. novembar',
+'december-date' => '$1. decembar',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategorija|Kategorije}}',
@@ -438,7 +452,8 @@ $messages = array(
 'newwindow' => '(otvara u novom prozoru)',
 'cancel' => 'Otkaži',
 'moredotdotdot' => 'Više…',
-'mypage' => 'Moja stranica',
+'morenotlisted' => 'Više nije prikazano...',
+'mypage' => 'Stranica',
 'mytalk' => 'Razgovor',
 'anontalk' => 'Razgovor za ovu IP adresu',
 'navigation' => 'Navigacija',
@@ -545,7 +560,6 @@ $1',
 'disclaimers' => 'Odricanje odgovornosti',
 'disclaimerpage' => 'Project:Odricanje odgovornosti',
 'edithelp' => 'Pomoć pri uređivanju',
-'edithelppage' => 'Help:Uređivanje',
 'helppage' => 'Help:Sadržaj',
 'mainpage' => 'Glavna strana',
 'mainpage-description' => 'Glavna strana',
@@ -577,7 +591,6 @@ Pogledajte stranicu za [[Special:Version|izdanje]].',
 'newmessagesdifflinkplural' => '{{PLURAL:$1|poslednju izmenu|poslednje izmene}}',
 'youhavenewmessagesmulti' => 'Imate novih poruka na $1',
 'editsection' => 'uredi',
-'editsection-brackets' => '[$1]',
 'editold' => 'uredi',
 'viewsourceold' => 'izvornik',
 'editlink' => 'uredi',
@@ -722,10 +735,20 @@ Administrator koji ju je zaključao ponudio je sledeće objašnjenje: „$3“.'
 
 Možete da nastavite s korišćenjem ovog vikija kao gost, ili se <span class='plainlinks'>[$1 ponovo prijavite]</span> kao drugi korisnik.
 Imajte na umu da neke stranice mogu nastaviti da se prikazuju kao da ste još prijavljeni, sve dok ne očistite privremenu memoriju svog pregledača.",
+'welcomeuser' => 'Dobrodošli, $1!',
 'yourname' => 'Korisničko ime:',
+'userlogin-yourname' => 'Korisničko ime',
+'userlogin-yourname-ph' => 'Unesite vaše korisničko ime',
 'yourpassword' => 'Lozinka:',
+'userlogin-yourpassword' => 'Lozinka',
+'userlogin-yourpassword-ph' => 'Unesite vašu lozinku',
+'createacct-yourpassword-ph' => 'Unesite novu lozinku',
 'yourpasswordagain' => 'Potvrda lozinke:',
+'createacct-yourpasswordagain' => 'Potvrdite lozinku',
+'createacct-yourpasswordagain-ph' => 'Unesite lozinku još jednom',
 'remembermypassword' => 'Zapamti me na ovom pregledaču (najduže $1 {{PLURAL:$1|dan|dana|dana}})',
+'userlogin-remembermypassword' => 'Ostavi me prijavljenog/u',
+'userlogin-signwithsecure' => 'Koristite sigurnu konekciju',
 'securelogin-stick-https' => 'Ostanite povezani sa HTTPS nakon prijave',
 'yourdomainname' => 'Domen:',
 'password-change-forbidden' => 'Ne možete da promenite lozinku na ovom vikiju.',
@@ -738,17 +761,35 @@ Imajte na umu da neke stranice mogu nastaviti da se prikazuju kao da ste još pr
 'logout' => 'Odjava',
 'userlogout' => 'Odjavi me',
 'notloggedin' => 'Niste prijavljeni',
-'nologin' => 'Nemate nalog? Idite na stranicu „$1“.',
+'userlogin-noaccount' => 'Nemate nalog?',
+'userlogin-joinproject' => 'Otvorite ga',
+'nologin' => 'Nemate nalog? Idite na stranicu $1.',
 'nologinlink' => 'Otvaranje naloga',
 'createaccount' => 'Otvori nalog',
 'gotaccount' => 'Već imate nalog? Idite na stranicu „$1“.',
 'gotaccountlink' => 'Prijava',
 'userlogin-resetlink' => 'Zaboravili ste podatke za prijavu?',
-'createaccountmail' => 'E-poštom',
+'userlogin-resetpassword-link' => 'Resetuj lozinku',
+'helplogin-url' => 'Help:Logging in',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Pomoć pri prijavljivanju]]',
+'createacct-join' => 'Unesite svoje podatke ispod.',
+'createacct-emailrequired' => 'Adresa e-pošte',
+'createacct-emailoptional' => 'Adresa e-pošte (opcijono)',
+'createacct-email-ph' => 'Unesite vašu adresu e-pоšte',
+'createaccountmail' => 'Koristite privremenu, slučajno stvorenu lozinku i pošaljite na dole navedenu adresu elektronske pošte',
+'createacct-realname' => 'Pravo ime (opcijono)',
 'createaccountreason' => 'Razlog:',
+'createacct-reason' => 'Razlog',
+'createacct-reason-ph' => 'Zašto pravite još jedan nalog?',
+'createacct-captcha' => 'Sigurnosna provera',
+'createacct-imgcaptcha-ph' => 'Unesite tekst koji vidite iznad',
+'createacct-submit' => 'Otvorite nalog',
+'createacct-benefit-heading' => '{{SITENAME}} je napravljen od strane ljudi kao što ste vi.',
+'createacct-benefit-body3' => 'skorašnjih {{PLURAL:$1|doprinosa}}',
 'badretype' => 'Unete lozinke se ne poklapaju.',
 'userexists' => 'Korisničko ime je zauzeto. Izaberite drugo.',
 'loginerror' => 'Greška pri prijavljivanju',
+'createacct-error' => 'Došlo je do greške pri kreiranju naloga',
 'createaccounterror' => 'Ne mogu da otvorim nalog: $1',
 'nocookiesnew' => 'Korisnički nalog je otvoren, ali niste prijavljeni.
 Ovaj viki koristi kolačiće za prijavu. Vama su kolačići onemogućeni.
@@ -842,10 +883,9 @@ Možda ste već promenili lozinku ili ste zatražili novu privremenu lozinku.',
 
 # Special:PasswordReset
 'passwordreset' => 'Obnavljanje lozinke',
-'passwordreset-text' => 'Popunite ovaj obrazac da biste primili e-poruku sa svojim podacima za prijavu.',
+'passwordreset-text-one' => 'Popunite ovaj obrazac da biste resetovali lozinku.',
 'passwordreset-legend' => 'Poništi lozinku',
 'passwordreset-disabled' => 'Obnavljanje lozinke je onemogućeno na ovom vikiju.',
-'passwordreset-pretext' => '{{PLURAL:$1||Unesite jedan od delova podataka ispod}}',
 'passwordreset-username' => 'Korisničko ime:',
 'passwordreset-domain' => 'Domen:',
 'passwordreset-capture' => 'Pogledati krajnju poruku?',
@@ -1075,7 +1115,7 @@ Možete se vratiti i urediti postojeću stranicu, ili se [[Special:UserLogin|pri
 'sectioneditnotsupported-text' => 'Uređivanje odeljka nije podržano na ovoj stranici.',
 'permissionserrors' => 'Greške u dozvolama',
 'permissionserrorstext' => 'Nemate ovlašćenje za tu radnju iz {{PLURAL:$1|sledećeg|sledećih}} razloga:',
-'permissionserrorstext-withaction' => 'Nemate dozvolu da $2 iz {{PLURAL:$1|sledećeg|sledećih}} razloga:',
+'permissionserrorstext-withaction' => 'Nemate dozvolu za $2 iz {{PLURAL:$1|sledećeg|sledećih}} razloga:',
 'recreate-moveddeleted-warn' => "'''Upozorenje: ponovo pravite stranicu koja je prethodno obrisana.'''
 
 Razmotrite da li je prikladno da nastavite s uređivanjem ove stranice.
@@ -1089,6 +1129,7 @@ Nije dato nikakvo obrazloženje.',
 Izgleda da je obrisana.',
 'edit-conflict' => 'Sukob izmena.',
 'edit-no-change' => 'Vaša izmena je zanemarena jer nije bilo nikakvih izmena u tekstu.',
+'postedit-confirmation' => 'Vaša izmena je sačuvana.',
 'edit-already-exists' => 'Ne mogu da napravim stranicu.
 Izgleda da ona već postoji.',
 'defaultmessagetext' => 'Podrazumevani tekst poruke',
@@ -1322,7 +1363,7 @@ Više informacija možete pronaći u [{{fullurl:{{#Special:Log}}/delete|page={{F
 
 # Search results
 'searchresults' => 'Rezultati pretrage',
-'searchresults-title' => 'Rezultati pretrage za â\80\9e$1â\80\9d',
+'searchresults-title' => 'Rezultati pretrage za â\80\9e$1â\80\9c',
 'searchresulttext' => 'Za više informacija o pretraživanju projekta {{SITENAME}} pogledajte [[{{MediaWiki:Helppage}}|{{int:help}}]].',
 'searchsubtitle' => "Tražili ste '''[[:$1]]''' ([[Special:Prefixindex/$1|sve stranice koje počinju sa „$1“]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|sve stranice koje vode do „$1“]])",
 'searchsubtitleinvalid' => "Tražili ste '''$1'''",
@@ -1340,7 +1381,6 @@ Više informacija možete pronaći u [{{fullurl:{{#Special:Log}}/delete|page={{F
 'searchmenu-legend' => 'Postavke pretrage',
 'searchmenu-exists' => "'''Postoji i članak pod nazivom „[[:$1]]“.'''",
 'searchmenu-new' => "'''Napravite stranicu „[[:$1]]“.'''",
-'searchhelp-url' => 'Help:Sadržaj',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Pregledaj stranice s ovim prefiksom]]',
 'searchprofile-articles' => 'Članci',
 'searchprofile-project' => 'Stranice pomoći i projekata',
@@ -1362,7 +1402,7 @@ Više informacija možete pronaći u [{{fullurl:{{#Special:Log}}/delete|page={{F
 'search-interwiki-default' => '$1 rezultati:',
 'search-interwiki-more' => '(više)',
 'search-relatedarticle' => 'Povezano',
-'mwsuggest-disable' => 'Onemogući predloge AJAX',
+'mwsuggest-disable' => 'Onemogući predloge pri pretraživanju',
 'searcheverything-enable' => 'svi imenski prostori',
 'searchrelated' => 'povezano',
 'searchall' => 'sve',
@@ -1417,7 +1457,6 @@ Upamtite da njegovi popisi ovog vikija mogu biti zastareli.',
 'resetprefs' => 'Očisti nesačuvane izmene',
 'restoreprefs' => 'Vrati sve na podrazumevano',
 'prefs-editing' => 'Uređivanje',
-'prefs-edit-boxsize' => 'Veličina okvira za uređivanje.',
 'rows' => 'Redova:',
 'columns' => 'Kolone:',
 'searchresultshead' => 'Pretraga',
@@ -1428,9 +1467,6 @@ Upamtite da njegovi popisi ovog vikija mogu biti zastareli.',
 'recentchangesdays-max' => '(najviše $1 {{PLURAL:$1|dan|dana|dana}})',
 'recentchangescount' => 'Broj izmena za prikaz:',
 'prefs-help-recentchangescount' => 'Podrazumeva skorašnje izmene, istorije stranica i dnevnike.',
-'prefs-help-watchlist-token' => 'Popunjavanjem ovog polja s tajnom šifrom napraviće RSS dovod vašeg spiska nadgledanja.
-Svako ko zna tu šifru biće u mogućnosti da vidi vaša nadgledanja, zato izaberite bezbednu.
-Na primer: $1',
 'savedprefs' => 'Vaša podešavanja su sačuvana.',
 'timezonelegend' => 'Vremenska zona:',
 'localtime' => 'Lokalno vreme:',
@@ -1461,7 +1497,6 @@ Na primer: $1',
 'prefs-reset-intro' => 'Možete koristiti ovu stranicu da poništite svoje postavke na podrazumevane vrednosti.
 Ova radnja se ne može vratiti.',
 'prefs-emailconfirm-label' => 'Potvrda e-adrese:',
-'prefs-textboxsize' => 'Veličina okvira za uređivanje',
 'youremail' => 'E-adresa:',
 'username' => 'Korisničko ime:',
 'uid' => 'Korisnički IB:',
@@ -1707,7 +1742,6 @@ Ako izaberete da ga unesete, ono će biti korišćeno za pripisivanje vašeg rad
 'recentchangeslinked-feed' => 'Srodne izmene',
 'recentchangeslinked-toolbox' => 'Srodne izmene',
 'recentchangeslinked-title' => 'Srodne izmene sa „$1“',
-'recentchangeslinked-noresult' => 'Nema izmena na povezanim stranicama u zadanom periodu.',
 'recentchangeslinked-summary' => "Ova posebna stranica prikazuje spisak poslednjih izmena na stranicama koje su povezane (ili članovi određene kategorije).
 Stranice s [[Special:Watchlist|vašeg spiska nadgledanja]] su '''podebljane'''.",
 'recentchangeslinked-page' => 'Naziv stranice:',
@@ -1878,6 +1912,7 @@ Ako se problem ne reši, kontaktirajte [[Special:ListUsers/sysop|administratora]
 'backend-fail-notsame' => 'Već postoji neistovetna datoteka – $1.',
 'backend-fail-invalidpath' => '$1 nije ispravna putanja za skladištenje.',
 'backend-fail-delete' => 'Ne mogu da obrišem datoteku $1.',
+'backend-fail-describe' => 'Ne mogu da promenim metapodatke za datoteku „$1“.',
 'backend-fail-alreadyexists' => 'Datoteka $1 već postoji.',
 'backend-fail-store' => 'Ne mogu da smestim datoteku $1 u $2.',
 'backend-fail-copy' => 'Ne mogu da umnožim datoteku $1 u $2.',
@@ -2116,6 +2151,9 @@ Pre brisanja proverite da li druge stranice vode do tih šablona.',
 Umesto toga, valjalo bi da vode do odgovarajuće teme.
 Stranica se smatra višeznačnom odrednicom ako koristi šablon koji vodi od [[MediaWiki:Disambiguationspage]].",
 
+'pageswithprop-prop' => 'Ime osobine:',
+'pageswithprop-submit' => 'Idi',
+
 'doubleredirects' => 'Dvostruka preusmerenja',
 'doubleredirectstext' => 'Ova stranica prikazuje stranice koje preusmeravaju na druga preusmerenja.
 Svaki red sadrži veze prema prvom i drugom preusmerenju, kao i odredišnu stranicu drugog preusmerenja koja je obično „pravi“ članak na koga prvo preusmerenje treba da upućuje.
@@ -2370,10 +2408,9 @@ Ukoliko budete želeli da uklonite stranicu sa spiska nadgledanja, kliknite opet
 'unwatchthispage' => 'Prekini nadgledanje',
 'notanarticle' => 'Nije stranica sa sadržajem',
 'notvisiblerev' => 'Izmena je obrisana',
-'watchnochange' => 'Ništa što nadgledate nije promenjeno u prikazanom vremenu.',
 'watchlist-details' => '{{PLURAL:$1|$1 stranica|$1 stranice|$1 stranica}} na vašem spisku nadgledanja, ne računajući stranice za razgovor.',
-'wlheader-enotif' => 'E-obaveštenje je omogućeno.',
-'wlheader-showupdated' => "Stranice koje su izmenjene otkad ste ih poslednji put posetili su '''podebljane'''",
+'wlheader-enotif' => 'Obaveštenje e-porukom je omogućeno.',
+'wlheader-showupdated' => "Stranice koje su izmenjene otkad ste ih poslednji put posetili su '''podebljane'''.",
 'watchmethod-recent' => 'proverava se da li ima nadgledanih stranica u skorašnjim izmenama',
 'watchmethod-list' => 'proverava se da li ima skorašnjih izmena u nadgledanim stranicama',
 'watchlistcontains' => 'Vaš spisak nadgledanja sadrži $1 {{PLURAL:$1|stranicu|stranice|stranica}}.',
@@ -2496,6 +2533,7 @@ Pogledajte [[Special:ProtectedPages|spisak zaštićenih stranica]] za više deta
 'prot_1movedto2' => '{{GENDER:|je premestio|je premestila|je premestio}} [[$1]] u [[$2]]',
 'protect-badnamespace-title' => 'Nezaštitljiv imenski prostor',
 'protect-badnamespace-text' => 'Stranice u ovom imenskom prostoru se ne mogu zaštititi.',
+'protect-norestrictiontypes-title' => 'Nezaštitljiva strana',
 'protect-legend' => 'Potvrdite zaštitu',
 'protectcomment' => 'Razlog:',
 'protectexpiry' => 'Ističe:',
@@ -3167,6 +3205,7 @@ Ovo je verovatno izazvano vezom do spoljašnjeg sajta koji se nalazi na crnoj li
 'pageinfo-robot-noindex' => 'Ne može da se popiše',
 'pageinfo-views' => 'Broj pregleda',
 'pageinfo-watchers' => 'Broj nadgledača stranica',
+'pageinfo-few-watchers' => 'Manje od $1 {{PLURAL:$1|pratioca|pratilaca}}',
 'pageinfo-redirects-name' => 'Preusmeravanja na stranicu',
 'pageinfo-subpages-name' => 'Podstranice ove stranice',
 'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|preusmerenje|preusmerenja|preusmerenja}}; $3 {{PLURAL:$3|nepreusmerenje|nepreusmerenja|nepreusmerenja}})',
@@ -3189,6 +3228,10 @@ Ovo je verovatno izazvano vezom do spoljašnjeg sajta koji se nalazi na crnoj li
 'pageinfo-protect-cascading' => 'Prenosiva zaštita stranica važi odavde',
 'pageinfo-protect-cascading-yes' => 'Da',
 'pageinfo-protect-cascading-from' => 'Stranice sa prenosivom zaštitom od',
+'pageinfo-category-info' => 'Informacije o kategoriji',
+'pageinfo-category-pages' => 'Broj stranica',
+'pageinfo-category-subcats' => 'Broj potkategorija',
+'pageinfo-category-files' => 'Broj datoteka',
 
 # Skin names
 'skinname-cologneblue' => 'Kelnsko plava',
@@ -3242,6 +3285,7 @@ Ako ga pokrenete, vaš računar može biti ugrožen.",
 'file-nohires' => 'Veća rezolucija nije dostupna.',
 'svg-long-desc' => 'SVG datoteka, nominalno $1 × $2 piksela, veličina: $3',
 'svg-long-desc-animated' => 'Animirana SVG datoteka, nominalno: $1 × $2 piksela, veličina: $3',
+'svg-long-error' => 'Neispravna SVG datoteka: $1',
 'show-big-image' => 'Puna veličina',
 'show-big-image-preview' => 'Veličina ovog prikaza: $1.',
 'show-big-image-other' => '{{PLURAL:$2|Druga rezolucija|Druge rezolucije}}: $1.',
@@ -3277,6 +3321,7 @@ Ako ga pokrenete, vaš računar može biti ugrožen.",
 'hours' => '{{PLURAL:$1|$1 sat|$1 sata|$1 sati}}',
 'days' => '{{PLURAL:$1|$1 dan|$1 dana|$1 dana}}',
 'ago' => 'pre $1',
+'just-now' => 'upravo sad',
 
 # Bad image list
 'bad_image_list' => 'Format je sledeći:
@@ -3893,7 +3938,6 @@ Potvrdite da stvarno želite da napravite stranicu.",
 'semicolon-separator' => ';&#32;',
 'comma-separator' => ',&#32;',
 'colon-separator' => ':&#32;',
-'autocomment-prefix' => '-&#32;',
 'pipe-separator' => '&#32;•&#32;',
 'word-separator' => '&#32;',
 'ellipsis' => '…',
@@ -4047,7 +4091,6 @@ Možete da [[Special:EditWatchlist|koristite i običan uređivač]].',
 'version-other' => 'Drugo',
 'version-mediahandlers' => 'Rukovodioci medijima',
 'version-hooks' => 'Kuke',
-'version-extension-functions' => 'Funkcije',
 'version-parser-extensiontags' => 'Oznake',
 'version-parser-function-hooks' => 'Kuke',
 'version-hook-name' => 'Naziv kuke',
@@ -4058,9 +4101,9 @@ Možete da [[Special:EditWatchlist|koristite i običan uređivač]].',
 'version-poweredby-credits' => "Ovaj viki pokreće '''[//www.mediawiki.org/ Medijaviki]''', autorska prava © 2001-$1 $2.",
 'version-poweredby-others' => 'ostali',
 'version-credits-summary' => 'Želeli bismo da zahvalimo sledećim ljudima na njihovom doprinosu [[Special:Version|Medijavikiji]].',
-'version-license-info' => 'Medijaviki je slobodan softver; možete ga raspodeljivati i menjati pod uslovima GNU-ove opšte javne licence (OJL) koju je objavila Zadužbina za slobodan softver, bilo da je u pitanju drugo ili novije izdanje licence.
+'version-license-info' => 'Medijaviki je slobodan softver možete ga redistribuirati i/ili modifikovati pod uslovima GNU-ove opšte javne licence verzija 2 ili svake sledeće koju objavi Zadužbina za slobodan softver.
 
-Medijaviki se nudi u nadi da će biti od koristi, ali BEZ IKAKVE GARANCIJE; čak i bez podrazumevane garancije o PRODAJNOJ VREDNOSTI ili POGODNOSTI ZA ODREĐENE NAMENE. Pogledajte GNU-ovu opštu javnu licencu za više informacija.
+Medijaviki se redistribuirati u nadi da će biti od koristi, ali BEZ IKAKVE GARANCIJE čak i bez PODRAZUMEVANE GARANCIJE FUNKCIONALNOSTI ili PRIKLADNOSTI ZA ODREĐENEU NAMENU. Pogledajte GNU-ovu opštu javnu licencu za više informacija.
 
 Trebalo bi da ste primili [{{SERVER}}{{SCRIPTPATH}}/COPYING primerak GNU-ove opšte javne licence] zajedno s ovim programom. Ako niste, pišite na Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA ili [//www.gnu.org/licenses/old-licenses/gpl-2.0.html pročitajte ovde].',
 'version-software' => 'Instalirani softver',
@@ -4070,6 +4113,13 @@ Trebalo bi da ste primili [{{SERVER}}{{SCRIPTPATH}}/COPYING primerak GNU-ove op
 'version-entrypoints-header-entrypoint' => 'Ulazna tačka',
 'version-entrypoints-header-url' => 'Adresa',
 
+# Special:Redirect
+'redirect-legend' => 'Preusmeri na datoteku ili stranicu',
+'redirect-submit' => 'Idi',
+'redirect-value' => 'Vrednost:',
+'redirect-file' => 'Naziv datoteke',
+'redirect-not-exists' => 'Vrednost nije pronađen',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Pretraga duplikata',
 'fileduplicatesearch-summary' => 'Pretraga dupliranih datoteka prema vrednostima disperzije.',
@@ -4096,7 +4146,7 @@ Trebalo bi da ste primili [{{SERVER}}{{SCRIPTPATH}}/COPYING primerak GNU-ove op
 'specialpages-group-highuse' => 'Najčešće korišćene stranice',
 'specialpages-group-pages' => 'Spiskovi stranica',
 'specialpages-group-pagetools' => 'Alatke',
-'specialpages-group-wiki' => 'Podaci i alati enciklopedije',
+'specialpages-group-wiki' => 'Podaci i alati',
 'specialpages-group-redirects' => 'Preusmeravanje posebnih stranica',
 'specialpages-group-spam' => 'Alatke protiv nepoželjnih poruka',
 
@@ -4159,6 +4209,9 @@ Trebalo bi da ste primili [{{SERVER}}{{SCRIPTPATH}}/COPYING primerak GNU-ove op
 'htmlform-submit' => 'Pošalji',
 'htmlform-reset' => 'Vrati izmene',
 'htmlform-selectorother-other' => 'Drugo',
+'htmlform-no' => 'Ne',
+'htmlform-yes' => 'Da',
+'htmlform-chosen-placeholder' => 'Izaberite opciju',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 s podrškom pretrage celog teksta',
@@ -4271,4 +4324,7 @@ U suprotnom, poslužite se jednostavnim obrascem ispod. Vaš komentar će stajat
 'duration-centuries' => '$1 {{PLURAL:$1|vek|veka|vekova}}',
 'duration-millennia' => '$1 {{PLURAL:$1|milenijum|milenijuma|milenijuma}}',
 
+# Image rotation
+'rotate-comment' => 'Slika je rotirana za $1° u smeru kazaljke na satu',
+
 );
index 7aca717..8d70e0b 100644 (file)
@@ -346,7 +346,6 @@ $messages = array(
 'disclaimers' => 'Disclaimers',
 'disclaimerpage' => 'Project:Disclaimer gi ala',
 'edithelp' => 'Yepi nanga kenki',
-'edithelppage' => 'Help:Kenki',
 'helppage' => 'Help:San de',
 'mainpage' => 'Fesipapira',
 'mainpage-description' => 'Fesipapira',
@@ -636,7 +635,6 @@ A kan ben trowe efu dribi.
 'prevn' => '{{PLURAL:$1|$1}} di psa',
 'nextn' => '{{PLURAL:$1|$1}} trawan',
 'viewprevnext' => 'Luku ($1 {{int:pipe-separator}} $2) ($3).',
-'searchhelp-url' => 'Help:San de',
 'powersearch' => 'Suku moro dipi',
 
 # Preferences page
@@ -746,7 +744,6 @@ A kan ben trowe efu dribi.
 'recentchangeslinked-feed' => 'Kenki di abi wan sani fu du nanga disi',
 'recentchangeslinked-toolbox' => 'Kenki di abi wan sani fu du nanga disi',
 'recentchangeslinked-title' => 'Kenki di abi wan sani fu du nanga "$1"',
-'recentchangeslinked-noresult' => 'Noti ben kenki ini den miti papira ini a pisi di gi.',
 'recentchangeslinked-summary' => "A spesrutu papira disi e sori den laste kenki di ben meki tapu papira di miti tapu wan papira di sori (noso go na memre fu wan grupu di sori).
 Papira ini [[Special:Watchlist|yu Tan Luku réy]] '''fatu'''.",
 
index 43d5057..7a0877f 100644 (file)
@@ -282,7 +282,6 @@ $1',
 'disclaimers' => 'Begriepskläärenge',
 'disclaimerpage' => 'Project:Siede tou Begriepskläärenge',
 'edithelp' => 'Beoarbaidengshälpe',
-'edithelppage' => 'Help:Beoarbaidengshälpe',
 'helppage' => 'Help:Hälpe',
 'mainpage' => 'Haudsiede',
 'mainpage-description' => 'Haudsiede',
@@ -548,10 +547,8 @@ Muugelkerwiese hääst du dien Paaswoud al mäd Ärfoulch annerd of n näi tiede
 
 # Special:PasswordReset
 'passwordreset' => 'Paaswoud touräächsätte',
-'passwordreset-text' => 'Dit Formular uutfälle, uum per E-Mail ne Ärinnerenge tou do Anmäldeinformatione tou kriegen.',
 'passwordreset-legend' => 'Paaswoud touräächsätte',
 'passwordreset-disabled' => 'Dät Touräächsätten fon Paaswoude wuud in dissen Wiki deaktivierd.',
-'passwordreset-pretext' => '{{PLURAL:$1||Reek aan fon do foulgjende Doaten ien}}',
 'passwordreset-username' => 'Benutsernoome:',
 'passwordreset-domain' => 'Domain:',
 'passwordreset-capture' => 'Ju E-Mail-Ättergjucht bekiekje?',
@@ -977,7 +974,6 @@ Staal deertruch sicher, dät ju Versionsgeskichte fon n Artikkel historisk akroa
 'searchmenu-legend' => 'Säikoptione',
 'searchmenu-exists' => "'''Dät rakt n Siede mäd Noome \"[[:\$1]]\" ap dissen Wiki'''",
 'searchmenu-new' => "'''Moak ju Siede „[[:$1]]“ in dissen Wiki.'''",
-'searchhelp-url' => 'Help:Hälpe',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Wies aal Sieden, do mäd dän Säikbegriep ounfange]]',
 'searchprofile-articles' => 'Inhooldssieden',
 'searchprofile-project' => 'Hälpe un Projektsieden',
@@ -1048,7 +1044,6 @@ Staal deertruch sicher, dät ju Versionsgeskichte fon n Artikkel historisk akroa
 'resetprefs' => 'Nit spiekerde Annerengen fersmiete',
 'restoreprefs' => 'Aal Standoard-Ienstaalengen wier häärstaale',
 'prefs-editing' => 'Beoarbaidje',
-'prefs-edit-boxsize' => 'Grööte fon dät Beoarbaidengsfinster:',
 'rows' => 'Riegen',
 'columns' => 'Spalten',
 'searchresultshead' => 'Säike (010)',
@@ -1059,9 +1054,6 @@ Staal deertruch sicher, dät ju Versionsgeskichte fon n Artikkel historisk akroa
 'recentchangesdays-max' => '(Maximoal $1 {{PLURAL:$1|Dai|Deege}})',
 'recentchangescount' => 'Antaal fon do standoardmäitich anwiesde Beoarbaidengen:',
 'prefs-help-recentchangescount' => 'Dit uumfoatet ju Lieste fon do lääste Annerengen, ju Versionsgeskichte un do Logbouke.',
-'prefs-help-watchlist-token' => 'Dät Uutfällen fon dit Fäild mäd ne stilkene Koaie generiert n RSS-Feed foar dien Beooboachtengslieste.
-Älk, die disse Koaie koant, kon dien Beooboachtengslieste iensjo. Wääl also n sicheren Wäid.
-Hier n toufällich generierden Wäid, dän du ferweende koast: $1',
 'savedprefs' => 'Dien Ienstaalengen wuuden spiekerd.',
 'timezonelegend' => 'Tiedzone:',
 'localtime' => 'Tied bie Jou:',
@@ -1092,7 +1084,6 @@ Hier n toufällich generierden Wäid, dän du ferweende koast: $1',
 'prefs-reset-intro' => 'Du koast disse Siede bruuke, uum do Ienstaalengen ap do Standoarde touräächtousätten.
 Dät kon nit moor tourääch troald wäide.',
 'prefs-emailconfirm-label' => 'E-Mail-Bestäätigenge:',
-'prefs-textboxsize' => 'Grööte fon dät Beoarbaidengsfinster',
 'youremail' => 'E-Mail-Adrässe:',
 'username' => 'Benutsernoome:',
 'uid' => 'Benutser-ID:',
@@ -1325,7 +1316,6 @@ Ju duur maximoal $1 {{PLURAL:$1|Teeken|Teekene}} loang weese.',
 'recentchangeslinked-feed' => 'Annerengen an ferlinkede Sieden',
 'recentchangeslinked-toolbox' => 'Annerengen an ferlinkede Sieden',
 'recentchangeslinked-title' => 'Annerengen an Sieden, do der fon „$1“ ferbuunden sunt',
-'recentchangeslinked-noresult' => 'In dän uutwäälde Tiedruum wuuden an do ferbuundene Sieden neen Annerengen foarnuumen.',
 'recentchangeslinked-summary' => "Disse Spezioalsiede liestet do lääste Annerengen fon ferbuundene Sieden ap (blw. bie Kategorien an do Meegliedere fon disse Kategorie). Sieden ap dien [[Special:Watchlist|Beooboachtengslieste]] sunt '''fat''' skrieuwen.",
 'recentchangeslinked-page' => 'Siede:',
 'recentchangeslinked-to' => 'Wies Annerengen ap Sieden, do hierhäär ferlinkje',
@@ -1892,7 +1882,6 @@ Wan du die Artikkel wier fon ju Foulgelieste ou hoalje moatest, klik ap ju Siede
 'unwatchthispage' => 'Nit moor beooboachtje',
 'notanarticle' => 'Naan Artikkel',
 'notvisiblerev' => 'Version wuude läsked',
-'watchnochange' => 'Neen fon do Sieden, do du beooboachtest, wuude in dän läästen Tiedruum beoarbaided.',
 'watchlist-details' => 'Jie beooboachtje {{PLURAL:$1|1 Siede|$1 Sieden}} (Diskussionssieden wuuden hier nit meetäld).',
 'wlheader-enotif' => 'E-Mail-Beskeed is aktivierd.',
 'wlheader-showupdated' => "Sieden, do ätter dien lääste Besäik annerd wuuden sunt, wäide '''fat''' deerstoald.",
@@ -3155,7 +3144,6 @@ Du koast dien Beooboachtengslieste uk in dät [[Special:EditWatchlist/raw|Lieste
 'version-other' => 'Uurswät',
 'version-mediahandlers' => 'Medien-Handlere',
 'version-hooks' => "Snitsteeden ''(Hooks)''",
-'version-extension-functions' => 'Funktionsaproupe',
 'version-parser-extensiontags' => "Parser-Ärwiederengen ''(tags)''",
 'version-parser-function-hooks' => 'Parser-Funktione',
 'version-hook-name' => 'Snitsteedennoome',
index 23fa02b..1ee4a03 100644 (file)
@@ -369,7 +369,6 @@ $1',
 'disclaimers' => 'Bantahan',
 'disclaimerpage' => 'Project:Bantahan_umum',
 'edithelp' => 'Pitulung ngédit',
-'edithelppage' => 'Help:Ngédit',
 'helppage' => 'Help:Pitulung',
 'mainpage' => 'Tepas',
 'mainpage-description' => 'Tepas',
@@ -624,10 +623,8 @@ Bisa jadi anjeun geus ngaganti sandina atawa ménta sandi saheulaanan anu anyar.
 
 # Special:PasswordReset
 'passwordreset' => 'Setél ulang sandi',
-'passwordreset-text' => 'Lengkepan ieu formulir pikeun nampa surélék pangéling ngeunaan wincikan akun anjeun.',
 'passwordreset-legend' => 'Setél ulang sandi',
 'passwordreset-disabled' => 'Dina ieu wiki, sandi teu bisa disetél ulang.',
-'passwordreset-pretext' => '{{PLURAL:$1||Asupkeun salah sahiji data di handap ieu}}',
 'passwordreset-username' => 'Sandiasma:',
 'passwordreset-domain' => 'Domain:',
 'passwordreset-capture' => 'Témbongkeun surat-é hasilna?',
@@ -1045,7 +1042,6 @@ Pastikeun yén ieu parobahan bisa miara jujutan kaca sagemblengna.',
 'searchmenu-legend' => 'Pilihan nyungsi',
 'searchmenu-exists' => "'''Dina wiki ieu geus aya kaca nu ngaranna \"[[:\$1]]\"'''",
 'searchmenu-new' => "'''Jieun kaca \"[[:\$1]]\" dina ieu wiki!'''",
-'searchhelp-url' => 'Help:Pitulung',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Sungsi kaca-kaca nu dimimitian ku ieu awalan]]',
 'searchprofile-articles' => 'Kaca eusi',
 'searchprofile-project' => 'Kaca Pitulung jeung Proyék',
@@ -1118,7 +1114,6 @@ Coba susud dimimitian ku ''all:'' pikeun nyusud sakabéh kandunganana (kaasup ka
 'resetprefs' => 'Sét ulang préferénsi',
 'restoreprefs' => 'Larapkeun setélan buhun',
 'prefs-editing' => 'Ukuran kotak téks',
-'prefs-edit-boxsize' => 'Ukuran jandéla édit.',
 'rows' => 'Baris',
 'columns' => 'Kolom',
 'searchresultshead' => 'Aturan hasil néang',
@@ -1159,7 +1154,6 @@ Coba susud dimimitian ku ''all:'' pikeun nyusud sakabéh kandunganana (kaasup ka
 'prefs-reset-intro' => 'Anjeun bisa maké ieu kaca pikeun mulangkeun préferénsi anjeun ka nu baku.
 Mun geus anggeus teu bisa dibolaykeun.',
 'prefs-emailconfirm-label' => 'Konfirmasi surélék:',
-'prefs-textboxsize' => 'Lega jandéla ngédit',
 'youremail' => 'Surélék:',
 'username' => 'Landihan:',
 'uid' => 'ID pamaké:',
@@ -1383,7 +1377,6 @@ Mun geus anggeus teu bisa dibolaykeun.',
 'recentchangeslinked-feed' => 'Parobahan nu patali',
 'recentchangeslinked-toolbox' => 'Parobahan nu patali',
 'recentchangeslinked-title' => 'Parobahan patali ka "$1"',
-'recentchangeslinked-noresult' => 'Dina selang waktu anu dipénta, euweuh parobahan dina kaca-kaca anu numbu.',
 'recentchangeslinked-summary' => "Ieu kaca husus ngabéréndélkeun parobahan anyar anu numbu ti kaca husus (atawa uesi katagori husus). Kaca anu [[Special:Watchlist|diawaskeun]] némbongan '''kandel'''.",
 'recentchangeslinked-page' => 'Ngaran kaca:',
 'recentchangeslinked-to' => 'Témbongkeun parobahan ka kaca-kaca nu ditumbukeun ka kaca nu dimaksud',
@@ -1871,7 +1864,6 @@ Jaga, parobahan na kaca ieu katut kaca obrolanana bakal dibéréndélkeun di din
 'unwatchthispage' => 'Eureun ngawaskeun',
 'notanarticle' => 'Sanés kaca eusi',
 'notvisiblerev' => 'Révisi geus dihapus',
-'watchnochange' => 'Sadaya awaseun anjeun taya nu diédit dina jangka wanci nu ditémbongkeun.',
 'watchlist-details' => 'Aya {{PLURAL:$1|$1 kaca|$1 kaca}} nu ku anjeun diawaskeun, teu kaasup kaca obrolan/sawala.',
 'wlheader-enotif' => 'Pangémbar surélék difungsikeun.',
 'wlheader-showupdated' => "Kaca nu robah ti panungtungan anjeun sindang ditémbongkeun kalawan '''kandel'''",
@@ -2943,7 +2935,6 @@ Coba ku sawangan normal.',
 'version-variables' => 'Variabel',
 'version-other' => 'Séjén',
 'version-hooks' => 'Kait',
-'version-extension-functions' => 'Fungsi éksténsi',
 'version-parser-extensiontags' => 'Tag éksténsi parser',
 'version-hook-name' => 'Ngaran kait',
 'version-hook-subscribedby' => 'Didaptarkeun ku',
index 306c8bf..42c8100 100644 (file)
  * @author Fader
  * @author Fluff
  * @author GameOn
+ * @author Geitost
  * @author Greggegorius
  * @author Grillo
  * @author Habj
  * @author Habjchen
+ * @author Hangsna
  * @author Hannibal
  * @author Jon Harald Søby
+ * @author Jopparn
  * @author Kaganer
  * @author LPfi
  * @author Lejonel
  * @author Leo Johannes
+ * @author Liftarn
  * @author Lokal Profil
  * @author M.M.S.
  * @author MagnusA
@@ -33,6 +37,7 @@
  * @author Mikez
  * @author NH
  * @author Najami
+ * @author Nemo bis
  * @author Nghtwlkr
  * @author Ozp
  * @author Per
@@ -521,6 +526,7 @@ $messages = array(
 'create-this-page' => 'Skapa denna sida',
 'delete' => 'Radera',
 'deletethispage' => 'Radera denna sida',
+'undeletethispage' => 'Återställ denna sida',
 'undelete_short' => 'Återställ {{PLURAL:$1|en version|$1 versioner}}',
 'viewdeleted_short' => 'Visa {{PLURAL:$1|en raderad redigering|$1 raderade redigeringar}}',
 'protect' => 'Skrivskydda',
@@ -574,7 +580,6 @@ $1',
 'disclaimers' => 'Förbehåll',
 'disclaimerpage' => 'Project:Allmänt förbehåll',
 'edithelp' => 'Redigeringshjälp',
-'edithelppage' => 'Help:Redigering',
 'helppage' => 'Help:Innehåll',
 'mainpage' => 'Huvudsida',
 'mainpage-description' => 'Huvudsida',
@@ -720,6 +725,10 @@ $2',
 'namespaceprotected' => "Du har inte behörighet att redigera sidor i namnrymden '''$1'''.",
 'customcssprotected' => 'Du har inte behörighet att redigera denna CSS-sidan eftersom den innehåller en annan användares personliga inställningar.',
 'customjsprotected' => 'Du har inte behörighet att redigera denna JavaScript-sidan eftersom den innehåller en annan användares personliga inställningar.',
+'mycustomcssprotected' => 'Du har inte rättigheten att redigera denna CSS-sida.',
+'mycustomjsprotected' => 'Du har inte rättigheten att redigera denna JavaScript-sida.',
+'myprivateinfoprotected' => 'Du har inte behörighet att redigera din privata information.',
+'mypreferencesprotected' => 'Du har inte behörighet att redigera dina inställningar.',
 'ns-specialprotected' => 'Specialsidor kan inte redigeras.',
 'titleprotected' => 'Denna sidtitel har skyddats från att skapas av [[User:$1|$1]].
 Den uppgivna anledningen är "\'\'$2\'\'".',
@@ -747,6 +756,7 @@ Glöm inte att justera dina [[Special:Preferences|{{SITENAME}}-inställningar]].
 'yourname' => 'Användarnamn:',
 'userlogin-yourname' => 'Användarnamn',
 'userlogin-yourname-ph' => 'Ange ditt användarnamn',
+'createacct-another-username-ph' => 'Skriv in användarnamnet',
 'yourpassword' => 'Lösenord:',
 'userlogin-yourpassword' => 'Lösenord',
 'userlogin-yourpassword-ph' => 'Ange ditt lösenord',
@@ -771,20 +781,22 @@ Glöm inte att justera dina [[Special:Preferences|{{SITENAME}}-inställningar]].
 'notloggedin' => 'Inte inloggad',
 'userlogin-noaccount' => 'Har du inget konto?',
 'userlogin-joinproject' => 'Gå med i {{SITENAME}}',
-'nologin' => "Har du inget användarkonto? '''$1'''.",
+'nologin' => 'Har du inget användarkonto? $1.',
 'nologinlink' => 'Skapa ett användarkonto',
 'createaccount' => 'Skapa ett konto',
 'gotaccount' => "Har du redan ett användarkonto? '''$1'''.",
 'gotaccountlink' => 'Logga in',
 'userlogin-resetlink' => 'Har du glömt dina inloggningsuppgifter?',
 'userlogin-resetpassword-link' => 'Återställ ditt lösenord',
-'helplogin-url' => 'Help:Logging in',
+'helplogin-url' => 'Help:Logga in',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hjälp med inloggning]]',
 'createacct-join' => 'Ange din information nedan.',
+'createacct-another-join' => 'Ange information för det nya kontot nedan.',
 'createacct-emailrequired' => 'E-postadress',
 'createacct-emailoptional' => 'E-postadress (valfritt)',
 'createacct-email-ph' => 'Bekräfta din e-postadress',
-'createaccountmail' => 'Använd ett tillfällig slumpartat lösenord och skicka den till e-postadressen som anges nedan',
+'createacct-another-email-ph' => 'Skriv in e-postadress',
+'createaccountmail' => 'Använd ett tillfälligt slumpvis valt lösenord och skicka det till e-postadressen som anges nedan',
 'createacct-realname' => 'Riktigt namn (valfritt)',
 'createaccountreason' => 'Orsak:',
 'createacct-reason' => 'Anledning',
@@ -792,6 +804,7 @@ Glöm inte att justera dina [[Special:Preferences|{{SITENAME}}-inställningar]].
 'createacct-captcha' => 'Säkerhetskontroll',
 'createacct-imgcaptcha-ph' => 'Fyll i texten du ser ovan',
 'createacct-submit' => 'Skapa ditt konto',
+'createacct-another-submit' => 'Skapa ett till konto',
 'createacct-benefit-heading' => '{{SITENAME}} är skapad av människor som dig.',
 'createacct-benefit-body1' => '{{PLURAL:$1|redigering|redigeringar}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|sida|sidor}}',
@@ -850,7 +863,7 @@ Skriv in en adress med korrekt format eller töm fältet.',
 'cannotchangeemail' => 'E-post-adresser som är bundna till användarkonton kan inte ändras på denna wiki.',
 'emaildisabled' => 'Denna webbplats kan inte skicka e-post.',
 'accountcreated' => 'Användarkontot har skapats',
-'accountcreatedtext' => 'Användarkontot $1 har skapats.',
+'accountcreatedtext' => 'Användarkontot [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) har skapats.',
 'createaccount-title' => 'Konto skapat på {{SITENAME}}',
 'createaccount-text' => 'Någon har skapat ett konto åt din e-postadress på {{SITENAME}} ($4) med namnet "$2" och lösenordet "$3". Du bör nu logga in och ändra ditt lösenord.
 
@@ -888,11 +901,11 @@ Du kanske redan har lyckats ändra ditt lösenord eller begärt ett nytt tillfä
 
 # Special:PasswordReset
 'passwordreset' => 'Lösenordsåterställning',
-'passwordreset-text' => 'Fyll i detta formulär för att återställa ditt lösenord.',
+'passwordreset-text-one' => 'Fyll i detta formulär för att återställa ditt lösenord.',
+'passwordreset-text-many' => '{{PLURAL:$1|Fyll i ett av fälten för att återställa ditt lösenord.}}',
 'passwordreset-legend' => 'Återställ lösenord',
 'passwordreset-disabled' => 'Lösenordsåterställning har inaktiverats på denna wiki.',
 'passwordreset-emaildisabled' => 'E-postfunktioner har inaktiverats på denna wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Ange en av datadelarna nedan}}',
 'passwordreset-username' => 'Användarnamn:',
 'passwordreset-domain' => 'Domän:',
 'passwordreset-capture' => 'Visa resulterande e-post?',
@@ -1127,6 +1140,7 @@ Den gav ingen förklaring.',
 Det verkar som att den har raderats.',
 'edit-conflict' => 'Redigeringskonflikt.',
 'edit-no-change' => 'Din redigering ignorerades, eftersom ingen ändring gjordes i texten.',
+'postedit-confirmation' => 'Din redigering sparades.',
 'edit-already-exists' => 'Sidan kunde inte skapas.
 Den finns redan.',
 'defaultmessagetext' => 'Standardtext för meddelande',
@@ -1134,7 +1148,7 @@ Den finns redan.',
 'invalid-content-data' => 'Ogiltig innehållsdata',
 'content-not-allowed-here' => 'innehåll av "$1" är inte tillåtet på sidan [[$2]]',
 'editwarning-warning' => 'Om du lämnar den här sidan kommer du att förlora alla ändringar du har gjort.
-Om du är inloggad kan du slå av den här varningen under "{{int:prefs-editing}}" i dina inställningar.',
+Om du är inloggad kan du slå av den här varningen under "Redigering" i dina inställningar.',
 
 # Content models
 'content-model-wikitext' => 'wikitext',
@@ -1156,7 +1170,7 @@ Dessa parametrar har uteslutits.',
 'parser-template-loop-warning' => 'Mall-loop upptäckt: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Gräns för mallrekursionsdjup överskriden ($1)',
 'language-converter-depth-warning' => 'Gräns för språkkonverteringsdjup överskriden ($1)',
-'node-count-exceeded-category' => 'Sidor där antal nodar har överskrids',
+'node-count-exceeded-category' => 'Sidor där antalet noder har överskridits',
 'node-count-exceeded-warning' => 'Sidan har överskridit antalet nodar',
 'expansion-depth-exceeded-category' => 'Sidor där expansionsdjupet överskrids',
 'expansion-depth-exceeded-warning' => 'Sidan överskrider expansionsdjupet',
@@ -1170,6 +1184,7 @@ Var god och kontrollera jämförelsen nedan för att bekräfta att detta är vad
 'undo-failure' => 'Redigeringen kunde inte göras ogjord på grund av konflikt med mellanliggande redigeringar.',
 'undo-norev' => 'Redigeringen kan inte göras ogjord eftersom den inte finns eller har raderats.',
 'undo-summary' => 'Gör version $1 av [[Special:Contributions/$2|$2]] ([[User talk:$2|diskussion]]) ogjord',
+'undo-summary-username-hidden' => 'Gör version $1 av en dold användare ogjord',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Kan inte skapa konto',
@@ -1196,8 +1211,8 @@ Anledningen till blockeringen var "$2".',
 Förklaring: (nuvarande) = skillnad mot nuvarande version; (föregående) = skillnad mot föregående version; '''m''' = mindre ändring.",
 'history-fieldset-title' => 'Bläddra i historiken',
 'history-show-deleted' => 'Endast borttagna',
-'histfirst' => 'Första',
-'histlast' => 'Senaste',
+'histfirst' => 'äldsta',
+'histlast' => 'nyaste',
 'historysize' => '({{PLURAL:$1|1 byte|$1 byte}})',
 'historyempty' => '(tom)',
 
@@ -1350,6 +1365,7 @@ Se till att sidhistorikens kontinuitet behålls när du sammanfogar historik.',
 'compareselectedversions' => 'Jämför angivna versioner',
 'showhideselectedversions' => 'Visa/dölj valda versioner',
 'editundo' => 'gör ogjord',
+'diff-empty' => '(Ingen skillnad)',
 'diff-multi' => '({{PLURAL:$1|En mellanliggande version|$1 mellanliggande versioner}} av {{PLURAL:$2|en användare|$2 användare}} visas inte)',
 'diff-multi-manyusers' => '({{PLURAL:$1|En mellanliggande version|$1 mellanliggande versioner}} av mer än $2 användare visas inte)',
 'difference-missing-revision' => '{{PLURAL:$2|En revision|$2 revisioner}} av denna skillnad ($1) kunde inte hittas.
@@ -1377,7 +1393,6 @@ Detaljer kan hittas i [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}
 'searchmenu-legend' => 'Sökalternativ',
 'searchmenu-exists' => "'''Det finns en sida med namnet \"[[:\$1]]\" på denna wiki.'''",
 'searchmenu-new' => "'''Skapa sidan \"[[:\$1]]\" på denna wiki!'''",
-'searchhelp-url' => 'Help:Innehåll',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Bläddra igenom sidor med detta prefix]]',
 'searchprofile-articles' => 'Innehållssidor',
 'searchprofile-project' => 'Hjälp- och projektsidor',
@@ -1454,7 +1469,6 @@ Notera dock att deras indexering av {{SITENAME}} kan vara något föråldrad.',
 'resetprefs' => 'Återställ osparade ändringar',
 'restoreprefs' => 'Återställ alla standardinställningar',
 'prefs-editing' => 'Redigering',
-'prefs-edit-boxsize' => 'Storlek på redigeringsfönstret.',
 'rows' => 'Rader:',
 'columns' => 'Kolumner:',
 'searchresultshead' => 'Sökning',
@@ -1465,9 +1479,6 @@ Notera dock att deras indexering av {{SITENAME}} kan vara något föråldrad.',
 'recentchangesdays-max' => '(maximalt $1 {{PLURAL:$1|dygn|dygn}})',
 'recentchangescount' => 'Antal redigeringar som visas som standard:',
 'prefs-help-recentchangescount' => 'Detta inkluderar senaste ändringarna, sidhistorik och loggar.',
-'prefs-help-watchlist-token' => 'Om du fyller i detta fält med en hemlig nyckel så skapas ett RSS-flöde för din bevakningslista.
-Alla som kan nyckeln kan också läsa din bevakningslista, så välj ett säkert värde.
-Här är ett slumpmässigt genererat värde som du kan använda: $1',
 'savedprefs' => 'Dina inställningar har sparats',
 'timezonelegend' => 'Tidszon:',
 'localtime' => 'Lokal tid:',
@@ -1498,7 +1509,6 @@ Här är ett slumpmässigt genererat värde som du kan använda: $1',
 'prefs-reset-intro' => 'Du kan använda den här sidan till att återställa dina inställningar till webbplatsens standardinställningar.
 Detta kan inte återställas.',
 'prefs-emailconfirm-label' => 'E-postbekräftelse:',
-'prefs-textboxsize' => 'Storlek på redigeringsrutan',
 'youremail' => 'E-post:',
 'username' => '{{GENDER:$1|Användarnamn}}:',
 'uid' => '{{GENDER:$1|Användar}}-ID:',
@@ -1529,7 +1539,9 @@ Om du väljer att ange ditt riktiga namn, kommer det att användas för att till
 'prefs-signature' => 'Signatur',
 'prefs-dateformat' => 'Datumformat',
 'prefs-timeoffset' => 'Tidsförskjutning',
-'prefs-advancedediting' => 'Avancerade alternativ',
+'prefs-advancedediting' => 'Allmänt',
+'prefs-editor' => 'Redigerare',
+'prefs-preview' => 'Förhandsvisa',
 'prefs-advancedrc' => 'Avancerade alternativ',
 'prefs-advancedrendering' => 'Avancerade alternativ',
 'prefs-advancedsearchoptions' => 'Avancerade alternativ',
@@ -1565,6 +1577,7 @@ Om du väljer att ange ditt riktiga namn, kommer det att användas för att till
 'userrights-changeable-col' => 'Grupper du kan ändra',
 'userrights-unchangeable-col' => 'Grupper du inte kan ändra',
 'userrights-conflict' => 'Användarrättighetskonflikt! Var god tillämpa dina ändringar igen.',
+'userrights-removed-self' => 'Du tog bort dina egna rättigheter. Som sådan, kan du inte längre komma åt denna sida.',
 
 # Groups
 'group' => 'Grupp:',
@@ -1608,7 +1621,7 @@ Om du väljer att ange ditt riktiga namn, kommer det att användas för att till
 'right-reupload-shared' => 'Skriva över delade filer lokalt',
 'right-upload_by_url' => 'Ladda upp en fil genom en URL',
 'right-purge' => 'Rensa cachen för sidor utan att behöva bekräfta',
-'right-autoconfirmed' => 'Redigera halvlåsta sidor',
+'right-autoconfirmed' => 'Påverkas inte av IP-baserade hastighetsgränser',
 'right-bot' => 'Behandlas som en automatisk process',
 'right-nominornewtalk' => 'Mindre ändringar på diskussionssidor ger inte besked om nya meddelanden',
 'right-apihighlimits' => 'Använda högre gränser i API-frågor',
@@ -1629,12 +1642,20 @@ Om du väljer att ange ditt riktiga namn, kommer det att användas för att till
 'right-ipblock-exempt' => 'Kan redigera från blockerade IP-adresser',
 'right-proxyunbannable' => 'Kan redigera från blockerade proxyer',
 'right-unblockself' => 'Avblockera sig själva',
-'right-protect' => 'Ändra skyddsnivåer och redigera skyddade sidor',
-'right-editprotected' => 'Redigera skyddade sidor',
+'right-protect' => 'Ändra skyddsnivåer och redigera kaskadskyddade sidor',
+'right-editprotected' => 'Redigera skyddade sidor som "{{int:protect-level-sysop}}"',
+'right-editsemiprotected' => 'Redigera skyddade sidor som "{{int:protect-level-autoconfirmed}}"',
 'right-editinterface' => 'Redigera användargränssnittet',
 'right-editusercssjs' => 'Redigera andra användares CSS- och JS-filer',
 'right-editusercss' => 'Redigera andra användares CSS-filer',
 'right-edituserjs' => 'Redigera andra användares JS-filer',
+'right-editmyusercss' => 'Redigera din egen användares CSS-filer',
+'right-editmyuserjs' => 'Redigera din egen användares JavaScript-filer',
+'right-viewmywatchlist' => 'Visa din egen bevakningslista',
+'right-editmywatchlist' => 'Redigera din egen bevakningslista. Observera att en del åtgärder kommer fortfarande lägga till sidor även utan denna rättighet.',
+'right-viewmyprivateinfo' => 'Visa dina egna privata data (t.ex. e-postadress, riktiga namn)',
+'right-editmyprivateinfo' => 'Redigera dina egen privata data (t.ex. e-postadress, riktiga namn)',
+'right-editmyoptions' => 'Redigera dina egna inställningar',
 'right-rollback' => 'Rulla tillbaka den användare som senast redigerat en sida',
 'right-markbotedits' => 'Markera tillbakarullningar som robotändringar',
 'right-noratelimit' => 'Påverkas inte av hastighetsgränser',
@@ -1696,12 +1717,17 @@ Om du väljer att ange ditt riktiga namn, kommer det att användas för att till
 'action-userrights-interwiki' => 'ändra rättigheter för användare på andra wikier',
 'action-siteadmin' => 'låsa eller låsa upp databasen',
 'action-sendemail' => 'skicka e-post',
+'action-editmywatchlist' => 'redigera din bevakningslista',
+'action-viewmywatchlist' => 'visa din bevakningslista',
+'action-viewmyprivateinfo' => 'visa din privata information',
+'action-editmyprivateinfo' => 'redigera din privata information',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|ändring|ändringar}}',
 'recentchanges' => 'Senaste ändringarna',
 'recentchanges-legend' => 'Alternativ för senaste ändringarna',
 'recentchanges-summary' => 'Följ de senaste ändringarna i wikin på denna sida.',
+'recentchanges-noresult' => 'Inga ändringar under den angivna perioden matchar dessa kriterier.',
 'recentchanges-feed-description' => 'Följ de senaste ändringarna i wikin genom den här matningen.',
 'recentchanges-label-newpage' => 'Denna redigering skapade en ny sida',
 'recentchanges-label-minor' => 'Detta är en mindre ändring',
@@ -1738,7 +1764,6 @@ Om du väljer att ange ditt riktiga namn, kommer det att användas för att till
 'recentchangeslinked-feed' => 'Relaterade ändringar',
 'recentchangeslinked-toolbox' => 'Relaterade ändringar',
 'recentchangeslinked-title' => 'Ändringar relaterade till $1',
-'recentchangeslinked-noresult' => 'Inga ändringar på länkade sidor under den angivna tidsperioden.',
 'recentchangeslinked-summary' => "Detta är en lista över de senaste ändringarna på sidor som länkas till från en given sida (eller på sidor som hör till en viss kategori).
 Sidor på [[Special:Watchlist|din bevakningslista]] är markerade med '''fetstil'''.",
 'recentchangeslinked-page' => 'Sidnamn:',
@@ -1750,7 +1775,7 @@ Sidor på [[Special:Watchlist|din bevakningslista]] är markerade med '''fetstil
 'reuploaddesc' => 'Avbryt uppladdningen och gå tillbaka till uppladdningsformuläret.',
 'upload-tryagain' => 'Skicka modifierad filbeskrivning',
 'uploadnologin' => 'Inte inloggad',
-'uploadnologintext' => 'Du måste vara [[Special:UserLogin|inloggad]] för att kunna ladda upp filer.',
+'uploadnologintext' => 'Du måste $1 för att ladda upp filer.',
 'upload_directory_missing' => 'Uppladdningskatalogen ($1) saknas och kunde inte skapas av webbservern.',
 'upload_directory_read_only' => 'Webbservern kan inte skriva till uppladdningskatalogen ($1).',
 'uploaderror' => 'Fel vid uppladdningen',
@@ -1881,7 +1906,7 @@ $1',
 'upload-proto-error' => 'Felaktigt protokoll',
 'upload-proto-error-text' => 'Fjärruppladdning kräver URL:ar som börjar med <code>http://</code> eller <code>ftp://</code>.',
 'upload-file-error' => 'Internt fel',
-'upload-file-error-text' => 'Ett internt fel inträffade när en temporär fil skulle skapas på servern. Kontakta en [[Special:ListUsers/sysop|systemadministratör]].',
+'upload-file-error-text' => 'Ett internt fel inträffade när en temporär fil skulle skapas på servern. Kontakta en [[Special:ListUsers/sysop|administratör]].',
 'upload-misc-error' => 'Okänt uppladdningsfel',
 'upload-misc-error-text' => 'Ett okänt fel inträffade under uppladdningen.
 Kontrollera att URL:en giltig och försök igen.
@@ -2140,8 +2165,9 @@ En sida anses vara en förgreningssida om den inkluderar en mall som länkas til
 'pageswithprop-submit' => 'Gå',
 
 'doubleredirects' => 'Dubbla omdirigeringar',
-'doubleredirectstext' => 'Det här är en lista över sidor som dirigerar om till andra omdirigeringssidor. Varje rad innehåller länkar till den första och andra omdirigeringsidan, samt till målet för den andra omdirigeringen. Målet för den andra omdirigeringen är ofta den "riktiga" sidan, som den första omdirigeringen egentligen ska leda till.
-<del>Stryk över</del> poster som har åtgärdats.',
+'doubleredirectstext' => 'Det här är en lista över sidor som dirigerar om till andra omdirigeringssidor. 
+Varje rad innehåller länkar till den första och andra omdirigeringsidan, samt till målet för den andra omdirigeringen. Målet för den andra omdirigeringen är ofta den "riktiga" sidan, som den första omdirigeringen egentligen ska leda till.
+<del>Överstrukna</del> poster har åtgärdats.',
 'double-redirect-fixed-move' => '[[$1]] har flyttats, och är nu en omdirigering till [[$2]]',
 'double-redirect-fixed-maintenance' => 'Fixar dubbel omdirigering från [[$1]] till [[$2]].',
 'double-redirect-fixer' => 'Omdirigeringsrättaren',
@@ -2313,7 +2339,8 @@ Det krävs åtminstone en toppdomän, t.ex. "*.org".<br />
 'listgrouprights' => 'Behörigheter för användargrupper',
 'listgrouprights-summary' => 'Följande lista visar vilka användargrupper som är definierade på den här wikin och vilka behörigheter grupperna har.
 Det kan finnas [[{{MediaWiki:Listgrouprights-helppage}}|ytterligare information]] om de olika behörigheterna.',
-'listgrouprights-key' => '* <span class="listgrouprights-granted">Given rättighet</span>
+'listgrouprights-key' => 'Teckenförklaring:
+* <span class="listgrouprights-granted">Beviljad rättighet</span>
 * <span class="listgrouprights-revoked">Tillbakatagen rättighet</span>',
 'listgrouprights-group' => 'Grupp',
 'listgrouprights-rights' => 'Behörigheter',
@@ -2384,7 +2411,6 @@ Framtida ändringar av den här sidan och dess diskussionssida kommer att listas
 'unwatchthispage' => 'Sluta bevaka',
 'notanarticle' => 'Inte en artikel',
 'notvisiblerev' => 'Sidversionen har raderats',
-'watchnochange' => 'Inga av dina bevakade sidor har ändrats inom den visade tidsperioden.',
 'watchlist-details' => 'Du har $1 {{PLURAL:$1|sida|sidor}} på din bevakningslista (diskussionssidor är inte medräknade).',
 'wlheader-enotif' => 'E-postmeddelanden är aktiverade.',
 'wlheader-showupdated' => "Sidor som har ändrats sedan ditt senaste besök visas i '''fetstil.'''",
@@ -2408,7 +2434,7 @@ Framtida ändringar av den här sidan och dess diskussionssida kommer att listas
 'enotif_subject_created' => '{{SITENAME}}sidan $1 har skapats av {{gender:$2|$2}}',
 'enotif_subject_moved' => '{{SITENAME}}sidan $1 har flyttats av {{gender:$2|$2}}',
 'enotif_subject_restored' => '{{SITENAME}}sidan $1 har återställts av {{gender:$2|$2}}',
-'enotif_subject_changed' => '{{SITENAME}}sidan $1 har ändrats {{gender:$2|$2}}',
+'enotif_subject_changed' => '{{SITENAME}}-sidan $1 har {{GENDER:$2|ändrats}} av $2',
 'enotif_body_intro_deleted' => 'Sidan $1 på {{SITENAME}} raderades den $PAGEEDITDATE av {{gender:$2|$2}}, se $3.',
 'enotif_body_intro_created' => '{{SITENAME}}sidan $1 skapades den $PAGEEDITDATE av {{gender:$2|$2}}, se $3 för den aktuella versionen.',
 'enotif_body_intro_moved' => '{{SITENAME}}sidan $1 flyttades den $PAGEEDITDATE av {{gender:$2|$2}}, se $3 för den aktuella versionen.',
@@ -2491,7 +2517,7 @@ Se $2 för noteringar om de senaste raderingarna.',
 Sidan ändrades senast av [[User:$3|$3]] ([[User talk:$3|diskussion]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]).',
 'editcomment' => "Redigeringskommentaren var: \"''\$1''\".",
 'revertpage' => 'Återställde redigeringar av  [[Special:Contributions/$2|$2]] ([[User talk:$2|användardiskussion]]) till senaste versionen av [[User:$1|$1]]',
-'revertpage-nouser' => 'Återställda redigeringar av (användarnamn borttaget) till senaste version av [[User:$1|$1]]',
+'revertpage-nouser' => 'Återställde redigeringar av en dold användare till den senaste versionen av [[User:$1|$1]]',
 'rollback-success' => 'Återställde ändringar av $1;
 ändrade tillbaka till senaste version av $2.',
 
@@ -3907,7 +3933,6 @@ Du kan också [[Special:EditWatchlist|använda standardeditorn]].',
 'version-other' => 'Annat',
 'version-mediahandlers' => 'Mediahanterare',
 'version-hooks' => 'Hakar',
-'version-extension-functions' => 'Tilläggsfunktioner',
 'version-parser-extensiontags' => 'Tilläggstaggar',
 'version-parser-function-hooks' => 'Parserfunktioner',
 'version-hook-name' => 'Namn',
@@ -3989,6 +4014,7 @@ Du bör ha fått [{{SERVER}}{{SCRIPTPATH}}/COPYING en kopia av GNU General Publi
 'tags' => 'Giltiga ändringsmärken',
 'tag-filter' => 'Filter för [[Special:Tags|märken]]:',
 'tag-filter-submit' => 'Filter',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Märke|Märken}}]]: $2)',
 'tags-title' => 'Märken',
 'tags-intro' => 'Denna sida listar märkena som mjukvaran kan markera en redigering med, och deras betydelse.',
 'tags-tag' => 'Märkesnamn',
index 84d05a0..78ac9c5 100644 (file)
@@ -14,6 +14,7 @@
  * @author Malangali
  * @author Marcos
  * @author Muddyb Blast Producer
+ * @author Nemo bis
  * @author Robert Ullmann
  * @author Stephenwanjau
  * @author לערי ריינהארט
@@ -297,7 +298,7 @@ $messages = array(
 'vector-view-edit' => 'Hariri',
 'vector-view-history' => 'Fungua historia',
 'vector-view-view' => 'Soma',
-'vector-view-viewsource' => 'Kuonyesha kodi',
+'vector-view-viewsource' => 'Tazama msimbo',
 'actions' => 'Vitendo',
 'namespaces' => 'Maeneo ya wiki',
 'variants' => 'Vibadala',
@@ -377,7 +378,6 @@ $1',
 'disclaimers' => 'Kanusho',
 'disclaimerpage' => 'Project:Kanusho kwa jumla',
 'edithelp' => 'Usaidizi kwa uhariri',
-'edithelppage' => 'Help:Usaidizi kwa uhariri',
 'helppage' => 'Help:Yaliyomo',
 'mainpage' => 'Mwanzo',
 'mainpage-description' => 'Mwanzo',
@@ -407,9 +407,9 @@ Tazama [[Special:Version|ukurasa wa toleo]].',
 'youhavenewmessagesmulti' => 'Umepokea jumbe mpya kule $1',
 'editsection' => 'hariri',
 'editold' => 'hariri',
-'viewsourceold' => 'view source',
+'viewsourceold' => 'tazama msimbo',
 'editlink' => 'hariri',
-'viewsourcelink' => 'onyesha kodi za ukurasa',
+'viewsourcelink' => 'onesha msimbo wa ukurasa',
 'editsectionhint' => 'Hariri sehemu: $1',
 'toc' => 'Yaliyomo',
 'showtoc' => 'fichua',
@@ -431,7 +431,7 @@ Tazama [[Special:Version|ukurasa wa toleo]].',
 'sort-ascending' => 'Pangia kwa kupanda',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
-'nstab-main' => 'Makala',
+'nstab-main' => 'Ukurasa',
 'nstab-user' => 'Ukurasa wa mtumiaji',
 'nstab-media' => 'Ukurasa wa faili',
 'nstab-special' => 'Ukurasa maalum',
@@ -506,7 +506,7 @@ Data za hapa haziwezi kunawirishwa kwa sasa.',
 'wrong_wfQuery_params' => 'Parameta za ulizio zilizoingizwa wfQuery() na zisizo sahihi ni<br />
 Kitenda: $1<br />
 Ulizio: $2',
-'viewsource' => 'Onyesha kodi za ukurasa',
+'viewsource' => 'Tazama msimbo',
 'viewsource-title' => 'Tazama chanzo cha $1',
 'actionthrottled' => 'Tendo limesimamishwa',
 'actionthrottledtext' => 'Ikiwa kama hatua ya kupambana na uharibifu, umefika kikomo katika kutenda jambo hili kwa mara nyingi mno tena kwa kipindi cha muda mfupi kama huu, na umevuka kiwango hiki.
@@ -666,10 +666,8 @@ Inawezekana ikawa tayari umefaulu kubadilisha neno lako la siri au neno la siri
 
 # Special:PasswordReset
 'passwordreset' => 'Seti upya neno la siri',
-'passwordreset-text' => 'Jaza fomu hii ili upate barua pepe inayotoa maelezo ya akaunti yako.',
 'passwordreset-legend' => 'Seti upya neno la siri',
 'passwordreset-disabled' => 'Kuweka neno la siri jipya kumeshitishwa katika wiki hii.',
-'passwordreset-pretext' => '{{PLURAL:$1||Ingiza moja kati ya data hizi hapo chini}}',
 'passwordreset-username' => 'Jina la mtumiaji:',
 'passwordreset-domain' => 'Miliki',
 'passwordreset-capture' => 'Ioneshe barua-pepe itakayotumwa?',
@@ -850,7 +848,7 @@ Ni maandiko yaliyopo ndani ya sanduku la juu '''tu''' ambayo yatahifadhiwa utaka
 'yourtext' => 'Maandishi yako',
 'storedversion' => 'Pitio lililohifadhiwa mwishoni',
 'nonunicodebrowser' => "'''Ilani: Kivinjari chako hakikubaliani na Unicode.''' 
-Ili uweze kuhariri kurasa sawasawa, herufi zisizo za ASCII zitaonekana katika sanduku la kuhariri kama kodi za hexadecimali.",
+Ili uweze kuhariri kurasa sawasawa, herufi zisizo za ASCII zitaonekana katika sanduku la kuhariri kama msimbo wa hexadecimali.",
 'editingold' => "'''ANGALIA: Unakuwa unahariri toleo la zamani la ukurasa huu.
 Ukiendelea kulihariri, mabadilisho yote yaliyofanywa tangu pale yatapotezwa.'''",
 'yourdiff' => 'Tofauti',
@@ -1096,7 +1094,6 @@ Tazama [[Special:BlockList|IP block orodha ya uzuio wa IP]] kuona orodha ya zuio
 'searchmenu-legend' => 'Hitiari za kutafuta',
 'searchmenu-exists' => "'''Ukurasa wa \"[[:\$1]]\" upo kwenye wiki hii'''",
 'searchmenu-new' => "'''Anzisha ukurasa wa \"[[:\$1]]\" katika wiki hii!'''",
-'searchhelp-url' => 'Help:Yaliyomo',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Tafuta kurasa kwenye eneo hili la wiki]]',
 'searchprofile-articles' => 'Kurasa kwa kusudi ya wiki',
 'searchprofile-project' => 'Kurasa za msaada na za mradi',
@@ -1173,7 +1170,6 @@ Ujue lakini kwamba kumbukumbu za {{SITENAME}} kule Google labda zilipitwa na wak
 'resetprefs' => 'Utupe mabadiliko yasijahifadhika',
 'restoreprefs' => 'Rudisha mapendekezo ya msingi',
 'prefs-editing' => 'Kuhariri',
-'prefs-edit-boxsize' => 'Ukubwa wa dirisha la kuhariri.',
 'rows' => 'Mistari:',
 'columns' => 'Safu:',
 'searchresultshead' => 'Kutafuta',
@@ -1184,9 +1180,6 @@ Ujue lakini kwamba kumbukumbu za {{SITENAME}} kule Google labda zilipitwa na wak
 'recentchangesdays-max' => 'Isizidi {{PLURAL:$1|siku}} $1',
 'recentchangescount' => 'Idadi ya masahihisho yatakayoonyeshwa kwa kawaida:',
 'prefs-help-recentchangescount' => 'Kwenye kurasa za mabadiliko ya karibuni, za historia ya ukurasa, na za kumbukumbu.',
-'prefs-help-watchlist-token' => 'Ukiandika ufunguo wa siri kwenye kisanduku hiki, programu itaanzisha tawanyiko la RSS kwa ajili ya maangalizi yako.
-Mtu wowote anayejua ufunguo wa siri huu ataweza kusoma orodha yako ya maangalizi, kwa hiyo chagua ufunguo salama.
-Hapo kuna ufunguo uliotolewa na programu kwa kubahatisha, ambao unaweza kuutumia: $1',
 'savedprefs' => 'Mapendekezo yako yamehifadhiwa.',
 'timezonelegend' => 'Ukanda saa:',
 'localtime' => 'Saa ya kwetu:',
@@ -1217,7 +1210,6 @@ Hapo kuna ufunguo uliotolewa na programu kwa kubahatisha, ambao unaweza kuutumia
 'prefs-reset-intro' => 'Unaweza kutumia ukurasa huu ili kurudisha mapendekezo yako kwenye yale ya msingi ya tovuti.
 Hutaweza kulibatilisha tendo hili baadaye.',
 'prefs-emailconfirm-label' => 'Kuhakikisha barua pepe:',
-'prefs-textboxsize' => 'Ukubwa wa sanduku la kuhariri',
 'youremail' => 'Barua pepe yako:',
 'username' => 'Jina la mtumiaji:',
 'uid' => 'Namba ya mtumiaji:',
@@ -1438,7 +1430,6 @@ Taarifa hii itakuwa wazi.',
 'recentchangeslinked-feed' => 'Mabadiliko husika',
 'recentchangeslinked-toolbox' => 'Mabadiliko husika',
 'recentchangeslinked-title' => 'Mabadiliko kuhusiana na "$1"',
-'recentchangeslinked-noresult' => 'Hakuna mabadiliko kwenye kurasa zilizounganishwa wakati wa muda huo.',
 'recentchangeslinked-summary' => "Ukurasa maalum huu unaorodhesha mabadiliko ya hivi karibuni katika kurasa zinazoungwa (au katika jamii fulani).  Kurasa katika [[Special:Watchlist|maangalizi yako]] ni za '''koze'''.",
 'recentchangeslinked-page' => 'Jina la ukurasa:',
 'recentchangeslinked-to' => 'Onyesha mabadiliko yaliyotokea kwenye kurasa zile zinazoungwa kufikia ukurasa uliotajwa',
@@ -1543,7 +1534,7 @@ Tazama kumbukumbu za kufuta faili lile kabla hujaendelea kulipakia upya.',
 'uploaddisabledtext' => 'Upakiaji wa mafaili umelemazwa.',
 'php-uploaddisabledtext' => 'Upakiaji wa mafaili umelemazwa katika PHP.
 Tafadhali utazame kipimo cha file_uploads.',
-'uploadscripted' => 'Faili hili lina HTML au kodi ambazo labda itaeleweka vibaya na kivinjari.',
+'uploadscripted' => 'Faili hili lina HTML au misimbo ambazo labda itaeleweka vibaya na kivinjari.',
 'uploadvirus' => 'Faili lina kirusi!
 Maelezo mengine: $1',
 'uploadjava' => 'Faili ZIP hili lina faili Java .class humo ndani.
@@ -1823,7 +1814,7 @@ Sasa unaelekeza kwa [[$2]].',
 'mostlinked' => 'Kurasa zinazoungwa kuliko zote',
 'mostlinkedcategories' => 'Jamii zinazoungwa kuliko zote',
 'mostlinkedtemplates' => 'Vigezo vinavyoungwa kuliko zote',
-'mostcategories' => 'Jamii ambazo hazitumiwi',
+'mostcategories' => 'Kurasa zenye jamii kuliko zote',
 'mostimages' => 'Mafaili yanayoungwa kuliko yote',
 'mostrevisions' => 'Kurasa zenye mapitio mengi kuliko zote',
 'prefixindex' => 'Kurasa zote zenye viambishi awali',
@@ -2013,7 +2004,6 @@ Ukitaka kufuta ukurasa huo kutoka maangalizi yako baadaye, bonyeza \"Acha kufuat
 'unwatchthispage' => 'Acha kufuatilia',
 'notanarticle' => 'Ukurasa nje ya kusudi ya wiki',
 'notvisiblerev' => 'Haririo ya mwisho, iliotendwa na mtumiaji mwingine, imefutwa',
-'watchnochange' => 'Hakuna kitu kati ya maangalizi yako kilichohaririwa katika kipindi kilichotajwa.',
 'watchlist-details' => 'Unafuatilia {{PLURAL:$1|ukurasa $1|kurasa $1}} bila kuzingatia kurasa za majadiliano.',
 'wlheader-enotif' => 'Huduma ya kuarifu kwa barua pepe imewezeshwa.',
 'wlheader-showupdated' => "Kurasa zilizobadilika tangu ulivyotembelea mara ya mwisho zinaonyeshwa katika hali ya '''kukooza'''",
@@ -2215,7 +2205,7 @@ $1',
 'mycontris' => 'Michango',
 'contribsub2' => 'Kwa $1 ($2)',
 'nocontribs' => 'Mabadiliko yanayolingana na vigezo vilivyoulizwa hayakupatikana.',
-'uctop' => '(juu)',
+'uctop' => '(ya kisasa)',
 'month' => 'Kutoka mwezi (na zamani zaidi):',
 'year' => 'Kutoka mwakani (na zamani zaidi):',
 
@@ -3201,6 +3191,6 @@ Tovuti hii inapata matatatizo wakati huu.',
 'duration-days' => '{{PLURAL:$1|siku}} $1',
 'duration-weeks' => '{{PLURAL:$1|wiki}} $1',
 'duration-years' => '{{PLURAL:$1|mwaka|miaka}} $1',
-'duration-centuries' => '$1 {{PLURAL:$1|century|karne}}',
+'duration-centuries' => '{{PLURAL:$1|karne}} $1',
 
 );
index 4a38133..3e83578 100644 (file)
@@ -300,7 +300,6 @@ $1',
 'disclaimers' => 'Prawne informacyje',
 'disclaimerpage' => 'Project:Prawne informacyje',
 'edithelp' => 'Půmoc we půmjyńańy',
-'edithelppage' => 'Help:Jak půmjyńać zajta',
 'helppage' => 'Help:Treść',
 'mainpage' => 'Przodńo zajta',
 'mainpage-description' => 'Przodńo zajta',
@@ -554,10 +553,8 @@ Możliwe co właśńy zmjyńiłżeś swoje hasło abo poprosiłżeś uo nowe tym
 
 # Special:PasswordReset
 'passwordreset' => 'Wyczyść hasło',
-'passwordreset-text' => 'Wypełnij formularz, aby otrzymać e‐mail z przypomnieniem danych Twojego konta.',
 'passwordreset-legend' => 'Wyczyść hasło',
 'passwordreset-disabled' => 'No tyj wiki zamkńynto resytowańy hasył.',
-'passwordreset-pretext' => '{{PLURAL:$1||Wćep jydną z danych}}',
 'passwordreset-username' => 'Mjano używacza:',
 'passwordreset-domain' => 'Domyna:',
 'passwordreset-capture' => 'Czy pokazywać treść wiadomości e‐mail?',
@@ -939,7 +936,6 @@ $1',
 'searchmenu-legend' => 'Uopcyje sznupańo',
 'searchmenu-exists' => "'''Ńy ma zajty uo mjańy \"[[:\$1]]\" na tyj wiki'''",
 'searchmenu-new' => "'''Stwůrz zajta „[[:$1|$1]]” na tyj wiki!'''",
-'searchhelp-url' => 'Help:Pomoc',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Przeglůndej zajty kere s anfanga majům tyn przedrostek]]',
 'searchprofile-articles' => 'Zajty',
 'searchprofile-project' => 'Zajty půmocy a projektu',
@@ -1013,7 +1009,6 @@ $1',
 'resetprefs' => 'Preferencyje důmyślne',
 'restoreprefs' => 'Wćep wszyjskie důmyślne preferencyje',
 'prefs-editing' => 'Sprowjańy',
-'prefs-edit-boxsize' => 'Rozmjor uokna edycyji.',
 'rows' => 'Wjerše:',
 'columns' => 'Kůlumny:',
 'searchresultshead' => 'Šnupańy',
@@ -1252,7 +1247,6 @@ $1',
 'recentchangeslinked-feed' => 'Pomjyńańa we adresowanych',
 'recentchangeslinked-toolbox' => 'Půmjyńańa we nalinkowanych',
 'recentchangeslinked-title' => 'Pomjyńyńo w adrésowanych s "$1"',
-'recentchangeslinked-noresult' => 'Nikt nic niy pomjyńoł w dolinkowanych bez čas uo kery žeś pytou.',
 'recentchangeslinked-summary' => "Ńiżyj je lista ńydowno půmjyńanych na zajtach, na kere uobrano zajta linkuje (abo wszyjskich zajtach patrzůncych do uobranyj kategoryje).
 Zajty z [[Special:Watchlist|pozůrlisty]] sům '''rube'''",
 'recentchangeslinked-page' => 'Mjano zajty',
@@ -1681,7 +1675,6 @@ Na tyi liśće bydźeš mjou rejer přišuych sprowjyń tyi zajty i jeji zajty g
 'unwatchthispage' => 'Přestoń dować pozůr',
 'notanarticle' => 'To ńy je artikel',
 'notvisiblerev' => 'Wersyja zostoua wyćepano',
-'watchnochange' => 'Žodno ze zajtůw, na kere dowoš pozůr, ńy bůua sprowjano w podanym uokreśe.',
 'watchlist-details' => 'Na pozorliśće {{PLURAL:$1|je 1 artikel|sům $1 artikle|je $1 artikli}} ńy rachujůnc zajtůw godek.',
 'wlheader-enotif' => 'Wysůuańy powjadůmjyń na adres e-brif je zouůnčůne',
 'wlheader-showupdated' => "Zajty, kere bouy sprowjane uod Twoi uostatńi wizyty na ńych zostoy naškryflane '''tuustym'''",
@@ -2765,7 +2758,6 @@ Možeš tyž [[Special:EditWatchlist|užyć standardowygo edytora]].',
 'version-other' => 'Inkše',
 'version-mediahandlers' => 'Wtyčki uobsůgi medjůw',
 'version-hooks' => 'Haki (ang. hooks)',
-'version-extension-functions' => 'Fůnkcyje rozšyřyń',
 'version-parser-extensiontags' => 'Značńiki rozšeřyń do analizatora skuadńi',
 'version-parser-function-hooks' => 'Fůnkcyje hokůw analizatora skuadńi (ang. parser function hooks)',
 'version-hook-name' => 'Mjano haka (ang. hook name)',
index 6574f38..3447a94 100644 (file)
@@ -20,6 +20,7 @@
  * @author Mayooranathan
  * @author Naveen
  * @author Planemad
+ * @author Sank
  * @author Shanmugamp7
  * @author Sodabottle
  * @author Sundar
@@ -31,6 +32,7 @@
  * @author Urhixidur
  * @author לערי ריינהארט
  * @author கோபி
+ * @author கௌசிக் பிரபு
  * @author செல்வா
  * @author மதனாஹரன்
  * @author බිඟුවා
@@ -161,7 +163,7 @@ $messages = array(
 'june' => 'ஜூன்',
 'july' => 'ஜூலை',
 'august' => 'ஆகஸ்ட்',
-'september' => 'à®\9aà¯\86பà¯\8dà®\9fà¯\86à®®à¯\8dபரà¯\8d',
+'september' => 'செப்டம்பர்',
 'october' => 'அக்டோபர்',
 'november' => 'நவம்பர்',
 'december' => 'டிசம்பர்',
@@ -238,7 +240,7 @@ $messages = array(
 'vector-action-protect' => 'காக்கவும்',
 'vector-action-undelete' => 'நீக்கத்தை நிறுத்து',
 'vector-action-unprotect' => 'காப்பை மாற்று',
-'vector-simplesearch-preference' => 'à®\9aாதாரண à®¤à¯\87à®\9fà¯\81தலà¯\8d à®ªà®\9fà¯\8dà®\9fà¯\88யதà¯\8dதà¯\88 à®\9aà¯\86யலà¯\8dபà®\9fà¯\81தà¯\8dதவà¯\81à®®à¯\8d (Vector தோல் மட்டும்)',
+'vector-simplesearch-preference' => 'à®\8eளிதாà®\95à¯\8dà®\95பà¯\8dபà®\9fà¯\8dà®\9f à®¤à¯\87à®\9fà¯\81தலà¯\8d à®ªà®\9fà¯\8dà®\9fà¯\88யà¯\88 à®\9aà¯\86யறà¯\8dபà®\9fà¯\81தà¯\8dதவà¯\81à®®à¯\8d (வà¯\86à®\95à¯\8dà®\9fà®°à¯\8d தோல் மட்டும்)',
 'vector-view-create' => 'உருவாக்கவும்',
 'vector-view-edit' => 'தொகு',
 'vector-view-history' => 'வரலாற்றைக் காட்டவும்',
@@ -253,7 +255,7 @@ $messages = array(
 'navigation-heading' => 'வழிசெலுத்தல் பட்டி',
 'errorpagetitle' => 'தவறு',
 'returnto' => '$1 பக்கத்துக்குத் திரும்பு.',
-'tagline' => '{{SITENAME}} இருந்து',
+'tagline' => '{{SITENAME}} à®\87லà¯\8d à®\87à®°à¯\81நà¯\8dதà¯\81',
 'help' => 'உதவி',
 'search' => 'தேடுக',
 'searchbutton' => 'தேடுக',
@@ -325,7 +327,6 @@ $1',
 'disclaimers' => 'பொறுப்புத் துறப்புகள்',
 'disclaimerpage' => 'Project:பொதுவான பொறுப்புத் துறப்புகள்',
 'edithelp' => 'தொகுத்தலுக்கான உதவி',
-'edithelppage' => 'Help:ஒருவர் பக்கமொன்றைத் தொகுப்பது எப்படி?',
 'helppage' => 'Help:உதவி',
 'mainpage' => 'முதற் பக்கம்',
 'mainpage-description' => 'முதற் பக்கம்',
@@ -486,9 +487,12 @@ MySQL returned error "$3: $4".',
 'welcomeuser' => 'வருக $1',
 'welcomecreation-msg' => 'உங்களுக்கான பயனர் கணக்கு உருவாக்கப்பட்டுள்ளது. உங்களுக்கேற்றவாறு [[Special:Preferences|{{SITENAME}} விருப்பத்தேர்வுகளை]] மாற்றிக் கொள்ள மறவாதீர்கள்.',
 'yourname' => 'பயனர் பெயர்:',
-'userlogin-yourname-ph' => 'தங்களின் பயனர் பெயரை உள்ளிடவும்',
+'userlogin-yourname' => 'பயனர் பெயர்',
+'userlogin-yourname-ph' => 'உங்கள் பயனர் பெயரை உள்ளிடுக',
 'yourpassword' => 'கடவுச்சொல்:',
-'userlogin-yourpassword-ph' => 'தங்களின் கடவுச்சொல்லை உள்ளிடவும்',
+'userlogin-yourpassword' => 'கடவுச்சொல்',
+'userlogin-yourpassword-ph' => 'உங்கள் கடவுச்சொல்லை உள்ளிடுக',
+'createacct-yourpassword-ph' => 'கடவுச்சொல்லை உள்ளிடுக',
 'yourpasswordagain' => 'கடவுச்சொல்லைத் திரும்ப தட்டச்சிடுக:',
 'createacct-yourpasswordagain' => 'கடவுச்சொல்லை உறுதிசெய்க',
 'createacct-yourpasswordagain-ph' => 'கடவுச்சொல்லை மீளவும் இடுக',
@@ -507,6 +511,7 @@ MySQL returned error "$3: $4".',
 'logout' => 'விடுபதிகை',
 'userlogout' => 'விடுபதிகை',
 'notloggedin' => 'புகுபதிகை செய்யப்படவில்லை',
+'userlogin-noaccount' => 'பயனர் கணக்கு இல்லையா?',
 'userlogin-joinproject' => 'இணைக {{SITENAME}}',
 'nologin' => "பயனர் கணக்கு இல்லையா? '''$1'''.",
 'nologinlink' => 'கணக்கு ஒன்றை உருவாக்கவும்',
@@ -514,15 +519,23 @@ MySQL returned error "$3: $4".',
 'gotaccount' => "ஏற்கனவே பயனர் கணக்கு உள்ளதா? '''$1'''.",
 'gotaccountlink' => 'புகுபதிகை',
 'userlogin-resetlink' => 'உங்கள் புகுபதிகைக் குறிப்புகளை மறந்துவிட்டீர்களா?',
-'createacct-join' => 'தங்களின் தகவலை கீழிடவும்',
-'createacct-email-ph' => 'தங்களின் மின்னஞ்சல் முகவரியை உள்ளிடவும்',
-'createaccountmail' => 'தற்காலிகமாக பொறுக்கிய ஒரு கடவுச்சொல்லை கீழே தரப்பட்டுள்ள மின்னஞ்சலுக்குச் செலுத்தவும்',
+'helplogin-url' => 'Help:புகுபதிகை',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|புகுபதிவதற்கான உதவி]]',
+'createacct-join' => 'உங்களின் தகவலை கீழிடவும்',
+'createacct-emailrequired' => 'மின்னஞ்சல் முகவரி',
+'createacct-emailoptional' => 'மின்னஞ்சல் முகவரி (விருப்பத்தேர்வு)',
+'createacct-email-ph' => 'உங்கள் மின்னஞ்சல் முகவரியை உள்ளிடுக',
+'createaccountmail' => 'தற்காலிகமாக எழுந்தமான ஒரு கடவுச்சொல்லை பயன்படுத்துக, அதை கீழே தரப்பட்டுள்ள மின்னஞ்சலுக்கு அனுப்புக',
 'createacct-realname' => 'உண்மைப் பெயர் (விருப்பத்தேர்வு)',
 'createaccountreason' => 'காரணம்:',
+'createacct-reason' => 'காரணம்',
 'createacct-reason-ph' => 'தாங்கள் ஏன் மற்றொரு கணக்கைத் துவங்குகிறீர்கள்?',
 'createacct-imgcaptcha-ph' => 'மேலே காணும் சொற்களை உள்ளிடுக',
-'createacct-submit' => 'தà®\99à¯\8dà®\95ளினà¯\8d à®\95ணà®\95à¯\8dà®\95ினà¯\88 à®\89à®°à¯\81வாà®\95à¯\8dà®\95வà¯\81à®®à¯\8d',
+'createacct-submit' => 'à®\89à®\99à¯\8dà®\95ளà¯\8d à®\95ணà®\95à¯\8dà®\95à¯\88 à®\89à®°à¯\81வாà®\95à¯\8dà®\95à¯\81à®\95',
 'createacct-benefit-heading' => '{{SITENAME}} தங்களைப் போன்றோர்களால் உருவாக்கப்பட்டது',
+'createacct-benefit-body1' => '{{PLURAL:$1|தொகுப்பு|தொகுப்புகள்}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|பக்கம்|பக்கங்கள்}}',
+'createacct-benefit-body3' => 'அண்மைய {{PLURAL:$1|பங்களிப்பாளர்|பங்களிப்பாளர்கள்}}',
 'badretype' => 'நீங்கள் பதிந்த கடவுச்சொற்கள்  பொருந்தவில்லை.',
 'userexists' => 'உள்ளிட்ட பயனர்பெயர் ஏற்கனவே உபயோகத்தில் உள்ளது.
 தயவுகூர்ந்து வேறு பெயரை தேர்ந்தெடுக்கவும்.',
@@ -611,10 +624,8 @@ MySQL returned error "$3: $4".',
 
 # Special:PasswordReset
 'passwordreset' => 'கடவுச்சொல்லை மீட்டமை',
-'passwordreset-text' => ' உங்கள் கடவுச்சொல்லை மீட்டமைக்க இப்படிவத்தை பூர்த்தி செய்யவும்.',
 'passwordreset-legend' => 'கடவுச்சொல்லை மீட்டமை',
 'passwordreset-disabled' => 'கடவுச்சொல் மீட்டமைப்பு இந்த விக்கியில் செயலிழக்க செய்யப்பட்டுள்ளது.',
-'passwordreset-pretext' => '{{PLURAL:$1|| தரவு பகுதி ஒன்றை கீழே உள்ளிடு}}',
 'passwordreset-username' => 'பயனர் பெயர்:',
 'passwordreset-domain' => 'இணையதள முகவரி:',
 'passwordreset-capture' => 'விளைவு மின்னஞ்சலை காண்',
@@ -834,6 +845,7 @@ $1 எனும் பயனரையோ வேறு [[{{MediaWiki:Grouppage-sy
 இது நீக்கப்பட்டதாக இருக்கலாம்.',
 'edit-conflict' => 'முரண்பாடுகளைத் தொகுக்கவும்.',
 'edit-no-change' => 'வாசகங்களுக்கு எந்த மாற்றமும் செய்யப்படவில்லை என்பதனால் உங்கள் தொகுப்பு புறக்கணிக்கப்பட்டது.',
+'postedit-confirmation' => 'உங்களது தொகுப்பு சேமிக்கப்பட்டது.',
 'edit-already-exists' => 'புதிய பக்கமொன்றை உருவாக்க முடியாது.
 இப்பக்கம் ஏற்கனவே உள்ளது.',
 'defaultmessagetext' => 'இயல்பிருப்பு தகவல் உரை',
@@ -1074,7 +1086,6 @@ $1",
 'searchmenu-legend' => 'தேடல் விருப்பு',
 'searchmenu-exists' => "'''\"[[:\$1]]\" என்னும் பெயருடைய பக்கம் இந்த விக்கியில் உள்ளது'''",
 'searchmenu-new' => "'''\"[[:\$1]]\" பக்கத்தை இந்த விக்கியில் உருவாக்கவும்!'''",
-'searchhelp-url' => 'Help:உதவி',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|இந்த முன்னொட்டுடன் உலவித்தேடு]]',
 'searchprofile-articles' => 'உள்ளடக்கப் பக்கங்களின் பட்டியல்',
 'searchprofile-project' => 'உதவி மற்றும் திட்டப் பக்கங்கள்',
@@ -1098,7 +1109,7 @@ $1",
 'search-interwiki-default' => '$1 தளத்தின் முடிவுகள்:',
 'search-interwiki-more' => '(மேலும்)',
 'search-relatedarticle' => 'தொடர்புடையவை',
-'mwsuggest-disable' => 'AJAX பரிந்துரைகளை முடக்கு',
+'mwsuggest-disable' => 'தேடல் பரிந்துரைகளை முடக்கு',
 'searcheverything-enable' => 'அனைத்துப் பெயர்வெளிகளிலும் தேடவும்',
 'searchrelated' => 'தொடர்புடையவை',
 'searchall' => 'அனைத்தும்',
@@ -1153,7 +1164,6 @@ $1",
 'resetprefs' => 'சேமிக்காத மாற்றங்கள் நீக்குக',
 'restoreprefs' => 'எல்லோருக்கும் பொதுவான வடிவமைப்பைத் திரும்பக்கொண்டுவரவும்.',
 'prefs-editing' => 'தொகுத்தல்',
-'prefs-edit-boxsize' => 'தொகுக்கும் சாளரத்தின் அளவு.',
 'rows' => 'நிரைகள் (கிடை வரிசைகள்):',
 'columns' => 'நிரல்கள்',
 'searchresultshead' => 'தேடுக',
@@ -1183,7 +1193,7 @@ $1",
 'timezoneregion-indian' => 'இந்தியப் பெருங்கடல்',
 'timezoneregion-pacific' => 'பசிபிக் பெருங்கடல்',
 'allowemail' => 'ஏனைய பயனர்களிடம் இருந்தான மின்னஞ்சல்களை அனுமதி',
-'prefs-searchoptions' => 'தà¯\87à®\9fà¯\81à®\95',
+'prefs-searchoptions' => 'தà¯\87à®\9fலà¯\8d',
 'prefs-namespaces' => 'பெயர்வெளிகள்',
 'defaultns' => 'அப்படியில்லையென்றால் இந்த பொயர்வெளிகளில் தேடவும்:',
 'default' => 'பொதுவானது',
@@ -1194,11 +1204,10 @@ $1",
 'prefs-reset-intro' => ' இந்த பக்கத்தை பயன்படுத்தி உங்கள் விருப்பங்களை தள இயல்புநிலைக்கு மீட்டமைக்கலாம்.
 இது செய்யாமல் இருக்க இயலாது.',
 'prefs-emailconfirm-label' => 'மின்னஞ்சலை உறுதிசெய்தல்:',
-'prefs-textboxsize' => 'தொகுக்கும் சாளரத்தின் அளவு',
 'youremail' => 'மின்னஞ்சல்:',
 'username' => '{{GENDER:$1|பயனர் பெயர்}}:',
 'uid' => '{{GENDER:$1|User}} ID:',
-'prefs-memberingroups' => 'பின்வரும் {{பன்மை:$1|குழு|குழுக்களில்}} {{பாலினம்:$2|உறுப்பினர்}}:',
+'prefs-memberingroups' => 'பின்வரும் {{PLURAL:$1|குழு|குழுக்களில்}} உறுப்பினர்:',
 'prefs-registration' => 'பதிவு செய்யும் நேரம்:',
 'yourrealname' => 'உண்மைப் பெயர்:',
 'yourlanguage' => 'மொழி:',
@@ -1435,7 +1444,6 @@ $1",
 'recentchangeslinked-feed' => 'தொடர்பான மாற்றங்கள்',
 'recentchangeslinked-toolbox' => 'தொடர்பான மாற்றங்கள்',
 'recentchangeslinked-title' => '"$1" பக்கத்துடன் தொடர்புடைய மாற்றங்கள்',
-'recentchangeslinked-noresult' => 'குறித்த நேரத்தில் இப்பக்கத்துடன் இணைக்கப்பட்ட பக்கங்களில் மாற்றங்கள் ஏதுமில்லை.',
 'recentchangeslinked-summary' => 'இந்த சிறப்புப் பக்கம் அண்மைய மாற்றங்களுக்குச் சென்று இந்தக் கட்டுரைக்கான மாற்றங்களைத் தேடுவதைத் தவிர்த்து, இந்தக் கட்டுரையுடன் தொடர்புடைய (அல்லது சிறப்புப் பட்டியலிலுள்ள அங்கத்தவர்களுக்கு) அண்மைய மாற்றங்களை மட்டும் பட்டியலிடுகிறது.இங்கு [[Special:Watchlist|உங்கள் கவனிப்புப் பட்டியலில்]] உள்ள பக்கங்கள் தடித்த எழுத்துக்களில் உள்ளன என்பதைக் கவனத்தில் கொள்ளவும்.',
 'recentchangeslinked-page' => 'பக்கப் பெயர்:',
 'recentchangeslinked-to' => 'இதற்குப் பதிலாக இப்பக்கத்தினை இணைத்த பக்கங்களின் மாற்றங்களைக் காட்டவும்',
@@ -2026,7 +2034,6 @@ $1',
 'unwatchthispage' => 'கவனிப்பதை நிறுத்தவும்',
 'notanarticle' => 'ஒரு கட்டுரைப் பக்கமல்ல',
 'notvisiblerev' => 'திருத்தம் நீக்கப்பட்டுள்ளது',
-'watchnochange' => 'காட்சிப்படுத்தப்பட்ட கால இடைவெளியில், கவனிப்பிலுள்ள, உங்கள் விடயமெதுவும் தொகுக்கப்பட்டிருக்கவில்லை.',
 'watchlist-details' => 'பேச்சுப் பக்கங்களைத் தவிர்த்து, {{PLURAL:$1|$1 பக்கம் கவனிக்கப்பட்டது.|$1 பக்கங்கள் கவனிக்கப்பட்டன.}}',
 'wlheader-enotif' => 'மின்னஞ்சல் அறிவித்தல்கள் செயல்படுத்தப்பட்டுள்ளன.',
 'wlheader-showupdated' => "உமது கடைசி வருகைக்குப் பின்னர் மாற்றங்கள் செய்யப்பட்ட பக்கங்கள் '''தடித்த எழுத்துக்களால்''' காட்டப்பட்டுள்ளன",
@@ -2258,7 +2265,7 @@ $1',
 'mycontris' => 'பங்களிப்புக்கள்',
 'contribsub2' => '$1 பயனரின் ($2)',
 'nocontribs' => 'இந்த நிபந்தனையுடன் ஒத்துப்போகும் வகையில் மாற்றங்களெதுவும் காணப்படவில்லை.',
-'uctop' => '(à®®à¯\87லà¯\8d)',
+'uctop' => '(தறà¯\8dபà¯\8bதà¯\88ய)',
 'month' => 'மாதம் உட்பட முந்திய:',
 'year' => 'ஆண்டு உட்பட முந்திய:',
 
@@ -2816,6 +2823,7 @@ $1',
 'file-info-size' => '$1 × $2 படவணுக்கள், கோப்பின் அளவு: $3, MIME வகை: $4',
 'file-nohires' => 'இதைவிட அளவில் பெரிய படிமம் இல்லை.',
 'svg-long-desc' => 'SVG கோப்பு, பெயரளவில் $1 × $2 பிக்சல்கள், கோப்பு அளவு: $3',
+'svg-long-error' => 'செல்லாத SVG கோப்பு: $1',
 'show-big-image' => 'முழு அளவிலான படிமம்',
 'show-big-image-preview' => 'இந்த முன்னோட்டத்தின் அளவு:  $1 .',
 'show-big-image-other' => 'மற்ற  {{PLURAL:$2|பிரிதிறன்|பிரிதிறன்கள்}}:  $1 .',
@@ -2846,6 +2854,16 @@ $1',
 'ago' => '$1 முன்பு',
 'just-now' => 'சடுதியில்.',
 
+# Human-readable timestamps
+'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
 'bad_image_list' => 'முறை பின்வருமாறு:
 
@@ -3427,7 +3445,6 @@ $5
 'version-other' => 'பிறர்',
 'version-mediahandlers' => 'ஊடக கையாளிகள்',
 'version-hooks' => 'கொக்கிகள்',
-'version-extension-functions' => 'நீட்சி செயற்பாடுகள்',
 'version-parser-extensiontags' => 'இலக்கணப் பாகுபடுத்தி நீட்சி குறிச்சொற்கள்',
 'version-parser-function-hooks' => 'இலக்கணப் பாகுபடுத்தி செயற்பாட்டு கொக்கிகள்',
 'version-hook-name' => 'கொக்கியின் பெயர்',
@@ -3449,6 +3466,7 @@ $5
 # Special:Redirect
 'redirect-submit' => 'செல்க',
 'redirect-lookup' => 'கவனிக்கவும்:',
+'redirect-file' => 'கோப்பின் பெயர்',
 'redirect-not-exists' => 'மதிப்பு காணப்பெறவில்லை',
 
 # Special:FileDuplicateSearch
@@ -3496,14 +3514,14 @@ $5
 
 # Special:Tags
 'tags' => 'செல்லத்தக்க மாற்று குறிச்சொற்கள்',
-'tag-filter' => '[[Special:Tags|Tag]] [[சிறப்பு:மேற்கோள்கள்|மேற்கோள்]] வடிப்பான்:',
+'tag-filter' => '[[Special:Tags|குறிச்சொல்]] வடிப்பான்:',
 'tag-filter-submit' => 'வடிகட்டி',
 'tags-title' => 'குறிச்சொற்கள்',
 'tags-intro' => 'இப்பக்கத்தின் மென்பொருள் ஒரு திருத்ததுடனான குறியீடு என்று குறிச்சொற்கள், மற்றும் அவற்றின் பொருளை பட்டியலிடுகிறது.',
-'tags-tag' => 'à®\95à¯\81றிà®\9aà¯\8dà®\9aà¯\8aà®±à¯\8dà®\95ளினà¯\8d à®ªà¯\86யர்',
-'tags-display-header' => ' மாற்று பட்டியல்களின் தோற்றங்கள்',
-'tags-description-header' => 'à®\85à®°à¯\8dதà¯\8dததà¯\8dதினà¯\8d à®®à¯\81à®´à¯\81 விளக்கம்',
-'tags-hitcount-header' => 'à®\95à¯\81றிà®\9aà¯\8dà®\9aà¯\8aலà¯\8dலிà®\9fபà¯\8dபà®\9fà¯\8dà®\9f  à®®à®¾à®±à¯\8dà®±à®\99à¯\8dà®\95ளà¯\8d',
+'tags-tag' => 'à®\95à¯\81றிà®\9aà¯\8dà®\9aà¯\8aல்',
+'tags-display-header' => 'கவனிப்புப் பட்டியலில் தெரியும் பெயர்',
+'tags-description-header' => 'விரிவான விளக்கம்',
+'tags-hitcount-header' => 'மாறà¯\8dà®±à®\99à¯\8dà®\95ளினà¯\8d à®\8eணà¯\8dணிà®\95à¯\8dà®\95à¯\88',
 'tags-edit' => 'தொகு',
 'tags-hitcount' => '$1 {{PLURAL:$1|மாற்றம்|மாற்றங்கள்}}',
 
@@ -3540,6 +3558,8 @@ $5
 'htmlform-submit' => 'சமர்ப்பி',
 'htmlform-reset' => 'மாற்றங்களை இல்லாது செய்',
 'htmlform-selectorother-other' => 'மற்றவை',
+'htmlform-no' => 'இல்லை',
+'htmlform-yes' => 'ஆம்',
 'htmlform-chosen-placeholder' => 'விருப்பத்தினைத் தேர்க',
 
 # SQLite database support
index 3498739..8999068 100644 (file)
@@ -241,7 +241,6 @@ $messages = array(
 'disclaimers' => 'ಅಬಾಧ್ಯತೆಲು',
 'disclaimerpage' => 'Project:ಸಾಮಾನ್ಯ ಅಬಾಧ್ಯತೆಲು',
 'edithelp' => 'ಸಂಪಾದನೆ(ಎಡಿಟ್) ಮಲ್ಪೆರೆ ಸಹಾಯ',
-'edithelppage' => 'Help:ಸಂಪಾದನೆ',
 'helppage' => 'Help:ಪರಿವಿಡಿ',
 'mainpage' => 'ಮುಖ್ಯ ಪುಟ',
 'mainpage-description' => 'ಮುಖ್ಯ ಪುಟ',
@@ -266,7 +265,6 @@ $messages = array(
 'newmessagesdifflink' => 'ಕಡೆತ ಬದಲಾವಣೆ',
 'youhavenewmessagesmulti' => '$1 ಡ್ ಇರೆಗ್ ಪೊಸ ಸಂದೇಶೊಲು ಉಂಡು',
 'editsection' => 'ಸಂಪಾದನೆ ಮಲ್ಪುಲೆ',
-'editsection-brackets' => '[$1]',
 'editold' => 'ಸಂಪಾದನೆ ಮಲ್ಪುಲೆ',
 'viewsourceold' => 'ಮೂಲೊನು ತೂಲೆ',
 'editlink' => 'ಎಡಿಟ್ ಮಲ್ಪುಲೆ',
@@ -563,7 +561,6 @@ $messages = array(
 'nextn' => 'ಬೊಕ್ಕದ {{PLURAL:$1|$1}}',
 'viewprevnext' => 'ತೂಲೆ ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-legend' => 'ನಾಡಾಟದ ಆಯ್ಕೆಲು',
-'searchhelp-url' => 'Help:ಪರಿವಿಡಿ',
 'searchprofile-articles' => 'ಲೇಖನ ಪುಟೊ',
 'searchprofile-images' => 'ಬಹುಮಾಧ್ಯಮ',
 'searchprofile-everything' => 'ಪ್ರತಿಯೊಂಜಿ',
@@ -688,7 +685,6 @@ $messages = array(
 'recentchangeslinked-feed' => 'ಸಂಬಂಧ ಉಪ್ಪುನಂಚಿನ ಬದಲಾವಣೆಲು',
 'recentchangeslinked-toolbox' => 'ಸಂಬಂಧ ಉಪ್ಪುನಂಚಿನ ಬದಲಾವಣೆಲು',
 'recentchangeslinked-title' => '"$1" ಪುಟೊಟು ಆತಿನ ಬದಲಾವಣೆಲು',
-'recentchangeslinked-noresult' => 'ಕೊರ್ತಿನ ಸಮಯೊಡು ಲಿಂಕ್ ಉಪ್ಪುನ ಪುಟೊಲೆಡ್ ಓವುಲಾ ಬದಲಾವಣೆಲು ಆತಿಜಿ.',
 'recentchangeslinked-summary' => "ಒಂಜಿ ನಿರ್ದಿಷ್ಟ ಪುಟೊರ್ದು (ಅತ್ತ್’ನ್ಡ ನಿರ್ದಿಷ್ಟ ವರ್ಗೊಗು ಸೇರ್ದಿನ ಪುಟೊಲೆರ್ದ್) ಸಂಪರ್ಕ ಉಪ್ಪುನ ಪುಟೊಲೆಡ್ ಇಂಚಿಪ ಮಲ್ತಿನಂಚಿನ ಬದಲಾವಣೆಲೆನ್ ತಿರ್ತ್ ಪಟ್ಟಿ ಮಲ್ಪೆರಾತ್’ನ್ಡ್.
 [[Special:Watchlist|ಇರೆನ ವೀಕ್ಷಣಾಪಟ್ಟಿಡ್]] ಉಪ್ಪುನ ಪುಟೊಲು '''ದಪ್ಪ ಅಕ್ಷರೊಡು''' ಉಂಡು.",
 'recentchangeslinked-page' => 'ಪುಟೊತ ಪುದರ್:',
index 5163720..30ca0a9 100644 (file)
@@ -251,6 +251,18 @@ $messages = array(
 'oct' => 'అక్టో',
 'nov' => 'నవం',
 'dec' => 'డిసెం',
+'january-date' => 'జనవరి $1',
+'february-date' => 'ఫిబ్రవరి $1',
+'march-date' => 'మార్చి $1',
+'april-date' => 'ఏప్రిల్ $1',
+'may-date' => 'మే $1',
+'june-date' => 'జూన్ $1',
+'july-date' => 'జూలై $1',
+'august-date' => 'ఆగస్టు $1',
+'september-date' => 'సెప్టెంబర్ $1',
+'october-date' => 'అక్టోబర్ $1',
+'november-date' => 'నవంబర్ $1',
+'december-date' => 'డిసెంబర్ $1',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|వర్గం|వర్గాలు}}',
@@ -276,6 +288,7 @@ $messages = array(
 'newwindow' => '(కొత్త కిటికీలో వస్తుంది)',
 'cancel' => 'రద్దు',
 'moredotdotdot' => 'ఇంకా...',
+'morenotlisted' => 'చూపించబడనివి మరిన్ని...',
 'mypage' => 'పుట',
 'mytalk' => 'చర్చ',
 'anontalk' => 'ఈ ఐ.పి.కి సంబంధించిన చర్చ',
@@ -383,7 +396,6 @@ $1',
 'disclaimers' => 'అస్వీకారములు',
 'disclaimerpage' => 'Project:సాధారణ నిష్పూచీ',
 'edithelp' => 'దిద్దుబాటు సహాయం',
-'edithelppage' => 'Help:దిద్దుబాట్లు ఎలా చెయ్యాలి',
 'helppage' => 'Help:సూచిక',
 'mainpage' => 'మొదటి పేజీ',
 'mainpage-description' => 'తలపుట',
@@ -582,6 +594,9 @@ $2',
 'gotaccount' => 'ఇప్పటికే మీకు ఖాతా ఉందా? $1.',
 'gotaccountlink' => 'ప్రవేశించండి',
 'userlogin-resetlink' => 'మీ ప్రవేశ వివరాలను మరచిపోయారా?',
+'userlogin-resetpassword-link' => 'మీ దాటుమాటను మార్చుకోండి',
+'helplogin-url' => 'Help:ప్రవేశించడం',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|ప్రవేశించడానికి సహాయం]]',
 'createacct-join' => 'మీ సమాచారాన్ని క్రింద ఇవ్వండి.',
 'createacct-emailrequired' => 'ఈమెయిలు చిరునామా',
 'createacct-emailoptional' => 'ఈమెయిలు చిరునామా (ఐచ్చికం)',
@@ -601,6 +616,7 @@ $2',
 'userexists' => 'ఇచ్చిన వాడుకరిపేరు ఇప్పటికే వాడుకలో ఉంది.
 వేరే పేరును ఎంచుకోండి.',
 'loginerror' => 'ప్రవేశంలో పొరపాటు',
+'createacct-error' => 'పద్దు తెరవడములో తప్పు',
 'createaccounterror' => 'ఖాతాని సృష్టించలేకపోయాం: $1',
 'nocookiesnew' => 'ఖాతాని సృష్టించాం, కానీ మీరు ఇంకా లోనికి ప్రవేశించలేదు.
 వాడుకరుల ప్రవేశానికి {{SITENAME}} కూకీలను వాడుతుంది.
@@ -637,8 +653,8 @@ $2',
 'blocked-mailpassword' => 'దిద్దుబాట్లు చెయ్యకుండా ఈ ఐపీఅడ్రసును నిరోధించాం. అంచేత, దుశ్చర్యల నివారణ కోసం గాను, మరచిపోయిన సంకేతపదాన్ని పొందే అంశాన్ని అనుమతించము.',
 'eauthentsent' => 'ఇచ్చిన ఈ-మెయిలు అడ్రసుకు ధృవీకరణ మెయిలు వెళ్ళింది.
 మరిన్ని మెయిళ్ళు పంపే ముందు, మీరు ఆ మెయిల్లో సూచించినట్లుగా చేసి, ఈ చిరునామా మీదేనని ధృవీకరించండి.',
-'throttled-mailpassword' => 'గడచిన {{PLURAL:$1|ఒక గంటలో|$1 గంటల్లో}} ఇప్పటికే ఒక సంకేతపదపు రిమైండరుని పంపించివున్నాం.
-à°¦à±\81à°¶à±\8dà°\9aà°°à±\8dయలనà±\81 à°¨à°¿à°µà°¾à°°à°¿à°\82à°\9aà±\87à°\82à°¦à±\81à°\95à±\81 à°\97ానà±\81, {{PLURAL:$1|à°\92à°\95 à°\97à°\82à°\9fà°\95à°¿|$1 à°\97à°\82à°\9fà°²à°\95à°¿}} à°\92à°\95à±\8dà°\95సారి à°®à°¾à°¤à±\8dà°°à°®à±\87 à°¸à°\82à°\95à±\87తపదపà±\81 à°°à°¿à°®à±\88à°\82à°¡à°°à±\81ని పంపిస్తాము.',
+'throttled-mailpassword' => 'గడచిన {{PLURAL:$1|ఒక గంటలో|$1 గంటల్లో}} ఇప్పటికే  దాటుమాట మార్చినట్లుగా ఒక మెయిల్  పంపించివున్నాం.
+à°¦à±\81à°¶à±\8dà°\9aà°°à±\8dయలనà±\81 à°¨à°¿à°µà°¾à°°à°¿à°\82à°\9aà±\87à°\82à°¦à±\81à°\95à±\81 à°\97ానà±\81, {{PLURAL:$1|à°\92à°\95 à°\97à°\82à°\9fà°\95à°¿|$1 à°\97à°\82à°\9fà°²à°\95à°¿}} à°\92à°\95à±\8dà°\95సారి à°®à°¾à°¤à±\8dà°°à°®à±\87 à°¦à°¾à°\9fà±\81మాà°\9f à°®à°¾à°°à±\8dà°ªà±\81 à°®à±\86యిలà±\8d పంపిస్తాము.',
 'mailerror' => 'మెయిలు పంపించడంలో లోపం: $1',
 'acct_creation_throttle_hit' => 'మీ ఐపీ చిరునామా వాడుతున్న ఈ వికీ సందర్శకులు గత ఒక్క రోజులో {{PLURAL:$1|1 ఖాతాని|$1 ఖాతాలను}} సృష్టించారు, ఈ కాల వ్యవధిలో అది గరిష్ఠ పరిమితి.
 అందువల్ల, ఈ ఐపీని వాడుతున్న సందర్శకులు ప్రస్తుతానికి ఇంక ఖాతాలని సృష్టించలేరు.',
@@ -688,10 +704,8 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'సంకేతపదాన్ని మార్చుకోండి',
-'passwordreset-text' => 'మీ ఖాతా వివరాలను గుర్తు చేసే ఈమెయిలు కోసం ఈ ఫారాన్ని పూర్తి చెయ్యండి.',
 'passwordreset-legend' => 'సంకేతపదాన్ని మార్చుకోండి',
 'passwordreset-disabled' => 'ఈ వికీలో సంకేతపదాల మార్పును అచేతనం చేసాం.',
-'passwordreset-pretext' => '{{PLURAL:$1||డేటా శకలాల్లోంచి ఒకదాన్ని ఇవ్వండి}}',
 'passwordreset-username' => 'వాడుకరి పేరు:',
 'passwordreset-domain' => 'డొమైన్:',
 'passwordreset-email' => 'ఈ-మెయిలు చిరునామా:',
@@ -906,6 +920,7 @@ $2
 దీన్ని తొలగించినట్టున్నారు.',
 'edit-conflict' => 'మార్పు సంఘర్షణ.',
 'edit-no-change' => 'పాఠ్యంలో ఏమీ మార్పులు లేవు గనక, మీ మార్పుని పట్టించుకోవట్లేదు.',
+'postedit-confirmation' => 'మీ మార్పు భద్రమయ్యింది.',
 'edit-already-exists' => 'కొత్త పేజీని సృష్టించలేము.
 అది ఇప్పటికే ఉంది.',
 'defaultmessagetext' => 'అప్రమేయ సందేశపు పాఠ్యం',
@@ -1140,7 +1155,6 @@ $1",
 'searchmenu-legend' => 'అన్వేషణ ఎంపికలు',
 'searchmenu-exists' => "'''ఈ వికీలో \"[[:\$1]]\" అనే పేజీ ఉంది'''",
 'searchmenu-new' => "'''ఈ వికీలో \"[[:\$1]]\" అనే పేరుతో పేజీని సృష్టించు!'''",
-'searchhelp-url' => 'Help:సూచిక',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|ఈ ఉపసర్గ ఉన్న పేజీలను చూడండి]]',
 'searchprofile-articles' => 'విషయపు పేజీలు',
 'searchprofile-project' => 'సహాయం మరియు ప్రాజెక్టు పేజీలు',
@@ -1214,7 +1228,6 @@ $1",
 'resetprefs' => 'మునుపటి వలె',
 'restoreprefs' => 'సృష్టించబడినప్పటి అభిరుచులు తిరిగి తీసుకురా',
 'prefs-editing' => 'మార్పులు',
-'prefs-edit-boxsize' => 'మార్పుల కిటికీ యొక్క పరిమాణం.',
 'rows' => 'వరుసలు',
 'columns' => 'వరుసలు:',
 'searchresultshead' => 'అన్వేషణ',
@@ -1225,8 +1238,6 @@ $1",
 'recentchangesdays-max' => '($1 {{PLURAL:$1|రోజు|రోజులు}} గరిష్ఠం)',
 'recentchangescount' => 'అప్రమేయంగా చూపించాల్సిన దిద్దుబాట్ల సంఖ్య:',
 'prefs-help-recentchangescount' => 'ఇది ఇటీవలి మార్పులు, పేజీ చరిత్రలు, మరియు చిట్టాలకు వర్తిస్తుంది.',
-'prefs-help-watchlist-token' => 'ఈ క్షేత్రాన్ని ఒక రహస్య కీతో నింపితే, మీ వీక్షణ జాబితాకు ఒక RSS వడ్డన తయారవుతుంది.  ఆ కీ తెలిసిన వారెవరైనా మీ వీక్షణజాబితాను చూడగలుగుతారు. అందుచేత కీని జాగ్రత్తగా ఎంచుకోండి.
-ఇదిగో, అనామతుగా సృష్టించిన ఒక కీ -మీకోసం: $1',
 'savedprefs' => 'మీ అభిరుచులను భద్రపరిచాం.',
 'timezonelegend' => 'కాల మండలం:',
 'localtime' => 'స్థానిక సమయం:',
@@ -1256,7 +1267,6 @@ $1",
 'prefs-common-css-js' => 'అన్ని అలంకారాలకై పంచుకోబడిన CSS/JS:',
 'prefs-reset-intro' => 'ఈ పేజీలో, మీ అభిరుచులను సైటు డిఫాల్టు విలువలకు మార్చుకోవచ్చు. మళ్ళీ వెనక్కి తీసుకుపోలేరు.',
 'prefs-emailconfirm-label' => 'ఈ-మెయిల్ నిర్ధారణ:',
-'prefs-textboxsize' => 'దిద్దుబాటు కిటికీ పరిమాణం',
 'youremail' => 'మీ ఈ-మెయిలు*',
 'username' => '{{GENDER:$1|వాడుకరి పేరు}}:',
 'uid' => '{{GENDER:$1|వాడుకరి}} ID:',
@@ -1283,7 +1293,7 @@ $1",
 ఇతరులు మిమ్మల్ని సంప్రదించినప్పుడు మీ ఈ-మెయిలు చిరునామా బహిర్గతమవదు.',
 'prefs-help-email-required' => 'ఈ-మెయిలు చిరునామా తప్పనిసరి.',
 'prefs-info' => 'ప్రాథమిక సమాచారం',
-'prefs-i18n' => 'à°\85à°\82తరà±\8dà°\9cాతà±\80à°¯à±\80à°\95à°°à°£',
+'prefs-i18n' => 'అంతర్జాతీకరణ',
 'prefs-signature' => 'సంతకం',
 'prefs-dateformat' => 'తేదీ ఆకృతి',
 'prefs-timeoffset' => 'సమయ సవరణ',
@@ -1493,7 +1503,6 @@ $1",
 'recentchangeslinked-feed' => 'సంబంధిత మార్పులు',
 'recentchangeslinked-toolbox' => 'పొంతనగల మార్పులు',
 'recentchangeslinked-title' => '$1 కు సంబంధించిన మార్పులు',
-'recentchangeslinked-noresult' => 'మీరిచ్చిన కాలంలో ఇక్కడికి లింకు ఉన్న పేజీలలో ఎటువంటు మార్పులూ జరగలేదు.',
 'recentchangeslinked-summary' => "దీనికి లింకై ఉన్న పేజీల్లో జరిగిన చివరి మార్పులు ఇక్కడ చూడవచ్చు. మీ వీక్షణ జాబితాలో ఉన్న పేజీలు '''బొద్దు'''గా ఉంటాయి.",
 'recentchangeslinked-page' => 'పేజీ పేరు:',
 'recentchangeslinked-to' => 'ఇచ్చిన పేజీకి లింకయివున్న పేజీలలో జరిగిన మార్పులను చూపించు',
@@ -2063,7 +2072,6 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization చూడండి.',
 'unwatchthispage' => 'వీక్షణను ఆపు',
 'notanarticle' => 'వ్యాసం పేజీ కాదు',
 'notvisiblerev' => 'ఈ కూర్పును తొలగించాం',
-'watchnochange' => 'మీ వీక్షణ జాబితాలోని ఏ పేజీలోనూ ఈ కాల అవధిలో మార్పులు జరగలేదు.',
 'watchlist-details' => 'మీ వీక్షణ జాబితాలో {{PLURAL:$1|ఒక పేజీ ఉంది|$1 పేజీలు ఉన్నాయి}}, చర్చా పేజీలని వదిలేసి.',
 'wlheader-enotif' => 'ఈ-మెయిలు ప్రకటనలు పంపబడతాయి.',
 'wlheader-showupdated' => "మీ గత సందర్శన తరువాత మారిన పేజీలు '''బొద్దు'''గా చూపించబడ్డాయి.",
@@ -2191,7 +2199,7 @@ $UNWATCHURL కి వెళ్ళండి.
 '''$1''' అనే పేరున్న ఈ పేజీకి ప్రస్తుతం ఈ రక్షణ ఉంది:",
 'protect-cascadeon' => 'ఈ పేజీ కాస్కేడింగు రక్షణలో ఉన్న ఈ కింది {{PLURAL:$1|పేజీకి|పేజీలకు}} జతచేయటం వలన, ప్రస్తుతం రక్షణలో ఉంది.  మీరు ఈ పేజీ యొక్క రక్షణ స్థాయిన మార్చవచ్చు, దాని వలన కాస్కేడింగు రక్షణకు ఎటువంటి సమస్య ఉండదు.',
 'protect-default' => 'అందరు వాడుకరులను అనుమతించు',
-'protect-fallback' => '"$1" à°\85à°¨à±\81మతి à°\85వసరà°\82',
+'protect-fallback' => '"$1" à°\85à°¨à±\81మతి à°\89à°¨à±\8dà°¨ à°µà°¾à°¡à±\81à°\95à°°à±\81లనà±\81 à°®à°¾à°¤à±\8dà°°à°®à±\87 à°\85à°¨à±\81మతిà°\82à°\9aà±\81',
 'protect-level-autoconfirmed' => 'కొత్త మరియు నమోదుకాని వాడుకరులను నిరోధించు',
 'protect-level-sysop' => 'నిర్వాహకులను మాత్రమే అనుమతించు',
 'protect-summary-cascade' => 'కాస్కేడింగు',
@@ -2862,6 +2870,13 @@ $1',
 'hours-ago' => '$1 {{PLURAL:$1|గంట|గంటల}} క్రితం',
 'minutes-ago' => '$1 {{PLURAL:$1|నిమిషం|నిమిషాల}} క్రితం',
 'seconds-ago' => '$1 {{PLURAL:$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
@@ -3414,7 +3429,6 @@ $5
 'version-other' => 'ఇతర',
 'version-mediahandlers' => 'మీడియాను ఫైళ్లను నడిపించే పొడిగింపులు',
 'version-hooks' => 'కొక్కాలు',
-'version-extension-functions' => 'పొడిగింపు ఫంక్షనులు',
 'version-parser-extensiontags' => 'పార్సరు పొడిగింపు ట్యాగులు',
 'version-parser-function-hooks' => 'పార్సరుకు కొక్కాలు',
 'version-hook-name' => 'కొక్కెం పేరు',
@@ -3540,7 +3554,7 @@ $5
 'sqlite-no-fts' => '$1 పూర్తి-పాఠ్య అన్వేషణ తోడ్పాటు లేకుండా',
 
 # New logging system
-'logentry-delete-delete' => '$1 $3 à°ªà±\81à°\9fà°¨à±\81 à°¤à±\8aà°²à°\97à°¿à°\82à°\9aారà±\81',
+'logentry-delete-delete' => '$1 $3 à°ªà±\87à°\9cà±\80ని {{GENDER:$2|à°¤à±\8aà°²à°\97à°¿à°\82à°\9aారà±\81}}',
 'revdelete-content-hid' => 'కంటెంట్ దాచబడింది',
 'revdelete-summary-hid' => 'మార్పుల సారాంశాన్ని దాచారు',
 'revdelete-uname-hid' => 'వాడుకరి పేరుని దాచారు',
index 43d733b..0eaf692 100644 (file)
@@ -238,7 +238,6 @@ $messages = array(
 'disclaimers' => 'Avisu legál',
 'disclaimerpage' => 'Project:Avisu legál',
 'edithelp' => 'Ajuda kona-ba edita',
-'edithelppage' => 'Help:Edita',
 'helppage' => 'Help:Konteúdu',
 'mainpage' => 'Pájina Mahuluk',
 'mainpage-description' => 'Pájina Mahuluk',
@@ -769,6 +768,7 @@ Ita-nia mudansa la armazenadu seidauk!",
 'blocklink' => 'blokeiu',
 'unblocklink' => 'la blokeiu',
 'contribslink' => 'kontribuisaun',
+'blocklogentry' => 'blokeiu [[$1]] ba tempu $2 $3',
 'block-log-flags-nocreate' => 'la bele kria konta foun',
 'block-log-flags-noemail' => 'korreiu eletróniku blokeiu',
 'block-log-flags-nousertalk' => 'la bele edita pájina diskusaun rasik',
index f641ff3..1c1bdf2 100644 (file)
@@ -303,7 +303,6 @@ $1',
 'disclaimers' => 'Такзибнома',
 'disclaimerpage' => 'Project:Такзибномаи умумӣ',
 'edithelp' => 'Роҳнамои вироиш',
-'edithelppage' => 'Help:Вироиш',
 'helppage' => 'Help:Мундариҷа',
 'mainpage' => 'Саҳифаи Аслӣ',
 'mainpage-description' => 'Саҳифаи Аслӣ',
@@ -827,7 +826,6 @@ $1',
 'searchmenu-legend' => 'Гузинаҳои ҷустуҷӯ',
 'searchmenu-exists' => "'''Саҳифае бо номи \"[[:\$1]]\" дар ин вики вуҷуд дорад.'''",
 'searchmenu-new' => "'''Эҷоди саҳифаи \"[[:\$1]]\" дар ин вики!'''",
-'searchhelp-url' => 'Help:Мундариҷа',
 'searchprofile-articles' => 'Саҳифаҳои мӯҳтаво',
 'searchprofile-project' => 'Саҳифаҳои роҳномо ва лоиҳа',
 'searchprofile-images' => 'Чандрасонаӣ',
@@ -883,7 +881,6 @@ $1',
 'saveprefs' => 'Захираи тарҷиҳот',
 'resetprefs' => 'Тозакунии тағйироти захиранашуда',
 'prefs-editing' => 'Дар ҳоли вироиш',
-'prefs-edit-boxsize' => 'Ҳаҷми равзанаи вироиш.',
 'rows' => 'Теъдоди сатрҳо:',
 'columns' => 'Теъдоди сутунҳо:',
 'searchresultshead' => 'Ҷустуҷӯ',
@@ -1063,7 +1060,6 @@ $1',
 'recentchangeslinked-feed' => 'Таъғироти монандӣ',
 'recentchangeslinked-toolbox' => 'Таъғироти монандӣ',
 'recentchangeslinked-title' => 'Тағйирҳои алоқаманд ба "$1"',
-'recentchangeslinked-noresult' => 'Дар давоми замони додашуда тағйире дар саҳифаҳои пайваста рух надодааст.',
 'recentchangeslinked-summary' => "Ин феҳристи тағйироти охир барои саҳифаҳои пайваста аз саҳифаи мушаххасшуда мебошад (ё ба аъзоёни гурӯҳи мушаххасшуда).
 Саҳифаҳои дар [[Special:Watchlist|феҳристи назароти шумо]] буда  '''пурранг''' ҳастанд.",
 'recentchangeslinked-page' => 'Номи саҳифа:',
@@ -1440,7 +1436,6 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'unwatchthispage' => 'Тавқифи пайгирии ин саҳифа',
 'notanarticle' => 'Мақола нест',
 'notvisiblerev' => 'Нусха ҳазф шуд',
-'watchnochange' => 'Ягон мавриди пайгириҳои шумо дар давраи замони намоишёфта вироиш нашуда аст.',
 'watchlist-details' => '{{PLURAL:$1|$1 саҳифаи|$1 саҳифаҳои}} дар феҳристи пайгириҳои шумо, бидуни ҳисоби саҳифаҳои баҳс.',
 'wlheader-enotif' => 'Иттилоорасонии тариқи почтаи электронӣ (E-mail) имконпазир аст.',
 'wlheader-showupdated' => "Саҳифаҳое, ки пас аз охирин сар заданатон ба онҳо тағйир кардаанд '''пурранг''' нишон дода шудаанд",
@@ -2486,7 +2481,6 @@ $5
 'version-other' => 'Дигар',
 'version-mediahandlers' => 'Бадастгирандаҳои расонаҳо',
 'version-hooks' => 'Қолабҳо',
-'version-extension-functions' => 'Амалгарҳои афзуна',
 'version-parser-extensiontags' => 'Барчасбҳои афзунаҳои таҷзеҳгар',
 'version-parser-function-hooks' => 'Қолабҳои амалгарҳои таҷзеҳгар',
 'version-hook-name' => 'Номи қолаб',
index eb2aaee..92c96ea 100644 (file)
@@ -244,7 +244,6 @@ $1",
 'disclaimers' => 'Takzibnoma',
 'disclaimerpage' => 'Project:Takzibnomai umumī',
 'edithelp' => 'Rohnamoi viroiş',
-'edithelppage' => 'Help:Viroiş',
 'helppage' => 'Help:Mundariça',
 'mainpage' => 'Sahifai Aslī',
 'mainpage-description' => 'Sahifai Aslī',
@@ -702,7 +701,6 @@ Itminon hosil kuned, ki in taƣjir davomnokiji ta'rixiji sahifaro nigoh dorad.",
 'viewprevnext' => 'Namoiş ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-legend' => 'Guzinahoi çustuçū',
 'searchmenu-new' => "'''Eçodi sahifai \"[[:\$1]]\" dar in viki!'''",
-'searchhelp-url' => 'Help:Mundariça',
 'searchprofile-advanced' => 'Peşrafta',
 'searchprofile-articles-tooltip' => 'Çustuçū dar $1',
 'searchprofile-project-tooltip' => 'Çustuçū dar $1',
@@ -751,7 +749,6 @@ Itminon hosil kuned, ki in taƣjir davomnokiji ta'rixiji sahifaro nigoh dorad.",
 'saveprefs' => 'Zaxirai tarçihot',
 'resetprefs' => 'Tozakuniji taƣjiroti zaxiranaşuda',
 'prefs-editing' => 'Dar holi viroiş',
-'prefs-edit-boxsize' => 'Haçmi ravzanai viroiş.',
 'rows' => "Te'dodi satrho:",
 'columns' => "Te'dodi sutunho:",
 'searchresultshead' => 'Çustuçū',
@@ -923,7 +920,6 @@ On bojad kamtar az $1 {{PLURAL:$1|alomat|alomatho}} boşad.',
 'recentchangeslinked-feed' => "Ta'ƣiroti monandī",
 'recentchangeslinked-toolbox' => "Ta'ƣiroti monandī",
 'recentchangeslinked-title' => 'Taƣjirhoi aloqamand ba "$1"',
-'recentchangeslinked-noresult' => 'Dar davomi zamoni dodaşuda taƣjire dar sahifahoi pajvasta rux nadodaast.',
 'recentchangeslinked-summary' => "In fehristi taƣjiroti oxir baroi sahifahoi pajvasta az sahifai muşaxxasşuda meboşad (jo ba a'zojoni gurūhi muşaxxasşuda).
 Sahifahoi dar [[Special:Watchlist|fehristi nazaroti şumo]] buda  '''purrang''' hastand.",
 'recentchangeslinked-page' => 'Nomi sahifa:',
@@ -1263,7 +1259,6 @@ Agar şumo dertar az fehristi nazarotaton in sahifaro hazv kardan xohed, dar men
 'unwatchthispage' => 'Tavqifi pajgiriji in sahifa',
 'notanarticle' => 'Maqola nest',
 'notvisiblerev' => 'Nusxa hazf şud',
-'watchnochange' => 'Jagon mavridi pajgirihoi şumo dar davrai zamoni namoişjofta viroiş naşuda ast.',
 'watchlist-details' => '{{PLURAL:$1|$1 sahifai|$1 sahifahoi}} dar fehristi pajgirihoi şumo, biduni hisobi sahifahoi bahs.',
 'wlheader-enotif' => 'Ittiloorasoniji tariqi poctai elektronī (E-mail) imkonpazir ast.',
 'wlheader-showupdated' => "Sahifahoe, ki pas az oxirin sar zadanaton ba onho taƣjir kardaand '''purrang''' nişon doda şudaand",
@@ -2259,7 +2254,6 @@ Tavaççūh kuned, ki şumo metavoned az [[Special:EditWatchlist|viroişgari sta
 'version-other' => 'Digar',
 'version-mediahandlers' => 'Badastgirandahoi rasonaho',
 'version-hooks' => 'Qolabho',
-'version-extension-functions' => 'Amalgarhoi afzuna',
 'version-parser-extensiontags' => 'Barcasbhoi afzunahoi taçzehgar',
 'version-parser-function-hooks' => 'Qolabhoi amalgarhoi taçzehgar',
 'version-hook-name' => 'Nomi qolab',
index 05cc88f..02f7ab5 100644 (file)
@@ -194,7 +194,7 @@ $dateFormats = array(
        'ISO 8601 both' => 'xnY-xnm-xnd"T"xnH:xni:xns',
 );
 
-$linkTrail = '/^([a-z]+)(.*)\$/sD';
+$linkTrail = '/^([a-z]+)(.*)$/sD';
 
 $messages = array(
 # User preference toggles
@@ -305,6 +305,18 @@ $messages = array(
 'oct' => 'ต.ค.',
 'nov' => 'พ.ย.',
 'dec' => 'ธ.ค.',
+'january-date' => '$1 มกราคม',
+'february-date' => '$1 กุมภาพันธ์',
+'march-date' => '$1 มีนาคม',
+'april-date' => '$1 เมษายน',
+'may-date' => '$1 พฤษภาคม',
+'june-date' => '$1 มิถุนายน',
+'july-date' => '$1 กรกฎาคม',
+'august-date' => '$1 สิงหาคม',
+'september-date' => '$1 กันยายน',
+'october-date' => '$1 ตุลาคม',
+'november-date' => '$1 พฤศจิกายน',
+'december-date' => '$1 ธันวาคม',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|หมวดหมู่|หมวดหมู่}}',
@@ -386,6 +398,7 @@ $messages = array(
 'create-this-page' => 'สร้างหน้านี้',
 'delete' => 'ลบ',
 'deletethispage' => 'ลบหน้านี้',
+'undeletethispage' => 'กู้คืนหน้านี้',
 'undelete_short' => 'กู้คืน $1 การแก้ไข',
 'viewdeleted_short' => 'ดู $1 การแก้ไขที่ถูกลบ',
 'protect' => 'ล็อก',
@@ -439,7 +452,6 @@ $1',
 'disclaimers' => 'ข้อปฏิเสธความรับผิดชอบ',
 'disclaimerpage' => 'Project:ข้อปฏิเสธความรับผิดชอบทั่วไป',
 'edithelp' => 'คำอธิบายการแก้ไข',
-'edithelppage' => 'Help:การแก้ไข',
 'helppage' => 'Help:สารบัญ',
 'mainpage' => 'หน้าหลัก',
 'mainpage-description' => 'หน้าหลัก',
@@ -585,6 +597,10 @@ $1',
 'namespaceprotected' => "คุณไม่มีสิทธิแก้ไขหน้าในเนมสเปซ '''$1'''",
 'customcssprotected' => 'คุณไม่มีสิทธิแก้ไขหน้าสไตล์ CSS นี้ เนื่องจากหน้านี้มีการตั้งค่าส่วนบุคคลของผู้ใช้อื่น',
 'customjsprotected' => 'คุณไม่มีสิทธิแก้ไขหน้าจาวาสคริปต์นี้ เนื่องจากหน้านี้มีการตั้งค่าส่วนบุคคลของผู้ใช้อื่น',
+'mycustomcssprotected' => 'คุณไม่ได้รับอนุญาตให้แก้ไขหน้าซีเอสเอสนี้',
+'mycustomjsprotected' => 'คุณไม่ได้รับอนุญาตให้แก้ไขหน้าจาวาสคริปต์นี้',
+'myprivateinfoprotected' => 'คุณไม่ได้รับอนุญาตให้แก้ไขสารสนเทศส่วนตัวของคุณ',
+'mypreferencesprotected' => 'คุณไม่ได้รับอนุญาตให้แก้ไขการตั้งค่าของคุณ',
 'ns-specialprotected' => 'หน้าพิเศษไม่สามารถแก้ไขได้',
 'titleprotected' => "ชื่อเรื่องนี้ถูกป้องกันมิให้สร้างโดย [[User:$1|$1]] 
 เหตุผลที่ให้ไว้คือ ''$2''",
@@ -611,10 +627,14 @@ $1',
 'yourname' => 'ชื่อผู้ใช้',
 'userlogin-yourname' => 'ชื่อผู้ใช้',
 'userlogin-yourname-ph' => 'กรอกชื่อผู้ใช้',
+'createacct-another-username-ph' => 'กรอกชื่อผู้ใช้',
 'yourpassword' => 'รหัสผ่าน',
 'userlogin-yourpassword' => 'รหัสผ่าน',
 'userlogin-yourpassword-ph' => 'กรอกรหัสผ่าน',
+'createacct-yourpassword-ph' => 'กรอกรหัสผ่าน',
 'yourpasswordagain' => 'พิมพ์รหัสผ่านอีกครั้ง:',
+'createacct-yourpasswordagain' => 'ยืนยันรหัสผ่าน',
+'createacct-yourpasswordagain-ph' => 'กรอกรหัสผ่านอีกครั้ง',
 'remembermypassword' => 'จำการล็อกอินของฉันบนเบราเซอร์นี้ (นานสุด $1 วัน)',
 'userlogin-remembermypassword' => 'ให้ฉันอยู่ในระบบ',
 'userlogin-signwithsecure' => 'ใช้การเชื่อมต่อที่ปลอดภัย',
@@ -631,22 +651,39 @@ $1',
 'userlogout' => 'ล็อกเอาต์',
 'notloggedin' => 'ไม่ได้ล็อกอิน',
 'userlogin-noaccount' => 'ไม่มีบัญชีหรือ',
-'userlogin-joinproject' => 'เข้าร่วม {{SITENAME}}',
+'userlogin-joinproject' => 'เข้าร่วมกับ{{SITENAME}}',
 'nologin' => 'ไม่มีบัญชีหรือ $1',
 'nologinlink' => 'สร้างบัญชี',
 'createaccount' => 'สร้างบัญชี',
 'gotaccount' => "มีบัญชีแล้วใช่ไหม '''$1'''",
 'gotaccountlink' => 'ล็อกอิน',
 'userlogin-resetlink' => 'ลืมรายละเอียดล็อกอินของคุณหรือ',
-'userlogin-resetpassword-link' => 'รีà¹\80à¸\8bà¹\87à¸\95รหัสà¸\9cà¹\88าà¸\99à¸\82อà¸\87à¸\84ุà¸\93',
+'userlogin-resetpassword-link' => 'à¸\95ัà¹\89à¸\87รหัสà¸\9cà¹\88าà¸\99à¹\83หมà¹\88',
 'helplogin-url' => 'Help:การล็อกอิน',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|คำอธิบายเรื่องการล็อกอิน]]',
+'createacct-join' => 'กรอกสารสนเทศของคุณด้านล่าง',
+'createacct-another-join' => 'กรอกสารสนเทศของบัญชีใหม่ด้านล่าง',
+'createacct-emailrequired' => 'ที่อยู่อีเมล',
+'createacct-emailoptional' => 'ที่อยู่อีเมล (เลือกไม่ใส่ได้)',
+'createacct-email-ph' => 'กรอกที่อยู่อีเมล',
+'createacct-another-email-ph' => 'กรอกที่อยู่อีเมล',
 'createaccountmail' => 'ใช้รหัสผ่านสุ่มชั่วคราวและส่งไปยังที่อยู่อีเมลที่ระบุด้านล่าง',
+'createacct-realname' => 'ชื่อจริง (เลือกไม่ใส่ได้)',
 'createaccountreason' => 'เหตุผล:',
+'createacct-reason' => 'เหตุผล',
+'createacct-reason-ph' => 'เหตุใดคุณจึงสร้างอีกบัญชี',
+'createacct-captcha' => 'ตรวจสอบความปลอดภัย',
+'createacct-imgcaptcha-ph' => 'กรอกข้อความที่คุณเห็นด้านบน',
 'createacct-submit' => 'สร้างบัญชีของคุณ',
+'createacct-another-submit' => 'สร้างอีกบัญชี',
+'createacct-benefit-heading' => '{{SITENAME}}สร้างขึ้นจากคนเช่นคุณ',
+'createacct-benefit-body1' => '$1 การแก้ไข',
+'createacct-benefit-body2' => '$1 หน้า',
+'createacct-benefit-body3' => '$1 ผู้ร่วมเขียน',
 'badretype' => 'รหัสผ่านที่ใส่ไม่ตรงกัน',
 'userexists' => 'ชื่อผู้ใช้ที่กรอกมีผู้อื่นใช้ไปแล้ว กรุณาเลือกชื่ออื่น',
 'loginerror' => 'ล็อกอินผิดพลาด',
+'createacct-error' => 'การสร้างบัญชีผิดพลาด',
 'createaccounterror' => 'ไม่สามารถสร้างบัญชีผู้ใช้: $1',
 'nocookiesnew' => 'ชื่อบัญชีผู้ใช้ได้ถูกสร้างขึ้นแล้ว แต่ยังไม่ได้ล็อกอินเข้าสู่ {{SITENAME}} เนื่องจากว่าไม่ได้เปิดใช้คุกกี้ ถ้าต้องการล็อกอินให้เปิดใช้งานคุกกี้และทำการล็อกอินโดยใส่ชื่อผู้ใช้พร้อมรหัสผ่าน',
 'nocookieslogin' => '{{SITENAME}} ใช้คุกกี้สำหรับการล็อกอิน ขณะนี้คุกกี้ของคุณไม่เปิดใช้งาน กรุณาเปิดใช้งานและลองอีกครั้ง',
@@ -691,7 +728,7 @@ $1',
 'cannotchangeemail' => 'ไม่สามารถเปลี่ยนที่อยู่อีเมลบนวิกินี้',
 'emaildisabled' => 'เว็บไซต์นี้ไม่สามารถส่งอีเมล',
 'accountcreated' => 'บัญชีถูกสร้างขึ้น',
-'accountcreatedtext' => 'à¸\9aัà¸\8dà¸\8aีà¸\9cูà¹\89à¹\83à¸\8aà¹\89à¸\82อà¸\87 $1 à¹\84à¸\94à¹\89สร้างขึ้นแล้ว',
+'accountcreatedtext' => 'à¸\9aัà¸\8dà¸\8aีà¸\9cูà¹\89à¹\83à¸\8aà¹\89สำหรัà¸\9a [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|à¸\9eูà¸\94à¸\84ุย]]) à¸\96ูà¸\81สร้างขึ้นแล้ว',
 'createaccount-title' => 'สร้างบัญชีสำหรับ {{SITENAME}}',
 'createaccount-text' => 'มีบางคนสร้างบัญชีโดยใช้ที่อยู่อีเมลของคุณบน {{SITENAME}} ($4) โดยใช้ชื่อ "$2" และรหัสผ่าน "$3" คุณควรล็อกอินเพื่อเปลี่ยนรหัสผ่านทันที
 
@@ -725,10 +762,12 @@ $1',
 'resetpass-wrong-oldpass' => 'รหัสผ่านชั่วคราวหรือปัจจุบันไม่ถูกต้อง
 คุณอาจเปลี่ยนรหัสผ่านของคุณไปแล้ว หรือขอรหัสผ่านชั่วคราวใหม่แล้ว',
 'resetpass-temp-password' => 'รหัสผ่านชั่วคราว:',
+'resetpass-abort-generic' => 'การเปลี่ยนรหัสผ่านถูกส่วนขยายยกเลิก',
 
 # Special:PasswordReset
 'passwordreset' => 'ตั้งรหัสผ่านใหม่',
-'passwordreset-text' => 'กรอกแบบฟอร์มนี้เพื่อตั้งรหัสผ่านใหม่',
+'passwordreset-text-one' => 'กรอกแบบนี้เพื่อตั้งรหัสผ่านใหม่',
+'passwordreset-text-many' => '{{PLURAL:$1|กรอกเขตข้อมูลหนึ่งเพื่อตั้งรหัสผ่านใหม่}}',
 'passwordreset-legend' => 'เปลี่ยนรหัสผ่าน',
 'passwordreset-disabled' => 'การตั้งรหัสผ่านใหม่ปิดใช้งานบนวิกินี้',
 'passwordreset-emaildisabled' => 'คุณลักษณะอีเมลถูกปิดใช้งานบนวิกินี้',
@@ -961,6 +1000,7 @@ $2
 เนื่องจากหน้านี้ถูกลบไปแล้ว',
 'edit-conflict' => 'แก้ชนกัน',
 'edit-no-change' => 'การแก้ไขของคุณถูกเพิกเฉย เพราะไม่มีการเปลี่ยนแปลงใด ๆ',
+'postedit-confirmation' => 'บันทึกการแก้ไขของคุณแล้ว',
 'edit-already-exists' => 'ไม่สามารถสร้างหน้าใหม่ได้
 เพราะมีหน้านี้แล้ว',
 'defaultmessagetext' => 'ข้อความสารโดยปริยาย',
@@ -1010,7 +1050,7 @@ $2
 'revision-info' => 'รุ่นเมื่อ $1 โดย $2',
 'previousrevision' => '←รุ่นก่อนหน้า',
 'nextrevision' => 'รุ่นถัดไป→',
-'currentrevisionlink' => 'รุà¹\88à¸\99à¸\9bัà¸\88à¸\88ุà¸\9aัà¸\99',
+'currentrevisionlink' => 'รุà¹\88à¸\99ลà¹\88าสุà¸\94',
 'cur' => 'ป',
 'next' => 'ถัดไป',
 'last' => 'ก',
@@ -1173,6 +1213,7 @@ $1",
 'compareselectedversions' => 'เปรียบเทียบสองรุ่นที่เลือก',
 'showhideselectedversions' => 'แสดง/ซ่อนรุ่นที่เลือก',
 'editundo' => 'ย้อน',
+'diff-empty' => '(ไม่แตกต่าง)',
 'diff-multi' => '(มิได้แสดง $1 รุ่นระหว่างกลางโดย{{PLURAL:$2|ผู้ใช้คนหนึ่ง|ผู้ใช้ $2 คน}})',
 'diff-multi-manyusers' => '(มิได้แสดง $1 รุ่นระหว่างกลางโดยผู้ใช้กว่า $2 คน)',
 'difference-missing-revision' => 'ไม่พบรุ่น{{PLURAL:$2|รุ่น| $2 รุ่น}}ของผลต่างนี้ ($1)
@@ -1200,7 +1241,6 @@ $1",
 'searchmenu-legend' => 'ตัวเลือกการค้นหา',
 'searchmenu-exists' => "'''มีหน้าชื่อ \"[[:\$1]]\" บนวิกินี้'''",
 'searchmenu-new' => "'''สร้างหน้า \"[[:\$1]]\" บนวิกินี้'''",
-'searchhelp-url' => 'Help:สารบัญ',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|ค้นดูหน้าที่มีคำขึ้นต้นนี้]]',
 'searchprofile-articles' => 'หน้าเนื้อหา',
 'searchprofile-project' => 'คำอธิบายและหน้าโครงการ',
@@ -1276,7 +1316,6 @@ $1",
 'resetprefs' => 'ล้างการเปลี่ยนแปลงที่ยังไม่บันทึก',
 'restoreprefs' => 'คืนการตั้งค่าโดยปริยายทั้งหมด',
 'prefs-editing' => 'การแก้ไข',
-'prefs-edit-boxsize' => 'ขนาดหน้าจอกล่องแก้ไข',
 'rows' => 'แถว:',
 'columns' => 'คอลัมน์:',
 'searchresultshead' => 'ค้นหา',
@@ -1287,9 +1326,6 @@ $1",
 'recentchangesdays-max' => 'มากสุด $1 วัน',
 'recentchangescount' => 'จำนวนการแก้ไขที่แสดงโดยปริยาย:',
 'prefs-help-recentchangescount' => 'นี่รวมถึงการปรับปรุงล่าสุด ประวิติหน้า และปูม',
-'prefs-help-watchlist-token' => 'การเติมช่องนี้ด้วยรหัสลับจะสร้างฟีด RSS แก่รายการเฝ้าดูของคุณ
-ผู้ใดที่รู้รหัสในช่องนี้จะสามารถอ่านรายการเฝ้าดูของคุณได้ ฉะนั้นให้เลือกรหัสที่ปลอดภัย
-นี่คือรหัสที่สุ่มเลือกขึ้นมาที่คุณสามารถใช้ได้: $1',
 'savedprefs' => 'การตั้งค่าของคุณได้ถูกบันทึกแล้ว',
 'timezonelegend' => 'เขตเวลา:',
 'localtime' => 'เวลาท้องถิ่น',
@@ -1320,7 +1356,6 @@ $1",
 'prefs-reset-intro' => 'คุณสามารถใช้หน้านี้ตั้งการตั้งค่าของคุณกลับไปยังค่าตั้งต้นของเว็บใหม่
 ซึ่งไม่สามารถทำกลับได้',
 'prefs-emailconfirm-label' => 'การยืนยันอีเมล:',
-'prefs-textboxsize' => 'ขนาดหน้าต่างแก้ไข',
 'youremail' => 'อีเมล:',
 'username' => '{{GENDER:$1|ชื่อผู้ใช้}}:',
 'uid' => 'รหัสประจำตัว{{GENDER:$1|ผู้ใช้}}:',
@@ -1349,7 +1384,8 @@ $1",
 'prefs-signature' => 'ลายเซ็น',
 'prefs-dateformat' => 'รูปแบบวันที่',
 'prefs-timeoffset' => 'ส่วนต่างเวลา',
-'prefs-advancedediting' => 'ตัวเลือกขั้นสูง',
+'prefs-advancedediting' => 'ทั่วไป',
+'prefs-preview' => 'การแสดงตัวอย่าง',
 'prefs-advancedrc' => 'ตัวเลือกขั้นสูง',
 'prefs-advancedrendering' => 'ตัวเลือกขั้นสูง',
 'prefs-advancedsearchoptions' => 'ตัวเลือกขั้นสูง',
@@ -1454,6 +1490,13 @@ $1",
 'right-editusercssjs' => 'แก้ไขไฟล์ CSS และจาวาสคริปต์ของผู้ใช้อื่น',
 'right-editusercss' => 'แก้ไขไฟล์ CSS ของผู้ใช้อื่น',
 'right-edituserjs' => 'แก้ไขไฟล์จาวาสคริปต์ของผู้ใช้อื่น',
+'right-editmyusercss' => 'แก้ไขไฟล์ซีเอสเอสผู้ใช้ของคุณเอง',
+'right-editmyuserjs' => 'แก้ไขไฟล์จาวาสคริปต์ผู้ใช้ของคุณเอง',
+'right-viewmywatchlist' => 'ดูรายการเฝ้าดูของคุณ',
+'right-editmywatchlist' => 'แก้ไขรายการเฝ้าดูของคุณ หมายเหตุว่า การกระทำบางอย่างอาจยังเพิ่มหน้าแม้จะปราศจากสิทธินี้',
+'right-viewmyprivateinfo' => 'ดูข้อมูลส่วนตัวของคุณ (เช่น ที่อยู่อีเมล ชื่อจริง)',
+'right-editmyprivateinfo' => 'แก้ไขข้อมูลส่วนตัวของคุณ (เช่น ที่อยู่อีเมล ชื่อจริง)',
+'right-editmyoptions' => 'แก้ไขการตั้งค่าของคุณ',
 'right-rollback' => 'ย้อนการแก้ไขของผู้ใช้ล่าสุดที่แก้ไขหน้าเฉพาะอย่างรวดเร็ว',
 'right-markbotedits' => 'ทำเครื่องหมายการย้อนว่าเป็นการแก้ไขโดยบอต',
 'right-noratelimit' => 'ไม่ได้รับผลกระทบจากขีดจำกัดอัตรา',
@@ -1515,12 +1558,17 @@ $1",
 'action-userrights-interwiki' => 'แก้ไขสิทธิผู้ใช้ของผู้ใช้บนวิกิอื่น',
 'action-siteadmin' => 'ล็อกหรือปลดล็อกฐานข้อมูล',
 'action-sendemail' => 'ส่งอีเมล',
+'action-editmywatchlist' => 'แก้ไขรายการเฝ้าดูของคุณ',
+'action-viewmywatchlist' => 'ดูรายการเฝ้าดูของคุณ',
+'action-viewmyprivateinfo' => 'ดูสารสนเทศส่วนตัวของคุณ',
+'action-editmyprivateinfo' => 'แก้ไขสารสนเทศส่วนตัวของคุณ',
 
 # Recent changes
 'nchanges' => '$1 การแก้ไข',
 'recentchanges' => 'ปรับปรุงล่าสุด',
 'recentchanges-legend' => 'ตัวเลือกปรับปรุงล่าสุด',
 'recentchanges-summary' => 'ในหน้านี้เป็นรายการการปรับปรุงล่าสุดบนวิกินี้',
+'recentchanges-noresult' => 'ไม่มีการเปลี่ยนแปลงในช่วงที่กำหนดซึ่งตรงกับเกณฑ์เหล่านี้',
 'recentchanges-feed-description' => 'ติดตามการปรับปรุงล่าสุดในวิกินี้ในฟีดนี้',
 'recentchanges-label-newpage' => 'การแก้ไขนี้สร้างหน้าใหม่',
 'recentchanges-label-minor' => 'เป็นการแก้ไขเล็กน้อย',
@@ -1558,7 +1606,6 @@ $1",
 'recentchangeslinked-feed' => 'ปรับปรุงที่เกี่ยวโยง',
 'recentchangeslinked-toolbox' => 'การปรับปรุงที่เกี่ยวโยง',
 'recentchangeslinked-title' => 'การปรับปรุงที่โยงมายัง "$1"',
-'recentchangeslinked-noresult' => 'ไม่มีการเปลี่ยนแปลงในหน้าที่ถูกโยงไป ในช่วงเวลาที่กำหนด',
 'recentchangeslinked-summary' => "หน้านี้เป็นรายการปรับปรุงล่าสุดของหน้าที่ถูกโยงไป (หรือไปยังหน้าต่าง ๆ ของหมวดหมู่ที่กำหนด) โดยหน้าที่อยู่ใน[[Special:Watchlist|รายการเฝ้าดู]]แสดงเป็น'''ตัวหนา'''",
 'recentchangeslinked-page' => 'ชื่อหน้า:',
 'recentchangeslinked-to' => 'แสดงการเปลี่ยนแปลงที่เชื่อมโยงมายังหน้านี้แทน',
@@ -1569,7 +1616,7 @@ $1",
 'reuploaddesc' => 'ยกเลิกการอัปโหลดและกลับไปยังแบบอัปโหลด',
 'upload-tryagain' => 'ส่งคำอธิบายไฟล์ที่ดัดแปรแล้ว',
 'uploadnologin' => 'ไม่ได้ล็อกอิน',
-'uploadnologintext' => 'ต้อง[[Special:UserLogin|ล็อกอิน]]ก่อนจึงจะอัปโหลดไฟล์ได้',
+'uploadnologintext' => 'ต้อง$1ก่อนจึงจะอัปโหลดไฟล์ได้',
 'upload_directory_missing' => 'ไดเรกทอรีสำหรับอัปโหลด ($1) หายไป และเว็บเซิร์ฟเวอร์ไม่สามารถสร้างได้',
 'upload_directory_read_only' => 'เว็บเซิร์ฟเวอร์ไม่สามารถเก็บข้อมูลในไดเรกทอรี ($1)',
 'uploaderror' => 'การอัปโหลดผิดพลาด',
@@ -1643,7 +1690,7 @@ $1",
 ถ้าคุณมีภาพนี้ในความละเอียดเต็ม ให้อัปโหลดภาพนี้ มิฉะนั้นแล้วโปรดเปลี่ยนชื่อไฟล์",
 'fileexists-forbidden' => 'มีไฟล์ชื่อนี้แล้ว และไม่สามารถเขียนทับได้
 หากคุณยังต้องการอัปโหลดไฟล์ของคุณ กรุณาย้อนกลับและใช้ชื่อใหม่ 
-[[ไฟล์:$1|thumb|center|$1]]',
+[[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => 'ไฟล์ที่ใช้ชื่อนี้มีอยู่แล้วในระบบเก็บไฟล์ในส่วนกลาง
 ถ้าคุณยังคงต้องการอัปโหลดไฟล์ของคุณ กรุณาย้อนกลับไปตั้งชื่อใหม่
 [[File:$1|thumb|center|$1]]',
@@ -2153,9 +2200,8 @@ $1',
 'unwatchthispage' => 'เลิกเฝ้าดูหน้านี้',
 'notanarticle' => 'ไม่ใช่หน้าเนื้อหา',
 'notvisiblerev' => 'รุ่นล่าสุดโดยผู้ใช้อีกคนถูกลบแล้ว',
-'watchnochange' => 'ไม่มีการแก้ไขหน้าที่คุณเฝ้าดูในระยะเวลาที่แสดง',
 'watchlist-details' => 'มี $1 หน้าในรายการเฝ้าดูของคุณ ไม่รวมหน้าอภิปราย',
-'wlheader-enotif' => 'แจ้งเตือนผ่านอีเมลถูกเปิดใช้งาน',
+'wlheader-enotif' => 'à¸\81ารà¹\81à¸\88à¹\89à¸\87à¹\80à¸\95ือà¸\99à¸\9cà¹\88าà¸\99อีà¹\80มลà¸\96ูà¸\81à¹\80à¸\9bิà¸\94à¹\83à¸\8aà¹\89à¸\87าà¸\99',
 'wlheader-showupdated' => "หน้าที่มีการเปลี่ยนแปลงตั้งแต่การเข้าชมครั้งล่าสุดของคุณแสดงใน'''ตัวหนา'''",
 'watchmethod-recent' => 'ตรวจสอบการปรับปรุงล่าสุดกับหน้าเฝ้าดู',
 'watchmethod-list' => 'ตรวจสอบหน้าเฝ้าดูกับการแก้ไขล่าสุด',
@@ -2403,7 +2449,7 @@ $1',
 'mycontris' => 'เรื่องที่เขียน',
 'contribsub2' => 'สำหรับ $1 ($2)',
 'nocontribs' => 'ไม่พบการเปลี่ยนแปลงตรงกับเงื่อนไขเหล่านี้',
-'uctop' => '(ลà¹\88าสุà¸\94)',
+'uctop' => '(à¸\9bัà¸\88à¸\88ุà¸\9aัà¸\99)',
 'month' => 'จากเดือน (และก่อนหน้า):',
 'year' => 'จากปี (และก่อนหน้า):',
 
@@ -3028,11 +3074,25 @@ $1',
 'minutes' => '$1 นาที',
 'hours' => '$1 ชั่วโมง',
 'days' => '$1 วัน',
+'weeks' => '$1 สัปดาห์',
 'months' => '$1 เดือน',
 'years' => '$1 ปี',
 'ago' => '$1 มาแล้ว',
 'just-now' => 'เมื่อสักครู่นี้',
 
+# Human-readable timestamps
+'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 น.',
+'yesterday-at' => 'เมื่อวานเมื่อ $1 น.',
+
 # Bad image list
 'bad_image_list' => 'รูปแบบแสดงต่อไปนี้:
 
@@ -3465,7 +3525,7 @@ $5
 
 # Auto-summaries
 'autosumm-blank' => 'ทำหน้าว่าง',
-'autosumm-replace' => "แทนทีข้อความทั้งหมดด้วย '$1'",
+'autosumm-replace' => "à¹\81à¸\97à¸\99à¸\97ีà¹\88à¸\82à¹\89อà¸\84วามà¸\97ัà¹\89à¸\87หมà¸\94à¸\94à¹\89วย '$1'",
 'autoredircomment' => 'เปลี่ยนทางไปที่ [[$1]]',
 'autosumm-new' => "หน้าที่ถูกสร้างด้วย '$1'",
 
@@ -3545,7 +3605,6 @@ $5
 'version-other' => 'อื่นๆ',
 'version-mediahandlers' => 'ตัวจัดการเกี่ยวกับสื่อ (media handler)',
 'version-hooks' => 'ฮุก',
-'version-extension-functions' => 'ฟังก์ชันจากส่วนขยายเพิ่ม (extension function)',
 'version-parser-extensiontags' => 'แท็กที่มีการใช้งานของพาร์สเซอร์',
 'version-parser-function-hooks' => 'ฮุกที่มีฟังก์ชันพาร์สเซอร์',
 'version-hook-name' => 'ชื่อฮุก',
@@ -3612,6 +3671,7 @@ $5
 'tags' => 'ป้ายกำกับการเปลี่ยนแปลง (ที่สามารถใช้ได้)',
 'tag-filter' => 'ตัวกรอง[[Special:Tags|ป้ายกำกับ]]:',
 'tag-filter-submit' => 'กรอง',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|ป้ายกำกับ}}]]: $2)',
 'tags-title' => 'ป้ายกำกับ',
 'tags-intro' => 'หน้านี้แสดงรายการและความหมายของป้ายกำกับต่างๆ ที่ซอฟต์แวร์อาจจะใช้ทำเครื่องหมายกำกับการแก้ไข',
 'tags-tag' => 'ชื่อป้ายกำกับ',
@@ -3689,7 +3749,7 @@ $5
 'logentry-newusers-newusers' => 'บัญชีผู้ใช้ $1 ถูกสร้างขึ้น',
 'logentry-newusers-create' => 'บัญชีผู้ใช้ $1 ถูกสร้างขึ้น',
 'logentry-newusers-create2' => 'บัญชีผู้ใช้ $3 ถูกสร้างขึ้นโดย $1',
-'logentry-newusers-autocreate' => 'บัญชี $1 ถูกสร้างขึ้นอัตโนมัติ',
+'logentry-newusers-autocreate' => 'บัญชีผู้ใช้ $1 ถูกสร้างขึ้นอัตโนมัติ',
 'rightsnone' => '(ไม่มี)',
 
 # Feedback
index 911e69e..2945bd9 100644 (file)
@@ -276,7 +276,6 @@ $1',
 'disclaimers' => 'Jogapkärçilikden boýun gaçyrma',
 'disclaimerpage' => 'Project:Umumy jogapkärçilikden boýun gaçyrma',
 'edithelp' => 'Nähili redaktirlenýär?',
-'edithelppage' => 'Help:Redaktirleme',
 'helppage' => 'Help:Içindäkiler',
 'mainpage' => 'Baş Sahypa',
 'mainpage-description' => 'Baş Sahypa',
@@ -298,9 +297,9 @@ Bu sahypany ulanmak üçin MediaWikiniň $1 wersiýasy talap edilýär. [[Specia
 'ok' => 'OK',
 'retrievedfrom' => '"$1" adresinden alyndy.',
 'youhavenewmessages' => 'Size $1 bar. ($2)',
-'newmessageslink' => 'täze habarlaşyk',
+'newmessageslink' => 'täze habar',
 'newmessagesdifflink' => 'soňky üýtgeşme',
-'youhavenewmessagesmulti' => 'Size $1-de täze habarlaşyk bar.',
+'youhavenewmessagesmulti' => 'Size $1-de täze habar bar.',
 'editsection' => 'redaktirle',
 'editold' => 'redaktirle',
 'viewsourceold' => 'çeşmäni gör',
@@ -965,7 +964,6 @@ Nawigasiýa çykgytlaryny ulanmaklygyň bu sütüni başky ýagdaýyna getirjekd
 'searchmenu-legend' => 'Gözleg opsiýalary',
 'searchmenu-exists' => "'''Bu wikide \"[[:\$1]]\" atly sahypa bar'''",
 'searchmenu-new' => "'''Bu wikide \"[[:\$1]]\" sahypasyny döret!'''",
-'searchhelp-url' => 'Help:Içindäkiler',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Şu prefiksli sahypalara göz aýla]]',
 'searchprofile-articles' => 'Mazmunly sahypalar',
 'searchprofile-project' => 'Ýardam we Taslama sahypalary',
@@ -1040,7 +1038,6 @@ Emma olaryň {{SITENAME}} indeksleriniň möwriti geçen bolmagy mümkindir.',
 'resetprefs' => 'Ýazdyrylmadyk üýtgeşmeleri aýyr',
 'restoreprefs' => 'Ähli gaýybana sazlamalary dikelt',
 'prefs-editing' => 'Redaktirleme',
-'prefs-edit-boxsize' => 'Redaktirleme penjiresiniň ölçegi.',
 'rows' => 'Hatarlar:',
 'columns' => 'Sütünler:',
 'searchresultshead' => 'Gözleg',
@@ -1051,9 +1048,6 @@ Emma olaryň {{SITENAME}} indeksleriniň möwriti geçen bolmagy mümkindir.',
 'recentchangesdays-max' => '(maksimum $1 {{PLURAL:$1|gün|gün}})',
 'recentchangescount' => 'Gaýybana görkeziljek özgerdiş sany:',
 'prefs-help-recentchangescount' => 'Muňa soňky üýtgeşmeler, sahypa geçmişleri hem-de gündelikler girýär.',
-'prefs-help-watchlist-token' => 'Bu meýdança gizlin açar ýazmagyňyz gözegçilik sanawyňyz üçin RSS translýasiýasyny döredýär.
-Bu meýdançadaky açary bilen adam gözegçilik sanawyňyzy okap biler, şonuň üçin hem başga bir howpsuz baha saýlaň.
-Gabat gelşine görä döredilen şu bahany ulanyp bilersiňiz: $1',
 'savedprefs' => 'Ileri tutmalaryňyz ýazdyryldy.',
 'timezonelegend' => 'Sagat guşaklygy',
 'localtime' => 'Ýerli wagt:',
@@ -1083,7 +1077,6 @@ Gabat gelşine görä döredilen şu bahany ulanyp bilersiňiz: $1',
 'prefs-common-css-js' => 'Ähli bezegler üçin paýlaşylýan CSS/JavaScript:',
 'prefs-reset-intro' => 'Bu sahypada öz ileri tutmalaryňyzy saýtyň gaýybana ýagdaýyna getirip bilersiňiz. Yzyna dikeldip bolmaýar.',
 'prefs-emailconfirm-label' => 'E-poçta tassyklamasy:',
-'prefs-textboxsize' => 'Redaktirleme penjiresiniň ölçegi',
 'youremail' => 'E-poçta:',
 'username' => 'Ulanyjy ady:',
 'uid' => 'Ulanyjy belgisi:',
@@ -1309,7 +1302,6 @@ $1 {{PLURAL:$1|simwoldan|simwoldan}} köp bolmaly däl.',
 'recentchangeslinked-feed' => 'Degişli üýtgeşmeler',
 'recentchangeslinked-toolbox' => 'Degişli üýtgeşmeler',
 'recentchangeslinked-title' => '"$1" bilen baglanyşykly üýtgeşmeler',
-'recentchangeslinked-noresult' => 'Berlen wagtyň dowamynda çykgyt berýän sahypalarda üýtgeşme bolmady.',
 'recentchangeslinked-summary' => "Aşakdaky sanaw, görkezilen sahypa (ýa-da görkezilen kategoriýanyň agzalaryna) çykgyt berýän sahypalarda edilen üýtgeşmeleriň sanawydyr.
 [[Special:Watchlist|Gözegçilik sanawyňyzdaky]] sahypalar '''goýy''' ýazgy bilen görkezilýär.",
 'recentchangeslinked-page' => 'Sahypanyň ady:',
@@ -1848,7 +1840,6 @@ Aňsatlyk bilen saýlap almak üçin bolsa, [[Special:RecentChanges|soňky üýt
 'unwatchthispage' => 'Gözegçilik etmegi bes et',
 'notanarticle' => 'Makala däl',
 'notvisiblerev' => 'Başga bir ulanyja degişli iň soňky wersiýa öçürilipdir',
-'watchnochange' => 'Gözegçilik edýän sahypalaryňyzyň hiç birisi görkezilen wagtyň dowamynda redaktirlenmändir.',
 'watchlist-details' => 'Çekişme sahypalaryny hasap etmäniňde, gözegçilik sanawyňyzda {{PLURAL:$1|$1 sahypa|$1 sahypa}} bar.',
 'wlheader-enotif' => 'E-poçta bilen habar beriş açyk.',
 'wlheader-showupdated' => "Soňky gezek baryp görenizden soňra üýtgedilen sahypalar '''goýy şrift''' bilen görkezilýär.",
@@ -3022,7 +3013,6 @@ Bolanyňyzdan soňra "{{int:Watchlistedit-raw-submit}}" düwmesine basyň.
 'version-other' => 'Başga',
 'version-mediahandlers' => 'Media işleýjiler',
 'version-hooks' => 'Ilgençekler',
-'version-extension-functions' => 'Giňeltme funksiýalary',
 'version-parser-extensiontags' => 'Analizator giňeltme bellikleri',
 'version-parser-function-hooks' => 'Analizator funsiýasynyň ilgençekleri',
 'version-hook-name' => 'Ilgençegiň ady',
index bad2c0e..5567262 100644 (file)
@@ -10,6 +10,7 @@
  * @author AnakngAraw
  * @author Dosmiin Barsbold
  * @author Felipe Aira
+ * @author Jojit fb
  * @author Kaganer
  * @author Sky Harbor
  * @author tl.wikipedia.org sysops
@@ -36,8 +37,6 @@ $namespaceNames = array(
 );
 
 $namespaceAliases = array(
-       'Talaksan'         => NS_FILE,
-       'Usapang talaksan' => NS_FILE_TALK,
        'Suleras'          => NS_TEMPLATE,
        'Usapang_suleras'  => NS_TEMPLATE_TALK,
        'Kaurian'          => NS_CATEGORY,
@@ -254,6 +253,18 @@ $messages = array(
 'oct' => 'Okt',
 'nov' => 'Nob',
 'dec' => 'Dis',
+'january-date' => '$1 Enero',
+'february-date' => '$1 Pebrero',
+'march-date' => '$1 Marso',
+'april-date' => '$1 Abril',
+'may-date' => '$1 Mayo',
+'june-date' => '$1 Hunyo',
+'july-date' => '$1 Hulyo',
+'august-date' => '$1 Agosto',
+'september-date' => '$1 Setyembre',
+'october-date' => '$1 Oktubre',
+'november-date' => '$1 Nobyembre',
+'december-date' => '$1 Disyembre',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategorya|Mga kategorya}}',
@@ -305,7 +316,7 @@ $messages = array(
 'vector-action-protect' => 'Ipagsanggalang',
 'vector-action-undelete' => 'Alisin ang pagbubura',
 'vector-action-unprotect' => 'Baguhin ang pagsasanggalang',
-'vector-simplesearch-preference' => 'Paganahin ang pinainam na mga mungkahi sa paghahanap (pabalat na Vector lang)',
+'vector-simplesearch-preference' => 'Paganahin ang pinainam na bar ng paghahanap (pabalat na Vector lang)',
 'vector-view-create' => 'Likhain',
 'vector-view-edit' => 'Baguhin',
 'vector-view-history' => 'Tingnan ang kasaysayan',
@@ -315,6 +326,7 @@ $messages = array(
 'namespaces' => 'Mga ngalan-espasyo',
 'variants' => 'Naiiba pa',
 
+'navigation-heading' => 'Menu ng paglilibot',
 'errorpagetitle' => 'Pagkakamali',
 'returnto' => 'Bumalik sa $1.',
 'tagline' => 'Mula sa {{SITENAME}}',
@@ -348,7 +360,7 @@ $messages = array(
 'talkpagelinktext' => 'Usapan',
 'specialpage' => 'Natatanging pahina',
 'personaltools' => 'Mga kagamitang pansarili',
-'postcomment' => 'Bagong seksyon',
+'postcomment' => 'Bagong seksiyon',
 'articlepage' => 'Tingnan ang pahina ng nilalaman',
 'talk' => 'Usapan',
 'views' => 'Mga anyo',
@@ -389,7 +401,6 @@ $1',
 'disclaimers' => 'Mga pagtatanggi',
 'disclaimerpage' => 'Project:Pangkalahatang pagtatanggi',
 'edithelp' => 'Tulong sa pagbabago',
-'edithelppage' => 'Help:Pagbabago',
 'helppage' => 'Help:Mga nilalaman',
 'mainpage' => 'Unang Pahina',
 'mainpage-description' => 'Unang Pahina',
@@ -421,7 +432,6 @@ Tingnan ang [[Special:Version|pahina ng bersiyon]].',
 'newmessagesdifflinkplural' => 'huling {{PLURAL:$1|pagbabago|mga pagbabago}}',
 'youhavenewmessagesmulti' => 'Mayroon kang mga bagong mensahe sa $1',
 'editsection' => 'baguhin',
-'editsection-brackets' => '[$1]',
 'editold' => 'baguhin',
 'viewsourceold' => 'tingnan ang batayan',
 'editlink' => 'baguhin',
@@ -472,10 +482,10 @@ Matatagpuan ang isang tala ng mga tamang natatanging pahina sa [[Special:Special
 
 # General errors
 'error' => 'Kamalian',
-'databaseerror' => 'Kamalian sa kalipunan ng dato',
-'dberrortext' => 'Naganap ang isang pagkakamali sa pag-uusisa na pampalaugnayan sa kalipunan ng dato.
+'databaseerror' => 'Kamalian sa kalipunan ng datos',
+'dberrortext' => 'Naganap ang isang pagkakamali sa pag-uusisa na pampalaugnayan sa kalipunan ng datos.
 Maaaring magpahiwatig ito ng isang surot sa loob ng sopwer.
-Ang huling tinangkang pag-uusisa sa kalipunan ng dato ay:
+Ang huling tinangkang pag-uusisa sa kalipunan ng datos ay:
 <blockquote><code>$1</code></blockquote>
 magmula sa loob ng tungkuling "<code>$2</code>".
 Nagbalik ang kalipunan ng dato ng kamalian na "<samp>$3: $4</samp>".',
@@ -537,14 +547,16 @@ Pakisubok na lang ulit pagkaraan ng kaunting mga minuto.",
 'viewyourtext' => "Matitingnan at makukopya mo ang pinagmulan ng '''mga pagbabago''' papunta sa pahinang ito:",
 'protectedinterface' => "Nagbibigay ang pahinang ito ng tekstong panghangganan (''interface'') para sa sopwer, at ikinandado para maiwasan ang pangaabuso.",
 'editinginterface' => "'''Babala:''' Binabago mo ang isang pahinang ginagamit sa pagbibigay ng tekstong panghangganan para sa sopwer.
-Makakaapekto ang mga pagbago sa pahinang ito sa anyo ng hangganang (''interface'') pangtagagamit na para sa ibang mga tagagamit.
-Para sa mga salinwika, paki isang-alang-alang o konsiderahin ang paggamit ng [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], ang proyektong panglokalisasyon ng MediaWiki.",
+Makaaapekto ang mga pagbago sa pahinang ito sa anyo ng hangganang (''interface'') pantagagamit na para sa ibang mga tagagamit sa wiking ito.
+Upang magdagag o magbago ng mga salinwika, isaaalang-alang na lang po ang paggamit ng [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], ang proyekto para sa lokalisasyon ng MediaWiki.",
 'sqlhidden' => '(nakatago ang tanong ng SQL)',
 'cascadeprotected' => 'Nakasanggalang ang pahinang ito mula sa mga pagbabago, dahil kabilang ito sa sumusunod na {{PLURAL:$1|pahinang|mga pahinang}} nakasanggalang sa pamamagitan ng binuhay na opsyong "nahuhulog" (kumakaskada):
 $2',
 'namespaceprotected' => "Wala kang pahintulot na magbago ng mga pahinang nasa ngalan-espasyong '''$1'''.",
 'customcssprotected' => 'Wala kang pahintulot na baguhin ang pahina ng CSS na ito, dahil naglalaman ito ng mga katakdaang pansarili ng ibang tagagamit.',
 'customjsprotected' => 'Wala kang pahintulot na baguhin ang pahina ng JavaScript na ito, dahil naglalaman ito ng mga katakdaang pansarili ng ibang tagagamit.',
+'mycustomcssprotected' => 'Wala kang pahintulot na baguhin itong pahinang CSS.',
+'mycustomjsprotected' => 'Wala kang pahintulot na baguhin itong pahinang JavaScript.',
 'ns-specialprotected' => 'Hindi pwedeng baguhin ang mga natatanging pahina.',
 'titleprotected' => "Nakasanggalang ang pamagat na ito mula sa paglikha ni [[User:$1|$1]].
 Ang ibinigay na dahilan ay ''$2''.",
@@ -571,8 +583,12 @@ Tandaan na may ilang pahinang maaaring magpatuloy na nagpapakitang parang nakala
 Huwag kalimutang baguhin ang iyong [[Special:Preferences|mga kagustuhan sa {{SITENAME}}]].',
 'yourname' => 'Bansag:',
 'yourpassword' => 'Hudyat:',
+'userlogin-yourpassword' => 'Hudyat',
+'userlogin-yourpassword-ph' => 'Ipasok ang iyong hudyat',
 'yourpasswordagain' => 'Hudyat mo uli:',
+'createacct-yourpasswordagain' => 'Tiyakin ang hudyat',
 'remembermypassword' => 'Tandaan ang paglagda ko sa kompyuter na ito (pinakamarami na ang $1 {{PLURAL:$1|araw|mga araw}})',
+'userlogin-remembermypassword' => 'Panatilihin akong nakalagda',
 'securelogin-stick-https' => 'Manatiling konektado sa HTTPS matapos lumagda',
 'yourdomainname' => 'Dominyo mo:',
 'password-change-forbidden' => 'Hindi mo maaaring palitan ang mga hudyat sa wiking ito.',
@@ -585,28 +601,30 @@ Huwag kalimutang baguhin ang iyong [[Special:Preferences|mga kagustuhan sa {{SIT
 'logout' => 'Umalis sa pagkakalagda',
 'userlogout' => 'Umalis sa pagkakalagda',
 'notloggedin' => 'Hindi nakalagda',
+'userlogin-noaccount' => 'Wala ka pa bang akawnt?',
+'userlogin-joinproject' => 'Sumali sa {{SITENAME}}',
 'nologin' => 'Wala ka pang kuwenta? $1.',
 'nologinlink' => 'Lumikha ng kuwenta',
 'createaccount' => 'Lumikha ng kuwenta',
 'gotaccount' => 'May kuwenta ka na ba? $1.',
 'gotaccountlink' => 'Lumagda',
 'userlogin-resetlink' => 'Nakalimutan mo ang iyong mga detalyeng panglagda?',
-'createaccountmail' => 'sa pamamagitan ng e-liham',
+'createacct-emailrequired' => 'Direksiyong e-liham:',
+'createaccountmail' => 'Gumamit ng pansamantalang walang-piling hudyat at ipadala ito sa direksiyong e-liham na nakasaad sa ibaba',
+'createacct-realname' => 'Tunay na pangalan (maaaring wala)',
 'createaccountreason' => 'Dahilan:',
+'createacct-reason' => 'Dahilan',
 'badretype' => 'Hindi magkatugma ang ipinasok mong mga hudyat.',
 'userexists' => 'May gumagamit na ng ipinasok na bansag.
 Pumili po ng ibang pangalan.',
 'loginerror' => 'Kamalian sa paglagda',
 'createaccounterror' => 'Hindi mailikha ang kuwenta: $1',
-'nocookiesnew' => "Nilikha na ang kuwentang pantagagamit, ngunit hindi ka nakalagda.
-Gumagamit ang {{SITENAME}} ng mga kuki (''cookies'') para mailagda ang mga tagagamit.
-Hindi mo pinagagana ang mga kuki.
-Paki-andar mo po ang mga ito, pagkatapos ay lumagda na gamit ang bago mong pangalan ng tagagamit at hudyat.",
+'nocookiesnew' => 'Nalikha ang akawnt ng tagagamit, ngunit hindi ka naka-login.  Gumagamit ang {{SITENAME}} ng cookies upang makalagda ang mga tagagamit. Hindi naka-on ang cookies ng browser mo. Paki-on ito ang subukang lumagda na kasama ang bagong bansag (username) at hudyat (password).',
 'nocookieslogin' => "Gumagamit ang {{SITENAME}} ng mga kuki (''cookies'') para mailagda ang mga tagagamit.
 Hindi mo pinagagana ang mga kuki.
 Paki-andar mo ang mga ito at sumubok uli.",
-'nocookiesfornew' => 'Hindi nalikha ang kuwenta ng tagagamit, dahil hindi namin matiyak ang pinagmulan nito.
-Tiyaking mayroon kang pinagaganang mga kuki, ikarga muli ang pahinang ito at subukan muli.',
+'nocookiesfornew' => 'Hindi nalikha ang akawnt ng tagagamit (user), dahil hindi namin matiyak ang pinagmulan nito. 
+Tiyaking mayroon kang pinagaganang mga cookies, ikarga muli ang pahinang ito at subukan muli.',
 'nocookiesforlogin' => '{{int:nocookieslogin}}',
 'noname' => 'Hindi mo tinukoy ang isang tanggap na pangalan ng tagagamit.',
 'loginsuccesstitle' => 'Matagumpay ang paglagda',
@@ -658,7 +676,7 @@ Pakipasok ang isang may mahusay na anyong adres o paki-iwang walang laman na lan
 'cannotchangeemail' => 'Hindi maaaring baguhin ang mga direksiyong e-liham sa wiking ito.',
 'emaildisabled' => 'Ang sityong ito ay hindi makapagpapadala ng mga e-liham.',
 'accountcreated' => 'Nilikha na ang kuwenta',
-'accountcreatedtext' => 'Nilikha na ang kuwentang tagagamit para kay $1.',
+'accountcreatedtext' => 'Nilikha na ang kuwenta ng tagagamit para kay [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]).',
 'createaccount-title' => 'Paglikha ng kuwenta para sa {{SITENAME}}',
 'createaccount-text' => 'May lumikha ng kuwenta para sa iyong adres ng e-liham sa {{SITENAME}} ($4) na pinangalanang "$2", na may hudyat na "$3".
 Dapat kang tumala at baguhin ang hudyat mo ngayon.
@@ -696,10 +714,8 @@ Maaaring matagumpay mo nang nabago ang iyong hudyat o nakahiling na ng isang bag
 
 # Special:PasswordReset
 'passwordreset' => 'Muling pagtatakda ng hudyat',
-'passwordreset-text' => 'Punuin ang pormularyong ito upang makatanggap ng isang pampaalalang e-liham ng iyong mga detalye ng akawnt.',
 'passwordreset-legend' => 'Itakdang muli ang hudyat',
 'passwordreset-disabled' => 'Hindi pinagagana sa wiking ito ang muling mga pagtatakda ng hudyat.',
-'passwordreset-pretext' => '{{PLURAL:$1| | Ipasok ang isa sa mga piraso ng datos sa ibaba}}',
 'passwordreset-username' => 'Pangalan ng tagagamit:',
 'passwordreset-domain' => 'Nasasakupan:',
 'passwordreset-capture' => 'Tingnan ang lumabas na e-liham?',
@@ -906,8 +922,8 @@ Nangangako ka rin sa amin na ikaw ang mismong sumulat nito, o sinipi/kinopya mo
 '''HUWAG MAGTALA NG AKDANG NAKAKARAPATANG-ARI (NAKAKOPIRAYT) NA HINDI MUNA HUMIHINGI NG PAHINTULOT!'''",
 'longpageerror' => "'''Kamalian: May haba na {{PLURAL:$1|isang kilobyte|$1 mga kilobyte}} ang ipinasa mong teksto, na mas mahaba kaysa sa pinakamataas na nakatakdang halaga na {{PLURAL:$2|isang kilobyte|$2 mga kilobyte}}.''' 
 Hindi ito masasagip.",
-'readonlywarning' => "'''BABALA: Ikinandado ang kalipunan ng dato para sa gawaing pampagpapanatili, kaya't hindi mo pa masasagip ang mga pagbabagong ginawa mo ngayon.
-Maaaring ibigin mong gupitin at idikit ang teksto patungo sa isang talaksang pangteksto at sagipin ito mamaya.'''
+'readonlywarning' => "'''BABALA: Ikinandado ang kalipunan ng datos para sa gawaing pampagpapanatili, kaya't hindi mo pa masasagip ang mga pagbabagong ginawa mo ngayon.'''
+Maaaring ibigin mong gupitin at idikit ang teksto patungo sa isang talaksang panteksto at sagipin ito mamaya.
 
 Nagbigay ng ganitong paliwanag ang tagapangasiwang nagkandado nito: $1",
 'protectedpagewarning' => "'''Babala: Ikinandado ang pahinang ito upang mga tagagamit lamang na may karapatan ng tagapangasiwa ang makakapagbago nito.'''
@@ -1189,7 +1205,6 @@ Matatagpuan ang mga detalye sa loob ng [{{fullurl:{{#Special:Log}}/delete|page={
 'searchmenu-legend' => 'Mga pagpipilian para sa paghahanap',
 'searchmenu-exists' => "'''Mayroong pahinang may pangalang \"[[:\$1]]\" dito sa wiking ito'''",
 'searchmenu-new' => "'''Likhain ang pahinang \"[[:\$1]]\" sa wiking ito!'''",
-'searchhelp-url' => 'Help:Nilalaman',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Tingnan-tingnan ang mga pahinang may ganitong unahan/unlapi]]',
 'searchprofile-articles' => 'Mga pahina ng nilalaman',
 'searchprofile-project' => 'Mga pahina ng Tulong at Proyekto',
@@ -1211,7 +1226,7 @@ Matatagpuan ang mga detalye sa loob ng [{{fullurl:{{#Special:Log}}/delete|page={
 'search-interwiki-default' => '$1 mga resulta:',
 'search-interwiki-more' => '(mas marami pa)',
 'search-relatedarticle' => 'Kaugnay',
-'mwsuggest-disable' => 'Huwag paganahin ang mga mungkahi ng AJAX',
+'mwsuggest-disable' => 'Huwag paganahin ang mga mungkahi sa paghahanap',
 'searcheverything-enable' => 'Maghanap sa lahat ng ngalan-espasyo:',
 'searchrelated' => 'kaugnay',
 'searchall' => 'lahat',
@@ -1264,7 +1279,6 @@ Subuking lagyan ng unlapi/paunang ''all:'' upang hanapin ang lahat ng mga nialal
 'resetprefs' => 'Hawanin ang hindi nasagip na mga pagbabago',
 'restoreprefs' => 'Ibalik ang lahat ng likas na mga pagtatakda',
 'prefs-editing' => 'May binabago',
-'prefs-edit-boxsize' => 'Sukat ng dungawan ng ginagawang pagbabago.',
 'rows' => 'Mga pahalang na hanay:',
 'columns' => 'Mga pahabang hanay:',
 'searchresultshead' => 'Hanapin',
@@ -1275,7 +1289,6 @@ Subuking lagyan ng unlapi/paunang ''all:'' upang hanapin ang lahat ng mga nialal
 'recentchangesdays-max' => '(pinakamataas na ang $1 {{PLURAL:$1|araw|mga araw}})',
 'recentchangescount' => 'Bilang ng mga pagbabagong ipapakita sa pamamagitan ng likas na katakdaan:',
 'prefs-help-recentchangescount' => 'Kasama nito ang mga huling binago, kasaysayan ng mga pahina, at mga tala.',
-'prefs-help-watchlist-token' => "Ang pagpupuno sa lugar na ito na ginagamitan ng lihim na susi ay lilikha ng pakaing RSS para sa iyong talaan ng mga binabantayan.  Ang sinumang nakakaalam ng susi sa loob ng lugar na ito ay makababasa ng iyong talaan ng mga binabantayan, kaya't pumili ng ligtas na halaga.  Narito ang magagamit mong isang halagang nilikha ng pagkakataon: $1",
 'savedprefs' => 'Nasagip na ang mga kagustuhan mo.',
 'timezonelegend' => 'Sona ng oras:',
 'localtime' => 'Lokal na oras:',
@@ -1306,11 +1319,10 @@ Subuking lagyan ng unlapi/paunang ''all:'' upang hanapin ang lahat ng mga nialal
 'prefs-reset-intro' => 'Magagamit mo ang pahinang ito upang muling maitakda ang mga kagustuhan mo sa likas na pagtatakda ng sityo.
 Hindi ito maibabalik sa dating gawi.',
 'prefs-emailconfirm-label' => 'Kumpirmasyon ng e-liham:',
-'prefs-textboxsize' => 'Sukat ng bintana ng pagbabago',
 'youremail' => 'E-liham:',
 'username' => '{{GENDER:$1|Bansag}}:',
-'uid' => 'ID ng tagagamit:',
-'prefs-memberingroups' => 'Kasapi ng {{PLURAL:$1|na pangkat|na mga pangkat}}:',
+'uid' => 'ID ng {{GENDER:$1|tagagamit}}:',
+'prefs-memberingroups' => '{{GENDER:$2|Kasapi}} ng {{PLURAL:$1|na pangkat|na mga pangkat}}:',
 'prefs-memberingroups-type' => '$1',
 'prefs-registration' => 'Oras ng pagtatala:',
 'prefs-registration-date-time' => '$1',
@@ -1551,7 +1563,6 @@ Kung pipiliin mong ibigay ito, gagamitin ito para mabigyan ka ng pagkilala para
 'recentchangeslinked-feed' => 'Kaugnay na mga pagbabago',
 'recentchangeslinked-toolbox' => 'Kaugnay na mga pagbabago',
 'recentchangeslinked-title' => 'Mga pagbabagong kaugnay ng "$1"',
-'recentchangeslinked-noresult' => 'Walang mga pagbabago sa mga pahinang nakakawing sa ibinigay na kapanahunan.',
 'recentchangeslinked-summary' => "Nililista ng natatanging pahina na ito ang huling mga pagbabago na nakaugnay. Naka '''matapang na teksto''' ang iyong mga binabantayan.",
 'recentchangeslinked-page' => 'Pangalan ng pahina:',
 'recentchangeslinked-to' => 'Ipakita ang mga pagbabago sa mga pahinang nakaugnay sa isang binigay na pahina sa halip',
@@ -1917,13 +1928,13 @@ Marahil ay naisa mong baguhin ang paglalarawan doon sa [$2 pahina ng paglalarawa
 'randompage-nopages' => 'Walang mga pahina sa sumusunod na {{PLURAL:$2|ngalan-espasyo|mga ngalan-espasyo}}: $1.',
 
 # Random redirect
-'randomredirect' => 'Alinmang panuto',
-'randomredirect-nopages' => 'Walang mga panuto sa pangalan-espasyong "$1".',
+'randomredirect' => 'Pagkargang walang-pili',
+'randomredirect-nopages' => 'Walang mga pagkarga sa ngalan-espasyong "$1".',
 
 # Statistics
 'statistics' => 'Mga estadistika',
 'statistics-header-pages' => 'Mga estadistika ng pahina',
-'statistics-header-edits' => 'Baguhin ang mga estadistika',
+'statistics-header-edits' => 'Mga estadistika sa mga pagbabago',
 'statistics-header-views' => 'Tingnan ang mga estadistika',
 'statistics-header-users' => 'Mga estadistika sa mga tagagamit',
 'statistics-header-hooks' => 'Ibang mga estadistika',
@@ -1933,7 +1944,7 @@ Marahil ay naisa mong baguhin ang paglalarawan doon sa [$2 pahina ng paglalarawa
 'statistics-files' => 'Ikinargang mga talaksan',
 'statistics-edits' => 'Naihanda na ang mga pagbabago ng pahina mula sa {{SITENAME}}',
 'statistics-edits-average' => 'Karaniwang pagbabago sa bawat pahina',
-'statistics-views-total' => 'Kalahatang pagdayo',
+'statistics-views-total' => 'Kabuuan ng mga pagtanaw',
 'statistics-views-total-desc' => 'Hindi kabilang ang mga pagtanaw sa mga pahinang hindi umiiral at mga pahinang natatangi',
 'statistics-views-peredit' => 'Pagtingin sa bawat pagbabago',
 'statistics-users' => 'Mga nakatalang [[Special:ListUsers|tagagamit]]',
@@ -2167,7 +2178,7 @@ Ang ipinasok mong direksiyong e-liham sa [[Special:Preferences|iyong mga kagustu
 'emailmessage' => 'Mensahe:',
 'emailsend' => 'Ipadala',
 'emailccme' => 'Padalhan ako ng sipi ng aking mensahe sa pamamagitan ng e-liham.',
-'emailccsubject' => 'Kopya ng iyong mensahe sa $1: $2',
+'emailccsubject' => 'Kopya ng iyong mensahe kay $1: $2',
 'emailsent' => 'Naipadala na ang e-liham',
 'emailsenttext' => 'Naipadala na ang mensahe ng iyong e-liham.',
 'emailuserfooter' => 'Ipinadala ang e-liham na ito ni $1 para kay $2 sa pamamagitan ng tungkuling "Magpadala ng e-liham" na nasa {{SITENAME}}.',
@@ -2196,7 +2207,6 @@ Makikita doon ang lahat ng mga susunod na pagbabago sa pahinang ito pati na ang
 'unwatchthispage' => 'Tigil Bantay',
 'notanarticle' => 'Hindi isang nilalamang pahina',
 'notvisiblerev' => 'Nabura na ang pagbabago',
-'watchnochange' => 'Wala sa binabantayan mo ang binago sa oras na nakikita.',
 'watchlist-details' => '{{PLURAL:$1|$1 pahinang|$1 mga pahinang}} nasa iyong talaan ng mga binabantayan, hindi binibilang ang mga pahina ng usapan.',
 'wlheader-enotif' => 'Umiiral ang pagpapahayag sa pamamagitan ng e-liham.',
 'wlheader-showupdated' => "Ipinapakitang may '''makakapal na mga panitik''' ang nabagong/binagong mga pahina mula pa noong huli mong pagdalaw sa kanila",
@@ -2321,6 +2331,7 @@ Tingnan ang [[Special:ProtectedPages|talaan ng pinuprutektahang mga pahina]] par
 'prot_1movedto2' => 'Inilipat ang [[$1]] patungo sa [[$2]]',
 'protect-badnamespace-title' => 'Hindi mapupruteksiyunang puwang ng pangalan',
 'protect-badnamespace-text' => 'Hindi mapupruteksiyunan ang mga pahinang nasa puwang na pampangalang ito.',
+'protect-norestrictiontypes-title' => 'Pahinang hindi maipasanggalang',
 'protect-legend' => 'Tiyakin ang panananggalang',
 'protectcomment' => 'Dahilan:',
 'protectexpiry' => 'Magtatapos sa:',
@@ -2337,7 +2348,7 @@ Narito ang pangkasalukuyang mga pagtatakda para sa pahinang '''$1''':",
 'protect-cascadeon' => 'Kasalukuyang nakasanggalang na ang pahinang ito dahil kabilang/kasama ito sa sumusunod na {{PLURAL:$1|pahinang may|mga pahinang may}} buhay/umiiral na baita-baitang na mga panananggalang.
 Maaari mong baguhin ang antas ng panananggalang ng pahina, ngunit hindi ito makakaapekto sa baita-baitang na panananggalang.',
 'protect-default' => 'Pahintulutan ang lahat ng mga tagagamit',
-'protect-fallback' => 'Nangangailangan ng kapahintulutang "$1"',
+'protect-fallback' => 'Pahintulutan ang mga tagagamit lamang na may pahintulot na "$1"',
 'protect-level-autoconfirmed' => 'Hadlangan ang bago at hindi nagpapatalang mga tagagamit',
 'protect-level-sysop' => "Mga tagapangasiwa (''sysop'') lamang",
 'protect-summary-cascade' => 'baita-baitang',
@@ -2440,7 +2451,7 @@ $1',
 'mycontris' => 'Mga ambag',
 'contribsub2' => 'Para kay $1 ($2)',
 'nocontribs' => 'Walang pagbabagong nakita sa binigay na kondisyon.',
-'uctop' => ' (itaas)',
+'uctop' => '(kasalukuyan)',
 'month' => 'Mula sa buwan (at nauna):',
 'year' => 'Mula sa taon (at nauna):',
 
@@ -3697,7 +3708,6 @@ Pakitiyak kung ibig mo talagang likhain muli ang pahinang ito.",
 'semicolon-separator' => ';&#32;',
 'comma-separator' => ',&#32;',
 'colon-separator' => ':&#32;',
-'autocomment-prefix' => '-&#32;',
 'pipe-separator' => '&#32;|&#32;',
 'word-separator' => '&#32;',
 'ellipsis' => '...',
@@ -3867,7 +3877,6 @@ Maaari mo ring [[Special:EditWatchlist|gamitin ang pangkaraniwang pampatnugot]].
 'version-other' => 'Iba pa',
 'version-mediahandlers' => 'Mga tagahawak/tagapamahala ng midya',
 'version-hooks' => 'Mga pangkawit',
-'version-extension-functions' => 'Mga tungkuling pangkarugtong',
 'version-parser-extensiontags' => "Mga tatak ng banghay (''parser'')",
 'version-parser-function-hooks' => "Mga pangkawit ng/sa tungkuling pambanghay (''parser'')",
 'version-hook-name' => 'Pangalan ng pangkawit',
index 3d475d7..64e1c93 100644 (file)
@@ -349,7 +349,6 @@ $messages = array(
 'disclaimers' => 'Çe məsuliyyətiku imtino.',
 'disclaimerpage' => 'Project:Дејни бә гиј ныгәтеј',
 'edithelp' => 'Арајиш бо редактә кардеј',
-'edithelppage' => 'Help:Арајиш бо сәрост кардеј',
 'helppage' => 'Help:Мындәриҹот',
 'mainpage' => 'Əsosə səhifə',
 'mainpage-description' => 'Әсосә сәһифә',
@@ -591,7 +590,6 @@ $messages = array(
 'searchmenu-legend' => 'Бо нәве кукон',
 'searchmenu-exists' => "'''Бы вики-нәхшәдә һесте сәһифә «[[:$1]]»'''",
 'searchmenu-new' => "'''Сәһифә офәјеј «[[:$1]]» бә ым вики-нахшәдә!'''",
-'searchhelp-url' => 'Help:Мындәриҹот',
 'searchprofile-articles' => 'Әсосә сәһифон',
 'searchprofile-project' => 'Че араијшон ијән нахшон сәһифон',
 'searchprofile-images' => 'Мултимедијә',
@@ -691,7 +689,6 @@ $messages = array(
 'recentchangeslinked' => 'Ангыл кардә быә дәгишон',
 'recentchangeslinked-toolbox' => 'Ангыл кардә быә дәгишон',
 'recentchangeslinked-title' => 'Ангыл кардә быә дәгишон бо "$1"',
-'recentchangeslinked-noresult' => 'Нишо доә быә мыддәтәдә, ангыл кардә быә сәһифонәдә дәгишон бәнин.',
 'recentchangeslinked-summary' => "Бә ым сәһифонәдә охонә дәгишон сијоһије, бә кон сәһифон сәбон вардә ын сәһифә (јаанки дахыл кардә быән бә нишо доә быә категоријә).
 [[Special:Watchlist|Шымә ноғо доә сијоһиәдә]] быә сәһифон, де '''ғалинә''' шрифти нишо доә быән.",
 'recentchangeslinked-page' => 'Сәһифә ном:',
@@ -824,7 +821,7 @@ $messages = array(
 'contributions-title' => 'Иштирокәкә гәнҹ $1',
 'mycontris' => 'Гәнҹ',
 'contribsub2' => 'Гәнҹ $1 ($2)',
-'uctop' => '(оÑ\85онÓ\99ни)',
+'uctop' => '(еÑ\81Ó\99Ñ\82нÓ\99)',
 'month' => 'Че мангику (һәнијән рә):',
 'year' => 'Че сорику (һәнијән рә):',
 
index 0704c08..4868947 100644 (file)
@@ -761,7 +761,6 @@ Kapau ʻaho ʻe taha, te ke fietoʻo ʻa e pēsí mei hoʻo hokohoko leʻo, lomi
 'watchthispage' => 'Leʻo he pēsí ni',
 'unwatch' => 'Taʻeleʻo',
 'unwatchthispage' => 'Tuʻu he leʻo',
-'watchnochange' => 'ʻOku ʻikai ʻaupito ʻe fatuʻi hoʻo ngaahi kupu fakaleʻo lolotonga ha taimi ʻoku ʻasi mai.',
 'watchlist-details' => 'ʻOku leʻoʻi ʻa e peesi ʻe $1, ʻikai kau ki ai ʻa e ngaahi peesi alea.',
 'wlheader-enotif' => 'Kuo fakamafeiaʻi tala mei he tohila',
 'wlheader-showupdated' => '*Ko e ngaahi peesi kuo liliu talu he taimi hoʻo ʻaʻahi ki ai, ʻoku ʻasi mai fakasinolahi',
index 25ad43f..a34e438 100644 (file)
@@ -243,7 +243,6 @@ $messages = array(
 'disclaimers' => 'Ol toksave bilong lo',
 'disclaimerpage' => 'Project:Ol tok warn long lo',
 'edithelp' => 'Halivim mi long pasin bilong wokim senis',
-'edithelppage' => 'Help:Senisim',
 'mainpage' => 'Fran Pes',
 'mainpage-description' => 'Fran Pes',
 'portal' => 'Bung ples',
index 0ffb629..087f327 100644 (file)
  * @author Bilalokms
  * @author Bombola
  * @author Cekli829
+ * @author Coolland
  * @author Dbl2010
  * @author Don Alessandro
  * @author Emperyan
  * @author Erdemaslancan
  * @author Erkan Yilmaz
  * @author Fryed-peach
+ * @author Geitost
  * @author Goktr001
  * @author Gorizon
  * @author Hanberke
@@ -39,6 +41,8 @@
  * @author Mskyrider
  * @author Myildirim2007
  * @author Nazif İLBEK
+ * @author Nemo bis
+ * @author Rapsar
  * @author Reedy
  * @author Runningfridgesrule
  * @author Sadrettin
@@ -364,8 +368,8 @@ $messages = array(
 'tog-showtoc' => 'İçindekiler tablosunu göster (3 taneden fazla başlığı olan sayfalar için)',
 'tog-rememberpassword' => 'Girişimi bu tarayıcıda hatırla (en fazla $1 {{PLURAL:$1|gün|gün}} için)',
 'tog-watchcreations' => 'Açtığım sayfaları ve yüklediğim dosyaları izleme listeme ekle',
-'tog-watchdefault' => 'Düzenleme yaptığım sayfaları ve dosyaları izleme listeme ekle',
-'tog-watchmoves' => 'Taşıdığım sayfaları ve dosyaları izleme listeme ekle',
+'tog-watchdefault' => 'Düzenleme yaptığım sayfaları izleme listeme ekle',
+'tog-watchmoves' => 'Taşıdığım sayfaları izleme listeme ekle',
 'tog-watchdeletion' => 'Sildiğim sayfaları ve dosyaları izleme listeme ekle',
 'tog-minordefault' => 'Varsayılan olarak bütün düzenlemeleri küçük olarak işaretle',
 'tog-previewontop' => 'Ön izlemeyi düzenleme kutusunun üstünde göster',
@@ -456,6 +460,18 @@ $messages = array(
 'oct' => 'Eki',
 'nov' => 'Kas',
 'dec' => 'Ara',
+'january-date' => '$1 Ocak',
+'february-date' => '$1 Şubat',
+'march-date' => '$1 Mart',
+'april-date' => '$1 Nisan',
+'may-date' => '$1 Mayıs',
+'june-date' => '$1 Haziran',
+'july-date' => '$1 Temmuz',
+'august-date' => '$1 Ağustos',
+'september-date' => '$1 Eylül',
+'october-date' => '$1 Ekim',
+'november-date' => '$1 Kasım',
+'december-date' => '$1 Aralık',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategori|Kategoriler}}',
@@ -589,7 +605,6 @@ $1',
 'disclaimers' => 'Sorumluluk reddi',
 'disclaimerpage' => 'Project:Genel sorumluluk reddi',
 'edithelp' => 'Nasıl değiştirilir?',
-'edithelppage' => 'Help:Sayfa nasıl değiştirilir',
 'helppage' => 'Help:İçindekiler',
 'mainpage' => 'Ana Sayfa',
 'mainpage-description' => 'Ana sayfa',
@@ -755,9 +770,18 @@ Tarayıcınızın önbelleğini temizleyene kadar bazı sayfalar sanki hâlâ ot
 'welcomecreation-msg' => 'Hesabınız açıldı.
 [[Special:Preferences|{{SITENAME}} tercihlerinizi]] değiştirmeyi unutmayın.',
 'yourname' => 'Kullanıcı adı:',
+'userlogin-yourname' => 'Kullanıcı adı',
+'userlogin-yourname-ph' => 'Kullanıcı adı girin',
 'yourpassword' => 'Parola:',
+'userlogin-yourpassword' => 'Parola',
+'userlogin-yourpassword-ph' => 'Parolanızı girin',
+'createacct-yourpassword-ph' => 'Bir parola girin',
 'yourpasswordagain' => 'Parolayı yeniden girin:',
+'createacct-yourpasswordagain' => 'Parolayı onayla',
+'createacct-yourpasswordagain-ph' => 'Parolayı yeniden girin',
 'remembermypassword' => 'Girişimi bu tarayıcıda hatırla (en fazla $1 {{PLURAL:$1|gün|gün}} için)',
+'userlogin-remembermypassword' => 'Oturumumu sürekli açık tut',
+'userlogin-signwithsecure' => 'Güvenli bağlantı kullanın',
 'securelogin-stick-https' => "Giriş yaptıktan sonra HTTPS'e bağlı kal",
 'yourdomainname' => 'Alan adınız:',
 'password-change-forbidden' => 'Bu vikide parolanızı değiştiremezsiniz.',
@@ -770,18 +794,38 @@ Tarayıcınızın önbelleğini temizleyene kadar bazı sayfalar sanki hâlâ ot
 'logout' => 'Oturumu kapat',
 'userlogout' => 'Oturumu kapat',
 'notloggedin' => 'Oturum açık değil',
+'userlogin-noaccount' => 'Bir hesabınız yok mu?',
+'userlogin-joinproject' => '{{SITENAME}} sitesine katılın',
 'nologin' => 'Bir hesabınız yok mu? $1.',
 'nologinlink' => 'Hesap oluşturun',
 'createaccount' => 'Hesap oluştur',
 'gotaccount' => 'Zaten bir hesabınız var mı? $1.',
 'gotaccountlink' => 'Oturum açın',
 'userlogin-resetlink' => 'Giriş bilgilerinizi mi unuttunuz?',
+'userlogin-resetpassword-link' => 'Parolanızı sıfırlayın',
+'helplogin-url' => 'Help:Oturum açma',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Oturum açma konusunda yardım alın]]',
+'createacct-join' => 'Aşağıya bilgilerinizi girin.',
+'createacct-emailrequired' => 'E-posta adresi',
+'createacct-emailoptional' => 'E-posta adresi (isteğe bağlı)',
+'createacct-email-ph' => 'E-posta adresinizi girin',
 'createaccountmail' => 'Geçici bir rastgele şifre kullan ve şifreyi aşağıda belirtilen e-posta adresine gönder',
+'createacct-realname' => 'Gerçek adı (isteğe bağlı)',
 'createaccountreason' => 'Sebep:',
+'createacct-reason' => 'Gerekçe',
+'createacct-reason-ph' => 'Neden başka bir hesap oluşturuyorsunuz',
+'createacct-captcha' => 'Güvenlik kontrolü',
+'createacct-imgcaptcha-ph' => 'Yukarıda gördüğünüz metni girin',
+'createacct-submit' => 'Hesabınızı oluşturun',
+'createacct-benefit-heading' => '{{SITENAME}} sizin gibi insanlar tarafından oluşturulur.',
+'createacct-benefit-body1' => '{{PLURAL:$1|düzenleme|düzenleme}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|sayfa|sayfa}}',
+'createacct-benefit-body3' => 'en son {{PLURAL:$1|katkıda bulunan|katkıda bulunan}}',
 'badretype' => 'Girdiğiniz şifreler birbirleriyle uyuşmuyor.',
 'userexists' => 'Girdiğiniz kullanıcı adı zaten kullanımda.
 Lütfen farklı bir kullanıcı adı seçiniz.',
 'loginerror' => 'Oturum açma hatası.',
+'createacct-error' => 'Hesap oluşturma hatası',
 'createaccounterror' => 'Hesap oluşturulamıyor: $1',
 'nocookiesnew' => 'Kullanıcı hesabı oluşturuldu ama oturum açamadınız.
 Oturum açmak için {{SITENAME}} çerezleri kullanır.
@@ -815,8 +859,7 @@ Parola değişimini siz istemediyseniz veya parolanızı hatırladıysanız ve a
 'blocked-mailpassword' => 'Siteye erişiminiz engellenmiş olduğundan, yeni şifre gönderilme işlemi yapılamamaktadır.',
 'eauthentsent' => 'Kaydedilen adrese onay kodu içeren bir e-posta gönderildi.
 E-postadaki yönerge uygulanıp adresin size ait olduğu onaylanmadıkça başka e-posta gönderilmeyecek.',
-'throttled-mailpassword' => 'Parola hatırlatıcı son {{PLURAL:$1|bir saat|$1 saat}} içinde zaten gönderildi.
-Hizmeti kötüye kullanmayı önlemek için, her {{PLURAL:$1|bir saatte|$1 saatte}} sadece bir parola hatırlatıcısı gönderilecektir.',
+'throttled-mailpassword' => 'Bir parola sıfırlama e-postası son {{PLURAL:$1|bir saat|$1 saat}} içinde zaten gönderildi. Hizmeti kötüye kullanmayı önlemek için, her {{PLURAL:$1|bir saatte|$1 saatte}} sadece bir parola sıfırlama e-postası gönderilecektir.',
 'mailerror' => 'E-posta gönderim hatası: $1',
 'acct_creation_throttle_hit' => 'Sizin IP adresinizi kullanarak bu vikiyi ziyaret edenler son günde {{PLURAL:$1|1 hesap|$1 hesap}} oluşturdu, bu sayı bu zaman aralığında izin verilen azami sayıdır.
 Sonuç olarak, bu IP adresini kullanan ziyaretçiler şu anda daha fazla hesap açamazlar.',
@@ -870,10 +913,9 @@ Girişi bitirmek için, burada yeni bir parola yazın:',
 
 # Special:PasswordReset
 'passwordreset' => 'Parola sıfırlama',
-'passwordreset-text' => 'Hesap bilgilerinizin e-posta ile hatırlatılması için bu formu doldurunuz.',
+'passwordreset-text-one' => 'Parolanızı sıfırlamak için bu formu doldurun.',
 'passwordreset-legend' => 'Şifreyi sıfırla',
 'passwordreset-disabled' => 'Parola sıfırlamaları bu wiki üzerinde devre dışı bırakıldı.',
-'passwordreset-pretext' => '{{PLURAL:$1||Aşağıdaki verilerden birini girin}}',
 'passwordreset-username' => 'Kullanıcı adı:',
 'passwordreset-domain' => 'Domain:',
 'passwordreset-capture' => 'Sonuç e-postasını görüntüle?',
@@ -895,9 +937,9 @@ $2
 Bu 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
 Geçici şifre: $2',
-'passwordreset-emailsent' => 'Hatırlatma e-postası gönderildi.',
-'passwordreset-emailsent-capture' => 'Aşağıda gözüktüğü gibi bir hatırlatma e-postası gönderilmiştir.',
-'passwordreset-emailerror-capture' => 'Aşağıda gözüktüğü gibi bir hatırlatma e-postası oluşturulmuştur ancak $1 adlı kullanıcıya gönderilememiştir.',
+'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',
 
 # Special:ChangeEmail
 'changeemail' => 'E-posta adresini değiştir',
@@ -1019,7 +1061,7 @@ Son engelleme günlüğü girdisi referans için aşağıda sağlanmıştır:',
 '''Henüz kaydedilmedi!'''",
 'sitejspreview' => "'''Sadece kullanıcı JavaScript kod dosyanızın önizlemesini görüyorsunuz.''' 
 '''Henüz kaydedilmedi!'''",
-'userinvalidcssjstitle' => "''Uyarı:''' \"\$1\" adıyla bir tema yoktur. tema-adı.css ve .js dosyalarının adları küçük harf ile yazması gerek, yani {{ns:user}}:Temel/'''V'''ector.css değil, {{ns:user}}:Temel/'''v'''ector.css.",
+'userinvalidcssjstitle' => '\'\'\'Uyarı:\'\'\' "$1" adında bir tema yoktur. Özel .css ve .js sayfalarının adlarını küçük harf ile yazın, örneğin;  "{{ns:user}}:Örnek/Vector.css" yerine "{{ns:user}}:Örnek/vector.css" yazın.',
 'updated' => '(Güncellendi)',
 'note' => "'''Not: '''",
 'previewnote' => "'''Bunun yalnızca bir ön izleme olduğunu unutmayın.'''
@@ -1049,8 +1091,8 @@ Sizin değişiklikleriniz alta gösterilmiştir. Son değişiklerinizi yazının
 'storedversion' => 'Kaydedilmiş metin',
 'nonunicodebrowser' => "'''UYARI: Tarayıcınız unicode uyumlu değil.
 Sayfaları güvenle değiştirmenize izin vermek için: ASCII olmayan karakterler değiştirme kutusunda onaltılık kodlar olarak görünecektir.'''",
-'editingold' => "'''DİKKAT: Sayfanın eski bir sürümünde değişiklik yapmaktasınız.
-Kaydettiğinizde bu tarihli sürümden günümüze kadar olan değişiklikler yok olacaktır.'''",
+'editingold' => "'''Uyarı: Sayfanın eski bir sürümünde değişiklik yapmaktasınız.'''
+Kaydettiğinizde bu tarihli sürümden günümüze kadar olan değişiklikler yok olacaktır.",
 'yourdiff' => 'Karşılaştırma',
 'copyrightwarning' => "'''Lütfen dikkat:''' {{SITENAME}} sitesine yapılan bütün katkılar $2 sözleşmesi kapsamındadır (ayrıntılar için $1'a bakınız).
 Yaptığınız katkının başka katılımcılar tarafından acımasızca değiştirilmesini ve sınırsızca başka yerlere dağıtılmasını istemiyorsanız, katkıda bulunmayınız.<br />
@@ -1098,6 +1140,7 @@ Bir açıklama verilmedi.',
 Silinmiş görünüyor.',
 'edit-conflict' => 'Değişiklik çakışması.',
 'edit-no-change' => 'Değişikliğiniz yoksayıldı, çünkü metinde bir değişiklik yapılmadı.',
+'postedit-confirmation' => 'Değişikliğiniz kaydedildi.',
 'edit-already-exists' => 'Yeni sayfa oluşturulamıyor.
 Sayfa zaten mevcut.',
 'defaultmessagetext' => 'Varsayılan mesaj metni',
@@ -1340,7 +1383,6 @@ Gezinti bağlantılarının bu sütunu sıfırlayacağını unutmayın.',
 'searchmenu-legend' => 'Arama seçenekleri',
 'searchmenu-exists' => "'''Bu vikide \"[[:\$1]]\" adında bir sayfa mevcut'''",
 'searchmenu-new' => "'''Bu vikide \"[[:\$1]]\" sayfasını oluştur!'''",
-'searchhelp-url' => 'Help:İçindekiler',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Bu ön ekle sayfalara göz at]]',
 'searchprofile-articles' => 'İçerik sayfaları',
 'searchprofile-project' => 'Yardım ve proje sayfaları',
@@ -1415,7 +1457,6 @@ Aramanızın başına '''all:''' önekini ekleyerek tüm içeriği aramayı (tar
 'resetprefs' => 'Ayarları ilk durumuna getir',
 'restoreprefs' => 'Tüm varsayılan ayarları geri yükle',
 'prefs-editing' => 'Sayfa yazma alanı',
-'prefs-edit-boxsize' => 'Değiştirme penceresinin boyutu.',
 'rows' => 'Satır',
 'columns' => 'Sütun',
 'searchresultshead' => 'Arama',
@@ -1426,9 +1467,6 @@ Aramanızın başına '''all:''' önekini ekleyerek tüm içeriği aramayı (tar
 'recentchangesdays-max' => '(en fazla $1 {{PLURAL:$1|gün|gün}})',
 'recentchangescount' => 'Varsayılan olarak gösterilecek değişiklik sayısı:',
 'prefs-help-recentchangescount' => 'Bu, son değişiklikleri, sayfa geçmişlerini ve günlükleri içerir.',
-'prefs-help-watchlist-token' => 'Bu alanı gizli bir anahtarla doldurmak, izleme listeniz için bir RSS beslemesi oluşturur.
-Bu alandaki anahtarı bilen herkes izleme listenizi okuyabilir, bu yüzden güvenli bir değer seçin.
-Kullanabileceğiniz rastgele-üretilmiş bir değer: $1',
 'savedprefs' => 'Tercihleriniz kaydedildi.',
 'timezonelegend' => 'Zaman dilimi:',
 'localtime' => 'Yerel saat:',
@@ -1458,7 +1496,6 @@ Kullanabileceğiniz rastgele-üretilmiş bir değer: $1',
 'prefs-common-css-js' => 'Tüm kaplamalar için paylaşılan CSS/JS:',
 'prefs-reset-intro' => 'Bu sayfayı tercihlerinizi site varsayılanına döndürmek için kullanabilirsiniz. Bu geri alınamaz.',
 'prefs-emailconfirm-label' => 'E-posta doğrulaması:',
-'prefs-textboxsize' => 'Değiştirme penceresinin boyutu',
 'youremail' => 'E-posta:',
 'username' => '{{GENDER:$1|Kullanıcı adı}}:',
 'uid' => '{{GENDER:$1|Kullanıcı}} kimliği:',
@@ -1660,6 +1697,7 @@ Diğer kullanıcılar sizinle bu yolla iletişime geçtiğinde e-posta adresiniz
 'recentchanges' => 'Son değişiklikler',
 'recentchanges-legend' => 'Son değişiklikler seçenekleri',
 'recentchanges-summary' => 'Yapılan en son değişiklikleri bu sayfadan izleyin.',
+'recentchanges-noresult' => 'Belirtilen kriterlere uyan herhangi bir değişiklik bulunamadı.',
 'recentchanges-feed-description' => "Bu beslemede, viki'de yapılan en son değişiklikleri takip edin.",
 'recentchanges-label-newpage' => 'Bu değişiklik yeni bir sayfa oluşturdu',
 'recentchanges-label-minor' => 'Bu küçük bir değişiklik',
@@ -1696,7 +1734,6 @@ Diğer kullanıcılar sizinle bu yolla iletişime geçtiğinde e-posta adresiniz
 'recentchangeslinked-feed' => 'İlgili değişiklikler',
 'recentchangeslinked-toolbox' => 'İlgili değişiklikler',
 'recentchangeslinked-title' => '"$1" ile ilişkili değişiklikler',
-'recentchangeslinked-noresult' => 'Verilen dönemde bağlantılı sayfalarda değişiklik yok.',
 'recentchangeslinked-summary' => "Aşağıdaki liste, belirtilen sayfaya (ya da belirtilen kategorinin üyelerine) bağlantı veren sayfalarda yapılan son değişikliklerin listesidir.
 [[Special:Watchlist|İzleme listenizdeki]] sayfalar '''kalın''' olarak belirtilmiştir.",
 'recentchangeslinked-page' => 'Sayfa adı:',
@@ -1838,7 +1875,7 @@ $1',
 'upload-proto-error-text' => "Uzaktan yükleme, <code>http://</code> veya <code>ftp://</code> ile başlayan URL'ler gerektirmektedir.",
 'upload-file-error' => 'Dahili hata',
 'upload-file-error-text' => 'Sunucuda geçici dosya oluşturma girişimi sırasında bir iç hata meydana geldi.
-Lütfen bir [[Special:ListUsers/sysop|yonetici]]yle iletişime geçin.',
+Lütfen bir [[Special:ListUsers/sysop|hizmetli]]ler iletişime geçin.',
 'upload-misc-error' => 'Bilinmeyen yükleme hatası',
 'upload-misc-error-text' => 'Yükleme sırasında bilinmeyen bir hata meydana geldi.
 Lütfen bağlantının geçerli ve ulaşılabilir olduğunu doğrulayın ve yeniden deneyin.
@@ -2291,15 +2328,14 @@ Bireysel haklarla ilgili [[{{MediaWiki:Listgrouprights-helppage}}|daha fazla bil
 Bundan sonra, bu sayfaya ve ilgili tartışma sayfasına yapılacak değişiklikler burada listelenecek.',
 'removewatch' => 'İzleme listesinden kaldır',
 'removedwatchtext' => '"[[:$1]]" sayfası [[Special:Watchlist|izleme listenizden]] silinmiştir.',
-'watch' => 'İzle',
+'watch' => 'izle',
 'watchthispage' => 'Sayfayı izle',
 'unwatch' => 'İzleme',
 'unwatchthispage' => 'Sayfa izlemeyi durdur',
 'notanarticle' => 'İçerik sayfası değil',
 'notvisiblerev' => 'Revizyon silinmiş',
-'watchnochange' => 'İzleme listenizdeki sayfaların hiçbiri, gösterilen zaman aralığında güncellenmemiş.',
 'watchlist-details' => 'Tartışma sayfaları hariç {{PLURAL:$1|$1 sayfa|$1 sayfa}} izleme listenizdedir.',
-'wlheader-enotif' => 'E-posta ile haber verme açılmıştır.',
+'wlheader-enotif' => 'E-posta bildirimi etkin.',
 'wlheader-showupdated' => "Son ziyaretinizden sonraki sayfa değişiklikleri '''kalın yazıyla''' gösterilmiştir.",
 'watchmethod-recent' => 'izlediğiniz sayfalarda yapılan son değişiklikler kontrol ediliyor',
 'watchmethod-list' => 'izlediğiniz sayfalarda yapılan son değişiklikler kontrol ediliyor',
@@ -3147,6 +3183,7 @@ Bunu çalıştırmak, sisteminizi tehlikeye atabilir.",
 'minutes' => '{{PLURAL:$1|$1 dakika|$1 dakika}}',
 'hours' => '{{PLURAL:$1|$1 saat|$1 saat}}',
 'days' => '{{PLURAL:$1|$1 gün|$1 gün}}',
+'weeks' => '{{PLURAL: $1|$1 hafta|$1 hafta}}',
 'months' => '{{PLURAL:$1|$1 ay|$1 ay}}',
 'years' => '{{PLURAL:$1|$1 yıl|$1 yıl}}',
 'ago' => '$1 önce',
@@ -3774,7 +3811,6 @@ Ayrıca [[Special:EditWatchlist|standart düzenleme sayfasını]] da kullanabili
 'version-other' => 'Diğer',
 'version-mediahandlers' => 'Ortam işleyiciler',
 'version-hooks' => 'Çengeller',
-'version-extension-functions' => 'Ek fonksiyonları',
 'version-parser-extensiontags' => 'Derleyici eklenti etiketleri',
 'version-parser-function-hooks' => 'Derleyici fonksiyon çengelleri',
 'version-hook-name' => 'Çengel adı',
@@ -3795,6 +3831,12 @@ Bu programla birlikte [{{SERVER}}{{SCRIPTPATH}}/COPYING GNU Genel Kamu Lisansın
 'version-entrypoints-header-entrypoint' => 'Giriş noktası',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
+'redirect-submit' => 'Git',
+'redirect-value' => 'Değer:',
+'redirect-user' => 'Kullanıcı kimliği',
+'redirect-file' => 'Dosya adı',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Benzer dosyaları ara',
 'fileduplicatesearch-summary' => 'Sağlama değeri tabanında benzer dosyaları ara.',
@@ -3884,6 +3926,8 @@ Bu programla birlikte [{{SERVER}}{{SCRIPTPATH}}/COPYING GNU Genel Kamu Lisansın
 'htmlform-submit' => 'Gönder',
 'htmlform-reset' => 'Değişiklikleri geri al',
 'htmlform-selectorother-other' => 'Diğer',
+'htmlform-no' => 'Hayır',
+'htmlform-yes' => 'Evet',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 tam-metin arama desteği ile',
@@ -3908,10 +3952,10 @@ Bu programla birlikte [{{SERVER}}{{SCRIPTPATH}}/COPYING GNU Genel Kamu Lisansın
 'logentry-move-move-noredirect' => '$1 $3 sayfasını $4 sayfasına yönlendirme olmaksızın taşıdı',
 'logentry-move-move_redir' => '$1 $3 sayfasını $4 sayfasına yönlendirme üzerinden taşıdı',
 'logentry-patrol-patrol-auto' => '$1 $3 sayfasını $4 sürümü ile kontrol etti',
-'logentry-newusers-newusers' => 'Kullanıcı hesabı $1 oluşturdu',
-'logentry-newusers-create' => 'Kullanıcı hesabı $1 oluşturdu',
-'logentry-newusers-create2' => '$1 kullanıcı hesabı oluşturdu $3',
-'logentry-newusers-autocreate' => '$1 hesabı otomatik olarak oluşturuldu',
+'logentry-newusers-newusers' => 'Kullanıcı hesabı $1 {{GENDER:$2|oluşturuldu}}',
+'logentry-newusers-create' => 'Kullanıcı hesabı $1 {{GENDER:$2|oluşturuldu}}',
+'logentry-newusers-create2' => '$3 kullanıcı hesabı $1 tarafından {{GENDER:$2|oluşturuldu}}',
+'logentry-newusers-autocreate' => '$1 kullanıcı hesabı otomatik olarak {{GENDER:$2|oluşturuldu}}',
 'rightsnone' => '(hiçbiri)',
 
 # Feedback
index 9fbb8f8..d2a8e4a 100644 (file)
@@ -167,7 +167,6 @@ $messages = array(
 'disclaimers' => 'Disclaimers',
 'disclaimerpage' => 'Project: Disclaimer gawonoyo',
 'edithelp' => 'Editing help',
-'edithelppage' => 'Help:Mşaḥlaf',
 'helppage' => 'Help: Ḥbişoṭo',
 'mainpage' => 'Faṭo rişoyto',
 'mainpage-description' => 'Faṭo rişoyto',
@@ -400,7 +399,6 @@ Legend: '''({{int:cur}})''' = difference with latest revision, '''({{int:last}})
 'searchmenu-legend' => '3ayar duKruxyo',
 'searchmenu-exists' => "'''Kito Faṭo herke Işma \"[[:\$1]]\"yo'''",
 'searchmenu-new' => 'Kṭaw iFaṭaṭe "[[:$1]]" buWiki.',
-'searchhelp-url' => 'Help: Ḥbişoṭo',
 'searchprofile-articles' => 'Faṭoṭe daḤbişoṭo',
 'searchprofile-project' => 'Faṭoṭe du3udrono u daProjat',
 'searchprofile-images' => 'Multimediya',
@@ -504,7 +502,6 @@ Legend: '''({{int:cur}})''' = difference with latest revision, '''({{int:last}})
 'recentchangeslinked' => 'Şuḥlofe bFaṭoṭe masre',
 'recentchangeslinked-toolbox' => 'Şuḥlofe bFaṭoṭe masre',
 'recentchangeslinked-title' => 'Şuḥlofe bFaṭoṭe dkıtne masre b$1',
-'recentchangeslinked-noresult' => 'No changes on linked pages during the given period.',
 'recentchangeslinked-summary' => "This is a list of changes made recently to pages linked from a specified page (or to members of a specified category).
 Pages on [[Special:Watchlist|your watchlist]] are '''bold'''.",
 'recentchangeslinked-page' => 'Işmo diFaṭo',
index 50a2b3e..2989573 100644 (file)
@@ -224,7 +224,6 @@ $messages = array(
 'disclaimers' => 'Swi alanandzu',
 'disclaimerpage' => 'Project:Swithsuxa nadzu hikuangara',
 'edithelp' => 'Mpfuno hi ta mindzulamiso',
-'edithelppage' => 'Help:Mindzulamiso',
 'helppage' => 'Help:Leswinga ndzeni',
 'mainpage' => 'Tlukankulu',
 'mainpage-description' => 'Tluka-Nkulu',
@@ -512,7 +511,6 @@ Swihlamuseri: '''({{int:sweswi}})''' = kuhambana na ndzulamiso wa sweswinyana, '
 'viewprevnext' => 'Vona ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-exists' => "'''Tluka leri vuriwaka \"[[:\$1]]\" ikhale ririkona eka wiki leyi.'''",
 'searchmenu-new' => "'''Tumbuluxa tluka ra \"[[:\$1]]\" eka wiki leyi!'''",
-'searchhelp-url' => 'Help:Leswinga ndzeni',
 'searchprofile-articles' => 'Matluka lama tsariweke',
 'searchprofile-project' => 'Mpfuno na matluka ya phurojeki',
 'searchprofile-images' => 'Tifayili ta mfpumawulo na swifaniso',
@@ -610,7 +608,6 @@ Adiresi ya wena ya e-mail yitunberile loko van'wana va bula na wena.",
 'recentchangeslinked-feed' => 'Kuncica loku yelanaka',
 'recentchangeslinked-toolbox' => 'Kuncica loku yelanaka',
 'recentchangeslinked-title' => 'Kucinca loku yelanaka na "$1"',
-'recentchangeslinked-noresult' => 'Kuhava mindzulamiso eka matluka lawa eka nkarhi lowu langiweke',
 'recentchangeslinked-summary' => "Lowu inxaxamelo wa kucinca kasweswinyana loku endliweke eka matluka la ma khwekelaka eka tluka leri u rilavaka (kumbe yinw'ana ya mitlawa leyi yelanaka).Matluka lawa [[Special:Watchlist|umalanguteke]] ma '''bumburisiwile'''.",
 'recentchangeslinked-page' => 'Vito ratluka:',
 'recentchangeslinked-to' => 'Komba kucinca eka matluka lama khwekelaka eka tluka leri ntsena',
index dbb1acc..c203000 100644 (file)
@@ -451,7 +451,6 @@ $1',
 'disclaimers' => 'Җаваплылыктан баш тарту',
 'disclaimerpage' => 'Project:Җаваплылыктан баш тарту',
 'edithelp' => 'Үзгәртү буенча ярдәм',
-'edithelppage' => 'Help:Үзгәртү',
 'helppage' => 'Help:Эчтәлек',
 'mainpage' => 'Баш бит',
 'mainpage-description' => 'Баш бит',
@@ -477,7 +476,6 @@ $1',
 'newmessagesdifflink' => 'бәхәс битегезнең соңгы үзгәртүе',
 'youhavenewmessagesmulti' => 'Сезгә монда яңа хәбәрләр бар: $1',
 'editsection' => 'үзгәртү',
-'editsection-brackets' => '[$1]',
 'editold' => 'үзгәртү',
 'viewsourceold' => 'башлангыч кодны карау',
 'editlink' => 'үзгәртү',
@@ -711,10 +709,8 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'Серсүзне бетерү',
-'passwordreset-text' => 'Сезнең хисап язмасының параметрлары турында хат алыр өчен, түбәндәгеләрне тутырыгыз',
 'passwordreset-legend' => 'Серсүзне яңадан кую',
 'passwordreset-disabled' => 'Бу викида серсүз бетереп булмый',
-'passwordreset-pretext' => '{{PLURAL:$1||Түбәндә күрсәтелгән мәгълүматларның бер өлешен языгыз}}',
 'passwordreset-username' => 'Кулланучы исеме:',
 'passwordreset-domain' => 'Домен:',
 'passwordreset-capture' => 'Килеп чыккан хатны күрсәтелсенме?',
@@ -1004,8 +1000,8 @@ $3 күрсәткән сәбәп: ''$2''",
 'histlegend' => "Аңлатмалар: '''({{int:cur}})''' = хәзерге юрамадан аерымлыклар, '''({{int:last}})''' = баягы юрамадан аерымлыклар, '''{{int:minoreditletter}}''' = кече үзгәртүләр.",
 'history-fieldset-title' => 'Тарихын карау',
 'history-show-deleted' => 'Бары тик бетерү',
-'histfirst' => 'Элеккеге',
-'histlast' => 'СоңгÑ\8b',
+'histfirst' => 'иң Ð¸Ñ\81ке',
+'histlast' => 'иң Ñ\8fңа',
 'historysize' => '($1 {{PLURAL:$1|байт}})',
 'historyempty' => '(буш)',
 
@@ -1129,7 +1125,6 @@ $1",
 'searchmenu-legend' => 'Эзләү көйләнмәләре',
 'searchmenu-exists' => "'''Бу вики-проекта «[[:$1]]» исемле бит бар инде'''",
 'searchmenu-new' => "'''«[[:$1]]»  исемле яңа бит ясау'''",
-'searchhelp-url' => 'Help:Эчтәлек',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Бу префикслы битләрне күрсәтү]]',
 'searchprofile-articles' => 'Төп битләр',
 'searchprofile-project' => 'Ярдәм һәм проектлар бите',
@@ -1200,7 +1195,6 @@ $1",
 'resetprefs' => 'Сакланмаган үзгәртүләрне бетерү',
 'restoreprefs' => 'Баштагы көйләнмәләрне кире кайтару',
 'prefs-editing' => 'Үзгәртү',
-'prefs-edit-boxsize' => 'Үзгәртү тәрәзәсенең зурлыгы',
 'rows' => 'Юллар:',
 'columns' => 'Баганалар:',
 'searchresultshead' => 'Эзләү',
@@ -1211,7 +1205,6 @@ $1",
 'recentchangesdays-max' => '( $1 {{PLURAL:$1|көннән}} дә артык булмаска тиеш)',
 'recentchangescount' => 'Төп буларак кулланучы үзгәртүләр саны:',
 'prefs-help-recentchangescount' => 'Үз өченә үзгәртүләрне, битләрнең тарихын һәм язлу көндәлеген дә кертә.',
-'prefs-help-watchlist-token' => 'Әлеге юлны серсүз белән тутыру сезнең күзәтү исемлегегезнең RSS-тасмасын барлыкка китерәчәк. Мондагы серсүзне белүче һәрбер кеше сезнең күзәтү исемлегегезне карый ала, шуңа күрә автоматик рәвештә ясалган серсүзне кулланыгыз: $1',
 'savedprefs' => 'Көйләнмәләрегез сакланды.',
 'timezonelegend' => 'Сәгать поясы:',
 'localtime' => 'Җирле вакыт',
@@ -1241,7 +1234,6 @@ $1",
 'prefs-common-css-js' => 'Барлык бизәлешләр өчен гомуми CSS/JS:',
 'prefs-reset-intro' => 'Бу бит сезнең көйләнмәләрегезне бетерү өчен кулланыла. Бу эшне башкару нәтиҗәсендә сез яңадан үз көйләнмәләрне яңадан кайтара алмыйсыз.',
 'prefs-emailconfirm-label' => 'E-mail раслау',
-'prefs-textboxsize' => 'Үзгәртү тәрәзәсенең зурлыгы',
 'youremail' => 'Электрон почта:',
 'username' => 'Кулланучы исеме:',
 'uid' => 'Кулланучының идентификаторы:',
@@ -1393,7 +1385,6 @@ $1",
 'recentchangeslinked-feed' => 'Бәйләнешле үзгәртүләр',
 'recentchangeslinked-toolbox' => 'Бәйләнешле үзгәртүләр',
 'recentchangeslinked-title' => '"$1" битенә бәйләнешле үзгәртүләр',
-'recentchangeslinked-noresult' => 'Күрсәтелгән вакытта сылташкан битләрнең үзгәртелмәләре юк иде.',
 'recentchangeslinked-summary' => "Бу күрсәтелгән бит белән сылталган (йә күрсәтелгән төркемгә керткән) битләрнең үзгәртелмәләре исемлеге.
 [[Special:Watchlist|Күзәтү исемлегегезгә]] керә торган битләр '''калын'''.",
 'recentchangeslinked-page' => 'Битнең исеме:',
@@ -1909,7 +1900,7 @@ $1',
 'contributions-title' => '$1 исемле кулланучының кертеме',
 'mycontris' => 'Кертем',
 'contribsub2' => '$1 ($2) өчен',
-'uctop' => '(ахыргы)',
+'uctop' => '(хәзерге)',
 'month' => 'Айдан башлап (һәм элегрәк):',
 'year' => 'Елдан башлап (һәм элегрәк):',
 
index bd0096e..b4ebb96 100644 (file)
@@ -329,7 +329,6 @@ $1',
 'disclaimers' => 'Cawaplılıqtan baş tartu',
 'disclaimerpage' => 'Project:Cawaplılıqtan baş tartu',
 'edithelp' => 'Üzgärtü buyınça yärdäm',
-'edithelppage' => 'Help:Üzgärtü',
 'helppage' => 'Help:Eçtälek',
 'mainpage' => 'Baş bit',
 'mainpage-description' => 'Baş bit',
@@ -355,7 +354,6 @@ $1',
 'newmessagesdifflink' => 'bäxäs bitegezneñ soñğı üzgärtüe',
 'youhavenewmessagesmulti' => 'Sezgä monda yaña xäbärlär bar: $1',
 'editsection' => 'üzgärtü',
-'editsection-brackets' => '[$1]',
 'editold' => 'üzgärtü',
 'viewsourceold' => 'başlanğıç kodnı qaraw',
 'editlink' => 'üzgärtü',
@@ -897,7 +895,6 @@ Sez idaräçe bulu säbäple, [$1 yäşerelgän yuramanı qarıy alasız]",
 'viewprevnext' => 'Kürsätelüe: ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-legend' => 'Ezläw köylänmäläre',
 'searchmenu-new' => "'''«[[:$1]]»  isemle yaña bit yasaw'''",
-'searchhelp-url' => 'Help:Eçtälek',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Bu prefikslı bitlärne kürsätü]]',
 'searchprofile-articles' => 'Töp bitlär',
 'searchprofile-project' => 'Yärdäm häm proyektlar bite',
@@ -965,7 +962,6 @@ Barlıq alannarda (bäxäs bitläre, ürnäklär, h.b.) ezläw öçen ''all'' s
 'resetprefs' => 'Saqlanmağan üzgärtülärne beterü',
 'restoreprefs' => 'Baştağı köylänmälärne kire qaytaru',
 'prefs-editing' => 'Üzgärtü',
-'prefs-edit-boxsize' => 'Üzgärtü täräzäseneñ zurlığı',
 'rows' => 'Yullar:',
 'columns' => 'Bağanalar:',
 'searchresultshead' => 'Ezläw',
@@ -1006,7 +1002,6 @@ Barlıq alannarda (bäxäs bitläre, ürnäklär, h.b.) ezläw öçen ''all'' s
 'prefs-common-css-js' => 'Barlıq bizäleşlär öçen ğomumi CSS/JS:',
 'prefs-reset-intro' => 'Bu bit sezneñ köylänmäläregezne beterü öçen qullanıla. Bu eşne başqaru näticäsendä sez yañadan üz köylänmälärne yañadan qaytara almıysız.',
 'prefs-emailconfirm-label' => 'E-mail raslaw',
-'prefs-textboxsize' => 'Üzgärtü täräzäseneñ zurlığı',
 'youremail' => 'Elektron poçta:',
 'username' => 'Qullanuçı iseme:',
 'uid' => 'Qullanuçınıñ identifikatorı:',
@@ -1153,7 +1148,6 @@ Ul $1 {{PLURAL:$1|xäreftän}} kübräk bulırğa tieş tügel.',
 'recentchangeslinked-feed' => 'Bäyläneşle üzgärtülär',
 'recentchangeslinked-toolbox' => 'Bäyläneşle üzgärtülär',
 'recentchangeslinked-title' => '"$1" bitenä bäyläneşle üzgärtülär',
-'recentchangeslinked-noresult' => 'Kürsätelgän waqıtta sıltaşqan bitlärneñ üzgärtelmäläre yuq ide.',
 'recentchangeslinked-summary' => "Bu kürsätelgän bit belän sıltalğan (yä kürsätelgän törkemgä kertkän) bitlärneñ üzgärtelmäläre isemlege.
 [[Special:Watchlist|Küzätü isemlegegezgä]] kerä torğan bitlär '''qalın'''.",
 'recentchangeslinked-page' => 'Bitneñ iseme:',
index 43d580b..357b935 100644 (file)
@@ -23,20 +23,30 @@ $namespaceNames = array(
        NS_SPECIAL          => 'Тускай',
        NS_TALK             => 'Чугаа',
        NS_USER             => 'Aжыглакчы',
-       NS_USER_TALK        => 'Aжыглакчы_чугаазы',
-       NS_PROJECT_TALK     => '$1_чугаазы',
+       NS_USER_TALK        => 'Aжыглакчы_чугаа',
+       NS_PROJECT_TALK     => '$1_чугаа',
        NS_FILE             => 'Файл',
-       NS_FILE_TALK        => 'Файл_чугаазы',
+       NS_FILE_TALK        => 'Файл_чугаа',
        NS_MEDIAWIKI        => 'МедиаВики',
-       NS_MEDIAWIKI_TALK   => 'МедиаВики_чугаазы',
+       NS_MEDIAWIKI_TALK   => 'МедиаВики_чугаа',
        NS_TEMPLATE         => 'Майык',
-       NS_TEMPLATE_TALK    => 'Майык_чугаазы',
+       NS_TEMPLATE_TALK    => 'Майык_чугаа',
        NS_HELP             => 'Дуза',
-       NS_HELP_TALK        => 'Дуза_чугаазы',
-       NS_CATEGORY         => 'Ð\9aаÑ\82егоÑ\80иÑ\8f',
-       NS_CATEGORY_TALK    => 'Ð\9aаÑ\82егоÑ\80иÑ\8f\87Ñ\83гаазÑ\8b',
+       NS_HELP_TALK        => 'Дуза_чугаа',
+       NS_CATEGORY         => 'Ð\90ңгÑ\8bлал',
+       NS_CATEGORY_TALK    => 'Ð\90ңгÑ\8bлал_Ñ\87Ñ\83гаа',
 );
 
+$namespaceAliases = array(
+       'Aжыглакчы_чугаазы'  => NS_USER_TALK,
+       '$1_чугаазы'         => NS_PROJECT_TALK,
+       'Файл_чугаазы'       => NS_FILE_TALK,
+       'МедиаВики_чугаазы'  => NS_MEDIAWIKI_TALK,
+       'Майык_чугаазы'      => NS_TEMPLATE_TALK,
+       'Дуза_чугаазы'       => NS_HELP_TALK,
+       'Категория'          => NS_CATEGORY,
+       'Категория_чугаазы'  => NS_CATEGORY_TALK,
+);
 
 $magicWords = array(
        'redirect'                  => array( '0', '#көжүрүлге', '#ШИГЛЕДИР', '#перенаправление', '#перенапр', '#REDIRECT' ),
@@ -294,7 +304,6 @@ $messages = array(
 'disclaimers' => 'Ажыглаар харысаалгазын чөрчүүрү (ойталаары)',
 'disclaimerpage' => 'Project:Ажыглаар харысаалгазын ойталаары',
 'edithelp' => 'Эдеринге дуза',
-'edithelppage' => 'Help:Эдери',
 'helppage' => 'Help:Допчузу',
 'mainpage' => 'Кол Арын',
 'mainpage-description' => 'Кол Арын',
@@ -597,7 +606,6 @@ Please check if you want to create/edit this page.',
 'viewprevnext' => '($1 {{int:pipe-separator}} $2) ($3) көөрү',
 'searchmenu-exists' => "'''Бо викиде \"[[:\$1]]\" деп арын бар.'''",
 'searchmenu-new' => "'''Бо викиде «[[:$1]]» арынны чогаадыры'''",
-'searchhelp-url' => 'Help:Допчузу',
 'searchprofile-articles' => 'үндезин арыннар',
 'searchprofile-project' => 'Төлевилел биле дуза арыннары',
 'searchprofile-images' => 'Мультимедиа',
@@ -642,7 +650,6 @@ Please check if you want to create/edit this page.',
 'saveprefs' => 'Шыгжаары',
 'restoreprefs' => 'Шупту баштайгы ниити шилилгелерни restore',
 'prefs-editing' => 'Өскертир',
-'prefs-edit-boxsize' => 'Өскертир көзенектиң хемчээли.',
 'rows' => 'Одуруглар:',
 'columns' => 'Баганалар:',
 'searchresultshead' => 'Дилээр',
@@ -660,7 +667,6 @@ Please check if you want to create/edit this page.',
 'prefs-files' => 'файлдар',
 'prefs-custom-css' => 'Бодуңар CSS',
 'prefs-custom-js' => 'Бодуңар JavaScript',
-'prefs-textboxsize' => 'Өскертир көзенектиң хемчээли',
 'youremail' => 'Э-чагааңар:',
 'username' => 'Aжыглакчының ады:',
 'uid' => 'Ажыглакчынын саны (ID):',
@@ -771,7 +777,6 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 'recentchangeslinked' => 'Хамааржыр өскерлиишкиннер',
 'recentchangeslinked-toolbox' => 'Хамааржыр өскерлиишкиннер',
 'recentchangeslinked-title' => '«$1» деп арынга хамаарыштырган өскерлиишкиннер',
-'recentchangeslinked-noresult' => 'Холбаштырган арыннарда айыткан үе иштинде кандыг-даа өскертилге турбаан.',
 'recentchangeslinked-summary' => "Айыткан арынның (азы айыткан бөлүкке хамаарышкан) шөлүлүглериниң чедер арыннарнының чаа өскерилгер даңзызы.
 [[Special:Watchlist|Силерниң хайгаарал даңзызынче]] кирип турар арыннарны '''ылгап каан'''.",
 'recentchangeslinked-page' => 'Арынның ады:',
index 74e0783..7c16f4a 100644 (file)
@@ -23,8 +23,8 @@ $namespaceNames = array(
        NS_USER             => 'Викиавтор',
        NS_USER_TALK        => 'Викиавтор_сярысь_вераськон',
        NS_PROJECT_TALK     => '$1_сярысь_вераськон',
-       NS_FILE             => 'СÑ\83Ñ\80ед',
-       NS_FILE_TALK        => 'СÑ\83Ñ\80ед_сярысь_вераськон',
+       NS_FILE             => 'Файл',
+       NS_FILE_TALK        => 'Файл_сярысь_вераськон',
        NS_MEDIAWIKI        => 'MediaWiki',
        NS_MEDIAWIKI_TALK   => 'MediaWiki_сярысь_вераськон',
        NS_TEMPLATE         => 'Шаблон',
@@ -35,6 +35,11 @@ $namespaceNames = array(
        NS_CATEGORY_TALK    => 'Категория_сярысь_вераськон',
 );
 
+$namespaceAliases = array(
+       'Суред'                  => NS_FILE,
+       'Суред_сярысь_вераськон' => NS_FILE_TALK,
+);
+
 // Remove Russian aliases
 $namespaceGenderAliases = array();
 
index 1beb939..976c492 100644 (file)
@@ -22,17 +22,21 @@ $namespaceNames = array(
        NS_SPECIAL          => 'ئالاھىدە',
        NS_TALK             => 'مۇنازىرە',
        NS_USER             => 'ئىشلەتكۈچى',
-       NS_USER_TALK        => 'ئىشلەتكۈچى مۇنازىرىسى',
-       NS_PROJECT_TALK     => 'مۇنازىرىسى$1',
+       NS_USER_TALK        => 'ئىشلەتكۈچى_مۇنازىرىسى',
+       NS_PROJECT_TALK     => '$1مۇنازىرىسى',
        NS_FILE             => 'ھۆججەت',
-       NS_FILE_TALK        => 'ھۆججەت مۇنازىرىسى',
-       NS_MEDIAWIKI_TALK   => 'MediaWiki مۇنازىرىسى',
+       NS_FILE_TALK        => 'ھۆججەت_مۇنازىرىسى',
+       NS_MEDIAWIKI_TALK   => 'MediaWiki_مۇنازىرىسى',
        NS_TEMPLATE         => 'قېلىپ',
-       NS_TEMPLATE_TALK    => 'قېلىپ مۇنازىرىسى',
+       NS_TEMPLATE_TALK    => 'قېلىپ_مۇنازىرىسى',
        NS_HELP             => 'ياردەم',
-       NS_HELP_TALK        => 'ياردەم مۇنازىرىسى',
+       NS_HELP_TALK        => 'ياردەم_مۇنازىرىسى',
        NS_CATEGORY         => 'تۈر',
-       NS_CATEGORY_TALK    => 'تۈر مۇنازىرىسى',
+       NS_CATEGORY_TALK    => 'تۈر_مۇنازىرىسى',
+);
+
+$namespaceAliases = array(
+       'مۇنازىرىسى$1' => NS_PROJECT_TALK,
 );
 
 $specialPageAliases = array(
@@ -286,7 +290,6 @@ $1',
 'disclaimers' => 'جاۋابكارلىقنى كەچۈرۈم قىلىش باياناتى',
 'disclaimerpage' => 'Project:ئادەتتىكى جاۋابكارلىقنى كەچۈرۈم قىلىش باياناتى',
 'edithelp' => 'تەھرىرلەش ياردىمى',
-'edithelppage' => 'Help:تەھرىرلەۋاتىدۇ',
 'helppage' => 'Help:مەزمۇنلار',
 'mainpage' => 'باش بەت',
 'mainpage-description' => 'باش بەت',
@@ -319,7 +322,6 @@ $1',
 'newmessagesdifflinkplural' => 'ئاخىرقى $1 {{PLURAL:$1|ئۆزگەرتىش|ئۆزگەرتىش}}',
 'youhavenewmessagesmulti' => '$1 يېڭى ئۇچۇرىڭىز بار',
 'editsection' => 'تەھرىر',
-'editsection-brackets' => '[$1]',
 'editold' => 'تەھرىر',
 'viewsourceold' => 'مەنبەنى كۆرسەت',
 'editlink' => 'تەھرىر',
@@ -617,10 +619,8 @@ cookies نى قوزغاتقانلىقىڭىزنى جەزملەڭ، بۇ بەتن
 
 # Special:PasswordReset
 'passwordreset' => 'ئىمنى ئەسلىگە قايتۇرماق',
-'passwordreset-text' => 'بۇ جەدۋەل تاماملانسا ھېسابات تەپسىلاتىڭىزنى ئېلخەتىڭىزدە تاپشۇرۇۋالىسىز.',
 'passwordreset-legend' => 'ئىمنى ئەسلىگە قايتۇرماق',
 'passwordreset-disabled' => 'بۇ ۋىكىدا ئىمنى ئەسلىگە قايتۇرۇش چەكلەنگەن.',
-'passwordreset-pretext' => '{{PLURAL:$1||تۆۋەندىكى سانلىق مەلۇماتتىن بىرنى كىرگۈزۈڭ}}',
 'passwordreset-username' => 'ئىشلەتكۈچى ئاتى:',
 'passwordreset-domain' => 'دائىرە:',
 'passwordreset-capture' => 'ھاسىل قىلىنغان ئېلخەتنى كۆرسىتەمدۇ؟',
@@ -1115,7 +1115,6 @@ $1",
 'searchmenu-legend' => 'ئىزدەش تاللانما',
 'searchmenu-exists' => "'''بۇ wiki دا  \"[[:\$1]]\" ئاتلىق بەت بار '''",
 'searchmenu-new' => "'''بۇ wiki دا  \"[[:\$1]]\" ئاتلىق بەت قۇر!'''",
-'searchhelp-url' => 'Help:مەزمۇنلار',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1| بۇنى ئالدى قوشۇلغۇچى قىلغان بەتكە كۆز يۈگۈرت ]]',
 'searchprofile-articles' => 'مەزمۇن بېتى',
 'searchprofile-project' => 'ياردەم ۋە قۇرۇلۇش بەتلەر',
@@ -1191,7 +1190,6 @@ $1",
 'resetprefs' => 'ساقلىمىغان ئۆزگەرتىشلەرنى تازىلا',
 'restoreprefs' => 'بارلىق كۆڭۈلدىكى تەڭشەكنى ئەسلىگە كەلتۈر',
 'prefs-editing' => 'تەھرىرلەۋاتىدۇ',
-'prefs-edit-boxsize' => 'تەھرىرلەش كۆزنىكىنىڭ چوڭلۇقى',
 'rows' => 'قۇر:',
 'columns' => 'ستون:',
 'searchresultshead' => 'ئىزدە',
@@ -1202,9 +1200,6 @@ $1",
 'recentchangesdays-max' => 'ئەڭ چوڭ $1 {{PLURAL:$1|كۈن|كۈن}}',
 'recentchangescount' => 'كۆرسىتىدىغان تەھرىرنىڭ كۆڭۈلدىكى سانى:',
 'prefs-help-recentchangescount' => 'بۇ يېقىنقى ئۆزگەرتىش، بەت تارىخى ۋە خاتىرىنى ئۆز ئىچىگە ئالىدۇ،',
-'prefs-help-watchlist-token' => 'بۇ سۆز بۆلىكىگە تولدۇرغان شىفىرلىق ئاچقۇچ كۆزەت تىزىملىكىڭىزنىڭ RSS قانىلىنى ھاسىل قىلالايدۇ.
-بۇ سۆز بۆلىكىنىڭ شىفىرلىق ئاچقۇچىنى بىلىدىغان ھەر قانداق كىشى سىزنىڭ كۆزەت تىزىملىكىڭىزنى ئوقۇيالايدۇ، شۇڭلاشقا بىخەتەر قىممەت ئىشلىتىڭ.
-بۇ جايدا ئىختىيارى ھاسىل قىلىنغان سانلىق قىممەت پايدىلىنىشىڭىز ئۈچۈن تەمىنلەندى: $1',
 'savedprefs' => 'مايىللىق تەڭشىكىڭىز ساقلاندى.',
 'timezonelegend' => 'ۋاقىت رايونى:',
 'localtime' => 'يەرلىك ۋاقىت:',
@@ -1235,7 +1230,6 @@ $1",
 'prefs-reset-intro' => 'سىز بۇ بەتنى ئىشلىتىپ تەڭشەكلىرىڭىزنى تور بېكەتنىڭ كۆڭۈلدىكى قىممىتىگە تەڭشىيەلەيسىز.
 بۇ مەشغۇلاتتىن يانغىلى بولمايدۇ.',
 'prefs-emailconfirm-label' => 'ئېلخەت جەزملەش:',
-'prefs-textboxsize' => 'تەھرىر كۆزنەك چوڭلۇقى',
 'youremail' => 'ئېلخەت:',
 'username' => '{{GENDER:$1|ئىشلەتكۇچى ئىسمى}}:',
 'uid' => '{{GENDER:$1|ئىشلەتكۇچى}} كىملىك:',
@@ -1486,7 +1480,6 @@ HTML بەلگىسىنى تەكشۈرۈڭ.',
 'recentchangeslinked-feed' => 'مۇناسىۋەتلىك ئۆزگەرتىشلەر',
 'recentchangeslinked-toolbox' => 'مۇناسىۋەتلىك ئۆزگەرتىشلەر',
 'recentchangeslinked-title' => '"$1" مۇناسىۋەتلىك ئۇلانما ئۆزگەردى',
-'recentchangeslinked-noresult' => 'بېرىلگەن ۋاقىتتا ئۇلانغان بەتلەردە ئۆزگىرىش يوق.',
 'recentchangeslinked-summary' => "بۇ ئالاھىدە بەت يۈزى كۆرسەتكەن بەتتىن ئۇلىنىپ چىققان يېقىنقى ئۆزگەرتىش تىزىملىكى (ياكى ئالاھىدە تۈرنىڭ ئەزاسى).
  [[Special:Watchlist|كۆزەت تىزىملىكىڭىز]] دىكى بەت يۈزى '''توم''' كۆرسىتىلىدۇ.",
 'recentchangeslinked-page' => 'بەت ئاتى:',
@@ -2129,7 +2122,6 @@ URL نىڭ توغرىلىقى ۋە تور بېكەتنى زىيارەت قىلى
 'unwatchthispage' => 'كۆزەتنى توختات',
 'notanarticle' => 'مەزمۇن بېتى ئەمەس',
 'notvisiblerev' => 'تۈزىتىلگەن نەشرى ئۆچۈرۈلدى',
-'watchnochange' => 'كۆرسەتكەن ۋاقىت بۆلىكىدە سىزنىڭ كۆزەت بېتىڭىزدە ئۆزگىرىش بولمىدى.',
 'watchlist-details' => 'كۆزەت تىزىملىكىڭىزدە {{PLURAL:$1|$1 بەت|$1 بەت}}  بار، مۇنازىرە بېتىنى ئۆز ئىچىگە ئالمايدۇ.',
 'wlheader-enotif' => 'ئېلخەتتە ئەسكەرتىش ئىقتىدارى قوزغىتىلدى.',
 'wlheader-showupdated' => "سىز ئالدىنقى قېتىم كۆرگەندىن كېيىن ئۆزگەرتىلگەن بەتلەر '''توم''' كۆرۈنىدۇ",
@@ -3694,7 +3686,6 @@ $5
 'version-other' => 'باشقا',
 'version-mediahandlers' => 'ۋاسىتە بىر تەرەپ قىلغۇچ',
 'version-hooks' => 'ئىلمەك',
-'version-extension-functions' => 'تەھلىلچى فونكسىيە',
 'version-parser-extensiontags' => 'تەھلىلچى كېڭەيتىلمە خەتكۈچ',
 'version-parser-function-hooks' => 'تەھلىلچى فونكسىيە ئىلمىكى',
 'version-hook-name' => 'ئىلمەك ئاتى',
index 6b95cec..9eb5778 100644 (file)
@@ -22,6 +22,7 @@
  * @author DixonD
  * @author Dubyk
  * @author EugeneZelenko
+ * @author Geitost
  * @author Gucci Mane Burrr
  * @author Gutsul (Gutsul.ua at Google Mail)
  * @author Ickis
@@ -30,6 +31,7 @@
  * @author KEL
  * @author Kalan
  * @author Microcell
+ * @author Nemo bis
  * @author NickK
  * @author Olvin
  * @author Prima klasy4na
@@ -166,6 +168,7 @@ $specialPageAliases = array(
        'PermanentLink'             => array( 'Постійне_посилання' ),
        'Popularpages'              => array( 'Популярні_сторінки' ),
        'Preferences'               => array( 'Налаштування' ),
+       'Prefixindex'               => array( 'Покажчик_за_початком_назви' ),
        'Protectedpages'            => array( 'Захищені_сторінки' ),
        'Protectedtitles'           => array( 'Захищені_назви_сторінок' ),
        'Randompage'                => array( 'Випадкова_сторінка' ),
@@ -560,6 +563,7 @@ $messages = array(
 'create-this-page' => 'Створити цю сторінку',
 'delete' => 'Вилучити',
 'deletethispage' => 'Вилучити цю сторінку',
+'undeletethispage' => 'Відновити цю сторінку',
 'undelete_short' => 'Відновити $1 {{PLURAL:$1|редагування|редагування|редагувань}}',
 'viewdeleted_short' => 'Переглянути {{PLURAL:$1|одне вилучене редагування|$1 вилучених редагування|$1 вилучених редагувань}}',
 'protect' => 'Захистити',
@@ -613,7 +617,6 @@ $1',
 'disclaimers' => 'Відмова від відповідальності',
 'disclaimerpage' => 'Project:Відмова від відповідальності',
 'edithelp' => 'Довідка про редагування',
-'edithelppage' => 'Help:Редагування',
 'helppage' => 'Help:Довідка',
 'mainpage' => 'Головна сторінка',
 'mainpage-description' => 'Головна сторінка',
@@ -643,7 +646,6 @@ $1',
 'newmessagesdifflinkplural' => '{{PLURAL:$1|остання зміна|останні зміни|останніх змін}}',
 'youhavenewmessagesmulti' => 'Ви отримали нові повідомлення на $1',
 'editsection' => 'ред.',
-'editsection-brackets' => '[$1]',
 'editold' => 'ред.',
 'viewsourceold' => 'переглянути вихідний код',
 'editlink' => 'редагувати',
@@ -762,6 +764,10 @@ $1',
 'namespaceprotected' => 'У вас нема дозволу редагувати сторінки в просторі назв «$1».',
 'customcssprotected' => 'У вас немає прав на редагування цієї CSS-сторінки, так як вона містить особисті налаштування іншого користувача.',
 'customjsprotected' => 'У вас немає дозволу на редагування цієї JavaScript-сторінки, так як вона містить особисті налаштування іншого користувача.',
+'mycustomcssprotected' => 'У вас немає прав для редагування цієї CSS сторінки.',
+'mycustomjsprotected' => 'Ви не маєте дозволу для редагування цієї сторінки JavaScript.',
+'myprivateinfoprotected' => 'У Вас немає дозволу на редагування своєї приватної інформації.',
+'mypreferencesprotected' => 'У Вас немає дозволу на редагування своїх налаштувань.',
 'ns-specialprotected' => 'Спеціальні сторінки не можна редагувати.',
 'titleprotected' => "Створення сторінки з такою назвою було заборонене користувачем [[User:$1|$1]].
 Зазначена наступна причина: ''$2''.",
@@ -796,7 +802,7 @@ $1',
 'createacct-yourpasswordagain-ph' => 'Введіть пароль знову',
 'remembermypassword' => "Запам'ятати мій обліковий запис на цьому комп'ютері (на строк не більше $1 {{PLURAL:$1|дня|днів}})",
 'userlogin-remembermypassword' => "Запам'ятати мене",
-'userlogin-signwithsecure' => "Ð\92икоÑ\80иÑ\81Ñ\82овÑ\83ваÑ\82и Ð·ахищене з'єднання",
+'userlogin-signwithsecure' => "Ð\97ахищене з'єднання",
 'securelogin-stick-https' => 'Залишайтись підключенним через HTTPS після входу',
 'yourdomainname' => 'Ваш домен:',
 'password-change-forbidden' => 'Ви не можна змінити пароль на цій вікі.',
@@ -810,8 +816,8 @@ $1',
 'userlogout' => 'Вихід із системи',
 'notloggedin' => 'Ви не ввійшли до системи',
 'userlogin-noaccount' => 'Немає облікового запису?',
-'userlogin-joinproject' => 'Приєднатися до {{SITENAME}}',
-'nologin' => "Ви ще не зареєструвались? '''$1'''.",
+'userlogin-joinproject' => 'Приєднатися до {{GRAMMAR:genitive|{{SITENAME}}}}',
+'nologin' => 'Ви ще не зареєструвались? $1.',
 'nologinlink' => 'Створіть обліковий запис',
 'createaccount' => 'Зареєструватися',
 'gotaccount' => "Ви вже зареєстровані? '''$1'''.",
@@ -899,7 +905,7 @@ $1',
 'cannotchangeemail' => 'У цій вікі не можна міняти свою адресу ел. пошти.',
 'emaildisabled' => 'Цей сайт не може надіслати електронні листи.',
 'accountcreated' => 'Обліковий запис створено.',
-'accountcreatedtext' => 'Ð\9eблÑ\96ковий Ð·Ð°Ð¿Ð¸Ñ\81 Ð´Ð»Ñ\8f $1 Ñ\81Ñ\82воÑ\80ено.',
+'accountcreatedtext' => 'Ð\9eблÑ\96ковий Ð·Ð°Ð¿Ð¸Ñ\81 ÐºÐ¾Ñ\80иÑ\81Ñ\82Ñ\83ваÑ\87а Ð´Ð»Ñ\8f [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|обговоÑ\80еннÑ\8f]]) Ð±Ñ\83в Ñ\81Ñ\82воÑ\80ений.',
 'createaccount-title' => 'Створення облікового запису для {{SITENAME}}',
 'createaccount-text' => 'Хтось створив обліковий запис «$2» на сервері проекту {{SITENAME}} ($4) з паролем «$3», зазначивши вашу адресу електронної пошти. Вам слід зайти і змінити пароль.
 
@@ -912,7 +918,7 @@ $1',
 'suspicious-userlogout' => 'Ваш запит на завершення сеанса відхилений, оскільки він схожий на запит, відправлений зіпсованим веб-оглядачем або кешуючим проксі-сервером.',
 
 # Email sending
-'php-mail-error-unknown' => 'Невідома помилка в PHP-mail() функції',
+'php-mail-error-unknown' => 'Невідома помилка в PHP-функції mail()',
 'user-mail-no-addy' => 'Спроба надсилання електронної пошти без зазначеної адреси електронної пошти.',
 'user-mail-no-body' => 'Спроба надіслати електронного листа з порожнім або надто коротким вмістом.',
 
@@ -937,11 +943,11 @@ $1',
 
 # Special:PasswordReset
 'passwordreset' => 'Скинути пароль',
-'passwordreset-text' => 'Заповніть цю форму для відновлення пароля.',
+'passwordreset-text-one' => 'Заповніть цю форму для відновлення пароля.',
+'passwordreset-text-many' => '{{PLURAL:$1|Заповніть одне з полів для скидання пароля.}}',
 'passwordreset-legend' => 'Перевстановити пароль',
 'passwordreset-disabled' => 'У цій вікі вимкнена можливість скидання пароля.',
 'passwordreset-emaildisabled' => 'Функції електронної пошти вимкнуто в цій вікі.',
-'passwordreset-pretext' => '{{PLURAL:$1||Введіть одну з частин даних}}',
 'passwordreset-username' => "Ім'я користувача:",
 'passwordreset-domain' => 'Домен:',
 'passwordreset-capture' => 'Продивитись результуючий електронний лист?',
@@ -1167,7 +1173,7 @@ $2
 'nocreate-loggedin' => 'У вас нема дозволу створювати нові сторінки.',
 'sectioneditnotsupported-title' => 'Редагування окремих розділів не підтримується',
 'sectioneditnotsupported-text' => 'На цій сторінці не підтримується редагування окремих розділів',
-'permissionserrors' => 'Ð\9fомилки Ð¿Ñ\80ав доступу',
+'permissionserrors' => 'Ð\9fомилка доступу',
 'permissionserrorstext' => 'У вас нема прав на виконання цієї операції з {{PLURAL:$1|наступної причини|наступних причин}}:',
 'permissionserrorstext-withaction' => 'У вас нема дозволу на $2 з {{PLURAL:$1|такої причини|таких причин}}:',
 'recreate-moveddeleted-warn' => "'''Попередження: ви намагаєтеся створити сторінку, яка раніше вже була вилучена.'''
@@ -1183,6 +1189,7 @@ $2
 Імовірно, вона була вилучена.',
 'edit-conflict' => 'Конфлікт редагувань.',
 'edit-no-change' => 'Ваше редагування відхилене, оскільки в тексті не було зроблено змін.',
+'postedit-confirmation' => 'Ваше редагування збережено',
 'edit-already-exists' => 'Неможливо створити нову сторінку.
 Вона вже існує.',
 'defaultmessagetext' => 'Текст «за замовчування»',
@@ -1190,7 +1197,7 @@ $2
 'invalid-content-data' => 'Неприпустимі дані',
 'content-not-allowed-here' => 'Вміст «$1» недопустимий на сторінці [[$2]]',
 'editwarning-warning' => 'Перехід на іншу сторінку призведе до втрати ваших змін.
-Якщо ви ввійшли до системи, то ви можете відключити це попередження в розділі «{{int:prefs-editing}}» ваших налаштувань.',
+Якщо ви ввійшли до системи, то ви можете відключити це попередження в розділі «Редагування» ваших налаштувань.',
 
 # Content models
 'content-model-wikitext' => 'вікітекст',
@@ -1226,6 +1233,7 @@ $2
 'undo-failure' => 'Неможливо скасувати редагування через несумісність проміжних змін.',
 'undo-norev' => 'Редагування не може бути скасоване, бо воно не існує або було вилучене.',
 'undo-summary' => 'Скасування редагування № $1 користувача [[Special:Contributions/$2|$2]] ([[User talk:$2|обговорення]])',
+'undo-summary-username-hidden' => 'Скасувати перевірку $1 прихованого користувача',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Неможливо створити обліковий запис',
@@ -1252,8 +1260,8 @@ $3 зазначив таку причину: ''$2''",
 (ост.) = відмінності від попередньої версії, '''м''' = незначне редагування",
 'history-fieldset-title' => 'Переглянути історію',
 'history-show-deleted' => 'Тільки вилучені',
-'histfirst' => 'найстаріші',
-'histlast' => 'оÑ\81Ñ\82анні',
+'histfirst' => 'найдавніші',
+'histlast' => 'найновÑ\96Ñ\88і',
 'historysize' => '($1 {{PLURAL:$1|байт|байти|байтів}})',
 'historyempty' => '(порожньо)',
 
@@ -1406,6 +1414,7 @@ $1",
 'compareselectedversions' => 'Порівняти вибрані версії',
 'showhideselectedversions' => 'Показати/приховати обрані версії',
 'editundo' => 'скасувати',
+'diff-empty' => '(Немає відмінностей)',
 'diff-multi' => '({{PLURAL:$1|Одна проміжна версія одного користувача не показана|$1 проміжні версії {{PLURAL:$2|одного користувача|$2 користувачів}} не показані|$1 проміжних версій {{PLURAL:$2|одного користувача|$2 користувачів}} не показані}})',
 'diff-multi-manyusers' => '({{PLURAL:$1|не показана $1 проміжна я версія|не показані $1 проміжні версії|не показано $1 проміжних версій}}, зроблених більш, ніж {{PLURAL:$2|$1 користувачем|$2 користувачами}})',
 'difference-missing-revision' => '{{PLURAL:$2|$2 версія|$2 версії|$2 версій}} для цього порівняння ($1) не {{PLURAL:$2|знайдена|знайдені}}.
@@ -1433,7 +1442,6 @@ $1",
 'searchmenu-legend' => 'Параметри пошуку',
 'searchmenu-exists' => "'''У цій вікі є сторінка з назвою «[[:$1]]»'''",
 'searchmenu-new' => "'''Створити сторінку «[[:$1]]» у цій вікі!'''",
-'searchhelp-url' => 'Help:Довідка',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Показати сторінки з цим префіксом]]',
 'searchprofile-articles' => 'Статті',
 'searchprofile-project' => 'Сторінки довідки і проекту',
@@ -1508,7 +1516,6 @@ $1",
 'resetprefs' => 'Скасувати незбережені зміни',
 'restoreprefs' => 'Відновити всі стандартні налаштування',
 'prefs-editing' => 'Редагування',
-'prefs-edit-boxsize' => 'Розмір вікна редагування.',
 'rows' => 'Рядків:',
 'columns' => 'Колонок:',
 'searchresultshead' => 'Пошук',
@@ -1519,9 +1526,6 @@ $1",
 'recentchangesdays-max' => '(максимум $1 {{PLURAL:$1|день|дні|днів}})',
 'recentchangescount' => 'Кількість редагувань для показу за умовчанням:',
 'prefs-help-recentchangescount' => 'Це стосується нових редагувань, історій сторінок і журналів.',
-'prefs-help-watchlist-token' => 'Заповнення цього поля секретним ключем буде створювати RSS-трансляцію для вашого списку спостереження.
-Кожен, хто знає ключ в цьому полі, зможе читати ваш список спостереження, тому оберіть секретне значення.
-Ви можете використати це випадково згенероване значення: $1',
 'savedprefs' => 'Ваші налаштування збережено.',
 'timezonelegend' => 'Часовий пояс:',
 'localtime' => 'Місцевий час:',
@@ -1552,7 +1556,6 @@ $1",
 'prefs-reset-intro' => 'Ця сторінка може бути використана для зміни ваших налаштувань на стандартні.
 Після виконання цієї дії ви не зможете відкотити зміни.',
 'prefs-emailconfirm-label' => 'Підтвердження електронної пошти:',
-'prefs-textboxsize' => 'Розмір вікна редагування',
 'youremail' => 'Адреса електронної пошти:',
 'username' => "{{GENDER:$1|Ім'я користувача|Ім'я користувачки}}:",
 'uid' => 'Ідентифікатор {{GENDER:$1|користувача}}:',
@@ -1587,7 +1590,9 @@ $1",
 'prefs-signature' => 'Підпис',
 'prefs-dateformat' => 'Формат дати',
 'prefs-timeoffset' => 'Зсув часу',
-'prefs-advancedediting' => 'Розширені налаштування',
+'prefs-advancedediting' => 'Загальні',
+'prefs-editor' => 'Редактор',
+'prefs-preview' => 'Попередній перегляд',
 'prefs-advancedrc' => 'Розширені налаштування',
 'prefs-advancedrendering' => 'Розширені налаштування',
 'prefs-advancedsearchoptions' => 'Розширені налаштування',
@@ -1624,6 +1629,7 @@ $1",
 'userrights-unchangeable-col' => 'Групи, які ви не можете змінити',
 'userrights-irreversible-marker' => '$1*',
 'userrights-conflict' => 'Конфлікт прав користувача! Будь ласка, застосуйте зміни знову.',
+'userrights-removed-self' => 'Ви успішно позбавили себе власних прав. Через це Ви більше не маєте доступу до цієї сторінки.',
 
 # Groups
 'group' => 'Група:',
@@ -1667,7 +1673,7 @@ $1",
 'right-reupload-shared' => 'Підміна файлів зі спільного сховища локальними',
 'right-upload_by_url' => 'Завантаження файлів за URL-адресами',
 'right-purge' => 'Очищення кешу для сторінки без сторінки підтвердження',
-'right-autoconfirmed' => 'РедагÑ\83ваннÑ\8f Ñ\87аÑ\81Ñ\82ково Ð·Ð°Ñ\85иÑ\89ениÑ\85 Ñ\81Ñ\82оÑ\80Ñ\96нок',
+'right-autoconfirmed' => 'Ð\91ез Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ñ\8c Ñ\88видкоÑ\81Ñ\82Ñ\96 Ð·Ð° IP',
 'right-bot' => 'Автоматична обробка',
 'right-nominornewtalk' => 'Незначні редагування на сторінках обговорень користувачів не викликають попередження про нові повідомлення',
 'right-apihighlimits' => 'Розширення обмежень на виконання API-запитів',
@@ -1688,12 +1694,20 @@ $1",
 'right-ipblock-exempt' => 'Уникнення блокування за IP-адресою, автоблокування і блокування діапазонів',
 'right-proxyunbannable' => 'Уникнення автоматичного блокування проксі-серверів',
 'right-unblockself' => 'розблоковувати самого себе',
-'right-protect' => 'Зміна рівнів захисту, редагування захищених сторінок',
-'right-editprotected' => 'Редагування захищених сторінок (без каскадного захисту)',
+'right-protect' => 'Зміна рівнів захисту та редагування захищених каскадно сторінок',
+'right-editprotected' => 'Редагування сторінок з рівнем захисту "{{int:protect-level-sysop}}"',
+'right-editsemiprotected' => 'Редагування сторінок з рівнем захисту "{{int:protect-level-autoconfirmed}}"',
 'right-editinterface' => 'Редагування інтерфейсу користувача',
 'right-editusercssjs' => 'Редагування CSS- і JS-файлів інших користувачів',
 'right-editusercss' => 'Редагування CSS-файлів інших користувачів',
 'right-edituserjs' => 'Редагування JS-файлів інших користувачів',
+'right-editmyusercss' => 'Редагування власних CSS-файлів користувача',
+'right-editmyuserjs' => 'Редагування власних JavaScript-файлів користувача',
+'right-viewmywatchlist' => 'Переглядати власний список спостереження',
+'right-editmywatchlist' => 'Редагувати власний список спостереження. Зверніть увагу, що деякі дії будуть додавати сторінки навіть без такого права.',
+'right-viewmyprivateinfo' => "Перегляд власних приватних даних (напр., адреса електронної пошти, справжнє ім'я)",
+'right-editmyprivateinfo' => "Редагування власних приватних даних (напр., адреса електронної пошти, справжнє ім'я)",
+'right-editmyoptions' => 'Редагування власних налаштувань',
 'right-rollback' => 'Швидкий відкіт редагувань останнього користувача, який редагував сторінку',
 'right-markbotedits' => 'Позначення відкинутих редагувань як редагування бота',
 'right-noratelimit' => 'Нема обмежень за швидкістю',
@@ -1755,12 +1769,17 @@ $1",
 'action-userrights-interwiki' => 'зміну прав користувачів у інших вікі',
 'action-siteadmin' => 'блокування і розблоковування баз даних',
 'action-sendemail' => 'відправка електронної пошти',
+'action-editmywatchlist' => 'редагування Вашого списку спостереження',
+'action-viewmywatchlist' => 'перегляд власного списку спостереження',
+'action-viewmyprivateinfo' => 'перегляд своєї приватної інформації',
+'action-editmyprivateinfo' => 'редагування своєї приватної інформації',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|зміна|зміни|змін}}',
 'recentchanges' => 'Нові редагування',
 'recentchanges-legend' => 'Налаштування нових редагувань',
 'recentchanges-summary' => 'Відстеження останніх змін на сторінках {{grammar:genitive|{{SITENAME}}}}.',
+'recentchanges-noresult' => 'Немає змін за даний період, що відповідають цим критеріям.',
 'recentchanges-feed-description' => 'Відстежувати останні зміни у вікі в цьому потоці.',
 'recentchanges-label-newpage' => 'Цим редагуванням створена нова сторінка',
 'recentchanges-label-minor' => 'Це незначна зміна',
@@ -1799,7 +1818,6 @@ $1",
 'recentchangeslinked-feed' => "Пов'язані редгування",
 'recentchangeslinked-toolbox' => "Пов'язані редагування",
 'recentchangeslinked-title' => "Пов'язані редагування для «$1»",
-'recentchangeslinked-noresult' => "На пов'язаних сторінках не було змін протягом зазначеного періоду.",
 'recentchangeslinked-summary' => "Це список нещодавніх змін на сторінках, на які посилається зазначена сторінка (або на сторінках, що містяться в цій категорії).
 Сторінки з [[Special:Watchlist|вашого списку спостереження]] виділено '''жирним шрифтом'''.",
 'recentchangeslinked-page' => 'Назва сторінки:',
@@ -1811,7 +1829,7 @@ $1",
 'reuploaddesc' => 'Повернутися до форми завантаження',
 'upload-tryagain' => 'Зберегти змінений опис файлу',
 'uploadnologin' => 'Ви не ввійшли в систему',
-'uploadnologintext' => 'Ви повинні [[Special:UserLogin|ввійти до системи]], щоб завантажувати файли.',
+'uploadnologintext' => 'Ви повинні $1, щоб завантажувати файли.',
 'upload_directory_missing' => 'Директорія для завантажень ($1) відсутня і не може бути створена веб-сервером.',
 'upload_directory_read_only' => 'Веб-сервер не має прав запису в папку ($1), в якій планується зберігати завантажувані файли.',
 'uploaderror' => 'Помилка завантаження файлу',
@@ -1951,7 +1969,7 @@ $1',
 'upload-file-error' => 'Внутрішня помилка',
 'upload-file-error-text' => 'Сталася внутрішня помилка при спробі створити тимчасовий файл на сервері. Будь-ласка, зверніться до [[Special:ListUsers/sysop|адміністратора]].',
 'upload-misc-error' => 'Невідома помилка завантаження',
-'upload-misc-error-text' => 'Невідома помилка завантаження. Будь-ласка, перевірте, що вказана адреса вірна й спробуйте ще. Якщо проблема виникає знову, зверніться до системного адміністратора.',
+'upload-misc-error-text' => 'Невідома помилка завантаження. Будь-ласка, перевірте, що вказана адреса вірна й спробуйте ще. Якщо проблема виникає знову, зверніться до [[Special:ListUsers/sysop|адміністратора]].',
 'upload-too-many-redirects' => 'URL містить надто багато перенаправлень',
 'upload-unknown-size' => 'Невідомий розмір',
 'upload-http-error' => 'Відбулася помилка HTTP: $1',
@@ -2252,7 +2270,7 @@ $1',
 'wantedpages' => 'Необхідні статті',
 'wantedpages-badtitle' => 'Неправильний заголовок у результатах запиту: $1',
 'wantedfiles' => 'Необхідні файли',
-'wantedfiletext-cat' => 'Наступні файли використовують, але вони не існують. У цей список можуть помилково потрапити файли, що знаходяться на зовнішніх сховищах. Такі хибні моменти помічаються <del>перекреслюванням</del>. Крім того, сторінки, що використовують неіснуюч файли, перелічені в [[:$1]].',
+'wantedfiletext-cat' => 'Наступні файли використовують, але вони не існують. У цей список можуть помилково потрапити файли, що знаходяться на зовнішніх сховищах. Такі хибні моменти помічаються <del>перекреслюванням</del>. Крім того, сторінки, що використовують неіснуючі файли, перелічені в [[:$1]].',
 'wantedfiletext-nocat' => 'Наступні файли використовують, але вони не існують. У цей список можуть помилково потрапити файли, що знаходяться на зовнішніх сховищах. Такі хибні моменти помічаються <del>перекреслюванням</del>.',
 'wantedtemplates' => 'Необхідні шаблони',
 'mostlinked' => 'Сторінки, на які найбільше посилань',
@@ -2458,7 +2476,6 @@ $1',
 'unwatchthispage' => 'Скасувати спостереження',
 'notanarticle' => 'Не стаття',
 'notvisiblerev' => 'Версія була вилучена',
-'watchnochange' => 'За вказаний період в статтях з списку спостереження нічого не змінено.',
 'watchlist-details' => 'У вашому списку спостереження $1 {{PLURAL:$1|сторінка|сторінки|сторінок}} (не враховуючи сторінок обговорення).',
 'wlheader-enotif' => 'Сповіщення електронною поштою ввімкнено.',
 'wlheader-showupdated' => "Сторінки, що змінилися після вашого останнього їх відвідування, виділені '''жирним''' шрифтом.",
@@ -2567,7 +2584,7 @@ $UNWATCHURL
 Останні редагування зроблено [[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]]',
-'revertpage-nouser' => "Відкинуто редагування (ім'я користувача приховано) до зробленого [[User:$1|$1]]",
+'revertpage-nouser' => 'Відкинуто редагування прихованого користувача до останньої версії, зробленої користувачем [[User:$1|$1]]',
 'rollback-success' => 'Відкинуті редагування користувача $1; повернення до версії користувача $2.',
 
 # Edit tokens
@@ -2707,7 +2724,7 @@ $1',
 'mycontris' => 'Внесок',
 'contribsub2' => 'Внесок $1 ($2)',
 'nocontribs' => 'Редагувань, що задовольняють заданим умовам не знайдено.',
-'uctop' => ' (остання)',
+'uctop' => '(поточна)',
 'month' => 'До місяця (включно):',
 'year' => 'До року (включно):',
 
@@ -3550,7 +3567,7 @@ Variants for Chinese language
 'exif-saturation' => 'Насиченість',
 'exif-sharpness' => 'Різкість',
 'exif-devicesettingdescription' => 'Опис налаштування камери',
-'exif-subjectdistancerange' => "Відстань до об'єкту зйомки",
+'exif-subjectdistancerange' => "Відстань до об'єкта зйомки",
 'exif-imageuniqueid' => 'Номер зображення (ID)',
 'exif-gpsversionid' => 'Версія блоку GPS-інформації',
 'exif-gpslatituderef' => 'Індекс широти',
@@ -4002,7 +4019,6 @@ $5
 'semicolon-separator' => ';&#32;',
 'comma-separator' => ',&#32;',
 'colon-separator' => ':&#32;',
-'autocomment-prefix' => '-&#32;',
 'pipe-separator' => '&#32;•&#32;',
 'word-separator' => '&#32;',
 'ellipsis' => '...',
@@ -4152,7 +4168,6 @@ $5
 'version-other' => 'Інше',
 'version-mediahandlers' => 'Обробники медіа',
 'version-hooks' => 'Перехоплювачі',
-'version-extension-functions' => 'Функції розширень',
 'version-parser-extensiontags' => 'Теги розширень синтаксичного аналізатора',
 'version-parser-function-hooks' => 'Перехоплювачі функцій синтаксичного аналізатора',
 'version-hook-name' => "Ім'я перехоплювача",
@@ -4237,6 +4252,7 @@ MediaWiki поширюється в надії, що вона буде кори
 'tags' => 'Чинні мітки змін',
 'tag-filter' => 'Фільтр [[Special:Tags|міток]]:',
 'tag-filter-submit' => 'Відфільтрувати',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Мітка|Мітки}}]]: $2)',
 'tags-title' => 'Мітки',
 'tags-intro' => 'На цій сторінці наведений список міток, якими програмне забезпечення помічає редагування, а також значення цих міток.',
 'tags-tag' => 'Назва мітки',
index 2d210ef..e0604fe 100644 (file)
@@ -28,17 +28,17 @@ $fallback8bitEncoding = 'windows-1256';
 $rtl = true;
 
 $namespaceNames = array(
-       NS_MEDIA            => 'زریعہ',
+       NS_MEDIA            => 'وسیط',
        NS_SPECIAL          => 'خاص',
        NS_MAIN             => '',
        NS_TALK             => 'تبادلۂ_خیال',
        NS_USER             => 'صارف',
        NS_USER_TALK        => 'تبادلۂ_خیال_صارف',
        NS_PROJECT_TALK     => 'تبادلۂ_خیال_$1',
-       NS_FILE             => 'تصویر',
-       NS_FILE_TALK        => 'تبادلۂ_خیال_تصویر',
-       NS_MEDIAWIKI        => 'میڈیاوکی',
-       NS_MEDIAWIKI_TALK   => 'تبادلۂ_خیال_میڈیاوکی',
+       NS_FILE             => 'ملف',
+       NS_FILE_TALK        => 'تبادلۂ_خیال_ملف',
+       NS_MEDIAWIKI        => 'میڈیاویکی',
+       NS_MEDIAWIKI_TALK   => 'تبادلۂ_خیال_میڈیاویکی',
        NS_TEMPLATE         => 'سانچہ',
        NS_TEMPLATE_TALK    => 'تبادلۂ_خیال_سانچہ',
        NS_HELP             => 'معاونت',
@@ -47,6 +47,14 @@ $namespaceNames = array(
        NS_CATEGORY_TALK    => 'تبادلۂ_خیال_زمرہ',
 );
 
+$namespaceAliases = array(
+       'زریعہ'            => NS_MEDIA,
+       'تصویر'            => NS_FILE,
+       'تبادلۂ_خیال_تصویر'   => NS_FILE_TALK,
+       'میڈیاوکی'          => NS_MEDIAWIKI,
+       'تبادلۂ_خیال_میڈیاوکی' => NS_MEDIAWIKI_TALK,
+);
+
 $specialPageAliases = array(
        'Activeusers'               => array( 'متحرک_صارفین' ),
        'Allmessages'               => array( 'تمام_پیغامات' ),
@@ -269,7 +277,7 @@ $messages = array(
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|زمرہ|زمرہ جات}}',
 'category_header' => 'زمرہ "$1" میں مضامین',
-'subcategories' => 'Ø°Û\8cÙ\84Û\8c Ø°مرہ جات',
+'subcategories' => 'Ø°Û\8cÙ\84Û\8c Ø²مرہ جات',
 'category-media-header' => 'زمرہ "$1" میں وسیط',
 'category-empty' => '‘‘اِس زمرہ میں ابھی کوئی صفحات یا وسیط موجود نہیں.’’',
 'hidden-categories' => '{{PLURAL:$1|پوشیدہ زمرہ|پوشیدہ زمرہ جات}}',
@@ -310,7 +318,7 @@ $messages = array(
 'vector-view-create' => 'تخلیق',
 'vector-view-edit' => 'ترمیم',
 'vector-view-history' => 'تاریخ',
-'vector-view-view' => 'Ù¾Ú\91Ú¾Û\8cÚº',
+'vector-view-view' => 'Ù\85طاÙ\84عÛ\81',
 'vector-view-viewsource' => 'مسودہ',
 'actions' => 'ایکشنز',
 'namespaces' => 'جائے نام',
@@ -378,7 +386,7 @@ $1',
 'pool-errorunknown' => 'نامعلوم خطا',
 
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
-'aboutsite' => 'کا تعارف {{SITENAME}}',
+'aboutsite' => 'تعارف {{SITENAME}}',
 'aboutpage' => 'Project:تعارف',
 'copyright' => 'تمام مواد $1 کے تحت میسر ہے۔',
 'copyrightpage' => '{{ns:project}}:حقوق تصانیف',
@@ -387,7 +395,6 @@ $1',
 'disclaimers' => 'اعلانات',
 'disclaimerpage' => 'Project:عام اعلان',
 'edithelp' => 'معاونت براۓ ترمیم',
-'edithelppage' => 'Help:ترمیم',
 'helppage' => 'Help:فہرست',
 'mainpage' => 'صفحہ اول',
 'mainpage-description' => 'صفحہ اول',
@@ -416,7 +423,6 @@ $1',
 'newmessagesdifflinkplural' => 'آخری {{PLURAL:$1|تبدیلی|تبدیلیاں}}',
 'youhavenewmessagesmulti' => 'ء$1 پر آپ کیلئے نئے پیغامات ہیں',
 'editsection' => 'ترمیم',
-'editsection-brackets' => '[$1]',
 'editold' => 'ترمیم',
 'viewsourceold' => 'مآخذ دیکھئے',
 'editlink' => 'تدوین کریں',
@@ -798,6 +804,7 @@ $1 نے پابندی لگائی تھی.
 لگتا ہے یہ حذف ہوچکا ہے.',
 'edit-conflict' => 'تنازعۂ تدوین.',
 'edit-no-change' => 'آپ کی تدوین کو نظرانداز کردیا گیا، کیونکہ متن میں کوئی تبدیلی نہیں ہوئی تھی.',
+'postedit-confirmation' => 'آپ کی ترمیم محفوظ ہوگئی۔',
 'edit-already-exists' => 'نیا صفحہ تخلیق نہیں کیا جاسکتا.
 یہ پہلے سے موجود ہے.',
 
@@ -921,7 +928,6 @@ $1",
 'searchmenu-legend' => 'اختیاراتِ تلاش',
 'searchmenu-exists' => "'''اِس ویکی پر \"[[:\$1]]\" نامی ایک صفحہ موجود ہے'''",
 'searchmenu-new' => "'''اِس ویکی پر صفحہ \"[[:\$1]]\" تخلیق کیجئے!'''",
-'searchhelp-url' => 'Help:فہرست',
 'searchprofile-articles' => 'مشمولاتی صفحات',
 'searchprofile-project' => 'صفحاتِ مدد و منصوبہ',
 'searchprofile-images' => 'کثیرالوسیط',
@@ -931,7 +937,7 @@ $1",
 'searchprofile-project-tooltip' => '$1 میں تلاش',
 'searchprofile-images-tooltip' => 'تلاش برائے ملفات',
 'searchprofile-everything-tooltip' => ' تلاش تمام مشمولات (بشمول تبادلۂ خیال صفحات) میں',
-'searchprofile-advanced-tooltip' => 'اپنی پسند کے فضائے نام میں تلاش',
+'searchprofile-advanced-tooltip' => 'اپنی پسند کے جائے نام میں تلاش',
 'search-result-size' => '$1 ({{PLURAL:$2|1 لفظ|$2 الفاظ}})',
 'search-result-category-size' => '{{PLURAL:$1|1 رُکن|$1 اراکین}} ({{PLURAL:$2|1 ذیلی زمرہ|$2 ذیلی زمرہ جات}}, {{PLURAL:$3|1 ملف|$3 ملفات}})',
 'search-result-score' => 'توافق: $1%',
@@ -988,7 +994,6 @@ $1",
 'resetprefs' => 'نامحفوظ تبدیلیاں صاف کرو',
 'restoreprefs' => 'تمام بےنقص ترتیبات بحال کیجئے',
 'prefs-editing' => 'تدوین',
-'prefs-edit-boxsize' => 'تدوینی کھڑکی کی جسامت.',
 'rows' => 'صفیں:',
 'columns' => 'قطاریں:',
 'searchresultshead' => 'تلاش',
@@ -1018,7 +1023,6 @@ $1",
 'prefs-custom-css' => 'خودساختہ CSS',
 'prefs-custom-js' => 'خودساختہ JS',
 'prefs-emailconfirm-label' => 'برقی پتہ کی تصدیق:',
-'prefs-textboxsize' => 'خانۂ تدوین کی جسامت',
 'youremail' => '٭ برقی خط',
 'username' => 'اسم صارف',
 'uid' => 'صارف نمبر:',
@@ -1153,7 +1157,7 @@ HTML tags جانچئے.',
 'recentchangeslinked-page' => 'صفحۂ منصوبہ دیکھئے',
 
 # Upload
-'upload' => 'Ù\81ائÙ\84 Ø¨Ú¾Û\8cجÛ\8cÚº',
+'upload' => 'Ù\81ائÙ\84 Ø§Ø«Ù\82اÙ\84',
 'uploadbtn' => 'زبراثقال ملف (اپ لوڈ فائل)',
 'reuploaddesc' => 'زبراثقال ورقہ (فارم) کیجانب واپس۔',
 'uploadnologin' => 'آپ داخل شدہ حالت میں نہیں',
@@ -1402,7 +1406,7 @@ Also see [[Special:WantedCategories|wanted categories]].',
 
 'sp-contributions-newbies' => 'صرف نئے کھاتوں کے مساہمات دکھاؤ',
 'sp-contributions-blocklog' => 'نوشتۂ پابندی',
-'sp-contributions-uploads' => 'آپÙ\84Ù\88Ú\88',
+'sp-contributions-uploads' => 'اثÙ\82اÙ\84ات',
 'sp-contributions-logs' => 'نوشتہ جات',
 'sp-contributions-talk' => 'گفتگو',
 'sp-contributions-userrights' => 'صارف کے حقوق کا انتظام',
@@ -1412,7 +1416,7 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'sp-contributions-submit' => 'تلاش',
 
 # What links here
-'whatlinkshere' => 'ادھر کس کا جوڑ ہے',
+'whatlinkshere' => 'ادھر کونسا ربط ہے',
 'whatlinkshere-title' => '"$1" سے مربوط صفحات',
 'whatlinkshere-page' => 'صفحہ:',
 'linkshere' => "'''[[:$1]]''' سے درج ذیل صفحات مربوط ہیں:",
@@ -1420,7 +1424,7 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'isredirect' => 'لوٹایا گیا صفحہ',
 'istemplate' => 'شامل شدہ',
 'isimage' => 'ربطِ ملف',
-'whatlinkshere-links' => 'روابط',
+'whatlinkshere-links' => 'روابط ←',
 'whatlinkshere-hideredirs' => 'رجوع مکررات $1',
 'whatlinkshere-hidetrans' => 'تضمینات',
 'whatlinkshere-hidelinks' => 'روابط $1',
@@ -1547,7 +1551,7 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'tooltip-ca-nstab-category' => 'زمرہ‌جاتی صفحہ دیکھئے',
 'tooltip-minoredit' => 'اِس تدوین کو بطورِ معمولی ترمیم نشانزد کیجئے',
 'tooltip-save' => 'تبدیلیاں محفوظ کیجئے',
-'tooltip-preview' => 'برائے مہربانی! محفوظ کرنے سے پہلے تبدیلیوں کا پیشمنظر دیکھئے',
+'tooltip-preview' => 'برائے مہربانی! محفوظ کرنے سے پہلے تبدیلیوں کا پیش منظر دیکھيے',
 'tooltip-diff' => 'دیکھئے کہ اپنے متن میں کیا تبدیلیاں کیں',
 'tooltip-compareselectedversions' => 'اِس صفحہ کی دو منتخب نظرثانیوں میں فرق دیکھئے',
 'tooltip-watch' => 'اِس صفحہ کو اپنی زیرِنظرفہرست میں شامل کریں',
index e7dba1f..937e6a3 100644 (file)
@@ -30,8 +30,8 @@ $namespaceNames = array(
        NS_USER             => 'Foydalanuvchi',
        NS_USER_TALK        => 'Foydalanuvchi_munozarasi',
        NS_PROJECT_TALK     => '$1_munozarasi',
-       NS_FILE             => 'Tasvir',
-       NS_FILE_TALK        => 'Tasvir_munozarasi',
+       NS_FILE             => 'Fayl',
+       NS_FILE_TALK        => 'Fayl_munozarasi',
        NS_MEDIAWIKI        => 'MediaWiki',
        NS_MEDIAWIKI_TALK   => 'MediaWiki_munozarasi',
        NS_TEMPLATE         => 'Andoza',
@@ -44,6 +44,8 @@ $namespaceNames = array(
 
 $namespaceAliases = array(
        'Mediya'                => NS_MEDIA,
+       'Tasvir'                => NS_FILE,
+       'Tasvir_munozarasi'     => NS_FILE_TALK,
        'MediyaViki'            => NS_MEDIAWIKI,
        'MediyaViki_munozarasi' => NS_MEDIAWIKI_TALK,
        'Shablon'               => NS_TEMPLATE,
@@ -121,7 +123,7 @@ $messages = array(
 'tog-editsection' => '[tahrir] havolasini har bir boʻlim boshida koʻrsatish',
 'tog-editsectiononrightclick' => 'Boʻlim sarlavhasiga sichqonchaning oʻng tugmasi bilan bosib tahrirlashni boshlash',
 'tog-showtoc' => 'Mundarijani koʻrsatish (3 tadan koʻproq sarlavha bor sahifalarda)',
-'tog-rememberpassword' => 'Hisob ma’lumotlarim ushbu brauzerda eslab qolinsin (ko‘pi bilan $1 {{PLURAL:$1|kunga|kunga}})',
+'tog-rememberpassword' => 'Hisob ma’lumotlarim ushbu brauzerda eslab qolinsin (ko‘pi bilan $1 kunga)',
 'tog-watchcreations' => 'Men yaratgan sahifalarni va yuklagan fayllarni kuzatuv roʻyxatimga qoʻsh',
 'tog-watchdefault' => 'Men tahrirlagan sahifa va fayllarni kuzatuv roʻyxatimga qoʻsh',
 'tog-watchmoves' => 'Men koʻchirgan sahifa va fayllarni kuzatuv roʻyxatimga qoʻsh',
@@ -149,7 +151,7 @@ $messages = array(
 'tog-ccmeonemails' => 'Boshqa ishtirokchilarga yozgan xatimning nusxasi oʻzimga yuborilsin',
 'tog-diffonly' => 'Versiyalar taqqoslanayotganda, pastda sahifa matni koʻrsatilmasin',
 'tog-showhiddencats' => 'Yashirin turkumlarni koʻrsatish',
-'tog-noconvertlink' => "Sarlavhaga aylantirish dastagini o'chirib qo'yish",
+'tog-noconvertlink' => 'Sarlavhani oʻzgartirish havolasini oʻchirib qoʻyish',
 'tog-norollbackdiff' => 'Tahrir qaytarilganda, versiyalar taqqosi koʻrsatilmasin',
 'tog-useeditwarning' => 'Kiritgan oʻzgarishlarimni saqlamay sahifadan chiqib ketayotganim haqida ogohlantirilsin',
 
@@ -351,7 +353,6 @@ $1',
 'disclaimers' => 'Ogohlantirishlar',
 'disclaimerpage' => 'Project:Umumiy ogohlantirish',
 'edithelp' => 'Tahrirlash yordami',
-'edithelppage' => 'Help:Tahrirlash',
 'helppage' => 'Help:Mundarija',
 'mainpage' => 'Bosh sahifa',
 'mainpage-description' => 'Bosh sahifa',
@@ -374,10 +375,10 @@ $1',
 'youhavenewmessages' => 'Sizga $1 keldi ($2).',
 'newmessageslink' => 'yangi xabarlar',
 'newmessagesdifflink' => 'soʻnggi oʻzgarish',
-'youhavenewmessagesfromusers' => 'Siz {{PLURAL:$3|$3 ta foydalanuvchidan}} $1 oldingiz ($2).',
+'youhavenewmessagesfromusers' => 'Siz {{PLURAL:$3|boshqa foydalanuvchidan|$3 ta foydalanuvchidan}} $1 oldingiz ($2).',
 'youhavenewmessagesmanyusers' => "Siz ko'p foydalanuvchilardan $1 oldingiz ($2).",
 'newmessageslinkplural' => '{{PLURAL:$1|yangi xabar|yangi xabarlar}}',
-'newmessagesdifflinkplural' => "oxirgi {{PLURAL:$1|o'zgarish|o'zgarishlar}}",
+'newmessagesdifflinkplural' => 'oxirgi {{PLURAL:$1|oʻzgarish|oʻzgarishlar}}',
 'youhavenewmessagesmulti' => 'Siz $1ga yangi xat oldingiz',
 'editsection' => 'tahrirlash',
 'editold' => 'tahrirlash',
@@ -388,21 +389,21 @@ $1',
 'toc' => 'Mundarija',
 'showtoc' => 'koʻrsatish',
 'hidetoc' => 'yashirish',
-'collapsible-collapse' => "Yig'ish",
+'collapsible-collapse' => 'Yigʻish',
 'collapsible-expand' => 'Yoyish',
-'thisisdeleted' => "$1ni ko'rib chiqasizmi yoki tiklaysizmi?",
-'viewdeleted' => "$1ni ko'rib chiqasizmi?",
-'restorelink' => "{{PLURAL:$1|o'chirilgan tahrir|$1 ta o'chirilgan tahrirlar}}ni",
+'thisisdeleted' => '$1ni koʻrib chiqasizmi yoki tiklaysizmi?',
+'viewdeleted' => '$1ni koʻrib chiqasizmi?',
+'restorelink' => '{{PLURAL:$1|Oʻchirilgan tahrir|$1 ta oʻchirilgan tahrirlar}}',
 'feedlinks' => "Ko'rinishida:",
 'feed-invalid' => "Obuna uchun no'tog'ri turdagi kanal",
-'feed-unavailable' => "Sindikatsiya tasmalariga yo'lashning imkoni yo'q",
+'feed-unavailable' => 'Sindikatsiya tasmalariga yoʻlash imkoni yoʻq',
 'site-rss-feed' => '$1 — RSS-tasmasi',
 'site-atom-feed' => '$1 — Atom-tasma',
 'page-rss-feed' => '"$1" — RSS-tasmasi',
 'page-atom-feed' => '«$1» — Atom-lenta',
 'red-link-title' => '$1 (sahifa yaratilmagan)',
-'sort-descending' => "Kamayish bo'yicha tartiblash",
-'sort-ascending' => "O'sish bo'yicha tartiblash",
+'sort-descending' => 'Kamayish boʻyicha tartiblash',
+'sort-ascending' => 'Oʻsish boʻyicha tartiblash',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'Maqola',
@@ -431,7 +432,7 @@ $1',
 'badtitle' => 'Notoʻgʻri sarlavha',
 'viewsource' => 'Manbasini koʻrish',
 'viewsource-title' => '$1 sahifasining manbasini koʻrish',
-'actionthrottled' => "Tezlik bo'yicha cheklov",
+'actionthrottled' => 'Tezlik cheklovi',
 'protectedpagetext' => 'Bu sahifa tahrirlash va boshqa oʻzgartirishlar kiritishdan himoyalangan.',
 'viewsourcetext' => 'Siz bu sahifaning manbasini koʻrishingiz va uni nusxasini olishingiz mumkin:',
 'editinginterface' => "'''Diqqat:''' Siz dasturiy taʼminot interfeysi matni mavjud boʻlgan sahifani tahrirlamoqdasiz.
@@ -442,7 +443,7 @@ Ushbu xabar tarjimasini qoʻshish yoki oʻzgartirish uchun, iltimos, MediaWikini
 'customjsprotected' => 'Sizda uchbu JavaScript sahifani tahrirlash huquqi yoʻq, chunki bu yerda boshqa foydalanuvchining shaxsiy moslamalari saqlanadi.',
 'ns-specialprotected' => '"{{ns:special}}" nomfazosi sahifalari tahrirlanishi mumkin emas.',
 'exception-nologin' => "Siz tizimda o'zingizni tanishtirmadingiz",
-'exception-nologin-text' => "Bu sahifani ko'rish yoki so'ralgan amalni bajarish uchun o'zingizni tizimda tanitishingiz zarur.",
+'exception-nologin-text' => 'Bu sahifani koʻrish yoki soʻralgan amalni bajarish uchun tizimga kirishingiz lozim.',
 
 # Virus scanner
 'virus-badscanner' => "Moslamada xato. Noma'lum virus aniqlovchi: ''$1''",
@@ -454,11 +455,19 @@ Ushbu xabar tarjimasini qoʻshish yoki oʻzgartirish uchun, iltimos, MediaWikini
 
 {{SITENAME}} saytidan anonim holda foydalanishda davom etishindiz mumkin. Yoki siz yana hozirgi yoki boshqa foydalanuvchi nomi bilan qaytadan tizimga kirishingiz mumkin.
 Shuni e'tiborga olingki, ayrim sahifalar siz brauzeringiz keshini tozalamaguningizga qadar xuddi tizimga kirganingizdagidek ko'rinishda davom etaverishi mumkin.",
-'yourname' => 'Foydalanuvchi nomi',
+'yourname' => 'Foydalanuvchi nomi:',
+'userlogin-yourname' => 'Foydalanuvchi nomi',
+'userlogin-yourname-ph' => 'Foydalanuvchi nomingizni kiriting',
 'yourpassword' => 'Maxfiy soʻz:',
+'userlogin-yourpassword-ph' => 'Maxfiy soʻzni kiriting',
+'createacct-yourpassword-ph' => 'Maxfiy soʻzni kiriting',
 'yourpasswordagain' => 'Maxfiy so‘zni qayta kiriting:',
+'createacct-yourpasswordagain' => 'Maxfiy soʻzni tasdiqlang',
+'createacct-yourpasswordagain-ph' => 'Maxfiy soʻzni yana bir bor kiriting',
 'remembermypassword' => 'Hisob ma’lumotlarim ushbu brauzerda eslab qolinsin (ko‘pi bilan $1 {{PLURAL:$1|kunga|kunga}})',
-'securelogin-stick-https' => "Kirgandan keyin HTTPS bo'yicha ulanishni davom ettirish",
+'userlogin-remembermypassword' => 'Esda saqla',
+'userlogin-signwithsecure' => 'Himoyalangan holda kirish',
+'securelogin-stick-https' => 'Kirgandan keyin HTTPS boʻyicha ulanishni davom ettirish',
 'yourdomainname' => 'Sizning domeningiz:',
 'password-change-forbidden' => 'Siz bu vikida maxfiy soʻzni oʻzgartira olmaysiz.',
 'login' => 'Kirish',
@@ -469,26 +478,40 @@ Shuni e'tiborga olingki, ayrim sahifalar siz brauzeringiz keshini tozalamaguning
 'logout' => 'Chiqish',
 'userlogout' => 'Chiqish',
 'notloggedin' => 'Siz tizimga kirmagansiz',
+'userlogin-noaccount' => 'Hisobingiz yoʻqmi?',
+'userlogin-joinproject' => '{{SITENAME}}ga aʼzo boʻlish',
 'nologin' => "Hisobingiz yoʻqmi? '''$1'''.",
 'nologinlink' => 'Hisob yaratish',
 'createaccount' => 'Hisob yaratish',
 'gotaccount' => "Hisobingiz bormi? '''$1'''.",
 'gotaccountlink' => 'Kirish',
 'userlogin-resetlink' => 'Kirish maʻlumotlaringiz esdan chiqdimi?',
+'userlogin-resetpassword-link' => 'Maxfiy soʻzni yangilash',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Kirish uchun yordam]]',
+'createacct-join' => 'Maʼlumotlaringizni quyiga yozing',
+'createacct-emailoptional' => 'Elektron pochta manzili (majburiy emas)',
+'createacct-email-ph' => 'Elektron pochtangiz manzilini kiriting',
 'createaccountmail' => "E-mail orqali maxfiy so'zni jo'natish",
 'createaccountreason' => 'Sabab:',
+'createacct-captcha' => 'Xavfsizlik tekshiruvi',
+'createacct-imgcaptcha-ph' => 'Yuqoridagi yozuvni bu yerga kiriting',
+'createacct-submit' => 'Hisob yaratish',
+'createacct-benefit-heading' => '{{SITENAME}} Sizga oʻxshagan odamlar tomonidan yaratiladi',
+'createacct-benefit-body1' => 'tahrirlar soni',
+'createacct-benefit-body2' => 'maqolalar soni',
+'createacct-benefit-body3' => 'soʻnggi paytdagi ishtirokchilar soni',
 'badretype' => "Siz tomondan kiritilgan maxfiy so'zlar mos kelmayapti.",
 'loginerror' => 'Foydalanuvchini aniqlashda xatolik',
-'createaccounterror' => "Hisob yozuvini yaratishning iloji yo'q: $1",
+'createaccounterror' => 'Hisob yozuvi yaratishning iloji yoʻq: $1',
 'loginsuccesstitle' => 'Kirish muvaffaqiyatli amalga oshdi',
 'loginsuccess' => "'''{{SITENAME}}ga \"\$1\" foydalanuvchi nomi bilan kirdingiz.'''",
 'nosuchusershort' => '"$1" ismli foydalanuvchi yoʻq.
 Ism yozilishini tekshirib koʻring.',
 'nouserspecified' => "Siz foydalanuvchining ismini ko'rsatishingiz lozim.",
-'login-userblocked' => "Bu foydalanuvchi muhosara qilingan. Tizimga kirishga ruxsat yo'q.",
+'login-userblocked' => 'Bu foydalanuvchi chetlatilgan. Tizimga kirishga ruxsat yoʻq.',
 'wrongpassword' => 'Kiritgan mahfiy soʻzingiz notoʻgʻri. Iltimos, qaytadan kiritib koʻring.',
-'wrongpasswordempty' => "Iltimos, bo'sh bo'lmagan maxfiy so'z kiriting.",
-'mailmypassword' => "Elektron pochta orqali yangi maxfiy so'zni jo'natish",
+'wrongpasswordempty' => 'Maxfiy soʻz koʻrsatilmagan. Qaytadan urinib koʻring.',
+'mailmypassword' => 'Yangi maxfiy soʻzni elektron pochta orqali joʻnatish',
 'passwordremindertitle' => "{{SITENAME}} uchun vaqtinchalik yangi maxfiy so'z",
 'emailauthenticated' => 'Sizning elektron pochta manzilingiz $2, $3 da tasdiqlangan.',
 'emailconfirmlink' => 'Sizning elektron pochta manzilingizni tasdiqlash',
@@ -509,7 +532,10 @@ Ism yozilishini tekshirib koʻring.',
 'resetpass-submit-cancel' => 'Bekor',
 
 # Special:PasswordReset
-'passwordreset-legend' => "Maxfiy so'zni yo'q qilish",
+'passwordreset' => 'Maxfiy soʻzni yangilash',
+'passwordreset-text-one' => 'Mahfiy soʻzni tashlash uchun ushbu oynalarni toʻltiring.',
+'passwordreset-text-many' => '{{PLURAL:$1|Maxfiy soʻzni yangilash uchun quyidagi oynalardan birini toʻldiring.}}',
+'passwordreset-legend' => 'Maxfiy soʻzni yangilash',
 'passwordreset-username' => 'Foydalanuvchi nomi:',
 'passwordreset-domain' => 'Domen:',
 'passwordreset-email' => 'Elektron pochta manzili:',
@@ -521,7 +547,7 @@ Vaqtinchalik maxfiy so'z: $2",
 'changeemail-header' => "Elektron pochta manzilini o'zgaritish",
 'changeemail-oldemail' => 'Joriy elektron pochta manzili',
 'changeemail-newemail' => 'Elektron pochtaning yangi manzili',
-'changeemail-none' => "(yo'q)",
+'changeemail-none' => '(yoʻq)',
 'changeemail-submit' => "Manzilni o'zgartirish",
 'changeemail-cancel' => 'Bekor',
 
@@ -536,7 +562,7 @@ Vaqtinchalik maxfiy so'z: $2",
 'extlink_tip' => 'Tashqi ishorat (http:// prefiksini unutmang)',
 'headline_sample' => 'Sarlavha',
 'headline_tip' => '2-darajadagi sarlavha',
-'nowiki_sample' => "Bu yerga formatlash zarur bo'lmagan matnni qo'ying",
+'nowiki_sample' => 'Bu yerga formatlash zarur boʻlmagan matnni qoʻying',
 'nowiki_tip' => "Viki-formatlashga e'tibor qilmaslik",
 'image_tip' => 'Qoʻshilgan tasvir',
 'media_tip' => 'Faylga havola',
@@ -551,12 +577,12 @@ Vaqtinchalik maxfiy so'z: $2",
 'savearticle' => 'Saqlash',
 'preview' => 'Ko‘rib chiqish',
 'showpreview' => 'Ko‘rib chiqish',
-'showlivepreview' => "Tezkor ko'rib chiqish",
+'showlivepreview' => 'Tezkor koʻrib chiqish',
 'showdiff' => 'O‘zgarishlarni ko‘rsatish',
 'anoneditwarning' => "'''Diqqat:''' Siz tizimga kirmagansiz. Ushbu sahifa tarixida Sizning IP manzilingiz yozib qolinadi.",
 'missingcommenttext' => 'Iltimos sharh qoldiring.',
-'summary-preview' => "Tavsif shunday bo'ladi:",
-'subject-preview' => "Sarlavha shunday bo'ladi:",
+'summary-preview' => 'Tavsif bunday koʻrinishda boʻladi:',
+'subject-preview' => 'Sarlavha bunday koʻrinishda boʻladi:',
 'blockedtitle' => 'Foydalanuvchi chetlashtirildi',
 'blockedtext' => "'''Siz (foydalanuvchi nomingiz yoki IP manzilingiz) tahrir qilishdan chetlashtirildingiz.'''
 
@@ -570,14 +596,13 @@ Siz $1 yoki boshqa [[{{MediaWiki:Grouppage-sysop}}|administrator]] bilan bogʻla
 Siz «foydalanuvchiga maktub» xizmatidan foydalana olmaysiz, agarda: a) shaxsiy moslamalaringizda haqiqiy e-pochta manzilingiz koʻrsatilmagan yoki tasdiqlanmagan boʻlsa, b) chetlatish shartlarida bu xizmat toʻsilgan boʻlsa.
 Sizning hozirgi IP manzilingiz - $3, chetlashtirish raqamingiz - #$5. Arizaga bularni ilova qilishingiz mumkin.",
 'blockednoreason' => "sabab ko'rsatilmadi",
-'whitelistedittext' => "Siz sahifalarni o'zgartirish uchun $1.",
-'nosuchsectiontitle' => "Bo'limni topishning iloji yo'q",
-'nosuchsectiontext' => "Siz mavjud bo'lmagan bo'limni sharhlamoqchi bo'ldingiz.
-Siz sharhlamoqchi bo'lgan bo'lim o'chirilgan yoki boshqa sarlavhaga jildirilgan bo'lishi mumkin.",
+'whitelistedittext' => 'Siz sahifalarni oʻzgartirish uchun $1.',
+'nosuchsectiontitle' => 'Boʻlimni topishni iloji yoʻq',
+'nosuchsectiontext' => 'Siz mavjud boʻlmagan boʻlimni tahrirlamoqchi boʻldingiz. Ushbu boʻlim Siz bu sahifani koʻrayotgan mahalda koʻchirilgan yoki yoʻqotilgan boʻlishi mumkin.',
 'loginreqtitle' => 'Shaxsiyatni aniqlash talab etiladi',
 'loginreqlink' => 'Kirish',
-'loginreqpagetext' => "Boshqa sahifalarni ko'rish uchun $1",
-'accmailtitle' => "Mahfiy so'z jo'natildi.",
+'loginreqpagetext' => 'Boshqa sahifalarni koʻrish uchun $1',
+'accmailtitle' => 'Maxfiy soʻz joʻnatildi',
 'newarticle' => '(Yangi)',
 'newarticletext' => "Bu sahifa hali mavjud emas.
 Sahifani yaratish uchun quyida matn kiritishingiz mumkin (qoʻshimcha axborot uchun [[{{MediaWiki:Helppage}}|yordam sahifasini]] koʻring).
@@ -594,11 +619,13 @@ Agar siz anonim ishtirokchi boʻlsangiz va siz oʻzingizga yoʻnaltirilmagan xab
 * '''Opera:''' ''Asboblar → Moslamalar'' menyusidan keshni tozalashni tanlang",
 'updated' => '(Yangilandi)',
 'note' => "'''Izoh:'''",
-'previewnote' => "'''Bu shunchaki ko‘rib chiqish. O‘zgartirishlar hali saqlangani yo‘q!'''",
+'previewnote' => "'''Bu shunchaki koʻrib chiqish.''' Oʻzgartirishlar hali saqlangani yoʻq!",
 'continue-editing' => 'tahrirlashni davom ettirish',
 'editing' => '$1 tahrirlanmoqda',
 'creating' => '«$1» sahifasini yaratish',
-'editingsection' => '$1 (boʻlim) tahrirlanmoqda',
+'editingsection' => '$1 tahrirlanmoqda (boʻlim)',
+'editingcomment' => '$1 tahrirlanmoqda (yangi mavzu)',
+'editconflict' => 'Tahrirlash toʻqnashuvi: $1',
 'copyrightwarning' => "Iltimos, {{SITENAME}}ga yuklangan har qanday axborot $2 ostida tarqatilishiga diqqat qiling (batafsil ma'lumot uchun $1ni ko'ring).
 Agar yozganlaringiz keyinchalik tahrir qilinishi va qayta tarqatilishiga rozi bo'lmasangiz, u holda bu yerga yozmang.<br />
 Siz shuningdek bu yozganlaringiz sizniki yoki erkin litsenziya ostida ekanligini va'da qilmoqdasiz.
@@ -612,11 +639,11 @@ Bundan tashqari, siz ushbu ma'lumotlarni o'zingiz yozgan bo'lishingiz yoki ruxsa
 'template-protected' => '(himoyalangan)',
 'template-semiprotected' => '(yarim-himoyalangan)',
 'hiddencategories' => 'Ushbu sahifa {{PLURAL:$1|1 yashirin turkum|$1 yashirin turkumlar}}ga kiradi:',
-'nocreatetext' => 'Ushbu saytda yangi sahifalar yaratish taqiqlagan.
+'nocreatetext' => 'Ushbu saytda yangi sahifalar yaratish taʼqiqlagan.
 Ortga qaytib, mavjud sahifani tahrirlashingiz yoki [[Special:UserLogin|tizimga kirishingiz]] mumkin.',
-'nocreate-loggedin' => "Sizda yangi sahifalar yaratishga ruxsat yo'q.",
-'sectioneditnotsupported-title' => "Bo'limlarni tahrirlash imkoniyati yo'q",
-'sectioneditnotsupported-text' => "Ushbu sahifada bo'limlarni tahrirlash imkoniyati yo'q.",
+'nocreate-loggedin' => 'Sizda yangi sahifalar yaratishga ruxsat yoʻq.',
+'sectioneditnotsupported-title' => 'Boʻlimlarni tahrirlash imkoniyati yoʻq',
+'sectioneditnotsupported-text' => 'Ushbu sahifada boʻlimlarni tahrirlash imkoniyati yoʻq.',
 'permissionserrors' => 'Ruxsat huquqida xato',
 'permissionserrorstext-withaction' => "Sizda quyidagi {{PLURAL:$1|sabab|sabablar}}ga koʻra '''$2'''ga ruxsat mavjud emas:",
 'recreate-moveddeleted-warn' => "'''Diqqat: Siz avval yoʻqotilgan sahifani yana yaratmoqchisiz.'''
@@ -625,8 +652,9 @@ Bu sahifani yaratishda davom etishdan avval uning nega avval yoʻqotilgani bilan
 Qulaylik uchun quyida yoʻqotilish qaydlari keltirilgan:",
 'moveddeleted-notice' => 'Bu sahifa oʻchirilgan.
 Maʼlumot uchun quyida oʻchirish va qayta nomlash jurnallaridan mos yozuvlar keltirilgan.',
-'log-fulllog' => "Qaydlarni to'liq ko'rish",
-'edit-conflict' => "Tashrirlash to'qnashuvi.",
+'log-fulllog' => 'Qaydlarni toʻliq koʻrish',
+'edit-conflict' => 'Tahrirlash toʻqnashuvi.',
+'postedit-confirmation' => 'Tahriringiz saqlandi.',
 'defaultmessagetext' => "Boshlang'ich matn",
 
 # Parser/template warnings
@@ -678,7 +706,7 @@ Bu yerda: (joriy) = hozirgi koʻrinish bilan farq,
 'revdelete-hide-text' => 'Sahifaning ushbu versiyasi matnini yashirish',
 'revdelete-radio-same' => "(o'zgartirilmasin)",
 'revdelete-radio-set' => 'Ha',
-'revdelete-radio-unset' => "Yo'q",
+'revdelete-radio-unset' => 'Yoʻq',
 'revdelete-log' => 'Sabab:',
 'revdel-restore' => "Ko'rinuvchanlikni o'zgartirish",
 'revdel-restore-deleted' => "o'chirilgan versiyalar",
@@ -692,7 +720,7 @@ Bu yerda: (joriy) = hozirgi koʻrinish bilan farq,
 'mergehistory-from' => 'Manba sahifa:',
 'mergehistory-into' => "Mo'ljal sahifa:",
 'mergehistory-list' => 'Birlashtiriladigan tahrirlar tarixi',
-'mergehistory-go' => "Birlashtiriladigan tahrirlarni ko'rsatish",
+'mergehistory-go' => 'Birlashtiriladigan tahrirlarni koʻrsatish',
 'mergehistory-submit' => 'Tahrirlarni birlashtirish',
 'mergehistory-reason' => 'Sabab:',
 
@@ -708,9 +736,9 @@ Bu yerda: (joriy) = hozirgi koʻrinish bilan farq,
 'difference-multipage' => '(Sahifalar orasidagi farq)',
 'lineno' => 'Qator $1:',
 'compareselectedversions' => 'Tanlangan versiyalarni solishtir',
-'showhideselectedversions' => "Tanlangan versiyalarni ko'rsatish/yashirish",
+'showhideselectedversions' => 'Tanlangan versiyalarni koʻrsatish/yashirish',
 'editundo' => 'qaytarish',
-'diff-multi' => "({{PLURAL:$2|$2 ta foydalanuvching}} {{PLURAL:$1|$1 ta oraliq versiyasi|$1 ta oraliq versiyalari}} ko'rsatilmadi)",
+'diff-multi' => '({{PLURAL:$2|Bitta foydalanuvchining|$2 ta foydalanuvchining}} {{PLURAL:$1|bitta oraliq versiyasi|$1 ta oraliq versiyalari}} koʻrsatilmadi)',
 
 # Search results
 'searchresults' => 'Qidiruv natijalari',
@@ -727,13 +755,12 @@ Bu yerda: (joriy) = hozirgi koʻrinish bilan farq,
 'nextn' => 'keyingi {{PLURAL:$1|$1}}',
 'prevn-title' => 'Avvalgi $1 {{PLURAL:$1|natija|natijalar}}',
 'nextn-title' => 'Keyingi $1 {{PLURAL:$1|natija|natijalar}}',
-'shown-title' => 'Sahifada $1 ta {{PLURAL:$1|natija}} koʻrsatish',
+'shown-title' => 'Sahifada $1 ta natija koʻrsatish',
 'viewprevnext' => 'Koʻrish ($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-legend' => 'Qidiruv shartlari',
 'searchmenu-exists' => "'''Ushbu vikida \"[[:\$1]]\" nomli sahifa mavjud.'''",
 'searchmenu-new' => "'''Ushbu vikida \"[[:\$1]]\" sahifasini yarat!'''",
-'searchhelp-url' => 'Help:Mundarija',
-'searchmenu-prefix' => "[[Special:PrefixIndex/$1|Ushbu prefiks mavjud bo'lgan sahifalarni ko'rsatish]]",
+'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Shu prefiksli sahifalarni koʻrsatish]]',
 'searchprofile-articles' => 'Asosiy sahifalar',
 'searchprofile-project' => 'Yordam va loyiha sahifalari',
 'searchprofile-images' => 'Multimedia',
@@ -742,7 +769,7 @@ Bu yerda: (joriy) = hozirgi koʻrinish bilan farq,
 'searchprofile-articles-tooltip' => '$1da qidirish',
 'searchprofile-project-tooltip' => '$1da qidirish',
 'searchprofile-images-tooltip' => 'Fayllarni qidir',
-'searchprofile-everything-tooltip' => "Barcha sahifalardan (munozara sahifalarini qo'shgan holda) qidirish",
+'searchprofile-everything-tooltip' => 'Barcha sahifalardan qidirish (munozara sahifalarinidan ham)',
 'searchprofile-advanced-tooltip' => 'Belgilangan nomfazolardan qidirish',
 'search-result-size' => '$1 ({{PLURAL:$2|1 ta soʻz|$2 ta soʻz}})',
 'search-result-category-size' => "$1 {{PLURAL:$1|a'zo|a'zolar}} ($2 {{PLURAL:$2|ostturkum|ostturkumlar}}, $3 {{PLURAL:$3|fayl|fayllar}}).",
@@ -758,7 +785,7 @@ Bu yerda: (joriy) = hozirgi koʻrinish bilan farq,
 'searcheverything-enable' => 'Barcha nomfazolarda qidir',
 'searchrelated' => 'bogʻlangan',
 'searchall' => 'barchasi',
-'showingresults' => "Quyida №'''$2'''dan boshlab '''$1''' ta {{PLURAL:$1|natija}} ko'rsatildi.",
+'showingresults' => "Quyida №'''$2'''dan boshlab {{PLURAL:$1|'''bitta''' natija|'''$1''' ta natija}} koʻrsatilgan.",
 'showingresultsnum' => "Quyida №'''$2'''dan boshlab '''$1''' ta {{PLURAL:$1|natija}} ko'rsatildi.",
 'showingresultsheader' => "$4 uchun {{PLURAL:$5|'''$3'''dan '''$1''' natija|'''$3'''dan '''$1 - $2''' natijalar}}",
 'search-nonefound' => 'Talabga javob beradigan natija topilmadi.',
@@ -787,7 +814,7 @@ Bu yerda: (joriy) = hozirgi koʻrinish bilan farq,
 'prefs-user-pages' => 'Foydalanuvchi sahifalari',
 'prefs-personal' => 'Shaxsiy ma’lumotlar',
 'prefs-rc' => 'Yangi o‘zgartirishlar',
-'prefs-watchlist' => "Kuzatuv ro'yxati",
+'prefs-watchlist' => 'Kuzatuv roʻyxati',
 'prefs-watchlist-days' => 'Kunlar soni:',
 'prefs-watchlist-days-max' => 'Eng ko‘pi bilan $1 {{PLURAL:$1|kun}}',
 'prefs-watchlist-edits-max' => 'Eng katta son: 1000',
@@ -800,13 +827,12 @@ Bu yerda: (joriy) = hozirgi koʻrinish bilan farq,
 'resetprefs' => 'Bekor qilish',
 'restoreprefs' => 'Barcha moslamalarni dastlabki holatiga qaytarish',
 'prefs-editing' => 'Tahrirlash',
-'prefs-edit-boxsize' => 'Tahrir oynasining oʻlchami',
 'rows' => 'Qatorlar soni:',
 'columns' => 'Ustunlar soni:',
 'searchresultshead' => 'Qidiruv',
 'resultsperpage' => 'Sahifaga topilgan yozuvlar miqdori',
 'stub-threshold' => '<a href="#" class="stub">Chala maqolalarga ishorat</a> keltirish uchun pastki chegara (baytlarda):',
-'stub-threshold-disabled' => "O'chirib qo'yilgan",
+'stub-threshold-disabled' => 'Oʻchirib qoʻyilgan',
 'recentchangesdays' => 'Necha kunlik tahrirlar koʻrsatiladi:',
 'recentchangesdays-max' => 'Eng koʻpi — $1 kun',
 'recentchangescount' => 'Sukut boʻyicha koʻrsatiladigan tahrirlar soni:',
@@ -839,7 +865,6 @@ Bu yerda: (joriy) = hozirgi koʻrinish bilan farq,
 'prefs-custom-js' => 'Shaxsiy JavaScript',
 'prefs-common-css-js' => 'Umumiy CSS/JavaScript (barcha tashqi koʻrinishlar uchun):',
 'prefs-emailconfirm-label' => 'Elektron pochta manzilini tasdiqlash:',
-'prefs-textboxsize' => 'Tahrir oynasining oʻlchami',
 'youremail' => 'E-mail:',
 'username' => 'Foydalanuvchi nomi',
 'uid' => 'Identifikator:',
@@ -858,8 +883,8 @@ Bu yerda: (joriy) = hozirgi koʻrinish bilan farq,
 'prefs-help-gender' => 'Koʻrsatilishi majburiy emas: taʼminot xizmatining foydalanuvchi jinsiga qarab yuboradigan ayrim xabarlarida foydalaniladi.
 Bu maʼlumot hammaga koʻrsatiladi.',
 'email' => 'E-mail:',
-'prefs-help-realname' => "Haqiqiy ism (ixtiyoriy maydon).
-Agar siz uni ko'rsatsangiz, undan sahifa tahriri kim tomonidan kiritilganligini ko'rsatish uchun foydalaniladi.",
+'prefs-help-realname' => 'Haqiqiy ism (majburiy emas).
+Agar keltirsangiz, undan sahifa kim tomonidan tahrirlanganini koʻrsatish uchun foydalaniladi.',
 'prefs-help-email' => 'Elektron pochta manzilini koʻrsatish majburiy emas, lekin u siz maxfiy soʻzni unutib qoʻysangiz kerak boʻladi.',
 'prefs-help-email-others' => 'Shuningdek, u boshqa foydalanuvchilarga Siz bilan shaxsiy sahifangiz yoki munozara sahifangizdagi havola orqali bogʻlanish imkonini beradi. Bunda Siz bilan bogʻlanmoqchi boʻlgan foydalanuvchiga pochta manzilingiz koʻrsatilmaydi.',
 'prefs-help-email-required' => 'E-mail manzilni koʻrsatish shart emas',
@@ -879,6 +904,7 @@ Agar siz uni ko'rsatsangiz, undan sahifa tahriri kim tomonidan kiritilganligini
 'prefs-diffs' => 'Versiyalar farqi',
 
 # User rights
+'userrights-user-editname' => 'Foydalanuvchi nomingizni kiriting:',
 'editusergroup' => 'Foydalanuvchi guruxlarni taxrirlash',
 'userrights-groupsmember' => 'Aʼzolik:',
 'userrights-groupsmember-auto' => "Noaniq a'zo",
@@ -928,7 +954,7 @@ Agar siz uni ko'rsatsangiz, undan sahifa tahriri kim tomonidan kiritilganligini
 'action-sendemail' => "elektron xatlar jo'natish",
 
 # Recent changes
-'nchanges' => "$1 {{PLURAL:$1|o'zgarish|o'zgarishlar}}",
+'nchanges' => '$1 {{PLURAL:$1|oʻzgarish|oʻzgarishlar}}',
 'recentchanges' => 'Yangi oʻzgarishlar',
 'recentchanges-legend' => 'Yangi oʻzgarishlar moslamalari',
 'recentchanges-summary' => 'Bu sahifada siz oxirgi oʻzgarishlarni koʻrishingiz mumkin',
@@ -937,19 +963,19 @@ Agar siz uni ko'rsatsangiz, undan sahifa tahriri kim tomonidan kiritilganligini
 'recentchanges-label-minor' => 'Bu kichik tahrir',
 'recentchanges-label-bot' => 'Bu tahrirni bot bajardi',
 'recentchanges-label-unpatrolled' => 'Bu tahrir hali tekshirilmagan',
-'rcnote' => "Quyida $4 soat $5 ga koʻra oxirgi '''$2''' kun davomida sodir boʻlgan {{PLURAL:$1|'''1''' oʻzgarish|'''$1''' oʻzgarishlar}} koʻrsatilgan.",
+'rcnote' => "Quyida $4, $5 koʻra oxirgi '''$2''' kun ichida sodir boʻlgan {{PLURAL:$1|'''bitta''' oʻzgarish|'''$1''' ta oʻzgarish}} koʻrsatilgan.",
 'rcnotefrom' => "Quyida <strong>$2</strong> dan (<strong>$1</strong> gacha) bo'lgan o'zgarishlar keltirilgan.",
 'rclistfrom' => '$1 dan boshlab yangi oʻzgarishlarni koʻrsat.',
 'rcshowhideminor' => 'Kichik tahrirlarni $1',
-'rcshowhidebots' => '$1 ta bot',
-'rcshowhideliu' => 'Ro‘yxatdan o‘tgan foydalanuvchilar: $1 ta',
-'rcshowhideanons' => 'Anonim foydalanuvchilar: $1 ta',
+'rcshowhidebots' => 'Botlarni $1',
+'rcshowhideliu' => 'Roʻyxatdan oʻtgan foydalanuvchilarni $1',
+'rcshowhideanons' => 'Anonim foydalanuvchilarni $1',
 'rcshowhidepatr' => 'Tekshirilgan tahrirlarni $1',
 'rcshowhidemine' => 'Oʻz tahrirlarimni $1',
-'rclinks' => 'Oxirgi $2 kun ichida sodir boʻlgan $1 oʻzgarishlar koʻrsatildi.<br />$3',
+'rclinks' => 'Oxirgi $2 kun ichida sodir boʻlgan $1 ta oʻzgarish koʻrsatildi<br />$3',
 'diff' => 'farq',
 'hist' => 'tarix',
-'hide' => 'Yashir',
+'hide' => 'yashir',
 'show' => 'Koʻrsat',
 'minoreditletter' => 'k',
 'newpageletter' => 'Y',
@@ -964,10 +990,9 @@ Agar siz uni ko'rsatsangiz, undan sahifa tahriri kim tomonidan kiritilganligini
 'recentchangeslinked-feed' => 'Bogʻliq oʻzgarishlar',
 'recentchangeslinked-toolbox' => 'Bogʻliq oʻzgarishlar',
 'recentchangeslinked-title' => '"$1"ga aloqador oʻzgarishlar',
-'recentchangeslinked-noresult' => 'Berilgan davrda bogʻlangan sahifalarda oʻzgarishlar boʻlmagan.',
 'recentchangeslinked-summary' => "Ushbu maxsus sahifa unga bogʻlangan sahifalardagi soʻnggi oʻzgarishlarni koʻrsatadi. [[Special:Watchlist|Kuzatuv roʻyxatingizdagi]] sahifalar '''qalin''' qilib koʻrsatilgan.",
 'recentchangeslinked-page' => 'Sahifa nomi:',
-'recentchangeslinked-to' => "Teskarisiga, ko'rsatilgan sahifaga yo'naltirilgan sahifalardagi o'zgarishlarni ko'rish",
+'recentchangeslinked-to' => 'Koʻrsatilgan sahifaga bogʻlangan sahifalardagi oʻzgarishlarni koʻrish',
 
 # Upload
 'upload' => 'Fayl yuklash',
@@ -1009,7 +1034,7 @@ Agar siz uni ko'rsatsangiz, undan sahifa tahriri kim tomonidan kiritilganligini
 'filehist-datetime' => 'Sana/Vaqt',
 'filehist-thumb' => 'Miniatura',
 'filehist-thumbtext' => '$1 dagi versiya uchun tasvir',
-'filehist-nothumb' => "Miniatura yo'q",
+'filehist-nothumb' => 'Miniatyurasi yoʻq',
 'filehist-user' => 'Foydalanuvchi',
 'filehist-dimensions' => 'Oʻlchamlari',
 'filehist-filesize' => 'Fayl hajmi',
@@ -1109,7 +1134,7 @@ Uning [$2 fayl tavsifi sahifasidan] olingan tavsifi quyida keltirilgan.',
 'allpages-hide-redirects' => 'Yoʻnaltirishlarni yashirish',
 
 # SpecialCachedPage
-'cachedspecial-refresh-now' => "Oxirgi versiyasini ko'rish",
+'cachedspecial-refresh-now' => 'Oxirgi versiyasini koʻrish',
 
 # Special:Categories
 'categories' => 'Turkumlar',
@@ -1185,12 +1210,10 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'watchlist' => 'Kuzatuv roʻyxatim',
 'mywatchlist' => 'Kuzatuv roʻyxatim',
 'watchlistfor2' => '$1 uchun $2',
-'nowatchlist' => "Kuzatuv ro'yxatingizda hech narsa yo'q.",
+'nowatchlist' => 'Kuzatuv roʻyxatingizda hech nima yoʻq.',
 'watchnologin' => "Siz tizimda o'zingizni tanishtirmadingiz",
 'addwatch' => "Kuzatuv ro'yxatiga qo'shish",
-'addedwatchtext' => "\"[[:\$1]]\" sahifasi sizning [[Special:Watchlist|kuzatuv ro'yxatingizga]] qo'shildi. Bu sahifada va unga mos munozara sahifasida bo'ladigan kelajakdagi o'zgarishlar bu yerda ro'yxatga olinadi, hamda bu sahifa topish qulay bo'lishi uchun [[Special:RecentChanges|yangi o'zgarishlar ro'yxati]]da '''qalin''' harflar bilan ko'rsatiladi.
-
-Agar siz bu sahifani kuzatuv ro'yxatingizdan o'chirmoqchi bo'lsangiz \"Kuzatmaslik\" yozuvini bosing.",
+'addedwatchtext' => '"[[:$1]]" sahifasi sizning [[Special:Watchlist|kuzatuv roʻyxatingizga]] qoʻshildi. Bu sahifada va uning munozara sahifasida boʻladigan oʻzgarishlar u yerda koʻrsatiladi.',
 'removewatch' => "Kuzatuv ro'yxatidan o'chirish",
 'removedwatchtext' => '"[[:$1]]" sahifasi [[Special:Watchlist|kuzatuv roʻyxatingizdan]] oʻchirildi.',
 'watch' => 'Kuzatish',
@@ -1198,17 +1221,17 @@ Agar siz bu sahifani kuzatuv ro'yxatingizdan o'chirmoqchi bo'lsangiz \"Kuzatmasl
 'unwatch' => 'Kuzatmaslik',
 'unwatchthispage' => "Kuzatuvni to'xtatish",
 'notanarticle' => 'Maqola emas',
-'watchlist-details' => "Sizning kuzatuv ro'yxatingizda $1 {{PLURAL:$1|ta sahifa}} (munozara sahifalarini hisobga olmaganda)",
+'watchlist-details' => 'Sizning kuzatuv roʻyxatingizda hozirda {{PLURAL:$1|bitta sahifa|$1ta sahifa}} mavjud (munozara sahifalarini hisobga olmaganda).',
 'wlnote' => "Below {{PLURAL:$1|is the last change|are the last '''$1''' changes}} in the last {{PLURAL:$2|hour|'''$2''' hours}}, as of $3, $4.",
 'wlshowlast' => 'Oxirgi $1 soatdagi $2 kundagi tahrirlarni ko‘rsatish. $3 tahrirlarni ko‘rsatish',
-'watchlist-options' => "Kuzatuv ro'yxati moslamalari",
+'watchlist-options' => 'Kuzatuv roʻyxati moslamalari',
 
 # Displayed when you click the "watch" button and it is in the process of watching
 'watching' => 'Kuzatish...',
 'unwatching' => "Kuzatuv ro'yxatidan o'chirish...",
 
 'enotif_mailer' => "{{SITENAME}} Pochta orqali e'lon qilish xizmati",
-'enotif_reset' => "Hamma sahifalarni ko'rib chiqilgan deb belgilash",
+'enotif_reset' => 'Hamma sahifalarni koʻrib chiqilgan deb belgilash',
 'enotif_impersonal_salutation' => '{{SITENAME}} ishtirokchisi',
 'enotif_subject_deleted' => '{{SITENAME}} loyihasining $1 nomli sahifasi foydalanuvchi {{gender:$2|$2}} tomonidan o‘chirildi',
 'enotif_subject_created' => '{{SITENAME}} loyihasining $1 nomli sahifasi foydalanuvchi {{gender:$2|$2}} tomonidan yaratildi',
@@ -1220,8 +1243,8 @@ Agar siz bu sahifani kuzatuv ro'yxatingizdan o'chirmoqchi bo'lsangiz \"Kuzatmasl
 'enotif_body_intro_moved' => '{{SITENAME}} loyihasining $1 nomli sahifasi $PAGEEDITDATEda foydalanuvchi {{gender:$2|$2}} tomonidan qayta nomlandi, joriy variantini ko‘rish uchun $3 ga qarang.',
 'enotif_body_intro_restored' => '{{SITENAME}} loyihasining $1 nomli sahifasi $PAGEEDITDATEda foydalanuvchi {{gender:$2|$2}} tomonidan tiklandi, joriy variantini ko‘rish uchun $3 ga qarang.',
 'enotif_body_intro_changed' => '{{SITENAME}} loyihasining $1 nomli sahifasi $PAGEEDITDATEda foydalanuvchi {{gender:$2|$2}} tomonidan o‘zgartirildi, joriy variantini ko‘rish uchun $3 ga qarang.',
-'enotif_lastvisited' => "Oxirgi tashrifingizdan buyon sodir bo'lgan barcha o'zgarishlarni ko'rish uchun $1 ga qarang.",
-'enotif_lastdiff' => "O'zgarishlar bilan tanishish uchun $1 ga qarang.",
+'enotif_lastvisited' => 'Oxirgi tashrifingizdan keyin sodir boʻlgan barcha oʻzgarishlarni koʻrish uchun $1 ga qarang.',
+'enotif_lastdiff' => 'Oʻzgarishlar bilan tanishish uchun $1 ga qarang.',
 'enotif_anon_editor' => 'anonim foydalanuvchi $1',
 'enotif_body' => 'Hurmatli $WATCHINGUSERNAME,
 
@@ -1276,7 +1299,7 @@ Yaqinda sodir etilgan yoʻqotishlar uchun $2ni koʻring.',
 'rollback' => 'Oʻzgarishlarni eski holiga keltirish',
 'rollback_short' => 'Eski holiga keltirish',
 'rollbacklink' => 'eski holiga keltirish',
-'rollbacklinkcount' => '$1 {{PLURAL:$1| ta tahrir}}ni eski holiga keltirish',
+'rollbacklinkcount' => '$1 ta tahrirni ortga qaytarish',
 'rollbacklinkcount-morethan' => '$1 {{PLURAL:$1| tadan koʻp tahrir}}ni eski holiga keltirish',
 'rollbackfailed' => 'Eski holiga keltirishda xatolik',
 'revertpage' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|munozara]]) tahrirlari [[User:$1|$1]] versiyasiga qaytarildi',
@@ -1321,19 +1344,19 @@ Yaqinda sodir etilgan yoʻqotishlar uchun $2ni koʻring.',
 'restriction-level-all' => 'barcha darajalar',
 
 # Undelete
-'undelete' => "O'chirilgan sahifalarni ko'rish",
-'undeletepage' => "O'chirilgan sahifalarni ko'rish va tiklash",
-'viewdeletedpage' => "O'chirilgan sahifalarni ko'rish",
+'undelete' => 'Oʻchirilgan sahifalarni koʻrish',
+'undeletepage' => 'Oʻchirilgan sahifalarni koʻrish va tiklash',
+'viewdeletedpage' => 'Oʻchirilgan sahifalarni koʻrish',
 'undelete-nodiff' => 'Oldingi versiya topilmadi.',
 'undeletebtn' => 'Tiklash',
 'undeletelink' => 'ko‘rib chiqish/tiklash',
-'undeleteviewlink' => "ko'rib chiqish",
+'undeleteviewlink' => 'koʻrib chiqish',
 'undeletereset' => 'Tozalash',
 'undeleteinvert' => 'Tanlash tartibini almashtirish',
 'undeletecomment' => 'Sabab:',
 'undelete-search-title' => "O'chirilgan sahifalarni qidirish",
 'undelete-search-box' => "O'chirilgan sahifalarni qidirish",
-'undelete-search-prefix' => "Bundan boshlangan sahifalarni ko'rsatish:",
+'undelete-search-prefix' => 'Bundan boshlangan sahifalarni koʻrsatish:',
 'undelete-search-submit' => 'Qidirish',
 'undelete-show-file-submit' => 'Ha',
 
@@ -1349,7 +1372,7 @@ Yaqinda sodir etilgan yoʻqotishlar uchun $2ni koʻring.',
 'mycontris' => 'Hissam',
 'contribsub2' => '$1 uchun ($2)',
 'nocontribs' => 'Belgilangan shartlarga muvofiq oʻzgarishlar topilmadi',
-'uctop' => '(oxirgi)',
+'uctop' => '(joriy)',
 'month' => 'Oydan (va avvalroq)',
 'year' => 'Yildan (va avvalroq)',
 
@@ -1452,7 +1475,7 @@ Yaqinda sodir etilgan yoʻqotishlar uchun $2ni koʻring.',
 'movearticle' => 'Sahifani qayta nomlash',
 'movenologin' => 'Siz tizimga kirmagansiz',
 'newtitle' => 'Yangi nom:',
-'move-watch' => 'Ushbu sahifani kuzatuv roʻyxatiga qoʻshish',
+'move-watch' => 'Ushbu sahifani kuzatuv roʻyxatingizga qoʻshish',
 'movepagebtn' => 'Sahifani koʻchirish',
 'pagemovedsub' => 'Sahifa qayta nomlandi',
 'movepage-moved' => '\'\'\'"$1" nomli sahifa "$2" nomli sahifaga koʻchirildi\'\'\'',
@@ -1461,7 +1484,7 @@ Yaqinda sodir etilgan yoʻqotishlar uchun $2ni koʻring.',
 'movetalk' => 'Mos munozara sahifasini qayta nomlash',
 'movelogpage' => 'Koʻchirish qaydlari',
 'movesubpage' => '{{PLURAL:$1|Ostsahifa|Ostsahifalar}}',
-'movesubpagetext' => 'Ushbu sahifada $1 {{PLURAL:$1| ta ostsahifa}} mavjud.',
+'movesubpagetext' => 'Ushbu sahifaning $1 ta ostsahifasi bor.',
 'movenosubpage' => 'Bu sahifa ostsahifalarga ega emas.',
 'movereason' => 'Sabab:',
 'revertmove' => 'qaytarish',
@@ -1474,7 +1497,7 @@ Umumiy omborda [[:$1]] mavjud. Faylning bu nomga qayta nomlanishi faylning umumi
 'export' => 'Sahifalar eksporti',
 'export-submit' => 'Eksport',
 'export-addcattext' => "Shu turkumdan sahifalarni qo'shish:",
-'export-addcat' => "Qo'shish",
+'export-addcat' => 'Qoʻshish',
 'export-addnstext' => "Shu nomfazodan sahifalarni qo'shish:",
 'export-addns' => "Qo'shish",
 'export-download' => 'Fayl sifatida saqlash',
@@ -1504,7 +1527,7 @@ Umumiy omborda [[:$1]] mavjud. Faylning bu nomga qayta nomlanishi faylning umumi
 'tooltip-pt-mytalk' => 'Suhbat sahifangiz',
 'tooltip-pt-anontalk' => 'Bu ip manzildan amalga oshirilgan tahrirlar munozarasi',
 'tooltip-pt-preferences' => 'Moslamalaringiz',
-'tooltip-pt-watchlist' => "Siz kuzatib borayotgan sahifalar ro'yxati.",
+'tooltip-pt-watchlist' => 'Siz kuzatib borayotgan sahifalardagi oʻzgarishlar roʻyxati',
 'tooltip-pt-mycontris' => 'Hissalaringiz roʻyxati',
 'tooltip-pt-login' => 'Bu majburiyat mavjud bo‘lmasa-da, kirishingiz taklif qilinadi.',
 'tooltip-pt-anonlogin' => "Bu majburiyat bo'lmasada, kirishingiz taklif qilinadi.",
@@ -1519,8 +1542,8 @@ Umumiy omborda [[:$1]] mavjud. Faylning bu nomga qayta nomlanishi faylning umumi
 'tooltip-ca-delete' => 'Ushbu sahifani o‘chirish',
 'tooltip-ca-undelete' => "Bu sahifa o'chirilmasdan oldin qilingan tahrirlarni tiklash",
 'tooltip-ca-move' => 'Bu sahifani koʻchir',
-'tooltip-ca-watch' => "Bu sahifani kuzatuv ro'yxatingizga qo'shish",
-'tooltip-ca-unwatch' => "Bu sahifani kuzatuv ro'yxatingizga o'chirish",
+'tooltip-ca-watch' => 'Bu sahifani kuzatuv roʻyxatingizga qoʻshish',
+'tooltip-ca-unwatch' => 'Bu sahifani kuzatuv roʻyxatingizdan oʻchirish',
 'tooltip-search' => '{{SITENAME}}dan qidirish',
 'tooltip-search-go' => 'Xuddi shu nomli sahifa bor boʻlsa, uni och',
 'tooltip-search-fulltext' => 'Sahifalarda ushbu matnni izlash',
@@ -1532,11 +1555,11 @@ Umumiy omborda [[:$1]] mavjud. Faylning bu nomga qayta nomlanishi faylning umumi
 'tooltip-n-recentchanges' => 'Wikidagi eng so‘nggi o‘zgartirishlar ro‘yxati',
 'tooltip-n-randompage' => 'Tasodifiy sahifani yuklash',
 'tooltip-n-help' => 'O‘rganish uchun manzil',
-'tooltip-t-whatlinkshere' => "Bu sahifaga bog'langan sahifalar ro'yxati",
-'tooltip-t-recentchangeslinked' => "Bu sahifa bog'langan sahifalardagi yangi o'zgarishlar",
+'tooltip-t-whatlinkshere' => 'Ushbu sahifaga bogʻlangan sahifalar roʻyxati',
+'tooltip-t-recentchangeslinked' => 'Bu sahifaga bogʻlangan sahifalardagi yangi oʻzgarishlar',
 'tooltip-feed-rss' => "Bu sahifa uchun RSS ta'minot",
 'tooltip-feed-atom' => "Bu sahifa uchun Atom ta'minot",
-'tooltip-t-contributions' => "Bu foydalanuvchinig qo'shgan hissasini ko'rish",
+'tooltip-t-contributions' => 'Bu foydalanuvchinig qoʻshgan hissasini koʻrish',
 'tooltip-t-emailuser' => 'Ushbu foydalanuvchiga xat jo‘natish',
 'tooltip-t-upload' => 'Rasmlar yoki media fayllar yuklash',
 'tooltip-t-specialpages' => 'Maxsus sahifalar ro‘yxati',
@@ -1554,10 +1577,10 @@ Umumiy omborda [[:$1]] mavjud. Faylning bu nomga qayta nomlanishi faylning umumi
 'tooltip-ca-nstab-category' => 'Turkum sahifasini koʻrish',
 'tooltip-minoredit' => 'Kichik o‘zgartirish sifatida belgilash',
 'tooltip-save' => 'Oʻzgarishlarni saqlash',
-'tooltip-preview' => "O'zgarishlarni saqlash. Iltimos saqlashdan oldin uni ishlating!",
-'tooltip-diff' => "Matnga qanday o'zgarishlar kiritganligingizni ko'rish.",
-'tooltip-compareselectedversions' => "Bu sahifaning ikki tanlangan versiyalari o'rtasidagi farqni ko'rish.",
-'tooltip-watch' => 'Ushbu sahifani kuzatuv ro‘yxatingizga qo‘shish',
+'tooltip-preview' => 'Oʻzgarishlarni koʻrib chiqish; Iltimos, saqlashdan oldin undan foydalaning!',
+'tooltip-diff' => 'Matnga qanday oʻzgarishlar kiritganligingizni koʻrish.',
+'tooltip-compareselectedversions' => 'Bu sahifaning ikki tanlangan versiyalari orasidagi farqni koʻrish.',
+'tooltip-watch' => 'Ushbu sahifani kuzatuv roʻyxatingizga qoʻshish',
 'tooltip-recreate' => "Bu sahifani u o'chirilgan bo'lishiga qaramasdan qayta yaratish",
 'tooltip-summary' => 'Qisqa mazmun kiriting',
 
@@ -1668,7 +1691,7 @@ Umumiy omborda [[:$1]] mavjud. Faylning bu nomga qayta nomlanishi faylning umumi
 'size-bytes' => '$1 bayt',
 
 # Watchlist editing tools
-'watchlisttools-view' => "Muhim o'zgarishlarni ko'rish",
+'watchlisttools-view' => 'Mos oʻzgarishlar',
 'watchlisttools-edit' => 'Kuzatuv roʻyxatimni koʻrish/oʻzgartirish',
 'watchlisttools-raw' => 'Kuzatuv roʻyxatimni tahrirlash',
 
@@ -1692,7 +1715,9 @@ Umumiy omborda [[:$1]] mavjud. Faylning bu nomga qayta nomlanishi faylning umumi
 'htmlform-selectorother-other' => 'Boshqa',
 
 # New logging system
+'logentry-delete-delete' => '$1 $3 sahifasini {{GENDER:$2|oʻchirdi}}',
 'logentry-move-move' => '$1 $3 sahifasini $4ga koʻchirdi',
+'logentry-move-move-noredirect' => '$1 $3 sahifasini $4ga {{GENDER:$2|koʻchirdi}}',
 'logentry-patrol-patrol-auto' => '$1 $3 sahifasining $4 versiyasini avtomatik patrulladi',
 'logentry-newusers-newusers' => '$1 hisob yozuvi yaratildi',
 'logentry-newusers-create' => '$1 hisob yozuvi yaratildi',
index a910e2b..85665e2 100644 (file)
@@ -13,6 +13,8 @@
  * @author Frigotoni
  * @author GatoSelvadego
  * @author Kaganer
+ * @author Malafaya
+ * @author Nemo bis
  * @author Nick1915
  * @author Omnipaedista
  * @author OrbiliusMagister
@@ -124,6 +126,7 @@ $specialPageAliases = array(
        'Randomredirect'            => array( 'UnRimandoAOcio' ),
        'Recentchanges'             => array( 'ÙltimiCanbiamenti' ),
        'Recentchangeslinked'       => array( 'CanbiamentiLigà' ),
+       'Redirect'                  => array( 'Rimando' ),
        'Revisiondelete'            => array( 'ScancelaRevision' ),
        'Search'                    => array( 'Serca' ),
        'Shortpages'                => array( 'PaginePiCurte' ),
@@ -396,7 +399,6 @@ $1',
 'disclaimers' => 'Avertense',
 'disclaimerpage' => 'Project:Avertense xenerali',
 'edithelp' => 'Guida',
-'edithelppage' => 'Help:Modifega',
 'helppage' => 'Help:Ajuto',
 'mainpage' => 'Pajina prinsipałe',
 'mainpage-description' => 'Pajina prinsipałe',
@@ -708,11 +710,9 @@ Forse te ghè zà canbià la to password o te ghè domandà na password tenporan
 
 # Special:PasswordReset
 'passwordreset' => 'Rinposta ła password',
-'passwordreset-text' => 'Conpleta sto moduło par resetar la to password.',
 'passwordreset-legend' => 'Rinposta ła password',
 'passwordreset-disabled' => 'Ła rinpostasion deła password xe stà dixabiłità so sto projeto wiki.',
 'passwordreset-emaildisabled' => 'Le funsionalità de posta eletrònega le xe stà disabilità su sta wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1|| Inserisi una dełe porsion de dati cua soto}}',
 'passwordreset-username' => 'Nome utente:',
 'passwordreset-domain' => 'Dominio',
 'passwordreset-capture' => 'Vixuałixare el contenuto del mesajo de posta ełetronega?',
@@ -1182,7 +1182,6 @@ I detaji i pol esar catai inte'l [{{fullurl:{{#Special:Log}}/delete|page={{FULLP
 'searchmenu-legend' => 'Opzion de riserca',
 'searchmenu-exists' => 'Su sto sito ghe xe na pagina che se ciama "[[:$1]]"',
 'searchmenu-new' => "'''Crèa la pagina \"[[:\$1]]\" su sta wiki!'''",
-'searchhelp-url' => 'Help:Ajuto',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Varda tute le pagine che taca co ste létere]]',
 'searchprofile-articles' => 'Pagine de contenuti',
 'searchprofile-project' => 'Pagine de progeto e de ajuto',
@@ -1257,8 +1256,7 @@ Prova a métarghe \"all:\" davanti al testo che te serchi par vardar in tuti i n
 'saveprefs' => 'Salva le preferense',
 'resetprefs' => 'Reinposta le preferense',
 'restoreprefs' => 'Ripristina le inpostassion predefinìe',
-'prefs-editing' => 'Dimension de la casela de modifica',
-'prefs-edit-boxsize' => 'Dimension de la finestra de modìfega.',
+'prefs-editing' => 'Canbiamento',
 'rows' => 'Righe:',
 'columns' => 'Cołone:',
 'searchresultshead' => 'Riserca',
@@ -1269,7 +1267,6 @@ Prova a métarghe \"all:\" davanti al testo che te serchi par vardar in tuti i n
 'recentchangesdays-max' => '($1 {{PLURAL:$1|zorno|zorni}} massimo)',
 'recentchangescount' => 'Nùmaro de modìfeghe da far védar (valor predefinìo):',
 'prefs-help-recentchangescount' => 'Questo include i ùltimi canbiamenti, el stòrico de le pàxene e i registri.',
-'prefs-help-watchlist-token' => 'Conpilando sto canpo co na ciave segreta vegnarà generà un feed RSS par i propri osservati speciali. Chiunque conossa la ciave in sto canpo el podarà lèzar i osservati speciali, quindi se racomanda de inserir un valore sicuro. Qua ghe xe un valore generà casualmente che se pol doparar: $1',
 'savedprefs' => 'Le to preferense łe xè stà salvae.',
 'timezonelegend' => 'Fuso orario:',
 'localtime' => 'Ora locale:',
@@ -1300,7 +1297,6 @@ Prova a métarghe \"all:\" davanti al testo che te serchi par vardar in tuti i n
 'prefs-reset-intro' => 'Te pol doparar sta pagina par riportar le to preferense a quele predefinìe.
 Sta operassion no la pol èssar anulà.',
 'prefs-emailconfirm-label' => "Conferma de l'e-mail:",
-'prefs-textboxsize' => 'Dimension de la casèla de modifica',
 'youremail' => 'La to e-mail',
 'username' => '{{GENDER:$1|Nome utente}}:',
 'uid' => '{{GENDER:$1|ID utente}}:',
@@ -1510,7 +1506,7 @@ Co qualcheduni te scrivarà, nol vedarà mia el to indirizo.',
 'recentchanges-label-bot' => 'Sta modifica el la ga fata un bot',
 'recentchanges-label-unpatrolled' => 'Sta modifica no la xe stà gnancora verificà',
 'rcnote' => "Qua soto se vede {{PLURAL:$1|l'ultimo canbiamento|i ultimi '''$1''' canbiamenti}} {{PLURAL:$2|in te l'ultimo zorno|in tei ultimi '''$2''' zorni}}, fin a le $5 del $4.",
-'rcnotefrom' => " Qui di seguito sono elencate le modifiche da '''$2''' (fino a '''$1''').",
+'rcnotefrom' => "Qui di seguito sono elencate le modifiche da '''$2''' (fino a '''$1''').",
 'rclistfrom' => 'Fà védar i canbiamenti fati dal $1',
 'rcshowhideminor' => '$1 i canbiamenti picenini',
 'rcshowhidebots' => '$1 i bot',
@@ -1540,7 +1536,6 @@ Co qualcheduni te scrivarà, nol vedarà mia el to indirizo.',
 'recentchangeslinked-feed' => 'Canbiamenti ligà a sta pagina',
 'recentchangeslinked-toolbox' => 'Canbiamenti ligà a sta pagina',
 'recentchangeslinked-title' => 'Canbiamenti ligà a "$1"',
-'recentchangeslinked-noresult' => 'Nel periodo specificà no ghe xe stà nissuna modifica a le pagine colegà.',
 'recentchangeslinked-summary' => "Sti qua i xe i canbiamenti fati ultimamente a pagine pontà da na pagina indicà da ti (o a pagine de na categoria indicà da ti).
 Le pagine [[Special:Watchlist|tegnùe d'ocio]] le xe in '''grosso'''.",
 'recentchangeslinked-page' => 'Nome de la pagina:',
@@ -2168,7 +2163,6 @@ I futuri canbiamenti a sta pàjina e a ła so pàjina de discusion i vegnarà el
 'unwatchthispage' => "Desmeti de tegner d'ocio",
 'notanarticle' => 'Sta pagina no la xè na pagina de contenuto',
 'notvisiblerev' => 'La revision la xe stà scancelà',
-'watchnochange' => "Nissuna pagina tegnùa d'ocio la xe stà canbià nel periodo mostrà.",
 'watchlist-details' => "Te sì drio tegner d'ocio {{PLURAL:$1|una pagina (e la so pagina de discussion)|$1 pagine (e le so pagine de discussion)}}.",
 'wlheader-enotif' => 'Xe ativà la notifica via e-mail.',
 'wlheader-showupdated' => "Le pagine che xe stà canbià da la to ultima visita le xe segnà in '''grosso'''",
@@ -3635,7 +3629,6 @@ Nota che te pol anca [[Special:EditWatchlist|modificar la lista con l'interfacia
 'version-other' => 'Altro',
 'version-mediahandlers' => 'Gestori de contenuti multimediài',
 'version-hooks' => 'Hook',
-'version-extension-functions' => 'Funzion introdote da estensioni',
 'version-parser-extensiontags' => 'Tag riconossiùi dal parser introdoti da estensioni',
 'version-parser-function-hooks' => 'Hook par funzioni del parser',
 'version-hook-name' => "Nome de l'hook",
index 7ea0d96..f4bd02c 100644 (file)
@@ -327,7 +327,6 @@ $1",
 'disclaimers' => 'Pučind vastusenpidandaspäi',
 'disclaimerpage' => 'Project:Pučind vastusenpidandaspäi',
 'edithelp' => 'Abu redaktiruindas',
-'edithelppage' => 'Help:Abu redaktiruindas',
 'helppage' => 'Help:südäiolend',
 'mainpage' => 'Pälehtpol’',
 'mainpage-description' => 'Pälehtpol’',
@@ -927,7 +926,6 @@ Tö ei voigoi kävutada sidä.',
 'searchmenu-legend' => 'Ecindan järgendused',
 'searchmenu-exists' => "'''Neciš Wikiš om jo lehtpol' ningoižen nimenke: \"[[:\$1]]\"'''",
 'searchmenu-new' => "'''Säta lehtpol' \"[[:\$1]]\" neciš Wikiš!'''",
-'searchhelp-url' => 'Help:Südäiolend',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Ozutada kaik lehtpoled necen prefiksanke]]',
 'searchprofile-articles' => 'Südäimištlehtpoled',
 'searchprofile-project' => 'Abun da projektoiden lehtpoled',
@@ -1003,7 +1001,6 @@ Otkat sil'mnägubale üks-se, miše {{SITENAME}}-saitan sädäimišt voib olda v
 'resetprefs' => 'Čuta kaičematomad toižetused',
 'restoreprefs' => 'Endištada kaik augotižjärgendused',
 'prefs-editing' => 'Redaktiruind',
-'prefs-edit-boxsize' => 'Redaktiruindan iknan suruz.',
 'rows' => 'Rivid:',
 'columns' => 'Pachid:',
 'searchresultshead' => 'Ecind',
@@ -1044,7 +1041,6 @@ Otkat sil'mnägubale üks-se, miše {{SITENAME}}-saitan sädäimišt voib olda v
 'prefs-reset-intro' => "Tö sat kävutada nece lehtpol', miše pördutada teiden järgendused saitan ezijärgendusidennoks.
 Necidä tegendad ei sa toižetada.",
 'prefs-emailconfirm-label' => 'E-počtan vahvištand:',
-'prefs-textboxsize' => 'Redaktiruindan iknan suruz',
 'youremail' => 'E-počt:',
 'username' => 'Kävutajan nimi:',
 'uid' => 'Kävutajan nomer:',
@@ -1272,7 +1268,6 @@ Ku tö kirjutat sen, nece nimi kävutadas, miše ozutada lehtpolen toižetajad.'
 'recentchangeslinked-feed' => 'Sidotud toižetused',
 'recentchangeslinked-toolbox' => 'Sidotud toižetused',
 'recentchangeslinked-title' => '"$1"-lehtpol\'he sidotud toižetused',
-'recentchangeslinked-noresult' => 'Sidotud lehtpolil ei olend toižetusid anttud pordon aigan.',
 'recentchangeslinked-summary' => "Neciš nimikirjuteses om tantoižid toižetusid lehtpoliš, kudambid kosketab ozutadud lehtpol'.
 [[Special:Watchlist|Teiden kaclendnimikirjutesen]] lehtpoled oma erigoittud lihavoitud šriftal.",
 'recentchangeslinked-page' => 'Lehtpolen nimi:',
@@ -2929,7 +2924,6 @@ Kävutagat normaline ezikacund.',
 'version-other' => 'Toine',
 'version-mediahandlers' => 'Median radimed',
 'version-hooks' => 'Sabutajad',
-'version-extension-functions' => 'Ližoiden funkcijad',
 'version-parser-extensiontags' => 'Sintaksižen analizatoran ližoiden virgad',
 'version-parser-function-hooks' => 'Sintaksižen analizatoran funkcijoiden sabutajad',
 'version-hook-name' => 'Sabustajan nimi',
index 8469cc8..f667536 100644 (file)
@@ -343,8 +343,8 @@ $messages = array(
 'tog-watchmoves' => 'Tự động theo dõi các trang và tập tin tôi di chuyển',
 'tog-watchdeletion' => 'Tự động theo dõi các trang và tập tin tôi xóa',
 'tog-minordefault' => 'Mặc định đánh dấu tất cả sửa đổi của tôi là sửa đổi nhỏ',
-'tog-previewontop' => 'Hiển thị phần xem thử nằm trên hộp sửa đổi',
-'tog-previewonfirst' => 'Hiện xem thử tại lần sửa đầu tiên',
+'tog-previewontop' => 'Hiển thị phần xem trước nằm trên hộp sửa đổi',
+'tog-previewonfirst' => 'Hiện xem trước tại lần sửa đầu tiên',
 'tog-nocache' => 'Không lưu trang trong bộ nhớ đệm trình duyệt',
 'tog-enotifwatchlistpages' => 'Gửi thư cho tôi khi có thay đổi tại trang hoặc tập tin tôi theo dõi',
 'tog-enotifusertalkpages' => 'Gửi thư cho tôi khi có thay đổi tại trang thảo luận của tôi',
@@ -354,7 +354,7 @@ $messages = array(
 'tog-oldsig' => 'Chữ ký hiện tại:',
 'tog-fancysig' => 'Xem chữ ký là mã wiki (không có liên kết tự động)',
 'tog-showjumplinks' => 'Bật liên kết “bước tới” trên đầu trang cho bộ trình duyệt thuần văn bản hay âm thanh',
-'tog-uselivepreview' => 'Xem thử trực tiếp (JavaScript; chưa ổn định)',
+'tog-uselivepreview' => 'Xem trước trực tiếp (JavaScript; chưa ổn định)',
 'tog-forceeditsummary' => 'Nhắc tôi khi tôi quên tóm lược sửa đổi',
 'tog-watchlisthideown' => 'Ẩn các sửa đổi của tôi khỏi danh sách theo dõi',
 'tog-watchlisthidebots' => 'Ẩn các sửa đổi của robot khỏi danh sách theo dõi',
@@ -524,6 +524,7 @@ $messages = array(
 'create-this-page' => 'Tạo trang này',
 'delete' => 'Xóa',
 'deletethispage' => 'Xóa trang này',
+'undeletethispage' => 'Phục hồi trang này',
 'undelete_short' => 'Phục hồi {{PLURAL:$1|một sửa đổi|$1 sửa đổi}}',
 'viewdeleted_short' => 'Xem {{PLURAL:$1|sửa đổi|$1 sửa đổi}} đã xóa',
 'protect' => 'Khóa',
@@ -577,7 +578,6 @@ $1',
 'disclaimers' => 'Phủ nhận',
 'disclaimerpage' => 'Project:Phủ nhận chung',
 'edithelp' => 'Trợ giúp sửa đổi',
-'edithelppage' => 'Help:Sửa đổi',
 'helppage' => 'Help:Nội dung',
 'mainpage' => 'Trang Chính',
 'mainpage-description' => 'Trang Chính',
@@ -721,6 +721,10 @@ $2',
 'namespaceprotected' => "Bạn không có quyền sửa các trang trong không gian tên '''$1'''.",
 'customcssprotected' => 'Bạn không có quyền sửa đổi trang CSS này vì nó chứa các tùy chọn cá nhân của một thành viên khác.',
 'customjsprotected' => 'Bạn không có quyền sửa đổi trang JavaScript này vì nó chứa các tùy chọn cá nhân của một thành viên khác.',
+'mycustomcssprotected' => 'Bạn không có quyền sửa đổi trang CSS này.',
+'mycustomjsprotected' => 'Bạn không có quyền sửa đổi trang JavaScript này.',
+'myprivateinfoprotected' => 'Bạn không có quyền sửa đổi thông tin cá nhân của bạn.',
+'mypreferencesprotected' => 'Bạn không có quyền thay đổi tùy chọn của bạn.',
 'ns-specialprotected' => 'Không thể sửa chữa các trang trong không gian tên {{ns:special}}.',
 'titleprotected' => "Tựa đề này đã bị [[User:$1|$1]] khóa không cho tạo ra.
 Lý do được cung cấp là ''$2''.",
@@ -747,6 +751,7 @@ Hãy nhớ thay đổi [[Special:Preferences|tùy chọn cá nhân {{SITENAME}}]
 'yourname' => 'Tên người dùng:',
 'userlogin-yourname' => 'Tên đăng nhập',
 'userlogin-yourname-ph' => 'Nhập tên đăng nhập',
+'createacct-another-username-ph' => 'Nhập tên người dùng',
 'yourpassword' => 'Mật khẩu:',
 'userlogin-yourpassword' => 'Mật khẩu',
 'userlogin-yourpassword-ph' => 'Nhập mật khẩu',
@@ -781,9 +786,11 @@ Hãy nhớ thay đổi [[Special:Preferences|tùy chọn cá nhân {{SITENAME}}]
 'helplogin-url' => 'Help:Đăng nhập',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Trợ giúp đăng nhập]]',
 'createacct-join' => 'Nhập thông tin của bạn bên dưới.',
+'createacct-another-join' => 'Nhập thông tin của tài khoản mới dưới đây.',
 'createacct-emailrequired' => 'Địa chỉ thư điện tử',
 'createacct-emailoptional' => 'Địa chỉ thư điện tử (tùy chọn)',
 'createacct-email-ph' => 'Nhập địa chỉ thư điện tử của bạn',
+'createacct-another-email-ph' => 'Nhập địa chỉ thư điện tử',
 'createaccountmail' => 'Sử dụng mật khẩu ngẫu nhiên tạm và gửi nó cho địa chỉ thư điện tử được chỉ định ở dưới',
 'createacct-realname' => 'Tên thật (tùy chọn)',
 'createaccountreason' => 'Lý do:',
@@ -792,6 +799,7 @@ Hãy nhớ thay đổi [[Special:Preferences|tùy chọn cá nhân {{SITENAME}}]
 'createacct-captcha' => 'Kiểm tra an toàn',
 'createacct-imgcaptcha-ph' => 'Nhập dòng chữ bạn thấy bên dưới',
 'createacct-submit' => 'Tạo tài khoản',
+'createacct-another-submit' => 'Mở thêm tài khoản',
 'createacct-benefit-heading' => '{{SITENAME}} được xây dựng bởi những người như bạn.',
 'createacct-benefit-body1' => '{{PLURAL:$1}}lần sửa đổi',
 'createacct-benefit-body2' => '{{PLURAL:$1}}trang nội dung',
@@ -842,7 +850,7 @@ Hãy nhập một địa chỉ có định dạng đúng hoặc bỏ trống ô
 'cannotchangeemail' => 'Không có thể thay đổi địa chỉ thư điện tử của các tài khoản trên wiki này.',
 'emaildisabled' => 'Website này không thể gửi thư điện tử.',
 'accountcreated' => 'Mở tài khoản thành công',
-'accountcreatedtext' => 'Tài khoản thành viên cho $1 đã được mở.',
+'accountcreatedtext' => 'Tài khoản thành viên cho [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|thảo luận]]) đã được mở.',
 'createaccount-title' => 'Tài khoản mới tại {{SITENAME}}',
 'createaccount-text' => 'Ai đó đã tạo một tài khoản với tên $2 tại {{SITENAME}} ($4). Mật khẩu của "$2" là "$3". Bạn nên đăng nhập và đổi mật khẩu ngay bây giờ.
 
@@ -880,11 +888,11 @@ Có thể bạn đã thay đổi thành công mật khẩu của mình hoặc đ
 
 # Special:PasswordReset
 'passwordreset' => 'Tái tạo mật khẩu',
-'passwordreset-text' => 'Hãy điền mẫu đơn này để tái tạo mật khẩu.',
+'passwordreset-text-one' => 'Hãy điền mẫu đơn này để tái tạo mật khẩu.',
+'passwordreset-text-many' => '{{PLURAL:$1|Điền vào một hộp sau để tái tạo mật khẩu.}}',
 'passwordreset-legend' => 'Tái tạo mật khẩu',
 'passwordreset-disabled' => 'Chức năng tái tạo mật khẩu đã bị tắt trên wiki này.',
 'passwordreset-emaildisabled' => 'Tính năng gửi thư điện tử không được kích hoạt trên wiki này.',
-'passwordreset-pretext' => '{{PLURAL:$1||Nhập một trong những thông tin được yêu cầu ở dưới}}',
 'passwordreset-username' => 'Tên người dùng:',
 'passwordreset-domain' => 'Tên miền:',
 'passwordreset-capture' => 'Xem thư điện tử có mật khẩu tạm',
@@ -956,8 +964,8 @@ Mật khẩu tạm: $2',
 'watchthis' => 'Theo dõi trang này',
 'savearticle' => 'Lưu trang',
 'preview' => 'Xem trước',
-'showpreview' => 'Xem thử',
-'showlivepreview' => 'Xem thử nhanh',
+'showpreview' => 'Xem trước',
+'showlivepreview' => 'Xem trước nhanh',
 'showdiff' => 'Xem thay đổi',
 'anoneditwarning' => "'''Cảnh báo:''' Bạn chưa đăng nhập. Địa chỉ IP của bạn sẽ được ghi lại trong lịch sử sửa đổi của trang.",
 'anonpreviewwarning' => "''Bạn chưa đăng nhập. Khi lưu trang này, địa chỉ IP của bạn sẽ được ghi vào lịch sử trang.''",
@@ -1035,26 +1043,26 @@ Xem chi tiết trong [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}
 * '''Opera:''' Xóa bộ nhớ đệm trong ''Công cụ → Sở thích'' (''Tools → Preferences'')",
 'usercssyoucanpreview' => "'''Mẹo:''' Sử dụng nút “{{int:showpreview}}” để kiểm thử bản CSS của bạn trước khi lưu trang.",
 'userjsyoucanpreview' => "'''Mẹo:''' Sử dụng nút “{{int:showpreview}}” để kiểm thử bản JS của bạn trước khi lưu trang.",
-'usercsspreview' => "'''Hãy nhớ rằng bạn chỉ đang xem thử trang CSS cá nhân của bạn.
+'usercsspreview' => "'''Hãy nhớ rằng bạn chỉ đang xem trước trang CSS cá nhân của bạn.
 Nó chưa được lưu!'''",
-'userjspreview' => "'''Nhớ rằng bạn chỉ đang kiểm thử/xem thử trang JavaScript, nó chưa được lưu!'''",
-'sitecsspreview' => "'''Nhớ rằng bạn chỉ đang xem thử bản CSS này.'''
+'userjspreview' => "'''Nhớ rằng bạn chỉ đang kiểm thử/xem trước trang JavaScript, nó chưa được lưu!'''",
+'sitecsspreview' => "'''Nhớ rằng bạn chỉ đang xem trước bản CSS này.'''
 '''Nó chưa được lưu!'''",
-'sitejspreview' => "'''Nhớ rằng bạn chỉ đang kiểm thử/xem thử bản JavaScript này.
+'sitejspreview' => "'''Nhớ rằng bạn chỉ đang xem trước bản JavaScript này.
 '''Nó chưa được lưu!'''",
 'userinvalidcssjstitle' => "'''Cảnh báo:''' Không có skin “$1”. Hãy nhớ rằng các trang .css và .js tùy chỉnh sử dụng tiêu đề chữ thường, như {{ns:user}}:Ví&nbsp;dụ/vector.css chứ không phải {{ns:user}}:Ví&nbsp;dụ/Vector.css.",
 'updated' => '(Cập nhật)',
 'note' => "'''Ghi chú:'''",
-'previewnote' => "'''Đây chỉ mới là xem thử.'''
+'previewnote' => "'''Đây chỉ mới là bản xem trước.'''
 Các thay đổi của bạn vẫn chưa được lưu!",
 'continue-editing' => 'Đi đến hộp sửa đổi',
-'previewconflict' => 'Phần xem thử này là kết quả của văn bản trong vùng soạn thảo phía trên và nó sẽ xuất hiện như vậy nếu bạn chọn lưu trang.',
+'previewconflict' => 'Phần xem trước này là kết quả của văn bản trong vùng soạn thảo phía trên và nó sẽ xuất hiện như vậy nếu bạn chọn lưu trang.',
 'session_fail_preview' => "'''Rất tiếc, những sửa đổi của bạn chưa được lưu giữ do mất dữ liệu về phiên làm việc.'''
 Xin hãy thử lần nữa.
 Nếu vẫn không thành công, hãy thử [[Special:UserLogout|đăng xuất]] rồi đăng nhập lại.",
 'session_fail_preview_html' => "'''Những sửa đổi của bạn chưa được lưu giữ do mất dữ liệu về phiên làm việc.'''
 
-''Do {{SITENAME}} cho phép dùng mã HTML, trang xem thử được ẩn đi để đề phòng bị tấn công bằng JavaScript.''
+''Do {{SITENAME}} cho phép dùng mã HTML, trang xem trước được ẩn đi để đề phòng bị tấn công bằng JavaScript.''
 
 '''Nếu sửa đổi này là đúng đắn, xin hãy thử lần nữa.
 Nếu vẫn không thành công, bạn hãy thử [[Special:UserLogout|đăng xuất]] rồi đăng nhập lại.'''",
@@ -1123,6 +1131,7 @@ Không có lý do nào được đưa ra.',
 Dường như trang này đã bị xóa.',
 'edit-conflict' => 'Sửa đổi mâu thuẫn.',
 'edit-no-change' => 'Sửa đổi của bạn không được tính đến, vì nó không làm thay đổi nội dung.',
+'postedit-confirmation' => 'Sửa đổi của bạn đã được lưu.',
 'edit-already-exists' => 'Không thể tạo trang mới.
 Nó đã tồn tại.',
 'defaultmessagetext' => 'Nội dung mặc định',
@@ -1130,7 +1139,7 @@ Nó đã tồn tại.',
 'invalid-content-data' => 'Dữ liệu nội dung không hợp lệ',
 'content-not-allowed-here' => 'Không cho phép đưa nội dung “$1” vào trang [[$2]]',
 'editwarning-warning' => 'Rời khỏi trang này sẽ khiến bạn mất các sửa đổi đã thực hiện.
-Nếu đã đăng nhập, bạn có thể tắt cảnh báo này tại mục “{{int:prefs-editing}}” trong tùy chọn cá nhân.',
+Nếu đã đăng nhập, bạn có thể tắt cảnh báo này tại mục “Sửa đổi” trong tùy chọn cá nhân.',
 
 # Content models
 'content-model-wikitext' => 'mã wiki',
@@ -1165,6 +1174,7 @@ Những tham số này sẽ bị bỏ đi.',
 'undo-failure' => 'Sửa đổi không thể phục hồi vì đã có những sửa đổi mới ở sau.',
 'undo-norev' => 'Sửa đổi không thể hồi phục vì nó không tồn tại hoặc đã bị xóa.',
 'undo-summary' => 'Đã lùi lại sửa đổi $1 của [[Special:Contributions/$2|$2]] ([[User talk:$2|Thảo luận]])',
+'undo-summary-username-hidden' => 'Đã lùi lại sửa đổi $1 của một người dùng ẩn',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Không thể mở tài khoản',
@@ -1191,8 +1201,8 @@ Lý do được $3 đưa ra là ''$2''",
 Chú giải: '''({{int:cur}})''' = khác với phiên bản hiện hành, '''({{int:last}})''' = khác với phiên bản trước, '''{{int:minoreditletter}}''' = sửa đổi nhỏ.",
 'history-fieldset-title' => 'Tìm trong lịch sử',
 'history-show-deleted' => 'Chỉ bị xóa',
-'histfirst' => 'Cũ nhất',
-'histlast' => 'Mới nhất',
+'histfirst' => 'cũ nhất',
+'histlast' => 'mới nhất',
 'historysize' => '({{PLURAL:$1|1 byte|$1 byte}})',
 'historyempty' => '(trống)',
 
@@ -1344,6 +1354,7 @@ Xin hãy bảo đảm giữ vững tính liên tục của lịch sử trang.',
 'compareselectedversions' => 'So sánh các bản đã chọn',
 'showhideselectedversions' => 'Hiện/ẩn các phiên bản được chọn',
 'editundo' => 'lùi sửa',
+'diff-empty' => '(Không có sự khác biệt)',
 'diff-multi' => '(Không hiển thị {{PLURAL:$1||$1}} phiên bản {{PLURAL:$2||của $2 thành viên}} ở giữa)',
 'diff-multi-manyusers' => '(Không hiển thị {{PLURAL:$1||$1}} phiên bản của hơn $2 thành viên ở giữa)',
 'difference-missing-revision' => 'Không tìm thấy {{PLURAL:$2|một phiên bản|$2 phiên bản}} trong khác biệt này ($1).
@@ -1371,7 +1382,6 @@ Xem chi tiết trong [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}
 'searchmenu-legend' => 'Tùy chọn tìm kiếm',
 'searchmenu-exists' => "* Trang '''[[$1]]'''",
 'searchmenu-new' => "'''Tạo trang “[[:$1]]” trên wiki này!'''",
-'searchhelp-url' => 'Help:Nội dung',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Duyệt các trang với tiền tố này]]',
 'searchprofile-articles' => 'Trang nội dung',
 'searchprofile-project' => 'Trang trợ giúp và trang dự án',
@@ -1422,7 +1432,7 @@ Xem chi tiết trong [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}
 'prefsnologintext' => 'Bạn phải <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} đăng nhập]</span> để thiết lập tùy chọn cá nhân.',
 'changepassword' => 'Đổi mật khẩu',
 'prefs-skin' => 'Hình dạng',
-'skin-preview' => 'Xem thử',
+'skin-preview' => 'Xem trước',
 'datedefault' => 'Không quan tâm',
 'prefs-beta' => 'Tính năng beta',
 'prefs-datetime' => 'Ngày tháng',
@@ -1446,7 +1456,6 @@ Xem chi tiết trong [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}
 'resetprefs' => 'Mặc định lại lựa chọn',
 'restoreprefs' => 'Mặc định lại toàn bộ tùy chọn',
 'prefs-editing' => 'Sửa đổi',
-'prefs-edit-boxsize' => 'Kích thước cửa sổ soạn thảo.',
 'rows' => 'Số hàng:',
 'columns' => 'Số cột:',
 'searchresultshead' => 'Tìm kiếm',
@@ -1457,9 +1466,6 @@ Xem chi tiết trong [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}
 'recentchangesdays-max' => '(tối đa $1 {{PLURAL:$1|ngày|ngày}})',
 'recentchangescount' => 'Số sửa đổi hiển thị mặc định:',
 'prefs-help-recentchangescount' => 'Số này bao gồm các thay đổi gần đây, lịch sử trang, và nhật trình.',
-'prefs-help-watchlist-token' => 'Điền vào ô này một khóa bí mật để tạo ra bản tin RSS cho danh sách theo dõi của bạn.
-Bất cứ ai biết được khóa trong ô này cũng có thể đọc được danh sách theo dõi của bạn, vì vậy hãy chọn một giá trị an toàn.
-Đây là giá trị được tạo ngẫu nhiên mà bạn có thể sử dụng: $1',
 'savedprefs' => 'Đã lưu các tùy chọn cá nhân.',
 'timezonelegend' => 'Múi giờ:',
 'localtime' => 'Giờ hiện tại:',
@@ -1490,7 +1496,6 @@ Bất cứ ai biết được khóa trong ô này cũng có thể đọc đượ
 'prefs-reset-intro' => 'Có thể mặc định lại toàn bộ tùy chọn dùng trang này.
 Không có thể lùi lại tác động này.',
 'prefs-emailconfirm-label' => 'Xác nhận thư điện tử:',
-'prefs-textboxsize' => 'Kích cỡ hộp sửa đổi',
 'youremail' => 'Thư điện tử:',
 'username' => '{{GENDER:$1}}Tên người dùng:',
 'uid' => '{{GENDER:$1}}Số thứ tự thành viên:',
@@ -1522,7 +1527,9 @@ Nếu bạn đồng ý cung cấp, nó sẽ dùng để ghi nhận công lao c
 'prefs-signature' => 'Chữ ký',
 'prefs-dateformat' => 'Kiểu ngày tháng',
 'prefs-timeoffset' => 'Chênh giờ',
-'prefs-advancedediting' => 'Tùy chọn nâng cao',
+'prefs-advancedediting' => 'Tổng quát',
+'prefs-editor' => 'Trình soạn',
+'prefs-preview' => 'Xem trước',
 'prefs-advancedrc' => 'Tùy chọn nâng cao',
 'prefs-advancedrendering' => 'Tùy chọn nâng cao',
 'prefs-advancedsearchoptions' => 'Tùy chọn nâng cao',
@@ -1558,6 +1565,7 @@ Nếu bạn đồng ý cung cấp, nó sẽ dùng để ghi nhận công lao c
 'userrights-changeable-col' => 'Những nhóm bạn có thể thay đổi',
 'userrights-unchangeable-col' => 'Những nhóm bạn không thể thay đổi',
 'userrights-conflict' => 'Mâu thuẫn thay đổi sửa nhóm thành viên! Xin vui lòng áp dụng các thay đổi của bạn một lần nữa.',
+'userrights-removed-self' => 'Bạn đã loại bỏ quyền của chính mình nên không còn truy cập được trang này.',
 
 # Groups
 'group' => 'Nhóm:',
@@ -1601,7 +1609,7 @@ Nếu bạn đồng ý cung cấp, nó sẽ dùng để ghi nhận công lao c
 'right-reupload-shared' => 'Ghi đè lên kho hình ảnh dùng chung',
 'right-upload_by_url' => 'Tải tập tin từ địa chỉ URL',
 'right-purge' => 'Tẩy bộ đệm của trang mà không có trang xác nhận',
-'right-autoconfirmed' => 'Sửa trang bị nửa khóa',
+'right-autoconfirmed' => 'Không bị ảnh hưởng bởi mức giới hạn tần suất sử dụng theo địa chỉ IP',
 'right-bot' => 'Được đối xử như tác vụ tự động',
 'right-nominornewtalk' => 'Không báo về tin nhắn mới khi trang thảo luận chỉ được sửa đổi nhỏ',
 'right-apihighlimits' => 'Được dùng giới hạn cao hơn khi truy vấn API',
@@ -1622,12 +1630,20 @@ Nếu bạn đồng ý cung cấp, nó sẽ dùng để ghi nhận công lao c
 'right-ipblock-exempt' => 'Bỏ qua cấm IP, tự động cấm và cấm dải IP',
 'right-proxyunbannable' => 'Bỏ qua cấm proxy tự động',
 'right-unblockself' => 'Tự bỏ cấm',
-'right-protect' => 'Thay đổi mức khóa và sửa trang khóa',
-'right-editprotected' => 'Sửa trang khóa (không bị khóa theo tầng)',
+'right-protect' => 'Thay đổi mức khóa và sửa trang khóa theo tầng',
+'right-editprotected' => 'Sửa trang khóa ở mức “{{int:protect-level-sysop}}”',
+'right-editsemiprotected' => 'Sửa trang khóa ở mức “{{int:protect-level-autoconfirmed}}”',
 'right-editinterface' => 'Sửa giao diện người dùng',
 'right-editusercssjs' => 'Sửa tập tin CSS và JS của người dùng khác',
 'right-editusercss' => 'Sửa tập tin CSS của người dùng khác',
-'right-edituserjs' => 'Sửa tập tin JS của người dùng khác',
+'right-edituserjs' => 'Sửa đổi tập tin JavaScript của người dùng khác',
+'right-editmyusercss' => 'Sửa đổi tập tin CSS cá nhân của mình',
+'right-editmyuserjs' => 'Sửa đổi tập tin JavaScript cá nhân của mình',
+'right-viewmywatchlist' => 'Xem danh sách theo dõi của mình',
+'right-editmywatchlist' => 'Sửa đổi danh sách theo dõi của mình – một số tác vụ có thể thêm trang vào danh sách bất chấp quyền này',
+'right-viewmyprivateinfo' => 'Xem dữ liệu cá nhân của bạn (ví dụ địa chỉ thư điện tử hoặc tên thật)',
+'right-editmyprivateinfo' => 'Sửa đổi dữ liệu cá nhân của bạn (thí dụ địa chỉ thư điện tử hoặc tên thật)',
+'right-editmyoptions' => 'Sửa đổi tùy chọn của bạn',
 'right-rollback' => 'Nhanh chóng lùi tất cả sửa đổi của người dùng cuối cùng sửa đổi trang nào đó',
 'right-markbotedits' => 'Đánh dấu sửa đổi phục hồi là sửa đổi bot',
 'right-noratelimit' => 'Không bị ảnh hưởng bởi mức giới hạn tần suất sử dụng',
@@ -1689,12 +1705,17 @@ Nếu bạn đồng ý cung cấp, nó sẽ dùng để ghi nhận công lao c
 'action-userrights-interwiki' => 'sửa đổi quyền của người dùng tại wiki khác',
 'action-siteadmin' => 'khóa hoặc mở khóa cơ sở dữ liệu',
 'action-sendemail' => 'gửi thư điện tử',
+'action-editmywatchlist' => 'sửa đổi danh sách theo dõi của mình',
+'action-viewmywatchlist' => 'xem danh sách theo dõi của mình',
+'action-viewmyprivateinfo' => 'xem thông tin cá nhân của bạn',
+'action-editmyprivateinfo' => 'sửa đổi thông tin cá nhân của bạn',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|thay đổi|thay đổi}}',
 'recentchanges' => 'Thay đổi gần đây',
 'recentchanges-legend' => 'Tùy chọn thay đổi gần đây',
 'recentchanges-summary' => 'Xem các thay đổi gần đây nhất tại wiki trên trang này.',
+'recentchanges-noresult' => 'Không có thay đổi trong khoảng thời gian phù hợp với các tiêu chí này.',
 'recentchanges-feed-description' => 'Theo dõi các thay đổi gần đây nhất của wiki dùng nguồn tin này.',
 'recentchanges-label-newpage' => 'Bản sửa này tạo ra trang mới',
 'recentchanges-label-minor' => 'Đây là một sửa đổi nhỏ',
@@ -1731,7 +1752,6 @@ Nếu bạn đồng ý cung cấp, nó sẽ dùng để ghi nhận công lao c
 'recentchangeslinked-feed' => 'Thay đổi liên quan',
 'recentchangeslinked-toolbox' => 'Thay đổi liên quan',
 'recentchangeslinked-title' => 'Thay đổi liên quan tới “$1”',
-'recentchangeslinked-noresult' => 'Không có thay đổi nào trên trang được liên kết đến trong khoảng thời gian đã chọn.',
 'recentchangeslinked-summary' => "Đây là danh sách các thay đổi được thực hiện gần đây tại những trang được liên kết đến từ một trang nào đó (hoặc tại các trang thuộc một thể loại nào đó).
 Các trang trong [[Special:Watchlist|danh sách bạn theo dõi]] được '''tô đậm'''.",
 'recentchangeslinked-page' => 'Tên trang:',
@@ -1743,7 +1763,7 @@ Các trang trong [[Special:Watchlist|danh sách bạn theo dõi]] được '''t
 'reuploaddesc' => 'Hủy tác vụ tải và quay lại mẫu tải tập tin lên',
 'upload-tryagain' => 'Lưu miêu tả tập tin được sửa đổi',
 'uploadnologin' => 'Chưa đăng nhập',
-'uploadnologintext' => 'Bạn phải [[Special:UserLogin|đăng nhập]] để tải tập tin lên.',
+'uploadnologintext' => 'Bạn phải $1 để tải tập tin lên.',
 'upload_directory_missing' => 'Thư mục tải lên ($1) không có hoặc máy chủ web không thể tạo được.',
 'upload_directory_read_only' => 'Máy chủ không thể sửa đổi thư mục tải lên ($1) được.',
 'uploaderror' => 'Lỗi khi tải lên',
@@ -2375,7 +2395,6 @@ Những sửa đổi đối với trang này và trang thảo luận của nó s
 'unwatchthispage' => 'Ngừng theo dõi',
 'notanarticle' => 'Không phải trang có nội dung',
 'notvisiblerev' => 'Phiên bản bị xóa',
-'watchnochange' => 'Không có trang nào bạn theo dõi được sửa đổi.',
 'watchlist-details' => 'Bạn đang theo dõi {{PLURAL:$1|$1 trang|$1 trang}}, không kể các trang thảo luận.',
 'wlheader-enotif' => 'Đã bật thông báo qua thư điện tử.',
 'wlheader-showupdated' => "Các trang đã thay đổi kể từ lần cuối bạn xem chúng được in '''đậm'''",
@@ -2483,8 +2502,8 @@ người viết trang cuối cùng cũng là tác giả duy nhất của trang n
 
 Sửa đổi cuối cùng tại trang do [[User:$3|$3]] ([[User talk:$3|thảo luận]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]) thực hiện.',
 'editcomment' => "Tóm lược sửa đổi: “''$1''”.",
-'revertpage' => 'Đã hủy sửa đổi của [[Special:Contributions/$2|$2]] ([[User talk:$2|Thảo luận]]) quay về phiên bản của [[User:$1|$1]]',
-'revertpage-nouser' => 'Lùi sửa đổi của (tên người dùng đã xóa) quay lại phiên bản cuối của [[User:$1|$1]]',
+'revertpage' => 'Đã lùi lại sửa đổi của [[Special:Contributions/$2|$2]] ([[User talk:$2|Thảo luận]]) quay về phiên bản cuối của [[User:$1|$1]]',
+'revertpage-nouser' => 'Đã lùi lại sửa đổi của người dùng ẩn quay về phiên bản cuối của [[User:$1|$1]]',
 'rollback-success' => 'Đã hủy sửa đổi của $1;
 quay về phiên bản cuối của $2.',
 
@@ -2626,7 +2645,7 @@ $1',
 'mycontris' => 'Đóng góp',
 'contribsub2' => 'Của $1 ($2)',
 'nocontribs' => 'Không tìm thấy thay đổi nào khớp với yêu cầu.',
-'uctop' => '(mới nhất)',
+'uctop' => '(hiện tại)',
 'month' => 'Từ tháng (trở về trước):',
 'year' => 'Từ năm (trở về trước):',
 
@@ -3041,7 +3060,7 @@ Lưu nó vào máy tính của bạn rồi tải nó lên đây.',
 'tooltip-pt-anonlogin' => 'Không đăng nhập vẫn tham gia được, tuy nhiên đăng nhập sẽ lợi hơn.',
 'tooltip-pt-logout' => 'Đăng xuất',
 'tooltip-ca-talk' => 'Thảo luận về trang này',
-'tooltip-ca-edit' => 'Bạn có thể sửa được trang này! (Xin vui lòng xem thử trước khi lưu.)',
+'tooltip-ca-edit' => 'Bạn có thể sửa được trang này! (Xin vui lòng xem trước trước khi lưu.)',
 'tooltip-ca-addsection' => 'Bắt đầu một đề mục mới',
 'tooltip-ca-viewsource' => 'Trang này được khóa. Bạn có thể xem mã nguồn.',
 'tooltip-ca-history' => 'Các phiên bản cũ của trang này',
@@ -3085,7 +3104,7 @@ Lưu nó vào máy tính của bạn rồi tải nó lên đây.',
 'tooltip-ca-nstab-category' => 'Xem trang thể loại',
 'tooltip-minoredit' => 'Đánh dấu đây là sửa đổi nhỏ',
 'tooltip-save' => 'Lưu lại những thay đổi của bạn',
-'tooltip-preview' => 'Xem thử những thay đổi, hãy dùng nó trước khi lưu!',
+'tooltip-preview' => 'Xem trước những thay đổi, hãy dùng nó trước khi lưu!',
 'tooltip-diff' => 'Xem thay đổi bạn đã thực hiện.',
 'tooltip-compareselectedversions' => 'Xem khác biệt giữa hai phiên bản đã chọn của trang này.',
 'tooltip-watch' => 'Thêm trang này vào danh sách theo dõi',
@@ -3094,7 +3113,7 @@ Lưu nó vào máy tính của bạn rồi tải nó lên đây.',
 'tooltip-recreate' => 'Tạo lại trang dù cho nó vừa bị xóa',
 'tooltip-upload' => 'Bắt đầu tải lên',
 'tooltip-rollback' => '“Lùi tất cả” sẽ lùi mọi sửa đổi của người sửa đổi cuối cùng chỉ bằng một cú nhấp chuột.',
-'tooltip-undo' => '"Lùi lại" sẽ lùi sửa đổi này và mở trang sửa đổi ở chế độ xem thử. Cho phép thêm lý do vào tóm lược.',
+'tooltip-undo' => '“Lùi lại” sẽ lùi sửa đổi này và mở trang sửa đổi ở chế độ xem trước. Cho phép thêm lý do vào tóm lược.',
 'tooltip-preferences-save' => 'Lưu tùy chọn',
 'tooltip-summary' => 'Hãy nhập câu tóm lược',
 
@@ -3247,7 +3266,7 @@ Nếu thực thi nó máy tính của bạn có thể bị tiếm quyền.",
 'svg-long-desc-animated' => 'tập tin hình động SVG, $1×$2 điểm ảnh trên danh nghĩa, kích thước: $3',
 'svg-long-error' => 'Tập tin SVG có lỗi: $1',
 'show-big-image' => 'Độ phân giải tối đa',
-'show-big-image-preview' => 'Kích thước của ảnh xem thử: $1.',
+'show-big-image-preview' => 'Kích thước của hình xem trước: $1.',
 'show-big-image-other' => '{{PLURAL:$2|Độ phân giải|Các độ phân giải}} khác: $1.',
 'show-big-image-size' => '$1×$2 điểm ảnh',
 'file-info-gif-looped' => 'có lặp',
@@ -3865,7 +3884,6 @@ Xin hãy xác nhận bạn thực sự muốn tạo lại trang này.",
 'confirm-unwatch-top' => 'Bạn có muốn gỡ trang này khỏi danh sách theo dõi của bạn?',
 
 # Separators for various lists, etc.
-'autocomment-prefix' => '–&#32;',
 'ellipsis' => '…',
 
 # Multipage image navigation
@@ -3909,8 +3927,8 @@ Xin hãy xác nhận bạn thực sự muốn tạo lại trang này.",
 # Live preview
 'livepreview-loading' => 'Đang tải…',
 'livepreview-ready' => 'Đang tải… Xong!',
-'livepreview-failed' => 'Không thể xem thử trực tiếp! Hãy dùng thử chế độ xem thử thông thường.',
-'livepreview-error' => 'Không thể kết nối: $1 “$2”. Hãy dùng thử chế độ xem thử thông thường.',
+'livepreview-failed' => 'Không thể xem trước trực tiếp! Hãy dùng thử chế độ xem trước thông thường.',
+'livepreview-error' => 'Không thể kết nối: $1 “$2”. Hãy dùng thử chế độ xem trước thông thường.',
 
 # Friendlier slave lag warnings
 'lag-warn-normal' => 'Những thay đổi trong vòng $1 {{PLURAL:||}}giây trở lại đây có thể chưa xuất hiện trong danh sách.',
@@ -4002,7 +4020,6 @@ Bạn cũng có thể [[Special:EditWatchlist|dùng trang sửa đổi bình th
 'version-other' => 'Phần mở rộng khác',
 'version-mediahandlers' => 'Bộ xử lý phương tiện',
 'version-hooks' => 'Các hook',
-'version-extension-functions' => 'Hàm mở rộng',
 'version-parser-extensiontags' => 'Thẻ mở rộng trong bộ xử lý',
 'version-parser-function-hooks' => 'Hook cho hàm cú pháp trong bộ xử lý',
 'version-hook-name' => 'Tên hook',
@@ -4091,6 +4108,7 @@ hoặc [//www.gnu.org/licenses/old-licenses/gpl-2.0.html đọc nó trực tuy
 'tags' => 'Thẻ đánh dấu thay đổi hợp lệ',
 'tag-filter' => 'Bộ lọc [[Special:Tags|thẻ]]:',
 'tag-filter-submit' => 'Bộ lọc',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1}}Thẻ]]: $2)',
 'tags-title' => 'Thẻ đánh dấu',
 'tags-intro' => 'Trang này liệt kê các thẻ đánh dấu mà phần mềm dùng nó để đánh dấu một sửa đổi, và ý nghĩa của nó.',
 'tags-tag' => 'Tên thẻ',
index 3f15d71..84eafee 100644 (file)
@@ -239,7 +239,6 @@ $1",
 'disclaimers' => 'Imbräsum',
 'disclaimerpage' => 'Project:Imbräsum',
 'edithelp' => 'Hilfe dsum beärbâdn',
-'edithelppage' => 'Help:Beärbâdn',
 'helppage' => 'Help:Inhalds-fârdsajchnis',
 'mainpage' => 'Haubdsajdn',
 'mainpage-description' => 'Haubdsajdn',
@@ -507,7 +506,6 @@ Hirmid sagsd, das Du den dhägsd '''selbâr gschriim''' hasd, das däär dhägsd
 'resetprefs' => 'Nigs iwârneemn',
 'restoreprefs' => 'Uf dii uur-ajschdelungn dsrig',
 'prefs-editing' => 'Bearbajdungs-fenschdâr',
-'prefs-edit-boxsize' => 'Grees fom bearbajdungs-fenschdâr:',
 'rows' => 'Soofiil dsajln:',
 'columns' => 'Soofiil schbaldn',
 'searchresultshead' => 'Suuchn',
@@ -870,7 +868,6 @@ Bidde gug's mi´m foorschau-gnobf ôô fôrm schbajchan",
 'modern.css' => "/* CSS hiir beâjflusd nôr dii Modern-schelfn. Wen'd ale uf ôômôôl beâjflusn wilsch, muâsch an MediaWiki:Common.css was ändârn. */",
 'vector.css' => "/* CSS hiir beâjflusd nôr dii Vector-schelfn. Wen'd ale uf ôômôôl beâjflusn wilsch, muâsch an MediaWiki:Common.css was ändârn. */",
 'print.css' => '/* CSS hiir beâjflusd nôr dii drugausgaawe. */',
-'handheld.css' => '/* CSS hiir beâjflusd nôr dii handgerääde, jee nachdeem, welche schelfn in $wgHandheldStyle âjgeschdeld is. */',
 
 # Scripts
 'common.js' => '/* Des folchende JavaScript wird fir ale benudsâr glôôdn un fir ale sajdn, dii se ôôgugn. */',
index 5620a99..80d6435 100644 (file)
@@ -7,6 +7,7 @@
  * @ingroup Language
  * @file
  *
+ * @author Geitost
  * @author Iketsi
  * @author Kaganer
  * @author Malafaya
@@ -119,7 +120,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Klänedön redakamis pezepöl in lised votükamas nulik.',
 'tog-newpageshidepatrolled' => 'Klänedön padis pezepöl in lised padas nulik',
 'tog-extendwatchlist' => 'Stäänükön galädalisedi ad jonön votükamis tefik valik, e no te nulikünos',
-'tog-usenewrc' => 'Gebön votükamis nulik patik (me JavaScript)',
+'tog-usenewrc' => 'Grupön votükamis pado in votukäms nulik e galädalised (me JavaScript)',
 'tog-numberheadings' => 'Givön itjäfidiko nümis dilädatiädes',
 'tog-showtoolbar' => 'Jonön redakamastumemi (JavaScript)',
 'tog-editondblclick' => 'Dälön redakön padis pö drän telik mugaknopa (JavaScript)',
@@ -127,17 +128,17 @@ $messages = array(
 'tog-editsectiononrightclick' => 'Dälön redakami diläda me klik mugaknopa detik su dilädatiäds (JavaScript)',
 'tog-showtoc' => 'Jonön ninädalisedi (su pads labü diläds plu 3)',
 'tog-rememberpassword' => 'Dakipolös nunädamanünis obik in bevüresodatävöm at (muiko {{PLURAL:$1|del|dels}} $1)',
-'tog-watchcreations' => 'Läükön padis fa ob pejafölis lä galädalised obik',
-'tog-watchdefault' => 'Läükön padis fa ob peredakölis la galädalised obik',
-'tog-watchmoves' => 'Läükön padis fa ob petopätükölis lä galädalised obik',
-'tog-watchdeletion' => 'Läükön padis fa ob pemoükölis lä galädalised obik',
+'tog-watchcreations' => 'Läükön padis fa ob pejafölis e ragivis fa ob pelöpükölis lä galädalised obik',
+'tog-watchdefault' => 'Läükön padis e ragivis fa ob peredakölis la galädalised obik',
+'tog-watchmoves' => 'Läükön padis e ragivis fa ob petopätükölis lä galädalised obik',
+'tog-watchdeletion' => 'Läükön padis e ragivis fa ob pemoükölis lä galädalised obik',
 'tog-minordefault' => 'Bepenön redakamis no pebepenölis valikis asä pülikis',
 'tog-previewontop' => 'Jonön büologedi bü redakaspad',
 'tog-previewonfirst' => 'Jonön büologedi pö redakam balid',
 'tog-nocache' => 'Nejäfidükön el "cache" padas in bevüresodatävöm',
-'tog-enotifwatchlistpages' => 'Sedön obe penedi leäktronik ven ek votükon padi se galädalised obik',
+'tog-enotifwatchlistpages' => 'Sedön obe penedi leäktronik ven ek votükon padi u ragivi se galädalised obik',
 'tog-enotifusertalkpages' => 'Sedön obe penedi leäktronik ven gebanapad obik pavotükon',
-'tog-enotifminoredits' => 'Sedön obe penedi leäktronik igo pö padavotükams pülik',
+'tog-enotifminoredits' => 'Sedön obe penedi leäktronik igo pö votükams pülik padas e ragivas',
 'tog-enotifrevealaddr' => 'Jonön ladeti leäktronik oba in nunapeneds.',
 'tog-shownumberswatching' => 'Jonön numi gebanas galädöl',
 'tog-oldsig' => 'Dispenäd dabinöl:',
@@ -214,6 +215,18 @@ $messages = array(
 'oct' => 'tob',
 'nov' => 'nov',
 'dec' => 'dek',
+'january-date' => 'yanul $1',
+'february-date' => 'febul $1',
+'march-date' => 'mäzul $1',
+'april-date' => 'prilul $1',
+'may-date' => 'mayul $1',
+'june-date' => 'yunul $1',
+'july-date' => 'yulul $1',
+'august-date' => 'gustul $1',
+'september-date' => 'setul $1',
+'october-date' => 'tobul $1',
+'november-date' => 'novul $1',
+'december-date' => 'dekul $1',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Klad|Klads}}',
@@ -230,6 +243,8 @@ $messages = array(
 'category-file-count' => '{{PLURAL:$2|Klad at labon te ragivi sököl.|{{PLURAL:$1|Ragiv sököl binon |Ragivs sököl $1 binons}} in klad at, se $2.}}',
 'category-file-count-limited' => '{{PLURAL:$1|Ragiv sököl binon|Ragivs sököl $1 binons}} in klad at.',
 'listingcontinuesabbrev' => '(fov.)',
+'index-category' => 'Pads mafädanumöls',
+'noindex-category' => 'Pads nemafädanumöls',
 
 'about' => 'Tefü',
 'article' => 'Ninädapad',
@@ -288,6 +303,7 @@ $messages = array(
 'create-this-page' => 'Jafön padi at',
 'delete' => 'Moükön',
 'deletethispage' => 'Moükolös padi at',
+'undeletethispage' => 'Sämoükön padi at',
 'undelete_short' => 'Sädunön moükami {{PLURAL:$1|redakama bal|redakamas $1}}',
 'viewdeleted_short' => 'Logön {{PLURAL:$1|redakami pemoüköl bal|redakamis pemoüköls $1}}',
 'protect' => 'Jelön',
@@ -334,7 +350,6 @@ $messages = array(
 'disclaimers' => 'Nuneds',
 'disclaimerpage' => 'Project:Gididimiedükam valemik',
 'edithelp' => 'Redakamayuf',
-'edithelppage' => 'Help:Redakam',
 'helppage' => 'Help:Ninäd',
 'mainpage' => 'Cifapad',
 'mainpage-description' => 'Cifapad',
@@ -359,6 +374,7 @@ $messages = array(
 'youhavenewmessagesfromusers' => 'Labol $1 de {{PLURAL:$3|geban votik|gebans $3}} ($2).',
 'youhavenewmessagesmanyusers' => 'Labol $1 de gebans mödik ($2).',
 'newmessageslinkplural' => '{{PLURAL:$1|nuni nulik|nunis nulik}}',
+'newmessagesdifflinkplural' => '{{PLURAL:$1|votükam|votükams}} lätik',
 'youhavenewmessagesmulti' => 'Labol nunis nulik su $1',
 'editsection' => 'redakön',
 'editold' => 'redakön',
@@ -443,6 +459,7 @@ Atos kösömiko jenon sekü difa- u jenotemayüm dädik (o.b. lü pad pemoüköl
 'badarticleerror' => 'Dun at no kanon paledunön su pad at.',
 'cannotdelete' => 'No emögos ad moükön padi u ragivi: "$1".
 Ba ya pemoükon fa geban votik.',
+'cannotdelete-title' => 'No kanoy moükön padi: "$1"',
 'badtitle' => 'Tiäd badik',
 'badtitletext' => 'Padatiäd peflagöl äbinon nelonöfik, vägik, u ba yüm bevüpükik u bevüvükik dädik. Mögos, das ninädon malati(s), kel(s) no dalon(s) pagebön ad jafön tiädis.',
 'perfcached' => 'Nüns sököl ekömons se el caché e ba no binons anuik. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.',
@@ -452,20 +469,22 @@ Ba ya pemoükon fa geban votik.',
 Dun: $1<br />
 Beg: $2',
 'viewsource' => 'Logön fonäti',
+'viewsource-title' => 'Logön fonäti pada: "$1"',
 'actionthrottled' => 'Dun pemiedükon',
 'actionthrottledtext' => 'Ad tadunön reklamami itjäfidik (el „spam“), dunot at no padälon tu suvo dü brefüp. Ya erivol miedi gretikün. Steifülolös nogna pos minuts anik.',
 'protectedpagetext' => 'Pad at pejelon ad neletön redakami.',
 'viewsourcetext' => 'Kanol logön e kopiedön fonätakoti pada at:',
 'protectedinterface' => 'Pad at jafon vödemis sitanünas, ed anu pelökofärmükon ad vitön migebis.',
-'editinginterface' => "'''Nuned:''' Anu redakol padi, kel labükon vödemis bevüik pro programem.
+'editinginterface' => "'''Nuned:''' redakol padi, kel labükon vödemis bevüik pro programem.
 Votükams pada at oflunons logoti gebanasita pro gebans votik.
-Ad tradutön vödemis, demolös gebi ela [//translatewiki.net/wiki/Main_Page?setlang=vo translatewiki.net]: topükamaproyeg ela MediaWiki.",
+Ad läükön u votükön tradutodis pro els wiki valik, demolös gebi ela [//translatewiki.net/?setlang=vo translatewiki.net]: topükamaproyeg ela MediaWiki.",
 'sqlhidden' => '(SQL beg peklänedon)',
 'cascadeprotected' => 'Pad at pejelon ta redakam, bi pakeninükon fa {{PLURAL:$1|pad|pads}} sököl, kels pejelons ma „jänajel“: $2',
 'namespaceprotected' => "No dalol redakön padis in nemaspad: '''$1'''.",
 'ns-specialprotected' => 'Pads patik no kanons paredakön.',
 'titleprotected' => "Jaf tiäda at penemögükon fa geban: [[User:$1|$1]].
 Kod binon: ''$2''.",
+'exception-nologin' => 'No enunädol oli',
 
 # Virus scanner
 'virus-badscanner' => "Parametem badik: program tavirudik nesevädik: ''$1''",
@@ -477,11 +496,21 @@ Kod binon: ''$2''.",
 
 Kanol laigebön {{SITENAME}} nennemiko, u kanol <span class='plainlinks'>[$1 nunädön oli dönu]</span> me gebananem ot u gebenanem votik.
 Küpälolös, das pads anik ba nog pojenons äsva no esenunädol oli, jüs uklinükol memi no laidüpik bevüresodanaföma olik.",
+'welcomeuser' => 'Benokömö, o $1!',
 'yourname' => 'Gebananem:',
+'userlogin-yourname' => 'Gebananem',
+'userlogin-yourname-ph' => 'Penolös gebananemi olik',
 'yourpassword' => 'Letavöd:',
+'userlogin-yourpassword' => 'Letavöd',
+'userlogin-yourpassword-ph' => 'Penolös letavödi olik',
+'createacct-yourpassword-ph' => 'Penolös letavödi',
 'yourpasswordagain' => 'Klavolös dönu letavödi:',
+'createacct-yourpasswordagain' => 'Fümedolös letavödi',
+'createacct-yourpasswordagain-ph' => 'Penolös letavödi dönu',
 'remembermypassword' => 'Dakipolöd ninädamanünis obik in nünöm at (muiko {{PLURAL:$1|del|dels}} $1)',
+'userlogin-remembermypassword' => 'Dakipön obi penunädöl',
 'yourdomainname' => 'Domen olik:',
+'password-change-forbidden' => 'No kanol votükön letavödis su el wiki at.',
 'externaldberror' => 'U ejenon fümükamapöl plödik nünödema, u no dalol atimükön kali plödik ola.',
 'login' => 'Nunädolös obi',
 'nav-login-createaccount' => 'Nunädön oki / jafön kali',
@@ -491,13 +520,25 @@ Küpälolös, das pads anik ba nog pojenons äsva no esenunädol oli, jüs uklin
 'logout' => 'Senunädön oki',
 'userlogout' => 'Senunädön oki',
 'notloggedin' => 'No enunädol oli',
-'nologin' => "No labol-li kali? '''$1'''.",
+'userlogin-noaccount' => 'No labol-li kali?',
+'userlogin-joinproject' => 'Sogolös oki lä {{SITENAME}}',
+'nologin' => 'No labol-li kali? $1.',
 'nologinlink' => 'Jafolös bali',
 'createaccount' => 'Jafön kali',
 'gotaccount' => "Ya labol-li kali? '''$1'''.",
 'gotaccountlink' => 'Nunädolös obi',
+'userlogin-resetlink' => 'Eglömol-li nünis kala olik?',
+'userlogin-resetpassword-link' => 'Dönuvälön letavödi olik',
+'helplogin-url' => 'Help:Nunädön',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Yuf ad nunädön]]',
+'createacct-join' => 'Penolös nünis olik dono.',
+'createacct-emailrequired' => 'Ladet leäktronik',
 'createaccountmail' => 'me pot leäktronik',
 'createaccountreason' => 'Kod:',
+'createacct-reason' => 'Kod',
+'createacct-submit' => 'Jafön kali olik',
+'createacct-benefit-body1' => '{{PLURAL:$1|redakam|redakams}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|pad|pads}}',
 'badretype' => 'Letavöds fa ol pepenöls no leigons.',
 'userexists' => 'Gebananem at ya pagebon.
 Välolös, begö! nemi votik.',
@@ -569,10 +610,17 @@ Ba ya evotükol benosekiko letavödi olik, u ya ebegol benosekiko letavödi nela
 'passwordreset' => 'Dönuvälön letavödi',
 'passwordreset-legend' => 'Dönuvälön letavödi',
 'passwordreset-username' => 'Gebananem:',
+'passwordreset-domain' => 'Domen:',
 'passwordreset-email' => 'Ladet leäktronik:',
 
 # Special:ChangeEmail
+'changeemail' => 'Votükön ladeti leäktronik',
+'changeemail-header' => 'Votükön ladeti leäktronik kala',
+'changeemail-oldemail' => 'Ladet leäktronik anuik:',
+'changeemail-newemail' => 'Ladet leäktronik nulik:',
 'changeemail-none' => '(nonik)',
+'changeemail-password' => 'Letavöd olik su {{SITENAME}}:',
+'changeemail-submit' => 'Votükön ladeti leäktronik',
 'changeemail-cancel' => 'Stöpädön',
 
 # Edit page toolbar
@@ -642,7 +690,7 @@ Ladet-IP olik binon $3, e nüm blokama at binon #$5. Mäniotolös nünis löpik
 'nosuchsectiontitle' => 'Diläd no petuvöl',
 'nosuchsectiontext' => 'Esteifülol ad redakön dilädi no dabinöli.',
 'loginreqtitle' => 'Nunädam Paflagon',
-'loginreqlink' => 'ninädolös obi',
+'loginreqlink' => 'nunädolös obi',
 'loginreqpagetext' => 'Mutol $1 ad logön padis votik.',
 'accmailtitle' => 'Letavöd pesedon.',
 'accmailtext' => "Letavöd fädik pro [[User talk:$1|$1]] pasedon lü $2.
@@ -655,6 +703,8 @@ If binol is pölo, välolös knopi: '''geikön''' bevüresodatävöma olik.",
 'anontalkpagetext' => "----''Bespikapad at duton lü geban nennemik, kel no nog ejafon kali, u no vilon labön u gebön oni. Sekü atos pemütobs ad gebön ladeti-IP ad dientifükön gebani at. Ladets-IP kanons pagebön fa gebans difik. If binol geban nennemik e cedol, das küpets netefik pelüodükons ole, [[Special:UserLogin|jafolös, begö! kali]], u [[Special:UserLogin|nunädolös oli]] ad vitön kofudi ko gebans nennemik votik.''",
 'noarticletext' => 'Atimo no dabinon vödem su pad at.
 Kanol [[Special:Search/{{PAGENAME}}|sukön padatiädi at]] su pads votik, <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} sukön in jenotaliseds tefik] u [{{fullurl:{{FULLPAGENAME}}|action=edit}} redakön padi at]</span>.',
+'noarticletext-nopermission' => 'Atimo no dabinon vödem su pad at.
+Kanol [[Special:Search/{{PAGENAME}}|sukön padatiädi at]] su pads votik u <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} sukön in jenotaliseds tefik], ab no labol gitätis ad jafön padi at.',
 'userpage-userdoesnotexist' => 'Gebanakal: "<nowiki>$1</nowiki>" no peregistaron. Fümükolös, va vilol jäfön/redakön padi at.',
 'userpage-userdoesnotexist-view' => 'Gebenakal: "$1" no peregistaron.',
 'clearyourcache' => "'''Prudö!''' Pos dakip buükamas, mögos, das ozesüdos ad nedemön memi nelaidüpik bevüresodatävöma ad logön votükamis.
@@ -671,7 +721,9 @@ Kanol [[Special:Search/{{PAGENAME}}|sukön padatiädi at]] su pads votik, <span
 Memolös, das pads: .css e .js mutons labön tiädi minudik: {{ns:user}}:Foo/vector.css, no {{ns:user}}:Foo/Vector.css.",
 'updated' => '(peatimükon)',
 'note' => "'''Penet:'''",
-'previewnote' => "'''Is pajonon te büologed; votükams no nog pedakipons!'''",
+'previewnote' => "'''Memolös, das is pajonon te büologed.'''
+Votükams olik no nog pedakipons!",
+'continue-editing' => 'Golön ad spadäd redakama',
 'previewconflict' => 'Büologed at jonon vödemi in redakamaspad löpik soäsä opubon if odakipol oni.',
 'session_fail_preview' => "'''Pidö! No emögos ad lasumön votükamis olik kodü per redakamanünodas.<br />Steifülolös dönu. If no oplöpol, tän senunädolös e genunädolös oli, e steifülolös nogna.'''",
 'session_fail_preview_html' => "'''Liedo no eplöpos ad zepön redakami olik kodü per nünodas.'''
@@ -727,10 +779,10 @@ Kanol redakön padi dabinöl, u [[Special:UserLogin|nunädön oli u jafön kali]
 'permissionserrors' => 'Dälapöls',
 'permissionserrorstext' => 'No dalol dunön atosi sekü {{PLURAL:$1|kod|kods}} sököl:',
 'permissionserrorstext-withaction' => 'No dalol $2, sekü {{PLURAL:$1|kod|kods}} sököl:',
-'recreate-moveddeleted-warn' => "'''NUNED: Dönujafol padi pemoüköl.'''
+'recreate-moveddeleted-warn' => "'''Nuned: Dönujafol padi büiko pemoüköl.'''
 
 Vätälolös, va binos pötik ad lairedakön padi at.
-Jenotalised moükama pada at pajonon is as yuf.",
+Jenotalised moükama e topätükama pada at pajonon is as yuf:",
 'moveddeleted-notice' => 'Pad at pemoükon.
 Jenotems moükamas e topätükamas pada palisedon dono.',
 'edit-hook-aborted' => 'Redakam pestöpädon fa huköm.
@@ -739,9 +791,14 @@ No enunon kodi.',
 Jiniko pemoükon.',
 'edit-conflict' => 'Redakamakonflit.',
 'edit-no-change' => 'Redakam olik penedemon, bi vödemivotükams nonik pedunons.',
+'postedit-confirmation' => 'Redakam olik pedakipolon.',
 'edit-already-exists' => 'No kanoy jafön padi nulik.
 On ya dabinon.',
 
+# Content models
+'content-model-javascript' => 'JavaScript',
+'content-model-css' => 'CSS',
+
 # Parser/template warnings
 'expensive-parserfunction-warning' => 'Nuned: Pad at vokon „parser“-sekätis tusuvo.
 
@@ -838,6 +895,7 @@ Ninäd peklänedöl at binon ye nog lügolovik guvanes votik vüka: {{SITENAME}}
 'logdelete-success' => 'Logov jenotaliseda pelonon benosekiko.',
 'revdel-restore' => 'Votükön logovi',
 'revdel-restore-deleted' => 'revids pemoüköl',
+'revdel-restore-visible' => 'revids logädik',
 'pagehist' => 'Padajenotem',
 'deletedhist' => 'Jenotem pemoüköl',
 'revdelete-otherreason' => 'Kod votik/zuik:',
@@ -907,7 +965,6 @@ Kontrololös, va votükam at okipon fovöfi padajenotema.',
 'searchmenu-legend' => 'Sukaparamets',
 'searchmenu-exists' => "'''Dabinon pad labü nem: \"[[:\$1]]\" su vük at'''",
 'searchmenu-new' => "'''Jafolös padi: \"[[:\$1]]\" su vük at!'''",
-'searchhelp-url' => 'Help:Ninäd',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Logön padis labü foyümot at]]',
 'searchprofile-articles' => 'Ninädapads',
 'searchprofile-project' => 'Yufa e Proyegapads',
@@ -960,6 +1017,7 @@ Kontrololös, va votükam at okipon fovöfi padajenotema.',
 'skin-preview' => 'Büologed',
 'datedefault' => 'Buükam nonik',
 'prefs-datetime' => 'Dät e Tim',
+'prefs-user-pages' => 'Gebanapads',
 'prefs-personal' => 'Gebananüns',
 'prefs-rc' => 'Votükams nulik',
 'prefs-watchlist' => 'Galädalised',
@@ -974,7 +1032,6 @@ Kontrololös, va votükam at okipon fovöfi padajenotema.',
 'resetprefs' => 'Buükams rigik',
 'restoreprefs' => 'Geikön lü paramets kösömik valik',
 'prefs-editing' => 'Redakam',
-'prefs-edit-boxsize' => 'Gretot redakamafenäta.',
 'rows' => 'Kedets:',
 'columns' => 'Padüls:',
 'searchresultshead' => 'Suk',
@@ -1011,6 +1068,7 @@ Kontrololös, va votükam at okipon fovöfi padajenotema.',
 'username' => '{{GENDER:$1|Gebananem}}:',
 'uid' => 'Gebanadientif:',
 'prefs-memberingroups' => '{{GENDER:$2|Liman}} {{PLURAL:$1|grupa|grupas}}:',
+'prefs-registration' => 'Tim registarama:',
 'yourrealname' => 'Nem jenöfik *:',
 'yourlanguage' => 'Pük:',
 'yournick' => 'Dispenäd nulik:',
@@ -1022,8 +1080,7 @@ Muton labön {{PLURAL:$1|malati|malatis}} läs $1.',
 'gender-female' => 'Vomik',
 'email' => 'Ladet leäktronik',
 'prefs-help-realname' => 'Nem jenöfik no binon zesüdik. If vilol givön oni, pogebon ad dasevön vobi olik.',
-'prefs-help-email' => 'Ladet leäktronik no peflagon, ab dälon sedi letavöda nulik ole üf glömol letavödi olik.
-Dalol i dälön votikanes kosikön ko ol yufü gebana- u bespikapad olik nes sävilupol dientifi olik.',
+'prefs-help-email' => 'Ladet leäktronik no peflagon, ab dälon sedi letavöda nulik ole üf glömol letavödi olik.',
 'prefs-help-email-required' => 'Ladet leäktronik paflagon.',
 'prefs-info' => 'Nüns stabik',
 'prefs-signature' => 'Dispenäd',
@@ -1184,6 +1241,7 @@ Dalol i dälön votikanes kosikön ko ol yufü gebana- u bespikapad olik nes sä
 'recentchanges-label-newpage' => 'Redakam at päjafon pad nulik',
 'recentchanges-label-minor' => 'Atos binon redakam pülik',
 'recentchanges-label-bot' => 'Redakam at pädunon fa el bot',
+'recentchanges-label-unpatrolled' => 'Redakam at no nog pekontrolon',
 'rcnote' => "Dono {{PLURAL:$1|binon votükam '''1'''|binons votükams '''$1'''}} lätikün {{PLURAL:$2|dela|delas '''$2'''}} lätikün, pänumädöls tü $5, $4.",
 'rcnotefrom' => "Is palisedons votükams sis '''$2''' (jü '''$1''').",
 'rclistfrom' => 'Jonön votükamis nulik, primölo tü düp $1',
@@ -1213,7 +1271,6 @@ Dalol i dälön votikanes kosikön ko ol yufü gebana- u bespikapad olik nes sä
 'recentchangeslinked-feed' => 'Votükams teföl',
 'recentchangeslinked-toolbox' => 'Votükams teföl',
 'recentchangeslinked-title' => 'Votükams tefü pad: "$1"',
-'recentchangeslinked-noresult' => 'Pads ad pad at peyümöls no pevotükons ün period at.',
 'recentchangeslinked-summary' => "Su pad patik at palisedons votükams padas, lü kels pad pevälöl yumon.
 If ye pad pevälöl binon klad, palisedons is votükams nulik padas in klad at.
 Pads [[Special:Watchlist|galädaliseda olik]] '''pakazetons'''.",
@@ -1338,6 +1395,7 @@ Klikolös tiädi padüla ad votükön sökaleodi at.',
 'listfiles_search_for' => 'Sukön ragivanemi:',
 'imgfile' => 'ragiv',
 'listfiles' => 'Ragivalised',
+'listfiles_thumb' => 'Magodil',
 'listfiles_date' => 'Dät',
 'listfiles_name' => 'Nem',
 'listfiles_user' => 'Geban',
@@ -1368,8 +1426,11 @@ Lised dono jonon {{PLURAL:$1|padayümi balid|padayümis balid $1}} te lü ragiv
 [[Special:WhatLinksHere/$2|Lised lölöfik]] gebidon.',
 'nolinkstoimage' => 'Pads nonik peyümons ad ragiv at.',
 'morelinkstoimage' => 'Logolös [[Special:WhatLinksHere/$1|yümis pluik]] ad ragiv at.',
+'linkstoimage-redirect' => '$1 (lüodükam ragiva) $2',
 'duplicatesoffile' => '{{Plural:$1|Ragiv fovik leigon|Ragivs fovik $1 leigons}} ko ragiv at ([[Special:FileDuplicateSearch/$2|nüns pluik]]):',
 'sharedupload' => 'Ragiv at binon se $1 e kanon pagebön fa proyegs votik.',
+'sharedupload-desc-here' => 'Ragiv at kömon de $1 e kanon pagebön fa proyegs votik.
+Bepenot su [$2 pad bepenota ragiva] onik pajonon dono.',
 'uploadnewversion-linktext' => 'Löpükön fomami nulik ragiva at',
 'shared-repo-from' => 'se $1',
 
@@ -1453,6 +1514,8 @@ Primanünods: ninädasot/donasot, a.s. <code>image/jpeg</code>.',
 Sötons plao payümon lü yeged pötik.<br />
 Pad palelogon telplänovapad if gebon samafomoti, lü kel payümon pad [[MediaWiki:Disambiguationspage]].",
 
+'pageswithprop-submit' => 'Golön',
+
 'doubleredirects' => 'Lüodüköms telik',
 'doubleredirectstext' => 'Kedet alik labon yümis lü lüodüköm balid e telid, ed i kedeti balid vödema lüodüköma telid, kel nomiko ninädon padi, ko kel lüodüköm balid söton payümön.',
 'double-redirect-fixed-move' => 'Pad: [[$1]] petopätükon, anu binon lüodüköm lü pad: [[$2]]',
@@ -1542,7 +1605,7 @@ Pad palelogon telplänovapad if gebon samafomoti, lü kel payümon pad [[MediaWi
 'specialloguserlabel' => 'Geban:',
 'speciallogtitlelabel' => 'Lükömöp (tiäd u geban):',
 'log' => 'Jenotaliseds',
-'all-logs-page' => 'Jenotaliseds valik',
+'all-logs-page' => 'Jenotaliseds notidik valik',
 'alllogstext' => 'Kobojonam jenotalisedas gebidik valik in {{SITENAME}}.
 Ad brefükam lisedi, kanol välön lisedasoti, gebananemi, u padi tefik.',
 'logempty' => 'No dabinons notets in jenotalised at.',
@@ -1662,7 +1725,6 @@ If vilol poso moükön padi de galädalised olik, välolös lä on knopi: „neg
 'unwatchthispage' => 'No plu galädön',
 'notanarticle' => 'No binon pad ninädilabik',
 'notvisiblerev' => 'Fomam pemoükon',
-'watchnochange' => 'Nonik padas pagalädöl olik peredakon dü period löpo pejonöl.',
 'watchlist-details' => '{{PLURAL:$1|pad $1|pads $1}} su galädalised, plä bespikapads.',
 'wlheader-enotif' => 'Nunam medü pot leäktronik pemögükon.',
 'wlheader-showupdated' => "Pads pos visit lätik ola pevotüköls papenons '''me tonats bigik'''",
@@ -1722,7 +1784,8 @@ Küpets e yuf pluik:
 'delete-legend' => 'Moükön',
 'historywarning' => 'Nuned: pad, keli vilol moükön, labon jenotemi:',
 'confirmdeletetext' => 'Primikol ad moükön laidüpiko padi u magodi sa jenotem valik ona. Fümedolös, das desinol ad dunön atosi, das suemol sekis, e das dunol atosi bai [[{{MediaWiki:Policy-url}}]].',
-'actioncomplete' => 'Peledunon',
+'actioncomplete' => 'Dunot eplöpon',
+'actionfailed' => 'Dunot eneplöpon',
 'deletedtext' => 'Pad: "$1" pemoükon;
 $2 jonon moükamis nulik.',
 'dellogpage' => 'Jenotalised moükamas',
@@ -1880,7 +1943,7 @@ $1',
 'mycontris' => 'Keblünots',
 'contribsub2' => 'Tefü $1 ($2)',
 'nocontribs' => 'Votükams nonik petuvons me paramets at.',
-'uctop' => '(lätik)',
+'uctop' => '(anuik)',
 'month' => 'De mul (e büiks):',
 'year' => 'De yel (e büiks):',
 
@@ -1889,6 +1952,7 @@ $1',
 'sp-contributions-newbies-title' => 'Gebanakeblünots pro kals nulik',
 'sp-contributions-blocklog' => 'Jenotalised blokamas',
 'sp-contributions-deleted' => 'gebanakeblünots pemoüköl',
+'sp-contributions-uploads' => 'löpükams',
 'sp-contributions-logs' => 'jenotaliseds',
 'sp-contributions-talk' => 'bespik',
 'sp-contributions-userrights' => 'guvam gebanagitätas',
@@ -1946,10 +2010,12 @@ $1',
 'ipbhidename' => 'Klänedön gebananemi se redakams e liseds',
 'ipbwatchuser' => 'Galädon gebana- e bespikapadis gebana at',
 'ipb-change-block' => 'Dönublokön gebani me paramets at',
+'ipb-confirm' => 'Fümedön blokami',
 'badipaddress' => 'Ladet-IP no lonöfon',
 'blockipsuccesssub' => 'Blokam eplöpon',
-'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] peblokon.
-<br />Logolös [[Special:BlockList|lisedi ladetas-IP pebloköl]] ad vestigön blokamis.',
+'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] peblokon.<br />
+Logolös [[Special:BlockList|lisedi blokamas]] ad vestigön blokamis.',
+'ipb-blockingself' => 'Oblokön oli it! Fümol-li, das vilol dunön atosi?',
 'ipb-edit-dropdown' => 'Redakön kodis blokama',
 'ipb-unblock-addr' => 'Säblokön eli $1',
 'ipb-unblock' => 'Säblokön gebananemi u ladeti-IP',
@@ -1961,6 +2027,7 @@ $1',
 'unblocked' => '[[User:$1|$1]] pesäblokon',
 'unblocked-range' => '$1 pesäblokon',
 'unblocked-id' => 'Blokam: $1 pesädunon',
+'blocklist' => 'Gebans pebloköl',
 'ipblocklist' => 'Gebans pebloköl',
 'ipblocklist-legend' => 'Tuvön gebani pebloköl',
 'blocklist-reason' => 'Kod',
@@ -2032,16 +2099,19 @@ No glömolös ad [[Special:UnlockDB|maifükön oni]] ven ufinükol vobi olik.',
 'unlockdbsuccesstext' => 'Nünodem pemaifükon.',
 'lockfilenotwritable' => 'Ragiv lökofärmükamas no votükovon. Ad lökofärmükön u maifükön nünodemi, ragiv at muton binön votükovik (dub dünanünöm).',
 'databasenotlocked' => 'Vük at no pefärmükon.',
+'lockedbyandtime' => '(fa {{GENDER:$1|$1}} tü $2 düp $3)',
 
 # Move page
 'move-page' => 'Topätükön padi: $1',
 'move-page-legend' => 'Topätükolöd padi',
-'movepagetext' => "Me fomet at kanoy votükön padanemi, ottimo feapladölo jenotemi lölöfik ona disi nem nulik. Tiäd büik ovedon lüodüköm lü tiäd nulik. Yüms lü padatiäd büik no povotükons; kontrolös dabini lüodükömas telik u dädikas. Gididol ad garanön, das yüms blebons lüodükön lü pads, lü kels mutons lüodükön.
+'movepagetext' => "Me fomet at kanoy votükön padanemi, ottimo feapladölo jenotemi lölöfik ona disi nem nulik. Tiäd büik ovedon lüodüköm lü tiäd nulik. Yüms lü padatiäd büik no povotükons; kontrolös dabini [[Special:DoubleRedirects|lüodükömas telik]] u [[Special:BrokenRedirects|dädikas]]. Gididol ad garanön, das yüms blebons lüodükön lü pads, lü kels mutons lüodükön.
 
-Küpälolös, das pad '''no''' potopätükon if ya dabinon pad labü tiäd nulik, bisä vagon u binon lüodüköm e no labon jenotemi. Atos sinifon, das, if pölol, nog kanol gepladön padi usio, kö äbinon büo, e das no kanol pladön padi nulik sui pad ya dabinöl.
+Küpälolös, das pad '''no''' potopätükon if ya dabinon pad labü tiäd nulik, bisä vagon u binon lüodüköm e no labon jenotemi.
+Atos sinifon, das, if pölol, nog kanol gepladön padi usio, kö äbinon büo, e das no kanol pladön padi nulik sui pad ya dabinöl.
 
-<b>NUNED!</b>
-Votükam at kanon binön mu staböfik ä no paspetöl pö pad pöpedik. Suemolös, begö! gudiko sekis duna at büä ofövol oni.",
+'''Nuned!'''
+Votükam at kanon binön mu staböfik ä no paspetöl pö pad pöpedik;
+suemolös, begö! gudiko sekis duna at büä ofövol oni.",
 'movepagetalktext' => "Bespikapad tefik potopätükön itjäfidiko kobü pad at '''pläsif:'''
 * bespikapad no vägik labü tiäd nulik ya dabinon, u
 * vagükol anu bokili dono.
@@ -2250,6 +2320,7 @@ Dakipolös oni su nünöm olik e löpükolös oni isio.',
 'tooltip-rollback' => '„Sädunön vali“ sädunon redakami(s) pada at fa keblünan lätik me klik bal mugaparata.',
 'tooltip-undo' => '"Sädunön bali" sädunon redakami at e maifükön redakamafometi as büologed.
 Dälon läükami koda.',
+'tooltip-summary' => 'Penolös pläni brefik',
 
 # Stylesheets
 'common.css' => '/** El CSS isio peplädöl pogebon pro padafomäts valik */',
@@ -2282,6 +2353,8 @@ Pad luveratiko ninädon yümi lü bevüresodatopäd plödik in blägalised.',
 
 # Info page
 'pageinfo-header-edits' => 'Jenotem redakamas',
+'pageinfo-contentpage-yes' => 'Si',
+'pageinfo-protect-cascading-yes' => 'Si',
 
 # Patrolling
 'markaspatrolleddiff' => 'Zepön',
@@ -2324,6 +2397,7 @@ If ojäfidükol oni, nünömasit olik ba podämükon.",
 'file-info-size' => '$1 × $2 pixel, ragivagret: $3, pated MIME: $4',
 'file-nohires' => 'Gretot gudikum no pagebidon.',
 'svg-long-desc' => 'ragiv in fomät: SVG, magodaziöbs $1 × $2, gretot: $3',
+'svg-long-error' => "Ragiv 'SVG' ne lonöfon: $1",
 'show-big-image' => 'Gretot gudikün',
 
 # Special:NewFiles
@@ -2343,6 +2417,23 @@ If ojäfidükol oni, nünömasit olik ba podämükon.",
 'minutes' => '{{PLURAL:$1|minut 1|minuts $1}}',
 'hours' => '{{PLURAL:$1|düp 1|düps $1}}',
 'days' => '{{PLURAL:$1|del 1|dels $1}}',
+'months' => '{{PLURAL:$1|mul $1|muls $1}}',
+'years' => '{{PLURAL:$1|yel $1|yels $1}}',
+'ago' => 'bü $1',
+'just-now' => 'anu',
+
+# Human-readable timestamps
+'hours-ago' => 'bü {{PLURAL:$1|düp|düps}} $1',
+'minutes-ago' => 'bü {{PLURAL:$1|minut|minuts}} $1',
+'seconds-ago' => 'bü {{PLURAL:$1|sekun|sekuns}} $1',
+'monday-at' => 'Tü mudel düp $1',
+'tuesday-at' => 'Tü tudel düp $1',
+'wednesday-at' => 'Tü vedel düp $1',
+'thursday-at' => 'Tü dödel düp $1',
+'friday-at' => 'Tü fridel düp $1',
+'saturday-at' => 'Tü zädel düp $1',
+'sunday-at' => 'Tü sudel düp $1',
+'yesterday-at' => 'Ädelo düp $1',
 
 # Bad image list
 'bad_image_list' => 'Fomät pabevobon ön mod soik:
@@ -2479,6 +2570,7 @@ Nünabinets votik poklänedons.
 'exif-gpsareainformation' => 'Nem topäda: GPS',
 'exif-gpsdatestamp' => 'Dät ela GPS',
 'exif-source' => 'Fonät',
+'exif-writer' => 'Penan',
 'exif-languagecode' => 'Pük',
 'exif-iimcategory' => 'Klad',
 
@@ -2595,10 +2687,18 @@ Nünabinets votik poklänedons.
 'exif-gpsspeed-m' => 'Liöls a düp',
 'exif-gpsspeed-n' => 'Snobs',
 
+# Pseudotags used for GPSDestDistanceRef
+'exif-gpsdestdistance-k' => 'Milmets',
+'exif-gpsdestdistance-m' => 'Liöls',
+
 # Pseudotags used for GPSTrackRef, GPSImgDirectionRef and GPSDestBearingRef
 'exif-gpsdirection-t' => 'Lüod veratik',
 'exif-gpsdirection-m' => 'Lüod magnetik',
 
+'exif-dc-date' => 'Dät(s)',
+'exif-dc-publisher' => 'Püban',
+
+'exif-iimcategory-spo' => 'Spots',
 'exif-iimcategory-wea' => 'Stom',
 
 # External editor support
@@ -2731,10 +2831,15 @@ Kanol i [[Special:EditWatchlist|gebön redakametodi kösömik]].',
 'version-hook-subscribedby' => 'Pagebon fa',
 'version-version' => '(Fomam $1)',
 'version-license' => 'Dälazöt',
+'version-poweredby-others' => 'votikans',
 'version-software' => 'Programs pestitöl',
 'version-software-product' => 'Prodäd',
 'version-software-version' => 'Fomam',
 
+# Special:Redirect
+'redirect-submit' => 'Golön',
+'redirect-file' => 'Ragivanem',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Sukön ragivis petelüköl',
 'fileduplicatesearch-summary' => 'Sukön ragivis petelüköl stabü völad kontrolasaedota onsik.',
@@ -2768,6 +2873,7 @@ Kanol i [[Special:EditWatchlist|gebön redakametodi kösömik]].',
 'intentionallyblankpage' => 'Pad at pevagükon desino',
 
 # Special:Tags
+'tag-filter' => '[[Special:Tags|Sul]] ninädapenetas:',
 'tag-filter-submit' => 'Sul',
 'tags-display-header' => 'Logot in votükamaliseds',
 'tags-edit' => 'redakön',
@@ -2792,14 +2898,30 @@ Kanol i [[Special:EditWatchlist|gebön redakametodi kösömik]].',
 'htmlform-submit' => 'Sedön',
 'htmlform-reset' => 'Sädunön votükamis',
 'htmlform-selectorother-other' => 'Votik',
+'htmlform-no' => 'Nö',
+'htmlform-yes' => 'Si',
 
 # New logging system
 'revdelete-restricted' => 'miedükams pelonöfükons pro guvans',
 'revdelete-unrestricted' => 'miedükams pro guvans pemoükons',
 'rightsnone' => '(nonik)',
 
+# Feedback
+'feedback-subject' => 'Yegäd:',
+
 # Search suggestions
 'searchsuggest-search' => 'Suk',
 'searchsuggest-containing' => 'ninädöl...',
 
+# Durations
+'duration-seconds' => '{{PLURAL:$1|sekun|sekuns}} $1',
+'duration-minutes' => '{{PLURAL:$1|minut|minuts}} $1',
+'duration-hours' => '{{PLURAL:$1|düp|düps}} $1',
+'duration-days' => '{{PLURAL:$1|del|dels}} $1',
+'duration-weeks' => '{{PLURAL:$1|vig|vigs}} $1',
+'duration-years' => '{{PLURAL:$1|yel|yels}} $1',
+'duration-decades' => '{{PLURAL:$1|degyel|degyels}} $1',
+'duration-centuries' => '{{PLURAL:$1|tumyel|tumyels}} $1',
+'duration-millennia' => '{{PLURAL:$1|milyel|milyels}} $1',
+
 );
index cfe4728..279b9da 100644 (file)
@@ -166,7 +166,6 @@ $messages = array(
 'disclaimers' => 'Ceeltümin vassamizõõ',
 'disclaimerpage' => 'Project:Ceeltümin vassamizõõ',
 'edithelp' => 'Muutuzavid',
-'edithelppage' => 'Help:Kui muuttaa cülciä',
 'helppage' => 'Help:Sisälto',
 'mainpage' => 'Esicülci',
 'mainpage-description' => 'Esicülci',
@@ -485,7 +484,6 @@ Proovvi lizät etsün alkuu ''all:'', nii ettsü etsib kõikkõõ sisältoo (taa
 'recentchangeslinked-feed' => 'Sukulaizõd muutussõd',
 'recentchangeslinked-toolbox' => 'Sukulaizõd muutussõd',
 'recentchangeslinked-title' => 'Cüľľelt $1 linkitettüďďe cülcije muutuhsõd.',
-'recentchangeslinked-noresult' => 'Cüseizez aigakõhaz eväd õltu milliziitäid muuttumiziit.',
 'recentchangeslinked-summary' => "Kase osoobennoi cülci näütteb muutusõd cülcillä, kummalõõ on seltä cüľľeltä näüteltü.
 Cüľľed, kummad õmad teďďellä [[Special:Watchlist|kattsõspiizgalla]] on cirjuttõnnu '''pimmiässi'''.",
 'recentchangeslinked-page' => 'Cüľľee nimi:',
index a715c85..64b0535 100644 (file)
@@ -280,7 +280,6 @@ $1",
 'disclaimers' => 'Hoiatuisi',
 'disclaimerpage' => 'Project:Üledseq hoiatusõq',
 'edithelp' => 'Toimõndamisoppus',
-'edithelppage' => 'Help:Kuis_artiklit_toimõndaq',
 'helppage' => 'Help:Oppus',
 'mainpage' => 'Pääleht',
 'mainpage-description' => 'Pääleht',
@@ -775,7 +774,6 @@ Lisateedüst või ollaq [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAME
 'shown-title' => 'Näütäq lehe kotsilõ $1 {{PLURAL:$1|tulõmus|tulõmust}}',
 'viewprevnext' => 'Näütäq ($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-new' => "'''Luuq leht päälkiräga \"[[:\$1]]\".'''",
-'searchhelp-url' => 'Help:Oppus',
 'searchprofile-articles' => 'Sisuleheq',
 'searchprofile-project' => 'Abi- ja projektileheq',
 'searchprofile-images' => 'Multimeediä',
@@ -987,7 +985,6 @@ Taa tohe-i ollaq rohkõmb ku $1 {{PLURAL:$1|märk|märki}}.",
 'recentchangeslinked-feed' => 'Siiäq putvaq muutmisõq',
 'recentchangeslinked-toolbox' => 'Siiäq putvaq muutmisõq',
 'recentchangeslinked-title' => 'Muutusõq noidõ lehti pääl, kohe näüdätäs lähe päält "$1"',
-'recentchangeslinked-noresult' => 'Taaha putvit lehti olõ-i taa ao seen muudõt.',
 'recentchangeslinked-summary' => "Taan nimekirän ommaq noidõ lehti muutmisõq, mink pääle näütäs seo lehe päält linke. Naad leheq ommaq [[Special:Watchlist|perräkaemisnimekirän]] märgidüq '''paksu kiräga'''.",
 'recentchangeslinked-page' => 'Lehe nimi:',
 'recentchangeslinked-to' => 'Näütäq muutmiisi noidõ lehti pääl, kon om näütämiisi seo lehe pääle',
@@ -1319,7 +1316,6 @@ ja sul piät umin [[Special:Preferences|säädmiisin]] olõma e-postiaadrõs, et
 'unwatch' => 'Lõpõdaq perräkaeminõ ärq',
 'unwatchthispage' => 'Lõpõdaq perräkaeminõ ärq',
 'notanarticle' => 'Olõ-i artikli',
-'watchnochange' => 'Taa ao seen olõ-i üttegi perräkaetavat lehte muudõt.',
 'watchlist-details' => 'Perräkaemisnimekirän om {{PLURAL:$1|$1 leht|$1 lehte}}, rehkendämäldä arotuslehti.',
 'wlheader-enotif' => 'E-postiga teedäqandmisõq ommaq käügin.',
 'wlheader-showupdated' => "Leheq, midä om muudõt päält su viimäst käümist, ommaq '''paksun kirän'''",
index 7a8020f..c37d042 100644 (file)
@@ -305,7 +305,6 @@ $1",
 'currentevents' => 'Actouwålités',
 'currentevents-url' => 'Project:Actouwålités',
 'edithelp' => 'Aidance',
-'edithelppage' => 'Help:Kimint candjî ene pådje',
 'helppage' => 'Help:Aidance',
 'mainpage' => 'Mwaisse pådje',
 'mainpage-description' => 'Mwaisse pådje',
@@ -513,10 +512,8 @@ Motoit ki vos l' avoz ddja candjî ou ridmandé on novea scret timporaire.",
 
 # Special:PasswordReset
 'passwordreset' => "Rifé l' sicret",
-'passwordreset-text' => 'Completez cisse formulrece ci po rçure èn emile ki dene les detays do conte da vosse.',
 'passwordreset-legend' => "Rifé l' sicret",
 'passwordreset-disabled' => "Li rfijhaedje di screts a stî dismetou so ç' wiki ci.",
-'passwordreset-pretext' => '{{PLURAL:$1||Dinez onk des elemints di dnêyes shuvants}}',
 'passwordreset-username' => "No d' elodjaedje:",
 'passwordreset-domain' => 'Dominne:',
 'passwordreset-capture' => "Vey li messaedje di l' emile?",
@@ -818,7 +815,6 @@ Les ôtes manaedjeus so {{SITENAME}} pôront todi vey li contnou catchî eyet l'
 'searchmenu-legend' => 'Tchuzes di cweraedje',
 'searchmenu-exists' => "'''Gn a ddja ene pådje lomêye « [[:$1]] » so ç' wiki ci'''",
 'searchmenu-new' => "'''Ahiver l' pådje \"[[:\$1]]\" so ç' wiki ci!'''",
-'searchhelp-url' => 'Help:Aidance',
 'searchprofile-articles' => 'Pådjes di contnou',
 'searchprofile-project' => "Pådjes d' aidance et do pordjet",
 'searchprofile-images' => 'Multimedia',
@@ -921,7 +917,6 @@ Vos ploz sayî di mete «all:» pa dvant l' tecse a cweri po cweri dins tot l' c
 'prefs-reset-intro' => "Vos ploz eployî ç' boton chal po rmete totes vos preferinces åzès prémetowès valixhances del waibe.
 Çoul n' pôrè nén esse disfwait.",
 'prefs-emailconfirm-label' => "Acertinaedje di l' emile:",
-'prefs-textboxsize' => 'Grandeu del boesse di tecse',
 'youremail' => 'Vost emile:',
 'username' => "No d' elodjaedje:",
 'uid' => "Limero d' l' uzeu:",
@@ -1462,7 +1457,6 @@ Si vos vloz bodjî l' pådje foû di vosse djivêye des shuvous, clitchîz so «
 'unwatch' => 'Èn pus shuve',
 'unwatchthispage' => 'Èn pus shuve li pådje',
 'notanarticle' => 'Nén èn årtike',
-'watchnochange' => "Nole des pådjes di vosse djivêye di pådjes a shuve n' a stî candjeye dins l' termene di tins dmandêye.",
 'watchlist-details' => 'Vos avoz {{PLURAL:$1|$1 pådje shuvowe|$1 pådjes shuvowes}} (sins conter les pådjes di copene).',
 'wlheader-enotif' => 'Li notifiaedje pa emile est en alaedje.',
 'wlheader-showupdated' => "Les pådjes k' ont candjî dispoy vosse dierinne vizite sont metowes e '''cråssès letes'''",
index 38f0cdd..bdfa35e 100644 (file)
@@ -307,7 +307,6 @@ $1',
 'disclaimers' => 'Mga Disclaimer',
 'disclaimerpage' => 'Project:Kasahiran nga disclaimer',
 'edithelp' => 'Bulig hin pagliwat',
-'edithelppage' => 'Help:Pagliwat',
 'helppage' => 'Help:Sulod',
 'mainpage' => 'Syahan nga Pakli',
 'mainpage-description' => 'Syahan nga Pakli',
@@ -337,7 +336,6 @@ $1',
 'newmessagesdifflinkplural' => '$1 {{PLURAL:$1|nga pagbag-o|nga mga pagbag-o}}',
 'youhavenewmessagesmulti' => 'Mayda ka mga bag-o nga mensahe ha $1',
 'editsection' => 'igliwat',
-'editsection-brackets' => '[$1]',
 'editold' => 'igliwat',
 'viewsourceold' => 'kitaa an ginkuhaan',
 'editlink' => 'igliwat',
@@ -596,7 +594,6 @@ Ikaw in naglalog-in yana...',
 
 # Special:PasswordReset
 'passwordreset' => 'igreset an tigaman-hit-pagsulod',
-'passwordreset-text' => 'Kumpletoha ini nga porma para makareset han imo password.',
 'passwordreset-legend' => 'igreset an tigaman-hit-pagsulod',
 'passwordreset-disabled' => 'Waray ginpaandar an password reset hini nga wiki.',
 'passwordreset-username' => 'Agnay hiton gumaramit:',
@@ -853,7 +850,6 @@ Diri mo ini malalabtan.',
 'searchmenu-legend' => 'Mga pagpipilian han pamiling',
 'searchmenu-exists' => "'''May-ada pakli nga nakangaran hin \"[[:\$1]]\" hini nga wiki.'''",
 'searchmenu-new' => "'''Himoa an pakli \"[[:\$1]]\" hini nga wiki!'''",
-'searchhelp-url' => 'Help:Sulod',
 'searchprofile-articles' => 'Mga unod nga pakli',
 'searchprofile-project' => 'Mga Bulig ngan Proyekto nga pakli',
 'searchprofile-images' => 'Multimedia',
@@ -915,7 +911,6 @@ Ginpapasabot nga an sulod han mga panudlok han {{SITENAME}} in bangin daan an.',
 'resetprefs' => 'Pabay-i an diri nakatipig nga mga pagbabag-o',
 'restoreprefs' => 'Igbalik ngatanan ngada ha kahimtang nga aada-nga-daan',
 'prefs-editing' => 'Ginliliwat',
-'prefs-edit-boxsize' => 'Kadako han bintana han pagliwat.',
 'rows' => 'Mga rumbay pahigda:',
 'columns' => 'Mga rumbay patindog:',
 'searchresultshead' => 'Bilnga',
@@ -943,7 +938,6 @@ Ginpapasabot nga an sulod han mga panudlok han {{SITENAME}} in bangin daan an.',
 'default' => 'aada-nga-daan',
 'prefs-files' => 'Mga paypay',
 'prefs-emailconfirm-label' => 'Kompirmasyon han email:',
-'prefs-textboxsize' => 'Kadako han editing window',
 'youremail' => 'E-mail:',
 'username' => '{{HENERO:$1|Agnay hit gumaramit}}:',
 'uid' => 'ID hit {{HENERO:$1|Gumaramit}}:',
@@ -1132,7 +1126,6 @@ Diri ka gintutugotan pagliwat han mga katungod han gumaramit ha iba nga mga wiki
 'recentchangeslinked-feed' => 'Mga may kalabotan nga binag-o',
 'recentchangeslinked-toolbox' => 'Mga may kalabotan nga binag-o',
 'recentchangeslinked-title' => "Mga pagbag-o kasumpay ha ''$1''",
-'recentchangeslinked-noresult' => 'Waray pagbabag-o ha mga nakasumpay nga pakli han ginhatag nga oras.',
 'recentchangeslinked-summary' => "Ini nga taramdan hin pagbag-o nga lab-as nga hinimo ha mga pakli nga nakasumpay tikang a naka-specifico nga pakli (o ha api han uska specifico nga kaarangay).
 Mga pakli ha [[Special:Watchlist|imo angay timan-an]] in naka-'''bold'''.",
 'recentchangeslinked-page' => 'Ngaran han pakli:',
index b9bede3..90febdc 100644 (file)
@@ -309,7 +309,6 @@ $1',
 'disclaimers' => 'Ay aartu',
 'disclaimerpage' => 'Project:Aartu yu daj',
 'edithelp' => 'Ndimbal',
-'edithelppage' => 'Help:Nooy soppee aw xët',
 'helppage' => 'Help:Ndimbal',
 'mainpage' => 'Xëtu Njëlbéen',
 'mainpage-description' => 'Xët wu njëkk',
@@ -880,7 +879,6 @@ Soo jëfandikoo lëkkalekaayu joow yi day neenal boyot yi nga jotoon a fal.',
 'searchmenu-legend' => 'Tànneefi ceet',
 '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 !'''",
-'searchhelp-url' => 'Help:Ndimbal',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Xoolal xët wi tambalee nii]]',
 'searchprofile-articles' => 'Xëti ëmbiit',
 'searchprofile-project' => 'Xëti Ndimbal ak Sémb',
@@ -946,7 +944,6 @@ Jéemala bindaale ''all'' ngir seet ci biir ëmbit gépp (boolewaale ci xëti wa
 'resetprefs' => 'Loppanti tànneef yi',
 'restoreprefs' => 'Delloo say tànneef nañu meloon ca sag mbindu',
 'prefs-editing' => 'Boyotu coppite',
-'prefs-edit-boxsize' => 'Dayoo palanteeru coppite bi.',
 'rows' => 'Rëdd:',
 'columns' => 'Kenu :',
 'searchresultshead' => 'Seet',
@@ -983,7 +980,6 @@ Jéemala bindaale ''all'' ngir seet ci biir ëmbit gépp (boolewaale ci xëti wa
 'prefs-custom-js' => 'JavaScript yees jëmmal',
 'prefs-reset-intro' => 'Man ngaa jëfandikoo wii xët ngir delloowaat coppitey say tànneef delloo leen ci yi dal bi wàccaale. Doo ko man a neenal.',
 'prefs-emailconfirm-label' => 'Dëggalug sa m-bataaxal :',
-'prefs-textboxsize' => 'Dayoob palanteerub coppite bi',
 'youremail' => 'Sa màkkaanub m-bataaxal :',
 'username' => 'Turu jëfandikukat :',
 'uid' => 'Limu Jëfandikukat :',
@@ -1196,7 +1192,6 @@ Jéemala bindaale ''all'' ngir seet ci biir ëmbit gépp (boolewaale ci xëti wa
 'recentchangeslinked-feed' => 'Coppite yi ko ñeel',
 'recentchangeslinked-toolbox' => 'Coppite yi ko ñeel',
 'recentchangeslinked-title' => 'Coppite yi ñeel $1',
-'recentchangeslinked-noresult' => 'Benn coppite amul ci xët yi mu lëkkalool ci diir bi nga wax.',
 'recentchangeslinked-summary' => "Wii xëtu jagleel moo lay won coppite yu mujj ci xët yi lëkkalook wii. Xët yi ci sa [[Special:Watchlist|limu toppte]] ñoo '''duuf'''.",
 'recentchangeslinked-page' => 'Turu xët wi :',
 'recentchangeslinked-to' => 'Wone coppite yi ñeel xët yi lëkkalook xët wi nga joxe',
@@ -1592,7 +1587,6 @@ Coppite yiy ñëw yu xët wi ak xëtu waxtaanuwaay wi mu àndal di nañu leen fa
 'watchthispage' => 'Topp xët wii',
 'unwatch' => 'Bul toppati',
 'unwatchthispage' => 'Bul toppati',
-'watchnochange' => 'Lenn ci xët yi ngay topp soppikuwul ci diir bii',
 'watchlist-details' => 'Topp nga $1 {{PLURAL:$1|xët|ciy xët}}, soo waññiwaalewul xëti waxtaanuwaay yi.',
 'wlheader-showupdated' => 'Xët yi ñu soppiwoon ca sa duggu bu mujj ñoom la ñu fesal ñu <b>xëm</b>',
 'watchmethod-recent' => 'saytug coppite yu mujj yu xët yi ngay topp',
index 36e57dc..6e4690f 100644 (file)
@@ -247,7 +247,6 @@ $1',
 'disclaimers' => '免责声明',
 'disclaimerpage' => 'Project:免责声明',
 'edithelp' => '编辑帮助',
-'edithelppage' => 'Help:如何编辑页面',
 'helppage' => 'Help:目录',
 'mainpage' => '封面',
 'mainpage-description' => '封面',
@@ -857,7 +856,6 @@ $1",
 'searchmenu-legend' => '搜索选项',
 'searchmenu-exists' => "'''垃拉箇只wiki高头已经有只页面叫“[[:$1]]”哉'''",
 'searchmenu-new' => "'''垃拉该wiki里向新建页面“[[:$1]]”!'''",
-'searchhelp-url' => 'Help:目录',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|浏览带箇只前缀个页面]]',
 'searchprofile-articles' => '内容页面',
 'searchprofile-project' => '帮助搭仔项目页面',
@@ -926,7 +924,6 @@ $1",
 'resetprefs' => '清除弗曾保存个更改',
 'restoreprefs' => '恢复所有默认设置',
 'prefs-editing' => '编辑',
-'prefs-edit-boxsize' => '编辑框尺寸',
 'rows' => '行:',
 'columns' => '列:',
 'searchresultshead' => '搜索',
index 77254aa..67a899c 100644 (file)
@@ -287,7 +287,6 @@ $1',
 'disclaimers' => 'Дааврас эс зөвшәрлһн',
 'disclaimerpage' => 'Project:Даарас эс зөвшәрлһн',
 'edithelp' => 'Чикллһнә дөң',
-'edithelppage' => 'Help:Чикллһн',
 'helppage' => 'Help:Һарг',
 'mainpage' => 'Нүр халх',
 'mainpage-description' => 'Нүр халх',
@@ -745,7 +744,6 @@ $1',
 'recentchangeslinked-feed' => 'Садта чикллһн',
 'recentchangeslinked-toolbox' => 'Садта чикллһн',
 'recentchangeslinked-title' => '$1 садта сольлһн',
-'recentchangeslinked-noresult' => 'Садта халх заасн цагт сольсн уга',
 'recentchangeslinked-summary' => "Эн тер халх заалдг халхсин (аль тер янзин халхсин) шидрә сольлһн.
 Тана [[Special:Watchlist|шинҗллһнә сеткүлин]] халхс '''тарһн''' бичәтә.",
 'recentchangeslinked-page' => 'Халхна нернь:',
index f0ab960..5b1c9d1 100644 (file)
@@ -190,7 +190,6 @@ $messages = array(
 'disclaimers' => 'გამამინჯალაშ ვარება',
 'disclaimerpage' => 'Project:გამამინჯალაშ ვარება',
 'edithelp' => 'მოხვარა რედაქტირაფას',
-'edithelppage' => 'Help:ტექსტიშ რედაქტირაფა',
 'helppage' => 'Help:დინორე',
 'mainpage' => 'დუდხასჷლა',
 'mainpage-description' => 'დუდხასჷლა',
@@ -411,7 +410,6 @@ $messages = array(
 'viewprevnext' => 'ქოძირ  ($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-exists' => 'თე ვიკის "[[:$1]]" ჯოხოთ ხასჷლა რე',
 'searchmenu-new' => "''ქჷდარსხი \"[[:\$1]]\" ხასჷლა თე ვიკის'''",
-'searchhelp-url' => 'Help:მოხვარა',
 'searchprofile-articles' => 'სტატიეფი',
 'searchprofile-project' => 'მოხვარაშ დო პროექტიშ ხასჷლეფი',
 'searchprofile-images' => 'მულტიმედია',
@@ -502,7 +500,6 @@ $messages = array(
 'recentchangeslinked-feed' => 'აკოხვალამირ თირაფეფ',
 'recentchangeslinked-toolbox' => 'აკოხვალამირ თირაფეფ',
 'recentchangeslinked-title' => '"$1"-შა მებუნაფილ თირაფეფი',
-'recentchangeslinked-noresult' => 'წურაფილ პერიოდს თირაფეფ აკოხვალამირ ხასილეფს ვა ჸოფერენ.',
 'recentchangeslinked-summary' => "თენა რე მეწურაფილი ხასილაწკუმა (ვარა მეწურაფილი კატეგორიაშ მაკათურეფწკუმა) გინორცხუაფილი ხასილეფს ეკონია ბორჯის ღოლამირი თირაფეფიშ ერკებულ. ხასილეფი [[Special:Watchlist|your watchlist]] გიმორთილი რე '''ფსქელას'''.\"",
 'recentchangeslinked-page' => 'ხასილაშ ჯოხო:',
 'recentchangeslinked-to' => 'მანგიერო ქაძირე ათე ხასილაშა მერცხილ ხასილეფშა მიშაღალირ თირაფეფ',
index 05dda21..eb5afef 100644 (file)
@@ -100,6 +100,7 @@ $specialPageAliases = array(
        'MIMEsearch'                => array( 'זוכן_MIME' ),
        'Mostcategories'            => array( 'מערסטע_קאטעגאריעס' ),
        'Mostimages'                => array( 'מערסטע_פארבונדענע_בילדער' ),
+       'Mostinterwikis'            => array( 'מערסטע_פארבונדענע_אינטערוויקיס' ),
        'Mostlinked'                => array( 'מערסטע_פארבונדענע_בלעטער' ),
        'Mostlinkedcategories'      => array( 'מערסטע_פארבונדענע_קאטעגאריעס' ),
        'Mostlinkedtemplates'       => array( 'מערסטע_פארבונדענע_מוסטערן' ),
@@ -225,7 +226,7 @@ $messages = array(
 'tog-oldsig' => 'איצטיגער אונטערשריפֿט:',
 'tog-fancysig' => 'באַהאַנדלן  אונטערשריפט אַלס וויקיטעקסט (אָן אויטאמאטישן לינק)',
 'tog-showjumplinks' => 'באמעגלעך צוטריט לינקס פון "שפרינג צו"',
-'tog-uselivepreview' => '×\91×\90× ×\95צ×\98 ×\96×\99×\9a ×\9e×\99×\98 ×\9c×\99×\99×\95×\95 ×¤×\90ר×\90×\95×\99ס×\93×\99×\92×¢ ×\95×\95×\99×\99×\96×\95× ×\92 (JavaScript) (עקספ×\99רענ×\9e×¢×\98ל)',
+'tog-uselivepreview' => '×\91×\90× ×\99צ×\98 ×\96×\99×\9a ×\9e×\99×\98 ×\92×\99×\9b×¢ ×¤×\90ר×\90×\95×\99ס×\93×\99×\92×¢ ×\95×\95×\99×\99×\96×\95× ×\92 (JavaScript) (עקספער×\99×\9e×¢× ×\98×\90ל)',
 'tog-forceeditsummary' => 'ווארן מיך ווען איך לייג א ליידיג קורץ ווארט ענדערונג',
 'tog-watchlisthideown' => 'באהאלט מיינע ענדערונגען פון דער אויפפאסן ליסטע',
 'tog-watchlisthidebots' => 'באהאלט באט עדיטס פון אויפפאסן ליסטע',
@@ -448,7 +449,6 @@ $1',
 'disclaimers' => 'געזעצליכע אויפֿקלערונג',
 'disclaimerpage' => 'Project:קלארשטעלונג',
 'edithelp' => 'הילף וויאזוי צו ענדערן',
-'edithelppage' => 'Help:ענדערן',
 'helppage' => 'Help:אינהאַלט',
 'mainpage' => 'הויפט זייט',
 'mainpage-description' => 'הויפט זייט',
@@ -600,6 +600,8 @@ $2',
 'namespaceprotected' => "איר זענט נישט ערלויבט צו רעדאקטירן בלעטער אינעם '''$1''' נאמענטייל.",
 'customcssprotected' => 'איר האט נישט רשות צו רעדאַקטירן דעם CSS בלאַט, ווײַל ער אַנטהאַלט די פערזענלעכע באַשטימונגען פון אַן אַנדער באַניצער.',
 'customjsprotected' => 'איר האט נישט רשות צו רעדאַקטירן דעם JavaScript בלאַט, ווײַל ער אַנטהאַלט די פערזענלעכע באַשטימונגען פון אַן אַנדער באַניצער.',
+'mycustomcssprotected' => 'איר זענט נישט ערלויבט צו רעדאקטירן דעם CSS בלאט.',
+'mycustomjsprotected' => 'איר זענט נישט ערלויבט צו רעדאקטירן דעם JavaScript בלאט.',
 'ns-specialprotected' => 'מען קען נישט רעדאגירן ספעציעלע בלעטער.',
 'titleprotected' => 'דער טיטל איז געשיצט פון ווערן געשאפֿן דורך  [[User:$1|$1]].
 די אורזאך איז  \'\'$2".',
@@ -625,6 +627,7 @@ $2',
 'yourname' => 'באַניצער נאָמען:',
 'userlogin-yourname' => 'באַניצער נאָמען',
 'userlogin-yourname-ph' => 'גיט אריין אייער באניצער נאמען',
+'createacct-another-username-ph' => 'אריינגעבן באניצער נאמען',
 'yourpassword' => 'פאסווארט',
 'userlogin-yourpassword' => 'פאַסווארט',
 'userlogin-yourpassword-ph' => 'אַרײַנגעבן אײַער פאַסווארט',
@@ -659,9 +662,11 @@ $2',
 'helplogin-url' => 'Help:אריינלאגירן',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|הילף מיט אריינלאגירן]]',
 'createacct-join' => 'גיט ארײַן אײַער אינפֿארמאציע אונטן.',
+'createacct-another-join' => 'ארײַנגעבן דער נײַער קאנטעס אינפארמאציע אונטן.',
 'createacct-emailrequired' => 'בליצפּאָסט אַדרעס',
 'createacct-emailoptional' => 'בליצפאסט אדרעס (אפציאנאל)',
 'createacct-email-ph' => 'קלאַפט ארײַן אײַער בליצפּאָסט אַדרעס',
+'createacct-another-email-ph' => 'אַרײַנגעבן בליצפּאָסט אַדרעס',
 'createaccountmail' => 'ניצן א פראוויזאריש פאסווארט און שיקן צום ע-פאסט אדרעס געצייכנט אונטן',
 'createacct-realname' => 'עכטער נאמען (אפציאנאל)',
 'createaccountreason' => 'אורזאַך:',
@@ -670,6 +675,7 @@ $2',
 'createacct-captcha' => 'פארזיכערן קאנטראל',
 'createacct-imgcaptcha-ph' => 'קלאפט ארײַן דעם טעקסט איר זעט אויבן',
 'createacct-submit' => 'שאפֿט אײַער קאנטע',
+'createacct-another-submit' => 'שאפן נאך א קאנטע',
 'createacct-benefit-heading' => '{{SITENAME}} איז געמאכט דורך מענטשן ווי איר.',
 'createacct-benefit-body1' => '{{PLURAL:$1|רעדאַקטירונג|$1 רעדאַקטירונגען}}',
 'createacct-benefit-body2' => '$1 {{PLURAL:$1|בלאַט|בלעטער}}',
@@ -735,7 +741,8 @@ $2',
 'cannotchangeemail' => "מ'קען נישט ענדערן קאנטע ע־פאסט אדרעסן אין דער וויקי.",
 'emaildisabled' => 'דאס וועבזייטל קען נישט שיקן ע־בריוון.',
 'accountcreated' => 'די קאָנטע איז באַשאַפֿן',
-'accountcreatedtext' => 'די באניצער קאנטע פאר $1 איז באַשאַפֿן געווארן.',
+'accountcreatedtext' => 'די באניצער קאנטע פאר [[{{ns:User}}:$1|$1]] 
+([[{{ns:User talk}}:$1|שמועס]])  איז באַשאַפֿן געווארן.',
 'createaccount-title' => 'קאנטע באשאפֿן אין {{SITENAME}}',
 'createaccount-text' => 'עמעצער האט באשאפֿן א קאנטע פֿאר אייער ע-פאסט אדרעס אין {{SITENAME}} ($4) מיטן נאמען "$2" און  פאסווארט "$3". איר דארפט אצינד איינלאגירן און ענדערן דאס פאסווארט.
 
@@ -772,11 +779,10 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'צוריקשטעלן פאַסווארט',
-'passwordreset-text' => 'דערגאַנצט די פאָרעם צוריקצושטעלן אײַער פאַסווארט.',
+'passwordreset-text-one' => 'דערגאַנצט די פאָרעם צוריקצושטעלן אײַער פאַסווארט.',
 'passwordreset-legend' => 'צוריקשטעלן פאַסווארט',
 'passwordreset-disabled' => 'מען האט אומאַקטיוויטר צוריקשטעלן פאַסווערטער אויף דער וויקי.',
 'passwordreset-emaildisabled' => 'ע-פאסט דינסטן זענען געווארן אומאקטיווירט אויף דער דאזיקער וויקי.',
-'passwordreset-pretext' => '{{PLURAL:$1| | קלאַפט אַרײַן איינע פֿון די דאַטן אונטן}}',
 'passwordreset-username' => 'באַניצער נאָמען:',
 'passwordreset-domain' => 'דאמען:',
 'passwordreset-capture' => 'זען  דעם געשיקטן ע־בריוו?',
@@ -856,7 +862,7 @@ $2
 'missingcommentheader' => "'''דערמאַנונג:''' איר האט נישט אַרײַנגעשטעלט א טעמע/קעפל פאר דער אנמערקונג. אויב וועט איר דרוקן נאכאמאל אויפן \"{{int:savearticle}}\", וועט אייער ענדערונג ווערן אפגעהיטן אן דעם.",
 'summary-preview' => 'סך-הכל פאראויסדיגע ווייזונג:',
 'subject-preview' => 'טעמע/קעפל פאראויסדיגע ווייזונג:',
-'blockedtitle' => 'באנוצער איז בלאקירט',
+'blockedtitle' => 'באַניצער איז בלאקירט',
 'blockedtext' => '\'\'\'אייער באניצער נאמען אדער IP אדרעס איז געווארן בלאקירט.\'\'\'
 
 דעם בלאק האט $1 געמאכט פון וועגן \'\'$2\'\'.
@@ -1004,7 +1010,7 @@ $2
 'nocreate-loggedin' => 'איר זענט נישט ערלויבט צו שאַפֿן נײַע בלעטער.',
 'sectioneditnotsupported-title' => 'רעדאקטירן אפטיילונגען נישט געשטיצט.',
 'sectioneditnotsupported-text' => 'רעדאַקטירן אָפטיילונגען נישט געשטיצט אויף דעם בלאַט',
-'permissionserrors' => 'ער×\9c×\95×\99×\91×¢× ×\99ש×\9f ×¤×¢×\9cערס',
+'permissionserrors' => '×\93ער×\9c×\95×\99×\91×¢× ×\99ש×\9f ×¤Ö¿×¢×\9cער',
 'permissionserrorstext' => 'איר זענט נישט ערלויבט צו טון דאס, פֿאַר {{PLURAL:$1|דער פֿאלגנדער סיבה|די פֿאלגנדע סיבות}}:',
 'permissionserrorstext-withaction' => 'איר זענט נישט ערלויבט צו $2, וועגן {{PLURAL:$1|דער פֿאלגנדער סיבה| די פֿאלגנדע סיבות}}:',
 'recreate-moveddeleted-warn' => "'''ווארענונג: איר שאפט א נייעם בלאט וואס איז שוין איינמאל  געווארן אויסגעמעקט.'''
@@ -1020,14 +1026,15 @@ $2
 ס'ווייזט אויס אז ער איז אויסגעמעקט.",
 'edit-conflict' => 'רעדאקטירן קאנפֿליקט.',
 'edit-no-change' => "מ'האט איגנארירט אײַער רעדאַקטירונג, ווײַל קיין שום ענדערונג איז נישט געמאַכט צום טעקסט.",
-'edit-already-exists' => 'נישט מעגליך צו שאַפֿן נייע בלאט.
+'postedit-confirmation' => 'אייער רעדאקטירונג איז געווארן אויפגעהיטן.',
+'edit-already-exists' => 'נישט מעגליך צו שאַפֿן נייעם בלאט.
 ער עקזיסטירט שוין.',
 'defaultmessagetext' => 'גרונטלעכער מעלדונג טעקסט',
 'content-failed-to-parse' => 'פארזן $2 אינהאלט פאר $1 מאדעל דורכגעפאלן: $3',
 'invalid-content-data' => 'אומגילטיקע אינהאלט דאטן',
 'content-not-allowed-here' => '"$1" אינהאלט נישט דערלויבט אויף בלאט [[$2]]',
 'editwarning-warning' => 'איבערלאזן דעם בלאט קען גורם זײַן פֿארלירן אײַערע ענדערונגען.
-אויב איר זענט ארײַנלאגירט, קענט איר מבטל זײַן די דאזיגע ווארענונג אין דער "{{int:prefs-editing}}" אפטיילונג פון אײַערע פרעפערענצן.',
+אויב איר זענט ארײַנלאגירט, קענט איר מבטל זײַן די דאזיגע ווארענונג אין דער "באארבעטן" אפטיילונג פון אײַערע פרעפערענצן.',
 
 # Content models
 'content-model-wikitext' => 'וויקיטעקסט',
@@ -1060,6 +1067,7 @@ $2
 'undo-failure' => 'די ענדערונג קען נישט מבוטל ווערן צוליב סתירות מיט צווישנצייטלעכע ענדערונגען.',
 'undo-norev' => "ס'איז נישט מעגלעך צוריקקערן די רעדאַקטירונג ווײַל זי עקסיסטירט נישט אדער איז אויסגעמעקט.",
 'undo-summary' => 'זיי מבטל רי-ווערסיע $1 פון [[Special:Contributions/$2|$2]] ([[User talk:$2|רעדן]])',
+'undo-summary-username-hidden' => 'זײַט מבטל ווערסיע $1 פון א באהאלטענעם באניצער',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'מען קען נישט באשאפֿן קאנטע',
@@ -1084,8 +1092,8 @@ $2
 שליסל: '''({{int:cur}})''' = אונטערשייד פֿון לויפֿיגער ווערסיע, '''({{int:last}})''' = אונטערשייד פֿון פֿריערדיגער ווערסיע, '''({{int:last}})''' = מינערדיקע רעדאקטירונג",
 'history-fieldset-title' => 'בלעטערט די היסטאריע',
 'history-show-deleted' => 'נאר אויסגעמעקט',
-'histfirst' => 'ערשטע',
-'histlast' => '×\9cעצ×\98×\99×\92ע',
+'histfirst' => '×¢×\9c×\98סטע',
+'histlast' => 'נײַעס×\98ע',
 'historysize' => '({{PLURAL:$1|1 בייט|$1 בייטן}})',
 'historyempty' => '(ליידיג)',
 
@@ -1239,6 +1247,7 @@ $1",
 'compareselectedversions' => 'פארגלייך סעלעקטירטע ווערסיעס',
 'showhideselectedversions' => 'ווײַזן/באַהאַלטן געקליבענע רעוויזיעס',
 'editundo' => 'אַנולירן',
+'diff-empty' => '(קיין אונטערשייד)',
 'diff-multi' => '({{PLURAL:$1|איין מיטלסטע ווערסיע |$1 מיטלסטע ווערסיעס}} פֿון {{PLURAL:$2|איין באַניצער|$2 באַניצער}} נישט געוויזן.)',
 'diff-multi-manyusers' => '({{PLURAL:$1|איין מיטלסטע ווערסיע |$1 מיטלסטע ווערסיעס}} פֿון מער ווי {{PLURAL:$2|איין באַניצער|$2 באַניצער}} נישט געוויזן.)',
 'difference-missing-revision' => '{{PLURAL:$2|איין ווערסיע|$2 ווערסיעס}} פון דעם דיפערענץ ($1) {{PLURAL:$2|האט}} מען נישט געטראפן.
@@ -1266,7 +1275,6 @@ $1",
 'searchmenu-legend' => 'זוכן ברירות',
 'searchmenu-exists' => "'''ס'איז פֿאַראַן א בלאַט מיטן נאמען \"[[:\$1]]\" אין דער וויקי'''",
 'searchmenu-new' => "'''באַשאַפֿן דעם בלאַט \"[[:\$1]]\" אויף דער וויקי'''",
-'searchhelp-url' => 'Help:אינהאַלט',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|בלעטערן בלעטער מיט דעם פרעפֿיקס]]',
 'searchprofile-articles' => 'אינהאלט בלעטער',
 'searchprofile-project' => 'הילף און פראיעקט בלעטער',
@@ -1310,6 +1318,7 @@ $1",
 'searchdisabled' => "{{SITENAME}} זוך איז אָפאַקטיווירט.
 צווישנצײַט קענט איר זוכן מיט גוגל.
 געב אכט אז ס'איז מעגלעך אַז זייער אינדעקס פֿון {{SITENAME}} אינהאַלט איז אפשר פֿאַרעלטערט.",
+'search-error' => "ס'האט פאסירט א פֿעלער ביים זוכן: $1",
 
 # Preferences page
 'preferences' => 'פרעפֿערענצן',
@@ -1325,7 +1334,7 @@ $1",
 'prefs-datetime' => 'דאטום און צייט',
 'prefs-labs' => 'לאַבאראַטאריע מעגלעכקייטן',
 'prefs-user-pages' => 'באניצער בלעטער',
-'prefs-personal' => '×\91×\90Ö·× ×\95צער פראָפֿיל',
+'prefs-personal' => '×\91×\90Ö·× ×\99צער פראָפֿיל',
 'prefs-rc' => 'לעצטע ענדערונגען',
 'prefs-watchlist' => 'אויפפאסונג ליסטע',
 'prefs-watchlist-days' => 'טעג צו ווייזן אין דער אויפפאסונג ליסטע:',
@@ -1343,7 +1352,6 @@ $1",
 'resetprefs' => 'אוועקנעמען נישט-אויפגעהיטענע ענדערונגען',
 'restoreprefs' => 'צוריקשטעלן אלע גרונטלעכע שטעלונגען',
 'prefs-editing' => 'באַאַרבעטן',
-'prefs-edit-boxsize' => 'גרויס פונעם רעדאקטירונג פענסטער.',
 'rows' => 'שורות:',
 'columns' => 'עמודים:',
 'searchresultshead' => 'זוכן',
@@ -1384,7 +1392,6 @@ $1",
 'prefs-reset-intro' => 'איר קענט ניצן דעם בלאַט צוריקצושטעלן אײַערע פרעפֿערענצן גרונטלעך פֿאַרן ארט.
 מען קען דאָס נישט אַנולירן.',
 'prefs-emailconfirm-label' => 'ע-פאסט באַשטעטיקונג:',
-'prefs-textboxsize' => 'גרייס פֿון רעדאַקטירונג פֿענסטער',
 'youremail' => 'ע-פאסט:',
 'username' => '{{GENDER:$1|באַניצער־נאָמען}}:',
 'uid' => '{{GENDER:$1|באַנוצער־נומער}}:',
@@ -1414,7 +1421,7 @@ $1",
 'prefs-signature' => 'אונטערשריפֿט',
 'prefs-dateformat' => 'דאַטע פֿארמאַט',
 'prefs-timeoffset' => 'צײַט אונטערשייד',
-'prefs-advancedediting' => 'פֿ×\90ר×\92עשר×\99×\98×¢× ×¢ ×\90פצ×\99עס',
+'prefs-advancedediting' => '×\90Ö·×\9c×\92×¢×\9e×\99×\99×\9f',
 'prefs-advancedrc' => 'פֿארגעשריטענע אפציעס',
 'prefs-advancedrendering' => 'פֿארגעשריטענע אפציעס',
 'prefs-advancedsearchoptions' => 'פֿארגעשריטענע אפציעס',
@@ -1429,9 +1436,9 @@ $1",
 'email-address-validity-invalid' => 'לייגט אַרײַן א גילטיקן ע־פאסט אַדרעס',
 
 # User rights
-'userrights' => 'באנוצער רעכטן פארוואלטערשאפט',
+'userrights' => 'באַניצער רעכטן פֿאַרוואַלטערשאפט',
 'userrights-lookup-user' => 'פֿאַרוואַלטן באניצער גרופעס',
-'userrights-user-editname' => 'לייגט אריין א באנוצער-נאמען:',
+'userrights-user-editname' => 'לייגט אריין א באַניצער-נאמען:',
 'editusergroup' => 'רעדאַגירן באַניצער גרופּעס',
 'editinguser' => "ענדערן באַניצער רעכטן פון באַניצער '''[[User:$1|$1]]'''   $2",
 'userrights-editusergroup' => 'רעדאַקטירן באַניצער גרופעס',
@@ -1512,12 +1519,13 @@ $1",
 'right-hideuser' => 'בלאקירן באַניצער־נאָמען און פֿאַרבארגן אים',
 'right-ipblock-exempt' => 'ארומגיין IP בלאקן, אויטאבלאקן און גרייך־בלאקן',
 'right-unblockself' => 'זיך אליין אויפֿשפאַרן',
-'right-protect' => 'ענדערן שוץ ניוואען און רעדאַגירן געשיצטע בלעטער',
-'right-editprotected' => 'רע×\93×\90Ö·×\92×\99ר×\9f ×\92עש×\99צ×\98×¢ ×\91×\9c×¢×\98ער (×\90Ö¸×\9f ×§×\90ַסק×\90Ö·×\93×\9f ×©×\95×¥)',
+'right-protect' => '×¢× ×\93ער×\9f ×©×\95×¥ × ×\99×\95×\95×\90×¢×\9f ×\90×\95×\9f ×¨×¢×\93×\90Ö·×\92×\99ר×\9f ×§×\90סק×\90×\93Ö¾×\92עש×\99צ×\98×¢ ×\91×\9c×¢×\98ער',
+'right-editprotected' => 'רע×\93×\90Ö·×\92×\99ר×\9f ×\91×\9c×¢×\98ער ×\92עש×\99צ×\98 ×\95×\95×\99 "{{int:protect-level-sysop}}"',
 'right-editinterface' => 'רעדאַקטירן די באַניצער אייבערפֿלאַך',
 'right-editusercssjs' => 'רעדאַקטירן אַנדערע באַניצערס CSS און JS טעקעס',
 'right-editusercss' => 'רעדאַקטירן אַנדערע באַניצערס CSS טעקעס',
 'right-edituserjs' => 'רעדאַקטירן אַנדערע באַניצערס JS טעקעס',
+'right-editmyusercss' => 'רעדאקטירע אײַערע אייגענע באניצער CSS טעקעס',
 'right-rollback' => 'גיך צוריקדרייען די רעדאַקטירונגען פונעם לעצטן באַניצער וואס האט רעדאַקטירט א געוויסן בלאַט',
 'right-markbotedits' => 'מאַרקירן צוריקגעזעצטע רעדאַגירונגען ווי באט רעדאַגירונגען',
 'right-noratelimit' => 'נישט ווערן באַגרענעצט דורך לימיטאַציע',
@@ -1596,7 +1604,7 @@ $1",
 'rcshowhideminor' => '$1 מינערדיגע ענדערונגען',
 'rcshowhidebots' => '$1 ראבאטן',
 'rcshowhideliu' => '$1 אײַנגעשריבענע באַניצערס',
-'rcshowhideanons' => '$1 ×\90Ö·× ×\90ָנ×\99×\9e×¢ ×\91×\90Ö·× ×\95צערס',
+'rcshowhideanons' => '$1 ×\90Ö·× ×\90ָנ×\99×\9e×¢ ×\91×\90Ö·× ×\99צער',
 'rcshowhidepatr' => '$1 פאַטראלירטע ענדערונגען',
 'rcshowhidemine' => '$1 מײַנע רעדאַקטירוננגען',
 'rclinks' => 'װײַזן די לעצטע $1 ענדערונגען אין די לעצטע $2 טעג.<br />$3',
@@ -1621,7 +1629,6 @@ $1",
 'recentchangeslinked-feed' => 'פֿאַרבונדענע ענדערונגען',
 'recentchangeslinked-toolbox' => 'פֿאַרבונדענע ענדערונגען',
 'recentchangeslinked-title' => 'ענדערונגען פֿארבונדן מיט $1',
-'recentchangeslinked-noresult' => 'נישט געווען קיין ענדערונגען אין פֿארבונדענע בלעטער אין דער תקופה.',
 'recentchangeslinked-summary' => "אט א רשימה פון נייע ענדערונגען צו בלעטער פארבונדן פון א ספעציפישן בלאט (אדער מיטגליד בלעטער פון א ספעציפישער קאטעגאריע).
 בלעטער אויף [[Special:Watchlist|אייער אויפפאסונג ליסטע]] זענען געוויזן '''דיק'''.",
 'recentchangeslinked-page' => 'בלאַט נאָמען:',
@@ -1633,7 +1640,7 @@ $1",
 'reuploaddesc' => 'אַנולירן אַרויפֿלאָד און צוריקגיין צו דער אַרויפֿלאָדן פֿארעם',
 'upload-tryagain' => 'פֿאָרלייגן מאדיפֿיצירטע טעקע באַשרײַבונג',
 'uploadnologin' => 'נישט אַרײַנלאגירט',
-'uploadnologintext' => '×\90×\99ר ×\9e×\95×\96×\98 ×\96ײַ×\9f [[Special:UserLogin| ×\90ַרײַנ×\9c×\90Ö¸Ö¸×\92×\99ר×\98]] ×\9b×\93×\99 ×\90ר×\95×\99פֿצ×\95×\9c×\90Ö¸×\93×\9f ×\98עקעס',
+'uploadnologintext' => '×\90×\99ר ×\93×\90רפֿ×\98 ×\96ײַ×\9f $1 ×\9b×\93×\99 ×\90ר×\95×\99פֿצ×\95×\9c×\90Ö¸×\93×\9f ×\98עקעס.',
 'upload_directory_missing' => 'די ארויפלאד דירעקטאריע ($1) פעלט און דער וועבסערווירער קען זי נישט שאפן.',
 'upload_directory_read_only' => 'דער וועבסארווער קען נישט שרייבן צום ארויפלאדן ארכיוו "$1".',
 'uploaderror' => 'אַרויפֿלאָדן פֿעלער',
@@ -1702,6 +1709,10 @@ $1",
 * נאמען פון דער טעקע וואס ווערט ארויפגעלאָדן: <strong>[[:$1]]</strong>
 * נאמען פון דער פֿאראנענער טעקע: <strong>[[:$2]]</strong>
 זײַט אזוי גוט און קלויבט אן אנדער נאמען.',
+'fileexists-thumbnail-yes' => "די טעקע זעט אויס צו זײַן א פארקלענערט בילד  ''(קליין)''.
+[[$1|thumb]]
+זײַט אזוי גוט קאנטראלירט די טעקע <strong>[[:$1]]</strong>.
+ווען די קאנטראלירטע טעקע איז דאס זעלבע בילד אין דער אריגינעלער גרייס ברויכט מען נישט ארויפלאדן נאך א פארקלענערט בילד.",
 'file-thumbnail-no' => "דער טעקע־נאמען הייבט אן מיט <strong>$1</strong>.
 זי זעט אויס ווי א פארקלענערט בילד ''(מיניאטור)''.
 טאמער האט איר דאס בילד אין פולער רעזאלוציע טוט עס ארויפלאדן, אנדערשט זייט אזוי גוט און ענדערט דעם טעקע־נאמען.",
@@ -1781,8 +1792,10 @@ $1",
 'lockmanager-notlocked' => 'מ\'קען נישט אויפֿשליסן "$1"; ער איז נישט פֿארשלאסן.',
 'lockmanager-fail-closelock' => 'נישט מעגלעך פארשפארן שלאס טעקע פאר "$1".',
 'lockmanager-fail-deletelock' => 'נישט מעגלעך אויסמעקן שלאס טעקע פאר "$1".',
+'lockmanager-fail-acquirelock' => 'נישט מעגלעך צו באקומען שלאס טעקע פאר "$1".',
 'lockmanager-fail-openlock' => 'נישט מעגלעך עפֿענען שלאס טעקע פאר "$1".',
 'lockmanager-fail-releaselock' => 'נישט מעגלעך באפֿרייען שלאס טעקע פאר "$1".',
+'lockmanager-fail-db-release' => "מ'קען נישט באפרייען די שלאסן אויף דאטנבאזע $1.",
 
 # ZipDirectoryReader
 'zip-file-open-error' => 'געטראפן א גרײַז ביים עפענען די טעקע פאר ZIP־קאנטראלירונג.',
@@ -1961,6 +1974,9 @@ $1",
 'disambiguationspage' => 'Template:באדייטן',
 'disambiguations-text' => "די קומענדיגע בלעטער פארבינדן צו א '''באדייטן בלאט'''. זיי ברויכן ענדערשט פֿארבינדן צו דעם רעלעוואנטן טעמע בלאט.<br />א בלאט ווערט פאררעכענט פאר א באדײַטן בלאט אויב ער באניצט זיך מיט א מוסטער וואס איז פארבינדען פון [[MediaWiki:Disambiguationspage]].",
 
+'pageswithprop' => 'בלעטער מיט א בלאט אייגנשאפט',
+'pageswithprop-legend' => 'בלעטער מיט א בלאט אייגנשאפט',
+'pageswithprop-text' => 'דער בלאט האלט א רשימה פון בלעטער וואס ניצן א געוויסע בלאט אייגנשאפט.',
 'pageswithprop-prop' => 'אייגנשאפט נאמען:',
 'pageswithprop-submit' => 'גייט',
 
@@ -2206,7 +2222,6 @@ $1",
 'unwatchthispage' => 'ענדיגן אויפֿפאַסן',
 'notanarticle' => 'דאס איז נישט קיין אינהאלט בלאט',
 'notvisiblerev' => 'די באארבעטונג איז געווארן אויסגעמעקט',
-'watchnochange' => 'קיינע פֿון אײַערע אויפֿגעפאַסטע בלעטער האבן זיך געענדערט אין דעם צײַט פעריאד געוויזן.',
 'watchlist-details' => '{{PLURAL:$1|איין בלאט|$1 בלעטער}} אין אייער אויפֿפאסן ליסטע (נישט רעכענען  רעדן בלעטער).',
 'wlheader-enotif' => 'ע-פאסט מעלדונג ערמעגליכט.',
 'wlheader-showupdated' => "בלעטער געענדערט זײַט אײַער לעצטן וויזיט זען געוויזן '''דיק'''.",
@@ -2317,7 +2332,7 @@ $UNWATCHURL
 די לעצטע ענדערונג צום בלאַט איז געווען פון [[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]]',
-'revertpage-nouser' => 'צוריקגעשטעלט רעדאַקטירונגען פֿון (באַניצער־נאָמען אַראָפגענומען) צו לעצטער רעוויזיע פֿון [[User:$1|$1]]',
+'revertpage-nouser' => 'צוריקגעשטעלט רעדאַקטירונגען פֿון א באהאלטענעם באַניצער צו לעצטער רעוויזיע פֿון [[User:$1|$1]]',
 'rollback-success' => 'צוריקגעדרייט רעדאַקטירונגען פֿון $1 צו דער לעצטע ווערסיע פֿון $2',
 
 # Edit tokens
@@ -2451,7 +2466,7 @@ $1',
 'mycontris' => 'בײַשטײַערונגען',
 'contribsub2' => 'וועגן $1 ($2)',
 'nocontribs' => 'נישט געטראפן קיין ענדערונגען צוזאמעגעפאסט מיט די קריטעריעס.',
-'uctop' => '(×\9cעצ×\98×¢)',
+'uctop' => '(×\9c×\95×\99פֿ×\99ק)',
 'month' => 'ביז חודש:',
 'year' => 'ביז יאר:',
 
@@ -3150,7 +3165,7 @@ $1',
 'exif-compressedbitsperpixel' => 'בילד צוזאמקוועטשן מאוד',
 'exif-pixelydimension' => 'בילד ברייט',
 'exif-pixelxdimension' => 'בילד הייך',
-'exif-usercomment' => '×\91×\90× ×\95צער קאמענטורן',
+'exif-usercomment' => '×\91×\90× ×\99צער קאמענטורן',
 'exif-relatedsoundfile' => 'פֿאַרבונדענע אוידיאָ טעקע',
 'exif-datetimeoriginal' => 'דאטום און צייט פון דאַטן באשאפונג',
 'exif-datetimedigitized' => 'דאטום און צייט פון דיזשיטייזונג',
@@ -3510,7 +3525,7 @@ $5
 
 # Delete conflict
 'deletedwhileediting' => 'ווארענונג: דער בלאט איז געווארן אויסגעמעקט נאכדעם וואס איר האט אנגעהויבן רעדאקטירן!',
-'confirmrecreate' => "באנוצער [[User:$1|$1]] ([[User talk:$1|רעדן]]) האט אויסגעמעקט דעם בלאט נאכדעם וואס איר האט אנגעהויבן דאס צו ענדערן, אלס אנגעבליכער סיבה:
+'confirmrecreate' => "באַניצער [[User:$1|$1]] ([[User talk:$1|רעדן]]) האט אויסגעמעקט דעם בלאט נאכדעם וואס איר האט אנגעהויבן דאס צו ענדערן, אלס אָנגעבליכער סיבה:
 :'''$2'''
 ביטע באשטעטיגט אז איר ווילט טאקע צוריקשטעלן דעם בלאט.",
 'recreate' => 'שאַפֿן פֿונדאסניי',
@@ -3642,7 +3657,6 @@ $5
 'version-skins' => 'באניצער־אייבערפלאכן',
 'version-other' => 'אנדער',
 'version-hooks' => 'Hook סטרוקטורן',
-'version-extension-functions' => 'פארברייטערן פונקציעס',
 'version-parser-extensiontags' => 'פארזער פארברייטערן טאַגן',
 'version-hook-name' => 'נאמען פון hook',
 'version-version' => '(ווערסיע $1)',
index 0b91405..a9343af 100644 (file)
@@ -160,6 +160,18 @@ $messages = array(
 'oct' => 'Oṣù 10',
 'nov' => 'Oṣù 11',
 'dec' => 'Oṣù 12',
+'january-date' => '$1 Oṣù Kínní',
+'february-date' => '$1 Oṣù Kejì',
+'march-date' => '$1 Oṣù Kẹta',
+'april-date' => '$1 Oṣù Kẹrin',
+'may-date' => '$1 Oṣù Kàrún',
+'june-date' => '$1 Oṣù Kẹfà',
+'july-date' => '$1 Oṣù Keje',
+'august-date' => '$1 Oṣù Kẹjọ',
+'september-date' => '$1 Oṣù Kẹ̀sán',
+'october-date' => '$1 Oṣù Kẹ̀wá',
+'november-date' => '$1 Oṣù Kọkànlá',
+'december-date' => '$1 Oṣù Kejìlá',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Ẹ̀ka|Àwọn ẹ̀ka}}',
@@ -241,6 +253,7 @@ $messages = array(
 'create-this-page' => "Ṣè'dá ojúewé yìí",
 'delete' => 'Ìparẹ́',
 'deletethispage' => 'Pa ojúewé yi rẹ́',
+'undeletethispage' => 'Mú ìparẹ́ kúrò fún ojúewé yìí',
 'undelete_short' => 'Ìdápadà ìparẹ́ {{PLURAL:$1|àtúnṣe kan|àwọn àtúnṣe $1}}',
 'viewdeleted_short' => 'Ìwòran {{PLURAL:$1|àtúnṣe ajẹ́píparẹ́ kan|àwọn àtúnṣe ajẹ́píparẹ́ $1}}',
 'protect' => 'Àbò',
@@ -294,7 +307,6 @@ $1',
 'disclaimers' => 'Ikìlọ̀',
 'disclaimerpage' => 'Project:Ìkìlọ̀ gbogbo',
 'edithelp' => 'Ìrànlọ́wọ́ fún àtúnṣe',
-'edithelppage' => 'Help:Àtúnṣe',
 'helppage' => 'Help:Àwon àkóónú',
 'mainpage' => 'Ojúewé Àkọ́kọ́',
 'mainpage-description' => 'Ojúewé Àkọ́kọ́',
@@ -443,6 +455,8 @@ Láti ṣ'àfikún tàbí ṣ'àyípadà àwọn ìyédèpadà fún gbogbo àw
 'namespaceprotected' => "A kò gbàyín ní ààyè láti ṣ'àtúnṣe àwọn ojúewé tó wà nínú orúkọàyè '''$1'''.",
 'customcssprotected' => 'Ẹ kò ní ìyọ̀nda láti ṣàtúnṣe ojúewé CSS yìí nítorípé ó ní àwọn ìtòjọ oníṣe ẹlòmíràn.',
 'customjsprotected' => 'Ẹ kò ní ìyọ̀nda láti ṣàtúnṣe ojúewé JavaScript yìí nítorípé ó ní àwọn ìtòjọ oníṣe ẹlòmíràn.',
+'mycustomcssprotected' => 'Ẹ kò ní ìyọ̀nda láti ṣàtúnṣe ojúewé CSS yìí.',
+'mycustomjsprotected' => 'Ẹ kò ní ìyọ̀nda láti ṣàtúnṣe ojúewé JavaScript yìí.',
 'ns-specialprotected' => 'Àtúnṣe kò ṣe é ṣe sí àwọn ojúewé pàtàkì.',
 'titleprotected' => "[[User:$1|$1]] ti dínà sí dídá àkọlé yìí. Ìdí rẹ̀ ni pé ''$2''.",
 'filereadonlyerror' => 'Àtúnṣe kò ṣe é ṣe sí fáìlì "$1" nítorípé ibi-àkójọ fáìlì "$2" jẹ́ fún wíwò nìkàn.
@@ -477,8 +491,8 @@ Olùṣeàmójútó tó típa ṣe àlàyé yìí: "$3".',
 'createacct-yourpasswordagain' => 'Ẹ ṣe ìfidájú ọ̀rọ̀ìpamọ́',
 'createacct-yourpasswordagain-ph' => 'Ẹ kọ ọ̀rọ̀ìpamọ́ lẹ́ẹ̀kan síi',
 'remembermypassword' => "Ṣè'rántí ìwọlé mi lórí kọ̀mpútà yìí (fún ó pẹ́ jù {{PLURAL:$1|ọjọ́|ọjọ́}} $1)",
-'userlogin-remembermypassword' => 'Ṣè rántí mi',
-'userlogin-signwithsecure' => 'Ẹ wọlé pẹ̀lú ẹ̀rọ-ìpèsè tó ní àbò',
+'userlogin-remembermypassword' => 'Fi mí sí ìwọlé',
+'userlogin-signwithsecure' => 'Lo ìsopọ̀ ẹ̀rọ tó ní àbò',
 'securelogin-stick-https' => 'Ìwàní sísopọ̀ mọ́ HTTPS lẹ́yín ìwọlé',
 'yourdomainname' => 'Domain yín:',
 'password-change-forbidden' => 'Ẹ kò le ṣe ìyípadà ọ̀rọ̀ìpamọ́ lórí wiki yìí.',
@@ -499,6 +513,7 @@ Olùṣeàmójútó tó típa ṣe àlàyé yìí: "$3".',
 'gotaccount' => "Ṣé ẹ ti ní àpamọ́ tẹ́lẹ̀? '''$1'''.",
 'gotaccountlink' => "Ẹ w'ọlé",
 'userlogin-resetlink' => 'À bí ẹ gbàgbé ìwọlé yín?',
+'userlogin-resetpassword-link' => 'Ìtúntò ọ̀rọ̀ìpamọ́ yín',
 'helplogin-url' => 'Help:Ìwolé',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Ìrànlọ́wọ́ láti ìwọlé]]',
 'createacct-join' => 'Ẹ kọ ìsọ̀rọ̀nípa yín sísàlẹ̀',
@@ -509,11 +524,14 @@ Olùṣeàmójútó tó típa ṣe àlàyé yìí: "$3".',
 'createacct-realname' => 'Orúkọ yín gangan (kò pọndandan)',
 'createaccountreason' => 'Ìdíẹ̀:',
 'createacct-reason' => 'Ìdí',
+'createacct-reason-ph' => 'Ìdí tí ẹ ṣe fẹ́ dá àkópamọ́ míràn',
+'createacct-captcha' => 'Àyẹ̀wò àbò',
 'createacct-imgcaptcha-ph' => 'Ẹ kọ ìkọ̀rọ̀ tí ẹ rí lókè',
+'createacct-submit' => 'Ìdá àkópamọ́ yín',
 'createacct-benefit-heading' => 'Àwọn ènìyàn bíi yín ni wọ́n dá {{SITENAME}}.',
-'createacct-benefit-body1' => 'àtúnṣe',
-'createacct-benefit-body2' => 'ojúewé',
-'createacct-benefit-body3' => 'olùkópa ní oṣù yìí',
+'createacct-benefit-body1' => '{{PLURAL:$1|àtúnṣe|àwọn àtúnṣe}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|ojúewé|àwọn ojúewé}}',
+'createacct-benefit-body3' => ' {{PLURAL:$1|olùkópa|Àwọn olùkópa}} aṣẹ̀ṣẹ̀ṣe',
 'badretype' => 'Àwọn ọ̀rọ̀ìpamọ́ tí ẹ kọ kò jọ ra wọn.',
 'userexists' => 'Orúkọ oníṣe tí ẹ mú wà lọ́wọ́ ẹlòmíràn.
 Ẹjọ̀wọ́ ẹ yan orúkọ mìíràn tó yàtọ̀.',
@@ -577,7 +595,7 @@ E-mail kankan kò ní jẹ́ fífiránṣẹ́ fún ìkankan nínú àwọn ìn
 'cannotchangeemail' => 'Àwọn àdírẹ́sì e-mail àpamọ́ kò ṣe é yípadà lórí wiki yìí.',
 'emaildisabled' => 'Ibiìtàkùn yìí kò le fi e-mail ránṣẹ́.',
 'accountcreated' => 'Ẹ ti fi orúkọ sílẹ̀',
-'accountcreatedtext' => "A ti ṣ'èdá àkópamọ́ oniṣe fún $1.",
+'accountcreatedtext' => 'Àkópamọ́ oniṣe fún [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|ọ̀rọ̀]]) ti jẹ́ dídá.',
 'createaccount-title' => 'Ìforúkọ sílẹ̀ fún {{SITENAME}}',
 'createaccount-text' => 'Ẹnìkan dá àpamọ́ kan fún àdírẹ́sì e-mail yín sórí {{SITENAME}} ($4) tóún jẹ́ "$2", pẹ̀kú ọ̀rọ̀ìpamọ́ \'\'$3\'\'.
 Ẹ gbọ́dọ̀ wọlé kí ẹ sì ṣàyípadà ọ́rọ́ìpamọ́ yín nísinsìyí.
@@ -615,11 +633,9 @@ Láti parí ìmúwọlẹ́, ẹ gbọ́dọ̀ ṣètò ọ̀rọ̀ìpamọ́ tu
 
 # Special:PasswordReset
 'passwordreset' => 'Ìtúntò ọ̀rọ̀ìpamọ́',
-'passwordreset-text' => 'Ẹ parí fọ́ọ̀mù yìí láti ṣe ìtúntò ọ̀rọ̀ìpamọ́ yín.',
 'passwordreset-legend' => 'Ìtúntò ọ̀rọ̀ìpamọ́',
 'passwordreset-disabled' => 'Ìdálẹ́kun ìtúntò ọ̀rọ̀ìpamọ́ lórí wiki yìí.',
 'passwordreset-emaildisabled' => 'Ìdálẹ́kun lílo email lórí wiki yìí.',
-'passwordreset-pretext' => '{{PLURAL:$1||Ẹ kọ ìkan nínú àwọn wẹ́wẹ́ dátà ìsàlẹ̀}}',
 'passwordreset-username' => 'Orúkọ oníṣe:',
 'passwordreset-domain' => 'Àbùgbé:',
 'passwordreset-capture' => 'Wo e-mail tí yíò jáde?',
@@ -863,6 +879,7 @@ Kò ṣe àlàyé kankan.',
 Ó dà bíi pé a ti paárẹ́.',
 'edit-conflict' => 'Ìtakora áwọn àtúnṣe',
 'edit-no-change' => 'A ṣe àìkàsí àtúnṣe yín, nítorípé ìkọ̀wé kò ní àtúnṣe kankan.',
+'postedit-confirmation' => 'Àtúnṣe yín ti jẹ́ gbígbépamọ́.',
 'edit-already-exists' => "A kò le è ṣè'dá ojúewé tuntun.
 Ó pilẹ̀ ti wà.",
 'defaultmessagetext' => 'Ìkọ ìránṣẹ́ àtìbẹ̀rẹ̀',
@@ -932,8 +949,8 @@ Tó bá jẹ́ pé ẹ ti wọlé, ẹ lè dẹ́kun ìkìlọ̀ yìí nínù ab
 Àlàyé: '''({{int:cur}})''' = ìyàtọ̀ sí àtúnyẹ̀wò tìsinyìí, '''({{int:last}})''' = ìyàtọ̀ sí àtúnyẹ̀wò tókọjá, '''{{int:minoreditletter}}''' = àtúnṣe kékeré.",
 'history-fieldset-title' => 'Ìṣíwò ìwé ìtàn àtúnṣe',
 'history-show-deleted' => 'Ajẹ́píparẹ́ níkan',
-'histfirst' => 'Pípẹ́jùlọ',
-'histlast' => 'Tuntunjùlọ',
+'histfirst' => 'pípẹ́jùlọ',
+'histlast' => 'tuntunjùlọ',
 'historysize' => '({{PLURAL:$1|1 byte|$1 bytes}})',
 'historyempty' => '(òfo)',
 
@@ -1114,7 +1131,6 @@ Kò ṣe é bòmọ́lẹ̀.',
 'searchmenu-legend' => 'Àwọn àṣàyàn àwáàrí',
 'searchmenu-exists' => "'''Ojúewé tó ún jẹ́ \"[[:\$1]]\" wà lórí wiki yìí'''",
 'searchmenu-new' => "'''Dá ojúewé \"[[:\$1]]\" sí orí wiki yìí!'''",
-'searchhelp-url' => 'Help:Àwon àkóónú',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Ẹ lọ sí àwọn ojúewé tí wọ́n ní àsopọ̀ yìí]]',
 'searchprofile-articles' => 'Àwọn ojúewé Àkóónú',
 'searchprofile-project' => 'Àwọn ojúewé Ìrànwọ́ àti Iṣẹ́-ọwọ́',
@@ -1191,7 +1207,6 @@ Ní báyìí ná ẹ le ṣàwárí lọ́dọ̀ Google.
 'resetprefs' => 'Ìpalẹ̀mọ́ àwọn àyípadà àìmúpamọ́',
 'restoreprefs' => 'Ìdápadà áwọn ìtò àtìbẹ̀rẹ̀',
 'prefs-editing' => 'Àtúnṣe ṣíṣẹ',
-'prefs-edit-boxsize' => 'Ìtóbi fèrèsé àtúnṣe',
 'rows' => 'Àwọn ìtẹ̀lé gbọlọjọ:',
 'columns' => 'Àwọn ìtẹ̀lé gogoro:',
 'searchresultshead' => 'Àwárí',
@@ -1202,9 +1217,6 @@ Ní báyìí ná ẹ le ṣàwárí lọ́dọ̀ Google.
 'recentchangesdays-max' => '{{PLURAL:$1|Ọjọ́|Ọjọ́}} $1 púpọ̀jùlọ',
 'recentchangescount' => 'Iye àtúnṣe láti fihàn látìbẹ̀rẹ̀:',
 'prefs-help-recentchangescount' => 'Àwọn àtúnṣe tuntun, ìtàn ojúewé, àti àkọọ́lẹ̀ wà nínú èyí.',
-'prefs-help-watchlist-token' => 'Tí ẹ bá fílì fọ́ọ̀mù yìí pẹ̀lú kọ́kọ́rọ́ àmìọ̀rọ̀ àsírí yíò dá feed RSS fún ìmójútó yín.
-Ẹnikẹ́ni tó bá mọ kọ́kọ́rọ́ àmìọ̀rọ̀ náà nínú fọ́ọ̀mù yìí yíò le ka ìmójútó yín, nítoríẹ̀ ẹ mú nọ́mbà tó pamọ́.
-Nọ́mbà àrìnnàkò kan nìyí tí ẹ le lò: $1',
 'savedprefs' => 'Àwọn ìfẹ́ràn yín ti jẹ́mímúpapọ́.',
 'timezonelegend' => 'Àsìkò ilẹ̀àmùrè:',
 'localtime' => 'Àkókò ìbílẹ̀:',
@@ -1235,7 +1247,6 @@ Nọ́mbà àrìnnàkò kan nìyí tí ẹ le lò: $1',
 'prefs-reset-intro' => 'Ẹ le lo ojúewé yìí láti ṣàtùntò àwọn ìfẹ́ràn yín sí àkọ́kọ́ṣe ibiìtakùn yìí.
 Kò ní ṣeé dápadà mọ́.',
 'prefs-emailconfirm-label' => 'E-mail ìmúdájú:',
-'prefs-textboxsize' => 'Ìtóbi fèrèsé àtúnṣe',
 'youremail' => 'E-mail:',
 'username' => '{{GENDER:$1|Orúkọ oníṣe}}:',
 'uid' => 'Nọmba ìdámọ̀ {{GENDER:$1|oníṣe}}:',
@@ -1477,7 +1488,6 @@ Tí ẹ bá fisílẹ̀ a ó lòó láti tóka iṣẹ́ yín fún yín.',
 'recentchangeslinked-feed' => 'Àtúnṣe tó báramu',
 'recentchangeslinked-toolbox' => 'Àtúnṣe tó báramu',
 'recentchangeslinked-title' => 'Àtúnṣe tó báramu mọ́ "$1"',
-'recentchangeslinked-noresult' => 'Kò sí ìyàtọ̀ nínú àwọn ojúewé ìjápọ̀ láàrin ìgbà tí ẹ sọ.',
 'recentchangeslinked-summary' => "Àkójọ àwọn àtúnṣe tí a sẹ̀sẹ̀ ṣe sí àwọn ojúewé tó jápọ̀ wá láti ojúewé pàtó kan (tàbí sí ìkan nìnú ẹ̀ka pàtó kan).
 Àwọn ojúewé inú [[Special:Watchlist|ìmójútó yín]] jẹ́ '''kedere'''.",
 'recentchangeslinked-page' => 'Orúkọ ojúewé:',
@@ -2119,7 +2129,6 @@ A óò ṣ\'àkójọ àwọn àtúnṣe ọjọ́wajú sí ojúewé yìí àti
 'unwatchthispage' => "Já'wọ́ ìmójútó ojúewé yi",
 'notanarticle' => 'Kìí ṣe ojúewé àkóónú',
 'notvisiblerev' => 'Àtúnyẹ̀wò gbígbẹ̀yìn látọwọ́ oníṣe míràn ti jẹ́ píparẹ́',
-'watchnochange' => 'Kò sí ìkankan nínú àwọn ohun ìmójútó yín tó jẹ́ títúnṣe láàrin àsìkò títẹ́kalẹ̀.',
 'watchlist-details' => '{{PLURAL:$1|Ojúewé $1|Àwọn ojúewé $1}} ló wà nínú ìmójútó yín, tí a kò bá ka àwọn ojúewé ọ̀rọ̀.',
 'wlheader-enotif' => 'Ìfitónilétí e-mail wà ní gbígbàláyè.',
 'wlheader-showupdated' => "Àwọn ojúewé tí wọn ti yípadà látìgbà tí ẹ ṣàbẹ̀wò wọn gbẹ̀yìn jẹ́ fífihàn ní ''kedere'''",
@@ -2375,7 +2384,7 @@ $1',
 'mycontris' => 'Àwọn àfikún',
 'contribsub2' => 'Fún $1 ($2)',
 'nocontribs' => 'Kò sí àtúnṣe tuntun tó bá àwárí mu.',
-'uctop' => '(ló)',
+'uctop' => '(lówọ́)',
 'month' => 'Láti osù (àti sẹ́yìn):',
 'year' => 'Láti ọdún (àti sẹ́yìn):',
 
@@ -2999,6 +3008,16 @@ Tí ẹ bá jẹ́ ó ṣiṣẹ́, ẹ̀rọ sístẹ́mù yín le kó sí ewu.
 'ago' => '$1 sẹ́yìn',
 'just-now' => 'nísinsìnyí',
 
+# Human-readable timestamps
+'monday-at' => 'Ọjọ́ajé ní ago $1',
+'tuesday-at' => 'Ọjọ́ìṣẹ́gun ní ago $1',
+'wednesday-at' => 'Ọjọ́rú ní ago $1',
+'thursday-at' => 'Ọjọ́bọ̀ ní ago $1',
+'friday-at' => 'Ọjọ́ẹtì ní ago $1',
+'saturday-at' => 'Ọjọ́àbámẹ́ta ní ago $1',
+'sunday-at' => 'Ọjọ́àìkú ní ago $1',
+'yesterday-at' => 'Àná ní ago $1',
+
 # Bad image list
 'bad_image_list' => 'Onírú jẹ́ gẹ́gẹ́ bíi àtèlé yìí:
 Àwọn ohun àkójọ nìkan (àwọn ìlà tí wọ́n bẹ̀rẹ̀ pẹ̀lú *) ni wọ́n jẹ́ gbígbérò.
@@ -3431,7 +3450,6 @@ $5
 'version-skins' => 'Skin (Àwọ̀)',
 'version-other' => 'Òmíràn',
 'version-hooks' => 'Àwọn hook',
-'version-extension-functions' => 'Àwọn ìmúṣe ìfàgùn',
 'version-hook-name' => 'Orúkọ hook',
 'version-version' => '(Àtẹ̀jáde $1)',
 'version-license' => 'Ìwé àṣẹ',
index af96deb..73286a4 100644 (file)
@@ -13,6 +13,7 @@
  * @author Kaganer
  * @author KaiesTse
  * @author Mark85296341
+ * @author Nemo bis
  * @author Simon Shek
  * @author Waihorace
  * @author William915
@@ -472,7 +473,6 @@ $1',
 'disclaimers' => '免責聲明',
 'disclaimerpage' => 'Project:一般免責聲明',
 'edithelp' => '編輯協助',
-'edithelppage' => 'Help:編輯',
 'helppage' => 'Help:目錄',
 'mainpage' => '頭版',
 'mainpage-description' => '頭版',
@@ -893,7 +893,7 @@ $1',
 
 你應該要考慮吓繼續編輯呢一版係唔係適合嘅。
 為咗方便起見,呢一版嘅刪除同搬版記錄已經響下面提供:",
-'moveddeleted-notice' => '呢一版已經刪咗。
+'moveddeleted-notice' => '呢一版已經刪咗。
 呢版嘅刪除同搬版日誌響下面提供咗以便參考。',
 'log-fulllog' => '睇成個日誌',
 'edit-hook-aborted' => '編輯由鈎取消咗。
@@ -1123,7 +1123,6 @@ $1",
 'searchmenu-legend' => '搵嘢選項',
 'searchmenu-exists' => "'''響呢個wiki度有一版叫做\"[[:\$1]]\"。'''",
 'searchmenu-new' => "'''響呢個wiki度開呢版\"[[:\$1]]\"!'''",
-'searchhelp-url' => 'Help:目錄',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|去睇以呢個做開頭嘅版]]',
 'searchprofile-articles' => '內容頁',
 'searchprofile-project' => '幫手同計劃頁',
@@ -1194,7 +1193,6 @@ $1",
 'resetprefs' => '清除未保存嘅更改',
 'restoreprefs' => '恢復全部預設設定',
 'prefs-editing' => '編輯中',
-'prefs-edit-boxsize' => '編寫框大細',
 'rows' => '列:',
 'columns' => '行:',
 'searchresultshead' => '搵嘢',
@@ -1205,9 +1203,6 @@ $1",
 'recentchangesdays-max' => '最多 $1 日',
 'recentchangescount' => '預設顯示嘅編輯數:',
 'prefs-help-recentchangescount' => '呢個包埋最近修改、頁歷史同埋日誌紀錄。',
-'prefs-help-watchlist-token' => '響呢欄加入一個秘密匙會生成一個對你監視清單嘅RSS源。
-任何一位知道響呢個欄位嘅匙會睇到你嘅監視清單,請揀一個安全嘅值。
-呢度有一個任意生成嘅值,你係可以去揀嘅: $1',
 'savedprefs' => '你嘅喜好設定已經儲存。',
 'timezonelegend' => '時區:',
 'localtime' => '本地時間:',
@@ -1237,7 +1232,6 @@ $1",
 'prefs-common-css-js' => '共有嘅CSS同埋JavaScript畀所有畫面用:',
 'prefs-reset-intro' => '你可以用呢版去重設你嘅喜好設定到網站預設值。呢個動作無得番轉頭。',
 'prefs-emailconfirm-label' => '電郵確認:',
-'prefs-textboxsize' => '編寫框大細',
 'youremail' => '電郵:',
 'username' => '用戶名:',
 'uid' => '用戶 ID:',
@@ -1469,7 +1463,6 @@ $1",
 'recentchangeslinked-feed' => '連結頁嘅更改',
 'recentchangeslinked-toolbox' => '連結頁嘅更改',
 'recentchangeslinked-title' => '對「$1」有關嘅更改',
-'recentchangeslinked-noresult' => '響呢一段時間內連結頁並無更改。',
 'recentchangeslinked-summary' => "呢一個特別頁列示咗''由''所畀到嘅一版連結到頁嘅最近更改(或者係指定分類嘅成員)。
 響[[Special:Watchlist|你張監視清單]]嘅版會以'''粗體'''顯示。",
 'recentchangeslinked-page' => '頁名:',
@@ -2009,7 +2002,6 @@ Template:搞清楚',
 'unwatchthispage' => '停止監視',
 'notanarticle' => '唔係一個內容頁',
 'notvisiblerev' => '上次由唔同用戶嘅修訂已經刪除咗',
-'watchnochange' => '響顯示嘅時間之內,你所監視嘅頁面並無任何嘅更改。',
 'watchlist-details' => '唔計討論頁,有 $1 版響你個監視清單度。',
 'wlheader-enotif' => '電子郵件通知已經啟用。',
 'wlheader-showupdated' => "'''粗體字'''嘅頁響你上次嚟之後被人改過",
@@ -3220,7 +3212,6 @@ $5
 'version-other' => '其他',
 'version-mediahandlers' => '媒體處理器',
 'version-hooks' => '鈎',
-'version-extension-functions' => '擴展函數',
 'version-parser-extensiontags' => '語法擴展標籤',
 'version-parser-function-hooks' => '語法函數鈎',
 'version-hook-name' => '鈎名',
index 5bb99cd..a9e2693 100644 (file)
@@ -281,7 +281,6 @@ $1",
 'disclaimers' => 'Voebehoud',
 'disclaimerpage' => 'Project:Alhemeên voebehoud',
 'edithelp' => "Ulpe bie't bewerken",
-'edithelppage' => 'Help:Bewerken',
 'helppage' => 'Help:Inoud',
 'mainpage' => 'Vòblad',
 'mainpage-description' => 'Vòblad',
@@ -809,7 +808,6 @@ Zurg da je bie deêze wiezigieng de heschiedenisdeurloôpendeid van de pagina be
 'viewprevnext' => 'Bekiek ($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-exists' => "'''Er is 'n pagina genaemd \"[[:\$1]]\" op deêze wiki.'''",
 'searchmenu-new' => "'''De pagina \"[[:\$1]]\" anmaek'n op deêze wiki.'''",
-'searchhelp-url' => 'Help:Inoud',
 'searchprofile-articles' => "Inhoudelike pagina's",
 'searchprofile-project' => "Hilp- en projectpagina's",
 'searchprofile-images' => 'Multimedia',
@@ -981,7 +979,6 @@ Een nie anekruusd vienkvakje beteêken da de gebruker hin lid is van de hroep.",
 'recentchangeslinked-feed' => 'Gerelateerde bewerkiengen',
 'recentchangeslinked-toolbox' => 'Gerelateerde bewerkiengen',
 'recentchangeslinked-title' => 'Wiezigiengen verwant an "$1"',
-'recentchangeslinked-noresult' => "Der zien hin bewerkiengen in de heheven periode ewist op de pagina's die an vanaf ier elienkt worn.",
 'recentchangeslinked-summary' => "Deze speciaole pagina geeft de laetste bewerkiengen weer op pagina's waerheê verwezen òdt vanof 'n angegeven pagina of vanuut pagina's in 'n angegeven categorie.
 Pagina's die op [[Special:Watchlist|je volglieste]] staen wòdde '''vet''' weergegeven.",
 'recentchangeslinked-page' => 'Paginanaem:',
@@ -1126,7 +1123,6 @@ A je de bladzie laeter weêr van je volglieste afaele wil, klik dan op \"nie me
 'watch' => 'Volg',
 'watchthispage' => 'Bekiek deêze bladzie',
 'unwatch' => 'Nie meêr volge',
-'watchnochange' => "D'r is in d'n opgevrogen tied niks op je volglieste veranderd.",
 'watchlist-details' => "Er {{PLURAL:$1|sti eên pagina|staen $1 pagina's}} op je volglieste, exclusief overlegpagina's.",
 'watchlistcontains' => 'Uw volglieste bevat $1 {{PLURAL:$1|bladzie|bladzies}}.',
 'wlshowlast' => 'Laetste $1 uur, $2 daegen bekieken ($3)',
index 23e7ace..819e546 100644 (file)
@@ -14,6 +14,7 @@
  * @author Bencmq
  * @author Biŋhai
  * @author Breawycker
+ * @author Byfserag
  * @author Chenxiaoqino
  * @author Chenzw
  * @author Chinalace
@@ -41,6 +42,7 @@
  * @author Li3939108
  * @author Liangent
  * @author Linforest
+ * @author M13253
  * @author Makecat
  * @author Mark85296341
  * @author MarkAHershberger
  * @author O
  * @author Onecountry
  * @author PhiLiP
+ * @author Qiyue2001
  * @author Shinjiman
  * @author Shirayuki
  * @author Shizhao
  * @author Simon Shek
  * @author Slboat
+ * @author StephDC
  * @author Stevenliuyi
  * @author Supaiku
  * @author Tommyang
@@ -122,15 +126,15 @@ $namespaceAliases = array(
 
 $specialPageAliases = array(
        'Activeusers'               => array( '活跃用户' ),
-       'Allmessages'               => array( '所有息' ),
+       'Allmessages'               => array( '所有息' ),
        'Allpages'                  => array( '所有页面' ),
-       'Ancientpages'              => array( '最页面' ),
+       'Ancientpages'              => array( '最页面' ),
        'Badtitle'                  => array( '无效标题' ),
        'Blankpage'                 => array( '空白页面' ),
        'Block'                     => array( '封禁用户' ),
        'Blockme'                   => array( '自我封禁' ),
        'Booksources'               => array( '网络书源' ),
-       'BrokenRedirects'           => array( '损坏的重定向页' ),
+       'BrokenRedirects'           => array( '受损重定向页' ),
        'Categories'                => array( '页面分类' ),
        'ChangeEmail'               => array( '修改邮箱' ),
        'ChangePassword'            => array( '修改密码' ),
@@ -383,7 +387,7 @@ $messages = array(
 'tog-enotifrevealaddr' => '在通知电子邮件中显示我的电子邮件地址',
 'tog-shownumberswatching' => '显示监视用户数',
 'tog-oldsig' => '当前签名:',
-'tog-fancysig' => '将签名视为wiki代码(不自动生成链接)',
+'tog-fancysig' => '将签名视为维基代码(不自动生成链接)',
 'tog-showjumplinks' => '启用“跳转到”访问链接',
 'tog-uselivepreview' => '使用实时预览(需要JavaScript)(实验功能)',
 'tog-forceeditsummary' => '未输入编辑摘要时提醒我',
@@ -405,7 +409,7 @@ $messages = array(
 'underline-default' => '皮肤或浏览器默认设置',
 
 # Font style option in Special:Preferences
-'editfont-style' => '编辑区字体样式:',
+'editfont-style' => '编辑区中的字体样式:',
 'editfont-default' => '浏览器默认',
 'editfont-monospace' => '等宽字体',
 'editfont-sansserif' => '无衬线字体',
@@ -484,22 +488,23 @@ $messages = array(
 'hidden-categories' => '$1个隐藏分类',
 'hidden-category-category' => '隐藏分类',
 'category-subcat-count' => '{{PLURAL:$2|本分类只有下列一个子分类。|本分类包含下列$1个子分类,共$2个子分类。}}',
-'category-subcat-count-limited' => '本分类包含下列$1个子分类。',
+'category-subcat-count-limited' => '本分类包含下列{{PLURAL:$1|subcategory|$1个子分类}}。',
 'category-article-count' => '{{PLURAL:$2|本分类只有下列一个页面。|本分类包含下列$1个页面,共有$2个页面。}}',
 'category-article-count-limited' => '本分类包含下列$1个页面。',
-'category-file-count' => '{{PLURAL:$2|本分类只有下列文件。|本分类包含下列$1个文件,共$2个文件。}}',
+'category-file-count' => '{{PLURAL:$2|本分类只包含以下文件。|以下{{PLURAL:$1|文件|$1个文件}}在本分类中,共$2个文件。}}',
 'category-file-count-limited' => '本分类包含下列$1个文件。',
 'listingcontinuesabbrev' => '续',
 'index-category' => '允许索引的页面',
 'noindex-category' => '禁止索引的页面',
 'broken-file-category' => '包含损坏的文件链接的页面',
+'categoryviewer-pagedlinks' => '($1)($2)',
 
 'about' => '关于',
 'article' => '内容页面',
-'newwindow' => 'ï¼\88å°\86äº\8e新窗口中打开)',
+'newwindow' => 'ï¼\88å\9c¨新窗口中打开)',
 'cancel' => '取消',
 'moredotdotdot' => '更多',
-'morenotlisted' => 'æ\9b´å¤\9aæ\9cªè¢«å\88\97å\87ºç\9a\84模æ\9d¿...',
+'morenotlisted' => 'æ\9b´å¤\9a模æ\9d¿æ\9cªå\88\97å\87º...',
 'mypage' => '页面',
 'mytalk' => '讨论',
 'anontalk' => '该IP地址的讨论',
@@ -510,7 +515,7 @@ $messages = array(
 'qbfind' => '查找',
 'qbbrowse' => '浏览',
 'qbedit' => '编辑',
-'qbpageoptions' => '页面选项',
+'qbpageoptions' => '此页',
 'qbmyoptions' => '我的页面',
 'qbspecialpages' => '特殊页面',
 'faq' => '常见问题',
@@ -534,8 +539,8 @@ $messages = array(
 'variants' => '变换',
 
 'navigation-heading' => '导航菜单',
-'errorpagetitle' => '错误',
-'returnto' => '返回$1。',
+'errorpagetitle' => '出错',
+'returnto' => '返回$1。',
 'tagline' => '来自{{SITENAME}}',
 'help' => '帮助',
 'search' => '搜索',
@@ -555,6 +560,7 @@ $messages = array(
 'create-this-page' => '创建本页',
 'delete' => '删除',
 'deletethispage' => '删除本页',
+'undeletethispage' => '撤消删除此页',
 'undelete_short' => '恢复$1个被删除的编辑',
 'viewdeleted_short' => '查看$1个被删除的编辑',
 'protect' => '保护',
@@ -582,7 +588,7 @@ $messages = array(
 'viewtalkpage' => '查看讨论',
 'otherlanguages' => '其他语言',
 'redirectedfrom' => '(重定向自$1)',
-'redirectpagesub' => '重定向页',
+'redirectpagesub' => '重定向页',
 'lastmodifiedat' => '本页面最后修改于$1 $2。',
 'viewcount' => '此页面已被浏览过$1次。',
 'protectedpage' => '受保护页面',
@@ -594,7 +600,7 @@ $messages = array(
 请稍等片刻后再次尝试访问本页面。
 
 $1',
-'pool-timeout' => '等待锁超时',
+'pool-timeout' => '等待锁超时',
 'pool-queuefull' => '请求队列已满',
 'pool-errorunknown' => '未知错误',
 
@@ -608,18 +614,17 @@ $1',
 'disclaimers' => '免责声明',
 'disclaimerpage' => 'Project:免责声明',
 'edithelp' => '编辑帮助',
-'edithelppage' => 'Help:编辑',
 'helppage' => 'Help:目录',
 'mainpage' => '首页',
 'mainpage-description' => '首页',
-'policy-url' => 'Project:æ\94¿ç­\96',
+'policy-url' => 'Project:æ\96¹é\92\88ä¸\8eæ\8c\87å¼\95',
 'portal' => '社区专页',
 'portal-url' => 'Project:社区专页',
 'privacy' => '隐私权政策',
 'privacypage' => 'Project:隐私权政策',
 
 'badaccess' => '权限错误',
-'badaccess-group0' => '你被禁止执行你刚才请求的操作。',
+'badaccess-group0' => '你被禁止执行你请求的操作。',
 'badaccess-groups' => '您刚才请求的操作只有{{PLURAL:$2|这个用户组|以下用户组}}中的用户才能使用: $1',
 
 'versionrequired' => '需要版本为$1的MediaWiki',
@@ -641,7 +646,7 @@ $1',
 'viewsourceold' => '查看源代码',
 'editlink' => '编辑',
 'viewsourcelink' => '查看源代码',
-'editsectionhint' => '编辑章节:$1',
+'editsectionhint' => '编辑段落:$1',
 'toc' => '目录',
 'showtoc' => '显示',
 'hidetoc' => '隐藏',
@@ -654,7 +659,7 @@ $1',
 'feed-invalid' => '无效的订阅类型。',
 'feed-unavailable' => '不提供联合订阅源',
 'site-rss-feed' => '$1的RSS订阅',
-'site-atom-feed' => '$1的Atom',
+'site-atom-feed' => '$1的Atom订阅',
 'page-rss-feed' => '“$1”的RSS订阅',
 'page-atom-feed' => '“$1”的Atom订阅',
 'red-link-title' => '$1(页面不存在)',
@@ -663,7 +668,7 @@ $1',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => '页面',
-'nstab-user' => '用户页',
+'nstab-user' => '用户页',
 'nstab-media' => '媒体页面',
 'nstab-special' => '特殊页面',
 'nstab-project' => '项目页面',
@@ -705,9 +710,9 @@ $1',
 这通常是由于点击了链向旧有差异或历史的链接,而原有修订已被删除导致的。
 
 如果情况不是这样,您可能找到了软件的一个内部错误。请记录下URL地址,并向[[Special:ListUsers/sysop|管理员]]报告。',
-'missingarticle-rev' => '(修订版本编号:$1)',
+'missingarticle-rev' => '(版本#:$1)',
 'missingarticle-diff' => '(差异:$1,$2)',
-'readonly_lag' => '从数据库服务器正在从主服务器上更新,数据库已被自动锁定',
+'readonly_lag' => '附属数据库服务器正在将缓存更新到主服务器上,数据库已被自动锁定',
 'internalerror' => '内部错误',
 'internalerror_info' => '内部错误:$1',
 'fileappenderrorread' => '当附加时无法读取"$1"。',
@@ -725,7 +730,7 @@ $1',
 它可能已被其他人删除了。',
 'cannotdelete-title' => '无法删除“$1”',
 'delete-hook-aborted' => '删除被扩展钩子取消。钩子并没有给出解释。',
-'badtitle' => '错误标题',
+'badtitle' => '错误标题',
 'badtitletext' => '所请求页面的标题是无效的、不存在,跨语言或跨wiki链接的标题错误。它可能包含一个或更多的不能用于标题的字符。',
 'perfcached' => '下列数据已缓存,但可能已过时。最高{{PLURAL:$1|一个结果|$1个结果}}在缓存中可用。',
 'perfcachedts' => '下列数据已缓存,最后更新于$1。缓存中最多可有{{PLURAL:$4|1个结果|$4个结果}}。',
@@ -752,7 +757,11 @@ $2',
 'namespaceprotected' => "您没有权限编辑'''$1'''名字空间内的页面。",
 'customcssprotected' => '您没有权限编辑此CSS页面,因为它包含另一位用户的个人设置。',
 'customjsprotected' => '您没有权限编辑此JavaScript页面,因为它包含另一位用户的个人设置。',
-'ns-specialprotected' => '您不能编辑特殊页面。',
+'mycustomcssprotected' => '您没有权限编辑这个 CSS 页面。',
+'mycustomjsprotected' => '您没有权限编辑这个 JavaScript 页面。',
+'myprivateinfoprotected' => '您没有权限来编辑您的私人信息。',
+'mypreferencesprotected' => '您没有权限来编辑您的个人设置。',
+'ns-specialprotected' => '特殊页面不可编辑。',
 'titleprotected' => '此标题已被[[User:$1|$1]]保护以防止创建。理由是“$2”。',
 'filereadonlyerror' => '因为媒体库$2处于只读模式而无法修改文件$1。
 
@@ -772,56 +781,60 @@ $2',
 
 您可以继续以匿名方式使用{{SITENAME}},或再次以相同或不同用户身份<span class='plainlinks'>[$1 登录]</span>。请注意一些页面可能仍然显示您为登录状态,直到您清空您的浏览器缓存为止。",
 'welcomeuser' => '欢迎,$1!',
-'welcomecreation-msg' => '你的账户已创建。请不要忘记更改你的[[Special:Preferences|{{SITENAME}}系统设置]]。',
+'welcomecreation-msg' => '你的账户已创建。请不要忘记更改你的[[Special:Preferences|{{SITENAME}}设置]]。',
 'yourname' => '用户名:',
 'userlogin-yourname' => '用户名',
-'userlogin-yourname-ph' => '输入您的用户名',
+'userlogin-yourname-ph' => '请输入你的用户名',
+'createacct-another-username-ph' => '请输入用户名',
 'yourpassword' => '密码:',
 'userlogin-yourpassword' => '密码',
-'userlogin-yourpassword-ph' => 'è¾\93å\85¥æ\82¨的密码',
+'userlogin-yourpassword-ph' => '请è¾\93å\85¥ä½ 的密码',
 'createacct-yourpassword-ph' => '请输入密码',
 'yourpasswordagain' => '再次输入密码:',
 'createacct-yourpasswordagain' => '确认新密码',
 'createacct-yourpasswordagain-ph' => '请再次输入密码',
 'remembermypassword' => '在该浏览器保存我的登录状态(最长$1日)',
-'userlogin-remembermypassword' => '保持我的登录状态',
-'userlogin-signwithsecure' => '使用安全接',
+'userlogin-remembermypassword' => '记住我的登录状态',
+'userlogin-signwithsecure' => '使用安全接',
 'securelogin-stick-https' => '登录后继续使用HTTPS连接',
 'yourdomainname' => '您的域名:',
 'password-change-forbidden' => '您不能在本wiki上更改密码。',
 'externaldberror' => '验证数据库出错或您被禁止更新您的外部账号。',
 'login' => '登录',
 'nav-login-createaccount' => '登录/创建账户',
-'loginprompt' => '你必须启用Cookies才能登录{{SITENAME}}。',
+'loginprompt' => '你必须启用Cookie才能登录{{SITENAME}}。',
 'userlogin' => '登录/创建账户',
 'userloginnocreate' => '登录',
 'logout' => '退出',
 'userlogout' => '退出',
 'notloggedin' => '未登录',
-'userlogin-noaccount' => '还没有账号吗?',
+'userlogin-noaccount' => '没有账户?',
 'userlogin-joinproject' => '加入{{SITENAME}}',
 'nologin' => '没有账户?$1。',
 'nologinlink' => '创建账户',
 'createaccount' => '创建账户',
 'gotaccount' => '已经拥有账户?请$1。',
 'gotaccountlink' => '登录',
-'userlogin-resetlink' => 'å¿\98è®°äº\86ä½ ç\9a\84ç\99»å½\95ä¿¡æ\81¯ï¼\9f',
+'userlogin-resetlink' => '忘记你的登录信息?',
 'userlogin-resetpassword-link' => '重置你的密码',
 'helplogin-url' => 'Help:登录',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|登录说明]]',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|登录帮助]]',
 'createacct-join' => '请在下面输入你的信息。',
+'createacct-another-join' => '在下方输入新帐户信息。',
 'createacct-emailrequired' => '电子邮件地址:',
 'createacct-emailoptional' => '电子邮件地址 (可选)',
 'createacct-email-ph' => '请输入您的电子邮件地址',
+'createacct-another-email-ph' => '输入电子邮件地址',
 'createaccountmail' => '使用一个临时的随机密码,并将它发送到以下指定的电子邮件地址',
 'createacct-realname' => '真实姓名 (可选)',
 'createaccountreason' => '原因:',
 'createacct-reason' => '原因',
 'createacct-reason-ph' => '为什么您要创建另一个帐户',
 'createacct-captcha' => '安全检查',
-'createacct-imgcaptcha-ph' => 'è¾\93å\85¥æ\82¨å\9c¨ä¸\8aé\9d¢ç\9c\8bå\88°ç\9a\84æ\96\87æ\9c¬',
+'createacct-imgcaptcha-ph' => '请è¾\93å\85¥ä¸\8aå\9b¾ä¸­ç\9a\84æ\96\87å­\97',
 'createacct-submit' => '创建您的账户',
-'createacct-benefit-heading' => '{{SITENAME}} 是由像你这样的人建立的。',
+'createacct-another-submit' => '创建另一个帐户',
+'createacct-benefit-heading' => '{{SITENAME}}是由像您这样的人建立的。',
 'createacct-benefit-body1' => '{{PLURAL:$1|编辑}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|页面}}',
 'createacct-benefit-body3' => '最近{{PLURAL:$1|贡献者}}',
@@ -871,7 +884,7 @@ $2',
 'cannotchangeemail' => '本wiki不允许对账户的电子邮件地址进行更改。',
 'emaildisabled' => '此站点不能发送电子邮件。',
 'accountcreated' => '已建立账户',
-'accountcreatedtext' => '$1的账户已经被创建。',
+'accountcreatedtext' => '[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]])的账户已创建。',
 'createaccount-title' => '在{{SITENAME}}中创建新账户',
 'createaccount-text' => '有人在{{SITENAME}}中利用您的邮箱创建了一个名为 "$2" 的新帐户($4),密码是 "$3" 。您应该立即登录并更改密码。
 
@@ -907,11 +920,11 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => '重置密码',
-'passwordreset-text' => '完成该表格以重设你的密码。',
+'passwordreset-text-one' => '请输入你要重置的用户名。',
+'passwordreset-text-many' => '{{PLURAL:$1|填充部分字段以重置您的密码。}}',
 'passwordreset-legend' => '重置密码',
-'passwordreset-disabled' => '此wiki已经禁用密码重置。',
+'passwordreset-disabled' => '此Wiki已经禁用密码重置。',
 'passwordreset-emaildisabled' => '此Wiki上无法使用邮件功能。',
-'passwordreset-pretext' => '{{PLURAL:$1||输入下面的数据项之一}}',
 'passwordreset-username' => '用户名:',
 'passwordreset-domain' => '域:',
 'passwordreset-capture' => '查看生成的电子邮件吗?',
@@ -937,7 +950,7 @@ $2
 # Special:ChangeEmail
 'changeemail' => '更改电子邮件地址',
 'changeemail-header' => '更改帐户的电子邮件地址',
-'changeemail-text' => 'å®\8cæ\88\90æ­¤çª\97ä½\93可以更改您的电子邮件地址。您将需要输入您的密码以确认此更改。',
+'changeemail-text' => 'å¡«å\86\99此表å\8d\95可以更改您的电子邮件地址。您将需要输入您的密码以确认此更改。',
 'changeemail-no-info' => '
 您必须登录以直接访问本页。',
 'changeemail-oldemail' => '当前电子邮件地址:',
@@ -1008,7 +1021,7 @@ $2
 请注意,只有当你在[[Special:Preferences|系统设置]]确认了电子邮件地址且未被禁止使用“电邮联系”功能时,才可以使用它。
 
 你当前的IP地址是$3,该封禁ID是#$5。请在你的询问中包含上面的所有信息。",
-'blockednoreason' => 'æ\97 给出原因',
+'blockednoreason' => 'æ\9cª给出原因',
 'whitelistedittext' => '您必须先$1才可编辑页面。',
 'confirmedittext' => '你必须确认你的电子邮件地址才能编辑页面。请通过[[Special:Preferences|系统设置]]设置并确认你的电子邮件地址。',
 'nosuchsectiontitle' => '没有这个段落',
@@ -1018,15 +1031,14 @@ $2
 'loginreqlink' => '登录',
 'loginreqpagetext' => '您必须$1才能查看其它页面。',
 'accmailtitle' => '密码已寄出',
-'accmailtext' => "'$1'的密码已经被发送到$2。",
+'accmailtext' => "'[[User talk:$1|$1]]'的随机密码已经发送到$2。这个账户的密码可在登陆后的'[[Special:ChangePassword|更改密码]]'''页面中更改。",
 'newarticle' => '(新页面)',
 'newarticletext' => '您进入了一个尚未创建的页面。
 要创建该页面,请在下面的编辑框中输入内容(详情参见[[{{MediaWiki:Helppage}}|帮助页]])。
 如果您误入此页,请点击浏览器中的“返回”按钮。',
 'anontalkpagetext' => "---- ''这是一个还未建立账户的匿名用户的讨论页, 因此我们只能用IP地址来与他或她联络。该IP地址可能由几名用户共享。如果您是一名匿名用户并认为此页上的评语与您无关,请[[Special:UserLogin/signup|创建新账户]]或[[Special:UserLogin|登录]]以避免在未来与其他匿名用户混淆。''",
-'noarticletext' => '本页面目前没有内容。你可以在其他页面中[[Special:Search/{{PAGENAME}}|搜索该页标题]]、<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 搜索相关日志]或[{{fullurl:{{FULLPAGENAME}}|action=edit}} 编辑本页面]。</span>',
-'noarticletext-nopermission' => '此页目前没有内容。
-您可以在其它页[[Special:Search/{{PAGENAME}}|搜寻此页标题]],或<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 搜寻有关日志]</span>,但您没有权限建立此页。',
+'noarticletext' => '本页面目前没有内容。你可以在其他页面中[[Special:Search/{{PAGENAME}}|搜索本页标题]]、<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 搜索相关日志]或[{{fullurl:{{FULLPAGENAME}}|action=edit}} 编辑本页面]。</span>',
+'noarticletext-nopermission' => '本页面目前没有内容。你可以在其他页面中[[Special:Search/{{PAGENAME}}|搜索本页标题]]或<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 搜索相关日志],但你没有权限创建本页面。',
 'missing-revision' => '“{{PAGENAME}}”的修订#$1不存在。
 
 这通常是因为进入了一个已被删除的页面的历史链接。
@@ -1048,7 +1060,7 @@ $2
 'userinvalidcssjstitle' => "'''警告:''' 不存在皮肤\"\$1\"。注意自定义的 .css 和 .js 页要使用小写标题,例如,{{ns:user}}:Foo/vector.css 不同于 {{ns:user}}:Foo/Vector.css。",
 'updated' => '(已更新)',
 'note' => "'''注意:'''",
-'previewnote' => "'''请记住这仅为预览。'''您的更改还未保存!",
+'previewnote' => "'''请记住这只是预览。'''你的更改还没有保存!",
 'continue-editing' => '往编辑框',
 'previewconflict' => '该预览反映了上面文字编辑区中的文字在你保存后的显示状况。',
 'session_fail_preview' => "'''对不起!由于会话数据丢失,我们无法处理你的编辑。'''请重试。如果仍然失败,请尝试[[Special:UserLogout|退出登录]]后重新登录。",
@@ -1063,7 +1075,7 @@ $2
 'edit_form_incomplete' => "'''编辑表格的某些部分没有到达服务器,请检查你的编辑是否完整并重试。'''",
 'editing' => '编辑“$1”',
 'creating' => '创建 $1',
-'editingsection' => '编辑“$1”(段落)',
+'editingsection' => '编辑“$1(段落)”',
 'editingcomment' => '编辑“$1”(新段落)',
 'editconflict' => '编辑冲突:$1',
 'explainconflict' => "其他用户在你开始编辑后更改了该页面。上面的文字区含有该页面当前的文字。下面的文字区显示你的更改。你必须把你的更改合并至现有文字。'''只有'''当你单击“{{int:savearticle}}”后,上面的文字区中的文字才会被保存。",
@@ -1106,7 +1118,7 @@ $2
 'permissionserrorstext-withaction' => '因为以下{{PLURAL:$1|原因}},你没有权限$2:',
 'recreate-moveddeleted-warn' => "'''警告:你正在重新创建曾经被删除的页面。'''
 
-你应该考虑继续编辑本页是否合适。这里提供本页的删除和移动记录以供参考:",
+你应该考虑继续编辑本页是否合适。这里提供本页的删除和移动日志以供参考:",
 'moveddeleted-notice' => '本页面已被删除。下面提供本页的删除和移动日志以供参考。',
 'log-fulllog' => '查看完整日志',
 'edit-hook-aborted' => '编辑被hook指令取消。
@@ -1115,13 +1127,14 @@ $2
 它可能刚刚被删除。',
 'edit-conflict' => '编辑冲突。',
 'edit-no-change' => '因为没有文字更改,你的编辑已被忽略。',
+'postedit-confirmation' => '您的编辑已保存。',
 'edit-already-exists' => '不可以建立一个新页面。
 它已经存在。',
 'defaultmessagetext' => '默认消息文本',
 'content-failed-to-parse' => '未能将 $2 内容转换为 $1:$3',
 'invalid-content-data' => '无效的内容数据',
 'content-not-allowed-here' => '[[$2]]页面上不允许“$1”内容',
-'editwarning-warning' => '离开这个页面会令您遗失之前的所有更改。若您已经登入,您可在您参数设置的“{{int:prefs-editing}}”节中关闭此警告。',
+'editwarning-warning' => '离开这个页面会令您遗失之前的所有更改。若您已经登入,您可在您参数设置的“编辑”节中关闭此警告。',
 
 # Content models
 'content-model-wikitext' => 'wiki语法',
@@ -1137,8 +1150,7 @@ $2
 'post-expand-template-inclusion-warning' => '警告:包含模板大小过大。
 一些模板将不会包含。',
 'post-expand-template-inclusion-category' => '模板包含上限已经超过的页面',
-'post-expand-template-argument-warning' => '警告:这个页面有最少一个模参数有过大扩展大小。
-这些参数会被略过。',
+'post-expand-template-argument-warning' => "'''警告:'''本页面包含至少一个模板参数有过大扩展大小。这些参数会被略过。",
 'post-expand-template-argument-category' => '包含着略过模板参数的页面',
 'parser-template-loop-warning' => '检查到模板循环:[[$1]]',
 'parser-template-recursion-depth-warning' => '模板递归深度越限($1)',
@@ -1156,6 +1168,7 @@ $2
 'undo-failure' => '因存在冲突的中间编辑,本编辑不能撤销。',
 'undo-norev' => '由于其修订版本不存在或已删除,此编辑不能撤销。',
 'undo-summary' => '撤销[[Special:Contributions/$2|$2]]([[User talk:$2|讨论]])的版本$1',
+'undo-summary-username-hidden' => '取消由一匿名用户所作的修订$1',
 
 # Account creation failure
 'cantcreateaccounttitle' => '无法创建账户',
@@ -1182,7 +1195,7 @@ $3的理由是''$2''",
 说明:'''({{int:cur}})'''=与最后版本之间的差异,'''({{int:last}})'''=与上一版本之间的差异,'''{{int:minoreditletter}}'''=小编辑。",
 'history-fieldset-title' => '浏览历史',
 'history-show-deleted' => '仅被删除的',
-'histfirst' => 'æ\9c\80æ\97©',
+'histfirst' => 'æ\9c\80æ\97§',
 'histlast' => '最新',
 'historysize' => '($1字节)',
 'historyempty' => '(空)',
@@ -1199,7 +1212,7 @@ $3的理由是''$2''",
 'rev-deleted-user' => '(用户名被删除)',
 'rev-deleted-event' => '(日志条目被删除)',
 'rev-deleted-user-contribs' => '[用户名或IP地址被删除 - 编辑在贡献中隐藏]',
-'rev-deleted-text-permission' => "本页面版本已被'''删除'''。详情请见[{{fullurl:{{#Special:Log}}/delete|page={{PAGENAMEE}}}} 删除日志]。",
+'rev-deleted-text-permission' => "本页面版本已被'''删除'''。详情请见[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 删除日志]。",
 'rev-deleted-text-unhide' => "本页面版本已被'''删除'''。详情请见[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 删除日志]。如果你想继续操作,你仍然可以[$1 查看本版本]。",
 'rev-suppressed-text-unhide' => "该页面修订已经被'''监督隐藏'''。在[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 监督日志]中可以找到详细的信息。如果您想继续的话,您可以仍然[$1 去查看这次修订]。",
 'rev-deleted-text-view' => "本页面版本已被'''删除'''。你可以查看它,详情请见[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 删除日志]。",
@@ -1226,9 +1239,9 @@ $3的理由是''$2''",
 'revdelete-show-file-submit' => '是',
 'revdelete-selected' => "'''选取'''[[:$1]]'''的$2次修订:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|选取的日志项目}}:'''",
-'revdelete-text' => "'''删除的修订仍将显示在页面历史中, 但它们的文本内容已不能被公众访问。'''
-在{{SITENAME}}的其他管理员将仍能访问隐藏的内容并通过与此相同的界面恢复删除,除非站点工作者进行了一些附加的限制。",
-'revdelete-confirm' => '请确认您肯定去做的话,您就要明白到后果,以及这个程序符合[[{{MediaWiki:Policy-url}}|政策]]。',
+'revdelete-text' => "'''删除的版本仍将显示在页面历史及日志中,但公众已不能访问其文本内容。'''
+在{{SITENAME}}的其他管理员将仍能访问隐藏的内容并通过该界面恢复删除的版本,除非进行了额外限制。",
+'revdelete-confirm' => '请确认该操作,明白其后果,并确保该操作符合[[{{MediaWiki:Policy-url}}|方针]]。',
 'revdelete-suppress-text' => "阻止应该'''只'''在以下情形使用:
 *潜在的诽谤信息
 *不合适的个人信息
@@ -1246,7 +1259,7 @@ $3的理由是''$2''",
 'revdelete-suppress' => '同时阻止管理员与其他用户查看数据',
 'revdelete-unsuppress' => '在已恢复的修订中移除限制',
 'revdelete-log' => '原因:',
-'revdelete-submit' => '应用于选中的{{PLURAL:$1|修订}}',
+'revdelete-submit' => '应用于选中的{{PLURAL:$1|版本}}',
 'revdelete-success' => "'''修订的可见性已经成功更新。'''",
 'revdelete-failure' => "'''修订的可见性无法更新:'''
 $1",
@@ -1316,6 +1329,7 @@ $1",
 'compareselectedversions' => '对比选择的版本',
 'showhideselectedversions' => '显示/隐藏选择的版本',
 'editundo' => '撤销',
+'diff-empty' => '(没有差异)',
 'diff-multi' => '(未显示$2个用户的$1个中间版本)',
 'diff-multi-manyusers' => '(未显示超过$2个用户的$1个中间版本)',
 'difference-missing-revision' => '此差异对比的{{PLURAL:$2|一个修订|$2个修订}}($1){{PLURAL:$2|没有}}找到。
@@ -1343,7 +1357,6 @@ $1",
 'searchmenu-legend' => '搜索选项',
 'searchmenu-exists' => "'''本wiki上有名为“[[:$1]]”的页面。'''",
 'searchmenu-new' => "'''在本wiki上新建名为“[[:$1]]”的页面!'''",
-'searchhelp-url' => 'Help:目录',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|去浏览以此为首的页面]]',
 'searchprofile-articles' => '内容页面',
 'searchprofile-project' => '帮助和项目页面',
@@ -1367,11 +1380,11 @@ $1",
 'search-relatedarticle' => '相关',
 'mwsuggest-disable' => '禁用AJAX建议',
 'searcheverything-enable' => '在所有名字空间中搜索',
-'searchrelated' => '相关页面',
+'searchrelated' => '相关',
 'searchall' => '所有',
 'showingresults' => "下面显示从第'''$2'''条结果开始的'''$1'''条结果。",
 'showingresultsnum' => "下面显示从第'''$2'''条结果开始的'''$3'''条结果。",
-'showingresultsheader' => "关于'''$4'''的{{PLURAL:$5|第'''$1'''条至第'''$3'''条结果|第'''$1'''条至第'''$2'''条结果,共'''$3'''条结果}}",
+'showingresultsheader' => "关于'''$4'''的{{PLURAL:$5|第'''$1'''条结果,共'''$3'''条结果|第'''$1-$2'''条结果,共'''$3'''条结果}}",
 'nonefound' => "'''注意''':只有某些名字空间被默认搜索。请尝试给你的搜索内容添加前缀“all:”以搜索全部内容(包括讨论页面、模板等)或使用期望的名字空间作为前缀。",
 'search-nonefound' => '找不到和查询相匹配的结果。',
 'powersearch' => '高级搜索',
@@ -1388,7 +1401,7 @@ $1",
 
 # Preferences page
 'preferences' => '设置',
-'mypreferences' => '系统设置',
+'mypreferences' => '设置',
 'prefs-edits' => '编辑数:',
 'prefsnologin' => '未登录',
 'prefsnologintext' => '您必须先<span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} 登录]</span>才能设置个人参数。',
@@ -1418,7 +1431,6 @@ $1",
 'resetprefs' => '清除未保存的更改',
 'restoreprefs' => '恢复所有默认设置',
 'prefs-editing' => '编辑',
-'prefs-edit-boxsize' => '编辑框尺寸',
 'rows' => '行:',
 'columns' => '列:',
 'searchresultshead' => '搜索',
@@ -1429,7 +1441,6 @@ $1",
 'recentchangesdays-max' => '最多$1天',
 'recentchangescount' => '默认显示的编辑数:',
 'prefs-help-recentchangescount' => '该项包含最近更改、页面历史和日志。',
-'prefs-help-watchlist-token' => '此栏填写的密钥可以生成您监视列表的RSS源。任何知晓本栏密钥的人都能阅读您的监视列表,因此请使用安全的数值。这里已提供了一个随机生成的数值供您选择:$1',
 'savedprefs' => '你的系统设置已保存。',
 'timezonelegend' => '时区:',
 'localtime' => '当地时间:',
@@ -1459,7 +1470,6 @@ $1",
 'prefs-common-css-js' => '所有皮肤共用的CSS/JavaScript:',
 'prefs-reset-intro' => '你可以使用本页面重置你的系统设置为网站默认值。该操作不能撤销。',
 'prefs-emailconfirm-label' => '电子邮件确认:',
-'prefs-textboxsize' => '编辑框大小',
 'youremail' => '电子邮件:',
 'username' => '{{GENDER:$1|用户名}}:',
 'uid' => '{{GENDER:$1|用户}}ID:',
@@ -1480,15 +1490,17 @@ $1",
 'prefs-help-gender' => '选填项目。使软件使用正确的性别称呼。该信息将会公开。',
 'email' => '电子邮件',
 'prefs-help-realname' => '真实姓名是选填项目。如果你选择提供它,它将会用于贡献署名。',
-'prefs-help-email' => '电子邮件地址是选填项目。但是在你忘记密码需要重置密码时需要电子邮件地址。',
-'prefs-help-email-others' => '你亦å\8f¯ä»¥é\80\89æ\8b©è®©å\85¶ä»\96ç\94¨æ\88·é\80\9aè¿\87ä½ ç\9a\84ç\94¨æ\88·é¡µæ\88\96讨论页上的链接用电子邮件联系你。其他用户联系你时你的电子邮件地址不会显示。',
+'prefs-help-email' => '电子邮件地址是选填项目,但是当你忘记密码需要重置密码时需要该项信息。',
+'prefs-help-email-others' => 'ä½ ä¹\9få\8f¯ä»¥é\80\89æ\8b©è®©å\85¶ä»\96ç\94¨æ\88·é\80\9aè¿\87ä½ ç\9a\84ç\94¨æ\88·æ\88\96讨论页é\9d¢上的链接用电子邮件联系你。其他用户联系你时你的电子邮件地址不会显示。',
 'prefs-help-email-required' => '电子邮件地址是必填项目。',
 'prefs-info' => '基本信息',
 'prefs-i18n' => '界面语言',
 'prefs-signature' => '签名',
 'prefs-dateformat' => '日期格式',
 'prefs-timeoffset' => '时差',
-'prefs-advancedediting' => '高级选项',
+'prefs-advancedediting' => '通用',
+'prefs-editor' => '编辑',
+'prefs-preview' => '预览',
 'prefs-advancedrc' => '高级选项',
 'prefs-advancedrendering' => '高级选项',
 'prefs-advancedsearchoptions' => '高级选项',
@@ -1524,6 +1536,7 @@ $1",
 'userrights-changeable-col' => '你可以更改的用户组',
 'userrights-unchangeable-col' => '你不能更改的用户组',
 'userrights-conflict' => '用户权限冲突 !请重新应用您的更改。',
+'userrights-removed-self' => '您已成功删除您自己的权利。因此,您不再能够访问此页。',
 
 # Groups
 'group' => '用户组:',
@@ -1567,7 +1580,7 @@ $1",
 'right-reupload-shared' => '本地覆盖共享文件库的文件',
 'right-upload_by_url' => '从URL上传文件',
 'right-purge' => '无确认清除页面缓存',
-'right-autoconfirmed' => '编辑半保护页面',
+'right-autoconfirmed' => '不受基于IP的速率限制',
 'right-bot' => '被视为自动过程',
 'right-nominornewtalk' => '不使小编辑在讨论页面引发新信息提示',
 'right-apihighlimits' => '在API查询中使用更高的限制',
@@ -1588,12 +1601,20 @@ $1",
 'right-ipblock-exempt' => '避开IP封禁、自动封禁和IP段封禁',
 'right-proxyunbannable' => '避开代理服务器的自动封禁',
 'right-unblockself' => '自己解封',
-'right-protect' => '更改保护级别和编辑受保护页面',
-'right-editprotected' => '编辑保护页面(无连锁保护)',
+'right-protect' => '更改保护级别和编辑受连锁保护的页面',
+'right-editprotected' => '编辑页面保护需要“{{int:protect-level-sysop}}”',
+'right-editsemiprotected' => '编辑页面保护需要“{{int:protect-level-autoconfirmed}}”',
 'right-editinterface' => '编辑用户界面',
 'right-editusercssjs' => '编辑其他用户的CSS和JavaScript文件',
 'right-editusercss' => '编辑其他用户的CSS文件',
 'right-edituserjs' => '编辑其他用户的JavaScript文件',
+'right-editmyusercss' => '编辑您自己的用户 CSS 文件',
+'right-editmyuserjs' => '编辑您自己的用户 JavaScript 文件',
+'right-viewmywatchlist' => '查看你的监视列表',
+'right-editmywatchlist' => '编辑您的监视列表。请注意即使没有这种权利,某些操作仍将添加页面。',
+'right-viewmyprivateinfo' => '查看您自己的私人数据 (如电子邮件地址、 真实姓名)',
+'right-editmyprivateinfo' => '编辑您自己的私人数据 (如电子邮件地址、 真实姓名)',
+'right-editmyoptions' => '编辑您的个人设置',
 'right-rollback' => '快速回退最后编辑特定页面的用户的编辑',
 'right-markbotedits' => '标记回退编辑为机器人编辑',
 'right-noratelimit' => '不受速率限制影响',
@@ -1655,25 +1676,30 @@ $1",
 'action-userrights-interwiki' => '编辑其它wiki的用户的用户权限',
 'action-siteadmin' => '锁定或解锁数据库',
 'action-sendemail' => '电邮联系其他用户',
+'action-editmywatchlist' => '编辑你的监视列表',
+'action-viewmywatchlist' => '查看你的监视列表',
+'action-viewmyprivateinfo' => '查看您的私人信息',
+'action-editmyprivateinfo' => '编辑您的私人信息',
 
 # Recent changes
-'nchanges' => '$1更改',
+'nchanges' => '$1更改',
 'recentchanges' => '最近更改',
 'recentchanges-legend' => '最近更改选项',
 'recentchanges-summary' => '在此页面上跟踪维基的更改。',
-'recentchanges-feed-description' => '跟踪订阅本wiki的最近更改。',
+'recentchanges-noresult' => '在此期间没有符合这些条件的编辑',
+'recentchanges-feed-description' => '用这个源跟踪本wiki的最近更改。',
 'recentchanges-label-newpage' => '这次编辑建立了一个新页面',
 'recentchanges-label-minor' => '这是一个小编辑',
 'recentchanges-label-bot' => '这次编辑是由机器人进行',
 'recentchanges-label-unpatrolled' => '该编辑尚未巡查',
-'rcnote' => "下面是最后'''$2'''天的最后'''$1'''个更改,截至$4 $5。",
+'rcnote' => "下面是过去'''$2'''天的最后'''$1'''个更改,截至$4 $5。",
 'rcnotefrom' => "下面是自'''$2'''起的更改(最多显示'''$1'''个)。",
 'rclistfrom' => '显示自$1起的新更改',
 'rcshowhideminor' => '$1小编辑',
 'rcshowhidebots' => '$1机器人的编辑',
 'rcshowhideliu' => '$1登录用户的编辑',
 'rcshowhideanons' => '$1匿名用户的编辑',
-'rcshowhidepatr' => '$1å·¡æ\9f¥è¿\87的编辑',
+'rcshowhidepatr' => '$1已巡æ\9f¥的编辑',
 'rcshowhidemine' => '$1我的编辑',
 'rclinks' => '显示最后$2天的最后$1个更改<br />$3',
 'diff' => '差异',
@@ -1697,9 +1723,7 @@ $1",
 'recentchangeslinked-feed' => '相关更改',
 'recentchangeslinked-toolbox' => '相关更改',
 'recentchangeslinked-title' => '与“$1”有关的更改',
-'recentchangeslinked-noresult' => '在这一段时间中链接的页面并无更改。',
-'recentchangeslinked-summary' => "这一个特殊页面列示''由''所给出的一个页面之链接到页面的最近更改(或者是对于指定分类的成员)。
-在[[Special:Watchlist|您的监视列表]]中的页面会以'''粗体'''显示。",
+'recentchangeslinked-summary' => "这是链接自指定页面(或至指定分类的成员)的页面的最近更改的列表。[[Special:Watchlist|你的监视列表]]中的页面以'''粗体'''显示。",
 'recentchangeslinked-page' => '页面名称:',
 'recentchangeslinked-to' => '显示链到所给出的页面',
 
@@ -1709,7 +1733,7 @@ $1",
 'reuploaddesc' => '取消上传并返回上传表单',
 'upload-tryagain' => '提交修改后的文件描述',
 'uploadnologin' => '未登录',
-'uploadnologintext' => '您必须先[[Special:UserLogin|登录]]才能上传文件。',
+'uploadnologintext' => '您必须先$1才能上传文件。',
 'upload_directory_missing' => '上传目录($1)遗失,不能由网页服务器建立。',
 'upload_directory_read_only' => '上传目录($1)不存在或无写权限。',
 'uploaderror' => '上传错误',
@@ -1727,7 +1751,7 @@ $1",
 'upload-prohibited' => '禁止的文件类型:$1。',
 'uploadlog' => '上传日志',
 'uploadlogpage' => '上传日志',
-'uploadlogpagetext' => '下面是最近的文件上传的列表。图像概览请见[[Special:NewFiles|新文件库]]。',
+'uploadlogpagetext' => 'ä¸\8bé\9d¢æ\98¯æ\9c\80è¿\91ç\9a\84æ\96\87件ä¸\8aä¼ ç\9a\84å\88\97表ã\80\82å\9b¾å\83\8fæ¦\82è§\88请è§\81[[Special:NewFiles|æ\96°æ\96\87件å\9b¾åº\93]]ã\80\82',
 'filename' => '文件名',
 'filedesc' => '文件说明',
 'fileuploadsummary' => '摘要:',
@@ -2058,15 +2082,17 @@ $1',
 'statistics-users-active-desc' => '在前$1天中操作过的用户',
 'statistics-mostpopular' => '浏览最多的页面',
 
-'disambiguations' => '链接至消歧义页的页面',
+'disambiguations' => '链接至消歧义页的页面',
 'disambiguationspage' => 'Template:消歧义',
 'disambiguations-text' => "以下的页面都有到'''消歧义页'''的链接,但它们可能可以链接到更适当的页面。<br />一个页面如果使用了[[MediaWiki:Disambiguationspage]]内的模板,则会被视为消歧义页。",
 
-'pageswithprop' => '有页面属性的页面',
-'pageswithprop-legend' => '有页面属性的页面',
+'pageswithprop' => '有页面属性的页面',
+'pageswithprop-legend' => '有页面属性的页面',
 'pageswithprop-text' => '此页面列出了使用特定页面属性的页面名单。',
 'pageswithprop-prop' => '属性名称:',
 'pageswithprop-submit' => '提交',
+'pageswithprop-prophidden-long' => '长文本属性值已隐藏( $1 千字节)',
+'pageswithprop-prophidden-binary' => '已隐藏二进制属性值($1千字节)',
 
 'doubleredirects' => '双重重定向页',
 'doubleredirectstext' => '本页面列出重定向至其他重定向页的页面。每行含有第一及第二重定向的链接和第二重定向的目标(通常是第一重定向应该指向的“真实”目标页面)。<del>带删除线的</del>条目已被解决。',
@@ -2074,17 +2100,17 @@ $1',
 'double-redirect-fixed-maintenance' => '修复双重重定向自[[$1]]至[[$2]]。',
 'double-redirect-fixer' => '重定向页修复器',
 
-'brokenredirects' => '损坏的重定向页',
+'brokenredirects' => '受损重定向页',
 'brokenredirectstext' => '以下的重定向页面指向的是不存在的页面:',
 'brokenredirects-edit' => '编辑',
 'brokenredirects-delete' => '删除',
 
-'withoutinterwiki' => '无语言链接页面',
+'withoutinterwiki' => '无语言链接页面',
 'withoutinterwiki-summary' => '以下的页面是未有语言链接到其它语言版本。',
 'withoutinterwiki-legend' => '前缀',
 'withoutinterwiki-submit' => '显示',
 
-'fewestrevisions' => '最少版本页面',
+'fewestrevisions' => '版本最少页面',
 
 # Miscellaneous special pages
 'nbytes' => '$1字节',
@@ -2107,7 +2133,7 @@ $1',
 'unusedimages' => '未使用文件',
 'popularpages' => '热点页面',
 'wantedcategories' => '需要的分类',
-'wantedpages' => '待撰页面',
+'wantedpages' => '需要的页面',
 'wantedpages-badtitle' => '在结果组上的无效标题:$1',
 'wantedfiles' => '需要的文件',
 'wantedfiletext-cat' => '下列被使用的文件并不存在。已列出可能存在外部媒体库中的文件。任何此类误报将被<del>剔除</del>。此外,[[:$1]]列出列出了嵌入不存在文件的页面。',
@@ -2138,10 +2164,10 @@ $1',
 'listusers-editsonly' => '只显示有编辑的用户',
 'listusers-creationsort' => '按建立日期排序',
 'usereditcount' => '$1次编辑',
-'usercreated' => '$1 $2{{GENDER:$3|创建}}',
+'usercreated' => '{{GENDER:$3|创建}}于$1 $2',
 'newpages' => '新页面',
 'newpages-username' => '用户名:',
-'ancientpages' => '最页面',
+'ancientpages' => '最页面',
 'move' => '移动',
 'movethispage' => '移动本页',
 'unusedimagestext' => '下列文件已存在,但并未插入任何页面。
@@ -2158,7 +2184,7 @@ $1',
 
 # Book sources
 'booksources' => '网络书源',
-'booksources-search-legend' => '搜索网络书源',
+'booksources-search-legend' => '搜索图书来源',
 'booksources-isbn' => 'ISBN:',
 'booksources-go' => '提交',
 'booksources-text' => '以下是一些网络书店的链接列表,其中可能有您要找的书籍的更多信息:',
@@ -2240,7 +2266,8 @@ $1',
 'listgrouprights' => '用户组权限',
 'listgrouprights-summary' => '以下面是一个在这个维基中所定义出来的用户权限列表,以及它们的访问权。
 更多有关个别权限的细节可以在[[{{MediaWiki:Listgrouprights-helppage}}|这里]]找到。',
-'listgrouprights-key' => '* <span class="listgrouprights-granted">被授予的权限</span>
+'listgrouprights-key' => '说明:
+* <span class="listgrouprights-granted">被授予的权限</span>
 * <span class="listgrouprights-revoked">被取消的权限</span>',
 'listgrouprights-group' => '用户组',
 'listgrouprights-rights' => '权限',
@@ -2309,7 +2336,6 @@ $1',
 'unwatchthispage' => '停止监视',
 'notanarticle' => '非内容页面',
 'notvisiblerev' => '上次由不同用户所作的修订版本已经删除',
-'watchnochange' => '在显示的时间段内您所监视的页面没有更改。',
 'watchlist-details' => '不计讨论页面,你的监视列表中有$1个页面。',
 'wlheader-enotif' => '已启用电子邮件通知',
 'wlheader-showupdated' => "你上次访问后更改的页面以'''粗体'''显示",
@@ -2318,7 +2344,7 @@ $1',
 'watchlistcontains' => '您的监视列表包含$1个页面。',
 'iteminvalidname' => "页面'$1'错误,无效命名...",
 'wlnote' => "下面是最后'''$2'''小时的最后'''$1'''个更改,截至$3 $4。",
-'wlshowlast' => '显示最近$1小时、$2天或$3的更改',
+'wlshowlast' => '显示过去$1小时 $2天 $3',
 'watchlist-options' => '监视列表选项',
 
 # Displayed when you click the "watch" button and it is in the process of watching
@@ -2340,7 +2366,7 @@ $1',
 'enotif_body_intro_restored' => '{{SITENAME}}页面$1已于$PAGEEDITDATE被$2{{GENDER:$2|恢复}},请浏览<$3>查看当前版本。',
 'enotif_body_intro_changed' => '{{SITENAME}}页面$1已于$PAGEEDITDATE被$2{{GENDER:$2|更改}},请浏览 $3 查看当前版本。',
 'enotif_lastvisited' => '请浏览 $1 查看你上次访问后的所有更改。',
-'enotif_lastdiff' => '请浏览$1查看该更改。',
+'enotif_lastdiff' => '请浏览 $1 查看该更改。',
 'enotif_anon_editor' => '匿名用户$1',
 'enotif_body' => '亲爱的$WATCHINGUSERNAME:
 
@@ -2412,7 +2438,7 @@ $UNWATCHURL
 本页最后的编辑者是[[User:$3|$3]]([[User talk:$3|讨论]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]])。',
 'editcomment' => '编辑摘要:"<i>$1</i>"。',
 'revertpage' => '已恢复[[Special:Contributions/$2|$2]]([[User talk:$2|讨论]])的编辑至[[User:$1|$1]]的最后一个修订版本',
-'revertpage-nouser' => '恢复由(移除了的用户名)的编辑到[[User:$1|$1]]的最后一个修订版本',
+'revertpage-nouser' => '恢复由隐藏用户的编辑到[[User:$1|$1]]的最后一个修订版本',
 'rollback-success' => '已恢复$1的编辑,更改回$2的最后修订版本。',
 
 # Edit tokens
@@ -2548,7 +2574,7 @@ $1',
 'mycontris' => '贡献',
 'contribsub2' => '$1的贡献($2)',
 'nocontribs' => '没有找到符合特征的更改。',
-'uctop' => '(最后更改)',
+'uctop' => '(当前)',
 'month' => '截止月份:',
 'year' => '截止年份:',
 
@@ -2567,7 +2593,7 @@ $1',
 最近的封锁日志项目在下面提供以便参考:',
 'sp-contributions-search' => '搜索贡献',
 'sp-contributions-username' => 'IP地址或用户名:',
-'sp-contributions-toponly' => '仅显示最后版本编辑',
+'sp-contributions-toponly' => 'ä»\85æ\98¾ç¤ºæ\9c\80å\90\8eç\89\88æ\9c¬ç\9a\84ç¼\96è¾\91',
 'sp-contributions-submit' => '搜索',
 
 # What links here
@@ -2866,7 +2892,7 @@ $1被封禁的理由是:“$2”',
 # Thumbnails
 'thumbnail-more' => '放大',
 'filemissing' => '无法找到文件',
-'thumbnail_error' => '生成缩略图错误:$1',
+'thumbnail_error' => '生成缩略图出错:$1',
 'thumbnail_error_remote' => '来自$1的错误消息从:
 $2',
 'djvu_page_error' => 'DjVu页面超出范围',
@@ -2949,14 +2975,14 @@ $2',
 'tooltip-pt-anonuserpage' => '你用于编辑的IP地址的用户页面',
 'tooltip-pt-mytalk' => '你的讨论页面',
 'tooltip-pt-anontalk' => '有关本IP地址的编辑的讨论',
-'tooltip-pt-preferences' => '你的系统设置',
+'tooltip-pt-preferences' => '你的设置',
 'tooltip-pt-watchlist' => '你正在监视更改的页面的列表',
 'tooltip-pt-mycontris' => '你的贡献的列表',
 'tooltip-pt-login' => '我们鼓励你登录,不过这不是强制的',
 'tooltip-pt-anonlogin' => '我们鼓励你登录,不过这不是强制的',
 'tooltip-pt-logout' => '退出登录',
-'tooltip-ca-talk' => '有关内容页面的讨论',
-'tooltip-ca-edit' => '你可以编辑本页面。请在保存前使用预览按钮',
+'tooltip-ca-talk' => '关于内容页面的讨论',
+'tooltip-ca-edit' => '你可以编辑本页面。请在保存前使用预览按钮',
 'tooltip-ca-addsection' => '开始新段落',
 'tooltip-ca-viewsource' => '本页面受到保护。你可以查看其源代码。',
 'tooltip-ca-history' => '本页面过去的版本',
@@ -2967,7 +2993,7 @@ $2',
 'tooltip-ca-move' => '移动本页',
 'tooltip-ca-watch' => '添加本页面至你的监视列表',
 'tooltip-ca-unwatch' => '从你的监视列表删除本页面',
-'tooltip-search' => '在{{SITENAME}}中搜索',
+'tooltip-search' => '搜索{{SITENAME}}',
 'tooltip-search-go' => '如果相同的标题存在的话便直接前往该页面',
 'tooltip-search-fulltext' => '搜索含这些文字的页面',
 'tooltip-p-logo' => '访问首页',
@@ -2975,11 +3001,11 @@ $2',
 'tooltip-n-mainpage-description' => '访问首页',
 'tooltip-n-portal' => '关于本项目,你可以做什么,在哪里找到你需要的事物',
 'tooltip-n-currentevents' => '查看当前事件的背景信息',
-'tooltip-n-recentchanges' => '本wiki的最近更改列表',
+'tooltip-n-recentchanges' => '本wiki最近更改的列表',
 'tooltip-n-randompage' => '载入一个随机页面',
 'tooltip-n-help' => '查找帮助的地方',
-'tooltip-t-whatlinkshere' => '所有链入本页的wiki页面列表',
-'tooltip-t-recentchangeslinked' => '本页链入的页面的最近更改',
+'tooltip-t-whatlinkshere' => '所有链至本页的wiki页面的列表',
+'tooltip-t-recentchangeslinked' => '链自本页的页面的最近更改',
 'tooltip-feed-rss' => '本页面的RSS源',
 'tooltip-feed-atom' => '本页面的Atom源',
 'tooltip-t-contributions' => '查看该用户的贡献列表',
@@ -2991,7 +3017,7 @@ $2',
 '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' => '查看系统信息',
@@ -3100,9 +3126,9 @@ $2',
 'pageinfo-redirectsto-info' => '信息',
 'pageinfo-contentpage' => '计为内容页面',
 'pageinfo-contentpage-yes' => '是',
-'pageinfo-protect-cascading' => 'ä»\8eè¿\99é\87\8cå¼\80å§\8bè¿\9eé\94\81ä¿\9dæ\8a¤',
+'pageinfo-protect-cascading' => 'ä¿\9dæ\8a¤è¿\9eé\94\81è\87ªæ­¤',
 'pageinfo-protect-cascading-yes' => '是',
-'pageinfo-protect-cascading-from' => '保护级联自',
+'pageinfo-protect-cascading-from' => '保护连锁自',
 'pageinfo-category-info' => '分类信息',
 'pageinfo-category-pages' => '页面数',
 'pageinfo-category-subcats' => '子分类数',
@@ -3170,7 +3196,7 @@ $1',
 'file-no-thumb-animation-gif' => "'''注意:由于技术限制,高分辨率GIF图像的缩略图无法进行动画处理。'''",
 
 # Special:NewFiles
-'newimages' => '新文件库',
+'newimages' => 'æ\96°æ\96\87件å\9b¾åº\93',
 'imagelisttext' => "以下是按$2排列的'''$1'''个文件列表。",
 'newimages-summary' => '本特殊页面展示最后上传的文件。',
 'newimages-legend' => '过滤',
@@ -3210,10 +3236,9 @@ $1',
 'yesterday-at' => '昨天$1',
 
 # Bad image list
-'bad_image_list' => '请按照下列格式编写
+'bad_image_list' => '格式如下
 
-只有(以 * 开头)列出的项目会被考虑。每一行的第一个链接必须是不雅文件的链接。
-然后同一行后方的链接会被视为例外,即是该文件可以在哪些页面内被显示。',
+仅列表项目(以*开头的行)被考虑。每行的第一个链接必需为劣质文件的链接。同一行任何后续链接均被视为例外,即该文件可以内链的页面。',
 
 /*
 Short names for language variants used for language conversion links.
@@ -3444,7 +3469,7 @@ Variants for Chinese language
 'exif-compression-4' => 'CCITT第4组传真编码',
 'exif-compression-6' => 'JPEG(旧)',
 
-'exif-copyrighted-true' => '版权',
+'exif-copyrighted-true' => '受版权保护',
 'exif-copyrighted-false' => '公共领域',
 
 'exif-unknowndate' => '未知日期',
@@ -3654,7 +3679,7 @@ Variants for Chinese language
 'edit-externally-help' => '(更多信息请见[//www.mediawiki.org/wiki/Manual:External_editors 安装说明])',
 
 # 'all' in various places, this might be different for inflected languages
-'watchlistall2' => '全部',
+'watchlistall2' => '所有',
 'namespacesall' => '全部',
 'monthsall' => '全部',
 'limitall' => '全部',
@@ -3807,8 +3832,8 @@ $5
 'watchlistedit-raw-removed' => '$1个标题被删除:',
 
 # Watchlist editing tools
-'watchlisttools-view' => 'æ\9f¥ç\9c\8bç\9b\91è§\86ç\9a\84更改',
-'watchlisttools-edit' => 'æ\9f¥ç\9c\8bå\92\8c编辑监视列表',
+'watchlisttools-view' => 'æ\9f¥ç\9c\8bç\9b¸å\85³更改',
+'watchlisttools-edit' => 'æ\9f¥ç\9c\8b并编辑监视列表',
 'watchlisttools-raw' => '编辑原始监视列表',
 
 # Signatures
@@ -3816,7 +3841,7 @@ $5
 
 # Core parser functions
 'unknown_extension_tag' => '不明的扩展标签“$1”',
-'duplicate-defaultsort' => "'''警告:'''默认排序关键字“$2”覆盖了之前的默认排序关键字“$1”。",
+'duplicate-defaultsort' => "'''警告:'''默认排序关键词“$2”覆盖了之前的默认排序关键词“$1”。",
 
 # Special:Version
 'version' => '版本',
@@ -3829,7 +3854,6 @@ $5
 'version-other' => '其他',
 'version-mediahandlers' => '媒体文件处理器',
 'version-hooks' => '钩',
-'version-extension-functions' => '扩展函数',
 'version-parser-extensiontags' => '解析器扩展标签',
 'version-parser-function-hooks' => '解析器函数钩',
 'version-hook-name' => '钩名',
@@ -3900,18 +3924,19 @@ MediaWiki发表时预期有用,但对此'''无任何保证''',亦无隐含
 
 # External image whitelist
 'external_image_whitelist' => ' #请原样保留本行文字<pre>
-#在下方书写正则表达式片段(//中间的部份)
-#这些规则将与外部(盗链)图像的URL匹配
-#匹配的URL将被显示为图像,否则只会显示链向图像的链接
-#以#开头的行视为评论
+#请在下面输入正则表达式片段(//之间的部份)
+#这些项目将会匹配外部图像的URL
+#匹配的项目将显示为图像,否则只会显示图像的链接
+#以#å¼\80头ç\9a\84è¡\8c被è§\86为è¯\84论
 #不区分大小写
 
-#在本行上面输入所有正则表达式。请原样保留本行文字</pre>',
+#请在本行上面输入所有正则表达式片段。请原样保留本行文字</pre>',
 
 # Special:Tags
 'tags' => '有效的更改标签',
 'tag-filter' => '[[Special:Tags|标签]]过滤器:',
 'tag-filter-submit' => '过滤器',
+'tag-list-wrapper' => '([[Special:Tags|$1个标签]]:$2)',
 'tags-title' => '标签',
 'tags-intro' => '本页面列出了软件可能用于标记编辑的标签和它们的含义。',
 'tags-tag' => '标签名称',
index 54148cf..c0283b8 100644 (file)
  * @author Pbdragonwang
  * @author PhiLiP
  * @author Philip
+ * @author Radish10cm
  * @author Shinjiman
  * @author Shirayuki
  * @author Shizhao
  * @author Simon Shek
  * @author Skjackey tse
+ * @author StephDC
  * @author Waihorace
  * @author Wmr89502270
  * @author Wong128hk
@@ -409,7 +411,7 @@ $messages = array(
 'mytalk' => '討論',
 'anontalk' => '此IP的對話頁',
 'navigation' => '導覽',
-'and' => 'å\92\8c',
+'and' => 'å\8f\8a',
 
 # Cologne Blue skin
 'qbfind' => '尋找',
@@ -460,6 +462,7 @@ $messages = array(
 'create-this-page' => '建立本頁',
 'delete' => '刪除',
 'deletethispage' => '刪除本頁',
+'undeletethispage' => '取消刪除此頁',
 'undelete_short' => '反刪除$1項修訂',
 'viewdeleted_short' => '查看$1項已刪除的修訂',
 'protect' => '保護',
@@ -511,7 +514,6 @@ $1',
 'disclaimers' => '免責聲明',
 'disclaimerpage' => 'Project:一般免責聲明',
 'edithelp' => '編輯幫助',
-'edithelppage' => 'Help:如何編輯頁面',
 'helppage' => 'Help:目錄',
 'mainpage' => '首頁',
 'mainpage-description' => '首頁',
@@ -662,6 +664,9 @@ $2',
 'namespaceprotected' => "您並沒有權限編輯'''$1'''名字空間的頁面。",
 'customcssprotected' => '你並無權限編輯此CSS頁面,因為它包含了其他用戶的個人設置。',
 'customjsprotected' => '你並無權限去編輯此JavaScript頁面,因為他包含了另一位用戶的個人設定。',
+'mycustomcssprotected' => '你沒有編輯這CSS頁面的權限。',
+'mycustomjsprotected' => '你沒有編輯這JavaScript頁面的權限。',
+'mypreferencesprotected' => '您沒有權限編輯您的設定。',
 'ns-specialprotected' => '特殊頁面是不可以編輯的。',
 'titleprotected' => "這個標題已經被[[User:$1|$1]]保護以防止建立。理由是''$2''。",
 'filereadonlyerror' => '無法修改文件「$1」因為文件庫「$2」處於唯讀模式。 !
@@ -712,8 +717,8 @@ $2',
 'userlogin-noaccount' => '沒有帳戶嗎?',
 'userlogin-joinproject' => '參與 {{SITENAME}}',
 'nologin' => '您還沒有帳號嗎?$1。',
-'nologinlink' => '建立戶',
-'createaccount' => '建立戶',
+'nologinlink' => '建立戶',
+'createaccount' => '建立戶',
 'gotaccount' => '已經擁有帳號?$1。',
 'gotaccountlink' => '登入',
 'userlogin-resetlink' => '忘記了你的登錄信息?',
@@ -731,7 +736,7 @@ $2',
 'createacct-reason-ph' => '您為甚麼要創建另一個帳號',
 'createacct-captcha' => '安全驗證',
 'createacct-imgcaptcha-ph' => '輸入您在上面看到的字符',
-'createacct-submit' => '建立帳',
+'createacct-submit' => '建立帳',
 'createacct-benefit-heading' => '{{SITENAME}}是由像您一樣的人建立。',
 'createacct-benefit-body1' => '{{PLURAL:$1|次編輯|次編輯}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|頁頁面|頁頁面}}',
@@ -787,7 +792,7 @@ $2',
 'cannotchangeemail' => '本wiki不允許對賬戶的電郵地址進行更改。',
 'emaildisabled' => '此網站不能發送電子郵件。',
 'accountcreated' => '已建立賬戶',
-'accountcreatedtext' => '$1的賬戶已經被建立。',
+'accountcreatedtext' => '[[{{ns:User}}:$1|$1]]([[{{ns:User talk}}:$1|討論]])的賬戶已經被建立。',
 'createaccount-title' => '在{{SITENAME}}中建立新賬戶',
 'createaccount-text' => '有人在{{SITENAME}}中利用您的電郵創建了一個名為 "$2" 的新賬戶($4),密碼是 "$3" 。您應該立即登入並更改密碼。
 
@@ -826,11 +831,11 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => '重新設定密碼',
-'passwordreset-text' => '完成此表格以重置您的密碼。',
+'passwordreset-text-one' => '完成此表格以重新設定您的密碼。',
+'passwordreset-text-many' => '{{PLURAL:$1|輸入其中一項以重新設定您的密碼。}}',
 'passwordreset-legend' => '重設密碼',
 'passwordreset-disabled' => '此維基上已禁止了重設密碼。',
 'passwordreset-emaildisabled' => '電子郵件功能在此 wiki 上已禁用。',
-'passwordreset-pretext' => '{{PLURAL:$1||輸入下列其中一個}}',
 'passwordreset-username' => '用戶名:',
 'passwordreset-domain' => '域名:',
 'passwordreset-capture' => '查看生成的電子郵件嗎?',
@@ -1060,6 +1065,7 @@ $2
 它可能剛剛被刪除。',
 'edit-conflict' => '編輯衝突。',
 'edit-no-change' => '您的編輯已經略過,因為文字無任何改動。',
+'postedit-confirmation' => '您的編輯已儲存。',
 'edit-already-exists' => '不可以建立一個新頁面。
 它已經存在。',
 'defaultmessagetext' => '預設訊息文字',
@@ -1101,6 +1107,7 @@ $2
 'undo-failure' => '由於中途的編輯不一致,此編輯不能撤銷。',
 'undo-norev' => '由於其修訂版本不存在或已刪除,此編輯不能撤銷。',
 'undo-summary' => '取消由[[Special:Contributions/$2|$2]] ([[User talk:$2|對話]])所作出的修訂 $1',
+'undo-summary-username-hidden' => '隱藏的用戶撤銷$1的修訂',
 
 # Account creation failure
 'cantcreateaccounttitle' => '無法建立帳號',
@@ -1126,7 +1133,7 @@ $2
 'histlegend' => "差異選擇:標記要比較修訂版本的單選按鈕並點擊底部的按鈕進行比較。<br />
 說明:'''({{int:cur}})''' 指與最新修訂版本比較,'''({{int:last}})''' 指與前一個修訂修訂版本比較,'''{{int:minoreditletter}}''' = 小修改。",
 'history-fieldset-title' => '瀏覽歷史',
-'history-show-deleted' => '僅已刪除的',
+'history-show-deleted' => '僅限已刪除',
 'histfirst' => '最早版本',
 'histlast' => '最新版本',
 'historysize' => '($1 位元組)',
@@ -1144,8 +1151,7 @@ $2
 'rev-deleted-user' => '(用戶名已移除)',
 'rev-deleted-event' => '(日誌已除)',
 'rev-deleted-user-contribs' => '[用戶名或IP地址已移除 - 從貢獻中隱藏編輯]',
-'rev-deleted-text-permission' => "該頁面修訂已被'''刪除'''。
-在[{{fullurl:{{#Special:Log}}/delete|page={{PAGENAMEE}}}} 刪除日誌]中可以找到詳細的訊息。",
+'rev-deleted-text-permission' => "該頁面修訂已被'''刪除'''。在[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 刪除日誌]中可以找到詳細的訊息。",
 'rev-deleted-text-unhide' => "本頁面版本已被'''刪除'''。詳情請見[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 刪除日誌]。如果你想繼續操作,你仍然可以[$1 查看本版本]。",
 'rev-suppressed-text-unhide' => "該頁面修訂已經被'''監督隱藏'''。在[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 監督日誌]中可以找到詳細的信息。如果您想繼續的話,您可以仍然[$1 去查看這次修訂]。",
 'rev-deleted-text-view' => "該頁面修訂已經被'''刪除'''。您可以查看它。在[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 刪除日誌]中可以找到詳細的信息。",
@@ -1290,7 +1296,6 @@ $1",
 'searchmenu-legend' => '搜尋選項',
 'searchmenu-exists' => "'''在這個 wiki 上已有一頁面叫做「[[:$1]]」。'''",
 'searchmenu-new' => "'''在這個 wiki 上建立這個頁面「[[:$1]]」!'''",
-'searchhelp-url' => 'Help:目錄',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|去瀏覽以此為首的頁面]]',
 'searchprofile-articles' => '內容頁面',
 'searchprofile-project' => '幫助和計劃頁面',
@@ -1365,7 +1370,6 @@ $1",
 'resetprefs' => '清除未保存的更改',
 'restoreprefs' => '恢復所有預設設定',
 'prefs-editing' => '編輯',
-'prefs-edit-boxsize' => '編輯框尺寸',
 'rows' => '行:',
 'columns' => '列:',
 'searchresultshead' => '搜尋',
@@ -1376,9 +1380,6 @@ $1",
 'recentchangesdays-max' => '最多$1{{PLURAL:$1|天}}',
 'recentchangescount' => '預設顯示的編輯數:',
 'prefs-help-recentchangescount' => '這個包括最近更改、頁面歷史以及日誌。',
-'prefs-help-watchlist-token' => '在這欄加入一個秘密鑰會生成一個對您監視列表中的 RSS 源。
-任何一位知道在這個欄位上的匙可以閱讀到您的監視列表,請選擇一個安全的值。
-這裡有一個任意生成的值,供您選擇:$1',
 'savedprefs' => '您的個人偏好設定已經儲存。',
 'timezonelegend' => '時區:',
 'localtime' => '當地時間:',
@@ -1408,7 +1409,6 @@ $1",
 'prefs-common-css-js' => '共用 CSS/JavaScript 於所有的外觀中:',
 'prefs-reset-intro' => '您可以利用這個頁面去重設您的參數設置到網站預設值。這個動作無法復原。',
 'prefs-emailconfirm-label' => '電子郵件確認:',
-'prefs-textboxsize' => '編輯框大小',
 'youremail' => '電子郵件:',
 'username' => '{{GENDER:$1|用戶名}}:',
 'uid' => '{{GENDER:$1|用戶ID}}:',
@@ -1439,7 +1439,9 @@ $1",
 'prefs-signature' => '簽名',
 'prefs-dateformat' => '日期格式',
 'prefs-timeoffset' => '時間偏移',
-'prefs-advancedediting' => '進階選項',
+'prefs-advancedediting' => '一般選項',
+'prefs-editor' => '編輯器',
+'prefs-preview' => '預覽',
 'prefs-advancedrc' => '進階選項',
 'prefs-advancedrendering' => '進階選項',
 'prefs-advancedsearchoptions' => '進階選項',
@@ -1475,6 +1477,7 @@ $1",
 'userrights-changeable-col' => '您可以更改的群組',
 'userrights-unchangeable-col' => '您不可以更改的群組',
 'userrights-conflict' => '使用者權限衝突!請重新套用您的更改。',
+'userrights-removed-self' => '您已成功移除自己的權限,故此您沒法再次訪問此頁。',
 
 # Groups
 'group' => '群組:',
@@ -1545,6 +1548,11 @@ $1",
 'right-editusercssjs' => '編輯其他用戶的CSS和JavaScript檔案',
 'right-editusercss' => '編輯其他用戶的CSS檔案',
 'right-edituserjs' => '編輯其他用戶的JavaScript檔案',
+'right-editmyusercss' => '編輯你自己的用戶CSS檔',
+'right-editmyuserjs' => '編輯你自己的用戶JavaScript檔',
+'right-viewmywatchlist' => '查看您的監視列表',
+'right-editmywatchlist' => '編輯您的監視列表。請注意即使沒有這種權利,某些操作仍將添加頁面。',
+'right-editmyoptions' => '編輯您的設定',
 'right-rollback' => '快速復原上位用戶對某一頁面之編輯',
 'right-markbotedits' => '標示復原編輯作機械人編輯',
 'right-noratelimit' => '沒有使用頻率限制',
@@ -1606,13 +1614,18 @@ $1",
 'action-userrights-interwiki' => '編輯在其它wiki上用戶的權限',
 'action-siteadmin' => '鎖定和解除鎖定資料庫',
 'action-sendemail' => '發送電郵',
+'action-editmywatchlist' => '編輯您的監視列表�',
+'action-viewmywatchlist' => '查看您的監視列表',
+'action-viewmyprivateinfo' => '查看您的個人資料',
+'action-editmyprivateinfo' => '編輯您的個人資料',
 
 # Recent changes
 'nchanges' => '$1次更改',
 'recentchanges' => '最近更改',
 'recentchanges-legend' => '最近更改選項',
-'recentchanges-summary' => '跟蹤這個wiki上的最新更改。',
-'recentchanges-feed-description' => '追蹤此訂閱在 wiki 上的最近更改。',
+'recentchanges-summary' => '跟蹤此維基上的最近更改。',
+'recentchanges-noresult' => '在所選擇的時間裡沒有任何更改與所給條件吻合。',
+'recentchanges-feed-description' => '訂閱此維基上的最近更改。',
 'recentchanges-label-newpage' => '這次編輯建立了一個新頁面',
 'recentchanges-label-minor' => '這是一個小編輯',
 'recentchanges-label-bot' => '這次編輯是由機器人進行',
@@ -1648,7 +1661,6 @@ $1",
 'recentchangeslinked-feed' => '相關更改',
 'recentchangeslinked-toolbox' => '相關更改',
 'recentchangeslinked-title' => '與「$1」有關的更改',
-'recentchangeslinked-noresult' => '在這一段時間中連結的頁面並無更改。',
 'recentchangeslinked-summary' => "這一個特殊頁面列示''由''所給出的一個頁面之連結到頁面的最近更改(或者是對於指定分類的成員)。
 在[[Special:Watchlist|您的監視列表]]中的頁面會以'''粗體'''顯示。",
 'recentchangeslinked-page' => '頁面名稱:',
@@ -1660,8 +1672,7 @@ $1",
 'reuploaddesc' => '取消上載並返回上載表單',
 'upload-tryagain' => '提交修改後的檔案描述',
 'uploadnologin' => '未登入',
-'uploadnologintext' => '您必須先[[Special:UserLogin|登入]]
-才能上載檔案。',
+'uploadnologintext' => '您必須先$1才能上載檔案。',
 'upload_directory_missing' => '上傳目錄($1)遺失,不能由網頁伺服器建立。',
 'upload_directory_read_only' => '上傳目錄($1)不存在或無寫權限。',
 'uploaderror' => '上載錯誤',
@@ -2039,7 +2050,7 @@ Template:消除歧義',
 'double-redirect-fixed-maintenance' => '修復從[[$1]]到[[$2]]的雙重重定向。',
 'double-redirect-fixer' => '重新定向修正器',
 
-'brokenredirects' => '損壞的重定向頁',
+'brokenredirects' => '受損重定向頁',
 'brokenredirectstext' => '以下的重定向頁指向的是不存在的頁面:',
 'brokenredirects-edit' => '編輯',
 'brokenredirects-delete' => '刪除',
@@ -2277,7 +2288,6 @@ Template:消除歧義',
 'unwatchthispage' => '停止監視',
 'notanarticle' => '不是頁面',
 'notvisiblerev' => '上次由不同用戶所作的修訂版本已經刪除',
-'watchnochange' => '在顯示的時間段內您所監視的頁面沒有更改。',
 'watchlist-details' => '不包含討論頁,您的監視列表上有 $1 個頁面。',
 'wlheader-enotif' => '已經啟動電子郵件通知功能。',
 'wlheader-showupdated' => "在{{GENDER:|你|妳|你}}上次檢視後有被修改過的頁面會顯示為'''粗體'''。",
@@ -2960,7 +2970,7 @@ $2',
 'tooltip-n-mainpage-description' => '訪問首頁',
 'tooltip-n-portal' => '關於本計劃、{{GENDER:|你|妳|你}}可以做什麼、應該如何做',
 'tooltip-n-currentevents' => '提供目前新聞事件的背景資料',
-'tooltip-n-recentchanges' => '列出該網站中的最近修改',
+'tooltip-n-recentchanges' => '列出此維基中的最近修改',
 'tooltip-n-randompage' => '隨機載入一個頁面',
 'tooltip-n-help' => '尋求幫助',
 'tooltip-t-whatlinkshere' => '列出所有與本頁相連的頁面',
@@ -3805,14 +3815,13 @@ $5
 'version-other' => '其他',
 'version-mediahandlers' => '媒體處理器',
 'version-hooks' => '鈎',
-'version-extension-functions' => '擴展函數',
 'version-parser-extensiontags' => '語法擴展標籤',
 'version-parser-function-hooks' => '語法函數鈎',
 'version-hook-name' => '鈎名',
 'version-hook-subscribedby' => '利用於',
 'version-version' => '(版本 $1)',
 'version-license' => '授權',
-'version-poweredby-credits' => "這個 Wiki 由 '''[//www.mediawiki.org/ MediaWiki]''' 驅動,版權所有 © 2001-$1 $2。",
+'version-poweredby-credits' => "此維基由'''[//www.mediawiki.org/ MediaWiki]'''驅動,版權所有 © 2001-$1 $2。",
 'version-poweredby-others' => '其他',
 'version-credits-summary' => '我們感謝以下人士為[[Special:Version|MediaWiki]]作出的貢獻。',
 'version-license-info' => 'MediaWiki為自由軟件;您可依據自由軟件基金會所發表的GNU通用公共授權條款規定,就本程式再為發佈與/或修改;無論您依據的是本授權的第二版或(您自行選擇的)任一日後發行的版本。
@@ -3826,6 +3835,7 @@ MediaWiki是基於使用目的而加以發佈,然而不負任何擔保責任
 'version-entrypoints' => '入口點URL',
 'version-entrypoints-header-entrypoint' => '入口點',
 'version-entrypoints-header-url' => 'URL',
+'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath 條目路徑]',
 
 # Special:Redirect
 'redirect' => '重定向檔案、用戶ID或頁面修訂ID',
@@ -3887,6 +3897,7 @@ MediaWiki是基於使用目的而加以發佈,然而不負任何擔保責任
 'tags' => '有效標籤',
 'tag-filter' => '[[Special:Tags|標籤]]過濾器:',
 'tag-filter-submit' => '過濾器',
+'tag-list-wrapper' => '([[Special:Tags|$1個標籤]]:$2)',
 'tags-title' => '標籤',
 'tags-intro' => '這個頁面列示出在軟件中已標示的編輯,以及它們的解釋。',
 'tags-tag' => '標籤名稱',
index e6862ac..ffc8c3b 100644 (file)
@@ -1,5 +1,7 @@
-# Doxyfile 1.7.5.1
+# Doxyfile 1.7.6.1
 
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for MediaWiki.
 #
 # Some placeholders have been added for MediaWiki usage:
 # {{OUTPUT_DIRECTORY}}
@@ -44,7 +46,7 @@ QT_AUTOBRIEF           = NO
 MULTILINE_CPP_IS_BRIEF = NO
 INHERIT_DOCS           = YES
 SEPARATE_MEMBER_PAGES  = NO
-TAB_SIZE               = 8
+TAB_SIZE               = 4
 ALIASES =      "type{1}=<b> \1 </b>:" \
                "types{2}=<b> \1 </b> or <b> \2 </b>:" \
                "types{3}=<b> \1 </b>, <b> \2 </b>, or <b> \3 </b>:" \
@@ -64,6 +66,7 @@ ALIASES =     "type{1}=<b> \1 </b>:" \
                "copyright=\note" \
                "license=\note" \
                "codeCoverageIgnore="
+TCL_SUBST              =
 OPTIMIZE_OUTPUT_FOR_C  = NO
 OPTIMIZE_OUTPUT_JAVA   = NO
 OPTIMIZE_FOR_FORTRAN   = NO
@@ -72,13 +75,14 @@ EXTENSION_MAPPING      =
 BUILTIN_STL_SUPPORT    = NO
 CPP_CLI_SUPPORT        = NO
 SIP_SUPPORT            = NO
-IDL_PROPERTY_SUPPORT   = NO
+IDL_PROPERTY_SUPPORT   = YES
 DISTRIBUTE_GROUP_DOC   = YES
 SUBGROUPING            = YES
 INLINE_GROUPED_CLASSES = NO
 INLINE_SIMPLE_STRUCTS  = NO
 TYPEDEF_HIDES_STRUCT   = NO
 SYMBOL_CACHE_SIZE      = 0
+LOOKUP_CACHE_SIZE      = 1
 #---------------------------------------------------------------------------
 # Build related configuration options
 #---------------------------------------------------------------------------
@@ -176,6 +180,7 @@ FILE_PATTERNS          = *.c \
                          *.txt \
                          README
 RECURSIVE              = YES
+EXCLUDE                = {{EXCLUDE}}
 EXCLUDE_SYMLINKS       = YES
 EXCLUDE_PATTERNS       = LocalSettings.php AdminSettings.php StartProfiler.php .svn */.git/* {{EXCLUDE_PATTERNS}}
 EXCLUDE_SYMBOLS        =
@@ -216,7 +221,7 @@ HTML_STYLESHEET        =
 HTML_EXTRA_FILES       =
 HTML_COLORSTYLE_HUE    = 220
 HTML_COLORSTYLE_SAT    = 100
-HTML_COLORSTYLE_GAMMA  =  80
+HTML_COLORSTYLE_GAMMA  = 80
 HTML_TIMESTAMP         = YES
 HTML_ALIGN_MEMBERS     = YES
 HTML_DYNAMIC_SECTIONS  = NO
@@ -358,7 +363,7 @@ MSCFILE_DIRS           =
 DOT_GRAPH_MAX_NODES    = 50
 MAX_DOT_GRAPH_DEPTH    = 1000
 DOT_TRANSPARENT        = NO
-DOT_MULTI_TARGETS      = NO
+DOT_MULTI_TARGETS      = YES
 GENERATE_LEGEND        = YES
 DOT_CLEANUP            = YES
 
index b4df328..e29ffd9 100644 (file)
@@ -426,7 +426,7 @@ abstract class Maintenance {
                $this->addOption( 'server', "The protocol and server name to use in URLs, e.g. " .
                                "http://en.wikipedia.org. This is sometimes necessary because " .
                                "server name detection may fail in command line scripts.", false, true );
-               $this->addOption( 'profiler', 'Set to "text" or "trace" show profiling output', false, true );
+               $this->addOption( 'profiler', 'Set to "text" or "trace" to show profiling output', false, true );
 
                # Save generic options to display them separately in help
                $this->mGenericParameters = $this->mParams;
@@ -1155,8 +1155,7 @@ abstract class Maintenance {
                        $title = $titleObj->getPrefixedDBkey();
                        $this->output( "$title..." );
                        # Update searchindex
-                       # TODO: pass the Content object to SearchUpdate, let the search engine decide how to deal with it.
-                       $u = new SearchUpdate( $pageId, $titleObj->getText(), $rev->getContent()->getTextForSearchIndex() );
+                       $u = new SearchUpdate( $pageId, $titleObj->getText(), $rev->getContent() );
                        $u->doUpdate();
                        $this->output( "\n" );
                }
index c5e48f4..7aac4d4 100644 (file)
@@ -414,6 +414,8 @@ class TextPassDumper extends BackupDumper {
         * @throws MWException
         */
        function getText( $id ) {
+               global $wgContentHandlerUseDB;
+
                $prefetchNotTried = true; // Whether or not we already tried to get the text via prefetch.
                $text = false; // The candidate for a good text. false if no proper value.
                $failures = 0; // The number of times, this invocation of getText already failed.
@@ -479,7 +481,23 @@ class TextPassDumper extends BackupDumper {
                                if ( ! isset( $this->db ) ) {
                                        throw new MWException( "No database available" );
                                }
-                               $revLength = $this->db->selectField( 'revision', 'rev_len', array( 'rev_id' => $revID ) );
+
+                               $revLength = strlen( $text );
+                               if ( $wgContentHandlerUseDB ) {
+                                       $row  = $this->db->selectRow( 'revision', array( 'rev_len', 'rev_content_model' ), array( 'rev_id' => $revID ), __METHOD__ );
+                                       if ( $row ) {
+                                               // only check the length for the wikitext content handler,
+                                               // it's a wasted (and failed) check otherwise
+                                               if ( $row->rev_content_model == CONTENT_MODEL_WIKITEXT ) {
+                                                       $revLength = $row->rev_len;
+                                               }
+                                       }
+
+                               }
+                               else {
+                                       $revLength = $this->db->selectField( 'revision', 'rev_len', array( 'rev_id' => $revID ) );
+                               }
+
                                if ( strlen( $text ) == $revLength ) {
                                        if ( $tryIsPrefetch ) {
                                                $this->prefetchCount++;
diff --git a/maintenance/benchmarks/README b/maintenance/benchmarks/README
new file mode 100644 (file)
index 0000000..c021abd
--- /dev/null
@@ -0,0 +1,7 @@
+This directory hold several benchmarking scripts used as a proof of speed
+or to track PHP performances over time.
+
+To get somehow accurate result, you might want to bound the PHP process
+to a specific CPU with `taskset` and raise its priority with `nice`. Example:
+
+ $ taskset 1 nice -n-10 php bench_wfIsWindows.php
index 1ccd121..13301ed 100644 (file)
@@ -56,7 +56,7 @@ class CopyFileBackend extends Maintenance {
                $src = FileBackendGroup::singleton()->get( $this->getOption( 'src' ) );
                $dst = FileBackendGroup::singleton()->get( $this->getOption( 'dst' ) );
                $containers = explode( '|', $this->getOption( 'containers' ) );
-               $subDir = $this->getOption( rtrim( 'subdir', '/' ), '' );
+               $subDir = rtrim( $this->getOption( 'subdir', '' ), '/' );
 
                $rateFile = $this->getOption( 'ratefile' );
 
index 59ea18f..b86d2c5 100644 (file)
@@ -1284,6 +1284,11 @@ editinterface
 editintro
 edititis
 editlink
+editmyoptions
+editmyprivateinfo
+editmyusercss
+editmyuserjs
+editmywatchlist
 editnotice
 editnotsupported
 editondblclick
@@ -1298,6 +1303,7 @@ edits
 editsection
 editsectionhint
 editsectiononrightclick
+editsemiprotected
 editsonly
 editthispage
 edittime
@@ -1663,9 +1669,9 @@ ggp
 ghostscript
 gimpbaseenums
 git
+gitblit
 gitdir
 github
-gitweb
 global
 globalauth
 globalblock
@@ -4340,6 +4346,8 @@ view
 viewcount
 viewdeleted
 viewhelppage
+viewmyprivateinfo
+viewmywatchlist
 viewprevnext
 viewsource
 viewsourcelink
index 10984b0..69b4b9c 100644 (file)
@@ -53,9 +53,9 @@ $maintenance->setup();
 // to $maintenance->mSelf. Keep that here for b/c
 $self = $maintenance->getName();
 
-// Detect compiled mode
 # Get the MWInit class
 require_once "$IP/includes/Init.php";
+# Start the autoloader, so that extensions can derive classes from core files
 require_once "$IP/includes/AutoLoader.php";
 # Stub the profiler
 require_once "$IP/includes/profiler/Profiler.php";
@@ -70,9 +70,14 @@ if ( file_exists( "$IP/StartProfiler.php" ) ) {
 require_once "$IP/includes/Defines.php";
 require_once MWInit::compiledPath( 'includes/DefaultSettings.php' );
 
+# Load composer's autoloader if present
+if ( is_readable( "$IP/vendor/autoload.php" ) ) {
+       require_once "$IP/vendor/autoload.php";
+}
+
 if ( defined( 'MW_CONFIG_CALLBACK' ) ) {
        # Use a callback function to configure MediaWiki
-       MWFunction::call( MW_CONFIG_CALLBACK );
+       call_user_func( MW_CONFIG_CALLBACK );
 } else {
        if ( file_exists( "$IP/../wmf-config/wikimedia-mode" ) ) {
                // Load settings, using wikimedia-mode if needed
index 7fca651..7c24f0f 100644 (file)
@@ -52,6 +52,8 @@ class EditCLI extends Maintenance {
                $noRC = $this->hasOption( 'no-rc' );
 
                $wgUser = User::newFromName( $userName );
+               $context = RequestContext::getMain();
+               $context->setUser( $wgUser );
                if ( !$wgUser ) {
                        $this->error( "Invalid username", true );
                }
@@ -63,6 +65,7 @@ class EditCLI extends Maintenance {
                if ( !$wgTitle ) {
                        $this->error( "Invalid title", true );
                }
+               $context->setTitle( $wgTitle );
 
                $page = WikiPage::factory( $wgTitle );
 
diff --git a/maintenance/eraseArchivedFile.php b/maintenance/eraseArchivedFile.php
new file mode 100644 (file)
index 0000000..4b06513
--- /dev/null
@@ -0,0 +1,119 @@
+<?php
+/**
+ * Delete archived (non-current) files from storage
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Maintenance
+ * @author Aaron Schulz
+ */
+
+require_once( __DIR__ . '/Maintenance.php' );
+
+/**
+ * Maintenance script to delete archived (non-current) files from storage.
+ *
+ * @TODO: Maybe add some simple logging
+ *
+ * @ingroup Maintenance
+ * @since 1.22
+ */
+class EraseArchivedFile extends Maintenance {
+       public function __construct() {
+               parent::__construct();
+               $this->mDescription = "Erases traces of deleted files.";
+               $this->addOption( 'delete', 'Perform the deletion' );
+               $this->addOption( 'filename', 'File name', false, true );
+               $this->addOption( 'filekey', 'File storage key (with extension) or "*"', true, true );
+       }
+
+       public function execute() {
+               if ( !$this->hasOption( 'delete' ) ) {
+                       $this->output( "Use --delete to actually confirm this script\n" );
+               }
+
+               $filekey = $this->getOption( 'filekey' );
+               $filename = $this->getOption( 'filename' );
+
+               if ( $filekey === '*' ) { // all versions by name
+                       if ( !strlen( $filename ) ) {
+                               $this->error( "Missing --filename parameter.", 1 );
+                       }
+                       $afile = false;
+               } else { // specified version
+                       $dbw = wfGetDB( DB_MASTER );
+                       $row = $dbw->selectRow( 'filearchive', '*',
+                               array( 'fa_storage_group' => 'deleted', 'fa_storage_key' => $filekey ),
+                               __METHOD__ );
+                       if ( !$row ) {
+                               $this->error( "No deleted file exists with key '$filekey'.", 1 );
+                       }
+                       $filename = $row->fa_name;
+                       $afile = ArchivedFile::newFromRow( $row );
+               }
+
+               $file = wfLocalFile( $filename );
+               if ( $file->exists() ) {
+                       $this->error( "File '$filename' is still a public file, use the delete form.\n", 1 );
+               }
+
+               $this->output( "Purging all thumbnails for file '$filename'..." );
+               $file->purgeCache();
+               $file->purgeHistory();
+               $this->output( "done.\n" );
+
+               if ( $afile instanceof ArchivedFile ) {
+                       $this->scrubVersion( $afile );
+               } else {
+                       $this->output( "Finding deleted versions of file '$filename'...\n" );
+                       $this->scrubAllVersions( $filename );
+                       $this->output( "Done\n" );
+               }
+       }
+
+       protected function scrubAllVersions( $name ) {
+               $dbw = wfGetDB( DB_MASTER );
+               $res = $dbw->select( 'filearchive', '*',
+                       array( 'fa_name' => $name, 'fa_storage_group' => 'deleted' ),
+                       __METHOD__ );
+               foreach ( $res as $row ) {
+                       $this->scrubVersion( ArchivedFile::newFromRow( $row ) );
+               }
+       }
+
+       protected function scrubVersion( ArchivedFile $archivedFile ) {
+               $key = $archivedFile->getStorageKey();
+               $name = $archivedFile->getName();
+               $ts = $archivedFile->getTimestamp();
+               $repo = RepoGroup::singleton()->getLocalRepo();
+               $path = $repo->getZonePath( 'deleted' ) . '/' . $repo->getDeletedHashPath( $key ) . $key;
+               if ( $this->hasOption( 'delete' ) ) {
+                       $status = $repo->getBackend()->delete( array( 'src' => $path ) );
+                       if ( $status->isOK() ) {
+                               $this->output( "Deleted version '$key' ($ts) of file '$name'\n" );
+                       } else {
+                               $this->output( "Failed to delete version '$key' ($ts) of file '$name'\n" );
+                               $this->output( print_r( $status->getErrorsArray(), true ) );
+                       }
+               } else {
+                       $this->output( "Would delete version '{$key}' ({$ts}) of file '$name'\n" );
+               }
+       }
+}
+
+$maintClass = "EraseArchivedFile";
+require_once( RUN_MAINTENANCE_IF_MAIN );
index 68e1fb2..962b082 100644 (file)
                                "classes": [
                                        "mw.Title",
                                        "mw.notification",
+                                       "mw.user",
                                        "mw.util",
                                        "mw.plugin.*"
                                ]
                        },
+                       {
+                               "name": "Actions",
+                               "classes": ["mw.toolbar"]
+                       },
                        {
                                "name": "API",
                                "classes": ["mw.Api*"]
index 4ad75f0..5cce68d 100644 (file)
@@ -3,6 +3,7 @@
        "--footer": "Documentation for MediaWiki core. Generated on {DATE} by {JSDUCK} {VERSION}.",
        "--categories": "./categories.json",
        "--meta-tags": "./MetaTags.rb",
+       "--eg-iframe": "./eg-iframe.html",
        "--warnings": ["-no_doc"],
        "--builtin-classes": true,
        "--output": "../../docs/js",
                "../../resources/mediawiki/mediawiki.Title.js",
                "../../resources/mediawiki/mediawiki.notify.js",
                "../../resources/mediawiki/mediawiki.notification.js",
+               "../../resources/mediawiki/mediawiki.user.js",
+               "../../resources/mediawiki.action/mediawiki.action.edit.js",
+               "../../resources/mediawiki.action/mediawiki.action.view.postEdit.js",
+               "../../resources/mediawiki.page/mediawiki.page.startup.js",
                "../../resources/mediawiki.api",
                "../../resources/jquery/jquery.localize.js"
        ]
index f53b404..86eae4b 100644 (file)
@@ -2,19 +2,87 @@
 <html>
 <head>
     <meta charset="utf-8">
-    <title>MediaWiki Examples</title>
+    <title>MediaWiki Code Example</title>
+    <script src="modules/startup.js"></script>
     <script>
-        function loadInlineExample(code, options, callback) {
+        function startUp() {
+            mw.config = new mw.Map();
+        }
+    </script>
+    <script src="modules/jquery/jquery.js"></script>
+    <script src="modules/mediawiki/mediawiki.js"></script>
+    <style>
+        .mw-jsduck-log {
+            position: relative;
+            min-height: 3em;
+            margin-top: 2em;
+            background: #f7f7f7;
+            border: 1px solid #e4e4e4;
+        }
+
+        .mw-jsduck-log::after {
+            position: absolute;
+            bottom: 100%;
+            right: -1px;
+            padding: 0.5em;
+            background: #fff;
+            border: 1px solid #e4e4e4;
+            border-bottom: 0;
+            border-radius: 0.5em 0.5em 0 0;
+            font: normal 0.5em sans-serif;
+            content: 'console';
+        }
+
+        .mw-jsduck-log-line {
+            padding: 0.2em 0.5em;
+            white-space: pre-wrap;
+        }
+
+        .mw-jsduck-log-line:nth-child(odd) {
+            background: #fff;
+        }
+    </style>
+</head>
+<body>
+    <script>
+        /**
+         * Basic log console for the example iframe in documentation pages.
+         */
+        ( function () {
+            var pre;
+            mw.log = function () {
+                var str, i, len, line;
+                if ( !pre ) {
+                    pre = document.createElement( 'pre' );
+                    pre.className = 'mw-jsduck-log';
+                    document.body.appendChild( pre );
+                }
+                str = [];
+                for ( i = 0, len = arguments.length; i < len; i++ ) {
+                    str.push( String( arguments[ i ] ) );
+                }
+                line = document.createElement( 'div' );
+                line.className = 'mw-jsduck-log-line';
+                line.appendChild(
+                    document.createTextNode( str.join( ' , ' ) + '\n' )
+                );
+                pre.appendChild( line );
+            };
+        }() );
+
+        /**
+         * Method called by jsduck to execute the example code.
+         */
+        function loadInlineExample( code, options, callback ) {
             try {
-                document.body.innerHTML = '';
-                eval(code);
-                callback && callback(true);
+                eval( code );
+                callback && callback( true );
             } catch (e) {
-                document.body.innerHTML = document.createTextNode(e);
-                callback && callback(false, e);
+                mw.log( 'Uncaught exception: ' + e );
+                callback && callback( false, e );
+                throw e;
             }
         }
     </script>
-</head>
-<body></body>
+</body>
 </html>
index 59b6fcd..4b49ada 100644 (file)
@@ -134,24 +134,24 @@ class CheckLanguageCLI {
        protected function getChecks() {
                return array(
                        'untranslated' => 'getUntranslatedMessages',
-                       'duplicate'    => 'getDuplicateMessages',
-                       'obsolete'     => 'getObsoleteMessages',
-                       'variables'    => 'getMessagesWithMismatchVariables',
-                       'plural'       => 'getMessagesWithoutPlural',
-                       'empty'        => 'getEmptyMessages',
-                       'whitespace'   => 'getMessagesWithWhitespace',
-                       'xhtml'        => 'getNonXHTMLMessages',
-                       'chars'        => 'getMessagesWithWrongChars',
-                       'links'        => 'getMessagesWithDubiousLinks',
-                       'unbalanced'   => 'getMessagesWithUnbalanced',
-                       'namespace'    => 'getUntranslatedNamespaces',
-                       'projecttalk'  => 'getProblematicProjectTalks',
-                       'magic'        => 'getUntranslatedMagicWords',
-                       'magic-old'    => 'getObsoleteMagicWords',
-                       'magic-over'   => 'getOverridingMagicWords',
-                       'magic-case'   => 'getCaseMismatchMagicWords',
-                       'special'      => 'getUntraslatedSpecialPages',
-                       'special-old'  => 'getObsoleteSpecialPages',
+                       'duplicate' => 'getDuplicateMessages',
+                       'obsolete' => 'getObsoleteMessages',
+                       'variables' => 'getMessagesWithMismatchVariables',
+                       'plural' => 'getMessagesWithoutPlural',
+                       'empty' => 'getEmptyMessages',
+                       'whitespace' => 'getMessagesWithWhitespace',
+                       'xhtml' => 'getNonXHTMLMessages',
+                       'chars' => 'getMessagesWithWrongChars',
+                       'links' => 'getMessagesWithDubiousLinks',
+                       'unbalanced' => 'getMessagesWithUnbalanced',
+                       'namespace' => 'getUntranslatedNamespaces',
+                       'projecttalk' => 'getProblematicProjectTalks',
+                       'magic' => 'getUntranslatedMagicWords',
+                       'magic-old' => 'getObsoleteMagicWords',
+                       'magic-over' => 'getOverridingMagicWords',
+                       'magic-case' => 'getCaseMismatchMagicWords',
+                       'special' => 'getUntraslatedSpecialPages',
+                       'special-old' => 'getObsoleteSpecialPages',
                );
        }
 
@@ -163,14 +163,14 @@ class CheckLanguageCLI {
         */
        protected function getTotalCount() {
                return array(
-                       'namespace'    => array( 'getNamespaceNames', 'en' ),
-                       'projecttalk'  => null,
-                       'magic'        => array( 'getMagicWords', 'en' ),
-                       'magic-old'    => array( 'getMagicWords', null ),
-                       'magic-over'   => array( 'getMagicWords', null ),
-                       'magic-case'   => array( 'getMagicWords', null ),
-                       'special'      => array( 'getSpecialPageAliases', 'en' ),
-                       'special-old'  => array( 'getSpecialPageAliases', null ),
+                       'namespace' => array( 'getNamespaceNames', 'en' ),
+                       'projecttalk' => null,
+                       'magic' => array( 'getMagicWords', 'en' ),
+                       'magic-old' => array( 'getMagicWords', null ),
+                       'magic-over' => array( 'getMagicWords', null ),
+                       'magic-case' => array( 'getMagicWords', null ),
+                       'special' => array( 'getSpecialPageAliases', 'en' ),
+                       'special-old' => array( 'getSpecialPageAliases', null ),
                );
        }
 
@@ -181,24 +181,24 @@ class CheckLanguageCLI {
        protected function getDescriptions() {
                return array(
                        'untranslated' => '$1 message(s) of $2 are not translated to $3, but exist in en:',
-                       'duplicate'    => '$1 message(s) of $2 are translated the same in en and $3:',
-                       'obsolete'     => '$1 message(s) of $2 do not exist in en or are in the ignore list, but exist in $3:',
-                       'variables'    => '$1 message(s) of $2 in $3 don\'t match the variables used in en:',
-                       'plural'       => '$1 message(s) of $2 in $3 don\'t use {{plural}} while en uses:',
-                       'empty'        => '$1 message(s) of $2 in $3 are empty or -:',
-                       'whitespace'   => '$1 message(s) of $2 in $3 have trailing whitespace:',
-                       'xhtml'        => '$1 message(s) of $2 in $3 contain illegal XHTML:',
-                       'chars'        => '$1 message(s) of $2 in $3 include hidden chars which should not be used in the messages:',
-                       'links'        => '$1 message(s) of $2 in $3 have problematic link(s):',
-                       'unbalanced'   => '$1 message(s) of $2 in $3 have unbalanced {[]}:',
-                       'namespace'    => '$1 namespace name(s) of $2 are not translated to $3, but exist in en:',
-                       'projecttalk'  => '$1 namespace name(s) and alias(es) in $3 are project talk namespaces without the parameter:',
-                       'magic'        => '$1 magic word(s) of $2 are not translated to $3, but exist in en:',
-                       'magic-old'    => '$1 magic word(s) of $2 do not exist in en, but exist in $3:',
-                       'magic-over'   => '$1 magic word(s) of $2 in $3 do not contain the original en word(s):',
-                       'magic-case'   => '$1 magic word(s) of $2 in $3 change the case-sensitivity of the original en word:',
-                       'special'      => '$1 special page alias(es) of $2 are not translated to $3, but exist in en:',
-                       'special-old'  => '$1 special page alias(es) of $2 do not exist in en, but exist in $3:',
+                       'duplicate' => '$1 message(s) of $2 are translated the same in en and $3:',
+                       'obsolete' => '$1 message(s) of $2 do not exist in en or are in the ignore list, but exist in $3:',
+                       'variables' => '$1 message(s) of $2 in $3 don\'t match the variables used in en:',
+                       'plural' => '$1 message(s) of $2 in $3 don\'t use {{plural}} while en uses:',
+                       'empty' => '$1 message(s) of $2 in $3 are empty or -:',
+                       'whitespace' => '$1 message(s) of $2 in $3 have trailing whitespace:',
+                       'xhtml' => '$1 message(s) of $2 in $3 contain illegal XHTML:',
+                       'chars' => '$1 message(s) of $2 in $3 include hidden chars which should not be used in the messages:',
+                       'links' => '$1 message(s) of $2 in $3 have problematic link(s):',
+                       'unbalanced' => '$1 message(s) of $2 in $3 have unbalanced {[]}:',
+                       'namespace' => '$1 namespace name(s) of $2 are not translated to $3, but exist in en:',
+                       'projecttalk' => '$1 namespace name(s) and alias(es) in $3 are project talk namespaces without the parameter:',
+                       'magic' => '$1 magic word(s) of $2 are not translated to $3, but exist in en:',
+                       'magic-old' => '$1 magic word(s) of $2 do not exist in en, but exist in $3:',
+                       'magic-over' => '$1 magic word(s) of $2 in $3 do not contain the original en word(s):',
+                       'magic-case' => '$1 magic word(s) of $2 in $3 change the case-sensitivity of the original en word:',
+                       'special' => '$1 special page alias(es) of $2 are not translated to $3, but exist in en:',
+                       'special-old' => '$1 special page alias(es) of $2 do not exist in en, but exist in $3:',
                );
        }
 
@@ -299,6 +299,7 @@ ENDS;
         */
        protected function getCheckBlacklist() {
                global $checkBlacklist;
+
                return $checkBlacklist;
        }
 
@@ -313,6 +314,7 @@ ENDS;
                $results = array();
                if ( $this->level === 0 ) {
                        $this->L->getMessages( $code );
+
                        return $results;
                }
 
@@ -320,7 +322,8 @@ ENDS;
                $checkBlacklist = $this->getCheckBlacklist();
                foreach ( $this->checks as $check ) {
                        if ( isset( $checkBlacklist[$code] ) &&
-                               in_array( $check, $checkBlacklist[$code] ) ) {
+                               in_array( $check, $checkBlacklist[$code] )
+                       ) {
                                $results[$check] = array();
                                continue;
                        }
@@ -427,7 +430,6 @@ ENDS;
                                } else {
                                        $numbers[] = $count;
                                }
-
                        }
 
                        if ( count( $detailTextForLangChecks ) ) {
@@ -470,6 +472,7 @@ EOL;
                                }
                        }
                }
+
                return true;
        }
 }
@@ -675,48 +678,49 @@ ENDS;
 # Blacklist some checks for some languages
 $checkBlacklist = array(
 #'code'        => array( 'check1', 'check2' ... )
-'az'           => array( 'plural' ),
-'bo'           => array( 'plural' ),
-'dz'           => array( 'plural' ),
-'id'           => array( 'plural' ),
-'fa'           => array( 'plural' ),
-'gan'          => array( 'plural' ),
-'gan-hans'     => array( 'plural' ),
-'gan-hant'     => array( 'plural' ),
-'gn'           => array( 'plural' ),
-'hak'          => array( 'plural' ),
-'hu'           => array( 'plural' ),
-'ja'           => array( 'plural' ), // Does not use plural
-'jv'           => array( 'plural' ),
-'ka'           => array( 'plural' ),
-'kk-arab'      => array( 'plural' ),
-'kk-cyrl'      => array( 'plural' ),
-'kk-latn'      => array( 'plural' ),
-'km'           => array( 'plural' ),
-'kn'           => array( 'plural' ),
-'ko'           => array( 'plural' ),
-'lzh'          => array( 'plural' ),
-'mn'           => array( 'plural' ),
-'ms'           => array( 'plural' ),
-'my'           => array( 'plural', 'chars' ),  // Uses a lot zwnj
-'sah'          => array( 'plural' ),
-'sq'           => array( 'plural' ),
-'tet'          => array( 'plural' ),
-'th'           => array( 'plural' ),
-'to'           => array( 'plural' ),
-'tr'           => array( 'plural' ),
-'vi'           => array( 'plural' ),
-'wuu'          => array( 'plural' ),
-'xmf'          => array( 'plural' ),
-'yo'           => array( 'plural' ),
-'yue'          => array( 'plural' ),
-'zh'           => array( 'plural' ),
-'zh-classical' => array( 'plural' ),
-'zh-cn'        => array( 'plural' ),
-'zh-hans'      => array( 'plural' ),
-'zh-hant'      => array( 'plural' ),
-'zh-hk'        => array( 'plural' ),
-'zh-sg'        => array( 'plural' ),
-'zh-tw'        => array( 'plural' ),
-'zh-yue'       => array( 'plural' ),
+       'az' => array( 'plural' ),
+       'bo' => array( 'plural' ),
+       'cdo' => array( 'plural' ),
+       'dz' => array( 'plural' ),
+       'id' => array( 'plural' ),
+       'fa' => array( 'plural' ),
+       'gan' => array( 'plural' ),
+       'gan-hans' => array( 'plural' ),
+       'gan-hant' => array( 'plural' ),
+       'gn' => array( 'plural' ),
+       'hak' => array( 'plural' ),
+       'hu' => array( 'plural' ),
+       'ja' => array( 'plural' ), // Does not use plural
+       'jv' => array( 'plural' ),
+       'ka' => array( 'plural' ),
+       'kk-arab' => array( 'plural' ),
+       'kk-cyrl' => array( 'plural' ),
+       'kk-latn' => array( 'plural' ),
+       'km' => array( 'plural' ),
+       'kn' => array( 'plural' ),
+       'ko' => array( 'plural' ),
+       'lzh' => array( 'plural' ),
+       'mn' => array( 'plural' ),
+       'ms' => array( 'plural' ),
+       'my' => array( 'plural', 'chars' ), // Uses a lot zwnj
+       'sah' => array( 'plural' ),
+       'sq' => array( 'plural' ),
+       'tet' => array( 'plural' ),
+       'th' => array( 'plural' ),
+       'to' => array( 'plural' ),
+       'tr' => array( 'plural' ),
+       'vi' => array( 'plural' ),
+       'wuu' => array( 'plural' ),
+       'xmf' => array( 'plural' ),
+       'yo' => array( 'plural' ),
+       'yue' => array( 'plural' ),
+       'zh' => array( 'plural' ),
+       'zh-classical' => array( 'plural' ),
+       'zh-cn' => array( 'plural' ),
+       'zh-hans' => array( 'plural' ),
+       'zh-hant' => array( 'plural' ),
+       'zh-hk' => array( 'plural' ),
+       'zh-sg' => array( 'plural' ),
+       'zh-tw' => array( 'plural' ),
+       'zh-yue' => array( 'plural' ),
 );
index 17feaf9..187e16d 100644 (file)
@@ -96,7 +96,6 @@ $wgIgnoredMessages = array(
        'talkpageheader',
        'anonnotice',
        'autoblock_whitelist',
-       'searchmenu-help',
        'searchmenu-new-nocreate',
        'googlesearch',
        'opensearch-desc',
@@ -244,6 +243,7 @@ $wgIgnoredMessages = array(
        'version-summary',
        'tags-summary',
        'comparepages-summary',
+       'resettokens-summary',
        'version-entrypoints-index-php',
        'version-entrypoints-api-php',
        'version-entrypoints-load-php',
@@ -258,12 +258,13 @@ $wgIgnoredMessages = array(
        'createacct-benefit-icon3',
        'today-at',
        'redirect-text',
+       'edithelppage',
+       'autocomment-prefix',
 );
 
 /** Optional messages, which may be translated only if changed in the target language. */
 $wgOptionalMessages = array(
        'linkprefix',
-       'editsection-brackets',
        'feed-atom',
        'feed-rss',
        'unit-pixel',
@@ -454,7 +455,6 @@ $wgOptionalMessages = array(
        'percent',
        'parentheses',
        'brackets',
-       'autocomment-prefix',
        'listgrouprights-right-display',
        'listgrouprights-right-revoked',
        'timezone-utc',
index fdd37e6..be96d6e 100644 (file)
@@ -237,6 +237,7 @@ $wgMessageStructure = array(
                'create-this-page',
                'delete',
                'deletethispage',
+               'undeletethispage',
                'undelete_short',
                'viewdeleted_short',
                'protect',
@@ -324,7 +325,6 @@ $wgMessageStructure = array(
                'youhavenewmessagesmulti',
                'newtalkseparator',
                'editsection',
-               'editsection-brackets',
                'editold',
                'viewsourceold',
                'editlink',
@@ -423,6 +423,10 @@ $wgMessageStructure = array(
                'namespaceprotected',
                'customcssprotected',
                'customjsprotected',
+               'mycustomcssprotected',
+               'mycustomjsprotected',
+               'myprivateinfoprotected',
+               'mypreferencesprotected',
                'ns-specialprotected',
                'titleprotected',
                'filereadonlyerror',
@@ -443,6 +447,7 @@ $wgMessageStructure = array(
                'yourname',
                'userlogin-yourname',
                'userlogin-yourname-ph',
+               'createacct-another-username-ph',
                'createacct-helpusername',
                'yourpassword',
                'userlogin-yourpassword',
@@ -479,9 +484,11 @@ $wgMessageStructure = array(
                'helplogin-url',
                'userlogin-helplink',
                'createacct-join',
+               'createacct-another-join',
                'createacct-emailrequired',
                'createacct-emailoptional',
                'createacct-email-ph',
+               'createacct-another-email-ph',
                'createaccountmail',
                'createacct-realname',
                'createaccountreason',
@@ -491,6 +498,7 @@ $wgMessageStructure = array(
                'createacct-imgcaptcha-help',
                'createacct-imgcaptcha-ph',
                'createacct-submit',
+               'createacct-another-submit',
                'createacct-benefit-heading',
                'createacct-benefit-icon1',
                'createacct-benefit-head1',
@@ -584,11 +592,11 @@ $wgMessageStructure = array(
        ),
        'passwordreset' => array(
                'passwordreset',
-               'passwordreset-text',
+               'passwordreset-text-one',
+               'passwordreset-text-many',
                'passwordreset-legend',
                'passwordreset-disabled',
                'passwordreset-emaildisabled',
-               'passwordreset-pretext',
                'passwordreset-username',
                'passwordreset-domain',
                'passwordreset-capture',
@@ -615,6 +623,18 @@ $wgMessageStructure = array(
                'changeemail-submit',
                'changeemail-cancel',
        ),
+       'resettokens' => array(
+               'resettokens',
+               'resettokens-summary',
+               'resettokens-text',
+               'resettokens-no-tokens',
+               'resettokens-legend',
+               'resettokens-tokens',
+               'resettokens-token-label',
+               'resettokens-watchlist-token',
+               'resettokens-done',
+               'resettokens-resetbutton',
+       ),
        'toolbar' => array(
                'bold_sample',
                'bold_tip',
@@ -738,6 +758,7 @@ $wgMessageStructure = array(
                'edit-gone-missing',
                'edit-conflict',
                'edit-no-change',
+               'postedit-confirmation',
                'edit-already-exists',
                'addsection-preload',
                'addsection-editintro',
@@ -776,6 +797,7 @@ $wgMessageStructure = array(
                'undo-failure',
                'undo-norev',
                'undo-summary',
+               'undo-summary-username-hidden',
        ),
        'cantcreateaccount' => array(
                'cantcreateaccounttitle',
@@ -924,6 +946,7 @@ $wgMessageStructure = array(
                'compareselectedversions',
                'showhideselectedversions',
                'editundo',
+               'diff-empty',
                'diff-multi',
                'diff-multi-manyusers',
                'difference-missing-revision',
@@ -950,9 +973,7 @@ $wgMessageStructure = array(
                'searchmenu-exists',
                'searchmenu-new',
                'searchmenu-new-nocreate',
-               'searchhelp-url',
                'searchmenu-prefix',
-               'searchmenu-help',
                'searchprofile-articles',
                'searchprofile-project',
                'searchprofile-images',
@@ -1033,7 +1054,6 @@ $wgMessageStructure = array(
                'resetprefs',
                'restoreprefs',
                'prefs-editing',
-               'prefs-edit-boxsize',
                'rows',
                'columns',
                'searchresultshead',
@@ -1044,7 +1064,7 @@ $wgMessageStructure = array(
                'recentchangesdays-max',
                'recentchangescount',
                'prefs-help-recentchangescount',
-               'prefs-help-watchlist-token',
+               'prefs-help-watchlist-token2',
                'savedprefs',
                'timezonelegend',
                'localtime',
@@ -1075,7 +1095,6 @@ $wgMessageStructure = array(
                'prefs-common-css-js',
                'prefs-reset-intro',
                'prefs-emailconfirm-label',
-               'prefs-textboxsize',
                'youremail',
                'username',
                'uid',
@@ -1110,6 +1129,8 @@ $wgMessageStructure = array(
                'prefs-dateformat',
                'prefs-timeoffset',
                'prefs-advancedediting',
+               'prefs-editor',
+               'prefs-preview',
                'prefs-advancedrc',
                'prefs-advancedrendering',
                'prefs-advancedsearchoptions',
@@ -1117,6 +1138,7 @@ $wgMessageStructure = array(
                'prefs-displayrc',
                'prefs-displaysearchoptions',
                'prefs-displaywatchlist',
+               'prefs-tokenwatchlist',
                'prefs-diffs',
        ),
        'preferences-email' => array(
@@ -1145,6 +1167,7 @@ $wgMessageStructure = array(
                'userrights-unchangeable-col',
                'userrights-irreversible-marker',
                'userrights-conflict',
+               'userrights-removed-self',
        ),
        'group' => array(
                'group',
@@ -1213,10 +1236,18 @@ $wgMessageStructure = array(
                'right-unblockself',
                'right-protect',
                'right-editprotected',
+               'right-editsemiprotected',
                'right-editinterface',
                'right-editusercssjs',
                'right-editusercss',
                'right-edituserjs',
+               'right-editmyusercss',
+               'right-editmyuserjs',
+               'right-viewmywatchlist',
+               'right-editmywatchlist',
+               'right-viewmyprivateinfo',
+               'right-editmyprivateinfo',
+               'right-editmyoptions',
                'right-rollback',
                'right-markbotedits',
                'right-noratelimit',
@@ -1278,6 +1309,10 @@ $wgMessageStructure = array(
                'action-userrights-interwiki',
                'action-siteadmin',
                'action-sendemail',
+               'action-editmywatchlist',
+               'action-viewmywatchlist',
+               'action-viewmyprivateinfo',
+               'action-editmyprivateinfo',
        ),
        'recentchanges' => array(
                'nchanges',
@@ -1286,6 +1321,7 @@ $wgMessageStructure = array(
                'recentchanges-legend',
                'recentchanges-summary',
                'recentchangestext',
+               'recentchanges-noresult',
                'recentchanges-feed-description',
                'recentchanges-label-newpage',
                'recentchanges-label-minor',
@@ -1325,7 +1361,6 @@ $wgMessageStructure = array(
                'recentchangeslinked-feed',
                'recentchangeslinked-toolbox',
                'recentchangeslinked-title',
-               'recentchangeslinked-noresult',
                'recentchangeslinked-summary',
                'recentchangeslinked-page',
                'recentchangeslinked-to',
@@ -1687,6 +1722,8 @@ $wgMessageStructure = array(
                'pageswithprop-text',
                'pageswithprop-prop',
                'pageswithprop-submit',
+               'pageswithprop-prophidden-long',
+               'pageswithprop-prophidden-binary',
        ),
        'doubleredirects' => array(
                'doubleredirects',
@@ -1770,6 +1807,7 @@ $wgMessageStructure = array(
                'prefixindex',
                'prefixindex-namespace',
                'prefixindex-summary',
+               'prefixindex-strip',
                'shortpages',
                'shortpages-summary',
                'longpages',
@@ -1976,7 +2014,6 @@ $wgMessageStructure = array(
                'unwatchthispage',
                'notanarticle',
                'notvisiblerev',
-               'watchnochange',
                'watchlist-details',
                'wlheader-enotif',
                'wlheader-showupdated',
@@ -3639,7 +3676,6 @@ $wgMessageStructure = array(
                'version-other',
                'version-mediahandlers',
                'version-hooks',
-               'version-extension-functions',
                'version-parser-extensiontags',
                'version-parser-function-hooks',
                'version-hook-name',
@@ -3716,6 +3752,7 @@ $wgMessageStructure = array(
                'tags-summary',
                'tag-filter',
                'tag-filter-submit',
+               'tag-list-wrapper',
                'tags-title',
                'tags-intro',
                'tags-tag',
@@ -3917,8 +3954,8 @@ $wgBlockComments = array(
 begin with * or ** are discarded, furthermore lines that do begin with ** and
 do not contain | are also discarded, but do not depend on this behavior for
 future releases. Also note that since each list value is wrapped in a unique
-XHTML id it should only appear once and include characters that are legal
-XHTML id names.",
+(X)HTML id it should only appear once and include characters that are legal
+(X)HTML id names.",
        'toggles'             => 'User preference toggles',
        'underline'           => '',
        'editfont'            => 'Font style option in Special:Preferences',
@@ -3943,6 +3980,7 @@ XHTML id names.",
        'resetpass'           => 'Change password dialog',
        'passwordreset'       => 'Special:PasswordReset',
        'changeemail'         => 'Special:ChangeEmail',
+       'resettokens'         => 'Special:ResetTokens',
        'toolbar'             => 'Edit page toolbar',
        'edit'                => 'Edit pages',
        'parserwarnings'      => 'Parser/template warnings',
index 2b680d3..b36a319 100644 (file)
@@ -54,7 +54,16 @@ class MergeMessageFileList extends Maintenance {
                if ( $lines === false ) {
                        $this->error( 'Unable to open list file.' );
                }
-               $mmfl = array( 'setupFiles' => array_map( 'trim', $lines ) );
+               $mmfl = array( 'setupFiles' => array() );
+
+               # Strip comments, discard empty lines, and trim leading and trailing
+               # whitespace. Comments start with '#' and extend to the end of the line.
+               foreach( $lines as $line ) {
+                       $line = trim( preg_replace( '/#.*/', '', $line ) );
+                       if ( $line !== '' ) {
+                               $mmfl['setupFiles'][] = $line;
+                       }
+               }
 
                # Now find out files in a directory
                $hasError = false;
index 3439b74..9fb1314 100644 (file)
@@ -8,12 +8,6 @@
  * Usage:
  *   php mwdocgen.php
  *
- * KNOWN BUGS:
- *
- * - pass_thru seems to always use buffering (even with ob_implicit_flush()),
- * that make output slow when doxygen parses language files.
- * - the menu doesnt work, got disabled at revision 13740. Need to code it.
- *
  * 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
  * @version first release
  */
 
-#
-# Variables / Configuration
-#
-
-if ( PHP_SAPI != 'cli' ) {
-       echo 'Run "' . __FILE__ . '" from the command line.';
-       die( -1 );
-}
-
-/** Figure out the base directory for MediaWiki location */
-$mwPath = dirname( __DIR__ ) . DIRECTORY_SEPARATOR;
-
-/** doxygen binary script */
-$doxygenBin = 'doxygen';
-
-/** doxygen configuration template for mediawiki */
-$doxygenTemplate = $mwPath . 'maintenance/Doxyfile';
-
-/** doxygen input filter to tweak source file before they are parsed */
-$doxygenInputFilter = "php {$mwPath}maintenance/mwdoc-filter.php";
-
-/** where Phpdoc should output documentation */
-$doxyOutput = $mwPath . 'docs' . DIRECTORY_SEPARATOR;
-
-$doxyVersion = 'master';
-
-/** MediaWiki subpaths */
-$mwPathI = $mwPath . 'includes/';
-$mwPathL = $mwPath . 'languages/';
-$mwPathM = $mwPath . 'maintenance/';
-$mwPathS = $mwPath . 'skins/';
-
-/** Ignored paths relative to $mwPath */
-$mwExcludePaths = array(
-       'images',
-       'static',
-);
-
-/** Variable to get user input */
-$input = '';
-$excludePatterns = '';
-/** Whether to generates man pages: */
-$doxyGenerateMan = false;
-
-#
-# Functions
-#
-
-define( 'MEDIAWIKI', true );
-require_once "$mwPath/includes/GlobalFunctions.php";
-
-/**
- * Read a line from the shell
- * @param $prompt String
- * @return string
- */
-function readaline( $prompt = '' ) {
-       print $prompt;
-       $fp = fopen( "php://stdin", "r" );
-       $resp = trim( fgets( $fp, 1024 ) );
-       fclose( $fp );
-       return $resp;
-}
+require_once __DIR__ . '/Maintenance.php';
 
 /**
- * Generate a configuration file given user parameters and return the temporary filename.
- * @param $doxygenTemplate String: full path for the template.
- * @param $outputDirectory String: directory where the stuff will be output.
- * @param $stripFromPath String: path that should be stripped out (usually mediawiki base path).
- * @param $currentVersion String: Version number of the software
- * @param $input String: Path to analyze.
- * @param $exclude String: Additionals path regex to exclude
- * @param $excludePatterns String: Additionals path regex to exclude
- *                 (LocalSettings.php, AdminSettings.php, .svn and .git directories are always excluded)
- * @param $doxyGenerateMan Boolean
- * @return string
+ * Maintenance script that builds doxygen documentation.
+ * @ingroup Maintenance
  */
-function generateConfigFile( $doxygenTemplate, $outputDirectory, $stripFromPath, $currentVersion, $input, $exclude, $excludePatterns, $doxyGenerateMan, $doxygenInputFilter ) {
-
-       $template = file_get_contents( $doxygenTemplate );
-       // Replace template placeholders by correct values.
-       $replacements = array(
-               '{{OUTPUT_DIRECTORY}}' => $outputDirectory,
-               '{{STRIP_FROM_PATH}}' => $stripFromPath,
-               '{{CURRENT_VERSION}}' => $currentVersion,
-               '{{INPUT}}' => $input,
-               '{{EXCLUDE}}' => $exclude,
-               '{{EXCLUDE_PATTERNS}}' => $excludePatterns,
-               '{{HAVE_DOT}}' => `which dot` ? 'YES' : 'NO',
-               '{{GENERATE_MAN}}' => $doxyGenerateMan ? 'YES' : 'NO',
-               '{{INPUT_FILTER}}' => $doxygenInputFilter,
-       );
-       $tmpCfg = str_replace( array_keys( $replacements ), array_values( $replacements ), $template );
-       $tmpFileName = tempnam( wfTempDir(), 'mwdocgen-' );
-       file_put_contents( $tmpFileName, $tmpCfg ) or die( "Could not write doxygen configuration to file $tmpFileName\n" );
+class MWDocGen extends Maintenance {
+
+       /**
+        * Prepare Maintenance class
+        */
+       public function __construct() {
+               parent::__construct();
+               $this->mDescription = 'Build doxygen documentation';
+
+               $this->addOption( 'doxygen',
+                       'Path to doxygen',
+                       false, true );
+               $this->addOption( 'version',
+                       'Pass a MediaWiki version',
+                       false, true );
+               $this->addOption( 'generate-man',
+                       'Whether to generate man files' );
+               $this->addOption( 'file',
+                       "Only process given file or directory. Multiple values " .
+                       "accepted with comma separation. Path relative to \$IP.",
+                       false, true );
+               $this->addOption( 'output',
+                       'Path to write doc to',
+                       false, true );
+               $this->addOption( 'no-extensions',
+                       'Ignore extensions' );
+       }
 
-       return $tmpFileName;
-}
+       public function getDbType() {
+               return Maintenance::DB_NONE;
+       }
 
-#
-# Main !
-#
+       protected function init() {
+               global $IP;
 
-unset( $file );
+               $this->doxygen = $this->getOption( 'doxygen', 'doxygen' );
+               $this->mwVersion = $this->getOption( 'version', 'master' );
 
-if ( is_array( $argv ) ) {
-       for ( $i = 0; $i < count( $argv ); $i++ ) {
-               switch ( $argv[$i] ) {
-               case '--all':
-                       $input = 0;
-                       break;
-               case '--includes':
-                       $input = 1;
-                       break;
-               case '--languages':
-                       $input = 2;
-                       break;
-               case '--maintenance':
-                       $input = 3;
-                       break;
-               case '--skins':
-                       $input = 4;
-                       break;
-               case '--file':
-                       $input = 5;
-                       $i++;
-                       if ( isset( $argv[$i] ) ) {
-                               $file = $argv[$i];
-                       }
-                       break;
-               case '--no-extensions':
-                       $input = 6;
-                       break;
-               case '--output':
-                       $i++;
-                       if ( isset( $argv[$i] ) ) {
-                               $doxyOutput = realpath( $argv[$i] );
-                       }
-                       break;
-               case '--version':
-                       $i++;
-                       if ( isset( $argv[$i] ) ) {
-                               $doxyVersion = $argv[$i];
-                       }
-                       break;
-               case '--generate-man':
-                       $doxyGenerateMan = true;
-                       break;
-               case '--help':
-                       print <<<END
-Usage: php mwdocgen.php [<command>] [<options>]
+               $this->input = '';
+               $inputs = explode( ',', $this->getOption( 'file', '' ) );
+               foreach( $inputs as $input ) {
+                       # Doxygen inputs are space separted and double quoted
+                       $this->input .= " \"$IP/$input\"";
+               }
 
-Commands:
-    --all           Process entire codebase
-    --includes      Process only files in includes/ dir
-    --languages     Process only files in languages/ dir
-    --maintenance   Process only files in maintenance/ dir
-    --skins         Process only files in skins/ dir
-    --file <file>   Process only the given file
-    --no-extensions Process everything but extensions directorys
+               $this->output = $this->getOption( 'output', "$IP/docs" );
+
+               $this->inputFilter = wfShellWikiCmd(
+                       $IP . '/maintenance/mwdoc-filter.php' );
+               $this->template = $IP . '/maintenance/Doxyfile';
+               $this->excludes = array(
+                       'vendor',
+                       'images',
+                       'static',
+               );
+               $this->excludePatterns = array();
+               if ( $this->hasOption( 'no-extensions' ) ) {
+                       $this->excludePatterns[] = 'extensions';
+               }
 
-If no command is given, you will be prompted.
+               $this->doDot = `which dot`;
+               $this->doMan = $this->hasOption( 'generate-man' );
+       }
 
-Other options:
-    --output <dir>  Set output directory (default: $doxyOutput)
-    --generate-man  Generates man page documentation
-    --version       Project version to display in the outut (default: $doxyVersion)
-    --help          Show this help and exit.
+       public function execute() {
+               global $IP;
 
+               $this->init();
 
-END;
-                       exit( 0 );
-                       break;
+               # Build out directories we want to exclude
+               $exclude = '';
+               foreach ( $this->excludes as $item ) {
+                       $exclude .= " $IP/$item";
                }
-       }
-}
 
-// TODO : generate a list of paths ))
-
-if ( $input === '' ) {
-       echo <<<OPTIONS
-Several documentation possibilities:
- 0 : whole documentation (1 + 2 + 3 + 4)
- 1 : only includes
- 2 : only languages
- 3 : only maintenance
- 4 : only skins
- 5 : only a given file
- 6 : all but the extensions directory
-OPTIONS;
-       while ( !is_numeric( $input ) ) {
-               $input = readaline( "\nEnter your choice [0]:" );
-               if ( $input == '' ) {
-                       $input = 0;
+               $excludePatterns = implode( ' ', $this->excludePatterns );
+
+               $conf = strtr( file_get_contents( $this->template ),
+                       array(
+                               '{{OUTPUT_DIRECTORY}}' => $this->output,
+                               '{{STRIP_FROM_PATH}}' => $IP,
+                               '{{CURRENT_VERSION}}' => $this->mwVersion,
+                               '{{INPUT}}' => $this->input,
+                               '{{EXCLUDE}}' => $exclude,
+                               '{{EXCLUDE_PATTERNS}}' => $excludePatterns,
+                               '{{HAVE_DOT}}' => $this->doDot ? 'YES' : 'NO',
+                               '{{GENERATE_MAN}}' => $this->doMan ? 'YES' : 'NO',
+                               '{{INPUT_FILTER}}' => $this->inputFilter,
+                       )
+               );
+
+               $tmpFile = tempnam( wfTempDir(), 'MWDocGen-' );
+               if ( file_put_contents( $tmpFile, $conf ) === false ) {
+                       $this->error( "Could not write doxygen configuration to file $tmpFile\n",
+                               /** exit code: */ 1 );
                }
-       }
-}
-
-switch ( $input ) {
-case 0:
-       $input = $mwPath;
-       break;
-case 1:
-       $input = $mwPathI;
-       break;
-case 2:
-       $input = $mwPathL;
-       break;
-case 3:
-       $input = $mwPathM;
-       break;
-case 4:
-       $input = $mwPathS;
-       break;
-case 5:
-       if ( !isset( $file ) ) {
-               $file = readaline( "Enter file name $mwPath" );
-       }
-       $input = $mwPath . $file;
-       break;
-case 6:
-       $input = $mwPath;
-       $excludePatterns = 'extensions';
-}
 
-// Generate path exclusions
-$excludedPaths = $mwPath . join( " $mwPath", $mwExcludePaths );
-print "EXCLUDE: $excludedPaths\n\n";
+               $command = $this->doxygen . ' ' . $tmpFile;
+               $this->output( "Executing command:\n$command\n" );
 
-$generatedConf = generateConfigFile( $doxygenTemplate, $doxyOutput, $mwPath, $doxyVersion, $input, $excludedPaths, $excludePatterns, $doxyGenerateMan, $doxygenInputFilter );
-$command = $doxygenBin . ' ' . $generatedConf;
+               $exitcode = 1;
+               system( $command, $exitcode );
 
-echo <<<TEXT
+               $this->output( <<<TEXT
 ---------------------------------------------------
-Launching the command:
-
-$command
+Doxygen execution finished.
+Check above for possible errors.
 
+You might want to delete the temporary file:
+ $tmpFile
 ---------------------------------------------------
 
-TEXT;
-
-$exitcode = 1;
-passthru( $command, $exitcode );
+TEXT
+       );
 
-echo <<<TEXT
----------------------------------------------------
-Doxygen execution finished.
-Check above for possible errors.
+               if ( $exitcode !== 0 ) {
+                       $this->error( "Something went wrong (exit: $exitcode)\n",
+                               $exitcode );
+               }
 
-You might want to delete the temporary file $generatedConf
+       }
 
-TEXT;
+}
 
-exit( $exitcode );
+$maintClass = 'MWDocGen';
+require_once RUN_MAINTENANCE_IF_MAIN;
index cccc715..bc10bc2 100755 (executable)
@@ -11,7 +11,11 @@ then
        exit 1
 fi
 
+MWCORE_DIR=$(cd $(dirname $0)/..; pwd)
+
 jsduck \
---config=$(cd $(dirname $0)/..; pwd)/maintenance/jsduck/config.json \
+--config=$MWCORE_DIR/maintenance/jsduck/config.json \
 --footer="Documentation for MediaWiki core ($JSDUCK_MWVERSION). Generated on {DATE} by {JSDUCK} {VERSION}." \
 && echo 'JSDuck execution finished.'
+
+ln -s ../../resources $MWCORE_DIR/docs/js/modules
index 32b6569..9f2af33 100644 (file)
@@ -68,28 +68,57 @@ class PurgeDeletedFiles extends Maintenance {
                $res = $db->select( 'logging', array( 'log_title', 'log_timestamp' ), $conds, __METHOD__ );
                foreach ( $res as $row ) {
                        $file = $repo->newFile( Title::makeTitle( NS_FILE, $row->log_title ) );
-
+                       // If there is an orphaned storage file still there...delete it
+                       if ( !$file->exists() && $repo->fileExists( $file->getPath() ) ) {
+                               $dpath = $this->getDeletedPath( $repo, $file );
+                               if ( $repo->fileExists( $dpath ) ) { // sanity check to avoid data loss
+                                       $repo->getBackend()->delete( array( 'src' => $file->getPath() ) );
+                                       $this->output( "Deleted orphan file: {$file->getPath()}.\n" );
+                               } else {
+                                       $this->error( "File was not deleted: {$file->getPath()}.\n" );
+                               }
+                       }
                        // Purge current version and any versions in oldimage table
                        $file->purgeCache();
                        $file->purgeHistory();
                        // Purge items from fileachive table (rows are likely here)
-                       $this->purgeFromArchiveTable( $file );
+                       $this->purgeFromArchiveTable( $repo, $file );
 
                        $this->output( "Purged file {$row->log_title}; deleted on {$row->log_timestamp}.\n" );
                }
        }
 
-       protected function purgeFromArchiveTable( LocalFile $file ) {
-               $db = $file->getRepo()->getSlaveDB();
+       protected function purgeFromArchiveTable( LocalRepo $repo, LocalFile $file ) {
+               $db = $repo->getSlaveDB();
                $res = $db->select( 'filearchive',
                        array( 'fa_archive_name' ),
                        array( 'fa_name' => $file->getName() ),
                        __METHOD__
                );
                foreach ( $res as $row ) {
+                       if ( $row->fa_archive_name === null ) {
+                               continue; // was not an old version (current version names checked already)
+                       }
+                       $ofile = $repo->newFromArchiveName( $file->getTitle(), $row->fa_archive_name );
+                       // If there is an orphaned storage file still there...delete it
+                       if ( !$file->exists() && $repo->fileExists( $ofile->getPath() ) ) {
+                               $dpath = $this->getDeletedPath( $repo, $ofile );
+                               if ( $repo->fileExists( $dpath ) ) { // sanity check to avoid data loss
+                                       $repo->getBackend()->delete( array( 'src' => $ofile->getPath() ) );
+                                       $this->output( "Deleted orphan file: {$ofile->getPath()}.\n" );
+                               } else {
+                                       $this->error( "File was not deleted: {$ofile->getPath()}.\n" );
+                               }
+                       }
                        $file->purgeOldThumbnails( $row->fa_archive_name );
                }
        }
+
+       protected function getDeletedPath( LocalRepo $repo, LocalFile $file ) {
+               $hash = $repo->getFileSha1( $file->getPath() );
+               $key = "{$hash}.{$file->getExtension()}";
+               return $repo->getDeletedHashPath( $key ) . $key;
+       }
 }
 
 $maintClass = "PurgeDeletedFiles";
index 54444e9..1268d20 100644 (file)
@@ -35,6 +35,10 @@ class RebuildAll extends Maintenance {
                $this->mDescription = "Rebuild links, text index and recent changes";
        }
 
+       public function getDbType() {
+               return Maintenance::DB_ADMIN;
+       }
+
        public function execute() {
                // Rebuild the text index
                if ( wfGetDB( DB_SLAVE )->getType() != 'postgres' ) {
index a31aba2..c651f72 100644 (file)
@@ -115,9 +115,8 @@ class RebuildTextIndex extends Maintenance {
 
                                        $rev = new Revision( $s );
                                        $content = $rev->getContent();
-                                       $text = $content->getTextForSearchIndex();
 
-                                       $u = new SearchUpdate( $s->page_id, $title, $text );
+                                       $u = new SearchUpdate( $s->page_id, $title, $content );
                                        $u->doUpdate();
                                } catch ( MWContentSerializationException $ex ) {
                                        $this->output( "Failed to deserialize content of revision {$s->rev_id} of page "
index 2d75722..16cb17a 100644 (file)
@@ -74,9 +74,12 @@ class RemoveUnusedAccounts extends Maintenance {
 
                # If required, go back and delete each marked account
                if ( $count > 0 && $this->hasOption( 'delete' ) ) {
-                       $this->output( "\nDeleting inactive accounts..." );
+                       $this->output( "\nDeleting unused accounts..." );
                        $dbw = wfGetDB( DB_MASTER );
                        $dbw->delete( 'user', array( 'user_id' => $del ), __METHOD__ );
+                       $dbw->delete( 'user_groups', array( 'ug_user' => $del ), __METHOD__ );
+                       $dbw->delete( 'user_former_groups', array( 'ufg_user' => $del ), __METHOD__ );
+                       $dbw->delete( 'user_properties', array( 'up_user' => $del ), __METHOD__ );
                        $dbw->delete( 'logging', array( 'log_user' => $del ), __METHOD__ );
                        $dbw->delete( 'recentchanges', array( 'rc_user' => $del ), __METHOD__ );
                        $this->output( "done.\n" );
index 6a6f9d2..9dac031 100644 (file)
@@ -102,7 +102,7 @@ class RunJobs extends Maintenance {
                                } catch ( MWException $e ) {
                                        $status = false;
                                        $error = get_class( $e ) . ': ' . $e->getMessage();
-                                       wfDebugLog( 'exception', $e->getLogMessage() );
+                                       $e->report(); // write error to STDERR and the log
                                }
                                wfProfileOut( __METHOD__ . '-' . get_class( $job ) );
                                $timeMs = intval( ( microtime( true ) - $t ) * 1000 );
index 322a849..e054a36 100644 (file)
@@ -38,11 +38,22 @@ class ShowJobs extends Maintenance {
                parent::__construct();
                $this->mDescription = "Show number of jobs waiting in master database";
                $this->addOption( 'group', 'Show number of jobs per job type' );
+               $this->addOption( 'list', 'Show a complete list of all jobs in a machine-readable format, instead of statistics' );
        }
 
        public function execute() {
                $group = JobQueueGroup::singleton();
-               if ( $this->hasOption( 'group' ) ) {
+               if ( $this->hasOption( 'list' ) ) {
+                       foreach ( $group->getQueueTypes() as $type ) {
+                               $queue = $group->get( $type );
+                               foreach ( $queue->getAllQueuedJobs() as $job ) {
+                                       $this->output( $job->toString() . " status=unclaimed\n" );
+                               }
+                               foreach ( $queue->getAllDelayedJobs() as $job ) {
+                                       $this->output( $job->toString() . " status=delayed\n" );
+                               }
+                       }
+               } elseif ( $this->hasOption( 'group' ) ) {
                        foreach ( $group->getQueueTypes() as $type ) {
                                $queue = $group->get( $type );
                                $pending = $queue->getSize();
index 216db93..a628b0b 100644 (file)
@@ -34,16 +34,42 @@ class MwSql extends Maintenance {
                parent::__construct();
                $this->mDescription = "Send SQL queries to a MediaWiki database";
                $this->addOption( 'cluster', 'Use an external cluster by name', false, true );
+               $this->addOption( 'slave', 'Use a slave server (either "any" or by name)', false, true );
        }
 
        public function execute() {
-               // Get a DB handle (with this wiki's DB select) from the appropriate load balancer
+               // Get the appropriate load balancer (for this wiki)
                if ( $this->hasOption( 'cluster' ) ) {
                        $lb = wfGetLBFactory()->getExternalLB( $this->getOption( 'cluster' ) );
-                       $dbw = $lb->getConnection( DB_MASTER ); // master for external LB
                } else {
-                       $dbw = wfGetDB( DB_MASTER ); // master for primary LB for this wiki
+                       $lb = wfGetLB();
                }
+               // Figure out which server to use
+               if ( $this->hasOption( 'slave' ) ) {
+                       $server = $this->getOption( 'slave' );
+                       if ( $server === 'any' ) {
+                               $index = DB_SLAVE;
+                       } else {
+                               $index = null;
+                               for ( $i = 0; $i < $lb->getServerCount(); ++$i ) {
+                                       if ( $lb->getServerName( $i ) === $server ) {
+                                               $index = $i;
+                                               break;
+                                       }
+                               }
+                               if ( $index === null ) {
+                                       $this->error( "No slave server configured with the name '$server'.", 1 );
+                               }
+                       }
+               } else {
+                       $index = DB_MASTER;
+               }
+               // Get a DB handle (with this wiki's DB selected) from the appropriate load balancer
+               $dbw = $lb->getConnection( $index );
+               if ( $this->hasOption( 'slave' ) && $dbw->getLBInfo( 'master' ) !== null ) {
+                       $this->error( "The server selected ({$dbw->getServer()}) is not a slave.", 1 );
+               }
+
                if ( $this->hasArg( 0 ) ) {
                        $file = fopen( $this->getArg( 0 ), 'r' );
                        if ( !$file ) {
index da2c6df..7fc6bb8 100644 (file)
@@ -760,6 +760,9 @@ CREATE TABLE /*_*/ipblocks (
 
   -- Start and end of an address range, in hexadecimal
   -- Size chosen to allow IPv6
+  -- FIXME: these fields were originally blank for single-IP blocks,
+  -- but now they are populated. No migration was ever done. They 
+  -- should be fixed to be blank again for such blocks (bug 49504).
   ipb_range_start tinyblob NOT NULL,
   ipb_range_end tinyblob NOT NULL,
 
index b847c23..964b313 100644 (file)
@@ -82,6 +82,10 @@ TEXT;
                        $collation = Collation::singleton();
                }
 
+               // Collation sanity check: in some cases the constructor will work,
+               // but this will raise an exception, breaking all category pages
+               $collation->getFirstLetter( 'MediaWiki' );
+
                $options = array(
                        'LIMIT' => self::BATCH_SIZE,
                        'ORDER BY' => 'cl_to, cl_type, cl_from',
index 7361b72..02cde52 100644 (file)
@@ -99,7 +99,12 @@ return array(
                'localBasePath' => $GLOBALS['wgStyleDirectory'],
        ),
        'skins.vector.js' => array(
-               'scripts' => 'vector/vector.js',
+               'scripts' => array(
+                       'vector/collapsibleTabs.js',
+                       'vector/vector.js',
+               ),
+               'position' => 'top',
+               'dependencies' => 'jquery.delayedBind',
                'remoteBasePath' => $GLOBALS['wgStylePath'],
                'localBasePath' => $GLOBALS['wgStyleDirectory'],
        ),
@@ -585,6 +590,12 @@ return array(
                        'mediawiki.Title',
                ),
        ),
+       'mediawiki.api.login' => array(
+               'scripts' => 'resources/mediawiki.api/mediawiki.api.login.js',
+               'dependencies' => array(
+                       'mediawiki.api',
+               ),
+       ),
        'mediawiki.api.parse' => array(
                'scripts' => 'resources/mediawiki.api/mediawiki.api.parse.js',
                'dependencies' => 'mediawiki.api',
@@ -596,6 +607,9 @@ return array(
                        'user.tokens',
                ),
        ),
+       'mediawiki.icon' => array(
+               'styles' => 'resources/mediawiki/mediawiki.icon.css',
+       ),
        'mediawiki.debug' => array(
                'scripts' => 'resources/mediawiki/mediawiki.debug.js',
                'styles' => 'resources/mediawiki/mediawiki.debug.css',
@@ -705,6 +719,7 @@ return array(
        'mediawiki.action.edit' => array(
                'scripts' => 'resources/mediawiki.action/mediawiki.action.edit.js',
                'dependencies' => array(
+                       'mediawiki.legacy.wikibits',
                        'jquery.textSelection',
                        'jquery.byteLimit',
                ),
@@ -741,7 +756,14 @@ return array(
        ),
        'mediawiki.action.view.postEdit' => array(
                'scripts' => 'resources/mediawiki.action/mediawiki.action.view.postEdit.js',
-               'dependencies' => 'jquery.cookie'
+               'styles' => 'resources/mediawiki.action/mediawiki.action.view.postEdit.css',
+               'dependencies' => array(
+                       'jquery.cookie',
+                       'mediawiki.jqueryMsg'
+               ),
+               'messages' => array(
+                       'postedit-confirmation',
+               ),
        ),
        'mediawiki.action.view.rightClickEdit' => array(
                'scripts' => 'resources/mediawiki.action/mediawiki.action.view.rightClickEdit.js',
@@ -903,7 +925,9 @@ return array(
        ),
        'mediawiki.special.changeslist' => array(
                'styles' => 'resources/mediawiki.special/mediawiki.special.changeslist.css',
-               'dependencies' => array( 'jquery.makeCollapsible' ),
+       ),
+       'mediawiki.special.changeslist.enhanced' => array(
+               'styles' => 'resources/mediawiki.special/mediawiki.special.changeslist.enhanced.css',
        ),
        'mediawiki.special.movePage' => array(
                'scripts' => 'resources/mediawiki.special/mediawiki.special.movePage.js',
@@ -912,6 +936,7 @@ return array(
        'mediawiki.special.preferences' => array(
                'scripts' => 'resources/mediawiki.special/mediawiki.special.preferences.js',
                'styles' => 'resources/mediawiki.special/mediawiki.special.preferences.css',
+               'position' => 'top',
        ),
        'mediawiki.special.recentchanges' => array(
                'scripts' => 'resources/mediawiki.special/mediawiki.special.recentchanges.js',
@@ -943,27 +968,24 @@ return array(
                ),
                'dependencies' => array( 'mediawiki.libs.jpegmeta', 'mediawiki.util' ),
        ),
-       'mediawiki.special.userlogin.signup' => array(
-               'scripts' => 'resources/mediawiki.special/mediawiki.special.userLogin.signup.js',
-       ),
-       'mediawiki.special.userlogin.vform' => array(
+       'mediawiki.special.userlogin' => array(
                'styles' => array(
                        'resources/mediawiki.special/mediawiki.special.vforms.css',
-                       'resources/mediawiki.special/mediawiki.special.userLogin.vform.css',
+                       'resources/mediawiki.special/mediawiki.special.userLogin.css',
                ),
                'position' => 'top',
        ),
-       'mediawiki.special.createaccount.vform' => array(
+       'mediawiki.special.createaccount' => array(
                'styles' => array(
                        'resources/mediawiki.special/mediawiki.special.vforms.css',
-                       'resources/mediawiki.special/mediawiki.special.createAccount.vform.css',
+                       'resources/mediawiki.special/mediawiki.special.createAccount.css',
                ),
-               'position' => 'top',
        ),
-       'mediawiki.special.createaccount.vform.js' => array(
-               'scripts' => 'resources/mediawiki.special/mediawiki.special.createAccount.vform.js',
+       'mediawiki.special.createaccount.js' => array(
+               'scripts' => 'resources/mediawiki.special/mediawiki.special.createAccount.js',
                'messages' => array(
                        'createacct-captcha',
+                       'createacct-emailrequired',
                        'createacct-imgcaptcha-ph'
                ),
                'dependencies' => 'mediawiki.jqueryMsg',
index fef8c4b..dbbbfc7 100644 (file)
Binary files a/resources/jquery.tipsy/images/tipsy.png and b/resources/jquery.tipsy/images/tipsy.png differ
index 5b5dab2..26b9da5 100644 (file)
Binary files a/resources/jquery.ui/themes/default/images/ui-bg_flat_0_aaaaaa_40x100.png and b/resources/jquery.ui/themes/default/images/ui-bg_flat_0_aaaaaa_40x100.png differ
index ac8b229..b4b148d 100644 (file)
Binary files a/resources/jquery.ui/themes/default/images/ui-bg_flat_75_ffffff_40x100.png and b/resources/jquery.ui/themes/default/images/ui-bg_flat_75_ffffff_40x100.png differ
index ee039dc..9a9606f 100644 (file)
Binary files a/resources/jquery.ui/themes/default/images/ui-icons_222222_256x240.png and b/resources/jquery.ui/themes/default/images/ui-icons_222222_256x240.png differ
index 45e8928..08d2617 100644 (file)
Binary files a/resources/jquery.ui/themes/default/images/ui-icons_2e83ff_256x240.png and b/resources/jquery.ui/themes/default/images/ui-icons_2e83ff_256x240.png differ
index 7ec70d1..80cb644 100644 (file)
Binary files a/resources/jquery.ui/themes/default/images/ui-icons_454545_256x240.png and b/resources/jquery.ui/themes/default/images/ui-icons_454545_256x240.png differ
index 5ba708c..8373712 100644 (file)
Binary files a/resources/jquery.ui/themes/default/images/ui-icons_888888_256x240.png and b/resources/jquery.ui/themes/default/images/ui-icons_888888_256x240.png differ
index 7930a55..34fc893 100644 (file)
Binary files a/resources/jquery.ui/themes/default/images/ui-icons_cd0a0a_256x240.png and b/resources/jquery.ui/themes/default/images/ui-icons_cd0a0a_256x240.png differ
old mode 100755 (executable)
new mode 100644 (file)
index 9314ef6..ea14723
        zoom: 1;
        overflow: visible; /* the overflow property removes extra width in IE */
 }
-.ui-button-icon-only {
-       width: 2.2em; /* to make room for the icon, a width needs to be set here */
-}
-button.ui-button-icon-only {
-       width: 2.4em; /* button elements seem to need a little more width */
-}
-.ui-button-icons-only {
-       width: 3.4em;
-}
-button.ui-button-icons-only {
-       width: 3.7em;
-}
 
 /*button text element */
 .ui-button .ui-button-text {
@@ -91,7 +79,7 @@ input.ui-button {
 }
 .ui-buttonset .ui-button {
        margin-left: 0;
-       margin-right: -.3em;
+       margin-right: -.4em;
 }
 
 /* workarounds */
@@ -173,6 +161,15 @@ body .ui-button {
        -moz-box-shadow: 0 1px 3px rgba(0,0,0,.2);
        box-shadow: 0 1px 3px rgba(0,0,0,.2);
 }
+
+body .ui-button-icon-only {
+       width: 2.2em;
+}
+
+body .ui-button-icons-only {
+       width: 3.4em;
+}
+
 body .ui-button:hover {
        color: #2779aa;
        border-color: #bbb !important;
@@ -379,4 +376,4 @@ body .ui-button-blue.disabled .ui-button-text,
 body .ui-button-red.disabled .ui-button-text {
        color: #aaa;
        text-shadow: 0 1px 1px #fff;
-}
\ No newline at end of file
+}
index aced063..b206566 100644 (file)
                $box.click( function ( e ) {
                        // And one has been clicked before...
                        if ( prevCheckbox !== null && e.shiftKey ) {
-                               // Check or uncheck this one and all in-between checkboxes
-                               $box.slice(
-                                       Math.min( $box.index( prevCheckbox ), $box.index( e.target ) ),
-                                       Math.max( $box.index( prevCheckbox ), $box.index( e.target ) ) + 1
-                               ).prop( 'checked', !!e.target.checked );
+                               // Check or uncheck this one and all in-between checkboxes,
+                               // except for disabled ones
+                               $box
+                                       .slice(
+                                               Math.min( $box.index( prevCheckbox ), $box.index( e.target ) ),
+                                               Math.max( $box.index( prevCheckbox ), $box.index( e.target ) ) + 1
+                                       )
+                                       .filter( function () {
+                                               return !this.disabled;
+                                       } )
+                                       .prop( 'checked', !!e.target.checked );
                        }
                        // Either way, update the prevCheckbox variable to the one clicked now
                        prevCheckbox = e.target;
index b0bd685..5a95dc5 100644 (file)
@@ -6,7 +6,7 @@
        /* Private Members */
 
        /**
-        * @var profileCache {Object} Keyed by userAgent string,
+        * @var {Object} profileCache Keyed by userAgent string,
         * value is the parsed $.client.profile object for that user agent.
         */
        var profileCache = {};
@@ -18,9 +18,9 @@
                /**
                 * Get an object containing information about the client.
                 *
-                * @param nav {Object} An object with atleast a 'userAgent' and 'platform' key.
+                * @param {Object} nav An object with atleast a 'userAgent' and 'platform' key.
                 * Defaults to the global Navigator object.
-                * @return {Object} The resulting client object will be in the following format:
+                * @returns {Object} The resulting client object will be in the following format:
                 *  {
                 *   'name': 'firefox',
                 *   'layout': 'gecko',
                                        // Generic version digit
                                        x = 'x',
                                        // Strings found in user agent strings that need to be conformed
-                                       wildUserAgents = ['Opera', 'Navigator', 'Minefield', 'KHTML', 'Chrome', 'PLAYSTATION 3'],
+                                       wildUserAgents = ['Opera', 'Navigator', 'Minefield', 'KHTML', 'Chrome', 'PLAYSTATION 3', 'Iceweasel'],
                                        // Translations for conforming user agent strings
                                        userAgentTranslations = [
                                                // Tons of browsers lie about being something they are not
-                                               [/(Firefox|MSIE|KHTML,\slike\sGecko|Konqueror)/, ''],
+                                               [/(Firefox|MSIE|KHTML,?\slike\sGecko|Konqueror)/, ''],
                                                // Chrome lives in the shadow of Safari still
                                                ['Chrome Safari', 'Chrome'],
                                                // KHTML is the layout engine not the browser - LIES!
                                                ['KHTML', 'Konqueror'],
                                                // Firefox nightly builds
                                                ['Minefield', 'Firefox'],
-                                               // This helps keep differnt versions consistent
+                                               // This helps keep different versions consistent
                                                ['Navigator', 'Netscape'],
                                                // This prevents version extraction issues, otherwise translation would happen later
                                                ['PLAYSTATION 3', 'PS3']
                                        ],
-                                       // Strings which precede a version number in a user agent string - combined and used as match 1 in
-                                       // version detectection
+                                       // Strings which precede a version number in a user agent string - combined and used as
+                                       // match 1 in version detection
                                        versionPrefixes = [
                                                'camino', 'chrome', 'firefox', 'iceweasel', 'netscape', 'netscape6', 'opera', 'version', 'konqueror',
-                                               'lynx', 'msie', 'safari', 'ps3'
+                                               'lynx', 'msie', 'safari', 'ps3', 'android'
                                        ],
                                        // Used as matches 2, 3 and 4 in version extraction - 3 is used as actual version number
                                        versionSuffix = '(\\/|\\;?\\s|)([a-z0-9\\.\\+]*?)(\\;|dev|rel|\\)|\\s|$)',
                                        // Names of known browsers
                                        names = [
                                                'camino', 'chrome', 'firefox', 'iceweasel', 'netscape', 'konqueror', 'lynx', 'msie', 'opera',
-                                               'safari', 'ipod', 'iphone', 'blackberry', 'ps3', 'rekonq'
+                                               'safari', 'ipod', 'iphone', 'blackberry', 'ps3', 'rekonq', 'android'
                                        ],
                                        // Tanslations for conforming browser names
                                        nameTranslations = [],
                                        // Names of known layout engines
-                                       layouts = ['gecko', 'konqueror', 'msie', 'opera', 'webkit'],
+                                       layouts = ['gecko', 'konqueror', 'msie', 'trident', 'opera', 'webkit'],
                                        // Translations for conforming layout names
                                        layoutTranslations = [ ['konqueror', 'khtml'], ['msie', 'trident'], ['opera', 'presto'] ],
                                        // Names of supported layout engines for version number
-                                       layoutVersions = ['applewebkit', 'gecko'],
+                                       layoutVersions = ['applewebkit', 'gecko', 'trident'],
                                        // Names of known operating systems
-                                       platforms = ['win', 'mac', 'linux', 'sunos', 'solaris', 'iphone'],
+                                       platforms = ['win', 'wow64', 'mac', 'linux', 'sunos', 'solaris', 'iphone'],
                                        // Translations for conforming operating system names
-                                       platformTranslations = [ ['sunos', 'solaris'] ],
+                                       platformTranslations = [ ['sunos', 'solaris'], ['wow64', 'win'] ],
 
                                        /* Methods */
 
                                /* Edge Cases -- did I mention about how user agent string lie? */
 
                                // Decode Safari's crazy 400+ version numbers
-                               if ( name.match( /safari/ ) && version > 400 ) {
+                               if ( name === 'safari' && version > 400 ) {
                                        version = '2.0';
                                }
                                // Expose Opera 10's lies about being Opera 9.8
-                               if ( name === 'opera' && version >= 9.8) {
-                                       match = ua.match( /version\/([0-9\.]*)/i );
+                               if ( name === 'opera' && version >= 9.8 ) {
+                                       match = ua.match( /\bversion\/([0-9\.]*)/ );
                                        if ( match && match[1] ) {
                                                version = match[1];
                                        } else {
                                                version = '10';
                                        }
                                }
+                               // And Opera 15's lies about being Chrome
+                               if ( name === 'chrome' && ( match = ua.match( /\bopr\/([0-9\.]*)/ ) ) ) {
+                                       if ( match[1] ) {
+                                               name = 'opera';
+                                               version = match[1];
+                                       }
+                               }
+                               // And IE 11's lies about being not being IE
+                               if ( layout === 'trident' && layoutversion >= 7 && ( match = ua.match( /\brv[ :\/]([0-9\.]*)/ ) ) ) {
+                                       if ( match[1] ) {
+                                               name = 'msie';
+                                               version = match[1];
+                                       }
+                               }
+
                                versionNumber = parseFloat( version, 10 ) || 0.0;
 
                                /* Caching */
                },
 
                /**
-                * Checks the current browser against a support map object to determine if the browser has been black-listed or
-                * not. If the browser was not configured specifically it is assumed to work. It is assumed that the body
-                * element is classified as either "ltr" or "rtl". If neither is set, "ltr" is assumed.
+                * Checks the current browser against a support map object.
                 *
                 * A browser map is in the following format:
                 * {
+                *   // Multiple rules with configurable operators
+                *   'msie': [['>=', 7], ['!=', 9]],
+                *    // Match no versions
+                *   'iphone': false,
+                *    // Match any version
+                *   'android': null
+                * }
+                *
+                * It can optionally be split into ltr/rtl sections:
+                * {
                 *   'ltr': {
-                *     // Multiple rules with configurable operators
-                *     'msie': [['>=', 7], ['!=', 9]],
-                *      // Blocked entirely
+                *     'android': null,
                 *     'iphone': false
                 *   },
                 *   'rtl': {
-                *     // Test against a string
-                *     'msie': [['!==', '8.1.2.3']],
-                *     // RTL rules do not fall through to LTR rules, you must explicity set each of them
+                *     'android': false,
+                *     // rules are not inherited from ltr
                 *     'iphone': false
                 *   }
                 * }
                 *
-                * @param map {Object} Browser support map
-                * @param profile {Object} (optional) a client-profile object.
+                * @param {Object} map Browser support map
+                * @param {Object} [profile] A client-profile object
+                * @param {boolean} [exactMatchOnly=false] Only return true if the browser is matched, otherwise
+                * returns true if the browser is not found.
                 *
-                * @return Boolean true if browser known or assumed to be supported, false if blacklisted
+                * @returns {boolean} The current browser is in the support map
                 */
-               test: function ( map, profile ) {
+               test: function ( map, profile, exactMatchOnly ) {
                        /*jshint evil: true */
 
                        var conditions, dir, i, op, val;
                        profile = $.isPlainObject( profile ) ? profile : $.client.profile();
-                       dir = $( 'body' ).is( '.rtl' ) ? 'rtl' : 'ltr';
+                       if ( map.ltr && map.rtl ) {
+                               dir = $( 'body' ).is( '.rtl' ) ? 'rtl' : 'ltr';
+                               map = map[dir];
+                       }
                        // Check over each browser condition to determine if we are running in a compatible client
-                       if ( typeof map[dir] !== 'object' || map[dir][profile.name] === undefined ) {
-                               // Unknown, so we assume it's working
-                               return true;
+                       if ( typeof map !== 'object' || map[profile.name] === undefined ) {
+                               // Not found, return true if exactMatchOnly not set, false otherwise
+                               return !exactMatchOnly;
                        }
-                       conditions = map[dir][profile.name];
+                       conditions = map[profile.name];
                        if ( conditions === false ) {
+                               // Match no versions
                                return false;
                        }
+                       if ( conditions === null ) {
+                               // Match all versions
+                               return true;
+                       }
                        for ( i = 0; i < conditions.length; i++ ) {
                                op = conditions[i][0];
                                val = conditions[i][1];
index e1a07b6..5ca0b12 100644 (file)
@@ -18,6 +18,8 @@
        var lpx = 'jquery.makeCollapsible> ';
 
        /**
+        * Handler for a click on a collapsible toggler.
+        *
         * @param {jQuery} $collapsible
         * @param {string} action The action this function will take ('expand' or 'collapse').
         * @param {jQuery|null} [optional] $defaultToggle
        }
 
        /**
-        * Handles clicking on the collapsible element toggle and other
+        * Handles clicking/keypressing on the collapsible element toggle and other
         * situations where a collapsible element is toggled (e.g. the initial
         * toggle for collapsed ones).
         *
                }
 
                if ( e ) {
-                       // Don't fire if a link was clicked, if requested  (for premade togglers by default)
-                       if ( options.linksPassthru && $.nodeName( e.target, 'a' ) ) {
+                       if ( e.type === 'click' && options.linksPassthru && $.nodeName( e.target, 'a' ) ) {
+                               // Don't fire if a link was clicked, if requested  (for premade togglers by default)
+                               return;
+                       } else if ( e.type === 'keypress' && e.which !== 13 ) {
+                               // Only handle keypresses on the "Enter" key
                                return;
                        } else {
                                e.preventDefault();
                toggleElement( $collapsible, wasCollapsed ? 'expand' : 'collapse', $toggle, options );
        }
 
-       /**
-        * Toggles collapsible and togglelink class and updates text label.
-        *
-        * @param {jQuery} $that
-        * @param {jQuery.Event} e
-        * @param {Object|undefined} options
-        */
-       function toggleLinkDefault( $that, e, options ) {
-               var $collapsible = $that.closest( '.mw-collapsible' );
-               options = $.extend( { toggleClasses: true }, options );
-               togglingHandler( $that, $collapsible, e, options );
-       }
-
-       /**
-        * Toggles collapsible and togglelink class.
-        *
-        * @param {jQuery} $that
-        * @param {jQuery.Event} e
-        * @param {Object|undefined} options
-        */
-       function toggleLinkPremade( $that, e, options ) {
-               var $collapsible = $that.eq( 0 ).closest( '.mw-collapsible' );
-               options = $.extend( { toggleClasses: true, linksPassthru: true }, options );
-               togglingHandler( $that, $collapsible, e, options );
-       }
-
-       /**
-        * Toggles customcollapsible.
-        *
-        * @param {jQuery} $that
-        * @param {jQuery.Event} e
-        * @param {Object|undefined} options
-        * @param {jQuery} $collapsible
-        */
-       function toggleLinkCustom( $that, e, options, $collapsible ) {
-               togglingHandler( $that, $collapsible, e, options );
-       }
-
        /**
         * Make any element collapsible.
         *
         *   div.mw-collapsible-content. May only be used with custom togglers.
         */
        $.fn.makeCollapsible = function ( options ) {
-               return this.each(function () {
-                       var $collapsible, collapsetext, expandtext, $toggle, $toggleLink, $firstItem, collapsibleId,
-                               $customTogglers, firstval;
+               if ( options === undefined ) {
+                       options = {};
+               }
 
-                       if ( options === undefined ) {
-                               options = {};
-                       }
+               return this.each( function () {
+                       var $collapsible, collapseText, expandText, $toggle, actionHandler, buildDefaultToggleLink,
+                               premadeToggleHandler, $toggleLink, $firstItem, collapsibleId, $customTogglers, firstval;
 
                        // Ensure class "mw-collapsible" is present in case .makeCollapsible()
                        // is called on element(s) that don't have it yet.
-                       $collapsible = $(this).addClass( 'mw-collapsible' );
+                       $collapsible = $( this ).addClass( 'mw-collapsible' );
 
                        // Return if it has been enabled already.
                        if ( $collapsible.data( 'mw-made-collapsible' ) ) {
                        }
 
                        // Use custom text or default?
-                       collapsetext = options.collapseText || $collapsible.attr( 'data-collapsetext' ) || mw.msg( 'collapsible-collapse' );
-                       expandtext = options.expandText || $collapsible.attr( 'data-expandtext' ) || mw.msg( 'collapsible-expand' );
-
-                       // Create toggle link with a space around the brackets (&nbsp;[text]&nbsp;)
-                       $toggleLink =
-                               $( '<a href="#"></a>' )
-                                       .text( collapsetext )
+                       collapseText = options.collapseText || $collapsible.attr( 'data-collapsetext' ) || mw.msg( 'collapsible-collapse' );
+                       expandText = options.expandText || $collapsible.attr( 'data-expandtext' ) || mw.msg( 'collapsible-expand' );
+
+                       // Default click/keypress handler and toggle link to use when none is present
+                       actionHandler = function ( e, opts ) {
+                               var defaultOpts = {
+                                       toggleClasses: true,
+                                       toggleText: { collapseText: collapseText, expandText: expandText }
+                               };
+                               opts = $.extend( defaultOpts, options, opts );
+                               togglingHandler( $( this ), $collapsible, e, opts );
+                       };
+                       // Default toggle link. Only build it when needed to avoid jQuery memory leaks (event data).
+                       buildDefaultToggleLink = function () {
+                               return $( '<a href="#"></a>' )
+                                       .text( collapseText )
                                        .wrap( '<span class="mw-collapsible-toggle"></span>' )
                                                .parent()
                                                .prepend( '&nbsp;[' )
                                                .append( ']&nbsp;' )
-                                               .on( 'click.mw-collapsible', function ( e, opts ) {
-                                                       opts = $.extend( { toggleText: { collapseText: collapsetext, expandText: expandtext } }, options, opts );
-                                                       toggleLinkDefault( $(this), e, opts );
-                                               } );
+                                               .on( 'click.mw-collapsible keypress.mw-collapsible', actionHandler );
+                       };
+
+                       // Default handler for clicking on premade toggles
+                       premadeToggleHandler = function ( e, opts ) {
+                               var defaultOpts = { toggleClasses: true, linksPassthru: true };
+                               opts = $.extend( defaultOpts, options, opts );
+                               togglingHandler( $( this ), $collapsible, e, opts );
+                       };
 
                        // Check if this element has a custom position for the toggle link
                        // (ie. outside the container or deeper inside the tree)
                                }
                        }
 
-                       // Bind the custom togglers
+                       // Bind the togglers
                        if ( $customTogglers && $customTogglers.length ) {
-                               $customTogglers.on( 'click.mw-collapsible', function ( e, opts ) {
-                                       opts = $.extend( {}, options, opts );
-                                       toggleLinkCustom( $(this), e, opts, $collapsible );
-                               } );
-
-                               // Initial state
-                               if ( options.collapsed || $collapsible.hasClass( 'mw-collapsed' ) ) {
-                                       // Remove here so that the toggler goes in the right direction,
-                                       // It re-adds the class.
-                                       $collapsible.removeClass( 'mw-collapsed' );
-                                       toggleLinkCustom( $customTogglers, null, $.extend( { instantHide: true }, options ), $collapsible );
-                               }
+                               actionHandler = function ( e, opts ) {
+                                       var defaultOpts = {};
+                                       opts = $.extend( defaultOpts, options, opts );
+                                       togglingHandler( $( this ), $collapsible, e, opts );
+                               };
+
+                               $toggleLink = $customTogglers;
+                               $toggleLink.on( 'click.mw-collapsible keypress.mw-collapsible', actionHandler );
 
-                       // If this is not a custom case, do the default:
-                       // Wrap the contents and add the toggle link
                        } else {
-                               // Elements are treated differently
+                               // If this is not a custom case, do the default: wrap the
+                               // contents and add the toggle link. Different elements are
+                               // treated differently.
                                if ( $collapsible.is( 'table' ) ) {
                                        // The toggle-link will be in one the the cells (td or th) of the first row
                                        $firstItem = $collapsible.find( 'tr:first th, tr:first td' );
 
                                        // If theres no toggle link, add it to the last cell
                                        if ( !$toggle.length ) {
-                                               $firstItem.eq(-1).prepend( $toggleLink );
+                                               $toggleLink = buildDefaultToggleLink().prependTo( $firstItem.eq( -1 ) );
                                        } else {
-                                               $toggleLink = $toggle.off( 'click.mw-collapsible' ).on( 'click.mw-collapsible', function ( e, opts ) {
-                                                       opts = $.extend( {}, options, opts );
-                                                       toggleLinkPremade( $toggle, e, opts );
-                                               } );
+                                               actionHandler = premadeToggleHandler;
+                                               $toggleLink = $toggle.on( 'click.mw-collapsible keypress.mw-collapsible', actionHandler );
                                        }
 
                                } else if ( $collapsible.is( 'ul' ) || $collapsible.is( 'ol' ) ) {
                                        if ( !$toggle.length ) {
                                                // Make sure the numeral order doesn't get messed up, force the first (soon to be second) item
                                                // to be "1". Except if the value-attribute is already used.
-                                               // If no value was set WebKit returns "", Mozilla returns '-1', others return null or undefined.
+                                               // If no value was set WebKit returns "", Mozilla returns '-1', others return 0, null or undefined.
                                                firstval = $firstItem.attr( 'value' );
                                                if ( firstval === undefined || !firstval || firstval === '-1' || firstval === -1 ) {
                                                        $firstItem.attr( 'value', '1' );
                                                }
-                                               $collapsible.prepend( $toggleLink.wrap( '<li class="mw-collapsible-toggle-li"></li>' ).parent() );
+                                               $toggleLink = buildDefaultToggleLink();
+                                               $toggleLink.wrap( '<li class="mw-collapsible-toggle-li"></li>' ).parent().prependTo( $collapsible );
                                        } else {
-                                               $toggleLink = $toggle.off( 'click.mw-collapsible' ).on( 'click.mw-collapsible', function ( e, opts ) {
-                                                       opts = $.extend( {}, options, opts );
-                                                       toggleLinkPremade( $toggle, e, opts );
-                                               } );
+                                               actionHandler = premadeToggleHandler;
+                                               $toggleLink = $toggle.on( 'click.mw-collapsible keypress.mw-collapsible', actionHandler );
                                        }
 
                                } else { // <div>, <p> etc.
 
                                        // If theres no toggle link, add it
                                        if ( !$toggle.length ) {
-                                               $collapsible.prepend( $toggleLink );
+                                               $toggleLink = buildDefaultToggleLink().prependTo( $collapsible );
                                        } else {
-                                               $toggleLink = $toggle.off( 'click.mw-collapsible' ).on( 'click.mw-collapsible', function ( e, opts ) {
-                                                       opts = $.extend( {}, options, opts );
-                                                       toggleLinkPremade( $toggle, e, opts );
-                                               } );
+                                               actionHandler = premadeToggleHandler;
+                                               $toggleLink = $toggle.on( 'click.mw-collapsible keypress.mw-collapsible', actionHandler );
                                        }
                                }
                        }
 
-                       // Initial state (only for those that are not custom,
-                       // because the initial state of those has been taken care of already).
-                       if (
-                               ( options.collapsed || $collapsible.hasClass( 'mw-collapsed' ) ) &&
-                               ( !$customTogglers || !$customTogglers.length )
-                       ) {
+                       // Attributes for accessibility. This isn't necessary when the toggler is already
+                       // an <a> or a <button> etc., but it doesn't hurt either, and it's consistent.
+                       $toggleLink.prop( 'tabIndex', 0 ).attr( 'role', 'button' );
+
+                       // Initial state
+                       if ( options.collapsed || $collapsible.hasClass( 'mw-collapsed' ) ) {
+                               // Remove here so that the toggler goes in the right direction (the class is re-added)
                                $collapsible.removeClass( 'mw-collapsed' );
-                               // The collapsible element could have multiple togglers
-                               // To toggle the initial state only click one of them (ie. the first one, eq(0) )
-                               // Else it would go like: hide,show,hide,show for each toggle link.
-                               // This is just like it would be in reality (only one toggle is clicked at a time).
-                               $toggleLink.eq( 0 ).trigger( 'click', [ { instantHide: true } ] );
+                               // One toggler can hook to multiple elements, and one element can have
+                               // multiple togglers. This is the sanest way to handle that.
+                               actionHandler.call( $toggleLink.get( 0 ), null, { instantHide: true } );
                        }
                } );
        };
index a552237..863d8ec 100644 (file)
 
        function buildHeaders( table, msg ) {
                var maxSeen = 0,
+                       colspanOffset = 0,
                        longest,
-                       realCellIndex = 0,
-                       $tableHeaders = $( 'thead:eq(0) > tr', table );
-               if ( $tableHeaders.length > 1 ) {
-                       $tableHeaders.each( function () {
-                               if ( this.cells.length > maxSeen ) {
-                                       maxSeen = this.cells.length;
-                                       longest = this;
+                       columns,
+                       i,
+                       $tableHeaders = $( [] ),
+                       $tableRows = $( 'thead:eq(0) > tr', table );
+               if ( $tableRows.length <= 1 ) {
+                       $tableHeaders = $tableRows.children( 'th' );
+               } else {
+                       // We need to find the cells of the row containing the most columns
+                       var rowspan,
+                               headersIndex = [];
+                       $tableRows.each( function ( rowIndex ) {
+                               $.each( this.cells, function( index2, cell ) {
+                                       rowspan = Number( cell.rowSpan );
+                                       for ( i = 0; i < rowspan; i++ ) {
+                                               if ( headersIndex[rowIndex+i] === undefined ) {
+                                                       headersIndex[rowIndex+i] = $( [] );
+                                               }
+                                               headersIndex[rowIndex+i].push( cell );
+                                       }
+                               } );
+                       } );
+                       $.each( headersIndex, function ( index, cellArray ) {
+                               if ( cellArray.length >= maxSeen ) {
+                                       maxSeen = cellArray.length;
+                                       longest = index;
                                }
-                       });
-                       $tableHeaders = $( longest );
+                       } );
+                       $tableHeaders = headersIndex[longest];
                }
-               $tableHeaders = $tableHeaders.children( 'th' ).each( function ( index ) {
-                       this.column = realCellIndex;
 
-                       var colspan = this.colspan;
-                       colspan = colspan ? parseInt( colspan, 10 ) : 1;
-                       realCellIndex += colspan;
+               // as each header can span over multiple columns (using colspan=N),
+               // we have to bidirectionally map headers to their columns and columns to their headers
+               table.headerToColumns = [];
+               table.columnToHeader = [];
+
+               $tableHeaders.each( function ( headerIndex ) {
+                       columns = [];
+                       for ( i = 0; i < this.colSpan; i++ ) {
+                               table.columnToHeader[ colspanOffset + i ] = headerIndex;
+                               columns.push( colspanOffset + i );
+                       }
+
+                       table.headerToColumns[ headerIndex ] = columns;
+                       colspanOffset += this.colSpan;
 
+                       this.headerIndex = headerIndex;
                        this.order = 0;
                        this.count = 0;
 
                        }
 
                        if ( !this.sortDisabled ) {
-                               $( this ).addClass( table.config.cssHeader ).attr( 'title', msg[1] );
+                               $( this )
+                                       .addClass( table.config.cssHeader )
+                                       .attr( 'title', msg[1] )
+                                       .prop( 'tabIndex', 0 ).attr( 'role', 'button' );
                        }
 
                        // add cell to headerList
-                       table.config.headerList[index] = this;
+                       table.config.headerList[headerIndex] = this;
                } );
 
                return $tableHeaders;
 
        }
 
+       /**
+        * Sets the sort count of the columns that are not affected by the sorting to have them sorted
+        * in default (ascending) order when their header cell is clicked the next time.
+        *
+        * @param {jQuery} $headers
+        * @param {Number[][]} sortList
+        * @param {Number[][]} headerToColumns
+        */
+       function setHeadersOrder( $headers, sortList, headerToColumns ) {
+               // Loop through all headers to retrieve the indices of the columns the header spans across:
+               $.each( headerToColumns, function( headerIndex, columns ) {
+
+                       $.each( columns, function( i, columnIndex ) {
+                               var header = $headers[headerIndex];
+
+                               if ( !isValueInArray( columnIndex, sortList ) ) {
+                                       // Column shall not be sorted: Reset header count and order.
+                                       header.order = 0;
+                                       header.count = 0;
+                               } else {
+                                       // Column shall be sorted: Apply designated count and order.
+                                       $.each( sortList, function( j, sortColumn ) {
+                                               if ( sortColumn[0] === i ) {
+                                                       header.order = sortColumn[1];
+                                                       header.count = sortColumn[1] + 1;
+                                                       return false;
+                                               }
+                                       } );
+                               }
+                       } );
+
+               } );
+       }
+
        function isValueInArray( v, a ) {
                var l = a.length;
                for ( var i = 0; i < l; i++ ) {
                $.each( sortObjects, function( i, sortObject ) {
                        $.each ( sortObject, function( columnIndex, order ) {
                                var orderIndex = ( order === 'desc' ) ? 1 : 0;
-                               sortList.push( [columnIndex, orderIndex] );
+                               sortList.push( [parseInt( columnIndex, 10 ), orderIndex] );
                        } );
                } );
                return sortList;
                                return $tables.each( function ( i, table ) {
                                        // Declare and cache.
                                        var $headers, cache, config,
-                                               headerToColumns, columnToHeader, colspanOffset,
                                                $table = $( table ),
                                                firstTime = true;
 
                                                table.config.parsers = buildParserCache( table, $headers );
                                        }
 
-                                       // as each header can span over multiple columns (using colspan=N),
-                                       // we have to bidirectionally map headers to their columns and columns to their headers
-                                       headerToColumns = [];
-                                       columnToHeader = [];
-                                       colspanOffset = 0;
-                                       $headers.each( function ( headerIndex ) {
-                                               var columns = [];
-                                               for ( var i = 0; i < this.colSpan; i++ ) {
-                                                       columnToHeader[ colspanOffset + i ] = headerIndex;
-                                                       columns.push( colspanOffset + i );
-                                               }
-
-                                               headerToColumns[ headerIndex ] = columns;
-                                               colspanOffset += this.colSpan;
-                                       } );
-
                                        // Apply event handling to headers
                                        // this is too big, perhaps break it out?
-                                       $headers.filter( ':not(.unsortable)' ).click( function ( e ) {
-                                               if ( e.target.nodeName.toLowerCase() === 'a' ) {
-                                                       // The user clicked on a link inside a table header
-                                                       // Do nothing and let the default link click action continue
+                                       $headers.filter( ':not(.unsortable)' ).on( 'keypress click', function ( e ) {
+                                               if ( e.type === 'click' && e.target.nodeName.toLowerCase() === 'a' ) {
+                                                       // The user clicked on a link inside a table header.
+                                                       // Do nothing and let the default link click action continue.
+                                                       return true;
+                                               }
+
+                                               if ( e.type === 'keypress' && e.which !== 13 ) {
+                                                       // Only handle keypresses on the "Enter" key.
                                                        return true;
                                                }
 
 
                                                        var cell = this;
                                                        // Get current column index
-                                                       var columns = headerToColumns[this.column];
+                                                       var columns = table.headerToColumns[ this.headerIndex ];
                                                        var newSortList = $.map( columns, function (c) {
                                                                // jQuery "helpfully" flattens the arrays...
                                                                return [[c, cell.order]];
                                                                }
                                                        }
 
+                                                       // Reset order/counts of cells not affected by sorting
+                                                       setHeadersOrder( $headers, config.sortList, table.headerToColumns );
+
                                                        // Set CSS for headers
-                                                       setHeadersCss( $table[0], $headers, config.sortList, sortCSS, sortMsg, columnToHeader );
+                                                       setHeadersCss( $table[0], $headers, config.sortList, sortCSS, sortMsg, table.columnToHeader );
                                                        appendToTable(
                                                                $table[0], multisort( $table[0], config.sortList, cache )
                                                        );
                                                        sortList = convertSortList( sortList );
                                                }
 
+                                               // Set each column's sort count to be able to determine the correct sort
+                                               // order when clicking on a header cell the next time
+                                               setHeadersOrder( $headers, sortList, table.headerToColumns );
+
                                                // re-build the cache for the tbody cells
                                                cache = buildCache( table );
 
                                                // set css for headers
-                                               setHeadersCss( table, $headers, sortList, sortCSS, sortMsg, columnToHeader );
+                                               setHeadersCss( table, $headers, sortList, sortCSS, sortMsg, table.columnToHeader );
 
                                                // sort the table and append it to the dom
                                                appendToTable( table, multisort( table, sortList, cache ) );
diff --git a/resources/mediawiki.action/images/green-checkmark.png b/resources/mediawiki.action/images/green-checkmark.png
new file mode 100644 (file)
index 0000000..8ec604e
Binary files /dev/null and b/resources/mediawiki.action/images/green-checkmark.png differ
index cfe9762..89bb64d 100644 (file)
@@ -2,7 +2,7 @@
  * Javascript for module editWarning
  */
 ( function ( mw, $ ) {
-       $( document ).ready( function () {
+       $( function () {
                // Check if EditWarning is enabled and if we need it
                if ( $( '#wpTextbox1' ).length === 0 ) {
                        return true;
index fc1b18d..38d4bb8 100644 (file)
@@ -1,17 +1,20 @@
+/**
+ * Interface for the classic edit toolbar.
+ *
+ * @class mw.toolbar
+ * @singleton
+ */
 ( function ( mw, $ ) {
-       var isReady, toolbar, currentFocused, queue, $toolbar, slice;
-
-       isReady = false;
-       queue = [];
-       $toolbar = false;
-       slice = Array.prototype.slice;
+       var toolbar, isReady, $toolbar, queue, slice, $currentFocused;
 
        /**
-        * Internal helper that does the actual insertion
-        * of the button into the toolbar.
-        * See mw.toolbar.addButton for parameter documentation.
+        * Internal helper that does the actual insertion of the button into the toolbar.
+        *
+        * See #addButton for parameter documentation.
+        *
+        * @private
         */
-       function insertButton( b /* imageFile */, speedTip, tagOpen, tagClose, sampleText, imageId, selectText ) {
+       function insertButton( b, speedTip, tagOpen, tagClose, sampleText, imageId ) {
                // Backwards compatibility
                if ( typeof b !== 'object' ) {
                        b = {
                                tagOpen: tagOpen,
                                tagClose: tagClose,
                                sampleText: sampleText,
-                               imageId: imageId,
-                               selectText: selectText
+                               imageId: imageId
                        };
                }
-               var $image = $( '<img>', {
+               var $image = $( '<img>' ).attr( {
                        width : 23,
                        height: 22,
                        src   : b.imageFile,
                        id    : b.imageId || undefined,
                        'class': 'mw-toolbar-editbutton'
                } ).click( function () {
-                       toolbar.insertTags( b.tagOpen, b.tagClose, b.sampleText, b.selectText );
+                       toolbar.insertTags( b.tagOpen, b.tagClose, b.sampleText );
                        return false;
                } );
 
                $toolbar.append( $image );
-               return true;
        }
 
+       isReady = false;
+       $toolbar = false;
+       /**
+        * @private
+        * @property {Array}
+        * Contains button objects (and for backwards compatibilty, it can
+        * also contains an arguments array for insertButton).
+        */
+       queue = [];
+       slice = queue.slice;
+
        toolbar = {
+
                /**
                 * Add buttons to the toolbar.
+                *
                 * Takes care of race conditions and time-based dependencies
                 * by placing buttons in a queue if this method is called before
                 * the toolbar is created.
-                * @param {Object} button: Object with the following properties:
-                * - imageFile
-                * - speedTip
-                * - tagOpen
-                * - tagClose
-                * - sampleText
-                * - imageId
-                * - selectText
-                * For compatiblity, passing the above as separate arguments
+                *
+                * For compatiblity, passing the properties listed below as separate arguments
                 * (in the listed order) is also supported.
+                *
+                * @param {Object} button Object with the following properties:
+                * @param {string} button.imageFile
+                * @param {string} button.speedTip
+                * @param {string} button.tagOpen
+                * @param {string} button.tagClose
+                * @param {string} button.sampleText
+                * @param {string} [button.imageId]
                 */
                addButton: function () {
                        if ( isReady ) {
                                queue.push( slice.call( arguments ) );
                        }
                },
+               /**
+                * Example usage:
+                *     addButtons( [ { .. }, { .. }, { .. } ] );
+                *     addButtons( { .. }, { .. } );
+                *
+                * @param {Object|Array} [buttons...] An array of button objects or the first
+                *  button object in a list of variadic arguments.
+                */
+               addButtons: function ( buttons ) {
+                       if ( !$.isArray( buttons ) ) {
+                               buttons = slice.call( arguments );
+                       }
+                       if ( isReady ) {
+                               $.each( buttons, function () {
+                                       insertButton( this );
+                               } );
+                       } else {
+                               // Push each button into the queue
+                               queue.push.apply( queue, buttons );
+                       }
+               },
 
                /**
-                * Apply tagOpen/tagClose to selection in textarea,
-                * use sampleText instead of selection if there is none.
+                * Apply tagOpen/tagClose to selection in currently focused textarea.
+                *
+                * Uses `sampleText` if selection is empty.
+                *
+                * @param {string} tagOpen
+                * @param {string} tagClose
+                * @param {string} sampleText
                 */
                insertTags: function ( tagOpen, tagClose, sampleText ) {
-                       if ( currentFocused && currentFocused.length ) {
-                               currentFocused.textSelection(
+                       if ( $currentFocused && $currentFocused.length ) {
+                               $currentFocused.textSelection(
                                        'encapsulateSelection', {
-                                               'pre': tagOpen,
-                                               'peri': sampleText,
-                                               'post': tagClose
+                                               pre: tagOpen,
+                                               peri: sampleText,
+                                               post: tagClose
                                        }
                                );
                        }
        // Explose API publicly
        mw.toolbar = toolbar;
 
-       $( document ).ready( function () {
-               var buttons, i, b, $iframe;
+       $( function () {
+               var buttons, i, b, $iframe, editBox, scrollTop, $editForm;
 
                // currentFocus is used to determine where to insert tags
-               currentFocused = $( '#wpTextbox1' );
+               $currentFocused = $( '#wpTextbox1' );
 
                // Populate the selector cache for $toolbar
                $toolbar = $( '#toolbar' );
                buttons = [].concat( queue, window.mwCustomEditButtons );
                // Clear queue
                queue.length = 0;
+
                for ( i = 0; i < buttons.length; i++ ) {
                        b = buttons[i];
                        if ( $.isArray( b ) ) {
                                // Forwarded arguments array from mw.toolbar.addButton
                                insertButton.apply( toolbar, b );
                        } else {
-                               // Raw object from legacy mwCustomEditButtons
+                               // Raw object from mw.toolbar.addButtons or mwCustomEditButtons
                                insertButton( b );
                        }
                }
 
                // This causes further calls to addButton to go to insertion directly
-               // instead of to the toolbar.buttons queue.
+               // instead of to the queue.
                // It is important that this is after the one and only loop through
-               // the the toolbar.buttons queue
+               // the the queue
                isReady = true;
 
                // Make sure edit summary does not exceed byte limit
                $( '#wpSummary' ).byteLimit( 255 );
 
-               /**
-                * Restore the edit box scroll state following a preview operation,
-                * and set up a form submission handler to remember this state
-                */
-               ( function scrollEditBox() {
-                       var editBox, scrollTop, $editForm;
-
-                       editBox = document.getElementById( 'wpTextbox1' );
-                       scrollTop = document.getElementById( 'wpScrolltop' );
-                       $editForm = $( '#editform' );
-                       if ( $editForm.length && editBox && scrollTop ) {
-                               if ( scrollTop.value ) {
-                                       editBox.scrollTop = scrollTop.value;
-                               }
-                               $editForm.submit( function () {
-                                       scrollTop.value = editBox.scrollTop;
-                               });
+               // Restore the edit box scroll state following a preview operation,
+               // and set up a form submission handler to remember this state.
+               editBox = document.getElementById( 'wpTextbox1' );
+               scrollTop = document.getElementById( 'wpScrolltop' );
+               $editForm = $( '#editform' );
+               if ( $editForm.length && editBox && scrollTop ) {
+                       if ( scrollTop.value ) {
+                               editBox.scrollTop = scrollTop.value;
                        }
-               }() );
+                       $editForm.submit( function () {
+                               scrollTop.value = editBox.scrollTop;
+                       });
+               }
 
                // Apply to dynamically created textboxes as well as normal ones
                $( document ).on( 'focus', 'textarea, input:text', function () {
-                       currentFocused = $( this );
+                       $currentFocused = $( this );
                } );
 
-               // HACK: make currentFocused work with the usability iframe
+               // HACK: make $currentFocused work with the usability iframe
                // With proper focus detection support (HTML 5!) this'll be much cleaner
                // TODO: Get rid of this WikiEditor code from MediaWiki core!
                $iframe = $( '.wikiEditor-ui-text iframe' );
                                // for IE
                                .add( $iframe.get( 0 ).contentWindow.document.body )
                                .focus( function () {
-                                       currentFocused = $iframe;
+                                       $currentFocused = $iframe;
                                } );
                }
        });
index 602aadb..0f95b62 100644 (file)
                } );
        }
 
-       $( document ).ready( function () {
+       $( function () {
                // Do not enable on user .js/.css pages, as there's no sane way of "previewing"
                // the scripts or styles without reloading the page.
                if ( $( '#mw-userjsyoucanpreview' ).length || $( '#mw-usercssyoucanpreview' ).length ) {
index e9d320c..04f045a 100644 (file)
@@ -1,7 +1,7 @@
 /**
  * JavaScript for History action
  */
-jQuery( document ).ready( function ( $ ) {
+jQuery( function ( $ ) {
        var     $historyCompareForm = $( '#mw-history-compare' ),
                $historySubmitter,
                $lis = $( '#pagehistory > li' );
diff --git a/resources/mediawiki.action/mediawiki.action.view.postEdit.css b/resources/mediawiki.action/mediawiki.action.view.postEdit.css
new file mode 100644 (file)
index 0000000..6c7b2ca
--- /dev/null
@@ -0,0 +1,86 @@
+.postedit-container {
+       margin: 0 auto;
+       position: fixed;
+       top: 0;
+       height: 0;
+       left: 50%;
+       z-index: 1000;
+}
+
+.postedit-container:hover {
+       cursor: pointer;
+}
+
+.postedit {
+       position: relative;
+       top: 0.6em;
+       left: -50%;
+       padding: .6em 3.6em .6em 1.1em;
+       font-size: 0.8em;
+       line-height: 1.5625em;
+       color: #626465;
+       background-color: #f4f4f4;
+       border: 1px solid #dcd9d9;
+       -webkit-text-shadow: 0 0.0625em 0 rgba(255, 255, 255, 0.5);
+       -moz-text-shadow: 0 0.0625em 0 rgba(255, 255, 255, 0.5);
+       text-shadow: 0 0.0625em 0 rgba(255, 255, 255, 0.5);
+       -webkit-border-radius: 5px;
+       -moz-border-radius: 5px;
+       border-radius: 5px;
+       -webkit-box-shadow: 0 2px 5px 0 #ccc;
+       -moz-box-shadow: 0 2px 5px 0 #ccc;
+       box-shadow: 0 2px 5px 0 #ccc;
+       -webkit-transition: all 0.25s ease-in-out;
+       -moz-transition: all 0.25s ease-in-out;
+       -ms-transition: all 0.25s ease-in-out;
+       -o-transition: all 0.25s ease-in-out;
+       transition: all 0.25s ease-in-out;
+}
+
+.skin-vector .postedit {
+       font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+}
+
+.skin-monobook .postedit {
+       top: 3em !important;
+}
+
+.postedit-faded {
+       opacity: 0;
+}
+
+.postedit-icon {
+       padding-left: 41px; /* 25 + 8 + 8 */
+       /* like min-height, but old IE compatible and keeps text vertically aligned, too */
+       line-height: 25px;
+       background-repeat: no-repeat;
+       background-position: 8px 50%;
+}
+
+.postedit-icon-checkmark {
+       /* @embed */
+       background-image: url(images/green-checkmark.png);
+       background-position: left;
+}
+
+.postedit-close {
+       position: absolute;
+       padding: 0 .8em;
+       right: 0;
+       top: 0;
+       font-size: 1.25em;
+       font-weight: bold;
+       line-height: 2.3em;
+       color: black;
+       text-shadow: 0 0.0625em 0 white;
+       text-decoration: none;
+       opacity: 0.2;
+       filter: alpha(opacity=20);
+}
+
+.postedit-close:hover {
+       color: black;
+       text-decoration: none;
+       opacity: 0.4;
+       filter: alpha(opacity=40);
+}
index a11233f..8e67ea9 100644 (file)
@@ -1,15 +1,68 @@
 ( function ( mw, $ ) {
-       // Only a view can be a post-edit.
-       if ( mw.config.get( 'wgAction' ) !== 'view' ) {
-               return;
+       'use strict';
+
+       var config = mw.config.get( [ 'wgAction', 'wgCookiePrefix', 'wgCurRevisionId' ] ),
+               // This should match EditPage::POST_EDIT_COOKIE_KEY_PREFIX:
+               cookieKey = config.wgCookiePrefix + 'PostEditRevision' + config.wgCurRevisionId,
+               $div, id;
+
+       function showConfirmation( data ) {
+               data = data || {};
+               if ( data.message === undefined ) {
+                       data.message = $.parseHTML( mw.message( 'postedit-confirmation', data.user || mw.user ).escaped() );
+               }
+
+               $div = $(
+                       '<div class="postedit-container">' +
+                               '<div class="postedit">' +
+                                       '<div class="postedit-icon postedit-icon-checkmark postedit-content"></div>' +
+                                       '<a href="#" class="postedit-close">&times;</a>' +
+                               '</div>' +
+                       '</div>'
+               );
+
+               if ( typeof data.message === 'string' ) {
+                       $div.find( '.postedit-content' ).text( data.message );
+               } else if ( typeof data.message === 'object' ) {
+                       $div.find( '.postedit-content' ).append( data.message );
+               }
+
+               $div
+                       .click( fadeOutConfirmation )
+                       .prependTo( 'body' );
+
+               id = setTimeout( fadeOutConfirmation, 3000 );
        }
 
-       // Matches EditPage::POST_EDIT_COOKIE_KEY_PREFIX
-       var cookieKey = mw.config.get( 'wgCookiePrefix' ) + 'PostEditRevision' + mw.config.get( 'wgCurRevisionId' );
+       function fadeOutConfirmation() {
+               clearTimeout( id );
+               $div.find( '.postedit' ).addClass( 'postedit postedit-faded' );
+               setTimeout( removeConfirmation, 500 );
 
-       if ( $.cookie( cookieKey ) === '1' ) {
-               // We just saved this page
+               return false;
+       }
+
+       function removeConfirmation() {
+               $div.remove();
+               mw.hook( 'postEdit.afterRemoval' ).fire();
+       }
+
+       mw.hook( 'postEdit' ).add( showConfirmation );
+
+       if ( config.wgAction === 'view' && $.cookie( cookieKey ) === '1' ) {
                $.cookie( cookieKey, null, { path: '/' } );
                mw.config.set( 'wgPostEdit', true );
+
+               /**
+                * @event postEdit
+                * @member mw.hook
+                * @param {Object} [data]
+                * @param {string|jQuery|Array} [data.message] Message that listeners
+                *  should use when displaying notifications. String for plain text,
+                *  use array or jQuery object to pass actual nodes.
+                * @param {string|mw.user} [data.user=mw.user] User that made the edit.
+                */
+               mw.hook( 'postEdit' ).fire();
        }
+
 } ( mediaWiki, jQuery ) );
index 0e85fd9..93befe3 100644 (file)
@@ -5,10 +5,10 @@
  */
 jQuery( function ( $ ) {
        // Select all h1-h6 elements that contain editsection links
-       // Don't use the ":has:(.editsection a)" selector because it performs very bad.
+       // Don't use the ":has:(.mw-editsection a)" selector because it performs very bad.
        // http://jsperf.com/jq-1-7-2-vs-jq-1-8-1-performance-of-mw-has/2
        $( document ).on( 'contextmenu', 'h1, h2, h3, h4, h5, h6', function ( e ) {
-               var $edit = $( this ).find( '.mw-editsection a, .editsection a' );
+               var $edit = $( this ).find( '.mw-editsection a' );
                if ( !$edit.length ) {
                        return;
                }
index 2cd1b92..96947cc 100644 (file)
@@ -27,7 +27,7 @@
                                // an infinite loop. If this fresh token is bad, something else is very wrong.
                                useTokenToPost = function ( token ) {
                                        params.token = token;
-                                       api.post( params, ok, err );
+                                       api.post( params, { ok: ok, err: err } );
                                };
                                return api.getEditToken( useTokenToPost, err );
                        } else {
@@ -43,7 +43,7 @@
                                                err( code, result );
                                        }
                                };
-                               return api.post( params, { ok : ok, err : getTokenIfBad });
+                               return api.post( params, { ok: ok, err: getTokenIfBad } );
                        }
                },
 
@@ -85,7 +85,7 @@
                                        } else {
                                                d.reject( 'token-missing', data );
                                        }
-                               })
+                               } )
                                .fail( d.reject );
 
                        return d.promise( { abort: apiPromise.abort } );
diff --git a/resources/mediawiki.api/mediawiki.api.login.js b/resources/mediawiki.api/mediawiki.api.login.js
new file mode 100644 (file)
index 0000000..ccbae06
--- /dev/null
@@ -0,0 +1,54 @@
+/**
+ * Make the two-step login easier.
+ * @author Niklas Laxström
+ * @class mw.Api.plugin.login
+ * @since 1.22
+ */
+( function ( mw, $ ) {
+       'use strict';
+
+       $.extend( mw.Api.prototype, {
+               /**
+                * @param {string} username
+                * @param {string} password
+                * @return {jQuery.Promise} See mw.Api#post
+                */
+               login: function ( username, password ) {
+                       var params, request,
+                               deferred = $.Deferred(),
+                               api = this;
+
+                       params = {
+                               action: 'login',
+                               lgname: username,
+                               lgpassword: password
+                       };
+
+                       request = api.post( params );
+                       request.fail( deferred.reject );
+                       request.done( function ( data ) {
+                               params.lgtoken = data.login.token;
+                               api.post( params )
+                                       .fail( deferred.reject )
+                                       .done( function ( data ) {
+                                               var code;
+                                               if ( data.login && data.login.result === 'Success' ) {
+                                                       deferred.resolve( data );
+                                               } else {
+                                                       // Set proper error code whenever possible
+                                                       code = data.error && data.error.code || 'unknown';
+                                                       deferred.reject( code, data );
+                                               }
+                                       } );
+                       } );
+
+                       return deferred.promise( { abort: request.abort } );
+               }
+       } );
+
+       /**
+        * @class mw.Api
+        * @mixins mw.Api.plugin.login
+        */
+
+}( mediaWiki, jQuery ) );
index 4044655..08bb171 100644 (file)
@@ -23,6 +23,7 @@
 
                        apiPromise = this.get( {
                                        action: 'parse',
+                                       contentmodel: 'wikitext',
                                        text: wikitext
                                } )
                                .done( function ( data ) {
index 7f729bd..8cf358b 100644 (file)
@@ -45,11 +45,35 @@ var language = {
         */
        convertPlural: function ( count, forms ) {
                var pluralRules,
+                       formCount,
+                       explicitPluralPattern = new RegExp( '\\d+=', 'i' ),
+                       form,
+                       index,
+                       equalsPosition,
                        pluralFormIndex = 0;
 
                if ( !forms || forms.length === 0 ) {
                        return '';
                }
+
+               // Handle for explicit n= forms
+               for ( index = 0; index < forms.length; index++ ) {
+                       form = forms[index];
+                       if ( explicitPluralPattern.test( form ) ) {
+                               equalsPosition = form.indexOf( '=' );
+                               formCount = parseInt( form.substring( 0, equalsPosition ), 10 );
+                               if ( formCount === count ) {
+                                       return form.substr( equalsPosition + 1 );
+                               }
+                               forms[index] = undefined;
+                       }
+               }
+
+               // Remove explicit plural forms from the forms.
+               forms = $.map( forms, function ( form ) {
+                       return form;
+               } );
+
                pluralRules = mw.language.getData( mw.config.get( 'wgUserLanguage' ), 'pluralRules' );
                if ( !pluralRules ) {
                        // default fallback.
index d7a07d7..75908ee 100644 (file)
@@ -11,7 +11,7 @@
                // that didn't have patrolToken yet.
                return;
        }
-       $( document ).ready( function () {
+       $( function () {
                var $patrolLinks = $( '.patrollink a' );
                $patrolLinks.on( 'click', function ( e ) {
                        var $spinner, href, rcid, apiRequest;
index 684f582..ee416d6 100644 (file)
@@ -1,28 +1,40 @@
-( function ( mw, $ ) {
-       $( function () {
+( function ( mw , $ ) {
+       var supportsPlaceholder = 'placeholder' in document.createElement( 'input' );
+
+       mw.hook( 'wikipage.content' ).add( function ( $content ) {
                var $sortableTables;
 
-               /* Emulate placeholder if not supported by browser */
-               if ( !( 'placeholder' in document.createElement( 'input' ) ) ) {
-                       $( 'input[placeholder]' ).placeholder();
+               // Run jquery.placeholder polyfill if placeholder is not supported
+               if ( !supportsPlaceholder ) {
+                       $content.find( 'input[placeholder]' ).placeholder();
                }
 
-               /* Enable makeCollapsible */
-               $( '.mw-collapsible' ).makeCollapsible();
+               // Run jquery.makeCollapsible
+               $content.find( '.mw-collapsible' ).makeCollapsible();
 
-               /* Lazy load jquery.tablesorter */
-               $sortableTables = $( 'table.sortable' );
+               // Lazy load jquery.tablesorter
+               $sortableTables = $content.find( 'table.sortable' );
                if ( $sortableTables.length ) {
                        mw.loader.using( 'jquery.tablesorter', function () {
                                $sortableTables.tablesorter();
-                       });
+                       } );
                }
 
-               /* Enable CheckboxShiftClick */
-               $( 'input[type=checkbox]:not(.noshiftselect)' ).checkboxShiftClick();
+               // Run jquery.checkboxShiftClick
+               $content.find( 'input[type="checkbox"]:not(.noshiftselect)' ).checkboxShiftClick();
+       } );
+
+       // Things outside the wikipage content
+       $( function () {
+
+               if ( !supportsPlaceholder ) {
+                       // Exclude content to avoid hitting it twice for the (first) wikipage content
+                       $( 'input[placeholder]' ).not( '#mw-content-text input' ).placeholder();
+               }
 
-               /* Add accesskey hints to the tooltips */
+               // Add accesskey hints to the tooltips
                mw.util.updateTooltipAccessKeys();
 
        } );
+
 }( mediaWiki, jQuery ) );
index 6a11d3e..7457e8f 100644 (file)
@@ -5,14 +5,23 @@
        // Client profile classes for <html>
        // Allows for easy hiding/showing of JS or no-JS-specific UI elements
        $( 'html' )
-               .addClass('client-js' )
+               .addClass( 'client-js' )
                .removeClass( 'client-nojs' );
 
-       // Initialize utilities as soon as the document is ready (mw.util.$content,
-       // messageBoxNew, profile, tooltip access keys, Table of contents toggle, ..).
-       // Enqueued into domready from here instead of mediawiki.page.ready to ensure that it gets enqueued
-       // before other modules hook into document ready, so that mw.util.$content (defined by mw.util.init),
-       // is defined for them.
-       $( mw.util.init );
+       $( function () {
+               // Initialize utilities as soon as the document is ready (mw.util.$content,
+               // messageBoxNew, profile, tooltip access keys, Table of contents toggle, ..).
+               // In the domready here instead of in mediawiki.page.ready to ensure that it gets enqueued
+               // before other modules hook into domready, so that mw.util.$content (defined by
+               // mw.util.init), is defined for them.
+               mw.util.init();
+
+               /**
+                * @event wikpage_content
+                * @member mw.hook
+                * @param {jQuery} $content
+                */
+               mw.hook( 'wikipage.content' ).fire( $( '#mw-content-text' ) );
+       } );
 
 }( mediaWiki, jQuery ) );
index 5ba77a1..545cd07 100644 (file)
                updateWatchLink: updateWatchLink
        };
 
-       $( document ).ready( function () {
+       $( function () {
                var $links = $( '.mw-watchlink a, a.mw-watchlink, ' +
                        '#ca-watch a, #ca-unwatch a, #mw-unwatch-link1, ' +
                        '#mw-unwatch-link2, #mw-watch-link2, #mw-watch-link1' );
diff --git a/resources/mediawiki.special/images/arrow-collapsed-ltr.png b/resources/mediawiki.special/images/arrow-collapsed-ltr.png
deleted file mode 100644 (file)
index ea9c67a..0000000
Binary files a/resources/mediawiki.special/images/arrow-collapsed-ltr.png and /dev/null differ
diff --git a/resources/mediawiki.special/images/arrow-collapsed-rtl.png b/resources/mediawiki.special/images/arrow-collapsed-rtl.png
deleted file mode 100644 (file)
index 081d3a8..0000000
Binary files a/resources/mediawiki.special/images/arrow-collapsed-rtl.png and /dev/null differ
diff --git a/resources/mediawiki.special/images/arrow-expanded.png b/resources/mediawiki.special/images/arrow-expanded.png
deleted file mode 100644 (file)
index fa4bf26..0000000
Binary files a/resources/mediawiki.special/images/arrow-expanded.png and /dev/null differ
index 2c251d7..f43505e 100644 (file)
Binary files a/resources/mediawiki.special/images/glyph-people-large.png and b/resources/mediawiki.special/images/glyph-people-large.png differ
index dd0648b..e9b8874 100644 (file)
Binary files a/resources/mediawiki.special/images/icon-contributors.png and b/resources/mediawiki.special/images/icon-contributors.png differ
index 263832b..f4ec247 100644 (file)
Binary files a/resources/mediawiki.special/images/icon-edits.png and b/resources/mediawiki.special/images/icon-edits.png differ
index 306f1f1..4b3d4ee 100644 (file)
Binary files a/resources/mediawiki.special/images/icon-lock.png and b/resources/mediawiki.special/images/icon-lock.png differ
index 0389c84..a406ce7 100644 (file)
Binary files a/resources/mediawiki.special/images/icon-pages.png and b/resources/mediawiki.special/images/icon-pages.png differ
index 2a158df..b8bcf17 100644 (file)
@@ -2,7 +2,7 @@
  * JavaScript for Special:Block
  */
 ( function ( mw, $ ) {
-       $( document ).ready( function () {
+       $( function () {
                var $blockTarget = $( '#mw-bi-target' ),
                        $anonOnlyRow = $( '#mw-input-wpHardBlock' ).closest( 'tr' ),
                        $enableAutoblockRow = $( '#mw-input-wpAutoBlock' ).closest( 'tr' ),
index 14c2f03..2d22bad 100644 (file)
@@ -23,7 +23,7 @@
                }
        }
 
-       $( document ).ready( function () {
+       $( function () {
                // Lame tip to let user know if its email is valid. See bug 22449.
                // Only bind once for 'blur' so that the user can fill it in without errors;
                // after that, look at every keypress for immediate feedback.
index 3c841e5..5e4af7b 100644 (file)
@@ -2,64 +2,6 @@
  * Styling for Special:Watchlist and Special:RecentChanges
  */
 
-table.mw-enhanced-rc {
-       border: 0;
-       border-spacing: 0;
-}
-
-table.mw-enhanced-rc th,
-table.mw-enhanced-rc td {
-       padding: 0;
-       vertical-align: top;
-}
-
-td.mw-enhanced-rc {
-       white-space: nowrap;
-       font-family: monospace;
-}
-
-.mw-enhanced-rc-time {
-       font-family: monospace;
-}
-
-table.mw-enhanced-rc td.mw-enhanced-rc-nested {
-       padding-left: 1em;
-}
-
-/* Show/hide arrows in enhanced changeslist */
-.mw-enhanced-rc .collapsible-expander {
-       float: none;
-}
-
-/* If JS is disabled, the arrows or the placeholder space shouldn't be shown */
-.client-nojs .mw-enhancedchanges-arrow-space {
-       display: none;
-}
-
-.mw-enhancedchanges-arrow-space {
-       display: inline-block;
-       *display: inline; /* IE7 and below */
-       zoom: 1;
-       width: 15px;
-       height: 15px;
-}
-
-/* let it look like it is clickable */
-.mw-enhancedchanges-arrow.mw-collapsible-toggle {
-       cursor: pointer;
-}
-
-.mw-enhancedchanges-arrow.mw-collapsible-toggle-collapsed {
-       /* @embed */
-       background: url(images/arrow-collapsed-ltr.png) no-repeat left bottom;
-}
-
-.mw-enhancedchanges-arrow.mw-collapsible-toggle-expanded {
-       /* @embed */
-       background: url(images/arrow-expanded.png) no-repeat left bottom;
-}
-
-.mw-changeslist-line-watched .mw-title,
-.mw-enhanced-watched .mw-enhanced-rc-time {
+.mw-changeslist-line-watched .mw-title {
        font-weight: bold;
 }
diff --git a/resources/mediawiki.special/mediawiki.special.changeslist.enhanced.css b/resources/mediawiki.special/mediawiki.special.changeslist.enhanced.css
new file mode 100644 (file)
index 0000000..2632c78
--- /dev/null
@@ -0,0 +1,55 @@
+/**
+ * Styling for Special:Watchlist and Special:RecentChanges when preference 'usenewrc'
+ * a.k.a. Enhanced Recent Changes is enabled.
+ */
+
+table.mw-enhanced-rc {
+       border: 0;
+       border-spacing: 0;
+}
+
+table.mw-enhanced-rc th,
+table.mw-enhanced-rc td {
+       padding: 0;
+       vertical-align: top;
+}
+
+td.mw-enhanced-rc {
+       white-space: nowrap;
+       font-family: monospace;
+}
+
+.mw-enhanced-rc-time {
+       font-family: monospace;
+}
+
+table.mw-enhanced-rc td.mw-enhanced-rc-nested {
+       padding-left: 1em;
+}
+
+/* Show/hide arrows in enhanced changeslist */
+.mw-enhanced-rc .collapsible-expander {
+       float: none;
+}
+
+/* If JS is disabled, the arrows or the placeholder space shouldn't be shown */
+.client-nojs .mw-enhancedchanges-arrow-space {
+       display: none;
+}
+
+.mw-enhancedchanges-arrow-space {
+       display: inline-block;
+       *display: inline; /* IE7 and below */
+       zoom: 1;
+       width: 15px;
+       height: 15px;
+}
+
+/* let it look like it is clickable */
+.mw-enhancedchanges-arrow.mw-collapsible-toggle {
+       cursor: pointer;
+}
+
+.mw-enhanced-watched .mw-enhanced-rc-time {
+       font-weight: bold;
+}
diff --git a/resources/mediawiki.special/mediawiki.special.createAccount.css b/resources/mediawiki.special/mediawiki.special.createAccount.css
new file mode 100644 (file)
index 0000000..11d00e7
--- /dev/null
@@ -0,0 +1,89 @@
+/* Disable the underline that Vector puts on h2 headings, and bold them. */
+.mw-ui-container h2 {
+       border: 0;
+       font-weight: bold;
+}
+
+/**** shuffled CAPTCHA ****/
+#wpCaptchaWord {
+       margin-top: 6px;
+}
+
+.mw-createacct-captcha-container {
+       background-color: #f8f8f8;
+       border: 1px solid #c9c9c9;
+       padding: 10px;
+       text-align: center;
+}
+
+.mw-createacct-captcha-assisted {
+       display: block;
+       margin-top: 0.5em;
+}
+
+/* Put a border around the fancycaptcha-image-container. */
+.mw-createacct-captcha-and-reload {
+       border: 1px solid #c9c9c9;
+       display: table-cell; /* Other display formats end up too wide */
+       width: 270px;
+       background-color: #FFF;
+}
+
+/* Make the fancycaptcha-image-container full-width within its parent.  */
+.fancycaptcha-image-container
+{
+       width: 100%;
+}
+
+/**** Benefits column CSS to the right (if it fits) of the form. ****/
+.mw-ui-container #userloginForm {
+       float: left;
+}
+
+div.mw-createacct-benefits-container {
+       /* Keeps this column compact and close to the form, but tends to squish contents. */
+       float: left;
+}
+
+div.mw-createacct-benefits-container h2 {
+       margin-bottom: 30px;
+}
+
+.mw-number-text.icon-edits {
+       /* @embed */
+       background: url(images/icon-edits.png) no-repeat left center;
+}
+
+.mw-number-text.icon-pages {
+       /* @embed */
+       background: url(images/icon-pages.png) no-repeat left center;
+}
+
+.mw-number-text.icon-contributors {
+       /* @embed */
+       background: url(images/icon-contributors.png) no-repeat left center;
+}
+
+/* Special font for numbers in benefits*/
+div.mw-number-text h3 {
+       top: 0;
+       margin: 0;
+       padding: 0;
+       color: #252525;
+       font-family: 'Georgia', serif;
+       font-weight: normal;
+       font-size: 2.2em;
+       line-height: 1.2;
+       text-align: center;
+}
+
+/* Contains a number and explanatory text, with space for an icon */
+div.mw-number-text {
+       display: block;
+       font-size: 1.2em;
+       color: #444;
+       margin-top: 1em;
+       padding: 0 0 0 95px; /* 80px wide icon plus "margin" */
+       min-height: 75px; /* matches max icon height, ensures icon emblem is visible */
+       text-align: center;
+}
diff --git a/resources/mediawiki.special/mediawiki.special.createAccount.js b/resources/mediawiki.special/mediawiki.special.createAccount.js
new file mode 100644 (file)
index 0000000..5cbb1ee
--- /dev/null
@@ -0,0 +1,112 @@
+/**
+ * JavaScript for Create account form (Special:UserLogin?type=signup).
+ */
+( function ( mw, $ ) {
+
+       // When sending password by email, hide the password input fields.
+       // This function doesn't need to be loaded early by ResourceLoader, but is tiny.
+       function hidePasswordOnEmail() {
+               // Always required if checked, otherwise it depends, so we use the original
+               var $emailLabel = $( 'label[for="wpEmail"]' ),
+                       originalText = $emailLabel.text(),
+                       requiredText = mw.message( 'createacct-emailrequired' ).text(),
+                       $createByMailCheckbox = $( '#wpCreateaccountMail' ),
+                       $beforePwds = $( '.mw-row-password:first' ).prev(),
+                       $pwds;
+
+               function updateForCheckbox() {
+                       var checked = $createByMailCheckbox.prop( 'checked' );
+                       if ( checked ) {
+                               $pwds = $( '.mw-row-password' ).detach();
+                               $emailLabel.text( requiredText );
+                       } else {
+                               if ( $pwds ) {
+                                       $beforePwds.after( $pwds );
+                                       $pwds = null;
+                               }
+                               $emailLabel.text( originalText );
+                       }
+               }
+
+               $createByMailCheckbox.on( 'change', updateForCheckbox );
+               updateForCheckbox();
+       }
+
+       // Move the FancyCaptcha image into a more attractive container.
+       // This function does need to be run early by ResourceLoader.
+       function adjustFancyCaptcha() {
+               var $content = $( '#mw-content-text' ),
+                       $submit = $content.find( '#wpCreateaccount' ),
+                       tabIndex,
+                       $captchaStuff,
+                       $captchaImageContainer,
+                       // JavaScript can't yet parse the message createacct-imgcaptcha-help when it
+                       // contains a MediaWiki transclusion, so PHP parses it and sends the HTML.
+                       helpMsg = mw.config.get( 'wgCreateacctImgcaptchaHelp' ),
+                       helpHtml = '';
+
+               /*
+                * CAPTCHA
+                * The CAPTCHA is in a div style="captcha" at the top of the form.
+                * If it's a FancyCaptcha, then we remove it and insert it lower down,
+                * in a customized div with just what we need (e.g. no
+                * fancycaptcha-createaccount message).
+                */
+               if ( !$submit.length) {
+                       return;
+               }
+               tabIndex = $submit.prop( 'tabindex' ) - 1;
+               $captchaStuff = $content.find ( '.captcha' );
+
+               if ( $captchaStuff.length ) {
+
+                       // The FancyCaptcha has this class in the ConfirmEdit extension
+                       // after 2013-04-18.
+                       $captchaImageContainer = $captchaStuff.find( '.fancycaptcha-image-container' );
+                       if ( $captchaImageContainer.length !== 1 ) {
+                               return;
+                       }
+
+                       $captchaStuff.remove();
+
+                       if ( helpMsg) {
+                               helpHtml = '<small class="mw-createacct-captcha-assisted">' + helpMsg + '</small>';
+                       }
+
+                       // Insert another div before the submit button that will include the
+                       // repositioned FancyCaptcha div, an input field, and possible help.
+                       $submit.closest( 'div' )
+                               .before( [
+                       '<div>',
+                               '<label for="wpCaptchaWord">' + mw.message( 'createacct-captcha' ).escaped() + '</label>',
+                               '<div class="mw-createacct-captcha-container">',
+                                       '<div class="mw-createacct-captcha-and-reload" />',
+                                       '<input id="wpCaptchaWord" name="wpCaptchaWord" type="text" placeholder="' +
+                                               mw.message( 'createacct-imgcaptcha-ph' ).escaped() +
+                                               '" tabindex="' + tabIndex + '" autocapitalize="off" autocorrect="off">',
+                                               helpHtml,
+                               '</div>',
+                       '</div>'
+                                       ].join( '' )
+                               );
+
+                       // Stick the FancyCaptcha container inside our bordered and framed parents.
+                       $captchaImageContainer
+                               .prependTo( $content.find( '.mw-createacct-captcha-and-reload' ) );
+
+                       // Find the input field, add the text (if any) of the existing CAPTCHA
+                       // field (although usually it's blanked out on every redisplay),
+                       // and after it move over the hidden field that tells the CAPTCHA
+                       // what to do.
+                       $content.find( '#wpCaptchaWord' )
+                               .val( $captchaStuff.find( '#wpCaptchaWord' ).val() )
+                               .after( $captchaStuff.find( '#wpCaptchaId' ) );
+               }
+       }
+
+       $( function () {
+               adjustFancyCaptcha();
+               hidePasswordOnEmail();
+       } );
+
+}( mediaWiki, jQuery ) );
diff --git a/resources/mediawiki.special/mediawiki.special.createAccount.vform.css b/resources/mediawiki.special/mediawiki.special.createAccount.vform.css
deleted file mode 100644 (file)
index ef16a1d..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Disable the underline that Vector puts on h2 headings, and bold them. */
-.mw-ui-container h2 {
-       border: 0;
-       font-weight: bold;
-}
-
-/**** shuffled CAPTCHA ****/
-#wpCaptchaWord {
-       margin-top: 6px;
-}
-
-.mw-createacct-captcha-container {
-       background-color: #f8f8f8;
-       border: 1px solid #c9c9c9;
-       padding: 10px;
-       text-align: center;
-}
-
-.mw-createacct-captcha-assisted {
-       display: block;
-       margin-top: 0.5em;
-}
-
-/* Put a border around the fancycaptcha-image-container. */
-.mw-createacct-captcha-and-reload {
-       border: 1px solid #c9c9c9;
-       display: table-cell; /* Other display formats end up too wide */
-       width: 270px;
-       background-color: #FFF;
-}
-
-/* Make the fancycaptcha-image-container full-width within its parent.  */
-.fancycaptcha-image-container
-{
-       width: 100%;
-}
-
-/**** Benefits column CSS to the right (if it fits) of the form. ****/
-.mw-ui-container #userloginForm {
-       float: left;
-}
-
-div.mw-createacct-benefits-container {
-       float: left
-}
-
-div.mw-createacct-benefits-container h2 {
-       margin-bottom: 30px;
-}
-
-div.mw-benefits-icon {
-       display: inline-block;
-       padding: 0;
-       float: left;
-       width: 80px;
-       height: 75px;
-       margin-right: 15px;
-       border: 0;
-}
-
-.mw-benefits-icon.icon-edits {
-       /* @embed */
-       background: url(images/icon-edits.png) no-repeat right;
-}
-
-.mw-benefits-icon.icon-pages {
-       /* @embed */
-       background: url(images/icon-pages.png) no-repeat right;
-}
-
-.mw-benefits-icon.icon-contributors {
-       /* @embed */
-       background: url(images/icon-contributors.png) no-repeat right;
-}
-
-/* Special font for numbers in benefits*/
-div.mw-number-text h3 {
-       top: 0;
-       margin: 0;
-       padding: 0;
-       color: #252525;
-       font-family: 'Georgia', serif;
-       font-weight: normal;
-       font-size: 2.2em;
-       line-height: 1.2;
-       text-align: center;
-}
-
-div.mw-number-text {
-       display: block;
-       font-size: 1.2em;
-       color: #444;
-       margin-top: 1em;
-       text-align: center;
-}
diff --git a/resources/mediawiki.special/mediawiki.special.createAccount.vform.js b/resources/mediawiki.special/mediawiki.special.createAccount.vform.js
deleted file mode 100644 (file)
index 0cbf31b..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
- * JavaScript for Create account form (Special:UserLogin?type=signup).
- */
-( function ( mw, $ ) {
-
-       $( document ).ready( function( $ ) {
-               var $content = $( '#mw-content-text' ),
-                       $submit = $content.find( '#wpCreateaccount' ),
-                       tabIndex,
-                       $captchaStuff,
-                       $captchaImageContainer,
-                       // JavaScript can't yet parse the message createacct-imgcaptcha-help when it
-                       // contains a MediaWiki transclusion, so PHP parses it and sends the HTML.
-                       helpMsg = mw.config.get( 'wgCreateacctImgcaptchaHelp' ),
-                       helpHtml = '';
-
-               /*
-                * CAPTCHA
-                * The CAPTCHA is in a div style="captcha" at the top of the form.
-                * If it's a FancyCaptcha, then we remove it and insert it lower down,
-                * in a customized div with just what we need (e.g. no
-                * fancycaptcha-createaccount message).
-                */
-               if ( !$submit.length) {
-                       return;
-               }
-               tabIndex = $submit.prop( 'tabindex' ) - 1;
-               $captchaStuff = $content.find ( '.captcha' );
-
-               if ( $captchaStuff.length ) {
-
-                       // The FancyCaptcha has this class in the ConfirmEdit extension
-                       // after 2013-04-18.
-                       $captchaImageContainer = $captchaStuff.find( '.fancycaptcha-image-container' );
-                       if ( $captchaImageContainer.length !== 1 ) {
-                               return;
-                       }
-
-                       $captchaStuff.remove();
-
-                       if ( helpMsg) {
-                               helpHtml = '<small class="mw-createacct-captcha-assisted">' + helpMsg + '</small>';
-                       }
-
-                       // Insert another div before the submit button that will include the
-                       // repositioned FancyCaptcha div, an input field, and possible help.
-                       $submit.closest( 'div' )
-                               .before( [
-                       '<div>',
-                               '<label for="wpCaptchaWord">' + mw.message( 'createacct-captcha' ).escaped() + '</label>',
-                               '<div class="mw-createacct-captcha-container">',
-                                       '<div class="mw-createacct-captcha-and-reload" />',
-                                       '<input id="wpCaptchaWord" name="wpCaptchaWord" type="text" placeholder="' +
-                                               mw.message( 'createacct-imgcaptcha-ph' ).escaped() +
-                                               '" tabindex="' + tabIndex + '" autocapitalize="off" autocorrect="off">',
-                                               helpHtml,
-                               '</div>',
-                       '</div>'
-                                       ].join( '' )
-                               );
-
-                       // Stick the FancyCaptcha container inside our bordered and framed parents.
-                       $captchaImageContainer
-                               .prependTo( $content.find( '.mw-createacct-captcha-and-reload' ) );
-
-                       // Find the input field, add the text (if any) of the existing CAPTCHA
-                       // field (although usually it's blanked out on every redisplay),
-                       // and after it move over the hidden field that tells the CAPTCHA
-                       // what to do.
-                       $content.find( '#wpCaptchaWord' )
-                               .val( $captchaStuff.find( '#wpCaptchaWord' ).val() )
-                               .after( $captchaStuff.find( '#wpCaptchaId' ) );
-               }
-
-       } );
-
-}( mediaWiki, jQuery ) );
index f719d07..922eba5 100644 (file)
@@ -1,6 +1,6 @@
 /**
  * JavaScript for Special:MovePage
  */
-jQuery( document ).ready( function ( $ ) {
+jQuery( function ( $ ) {
        $( '#wpReason, #wpNewTitleMain' ).byteLimit();
 } );
index 6eaec6a..03d93d0 100644 (file)
@@ -1,7 +1,7 @@
 /**
  * JavaScript for Special:Preferences
  */
-jQuery( document ).ready( function ( $ ) {
+jQuery( function ( $ ) {
        var $preftoc, $preferences, $fieldsets, $legends,
                hash,
                $tzSelect, $tzTextbox, $localtimeHolder, servertime;
index d1c1354..79d793a 100644 (file)
@@ -27,7 +27,7 @@
                }
        };
 
-       $( document ).ready( rc.init );
+       $( rc.init );
 
        mw.special.recentchanges = rc;
 
index 2dab302..035252b 100644 (file)
@@ -2,7 +2,7 @@
  * JavaScript for Special:Search
  */
 ( function ( mw, $ ) {
-       $( document ).ready( function () {
+       $( function () {
                var $checkboxes, $headerLinks;
 
                // Emulate HTML5 autofocus behavior in non HTML5 compliant browsers
index d20aab5..0dea3ef 100644 (file)
@@ -1,7 +1,7 @@
 /**
  * JavaScript for Special:Undelete
  */
-jQuery( document ).ready( function ( $ ) {
+jQuery( function ( $ ) {
        $( '#mw-undelete-invert' ).click( function ( e ) {
                $( '#undelete input[type="checkbox"]' ).prop( 'checked', function ( i, val ) {
                        return !val;
index 75532f1..3f40c54 100644 (file)
@@ -6,7 +6,7 @@
        /**
         * Add a preview to the upload form
         */
-       $( document ).ready( function () {
+       $( function () {
                /**
                 * Is the FileAPI available with sufficient functionality?
                 */
        /**
         * Disable all upload source fields except the selected one
         */
-       $( document ).ready( function () {
+       $( function () {
                var i, $row,
                        $rows = $( '.mw-htmlform-field-UploadSourceField' );
 
diff --git a/resources/mediawiki.special/mediawiki.special.userLogin.css b/resources/mediawiki.special/mediawiki.special.userLogin.css
new file mode 100644 (file)
index 0000000..312f811
--- /dev/null
@@ -0,0 +1,36 @@
+/* Styles just for VForm user login */
+#mw-userlogin-help {
+       text-align: center;
+}
+
+.mw-ui-vform .mw-secure {
+       /* @embed */
+       background: url(images/icon-lock.png) no-repeat scroll left center transparent;
+       margin: 0 0 0 1px;
+       padding: 0 0 0 11px;
+}
+
+/* The login form invites users to create an account */
+#mw-createaccount-cta {
+       width: 20em;
+       height: 10em;
+       text-align: center;
+       /* @embed */
+       background: url(images/glyph-people-large.png) no-repeat 50%;
+       margin: 0 auto;
+}
+
+#mw-createaccount-cta h3 {
+       font-size: 0.9em;
+       font-weight: normal;
+       text-align: center;
+       padding-top: 4em;
+}
+
+#mw-createaccount-join {
+       margin-left: 0.75em;
+       /* Separate from background image */
+       box-shadow: 4px 4px 4px 4px rgba(255, 255, 255, 1);
+       width: auto;
+       display: inline-block;
+}
diff --git a/resources/mediawiki.special/mediawiki.special.userLogin.signup.js b/resources/mediawiki.special/mediawiki.special.userLogin.signup.js
deleted file mode 100644 (file)
index bba4260..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * JavaScript for Special:UserLogin/signup
- */
-jQuery( document ).ready( function ( $ ) {
-       $( '#wpCreateaccountMail' )
-               .on( 'change', function() {
-                       $( '.mw-row-password' ).toggle( !$( this ).attr( 'checked' ) );
-               } )
-               .trigger( 'change' );
-} );
diff --git a/resources/mediawiki.special/mediawiki.special.userLogin.vform.css b/resources/mediawiki.special/mediawiki.special.userLogin.vform.css
deleted file mode 100644 (file)
index 312f811..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Styles just for VForm user login */
-#mw-userlogin-help {
-       text-align: center;
-}
-
-.mw-ui-vform .mw-secure {
-       /* @embed */
-       background: url(images/icon-lock.png) no-repeat scroll left center transparent;
-       margin: 0 0 0 1px;
-       padding: 0 0 0 11px;
-}
-
-/* The login form invites users to create an account */
-#mw-createaccount-cta {
-       width: 20em;
-       height: 10em;
-       text-align: center;
-       /* @embed */
-       background: url(images/glyph-people-large.png) no-repeat 50%;
-       margin: 0 auto;
-}
-
-#mw-createaccount-cta h3 {
-       font-size: 0.9em;
-       font-weight: normal;
-       text-align: center;
-       padding-top: 4em;
-}
-
-#mw-createaccount-join {
-       margin-left: 0.75em;
-       /* Separate from background image */
-       box-shadow: 4px 4px 4px 4px rgba(255, 255, 255, 1);
-       width: auto;
-       display: inline-block;
-}
index 0f8d420..89ca25a 100644 (file)
@@ -46,7 +46,7 @@
   background-image: -moz-linear-gradient(top, #dcdcdc, #c9c9c9);
   background-image: -o-linear-gradient(top, #dcdcdc, #c9c9c9);
   background-image: linear-gradient(top, #dcdcdc, #c9c9c9);
-  color: #4a4a4a;
+  color: black;
   text-shadow: 0 1px 1px rgba(201, 201, 201, 0.3);
   border: 1px solid #c4c4c4;
   -webkit-border-radius: 3px;
@@ -157,8 +157,8 @@ a.mw-ui-button {
   margin: 0;
   width: 100%;
 }
-/* line 34, sourcefiles/scss/components/default/_forms.scss */
-.mw-ui-vform > div input {
+/* line 36, sourcefiles/scss/components/default/_forms.scss */
+.mw-ui-vform > div input:not([type=button]):not([type=submit]):not([type=file]) {
   outline: 0;
   border-style: solid;
   border-width: 1px;
@@ -167,7 +167,7 @@ a.mw-ui-button {
   padding: 0.35em 0 0.35em 0.5em;
 }
 /* line 12, sourcefiles/scss/mixins/_forms.scss */
-.mw-ui-vform > div input:focus {
+.mw-ui-vform > div input:not([type=button]):not([type=submit]):not([type=file]):focus {
   box-shadow: #4091ed 0px 0px 5px;
   border-color: #4091ed;
 }
@@ -178,7 +178,7 @@ a.mw-ui-button {
   -moz-box-sizing: border-box;
   box-sizing: border-box;
   font-size: 0.9em;
-  color: #7d7d7d;
+  color: #4a4a4a;
   width: auto;
   margin: 0 0 0.2em 0;
   padding: 0;
@@ -215,7 +215,7 @@ a.mw-ui-button {
 /* line 72, sourcefiles/scss/components/default/_forms.scss */
 .mw-ui-label {
   font-size: 0.9em;
-  color: #7d7d7d;
+  color: #4a4a4a;
 }
 /* line 34, sourcefiles/scss/mixins/_forms.scss */
 .mw-ui-label * {
index 9826526..94e3300 100644 (file)
@@ -45,7 +45,7 @@
   background-image: -moz-linear-gradient(top, #dcdcdc, #c9c9c9);
   background-image: -o-linear-gradient(top, #dcdcdc, #c9c9c9);
   background-image: linear-gradient(top, #dcdcdc, #c9c9c9);
-  color: #4a4a4a;
+  color: black;
   text-shadow: 0 1px 1px rgba(201, 201, 201, 0.3);
   border: 1px solid #c4c4c4;
   -webkit-border-radius: 3px;
@@ -286,8 +286,8 @@ a.mw-ui-button {
   margin: 0;
   width: 100%;
 }
-/* line 34, sourcefiles/scss/components/default/_forms.scss */
-.mw-ui-vform > div input {
+/* line 36, sourcefiles/scss/components/default/_forms.scss */
+.mw-ui-vform > div input:not([type=button]):not([type=submit]):not([type=file]) {
   outline: 0;
   border-style: solid;
   border-width: 1px;
@@ -296,7 +296,7 @@ a.mw-ui-button {
   padding: 0.35em 0 0.35em 0.5em;
 }
 /* line 12, sourcefiles/scss/mixins/_forms.scss */
-.mw-ui-vform > div input:focus {
+.mw-ui-vform > div input:not([type=button]):not([type=submit]):not([type=file]):focus {
   box-shadow: #4091ed 0px 0px 5px;
   border-color: #4091ed;
 }
@@ -307,7 +307,7 @@ a.mw-ui-button {
   -moz-box-sizing: border-box;
   box-sizing: border-box;
   font-size: 0.9em;
-  color: #7d7d7d;
+  color: #4a4a4a;
   width: auto;
   margin: 0 0 0.2em 0;
   padding: 0;
@@ -344,7 +344,7 @@ a.mw-ui-button {
 /* line 72, sourcefiles/scss/components/default/_forms.scss */
 .mw-ui-label {
   font-size: 0.9em;
-  color: #7d7d7d;
+  color: #4a4a4a;
 }
 /* line 34, sourcefiles/scss/mixins/_forms.scss */
 .mw-ui-label * {
index 8bbe3c2..dfcd36f 100644 (file)
@@ -31,7 +31,9 @@ $defaultFormWidth: $captchaContainerWidth;
             width: 100%;
         }
 
-        input {
+        // We exclude these because they'll generally use mw-ui-button.
+        // Otherwise, we'll unintentionally override that.
+        input:not([type=button]):not([type=submit]):not([type=file]), {
             @include agora-field-styling; // mixins/_forms.scss
         }
 
index 03fae1b..2efff82 100644 (file)
@@ -25,7 +25,7 @@
        @include vertical-gradient(lighten($baseColor, 7.5%), $baseColor);
 
        @if $baseColor == $agoraGray {
-               color: darken($baseColor, 50%);
+               color: black;
                @include text-shadow(0 1px 1px rgba($baseColor, 0.3));
        } @else {
                color: white;
index 6316232..5db857a 100644 (file)
@@ -29,7 +29,7 @@
         //weight: bold;
         size: 0.9em;
     };
-    color: darken($agoraGray, 30%);
+    color: darken($agoraGray, 50%);
 
     & * {
         font-weight: normal;
diff --git a/resources/mediawiki/images/arrow-collapsed-ltr.png b/resources/mediawiki/images/arrow-collapsed-ltr.png
new file mode 100644 (file)
index 0000000..ea9c67a
Binary files /dev/null and b/resources/mediawiki/images/arrow-collapsed-ltr.png differ
diff --git a/resources/mediawiki/images/arrow-collapsed-rtl.png b/resources/mediawiki/images/arrow-collapsed-rtl.png
new file mode 100644 (file)
index 0000000..081d3a8
Binary files /dev/null and b/resources/mediawiki/images/arrow-collapsed-rtl.png differ
diff --git a/resources/mediawiki/images/arrow-expanded.png b/resources/mediawiki/images/arrow-expanded.png
new file mode 100644 (file)
index 0000000..fa4bf26
Binary files /dev/null and b/resources/mediawiki/images/arrow-expanded.png differ
index 87529b4..77ceee4 100644 (file)
                } );
        }
 
+       $( function () {
+               var $matrixTooltips = $( '.mw-htmlform-matrix .mw-htmlform-tooltip' );
+               if ( $matrixTooltips.length ) {
+                       mw.loader.using( 'jquery.tipsy', function () {
+                               $matrixTooltips.tipsy( { gravity: 's' } );
+                       } );
+               }
+       } );
 }( mediaWiki, jQuery ) );
diff --git a/resources/mediawiki/mediawiki.icon.css b/resources/mediawiki/mediawiki.icon.css
new file mode 100644 (file)
index 0000000..f61b725
--- /dev/null
@@ -0,0 +1,15 @@
+/* General-purpose icons via CSS. Classes here should be named "mw-icon-*". */
+
+/* For the collapsed and expanded arrows, we also provide selectors to make it
+ * easy to use them with jquery.makeCollapsible. */
+.mw-icon-arrow-collapsed,
+.mw-collapsible-arrow.mw-collapsible-toggle-collapsed {
+       /* @embed */
+       background: url(images/arrow-collapsed-ltr.png) no-repeat left bottom;
+}
+
+.mw-icon-arrow-expanded,
+.mw-collapsible-arrow.mw-collapsible-toggle-expanded {
+       /* @embed */
+       background: url(images/arrow-expanded.png) no-repeat left bottom;
+}
index d199132..46b74f1 100644 (file)
@@ -15,10 +15,38 @@ var mw = ( function ( $, undefined ) {
        /**
         * Creates an object that can be read from or written to from prototype functions
         * that allow both single and multiple variables at once.
+        *
+        *     @example
+        *
+        *     var addies, wanted, results;
+        *
+        *     // Create your address book
+        *     addies = new mw.Map();
+        *
+        *     // This data could be coming from an external source (eg. API/AJAX)
+        *     addies.set( {
+        *         'John Doe' : '10 Wall Street, New York, USA',
+        *         'Jane Jackson' : '21 Oxford St, London, UK',
+        *         'Dominique van Halen' : 'Kalverstraat 7, Amsterdam, NL'
+        *     } );
+        *
+        *     wanted = ['Dominique van Halen', 'George Johnson', 'Jane Jackson'];
+        *
+        *     // You can detect missing keys first
+        *     if ( !addies.exists( wanted ) ) {
+        *         // One or more are missing (in this case: "George Johnson")
+        *         mw.log( 'One or more names were not found in your address book' );
+        *     }
+        *
+        *     // Or just let it give you what it can
+        *     results = addies.get( wanted, 'Middle of Nowhere, Alaska, US' );
+        *     mw.log( results['Jane Jackson'] ); // "21 Oxford St, London, UK"
+        *     mw.log( results['George Johnson'] ); // "Middle of Nowhere, Alaska, US"
+        *
         * @class mw.Map
         *
         * @constructor
-        * @param {boolean} global Whether to store the values in the global window
+        * @param {boolean} [global=false] Whether to store the values in the global window
         *  object or a exclusively in the object property 'values'.
         */
        function Map( global ) {
@@ -259,6 +287,8 @@ var mw = ( function ( $, undefined ) {
        };
 
        /**
+        * Base library for MediaWiki.
+        *
         * @class mw
         * @alternateClassName mediaWiki
         * @singleton
@@ -286,13 +316,17 @@ var mw = ( function ( $, undefined ) {
                Message: Message,
 
                /**
-                * List of configuration values
+                * Map of configuration values
                 *
-                * Dummy placeholder. Initiated in startUp module as a new instance of mw.Map().
-                * If `$wgLegacyJavaScriptGlobals` is true, this Map will have its values
-                * in the global window object.
-                * @property
+                * Check out [the complete list of configuration values](https://www.mediawiki.org/wiki/Manual:Interface/JavaScript#mw.config)
+                * on MediaWiki.org.
+                *
+                * If `$wgLegacyJavaScriptGlobals` is true, this Map will put its values in the
+                * global window object.
+                *
+                * @property {mw.Map} config
                 */
+               // Dummy placeholder. Re-assigned in ResourceLoaderStartupModule with an instance of `mw.Map`.
                config: null,
 
                /**
@@ -302,6 +336,14 @@ var mw = ( function ( $, undefined ) {
                libs: {},
 
                /**
+                * Access container for deprecated functionality that can be moved from
+                * from their legacy location and attached to this object (e.g. a global
+                * function that is deprecated and as stop-gap can be exposed through here).
+                *
+                * This was reserved for future use but never ended up being used.
+                *
+                * @deprecated since 1.22: Let deprecated identifiers keep their original name
+                * and use mw.log#deprecate to create an access container for tracking.
                 * @property
                 */
                legacy: {},
@@ -424,11 +466,11 @@ var mw = ( function ( $, undefined ) {
                         *
                         * @private
                         * @param {string} text CSS text
-                        * @param {Mixed} [nextnode] An Element or jQuery object for an element where
-                        * the style tag should be inserted before. Otherwise appended to the `<head>`.
-                        * @return {HTMLElement} Node reference to the created `<style>` tag.
+                        * @param {HTMLElement|jQuery} [nextnode=document.head] The element where the style tag should be
+                        *  inserted before. Otherwise it will be appended to `<head>`.
+                        * @return {HTMLElement} Reference to the created `<style>` element.
                         */
-                       function addStyleTag( text, nextnode ) {
+                       function newStyleTag( text, nextnode ) {
                                var s = document.createElement( 'style' );
                                // Insert into document before setting cssText (bug 33305)
                                if ( nextnode ) {
@@ -474,8 +516,13 @@ var mw = ( function ( $, undefined ) {
                        }
 
                        /**
+                        * Add a bit of CSS text to the current browser page.
+                        *
+                        * The CSS will be appended to an existing ResourceLoader-created `<style>` tag
+                        * or create a new one based on whether the given `cssText` is safe for extension.
+                        *
                         * @param {string} [cssText=cssBuffer] If called without cssText,
-                        * the internal buffer will be inserted instead.
+                        *  the internal buffer will be inserted instead.
                         * @param {Function} [callback]
                         */
                        function addEmbeddedCSS( cssText, callback ) {
@@ -547,7 +594,7 @@ var mw = ( function ( $, undefined ) {
                                        }
                                }
 
-                               $( addStyleTag( cssText, getMarker() ) ).data( 'ResourceLoaderDynamicStyleTag', true );
+                               $( newStyleTag( cssText, getMarker() ) ).data( 'ResourceLoaderDynamicStyleTag', true );
 
                                cssCallbacks.fire().empty();
                        }
@@ -820,8 +867,7 @@ var mw = ( function ( $, undefined ) {
                         */
                        function addScript( src, callback, async ) {
                                /*jshint evil:true */
-                               var script, head,
-                                       done = false;
+                               var script, head, done;
 
                                // Using isReady directly instead of storing it locally from
                                // a $.fn.ready callback (bug 31895).
@@ -833,6 +879,7 @@ var mw = ( function ( $, undefined ) {
 
                                        // IE-safe way of getting the <head>. document.head isn't supported
                                        // in old IE, and doesn't work when in the <head>.
+                                       done = false;
                                        head = document.getElementsByTagName( 'head' )[0] || document.body;
 
                                        script = document.createElement( 'script' );
@@ -852,12 +899,12 @@ var mw = ( function ( $, undefined ) {
                                                                // Handle memory leak in IE
                                                                script.onload = script.onreadystatechange = null;
 
-                                                               // Remove the script
+                                                               // Detach the element from the document
                                                                if ( script.parentNode ) {
                                                                        script.parentNode.removeChild( script );
                                                                }
 
-                                                               // Dereference the script
+                                                               // Dereference the element from javascript
                                                                script = undefined;
 
                                                                callback();
@@ -1150,10 +1197,14 @@ var mw = ( function ( $, undefined ) {
 
                        /* Public Methods */
                        return {
-                               addStyleTag: addStyleTag,
+                               /**
+                                * @inheritdoc #newStyleTag
+                                * @method
+                                */
+                               addStyleTag: newStyleTag,
 
                                /**
-                                * Requests dependencies from server, loading and executing when things when ready.
+                                * Batch-request queued dependencies from the server.
                                 */
                                work: function () {
                                        var     reqBase, splits, maxQueryLength, q, b, bSource, bGroup, bSourceGroup,
@@ -1315,7 +1366,7 @@ var mw = ( function ( $, undefined ) {
                                },
 
                                /**
-                                * Registers a module, letting the system know about it and its
+                                * Register a module, letting the system know about it and its
                                 * properties. Startup modules contain calls to this function.
                                 *
                                 * @param {string} module Module name
@@ -1366,9 +1417,10 @@ var mw = ( function ( $, undefined ) {
                                },
 
                                /**
-                                * Implements a module, giving the system a course of action to take
-                                * upon loading. Results of a request for one or more modules contain
-                                * calls to this function.
+                                * Implement a module given the components that make up the module.
+                                *
+                                * When #load or #using requests one or more modules, the server
+                                * response contain calls to this function.
                                 *
                                 * All arguments are required.
                                 *
@@ -1423,7 +1475,7 @@ var mw = ( function ( $, undefined ) {
                                },
 
                                /**
-                                * Executes a function as soon as one or more required modules are ready
+                                * Execute a function as soon as one or more required modules are ready.
                                 *
                                 * @param {string|Array} dependencies Module name or array of modules names the callback
                                 *  dependends on to be ready before executing
@@ -1460,7 +1512,7 @@ var mw = ( function ( $, undefined ) {
                                },
 
                                /**
-                                * Loads an external script or one or more modules for future use
+                                * Load an external script or one or more modules.
                                 *
                                 * @param {string|Array} modules Either the name of a module, array of modules,
                                 *  or a URL of an external script or style
@@ -1540,7 +1592,7 @@ var mw = ( function ( $, undefined ) {
                                },
 
                                /**
-                                * Changes the state of a module
+                                * Change the state of one or more modules.
                                 *
                                 * @param {string|Object} module module name or object of module name/state pairs
                                 * @param {string} state state name
@@ -1569,9 +1621,9 @@ var mw = ( function ( $, undefined ) {
                                },
 
                                /**
-                                * Gets the version of a module
+                                * Get the version of a module.
                                 *
-                                * @param {string} module name of module to get version for
+                                * @param {string} module Name of module to get version for
                                 */
                                getVersion: function ( module ) {
                                        if ( registry[module] !== undefined && registry[module].version !== undefined ) {
@@ -1581,14 +1633,15 @@ var mw = ( function ( $, undefined ) {
                                },
 
                                /**
-                                * @deprecated since 1.18 use mw.loader.getVersion() instead
+                                * @inheritdoc #getVersion
+                                * @deprecated since 1.18 use #getVersion instead
                                 */
                                version: function () {
                                        return mw.loader.getVersion.apply( mw.loader, arguments );
                                },
 
                                /**
-                                * Gets the state of a module
+                                * Get the state of a module.
                                 *
                                 * @param {string} module name of module to get state for
                                 */
@@ -1611,7 +1664,13 @@ var mw = ( function ( $, undefined ) {
                                },
 
                                /**
-                                * For backwards-compatibility with Squid-cached pages. Loads mw.user
+                                * Load the `mediawiki.user` module.
+                                *
+                                * For backwards-compatibility with cached pages from before 2013 where:
+                                *
+                                * - the `mediawiki.user` module didn't exist yet
+                                * - `mw.user` was still part of mediawiki.js
+                                * - `mw.loader.go` still existed and called after `mw.loader.load()`
                                 */
                                go: function () {
                                        mw.loader.load( 'mediawiki.user' );
@@ -1621,6 +1680,17 @@ var mw = ( function ( $, undefined ) {
 
                /**
                 * HTML construction helper functions
+                *
+                *     @example
+                *
+                *     var Html, output;
+                *
+                *     Html = mw.html;
+                *     output = Html.element( 'div', {}, new Html.Raw(
+                *         Html.element( 'img', { src: '<' } )
+                *     ) );
+                *     mw.log( output ); // <div><img src="&lt;"/></div>
+                *
                 * @class mw.html
                 * @singleton
                 */
@@ -1649,22 +1719,6 @@ var mw = ( function ( $, undefined ) {
                                        return s.replace( /['"<>&]/g, escapeCallback );
                                },
 
-                               /**
-                                * Wrapper object for raw HTML passed to mw.html.element().
-                                * @class mw.html.Raw
-                                */
-                               Raw: function ( value ) {
-                                       this.value = value;
-                               },
-
-                               /**
-                                * Wrapper object for CDATA element contents passed to mw.html.element()
-                                * @class mw.html.Cdata
-                                */
-                               Cdata: function ( value ) {
-                                       this.value = value;
-                               },
-
                                /**
                                 * Create an HTML element string, with safe escaping.
                                 *
@@ -1677,12 +1731,6 @@ var mw = ( function ( $, undefined ) {
                                 *  - this.Cdata: The value attribute is included, and an exception is
                                 *   thrown if it contains an illegal ETAGO delimiter.
                                 *   See http://www.w3.org/TR/1999/REC-html401-19991224/appendix/notes.html#h-B.3.2
-                                *
-                                * Example:
-                                *      var h = mw.html;
-                                *      return h.element( 'div', {},
-                                *              new h.Raw( h.element( 'img', {src: '<'} ) ) );
-                                * Returns <div><img src="&lt;"/></div>
                                 */
                                element: function ( name, attrs, contents ) {
                                        var v, attrName, s = '<' + name;
@@ -1731,6 +1779,22 @@ var mw = ( function ( $, undefined ) {
                                        }
                                        s += '</' + name + '>';
                                        return s;
+                               },
+
+                               /**
+                                * Wrapper object for raw HTML passed to mw.html.element().
+                                * @class mw.html.Raw
+                                */
+                               Raw: function ( value ) {
+                                       this.value = value;
+                               },
+
+                               /**
+                                * Wrapper object for CDATA element contents passed to mw.html.element()
+                                * @class mw.html.Cdata
+                                */
+                               Cdata: function ( value ) {
+                                       this.value = value;
                                }
                        };
                }() ),
@@ -1775,12 +1839,17 @@ var mw = ( function ( $, undefined ) {
                 *     var h = mw.hook( 'bar.ready' );
                 *     new mw.Foo( .. ).fetch( { callback: h.fire } );
                 *
+                * Note: Events are documented with an underscore instead of a dot in the event
+                * name due to jsduck not supporting dots in that position.
+                *
                 * @class mw.hook
                 */
                hook: ( function () {
                        var lists = {};
 
                        /**
+                        * Create an instance of mw.hook.
+                        *
                         * @method hook
                         * @member mw
                         * @param {string} name Name of hook.
index 9a7b651..3aa358a 100644 (file)
@@ -2,15 +2,25 @@
  * Stylesheet for mediawiki.notification module
  */
 
-#mw-notification-area {
+.mw-notification-area {
        position: absolute;
-       top: 1em;
-       right: 1em;
+       top: 0;
+       right: 0;
+       padding: 1em 1em 0 0;
        width: 20em;
        line-height: 1.35;
        z-index: 10000;
 }
 
+.mw-notification-area-floating {
+       position: fixed;
+}
+
+* html .mw-notification-area-floating {
+       /* Make it at least 'absolute' in IE6 since 'fixed' is not supported */
+       position: absolute;
+}
+
 .mw-notification {
        padding: 0.25em 1em;
        margin-bottom: 0.5em;
index fd34e7e..70f639c 100644 (file)
@@ -2,10 +2,10 @@
        'use strict';
 
        var notification,
-               isPageReady = false,
-               preReadyNotifQueue = [],
                // The #mw-notification-area div that all notifications are contained inside.
-               $area = null;
+               $area,
+               isPageReady = false,
+               preReadyNotifQueue = [];
 
        /**
         * Creates a Notification object for 1 message.
         * @ignore
         */
        function init() {
-               $area = $( '<div id="mw-notification-area"></div>' )
+               var offset, $window = $( window );
+
+               $area = $( '<div id="mw-notification-area" class="mw-notification-area mw-notification-area-layout"></div>' )
                        // Pause auto-hide timers when the mouse is in the notification area.
                        .on( {
                                mouseenter: notification.pause,
 
                // Prepend the notification area to the content area and save it's object.
                mw.util.$content.prepend( $area );
+               offset = $area.offset();
+
+               function updateAreaMode() {
+                       var isFloating = $window.scrollTop() > offset.top;
+                       $area
+                               .toggleClass( 'mw-notification-area-floating', isFloating )
+                               .toggleClass( 'mw-notification-area-layout', !isFloating );
+               }
+
+               $window.on( 'scroll', updateAreaMode );
+
+               // Initial mode
+               updateAreaMode();
        }
 
        /**
index 08f10fe..7f07862 100644 (file)
@@ -2,7 +2,7 @@
  * Add search suggestions to the search form.
  */
 ( function ( mw, $ ) {
-       $( document ).ready( function ( $ ) {
+       $( function () {
                var map, resultRenderCache, searchboxesSelectors,
                        // Region where the suggestions box will appear directly below
                        // (using the same width). Can be a container element or the input
index 9fd2e5e..e8366a5 100644 (file)
@@ -1,57 +1,52 @@
-/*
- * Implementation for mediaWiki.user
+/**
+ * @class mw.user
+ * @singleton
  */
-
 ( function ( mw, $ ) {
+       var callbacks, options, tokens, user;
 
        /**
-        * User object
+        * Gets the current user's groups or rights.
+        *
+        * @private
+        * @param {string} info One of 'groups' or 'rights'
+        * @param {Function} callback
         */
-       function User( options, tokens ) {
-               var user, callbacks;
-
-               /* Private Members */
-
-               user = this;
-               callbacks = {};
-
-               /**
-                * Gets the current user's groups or rights.
-                * @param {String} info: One of 'groups' or 'rights'.
-                * @param {Function} callback
-                */
-               function getUserInfo( info, callback ) {
-                       var api;
-                       if ( callbacks[info] ) {
-                               callbacks[info].add( callback );
-                               return;
-                       }
-                       callbacks.rights = $.Callbacks('once memory');
-                       callbacks.groups = $.Callbacks('once memory');
+       function getUserInfo( info, callback ) {
+               var api;
+               if ( callbacks[info] ) {
                        callbacks[info].add( callback );
-                       api = new mw.Api();
-                       api.get( {
-                               action: 'query',
-                               meta: 'userinfo',
-                               uiprop: 'rights|groups'
-                       } ).always( function ( data ) {
-                               var rights, groups;
-                               if ( data.query && data.query.userinfo ) {
-                                       rights = data.query.userinfo.rights;
-                                       groups = data.query.userinfo.groups;
-                               }
-                               callbacks.rights.fire( rights || [] );
-                               callbacks.groups.fire( groups || [] );
-                       } );
+                       return;
                }
+               callbacks.rights = $.Callbacks('once memory');
+               callbacks.groups = $.Callbacks('once memory');
+               callbacks[info].add( callback );
+               api = new mw.Api();
+               api.get( {
+                       action: 'query',
+                       meta: 'userinfo',
+                       uiprop: 'rights|groups'
+               } ).always( function ( data ) {
+                       var rights, groups;
+                       if ( data.query && data.query.userinfo ) {
+                               rights = data.query.userinfo.rights;
+                               groups = data.query.userinfo.groups;
+                       }
+                       callbacks.rights.fire( rights || [] );
+                       callbacks.groups.fire( groups || [] );
+               } );
+       }
 
-               /* Public Members */
-
-               this.options = options || new mw.Map();
+       callbacks = {};
 
-               this.tokens = tokens || new mw.Map();
+       // Extend the skeleton mw.user from mediawiki.js
+       // This is kind of ugly but we're stuck with this for b/c reasons
+       options = mw.user.options || new mw.Map();
+       tokens = mw.user.tokens || new mw.Map();
 
-               /* Public Methods */
+       mw.user = user = {
+               options: options,
+               tokens: tokens,
 
                /**
                 * Generates a random user session ID (32 alpha-numeric characters).
@@ -59,9 +54,9 @@
                 * This information would potentially be stored in a cookie to identify a user during a
                 * session or series of sessions. Its uniqueness should not be depended on.
                 *
-                * @return String: Random set of 32 alpha-numeric characters
+                * @return {string} Random set of 32 alpha-numeric characters
                 */
-               this.generateRandomSessionId = function () {
+               generateRandomSessionId: function () {
                        var i, r,
                                id = '',
                                seed = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
                                id += seed.substring( r, r + 1 );
                        }
                        return id;
-               };
+               },
 
                /**
                 * Gets the current user's name.
                 *
-                * @return Mixed: User name string or null if users is anonymous
+                * @return {string|null} User name string or null if users is anonymous
                 */
-               this.getName = function () {
+               getName: function () {
                        return mw.config.get( 'wgUserName' );
-               };
+               },
 
                /**
-                * @deprecated since 1.20 use mw.user.getName() instead
+                * @inheritdoc #getName
+                * @deprecated since 1.20 use #getName instead
                 */
-               this.name = function () {
-                       return this.getName();
-               };
+               name: function () {
+                       return user.getName();
+               },
 
                /**
                 * Get date user registered, if available.
                 *
-                * @return {Date|false|null} date user registered, or false for anonymous users, or
+                * @return {Date|boolean|null} Date user registered, or false for anonymous users, or
                 *  null when data is not available
                 */
-               this.getRegistration = function () {
+               getRegistration: function () {
                        var registration = mw.config.get( 'wgUserRegistration' );
-                       if ( this.isAnon() ) {
+                       if ( user.isAnon() ) {
                                return false;
                        } else if ( registration === null ) {
                                // Information may not be available if they signed up before
                        } else {
                                return new Date( registration );
                        }
-               };
+               },
 
                /**
                 * Checks if the current user is anonymous.
                 *
-                * @return Boolean
+                * @return {boolean}
                 */
-               this.isAnon = function () {
+               isAnon: function () {
                        return user.getName() === null;
-               };
+               },
 
                /**
-                * @deprecated since 1.20 use mw.user.isAnon() instead
+                * @inheritdoc #isAnon
+                * @deprecated since 1.20 use #isAnon instead
                 */
-               this.anonymous = function () {
+               anonymous: function () {
                        return user.isAnon();
-               };
+               },
 
                /**
-                * Gets a random session ID automatically generated and kept in a cookie.
+                * Gets a random ID automatically generated and stored in a session cookie.
                 *
                 * This ID is ephemeral for everyone, staying in their browser only until they close
                 * their browser.
                 *
-                * @return String: User name or random session ID
+                * @return {string} Random session ID
                 */
-               this.sessionId = function () {
+               sessionId: function () {
                        var sessionId = $.cookie( 'mediaWiki.user.sessionId' );
                        if ( typeof sessionId === 'undefined' || sessionId === null ) {
                                sessionId = user.generateRandomSessionId();
                                $.cookie( 'mediaWiki.user.sessionId', sessionId, { 'expires': null, 'path': '/' } );
                        }
                        return sessionId;
-               };
+               },
 
                /**
                 * Gets the current user's name or the session ID
                 *
                 * @return {string} User name or random session ID
                 */
-               this.id = function () {
+               id: function () {
                        var name = user.getName();
                        if ( name ) {
                                return name;
                        }
                        return user.sessionId();
-               };
+               },
 
                /**
                 * Gets the user's bucket, placing them in one at random based on set odds if needed.
                 *
-                * @param key String: Name of bucket
-                * @param options Object: Bucket configuration options
-                * @param options.buckets Object: List of bucket-name/relative-probability pairs (required,
-                * must have at least one pair)
-                * @param options.version Number: Version of bucket test, changing this forces rebucketing
-                * (optional, default: 0)
-                * @param options.expires Number: Length of time (in days) until the user gets rebucketed
-                * (optional, default: 30)
-                * @return String: Bucket name - the randomly chosen key of the options.buckets object
-                *
-                * @example
                 *     mw.user.bucket( 'test', {
                 *         'buckets': { 'ignored': 50, 'control': 25, 'test': 25 },
                 *         'version': 1,
                 *         'expires': 7
                 *     } );
+                *
+                * @param {string} key Name of bucket
+                * @param {Object} options Bucket configuration options
+                * @param {Object} options.buckets List of bucket-name/relative-probability pairs (required,
+                *  must have at least one pair)
+                * @param {number} options.version Version of bucket test, changing this forces rebucketing
+                *  (optional, default: 0)
+                * @param {number} options.expires Length of time (in days) until the user gets rebucketed
+                *  (optional, default: 30)
+                * @return {string} Bucket name - the randomly chosen key of the options.buckets object
                 */
-               this.bucket = function ( key, options ) {
+               bucket: function ( key, options ) {
                        var cookie, parts, version, bucket,
                                range, k, rand, total;
 
                                );
                        }
                        return bucket;
-               };
+               },
 
                /**
                 * Gets the current user's groups.
+                *
+                * @param {Function} callback
                 */
-               this.getGroups = function ( callback ) {
+               getGroups: function ( callback ) {
                        getUserInfo( 'groups', callback );
-               };
+               },
 
                /**
                 * Gets the current user's rights.
+                *
+                * @param {Function} callback
                 */
-               this.getRights = function ( callback ) {
+               getRights: function ( callback ) {
                        getUserInfo( 'rights', callback );
-               };
-       }
-
-       // Extend the skeleton mw.user from mediawiki.js
-       // This is kind of ugly but we're stuck with this for b/c reasons
-       mw.user = new User( mw.user.options, mw.user.tokens );
+               }
+       };
 
 }( mediaWiki, jQuery ) );
index 977929d..b482823 100644 (file)
                                return util.$content;
                        } )();
 
-                       mw.hook( 'wikipage.content' ).fire( util.$content );
-
                        // Table of contents toggle
                        $tocTitle = $( '#toctitle' );
                        $tocToggleLink = $( '#togglelink' );
index d766b64..5ae8843 100644 (file)
@@ -541,13 +541,12 @@ class CologneBlueTemplate extends BaseTemplate {
                        $s .= wfMessage( 'qbfind' )->text() . ": ";
                }
 
-               $s .= "<input type='text' class=\"mw-searchInput\" name=\"search\" size=\"14\" value=\""
-                       . htmlspecialchars( substr( $search, 0, 256 ) ) . "\" />"
-                       . ( $which == 'footer' ? " " : "<br />" )
-                       . "<input type='submit' class=\"searchButton\" name=\"go\" value=\"" . wfMessage( 'searcharticle' )->escaped() . "\" />";
+               $s .= $this->makeSearchInput( array( 'class' => 'mw-searchInput', 'type' => 'text', 'size' => '14' ) );
+               $s .= ( $which == 'footer' ? " " : "<br />" );
+               $s .= $this->makeSearchButton( 'go', array( 'class' => 'searchButton' ) );
 
                if ( $wgUseTwoButtonsSearchForm ) {
-                       $s .= " <input type='submit' class=\"searchButton\" name=\"fulltext\" value=\"" . wfMessage( 'searchbutton' )->escaped() . "\" />\n";
+                       $s .= $this->makeSearchButton( 'fulltext', array( 'class' => 'searchButton' ) );
                } else {
                        $s .= '<div><a href="' . $action . '" rel="search">' . wfMessage( 'powersearch-legend' )->escaped() . "</a></div>\n";
                }
index ad309ba..d0305f0 100644 (file)
@@ -61,8 +61,7 @@ class SkinVector extends SkinTemplate {
        }
 
        /**
-        * Load skin and user CSS files in the correct order
-        * fixes bug 22916
+        * Loads skin and user CSS files.
         * @param $out OutputPage object
         */
        function setupSkinUserCss( OutputPage $out ) {
index 349638a..7bdfca5 100644 (file)
@@ -135,10 +135,6 @@ h1 {
        line-height: 21pt;
 }
 
-h1 .editsection {
-       font-size: 55.6%;
-}
-
 h1#firstHeading {
        padding-bottom: 0;
        margin-bottom: 0;
@@ -263,6 +259,7 @@ input.mw-searchInput {
        font-size: small;
        margin-right: 8px;
        text-align: right;
+       padding-left: 140px;
 }
 /* Override text justification (user preference), see bug 31990 */
 #linkcollection * {
index 121f9d1..ca74b38 100644 (file)
@@ -1,15 +1,23 @@
-// remote scripting library
-// (c) copyright 2005 modernmethod, inc
-window.sajax_debug_mode = false;
-window.sajax_request_type = 'GET';
+/**
+ * Remote Scripting Library
+ * Copyright 2005 modernmethod, inc
+ * Under the open source BSD license
+ * http://www.modernmethod.com/sajax/
+ */
+
+/*jshint camelcase:false, onevar:false */
+/*global alert */
+( function ( mw ) {
 
 /**
- * if sajax_debug_mode is true, this function outputs given the message into 
- * the element with id = sajax_debug; if no such element exists in the document, 
+ * if sajax_debug_mode is true, this function outputs given the message into
+ * the element with id = sajax_debug; if no such element exists in the document,
  * it is injected.
  */
-window.sajax_debug = function(text) {
-       if (!sajax_debug_mode) return false;
+function debug( text ) {
+       if ( !window.sajax_debug_mode ) {
+               return false;
+       }
 
        var e = document.getElementById( 'sajax_debug' );
 
@@ -33,36 +41,36 @@ window.sajax_debug = function(text) {
        e.appendChild( m );
 
        return true;
-};
+}
 
 /**
  * Compatibility wrapper for creating a new XMLHttpRequest object.
  */
-window.sajax_init_object = function() {
-       sajax_debug( 'sajax_init_object() called..' );
-       var A;
+function createXhr() {
+       debug( 'sajax_init_object() called..' );
+       var a;
        try {
                // Try the new style before ActiveX so we don't
                // unnecessarily trigger warnings in IE 7 when
                // set to prompt about ActiveX usage
-               A = new XMLHttpRequest();
-       } catch ( e ) {
+               a = new XMLHttpRequest();
+       } catch ( xhrE ) {
                try {
-                       A = new ActiveXObject( 'Msxml2.XMLHTTP' );
-               } catch ( e ) {
+                       a = new window.ActiveXObject( 'Msxml2.XMLHTTP' );
+               } catch ( msXmlE ) {
                        try {
-                               A = new ActiveXObject( 'Microsoft.XMLHTTP' );
-                       } catch ( oc ) {
-                               A = null;
+                               a = new window.ActiveXObject( 'Microsoft.XMLHTTP' );
+                       } catch ( msXhrE ) {
+                               a = null;
                        }
                }
        }
-       if ( !A ) {
-               sajax_debug( 'Could not create connection object.' );
+       if ( !a ) {
+               debug( 'Could not create connection object.' );
        }
 
-       return A;
-};
+       return a;
+}
 
 /**
  * Perform an AJAX call to MediaWiki. Calls are handled by AjaxDispatcher.php
@@ -80,13 +88,13 @@ window.sajax_init_object = function() {
  * (1, 2, 3) as the parameter list, and will show the result in the element
  * with id = showFoo
  */
-window.sajax_do_call = function(func_name, args, target) {
-       var i, x, n;
+function doAjaxRequest( func_name, args, target ) {
+       var i, x;
        var uri;
        var post_data;
        uri = mw.util.wikiScript() + '?action=ajax';
-       if ( sajax_request_type == 'GET' ) {
-               if ( uri.indexOf( '?' ) == -1 ) {
+       if ( window.sajax_request_type === 'GET' ) {
+               if ( uri.indexOf( '?' ) === -1 ) {
                        uri = uri + '?rs=' + encodeURIComponent( func_name );
                } else {
                        uri = uri + '&rs=' + encodeURIComponent( func_name );
@@ -102,47 +110,47 @@ window.sajax_do_call = function(func_name, args, target) {
                        post_data = post_data + '&rsargs[]=' + encodeURIComponent( args[i] );
                }
        }
-       x = sajax_init_object();
+       x = createXhr();
        if ( !x ) {
                alert( 'AJAX not supported' );
                return false;
        }
 
        try {
-               x.open( sajax_request_type, uri, true );
+               x.open( window.sajax_request_type, uri, true );
        } catch ( e ) {
-               if ( window.location.hostname == 'localhost' ) {
-                       alert( "Your browser blocks XMLHttpRequest to 'localhost', try using a real hostname for development/testing." );
+               if ( location.hostname === 'localhost' ) {
+                       alert( 'Your browser blocks XMLHttpRequest to "localhost", try using a real hostname for development/testing.' );
                }
                throw e;
        }
-       if ( sajax_request_type == 'POST' ) {
+       if ( window.sajax_request_type === 'POST' ) {
                x.setRequestHeader( 'Method', 'POST ' + uri + ' HTTP/1.1' );
                x.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
        }
        x.setRequestHeader( 'Pragma', 'cache=yes' );
        x.setRequestHeader( 'Cache-Control', 'no-transform' );
-       x.onreadystatechange = function() {
-               if ( x.readyState != 4 ) {
+       x.onreadystatechange = function () {
+               if ( x.readyState !== 4 ) {
                        return;
                }
 
-               sajax_debug( 'received (' + x.status + ' ' + x.statusText + ') ' + x.responseText );
+               debug( 'received (' + x.status + ' ' + x.statusText + ') ' + x.responseText );
 
                //if ( x.status != 200 )
                //      alert( 'Error: ' + x.status + ' ' + x.statusText + ': ' + x.responseText );
                //else
 
-               if ( typeof( target ) == 'function' ) {
+               if ( typeof target === 'function' ) {
                        target( x );
-               } else if ( typeof( target ) == 'object' ) {
-                       if ( target.tagName == 'INPUT' ) {
-                               if ( x.status == 200 ) {
+               } else if ( typeof target === 'object' ) {
+                       if ( target.tagName === 'INPUT' ) {
+                               if ( x.status === 200 ) {
                                        target.value= x.responseText;
                                }
                                //else alert( 'Error: ' + x.status + ' ' + x.statusText + ' (' + x.responseText + ')' );
                        } else {
-                               if ( x.status == 200 ) {
+                               if ( x.status === 200 ) {
                                        target.innerHTML = x.responseText;
                                } else {
                                        target.innerHTML = '<div class="error">Error: ' + x.status +
@@ -150,24 +158,37 @@ window.sajax_do_call = function(func_name, args, target) {
                                }
                        }
                } else {
-                       alert( 'bad target for sajax_do_call: not a function or object: ' + target );
+                       alert( 'Bad target for sajax_do_call: not a function or object: ' + target );
                }
        };
 
-       sajax_debug( func_name + ' uri = ' + uri + ' / post = ' + post_data );
+       debug( func_name + ' uri = ' + uri + ' / post = ' + post_data );
        x.send( post_data );
-       sajax_debug( func_name + ' waiting..' );
-       delete x;
+       debug( func_name + ' waiting..' );
 
        return true;
-};
+}
 
 /**
- * @return boolean whether the browser supports XMLHttpRequest
+ * @return {boolean} Whether the browser supports AJAX
  */
-window.wfSupportsAjax = function() {
-       var request = sajax_init_object();
+function wfSupportsAjax() {
+       var request = createXhr();
        var supportsAjax = request ? true : false;
-       delete request;
+       request = undefined;
        return supportsAjax;
-};
+}
+
+// Expose + Mark as deprecated
+var deprecationNotice = 'Sajax is deprecated, use jQuery.ajax or mediawiki.api instead.';
+
+// Variables
+mw.log.deprecate( window, 'sajax_debug_mode', false, deprecationNotice );
+mw.log.deprecate( window, 'sajax_request_type', 'GET', deprecationNotice );
+// Methods
+mw.log.deprecate( window, 'sajax_debug', debug, deprecationNotice );
+mw.log.deprecate( window, 'sajax_init_object', createXhr, deprecationNotice );
+mw.log.deprecate( window, 'sajax_do_call', doAjaxRequest, deprecationNotice );
+mw.log.deprecate( window, 'wfSupportsAjax', wfSupportsAjax, deprecationNotice );
+
+}( mediaWiki ) );
index a36fa48..de47157 100644 (file)
        padding: 5px;
        font-size: 95%;
 }
+
+/**
+ * We want to display the ToC element with intrinsic width. There are a few good
+ * old ways of making it this way, including floating it or making it a table.
+ * Both are clearly suboptimal.
+ *
+ * Thus we use display: inline-block. It is treated as an inline element with
+ * regard to text flow, but this isn't an issue here as the ToC is always
+ * sandwiched between other block-level elements.
+ */
+#toc,
+.toc {
+       display: -moz-inline-block;
+       display: inline-block;
+       zoom: 1;
+       *display: inline;
+       padding: 7px;
+}
+
+/* CSS for backwards-compatibility with cached page renders and creative uses in wikitext */
+table#toc,
+table.toc {
+       border-collapse: collapse;
+}
+/* Remove additional paddings inside table-cells that are not present in <div>s */
+table#toc td,
+table.toc td {
+       padding: 0;
+}
+
 #toc h2,
 .toc h2 {
        display: inline;
@@ -96,6 +126,7 @@ html .thumbcaption {
 div.magnify {
        border: none !important;
        background: none !important;
+       margin-left: 3px;
 }
 div.magnify a, div.magnify img {
        display: block;
index a1e809d..9feb973 100644 (file)
@@ -86,15 +86,9 @@ h6 {
 h1 {
        font-size: 188%;
 }
-h1 .editsection {
-       font-size: 53%;
-}
 h2 {
        font-size: 150%;
 }
-h2 .editsection {
-       font-size: 67%;
-}
 h3,
 h4,
 h5,
@@ -105,29 +99,15 @@ h6 {
 h3 {
        font-size: 132%;
 }
-h3 .editsection {
-       font-size: 76%;
-       font-weight: normal;
-}
 h4 {
        font-size: 116%;
 }
-h4 .editsection {
-       font-size: 86%;
-       font-weight: normal; }
 h5 {
-       font-size: 105%;
-}
-h5 .editsection {
-       font-weight: normal;
+       font-size: 108%;
 }
 h6 {
        font-size: 100%;
 }
-h6 .editsection {
-       font-size: 125%;
-       font-weight: normal;
-}
 
 /* Some space under the headers in the content area */
 h1,
index 9ea89d9..4bb99ae 100644 (file)
@@ -112,7 +112,6 @@ div.top,
 div#column-one,
 #colophon,
 .mw-editsection,
-.editsection,
 .toctoggle,
 .tochidden,
 div#f-poweredbyico,
index b1e28ab..73a6dba 100644 (file)
@@ -1,5 +1,5 @@
 ( function ( $ ) {
-       $( document ).ready( function () {
+       $( function () {
                var $label, labelText;
 
                function syncText() {
index 5bd40cb..598f190 100644 (file)
Binary files a/skins/common/images/icons/fileicon-psd.png and b/skins/common/images/icons/fileicon-psd.png differ
diff --git a/skins/common/images/question-small.png b/skins/common/images/question-small.png
new file mode 100644 (file)
index 0000000..590f0cb
Binary files /dev/null and b/skins/common/images/question-small.png differ
diff --git a/skins/common/images/question.svg b/skins/common/images/question.svg
new file mode 100644 (file)
index 0000000..2797305
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->\r
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\r
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\r
+        width="21.059px" height="21.06px" viewBox="0 0 21.059 21.06" enable-background="new 0 0 21.059 21.06" xml:space="preserve">\r
+<path fill="#575757" d="M10.529,0C4.715,0,0,4.714,0,10.529s4.715,10.53,10.529,10.53c5.816,0,10.529-4.715,10.529-10.53\r
+       S16.346,0,10.529,0z M10.527,16.767c-0.861,0-1.498-0.688-1.498-1.516c0-0.862,0.637-1.534,1.498-1.534c0.828,0,1.5,0.672,1.5,1.534\r
+       C12.027,16.078,11.355,16.767,10.527,16.767z M12.664,10.255c-0.723,0.568-1,0.931-1,1.739v0.5H9.459v-0.603\r
+       c0-1.517,0.449-2.136,1.154-2.688c0.707-0.552,1.139-0.845,1.139-1.637c0-0.672-0.414-1.051-1.24-1.051\r
+       c-0.707,0-1.328,0.189-1.982,0.638L7.479,5.346c0.861-0.604,1.93-1.034,3.342-1.034c1.912,0,3.516,1.051,3.516,3.066\r
+       C14.336,8.808,13.543,9.566,12.664,10.255z"/>\r
+</svg>\r
index fa86aee..b68a996 100644 (file)
@@ -20,16 +20,6 @@ h1, h2, h3, h4, h5, h6 {
 
 /* Now the custom parts */
 
-/* Make edit sections (which are inside h# tags) normal-sized */
-.editsection {
-       font-weight: normal;
-}
-h1 .editsection { font-size: 50%; }
-h2 .editsection { font-size: 66.7%; }
-h3 .editsection { font-size: 85.5%; }
-h5 .editsection { font-size: 120%; }
-h6 .editsection { font-size: 133%; }
-
 #footer { clear: both }
 /* images */
 /* @noflip */
@@ -94,6 +84,7 @@ div.magnify {
        float: right;
        border: none !important;
        background: none !important;
+       margin-left: 3px;
 }
 div.magnify a,
 div.magnify img {
@@ -131,6 +122,21 @@ img { border: none; }
        padding: 5px;
        font-size: 95%;
        text-align: center;
+       display: -moz-inline-block;
+       display: inline-block;
+       zoom: 1;
+       *display: inline;
+       padding: 7px;
+}
+/* CSS for backwards-compatibility with cached page renders and creative uses in wikitext */
+table#toc,
+table.toc {
+       border-collapse: collapse;
+}
+/* Remove additional paddings inside table-cells that are not present in <div>s */
+table#toc td,
+table.toc td {
+       padding: 0;
 }
 #toc h2,
 .toc h2 {
index fb140b2..4c68401 100644 (file)
@@ -127,21 +127,6 @@ span.texhtml {
        cursor: pointer;
 }
 
-/* Edit section links */
-/* Correct directionality when page dir is different from site/user dir */
-/* @noflip */
-.mw-content-ltr .editsection,
-.mw-content-rtl .mw-content-ltr .editsection {
-       float: right;
-       margin-left: 5px;
-}
-/* @noflip */
-.mw-content-rtl .editsection,
-.mw-content-ltr .mw-content-rtl .editsection {
-       float: left;
-       margin-right: 5px;
-}
-
 /**
  * File description page
  */
@@ -235,6 +220,32 @@ td.mw-label {
 .prefsection table.mw-htmlform-matrix {
        width: auto;
 }
+
+.mw-icon-question {
+       /* @embed */
+       background: url('images/question-small.png') no-repeat;
+       /* SVG support using a transparent gradient to guarantee cross-browser
+        * compatibility (browsers able to understand gradient syntax support also SVG)
+        * lifted from #pt-login css rule in skins/vector/screen.css */
+       /* @embed */
+       background: -webkit-linear-gradient(transparent, transparent), url('images/question.svg') no-repeat;
+       /* @embed */
+       background: linear-gradient(transparent, transparent), url('images/question.svg') no-repeat;
+       background-size: 13px 13px;
+       display: inline-block;
+       height: 13px;
+       width: 13px;
+       margin-left: 4px;
+}
+
+.mw-icon-question:lang(ar),
+.mw-icon-question:lang(fa),
+.mw-icon-question:lang(ur) {
+       -webkit-transform: scaleX(-1);
+       -ms-transform: scaleX(-1);
+       transform: scaleX(-1);
+}
+
 td.mw-submit {
        white-space: nowrap;
 }
@@ -1095,7 +1106,8 @@ table.floatleft {
        z-index: 99;
 }
 
-.mw-editsection, .editsection, .toctoggle {
+.mw-editsection,
+.toctoggle {
        -moz-user-select: none;
        -webkit-user-select: none;
        -ms-user-select: none;
index df819e1..4246e82 100644 (file)
@@ -307,6 +307,6 @@ window.wgUploadLicenseObj = {
 
 };
 
-$( document ).ready( uploadSetup );
+$( uploadSetup );
 
 }( mediaWiki, jQuery ) );
index 8c01ba3..488c37d 100644 (file)
@@ -492,8 +492,6 @@ window.removeHandler = function( element, remove, handler ) {
                element.detachEvent( 'on' + remove, handler );
        }
 };
-// note: all skins should call runOnloadHook() at the end of html output,
-//      so the below should be redundant. It's there just in case.
 window.hookEvent( 'load', window.runOnloadHook );
 
 if ( isIE6 ) {
index f5650b5..dc236ea 100644 (file)
@@ -33,7 +33,6 @@ a.stub {
 #footer,
 #siteNotice,
 .mw-editsection,
-.editsection,
 .toctoggle {
        display: none;
 }
index 7e7758a..1466710 100644 (file)
@@ -58,8 +58,7 @@ body {
        font-variant: small-caps;
 }
 
-#p-personal h3,
-#p-personal h5 {
+#p-personal h3 {
        display: none;
 }
 
@@ -177,8 +176,7 @@ textarea {
        margin-top: .4em;
 }
 
-.portlet h3,
-.portlet h5 {
+.portlet h3 {
        padding: 0.1em 0 0.3em 1em;
        margin: 0 0 0 0;
        background-color: #dddddd;
@@ -252,8 +250,7 @@ ul {
        color: white;
 }
 
-#p-cactions h3,
-#p-cactions h5 {
+#p-cactions h3 {
        display: none;
 }
 
@@ -340,10 +337,6 @@ a.new:visited {
        color: #a55858;
 }
 
-span.editsection {
-       font-size: small;
-}
-
 h1, h2 {
        border-bottom: solid 1px #003366;
 }
@@ -521,6 +514,7 @@ div.magnify {
        float: right;
        border: none !important;
        background: none !important;
+       margin-left: 3px;
 }
 div.magnify a, div.magnify img {
        display: block;
@@ -550,6 +544,23 @@ img.thumbborder {
        border-spacing: 0;
        background-color: #f0f0f0;
        border: solid 1px #bbbbbb;
+       display: -moz-inline-block;
+       display: inline-block;
+       zoom: 1;
+       *display: inline;
+       padding: 7px;
+}
+
+/* CSS for backwards-compatibility with cached page renders and creative uses in wikitext */
+table#toc,
+table.toc {
+       border-collapse: collapse;
+}
+
+/* Remove additional paddings inside table-cells that are not present in <div>s */
+table#toc td,
+table.toc td {
+       padding: 0;
 }
 
 #toc tr, #toc td {
index 6e0f8b3..e97bbdb 100644 (file)
@@ -4,7 +4,6 @@
 #jump-to-nav,
 #footer,
 .mw-editsection,
-span.editsection,
 .noprint {
        display: none;
 }
index 0ec584a..799ebac 100644 (file)
Binary files a/skins/monobook/wiki-indexed.png and b/skins/monobook/wiki-indexed.png differ
diff --git a/skins/vector/collapsibleTabs.js b/skins/vector/collapsibleTabs.js
new file mode 100644 (file)
index 0000000..eb84325
--- /dev/null
@@ -0,0 +1,210 @@
+/**
+ * Collapsible tabs jQuery Plugin
+ */
+( function ( $ ) {
+       var rtl = $( 'html' ).attr( 'dir' ) === 'rtl';
+       $.fn.collapsibleTabs = function ( options ) {
+               // return if the function is called on an empty jquery object
+               if ( !this.length ) {
+                       return this;
+               }
+               // Merge options into the defaults
+               var $settings = $.extend( {}, $.collapsibleTabs.defaults, options );
+
+               this.each( function () {
+                       var $el = $( this );
+                       // add the element to our array of collapsible managers
+                       $.collapsibleTabs.instances = ( $.collapsibleTabs.instances.length === 0 ?
+                               $el : $.collapsibleTabs.instances.add( $el ) );
+                       // attach the settings to the elements
+                       $el.data( 'collapsibleTabsSettings', $settings );
+                       // attach data to our collapsible elements
+                       $el.children( $settings.collapsible ).each( function () {
+                               $.collapsibleTabs.addData( $( this ) );
+                       } );
+               } );
+
+               // if we haven't already bound our resize hanlder, bind it now
+               if ( !$.collapsibleTabs.boundEvent ) {
+                       $( window )
+                               .delayedBind( '500', 'resize', function ( ) {
+                                       $.collapsibleTabs.handleResize();
+                               } );
+               }
+               // call our resize handler to setup the page
+               $.collapsibleTabs.handleResize();
+               return this;
+       };
+       /**
+        * Returns the amount of horizontal distance between the two tabs groups
+        * (#left-navigation and #right-navigation), in pixels. If negative, this
+        * means that the tabs overlap, and the value is the width of overlapping
+        * parts.
+        *
+        * Used in default expandCondition and collapseCondition.
+        *
+        * @return {Numeric} distance/overlap in pixels
+        */
+       function calculateTabDistance() {
+               var $leftTab, $rightTab, leftEnd, rightStart;
+
+               // In RTL, #right-navigation is actually on the left and vice versa.
+               // Hooray for descriptive naming.
+               if ( !rtl ) {
+                       $leftTab = $( '#left-navigation' );
+                       $rightTab = $( '#right-navigation' );
+               } else {
+                       $leftTab = $( '#right-navigation' );
+                       $rightTab = $( '#left-navigation' );
+               }
+
+               leftEnd = $leftTab.offset().left + $leftTab.width();
+               rightStart = $rightTab.offset().left;
+
+               return rightStart - leftEnd;
+       }
+       $.collapsibleTabs = {
+               instances: [],
+               boundEvent: null,
+               defaults: {
+                       expandedContainer: '#p-views ul',
+                       collapsedContainer: '#p-cactions ul',
+                       collapsible: 'li.collapsible',
+                       shifting: false,
+                       expandCondition: function ( eleWidth ) {
+                               // If there's at least eleWidth pixels free space, expand.
+                               return calculateTabDistance() >= eleWidth;
+                       },
+                       collapseCondition: function () {
+                               // If there's an overlap, collapse.
+                               return calculateTabDistance() < 0;
+                       }
+               },
+               addData: function ( $collapsible ) {
+                       var $settings = $collapsible.parent().data( 'collapsibleTabsSettings' );
+                       if ( $settings !== null ) {
+                               $collapsible.data( 'collapsibleTabsSettings', {
+                                       expandedContainer: $settings.expandedContainer,
+                                       collapsedContainer: $settings.collapsedContainer,
+                                       expandedWidth: $collapsible.width(),
+                                       prevElement: $collapsible.prev()
+                               } );
+                       }
+               },
+               getSettings: function ( $collapsible ) {
+                       var $settings = $collapsible.data( 'collapsibleTabsSettings' );
+                       if ( $settings === undefined ) {
+                               $.collapsibleTabs.addData( $collapsible );
+                               $settings = $collapsible.data( 'collapsibleTabsSettings' );
+                       }
+                       return $settings;
+               },
+               /**
+                * @param {jQuery.Event} e
+                */
+               handleResize: function () {
+                       $.collapsibleTabs.instances.each( function () {
+                               var $el = $( this ),
+                                       data = $.collapsibleTabs.getSettings( $el );
+
+                               if ( data.shifting ) {
+                                       return;
+                               }
+
+                               // if the two navigations are colliding
+                               if ( $el.children( data.collapsible ).length > 0 && data.collapseCondition() ) {
+
+                                       $el.trigger( 'beforeTabCollapse' );
+                                       // move the element to the dropdown menu
+                                       $.collapsibleTabs.moveToCollapsed( $el.children( data.collapsible + ':last' ) );
+                               }
+
+                               // if there are still moveable items in the dropdown menu,
+                               // and there is sufficient space to place them in the tab container
+                               if ( $( data.collapsedContainer + ' ' + data.collapsible ).length > 0 &&
+                                               data.expandCondition( $.collapsibleTabs.getSettings( $( data.collapsedContainer ).children(
+                                                               data.collapsible + ':first' ) ).expandedWidth ) ) {
+                                       //move the element from the dropdown to the tab
+                                       $el.trigger( 'beforeTabExpand' );
+                                       $.collapsibleTabs
+                                               .moveToExpanded( data.collapsedContainer + ' ' + data.collapsible + ':first' );
+                               }
+                       });
+               },
+               moveToCollapsed: function ( ele ) {
+                       var data, expContainerSettings, target,
+                               $moving = $( ele );
+
+                       data = $.collapsibleTabs.getSettings( $moving );
+                       if ( !data ) {
+                               return;
+                       }
+                       expContainerSettings = $.collapsibleTabs.getSettings( $( data.expandedContainer ) );
+                       if ( !expContainerSettings ) {
+                               return;
+                       }
+                       expContainerSettings.shifting = true;
+
+                       // Remove the element from where it's at and put it in the dropdown menu
+                       target = data.collapsedContainer;
+                       $moving.css( 'position', 'relative' )
+                               .css( ( rtl ? 'left' : 'right' ), 0 )
+                               .animate( { width: '1px' }, 'normal', function () {
+                                       var data, expContainerSettings;
+                                       $( this ).hide();
+                                       // add the placeholder
+                                       $( '<span class="placeholder" style="display: none;"></span>' ).insertAfter( this );
+                                       // XXX: 'data' is undefined here, should the 'data' from the outer scope have
+                                       // a different name?
+                                       $( this ).detach().prependTo( target ).data( 'collapsibleTabsSettings', data );
+                                       $( this ).attr( 'style', 'display: list-item;' );
+                                       data = $.collapsibleTabs.getSettings( $( ele ) );
+                                       if ( data ) {
+                                               expContainerSettings = $.collapsibleTabs.getSettings( $( data.expandedContainer ) );
+                                               if ( expContainerSettings ) {
+                                                       expContainerSettings.shifting = false;
+                                                       $.collapsibleTabs.handleResize();
+                                               }
+                                       }
+                               } );
+               },
+               moveToExpanded: function ( ele ) {
+                       var data, expContainerSettings, $target, expandedWidth,
+                               $moving = $( ele );
+
+                       data = $.collapsibleTabs.getSettings( $moving );
+                       if ( !data ) {
+                               return;
+                       }
+                       expContainerSettings = $.collapsibleTabs.getSettings( $( data.expandedContainer ) );
+                       if ( !expContainerSettings ) {
+                               return;
+                       }
+                       expContainerSettings.shifting = true;
+
+                       // grab the next appearing placeholder so we can use it for replacing
+                       $target = $( data.expandedContainer ).find( 'span.placeholder:first' );
+                       expandedWidth = data.expandedWidth;
+                       $moving.css( 'position', 'relative' ).css( ( rtl ? 'right' : 'left' ), 0 ).css( 'width', '1px' );
+                       $target.replaceWith(
+                               $moving
+                               .detach()
+                               .css( 'width', '1px' )
+                               .data( 'collapsibleTabsSettings', data )
+                               .animate( { width: expandedWidth + 'px' }, 'normal', function () {
+                                       $( this ).attr( 'style', 'display: block;' );
+                                       var data, expContainerSettings;
+                                       data = $.collapsibleTabs.getSettings( $( this ) );
+                                       if ( data ) {
+                                               expContainerSettings = $.collapsibleTabs.getSettings( $( data.expandedContainer ) );
+                                               if ( expContainerSettings ) {
+                                                       expContainerSettings.shifting = false;
+                                                       $.collapsibleTabs.handleResize();
+                                               }
+                                       }
+                               } )
+                       );
+               }
+       };
+
+}( jQuery ) );
diff --git a/skins/vector/images/arrow-down-focus-icon.svg b/skins/vector/images/arrow-down-focus-icon.svg
new file mode 100644 (file)
index 0000000..f2edf26
--- /dev/null
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.1"
+   width="22"
+   height="16"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="translate(0,-1036.3622)"
+     id="layer1">
+    <path
+       d="M 10.028624,3.7729932 8.1976442,6.9443424 6.3666649,3.7729932 z"
+       transform="matrix(2.7307791,0,0,1.576616,-11.885956,1036.4136)"
+       id="path2985"
+       style="fill:#929292;fill-opacity:1;stroke:none" />
+  </g>
+</svg>
diff --git a/skins/vector/images/arrow-down-icon.svg b/skins/vector/images/arrow-down-icon.svg
new file mode 100644 (file)
index 0000000..9218ff2
--- /dev/null
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.1"
+   width="22"
+   height="16"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="translate(0,-1036.3622)"
+     id="layer1">
+    <path
+       d="M 10.028624,3.7729932 8.1976442,6.9443424 6.3666649,3.7729932 z"
+       transform="matrix(2.7307791,0,0,1.576616,-11.885956,1036.4136)"
+       id="path2985"
+       style="fill:#797979;fill-opacity:1;stroke:none" />
+  </g>
+</svg>
index eb4a4dd..005c34e 100644 (file)
@@ -61,8 +61,7 @@ div#mw-head {
        right: 0;
        width: 100%;
 }
-div#mw-head h3,
-div#mw-head h5 {
+div#mw-head h3 {
        margin: 0;
        padding: 0;
 }
@@ -78,8 +77,7 @@ div.emptyPortlet {
        /* Display on top of page tabs - bugs 37158, 48078 */
        z-index: 100;
 }
-#p-personal h3,
-#p-personal h5 {
+#p-personal h3 {
        display: none;
 }
 #p-personal ul {
@@ -112,9 +110,7 @@ div.emptyPortlet {
 }
 /* Navigation Labels */
 div.vectorTabs h3,
-div.vectorTabs h5,
-div.vectorMenu h3 span,
-div.vectorMenu h5 span {
+div.vectorMenu h3 span {
        display: none;
 }
 /* Namespaces and Views */
@@ -219,6 +215,12 @@ div.vectorMenu {
        float: left;
        /* @embed */
        background-image: url(images/arrow-down-icon.png);
+       /* SVG support using a transparent gradient to guarantee cross-browser
+        * compatibility (browsers able to understand gradient syntax support also SVG) */
+       /* @embed */
+       background-image: -webkit-linear-gradient(transparent, transparent), url(images/arrow-down-icon.svg);
+       /* @embed */
+       background-image: linear-gradient(transparent, transparent), url(images/arrow-down-icon.svg);
        background-position: 100% 60%;
        background-repeat: no-repeat;
        cursor: pointer;
@@ -226,6 +228,12 @@ div.vectorMenu {
 div.vectorMenuFocus {
        /* @embed */
        background-image: url(images/arrow-down-focus-icon.png);
+       /* SVG support using a transparent gradient to guarantee cross-browser
+        * compatibility (browsers able to understand gradient syntax support also SVG) */
+       /* @embed */
+       background-image: -webkit-linear-gradient(transparent, transparent), url(images/arrow-down-focus-icon.svg);
+       /* @embed */
+       background-image: linear-gradient(transparent, transparent), url(images/arrow-down-focus-icon.svg);
        background-position: 100% 60%;
 }
 /* @noflip */
@@ -234,22 +242,19 @@ body.rtl div.vectorMenu {
 }
 /* OVERRIDDEN BY COMPLIANT BROWSERS */
 /* @noflip */
-div#mw-head div.vectorMenu h3,
-div#mw-head div.vectorMenu h5 {
+div#mw-head div.vectorMenu h3 {
        float: left;
        /* @embed */
        background-image: url(images/tab-break.png);
        background-repeat: no-repeat;
 }
 /* This will be flipped - unlike the one above it */
-div#mw-head div.vectorMenu h3,
-div#mw-head div.vectorMenu h5 {
+div#mw-head div.vectorMenu h3 {
        background-position: bottom left;
        margin-left: -1px;
 }
 /* IGNORED BY IE6 */
-div#mw-head div.vectorMenu > h3,
-div#mw-head div.vectorMenu > h5 {
+div#mw-head div.vectorMenu > h3 {
        background-image: none;
 }
 div#mw-head div.vectorMenu h4,
@@ -264,8 +269,7 @@ div.vectorMenu#p-variants #mw-vector-current-variant {
 }
 /* OVERRIDDEN BY COMPLIANT BROWSERS */
 /* @noflip */
-div.vectorMenu h3 a,
-div.vectorMenu h5 a {
+div.vectorMenu h3 a {
        display: inline-block;
        width: 24px;
        height: 1.9em;
@@ -275,13 +279,11 @@ div.vectorMenu h5 a {
        background-repeat: no-repeat;
 }
 /* This will be flipped - unlike the one above it */
-div.vectorMenu h3 a,
-div.vectorMenu h5 a {
+div.vectorMenu h3 a {
        background-position: bottom right;
 }
 /* IGNORED BY IE6 */
-div.vectorMenu h3 > a,
-div.vectorMenu h5 > a {
+div.vectorMenu h3 > a {
        display: block;
 }
 div.vectorMenu div.menu {
@@ -360,8 +362,7 @@ div.vectorMenu li.selected a:visited {
        text-decoration: none;
 }
 /* Search */
-#p-search h3,
-#p-search h5 {
+#p-search h3 {
        display: none;
 }
 /* @noflip */
@@ -478,8 +479,7 @@ div#mw-panel div.portal {
        padding-bottom: 1.5em;
        direction: ltr;
 }
-div#mw-panel div.portal h3,
-div#mw-panel div.portal h5 {
+div#mw-panel div.portal h3 {
        font-weight: normal;
        color: #444;
        padding: 0.25em;
@@ -688,10 +688,6 @@ div#content {
        font-size: 0.8em;
 }
 
-.editsection {
-       float: right;
-}
-
 ul {
        list-style-type: disc;
        /* @embed */
@@ -808,10 +804,12 @@ div#bodyContent {
 }
 
 /* mediawiki.notification */
-.skin-vector #mw-notification-area {
-       top: 7em;
+.skin-vector .mw-notification-area {
        font-size: 0.8em;
 }
+.skin-vector .mw-notification-area-layout {
+       top: 7em;
+}
 .skin-vector .mw-notification {
        background-color: #fff;
        background-color: rgba(255, 255, 255, 0.93);
index 4427d9a..ff3332f 100644 (file)
@@ -18,4 +18,32 @@ jQuery( function ( $ ) {
                                $el.removeClass( 'vectorMenuFocus' );
                        } );
        } );
+
+       /**
+        * Collapsible tabs for Vector
+        */
+       var $cactions = $( '#p-cactions' );
+
+       // Bind callback functions to animate our drop down menu in and out
+       // and then call the collapsibleTabs function on the menu
+       $( '#p-views ul' )
+               .bind( 'beforeTabCollapse', function () {
+                       // If the dropdown was hidden, show it
+                       if ( $cactions.hasClass( 'emptyPortlet' ) ) {
+                               $cactions
+                                       .removeClass( 'emptyPortlet' )
+                                       .find( 'h3' )
+                                               .css( 'width', '1px' ).animate( { 'width': '24px' }, 390 );
+                       }
+               } )
+               .bind( 'beforeTabExpand', function () {
+                       // If we're removing the last child node right now, hide the dropdown
+                       if ( $cactions.find( 'li' ).length === 1 ) {
+                               $cactions.find( 'h3' ).animate( { 'width': '1px' }, 390, function () {
+                                       $( this ).attr( 'style', '' )
+                                               .parent().addClass( 'emptyPortlet' );
+                               });
+                       }
+               } )
+               .collapsibleTabs();
 } );
diff --git a/tests/RunSeleniumTests.php b/tests/RunSeleniumTests.php
deleted file mode 100644 (file)
index c25dff7..0000000
+++ /dev/null
@@ -1,258 +0,0 @@
-#!/usr/bin/env php
-<?php
-/**
- * @file
- * @ingroup Maintenance
- * @copyright Copyright © Wikimedia Deuschland, 2009
- * @author Hallo Welt! Medienwerkstatt GmbH
- * @author Markus Glaser, Dan Nessett, Priyanka Dhanda
- * initial idea by Daniel Kinzler
- *
- * 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
- */
-
-if ( PHP_SAPI != 'cli' ) {
-       die( "Run me from the command line please.\n" );
-}
-
-define( 'SELENIUMTEST', true );
-
-require __DIR__ . '/../maintenance/Maintenance.php';
-
-require_once 'PHPUnit/Runner/Version.php';
-if ( version_compare( PHPUnit_Runner_Version::id(), '3.5.0', '>=' ) ) {
-       # PHPUnit 3.5.0 introduced a nice autoloader based on class name
-       require_once 'PHPUnit/Autoload.php';
-} else {
-       # Keep the old pre PHPUnit 3.5.0 behavior for compatibility
-       require_once 'PHPUnit/TextUI/Command.php';
-}
-
-require_once 'PHPUnit/Extensions/SeleniumTestCase.php';
-include_once 'PHPUnit/Util/Log/JUnit.php';
-
-require_once __DIR__ . "/selenium/SeleniumServerManager.php";
-
-class SeleniumTester extends Maintenance {
-       protected $selenium;
-       protected $serverManager;
-       protected $seleniumServerExecPath;
-
-       public function __construct() {
-               parent::__construct();
-               $this->mDescription = "Selenium Test Runner. For documentation, visit http://www.mediawiki.org/wiki/SeleniumFramework";
-               $this->addOption( 'port', 'Port used by selenium server. Default: 4444', false, true );
-               $this->addOption( 'host', 'Host selenium server. Default: $wgServer . $wgScriptPath', false, true );
-               $this->addOption( 'testBrowser', 'The browser used during testing. Default: firefox', false, true );
-               $this->addOption( 'wikiUrl', 'The Mediawiki installation to point to. Default: http://localhost', false, true );
-               $this->addOption( 'username', 'The login username for sunning tests. Default: empty', false, true );
-               $this->addOption( 'userPassword', 'The login password for running tests. Default: empty', false, true );
-               $this->addOption( 'seleniumConfig', 'Location of the selenium config file. Default: empty', false, true );
-               $this->addOption( 'list-browsers', 'List the available browsers.' );
-               $this->addOption( 'verbose', 'Be noisier.' );
-               $this->addOption( 'startserver', 'Start Selenium Server (on localhost) before the run.' );
-               $this->addOption( 'stopserver', 'Stop Selenium Server (on localhost) after the run.' );
-               $this->addOption( 'jUnitLogFile', 'Log results in a specified JUnit log file. Default: empty', false, true );
-               $this->addOption( 'runAgainstGrid', 'The test will be run against a Selenium Grid. Default: false.', false, true );
-               $this->deleteOption( 'dbpass' );
-               $this->deleteOption( 'dbuser' );
-               $this->deleteOption( 'globals' );
-               $this->deleteOption( 'wiki' );
-       }
-
-       public function listBrowsers() {
-               $desc = "Available browsers:\n";
-
-               foreach ( $this->selenium->getAvailableBrowsers() as $k => $v ) {
-                       $desc .= "  $k => $v\n";
-               }
-
-               echo $desc;
-       }
-
-       protected function startServer() {
-               if ( $this->seleniumServerExecPath == '' ) {
-                       die( "The selenium server exec path is not set in " .
-                               "selenium_settings.ini. Cannot start server \n" .
-                               "as requested - terminating RunSeleniumTests\n" );
-               }
-               $this->serverManager = new SeleniumServerManager( 'true',
-                       $this->selenium->getPort(),
-                       $this->seleniumServerExecPath );
-               switch ( $this->serverManager->start() ) {
-                       case 'started':
-                               break;
-                       case 'failed':
-                               die( "Unable to start the Selenium Server - " .
-                                       "terminating RunSeleniumTests\n" );
-                       case 'running':
-                               echo "Warning: The Selenium Server is " .
-                                       "already running\n";
-                               break;
-               }
-
-               return;
-       }
-
-       protected function stopServer() {
-               if ( !isset( $this->serverManager ) ) {
-                       echo "Warning: Request to stop Selenium Server, but it was " .
-                               "not stared by RunSeleniumTests\n" .
-                               "RunSeleniumTests cannot stop a Selenium Server it " .
-                               "did not start\n";
-               } else {
-                       switch ( $this->serverManager->stop() ) {
-                               case 'stopped':
-                                       break;
-                               case 'failed':
-                                       echo "unable to stop the Selenium Server\n";
-                       }
-               }
-               return;
-       }
-
-       protected function runTests( $seleniumTestSuites = array() ) {
-               $result = new PHPUnit_Framework_TestResult;
-               $result->addListener( new SeleniumTestListener( $this->selenium->getLogger() ) );
-               if ( $this->selenium->getJUnitLogFile() ) {
-                       $jUnitListener = new PHPUnit_Util_Log_JUnit( $this->selenium->getJUnitLogFile(), true );
-                       $result->addListener( $jUnitListener );
-               }
-
-               foreach ( $seleniumTestSuites as $testSuiteName => $testSuiteFile ) {
-                       require $testSuiteFile;
-                       $suite = new $testSuiteName();
-                       $suite->setName( $testSuiteName );
-                       $suite->addTests();
-
-                       try {
-                               $suite->run( $result );
-                       } catch ( Testing_Selenium_Exception $e ) {
-                               $suite->tearDown();
-                               throw new MWException( $e->getMessage() );
-                       }
-               }
-
-               if ( $this->selenium->getJUnitLogFile() ) {
-                       $jUnitListener->flush();
-               }
-       }
-
-       public function execute() {
-               global $wgServer, $wgScriptPath, $wgHooks;
-
-               $seleniumSettings = array();
-               $seleniumBrowsers = array();
-               $seleniumTestSuites = array();
-
-               $configFile = $this->getOption( 'seleniumConfig', '' );
-               if ( strlen( $configFile ) > 0 ) {
-                       $this->output( "Using Selenium Configuration file: " . $configFile . "\n" );
-                       SeleniumConfig::getSeleniumSettings( $seleniumSettings,
-                               $seleniumBrowsers,
-                               $seleniumTestSuites,
-                               $configFile );
-               } elseif ( !isset( $wgHooks['SeleniumSettings'] ) ) {
-                       $this->output( "No command line, configuration file or configuration hook found.\n" );
-                       SeleniumConfig::getSeleniumSettings( $seleniumSettings,
-                               $seleniumBrowsers,
-                               $seleniumTestSuites
-                       );
-               } else {
-                       $this->output( "Using 'SeleniumSettings' hook for configuration.\n" );
-                       wfRunHooks( 'SeleniumSettings', array( $seleniumSettings,
-                               $seleniumBrowsers,
-                               $seleniumTestSuites ) );
-               }
-
-               // State for starting/stopping the Selenium server has nothing to do with the Selenium
-               // class. Keep this state local to SeleniumTester class. Using getOption() is clumsy, but
-               // the Maintenance class does not have a setOption()
-               if ( !isset( $seleniumSettings['startserver'] ) ) {
-                       $this->getOption( 'startserver', true );
-               }
-               if ( !isset( $seleniumSettings['stopserver'] ) ) {
-                       $this->getOption( 'stopserver', true );
-               }
-               if ( !isset( $seleniumSettings['seleniumserverexecpath'] ) ) {
-                       $seleniumSettings['seleniumserverexecpath'] = '';
-               }
-               $this->seleniumServerExecPath = $seleniumSettings['seleniumserverexecpath'];
-
-               //set reasonable defaults if we did not find the settings
-               if ( !isset( $seleniumBrowsers ) ) {
-                       $seleniumBrowsers = array( 'firefox' => '*firefox' );
-               }
-               if ( !isset( $seleniumSettings['host'] ) ) {
-                       $seleniumSettings['host'] = $wgServer . $wgScriptPath;
-               }
-               if ( !isset( $seleniumSettings['port'] ) ) {
-                       $seleniumSettings['port'] = '4444';
-               }
-               if ( !isset( $seleniumSettings['wikiUrl'] ) ) {
-                       $seleniumSettings['wikiUrl'] = 'http://localhost';
-               }
-               if ( !isset( $seleniumSettings['username'] ) ) {
-                       $seleniumSettings['username'] = '';
-               }
-               if ( !isset( $seleniumSettings['userPassword'] ) ) {
-                       $seleniumSettings['userPassword'] = '';
-               }
-               if ( !isset( $seleniumSettings['testBrowser'] ) ) {
-                       $seleniumSettings['testBrowser'] = 'firefox';
-               }
-               if ( !isset( $seleniumSettings['jUnitLogFile'] ) ) {
-                       $seleniumSettings['jUnitLogFile'] = false;
-               }
-               if ( !isset( $seleniumSettings['runAgainstGrid'] ) ) {
-                       $seleniumSettings['runAgainstGrid'] = false;
-               }
-
-               // Setup Selenium class
-               $this->selenium = new Selenium();
-               $this->selenium->setAvailableBrowsers( $seleniumBrowsers );
-               $this->selenium->setRunAgainstGrid( $this->getOption( 'runAgainstGrid', $seleniumSettings['runAgainstGrid'] ) );
-               $this->selenium->setUrl( $this->getOption( 'wikiUrl', $seleniumSettings['wikiUrl'] ) );
-               $this->selenium->setBrowser( $this->getOption( 'testBrowser', $seleniumSettings['testBrowser'] ) );
-               $this->selenium->setPort( $this->getOption( 'port', $seleniumSettings['port'] ) );
-               $this->selenium->setHost( $this->getOption( 'host', $seleniumSettings['host'] ) );
-               $this->selenium->setUser( $this->getOption( 'username', $seleniumSettings['username'] ) );
-               $this->selenium->setPass( $this->getOption( 'userPassword', $seleniumSettings['userPassword'] ) );
-               $this->selenium->setVerbose( $this->hasOption( 'verbose' ) );
-               $this->selenium->setJUnitLogFile( $this->getOption( 'jUnitLogFile', $seleniumSettings['jUnitLogFile'] ) );
-
-               if ( $this->hasOption( 'list-browsers' ) ) {
-                       $this->listBrowsers();
-                       exit( 0 );
-               }
-               if ( $this->hasOption( 'startserver' ) ) {
-                       $this->startServer();
-               }
-
-               $logger = new SeleniumTestConsoleLogger;
-               $this->selenium->setLogger( $logger );
-
-               $this->runTests( $seleniumTestSuites );
-
-               if ( $this->hasOption( 'stopserver' ) ) {
-                       $this->stopServer();
-               }
-       }
-}
-
-$maintClass = "SeleniumTester";
-
-require_once RUN_MAINTENANCE_IF_MAIN;
index 9f8887b..d7237f7 100644 (file)
@@ -73,6 +73,7 @@ $wgAutoloadClasses += array(
 
        # tests/phpunit/includes/parser
        'NewParserTest' => "$testDir/phpunit/includes/parser/NewParserTest.php",
+       'MediaWikiParserTest' => "$testDir/phpunit/includes/parser/MediaWikiParserTest.php",
 
        # tests/phpunit/includes/libs
        'GenericArrayObjectTest' => "$testDir/phpunit/includes/libs/GenericArrayObjectTest.php",
@@ -85,6 +86,8 @@ $wgAutoloadClasses += array(
        'MockFSFile' => "$testDir/phpunit/mocks/filebackend/MockFSFile.php",
        'MockFileBackend' => "$testDir/phpunit/mocks/filebackend/MockFileBackend.php",
        'MockBitmapHandler' => "$testDir/phpunit/mocks/media/MockBitmapHandler.php",
+       'MockImageHandler' => "$testDir/phpunit/mocks/media/MockBitmapHandler.php",
+       'MockSvgHandler' => "$testDir/phpunit/mocks/media/MockBitmapHandler.php",
 
        # tests/phpunit/languages
        'LanguageClassesTestCase' => "$testDir/phpunit/languages/LanguageClassesTestCase.php",
@@ -95,15 +98,4 @@ $wgAutoloadClasses += array(
        # tests/parser
        'ParserTest' => "$testDir/parser/parserTest.inc",
        'ParserTestParserHook' => "$testDir/parser/parserTestsParserHook.php",
-
-       # tests/selenium
-       'Selenium' => "$testDir/selenium/Selenium.php",
-       'SeleniumLoader' => "$testDir/selenium/SeleniumLoader.php",
-       'SeleniumTestCase' => "$testDir/selenium/SeleniumTestCase.php",
-       'SeleniumTestConsoleLogger' => "$testDir/selenium/SeleniumTestConsoleLogger.php",
-       'SeleniumTestConstants' => "$testDir/selenium/SeleniumTestConstants.php",
-       'SeleniumTestHTMLLogger' => "$testDir/selenium/SeleniumTestHTMLLogger.php",
-       'SeleniumTestListener' => "$testDir/selenium/SeleniumTestListener.php",
-       'SeleniumTestSuite' => "$testDir/selenium/SeleniumTestSuite.php",
-       'SeleniumConfig' => "$testDir/selenium/SeleniumConfig.php",
 );
index 972ad8f..0469138 100644 (file)
@@ -1,6 +1,8 @@
 <?php
 /**
- * Helper code for the MediaWiki parser test suite.
+ * Helper code for the MediaWiki parser test suite. Some code is duplicated
+ * in PHPUnit's NewParserTests.php, so you'll probably want to update both
+ * at the same time.
  *
  * Copyright © 2004, 2010 Brion Vibber <brion@pobox.com>
  * http://www.mediawiki.org/
@@ -210,6 +212,61 @@ class ParserTest {
                        $wgStyleDirectory = "$IP/skins";
                }
 
+               self::setupInterwikis();
+       }
+
+       /**
+        * Insert hardcoded interwiki in the lookup table.
+        *
+        * This function insert a set of well known interwikis that are used in
+        * the parser tests. They can be considered has fixtures are injected in
+        * the interwiki cache by using the 'InterwikiLoadPrefix' hook.
+        * Since we are not interested in looking up interwikis in the database,
+        * the hook completely replace the existing mechanism (hook returns false).
+        */
+       public static function setupInterwikis() {
+               # Hack: insert a few Wikipedia in-project interwiki prefixes,
+               # for testing inter-language links
+               Hooks::register( 'InterwikiLoadPrefix', function ( $prefix, &$iwData ) {
+                       static $testInterwikis = array(
+                               'wikipedia' => array(
+                                       'iw_url' => 'http://en.wikipedia.org/wiki/$1',
+                                       'iw_api' => '',
+                                       'iw_wikiid' => '',
+                                       'iw_local' => 0 ),
+                               'meatball' => array(
+                                       'iw_url' => 'http://www.usemod.com/cgi-bin/mb.pl?$1',
+                                       'iw_api' => '',
+                                       'iw_wikiid' => '',
+                                       'iw_local' => 0 ),
+                               'zh' => array(
+                                       'iw_url' => 'http://zh.wikipedia.org/wiki/$1',
+                                       'iw_api' => '',
+                                       'iw_wikiid' => '',
+                                       'iw_local' => 1 ),
+                               'es' => array(
+                                       'iw_url' => 'http://es.wikipedia.org/wiki/$1',
+                                       'iw_api' => '',
+                                       'iw_wikiid' => '',
+                                       'iw_local' => 1 ),
+                               'fr' => array(
+                                       'iw_url' => 'http://fr.wikipedia.org/wiki/$1',
+                                       'iw_api' => '',
+                                       'iw_wikiid' => '',
+                                       'iw_local' => 1 ),
+                               'ru' => array(
+                                       'iw_url' => 'http://ru.wikipedia.org/wiki/$1',
+                                       'iw_api' => '',
+                                       'iw_wikiid' => '',
+                                       'iw_local' => 1 ),
+                       );
+                       if( array_key_exists( $prefix, $testInterwikis ) ) {
+                               $iwData = $testInterwikis[$prefix];
+                       }
+
+                       // We only want to rely on the above fixtures
+                       return false;
+               } );// hooks::register
        }
 
        public function setupRecorder( $options ) {
@@ -671,7 +728,7 @@ class ParserTest {
                        'wgSitename' => 'MediaWiki',
                        'wgLanguageCode' => $lang,
                        'wgDBprefix' => $this->db->getType() != 'oracle' ? 'parsertest_' : 'pt_',
-                       'wgRawHtml' => isset( $opts['rawhtml'] ),
+                       'wgRawHtml' => self::getOptionValue( 'wgRawHtml', $opts, false ),
                        'wgLang' => null,
                        'wgContLang' => null,
                        'wgNamespacesWithSubpages' => array( 0 => isset( $opts['subpage'] ) ),
@@ -681,8 +738,10 @@ class ParserTest {
                        'wgNoFollowDomainExceptions' => array(),
                        'wgThumbnailScriptPath' => false,
                        'wgUseImageResize' => true,
+                       'wgSVGConverter' => 'null',
+                       'wgSVGConverters' => array( 'null' => 'echo "1">$output' ),
                        'wgLocaltimezone' => 'UTC',
-                       'wgAllowExternalImages' => true,
+                       'wgAllowExternalImages' => self::getOptionValue( 'wgAllowExternalImages', $opts, true ),
                        'wgUseTidy' => false,
                        'wgDefaultLanguageVariant' => $variant,
                        'wgVariantArticlePath' => false,
@@ -825,41 +884,6 @@ class ParserTest {
                                'user_name' => 'Anonymous' ) );
                }
 
-               # Hack: insert a few Wikipedia in-project interwiki prefixes,
-               # for testing inter-language links
-               $this->db->insert( 'interwiki', array(
-                       array( 'iw_prefix' => 'wikipedia',
-                               'iw_url' => 'http://en.wikipedia.org/wiki/$1',
-                               'iw_api' => '',
-                               'iw_wikiid' => '',
-                               'iw_local' => 0 ),
-                       array( 'iw_prefix' => 'meatball',
-                               'iw_url' => 'http://www.usemod.com/cgi-bin/mb.pl?$1',
-                               'iw_api' => '',
-                               'iw_wikiid' => '',
-                               'iw_local' => 0 ),
-                       array( 'iw_prefix' => 'zh',
-                               'iw_url' => 'http://zh.wikipedia.org/wiki/$1',
-                               'iw_api' => '',
-                               'iw_wikiid' => '',
-                               'iw_local' => 1 ),
-                       array( 'iw_prefix' => 'es',
-                               'iw_url' => 'http://es.wikipedia.org/wiki/$1',
-                               'iw_api' => '',
-                               'iw_wikiid' => '',
-                               'iw_local' => 1 ),
-                       array( 'iw_prefix' => 'fr',
-                               'iw_url' => 'http://fr.wikipedia.org/wiki/$1',
-                               'iw_api' => '',
-                               'iw_wikiid' => '',
-                               'iw_local' => 1 ),
-                       array( 'iw_prefix' => 'ru',
-                               'iw_url' => 'http://ru.wikipedia.org/wiki/$1',
-                               'iw_api' => '',
-                               'iw_wikiid' => '',
-                               'iw_local' => 1 ),
-               ) );
-
                # Update certain things in site_stats
                $this->db->insert( 'site_stats', array( 'ss_row_id' => 1, 'ss_images' => 2, 'ss_good_articles' => 1 ) );
 
@@ -869,6 +893,8 @@ class ParserTest {
                # Clear the message cache
                MessageCache::singleton()->clear();
 
+               // Remember to update newParserTests.php after changing the below
+               // (and it uses a slightly different syntax just for teh lulz)
                $this->uploadDir = $this->setupUploadDir();
                $user = User::createNew( 'WikiSysop' );
                $image = wfLocalFile( Title::makeTitle( NS_FILE, 'Foobar.jpg' ) );
@@ -902,6 +928,19 @@ class ParserTest {
                        'fileExists' => true
                ), $this->db->timestamp( '20130225203040' ), $user );
 
+               $image = wfLocalFile( Title::makeTitle( NS_FILE, 'Foobar.svg' ) );
+               $image->recordUpload2( '', 'Upload of some lame SVG', 'Some lame SVG', array(
+                               'size'        => 12345,
+                               'width'       => 240,
+                               'height'      => 180,
+                               'bits'        => 24,
+                               'media_type'  => MEDIATYPE_DRAWING,
+                               'mime'        => 'image/svg+xml',
+                               'metadata'    => serialize( array() ),
+                               'sha1'        => wfBaseConvert( '', 16, 36, 31 ),
+                               'fileExists'  => true
+               ), $this->db->timestamp( '20010115123500' ), $user );
+
                # This image will be blacklisted in [[MediaWiki:Bad image list]]
                $image = wfLocalFile( Title::makeTitle( NS_FILE, 'Bad.jpg' ) );
                $image->recordUpload2( '', 'zomgnotcensored', 'Borderline image', array(
@@ -985,7 +1024,11 @@ class ParserTest {
                copy( "$IP/skins/monobook/wiki.png", "$dir/e/ea/Thumb.png" );
                wfMkdirParents( $dir . '/0/09', null, __METHOD__ );
                copy( "$IP/skins/monobook/headbg.jpg", "$dir/0/09/Bad.jpg" );
-
+               wfMkdirParents( $dir . '/f/ff', null, __METHOD__ );
+               copy( "$IP/skins/monobook/headbg.jpg", "$dir/f/ff/Foobar.svg" );
+               file_put_contents( "$dir/f/ff/Foobar.svg",
+                       '<?xml version="1.0" encoding="utf-8"?>' .
+                       '<svg xmlns="http://www.w3.org/2000/svg" />' );
                return $dir;
        }
 
@@ -1035,6 +1078,14 @@ class ParserTest {
 
                                "$dir/0/09/Bad.jpg",
 
+                               "$dir/f/ff/Foobar.svg",
+                               "$dir/thumb/f/ff/Foobar.svg/180px-Foobar.svg.png",
+                               "$dir/thumb/f/ff/Foobar.svg/360px-Foobar.svg.png",
+                               "$dir/thumb/f/ff/Foobar.svg/langde-270px-Foobar.svg.png",
+                               "$dir/thumb/f/ff/Foobar.svg/270px-Foobar.svg.png",
+                               "$dir/thumb/f/ff/Foobar.svg/langde-180px-Foobar.svg.png",
+                               "$dir/thumb/f/ff/Foobar.svg/langde-360px-Foobar.svg.png",
+
                                "$dir/math/f/a/5/fa50b8b616463173474302ca3e63586b.png",
                        )
                );
@@ -1048,10 +1099,13 @@ class ParserTest {
                                "$dir/thumb/3/3a/Foobar.jpg",
                                "$dir/thumb/3/3a",
                                "$dir/thumb/3",
-
                                "$dir/e/ea",
                                "$dir/e",
-
+                               "$dir/f/ff/",
+                               "$dir/f/",
+                               "$dir/thumb/f/ff/Foobar.svg",
+                               "$dir/thumb/f/ff/",
+                               "$dir/thumb/f/",
                                "$dir/0/09/",
                                "$dir/0/",
                                "$dir/thumb",
index 8995593..e1f2370 100644 (file)
 # comment       run through Linker::formatComment() instead of main parser
 # local         format section links in edit comment text as local links
 #
+# You can also set the following parser properties via test options:
+#  wgEnableUploads, wgAllowExternalImages, wgMaxTocLevel,
+#  wgLinkHolderBatchSize, wgRawHtml
+#
 # For testing purposes, temporary articles can created:
 # !!article / NAMESPACE:TITLE / !!text / ARTICLE TEXT / !!endarticle
 # where '/' denotes a newline.
@@ -334,11 +338,11 @@ a
 <p>a
 </p><p><br />
 </p>
-<h1><span class="mw-headline" id="b">b</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: b">edit</a>]</span></h1>
+<h1><span class="mw-headline" id="b">b</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: b">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
 <p><a href="/index.php?title=A&amp;action=edit&amp;redlink=1" class="new" title="A (page does not exist)">a</a>
 </p><p><br />
 </p>
-<h1><span class="mw-headline" id="b_2">b</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: b">edit</a>]</span></h1>
+<h1><span class="mw-headline" id="b_2">b</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: b">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
 
 !! end
 
@@ -351,7 +355,7 @@ Extra newlines between heading and content are swallowed
 
 [[a]]
 !! result
-<h1><span class="mw-headline" id="b">b</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: b">edit</a>]</span></h1>
+<h1><span class="mw-headline" id="b">b</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: b">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
 <p><a href="/index.php?title=A&amp;action=edit&amp;redlink=1" class="new" title="A (page does not exist)">a</a>
 </p>
 !! end
@@ -810,6 +814,23 @@ The ''[[Main Page]]'''s talk page.
 </p>
 !! end
 
+!! test
+Parsoid only: Quote balancing context should be restricted to td/th cells on the same wikitext line
+(Requires tidy for PHP parser output to be fixed up)
+!! options
+parsoid=wt2html,wt2wt
+!! input
+{|
+!''a!!''b
+|''a||''b
+|}
+!! result
+<table>
+<tbody><tr><th><i>a</i></th><th><i>b</i></th>
+<td><i>a</i></td><td><i>b</i></td></tr>
+</tbody></table>
+!! end
+
 ###
 ### Non-html5 tags
 ###
@@ -898,6 +919,16 @@ Entities inside <nowiki>
 </p>
 !! end
 
+!! test
+Entities inside template parameters
+!! options
+parsoid
+!! input
+{{echo|&ndash;}}
+!! result
+<p><span typeof="mw:Transclusion mw:Entity" data-mw='{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"&amp;ndash;"}},"i":0}'>&ndash;</span>
+</p>
+!! end
 
 ###
 ### Comments
@@ -1079,7 +1110,7 @@ b
 !! end
 
 ###
-### paragraph wraping tests
+### paragraph wrapping tests
 ###
 !! test
 No block tags
@@ -1515,6 +1546,78 @@ Templates: Strip whitespace from named parameters, but not positional ones
 
 !! end
 
+!! test
+Templates: Dont strip whitespace from whitespace/comment-only arguments
+!! input
+{{echo| }}
+{{echo|<!--cmt-->}}
+{{echo| <!--cmt--> }}
+!! result
+<p><br />
+</p>
+!! end
+
+!! test
+Templates: Parsoid parameter escaping test 1
+!! options
+parsoid
+!! input
+{{echo|[foo]|{{echo|[bar]}}}}
+!! result
+<p about="#mwt1" typeof="mw:Transclusion"
+data-mw="{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;[foo]&quot;},&quot;2&quot;:{&quot;wt&quot;:&quot;{{echo|[bar]}}&quot;}},&quot;i&quot;:0}">[foo]</p>
+!! end
+
+!! test
+Parsoid: Pipes in external links in template parameter
+!! options
+parsoid
+!! input
+{{echo|[{{echo|http://example.com}} link]}}
+!! result
+<p><a rel="mw:ExtLink" href="http://example.com" about="#mwt31" typeof="mw:Transclusion" data-mw="{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;[{{echo|http://example.com}} link]&quot;}},&quot;i&quot;:0}">link</a></p>
+!! end
+
+!! test
+Parsoid: pipe in transclusion parameter
+!! options
+parsoid
+!! input
+{{echo|http://foo.com/a&#124;b}}
+!! result
+<p><a rel="mw:ExtLink" href="http://foo.com/a|b" about="#mwt1"
+typeof="mw:Transclusion"
+data-mw='{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"http://foo.com/a|b"}},"i":0}'>http://foo.com/a|b</a></p>
+!! end
+
+!! test
+Parsoid: Pipe in external link target and content in template parameter
+!! options
+parsoid=html2wt,wt2wt
+!! input
+{{echo|[http://foo.com/a&#124;b a&#124;b]}}
+!! result
+<p><a rel="mw:ExtLink" href="http://foo.com/a|b" about="#mwt1"
+typeof="mw:Transclusion"
+data-mw='{"target":{"wt":"echo","href":"./Template:Echo"},
+"params":{"1":{"wt":"[http://foo.com/a|b a|b]"}},"i":0}'>a|b</a></p>
+!! end
+
+!! test
+Templates: Dont escape already nowiki-escaped text in template parameters
+!! options
+parsoid=html2wt,wt2wt
+!! input
+{{echo|foo<nowiki>|</nowiki>bar}}
+{{echo|<nowiki>&lt;div&gt;</nowiki>}}
+{{echo|<nowiki></nowiki>}}
+!! result
+<p><span about="#mwt1" typeof="mw:Transclusion" data-mw='{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo<nowiki>|</nowiki>bar"}},"i":0}'}'>foo</span><span typeof="mw:Nowiki" about="#mwt1">|</span><span about="#mwt1">bar</span>
+<span typeof="mw:Transclusion mw:Nowiki" about="#mwt2" data-mw='{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<nowiki>&amp;lt;div&amp;gt;</nowiki>"}},"i":0}'><span typeof="mw:Entity">&lt;</span>div<span typeof="mw:Entity">&gt;</span></span>
+<span typeof="mw:Transclusion mw:Nowiki" about="#mwt3" data-mw='{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<nowiki></nowiki>"}},"i":0}'></span>
+</p>
+!! end
+
 ###
 ### Parsoid-centric tests for testing RT edge cases for pre
 ###
@@ -2657,6 +2760,17 @@ External image from https: https://meta.wikimedia.org/upload/f/f1/Ncwikicol.png
 </p>
 !! end
 
+!! test
+External image (when not allowed)
+!! options
+wgAllowExternalImages=0
+!! input
+External image: http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png
+!! result
+<p>External image: <a rel="nofollow" class="external free" href="http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png">http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png</a>
+</p>
+!! end
+
 !! test
 Link to non-http image, no img tag
 !! input
@@ -3079,6 +3193,15 @@ External link containing double-single-quotes with no space separating the url f
 </p>
 !! end
 
+!! test
+External link with comments in link text
+!! input
+[http://www.google.com Google <!-- comment -->]
+!! result
+<p><a rel="nofollow" class="external text" href="http://www.google.com">Google </a>
+</p>
+!! end
+
 !! test
 URL-encoding in URL functions (single parameter)
 !! input
@@ -3151,6 +3274,28 @@ Non-extlinks in brackets
 </p>
 !! end
 
+!! test
+Parsoid: Percent encoding in external links
+!! options
+parsoid
+!! input
+[https://github.com/search?l=&q=ResourceLoader+%40wikimedia Search]
+!! result
+<p><a rel="mw:ExtLink"
+href="https://github.com/search?l=&amp;q=ResourceLoader+%40wikimedia">Search</a></p>
+!! end
+
+!! test
+Parsoid: use url link syntax for links where the content is equal the link
+target
+!! options
+parsoid
+!! input
+http://example.com
+!! result
+<p><a rel="mw:ExtLink" href="http://example.com">http://example.com</a></p>
+!! end
+
 ###
 ### Quotes
 ###
@@ -3256,7 +3401,7 @@ Plain ''italic'''s plain
 ###
 
 # This should not produce <table></table> as <table><tr><td></td></tr></table>
-# is the bare minimun required by the spec, see:
+# is the bare minimum required by the spec, see:
 # http://www.w3.org/TR/xhtml-modularization/dtd_module_defs.html#a_module_Basic_Tables
 !! test
 A table with no data. (php)
@@ -3841,6 +3986,62 @@ parsoid
 <td>foo</td></tr></tbody></table>
 !! end
 
+!! test
+Implicit <td> after a |-
+(PHP parser relies on Tidy to add the missing <td> tags)
+!! options
+parsoid=wt2html,wt2wt
+!! input
+{|
+|-
+a
+|}
+!! result
+<table>
+<tr><td>a</td></tr>
+</table>
+!! end
+
+!! test
+Pres should be recognized in an explicit <td> context, but not in an implicit <td> context
+(PHP parser relies on Tidy to add the missing <td> tags)
+!! options
+parsoid=wt2html,wt2wt
+!! input
+{|
+|-
+|
+ a
+|-
+ b
+|}
+!! result
+<table>
+<tbody>
+<tr><td><pre>a</pre></td></tr>
+<tr><td> b</td></tr>
+</tbody>
+</table>
+!! end
+
+!! test
+Lists should be recognized in an implicit <td> context
+(PHP parser relies on Tidy to add the missing <td> tags)
+!! options
+parsoid=wt2html,wt2wt
+!! input
+{|
+|-
+*a
+|}
+!! result
+<table>
+<tr>
+<td><ul><li>a</li></ul></td>
+</tr>
+</table>
+!! end
+
 ###
 ### Internal links
 ###
@@ -3871,6 +4072,15 @@ Piped link
 </p>
 !! end
 
+!! test
+Piped link with comment in link text
+!! input
+[[Main Page|The Main<!--front--> Page]]
+!! result
+<p><a href="/wiki/Main_Page" title="Main Page">The Main Page</a>
+</p>
+!! end
+
 !! test
 Broken link
 !! input
@@ -4525,6 +4735,84 @@ language=ln
 </p>
 !! end
 
+!! test
+Parsoid: handle constructor well
+!! options
+parsoid
+!! input
+[[constructor]]
+
+[[constructor:foo]]
+!! result
+<p data-parsoid="{&quot;dsr&quot;:[0,15,0,0]}"><a rel="mw:WikiLink" href="./Constructor" data-parsoid="{&quot;stx&quot;:&quot;simple&quot;,&quot;a&quot;:{&quot;href&quot;:&quot;./Constructor&quot;},&quot;sa&quot;:{&quot;href&quot;:&quot;constructor&quot;},&quot;dsr&quot;:[0,15,2,2]}">constructor</a></p>
+
+
+<p data-parsoid="{&quot;dsr&quot;:[17,36,0,0]}"><a rel="mw:WikiLink" href="./Foo" data-parsoid="{&quot;stx&quot;:&quot;simple&quot;,&quot;a&quot;:{&quot;href&quot;:&quot;./Foo&quot;},&quot;sa&quot;:{&quot;href&quot;:&quot;constructor:foo&quot;},&quot;dsr&quot;:[17,36,2,2]}">constructor:foo</a></p>
+!! end
+
+##
+## Redirects, Parsoid-only
+##
+!! test
+Simple redirect to page
+!! options
+parsoid
+!! input
+#REDIRECT [[Main Page]]
+!! result
+<link rel="mw:PageProp/redirect" href="./Main_Page">
+!! end
+
+!! test
+Redirect to category
+!! options
+parsoid=wt2html
+!! input
+#REDIRECT [[Category:Foo]]
+!! result
+<link rel="mw:PageProp/redirect" href="./Category:Foo"><link rel="mw:WikiLink/Category" href="./Category:Foo">
+!! end
+
+!! test
+Redirect to category page
+!! options
+parsoid=wt2html,html2html
+!! input
+#REDIRECT [[:Category:Foo]]
+!! result
+<p><a rel="mw:WikiLink" href="Category:Foo">Category:Foo</a></p>
+!! end
+
+!! test
+Redirect to image page
+!! options
+parsoid
+!! input
+#REDIRECT [[File:Wiki.png]]
+!! result
+<link rel="mw:PageProp/redirect" href="./File:Wiki.png">
+!! end
+
+!! test
+Redirect to language
+!! options
+parsoid
+!! input
+#REDIRECT [[en:File:Wiki.png]]
+!! result
+<link rel="mw:PageProp/redirect" href="File:Wiki.png">
+!! end
+
+!! test
+Redirect to interwiki
+!! options
+parsoid
+!! input
+#REDIRECT [[meatball:File:Wiki.png]]
+!! result
+<link rel="mw:PageProp/redirect" href="File:Wiki.png">
+!! end
+
 ##
 ## XHTML tidiness
 ###
@@ -4540,6 +4828,8 @@ language=ln
 
 !! test
 Broken br tag sanitization
+!! options
+php
 !! input
 </br>
 !! result
@@ -4547,6 +4837,17 @@ Broken br tag sanitization
 </p>
 !! end
 
+# TODO: Fix html2html mode (bug 51055)!
+!! test
+Parsoid: Broken br tag recognition
+!! options
+parsoid=wt2html
+!! input
+</br>
+!! result
+<p><br></p>
+!! end
+
 !! test
 Incorrecly removing closing slashes from correctly formed XHTML
 !! input
@@ -4888,88 +5189,21 @@ Nested lists 8 (multiple nesting transitions)
 !! end
 
 !! test
-Unbalanced closing block tags break a list
-(Parsoid-only since php parser generates broken html -- relies on Tidy to fix up)
-!! options
-parsoid
-!! input
-<div>
-*a</div><div>
-*b</div>
-!! result
-<div>
-<ul><li>a
-</li></ul></div><div>
-<ul><li>b
-</li></ul></div>
-!! end
-
-!! test
-Unbalanced closing non-block tags don't break a list
-(Parsoid-only since php parser generates broken html -- relies on Tidy to fix up)
-!! options
-parsoid
+List items are not parsed correctly following a <pre> block (bug 785)
 !! input
-<span>
-*a</span><span>
-*b</span>
+* <pre>foo</pre>
+* <pre>bar</pre>
+* zar
 !! result
-<p><span></span>
-</p>
-<ul><li>a<span></span>
-</li><li>b
+<ul><li> <pre>foo</pre>
+</li><li> <pre>bar</pre>
+</li><li> zar
 </li></ul>
+
 !! end
 
 !! test
-Unclosed formatting tags that straddle lists are closed and reopened
-(Parsoid-only since php parser generates broken html -- relies on Tidy to fix up)
-!! options
-parsoid
-!! input
-# <s> a
-# b </s>
-!! result
-<ol><li> <s> a </s>
-</li><li> <s> b </s>
-</li></ol>
-!! end
-
-!!test
-List embedded in a non-block tag
-(Ugly Parsoid output -- worth fixing; Disabled for PHP parser since it relies on Tidy)
-!! options
-parsoid
-!!input
-<small>
-* foo
-</small>
-!!result
-<p><small></small></p>
-<small>
-<ul>
-<li> foo</li>
-</ul>
-</small>
-<p><small></small></p>
-!!end
-
-!! test
-List items are not parsed correctly following a <pre> block (bug 785)
-!! input
-* <pre>foo</pre>
-* <pre>bar</pre>
-* zar
-!! result
-<ul><li> <pre>foo</pre>
-</li><li> <pre>bar</pre>
-</li><li> zar
-</li></ul>
-
-!! end
-
-!! test
-List items from template
+List items from template
 !! input
 
 {{inner list}}
@@ -5012,7 +5246,7 @@ List interrupted by empty line or heading
 <ul><li><ul><li> bar
 </li></ul>
 </li></ul>
-<h2><span class="mw-headline" id="A_heading">A heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: A heading">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="A_heading">A heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: A heading">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <ul><li> Another list item
 </li></ul>
 
@@ -5053,6 +5287,120 @@ Single-comment whitespace lines dont break lists, but multi-comment whitespace l
 
 !!end
 
+!!test
+Test the li-hack
+(Cannot test this with PHP parser since it relies on Tidy for the hack)
+!!options
+parsoid=wt2html,wt2wt
+!!input
+* foo
+* <li>li-hack
+* {{echo|<li>templated li-hack}}
+* <!--foo--> <li> unsupported li-hack with preceding comments
+
+<ul>
+<li><li>not a li-hack
+</li>
+</ul>
+!!result
+<ul><li> foo</li>
+<li>li-hack</li>
+<li about="#mwt1" typeof="mw:Transclusion" data-mw='{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<li>templated li-hack"}}}'>templated li-hack</li>
+<li> <!--foo--> </li><li> li-hack with preceding comments</li></ul>
+
+<ul>
+<li></li><li>not a li-hack
+</li>
+</ul>
+!!end
+
+!! test
+Parsoid: Make sure nested lists are serialized on their own line even if HTML contains no newlines
+!! options
+parsoid
+!! input
+# foo
+## bar
+* foo
+** bar
+: foo
+:: bar
+!! result
+<ol><li> foo<ol><li> bar</li></ol></li></ol><ul><li> foo<ul><li> bar</li></ul></li></ul><dl><dd> foo<dl><dd> bar</dd></dl></dd></dl>
+!! end
+
+# ------------------------------------------------------------------------
+# The next set of tests are about Parsoid's ability to handle badly nested
+# tags (parse, minimize scope of fixup, and roundtrip back)
+# ------------------------------------------------------------------------
+
+!! test
+Unbalanced closing block tags break a list
+(Parsoid-only since php parser generates broken html -- relies on Tidy to fix up)
+!! options
+parsoid
+!! input
+<div>
+*a</div><div>
+*b</div>
+!! result
+<div>
+<ul><li>a
+</li></ul></div><div>
+<ul><li>b
+</li></ul></div>
+!! end
+
+!! test
+Unbalanced closing non-block tags don't break a list
+(Parsoid-only since php parser generates broken html -- relies on Tidy to fix up)
+!! options
+parsoid
+!! input
+<span>
+*a</span><span>
+*b</span>
+!! result
+<p><span></span>
+</p>
+<ul><li>a<span></span>
+</li><li>b
+</li></ul>
+!! end
+
+!! test
+Unclosed formatting tags that straddle lists are closed and reopened
+(Parsoid-only since php parser generates broken html -- relies on Tidy to fix up)
+!! options
+parsoid
+!! input
+# <s> a
+# b </s>
+!! result
+<ol><li> <s> a </s>
+</li><li> <s> b </s>
+</li></ol>
+!! end
+
+!!test
+List embedded in a non-block tag
+(Ugly Parsoid output -- worth fixing; Disabled for PHP parser since it relies on Tidy)
+!! options
+parsoid
+!!input
+<small>
+* foo
+</small>
+!!result
+<p><small></small></p>
+<small>
+<ul>
+<li> foo</li>
+</ul>
+</small>
+<p><small></small></p>
+!!end
+
 ###
 ### Magic Words
 ###
@@ -5216,7 +5564,7 @@ Magic Word: {{NUMBEROFFILES}}
 !! input
 {{NUMBEROFFILES}}
 !! result
-<p>3
+<p>4
 </p>
 !! end
 
@@ -6092,8 +6440,8 @@ Bug 6563: Edit link generation for section shown by <includeonly>
 !! input
 {{includeonly section}}
 !! result
-<h2><span class="mw-headline" id="Includeonly_section">Includeonly section</span><span class="mw-editsection">[<a href="/index.php?title=Template:Includeonly_section&amp;action=edit&amp;section=T-1" title="Template:Includeonly section">edit</a>]</span></h2>
-<h2><span class="mw-headline" id="Section_T-1">Section T-1</span><span class="mw-editsection">[<a href="/index.php?title=Template:Includeonly_section&amp;action=edit&amp;section=T-2" title="Template:Includeonly section">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Includeonly_section">Includeonly section</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Template:Includeonly_section&amp;action=edit&amp;section=T-1" title="Template:Includeonly section">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Section_T-1">Section T-1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Template:Includeonly_section&amp;action=edit&amp;section=T-2" title="Template:Includeonly section">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -6119,7 +6467,7 @@ Bug 6563: Edit link generation for section suppressed by <includeonly>
 </includeonly>
 ==Section 1==
 !! result
-<h2><span class="mw-headline" id="Section_1">Section 1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Section 1">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Section_1">Section 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Section 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -6290,7 +6638,7 @@ parsoid=wt2html,wt2wt
 {{echo|Bar}}
 !!result
 <!-- foo -->
-<p typeof="mw:Object/Template">Bar
+<p typeof="mw:Transclusion">Bar
 </p>
 !!end
 
@@ -6552,6 +6900,20 @@ Templates: HTML Tables: 4f. Generating a single tag of a HTML table
 
 !!end
 
+!!test
+Templates: HTML Tables: 5. Proper fostering of categories from inside
+!!options
+parsoid=wt2html,wt2wt
+!!input
+<table>[[Category:foo1]]<tr><td>foo</td></tr></table>
+<!--Two categories (Bug 50330)-->
+<table>[[Category:bar1]][[Category:bar2]]<tr><td>foo</td></tr></table>
+!!result
+<link rel="mw:WikiLink/Category" href="./Category:Foo1"><table><tbody><tr><td>foo</td></tr></tbody></table>
+<!--Two categories (Bug 50330)-->
+<link rel="mw:WikiLink/Category" href="./Category:Bar1"><link rel="mw:WikiLink/Category" href="./Category:Bar2"><table><tbody><tr><td>foo</td></tr></tbody></table>
+!!end
+
 !!test
 Templates: Wiki Tables: 1a. Fostering of entire template content
 !!input
@@ -6682,7 +7044,7 @@ parsoid=wt2html,wt2wt
 !!input
 {{echo_with_span|''a}}{{echo_with_span|b''c''d}}{{echo_with_span|''e}}
 !!result
-<p><span typeof="mw:Object/Template"><i>a</i></span><i typeof="mw:Object/Template"><span>b</span></i><span>c</span><i>d</i><span>e</span></p>
+<p><span typeof="mw:Transclusion"><i>a</i></span><i typeof="mw:Transclusion"><span>b</span></i><span>c</span><i>d</i><span>e</span></p>
 !!end
 
 !!test
@@ -6693,9 +7055,9 @@ parsoid=wt2html,wt2wt
 !!input
 {{echo_with_div|''a}}{{echo_with_div|b''c''d}}{{echo_with_div|''e}}
 !!result
-<div typeof="mw:Object/Template"><i>a</i></div>
-<div typeof="mw:Object/Template"><i>b</i>c<i>d</i></div>
-<div typeof="mw:Object/Template">e</div>
+<div typeof="mw:Transclusion"><i>a</i></div>
+<div typeof="mw:Transclusion"><i>b</i>c<i>d</i></div>
+<div typeof="mw:Transclusion">e</div>
 !!end
 
 !!test
@@ -6718,7 +7080,7 @@ parsoid
 |bar
 |}
 !!result
-<table typeof="mw:Object/Template">
+<table typeof="mw:Transclusion">
 <tbody>
 <tr>
 <td>foo</td></tr></tbody></table><span>bar</span>
@@ -6750,7 +7112,7 @@ parsoid
   </tr>
 </table>
 !!result
-<table  about="#mwt1" typeof="mw:Object/Template">
+<table  about="#mwt1" typeof="mw:Transclusion">
   <tbody><tr >
     <td >
     <table >
@@ -7400,9 +7762,9 @@ Special:RecentChanges/param
 !! options
 msg
 !! input
-{{#special:foobarnonexistent}}
+{{#special:foobar nonexistent}}
 !! result
-No such special page
+Special:Foobar nonexistent
 !! end
 
 !! test
@@ -7430,9 +7792,9 @@ Special:RecentChanges/param
 !! options
 msg
 !! input
-{{#speciale:foobarnonexistent}}
+{{#speciale:foobar nonexistent}}
 !! result
-No_such_special_page
+Special:Foobar_nonexistent
 !! end
 
 ###
@@ -7757,6 +8119,36 @@ Thumbnail image caption with a free URL and explicit alt
 
 !! end
 
+!! test
+SVG thumbnails with no language set
+!! options
+!! input
+[[File:Foobar.svg|thumb|width=200]]
+!! result
+<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.svg" class="image"><img alt="" src="http://example.com/images/thumb/f/ff/Foobar.svg/180px-Foobar.svg.png" width="180" height="180" class="thumbimage" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/270px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/360px-Foobar.svg.png 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.svg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>width=200</div></div></div>
+
+!! end
+
+!! test
+SVG thumbnails with language de
+!! options
+!! input
+[[File:Foobar.svg|thumb|width=200|lang=de]]
+!! result
+<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/index.php?title=File:Foobar.svg&amp;lang=de" class="image"><img alt="" src="http://example.com/images/thumb/f/ff/Foobar.svg/langde-180px-Foobar.svg.png" width="180" height="180" class="thumbimage" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/langde-270px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/langde-360px-Foobar.svg.png 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.svg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>width=200</div></div></div>
+
+!! end
+
+!! test
+SVG thumbnails with invalid language code
+!! options
+!! input
+[[File:Foobar.svg|thumb|width=200|lang=invalid.language.code]]
+!! result
+<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.svg" class="image"><img alt="" src="http://example.com/images/thumb/f/ff/Foobar.svg/180px-Foobar.svg.png" width="180" height="180" class="thumbimage" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/270px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/360px-Foobar.svg.png 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.svg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>lang=invalid.language.code</div></div></div>
+
+!! end
+
 !! test
 BUG 1887: A ISBN with a thumbnail
 !! input
@@ -7967,7 +8359,7 @@ parsoid
 <p>
 <span class="mw-default-size" typeof="mw:Image">
 <a href="File:Foobar.jpg">
-<img resource="./File:Foobar.jpg" src="http://upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg" height="220" width="1941">
+<img resource="./File:Foobar.jpg" src="//upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg" height="220" width="1941">
 </a>
 </span>
 </p>
@@ -7983,7 +8375,7 @@ parsoid
 <p>
 <span class="mw-default-size" typeof="mw:Image">
 <span>
-<img resource="./File:Foobar.jpg" src="http://upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg" height="220" width="1941">
+<img resource="./File:Foobar.jpg" src="//upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg" height="220" width="1941">
 </span>
 </span>
 </p>
@@ -7999,7 +8391,7 @@ parsoid
 <p>
 <span class="mw-default-size" typeof="mw:Image">
 <a href="Main_Page">
-<img resource="./File:Foobar.jpg" src="http://upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg" height="220" width="1941">
+<img resource="./File:Foobar.jpg" src="//upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg" height="220" width="1941">
 </a>
 </span>
 </p>
@@ -8015,7 +8407,7 @@ parsoid
 <p>
 <span class="mw-valign-middle" typeof="mw:Image">
 <a href="File:Foobar.jpg">
-<img resource="./File:Foobar.jpg" src="http://upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg/50px-Foobar.jpg" height="6" width="50">
+<img resource="./File:Foobar.jpg" src="//upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg/50px-Foobar.jpg" height="6" width="50">
 </a>
 </span>
 </p>
@@ -8031,7 +8423,7 @@ parsoid
 <p>
 <span class="mw-valign-baseline" typeof="mw:Image" data-mw="{&quot;caption&quot;:&quot;caption&quot;}">
 <a href="File:Foobar.jpg">
-<img resource="./File:Foobar.jpg" src="http://upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg/89px-Foobar.jpg" height="10" width="89">
+<img resource="./File:Foobar.jpg" src="//upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg/89px-Foobar.jpg" height="10" width="89">
 </a>
 </span>
 </p>
@@ -8047,7 +8439,7 @@ parsoid
 <p>
 <span class="mw-image-border" typeof="mw:Image" data-mw="{&quot;caption&quot;:&quot;caption&quot;}">
 <a href="File:Foobar.jpg">
-<img resource="./File:Foobar.jpg" src="http://upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg/50px-Foobar.jpg" height="6" width="50">
+<img resource="./File:Foobar.jpg" src="//upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg/50px-Foobar.jpg" height="6" width="50">
 </a>
 </span>
 </p>
@@ -8062,9 +8454,9 @@ parsoid
 !! result
 <figure class="mw-default-size mw-halign-left mw-valign-baseline" typeof="mw:Image/Thumb">
 <a href="File:Foobar.jpg">
-<img resource="./File:Foobar.jpg" src="http://upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg/180px-Foobar.jpg" height="21" width="180" />
+<img resource="./File:Foobar.jpg" src="//upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg/180px-Foobar.jpg" height="21" width="180" />
 </a>
-<figcaption class="mw-figcaption">caption content</figcaption>
+<figcaption>caption content</figcaption>
 </figure>
 !! end
 
@@ -8077,9 +8469,9 @@ parsoid
 !! result
 <figure class="mw-halign-right mw-valign-middle" typeof="mw:Image/Thumb">
 <a href="File:Foobar.jpg">
-<img resource="./File:Foobar.jpg" src="http://upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg/50px-Foobar.jpg" height="6" width="50" />
+<img resource="./File:Foobar.jpg" src="//upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg/50px-Foobar.jpg" height="6" width="50" />
 </a>
-<figcaption class="mw-figcaption">caption</figcaption>
+<figcaption>caption</figcaption>
 </figure>
 !! end
 
@@ -8092,9 +8484,9 @@ parsoid
 !! result
 <figure typeof="mw:Image/Frame">
 <a href="File:Foobar.jpg">
-<img resource="./File:Foobar.jpg" src="http://upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg/442px-Foobar.jpg" height="50" width="442" />
+<img resource="./File:Foobar.jpg" src="//upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg/442px-Foobar.jpg" height="50" width="442" />
 </a>
-<figcaption class="mw-figcaption">caption</figcaption>
+<figcaption>caption</figcaption>
 </figure>
 !! end
 
@@ -8107,9 +8499,9 @@ parsoid
 !! result
 <figure class="mw-halign-left mw-valign-baseline" typeof="mw:Image/Frame">
 <a href="File:Foobar.jpg">
-<img resource="./File:Foobar.jpg" src="http://upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg/442px-Foobar.jpg" height="50" width="442" />
+<img resource="./File:Foobar.jpg" src="//upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg/442px-Foobar.jpg" height="50" width="442" />
 </a>
-<figcaption class="mw-figcaption">caption</figcaption>
+<figcaption>caption</figcaption>
 </figure>
 !! end
 
@@ -8123,7 +8515,7 @@ parsoid
 <p>
 <span class="mw-image-border" typeof="mw:Image/Frameless" data-mw="{&quot;caption&quot;:&quot;caption&quot;}">
 <a href="File:Foobar.jpg">
-<img resource="./File:Foobar.jpg" src="http://upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg/442px-Foobar.jpg" height="50" width="442" />
+<img resource="./File:Foobar.jpg" src="//upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg/442px-Foobar.jpg" height="50" width="442" />
 </a>
 </p>
 !! end
@@ -8176,6 +8568,38 @@ subpage title=[[Subpage test]]
 </p>
 !! end
 
+# TODO: make this PHP-parser compatible!
+!! test
+Relative subpage noslash link
+!! options
+parsoid=wt2wt,wt2html,html2html
+subpage title=[[Subpage test/1/2/3/4]]
+!!input
+[[../../subpage/]]
+
+[[../../subpage]]
+!! result
+<p><a rel="mw:WikiLink" href="Subpage_test/1/2/subpage/">subpage</a></p>
+<p><a rel="mw:WikiLink" href="Subpage_test/1/2/subpage">Subpage_test/1/2/subpage</a></p>
+!! end
+
+# TODO: make this PHP-parser compatible!
+!! test
+Parsoid: dot-slash prefixed wikilinks
+!! options
+parsoid=wt2wt,wt2html,html2html
+!!input
+[[./foo]]
+
+[[././bar]]
+
+[[././baz/]]
+!! result
+<p><a rel="mw:WikiLink" href="./Foo">foo</a></p>
+<p><a rel="mw:WikiLink" href="./Bar">bar</a></p>
+<p><a rel="mw:WikiLink" href="./Baz/">baz/</a></p>
+!! end
+
 !! test
 Disabled subpages
 !! input
@@ -8359,6 +8783,59 @@ Bar
 </p>
 !! end
 
+!! test
+Parsoid: Serialize link to category page with colon escape
+!! options
+parsoid
+!! input
+
+[[:Category:Foo]]
+[[:Category:Foo|Bar]]
+!! result
+<p>
+<a rel="mw:WikiLink" href="Category:Foo">Category:Foo</a>
+<a rel="mw:WikiLink" href="Category:Foo">Bar</a>
+</p>
+!! end
+
+!! test
+Parsoid: Link prefix/suffixes aren't applied to category links
+!! options
+parsoid=wt2html,wt2wt,html2html
+language=is
+!! input
+x[[Category:Foo]]y
+!! result
+<p>x<link rel="mw:WikiLink/Category" href="Category:Foo">y</p>
+!! end
+
+!! test
+Parsoid: Serialize link to file page with colon escape
+!! options
+parsoid
+!! input
+
+[[:File:Foo.png]]
+[[:File:Foo.png|Bar]]
+!! result
+<p>
+<a rel="mw:WikiLink" href="File:Foo.png">File:Foo.png</a>
+<a rel="mw:WikiLink" href="File:Foo.png">Bar</a>
+</p>
+!! end
+
+!! test
+Parsoid: Serialize a genuine category link without colon escape
+!! options
+parsoid
+!! input
+[[Category:Foo]]
+[[Category:Foo|Bar]]
+!! result
+<link rel="mw:WikiLink/Category" href="Category:Foo">
+<link rel="mw:WikiLink/Category" href="Category:Foo#Bar">
+!! end
+
 ###
 ### Inter-language links
 ###
@@ -8401,13 +8878,13 @@ More
 ===Smaller headline===
 Blah blah
 !! result
-<h2><span class="mw-headline" id="Headline_1">Headline 1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Headline 1">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Headline_1">Headline 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Headline 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <p>Some text
 </p>
-<h2><span class="mw-headline" id="Headline_2">Headline 2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Headline 2">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Headline_2">Headline 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Headline 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <p>More
 </p>
-<h3><span class="mw-headline" id="Smaller_headline">Smaller headline</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Smaller headline">edit</a>]</span></h3>
+<h3><span class="mw-headline" id="Smaller_headline">Smaller headline</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Smaller headline">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
 <p>Blah blah
 </p>
 !! end
@@ -8424,7 +8901,7 @@ Section headings with TOC
 Some text
 ===Another headline===
 !! result
-<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div>
+<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#Headline_1"><span class="tocnumber">1</span> <span class="toctext">Headline 1</span></a>
 <ul>
@@ -8445,15 +8922,15 @@ Some text
 </ul>
 </li>
 </ul>
-</td></tr></table>
-<h2><span class="mw-headline" id="Headline_1">Headline 1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Headline 1">edit</a>]</span></h2>
-<h3><span class="mw-headline" id="Subheadline_1">Subheadline 1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Subheadline 1">edit</a>]</span></h3>
-<h5><span class="mw-headline" id="Skipping_a_level">Skipping a level</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Skipping a level">edit</a>]</span></h5>
-<h6><span class="mw-headline" id="Skipping_a_level_2">Skipping a level</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: Skipping a level">edit</a>]</span></h6>
-<h2><span class="mw-headline" id="Headline_2">Headline 2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Headline 2">edit</a>]</span></h2>
+</div>
+<h2><span class="mw-headline" id="Headline_1">Headline 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Headline 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h3><span class="mw-headline" id="Subheadline_1">Subheadline 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Subheadline 1">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
+<h5><span class="mw-headline" id="Skipping_a_level">Skipping a level</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Skipping a level">edit</a><span class="mw-editsection-bracket">]</span></span></h5>
+<h6><span class="mw-headline" id="Skipping_a_level_2">Skipping a level</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: Skipping a level">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
+<h2><span class="mw-headline" id="Headline_2">Headline 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Headline 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <p>Some text
 </p>
-<h3><span class="mw-headline" id="Another_headline">Another headline</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: Another headline">edit</a>]</span></h3>
+<h3><span class="mw-headline" id="Another_headline">Another headline</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: Another headline">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
 
 !! end
 
@@ -8472,7 +8949,7 @@ Handling of sections up to level 6 and beyond
 ========= Level 9 Heading=========
 ========== Level 10 Heading==========
 !! result
-<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div>
+<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#Level_1_Heading"><span class="tocnumber">1</span> <span class="toctext">Level 1 Heading</span></a>
 <ul>
@@ -8500,17 +8977,17 @@ Handling of sections up to level 6 and beyond
 </ul>
 </li>
 </ul>
-</td></tr></table>
-<h1><span class="mw-headline" id="Level_1_Heading">Level 1 Heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Level 1 Heading">edit</a>]</span></h1>
-<h2><span class="mw-headline" id="Level_2_Heading">Level 2 Heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Level 2 Heading">edit</a>]</span></h2>
-<h3><span class="mw-headline" id="Level_3_Heading">Level 3 Heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Level 3 Heading">edit</a>]</span></h3>
-<h4><span class="mw-headline" id="Level_4_Heading">Level 4 Heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: Level 4 Heading">edit</a>]</span></h4>
-<h5><span class="mw-headline" id="Level_5_Heading">Level 5 Heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Level 5 Heading">edit</a>]</span></h5>
-<h6><span class="mw-headline" id="Level_6_Heading">Level 6 Heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: Level 6 Heading">edit</a>]</span></h6>
-<h6><span class="mw-headline" id=".3D_Level_7_Heading.3D">= Level 7 Heading=</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=7" title="Edit section: = Level 7 Heading=">edit</a>]</span></h6>
-<h6><span class="mw-headline" id=".3D.3D_Level_8_Heading.3D.3D">== Level 8 Heading==</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=8" title="Edit section: == Level 8 Heading==">edit</a>]</span></h6>
-<h6><span class="mw-headline" id=".3D.3D.3D_Level_9_Heading.3D.3D.3D">=== Level 9 Heading===</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=9" title="Edit section: === Level 9 Heading===">edit</a>]</span></h6>
-<h6><span class="mw-headline" id=".3D.3D.3D.3D_Level_10_Heading.3D.3D.3D.3D">==== Level 10 Heading====</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=10" title="Edit section: ==== Level 10 Heading====">edit</a>]</span></h6>
+</div>
+<h1><span class="mw-headline" id="Level_1_Heading">Level 1 Heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Level 1 Heading">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
+<h2><span class="mw-headline" id="Level_2_Heading">Level 2 Heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Level 2 Heading">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h3><span class="mw-headline" id="Level_3_Heading">Level 3 Heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Level 3 Heading">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
+<h4><span class="mw-headline" id="Level_4_Heading">Level 4 Heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: Level 4 Heading">edit</a><span class="mw-editsection-bracket">]</span></span></h4>
+<h5><span class="mw-headline" id="Level_5_Heading">Level 5 Heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Level 5 Heading">edit</a><span class="mw-editsection-bracket">]</span></span></h5>
+<h6><span class="mw-headline" id="Level_6_Heading">Level 6 Heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: Level 6 Heading">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
+<h6><span class="mw-headline" id=".3D_Level_7_Heading.3D">= Level 7 Heading=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=7" title="Edit section: = Level 7 Heading=">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
+<h6><span class="mw-headline" id=".3D.3D_Level_8_Heading.3D.3D">== Level 8 Heading==</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=8" title="Edit section: == Level 8 Heading==">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
+<h6><span class="mw-headline" id=".3D.3D.3D_Level_9_Heading.3D.3D.3D">=== Level 9 Heading===</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=9" title="Edit section: === Level 9 Heading===">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
+<h6><span class="mw-headline" id=".3D.3D.3D.3D_Level_10_Heading.3D.3D.3D.3D">==== Level 10 Heading====</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=10" title="Edit section: ==== Level 10 Heading====">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
 
 !! end
 
@@ -8524,7 +9001,7 @@ TOC regression (bug 9764)
 == title 2 ==
 === title 2.1 ===
 !! result
-<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div>
+<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#title_1"><span class="tocnumber">1</span> <span class="toctext">title 1</span></a>
 <ul>
@@ -8542,13 +9019,13 @@ TOC regression (bug 9764)
 </ul>
 </li>
 </ul>
-</td></tr></table>
-<h2><span class="mw-headline" id="title_1">title 1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: title 1">edit</a>]</span></h2>
-<h3><span class="mw-headline" id="title_1.1">title 1.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: title 1.1">edit</a>]</span></h3>
-<h4><span class="mw-headline" id="title_1.1.1">title 1.1.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: title 1.1.1">edit</a>]</span></h4>
-<h3><span class="mw-headline" id="title_1.2">title 1.2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: title 1.2">edit</a>]</span></h3>
-<h2><span class="mw-headline" id="title_2">title 2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: title 2">edit</a>]</span></h2>
-<h3><span class="mw-headline" id="title_2.1">title 2.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: title 2.1">edit</a>]</span></h3>
+</div>
+<h2><span class="mw-headline" id="title_1">title 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: title 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h3><span class="mw-headline" id="title_1.1">title 1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: title 1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
+<h4><span class="mw-headline" id="title_1.1.1">title 1.1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: title 1.1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h4>
+<h3><span class="mw-headline" id="title_1.2">title 1.2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: title 1.2">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
+<h2><span class="mw-headline" id="title_2">title 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: title 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h3><span class="mw-headline" id="title_2.1">title 2.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: title 2.1">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
 
 !! end
 
@@ -8564,7 +9041,7 @@ wgMaxTocLevel=3
 == title 2 ==
 === title 2.1 ===
 !! result
-<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div>
+<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#title_1"><span class="tocnumber">1</span> <span class="toctext">title 1</span></a>
 <ul>
@@ -8578,13 +9055,13 @@ wgMaxTocLevel=3
 </ul>
 </li>
 </ul>
-</td></tr></table>
-<h2><span class="mw-headline" id="title_1">title 1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: title 1">edit</a>]</span></h2>
-<h3><span class="mw-headline" id="title_1.1">title 1.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: title 1.1">edit</a>]</span></h3>
-<h4><span class="mw-headline" id="title_1.1.1">title 1.1.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: title 1.1.1">edit</a>]</span></h4>
-<h3><span class="mw-headline" id="title_1.2">title 1.2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: title 1.2">edit</a>]</span></h3>
-<h2><span class="mw-headline" id="title_2">title 2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: title 2">edit</a>]</span></h2>
-<h3><span class="mw-headline" id="title_2.1">title 2.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: title 2.1">edit</a>]</span></h3>
+</div>
+<h2><span class="mw-headline" id="title_1">title 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: title 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h3><span class="mw-headline" id="title_1.1">title 1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: title 1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
+<h4><span class="mw-headline" id="title_1.1.1">title 1.1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: title 1.1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h4>
+<h3><span class="mw-headline" id="title_1.2">title 1.2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: title 1.2">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
+<h2><span class="mw-headline" id="title_2">title 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: title 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h3><span class="mw-headline" id="title_2.1">title 2.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: title 2.1">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
 
 !! end
 
@@ -8599,7 +9076,7 @@ wgMaxTocLevel=3
 ====Section 1.1.1.1====
 ==Section 2==
 !! result
-<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div>
+<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#Section_1"><span class="tocnumber">1</span> <span class="toctext">Section 1</span></a>
 <ul>
@@ -8608,12 +9085,12 @@ wgMaxTocLevel=3
 </li>
 <li class="toclevel-1 tocsection-5"><a href="#Section_2"><span class="tocnumber">2</span> <span class="toctext">Section 2</span></a></li>
 </ul>
-</td></tr></table>
-<h2><span class="mw-headline" id="Section_1">Section 1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Section 1">edit</a>]</span></h2>
-<h3><span class="mw-headline" id="Section_1.1">Section 1.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Section 1.1">edit</a>]</span></h3>
-<h4><span class="mw-headline" id="Section_1.1.1">Section 1.1.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Section 1.1.1">edit</a>]</span></h4>
-<h4><span class="mw-headline" id="Section_1.1.1.1">Section 1.1.1.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: Section 1.1.1.1">edit</a>]</span></h4>
-<h2><span class="mw-headline" id="Section_2">Section 2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Section 2">edit</a>]</span></h2>
+</div>
+<h2><span class="mw-headline" id="Section_1">Section 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Section 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h3><span class="mw-headline" id="Section_1.1">Section 1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Section 1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
+<h4><span class="mw-headline" id="Section_1.1.1">Section 1.1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Section 1.1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h4>
+<h4><span class="mw-headline" id="Section_1.1.1.1">Section 1.1.1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: Section 1.1.1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h4>
+<h2><span class="mw-headline" id="Section_2">Section 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Section 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -8624,8 +9101,8 @@ Resolving duplicate section names
 == Foo bar ==
 == Foo bar ==
 !! result
-<h2><span class="mw-headline" id="Foo_bar">Foo bar</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Foo bar">edit</a>]</span></h2>
-<h2><span class="mw-headline" id="Foo_bar_2">Foo bar</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Foo bar">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Foo_bar">Foo bar</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Foo bar">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Foo_bar_2">Foo bar</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Foo bar">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -8635,8 +9112,8 @@ Resolving duplicate section names with differing case (bug 10721)
 == Foo bar ==
 == Foo Bar ==
 !! result
-<h2><span class="mw-headline" id="Foo_bar">Foo bar</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Foo bar">edit</a>]</span></h2>
-<h2><span class="mw-headline" id="Foo_Bar_2">Foo Bar</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Foo Bar">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Foo_bar">Foo bar</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Foo bar">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Foo_Bar_2">Foo Bar</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Foo Bar">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -8655,10 +9132,10 @@ __NOTOC__
 {{sections}}
 ==Section 4==
 !! result
-<h2><span class="mw-headline" id="Section_0">Section 0</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Section 0">edit</a>]</span></h2>
-<h3><span class="mw-headline" id="Section_1">Section 1</span><span class="mw-editsection">[<a href="/index.php?title=Template:Sections&amp;action=edit&amp;section=T-1" title="Template:Sections">edit</a>]</span></h3>
-<h2><span class="mw-headline" id="Section_2">Section 2</span><span class="mw-editsection">[<a href="/index.php?title=Template:Sections&amp;action=edit&amp;section=T-2" title="Template:Sections">edit</a>]</span></h2>
-<h2><span class="mw-headline" id="Section_4">Section 4</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Section 4">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Section_0">Section 0</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Section 0">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h3><span class="mw-headline" id="Section_1">Section 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Template:Sections&amp;action=edit&amp;section=T-1" title="Template:Sections">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
+<h2><span class="mw-headline" id="Section_2">Section 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Template:Sections&amp;action=edit&amp;section=T-2" title="Template:Sections">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Section_4">Section 4</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Section 4">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -8679,7 +9156,7 @@ Link inside a section heading
 !! input
 ==Section with a [[Main Page|link]] in it==
 !! result
-<h2><span class="mw-headline" id="Section_with_a_link_in_it">Section with a <a href="/wiki/Main_Page" title="Main Page">link</a> in it</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Section with a link in it">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Section_with_a_link_in_it">Section with a <a href="/wiki/Main_Page" title="Main Page">link</a> in it</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Section with a link in it">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -8691,7 +9168,7 @@ __TOC__
 === title 1.1 ===
 == title 2 ==
 !! result
-<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div>
+<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#title_1"><span class="tocnumber">1</span> <span class="toctext">title 1</span></a>
 <ul>
@@ -8700,10 +9177,10 @@ __TOC__
 </li>
 <li class="toclevel-1 tocsection-3"><a href="#title_2"><span class="tocnumber">2</span> <span class="toctext">title 2</span></a></li>
 </ul>
-</td></tr></table>
-<h2><span class="mw-headline" id="title_1">title 1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: title 1">edit</a>]</span></h2>
-<h3><span class="mw-headline" id="title_1.1">title 1.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: title 1.1">edit</a>]</span></h3>
-<h2><span class="mw-headline" id="title_2">title 2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: title 2">edit</a>]</span></h2>
+</div>
+<h2><span class="mw-headline" id="title_1">title 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: title 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h3><span class="mw-headline" id="title_1.1">title 1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: title 1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
+<h2><span class="mw-headline" id="title_2">title 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: title 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -8725,10 +9202,10 @@ The line above must have a trailing space!
 --> <!-- -->
 But just in case it doesn't...
 !! result
-<h1><span class="mw-headline" id=".3D">=</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: =">edit</a>]</span></h1>
+<h1><span class="mw-headline" id=".3D">=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: =">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
 <p>The line above must have a trailing space!
 </p>
-<h1><span class="mw-headline" id=".3D_2">=</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: =">edit</a>]</span></h1>
+<h1><span class="mw-headline" id=".3D_2">=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: =">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
 <p>But just in case it doesn't...
 </p>
 !! end
@@ -8755,7 +9232,7 @@ section 5
 !! result
 <p>The tooltips shall not show entities to the user (ie. be double escaped)
 </p>
-<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div>
+<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#text_.3E_text"><span class="tocnumber">1</span> <span class="toctext">text &gt; text</span></a></li>
 <li class="toclevel-1 tocsection-2"><a href="#text_.3C_text"><span class="tocnumber">2</span> <span class="toctext">text &lt; text</span></a></li>
@@ -8763,20 +9240,20 @@ section 5
 <li class="toclevel-1 tocsection-4"><a href="#text_.27_text"><span class="tocnumber">4</span> <span class="toctext">text ' text</span></a></li>
 <li class="toclevel-1 tocsection-5"><a href="#text_.22_text"><span class="tocnumber">5</span> <span class="toctext">text " text</span></a></li>
 </ul>
-</td></tr></table>
-<h2><span class="mw-headline" id="text_.3E_text">text &gt; text</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: text > text">edit</a>]</span></h2>
+</div>
+<h2><span class="mw-headline" id="text_.3E_text">text &gt; text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: text > text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <p>section 1
 </p>
-<h2><span class="mw-headline" id="text_.3C_text">text &lt; text</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: text &lt; text">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="text_.3C_text">text &lt; text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: text &lt; text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <p>section 2
 </p>
-<h2><span class="mw-headline" id="text_.26_text">text &amp; text</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: text &amp; text">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="text_.26_text">text &amp; text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: text &amp; text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <p>section 3
 </p>
-<h2><span class="mw-headline" id="text_.27_text">text ' text</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: text ' text">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="text_.27_text">text ' text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: text ' text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <p>section 4
 </p>
-<h2><span class="mw-headline" id="text_.22_text">text " text</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: text &quot; text">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="text_.22_text">text " text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: text &quot; text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <p>section 5
 </p>
 !! end
@@ -8790,18 +9267,18 @@ Headers with excess '=' characters
 =''italic'' heading==
 ==''italic'' heading=
 !! result
-<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div>
+<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#foo.3D"><span class="tocnumber">1</span> <span class="toctext">foo=</span></a></li>
 <li class="toclevel-1 tocsection-2"><a href="#.3Dfoo"><span class="tocnumber">2</span> <span class="toctext">=foo</span></a></li>
 <li class="toclevel-1 tocsection-3"><a href="#italic_heading.3D"><span class="tocnumber">3</span> <span class="toctext"><i>italic</i> heading=</span></a></li>
 <li class="toclevel-1 tocsection-4"><a href="#.3Ditalic_heading"><span class="tocnumber">4</span> <span class="toctext">=<i>italic</i> heading</span></a></li>
 </ul>
-</td></tr></table>
-<h1><span class="mw-headline" id="foo.3D">foo=</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: foo=">edit</a>]</span></h1>
-<h1><span class="mw-headline" id=".3Dfoo">=foo</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: =foo">edit</a>]</span></h1>
-<h1><span class="mw-headline" id="italic_heading.3D"><i>italic</i> heading=</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: italic heading=">edit</a>]</span></h1>
-<h1><span class="mw-headline" id=".3Ditalic_heading">=<i>italic</i> heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: =italic heading">edit</a>]</span></h1>
+</div>
+<h1><span class="mw-headline" id="foo.3D">foo=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: foo=">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
+<h1><span class="mw-headline" id=".3Dfoo">=foo</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: =foo">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
+<h1><span class="mw-headline" id="italic_heading.3D"><i>italic</i> heading=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: italic heading=">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
+<h1><span class="mw-headline" id=".3Ditalic_heading">=<i>italic</i> heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: =italic heading">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
 
 !! end
 
@@ -8819,7 +9296,7 @@ HTML headers vs TOC (bug 23393)
 == Header 2.2 ==
 __NOEDITSECTION__
 !! result
-<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div>
+<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
 <ul>
 <li class="toclevel-1"><a href="#Header_1"><span class="tocnumber">1</span> <span class="toctext">Header 1</span></a>
 <ul>
@@ -8834,7 +9311,7 @@ __NOEDITSECTION__
 </ul>
 </li>
 </ul>
-</td></tr></table>
+</div>
 <h1><span class="mw-headline" id="Header_1">Header 1</span></h1>
 <h2><span class="mw-headline" id="Header_1.1">Header 1.1</span></h2>
 <h2><span class="mw-headline" id="Header_1.2">Header 1.2</span></h2>
@@ -9062,75 +9539,150 @@ I always thought &xacute; was a cute letter.
 
 
 ###
-### Media links
+### Nesting tests (see bug 41545, 50604, 51081)
 ###
 
+# This test case is fixed in Parsoid by domino 1.0.12. (bug 50604)
+# Note that html2wt is considerably more difficult if we use <b> in
+# the test case, instead of <big>
 !! test
-Media link
+Ensure that HTML adoption agency algorithm is properly implemented.
 !! input
-[[Media:Foobar.jpg]]
+<big>X<big>Y</big>Z</big>
 !! result
-<p><a href="http://example.com/images/3/3a/Foobar.jpg" class="internal" title="Foobar.jpg">Media:Foobar.jpg</a>
+<p><big>X<big>Y</big>Z</big>
 </p>
 !! end
 
+# This was bug 41545 in the PHP parser.
 !! test
-Media link with text
+Nesting of <kbd>
 !! input
-[[Media:Foobar.jpg|A neat file to look at]]
+<kbd>X<kbd>Y</kbd>Z</kbd>
 !! result
-<p><a href="http://example.com/images/3/3a/Foobar.jpg" class="internal" title="Foobar.jpg">A neat file to look at</a>
+<p><kbd>X<kbd>Y</kbd>Z</kbd>
 </p>
 !! end
 
-# FIXME: this is still bad HTML tag nesting
+# The following cases were bug 51081 in the PHP parser.
+# Note that there are some other nestable tags (b, i, etc) which are
+# not covered; see bug 51081 for discussion.
 !! test
-Media link with nasty text
-fixme: doBlockLevels won't wrap this in a paragraph because it contains a div
+Nesting of <em>
 !! input
-[[Media:Foobar.jpg|Safe Link<div style=display:none>" onmouseover="alert(document.cookie)" onfoo="</div>]]
+<em>X<em>Y</em>Z</em>
 !! result
-<a href="http://example.com/images/3/3a/Foobar.jpg" class="internal" title="Foobar.jpg">Safe Link&lt;div style="display:none"&gt;" onmouseover="alert(document.cookie)" onfoo="&lt;/div&gt;</a>
+<p><em>X<em>Y</em>Z</em>
+</p>
+!! end
 
+!! test
+Nesting of <strong>
+!! input
+<strong>X<strong>Y</strong>Z</strong>
+!! result
+<p><strong>X<strong>Y</strong>Z</strong>
+</p>
 !! end
 
 !! test
-Media link to nonexistent file (bug 1702)
+Nesting of <q>
 !! input
-[[Media:No such.jpg]]
+<q>X<q>Y</q>Z</q>
 !! result
-<p><a href="/index.php?title=Special:Upload&amp;wpDestFile=No_such.jpg" class="new" title="No such.jpg">Media:No such.jpg</a>
+<p><q>X<q>Y</q>Z</q>
 </p>
 !! end
 
 !! test
-Image link to nonexistent file (bug 1850 - good)
+Nesting of <ruby>
 !! input
-[[Image:No such.jpg]]
+<ruby>X<ruby>Y</ruby>Z</ruby>
 !! result
-<p><a href="/index.php?title=Special:Upload&amp;wpDestFile=No_such.jpg" class="new" title="File:No such.jpg">File:No such.jpg</a>
+<p><ruby>X<ruby>Y</ruby>Z</ruby>
 </p>
 !! end
 
 !! test
-:Image link to nonexistent file (bug 1850 - bad)
+Nesting of <bdo>
 !! input
-[[:Image:No such.jpg]]
+<bdo>X<bdo>Y</bdo>Z</bdo>
 !! result
-<p><a href="/index.php?title=File:No_such.jpg&amp;action=edit&amp;redlink=1" class="new" title="File:No such.jpg (page does not exist)">Image:No such.jpg</a>
+<p><bdo>X<bdo>Y</bdo>Z</bdo>
 </p>
 !! end
 
 
+###
+### Media links
+###
 
 !! test
-Character reference normalization in link text (bug 1938)
+Media link
 !! input
-[[Main Page|this&that]]
+[[Media:Foobar.jpg]]
 !! result
-<p><a href="/wiki/Main_Page" title="Main Page">this&amp;that</a>
+<p><a href="http://example.com/images/3/3a/Foobar.jpg" class="internal" title="Foobar.jpg">Media:Foobar.jpg</a>
 </p>
-!!end
+!! end
+
+!! test
+Media link with text
+!! input
+[[Media:Foobar.jpg|A neat file to look at]]
+!! result
+<p><a href="http://example.com/images/3/3a/Foobar.jpg" class="internal" title="Foobar.jpg">A neat file to look at</a>
+</p>
+!! end
+
+# FIXME: this is still bad HTML tag nesting
+!! test
+Media link with nasty text
+fixme: doBlockLevels won't wrap this in a paragraph because it contains a div
+!! input
+[[Media:Foobar.jpg|Safe Link<div style=display:none>" onmouseover="alert(document.cookie)" onfoo="</div>]]
+!! result
+<a href="http://example.com/images/3/3a/Foobar.jpg" class="internal" title="Foobar.jpg">Safe Link&lt;div style="display:none"&gt;" onmouseover="alert(document.cookie)" onfoo="&lt;/div&gt;</a>
+
+!! end
+
+!! test
+Media link to nonexistent file (bug 1702)
+!! input
+[[Media:No such.jpg]]
+!! result
+<p><a href="/index.php?title=Special:Upload&amp;wpDestFile=No_such.jpg" class="new" title="No such.jpg">Media:No such.jpg</a>
+</p>
+!! end
+
+!! test
+Image link to nonexistent file (bug 1850 - good)
+!! input
+[[Image:No such.jpg]]
+!! result
+<p><a href="/index.php?title=Special:Upload&amp;wpDestFile=No_such.jpg" class="new" title="File:No such.jpg">File:No such.jpg</a>
+</p>
+!! end
+
+!! test
+:Image link to nonexistent file (bug 1850 - bad)
+!! input
+[[:Image:No such.jpg]]
+!! result
+<p><a href="/index.php?title=File:No_such.jpg&amp;action=edit&amp;redlink=1" class="new" title="File:No such.jpg (page does not exist)">Image:No such.jpg</a>
+</p>
+!! end
+
+
+
+!! test
+Character reference normalization in link text (bug 1938)
+!! input
+[[Main Page|this&that]]
+!! result
+<p><a href="/wiki/Main_Page" title="Main Page">this&amp;that</a>
+</p>
+!!end
 
 !! article
 אַ
@@ -10127,12 +10679,12 @@ Fuzz testing: Parser14
 == onmouseover= ==
 http://__TOC__
 !! result
-<h2><span class="mw-headline" id="onmouseover.3D">onmouseover=</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: onmouseover=">edit</a>]</span></h2>
-http://<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div>
+<h2><span class="mw-headline" id="onmouseover.3D">onmouseover=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: onmouseover=">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+http://<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#onmouseover.3D"><span class="tocnumber">1</span> <span class="toctext">onmouseover=</span></a></li>
 </ul>
-</td></tr></table>
+</div>
 
 !! end
 
@@ -10142,7 +10694,7 @@ Fuzz testing: Parser14-table
 ==a==
 {| STYLE=__TOC__
 !! result
-<h2><span class="mw-headline" id="a">a</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: a">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="a">a</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: a">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <table style="&#95;_TOC&#95;_">
 <tr><td></td></tr>
 </table>
@@ -11796,7 +12348,7 @@ Images with the "|" character in the comment
 !! test
 HTML with raw HTML ($wgRawHtml==true)
 !! options
-rawhtml
+wgRawHtml=1
 !! input
 <html><script>alert(1);</script></html>
 !! result
@@ -11865,6 +12417,45 @@ subpage title=[[Subpage test/L1/L2/L3]]
 </p>
 !! end
 
+!! article
+Subpage test/L1/L2/L3Sibling
+!! text
+Sibling article
+!! endarticle
+
+!! test
+Transclusion of a sibling page (one level up)
+!! options
+subpage title=[[Subpage test/L1/L2/L3]]
+!! input
+{{../L3Sibling}}
+!! result
+<p>Sibling article
+</p>
+!! end
+
+!! test
+Transclusion of a child page
+!! options
+subpage title=[[Subpage test/L1/L2]]
+!! input
+{{/L3Sibling}}
+!! result
+<p>Sibling article
+</p>
+!! end
+
+!! test
+Non-transclusion because of too many up levels
+!! options
+subpage title=[[Subpage test/L1/L2/L3]]
+!! input
+{{../../../../More than parent}}
+!! result
+<p>{{../../../../More than parent}}
+</p>
+!! end
+
 !! test
 Definition list code coverage
 !! input
@@ -11939,7 +12530,7 @@ Inclusion of !userCanEdit() content
 !! input
 {{MediaWiki:Fake}}
 !! result
-<h2><span class="mw-headline" id="header">header</span><span class="mw-editsection">[<a href="/index.php?title=MediaWiki:Fake&amp;action=edit&amp;section=T-1" title="MediaWiki:Fake">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="header">header</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=MediaWiki:Fake&amp;action=edit&amp;section=T-1" title="MediaWiki:Fake">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -11954,7 +12545,7 @@ Out-of-order TOC heading levels
 =====5=====
 ==2==
 !! result
-<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div>
+<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#2"><span class="tocnumber">1</span> <span class="toctext">2</span></a>
 <ul>
@@ -11969,13 +12560,13 @@ Out-of-order TOC heading levels
 </ul>
 </li>
 </ul>
-</td></tr></table>
-<h2><span class="mw-headline" id="2">2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: 2">edit</a>]</span></h2>
-<h6><span class="mw-headline" id="6">6</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: 6">edit</a>]</span></h6>
-<h3><span class="mw-headline" id="3">3</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: 3">edit</a>]</span></h3>
-<h1><span class="mw-headline" id="1">1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: 1">edit</a>]</span></h1>
-<h5><span class="mw-headline" id="5">5</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: 5">edit</a>]</span></h5>
-<h2><span class="mw-headline" id="2_2">2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: 2">edit</a>]</span></h2>
+</div>
+<h2><span class="mw-headline" id="2">2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h6><span class="mw-headline" id="6">6</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: 6">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
+<h3><span class="mw-headline" id="3">3</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: 3">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
+<h1><span class="mw-headline" id="1">1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: 1">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
+<h5><span class="mw-headline" id="5">5</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: 5">edit</a><span class="mw-editsection-bracket">]</span></span></h5>
+<h2><span class="mw-headline" id="2_2">2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -12333,7 +12924,7 @@ language=sr variant=sr-ec
 !! input
 == -{Naslov}- ==
 !! result
-<h2><span class="mw-headline" id="-.7BNaslov.7D-">Naslov</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Уредите одељак „Naslov“">уреди</a>]</span></h2>
+<h2><span class="mw-headline" id="-.7BNaslov.7D-">Naslov</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Уредите одељак „Naslov“">уреди</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -12674,7 +13265,7 @@ Morwen/13: Unclosed link followed by heading
 !! result
 <p>[[link
 </p>
-<h2><span class="mw-headline" id="heading">heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: heading">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="heading">heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: heading">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -12698,7 +13289,7 @@ HHP2.2: Heuristics for headings in preprocessor parenthetical structures
 !! result
 <p>{{foo|
 </p>
-<h2><span class="mw-headline" id="heading">heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: heading">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="heading">heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: heading">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -13058,7 +13649,7 @@ comment title=[[Main Page]]
 !! input
 pre-comment text /* External links */ removed bogus entries
 !! result
-pre-comment text <a href="/wiki/Main_Page#External_links" title="Main Page">→</a>‎<span dir="auto"><span class="autocomment">External links: </span> removed bogus entries</span>
+pre-comment text <a href="/wiki/Main_Page#External_links" title="Main Page">→</a>‎<span dir="auto"><span class="autocomment">External links: </span> removed bogus entries</span>
 !!end
 
 !! test
@@ -13547,12 +14138,12 @@ title=[[Main Page]]
 __TOC__
 == ''Lost'' episodes ==
 !! result
-<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div>
+<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#Lost_episodes"><span class="tocnumber">1</span> <span class="toctext"><i>Lost</i> episodes</span></a></li>
 </ul>
-</td></tr></table>
-<h2><span class="mw-headline" id="Lost_episodes"><i>Lost</i> episodes</span><span class="mw-editsection">[<a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Lost episodes">edit</a>]</span></h2>
+</div>
+<h2><span class="mw-headline" id="Lost_episodes"><i>Lost</i> episodes</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Lost episodes">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -13564,12 +14155,12 @@ title=[[Main Page]]
 __TOC__
 == '''should be bold''' then normal text ==
 !! result
-<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div>
+<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#should_be_bold_then_normal_text"><span class="tocnumber">1</span> <span class="toctext"><b>should be bold</b> then normal text</span></a></li>
 </ul>
-</td></tr></table>
-<h2><span class="mw-headline" id="should_be_bold_then_normal_text"><b>should be bold</b> then normal text</span><span class="mw-editsection">[<a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: should be bold then normal text">edit</a>]</span></h2>
+</div>
+<h2><span class="mw-headline" id="should_be_bold_then_normal_text"><b>should be bold</b> then normal text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: should be bold then normal text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -13581,12 +14172,12 @@ title=[[Main Page]]
 __TOC__
 == Image [[Image:foobar.jpg]] ==
 !! result
-<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div>
+<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#Image"><span class="tocnumber">1</span> <span class="toctext">Image</span></a></li>
 </ul>
-</td></tr></table>
-<h2><span class="mw-headline" id="Image">Image <a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></span><span class="mw-editsection">[<a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Image">edit</a>]</span></h2>
+</div>
+<h2><span class="mw-headline" id="Image">Image <a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Image">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -13598,12 +14189,12 @@ title=[[Main Page]]
 __TOC__
 == <blockquote>Quote</blockquote> ==
 !! result
-<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div>
+<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#Quote"><span class="tocnumber">1</span> <span class="toctext">Quote</span></a></li>
 </ul>
-</td></tr></table>
-<h2><span class="mw-headline" id="Quote"><blockquote>Quote</blockquote></span><span class="mw-editsection">[<a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Quote">edit</a>]</span></h2>
+</div>
+<h2><span class="mw-headline" id="Quote"><blockquote>Quote</blockquote></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Quote">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -13617,12 +14208,12 @@ __TOC__
 <small>Hanc marginis exiguitas non caperet.</small>
 QED
 !! result
-<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div>
+<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#Proof:_2_.3C_3"><span class="tocnumber">1</span> <span class="toctext">Proof: 2 &lt; 3</span></a></li>
 </ul>
-</td></tr></table>
-<h2><span class="mw-headline" id="Proof:_2_.3C_3">Proof: 2 &lt; 3</span><span class="mw-editsection">[<a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Proof: 2 &lt; 3">edit</a>]</span></h2>
+</div>
+<h2><span class="mw-headline" id="Proof:_2_.3C_3">Proof: 2 &lt; 3</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Proof: 2 &lt; 3">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <p><small>Hanc marginis exiguitas non caperet.</small>
 QED
 </p>
@@ -13636,14 +14227,14 @@ __TOC__
 
 == <i>Foo</i> <blockquote>Bar</blockquote> ==
 !! result
-<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div>
+<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#Foo_Bar"><span class="tocnumber">1</span> <span class="toctext"><i>Foo</i> <b>Bar</b></span></a></li>
 <li class="toclevel-1 tocsection-2"><a href="#Foo_Bar_2"><span class="tocnumber">2</span> <span class="toctext"><i>Foo</i> Bar</span></a></li>
 </ul>
-</td></tr></table>
-<h2><span class="mw-headline" id="Foo_Bar"><i>Foo</i> <b>Bar</b></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Foo Bar">edit</a>]</span></h2>
-<h2><span class="mw-headline" id="Foo_Bar_2"><i>Foo</i> <blockquote>Bar</blockquote></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Foo Bar">edit</a>]</span></h2>
+</div>
+<h2><span class="mw-headline" id="Foo_Bar"><i>Foo</i> <b>Bar</b></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Foo Bar">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Foo_Bar_2"><i>Foo</i> <blockquote>Bar</blockquote></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Foo Bar">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -13655,14 +14246,14 @@ __TOC__
 
 == <sup class="a > b">Evilbye</sup> ==
 !! result
-<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div>
+<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#Hello"><span class="tocnumber">1</span> <span class="toctext"><sup>Hello</sup></span></a></li>
 <li class="toclevel-1 tocsection-2"><a href="#b.22.3EEvilbye"><span class="tocnumber">2</span> <span class="toctext"><sup> b"&gt;Evilbye</sup></span></a></li>
 </ul>
-</td></tr></table>
-<h2><span class="mw-headline" id="Hello"><sup class="in-h2">Hello</sup></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Hello">edit</a>]</span></h2>
-<h2><span class="mw-headline" id="b.22.3EEvilbye"><sup> b"&gt;Evilbye</sup></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: b&quot;>Evilbye">edit</a>]</span></h2>
+</div>
+<h2><span class="mw-headline" id="Hello"><sup class="in-h2">Hello</sup></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Hello">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="b.22.3EEvilbye"><sup> b"&gt;Evilbye</sup></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: b&quot;>Evilbye">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -13680,7 +14271,7 @@ __TOC__
 
 == <span dir="ltr" style="font-style: italic">Attributes after dir on these span tags must be deleted from the TOC</span> ==
 !! result
-<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div>
+<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#C.2B.2B"><span class="tocnumber">1</span> <span class="toctext"><span dir="ltr">C++</span></span></a></li>
 <li class="toclevel-1 tocsection-2"><a href="#.D7.96.D7.91.D7.A0.D7.92.21"><span class="tocnumber">2</span> <span class="toctext"><span dir="rtl">זבנג!</span></span></a></li>
@@ -13688,12 +14279,12 @@ __TOC__
 <li class="toclevel-1 tocsection-4"><a href="#All_attributes_on_these_span_tags_must_be_deleted_from_the_TOC"><span class="tocnumber">4</span> <span class="toctext"><span>All attributes on these span tags must be deleted from the TOC</span></span></a></li>
 <li class="toclevel-1 tocsection-5"><a href="#Attributes_after_dir_on_these_span_tags_must_be_deleted_from_the_TOC"><span class="tocnumber">5</span> <span class="toctext"><span dir="ltr">Attributes after dir on these span tags must be deleted from the TOC</span></span></a></li>
 </ul>
-</td></tr></table>
-<h2><span class="mw-headline" id="C.2B.2B"><span dir="ltr">C++</span></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: C++">edit</a>]</span></h2>
-<h2><span class="mw-headline" id=".D7.96.D7.91.D7.A0.D7.92.21"><span dir="rtl">זבנג!</span></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: זבנג!">edit</a>]</span></h2>
-<h2><span class="mw-headline" id="The_attributes_on_these_span_tags_must_be_deleted_from_the_TOC"><span style="font-style: italic">The attributes on these span tags must be deleted from the TOC</span></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: The attributes on these span tags must be deleted from the TOC">edit</a>]</span></h2>
-<h2><span class="mw-headline" id="All_attributes_on_these_span_tags_must_be_deleted_from_the_TOC"><span style="font-style: italic" dir="ltr">All attributes on these span tags must be deleted from the TOC</span></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: All attributes on these span tags must be deleted from the TOC">edit</a>]</span></h2>
-<h2><span class="mw-headline" id="Attributes_after_dir_on_these_span_tags_must_be_deleted_from_the_TOC"><span dir="ltr" style="font-style: italic">Attributes after dir on these span tags must be deleted from the TOC</span></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Attributes after dir on these span tags must be deleted from the TOC">edit</a>]</span></h2>
+</div>
+<h2><span class="mw-headline" id="C.2B.2B"><span dir="ltr">C++</span></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: C++">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id=".D7.96.D7.91.D7.A0.D7.92.21"><span dir="rtl">זבנג!</span></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: זבנג!">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="The_attributes_on_these_span_tags_must_be_deleted_from_the_TOC"><span style="font-style: italic">The attributes on these span tags must be deleted from the TOC</span></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: The attributes on these span tags must be deleted from the TOC">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="All_attributes_on_these_span_tags_must_be_deleted_from_the_TOC"><span style="font-style: italic" dir="ltr">All attributes on these span tags must be deleted from the TOC</span></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: All attributes on these span tags must be deleted from the TOC">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Attributes_after_dir_on_these_span_tags_must_be_deleted_from_the_TOC"><span dir="ltr" style="font-style: italic">Attributes after dir on these span tags must be deleted from the TOC</span></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Attributes after dir on these span tags must be deleted from the TOC">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -13710,7 +14301,7 @@ title=[[Main Page]]
 !! input
 {{int:Bug32057}}
 !! result
-<h2><span class="mw-headline" id="Headline_text">Headline text</span><span class="mw-editsection">[<a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Headline text">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Headline_text">Headline text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Headline text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -13812,7 +14403,7 @@ nowiki inside link inside heading (bug 18295)
 !! input
 ==[[foo|x<nowiki>y</nowiki>z]]==
 !! result
-<h2><span class="mw-headline" id="xyz"><a href="/index.php?title=Foo&amp;action=edit&amp;redlink=1" class="new" title="Foo (page does not exist)">xyz</a></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: xyz">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="xyz"><a href="/index.php?title=Foo&amp;action=edit&amp;redlink=1" class="new" title="Foo (page does not exist)">xyz</a></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: xyz">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -13938,6 +14529,19 @@ abc
 </p>
 !! end
 
+!!test
+Special parser function
+!! input
+{{#special:RandomPage}}
+{{#special:BaDtItLe}}
+{{#special:Foobar}}
+!! result
+<p>Special:Random
+Special:Badtitle
+Special:Foobar
+</p>
+!! end
+
 !!test
 Bug 34939 - Case insensitive link parsing ([HttP://])
 !! input
@@ -13965,6 +14569,7 @@ HttP://MediaWiki.Org/
 </p>
 !! end
 
+
 ###
 ### Parsoids-specific tests
 ### Parsoid-PHP parser incompatibilities
@@ -13978,14 +14583,372 @@ parsoid=wt2html,wt2wt
 {{echo|#a}}
 {{echo|:a}}
 !!result
-<span about="#mwt1" typeof="mw:Object/Template">
+<span about="#mwt1" typeof="mw:Transclusion">
 </span><ul about="#mwt1"><li>a</li></ul>
-<span about="#mwt2" typeof="mw:Object/Template">
+<span about="#mwt2" typeof="mw:Transclusion">
 </span><ol about="#mwt2"><li>a</li></ol>
-<span about="#mwt3" typeof="mw:Object/Template">
+<span about="#mwt3" typeof="mw:Transclusion">
 </span><dl about="#mwt3"><dd>a</dd></dl>
 !!end
 
+#### ----------------------------------------------------------------
+#### Parsoid-only testing of Parsoid's impl of <ref> and <references>
+#### tags. Parsoid's output for these tags differs from that of the
+#### PHP parser.
+#### ----------------------------------------------------------------
+
+!!test
+Ref: 1. ref-location should be replaced with an index span
+!!options
+parsoid
+!!input
+A <ref>foo</ref>
+B <ref name="x">foo</ref>
+C <ref name="y" />
+!!result
+<p>A <span about="#mwt1" class="reference" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-1">[1]</a></span>
+B <span about="#mwt2" class="reference" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"x"}}' id="cite_ref-x-2-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-x-2">[2]</a></span>
+C <span about="#mwt3" class="reference" data-mw='{"name":"ref","attrs":{"name":"y"}}' id="cite_ref-y-3-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-y-3">[3]</a></span></p>
+!!end
+
+!!test
+Ref: 2. ref-tags with identical names should all get the same index
+!!options
+parsoid
+!!input
+A <ref name="x">foo</ref>
+B <ref name="x" />
+!!result
+<p>A <span about="#mwt1" class="reference" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"x"}}' id="cite_ref-x-1-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-x-1">[1]</a></span>
+B <span about="#mwt2" class="reference" data-mw='{"name":"ref","attrs":{"name":"x"}}' id="cite_ref-x-1-1" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-x-1">[1]</a></span></p>
+!!end
+
+!!test
+Ref: 3. spaces in ref-names should be ignored
+!!options
+parsoid
+!!input
+A <ref name="x">foo</ref>
+B <ref name=" x " />
+C <ref name= x  />
+!!result
+<p>A <span about="#mwt1" class="reference" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"x"}}' id="cite_ref-x-1-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-x-1">[1]</a></span>
+B <span about="#mwt2" class="reference" data-mw='{"name":"ref","attrs":{"name":"x"}}' id="cite_ref-x-1-1" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-x-1">[1]</a></span>
+C <span about="#mwt3" class="reference" data-mw='{"name":"ref","attrs":{"name":"x"}}' id="cite_ref-x-1-2" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-x-1">[1]</a></span></p>
+!!end
+
+!!test
+Ref: 4. 'constructor' should be accepted as a valid ref-name
+(NOTE: constructor is a predefined property in JS and constructor as a ref-name can clash with it if not handled properly)
+!!options
+parsoid
+!!input
+A <ref name="constructor">foo</ref>
+!!result
+<p>A <span about="#mwt1" class="reference" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"constructor"}}' id="cite_ref-constructor-1-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-constructor-1">[1]</a></span></p>
+!!end
+
+!!test
+Ref: 5. body should accept generic wikitext
+!!options
+parsoid
+!!input
+A <ref>
+ This is a '''[[bolded link]]''' and this is a {{echo|transclusion}}
+</ref>
+
+<references />
+!!result
+<p>A <span about="#mwt1" class="reference" data-mw='{"name":"ref","body":{"html":"This is a <b data-parsoid=\"{&amp;quot;dsr&amp;quot;:[19,40,3,3]}\"><a rel=\"mw:WikiLink\" href=\"./Bolded_link\" data-parsoid=\"{&amp;quot;a&amp;quot;:{&amp;quot;href&amp;quot;:&amp;quot;./Bolded_link&amp;quot;},&amp;quot;sa&amp;quot;:{&amp;quot;href&amp;quot;:&amp;quot;bolded link&amp;quot;},&amp;quot;stx&amp;quot;:&amp;quot;simple&amp;quot;,&amp;quot;dsr&amp;quot;:[22,37,2,2]}\">bolded link</a></b> and this is a <span about=\"#mwt3\" typeof=\"mw:Transclusion\" data-mw=\"{&amp;quot;target&amp;quot;:{&amp;quot;wt&amp;quot;:&amp;quot;echo&amp;quot;,&amp;quot;href&amp;quot;:&amp;quot;./Template:Echo&amp;quot;},&amp;quot;params&amp;quot;:{&amp;quot;1&amp;quot;:{&amp;quot;wt&amp;quot;:&amp;quot;transclusion&amp;quot;}}}\" data-parsoid=\"{&amp;quot;src&amp;quot;:&amp;quot;{{echo|transclusion}}&amp;quot;,&amp;quot;dsr&amp;quot;:[55,76,null,null]}\">transclusion</span>\n"},"attrs":{}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-1">[1]</a></span></p>
+
+<ol about="#mwt2" class="references" data-mw='{"name":"references","attrs":{}}' typeof="mw:Extension/references">
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> This is a <b><a rel="mw:WikiLink" href="./Bolded_link">bolded link</a></b> and this is a <span about="#mwt3" typeof="mw:Transclusion" data-mw='{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"transclusion"}}}'>transclusion</span>
+</li></ol>
+!!end
+
+!!test
+Ref: 6. indent-pres should not be output in ref-body
+!!options
+parsoid
+!!input
+A <ref>
+ foo
+ bar
+ baz
+</ref>
+
+<references />
+!!result
+<p>A <span about="#mwt1" class="reference" data-mw='{"name":"ref","body":{"html":"foo\n bar\n baz\n"},"attrs":{}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-1">[1]</a></span></p>
+
+<ol about="#mwt2" class="references" data-mw='{"name":"references","attrs":{}}' typeof="mw:Extension/references">
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> foo
+ bar
+ baz
+</li></ol>
+!!end
+
+!!test
+Ref: 6. No p-wrapping in ref-body
+!!options
+parsoid
+!!input
+A <ref>
+foo
+
+bar
+
+
+baz
+
+
+
+booz
+</ref>
+
+<references />
+!!result
+<p>A <span about="#mwt1" class="reference" data-mw='{"name":"ref","body":{"html":"foo\n\nbar\n\n\nbaz\n\n\n\nbooz\n"},"attrs":{}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-1">[1]</a></span></p>
+
+<ol about="#mwt2" class="references" data-mw='{"name":"references","attrs":{}}' typeof="mw:Extension/references">
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> foo
+
+bar
+
+
+baz
+
+
+
+booz
+</li></ol>
+!!end
+
+!!test
+Ref: 8. transclusion wikitext has lower precedence
+!!options
+parsoid
+!!input
+A <ref> foo {{echo|</ref> B C}}
+
+<references />
+!!result
+<p>A <span about="#mwt1" class="reference" data-mw='{"name":"ref","body":{"html":"foo <span typeof=\"mw:Nowiki\" data-parsoid=\"{&amp;quot;src&amp;quot;:&amp;quot;{{&amp;quot;,&amp;quot;dsr&amp;quot;:[12,14,2,null]}\">{{</span>echo|"},"attrs":{}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-1">[1]</a></span> B C<span typeof="mw:Nowiki">}}</span></p>
+
+<ol about="#mwt2" class="references" data-mw='{"name":"references","attrs":{}}' typeof="mw:Extension/references">
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> foo <span typeof="mw:Nowiki">{{</span>echo|</li></ol>
+!!end
+
+!!test
+Ref: 9. unclosed comments should not leak out of ref-body
+!!options
+parsoid
+!!input
+A <ref> foo <!--</ref> B C
+
+<references />
+!!result
+<p>A <span about="#mwt1" class="reference" data-mw='{"name":"ref","body":{"html":"foo <!---->"},"attrs":{}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-1">[1]</a></span> B C</p>
+
+<ol about="#mwt2" class="references" data-mw='{"name":"references","attrs":{}}' typeof="mw:Extension/references">
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> foo <!----></li></ol>
+!!end
+
+!!test
+Ref: 10. Unclosed HTML tags should not leak out of ref-body
+!!options
+parsoid
+!!input
+A <ref> <b> foo </ref> B C
+
+<references />
+!!result
+<p>A <span about="#mwt1" class="reference" data-mw='{"name":"ref","body":{"html":"<b data-parsoid=\"{&amp;quot;stx&amp;quot;:&amp;quot;html&amp;quot;,&amp;quot;autoInsertedEnd&amp;quot;:true,&amp;quot;dsr&amp;quot;:[8,16,3,0]}\"> foo </b>"},"attrs":{}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-1">[1]</a></span> B C</p>
+
+<ol about="#mwt2" class="references" data-mw='{"name":"references","attrs":{}}' typeof="mw:Extension/references">
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> <b> foo </b></li></ol>
+!!end
+
+!!test
+Ref: 11. ref-tags acts like an inline element wrt P-wrapping
+!!options
+parsoid
+!!input
+A <ref>foo</ref> B
+C <ref>bar</ref> D
+!!result
+<p>A <span about="#mwt1" class="reference" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-1">[1]</a></span> B
+C <span about="#mwt2" class="reference" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{}}' id="cite_ref-2-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-2">[2]</a></span> D</p>
+!!end
+
+!!test
+Ref: 12. ref-tags act as trailing newline migration barrier
+!!options
+parsoid
+!!input
+<!--the newline at the end of this line moves out of the p-tag-->a
+
+b<!--the newline at the end of this line stays inside the p-tag--> <ref />
+<ref />
+
+c
+!!result
+<p><!--the newline at the end of this line moves out of the p-tag-->a</p>
+
+
+<p>b<!--the newline at the end of this line stays inside the p-tag--> <span about="#mwt1" class="reference" data-mw='{"name":"ref","attrs":{}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-1">[1]</a></span>
+<span about="#mwt2" class="reference" data-mw='{"name":"ref","attrs":{}}' id="cite_ref-2-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-2">[2]</a></span></p>
+
+
+<p>c</p>
+!!end
+
+!!test
+Ref: 13. ref-tags are not SOL-transparent and block indent-pres
+!!options
+parsoid
+!!input
+<ref>foo</ref> A
+<ref>bar
+</ref> B
+!!result
+<p><span about="#mwt1" class="reference" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-1">[1]</a></span> A
+<span about="#mwt2" class="reference" data-mw='{"name":"ref","body":{"html":"bar\n"},"attrs":{}}' id="cite_ref-2-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-2">[2]</a></span> B</p>
+!!end
+
+!!test
+Ref: 14. A nested ref-tag should be emitted as plain text
+!!options
+parsoid
+!!input
+<ref>foo <ref>bar</ref> baz</ref>
+
+<references />
+!!result
+<span about="#mwt1" class="reference" data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;body&quot;:{&quot;html&quot;:&quot;foo &amp;lt;ref&amp;gt;bar&amp;lt;/ref&amp;gt; baz&quot;},&quot;attrs&quot;:{}}" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-1">[1]</a></span>
+
+<ol class="references" typeof="mw:Extension/references" about="#mwt2" data-mw="{&quot;name&quot;:&quot;references&quot;,&quot;attrs&quot;:{}}">
+<li about="#cite_note-1" id="cite_note-1" data-parsoid="{}"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> foo &lt;ref&gt;bar&lt;/ref&gt; baz</li></ol>
+!!end
+
+!!test
+Ref: 15. ref-tags with identical names should get identical indexes
+!!options
+parsoid
+!!input
+A1 <ref name="a">foo</ref> A2 <ref name="a" />
+B1 <ref name="b" /> B2 <ref name="b">bar</ref>
+
+<references />
+!!result
+<p>A1 <span about="#mwt3" class="reference" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"a"}}' id="cite_ref-a-1-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-a-1">[1]</a></span> A2 <span about="#mwt4" class="reference" data-mw='{"name":"ref","attrs":{"name":"a"}}' id="cite_ref-a-1-1" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-a-1">[1]</a></span>
+B1 <span about="#mwt7" class="reference" data-mw='{"name":"ref","attrs":{"name":"b"}}' id="cite_ref-b-2-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-b-2">[2]</a></span> B2 <span about="#mwt8" class="reference" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{"name":"b"}}' id="cite_ref-b-2-1" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-b-2">[2]</a></span></p>
+
+<ol about="#mwt10" class="references" data-mw='{"name":"references","attrs":{}}' typeof="mw:Extension/references"><li about="#cite_note-a-1" id="cite_note-a-1"><span rel="mw:referencedBy">↑ <a href="#cite_ref-a-1-0">1.0</a> <a href="#cite_ref-a-1-1">1.1</a></span> foo</li><li about="#cite_note-b-2" id="cite_note-b-2"><span rel="mw:referencedBy">↑ <a href="#cite_ref-b-2-0">2.0</a> <a href="#cite_ref-b-2-1">2.1</a></span> bar</li></ol>
+!!end
+
+!!test
+References: 1. references tag without any refs should be handled properly
+!!options
+parsoid
+!!input
+<references />
+!!result
+<ol about="#mwt2" class="references" data-mw='{"name":"references","attrs":{}}' typeof="mw:Extension/references"></ol>
+!!end
+
+!!test
+References: 2. references tag with group only outputs references from that group
+!!options
+parsoid
+!!input
+A <ref group="a">foo</ref>
+B <ref group="b">bar</ref>
+
+<references group='a' />
+!!result
+<p>A <span about="#mwt2" class="reference" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"group":"a"}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-1">[a 1]</a></span>
+B <span about="#mwt4" class="reference" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{"group":"b"}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-1">[b 1]</a></span></p>
+
+<ol about="#mwt6" class="references" data-mw='{"name":"references","attrs":{"group":"a"}}' typeof="mw:Extension/references"><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> foo</li></ol>
+!!end
+
+!!test
+References: 3. ref list should be cleared after processing references
+!!options
+parsoid
+!!input
+A <ref>foo</ref>
+
+<references />
+
+B <ref>bar</ref>
+
+<references />
+!!result
+<p>A <span about="#mwt2" class="reference" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-1">[1]</a></span></p>
+
+<ol about="#mwt4" class="references" data-mw='{"name":"references","attrs":{}}' typeof="mw:Extension/references"><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> foo</li></ol>
+
+<p>B <span about="#mwt6" class="reference" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-1">[1]</a></span></p>
+
+<ol about="#mwt8" class="references" data-mw='{"name":"references","attrs":{}}' typeof="mw:Extension/references"><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> bar</li></ol>
+!!end
+
+!!test
+References: 4. only referenced group should be cleared after processing references
+!!options
+parsoid
+!!input
+A <ref group="a">afoo</ref>
+B <ref>bfoo</ref>
+
+<references group="a"/>
+
+C <ref>cfoo</ref>
+
+<references />
+!!result
+<p>A <span about="#mwt2" class="reference" data-mw='{"name":"ref","body":{"html":"afoo"},"attrs":{"group":"a"}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-1">[a 1]</a></span>
+B <span about="#mwt4" class="reference" data-mw='{"name":"ref","body":{"html":"bfoo"},"attrs":{}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-parsoid='{"src":"<ref>bfoo</ref>","dsr":[30,45,5,6]}'><a href="#cite_note-1">[1]</a></span></p>
+
+<ol about="#mwt6" class="references" data-mw='{"name":"references","attrs":{"group":"a"}}' typeof="mw:Extension/references"><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> afoo</li></ol>
+
+<p>C <span about="#mwt8" class="reference" data-mw='{"name":"ref","body":{"html":"cfoo"},"attrs":{}}' id="cite_ref-2-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-2">[2]</a></span></p>
+
+<ol about="#mwt10" class="references" data-mw='{"name":"references","attrs":{}}' typeof="mw:Extension/references"><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> bfoo</li><li about="#cite_note-2" id="cite_note-2"><span rel="mw:referencedBy"><a href="#cite_ref-2-0">↑</a></span> cfoo</li></ol>
+!!end
+
+!!test
+References: 5. ref tags in references should be processed while ignoring all other content
+!!options
+parsoid
+!!input
+A <ref name="a" />
+B <ref name="b">bar</ref>
+
+<references>
+<ref name="a">foo</ref>
+This should just get lost.
+</references>
+!!result
+<p>A <span about="#mwt2" class="reference" data-mw='{"name":"ref","attrs":{"name":"a"}}' id="cite_ref-a-1-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-a-1">[1]</a></span>
+B <span about="#mwt4" class="reference" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{"name":"b"}}' id="cite_ref-b-2-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-b-2">[2]</a></span></p>
+
+<ol about="#mwt7" class="references" data-mw='{"name":"references","body":{"extsrc":"<ref name=\"a\">foo</ref>\nThis should just get lost."},"attrs":{}}' typeof="mw:Extension/references"><li about="#cite_note-a-1" id="cite_note-a-1"><span rel="mw:referencedBy"><a href="#cite_ref-a-1-0">↑</a></span> foo</li><li about="#cite_note-b-2" id="cite_note-b-2"><span rel="mw:referencedBy"><a href="#cite_ref-b-2-0">↑</a></span> bar</li></ol>
+!!end
+
+!!test
+References: 6. <references /> from a transclusion
+!!options
+parsoid
+!!input
+{{echo|<references />}}
+!!result
+<ol class="references" about="#mwt2" typeof="mw:Transclusion" data-mw='{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<references />"}},"i":0}'></ol>
+!!end
+
+#### ----------------------------------------------------------------
 #### The following section of tests are primarily to test
 #### wikitext escaping capabilities of Parsoid.  Given that
 #### escaping can be done any number of ways, the wikitext (input)
@@ -13995,6 +14958,7 @@ parsoid=wt2html,wt2wt
 #### We are marking several tests as parsoid-only since the
 #### HTML in the result section is different from what the
 #### PHP parser generates for it.
+#### ----------------------------------------------------------------
 
 
 #### --------------- Headings ---------------
@@ -14034,10 +14998,15 @@ Headings: 1. Nested inside html
 parsoid
 !! input
 =<nowiki>=foo=</nowiki>=
+
 ==<nowiki>=foo=</nowiki>==
+
 ===<nowiki>=foo=</nowiki>===
+
 ====<nowiki>=foo=</nowiki>====
+
 =====<nowiki>=foo=</nowiki>=====
+
 ======<nowiki>=foo=</nowiki>======
 !! result
 <h1><span typeof="mw:Nowiki">=foo=</span></h1>
@@ -14054,9 +15023,11 @@ Headings: 2. Outside heading nest on a single line <h1>foo</h1>*bar
 parsoid
 !! input
 =foo=
-<nowiki>*bar</nowiki>
+<nowiki>*</nowiki>bar
+
 =foo=
 =bar
+
 =foo=
 <nowiki>=bar=</nowiki>
 !! result
@@ -14081,12 +15052,19 @@ Headings: 4a. No escaping needed (testing just h1 and h2)
 parsoid
 !! input
 ==foo=
+
 =foo==
+
 = =foo= =
+
 ==foo= bar=
+
 ===foo==
+
 ==foo===
+
 =''=''foo==
+
 =<nowiki>=</nowiki>=
 !! result
 <h1>=foo</h1>
@@ -14120,10 +15098,15 @@ Headings: 5. Empty headings
 parsoid
 !! input
 =<nowiki/>=
+
 ==<nowiki/>==
+
 ===<nowiki/>===
+
 ====<nowiki/>====
+
 =====<nowiki/>=====
+
 ======<nowiki/>======
 !! result
 <h1></h1>
@@ -14135,15 +15118,85 @@ parsoid
 !!end
 
 !! test
-Headings: 6. Heading chars in SOL context
+Headings: 6a. Heading chars in SOL context (with trailing spaces)
+!! options
+parsoid
+!! input
+<nowiki>=a=</nowiki>
+
+<nowiki>=a=</nowiki> 
+
+<nowiki>=a=</nowiki>   
+
+<nowiki>=a=</nowiki>   
+!! result
+<p>=a=</p>
+<p>=a= </p>
+<p>=a= </p>
+<p>=a=         </p>
+!!end
+
+!! test
+Headings: 6b. Heading chars in SOL context (with trailing newlines)
+!! options
+parsoid
+!! input
+<nowiki>=a=
+b</nowiki>
+
+<nowiki>=a= 
+b</nowiki>
+
+<nowiki>=a=    
+b</nowiki>
+
+<nowiki>=a=     
+b</nowiki>
+!! result
+<p>=a=
+b</p>
+<p>=a= 
+b</p>
+<p>=a= 
+b</p>
+<p>=a=  
+b</p>
+</p>
+!!end
+
+!! test
+Headings: 6c. Heading chars in SOL context (leading newline break)
 !! options
 parsoid
 !! input
-<!--cmt--><nowiki>=h1=</nowiki>
-<!--cmt--><nowiki> =h1= </nowiki>
+a
+<nowiki>=b=</nowiki>
+!! result
+<p>a
+=b=</p>
+!!end
+
+!! test
+Headings: 6d. Heading chars in SOL context (with interspersed comments)
+!! options
+parsoid
+!! input
+<!--c0--><nowiki>=a=</nowiki>
+<!--c1-->
+<nowiki>=a=</nowiki> <!--c2-->  <!--c3-->
+!! result
+<p><!--c0-->=a=</p>
+<p><!--c1-->=a= <!--c2-->       <!--c3--></p>
+!!end
+
+!! test
+Headings: 6d. Heading chars in SOL context (No escaping needed)
+!! options
+parsoid=html2wt
+!! input
+=a=<div>b</div>
 !! result
-<p><!--cmt--><span typeof="mw:Nowiki">=h1=</span>
-<!--cmt--><span typeof="mw:Nowiki"> =h1= </span></p>
+=a=<div>b</div>
 !!end
 
 #### --------------- Lists ---------------
@@ -14160,9 +15213,9 @@ parsoid
 !! test
 Lists: 0. Outside nests
 !! input
-<nowiki>*foo</nowiki>
+<nowiki>*</nowiki>foo
 
-<nowiki>#foo</nowiki>
+<nowiki>#</nowiki>foo
 !! result
 <p>*foo
 </p><p>#foo
@@ -14307,8 +15360,8 @@ parsoid
 !! test
 Lists: 7. Escape bullets in a multi-line context
 !! input
-<nowiki>a
-*b</nowiki>
+a
+<nowiki>*</nowiki>b
 !! result
 <p>a
 *b
@@ -14554,7 +15607,7 @@ disabled
 
 !! end
 
-#### --------------- Links ---------------
+#### --------------- Links ----------------
 #### 1. Quote marks in link text
 #### 2. Wikilinks: Escapes needed
 #### 3. Wikilinks: No escapes needed
@@ -14566,7 +15619,7 @@ Links 1. Quote marks in link text
 !! options
 parsoid
 !! input
-[[Foo|<nowiki>Foo''boo''</nowiki>]]
+[[Foo|Foo<nowiki>''boo''</nowiki>]]
 !! result
 <a rel="mw:WikiLink" href="Foo">Foo''boo''</a>
 !! end
@@ -14644,18 +15697,22 @@ parsoid
 ''<nowiki>'foo'</nowiki>''
 ''<nowiki>''foo''</nowiki>''
 ''<nowiki>'''foo'''</nowiki>''
+''foo''<nowiki>'s</nowiki>
 '''<nowiki>'foo'</nowiki>'''
 '''<nowiki>''foo''</nowiki>'''
 '''<nowiki>'''foo'''</nowiki>'''
 '''<nowiki>foo'</nowiki>''<nowiki>bar'</nowiki>''baz'''
+'''foo'''<nowiki>'s</nowiki>
 !! result
 <p><i>'foo'</i>
 <i>''foo''</i>
 <i>'''foo'''</i>
+<i>foo</i>'s
 <b>'foo'</b>
 <b>''foo''</b>
 <b>'''foo'''</b>
 <b>foo'<i>bar'</i>baz</b>
+<b>foo</b>'s
 </p>
 !! end
 
@@ -14685,7 +15742,7 @@ parsoid
 </p>
 !! end
 
-#### --------------- Paragraphs ---------------
+#### ----------- Paragraphs ---------------
 #### 1. No unnecessary escapes
 #### --------------------------------------
 
@@ -14710,27 +15767,51 @@ bar <span><nowiki>[[foo]]</nowiki></span>
 </p>
 !!end
 
-#### --------------- PRE ------------------
-#### 1. Leading space in SOL context should be escaped
-#### --------------------------------------
+#### ----------------------- PRE --------------------------
+#### 1. Leading whitespace in SOL context should be escaped
+#### ------------------------------------------------------
 !! test
-1. Leading space in SOL context should be escaped
+1. Leading whitespace in SOL context should be escaped
 !! options
 parsoid
 !! input
-<nowiki> foo</nowiki>
-<!--cmt--><nowiki> foo</nowiki>
+<nowiki> </nowiki>a
+
+<nowiki> </nowiki> a
+
+<nowiki>       </nowiki>a(tab)
+
+<nowiki> </nowiki>     a
+<!--cmt-->
+<nowiki> </nowiki> a
+
+a
+<nowiki> </nowiki>b
+
+a
+<nowiki>       </nowiki>b
+
+a
+<nowiki>       </nowiki> b
 !! result
-<p> foo
-<!--cmt--> foo
-</p>
+<p> a</p>
+<p>  a</p>
+<p>    a(tab)</p>
+<p>    a</p>
+<p><!--cmt-->  a</p>
+<p>a
+ b</p>
+<p>a
+       b</p>
+<p>a
+        b</p>
 !! end
 
 #### --------------- HTML tags ---------------
 #### 1. a tags
 #### 2. other tags
 #### 3. multi-line html tag
-#### --------------------------------------
+#### -----------------------------------------
 !! test
 1. a tags
 !! options
@@ -14765,6 +15846,15 @@ parsoid
 </p>
 !! end
 
+!! test
+4. extension tags
+!! input
+<nowiki><ref>foo</ref></nowiki>
+!! result
+<p>&lt;ref&gt;foo&lt;/ref&gt;
+</p>
+!! end
+
 #### --------------- Others ---------------
 !! test
 Escaping nowikis
@@ -15077,7 +16167,7 @@ parsoid=wt2html,wt2wt
 <table>
 <tbody>
 <tr></tr>
-<tr typeof="mw:Object/Template">
+<tr typeof="mw:Transclusion">
 <td>foo</td></tr></tbody></table>
 !!end
 
@@ -15133,6 +16223,68 @@ parsoid
 </p>
 !!end
 
+# -----------------------------------------------------------------
+# The following section of tests are primarily to spec requirements
+# around serialization of new/edited content.
+#
+# All these tests are marked Parsoid html2wt and html2html only
+# ----------------------------------------------------------------
+
+!! test
+Image: Modifying size of an image
+!! options
+parsoid=html2wt
+!! input
+[[Image:Wiki.png|230x230px]]
+!! result
+<p data-parsoid='{"dsr":[0,24,0,0]}'><span typeof="mw:Image" data-parsoid='{"optList":[{"ck":"width","ak":"100px"}],"cacheKey":"[[Image:Wiki.png|100px]]","img":{"h":115,"w":100,"wdset":true},"dsr":[0,24,null,null]}'><a href="./File:Wiki.png" data-parsoid='{"a":{"href":"./File:Wiki.png"}}'><img resource="./File:Wiki.png" src="//upload.wikimedia.org/wikipedia/en/thumb/b/bc/Wiki.png/100px-Wiki.png" height="230" width="200" data-parsoid='{"a":{"resource":"./File:Wiki.png"},"sa":{"resource":"Image:Wiki.png"}}'></a></span></p>
+!!end
+
+!! test
+Image: New block level image should have \n before and after
+!! options
+parsoid=html2wt
+!! input
+123
+[[File:Wiki.png|right|thumb|150x150px]]
+456
+!! result
+<p>123</p><figure typeof="mw:Image/Thumb" class="mw-halign-right"><a href="./File:Wiki.png"><img src="http://192.168.142.128/mw/images/thumb/b/bc/Wiki.png/131px-Wiki.png" width="131" height="150" resource="./File:Wiki.png"></a></figure><p>456</p>
+!!end
+
+!! test
+Lists: Add space after bullets
+!! options
+parsoid=html2wt
+!! input
+
+* foo
+* bar
+* <span> baz</span>
+!! result
+<ul>
+<li>foo</li>
+<li> bar</li>
+<li><span> baz</span></li>
+</ul>
+!! end
+
+!! test
+Parsoid: Serialize positional parameters with = in them as named parameter
+!! options
+parsoid=html2wt
+!! input
+{{echo|1 = f=oo}}
+!! result
+<p about="#mwt1" typeof="mw:Transclusion"
+data-mw='{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"f=oo"}},"i":0}'
+>foo</p>
+!! end
+
+# -----------------------------------------------------------------
+# End of section for Parsoid-only html2wt tests for serialization
+# of new content
+# -----------------------------------------------------------------
 
 TODO:
 more images
diff --git a/tests/phpunit/AutoLoaderTest.php b/tests/phpunit/AutoLoaderTest.php
deleted file mode 100644 (file)
index e49ea6d..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-class AutoLoaderTest extends MediaWikiTestCase {
-
-       public function testAutoLoadConfig() {
-               $results = self::checkAutoLoadConf();
-
-               $this->assertEquals(
-                       $results['expected'],
-                       $results['actual']
-               );
-       }
-
-       protected static function checkAutoLoadConf() {
-               global $wgAutoloadLocalClasses, $wgAutoloadClasses, $IP;
-               $supportsParsekit = function_exists( 'parsekit_compile_file' );
-
-               // wgAutoloadLocalClasses has precedence, just like in includes/AutoLoader.php
-               $expected = $wgAutoloadLocalClasses + $wgAutoloadClasses;
-               $actual = array();
-
-               $files = array_unique( $expected );
-
-               foreach ( $files as $file ) {
-                       // Only prefix $IP if it doesn't have it already.
-                       // Generally local classes don't have it, and those from extensions and test suites do.
-                       if ( substr( $file, 0, 1 ) != '/' && substr( $file, 1, 1 ) != ':' ) {
-                               $filePath = "$IP/$file";
-                       } else {
-                               $filePath = $file;
-                       }
-                       if ( $supportsParsekit ) {
-                               $parseInfo = parsekit_compile_file( "$filePath" );
-                               $classes = array_keys( $parseInfo['class_table'] );
-                       } else {
-                               $contents = file_get_contents( "$filePath" );
-                               $m = array();
-                               preg_match_all( '/\n\s*(?:final)?\s*(?:abstract)?\s*(?:class|interface)\s+([a-zA-Z0-9_]+)/', $contents, $m, PREG_PATTERN_ORDER );
-                               $classes = $m[1];
-                       }
-                       foreach ( $classes as $class ) {
-                               $actual[$class] = $file;
-                       }
-               }
-
-               return array(
-                       'expected' => $expected,
-                       'actual' => $actual,
-               );
-       }
-}
diff --git a/tests/phpunit/StructureTest.php b/tests/phpunit/StructureTest.php
deleted file mode 100644 (file)
index a942098..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-/**
- * The tests here verify the structure of the code.  This is for outright bugs,
- * not just style issues.
- */
-
-class StructureTest extends MediaWikiTestCase {
-       /**
-        * Verify all files that appear to be tests have file names ending in
-        * Test.  If the file names do not end in Test, they will not be run.
-        * @group medium
-        */
-       public function testUnitTestFileNamesEndWithTest() {
-               if ( wfIsWindows() ) {
-                       $this->markTestSkipped( 'This test does not work on Windows' );
-               }
-               $rootPath = escapeshellarg( __DIR__ );
-               $testClassRegex = implode( '|', array(
-                       'ApiFormatTestBase',
-                       'ApiTestCase',
-                       'ApiQueryTestBase',
-                       'ApiQueryContinueTestBase',
-                       'MediaWikiLangTestCase',
-                       'MediaWikiTestCase',
-                       'PHPUnit_Framework_TestCase',
-                       'DumpTestCase',
-               ) );
-               $testClassRegex = "^class .* extends ($testClassRegex)";
-               $finder = "find $rootPath -name '*.php' '!' -name '*Test.php'" .
-                       " | xargs grep -El '$testClassRegex|function suite\('";
-
-               $results = null;
-               $exitCode = null;
-               exec( $finder, $results, $exitCode );
-
-               $this->assertEquals(
-                       0,
-                       $exitCode,
-                       'Verify find/grep command succeeds.'
-               );
-
-               $results = array_filter(
-                       $results,
-                       array( $this, 'filterSuites' )
-               );
-               $strip = strlen( $rootPath ) - 1;
-               foreach ( $results as $k => $v ) {
-                       $results[$k] = substr( $v, $strip );
-               }
-               $this->assertEquals(
-                       array(),
-                       $results,
-                       "Unit test file in $rootPath must end with Test."
-               );
-       }
-
-       /**
-        * Filter to remove testUnitTestFileNamesEndWithTest false positives.
-        */
-       public function filterSuites( $filename ) {
-               return strpos( $filename, __DIR__ . '/suites/' ) !== 0;
-       }
-}
index 00eba30..3544e5c 100644 (file)
@@ -173,15 +173,90 @@ class EditPageTest extends MediaWikiTestCase {
        }
 
        public function testCreatePage() {
-               $text = "Hello World!";
-               $edit = array(
-                       'wpTextbox1' => $text,
-                       'wpSummary' => 'just testing',
+               $this->assertEdit(
+                       'EditPageTest_testCreatePage',
+                       null,
+                       null,
+                       array(
+                               'wpTextbox1' => "Hello World!",
+                       ),
+                       EditPage::AS_SUCCESS_NEW_ARTICLE,
+                       "Hello World!",
+                       "expected article being created"
+               )->doDeleteArticleReal( 'EditPageTest_testCreatePage' );
+
+               $this->assertEdit(
+                       'EditPageTest_testCreatePage',
+                       null,
+                       null,
+                       array(
+                               'wpTextbox1' => "",
+                       ),
+                       EditPage::AS_BLANK_ARTICLE,
+                       null,
+                       "expected article not being created if empty"
+               );
+
+
+               $this->assertEdit(
+                       'MediaWiki:January',
+                       null,
+                       'UTSysop',
+                       array(
+                               'wpTextbox1' => "Not January",
+                       ),
+                       EditPage::AS_SUCCESS_NEW_ARTICLE,
+                       "Not January",
+                       "expected MediaWiki: page being created"
+               )->doDeleteArticleReal( 'EditPageTest_testCreatePage' );
+
+               $this->assertEdit(
+                       'MediaWiki:EditPageTest_testCreatePage',
+                       null,
+                       'UTSysop',
+                       array(
+                               'wpTextbox1' => "",
+                       ),
+                       EditPage::AS_BLANK_ARTICLE,
+                       null,
+                       "expected not-registered MediaWiki: page not being created if empty"
                );
 
-               $this->assertEdit( 'EditPageTest_testCreatePafe', null, null, $edit,
-                       EditPage::AS_SUCCESS_NEW_ARTICLE, $text,
-                       "expected successfull creation with given text" );
+               $this->assertEdit(
+                       'MediaWiki:January',
+                       null,
+                       'UTSysop',
+                       array(
+                               'wpTextbox1' => "",
+                       ),
+                       EditPage::AS_SUCCESS_NEW_ARTICLE,
+                       "",
+                       "expected registered MediaWiki: page being created even if empty"
+               )->doDeleteArticleReal( 'EditPageTest_testCreatePage' );
+               
+               $this->assertEdit(
+                       'MediaWiki:Ipb-default-expiry',
+                       null,
+                       'UTSysop',
+                       array(
+                               'wpTextbox1' => "",
+                       ),
+                       EditPage::AS_BLANK_ARTICLE,
+                       "",
+                       "expected registered MediaWiki: page whose default content is empty not being created if empty"
+               );
+
+               $this->assertEdit(
+                       'MediaWiki:January',
+                       null,
+                       'UTSysop',
+                       array(
+                               'wpTextbox1' => "January",
+                       ),
+                       EditPage::AS_BLANK_ARTICLE,
+                       null,
+                       "expected MediaWiki: page not being created if text equals default message"
+               );
        }
 
        public function testUpdatePage() {
diff --git a/tests/phpunit/includes/FauxRequestTest.php b/tests/phpunit/includes/FauxRequestTest.php
new file mode 100644 (file)
index 0000000..dfb0f13
--- /dev/null
@@ -0,0 +1,15 @@
+<?php
+
+class FauxRequestTest extends MediaWikiTestCase {
+
+       function testGetSetHeader() {
+               $value = 'test/test';
+
+               $request = new FauxRequest();
+               $request->setHeader( 'Content-Type', $value );
+
+               $this->assertEquals( $request->getHeader( 'Content-Type' ), $value );
+               $this->assertEquals( $request->getHeader( 'CONTENT-TYPE' ), $value );
+               $this->assertEquals( $request->getHeader( 'content-type' ), $value );
+       }
+}
index 56691c9..977c22b 100644 (file)
@@ -47,6 +47,9 @@ class FauxResponseTest extends MediaWikiTestCase {
 
                $this->response->header( 'Location: http://127.0.0.2/', false );
                $this->assertEquals( 'http://127.0.0.1/', $this->response->getheader( 'Location' ), 'Same header with override disabled' );
+
+               $this->response->header( 'Location: http://localhost/' );
+               $this->assertEquals( 'http://localhost/', $this->response->getheader( 'LOCATION' ), 'Get header case insensitive' );
        }
 
        function testResponseCode() {
index 166a3ce..408d440 100644 (file)
@@ -103,13 +103,6 @@ class GlobalTest extends MediaWikiTestCase {
                        UserMailer::quotedPrintable( "\xc4\x88u legebla?", "UTF-8" ) );
        }
 
-       function testTime() {
-               $start = wfTime();
-               $this->assertInternalType( 'float', $start );
-               $end = wfTime();
-               $this->assertTrue( $end > $start, "Time is running backwards!" );
-       }
-
        public static function provideArrayToCGI() {
                return array(
                        array( array(), '' ), // empty
@@ -273,8 +266,8 @@ class GlobalTest extends MediaWikiTestCase {
                        array_unshift( $param_set, $sampleUTF );
 
                        $this->assertEquals(
-                               MWFunction::callArray( 'mb_substr', $param_set ),
-                               MWFunction::callArray( 'Fallback::mb_substr', $param_set ),
+                               call_user_func_array( 'mb_substr', $param_set ),
+                               call_user_func_array( 'Fallback::mb_substr', $param_set ),
                                'Fallback mb_substr with params ' . implode( ', ', $old_param_set )
                        );
                }
@@ -301,14 +294,14 @@ class GlobalTest extends MediaWikiTestCase {
                        array_unshift( $param_set, $sampleUTF );
 
                        $this->assertEquals(
-                               MWFunction::callArray( 'mb_strpos', $param_set ),
-                               MWFunction::callArray( 'Fallback::mb_strpos', $param_set ),
+                               call_user_func_array( 'mb_strpos', $param_set ),
+                               call_user_func_array( 'Fallback::mb_strpos', $param_set ),
                                'Fallback mb_strpos with params ' . implode( ', ', $old_param_set )
                        );
 
                        $this->assertEquals(
-                               MWFunction::callArray( 'mb_strrpos', $param_set ),
-                               MWFunction::callArray( 'Fallback::mb_strrpos', $param_set ),
+                               call_user_func_array( 'mb_strrpos', $param_set ),
+                               call_user_func_array( 'Fallback::mb_strrpos', $param_set ),
                                'Fallback mb_strrpos with params ' . implode( ', ', $old_param_set )
                        );
                }
index 6229be3..baf9cee 100644 (file)
@@ -115,20 +115,6 @@ class WfBCP47Test extends MediaWikiTestCase {
                        // de-419-DE
                        // a-DE
                        // ar-a-aaa-b-bbb-a-ccc
-
-                       /*
-                       // ISO 15924 :
-                       array( 'sr-Cyrl', 'sr-Cyrl' ),
-                       # @todo FIXME: Fix our function?
-                       array( 'SR-lATN', 'sr-Latn' ),
-                       array( 'fr-latn', 'fr-Latn' ),
-                       // Use lowercase for single segment
-                       // ISO 3166-1-alpha-2 code
-                       array( 'US', 'us' ),  # USA
-                       array( 'uS', 'us' ),  # USA
-                       array( 'Fr', 'fr' ),  # France
-                       array( 'va', 'va' ),  # Holy See (Vatican City State)
-                        */
                );
        }
 }
index 7bc2938..c193179 100644 (file)
@@ -259,14 +259,63 @@ class IPTest extends MediaWikiTestCase {
        }
 
        /**
-        * test wrapper around ip2long which might return -1 or false depending on PHP version
         * @covers IP::toUnsigned
+        * @dataProvider provideToUnsigned
         */
-       public function testip2longWrapper() {
-               // @todo FIXME: Add more tests ?
-               $this->assertEquals( pow( 2, 32 ) - 1, IP::toUnsigned( '255.255.255.255' ) );
-               $i = 'IN.VA.LI.D';
-               $this->assertFalse( IP::toUnSigned( $i ) );
+       public function testToUnsigned( $expected, $input ) {
+               $result = IP::toUnsigned( $input );
+               $this->assertTrue( $result === false || is_string( $result ) || is_int( $result ) );
+               $this->assertEquals( $expected, $result );
+       }
+
+       /**
+        * Provider for IP::testToUnsigned()
+        */
+       public static function provideToUnsigned() {
+               return array(
+                       array ( 1, '0.0.0.1' ),
+                       array ( 16909060, '1.2.3.4' ),
+                       array ( 2130706433, '127.0.0.1' ),
+                       array ( '2147483648', '128.0.0.0' ),
+                       array ( '3735931646', '222.173.202.254' ),
+                       array ( pow( 2, 32 ) - 1, '255.255.255.255' ),
+                       array ( false, 'IN.VA.LI.D' ),
+                       array ( 1, '::1' ),
+                       array ( '42540766452641154071740215577757643572', '2001:0db8:85a3:0000:0000:8a2e:0370:7334' ),
+                       array ( '42540766452641154071740215577757643572', '2001:db8:85a3::8a2e:0370:7334' ),
+                       array ( false, 'IN:VA::LI:D' ),
+                       array ( false, ':::1' )
+               );
+       }
+
+       /**
+        * @covers IP::toHex
+        * @dataProvider provideToHex
+        */
+       public function testToHex( $expected, $input ) {
+               $result = IP::toHex( $input );
+               $this->assertTrue( $result === false || is_string( $result ) );
+               $this->assertEquals( $expected, $result );
+       }
+
+       /**
+        * Provider for IP::testToHex()
+        */
+       public static function provideToHex() {
+               return array(
+                       array ( '00000001', '0.0.0.1' ),
+                       array ( '01020304', '1.2.3.4' ),
+                       array ( '7F000001', '127.0.0.1' ),
+                       array ( '80000000', '128.0.0.0' ),
+                       array ( 'DEADCAFE', '222.173.202.254' ),
+                       array ( 'FFFFFFFF', '255.255.255.255' ),
+                       array ( false, 'IN.VA.LI.D' ),
+                       array ( 'v6-00000000000000000000000000000001', '::1' ),
+                       array ( 'v6-20010DB885A3000000008A2E03707334', '2001:0db8:85a3:0000:0000:8a2e:0370:7334' ),
+                       array ( 'v6-20010DB885A3000000008A2E03707334', '2001:db8:85a3::8a2e:0370:7334' ),
+                       array ( false, 'IN:VA::LI:D' ),
+                       array ( false, ':::1' )
+               );
        }
 
        /**
index becf507..a44f69e 100644 (file)
@@ -1,26 +1,6 @@
 <?php
 
 class MWFunctionTest extends MediaWikiTestCase {
-       function testCallUserFuncWorkarounds() {
-               $this->assertEquals(
-                       call_user_func( array( 'MWFunctionTest', 'someMethod' ) ),
-                       MWFunction::call( 'MWFunctionTest::someMethod' )
-               );
-               $this->assertEquals(
-                       call_user_func( array( 'MWFunctionTest', 'someMethod' ), 'foo', 'bar', 'baz' ),
-                       MWFunction::call( 'MWFunctionTest::someMethod', 'foo', 'bar', 'baz' )
-               );
-
-               $this->assertEquals(
-                       call_user_func_array( array( 'MWFunctionTest', 'someMethod' ), array() ),
-                       MWFunction::callArray( 'MWFunctionTest::someMethod', array() )
-               );
-               $this->assertEquals(
-                       call_user_func_array( array( 'MWFunctionTest', 'someMethod' ), array( 'foo', 'bar', 'baz' ) ),
-                       MWFunction::callArray( 'MWFunctionTest::someMethod', array( 'foo', 'bar', 'baz' ) )
-               );
-       }
-
        function testNewObjFunction() {
                $arg1 = 'Foo';
                $arg2 = 'Bar';
@@ -34,30 +14,6 @@ class MWFunctionTest extends MediaWikiTestCase {
                        MWFunction::newObj( 'MWBlankClass', $args )->args,
                        $newObject->args
                );
-
-               $this->assertEquals(
-                       MWFunction::newObj( 'MWBlankClass', $args, true )->args,
-                       $newObject->args,
-                       'Works even with PHP version < 5.1.3'
-               );
-       }
-
-       /**
-        * @expectedException MWException
-        */
-       function testCallingParentFails() {
-               MWFunction::call( 'parent::foo' );
-       }
-
-       /**
-        * @expectedException MWException
-        */
-       function testCallingSelfFails() {
-               MWFunction::call( 'self::foo' );
-       }
-
-       public static function someMethod() {
-               return func_get_args();
        }
 }
 
index 7d6d5a1..10e9db6 100644 (file)
@@ -350,20 +350,20 @@ class MWNamespaceTest extends MediaWikiTestCase {
 
                # test !is_array( $wgcontentNamespaces )
                $wgContentNamespaces = '';
-               $this->assertEquals( NS_MAIN, MWNamespace::getContentNamespaces() );
+               $this->assertEquals( array( NS_MAIN ), MWNamespace::getContentNamespaces() );
 
                $wgContentNamespaces = false;
-               $this->assertEquals( NS_MAIN, MWNamespace::getContentNamespaces() );
+               $this->assertEquals( array( NS_MAIN ), MWNamespace::getContentNamespaces() );
 
                $wgContentNamespaces = null;
-               $this->assertEquals( NS_MAIN, MWNamespace::getContentNamespaces() );
+               $this->assertEquals( array( NS_MAIN ), MWNamespace::getContentNamespaces() );
 
                $wgContentNamespaces = 5;
-               $this->assertEquals( NS_MAIN, MWNamespace::getContentNamespaces() );
+               $this->assertEquals( array( NS_MAIN ), MWNamespace::getContentNamespaces() );
 
                # test $wgContentNamespaces === array()
                $wgContentNamespaces = array();
-               $this->assertEquals( NS_MAIN, MWNamespace::getContentNamespaces() );
+               $this->assertEquals( array( NS_MAIN ), MWNamespace::getContentNamespaces() );
 
                # test !in_array( NS_MAIN, $wgContentNamespaces )
                $wgContentNamespaces = array( NS_USER, NS_CATEGORY );
index 4084fb1..56bb0fc 100644 (file)
@@ -19,7 +19,6 @@ class OutputPageTest extends MediaWikiTestCase {
         *
         * options['printableQuery'] - value of query string for printable, or omitted for none
         * options['handheldQuery'] - value of query string for handheld, or omitted for none
-        * options['handheldForIPhone'] - value of the $wgHandheldForIPhone global
         * options['media'] - passed into the method under the same name
         * options['expectedReturn'] - expected return value
         * options['message'] - PHPUnit message for assertion
@@ -39,58 +38,38 @@ class OutputPageTest extends MediaWikiTestCase {
                $fauxRequest = new FauxRequest( $queryData, false );
                $this->setMWGlobals( array(
                        'wgRequest' => $fauxRequest,
-                       'wgHandheldForIPhone' => $args['handheldForIPhone']
                ) );
 
                $actualReturn = OutputPage::transformCssMedia( $args['media'] );
                $this->assertSame( $args['expectedReturn'], $actualReturn, $args['message'] );
        }
 
-       /**
-        * Tests a case of transformCssMedia with both values of wgHandheldForIPhone.
-        * Used to verify that behavior is orthogonal to that option.
-        *
-        * If the value of wgHandheldForIPhone should matter, use assertTransformCssMediaCase.
-        *
-        * @param array $args key-value array of arguments as shown in assertTransformCssMediaCase.
-        * Will be mutated.
-        */
-       protected function assertTransformCssMediaCaseWithBothHandheldForIPhone( $args ) {
-               $message = $args['message'];
-               foreach ( array( true, false ) as $handheldForIPhone ) {
-                       $args['handheldForIPhone'] = $handheldForIPhone;
-                       $stringHandheldForIPhone = var_export( $handheldForIPhone, true );
-                       $args['message'] = "$message. \$wgHandheldForIPhone was $stringHandheldForIPhone";
-                       $this->assertTransformCssMediaCase( $args );
-               }
-       }
-
        /**
         * Tests print requests
         */
        public function testPrintRequests() {
-               $this->assertTransformCssMediaCaseWithBothHandheldForIPhone( array(
+               $this->assertTransformCssMediaCase( array(
                        'printableQuery' => '1',
                        'media' => 'screen',
                        'expectedReturn' => null,
                        'message' => 'On printable request, screen returns null'
                ) );
 
-               $this->assertTransformCssMediaCaseWithBothHandheldForIPhone( array(
+               $this->assertTransformCssMediaCase( array(
                        'printableQuery' => '1',
                        'media' => self::SCREEN_MEDIA_QUERY,
                        'expectedReturn' => null,
                        'message' => 'On printable request, screen media query returns null'
                ) );
 
-               $this->assertTransformCssMediaCaseWithBothHandheldForIPhone( array(
+               $this->assertTransformCssMediaCase( array(
                        'printableQuery' => '1',
                        'media' => self::SCREEN_ONLY_MEDIA_QUERY,
                        'expectedReturn' => null,
                        'message' => 'On printable request, screen media query with only returns null'
                ) );
 
-               $this->assertTransformCssMediaCaseWithBothHandheldForIPhone( array(
+               $this->assertTransformCssMediaCase( array(
                        'printableQuery' => '1',
                        'media' => 'print',
                        'expectedReturn' => '',
@@ -103,25 +82,30 @@ class OutputPageTest extends MediaWikiTestCase {
         */
        public function testScreenRequests() {
                $this->assertTransformCssMediaCase( array(
-                       'handheldForIPhone' => false,
                        'media' => 'screen',
                        'expectedReturn' => 'screen',
-                       'message' => 'On screen request, with handheldForIPhone false, screen media type is preserved'
+                       'message' => 'On screen request, screen media type is preserved'
+               ) );
+
+               $this->assertTransformCssMediaCase( array(
+                       'media' => 'handheld',
+                       'expectedReturn' => 'handheld',
+                       'message' => 'On screen request, handheld media type is preserved'
                ) );
 
-               $this->assertTransformCssMediaCaseWithBothHandheldForIPhone( array(
+               $this->assertTransformCssMediaCase( array(
                        'media' => self::SCREEN_MEDIA_QUERY,
                        'expectedReturn' => self::SCREEN_MEDIA_QUERY,
                        'message' => 'On screen request, screen media query is preserved.'
                ) );
 
-               $this->assertTransformCssMediaCaseWithBothHandheldForIPhone( array(
+               $this->assertTransformCssMediaCase( array(
                        'media' => self::SCREEN_ONLY_MEDIA_QUERY,
                        'expectedReturn' => self::SCREEN_ONLY_MEDIA_QUERY,
                        'message' => 'On screen request, screen media query with only is preserved.'
                ) );
 
-               $this->assertTransformCssMediaCaseWithBothHandheldForIPhone( array(
+               $this->assertTransformCssMediaCase( array(
                        'media' => 'print',
                        'expectedReturn' => 'print',
                        'message' => 'On screen request, print media type is preserved'
@@ -129,44 +113,21 @@ class OutputPageTest extends MediaWikiTestCase {
        }
 
        /**
-        * Tests handheld and wgHandheldForIPhone behavior
+        * Tests handheld behavior
         */
        public function testHandheld() {
-               $this->assertTransformCssMediaCaseWithBothHandheldForIPhone( array(
+               $this->assertTransformCssMediaCase( array(
                        'handheldQuery' => '1',
                        'media' => 'handheld',
                        'expectedReturn' => '',
                        'message' => 'On request with handheld querystring and media is handheld, returns empty string'
                ) );
 
-               $this->assertTransformCssMediaCaseWithBothHandheldForIPhone( array(
+               $this->assertTransformCssMediaCase( array(
                        'handheldQuery' => '1',
                        'media' => 'screen',
                        'expectedReturn' => null,
                        'message' => 'On request with handheld querystring and media is screen, returns null'
                ) );
-
-               // A bit counter-intuitively, $wgHandheldForIPhone should only matter if the query handheld is false or omitted
-               $this->assertTransformCssMediaCase( array(
-                       'handheldQuery' => '0',
-                       'media' => 'screen',
-                       'handheldForIPhone' => true,
-                       'expectedReturn' => 'screen and (min-device-width: 481px)',
-                       'message' => 'With $wgHandheldForIPhone true, screen media type is transformed'
-               ) );
-
-               $this->assertTransformCssMediaCase( array(
-                       'media' => 'handheld',
-                       'handheldForIPhone' => true,
-                       'expectedReturn' => 'handheld, only screen and (max-device-width: 480px)',
-                       'message' => 'With $wgHandheldForIPhone true, handheld media type is transformed'
-               ) );
-
-               $this->assertTransformCssMediaCase( array(
-                       'media' => 'handheld',
-                       'handheldForIPhone' => false,
-                       'expectedReturn' => 'handheld',
-                       'message' => 'With $wgHandheldForIPhone false, handheld media type is preserved'
-               ) );
        }
 }
diff --git a/tests/phpunit/includes/SeleniumConfigurationTest.php b/tests/phpunit/includes/SeleniumConfigurationTest.php
deleted file mode 100644 (file)
index 4b49f63..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-<?php
-
-class SeleniumConfigurationTest extends MediaWikiTestCase {
-
-       /**
-        * The file where the test temporarity stores the selenium config.
-        * This should be cleaned up as part of teardown.
-        */
-       private $tempFileName;
-
-       /**
-        * String containing the a sample selenium settings
-        */
-       private $testConfig0 = '
-[SeleniumSettings]
-browsers[firefox]      = "*firefox"
-browsers[iexplorer] = "*iexploreproxy"
-browsers[chrome]       = "*chrome"
-host                           = "localhost"
-port                           = "foobarr"
-wikiUrl                        = "http://localhost/deployment"
-username                       = "xxxxxxx"
-userPassword           = ""
-testBrowser            = "chrome"
-startserver            =
-stopserver             =
-jUnitLogFile   =
-runAgainstGrid = false
-
-[SeleniumTests]
-testSuite[SimpleSeleniumTestSuite] = "tests/selenium/SimpleSeleniumTestSuite.php"
-testSuite[TestSuiteName] = "testSuitePath"
-';
-       /**
-        * Array of expected browsers from $testConfig0
-        */
-       private $testBrowsers0 = array( 'firefox' => '*firefox',
-               'iexplorer' => '*iexploreproxy',
-               'chrome' => '*chrome'
-       );
-       /**
-        * Array of expected selenium settings from $testConfig0
-        */
-       private $testSettings0 = array(
-               'host' => 'localhost',
-               'port' => 'foobarr',
-               'wikiUrl' => 'http://localhost/deployment',
-               'username' => 'xxxxxxx',
-               'userPassword' => '',
-               'testBrowser' => 'chrome',
-               'startserver' => null,
-               'stopserver' => null,
-               'seleniumserverexecpath' => null,
-               'jUnitLogFile' => null,
-               'runAgainstGrid' => null
-       );
-       /**
-        * Array of expected testSuites from $testConfig0
-        */
-       private $testSuites0 = array(
-               'SimpleSeleniumTestSuite' => 'tests/selenium/SimpleSeleniumTestSuite.php',
-               'TestSuiteName' => 'testSuitePath'
-       );
-
-       /**
-        * Another sample selenium settings file contents
-        */
-       private $testConfig1 =
-               '
-[SeleniumSettings]
-host                           = "localhost"
-testBrowser            = "firefox"
-';
-       /**
-        * Expected browsers from $testConfig1
-        */
-       private $testBrowsers1 = null;
-       /**
-        * Expected selenium settings from $testConfig1
-        */
-       private $testSettings1 = array(
-               'host' => 'localhost',
-               'port' => null,
-               'wikiUrl' => null,
-               'username' => null,
-               'userPassword' => null,
-               'testBrowser' => 'firefox',
-               'startserver' => null,
-               'stopserver' => null,
-               'seleniumserverexecpath' => null,
-               'jUnitLogFile' => null,
-               'runAgainstGrid' => null
-       );
-       /**
-        * Expected test suites from $testConfig1
-        */
-       private $testSuites1 = null;
-
-
-       protected function setUp() {
-               parent::setUp();
-               if ( !defined( 'SELENIUMTEST' ) ) {
-                       define( 'SELENIUMTEST', true );
-               }
-       }
-
-       /**
-        * Clean up the temporary file used to store the selenium settings.
-        */
-       protected function tearDown() {
-               if ( strlen( $this->tempFileName ) > 0 ) {
-                       unlink( $this->tempFileName );
-                       unset( $this->tempFileName );
-               }
-               parent::tearDown();
-       }
-
-       /**
-        * @expectedException MWException
-        * @group SeleniumFramework
-        */
-       public function testErrorOnIncorrectConfigFile() {
-               $seleniumSettings = array();
-               $seleniumBrowsers = array();
-               $seleniumTestSuites = array();
-
-               SeleniumConfig::getSeleniumSettings( $seleniumSettings,
-                       $seleniumBrowsers,
-                       $seleniumTestSuites,
-                       "Some_fake_settings_file.ini" );
-       }
-
-       /**
-        * @expectedException MWException
-        * @group SeleniumFramework
-        */
-       public function testErrorOnMissingConfigFile() {
-               $seleniumSettings = array();
-               $seleniumBrowsers = array();
-               $seleniumTestSuites = array();
-               $this->setMwGlobals( 'wgSeleniumConfigFile', '' );
-
-               SeleniumConfig::getSeleniumSettings( $seleniumSettings,
-                       $seleniumBrowsers,
-                       $seleniumTestSuites );
-       }
-
-       /**
-        * @group SeleniumFramework
-        */
-       public function testUsesGlobalVarForConfigFile() {
-               $seleniumSettings = array();
-               $seleniumBrowsers = array();
-               $seleniumTestSuites = array();
-               $this->writeToTempFile( $this->testConfig0 );
-               $this->setMwGlobals( 'wgSeleniumConfigFile', $this->tempFileName );
-
-               SeleniumConfig::getSeleniumSettings( $seleniumSettings,
-                       $seleniumBrowsers,
-                       $seleniumTestSuites );
-               $this->assertEquals( $seleniumSettings, $this->testSettings0,
-                       'The selenium settings should have been read from the file defined in $wgSeleniumConfigFile'
-               );
-               $this->assertEquals( $seleniumBrowsers, $this->testBrowsers0,
-                       'The available browsers should have been read from the file defined in $wgSeleniumConfigFile'
-               );
-               $this->assertEquals( $seleniumTestSuites, $this->testSuites0,
-                       'The test suites should have been read from the file defined in $wgSeleniumConfigFile'
-               );
-       }
-
-       /**
-        * @group SeleniumFramework
-        * @dataProvider sampleConfigs
-        */
-       public function testgetSeleniumSettings( $sampleConfig, $expectedSettings, $expectedBrowsers, $expectedSuites ) {
-               $this->writeToTempFile( $sampleConfig );
-               $seleniumSettings = array();
-               $seleniumBrowsers = array();
-               $seleniumTestSuites = null;
-
-               SeleniumConfig::getSeleniumSettings( $seleniumSettings,
-                       $seleniumBrowsers,
-                       $seleniumTestSuites,
-                       $this->tempFileName );
-
-               $this->assertEquals( $seleniumSettings, $expectedSettings,
-                       "The selenium settings for the following test configuration was not retrieved correctly" . $sampleConfig
-               );
-               $this->assertEquals( $seleniumBrowsers, $expectedBrowsers,
-                       "The available browsers for the following test configuration was not retrieved correctly" . $sampleConfig
-               );
-               $this->assertEquals( $seleniumTestSuites, $expectedSuites,
-                       "The test suites for the following test configuration was not retrieved correctly" . $sampleConfig
-               );
-       }
-
-       /**
-        * create a temp file and write text to it.
-        * @param $testToWrite the text to write to the temp file
-        */
-       private function writeToTempFile( $textToWrite ) {
-               $this->tempFileName = tempnam( sys_get_temp_dir(), 'test_settings.' );
-               $tempFile = fopen( $this->tempFileName, "w" );
-               fwrite( $tempFile, $textToWrite );
-               fclose( $tempFile );
-       }
-
-       /**
-        * Returns an array containing:
-        *     The contents of the selenium cingiguration ini file
-        *  The expected selenium configuration array that getSeleniumSettings should return
-        *  The expected available browsers array that getSeleniumSettings should return
-        *  The expected test suites arrya that getSeleniumSettings should return
-        */
-       public function sampleConfigs() {
-               return array(
-                       array( $this->testConfig0, $this->testSettings0, $this->testBrowsers0, $this->testSuites0 ),
-                       array( $this->testConfig1, $this->testSettings1, $this->testBrowsers1, $this->testSuites1 )
-               );
-       }
-}
index f0eb76f..9144d0c 100644 (file)
@@ -402,41 +402,78 @@ class TitlePermissionTest extends MediaWikiLangTestCase {
        function testCssAndJavascriptPermissions() {
                $this->setUser( $this->userName );
 
+               $this->setTitle( NS_USER, $this->userName . '/test.js' );
+               $this->runCSSandJSPermissions(
+                       array( array( 'badaccess-group0' ), array( 'mycustomjsprotected' ) ),
+                       array( array( 'badaccess-group0' ), array( 'mycustomjsprotected' ) ),
+                       array( array( 'badaccess-group0' ) ),
+                       array( array( 'badaccess-group0' ), array( 'mycustomjsprotected' ) ),
+                       array( array( 'badaccess-group0' ) )
+               );
+
+               $this->setTitle( NS_USER, $this->userName . '/test.css' );
+               $this->runCSSandJSPermissions(
+                       array( array( 'badaccess-group0' ), array( 'mycustomcssprotected' ) ),
+                       array( array( 'badaccess-group0' ) ),
+                       array( array( 'badaccess-group0' ), array( 'mycustomcssprotected' ) ),
+                       array( array( 'badaccess-group0' ) ),
+                       array( array( 'badaccess-group0' ), array( 'mycustomcssprotected' ) )
+               );
+
                $this->setTitle( NS_USER, $this->altUserName . '/test.js' );
                $this->runCSSandJSPermissions(
                        array( array( 'badaccess-group0' ), array( 'customjsprotected' ) ),
                        array( array( 'badaccess-group0' ), array( 'customjsprotected' ) ),
-                       array( array( 'badaccess-group0' ) ) );
+                       array( array( 'badaccess-group0' ), array( 'customjsprotected' ) ),
+                       array( array( 'badaccess-group0' ), array( 'customjsprotected' ) ),
+                       array( array( 'badaccess-group0' ) )
+               );
 
                $this->setTitle( NS_USER, $this->altUserName . '/test.css' );
                $this->runCSSandJSPermissions(
+                       array( array( 'badaccess-group0' ), array( 'customcssprotected' ) ),
+                       array( array( 'badaccess-group0' ), array( 'customcssprotected' ) ),
                        array( array( 'badaccess-group0' ), array( 'customcssprotected' ) ),
                        array( array( 'badaccess-group0' ) ),
-                       array( array( 'badaccess-group0' ), array( 'customcssprotected' ) ) );
+                       array( array( 'badaccess-group0' ), array( 'customcssprotected' ) )
+               );
 
                $this->setTitle( NS_USER, $this->altUserName . '/tempo' );
                $this->runCSSandJSPermissions(
                        array( array( 'badaccess-group0' ) ),
                        array( array( 'badaccess-group0' ) ),
-                       array( array( 'badaccess-group0' ) ) );
+                       array( array( 'badaccess-group0' ) ),
+                       array( array( 'badaccess-group0' ) ),
+                       array( array( 'badaccess-group0' ) )
+               );
        }
 
-       function runCSSandJSPermissions( $result0, $result1, $result2 ) {
+       function runCSSandJSPermissions( $result0, $result1, $result2, $result3, $result4 ) {
                $this->setUserPerm( '' );
                $this->assertEquals( $result0,
                        $this->title->getUserPermissionsErrors( 'bogus',
                                $this->user ) );
 
-               $this->setUserPerm( 'editusercss' );
+               $this->setUserPerm( 'editmyusercss' );
                $this->assertEquals( $result1,
                        $this->title->getUserPermissionsErrors( 'bogus',
                                $this->user ) );
 
-               $this->setUserPerm( 'edituserjs' );
+               $this->setUserPerm( 'editmyuserjs' );
                $this->assertEquals( $result2,
                        $this->title->getUserPermissionsErrors( 'bogus',
                                $this->user ) );
 
+               $this->setUserPerm( 'editusercss' );
+               $this->assertEquals( $result3,
+                       $this->title->getUserPermissionsErrors( 'bogus',
+                               $this->user ) );
+
+               $this->setUserPerm( 'edituserjs' );
+               $this->assertEquals( $result4,
+                       $this->title->getUserPermissionsErrors( 'bogus',
+                               $this->user ) );
+
                $this->setUserPerm( 'editusercssjs' );
                $this->assertEquals( array( array( 'badaccess-group0' ) ),
                        $this->title->getUserPermissionsErrors( 'bogus',
@@ -469,39 +506,59 @@ class TitlePermissionTest extends MediaWikiLangTestCase {
 
                $this->assertEquals( array( array( 'badaccess-group0' ),
                                array( 'protectedpagetext', 'bogus' ),
-                               array( 'protectedpagetext', 'protect' ),
+                               array( 'protectedpagetext', 'editprotected' ),
                                array( 'protectedpagetext', 'protect' ) ),
                        $this->title->getUserPermissionsErrors( 'bogus',
                                $this->user ) );
                $this->assertEquals( array( array( 'protectedpagetext', 'bogus' ),
-                               array( 'protectedpagetext', 'protect' ),
+                               array( 'protectedpagetext', 'editprotected' ),
                                array( 'protectedpagetext', 'protect' ) ),
                        $this->title->getUserPermissionsErrors( 'edit',
                                $this->user ) );
                $this->setUserPerm( "" );
                $this->assertEquals( array( array( 'badaccess-group0' ),
                                array( 'protectedpagetext', 'bogus' ),
-                               array( 'protectedpagetext', 'protect' ),
+                               array( 'protectedpagetext', 'editprotected' ),
                                array( 'protectedpagetext', 'protect' ) ),
                        $this->title->getUserPermissionsErrors( 'bogus',
                                $this->user ) );
                $this->assertEquals( array( array( 'badaccess-groups', "*, [[$prefix:Users|Users]]", 2 ),
                                array( 'protectedpagetext', 'bogus' ),
-                               array( 'protectedpagetext', 'protect' ),
+                               array( 'protectedpagetext', 'editprotected' ),
                                array( 'protectedpagetext', 'protect' ) ),
                        $this->title->getUserPermissionsErrors( 'edit',
                                $this->user ) );
                $this->setUserPerm( array( "edit", "editprotected" ) );
                $this->assertEquals( array( array( 'badaccess-group0' ),
                                array( 'protectedpagetext', 'bogus' ),
-                               array( 'protectedpagetext', 'protect' ),
                                array( 'protectedpagetext', 'protect' ) ),
                        $this->title->getUserPermissionsErrors( 'bogus',
                                $this->user ) );
-               $this->assertEquals( array(),
+               $this->assertEquals( array(
+                               array( 'protectedpagetext', 'bogus' ),
+                               array( 'protectedpagetext', 'protect' ) ),
                        $this->title->getUserPermissionsErrors( 'edit',
                                $this->user ) );
+
                $this->title->mCascadeRestriction = true;
+               $this->setUserPerm( "edit" );
+               $this->assertEquals( false,
+                       $this->title->quickUserCan( 'bogus', $this->user ) );
+               $this->assertEquals( false,
+                       $this->title->quickUserCan( 'edit', $this->user ) );
+               $this->assertEquals( array( array( 'badaccess-group0' ),
+                               array( 'protectedpagetext', 'bogus' ),
+                               array( 'protectedpagetext', 'editprotected' ),
+                               array( 'protectedpagetext', 'protect' ) ),
+                       $this->title->getUserPermissionsErrors( 'bogus',
+                               $this->user ) );
+               $this->assertEquals( array( array( 'protectedpagetext', 'bogus' ),
+                               array( 'protectedpagetext', 'editprotected' ),
+                               array( 'protectedpagetext', 'protect' ) ),
+                       $this->title->getUserPermissionsErrors( 'edit',
+                               $this->user ) );
+
+               $this->setUserPerm( array( "edit", "editprotected" ) );
                $this->assertEquals( false,
                        $this->title->quickUserCan( 'bogus', $this->user ) );
                $this->assertEquals( false,
@@ -529,6 +586,7 @@ class TitlePermissionTest extends MediaWikiLangTestCase {
                $this->assertEquals( false,
                        $this->title->userCan( 'bogus', $this->user ) );
                $this->assertEquals( array( array( "cascadeprotected", 2, "* [[:Bogus]]\n* [[:UnBogus]]\n" ),
+                               array( "cascadeprotected", 2, "* [[:Bogus]]\n* [[:UnBogus]]\n" ),
                                array( "cascadeprotected", 2, "* [[:Bogus]]\n* [[:UnBogus]]\n" ) ),
                        $this->title->getUserPermissionsErrors( 'bogus', $this->user ) );
 
@@ -554,6 +612,12 @@ class TitlePermissionTest extends MediaWikiLangTestCase {
 
                $this->title->mTitleProtection['pt_create_perm'] = 'sysop';
                $this->setUserPerm( array( 'createpage', 'protect' ) );
+               $this->assertEquals( array( array( 'titleprotected', 'Useruser', 'test' ) ),
+                       $this->title->getUserPermissionsErrors( 'create', $this->user ) );
+               $this->assertEquals( false,
+                       $this->title->userCan( 'create', $this->user ) );
+
+               $this->setUserPerm( array( 'createpage', 'editprotected' ) );
                $this->assertEquals( array(),
                        $this->title->getUserPermissionsErrors( 'create', $this->user ) );
                $this->assertEquals( true,
index e777179..0113cab 100644 (file)
@@ -46,6 +46,11 @@ class UserTest extends MediaWikiTestCase {
                $wgRevokePermissions['formertesters'] = array(
                        'runtest' => true,
                );
+
+               # For the options test
+               $wgGroupPermissions['*'] = array(
+                       'editmyoptions' => true,
+               );
        }
 
        public function testGroupPermissions() {
index d382f6f..1c6b733 100644 (file)
@@ -101,11 +101,19 @@ class WebRequestTest extends MediaWikiTestCase {
        /**
         * @dataProvider provideGetIP
         */
-       function testGetIP( $expected, $input, $squid, $private, $description ) {
+       function testGetIP( $expected, $input, $squid, $xffList, $private, $description ) {
                $_SERVER = $input;
                $this->setMwGlobals( array(
                        'wgSquidServersNoPurge' => $squid,
                        'wgUsePrivateIPs' => $private,
+                       'wgHooks' => array(
+                               'IsTrustedProxy' => array(
+                                       function( &$ip, &$trusted ) use ( $xffList ) {
+                                               $trusted = $trusted || in_array( $ip, $xffList );
+                                               return true;
+                                       }
+                               )
+                       )
                ) );
 
                $request = new WebRequest();
@@ -121,6 +129,7 @@ class WebRequestTest extends MediaWikiTestCase {
                                        'REMOTE_ADDR' => '127.0.0.1'
                                ),
                                array(),
+                               array(),
                                false,
                                'Simple IPv4'
                        ),
@@ -130,6 +139,7 @@ class WebRequestTest extends MediaWikiTestCase {
                                        'REMOTE_ADDR' => '::1'
                                ),
                                array(),
+                               array(),
                                false,
                                'Simple IPv6'
                        ),
@@ -140,6 +150,7 @@ class WebRequestTest extends MediaWikiTestCase {
                                        'HTTP_X_FORWARDED_FOR' => '12.0.0.3, 12.0.0.2'
                                ),
                                array( '12.0.0.1', '12.0.0.2' ),
+                               array(),
                                false,
                                'With X-Forwaded-For'
                        ),
@@ -150,6 +161,7 @@ class WebRequestTest extends MediaWikiTestCase {
                                        'HTTP_X_FORWARDED_FOR' => '12.0.0.3, 12.0.0.2'
                                ),
                                array(),
+                               array(),
                                false,
                                'With X-Forwaded-For and disallowed server'
                        ),
@@ -160,29 +172,87 @@ class WebRequestTest extends MediaWikiTestCase {
                                        'HTTP_X_FORWARDED_FOR' => '12.0.0.3, 12.0.0.2'
                                ),
                                array( '12.0.0.1' ),
+                               array(),
                                false,
                                'With multiple X-Forwaded-For and only one allowed server'
                        ),
                        array(
-                               '12.0.0.2',
+                               '10.0.0.3',
                                array(
                                        'REMOTE_ADDR' => '12.0.0.2',
-                                       'HTTP_X_FORWARDED_FOR' => '10.0.0.3, 12.0.0.2'
+                                       'HTTP_X_FORWARDED_FOR' => '10.0.0.4, 10.0.0.3, 12.0.0.2'
                                ),
                                array( '12.0.0.1', '12.0.0.2' ),
+                               array(),
                                false,
-                               'With X-Forwaded-For and private IP'
+                               'With X-Forwaded-For and private IP (from cache proxy)'
                        ),
                        array(
-                               '10.0.0.3',
+                               '10.0.0.4',
                                array(
                                        'REMOTE_ADDR' => '12.0.0.2',
-                                       'HTTP_X_FORWARDED_FOR' => '10.0.0.3, 12.0.0.2'
+                                       'HTTP_X_FORWARDED_FOR' => '10.0.0.4, 10.0.0.3, 12.0.0.2'
+                               ),
+                               array( '12.0.0.1', '12.0.0.2', '10.0.0.3' ),
+                               array(),
+                               true,
+                               'With X-Forwaded-For and private IP (allowed)'
+                       ),
+                       array(
+                               '10.0.0.4',
+                               array(
+                                       'REMOTE_ADDR' => '12.0.0.2',
+                                       'HTTP_X_FORWARDED_FOR' => '10.0.0.4, 10.0.0.3, 12.0.0.2'
                                ),
                                array( '12.0.0.1', '12.0.0.2' ),
+                               array( '10.0.0.3' ),
                                true,
                                'With X-Forwaded-For and private IP (allowed)'
                        ),
+                       array(
+                               '10.0.0.3',
+                               array(
+                                       'REMOTE_ADDR' => '12.0.0.2',
+                                       'HTTP_X_FORWARDED_FOR' => '10.0.0.4, 10.0.0.3, 12.0.0.2'
+                               ),
+                               array( '12.0.0.1', '12.0.0.2' ),
+                               array( '10.0.0.3' ),
+                               false,
+                               'With X-Forwaded-For and private IP (disallowed)'
+                       ),
+                       array(
+                               '12.0.0.3',
+                               array(
+                                       'REMOTE_ADDR' => '12.0.0.1',
+                                       'HTTP_X_FORWARDED_FOR' => '12.0.0.3, 12.0.0.2'
+                               ),
+                               array(),
+                               array( '12.0.0.1', '12.0.0.2' ),
+                               false,
+                               'With X-Forwaded-For'
+                       ),
+                       array(
+                               '12.0.0.2',
+                               array(
+                                       'REMOTE_ADDR' => '12.0.0.1',
+                                       'HTTP_X_FORWARDED_FOR' => '12.0.0.3, 12.0.0.2'
+                               ),
+                               array(),
+                               array( '12.0.0.1' ),
+                               false,
+                               'With multiple X-Forwaded-For and only one allowed server'
+                       ),
+                       array(
+                               '12.0.0.2',
+                               array(
+                                       'REMOTE_ADDR' => '12.0.0.2',
+                                       'HTTP_X_FORWARDED_FOR' => '10.0.0.3, 12.0.0.2'
+                               ),
+                               array(),
+                               array( '12.0.0.2' ),
+                               false,
+                               'With X-Forwaded-For and private IP and hook (disallowed)'
+                       ),
                );
        }
 
diff --git a/tests/phpunit/includes/XmlTypeCheckTest.php b/tests/phpunit/includes/XmlTypeCheckTest.php
new file mode 100644 (file)
index 0000000..18f363f
--- /dev/null
@@ -0,0 +1,30 @@
+<?php
+/**
+ * PHPUnit tests for XMLTypeCheck.
+ * @author physikerwelt
+ * @group ?
+ * @covers XMLTypeCheck
+ */
+class XmlTypeCheckTest extends MediaWikiTestCase {
+       const WELL_FORMED_XML = "<root><child /></root>";
+       const MAL_FORMED_XML = "<root><child /></error>";
+
+       /**
+        * @covers XMLTypeCheck::newFromString
+        * @covers XMLTypeCheck::getRootElement
+        */
+       public function testWellFormedXML() {
+               $testXML = XmlTypeCheck::newFromString( self::WELL_FORMED_XML );
+               $this->assertTrue( $testXML->wellFormed );
+               $this->assertEquals( 'root', $testXML->getRootElement() );
+       }
+
+       /**
+        * @covers XMLTypeCheck::newFromString
+        */
+       public function testMalFormedXML() {
+               $testXML = XmlTypeCheck::newFromString( self::MAL_FORMED_XML );
+               $this->assertFalse( $testXML->wellFormed );
+       }
+
+}
\ No newline at end of file
index ae74e38..ad1e73a 100644 (file)
@@ -20,9 +20,11 @@ class ApiOptionsTest extends MediaWikiLangTestCase {
                        ->disableOriginalConstructor()
                        ->getMock();
 
-               // Set up groups
+               // Set up groups and rights
                $this->mUserMock->expects( $this->any() )
                        ->method( 'getEffectiveGroups' )->will( $this->returnValue( array( '*', 'user' ) ) );
+               $this->mUserMock->expects( $this->any() )
+                       ->method( 'isAllowed' )->will( $this->returnValue( true ) );
 
                // Set up callback for User::getOptionKinds
                $this->mUserMock->expects( $this->any() )
@@ -280,21 +282,21 @@ class ApiOptionsTest extends MediaWikiLangTestCase {
                $this->mUserMock->expects( $this->at( 2 ) )
                        ->method( 'getOptions' );
 
-               $this->mUserMock->expects( $this->at( 3 ) )
+               $this->mUserMock->expects( $this->at( 4 ) )
                        ->method( 'setOption' )
                        ->with( $this->equalTo( 'willBeNull' ), $this->identicalTo( null ) );
 
-               $this->mUserMock->expects( $this->at( 4 ) )
+               $this->mUserMock->expects( $this->at( 5 ) )
                        ->method( 'getOptions' );
 
-               $this->mUserMock->expects( $this->at( 5 ) )
+               $this->mUserMock->expects( $this->at( 6 ) )
                        ->method( 'setOption' )
                        ->with( $this->equalTo( 'willBeEmpty' ), $this->equalTo( '' ) );
 
-               $this->mUserMock->expects( $this->at( 6 ) )
+               $this->mUserMock->expects( $this->at( 7 ) )
                        ->method( 'getOptions' );
 
-               $this->mUserMock->expects( $this->at( 7 ) )
+               $this->mUserMock->expects( $this->at( 8 ) )
                        ->method( 'setOption' )
                        ->with( $this->equalTo( 'willBeHappy' ), $this->equalTo( 'Happy' ) );
 
@@ -312,17 +314,17 @@ class ApiOptionsTest extends MediaWikiLangTestCase {
                $this->mUserMock->expects( $this->once() )
                        ->method( 'resetOptions' );
 
-               $this->mUserMock->expects( $this->at( 3 ) )
+               $this->mUserMock->expects( $this->at( 4 ) )
                        ->method( 'getOptions' );
 
-               $this->mUserMock->expects( $this->at( 4 ) )
+               $this->mUserMock->expects( $this->at( 5 ) )
                        ->method( 'setOption' )
                        ->with( $this->equalTo( 'willBeHappy' ), $this->equalTo( 'Happy' ) );
 
-               $this->mUserMock->expects( $this->at( 5 ) )
+               $this->mUserMock->expects( $this->at( 6 ) )
                        ->method( 'getOptions' );
 
-               $this->mUserMock->expects( $this->at( 6 ) )
+               $this->mUserMock->expects( $this->at( 7 ) )
                        ->method( 'setOption' )
                        ->with( $this->equalTo( 'name' ), $this->equalTo( 'value' ) );
 
@@ -345,19 +347,19 @@ class ApiOptionsTest extends MediaWikiLangTestCase {
                $this->mUserMock->expects( $this->never() )
                        ->method( 'resetOptions' );
 
-               $this->mUserMock->expects( $this->at( 2 ) )
+               $this->mUserMock->expects( $this->at( 3 ) )
                        ->method( 'setOption' )
                        ->with( $this->equalTo( 'testmultiselect-opt1' ), $this->identicalTo( true ) );
 
-               $this->mUserMock->expects( $this->at( 3 ) )
+               $this->mUserMock->expects( $this->at( 4 ) )
                        ->method( 'setOption' )
                        ->with( $this->equalTo( 'testmultiselect-opt2' ), $this->identicalTo( null ) );
 
-               $this->mUserMock->expects( $this->at( 4 ) )
+               $this->mUserMock->expects( $this->at( 5 ) )
                        ->method( 'setOption' )
                        ->with( $this->equalTo( 'testmultiselect-opt3' ), $this->identicalTo( false ) );
 
-               $this->mUserMock->expects( $this->at( 5 ) )
+               $this->mUserMock->expects( $this->at( 6 ) )
                        ->method( 'setOption' )
                        ->with( $this->equalTo( 'testmultiselect-opt4' ), $this->identicalTo( false ) );
 
@@ -400,7 +402,7 @@ class ApiOptionsTest extends MediaWikiLangTestCase {
                $this->mUserMock->expects( $this->never() )
                        ->method( 'resetOptions' );
 
-               $this->mUserMock->expects( $this->at( 2 ) )
+               $this->mUserMock->expects( $this->at( 3 ) )
                        ->method( 'setOption' )
                        ->with( $this->equalTo( 'userjs-option' ), $this->equalTo( '1' ) );
 
index 403034b..1a2aa83 100644 (file)
@@ -320,6 +320,32 @@ class ApiQueryBasicTest extends ApiQueryTestBase {
                        self::$categorymembers ) );
        }
 
+       /**
+        * Test bug 51821
+        */
+       public function testGeneratorRedirects() {
+               $this->editPage( 'AQBT-Target', 'test' );
+               $this->editPage( 'AQBT-Redir', '#REDIRECT [[AQBT-Target]]' );
+               $this->check( array(
+                       array( 'generator' => 'backlinks', 'gbltitle' => 'AQBT-Target', 'redirects' => '1' ),
+                       array(
+                               'redirects' => array(
+                                       array(
+                                               'from' => 'AQBT-Redir',
+                                               'to' => 'AQBT-Target',
+                                       )
+                               ),
+                               'pages' => array(
+                                       '6' => array(
+                                               'pageid' => 6,
+                                               'ns' => 0,
+                                               'title' => 'AQBT-Target',
+                                       )
+                               ),
+                       )
+               ) );
+       }
+
        /**
         * Recursively merges the expected values in the $item into the $all
         */
index 45d8140..d213251 100644 (file)
@@ -60,6 +60,36 @@ class WikitextContentHandlerTest extends MediaWikiLangTestCase {
                );
        }
 
+       /**
+        * @dataProvider provideMakeRedirectContent
+        * @param Title|string $title Title object or string for Title::newFromText()
+        * @param string $expected Serialized form of the content object built
+        */
+       public function testMakeRedirectContent( $title, $expected ) {
+               global $wgContLang;
+               $wgContLang->resetNamespaces();
+
+               if ( is_string( $title ) ) {
+                       $title = Title::newFromText( $title );
+               }
+               $content = $this->handler->makeRedirectContent( $title );
+               $this->assertEquals( $expected, $content->serialize() );
+       }
+
+       public static function provideMakeRedirectContent() {
+               return array(
+                       array( 'Hello', '#REDIRECT [[Hello]]' ),
+                       array( 'Template:Hello', '#REDIRECT [[Template:Hello]]' ),
+                       array( 'Hello#section', '#REDIRECT [[Hello#section]]' ),
+                       array( 'user:john_doe#section', '#REDIRECT [[User:John doe#section]]' ),
+                       array( 'MEDIAWIKI:FOOBAR', '#REDIRECT [[MediaWiki:FOOBAR]]' ),
+                       array( 'Category:Foo', '#REDIRECT [[:Category:Foo]]' ),
+                       array( Title::makeTitle( NS_MAIN, 'en:Foo' ), '#REDIRECT [[en:Foo]]' ),
+                       array( Title::makeTitle( NS_MAIN, 'Foo', '', 'en' ), '#REDIRECT [[:en:Foo]]' ),
+                       array( Title::makeTitle( NS_MAIN, 'Bar', 'fragment', 'google' ), '#REDIRECT [[google:Bar#fragment]]' ),
+               );
+       }
+
        /**
         * @dataProvider dataIsSupportedFormat
         */
index 965a5f3..46ccfe0 100644 (file)
@@ -204,6 +204,41 @@ class DatabaseSQLTest extends MediaWikiTestCase {
                );
        }
 
+       /**
+        * @dataProvider provideUpsert
+        */
+       function testUpsert( $sql, $sqlText ) {
+               $this->database->upsert(
+                       $sql['table'],
+                       $sql['rows'],
+                       $sql['uniqueIndexes'],
+                       $sql['set'],
+                       __METHOD__
+               );
+               $this->assertLastSql( $sqlText );
+       }
+
+       public static function provideUpsert() {
+               return array(
+                       array(
+                               array(
+                                       'table' => 'upsert_table',
+                                       'rows' => array( 'field' => 'text', 'field2' => 'text2' ),
+                                       'uniqueIndexes' => array( 'field' ),
+                                       'set' => array( 'field' => 'set' ),
+                               ),
+                               "BEGIN; " .
+                                       "UPDATE upsert_table " .
+                                       "SET field = 'set' " .
+                                       "WHERE ((field = 'text')); " .
+                                       "INSERT IGNORE INTO upsert_table " .
+                                       "(field,field2) " .
+                                       "VALUES ('text','text2'); " .
+                                       "COMMIT"
+                       ),
+               );
+       }
+
        /**
         * @dataProvider provideDeleteJoin
         */
diff --git a/tests/phpunit/includes/installer/OracleInstallerTest.php b/tests/phpunit/includes/installer/OracleInstallerTest.php
new file mode 100644 (file)
index 0000000..7c37f98
--- /dev/null
@@ -0,0 +1,47 @@
+<?php
+
+/**
+ * Tests for OracleInstaller
+ *
+ * @group Database
+ * @group Installer
+ */
+
+class OracleInstallerTest extends MediaWikiTestCase {
+
+       /**
+        * @dataProvider provideOracleConnectStrings
+        */
+       function testCheckConnectStringFormat( $expected, $connectString, $msg = '' ) {
+               $validity = $expected ? 'should be valid' : 'should NOT be valid';
+               $msg = "'$connectString' ($msg) $validity.";
+               $this->assertEquals( $expected,
+                       OracleInstaller::checkConnectStringFormat( $connectString ),
+                       $msg
+               );
+       }
+
+       /**
+        * Provider to test OracleInstaller::checkConnectStringFormat()
+        */
+       function provideOracleConnectStrings() {
+               // expected result, connectString[, message]
+               return array(
+                       array( true, 'simple_01', 'Simple TNS name' ),
+                       array( true, 'simple_01.world', 'TNS name with domain' ),
+                       array( true, 'simple_01.domain.net', 'TNS name with domain' ),
+                       array( true, 'host123', 'Host only' ),
+                       array( true, 'host123.domain.net', 'FQDN only' ),
+                       array( true, '//host123.domain.net', 'FQDN URL only' ),
+                       array( true, '123.223.213.132', 'Host IP only' ),
+                       array( true, 'host:1521', 'Host and port' ),
+                       array( true, 'host:1521/service', 'Host, port and service' ),
+                       array( true, 'host:1521/service:shared', 'Host, port, service and shared server type' ),
+                       array( true, 'host:1521/service:dedicated', 'Host, port, service and dedicated server type' ),
+                       array( true, 'host:1521/service:pooled', 'Host, port, service and pooled server type' ),
+                       array( true, 'host:1521/service:shared/instance1', 'Host, port, service, server type and instance' ),
+                       array( true, 'host:1521//instance1', 'Host, port and instance' ),
+               );
+       }
+
+}
index 632eb52..d80a571 100644 (file)
@@ -137,10 +137,15 @@ class CSSJanusTest extends MediaWikiTestCase {
                                '.foo { padding: 1px inherit 3px auto; }',
                                '.foo { padding: 1px auto 3px inherit; }'
                        ),
+                       // border-radius assigns different meanings to the values
                        array(
                                '.foo { border-radius: .25em 15px 0pt 0ex; }',
-                               '.foo { border-radius: .25em 0ex 0pt 15px; }'
+                               '.foo { border-radius: 15px .25em 0ex 0pt; }'
                        ),
+                       array(
+                               '.foo { border-radius: 0px 0px 5px 5px; }',
+                       ),
+                       // Ensure the rule doesn't break other stuff
                        array(
                                '.foo { x-unknown: a b c d; }'
                        ),
@@ -151,14 +156,26 @@ class CSSJanusTest extends MediaWikiTestCase {
                                '#settings td p strong'
                        ),
                        array(
-                               # Not sure how 4+ values should behave,
-                               # testing to make sure changes are detected
-                               '.foo { x-unknown: 1 2 3 4 5; }',
-                               '.foo { x-unknown: 1 4 3 2 5; }',
+                               // Color names
+                               '.foo { border-color: red green blue white }',
+                               '.foo { border-color: red white blue green }',
+                       ),
+                       array(
+                               // Color name, hexdecimal, RGB & RGBA
+                               '.foo { border-color: red #f00 rgb(255, 0, 0) rgba(255, 0, 0, 0.5) }',
+                               '.foo { border-color: red rgba(255, 0, 0, 0.5) rgb(255, 0, 0) #f00 }',
+                       ),
+                       array(
+                               // Color name, hexdecimal, HSL & HSLA
+                               '.foo { border-color: red #f00 hsl(0, 100%, 50%) hsla(0, 100%, 50%, 0.5) }',
+                               '.foo { border-color: red hsla(0, 100%, 50%, 0.5) hsl(0, 100%, 50%) #f00 }',
+                       ),
+                       array(
+                               // Do not mangle 5 or more values
+                               '.foo { -x-unknown: 1 2 3 4 5; }'
                        ),
                        array(
-                               '.foo { x-unknown: 1 2 3 4 5 6; }',
-                               '.foo { x-unknown: 1 4 3 2 5 6; }',
+                               '.foo { -x-unknown: 1 2 3 4 5 6; }'
                        ),
 
                        // Shorthand / Three notation
@@ -376,6 +393,11 @@ class CSSJanusTest extends MediaWikiTestCase {
                                '/* @noflip */ div { float: left; } .foo { float: left; }',
                                '/* @noflip */ div { float: left; } .foo { float: right; }'
                        ),
+                       array(
+                               // support parentheses in selector
+                               '/* @noflip */ .test:not(:first) { margin-right: -0.25em; margin-left: 0.25em; }',
+                               '/* @noflip */ .test:not(:first) { margin-right: -0.25em; margin-left: 0.25em; }'
+                       ),
                        array(
                                // after multiple rules
                                '.foo { float: left; } /* @noflip */ div { float: left; }',
index 22737b3..87dc41c 100644 (file)
@@ -11,12 +11,79 @@ require_once __DIR__ . '/NewParserTest.php';
  */
 class MediaWikiParserTest {
 
-       public static function suite() {
-               global $wgParserTestFiles;
+       /**
+        * @defgroup filtering_constants Filtering constants
+        *
+        * Limit inclusion of parser tests files coming from MediaWiki core
+        * @{
+        */
 
-               $suite = new PHPUnit_Framework_TestSuite;
+       /** Include files shipped with MediaWiki core */
+       const CORE_ONLY = 1;
+       /** Include non core files as set in $wgParserTestFiles */
+       const NO_CORE = 2;
+       /** Include anything set via $wgParserTestFiles */
+       const WITH_ALL  = 3;  # CORE_ONLY | NO_CORE
+
+       /** @} */
+
+       /**
+        * Get a PHPUnit test suite of parser tests. Optionally filtered with
+        * $flags.
+        *
+        * @par Examples:
+        * Get a suite of parser tests shipped by MediaWiki core:
+        * @code
+        * MediaWikiParserTest::suite( MediaWikiParserTest::CORE_ONLY );
+        * @endcode
+        * Get a suite of various parser tests, like extensions:
+        * @code
+        * MediaWikiParserTest::suite( MediaWikiParserTest::NO_CORE );
+        * @endcode
+        * Get any test defined via $wgParserTestFiles:
+        * @code
+        * MediaWikiParserTest::suite( MediaWikiParserTest::WITH_ALL );
+        * @endcode
+        *
+        * @param $flags bitwise flag to filter out the $wgParserTestFiles that
+        * will be included.  Default: MediaWikiParserTest::CORE_ONLY
+        *
+        * @return PHPUnit_Framework_TestSuite
+        */
+       public static function suite( $flags = self::CORE_ONLY ) {
+               if( is_string( $flags ) ) {
+                       $flags = self::CORE_ONLY;
+               }
+               global $wgParserTestFiles, $IP;
+
+               $mwTestDir = $IP.'/tests/';
+
+               # Human friendly helpers
+               $wantsCore = ($flags & self::CORE_ONLY);
+               $wantsRest = ($flags & self::NO_CORE);
+
+               # Will hold the .txt parser test files we will include
+               $filesToTest = array();
+
+               # Filter out .txt files
+               foreach( $wgParserTestFiles as $parserTestFile ) {
+                       $isCore = ( 0 === strpos( $parserTestFile, $mwTestDir ) );
 
-               foreach ( $wgParserTestFiles as $fileName ) {
+                       if( $isCore && $wantsCore ) {
+                               self::debug( "included core parser tests: $parserTestFile" );
+                               $filesToTest[] = $parserTestFile;
+                       } elseif( !$isCore && $wantsRest ) {
+                               self::debug( "included non core parser tests: $parserTestFile" );
+                               $filesToTest[] = $parserTestFile;
+                       } else {
+                               self::debug( "skipped parser tests: $parserTestFile" );
+                       }
+               }
+               self::debug( 'parser tests files: '
+                       . implode(' ', $filesToTest) );
+
+               $suite = new PHPUnit_Framework_TestSuite;
+               foreach ( $filesToTest as $fileName ) {
                        $testsName = basename( $fileName, '.txt' );
                        $escapedFileName = strtr( $fileName, array( "'" => "\\'", '\\' => '\\\\' ) );
                        /* This used to be ucfirst( basename( dirname( $filename ) ) )
@@ -37,11 +104,17 @@ class $parserTestClassName extends NewParserTest {
 EOT;
 
                        eval( $parserTestClassDefinition );
-
-                       $parserTester = new $parserTestClassName( $testsName );
-                       $suite->addTestSuite( new ReflectionClass ( $parserTester ) );
+                       self::debug( "Adding test class $parserTestClassName" );
+                       $suite->addTestSuite( $parserTestClassName );
                }
-
                return $suite;
        }
+
+       /**
+        * Write $msg under log group 'tests-parser'
+        * @param string $msg Message to log
+        */
+       protected static function debug( $msg ) {
+               return wfDebugLog( 'tests-parser', wfGetCaller() . ' ' . $msg );
+       }
 }
index 8cee07b..9551b2f 100644 (file)
@@ -31,6 +31,11 @@ class NewParserTest extends MediaWikiTestCase {
 
        protected $file = false;
 
+       public static function setUpBeforeClass() {
+               // Inject ParserTest well-known interwikis
+               ParserTest::setupInterwikis();
+       }
+
        protected function setUp() {
                global $wgNamespaceAliases;
                global $wgHooks, $IP;
@@ -102,6 +107,10 @@ class NewParserTest extends MediaWikiTestCase {
 
                $tmpGlobals['wgParser'] = new StubObject( 'wgParser', $GLOBALS['wgParserConf']['class'], array( $GLOBALS['wgParserConf'] ) );
 
+               $tmpGlobals['wgFileExtensions'][] = 'svg';
+               $tmpGlobals['wgSVGConverter'] = 'rsvg';
+               $tmpGlobals['wgSVGConverters']['rsvg'] = '$path/rsvg-convert -w $width -h $height $input -o $output';
+
                if ( $GLOBALS['wgStyleDirectory'] === false ) {
                        $tmpGlobals['wgStyleDirectory'] = "$IP/skins";
                }
@@ -113,6 +122,8 @@ class NewParserTest extends MediaWikiTestCase {
                foreach ( $wgMediaHandlers as $type => $handler ) {
                        $tmpGlobals['wgMediaHandlers'][$type] = 'MockBitmapHandler';
                }
+               // Vector images have to be handled slightly differently
+               $tmpGlobals['wgMediaHandlers']['image/svg+xml'] = 'MockSvgHandler';
 
                $tmpHooks = $wgHooks;
                $tmpHooks['ParserTestParser'][] = 'ParserTestParserHook::setup';
@@ -149,50 +160,9 @@ class NewParserTest extends MediaWikiTestCase {
 
        function addDBData() {
                $this->tablesUsed[] = 'site_stats';
-               $this->tablesUsed[] = 'interwiki';
                # disabled for performance
                #$this->tablesUsed[] = 'image';
 
-               # Hack: insert a few Wikipedia in-project interwiki prefixes,
-               # for testing inter-language links
-               $this->db->insert( 'interwiki', array(
-                               array( 'iw_prefix' => 'wikipedia',
-                                       'iw_url' => 'http://en.wikipedia.org/wiki/$1',
-                                       'iw_api' => '',
-                                       'iw_wikiid' => '',
-                                       'iw_local' => 0 ),
-                               array( 'iw_prefix' => 'meatball',
-                                       'iw_url' => 'http://www.usemod.com/cgi-bin/mb.pl?$1',
-                                       'iw_api' => '',
-                                       'iw_wikiid' => '',
-                                       'iw_local' => 0 ),
-                               array( 'iw_prefix' => 'zh',
-                                       'iw_url' => 'http://zh.wikipedia.org/wiki/$1',
-                                       'iw_api' => '',
-                                       'iw_wikiid' => '',
-                                       'iw_local' => 1 ),
-                               array( 'iw_prefix' => 'es',
-                                       'iw_url' => 'http://es.wikipedia.org/wiki/$1',
-                                       'iw_api' => '',
-                                       'iw_wikiid' => '',
-                                       'iw_local' => 1 ),
-                               array( 'iw_prefix' => 'fr',
-                                       'iw_url' => 'http://fr.wikipedia.org/wiki/$1',
-                                       'iw_api' => '',
-                                       'iw_wikiid' => '',
-                                       'iw_local' => 1 ),
-                               array( 'iw_prefix' => 'ru',
-                                       'iw_url' => 'http://ru.wikipedia.org/wiki/$1',
-                                       'iw_api' => '',
-                                       'iw_wikiid' => '',
-                                       'iw_local' => 1 ),
-                               /**
-                                * @todo Fixme! Why are we inserting duplicate data here? Shouldn't
-                                * need this IGNORE or shouldn't need the insert at all.
-                                */
-                       ), __METHOD__, array( 'IGNORE' )
-               );
-
                # Update certain things in site_stats
                $this->db->insert( 'site_stats',
                        array( 'ss_row_id' => 1, 'ss_images' => 2, 'ss_good_articles' => 1 ),
@@ -270,6 +240,20 @@ class NewParserTest extends MediaWikiTestCase {
                                $this->db->timestamp( '20010115123500' ), $user
                        );
                }
+               $image = wfLocalFile( Title::makeTitle( NS_FILE, 'Foobar.svg' ) );
+               if ( !$this->db->selectField( 'image', '1', array( 'img_name' => $image->getName() ) ) ) {
+                       $image->recordUpload2( '', 'Upload of some lame SVG', 'Some lame SVG', array(
+                                       'size'        => 12345,
+                                       'width'       => 200,
+                                       'height'      => 200,
+                                       'bits'        => 24,
+                                       'media_type'  => MEDIATYPE_DRAWING,
+                                       'mime'        => 'image/svg+xml',
+                                       'metadata'    => serialize( array() ),
+                                       'sha1'        => wfBaseConvert( '', 16, 36, 31 ),
+                                       'fileExists'  => true
+                       ), $this->db->timestamp( '20010115123500' ), $user );
+               }
        }
 
        //ParserTest setup/teardown functions
@@ -333,10 +317,11 @@ class NewParserTest extends MediaWikiTestCase {
                        'wgEnableUploads' => self::getOptionValue( 'wgEnableUploads', $opts, true ),
                        'wgLanguageCode' => $lang,
                        'wgDBprefix' => $this->db->getType() != 'oracle' ? 'unittest_' : 'ut_',
-                       'wgRawHtml' => isset( $opts['rawhtml'] ),
+                       'wgRawHtml' => self::getOptionValue( 'wgRawHtml', $opts, false ),
                        'wgNamespacesWithSubpages' => array( NS_MAIN => isset( $opts['subpage'] ) ),
+                       'wgAllowExternalImages' => self::getOptionValue( 'wgAllowExternalImages', $opts, true ),
                        'wgMaxTocLevel' => $maxtoclevel,
-                       'wgUseTeX' => isset( $opts['math'] ),
+                       'wgUseTeX' => isset( $opts['math'] ) || isset( $opts['texvc'] ),
                        'wgMathDirectory' => $uploadDir . '/math',
                        'wgDefaultLanguageVariant' => $variant,
                        'wgLinkHolderBatchSize' => $linkHolderBatchSize,
@@ -440,6 +425,19 @@ class NewParserTest extends MediaWikiTestCase {
                $backend->store( array(
                        'src' => "$IP/skins/monobook/headbg.jpg", 'dst' => "$base/local-public/0/09/Bad.jpg"
                ) );
+
+               // No helpful SVG file to copy, so make one ourselves
+               $tmpDir = wfTempDir();
+               $tempFsFile = new TempFSFile( "$tmpDir/Foobar.svg" );
+               $tempFsFile->autocollect(); // destroy file when $tempFsFile leaves scope
+               file_put_contents( "$tmpDir/Foobar.svg",
+                       '<?xml version="1.0" encoding="utf-8"?>' .
+                       '<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200"><text>Foo</text></svg>' );
+
+               $backend->prepare( array( 'dir' => "$base/local-public/f/ff" ) );
+               $backend->quickStore( array(
+                       'src' => "$tmpDir/Foobar.svg", 'dst' => "$base/local-public/f/ff/Foobar.svg"
+               ) );
        }
 
        /**
@@ -492,6 +490,14 @@ class NewParserTest extends MediaWikiTestCase {
 
                                "$base/local-public/0/09/Bad.jpg",
 
+                               "$base/local-public/f/ff/Foobar.svg",
+                               "$base/local-thumb/f/ff/Foobar.svg/180px-Foobar.svg.jpg",
+                               "$base/local-thumb/f/ff/Foobar.svg/270px-Foobar.svg.jpg",
+                               "$base/local-thumb/f/ff/Foobar.svg/360px-Foobar.svg.jpg",
+                               "$base/local-thumb/f/ff/Foobar.svg/langde-180px-Foobar.svg.jpg",
+                               "$base/local-thumb/f/ff/Foobar.svg/langde-270px-Foobar.svg.jpg",
+                               "$base/local-thumb/f/ff/Foobar.svg/langde-360px-Foobar.svg.jpg",
+
                                "$base/local-public/math/f/a/5/fa50b8b616463173474302ca3e63586b.png",
                        )
                );
@@ -575,6 +581,20 @@ class NewParserTest extends MediaWikiTestCase {
 
                $title = Title::newFromText( $titleText );
 
+               # Parser test requiring math. Make sure texvc is executable
+               # or just skip such tests.
+               if ( isset( $opts['math'] ) || isset( $opts['texvc'] ) ) {
+                       global $wgTexvc;
+
+                       if ( !isset( $wgTexvc ) ) {
+                               $this->markTestSkipped( "SKIPPED: \$wgTexvc is not set" );
+                       } elseif ( !is_executable( $wgTexvc ) ) {
+                               $this->markTestSkipped( "SKIPPED: texvc binary does not exist"
+                                       . " or is not executable.\n"
+                                       . "Current configuration is:\n\$wgTexvc = '$wgTexvc'" );
+                       }
+               }
+
                if ( isset( $opts['pst'] ) ) {
                        $out = $parser->preSaveTransform( $input, $title, $user, $options );
                } elseif ( isset( $opts['msg'] ) ) {
index d19cdd0..e947c34 100644 (file)
@@ -17,6 +17,7 @@ class MockSearch extends SearchEngine {
 
 /**
  * @group Search
+ * @group Database
  */
 class SearchUpdateTest extends MediaWikiTestCase {
 
@@ -25,17 +26,8 @@ class SearchUpdateTest extends MediaWikiTestCase {
                $this->setMwGlobals( 'wgSearchType', 'MockSearch' );
        }
 
-       function update( $text, $title = 'Test', $id = 1 ) {
-               $u = new SearchUpdate( $id, $title, $text );
-               $u->doUpdate();
-
-               return array( MockSearch::$title, MockSearch::$text );
-       }
-
        function updateText( $text ) {
-               list( , $resultText ) = $this->update( $text );
-               $resultText = trim( $resultText ); // abstract from some implementation details
-               return $resultText;
+               return trim( SearchUpdate::updateText( $text ) );
        }
 
        function testUpdateText() {
diff --git a/tests/phpunit/includes/upload/UploadBaseTest.php b/tests/phpunit/includes/upload/UploadBaseTest.php
new file mode 100644 (file)
index 0000000..298420b
--- /dev/null
@@ -0,0 +1,144 @@
+<?php
+/**
+ * @group Upload
+ */
+class UploadBaseTest extends MediaWikiTestCase {
+       protected $upload;
+
+
+       protected function setUp() {
+               global $wgHooks;
+               parent::setUp();
+
+               $this->upload = new UploadTestHandler;
+               $this->hooks = $wgHooks;
+               $wgHooks['InterwikiLoadPrefix'][] = function ( $prefix, &$data ) {
+                       return false;
+               };
+       }
+
+       protected function tearDown() {
+               global $wgHooks;
+               $wgHooks = $this->hooks;
+
+               parent::tearDown();
+       }
+
+
+       /**
+        * First checks the return code
+        * of UploadBase::getTitle() and then the actual returned title
+        *
+        * @dataProvider provideTestTitleValidation
+        */
+       public function testTitleValidation( $srcFilename, $dstFilename, $code, $msg ) {
+               /* Check the result code */
+               $this->assertEquals( $code,
+                       $this->upload->testTitleValidation( $srcFilename ),
+                       "$msg code" );
+
+               /* If we expect a valid title, check the title itself. */
+               if ( $code == UploadBase::OK ) {
+                       $this->assertEquals( $dstFilename,
+                               $this->upload->getTitle()->getText(),
+                               "$msg text" );
+               }
+       }
+
+       /**
+        * Test various forms of valid and invalid titles that can be supplied.
+        */
+       public static function provideTestTitleValidation() {
+               return array(
+                       /* Test a valid title */
+                       array( 'ValidTitle.jpg', 'ValidTitle.jpg', UploadBase::OK,
+                               'upload valid title' ),
+                       /* A title with a slash */
+                       array( 'A/B.jpg', 'B.jpg', UploadBase::OK,
+                               'upload title with slash' ),
+                       /* A title with illegal char */
+                       array( 'A:B.jpg', 'A-B.jpg', UploadBase::OK,
+                               'upload title with colon' ),
+                       /* Stripping leading File: prefix */
+                       array( 'File:C.jpg', 'C.jpg', UploadBase::OK,
+                               'upload title with File prefix' ),
+                       /* Test illegal suggested title (r94601) */
+                       array( '%281%29.JPG', null, UploadBase::ILLEGAL_FILENAME,
+                               'illegal title for upload' ),
+                       /* A title without extension */
+                       array( 'A', null, UploadBase::FILETYPE_MISSING,
+                               'upload title without extension' ),
+                       /* A title with no basename */
+                       array( '.jpg', null, UploadBase::MIN_LENGTH_PARTNAME,
+                               'upload title without basename' ),
+                       /* A title that is longer than 255 bytes */
+                       array( str_repeat( 'a', 255 ) . '.jpg', null, UploadBase::FILENAME_TOO_LONG,
+                               'upload title longer than 255 bytes' ),
+                       /* A title that is longer than 240 bytes */
+                       array( str_repeat( 'a', 240 ) . '.jpg', null, UploadBase::FILENAME_TOO_LONG,
+                               'upload title longer than 240 bytes' ),
+               );
+       }
+
+       /**
+        * Test the upload verification functions
+        */
+       public function testVerifyUpload() {
+               /* Setup with zero file size */
+               $this->upload->initializePathInfo( '', '', 0 );
+               $result = $this->upload->verifyUpload();
+               $this->assertEquals( UploadBase::EMPTY_FILE,
+                       $result['status'],
+                       'upload empty file' );
+       }
+
+       // Helper used to create an empty file of size $size.
+       private function createFileOfSize( $size ) {
+               $filename = tempnam( wfTempDir(), "mwuploadtest" );
+
+               $fh = fopen( $filename, 'w' );
+               ftruncate( $fh, $size );
+               fclose( $fh );
+
+               return $filename;
+       }
+
+       /**
+        * test uploading a 100 bytes file with $wgMaxUploadSize = 100
+        *
+        * This method should be abstracted so we can test different settings.
+        */
+
+       public function testMaxUploadSize() {
+               global $wgMaxUploadSize;
+               $savedGlobal = $wgMaxUploadSize; // save global
+               global $wgFileExtensions;
+               $wgFileExtensions[] = 'txt';
+
+               $wgMaxUploadSize = 100;
+
+               $filename = $this->createFileOfSize( $wgMaxUploadSize );
+               $this->upload->initializePathInfo( basename( $filename ) . '.txt', $filename, 100 );
+               $result = $this->upload->verifyUpload();
+               unlink( $filename );
+
+               $this->assertEquals(
+                       array( 'status' => UploadBase::OK ), $result );
+
+               $wgMaxUploadSize = $savedGlobal; // restore global
+       }
+}
+
+class UploadTestHandler extends UploadBase {
+       public function initializeFromRequest( &$request ) {
+       }
+
+       public function testTitleValidation( $name ) {
+               $this->mTitle = false;
+               $this->mDesiredDestName = $name;
+               $this->mTitleError = UploadBase::OK;
+               $this->getTitle();
+
+               return $this->mTitleError;
+       }
+}
diff --git a/tests/phpunit/includes/upload/UploadTest.php b/tests/phpunit/includes/upload/UploadTest.php
deleted file mode 100644 (file)
index 94c78dc..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-<?php
-/**
- * @group Upload
- */
-class UploadTest extends MediaWikiTestCase {
-       protected $upload;
-
-
-       protected function setUp() {
-               global $wgHooks;
-               parent::setUp();
-
-               $this->upload = new UploadTestHandler;
-               $this->hooks = $wgHooks;
-               $wgHooks['InterwikiLoadPrefix'][] = function ( $prefix, &$data ) {
-                       return false;
-               };
-       }
-
-       protected function tearDown() {
-               global $wgHooks;
-               $wgHooks = $this->hooks;
-
-               parent::tearDown();
-       }
-
-
-       /**
-        * First checks the return code
-        * of UploadBase::getTitle() and then the actual returned title
-        *
-        * @dataProvider provideTestTitleValidation
-        */
-       public function testTitleValidation( $srcFilename, $dstFilename, $code, $msg ) {
-               /* Check the result code */
-               $this->assertEquals( $code,
-                       $this->upload->testTitleValidation( $srcFilename ),
-                       "$msg code" );
-
-               /* If we expect a valid title, check the title itself. */
-               if ( $code == UploadBase::OK ) {
-                       $this->assertEquals( $dstFilename,
-                               $this->upload->getTitle()->getText(),
-                               "$msg text" );
-               }
-       }
-
-       /**
-        * Test various forms of valid and invalid titles that can be supplied.
-        */
-       public static function provideTestTitleValidation() {
-               return array(
-                       /* Test a valid title */
-                       array( 'ValidTitle.jpg', 'ValidTitle.jpg', UploadBase::OK,
-                               'upload valid title' ),
-                       /* A title with a slash */
-                       array( 'A/B.jpg', 'B.jpg', UploadBase::OK,
-                               'upload title with slash' ),
-                       /* A title with illegal char */
-                       array( 'A:B.jpg', 'A-B.jpg', UploadBase::OK,
-                               'upload title with colon' ),
-                       /* Stripping leading File: prefix */
-                       array( 'File:C.jpg', 'C.jpg', UploadBase::OK,
-                               'upload title with File prefix' ),
-                       /* Test illegal suggested title (r94601) */
-                       array( '%281%29.JPG', null, UploadBase::ILLEGAL_FILENAME,
-                               'illegal title for upload' ),
-                       /* A title without extension */
-                       array( 'A', null, UploadBase::FILETYPE_MISSING,
-                               'upload title without extension' ),
-                       /* A title with no basename */
-                       array( '.jpg', null, UploadBase::MIN_LENGTH_PARTNAME,
-                               'upload title without basename' ),
-                       /* A title that is longer than 255 bytes */
-                       array( str_repeat( 'a', 255 ) . '.jpg', null, UploadBase::FILENAME_TOO_LONG,
-                               'upload title longer than 255 bytes' ),
-                       /* A title that is longer than 240 bytes */
-                       array( str_repeat( 'a', 240 ) . '.jpg', null, UploadBase::FILENAME_TOO_LONG,
-                               'upload title longer than 240 bytes' ),
-               );
-       }
-
-       /**
-        * Test the upload verification functions
-        */
-       public function testVerifyUpload() {
-               /* Setup with zero file size */
-               $this->upload->initializePathInfo( '', '', 0 );
-               $result = $this->upload->verifyUpload();
-               $this->assertEquals( UploadBase::EMPTY_FILE,
-                       $result['status'],
-                       'upload empty file' );
-       }
-
-       // Helper used to create an empty file of size $size.
-       private function createFileOfSize( $size ) {
-               $filename = tempnam( wfTempDir(), "mwuploadtest" );
-
-               $fh = fopen( $filename, 'w' );
-               ftruncate( $fh, $size );
-               fclose( $fh );
-
-               return $filename;
-       }
-
-       /**
-        * test uploading a 100 bytes file with $wgMaxUploadSize = 100
-        *
-        * This method should be abstracted so we can test different settings.
-        */
-
-       public function testMaxUploadSize() {
-               global $wgMaxUploadSize;
-               $savedGlobal = $wgMaxUploadSize; // save global
-               global $wgFileExtensions;
-               $wgFileExtensions[] = 'txt';
-
-               $wgMaxUploadSize = 100;
-
-               $filename = $this->createFileOfSize( $wgMaxUploadSize );
-               $this->upload->initializePathInfo( basename( $filename ) . '.txt', $filename, 100 );
-               $result = $this->upload->verifyUpload();
-               unlink( $filename );
-
-               $this->assertEquals(
-                       array( 'status' => UploadBase::OK ), $result );
-
-               $wgMaxUploadSize = $savedGlobal; // restore global
-       }
-}
-
-class UploadTestHandler extends UploadBase {
-       public function initializeFromRequest( &$request ) {
-       }
-
-       public function testTitleValidation( $name ) {
-               $this->mTitle = false;
-               $this->mDesiredDestName = $name;
-               $this->mTitleError = UploadBase::OK;
-               $this->getTitle();
-
-               return $this->mTitleError;
-       }
-}
index d687dbb..9023dc7 100644 (file)
@@ -494,6 +494,7 @@ class LanguageTest extends LanguageClassesTestCase {
        public static function provideUnknownLanguageTags() {
                return array(
                        array( 'mw', 'non-existent two-letter code' ),
+                       array( 'foo"<bar', 'very invalid language code' ),
                );
        }
 
@@ -1481,4 +1482,26 @@ class LanguageTest extends LanguageClassesTestCase {
                        array( 'FI', false, 'is not supported language, input should be in lower case' ),
                );
        }
+
+       /**
+        * @dataProvider provideGetParentLanguage
+        */
+       function testGetParentLanguage( $code, $expected, $comment ) {
+               $lang = Language::factory( $code );
+               if ( is_null( $expected ) ) {
+                       $this->assertNull( $lang->getParentLanguage(), $comment );
+               } else {
+                       $this->assertEquals( $expected, $lang->getParentLanguage()->getCode(), $comment );
+               }
+       }
+
+       public static function provideGetParentLanguage() {
+               return array(
+                       array( 'zh-cn', 'zh', 'zh is the parent language of zh-cn' ),
+                       array( 'zh', 'zh', 'zh is defined as the parent language of zh, because zh converter can convert zh-cn to zh' ),
+                       array( 'zh-invalid', null, 'do not be fooled by arbitrarily composed language codes' ),
+                       array( 'en-gb', null, 'en does not have converter' ),
+                       array( 'en', null, 'en does not have converter. Although FakeConverter handles en -> en conversion but it is useless' ),
+               );
+       }
 }
index 31deaf7..e046328 100644 (file)
@@ -32,7 +32,7 @@
  * @ingroup FileBackend
  */
 class MockFSFile extends FSFile {
-       private $sha1Base36 = null; // File Sha1Base36
+       protected $sha1Base36 = null; // File Sha1Base36
 
        public function exists() {
                return true;
index 2ae30a3..742b41e 100644 (file)
  * @ingroup Media
  */
 
+class MockBitmapHandler extends BitmapHandler {
+       function doTransform( $image, $dstPath, $dstUrl, $params, $flags = 0 ) {
+               return MockImageHandler::doFakeTransform( $this, $image, $dstPath, $dstUrl, $params, $flags );
+       }
+       function doClientImage( $image, $scalerParams ) {
+                       return $this->getClientScalingThumbnailImage( $image, $scalerParams );
+       }
+}
+class MockSvgHandler extends SvgHandler {
+       function doTransform( $image, $dstPath, $dstUrl, $params, $flags = 0 ) {
+               return MockImageHandler::doFakeTransform( $this, $image, $dstPath, $dstUrl, $params, $flags );
+       }
+}
 /**
  * Mock handler for images.
  *
@@ -28,7 +41,7 @@
  *
  * @ingroup Media
  */
-class MockBitmapHandler extends BitmapHandler {
+class MockImageHandler {
 
        /**
         * Override BitmapHandler::doTransform() making sure we do not generate
@@ -36,14 +49,14 @@ class MockBitmapHandler extends BitmapHandler {
         * will be consumed by the unit test.  There is no need to create a real
         * thumbnail on the filesystem.
         */
-       function doTransform( $image, $dstPath, $dstUrl, $params, $flags = 0 ) {
+       static function doFakeTransform( $that, $image, $dstPath, $dstUrl, $params, $flags = 0 ) {
                # Example of what we receive:
                # $image: LocalFile
                # $dstPath: /tmp/transform_7d0a7a2f1a09-1.jpg
                # $dstUrl : http://example.com/images/thumb/0/09/Bad.jpg/320px-Bad.jpg
                # $params:  width: 320,  descriptionUrl http://trunk.dev/wiki/File:Bad.jpg
 
-               $this->normaliseParams( $image, $params );
+               $that->normaliseParams( $image, $params );
 
                $scalerParams = array(
                        # The size to which the image will be resized
@@ -67,9 +80,11 @@ class MockBitmapHandler extends BitmapHandler {
                # In some cases, we do not bother generating a thumbnail.
                if ( !$image->mustRender() &&
                        $scalerParams['physicalWidth'] == $scalerParams['srcWidth']
-                       && $scalerParams['physicalHeight'] == $scalerParams['srcHeight'] ) {
+                       && $scalerParams['physicalHeight'] == $scalerParams['srcHeight']
+               ) {
                        wfDebug( __METHOD__ . ": returning unscaled image\n" );
-                       return $this->getClientScalingThumbnailImage( $image, $scalerParams );
+                       // getClientScalingThumbnailImage is protected
+                       return $that->doClientImage( $image, $scalerParams );
                }
 
                return new ThumbnailImage( $image, $dstUrl, false, $params );
index 7a22bd4..e4cb6b6 100755 (executable)
@@ -33,6 +33,9 @@ class PHPUnitMaintClass extends Maintenance {
                global $wgLocaltimezone, $wgLocalisationCacheConf;
                global $wgDevelopmentWarnings;
 
+               // Inject test autoloader
+               require_once __DIR__ . '/../TestsAutoLoader.php';
+
                // wfWarn should cause tests to fail
                $wgDevelopmentWarnings = true;
 
@@ -100,14 +103,17 @@ class PHPUnitMaintClass extends Maintenance {
 $maintClass = 'PHPUnitMaintClass';
 require RUN_MAINTENANCE_IF_MAIN;
 
-require_once 'PHPUnit/Runner/Version.php';
+if ( !class_exists( 'PHPUnit_Runner_Version') ) {
+       require_once 'PHPUnit/Runner/Version.php';
+}
 
 if ( PHPUnit_Runner_Version::id() !== '@package_version@'
        && version_compare( PHPUnit_Runner_Version::id(), '3.6.7', '<' )
 ) {
        die( 'PHPUnit 3.6.7 or later required, you have ' . PHPUnit_Runner_Version::id() . ".\n" );
 }
-require_once 'PHPUnit/Autoload.php';
 
-require_once "$IP/tests/TestsAutoLoader.php";
+if ( !class_exists( 'PHPUnit_TextUI_Command' ) ) {
+       require_once 'PHPUnit/Autoload.php';
+}
 MediaWikiPHPUnitCommand::main();
diff --git a/tests/phpunit/resources/ResourcesTest.php b/tests/phpunit/resources/ResourcesTest.php
deleted file mode 100644 (file)
index 3af805a..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-<?php
-/**
- * Sanity checks for making sure registered resources are sane.
- *
- * @file
- * @author Niklas Laxström, 2012
- * @author Antoine Musso, 2012
- * @author Santhosh Thottingal, 2012
- * @author Timo Tijhof, 2012
- * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
- */
-class ResourcesTest extends MediaWikiTestCase {
-
-       /**
-        * @dataProvider provideResourceFiles
-        */
-       public function testFileExistence( $filename, $module, $resource ) {
-               $this->assertFileExists( $filename,
-                       "File '$resource' referenced by '$module' must exist."
-               );
-       }
-
-       /**
-        * This ask the ResouceLoader for all registered files from modules
-        * created by ResourceLoaderFileModule (or one of its descendants).
-        *
-        *
-        * Since the raw data is stored in protected properties, we have to
-        * overrride this through ReflectionObject methods.
-        */
-       public static function provideResourceFiles() {
-               global $wgEnableJavaScriptTest;
-
-               // Test existance of test suite files as well
-               // (can't use setUp or setMwGlobals because providers are static)
-               $live_wgEnableJavaScriptTest = $wgEnableJavaScriptTest;
-               $wgEnableJavaScriptTest = true;
-
-               // Array with arguments for the test function
-               $cases = array();
-
-               // Initialize ResourceLoader
-               $rl = new ResourceLoader();
-
-               // See also ResourceLoaderFileModule::__construct
-               $filePathProps = array(
-                       // Lists of file paths
-                       'lists' => array(
-                               'scripts',
-                               'debugScripts',
-                               'loaderScripts',
-                               'styles',
-                       ),
-
-                       // Collated lists of file paths
-                       'nested-lists' => array(
-                               'languageScripts',
-                               'skinScripts',
-                               'skinStyles',
-                       ),
-               );
-
-               foreach ( $rl->getModuleNames() as $moduleName ) {
-                       $module = $rl->getModule( $moduleName );
-                       if ( !$module instanceof ResourceLoaderFileModule ) {
-                               continue;
-                       }
-
-                       $reflectedModule = new ReflectionObject( $module );
-
-                       $files = array();
-
-                       foreach ( $filePathProps['lists'] as $propName ) {
-                               $property = $reflectedModule->getProperty( $propName );
-                               $property->setAccessible( true );
-                               $list = $property->getValue( $module );
-                               foreach ( $list as $key => $value ) {
-                                       // 'scripts' are numeral arrays.
-                                       // 'styles' can be numeral or associative.
-                                       // In case of associative the key is the file path
-                                       // and the value is the 'media' attribute.
-                                       if ( is_int( $key ) ) {
-                                               $files[] = $value;
-                                       } else {
-                                               $files[] = $key;
-                                       }
-                               }
-                       }
-
-                       foreach ( $filePathProps['nested-lists'] as $propName ) {
-                               $property = $reflectedModule->getProperty( $propName );
-                               $property->setAccessible( true );
-                               $lists = $property->getValue( $module );
-                               foreach ( $lists as $list ) {
-                                       foreach ( $list as $key => $value ) {
-                                               // We need the same filter as for 'lists',
-                                               // due to 'skinStyles'.
-                                               if ( is_int( $key ) ) {
-                                                       $files[] = $value;
-                                               } else {
-                                                       $files[] = $key;
-                                               }
-                                       }
-                               }
-                       }
-
-                       // Get method for resolving the paths to full paths
-                       $method = $reflectedModule->getMethod( 'getLocalPath' );
-                       $method->setAccessible( true );
-
-                       // Populate cases
-                       foreach ( $files as $file ) {
-                               $cases[] = array(
-                                       $method->invoke( $module, $file ),
-                                       $module->getName(),
-                                       $file,
-                               );
-                       }
-               }
-
-               // Restore settings
-               $wgEnableJavaScriptTest = $live_wgEnableJavaScriptTest;
-
-               return $cases;
-       }
-}
diff --git a/tests/phpunit/structure/AutoLoaderTest.php b/tests/phpunit/structure/AutoLoaderTest.php
new file mode 100644 (file)
index 0000000..205ea36
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+class AutoLoaderTest extends MediaWikiTestCase {
+
+       /**
+        * Assert that there were no classes loaded that are not registered with the AutoLoader.
+        *
+        * For example foo.php having class Foo and class Bar but only registering Foo.
+        * This is important because we should not be relying on Foo being used before Bar.
+        */
+       public function testAutoLoadConfig() {
+               $results = self::checkAutoLoadConf();
+
+               $this->assertEquals(
+                       $results['expected'],
+                       $results['actual']
+               );
+       }
+
+       protected static function checkAutoLoadConf() {
+               global $wgAutoloadLocalClasses, $wgAutoloadClasses, $IP;
+               $supportsParsekit = function_exists( 'parsekit_compile_file' );
+
+               // wgAutoloadLocalClasses has precedence, just like in includes/AutoLoader.php
+               $expected = $wgAutoloadLocalClasses + $wgAutoloadClasses;
+               $actual = array();
+
+               $files = array_unique( $expected );
+
+               foreach ( $files as $file ) {
+                       // Only prefix $IP if it doesn't have it already.
+                       // Generally local classes don't have it, and those from extensions and test suites do.
+                       if ( substr( $file, 0, 1 ) != '/' && substr( $file, 1, 1 ) != ':' ) {
+                               $filePath = "$IP/$file";
+                       } else {
+                               $filePath = $file;
+                       }
+                       if ( $supportsParsekit ) {
+                               $parseInfo = parsekit_compile_file( "$filePath" );
+                               $classes = array_keys( $parseInfo['class_table'] );
+                       } else {
+                               $contents = file_get_contents( "$filePath" );
+                               $m = array();
+                               preg_match_all( '/\n\s*(?:final)?\s*(?:abstract)?\s*(?:class|interface)\s+([a-zA-Z0-9_]+)/', $contents, $m, PREG_PATTERN_ORDER );
+                               $classes = $m[1];
+                       }
+                       foreach ( $classes as $class ) {
+                               $actual[$class] = $file;
+                       }
+               }
+
+               return array(
+                       'expected' => $expected,
+                       'actual' => $actual,
+               );
+       }
+}
diff --git a/tests/phpunit/structure/ResourcesTest.php b/tests/phpunit/structure/ResourcesTest.php
new file mode 100644 (file)
index 0000000..3af805a
--- /dev/null
@@ -0,0 +1,126 @@
+<?php
+/**
+ * Sanity checks for making sure registered resources are sane.
+ *
+ * @file
+ * @author Niklas Laxström, 2012
+ * @author Antoine Musso, 2012
+ * @author Santhosh Thottingal, 2012
+ * @author Timo Tijhof, 2012
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
+ */
+class ResourcesTest extends MediaWikiTestCase {
+
+       /**
+        * @dataProvider provideResourceFiles
+        */
+       public function testFileExistence( $filename, $module, $resource ) {
+               $this->assertFileExists( $filename,
+                       "File '$resource' referenced by '$module' must exist."
+               );
+       }
+
+       /**
+        * This ask the ResouceLoader for all registered files from modules
+        * created by ResourceLoaderFileModule (or one of its descendants).
+        *
+        *
+        * Since the raw data is stored in protected properties, we have to
+        * overrride this through ReflectionObject methods.
+        */
+       public static function provideResourceFiles() {
+               global $wgEnableJavaScriptTest;
+
+               // Test existance of test suite files as well
+               // (can't use setUp or setMwGlobals because providers are static)
+               $live_wgEnableJavaScriptTest = $wgEnableJavaScriptTest;
+               $wgEnableJavaScriptTest = true;
+
+               // Array with arguments for the test function
+               $cases = array();
+
+               // Initialize ResourceLoader
+               $rl = new ResourceLoader();
+
+               // See also ResourceLoaderFileModule::__construct
+               $filePathProps = array(
+                       // Lists of file paths
+                       'lists' => array(
+                               'scripts',
+                               'debugScripts',
+                               'loaderScripts',
+                               'styles',
+                       ),
+
+                       // Collated lists of file paths
+                       'nested-lists' => array(
+                               'languageScripts',
+                               'skinScripts',
+                               'skinStyles',
+                       ),
+               );
+
+               foreach ( $rl->getModuleNames() as $moduleName ) {
+                       $module = $rl->getModule( $moduleName );
+                       if ( !$module instanceof ResourceLoaderFileModule ) {
+                               continue;
+                       }
+
+                       $reflectedModule = new ReflectionObject( $module );
+
+                       $files = array();
+
+                       foreach ( $filePathProps['lists'] as $propName ) {
+                               $property = $reflectedModule->getProperty( $propName );
+                               $property->setAccessible( true );
+                               $list = $property->getValue( $module );
+                               foreach ( $list as $key => $value ) {
+                                       // 'scripts' are numeral arrays.
+                                       // 'styles' can be numeral or associative.
+                                       // In case of associative the key is the file path
+                                       // and the value is the 'media' attribute.
+                                       if ( is_int( $key ) ) {
+                                               $files[] = $value;
+                                       } else {
+                                               $files[] = $key;
+                                       }
+                               }
+                       }
+
+                       foreach ( $filePathProps['nested-lists'] as $propName ) {
+                               $property = $reflectedModule->getProperty( $propName );
+                               $property->setAccessible( true );
+                               $lists = $property->getValue( $module );
+                               foreach ( $lists as $list ) {
+                                       foreach ( $list as $key => $value ) {
+                                               // We need the same filter as for 'lists',
+                                               // due to 'skinStyles'.
+                                               if ( is_int( $key ) ) {
+                                                       $files[] = $value;
+                                               } else {
+                                                       $files[] = $key;
+                                               }
+                                       }
+                               }
+                       }
+
+                       // Get method for resolving the paths to full paths
+                       $method = $reflectedModule->getMethod( 'getLocalPath' );
+                       $method->setAccessible( true );
+
+                       // Populate cases
+                       foreach ( $files as $file ) {
+                               $cases[] = array(
+                                       $method->invoke( $module, $file ),
+                                       $module->getName(),
+                                       $file,
+                               );
+                       }
+               }
+
+               // Restore settings
+               $wgEnableJavaScriptTest = $live_wgEnableJavaScriptTest;
+
+               return $cases;
+       }
+}
diff --git a/tests/phpunit/structure/StructureTest.php b/tests/phpunit/structure/StructureTest.php
new file mode 100644 (file)
index 0000000..df00d4d
--- /dev/null
@@ -0,0 +1,63 @@
+<?php
+/**
+ * The tests here verify the structure of the code.  This is for outright bugs,
+ * not just style issues.
+ */
+
+class StructureTest extends MediaWikiTestCase {
+       /**
+        * Verify all files that appear to be tests have file names ending in
+        * Test.  If the file names do not end in Test, they will not be run.
+        * @group medium
+        */
+       public function testUnitTestFileNamesEndWithTest() {
+               if ( wfIsWindows() ) {
+                       $this->markTestSkipped( 'This test does not work on Windows' );
+               }
+               $rootPath = escapeshellarg( __DIR__ . '/..' );
+               $testClassRegex = implode( '|', array(
+                       'ApiFormatTestBase',
+                       'ApiTestCase',
+                       'ApiQueryTestBase',
+                       'ApiQueryContinueTestBase',
+                       'MediaWikiLangTestCase',
+                       'MediaWikiTestCase',
+                       'PHPUnit_Framework_TestCase',
+                       'DumpTestCase',
+               ) );
+               $testClassRegex = "^class .* extends ($testClassRegex)";
+               $finder = "find $rootPath -name '*.php' '!' -name '*Test.php'" .
+                       " | xargs grep -El '$testClassRegex|function suite\('";
+
+               $results = null;
+               $exitCode = null;
+               exec( $finder, $results, $exitCode );
+
+               $this->assertEquals(
+                       0,
+                       $exitCode,
+                       'Verify find/grep command succeeds.'
+               );
+
+               $results = array_filter(
+                       $results,
+                       array( $this, 'filterSuites' )
+               );
+               $strip = strlen( $rootPath ) - 1;
+               foreach ( $results as $k => $v ) {
+                       $results[$k] = substr( $v, $strip );
+               }
+               $this->assertEquals(
+                       array(),
+                       $results,
+                       "Unit test file in $rootPath must end with Test."
+               );
+       }
+
+       /**
+        * Filter to remove testUnitTestFileNamesEndWithTest false positives.
+        */
+       public function filterSuites( $filename ) {
+               return strpos( $filename, __DIR__ . '/../suites/' ) !== 0;
+       }
+}
index 56f6447..7a9122f 100644 (file)
@@ -2,17 +2,18 @@
 
 <!-- colors don't work on Windows! -->
 <phpunit bootstrap="./bootstrap.php"
-         colors="true"
-         backupGlobals="false"
-         convertErrorsToExceptions="true"
-         convertNoticesToExceptions="true"
-         convertWarningsToExceptions="true"
-         stopOnFailure="false"
-                timeoutForSmallTests="10"
-                timeoutForMediumTests="30"
-                timeoutForLargeTests="60"
-         strict="true"
-                verbose="true">
+       colors="true"
+       backupGlobals="false"
+       convertErrorsToExceptions="true"
+       convertNoticesToExceptions="true"
+       convertWarningsToExceptions="true"
+       forceCoversAnnotation="true"
+       stopOnFailure="false"
+       timeoutForSmallTests="10"
+       timeoutForMediumTests="30"
+       timeoutForLargeTests="60"
+       strict="true"
+       verbose="true">
        <testsuites>
                <testsuite name="includes">
                        <directory>includes</directory>
                        <directory>maintenance</directory>
                </testsuite>
                <testsuite name="structure">
-                       <file>StructureTest.php</file>
+                       <directory>structure</directory>
                </testsuite>
                <testsuite name="uploadfromurl">
                        <file>suites/UploadFromUrlTestSuite.php</file>
                </testsuite>
                <testsuite name="extensions">
                        <file>suites/ExtensionsTestSuite.php</file>
+                       <file>suites/ExtensionsParserTestSuite.php</file>
                </testsuite>
        </testsuites>
        <groups>
diff --git a/tests/phpunit/suites/ExtensionsParserTestSuite.php b/tests/phpunit/suites/ExtensionsParserTestSuite.php
new file mode 100644 (file)
index 0000000..3d68b24
--- /dev/null
@@ -0,0 +1,8 @@
+<?php
+class ExtensionsParserTestSuite extends PHPUnit_Framework_TestSuite {
+
+       public static function suite() {
+               return MediaWikiParserTest::suite( MediaWikiParserTest::NO_CORE );
+       }
+
+}
index 88bbf5c..4c7c302 100644 (file)
@@ -1,16 +1,11 @@
 ( function ( $ ) {
-       var uacount, uas, testMap;
 
        QUnit.module( 'jquery.client', QUnit.newMwEnvironment() );
 
-       /** Number of user-agent defined */
-       uacount = 0;
-
-       uas = ( function () {
-
+       var uacount = 0,
                // Object keyed by userAgent. Value is an array (human-readable name, client-profile object, navigator.platform value)
                // Info based on results from http://toolserver.org/~krinkle/testswarm/job/174/
-               var uas = {
+               uas = {
                        // Internet Explorer 6
                        // Internet Explorer 7
                        'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)': {
@@ -39,7 +34,7 @@
                                profile: {
                                        name: 'msie',
                                        layout: 'trident',
-                                       layoutVersion: 'unknown', // should be able to report 6?
+                                       layoutVersion: 6,
                                        platform: 'win',
                                        version: '10.0',
                                        versionBase: '10',
                                        rtl: true
                                }
                        },
+                       // Internet Explorer 11
+                       'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko': {
+                               title: 'Internet Explorer 11',
+                               platform: 'Win32',
+                               profile: {
+                                       name: 'msie',
+                                       layout: 'trident',
+                                       layoutVersion: 7,
+                                       platform: 'win',
+                                       version: '11.0',
+                                       versionBase: '11',
+                                       versionNumber: 11
+                               },
+                               wikiEditor: {
+                                       ltr: true,
+                                       rtl: true
+                               }
+                       },
+                       // Internet Explorer 11 - Windows 8.1 x64 Modern UI
+                       'Mozilla/5.0 (Windows NT 6.3; Win64; x64; Trident/7.0; rv:11.0) like Gecko': {
+                               title: 'Internet Explorer 11',
+                               platform: 'Win64',
+                               profile: {
+                                       name: 'msie',
+                                       layout: 'trident',
+                                       layoutVersion: 7,
+                                       platform: 'win',
+                                       version: '11.0',
+                                       versionBase: '11',
+                                       versionNumber: 11
+                               },
+                               wikiEditor: {
+                                       ltr: true,
+                                       rtl: true
+                               }
+                       },
+                       // Internet Explorer 11 - Windows 8.1 x64 desktop UI
+                       'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko': {
+                               title: 'Internet Explorer 11',
+                               platform: 'WOW64',
+                               profile: {
+                                       name: 'msie',
+                                       layout: 'trident',
+                                       layoutVersion: 7,
+                                       platform: 'win',
+                                       version: '11.0',
+                                       versionBase: '11',
+                                       versionNumber: 11
+                               },
+                               wikiEditor: {
+                                       ltr: true,
+                                       rtl: true
+                               }
+                       },
                        // Firefox 2
                        // Firefox 3.5
                        'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1.19) Gecko/20110420 Firefox/3.5.19': {
                                        rtl: true
                                }
                        },
+                       // Iceweasel 15.0.1
+                       'Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20100101 Firefox/15.0.1 Iceweasel/15.0.1': {
+                               title: 'Iceweasel 15.0.1',
+                               platform: 'Linux',
+                               profile: {
+                                       name: 'iceweasel',
+                                       layout: 'gecko',
+                                       layoutVersion: 20100101,
+                                       platform: 'linux',
+                                       version: '15.0.1',
+                                       versionBase: '15',
+                                       versionNumber: 15
+                               },
+                               wikiEditor: {
+                                       ltr: true,
+                                       rtl: true
+                               }
+                       },
                        // Firefox 5
                        // Safari 3
                        // Safari 4
                                }
                        },
                        // Safari 5
+                       // Safari 6
+                       'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/536.29.13 (KHTML, like Gecko) Version/6.0.4 Safari/536.29.13': {
+                               title: 'Safari 6',
+                               platform: 'MacIntel',
+                               profile: {
+                                       name: 'safari',
+                                       layout: 'webkit',
+                                       layoutVersion: 536,
+                                       platform: 'mac',
+                                       version: '6.0.4',
+                                       versionBase: '6',
+                                       versionNumber: 6
+                               },
+                               wikiEditor: {
+                                       ltr: true,
+                                       rtl: true
+                               }
+                       },
+                       // Safari 6.0.5+ (doesn't have the comma in "KHTML, like Gecko")
+                       'Mozilla/5.0 (Macintosh; Intel Mac OS X 1084) AppleWebKit/536.30.1 (KHTML like Gecko) Version/6.0.5 Safari/536.30.1': {
+                               title: 'Safari 6',
+                               platform: 'MacIntel',
+                               profile: {
+                                       name: 'safari',
+                                       layout: 'webkit',
+                                       layoutVersion: 536,
+                                       platform: 'mac',
+                                       version: '6.0.5',
+                                       versionBase: '6',
+                                       versionNumber: 6
+                               },
+                               wikiEditor: {
+                                       ltr: true,
+                                       rtl: true
+                               }
+                       },
                        // Opera 10+
                        'Opera/9.80 (Windows NT 5.1)': {
                                title: 'Opera 10+ (exact version unspecified)',
                                        rtl: true
                                }
                        },
+                       // Opera 15 (WebKit-based)
+                       'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.52 Safari/537.36 OPR/15.0.1147.130': {
+                               title: 'Opera 15',
+                               platform: 'Win32',
+                               profile: {
+                                       name: 'opera',
+                                       layout: 'webkit',
+                                       layoutVersion: 537,
+                                       platform: 'win',
+                                       version: '15.0.1147.130',
+                                       versionBase: '15',
+                                       versionNumber: 15
+                               },
+                               wikiEditor: {
+                                       ltr: true,
+                                       rtl: true
+                               }
+                       },
                        // Chrome 5
                        // Chrome 6
                        // Chrome 7
                                        rtl: true
                                }
                        },
+                       // Android WebKit Browser 2.3
+                       'Mozilla/5.0 (Linux; U; Android 2.3.5; en-us; HTC Vision Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1': {
+                               title: 'Android WebKit Browser 2.3',
+                               platform: 'Linux armv7l',
+                               profile: {
+                                       name: 'android',
+                                       layout: 'webkit',
+                                       layoutVersion: 533,
+                                       platform: 'linux',
+                                       version: '2.3.5',
+                                       versionBase: '2',
+                                       versionNumber: 2.3
+                               },
+                               wikiEditor: {
+                                       ltr: true,
+                                       rtl: true
+                               }
+                       },
                        // Bug #34924
                        'Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.34 (KHTML, like Gecko) rekonq Safari/534.34': {
                                title: 'Rekonq',
                                        rtl: true
                                }
                        }
-               };
-               $.each( uas, function () {
-                       uacount++;
-               } );
-               return uas;
-       }() );
-
-       QUnit.test( 'profile userAgent support', uacount, function ( assert ) {
-               // Generate a client profile object and compare recursively
-               var uaTest = function ( rawUserAgent, data ) {
-                       var ret = $.client.profile( {
-                               userAgent: rawUserAgent,
-                               platform: data.platform
-                       } );
-                       assert.deepEqual( ret, data.profile, 'Client profile support check for ' + data.title + ' (' + data.platform + '): ' + rawUserAgent );
-               };
+               },
+               testMap = {
+                       // Example from WikiEditor
+                       // Make sure to use raw numbers, a string like "7.0" would fail on a
+                       // version 10 browser since in string comparaison "10" is before "7.0" :)
+                       'ltr': {
+                               'msie': [['>=', 7.0]],
+                               'firefox': [['>=', 2]],
+                               'opera': [['>=', 9.6]],
+                               'safari': [['>=', 3]],
+                               'chrome': [['>=', 3]],
+                               'netscape': [['>=', 9]],
+                               'blackberry': false,
+                               'ipod': false,
+                               'iphone': false
+                       },
+                       'rtl': {
+                               'msie': [['>=', 8]],
+                               'firefox': [['>=', 2]],
+                               'opera': [['>=', 9.6]],
+                               'safari': [['>=', 3]],
+                               'chrome': [['>=', 3]],
+                               'netscape': [['>=', 9]],
+                               'blackberry': false,
+                               'ipod': false,
+                               'iphone': false
+                       }
+               }
+       ;
 
-               // Loop through and run tests
-               $.each( uas, uaTest );
+       // Count test cases
+       $.each( uas, function () {
+               uacount++;
        } );
 
-       QUnit.test( 'profile return validation for current user agent', 7, function ( assert ) {
+       QUnit.test( 'profile( navObject )', 7, function ( assert ) {
                var p = $.client.profile();
 
                function unknownOrType( val, type, summary ) {
                assert.equal( typeof p.versionNumber, 'number', 'p.versionNumber is a number' );
        } );
 
-       // Example from WikiEditor
-       // Make sure to use raw numbers, a string like "7.0" would fail on a
-       // version 10 browser since in string comparaison "10" is before "7.0" :)
-       testMap = {
-               'ltr': {
-                       'msie': [['>=', 7.0]],
-                       'firefox': [['>=', 2]],
-                       'opera': [['>=', 9.6]],
-                       'safari': [['>=', 3]],
-                       'chrome': [['>=', 3]],
-                       'netscape': [['>=', 9]],
-                       'blackberry': false,
-                       'ipod': false,
-                       'iphone': false
-               },
-               'rtl': {
-                       'msie': [['>=', 8]],
-                       'firefox': [['>=', 2]],
-                       'opera': [['>=', 9.6]],
-                       'safari': [['>=', 3]],
-                       'chrome': [['>=', 3]],
-                       'netscape': [['>=', 9]],
-                       'blackberry': false,
-                       'ipod': false,
-                       'iphone': false
-               }
-       };
+       QUnit.test( 'profile( navObject ) - samples', uacount, function ( assert ) {
+               // Loop through and run tests
+               $.each( uas, function ( rawUserAgent, data ) {
+                       // Generate a client profile object and compare recursively
+                       var ret = $.client.profile( {
+                               userAgent: rawUserAgent,
+                               platform: data.platform
+                       } );
+                       assert.deepEqual( ret, data.profile, 'Client profile support check for ' + data.title + ' (' + data.platform + '): ' + rawUserAgent );
+               } );
+       } );
 
-       QUnit.test( 'test', 1, function ( assert ) {
+       QUnit.test( 'test( testMap )', 4, function ( assert ) {
                // .test() uses eval, make sure no exceptions are thrown
                // then do a basic return value type check
-               var testMatch = $.client.test( testMap );
+               var testMatch = $.client.test( testMap ),
+                       ie7Profile = $.client.profile( {
+                               'userAgent': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)',
+                               'platform': ''
+                       } );
+
+               assert.equal( typeof testMatch, 'boolean', 'map with ltr/rtl split returns a boolean value' );
+
+               testMatch = $.client.test( testMap.ltr );
+
+               assert.equal( typeof testMatch, 'boolean', 'simple map (without ltr/rtl split) returns a boolean value' );
+
+               assert.equal( $.client.test( {
+                       'msie': null
+               }, ie7Profile ), true, 'returns true if any version of a browser are allowed (null)' );
+
+               assert.equal( $.client.test( {
+                       'msie': false
+               }, ie7Profile ), false, 'returns false if all versions of a browser are not allowed (false)' );
+       } );
+
+       QUnit.test( 'test( testMap, exactMatchOnly )', 2, function ( assert ) {
+               var ie7Profile = $.client.profile( {
+                       'userAgent': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)',
+                       'platform': ''
+               } );
 
-               assert.equal( typeof testMatch, 'boolean', 'test returns a boolean value' );
+               assert.equal( $.client.test( {
+                       'firefox': [['>=', 2]]
+               }, ie7Profile, false ), true, 'returns true if browser not found and exactMatchOnly not set' );
 
+               assert.equal( $.client.test( {
+                       'firefox': [['>=', 2]]
+               }, ie7Profile, true ), false, 'returns false if browser not found and exactMatchOnly is set' );
        } );
 
-       QUnit.test( 'User-agent matches against WikiEditor\'s compatibility map', uacount * 2, function ( assert ) {
+       QUnit.test( 'test( testMap) - WikiEditor sample', uacount * 2, function ( assert ) {
                var $body = $( 'body' ),
                        bodyClasses = $body.attr( 'class' );
 
index 7c8503b..f73fd7b 100644 (file)
                        $table.find( '.headerSort:eq(0)' ).click();
                }
        );
+       tableTest(
+               'Basic planet table: ascending by name (multiple clicks)',
+               header,
+               planets,
+               ascendingName,
+               function ( $table ) {
+                       $table.tablesorter();
+                       $table.find( '.headerSort:eq(0)' ).click();
+                       $table.find( '.headerSort:eq(1)' ).click();
+                       $table.find( '.headerSort:eq(0)' ).click();
+               }
+       );
        tableTest(
                'Basic planet table: descending by name',
                header,
                        $table.data( 'tablesorter' ).sort();
                }
        );
+       tableTest(
+               'Sort via click event after having initialized the tablesorter with initial sorting',
+               header,
+               initial,
+               descasc,
+               function ( $table ) {
+                       $table.tablesorter(
+                               { sortList: [ { 0: 'asc' }, { 1: 'asc' } ] }
+                       );
+                       $table.find( '.headerSort:eq(0)' ).click();
+               }
+       );
+       tableTest(
+               'Multi-sort via click event after having initialized the tablesorter with initial sorting',
+               header,
+               initial,
+               asc,
+               function ( $table ) {
+                       $table.tablesorter(
+                               { sortList: [ { 0: 'desc' }, { 1: 'desc' } ] }
+                       );
+                       $table.find( '.headerSort:eq(0)' ).click();
+
+                       // Pretend to click while pressing the multi-sort key
+                       var event = $.Event( 'click' );
+                       event[$table.data( 'tablesorter' ).config.sortMultiSortKey] = true;
+                       $table.find( '.headerSort:eq(1)' ).trigger( event );
+               }
+       );
        QUnit.test( 'Reset sorting making table appear unsorted', 3, function ( assert ) {
                var $table = tableCreate( header, initial );
                $table.tablesorter(
                function ( $table ) {
                        // Make colspanned header for test
                        $table.find( 'tr:eq(0) th:eq(1), tr:eq(0) th:eq(2)' ).remove();
-                       $table.find( 'tr:eq(0) th:eq(0)' ).prop( 'colspan', '3' );
+                       $table.find( 'tr:eq(0) th:eq(0)' ).attr( 'colspan', '3' );
 
                        $table.tablesorter();
                        $table.find( '.headerSort:eq(0)' ).click();
                }
        );
+       tableTest( 'Sorting with colspanned headers: sort spanned column twice',
+               header,
+               initial,
+               [ caa4, bbc2, abc3, aab5, aaa1 ],
+               function ( $table ) {
+                       // Make colspanned header for test
+                       $table.find( 'tr:eq(0) th:eq(1), tr:eq(0) th:eq(2)' ).remove();
+                       $table.find( 'tr:eq(0) th:eq(0)' ).attr( 'colspan', '3' );
+
+                       $table.tablesorter();
+                       $table.find( '.headerSort:eq(0)' ).click();
+                       $table.find( '.headerSort:eq(0)' ).click();
+               }
+       );
        tableTest( 'Sorting with colspanned headers: subsequent column',
                header,
                initial,
                function ( $table ) {
                        // Make colspanned header for test
                        $table.find( 'tr:eq(0) th:eq(1), tr:eq(0) th:eq(2)' ).remove();
-                       $table.find( 'tr:eq(0) th:eq(0)' ).prop( 'colspan', '3' );
+                       $table.find( 'tr:eq(0) th:eq(0)' ).attr( 'colspan', '3' );
 
                        $table.tablesorter();
                        $table.find( '.headerSort:eq(1)' ).click();
                }
        );
+       tableTest( 'Sorting with colspanned headers: sort subsequent column twice',
+               header,
+               initial,
+               [ aab5, caa4, abc3, bbc2, aaa1 ],
+               function ( $table ) {
+                       // Make colspanned header for test
+                       $table.find( 'tr:eq(0) th:eq(1), tr:eq(0) th:eq(2)' ).remove();
+                       $table.find( 'tr:eq(0) th:eq(0)' ).attr( 'colspan', '3' );
+
+                       $table.tablesorter();
+                       $table.find( '.headerSort:eq(1)' ).click();
+                       $table.find( '.headerSort:eq(1)' ).click();
+               }
+       );
+
+
+       tableTest(
+               'Basic planet table: one unsortable column',
+               header,
+               planets,
+               planets,
+               function ( $table ) {
+                       $table.find( 'tr:eq(0) > th:eq(0)' ).addClass( 'unsortable' );
+
+                       $table.tablesorter();
+                       $table.find( 'tr:eq(0) > th:eq(0)' ).click();
+               }
+       );
 
        // Regression tests!
        tableTest(
                $table.find( 'tr:eq(3) td:eq(1), tr:eq(4) td:eq(1)' ).remove();
                // - Set rowspan for 2nd cell of 3rd row to 3.
                //   This covers the removed cell in the 4th and 5th row.
-               $table.find( 'tr:eq(2) td:eq(1)' ).prop( 'rowspan', '3' );
+               $table.find( 'tr:eq(2) td:eq(1)' ).attr( 'rowspan', '3' );
 
                $table.tablesorter();
 
                assert.equal(
-                       $table.find( 'tr:eq(2) td:eq(1)' ).prop( 'rowspan' ),
+                       $table.find( 'tr:eq(2) td:eq(1)' ).prop( 'rowSpan' ),
                        3,
                        'Rowspan not exploded'
                );
                        $table.find( 'tr:eq(3) td:eq(1), tr:eq(4) td:eq(1)' ).remove();
                        // - Set rowspan for 2nd cell of 3rd row to 3.
                        //   This covers the removed cell in the 4th and 5th row.
-                       $table.find( 'tr:eq(2) td:eq(1)' ).prop( 'rowspan', '3' );
+                       $table.find( 'tr:eq(2) td:eq(1)' ).attr( 'rowspan', '3' );
 
                        $table.tablesorter();
                        $table.find( '.headerSort:eq(0)' ).click();
                        $table.find( 'tr:eq(3) td:eq(1), tr:eq(4) td:eq(1)' ).remove();
                        // - Set rowspan for 2nd cell of 3rd row to 3.
                        //   This covers the removed cell in the 4th and 5th row.
-                       $table.find( 'tr:eq(2) td:eq(1)' ).prop( 'rowspan', '3' );
+                       $table.find( 'tr:eq(2) td:eq(1)' ).attr( 'rowspan', '3' );
 
                        $table.tablesorter( { sortList: [
                                { 0: 'asc' }
                        $table.find( 'tr:eq(3) td:eq(0), tr:eq(4) td:eq(0)' ).remove();
                        // - Set rowspan for 1st cell of 3rd row to 3.
                        //   This covers the removed cell in the 4th and 5th row.
-                       $table.find( 'tr:eq(2) td:eq(0)' ).prop( 'rowspan', '3' );
+                       $table.find( 'tr:eq(2) td:eq(0)' ).attr( 'rowspan', '3' );
 
                        $table.tablesorter();
                        $table.find( '.headerSort:eq(0)' ).click();
                );
        } );
 
+       QUnit.test( 'bug 38911 - The row with the largest amount of columns should receive the sort indicators', 3, function ( assert ) {
+               var $table = $(
+                       '<table class="sortable">' +
+                               '<thead>' +
+                               '<tr><th rowspan="2" id="A1">A1</th><th colspan="2">B2a</th></tr>' +
+                               '<tr><th id="B2b">B2b</th><th id="C2b">C2b</th></tr>' +
+                               '</thead>' +
+                               '<tr><td>A</td><td>Aa</td><td>Ab</td></tr>' +
+                               '<tr><td>B</td><td>Ba</td><td>Bb</td></tr>' +
+                               '</table>'
+               );
+               $table.tablesorter();
+
+               assert.equal(
+                       $table.find( '#A1' ).attr( 'class' ),
+                       'headerSort',
+                       'The first column of the first row should be sortable'
+               );
+               assert.equal(
+                       $table.find( '#B2b' ).attr( 'class' ),
+                       'headerSort',
+                       'The th element of the 2nd row of the 2nd column should be sortable'
+               );
+               assert.equal(
+                       $table.find( '#C2b' ).attr( 'class' ),
+                       'headerSort',
+                       'The th element of the 2nd row of the 3rd column should be sortable'
+               );
+       } );
+
+       QUnit.test( 'rowspans in table headers should prefer the last row when rows are equal in length', 2, function ( assert ) {
+               var $table = $(
+                       '<table class="sortable">' +
+                               '<thead>' +
+                               '<tr><th rowspan="2" id="A1">A1</th><th>B2a</th></tr>' +
+                               '<tr><th id="B2b">B2b</th></tr>' +
+                               '</thead>' +
+                               '<tr><td>A</td><td>Aa</td></tr>' +
+                               '<tr><td>B</td><td>Ba</td></tr>' +
+                               '</table>'
+               );
+               $table.tablesorter();
+
+               assert.equal(
+                       $table.find( '#A1' ).attr( 'class' ),
+                       'headerSort',
+                       'The first column of the first row should be sortable'
+               );
+               assert.equal(
+                       $table.find( '#B2b' ).attr( 'class' ),
+                       'headerSort',
+                       'The th element of the 2nd row of the 2nd column should be sortable'
+               );
+       } );
+
        // bug 41889 - exploding rowspans in more complex cases
        tableTestHTML(
                'Rowspan exploding with row headers',
index 73dcf34..502b55b 100644 (file)
                assert.ok( mw.config instanceof mw.Map, 'mw.config instance of mw.Map' );
        } );
 
-       QUnit.test( 'mw.message & mw.messages', 83, function ( assert ) {
+       QUnit.test( 'mw.message & mw.messages', 100, function ( assert ) {
                var goodbye, hello;
 
                // Convenience method for asserting the same result for multiple formats
                assertMultipleFormats( ['plural-test-msg', 6], ['text', 'parse', 'escaped'], 'There are 6 results', 'plural get resolved' );
                assert.equal( mw.message( 'plural-test-msg', 6 ).plain(), 'There {{PLURAL:6|is|are}} 6 {{PLURAL:6|result|results}}', 'Parameter is substituted but plural is not resolved in plain' );
 
+               assert.ok( mw.messages.set( 'plural-test-msg-explicit', 'There {{plural:$1|is one car|are $1 cars|0=are no cars|12=are a dozen cars}}' ), 'mw.messages.set: Register message with explicit plural forms' );
+               assertMultipleFormats( ['plural-test-msg-explicit', 12], ['text', 'parse', 'escaped'], 'There are a dozen cars', 'explicit plural get resolved' );
+
+               assert.ok( mw.messages.set( 'plural-test-msg-explicit-beginning', 'Basket has {{plural:$1|0=no eggs|12=a dozen eggs|6=half a dozen eggs|one egg|$1 eggs}}' ), 'mw.messages.set: Register message with explicit plural forms' );
+               assertMultipleFormats( ['plural-test-msg-explicit-beginning', 1], ['text', 'parse', 'escaped'], 'Basket has one egg', 'explicit plural given at beginning get resolved for singular' );
+               assertMultipleFormats( ['plural-test-msg-explicit-beginning', 4], ['text', 'parse', 'escaped'], 'Basket has 4 eggs', 'explicit plural given at beginning get resolved for plural' );
+               assertMultipleFormats( ['plural-test-msg-explicit-beginning', 6], ['text', 'parse', 'escaped'], 'Basket has half a dozen eggs', 'explicit plural given at beginning get resolved for 6' );
+               assertMultipleFormats( ['plural-test-msg-explicit-beginning', 0], ['text', 'parse', 'escaped'], 'Basket has no eggs', 'explicit plural given at beginning get resolved for 0' );
+
+
                assertMultipleFormats( ['mediawiki-test-pagetriage-del-talk-page-notify-summary'], ['plain', 'text'], mw.messages.get( 'mediawiki-test-pagetriage-del-talk-page-notify-summary' ), 'Double square brackets with no parameters unchanged' );
 
                assertMultipleFormats( ['mediawiki-test-pagetriage-del-talk-page-notify-summary', specialCharactersPageName], ['plain', 'text'], 'Notifying author of deletion nomination for [[' + specialCharactersPageName + ']]', 'Double square brackets with one parameter' );
index 713ec4b..674f56a 100644 (file)
 
                assert.strictEqual( mw.util.toggleToc(), null, 'Return null if there is no table of contents on the page.' );
 
-               tocHtml = '<table id="toc" class="toc"><tr><td>' +
+               tocHtml = '<div id="toc" class="toc">' +
                        '<div id="toctitle">' +
                        '<h2>Contents</h2>' +
                        '<span class="toctoggle">&nbsp;[<a href="#" class="internal" id="togglelink">Hide</a>&nbsp;]</span>' +
                        '</div>' +
                        '<ul><li></li></ul>' +
-                       '</td></tr></table>';
+                       '</div>';
                $( tocHtml ).appendTo( '#qunit-fixture' ),
                        $toggleLink = $( '#togglelink' );
 
 
                pTestTb = '\
                <div class="portlet" id="p-test-tb">\
-                       <h5>Toolbox</h5>\
+                       <h3>Toolbox</h3>\
                        <ul class="body"></ul>\
                </div>';
                pCustom = '\
                <div class="portlet" id="p-test-custom">\
-                       <h5>Views</h5>\
+                       <h3>Views</h3>\
                        <ul class="body">\
                                <li id="c-foo"><a href="#">Foo</a></li>\
                                <li id="c-barmenu">\
                </div>';
                vectorTabs = '\
                <div id="p-test-views" class="vectorTabs">\
-                       <h5>Views</h5>\
+                       <h3>Views</h3>\
                        <ul></ul>\
                </div>';
 
diff --git a/tests/selenium/Selenium.php b/tests/selenium/Selenium.php
deleted file mode 100644 (file)
index 935d692..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
-<?php
-/**
- * Selenium connector
- * This is implemented as a singleton.
- */
-
-require 'Testing/Selenium.php';
-
-class Selenium {
-       protected static $_instance = null;
-
-       public $isStarted = false;
-       public $tester;
-
-       protected $port;
-       protected $host;
-       protected $browser;
-       protected $browsers;
-       protected $logger;
-       protected $user;
-       protected $pass;
-       protected $timeout = 30000;
-       protected $verbose;
-       protected $junitlogfile; //processed by phpUnderControl
-       protected $runagainstgrid = false;
-
-       /**
-        * @todo this shouldn't have to be static
-        */
-       static protected $url;
-
-       /**
-        * Override parent
-        */
-       public function __construct() {
-               /**
-                * @todo this is an ugly hack to make information available to
-                * other tests.  It should be fixed.
-                */
-               if ( null === self::$_instance ) {
-                       self::$_instance = $this;
-               } else {
-                       throw new MWException( "Already have one Selenium instance." );
-               }
-       }
-
-       public function start() {
-               $this->tester = new Testing_Selenium( $this->browser, self::$url, $this->host,
-                       $this->port, $this->timeout );
-               if ( method_exists( $this->tester, "setVerbose" ) ) {
-                       $this->tester->setVerbose( $this->verbose );
-               }
-
-               $this->tester->start();
-               $this->isStarted = true;
-       }
-
-       public function stop() {
-               $this->tester->stop();
-               $this->tester = null;
-               $this->isStarted = false;
-       }
-
-       public function login() {
-               if ( strlen( $this->user ) == 0 ) {
-                       return;
-               }
-               $this->open( self::$url . '/index.php?title=Special:Userlogin' );
-               $this->type( 'wpName1', $this->user );
-               $this->type( 'wpPassword1', $this->pass );
-               $this->click( "//input[@id='wpLoginAttempt']" );
-               $this->waitForPageToLoad( 10000 );
-
-               // after login we redirect to the main page. So check whether the "Prefernces" top menu item exists
-               $value = $this->isElementPresent( "//li[@id='pt-preferences']" );
-
-               if ( $value != true ) {
-                       throw new Testing_Selenium_Exception( "Login Failed" );
-               }
-
-       }
-
-       public static function getInstance() {
-               if ( null === self::$_instance ) {
-                       throw new MWException( "No instance set yet" );
-               }
-
-               return self::$_instance;
-       }
-
-       public function loadPage( $title, $action ) {
-               $this->open( self::$url . '/index.php?title=' . $title . '&action=' . $action );
-       }
-
-       public function setLogger( $logger ) {
-               $this->logger = $logger;
-       }
-
-       public function getLogger() {
-               return $this->logger;
-       }
-
-       public function log( $message ) {
-               $this->logger->write( $message );
-       }
-
-       public function setUrl( $url ) {
-               self::$url = $url;
-       }
-
-       public static function getUrl() {
-               return self::$url;
-       }
-
-       public function setPort( $port ) {
-               $this->port = $port;
-       }
-
-       public function getPort() {
-               return $this->port;
-       }
-
-       public function setUser( $user ) {
-               $this->user = $user;
-       }
-
-       // Function to get username
-       public function getUser() {
-               return $this->user;
-       }
-
-
-       public function setPass( $pass ) {
-               $this->pass = $pass;
-       }
-
-       //add function to get password
-       public function getPass() {
-               return $this->pass;
-       }
-
-       public function setHost( $host ) {
-               $this->host = $host;
-       }
-
-       public function setVerbose( $verbose ) {
-               $this->verbose = $verbose;
-       }
-
-       public function setAvailableBrowsers( $availableBrowsers ) {
-               $this->browsers = $availableBrowsers;
-       }
-
-       public function setJUnitLogfile( $junitlogfile ) {
-               $this->junitlogfile = $junitlogfile;
-       }
-
-       public function getJUnitLogfile() {
-               return $this->junitlogfile;
-       }
-
-       public function setRunAgainstGrid( $runagainstgrid ) {
-               $this->runagainstgrid = $runagainstgrid;
-       }
-
-       public function setBrowser( $b ) {
-               if ( $this->runagainstgrid ) {
-                       $this->browser = $b;
-                       return true;
-               }
-               if ( !isset( $this->browsers[$b] ) ) {
-                       throw new MWException( "Invalid Browser: $b.\n" );
-               }
-
-               $this->browser = $this->browsers[$b];
-       }
-
-       public function getAvailableBrowsers() {
-               return $this->browsers;
-       }
-
-       public function __call( $name, $args ) {
-               $t = call_user_func_array( array( $this->tester, $name ), $args );
-               return $t;
-       }
-
-       // Prevent external cloning
-       protected function __clone() {}
-       // Prevent external construction
-       // protected function __construct() {}
-}
diff --git a/tests/selenium/SeleniumConfig.php b/tests/selenium/SeleniumConfig.php
deleted file mode 100644 (file)
index 0823275..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php
-if ( !defined( 'SELENIUMTEST' ) ) {
-       die( 1 );
-}
-
-class SeleniumConfig {
-
-       /**
-        * Retreives the Selenium configuration values from an ini file.
-        * See sample config file in selenium_settings.ini.sample
-        *
-        */
-       public static function getSeleniumSettings( &$seleniumSettings,
-                                                                                               &$seleniumBrowsers,
-                                                                                               &$seleniumTestSuites,
-                                                                                               $seleniumConfigFile = null ) {
-               if ( strlen( $seleniumConfigFile ) == 0 ) {
-                       global $wgSeleniumConfigFile;
-                       if ( isset( $wgSeleniumConfigFile ) ) {
-                               $seleniumConfigFile = $wgSeleniumConfigFile;
-                       }
-               }
-
-               if ( strlen( $seleniumConfigFile ) == 0 || !file_exists( $seleniumConfigFile ) ) {
-                       throw new MWException( "Unable to read local Selenium Settings from " . $seleniumConfigFile . "\n" );
-               }
-
-               $configArray = parse_ini_file( $seleniumConfigFile, true );
-               if ( $configArray === false ) {
-                       throw new MWException( "Error parsing " . $seleniumConfigFile . "\n" );
-               }
-
-               if ( array_key_exists( 'SeleniumSettings', $configArray ) ) {
-                       wfSuppressWarnings();
-                       //we may need to change how this is set. But for now leave it in the ini file
-                       $seleniumBrowsers = $configArray['SeleniumSettings']['browsers'];
-
-                       $seleniumSettings['host'] = $configArray['SeleniumSettings']['host'];
-                       $seleniumSettings['port'] = $configArray['SeleniumSettings']['port'];
-                       $seleniumSettings['wikiUrl'] = $configArray['SeleniumSettings']['wikiUrl'];
-                       $seleniumSettings['username'] = $configArray['SeleniumSettings']['username'];
-                       $seleniumSettings['userPassword'] = $configArray['SeleniumSettings']['userPassword'];
-                       $seleniumSettings['testBrowser'] = $configArray['SeleniumSettings']['testBrowser'];
-                       $seleniumSettings['startserver'] = $configArray['SeleniumSettings']['startserver'];
-                       $seleniumSettings['stopserver'] = $configArray['SeleniumSettings']['stopserver'];
-                       $seleniumSettings['seleniumserverexecpath'] = $configArray['SeleniumSettings']['seleniumserverexecpath'];
-                       $seleniumSettings['jUnitLogFile'] = $configArray['SeleniumSettings']['jUnitLogFile'];
-                       $seleniumSettings['runAgainstGrid'] = $configArray['SeleniumSettings']['runAgainstGrid'];
-
-                       wfRestoreWarnings();
-               }
-               if ( array_key_exists( 'SeleniumTests', $configArray ) ) {
-                       wfSuppressWarnings();
-                       $seleniumTestSuites = $configArray['SeleniumTests']['testSuite'];
-                       wfRestoreWarnings();
-               }
-               return true;
-       }
-
-       private static function parse_ini_line( $iniLine ) {
-               static $specialValues = array( 'false' => false, 'true' => true, 'null' => null );
-               list( $key, $value ) = explode( '=', $iniLine, 2 );
-               $key = trim( $key );
-               $value = trim( $value );
-
-               if ( isset( $specialValues[$value] ) ) {
-                       $value = $specialValues[$value];
-               } else {
-                       $value = trim( $value, '"' );
-               }
-
-               /* Support one-level arrays */
-               if ( preg_match( '/^([A-Za-z]+)\[([A-Za-z]+)\]/', $key, $m ) ) {
-                       $key = $m[1];
-                       $value = array( $m[2] => $value );
-               }
-
-               return array( $key => $value );
-       }
-}
diff --git a/tests/selenium/SeleniumLoader.php b/tests/selenium/SeleniumLoader.php
deleted file mode 100644 (file)
index 1a860f4..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-class SeleniumLoader {
-       static function load() {
-               require_once 'Testing/Selenium.php';
-               require_once 'PHPUnit/Framework.php';
-               require_once 'PHPUnit/Extensions/SeleniumTestCase.php';
-       }
-}
diff --git a/tests/selenium/SeleniumServerManager.php b/tests/selenium/SeleniumServerManager.php
deleted file mode 100644 (file)
index 1a1ee00..0000000
+++ /dev/null
@@ -1,252 +0,0 @@
-<?php
-/**
- * Selenium server manager
- *
- * @file
- * @ingroup Testing
- * Copyright (C) 2010 Dan Nessett <dnessett@yahoo.com>
- * http://citizendium.org/
- *
- * 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.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-class SeleniumServerManager {
-       private $SeleniumStartServer = false;
-       private $OS = '';
-       private $SeleniumServerPid = 'NaN';
-       private $SeleniumServerPort = 4444;
-       private $SeleniumServerStartTimeout = 10; // 10 secs.
-       private $SeleniumServerExecPath;
-
-       public function __construct( $startServer,
-                                                                $serverPort,
-                                                                $serverExecPath ) {
-               $this->OS = (string)PHP_OS;
-
-               if ( isset( $startServer ) ) {
-                       $this->SeleniumStartServer = $startServer;
-               }
-
-               if ( isset( $serverPort ) ) {
-                       $this->SeleniumServerPort = $serverPort;
-               }
-
-               if ( isset( $serverExecPath ) ) {
-                       $this->SeleniumServerExecPath = $serverExecPath;
-               }
-
-               return;
-       }
-
-       // Getters for certain private attributes. No setters, since they
-       // should not change after the manager object is created.
-
-       public function getSeleniumStartServer() {
-               return $this->SeleniumStartServer;
-       }
-
-       public function getSeleniumServerPort() {
-               return $this->SeleniumServerPort;
-       }
-
-       public function getSeleniumServerPid() {
-               return $this->SeleniumServerPid;
-       }
-
-       // Changing value of SeleniumStartServer allows starting server after
-       // creation of the class instance. Only allow setting SeleniumStartServer
-       // to true, since after server is started, it is shut down by stop().
-
-       public function setSeleniumStartServer( $startServer ) {
-               if ( $startServer == true ) {
-                       $this->SeleniumStartServer = true;
-               }
-       }
-
-       // return values are: 1) started - server started, 2) failed -
-       // server not started, 3) running - instructed to start server, but
-       // server already running
-
-       public function start() {
-
-               if ( !$this->SeleniumStartServer ) {
-                       return 'failed';
-               }
-
-               // commented out cases are untested
-
-               switch ( $this->OS ) {
-                       case "Linux":
-#                      case' CYGWIN_NT-5.1':
-                       case 'Darwin':
-#                      case 'FreeBSD':
-#                      case 'HP-UX':
-#                      case 'IRIX64':
-#                      case 'NetBSD':
-#                      case 'OpenBSD':
-#                      case 'SunOS':
-#                      case 'Unix':
-                               // *nix based OS
-                               return $this->startServerOnUnix();
-                               break;
-                       case "Windows":
-                       case "WIN32":
-                       case "WINNT":
-                               // Windows
-                               return $this->startServerOnWindows();
-                               break;
-                       default:
-                               // An untested OS
-                               return 'failed';
-                               break;
-               }
-       }
-
-       public function stop() {
-
-               // commented out cases are untested
-
-               switch ( $this->OS ) {
-                       case "Linux":
-#                      case' CYGWIN_NT-5.1':
-                       case 'Darwin':
-#                      case 'FreeBSD':
-#                      case 'HP-UX':
-#                      case 'IRIX64':
-#                      case 'NetBSD':
-#                      case 'OpenBSD':
-#                      case 'SunOS':
-#                      case 'Unix':
-                               // *nix based OS
-                               return $this->stopServerOnUnix();
-                               break;
-                       case "Windows":
-                       case "WIN32":
-                       case "WINNT":
-                               // Windows
-                               return $this->stopServerOnWindows();
-                               break;
-                       default:
-                               // An untested OS
-                               return 'failed';
-                               break;
-               }
-       }
-
-       private function startServerOnUnix() {
-
-               $output = array();
-               $user = $_ENV['USER'];
-               // @todo FIXME: This should be a little more generalized :)
-               if ( PHP_OS == 'Darwin' ) {
-                       // Mac OS X's ps barfs on the 'w' param, but doesn't need it.
-                       $ps = "ps -U %s";
-               } else {
-                       // Good on Linux
-                       $ps = "ps -U %s w";
-               }
-               $psCommand = sprintf( $ps, escapeshellarg( $user ) );
-               exec( $psCommand . " | grep -i selenium-server", $output );
-
-               // Start server. If there is already a server running,
-               // return running.
-
-               if ( isset( $this->SeleniumServerExecPath ) ) {
-                       $found = 0;
-                       foreach ( $output as $string ) {
-                               $found += preg_match(
-                                       '~^(.*)java(.+)-jar(.+)selenium-server~',
-                                       $string );
-                       }
-                       if ( $found == 0 ) {
-
-                               // Didn't find the selenium server. Start it up.
-                               // First set up comamand line suffix.
-                               // NB: $! is pid of last job run in background
-                               // The echo guarentees it is put into $op when
-                               // the exec command is run.
-
-                               $commandSuffix = ' > /dev/null 2>&1' . ' & echo $!';
-                               $portText = ' -port ' . $this->SeleniumServerPort;
-                               $command = "java -jar " .
-                                       escapeshellarg( $this->SeleniumServerExecPath ) .
-                                       $portText . $commandSuffix;
-                               exec( $command, $op );
-                               $pid = (int)$op[0];
-                               if ( $pid != "" ) {
-                                       $this->SeleniumServerPid = $pid;
-                               } else {
-                                       $this->SeleniumServerPid = 'NaN';
-                                       // Server start failed.
-                                       return 'failed';
-                               }
-                               // Wait for the server to startup and listen
-                               // on its port. Note: this solution kinda
-                               // stinks, since it uses a wait loop - dnessett
-
-                               wfSuppressWarnings();
-                               for ( $cnt = 1;
-                                         $cnt <= $this->SeleniumServerStartTimeout;
-                                         $cnt++ ) {
-                                       $fp = fsockopen( 'localhost',
-                                               $this->SeleniumServerPort,
-                                               $errno, $errstr, 0 );
-                                       if ( !$fp ) {
-                                               sleep( 1 );
-                                               continue;
-                                               // Server start succeeded.
-                                       } else {
-                                               fclose( $fp );
-                                               return 'started';
-                                       }
-                               }
-                               wfRestoreWarnings();
-                               echo "Starting Selenium server timed out.\n";
-                               return 'failed';
-                       } else {
-                               // server already running.
-                               return 'running';
-                       }
-
-               }
-
-               // No Server execution path defined.
-               return 'failed';
-       }
-
-       private function startServerOnWindows() {
-               // Unimplemented.
-               return 'failed';
-       }
-
-       private function stopServerOnUnix() {
-
-               if ( !empty( $this->SeleniumServerPid ) &&
-                       $this->SeleniumServerPid != 'NaN'
-               ) {
-                       exec( "kill -9 " . $this->SeleniumServerPid );
-                       return 'stopped';
-               } else {
-                       return 'failed';
-               }
-       }
-
-       private function stopServerOnWindows() {
-               // Unimplemented.
-               return 'failed';
-
-       }
-}
diff --git a/tests/selenium/SeleniumTestCase.php b/tests/selenium/SeleniumTestCase.php
deleted file mode 100644 (file)
index a2676ca..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-<?php
-include 'SeleniumTestConstants.php';
-
-class SeleniumTestCase extends PHPUnit_Framework_TestCase { // PHPUnit_Extensions_SeleniumTestCase
-       protected $selenium;
-
-       public function setUp() {
-               set_time_limit( 60 );
-               $this->selenium = Selenium::getInstance();
-       }
-
-       public function tearDown() {
-
-       }
-
-       public function __call( $method, $args ) {
-               return call_user_func_array( array( $this->selenium, $method ), $args );
-       }
-
-       public function assertSeleniumAttributeEquals( $attribute, $value ) {
-               $attr = $this->getAttribute( $attribute );
-               $this->assertEquals( $attr, $value );
-       }
-
-       public function assertSeleniumHTMLContains( $element, $text ) {
-               $innerHTML = $this->getText( $element );
-               // or assertContains
-               $this->assertRegExp( "/$text/", $innerHTML );
-       }
-
-
-       /**
-        * Create a test fixture page if one does not exist
-        * @param $pageName The fixture page name. If none is supplied, it uses SeleniumTestConstants::WIKI_INTERNAL_LINK
-        */
-       function createTestPageIfMissing( $pageName = null ) {
-               if ( $pageName == null ) {
-                       $pageName = SeleniumTestConstants::WIKI_INTERNAL_LINK;
-               }
-               $this->type( SeleniumTestConstants::INPUT_SEARCH_BOX, $pageName );
-               $this->click( SeleniumTestConstants::BUTTON_SEARCH );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-               $this->click( SeleniumTestConstants::LINK_START . $pageName );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-               $location = $this->getLocation() . "\n";
-               if ( strpos( $location, '&redlink=1' ) !== false ) {
-                       $this->type( SeleniumTestConstants::TEXT_EDITOR, "Test fixture page. No real content here" );
-                       $this->click( SeleniumTestConstants::BUTTON_SAVE );
-                       $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-                       $this->assertTrue( $this->isTextPresent( $pageName ),
-                               $this->getText( SeleniumTestConstants::TEXT_PAGE_HEADING ) );
-               }
-       }
-
-       /**
-        * Create a test page using date as part of the name so that it is unique
-        * @param $pagePrefix The prefix to use for the page name. The current date will be appended to this to make it unique
-        * @param $watchThis Whether to add the page to my watchlist. Defaults to false.
-        */
-       function createNewTestPage( $pagePrefix, $watchThis = false ) {
-               $pageName = $pagePrefix . date( "Ymd-His" );
-               $this->type( SeleniumTestConstants::INPUT_SEARCH_BOX, $pageName );
-               $this->click( SeleniumTestConstants::BUTTON_SEARCH );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-               $this->click( SeleniumTestConstants::LINK_START . $pageName );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-               $location = $this->getLocation() . "\n";
-               $this->assertContains( '&redlink=1', $location ) .
-                       $this->type( SeleniumTestConstants::TEXT_EDITOR, "Test fixture page. No real content here" );
-               if ( $watchThis ) {
-                       $this->click( "wpWatchthis" );
-               }
-               $this->click( SeleniumTestConstants::BUTTON_SAVE );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-               $this->assertTrue( $this->isTextPresent( $pageName ),
-                       $this->getText( SeleniumTestConstants::TEXT_PAGE_HEADING ) );
-               return $pageName;
-       }
-
-       public function getExistingPage() {
-               $this->open( $this->getUrl() .
-                       '/index.php?title=Main_Page&action=edit' );
-               $this->type( "searchInput", "new" );
-               $this->click( "searchGoButton" );
-               $this->waitForPageToLoad( "30000" );
-       }
-
-       public function getNewPage( $pageName ) {
-
-               $this->open( $this->getUrl() .
-                       '/index.php?title=Main_Page&action=edit' );
-               $this->type( "searchInput", $pageName );
-               $this->click( "searchGoButton" );
-               $this->waitForPageToLoad( "30000" );
-               $this->click( "link=" . $pageName );
-               $this->waitForPageToLoad( "600000" );
-
-
-       }
-
-       // Loading the mediawiki editor
-       public function loadWikiEditor() {
-               $this->open( $this->getUrl() .
-                       '/index.php?title=Main_Page&action=edit' );
-       }
-
-       // Clear the content of the mediawiki editor
-       public function clearWikiEditor() {
-               $this->type( "wpTextbox1", "" );
-       }
-
-       // Click on the 'Show preview' button of the mediawiki editor
-       public function clickShowPreviewBtn() {
-               $this->click( "wpPreview" );
-       }
-
-       // Click on the 'Save Page' button of the mediawiki editor
-       public function clickSavePageBtn() {
-               $this->click( "wpSave" );
-       }
-
-       // Click on the 'Edit' link
-       public function clickEditLink() {
-               $this->click( "link=Edit" );
-               $this->waitForPageToLoad( "30000" );
-       }
-}
diff --git a/tests/selenium/SeleniumTestConsoleLogger.php b/tests/selenium/SeleniumTestConsoleLogger.php
deleted file mode 100644 (file)
index b6f5496..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-class SeleniumTestConsoleLogger {
-       public function __construct() {
-               // Prepare testsuite for immediate output
-               @ini_set( 'zlib.output_compression', 0 );
-               @ini_set( 'implicit_flush', 1 );
-               for ( $i = 0; $i < ob_get_level(); $i++ ) {
-                       ob_end_flush();
-               }
-               ob_implicit_flush( 1 );
-       }
-
-       public function write( $message, $mode = false ) {
-               $out = '';
-               // if ( $mode == SeleniumTestSuite::RESULT_OK ) $out .= '<font color="green">';
-               $out .= htmlentities( $message );
-               // if ( $mode == SeleniumTestSuite::RESULT_OK ) $out .= '</font>';
-               if ( $mode != SeleniumTestSuite::CONTINUE_LINE ) {
-                       $out .= "\n";
-               }
-
-               echo $out;
-       }
-}
diff --git a/tests/selenium/SeleniumTestConstants.php b/tests/selenium/SeleniumTestConstants.php
deleted file mode 100644 (file)
index 1defb73..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-class SeleniumTestConstants {
-       const WIKI_TEST_WAIT_TIME = 3000; // Waiting time
-
-       //commonly used links
-       const LINK_MAIN_PAGE = 'link=Main page';
-       const LINK_RANDOM_PAGE = 'link=Random article';
-       const TEXT_PAGE_HEADING = 'firstHeading';
-
-       const LINK_START = 'link=';
-       const TEXT_EDITOR = 'wpTextbox1';
-       const LINK_PREVIEW = 'wpPreview';
-       const LINK_EDIT = 'link=Edit';
-
-       const WIKI_SEARCH_PAGE = 'Hair (musical)'; // Page name to search
-       const WIKI_TEXT_SEARCH = 'TV'; // Text to search
-       const WIKI_INTERNAL_LINK = 'Wikieditor-Fixture-Page'; // Exisiting page name to add as an internal tag
-
-       const INPUT_SEARCH_BOX = 'searchInput';
-       const BUTTON_SEARCH = 'mw-searchButton';
-       const BUTTON_SAVE = 'wpSave';
-}
-
diff --git a/tests/selenium/SeleniumTestHTMLLogger.php b/tests/selenium/SeleniumTestHTMLLogger.php
deleted file mode 100644 (file)
index 2d4e964..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-class SeleniumTestHTMLLogger {
-       public function setHeaders() {
-               global $wgOut;
-               $wgOut->addHeadItem( 'selenium', '<style>
-               .selenium pre {
-                       overflow-x: auto; /* Use horizontal scroller if needed; for Firefox 2, not needed in Firefox 3 */
-                       white-space: pre-wrap; /* css-3 */
-                       white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */
-                       white-space: -pre-wrap; /* Opera 4-6 */
-                       white-space: -o-pre-wrap; /* Opera 7 */
-                       /* width: 99%; */
-                       word-wrap: break-word; /* Internet Explorer 5.5+ */
-               }
-               .selenium-success { color: green }
-               </style>' );
-       }
-
-       public function write( $message, $mode = false ) {
-               global $wgOut;
-               $out = '';
-               if ( $mode == SeleniumTestSuite::RESULT_OK ) {
-                       $out .= '<span class="selenium-success">';
-               }
-               $out .= htmlspecialchars( $message );
-               if ( $mode == SeleniumTestSuite::RESULT_OK ) {
-                       $out .= '</span>';
-               }
-               if ( $mode != SeleniumTestSuite::CONTINUE_LINE ) {
-                       $out .= '<br />';
-               }
-
-               $wgOut->addHTML( $out );
-       }
-}
diff --git a/tests/selenium/SeleniumTestListener.php b/tests/selenium/SeleniumTestListener.php
deleted file mode 100644 (file)
index dc0ac66..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-
-class SeleniumTestListener implements PHPUnit_Framework_TestListener {
-       private $logger;
-       private $tests_ok = 0;
-       private $tests_failed = 0;
-
-       public function __construct( $loggerInstance ) {
-               $this->logger = $loggerInstance;
-       }
-
-       public function addError( PHPUnit_Framework_Test $test, Exception $e, $time ) {
-               $this->logger->write( 'Error: ' . $e->getMessage() );
-               $this->tests_failed++;
-       }
-
-       public function addFailure( PHPUnit_Framework_Test $test, PHPUnit_Framework_AssertionFailedError $e, $time ) {
-               $this->logger->write( 'Failed: ' . $e->getMessage() );
-               $this->tests_failed++;
-       }
-
-       public function addIncompleteTest( PHPUnit_Framework_Test $test, Exception $e, $time ) {
-               $this->logger->write( 'Incomplete.' );
-               $this->tests_failed++;
-       }
-
-       public function addSkippedTest( PHPUnit_Framework_Test $test, Exception $e, $time ) {
-               $this->logger->write( 'Skipped.' );
-               $this->tests_failed++;
-       }
-
-       public function startTest( PHPUnit_Framework_Test $test ) {
-               $this->logger->write(
-                       'Testing ' . $test->getName() . ' ... ',
-                       SeleniumTestSuite::CONTINUE_LINE
-               );
-       }
-
-       public function endTest( PHPUnit_Framework_Test $test, $time ) {
-               if ( !$test->hasFailed() ) {
-                       $this->logger->write( 'OK', SeleniumTestSuite::RESULT_OK );
-                       $this->tests_ok++;
-               }
-       }
-
-       public function startTestSuite( PHPUnit_Framework_TestSuite $suite ) {
-               $this->logger->write( 'Testsuite ' . $suite->getName() . ' started.' );
-               $this->tests_ok = 0;
-               $this->tests_failed = 0;
-       }
-
-       public function endTestSuite( PHPUnit_Framework_TestSuite $suite ) {
-               $this->logger->write( 'Testsuite ' . $suite->getName() . ' ended.' );
-               if ( $this->tests_ok > 0 || $this->tests_failed > 0 ) {
-                       $this->logger->write( ' OK: ' . $this->tests_ok . ' Failed: ' . $this->tests_failed );
-               }
-               $this->tests_ok = 0;
-               $this->tests_failed = 0;
-       }
-
-       public function statusMessage( $message ) {
-               $this->logger->write( $message );
-       }
-}
-
diff --git a/tests/selenium/SeleniumTestSuite.php b/tests/selenium/SeleniumTestSuite.php
deleted file mode 100644 (file)
index 8c21f21..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-
-abstract class SeleniumTestSuite extends PHPUnit_Framework_TestSuite {
-       private $selenium;
-       private $isSetUp = false;
-       private $loginBeforeTests = true;
-       private $triggerClientTestResources = true;
-
-       // Do not add line break after test output
-       const CONTINUE_LINE = 1;
-       const RESULT_OK = 2;
-       const RESULT_ERROR = 3;
-
-       abstract public function addTests();
-
-       public function setUp() {
-               // Hack because because PHPUnit version 3.0.6 which is on prototype does not
-               // run setUp as part of TestSuite::run
-               if ( $this->isSetUp ) {
-                       return;
-               }
-               $this->isSetUp = true;
-               $this->selenium = Selenium::getInstance();
-               $this->selenium->start();
-               if ( $this->triggerClientTestResources ) {
-                       $this->selenium->open( $this->selenium->getUrl() . '/index.php?setupTestSuite=' . $this->getName() );
-                       //wait a little longer for the db operation
-                       $this->selenium->waitForPageToLoad( 6000 );
-               }
-               if ( $this->loginBeforeTests ) {
-                       $this->login();
-               }
-       }
-
-       public function tearDown() {
-               if ( $this->triggerClientTestResources ) {
-                       $this->selenium->open( $this->selenium->getUrl() . '/index.php?clearTestSuite=' . $this->getName() );
-               }
-               $this->selenium->stop();
-       }
-
-       public function login() {
-               $this->selenium->login();
-       }
-
-       public function loadPage( $title, $action ) {
-               $this->selenium->loadPage( $title, $action );
-       }
-
-       protected function setLoginBeforeTests( $loginBeforeTests = true ) {
-               $this->loginBeforeTests = $loginBeforeTests;
-       }
-
-       protected function setTriggerClientTestResources( $triggerClientTestResources = true ) {
-               $this->triggerClientTestResources = $triggerClientTestResources;
-       }
-}
diff --git a/tests/selenium/data/SimpleSeleniumTestDB.sql b/tests/selenium/data/SimpleSeleniumTestDB.sql
deleted file mode 100644 (file)
index 99ae477..0000000
+++ /dev/null
@@ -1,1453 +0,0 @@
--- MySQL dump 10.13  Distrib 5.1.41, for debian-linux-gnu (x86_64)
---
--- Host: localhost    Database: test_wiki
--- ------------------------------------------------------
--- Server version      5.1.41-3ubuntu12.7
-
-/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
-/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
-/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
-/*!40101 SET NAMES utf8 */;
-/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
-/*!40103 SET TIME_ZONE='+00:00' */;
-/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
-/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
-/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
-/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
-
---
--- Table structure for table `mw_archive`
---
-
-DROP TABLE IF EXISTS `mw_archive`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_archive` (
-  `ar_namespace` int(11) NOT NULL DEFAULT '0',
-  `ar_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `ar_text` mediumblob NOT NULL,
-  `ar_comment` tinyblob NOT NULL,
-  `ar_user` int(10) unsigned NOT NULL DEFAULT '0',
-  `ar_user_text` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
-  `ar_timestamp` binary(14) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
-  `ar_minor_edit` tinyint(4) NOT NULL DEFAULT '0',
-  `ar_flags` tinyblob NOT NULL,
-  `ar_rev_id` int(10) unsigned DEFAULT NULL,
-  `ar_text_id` int(10) unsigned DEFAULT NULL,
-  `ar_deleted` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  `ar_len` int(10) unsigned DEFAULT NULL,
-  `ar_page_id` int(10) unsigned DEFAULT NULL,
-  `ar_parent_id` int(10) unsigned DEFAULT NULL,
-  KEY `name_title_timestamp` (`ar_namespace`,`ar_title`,`ar_timestamp`),
-  KEY `usertext_timestamp` (`ar_user_text`,`ar_timestamp`),
-  KEY `ar_revid` (`ar_rev_id`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_archive`
---
-
-LOCK TABLES `mw_archive` WRITE;
-/*!40000 ALTER TABLE `mw_archive` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_archive` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_category`
---
-
-DROP TABLE IF EXISTS `mw_category`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_category` (
-  `cat_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
-  `cat_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
-  `cat_pages` int(11) NOT NULL DEFAULT '0',
-  `cat_subcats` int(11) NOT NULL DEFAULT '0',
-  `cat_files` int(11) NOT NULL DEFAULT '0',
-  `cat_hidden` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  PRIMARY KEY (`cat_id`),
-  UNIQUE KEY `cat_title` (`cat_title`),
-  KEY `cat_pages` (`cat_pages`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_category`
---
-
-LOCK TABLES `mw_category` WRITE;
-/*!40000 ALTER TABLE `mw_category` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_category` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_categorylinks`
---
-
-DROP TABLE IF EXISTS `mw_categorylinks`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_categorylinks` (
-  `cl_from` int(10) unsigned NOT NULL DEFAULT '0',
-  `cl_to` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `cl_sortkey` varbinary(230) NOT NULL DEFAULT '',
-  `cl_sortkey_prefix` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `cl_timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-  `cl_collation` varbinary(32) NOT NULL DEFAULT '',
-  `cl_type` enum('page','subcat','file') NOT NULL DEFAULT 'page',
-  UNIQUE KEY `cl_from` (`cl_from`,`cl_to`),
-  KEY `cl_sortkey` (`cl_to`,`cl_type`,`cl_sortkey`,`cl_from`),
-  KEY `cl_timestamp` (`cl_to`,`cl_timestamp`),
-  KEY `cl_collation` (`cl_collation`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_categorylinks`
---
-
-LOCK TABLES `mw_categorylinks` WRITE;
-/*!40000 ALTER TABLE `mw_categorylinks` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_categorylinks` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_change_tag`
---
-
-DROP TABLE IF EXISTS `mw_change_tag`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_change_tag` (
-  `ct_rc_id` int(11) DEFAULT NULL,
-  `ct_log_id` int(11) DEFAULT NULL,
-  `ct_rev_id` int(11) DEFAULT NULL,
-  `ct_tag` varchar(255) NOT NULL,
-  `ct_params` blob,
-  UNIQUE KEY `change_tag_rc_tag` (`ct_rc_id`,`ct_tag`),
-  UNIQUE KEY `change_tag_log_tag` (`ct_log_id`,`ct_tag`),
-  UNIQUE KEY `change_tag_rev_tag` (`ct_rev_id`,`ct_tag`),
-  KEY `change_tag_tag_id` (`ct_tag`,`ct_rc_id`,`ct_rev_id`,`ct_log_id`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_change_tag`
---
-
-LOCK TABLES `mw_change_tag` WRITE;
-/*!40000 ALTER TABLE `mw_change_tag` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_change_tag` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_external_user`
---
-
-DROP TABLE IF EXISTS `mw_external_user`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_external_user` (
-  `eu_local_id` int(10) unsigned NOT NULL,
-  `eu_external_id` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
-  PRIMARY KEY (`eu_local_id`),
-  UNIQUE KEY `eu_external_id` (`eu_external_id`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_external_user`
---
-
-LOCK TABLES `mw_external_user` WRITE;
-/*!40000 ALTER TABLE `mw_external_user` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_external_user` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_externallinks`
---
-
-DROP TABLE IF EXISTS `mw_externallinks`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_externallinks` (
-  `el_from` int(10) unsigned NOT NULL DEFAULT '0',
-  `el_to` blob NOT NULL,
-  `el_index` blob NOT NULL,
-  KEY `el_from` (`el_from`,`el_to`(40)),
-  KEY `el_to` (`el_to`(60),`el_from`),
-  KEY `el_index` (`el_index`(60))
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_externallinks`
---
-
-LOCK TABLES `mw_externallinks` WRITE;
-/*!40000 ALTER TABLE `mw_externallinks` DISABLE KEYS */;
-INSERT INTO `mw_externallinks` VALUES (1,'http://meta.wikimedia.org/wiki/Help:Contents','http://org.wikimedia.meta./wiki/Help:Contents'),(1,'http://www.mediawiki.org/wiki/Manual:Configuration_settings','http://org.mediawiki.www./wiki/Manual:Configuration_settings'),(1,'http://www.mediawiki.org/wiki/Manual:FAQ','http://org.mediawiki.www./wiki/Manual:FAQ'),(1,'https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce','https://org.wikimedia.lists./mailman/listinfo/mediawiki-announce');
-/*!40000 ALTER TABLE `mw_externallinks` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_filearchive`
---
-
-DROP TABLE IF EXISTS `mw_filearchive`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_filearchive` (
-  `fa_id` int(11) NOT NULL AUTO_INCREMENT,
-  `fa_name` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `fa_archive_name` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT '',
-  `fa_storage_group` varbinary(16) DEFAULT NULL,
-  `fa_storage_key` varbinary(64) DEFAULT '',
-  `fa_deleted_user` int(11) DEFAULT NULL,
-  `fa_deleted_timestamp` binary(14) DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
-  `fa_deleted_reason` text,
-  `fa_size` int(10) unsigned DEFAULT '0',
-  `fa_width` int(11) DEFAULT '0',
-  `fa_height` int(11) DEFAULT '0',
-  `fa_metadata` mediumblob,
-  `fa_bits` int(11) DEFAULT '0',
-  `fa_media_type` enum('UNKNOWN','BITMAP','DRAWING','AUDIO','VIDEO','MULTIMEDIA','OFFICE','TEXT','EXECUTABLE','ARCHIVE') DEFAULT NULL,
-  `fa_major_mime` enum('unknown','application','audio','image','text','video','message','model','multipart') DEFAULT 'unknown',
-  `fa_minor_mime` varbinary(100) DEFAULT 'unknown',
-  `fa_description` tinyblob,
-  `fa_user` int(10) unsigned DEFAULT '0',
-  `fa_user_text` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
-  `fa_timestamp` binary(14) DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
-  `fa_deleted` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  PRIMARY KEY (`fa_id`),
-  KEY `fa_name` (`fa_name`,`fa_timestamp`),
-  KEY `fa_storage_group` (`fa_storage_group`,`fa_storage_key`),
-  KEY `fa_deleted_timestamp` (`fa_deleted_timestamp`),
-  KEY `fa_user_timestamp` (`fa_user_text`,`fa_timestamp`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_filearchive`
---
-
-LOCK TABLES `mw_filearchive` WRITE;
-/*!40000 ALTER TABLE `mw_filearchive` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_filearchive` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_hitcounter`
---
-
-DROP TABLE IF EXISTS `mw_hitcounter`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_hitcounter` (
-  `hc_id` int(10) unsigned NOT NULL
-) ENGINE=MEMORY DEFAULT CHARSET=latin1 MAX_ROWS=25000;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_hitcounter`
---
-
-LOCK TABLES `mw_hitcounter` WRITE;
-/*!40000 ALTER TABLE `mw_hitcounter` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_hitcounter` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_image`
---
-
-DROP TABLE IF EXISTS `mw_image`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_image` (
-  `img_name` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `img_size` int(10) unsigned NOT NULL DEFAULT '0',
-  `img_width` int(11) NOT NULL DEFAULT '0',
-  `img_height` int(11) NOT NULL DEFAULT '0',
-  `img_metadata` mediumblob NOT NULL,
-  `img_bits` int(11) NOT NULL DEFAULT '0',
-  `img_media_type` enum('UNKNOWN','BITMAP','DRAWING','AUDIO','VIDEO','MULTIMEDIA','OFFICE','TEXT','EXECUTABLE','ARCHIVE') DEFAULT NULL,
-  `img_major_mime` enum('unknown','application','audio','image','text','video','message','model','multipart') NOT NULL DEFAULT 'unknown',
-  `img_minor_mime` varbinary(100) NOT NULL DEFAULT 'unknown',
-  `img_description` tinyblob NOT NULL,
-  `img_user` int(10) unsigned NOT NULL DEFAULT '0',
-  `img_user_text` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
-  `img_timestamp` varbinary(14) NOT NULL DEFAULT '',
-  `img_sha1` varbinary(32) NOT NULL DEFAULT '',
-  PRIMARY KEY (`img_name`),
-  KEY `img_usertext_timestamp` (`img_user_text`,`img_timestamp`),
-  KEY `img_size` (`img_size`),
-  KEY `img_timestamp` (`img_timestamp`),
-  KEY `img_sha1` (`img_sha1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_image`
---
-
-LOCK TABLES `mw_image` WRITE;
-/*!40000 ALTER TABLE `mw_image` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_image` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_imagelinks`
---
-
-DROP TABLE IF EXISTS `mw_imagelinks`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_imagelinks` (
-  `il_from` int(10) unsigned NOT NULL DEFAULT '0',
-  `il_to` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  UNIQUE KEY `il_from` (`il_from`,`il_to`),
-  UNIQUE KEY `il_to` (`il_to`,`il_from`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_imagelinks`
---
-
-LOCK TABLES `mw_imagelinks` WRITE;
-/*!40000 ALTER TABLE `mw_imagelinks` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_imagelinks` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_interwiki`
---
-
-DROP TABLE IF EXISTS `mw_interwiki`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_interwiki` (
-  `iw_prefix` varchar(32) NOT NULL,
-  `iw_url` blob NOT NULL,
-  `iw_api` blob NOT NULL,
-  `iw_wikiid` varchar(64) NOT NULL,
-  `iw_local` tinyint(1) NOT NULL,
-  `iw_trans` tinyint(4) NOT NULL DEFAULT '0',
-  UNIQUE KEY `iw_prefix` (`iw_prefix`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_interwiki`
---
-
-LOCK TABLES `mw_interwiki` WRITE;
-/*!40000 ALTER TABLE `mw_interwiki` DISABLE KEYS */;
-INSERT INTO `mw_interwiki` VALUES ('acronym','http://www.acronymfinder.com/af-query.asp?String=exact&Acronym=$1','','',0,0),('advogato','http://www.advogato.org/$1','','',0,0),('annotationwiki','http://www.seedwiki.com/page.cfm?wikiid=368&doc=$1','','',0,0),('arxiv','http://www.arxiv.org/abs/$1','','',0,0),('c2find','http://c2.com/cgi/wiki?FindPage&value=$1','','',0,0),('cache','http://www.google.com/search?q=cache:$1','','',0,0),('commons','http://commons.wikimedia.org/wiki/$1','','',0,0),('corpknowpedia','http://corpknowpedia.org/wiki/index.php/$1','','',0,0),('dictionary','http://www.dict.org/bin/Dict?Database=*&Form=Dict1&Strategy=*&Query=$1','','',0,0),('disinfopedia','http://www.disinfopedia.org/wiki.phtml?title=$1','','',0,0),('docbook','http://wiki.docbook.org/topic/$1','','',0,0),('doi','http://dx.doi.org/$1','','',0,0),('drumcorpswiki','http://www.drumcorpswiki.com/index.php/$1','','',0,0),('dwjwiki','http://www.suberic.net/cgi-bin/dwj/wiki.cgi?$1','','',0,0),('elibre','http://enciclopedia.us.es/index.php/$1','','',0,0),('emacswiki','http://www.emacswiki.org/cgi-bin/wiki.pl?$1','','',0,0),('foldoc','http://foldoc.org/?$1','','',0,0),('foxwiki','http://fox.wikis.com/wc.dll?Wiki~$1','','',0,0),('freebsdman','http://www.FreeBSD.org/cgi/man.cgi?apropos=1&query=$1','','',0,0),('gej','http://www.esperanto.de/cgi-bin/aktivikio/wiki.pl?$1','','',0,0),('gentoo-wiki','http://gentoo-wiki.com/$1','','',0,0),('google','http://www.google.com/search?q=$1','','',0,0),('googlegroups','http://groups.google.com/groups?q=$1','','',0,0),('hammondwiki','http://www.dairiki.org/HammondWiki/$1','','',0,0),('hewikisource','http://he.wikisource.org/wiki/$1','','',1,0),('hrwiki','http://www.hrwiki.org/index.php/$1','','',0,0),('imdb','http://us.imdb.com/Title?$1','','',0,0),('jargonfile','http://sunir.org/apps/meta.pl?wiki=JargonFile&redirect=$1','','',0,0),('jspwiki','http://www.jspwiki.org/wiki/$1','','',0,0),('keiki','http://kei.ki/en/$1','','',0,0),('kmwiki','http://kmwiki.wikispaces.com/$1','','',0,0),('linuxwiki','http://linuxwiki.de/$1','','',0,0),('lojban','http://www.lojban.org/tiki/tiki-index.php?page=$1','','',0,0),('lqwiki','http://wiki.linuxquestions.org/wiki/$1','','',0,0),('lugkr','http://lug-kr.sourceforge.net/cgi-bin/lugwiki.pl?$1','','',0,0),('mathsongswiki','http://SeedWiki.com/page.cfm?wikiid=237&doc=$1','','',0,0),('meatball','http://www.usemod.com/cgi-bin/mb.pl?$1','','',0,0),('mediawikiwiki','http://www.mediawiki.org/wiki/$1','','',0,0),('mediazilla','https://bugzilla.wikimedia.org/$1','','',1,0),('memoryalpha','http://www.memory-alpha.org/en/index.php/$1','','',0,0),('metawiki','http://sunir.org/apps/meta.pl?$1','','',0,0),('metawikimedia','http://meta.wikimedia.org/wiki/$1','','',0,0),('moinmoin','http://purl.net/wiki/moin/$1','','',0,0),('mozillawiki','http://wiki.mozilla.org/index.php/$1','','',0,0),('mw','http://www.mediawiki.org/wiki/$1','','',0,0),('oeis','http://www.research.att.com/cgi-bin/access.cgi/as/njas/sequences/eisA.cgi?Anum=$1','','',0,0),('openfacts','http://openfacts.berlios.de/index.phtml?title=$1','','',0,0),('openwiki','http://openwiki.com/?$1','','',0,0),('pmeg','http://www.bertilow.com/pmeg/$1.php','','',0,0),('ppr','http://c2.com/cgi/wiki?$1','','',0,0),('pythoninfo','http://wiki.python.org/moin/$1','','',0,0),('rfc','http://www.rfc-editor.org/rfc/rfc$1.txt','','',0,0),('s23wiki','http://is-root.de/wiki/index.php/$1','','',0,0),('seattlewiki','http://seattle.wikia.com/wiki/$1','','',0,0),('seattlewireless','http://seattlewireless.net/?$1','','',0,0),('senseislibrary','http://senseis.xmp.net/?$1','','',0,0),('sourceforge','http://sourceforge.net/$1','','',0,0),('squeak','http://wiki.squeak.org/squeak/$1','','',0,0),('susning','http://www.susning.nu/$1','','',0,0),('svgwiki','http://wiki.svg.org/$1','','',0,0),('tavi','http://tavi.sourceforge.net/$1','','',0,0),('tejo','http://www.tejo.org/vikio/$1','','',0,0),('theopedia','http://www.theopedia.com/$1','','',0,0),('tmbw','http://www.tmbw.net/wiki/$1','','',0,0),('tmnet','http://www.technomanifestos.net/?$1','','',0,0),('tmwiki','http://www.EasyTopicMaps.com/?page=$1','','',0,0),('twiki','http://twiki.org/cgi-bin/view/$1','','',0,0),('uea','http://www.tejo.org/uea/$1','','',0,0),('unreal','http://wiki.beyondunreal.com/wiki/$1','','',0,0),('usemod','http://www.usemod.com/cgi-bin/wiki.pl?$1','','',0,0),('vinismo','http://vinismo.com/en/$1','','',0,0),('webseitzwiki','http://webseitz.fluxent.com/wiki/$1','','',0,0),('why','http://clublet.com/c/c/why?$1','','',0,0),('wiki','http://c2.com/cgi/wiki?$1','','',0,0),('wikia','http://www.wikia.com/wiki/$1','','',0,0),('wikibooks','http://en.wikibooks.org/wiki/$1','','',1,0),('wikicities','http://www.wikia.com/wiki/$1','','',0,0),('wikif1','http://www.wikif1.org/$1','','',0,0),('wikihow','http://www.wikihow.com/$1','','',0,0),('wikimedia','http://wikimediafoundation.org/wiki/$1','','',0,0),('wikinews','http://en.wikinews.org/wiki/$1','','',1,0),('wikinfo','http://www.wikinfo.org/index.php/$1','','',0,0),('wikipedia','http://en.wikipedia.org/wiki/$1','','',1,0),('wikiquote','http://en.wikiquote.org/wiki/$1','','',1,0),('wikisource','http://wikisource.org/wiki/$1','','',1,0),('wikispecies','http://species.wikimedia.org/wiki/$1','','',1,0),('wikitravel','http://wikitravel.org/en/$1','','',0,0),('wikiversity','http://en.wikiversity.org/wiki/$1','','',1,0),('wikt','http://en.wiktionary.org/wiki/$1','','',1,0),('wiktionary','http://en.wiktionary.org/wiki/$1','','',1,0),('wlug','http://www.wlug.org.nz/$1','','',0,0),('zwiki','http://zwiki.org/$1','','',0,0),('zzz wiki','http://wiki.zzz.ee/index.php/$1','','',0,0);
-/*!40000 ALTER TABLE `mw_interwiki` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_ipblocks`
---
-
-DROP TABLE IF EXISTS `mw_ipblocks`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_ipblocks` (
-  `ipb_id` int(11) NOT NULL AUTO_INCREMENT,
-  `ipb_address` tinyblob NOT NULL,
-  `ipb_user` int(10) unsigned NOT NULL DEFAULT '0',
-  `ipb_by` int(10) unsigned NOT NULL DEFAULT '0',
-  `ipb_by_text` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `ipb_reason` tinyblob NOT NULL,
-  `ipb_timestamp` binary(14) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
-  `ipb_auto` tinyint(1) NOT NULL DEFAULT '0',
-  `ipb_anon_only` tinyint(1) NOT NULL DEFAULT '0',
-  `ipb_create_account` tinyint(1) NOT NULL DEFAULT '1',
-  `ipb_enable_autoblock` tinyint(1) NOT NULL DEFAULT '1',
-  `ipb_expiry` varbinary(14) NOT NULL DEFAULT '',
-  `ipb_range_start` tinyblob NOT NULL,
-  `ipb_range_end` tinyblob NOT NULL,
-  `ipb_deleted` tinyint(1) NOT NULL DEFAULT '0',
-  `ipb_block_email` tinyint(1) NOT NULL DEFAULT '0',
-  `ipb_allow_usertalk` tinyint(1) NOT NULL DEFAULT '0',
-  PRIMARY KEY (`ipb_id`),
-  UNIQUE KEY `ipb_address` (`ipb_address`(255),`ipb_user`,`ipb_auto`,`ipb_anon_only`),
-  KEY `ipb_user` (`ipb_user`),
-  KEY `ipb_range` (`ipb_range_start`(8),`ipb_range_end`(8)),
-  KEY `ipb_timestamp` (`ipb_timestamp`),
-  KEY `ipb_expiry` (`ipb_expiry`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_ipblocks`
---
-
-LOCK TABLES `mw_ipblocks` WRITE;
-/*!40000 ALTER TABLE `mw_ipblocks` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_ipblocks` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_iwlinks`
---
-
-DROP TABLE IF EXISTS `mw_iwlinks`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_iwlinks` (
-  `iwl_from` int(10) unsigned NOT NULL DEFAULT '0',
-  `iwl_prefix` varbinary(20) NOT NULL DEFAULT '',
-  `iwl_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  UNIQUE KEY `iwl_from` (`iwl_from`,`iwl_prefix`,`iwl_title`),
-  UNIQUE KEY `iwl_prefix_title_from` (`iwl_prefix`,`iwl_title`,`iwl_from`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_iwlinks`
---
-
-LOCK TABLES `mw_iwlinks` WRITE;
-/*!40000 ALTER TABLE `mw_iwlinks` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_iwlinks` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_job`
---
-
-DROP TABLE IF EXISTS `mw_job`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_job` (
-  `job_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
-  `job_cmd` varbinary(60) NOT NULL DEFAULT '',
-  `job_namespace` int(11) NOT NULL,
-  `job_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
-  `job_params` blob NOT NULL,
-  PRIMARY KEY (`job_id`),
-  KEY `job_cmd` (`job_cmd`,`job_namespace`,`job_title`,`job_params`(128))
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_job`
---
-
-LOCK TABLES `mw_job` WRITE;
-/*!40000 ALTER TABLE `mw_job` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_job` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_l10n_cache`
---
-
-DROP TABLE IF EXISTS `mw_l10n_cache`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_l10n_cache` (
-  `lc_lang` varbinary(32) NOT NULL,
-  `lc_key` varchar(255) NOT NULL,
-  `lc_value` mediumblob NOT NULL,
-  KEY `lc_lang_key` (`lc_lang`,`lc_key`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_l10n_cache`
---
-
-LOCK TABLES `mw_l10n_cache` WRITE;
-/*!40000 ALTER TABLE `mw_l10n_cache` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_l10n_cache` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_langlinks`
---
-
-DROP TABLE IF EXISTS `mw_langlinks`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_langlinks` (
-  `ll_from` int(10) unsigned NOT NULL DEFAULT '0',
-  `ll_lang` varbinary(20) NOT NULL DEFAULT '',
-  `ll_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  UNIQUE KEY `ll_from` (`ll_from`,`ll_lang`),
-  KEY `ll_lang` (`ll_lang`,`ll_title`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_langlinks`
---
-
-LOCK TABLES `mw_langlinks` WRITE;
-/*!40000 ALTER TABLE `mw_langlinks` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_langlinks` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_log_search`
---
-
-DROP TABLE IF EXISTS `mw_log_search`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_log_search` (
-  `ls_field` varbinary(32) NOT NULL,
-  `ls_value` varchar(255) NOT NULL,
-  `ls_log_id` int(10) unsigned NOT NULL DEFAULT '0',
-  UNIQUE KEY `ls_field_val` (`ls_field`,`ls_value`,`ls_log_id`),
-  KEY `ls_log_id` (`ls_log_id`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_log_search`
---
-
-LOCK TABLES `mw_log_search` WRITE;
-/*!40000 ALTER TABLE `mw_log_search` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_log_search` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_logging`
---
-
-DROP TABLE IF EXISTS `mw_logging`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_logging` (
-  `log_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
-  `log_type` varbinary(32) NOT NULL DEFAULT '',
-  `log_action` varbinary(32) NOT NULL DEFAULT '',
-  `log_timestamp` binary(14) NOT NULL DEFAULT '19700101000000',
-  `log_user` int(10) unsigned NOT NULL DEFAULT '0',
-  `log_user_text` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `log_namespace` int(11) NOT NULL DEFAULT '0',
-  `log_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `log_page` int(10) unsigned DEFAULT NULL,
-  `log_comment` varchar(255) NOT NULL DEFAULT '',
-  `log_params` blob NOT NULL,
-  `log_deleted` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  PRIMARY KEY (`log_id`),
-  KEY `type_time` (`log_type`,`log_timestamp`),
-  KEY `user_time` (`log_user`,`log_timestamp`),
-  KEY `page_time` (`log_namespace`,`log_title`,`log_timestamp`),
-  KEY `times` (`log_timestamp`),
-  KEY `log_user_type_time` (`log_user`,`log_type`,`log_timestamp`),
-  KEY `log_page_id_time` (`log_page`,`log_timestamp`)
-) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_logging`
---
-
-LOCK TABLES `mw_logging` WRITE;
-/*!40000 ALTER TABLE `mw_logging` DISABLE KEYS */;
-INSERT INTO `mw_logging` VALUES (1,'patrol','patrol','20110110173131',1,'WikiSysop',0,'TestResources',2,'','2\n0\n1',0);
-/*!40000 ALTER TABLE `mw_logging` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_math`
---
-
-DROP TABLE IF EXISTS `mw_math`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_math` (
-  `math_inputhash` varbinary(16) NOT NULL,
-  `math_outputhash` varbinary(16) NOT NULL,
-  `math_html_conservativeness` tinyint(4) NOT NULL,
-  `math_html` text,
-  `math_mathml` text,
-  UNIQUE KEY `math_inputhash` (`math_inputhash`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_math`
---
-
-LOCK TABLES `mw_math` WRITE;
-/*!40000 ALTER TABLE `mw_math` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_math` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_module_deps`
---
-
-DROP TABLE IF EXISTS `mw_module_deps`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_module_deps` (
-  `md_module` varbinary(255) NOT NULL,
-  `md_skin` varbinary(32) NOT NULL,
-  `md_deps` mediumblob NOT NULL,
-  UNIQUE KEY `md_module_skin` (`md_module`,`md_skin`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_module_deps`
---
-
-LOCK TABLES `mw_module_deps` WRITE;
-/*!40000 ALTER TABLE `mw_module_deps` DISABLE KEYS */;
-INSERT INTO `mw_module_deps` VALUES ('ext.vector.collapsibleNav','vector','[\"\\/home\\/pdhanda\\/deployment\\/extensions\\/Vector\\/modules\\/.\\/images\\/portal-break.png\",\"\\/home\\/pdhanda\\/deployment\\/extensions\\/Vector\\/modules\\/.\\/images\\/open.png\",\"\\/home\\/pdhanda\\/deployment\\/extensions\\/Vector\\/modules\\/.\\/images\\/closed-ltr.png\"]'),('jquery.wikiEditor','vector','[\"\\/home\\/pdhanda\\/deployment\\/extensions\\/WikiEditor\\/modules\\/.\\/images\\/toolbar\\/loading.gif\"]'),('jquery.wikiEditor.toolbar','vector','{\"0\":\"\\/home\\/pdhanda\\/deployment\\/extensions\\/WikiEditor\\/modules\\/.\\/images\\/toolbar\\/base.png\",\"1\":\"\\/home\\/pdhanda\\/deployment\\/extensions\\/WikiEditor\\/modules\\/.\\/images\\/toolbar\\/loading.gif\",\"2\":\"\\/home\\/pdhanda\\/deployment\\/extensions\\/WikiEditor\\/modules\\/.\\/images\\/toolbar\\/button-sprite.png\",\"3\":\"\\/home\\/pdhanda\\/deployment\\/extensions\\/WikiEditor\\/modules\\/.\\/images\\/toolbar\\/arrow-right.png\",\"4\":\"\\/home\\/pdhanda\\/deployment\\/extensions\\/WikiEditor\\/modules\\/.\\/images\\/toolbar\\/arrow-left.png\",\"5\":\"\\/home\\/pdhanda\\/deployment\\/extensions\\/WikiEditor\\/modules\\/.\\/images\\/toolbar\\/arrow-down.png\",\"7\":\"\\/home\\/pdhanda\\/deployment\\/extensions\\/WikiEditor\\/modules\\/.\\/images\\/toolbar\\/loading-small.gif\"}'),('mediawiki.legacy.shared','vector','[\"\\/home\\/pdhanda\\/deployment\\/skins\\/common\\/images\\/feed-icon.png\",\"\\/home\\/pdhanda\\/deployment\\/skins\\/common\\/images\\/remove.png\",\"\\/home\\/pdhanda\\/deployment\\/skins\\/common\\/images\\/add.png\",\"\\/home\\/pdhanda\\/deployment\\/skins\\/common\\/images\\/ajax-loader.gif\",\"\\/home\\/pdhanda\\/deployment\\/skins\\/common\\/images\\/spinner.gif\",\"\\/home\\/pdhanda\\/deployment\\/skins\\/common\\/images\\/help-question.gif\",\"\\/home\\/pdhanda\\/deployment\\/skins\\/common\\/images\\/help-question-hover.gif\"]'),('skins.vector','vector','{\"0\":\"\\/home\\/pdhanda\\/deployment\\/skins\\/vector\\/images\\/page-base.png\",\"1\":\"\\/home\\/pdhanda\\/deployment\\/skins\\/vector\\/images\\/border.png\",\"2\":\"\\/home\\/pdhanda\\/deployment\\/skins\\/vector\\/images\\/page-fade.png\",\"4\":\"\\/home\\/pdhanda\\/deployment\\/skins\\/vector\\/images\\/tab-break.png\",\"5\":\"\\/home\\/pdhanda\\/deployment\\/skins\\/vector\\/images\\/tab-normal-fade.png\",\"6\":\"\\/home\\/pdhanda\\/deployment\\/skins\\/vector\\/images\\/tab-current-fade.png\",\"8\":\"\\/home\\/pdhanda\\/deployment\\/skins\\/vector\\/images\\/arrow-down-icon.png\",\"11\":\"\\/home\\/pdhanda\\/deployment\\/skins\\/vector\\/images\\/search-fade.png\",\"12\":\"\\/home\\/pdhanda\\/deployment\\/skins\\/vector\\/images\\/portal-break.png\",\"14\":\"\\/home\\/pdhanda\\/deployment\\/skins\\/vector\\/images\\/preferences-break.png\",\"16\":\"\\/home\\/pdhanda\\/deployment\\/skins\\/vector\\/images\\/preferences-fade.png\",\"17\":\"\\/home\\/pdhanda\\/deployment\\/skins\\/vector\\/images\\/preferences-base.png\",\"18\":\"\\/home\\/pdhanda\\/deployment\\/skins\\/vector\\/images\\/bullet-icon.png\",\"19\":\"\\/home\\/pdhanda\\/deployment\\/skins\\/vector\\/images\\/external-link-ltr-icon.png\",\"20\":\"\\/home\\/pdhanda\\/deployment\\/skins\\/vector\\/images\\/lock-icon.png\",\"21\":\"\\/home\\/pdhanda\\/deployment\\/skins\\/vector\\/images\\/mail-icon.png\",\"22\":\"\\/home\\/pdhanda\\/deployment\\/skins\\/vector\\/images\\/news-icon.png\",\"23\":\"\\/home\\/pdhanda\\/deployment\\/skins\\/vector\\/images\\/file-icon.png\",\"24\":\"\\/home\\/pdhanda\\/deployment\\/skins\\/vector\\/images\\/talk-icon.png\",\"25\":\"\\/home\\/pdhanda\\/deployment\\/skins\\/vector\\/images\\/audio-icon.png\",\"26\":\"\\/home\\/pdhanda\\/deployment\\/skins\\/vector\\/images\\/video-icon.png\",\"27\":\"\\/home\\/pdhanda\\/deployment\\/skins\\/vector\\/images\\/document-icon.png\",\"28\":\"\\/home\\/pdhanda\\/deployment\\/skins\\/vector\\/images\\/user-icon.png\",\"29\":\"\\/home\\/pdhanda\\/deployment\\/skins\\/vector\\/images\\/watch-icons.png\",\"30\":\"\\/home\\/pdhanda\\/deployment\\/skins\\/vector\\/images\\/watch-icon-loading.gif\"}');
-/*!40000 ALTER TABLE `mw_module_deps` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_msg_resource`
---
-
-DROP TABLE IF EXISTS `mw_msg_resource`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_msg_resource` (
-  `mr_resource` varbinary(255) NOT NULL,
-  `mr_lang` varbinary(32) NOT NULL,
-  `mr_blob` mediumblob NOT NULL,
-  `mr_timestamp` binary(14) NOT NULL,
-  UNIQUE KEY `mr_resource_lang` (`mr_resource`,`mr_lang`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_msg_resource`
---
-
-LOCK TABLES `mw_msg_resource` WRITE;
-/*!40000 ALTER TABLE `mw_msg_resource` DISABLE KEYS */;
-INSERT INTO `mw_msg_resource` VALUES ('ext.vector.collapsibleNav','en','{\"vector-collapsiblenav-more\":\"More languages\"}','20110108005000'),('ext.vector.collapsibleTabs','en','{}','20110108005000'),('ext.vector.simpleSearch','en','{\"vector-simplesearch-search\":\"Search\",\"vector-simplesearch-containing\":\"containing...\"}','20110108005000'),('ext.wikiEditor','en','{}','20110110172914'),('ext.wikiEditor.toolbar','en','{\"wikieditor-toolbar-loading\":\"Loading...\",\"wikieditor-toolbar-tool-bold\":\"Bold\",\"wikieditor-toolbar-tool-bold-example\":\"Bold text\",\"wikieditor-toolbar-tool-italic\":\"Italic\",\"wikieditor-toolbar-tool-italic-example\":\"Italic text\",\"wikieditor-toolbar-tool-ilink\":\"Internal link\",\"wikieditor-toolbar-tool-ilink-example\":\"Link title\",\"wikieditor-toolbar-tool-xlink\":\"External link (remember http:\\/\\/ prefix)\",\"wikieditor-toolbar-tool-xlink-example\":\"http:\\/\\/www.example.com link title\",\"wikieditor-toolbar-tool-link\":\"Link\",\"wikieditor-toolbar-tool-link-title\":\"Insert link\",\"wikieditor-toolbar-tool-link-int\":\"To a wiki page\",\"wikieditor-toolbar-tool-link-int-target\":\"Target page or URL:\",\"wikieditor-toolbar-tool-link-int-target-tooltip\":\"Page title or URL\",\"wikieditor-toolbar-tool-link-int-text\":\"Text to display:\",\"wikieditor-toolbar-tool-link-int-text-tooltip\":\"Text to be displayed\",\"wikieditor-toolbar-tool-link-ext\":\"To an external web page\",\"wikieditor-toolbar-tool-link-ext-target\":\"Link URL:\",\"wikieditor-toolbar-tool-link-ext-text\":\"Link text:\",\"wikieditor-toolbar-tool-link-insert\":\"Insert link\",\"wikieditor-toolbar-tool-link-cancel\":\"Cancel\",\"wikieditor-toolbar-tool-link-int-target-status-exists\":\"Page exists\",\"wikieditor-toolbar-tool-link-int-target-status-notexists\":\"Page does not exist\",\"wikieditor-toolbar-tool-link-int-target-status-invalid\":\"Invalid title\",\"wikieditor-toolbar-tool-link-int-target-status-external\":\"External link\",\"wikieditor-toolbar-tool-link-int-target-status-loading\":\"Checking page existence...\",\"wikieditor-toolbar-tool-link-int-invalid\":\"The title you specified is invalid.\",\"wikieditor-toolbar-tool-link-lookslikeinternal\":\"The URL you specified looks like it was intended as a link to another wiki page.\\nDo you want to make it an internal link?\",\"wikieditor-toolbar-tool-link-lookslikeinternal-int\":\"Internal link\",\"wikieditor-toolbar-tool-link-lookslikeinternal-ext\":\"External link\",\"wikieditor-toolbar-tool-link-empty\":\"You did not enter anything to link to.\",\"wikieditor-toolbar-tool-file\":\"Embedded file\",\"wikieditor-toolbar-tool-file-pre\":\"$1{{ns:file}}:\",\"wikieditor-toolbar-tool-file-example\":\"Example.jpg\",\"wikieditor-toolbar-tool-reference\":\"Reference\",\"wikieditor-toolbar-tool-reference-title\":\"Insert reference\",\"wikieditor-toolbar-tool-reference-cancel\":\"Cancel\",\"wikieditor-toolbar-tool-reference-text\":\"Reference text\",\"wikieditor-toolbar-tool-reference-insert\":\"Insert\",\"wikieditor-toolbar-tool-reference-example\":\"Insert footnote text here\",\"wikieditor-toolbar-tool-signature\":\"Signature and timestamp\",\"wikieditor-toolbar-section-advanced\":\"Advanced\",\"wikieditor-toolbar-tool-heading\":\"Heading\",\"wikieditor-toolbar-tool-heading-1\":\"Level 1\",\"wikieditor-toolbar-tool-heading-2\":\"Level 2\",\"wikieditor-toolbar-tool-heading-3\":\"Level 3\",\"wikieditor-toolbar-tool-heading-4\":\"Level 4\",\"wikieditor-toolbar-tool-heading-5\":\"Level 5\",\"wikieditor-toolbar-tool-heading-example\":\"Heading text\",\"wikieditor-toolbar-group-format\":\"Format\",\"wikieditor-toolbar-tool-ulist\":\"Bulleted list\",\"wikieditor-toolbar-tool-ulist-example\":\"Bulleted list item\",\"wikieditor-toolbar-tool-olist\":\"Numbered list\",\"wikieditor-toolbar-tool-olist-example\":\"Numbered list item\",\"wikieditor-toolbar-tool-indent\":\"Indentation\",\"wikieditor-toolbar-tool-indent-example\":\"Indented line\",\"wikieditor-toolbar-tool-nowiki\":\"No wiki formatting\",\"wikieditor-toolbar-tool-nowiki-example\":\"Insert non-formatted text here\",\"wikieditor-toolbar-tool-redirect\":\"Redirect\",\"wikieditor-toolbar-tool-redirect-example\":\"Target page name\",\"wikieditor-toolbar-tool-big\":\"Big\",\"wikieditor-toolbar-tool-big-example\":\"Big text\",\"wikieditor-toolbar-tool-small\":\"Small\",\"wikieditor-toolbar-tool-small-example\":\"Small text\",\"wikieditor-toolbar-tool-superscript\":\"Superscript\",\"wikieditor-toolbar-tool-superscript-example\":\"Superscript text\",\"wikieditor-toolbar-tool-subscript\":\"Subscript\",\"wikieditor-toolbar-tool-subscript-example\":\"Subscript text\",\"wikieditor-toolbar-group-insert\":\"Insert\",\"wikieditor-toolbar-tool-gallery\":\"Picture gallery\",\"wikieditor-toolbar-tool-gallery-example\":\"{{ns:file}}:Example.jpg|Caption1\\n{{ns:file}}:Example.jpg|Caption2\",\"wikieditor-toolbar-tool-newline\":\"New line\",\"wikieditor-toolbar-tool-table\":\"Table\",\"wikieditor-toolbar-tool-table-example-old\":\"-\\n! header 1\\n! header 2\\n! header 3\\n|-\\n| row 1, cell 1\\n| row 1, cell 2\\n| row 1, cell 3\\n|-\\n| row 2, cell 1\\n| row 2, cell 2\\n| row 2, cell 3\",\"wikieditor-toolbar-tool-table-example-cell-text\":\"Cell text\",\"wikieditor-toolbar-tool-table-example\":\"Example\",\"wikieditor-toolbar-tool-table-example-header\":\"Header text\",\"wikieditor-toolbar-tool-table-title\":\"Insert table\",\"wikieditor-toolbar-tool-table-dimensions-rows\":\"Rows\",\"wikieditor-toolbar-tool-table-dimensions-columns\":\"Columns\",\"wikieditor-toolbar-tool-table-dimensions-header\":\"Add header row\",\"wikieditor-toolbar-tool-table-wikitable\":\"Style with borders\",\"wikieditor-toolbar-tool-table-sortable\":\"Make table sortable\",\"wikieditor-toolbar-tool-table-insert\":\"Insert\",\"wikieditor-toolbar-tool-table-cancel\":\"Cancel\",\"wikieditor-toolbar-tool-table-example-text\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut nec purus diam. Sed aliquam imperdiet nunc quis lacinia. Donec rutrum consectetur placerat. Sed volutpat neque non purus faucibus id ultricies enim euismod.\",\"wikieditor-toolbar-tool-table-toomany\":\"Inserting a table with more than $1 cells is not possible with this dialog.\",\"wikieditor-toolbar-tool-table-invalidnumber\":\"You have not entered a valid number of rows or columns.\",\"wikieditor-toolbar-tool-table-zero\":\"You cannot insert a table with zero rows or columns.\",\"wikieditor-toolbar-tool-replace\":\"Search and replace\",\"wikieditor-toolbar-tool-replace-title\":\"Search and replace\",\"wikieditor-toolbar-tool-replace-search\":\"Search for:\",\"wikieditor-toolbar-tool-replace-replace\":\"Replace with:\",\"wikieditor-toolbar-tool-replace-case\":\"Match case\",\"wikieditor-toolbar-tool-replace-regex\":\"Treat search string as a regular expression\",\"wikieditor-toolbar-tool-replace-button-findnext\":\"Find next\",\"wikieditor-toolbar-tool-replace-button-replacenext\":\"Replace next\",\"wikieditor-toolbar-tool-replace-button-replaceall\":\"Replace all\",\"wikieditor-toolbar-tool-replace-close\":\"Close\",\"wikieditor-toolbar-tool-replace-nomatch\":\"Your search did not match anything.\",\"wikieditor-toolbar-tool-replace-success\":\"$1 replacement(s) made.\",\"wikieditor-toolbar-tool-replace-emptysearch\":\"You did not enter anything to search for.\",\"wikieditor-toolbar-tool-replace-invalidregex\":\"The regular expression you entered is invalid: $1\",\"wikieditor-toolbar-section-characters\":\"Special characters\",\"wikieditor-toolbar-characters-page-latin\":\"Latin\",\"wikieditor-toolbar-characters-page-latinextended\":\"Latin extended\",\"wikieditor-toolbar-characters-page-ipa\":\"IPA\",\"wikieditor-toolbar-characters-page-symbols\":\"Symbols\",\"wikieditor-toolbar-characters-page-greek\":\"Greek\",\"wikieditor-toolbar-characters-page-cyrillic\":\"Cyrillic\",\"wikieditor-toolbar-characters-page-arabic\":\"Arabic\",\"wikieditor-toolbar-characters-page-persian\":\"Persian\",\"wikieditor-toolbar-characters-page-hebrew\":\"Hebrew\",\"wikieditor-toolbar-characters-page-bangla\":\"Bangla\",\"wikieditor-toolbar-characters-page-telugu\":\"Telugu\",\"wikieditor-toolbar-characters-page-sinhala\":\"Sinhala\",\"wikieditor-toolbar-characters-page-gujarati\":\"Gujarati\",\"wikieditor-toolbar-characters-page-thai\":\"Thai\",\"wikieditor-toolbar-characters-page-lao\":\"Lao\",\"wikieditor-toolbar-characters-page-khmer\":\"Khmer\",\"wikieditor-toolbar-section-help\":\"Help\",\"wikieditor-toolbar-help-heading-description\":\"Description\",\"wikieditor-toolbar-help-heading-syntax\":\"What you type\",\"wikieditor-toolbar-help-heading-result\":\"What you get\",\"wikieditor-toolbar-help-page-format\":\"Formatting\",\"wikieditor-toolbar-help-page-link\":\"Links\",\"wikieditor-toolbar-help-page-heading\":\"Headings\",\"wikieditor-toolbar-help-page-list\":\"Lists\",\"wikieditor-toolbar-help-page-file\":\"Files\",\"wikieditor-toolbar-help-page-reference\":\"References\",\"wikieditor-toolbar-help-page-discussion\":\"Discussion\",\"wikieditor-toolbar-help-content-bold-description\":\"Bold\",\"wikieditor-toolbar-help-content-bold-syntax\":\"\'\'\'Bold text\'\'\'\",\"wikieditor-toolbar-help-content-bold-result\":\"<strong>Bold text<\\/strong>\",\"wikieditor-toolbar-help-content-italic-description\":\"Italic\",\"wikieditor-toolbar-help-content-italic-syntax\":\"\'\'Italic text\'\'\",\"wikieditor-toolbar-help-content-italic-result\":\"<em>Italic text<\\/em>\",\"wikieditor-toolbar-help-content-bolditalic-description\":\"Bold &amp; italic\",\"wikieditor-toolbar-help-content-bolditalic-syntax\":\"\'\'\'\'\'Bold &amp; italic text\'\'\'\'\'\",\"wikieditor-toolbar-help-content-bolditalic-result\":\"<strong><em>Bold &amp; italic text<\\/em><\\/strong>\",\"wikieditor-toolbar-help-content-ilink-description\":\"Internal link\",\"wikieditor-toolbar-help-content-ilink-syntax\":\"[[Page title|Link label]]<br \\/>[[Page title]]\",\"wikieditor-toolbar-help-content-ilink-result\":\"<a href=\'#\'>Link label<\\/a><br \\/><a href=\'#\'>Page title<\\/a>\",\"wikieditor-toolbar-help-content-xlink-description\":\"External link\",\"wikieditor-toolbar-help-content-xlink-syntax\":\"[http:\\/\\/www.example.org Link label]<br \\/>[http:\\/\\/www.example.org]<br \\/>http:\\/\\/www.example.org\",\"wikieditor-toolbar-help-content-xlink-result\":\"<a href=\'#\' class=\'external\'>Link label<\\/a><br \\/><a href=\'#\' class=\'external autonumber\'>[1]<\\/a><br \\/><a href=\'#\' class=\'external\'>http:\\/\\/www.example.org<\\/a>\",\"wikieditor-toolbar-help-content-heading1-description\":\"&lt;wikieditor-toolbar-help-content-heading1-description&gt;\",\"wikieditor-toolbar-help-content-heading1-syntax\":\"&lt;wikieditor-toolbar-help-content-heading1-syntax&gt;\",\"wikieditor-toolbar-help-content-heading1-result\":\"&lt;wikieditor-toolbar-help-content-heading1-result&gt;\",\"wikieditor-toolbar-help-content-heading2-description\":\"2nd level heading\",\"wikieditor-toolbar-help-content-heading2-syntax\":\"== Heading text ==\",\"wikieditor-toolbar-help-content-heading2-result\":\"<h2>Heading text<\\/h2>\",\"wikieditor-toolbar-help-content-heading3-description\":\"3rd level heading\",\"wikieditor-toolbar-help-content-heading3-syntax\":\"=== Heading text ===\",\"wikieditor-toolbar-help-content-heading3-result\":\"<h3>Heading text<\\/h3>\",\"wikieditor-toolbar-help-content-heading4-description\":\"4th level heading\",\"wikieditor-toolbar-help-content-heading4-syntax\":\"==== Heading text ====\",\"wikieditor-toolbar-help-content-heading4-result\":\"<h4>Heading text<\\/h4>\",\"wikieditor-toolbar-help-content-heading5-description\":\"5th level heading\",\"wikieditor-toolbar-help-content-heading5-syntax\":\"===== Heading text =====\",\"wikieditor-toolbar-help-content-heading5-result\":\"<h5>Heading text<\\/h5>\",\"wikieditor-toolbar-help-content-ulist-description\":\"Bulleted list\",\"wikieditor-toolbar-help-content-ulist-syntax\":\"* List item<br \\/>* List item\",\"wikieditor-toolbar-help-content-ulist-result\":\"<ul><li>List item<\\/li><li>List item<\\/li><\\/ul>\",\"wikieditor-toolbar-help-content-olist-description\":\"Numbered list\",\"wikieditor-toolbar-help-content-olist-syntax\":\"# List item<br \\/># List item\",\"wikieditor-toolbar-help-content-olist-result\":\"<ol><li>List item<\\/li><li>List item<\\/li><\\/ol>\",\"wikieditor-toolbar-help-content-file-description\":\"Embedded file\",\"wikieditor-toolbar-help-content-file-syntax\":\"[[{{ns:file}}:Example.png|thumb|Caption text]]\",\"wikieditor-toolbar-help-content-file-result\":\"<div style=\'width:104px;\' class=\'thumbinner\'><a title=\'Caption text\' class=\'image\' href=\'#\'><img height=\'50\' width=\'100\' border=\'0\' class=\'thumbimage\' src=\'extensions\\/UsabilityInitiative\\/images\\/wikiEditor\\/toolbar\\/example-image.png\' alt=\'\'\\/><\\/a><div class=\'thumbcaption\'><div class=\'magnify\'><a title=\'Enlarge\' class=\'internal\' href=\'#\'><img height=\'11\' width=\'15\' alt=\'\' src=\'$1\\/common\\/images\\/magnify-clip.png\'\\/><\\/a><\\/div>Caption text<\\/div><\\/div>\",\"wikieditor-toolbar-help-content-reference-description\":\"Reference\",\"wikieditor-toolbar-help-content-reference-syntax\":\"Page text.&lt;ref name=\\\"test\\\"&gt;[http:\\/\\/www.example.org Link text], additional text.&lt;\\/ref&gt;\",\"wikieditor-toolbar-help-content-reference-result\":\"Page text.<sup><a href=\'#\'>[1]<\\/a><\\/sup>\",\"wikieditor-toolbar-help-content-rereference-description\":\"Additional use of same reference\",\"wikieditor-toolbar-help-content-rereference-syntax\":\"&lt;ref name=\\\"test\\\" \\/&gt;\",\"wikieditor-toolbar-help-content-rereference-result\":\"Page text.<sup><a href=\'#\'>[1]<\\/a><\\/sup>\",\"wikieditor-toolbar-help-content-showreferences-description\":\"Display references\",\"wikieditor-toolbar-help-content-showreferences-syntax\":\"&lt;references \\/&gt;\",\"wikieditor-toolbar-help-content-showreferences-result\":\"<ol class=\'references\'><li id=\'cite_note-test-0\'><b><a title=\'\' href=\'#\'>^<\\/a><\\/b> <a rel=\'nofollow\' title=\'http:\\/\\/www.example.org\' class=\'external text\' href=\'#\'>Link text<\\/a>, additional text.<\\/li><\\/ol>\",\"wikieditor-toolbar-help-content-signaturetimestamp-description\":\"Signature with timestamp\",\"wikieditor-toolbar-help-content-signaturetimestamp-syntax\":\"~~~~\",\"wikieditor-toolbar-help-content-signaturetimestamp-result\":\"<a href=\'#\' title=\'{{#special:mypage}}\'>Username<\\/a> (<a href=\'#\' title=\'{{#special:mytalk}}\'>talk<\\/a>) 15:54, 10 June 2009 (UTC)\",\"wikieditor-toolbar-help-content-signature-description\":\"Signature\",\"wikieditor-toolbar-help-content-signature-syntax\":\"~~~\",\"wikieditor-toolbar-help-content-signature-result\":\"<a href=\'#\' title=\'{{#special:mypage}}\'>Username<\\/a> (<a href=\'#\' title=\'{{#special:mytalk}}\'>talk<\\/a>)\",\"wikieditor-toolbar-help-content-indent-description\":\"Indent\",\"wikieditor-toolbar-help-content-indent-syntax\":\"Normal text<br \\/>:Indented text<br \\/>::Indented text\",\"wikieditor-toolbar-help-content-indent-result\":\"Normal text<dl><dd>Indented text<dl><dd>Indented text<\\/dd><\\/dl><\\/dd><\\/dl>\"}','20110110172914'),('jquery.async','en','{}','20110110172915'),('jquery.autoEllipsis','en','{}','20110110172915'),('jquery.checkboxShiftClick','en','{}','20110110172915'),('jquery.client','en','{}','20110110172915'),('jquery.cookie','en','{}','20110110172915'),('jquery.delayedBind','en','{}','20110110172915'),('jquery.highlightText','en','{}','20110110172915'),('jquery.makeCollapsible','en','{\"collapsible-expand\":\"Expand\",\"collapsible-collapse\":\"Collapse\"}','20110110172915'),('jquery.placeholder','en','{}','20110110172915'),('jquery.suggestions','en','{}','20110110172915'),('jquery.tabIndex','en','{}','20110110172915'),('jquery.textSelection','en','{}','20110110172915'),('jquery.wikiEditor','en','{\"wikieditor-wikitext-tab\":\"Wikitext\",\"wikieditor-loading\":\"Loading\"}','20110110172914'),('jquery.wikiEditor.toolbar','en','{}','20110110172914'),('mediawiki.action.watch.ajax','en','{}','20110110172915'),('mediawiki.language','en','{}','20110110172915'),('mediawiki.legacy.ajax','en','{\"watch\":\"Watch\",\"unwatch\":\"Unwatch\",\"watching\":\"Watching...\",\"unwatching\":\"Unwatching...\",\"tooltip-ca-watch\":\"Add this page to your watchlist\",\"tooltip-ca-unwatch\":\"Remove this page from your watchlist\"}','20110110172915'),('mediawiki.legacy.edit','en','{}','20110110172915'),('mediawiki.legacy.wikibits','en','{\"showtoc\":\"show\",\"hidetoc\":\"hide\"}','20110110172915'),('mediawiki.util','en','{}','20110110172915');
-/*!40000 ALTER TABLE `mw_msg_resource` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_msg_resource_links`
---
-
-DROP TABLE IF EXISTS `mw_msg_resource_links`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_msg_resource_links` (
-  `mrl_resource` varbinary(255) NOT NULL,
-  `mrl_message` varbinary(255) NOT NULL,
-  UNIQUE KEY `mrl_message_resource` (`mrl_message`,`mrl_resource`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_msg_resource_links`
---
-
-LOCK TABLES `mw_msg_resource_links` WRITE;
-/*!40000 ALTER TABLE `mw_msg_resource_links` DISABLE KEYS */;
-INSERT INTO `mw_msg_resource_links` VALUES ('jquery.makeCollapsible','collapsible-collapse'),('jquery.makeCollapsible','collapsible-expand'),('mediawiki.legacy.wikibits','hidetoc'),('mediawiki.legacy.wikibits','showtoc'),('mediawiki.legacy.ajax','tooltip-ca-unwatch'),('mediawiki.legacy.ajax','tooltip-ca-watch'),('mediawiki.legacy.ajax','unwatch'),('mediawiki.legacy.ajax','unwatching'),('ext.vector.collapsibleNav','vector-collapsiblenav-more'),('ext.vector.simpleSearch','vector-simplesearch-containing'),('ext.vector.simpleSearch','vector-simplesearch-search'),('mediawiki.legacy.ajax','watch'),('mediawiki.legacy.ajax','watching'),('jquery.wikiEditor','wikieditor-loading'),('ext.wikiEditor.toolbar','wikieditor-toolbar-characters-page-arabic'),('ext.wikiEditor.toolbar','wikieditor-toolbar-characters-page-bangla'),('ext.wikiEditor.toolbar','wikieditor-toolbar-characters-page-cyrillic'),('ext.wikiEditor.toolbar','wikieditor-toolbar-characters-page-greek'),('ext.wikiEditor.toolbar','wikieditor-toolbar-characters-page-gujarati'),('ext.wikiEditor.toolbar','wikieditor-toolbar-characters-page-hebrew'),('ext.wikiEditor.toolbar','wikieditor-toolbar-characters-page-ipa'),('ext.wikiEditor.toolbar','wikieditor-toolbar-characters-page-khmer'),('ext.wikiEditor.toolbar','wikieditor-toolbar-characters-page-lao'),('ext.wikiEditor.toolbar','wikieditor-toolbar-characters-page-latin'),('ext.wikiEditor.toolbar','wikieditor-toolbar-characters-page-latinextended'),('ext.wikiEditor.toolbar','wikieditor-toolbar-characters-page-persian'),('ext.wikiEditor.toolbar','wikieditor-toolbar-characters-page-sinhala'),('ext.wikiEditor.toolbar','wikieditor-toolbar-characters-page-symbols'),('ext.wikiEditor.toolbar','wikieditor-toolbar-characters-page-telugu'),('ext.wikiEditor.toolbar','wikieditor-toolbar-characters-page-thai'),('ext.wikiEditor.toolbar','wikieditor-toolbar-group-format'),('ext.wikiEditor.toolbar','wikieditor-toolbar-group-insert'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-bold-description'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-bold-result'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-bold-syntax'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-bolditalic-description'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-bolditalic-result'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-bolditalic-syntax'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-file-description'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-file-result'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-file-syntax'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-heading1-description'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-heading1-result'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-heading1-syntax'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-heading2-description'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-heading2-result'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-heading2-syntax'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-heading3-description'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-heading3-result'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-heading3-syntax'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-heading4-description'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-heading4-result'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-heading4-syntax'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-heading5-description'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-heading5-result'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-heading5-syntax'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-ilink-description'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-ilink-result'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-ilink-syntax'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-indent-description'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-indent-result'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-indent-syntax'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-italic-description'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-italic-result'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-italic-syntax'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-olist-description'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-olist-result'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-olist-syntax'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-reference-description'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-reference-result'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-reference-syntax'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-rereference-description'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-rereference-result'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-rereference-syntax'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-showreferences-description'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-showreferences-result'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-showreferences-syntax'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-signature-description'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-signature-result'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-signature-syntax'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-signaturetimestamp-description'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-signaturetimestamp-result'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-signaturetimestamp-syntax'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-ulist-description'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-ulist-result'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-ulist-syntax'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-xlink-description'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-xlink-result'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-content-xlink-syntax'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-heading-description'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-heading-result'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-heading-syntax'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-page-discussion'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-page-file'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-page-format'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-page-heading'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-page-link'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-page-list'),('ext.wikiEditor.toolbar','wikieditor-toolbar-help-page-reference'),('ext.wikiEditor.toolbar','wikieditor-toolbar-loading'),('ext.wikiEditor.toolbar','wikieditor-toolbar-section-advanced'),('ext.wikiEditor.toolbar','wikieditor-toolbar-section-characters'),('ext.wikiEditor.toolbar','wikieditor-toolbar-section-help'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-big'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-big-example'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-bold'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-bold-example'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-file'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-file-example'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-file-pre'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-gallery'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-gallery-example'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-heading'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-heading-1'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-heading-2'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-heading-3'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-heading-4'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-heading-5'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-heading-example'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-ilink'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-ilink-example'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-indent'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-indent-example'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-italic'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-italic-example'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-link'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-link-cancel'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-link-empty'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-link-ext'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-link-ext-target'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-link-ext-text'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-link-insert'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-link-int'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-link-int-invalid'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-link-int-target'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-link-int-target-status-exists'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-link-int-target-status-external'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-link-int-target-status-invalid'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-link-int-target-status-loading'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-link-int-target-status-notexists'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-link-int-target-tooltip'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-link-int-text'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-link-int-text-tooltip'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-link-lookslikeinternal'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-link-lookslikeinternal-ext'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-link-lookslikeinternal-int'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-link-title'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-newline'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-nowiki'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-nowiki-example'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-olist'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-olist-example'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-redirect'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-redirect-example'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-reference'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-reference-cancel'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-reference-example'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-reference-insert'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-reference-text'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-reference-title'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-replace'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-replace-button-findnext'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-replace-button-replaceall'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-replace-button-replacenext'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-replace-case'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-replace-close'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-replace-emptysearch'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-replace-invalidregex'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-replace-nomatch'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-replace-regex'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-replace-replace'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-replace-search'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-replace-success'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-replace-title'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-signature'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-small'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-small-example'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-subscript'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-subscript-example'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-superscript'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-superscript-example'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-table'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-table-cancel'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-table-dimensions-columns'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-table-dimensions-header'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-table-dimensions-rows'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-table-example'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-table-example-cell-text'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-table-example-header'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-table-example-old'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-table-example-text'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-table-insert'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-table-invalidnumber'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-table-sortable'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-table-title'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-table-toomany'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-table-wikitable'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-table-zero'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-ulist'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-ulist-example'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-xlink'),('ext.wikiEditor.toolbar','wikieditor-toolbar-tool-xlink-example'),('jquery.wikiEditor','wikieditor-wikitext-tab');
-/*!40000 ALTER TABLE `mw_msg_resource_links` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_objectcache`
---
-
-DROP TABLE IF EXISTS `mw_objectcache`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_objectcache` (
-  `keyname` varbinary(255) NOT NULL DEFAULT '',
-  `value` mediumblob,
-  `exptime` datetime DEFAULT NULL,
-  PRIMARY KEY (`keyname`),
-  KEY `exptime` (`exptime`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_objectcache`
---
-
-LOCK TABLES `mw_objectcache` WRITE;
-/*!40000 ALTER TABLE `mw_objectcache` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_objectcache` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_oldimage`
---
-
-DROP TABLE IF EXISTS `mw_oldimage`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_oldimage` (
-  `oi_name` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `oi_archive_name` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `oi_size` int(10) unsigned NOT NULL DEFAULT '0',
-  `oi_width` int(11) NOT NULL DEFAULT '0',
-  `oi_height` int(11) NOT NULL DEFAULT '0',
-  `oi_bits` int(11) NOT NULL DEFAULT '0',
-  `oi_description` tinyblob NOT NULL,
-  `oi_user` int(10) unsigned NOT NULL DEFAULT '0',
-  `oi_user_text` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
-  `oi_timestamp` binary(14) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
-  `oi_metadata` mediumblob NOT NULL,
-  `oi_media_type` enum('UNKNOWN','BITMAP','DRAWING','AUDIO','VIDEO','MULTIMEDIA','OFFICE','TEXT','EXECUTABLE','ARCHIVE') DEFAULT NULL,
-  `oi_major_mime` enum('unknown','application','audio','image','text','video','message','model','multipart') NOT NULL DEFAULT 'unknown',
-  `oi_minor_mime` varbinary(100) NOT NULL DEFAULT 'unknown',
-  `oi_deleted` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  `oi_sha1` varbinary(32) NOT NULL DEFAULT '',
-  KEY `oi_usertext_timestamp` (`oi_user_text`,`oi_timestamp`),
-  KEY `oi_name_timestamp` (`oi_name`,`oi_timestamp`),
-  KEY `oi_name_archive_name` (`oi_name`,`oi_archive_name`(14)),
-  KEY `oi_sha1` (`oi_sha1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_oldimage`
---
-
-LOCK TABLES `mw_oldimage` WRITE;
-/*!40000 ALTER TABLE `mw_oldimage` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_oldimage` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_page`
---
-
-DROP TABLE IF EXISTS `mw_page`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_page` (
-  `page_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
-  `page_namespace` int(11) NOT NULL,
-  `page_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
-  `page_restrictions` tinyblob NOT NULL,
-  `page_counter` bigint(20) unsigned NOT NULL DEFAULT '0',
-  `page_is_redirect` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  `page_is_new` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  `page_random` double unsigned NOT NULL,
-  `page_touched` binary(14) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
-  `page_latest` int(10) unsigned NOT NULL,
-  `page_len` int(10) unsigned NOT NULL,
-  PRIMARY KEY (`page_id`),
-  UNIQUE KEY `name_title` (`page_namespace`,`page_title`),
-  KEY `page_random` (`page_random`),
-  KEY `page_len` (`page_len`)
-) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_page`
---
-
-LOCK TABLES `mw_page` WRITE;
-/*!40000 ALTER TABLE `mw_page` DISABLE KEYS */;
-INSERT INTO `mw_page` VALUES (1,0,'Main_Page','',3,0,1,0.045389076294,'20110107184113',1,438),(2,0,'TestResources','',0,0,1,0.227355086893,'20110110173217',2,57);
-/*!40000 ALTER TABLE `mw_page` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_page_props`
---
-
-DROP TABLE IF EXISTS `mw_page_props`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_page_props` (
-  `pp_page` int(11) NOT NULL,
-  `pp_propname` varbinary(60) NOT NULL,
-  `pp_value` blob NOT NULL,
-  UNIQUE KEY `pp_page_propname` (`pp_page`,`pp_propname`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_page_props`
---
-
-LOCK TABLES `mw_page_props` WRITE;
-/*!40000 ALTER TABLE `mw_page_props` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_page_props` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_page_restrictions`
---
-
-DROP TABLE IF EXISTS `mw_page_restrictions`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_page_restrictions` (
-  `pr_page` int(11) NOT NULL,
-  `pr_type` varbinary(60) NOT NULL,
-  `pr_level` varbinary(60) NOT NULL,
-  `pr_cascade` tinyint(4) NOT NULL,
-  `pr_user` int(11) DEFAULT NULL,
-  `pr_expiry` varbinary(14) DEFAULT NULL,
-  `pr_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
-  PRIMARY KEY (`pr_id`),
-  UNIQUE KEY `pr_pagetype` (`pr_page`,`pr_type`),
-  KEY `pr_typelevel` (`pr_type`,`pr_level`),
-  KEY `pr_level` (`pr_level`),
-  KEY `pr_cascade` (`pr_cascade`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_page_restrictions`
---
-
-LOCK TABLES `mw_page_restrictions` WRITE;
-/*!40000 ALTER TABLE `mw_page_restrictions` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_page_restrictions` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_pagelinks`
---
-
-DROP TABLE IF EXISTS `mw_pagelinks`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_pagelinks` (
-  `pl_from` int(10) unsigned NOT NULL DEFAULT '0',
-  `pl_namespace` int(11) NOT NULL DEFAULT '0',
-  `pl_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  UNIQUE KEY `pl_from` (`pl_from`,`pl_namespace`,`pl_title`),
-  UNIQUE KEY `pl_namespace` (`pl_namespace`,`pl_title`,`pl_from`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_pagelinks`
---
-
-LOCK TABLES `mw_pagelinks` WRITE;
-/*!40000 ALTER TABLE `mw_pagelinks` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_pagelinks` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_protected_titles`
---
-
-DROP TABLE IF EXISTS `mw_protected_titles`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_protected_titles` (
-  `pt_namespace` int(11) NOT NULL,
-  `pt_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
-  `pt_user` int(10) unsigned NOT NULL,
-  `pt_reason` tinyblob,
-  `pt_timestamp` binary(14) NOT NULL,
-  `pt_expiry` varbinary(14) NOT NULL DEFAULT '',
-  `pt_create_perm` varbinary(60) NOT NULL,
-  UNIQUE KEY `pt_namespace_title` (`pt_namespace`,`pt_title`),
-  KEY `pt_timestamp` (`pt_timestamp`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_protected_titles`
---
-
-LOCK TABLES `mw_protected_titles` WRITE;
-/*!40000 ALTER TABLE `mw_protected_titles` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_protected_titles` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_querycache`
---
-
-DROP TABLE IF EXISTS `mw_querycache`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_querycache` (
-  `qc_type` varbinary(32) NOT NULL,
-  `qc_value` int(10) unsigned NOT NULL DEFAULT '0',
-  `qc_namespace` int(11) NOT NULL DEFAULT '0',
-  `qc_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  KEY `qc_type` (`qc_type`,`qc_value`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_querycache`
---
-
-LOCK TABLES `mw_querycache` WRITE;
-/*!40000 ALTER TABLE `mw_querycache` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_querycache` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_querycache_info`
---
-
-DROP TABLE IF EXISTS `mw_querycache_info`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_querycache_info` (
-  `qci_type` varbinary(32) NOT NULL DEFAULT '',
-  `qci_timestamp` binary(14) NOT NULL DEFAULT '19700101000000',
-  UNIQUE KEY `qci_type` (`qci_type`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_querycache_info`
---
-
-LOCK TABLES `mw_querycache_info` WRITE;
-/*!40000 ALTER TABLE `mw_querycache_info` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_querycache_info` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_querycachetwo`
---
-
-DROP TABLE IF EXISTS `mw_querycachetwo`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_querycachetwo` (
-  `qcc_type` varbinary(32) NOT NULL,
-  `qcc_value` int(10) unsigned NOT NULL DEFAULT '0',
-  `qcc_namespace` int(11) NOT NULL DEFAULT '0',
-  `qcc_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `qcc_namespacetwo` int(11) NOT NULL DEFAULT '0',
-  `qcc_titletwo` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  KEY `qcc_type` (`qcc_type`,`qcc_value`),
-  KEY `qcc_title` (`qcc_type`,`qcc_namespace`,`qcc_title`),
-  KEY `qcc_titletwo` (`qcc_type`,`qcc_namespacetwo`,`qcc_titletwo`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_querycachetwo`
---
-
-LOCK TABLES `mw_querycachetwo` WRITE;
-/*!40000 ALTER TABLE `mw_querycachetwo` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_querycachetwo` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_recentchanges`
---
-
-DROP TABLE IF EXISTS `mw_recentchanges`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_recentchanges` (
-  `rc_id` int(11) NOT NULL AUTO_INCREMENT,
-  `rc_timestamp` varbinary(14) NOT NULL DEFAULT '',
-  `rc_cur_time` varbinary(14) NOT NULL DEFAULT '',
-  `rc_user` int(10) unsigned NOT NULL DEFAULT '0',
-  `rc_user_text` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
-  `rc_namespace` int(11) NOT NULL DEFAULT '0',
-  `rc_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `rc_comment` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `rc_minor` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  `rc_bot` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  `rc_new` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  `rc_cur_id` int(10) unsigned NOT NULL DEFAULT '0',
-  `rc_this_oldid` int(10) unsigned NOT NULL DEFAULT '0',
-  `rc_last_oldid` int(10) unsigned NOT NULL DEFAULT '0',
-  `rc_type` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  `rc_moved_to_ns` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  `rc_moved_to_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `rc_patrolled` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  `rc_ip` varbinary(40) NOT NULL DEFAULT '',
-  `rc_old_len` int(11) DEFAULT NULL,
-  `rc_new_len` int(11) DEFAULT NULL,
-  `rc_deleted` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  `rc_logid` int(10) unsigned NOT NULL DEFAULT '0',
-  `rc_log_type` varbinary(255) DEFAULT NULL,
-  `rc_log_action` varbinary(255) DEFAULT NULL,
-  `rc_params` blob,
-  PRIMARY KEY (`rc_id`),
-  KEY `rc_timestamp` (`rc_timestamp`),
-  KEY `rc_namespace_title` (`rc_namespace`,`rc_title`),
-  KEY `rc_cur_id` (`rc_cur_id`),
-  KEY `new_name_timestamp` (`rc_new`,`rc_namespace`,`rc_timestamp`),
-  KEY `rc_ip` (`rc_ip`),
-  KEY `rc_ns_usertext` (`rc_namespace`,`rc_user_text`),
-  KEY `rc_user_text` (`rc_user_text`,`rc_timestamp`)
-) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_recentchanges`
---
-
-LOCK TABLES `mw_recentchanges` WRITE;
-/*!40000 ALTER TABLE `mw_recentchanges` DISABLE KEYS */;
-INSERT INTO `mw_recentchanges` VALUES (1,'20110107184113','20110107184113',0,'MediaWiki Default',0,'Main_Page','',0,0,1,1,1,0,1,0,'',0,'::1',0,438,0,0,NULL,'',''),(2,'20110110173131','20110110173131',1,'WikiSysop',0,'TestResources','Created page with \"Test the the SimpleSelenium database was loaded correctly\"',0,0,1,2,2,0,1,0,'',1,'::1',0,57,0,0,NULL,'','');
-/*!40000 ALTER TABLE `mw_recentchanges` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_redirect`
---
-
-DROP TABLE IF EXISTS `mw_redirect`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_redirect` (
-  `rd_from` int(10) unsigned NOT NULL DEFAULT '0',
-  `rd_namespace` int(11) NOT NULL DEFAULT '0',
-  `rd_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `rd_interwiki` varchar(32) DEFAULT NULL,
-  `rd_fragment` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
-  PRIMARY KEY (`rd_from`),
-  KEY `rd_ns_title` (`rd_namespace`,`rd_title`,`rd_from`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_redirect`
---
-
-LOCK TABLES `mw_redirect` WRITE;
-/*!40000 ALTER TABLE `mw_redirect` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_redirect` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_revision`
---
-
-DROP TABLE IF EXISTS `mw_revision`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_revision` (
-  `rev_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
-  `rev_page` int(10) unsigned NOT NULL,
-  `rev_text_id` int(10) unsigned NOT NULL,
-  `rev_comment` tinyblob NOT NULL,
-  `rev_user` int(10) unsigned NOT NULL DEFAULT '0',
-  `rev_user_text` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `rev_timestamp` binary(14) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
-  `rev_minor_edit` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  `rev_deleted` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  `rev_len` int(10) unsigned DEFAULT NULL,
-  `rev_parent_id` int(10) unsigned DEFAULT NULL,
-  PRIMARY KEY (`rev_id`),
-  UNIQUE KEY `rev_page_id` (`rev_page`,`rev_id`),
-  KEY `rev_timestamp` (`rev_timestamp`),
-  KEY `page_timestamp` (`rev_page`,`rev_timestamp`),
-  KEY `user_timestamp` (`rev_user`,`rev_timestamp`),
-  KEY `usertext_timestamp` (`rev_user_text`,`rev_timestamp`)
-) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1 MAX_ROWS=10000000 AVG_ROW_LENGTH=1024;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_revision`
---
-
-LOCK TABLES `mw_revision` WRITE;
-/*!40000 ALTER TABLE `mw_revision` DISABLE KEYS */;
-INSERT INTO `mw_revision` VALUES (1,1,1,'',0,'MediaWiki Default','20110107184113',0,0,438,0),(2,2,2,'Created page with \"Test the the SimpleSelenium database was loaded correctly\"',1,'WikiSysop','20110110173131',0,0,57,0);
-/*!40000 ALTER TABLE `mw_revision` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_searchindex`
---
-
-DROP TABLE IF EXISTS `mw_searchindex`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_searchindex` (
-  `si_page` int(10) unsigned NOT NULL,
-  `si_title` varchar(255) NOT NULL DEFAULT '',
-  `si_text` mediumtext NOT NULL,
-  UNIQUE KEY `si_page` (`si_page`),
-  FULLTEXT KEY `si_title` (`si_title`),
-  FULLTEXT KEY `si_text` (`si_text`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_searchindex`
---
-
-LOCK TABLES `mw_searchindex` WRITE;
-/*!40000 ALTER TABLE `mw_searchindex` DISABLE KEYS */;
-INSERT INTO `mw_searchindex` VALUES (1,'main page','  mediawiki hasu800 been successfully installed.  consult theu800 user user\'su800 guide foru800 information onu800 using theu800 wiki software. getting started getting started getting started configuration settings list mediawiki faqu800 mediawiki release mailing list '),(2,'testresources',' test theu800 theu800 simpleselenium database wasu800 loaded correctly ');
-/*!40000 ALTER TABLE `mw_searchindex` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_site_stats`
---
-
-DROP TABLE IF EXISTS `mw_site_stats`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_site_stats` (
-  `ss_row_id` int(10) unsigned NOT NULL,
-  `ss_total_views` bigint(20) unsigned DEFAULT '0',
-  `ss_total_edits` bigint(20) unsigned DEFAULT '0',
-  `ss_good_articles` bigint(20) unsigned DEFAULT '0',
-  `ss_total_pages` bigint(20) DEFAULT '-1',
-  `ss_users` bigint(20) DEFAULT '-1',
-  `ss_active_users` bigint(20) DEFAULT '-1',
-  `ss_admins` int(11) DEFAULT '-1',
-  `ss_images` int(11) DEFAULT '0',
-  UNIQUE KEY `ss_row_id` (`ss_row_id`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_site_stats`
---
-
-LOCK TABLES `mw_site_stats` WRITE;
-/*!40000 ALTER TABLE `mw_site_stats` DISABLE KEYS */;
-INSERT INTO `mw_site_stats` VALUES (1,3,2,1,2,1,-1,-1,0);
-/*!40000 ALTER TABLE `mw_site_stats` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_tag_summary`
---
-
-DROP TABLE IF EXISTS `mw_tag_summary`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_tag_summary` (
-  `ts_rc_id` int(11) DEFAULT NULL,
-  `ts_log_id` int(11) DEFAULT NULL,
-  `ts_rev_id` int(11) DEFAULT NULL,
-  `ts_tags` blob NOT NULL,
-  UNIQUE KEY `tag_summary_rc_id` (`ts_rc_id`),
-  UNIQUE KEY `tag_summary_log_id` (`ts_log_id`),
-  UNIQUE KEY `tag_summary_rev_id` (`ts_rev_id`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_tag_summary`
---
-
-LOCK TABLES `mw_tag_summary` WRITE;
-/*!40000 ALTER TABLE `mw_tag_summary` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_tag_summary` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_templatelinks`
---
-
-DROP TABLE IF EXISTS `mw_templatelinks`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_templatelinks` (
-  `tl_from` int(10) unsigned NOT NULL DEFAULT '0',
-  `tl_namespace` int(11) NOT NULL DEFAULT '0',
-  `tl_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  UNIQUE KEY `tl_from` (`tl_from`,`tl_namespace`,`tl_title`),
-  UNIQUE KEY `tl_namespace` (`tl_namespace`,`tl_title`,`tl_from`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_templatelinks`
---
-
-LOCK TABLES `mw_templatelinks` WRITE;
-/*!40000 ALTER TABLE `mw_templatelinks` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_templatelinks` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_text`
---
-
-DROP TABLE IF EXISTS `mw_text`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_text` (
-  `old_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
-  `old_text` mediumblob NOT NULL,
-  `old_flags` tinyblob NOT NULL,
-  PRIMARY KEY (`old_id`)
-) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1 MAX_ROWS=10000000 AVG_ROW_LENGTH=10240;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_text`
---
-
-LOCK TABLES `mw_text` WRITE;
-/*!40000 ALTER TABLE `mw_text` DISABLE KEYS */;
-INSERT INTO `mw_text` VALUES (1,'\'\'\'MediaWiki has been successfully installed.\'\'\'\n\nConsult the [http://meta.wikimedia.org/wiki/Help:Contents User\'s Guide] for information on using the wiki software.\n\n== Getting started ==\n* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]\n* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]','utf-8'),(2,'Test the the SimpleSelenium database was loaded correctly','utf-8');
-/*!40000 ALTER TABLE `mw_text` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_trackbacks`
---
-
-DROP TABLE IF EXISTS `mw_trackbacks`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_trackbacks` (
-  `tb_id` int(11) NOT NULL AUTO_INCREMENT,
-  `tb_page` int(11) DEFAULT NULL,
-  `tb_title` varchar(255) NOT NULL,
-  `tb_url` blob NOT NULL,
-  `tb_ex` text,
-  `tb_name` varchar(255) DEFAULT NULL,
-  PRIMARY KEY (`tb_id`),
-  KEY `tb_page` (`tb_page`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_trackbacks`
---
-
-LOCK TABLES `mw_trackbacks` WRITE;
-/*!40000 ALTER TABLE `mw_trackbacks` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_trackbacks` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_transcache`
---
-
-DROP TABLE IF EXISTS `mw_transcache`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_transcache` (
-  `tc_url` varbinary(255) NOT NULL,
-  `tc_contents` text,
-  `tc_time` binary(14) DEFAULT NULL,
-  UNIQUE KEY `tc_url_idx` (`tc_url`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_transcache`
---
-
-LOCK TABLES `mw_transcache` WRITE;
-/*!40000 ALTER TABLE `mw_transcache` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_transcache` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_updatelog`
---
-
-DROP TABLE IF EXISTS `mw_updatelog`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_updatelog` (
-  `ul_key` varchar(255) NOT NULL,
-  `ul_value` blob,
-  PRIMARY KEY (`ul_key`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_updatelog`
---
-
-LOCK TABLES `mw_updatelog` WRITE;
-/*!40000 ALTER TABLE `mw_updatelog` DISABLE KEYS */;
-INSERT INTO `mw_updatelog` VALUES ('cl_fields_update',NULL),('convert transcache field',NULL),('mime_minor_length',NULL),('populate category',NULL),('populate rev_len',NULL),('populate rev_parent_id',NULL),('updatelist-1.18alpha-1294425799','a:128:{i:0;a:4:{i:0;s:8:\"addField\";i:1;s:8:\"ipblocks\";i:2;s:6:\"ipb_id\";i:3;s:18:\"patch-ipblocks.sql\";}i:1;a:4:{i:0;s:8:\"addField\";i:1;s:8:\"ipblocks\";i:2;s:10:\"ipb_expiry\";i:3;s:20:\"patch-ipb_expiry.sql\";}i:2;a:1:{i:0;s:17:\"doInterwikiUpdate\";}i:3;a:1:{i:0;s:13:\"doIndexUpdate\";}i:4;a:3:{i:0;s:8:\"addTable\";i:1;s:10:\"hitcounter\";i:2;s:20:\"patch-hitcounter.sql\";}i:5;a:4:{i:0;s:8:\"addField\";i:1;s:13:\"recentchanges\";i:2;s:7:\"rc_type\";i:3;s:17:\"patch-rc_type.sql\";}i:6;a:4:{i:0;s:8:\"addField\";i:1;s:4:\"user\";i:2;s:14:\"user_real_name\";i:3;s:23:\"patch-user-realname.sql\";}i:7;a:3:{i:0;s:8:\"addTable\";i:1;s:10:\"querycache\";i:2;s:20:\"patch-querycache.sql\";}i:8;a:3:{i:0;s:8:\"addTable\";i:1;s:11:\"objectcache\";i:2;s:21:\"patch-objectcache.sql\";}i:9;a:3:{i:0;s:8:\"addTable\";i:1;s:13:\"categorylinks\";i:2;s:23:\"patch-categorylinks.sql\";}i:10;a:1:{i:0;s:16:\"doOldLinksUpdate\";}i:11;a:1:{i:0;s:22:\"doFixAncientImagelinks\";}i:12;a:4:{i:0;s:8:\"addField\";i:1;s:13:\"recentchanges\";i:2;s:5:\"rc_ip\";i:3;s:15:\"patch-rc_ip.sql\";}i:13;a:4:{i:0;s:8:\"addIndex\";i:1;s:5:\"image\";i:2;s:7:\"PRIMARY\";i:3;s:28:\"patch-image_name_primary.sql\";}i:14;a:4:{i:0;s:8:\"addField\";i:1;s:13:\"recentchanges\";i:2;s:5:\"rc_id\";i:3;s:15:\"patch-rc_id.sql\";}i:15;a:4:{i:0;s:8:\"addField\";i:1;s:13:\"recentchanges\";i:2;s:12:\"rc_patrolled\";i:3;s:19:\"patch-rc-patrol.sql\";}i:16;a:3:{i:0;s:8:\"addTable\";i:1;s:7:\"logging\";i:2;s:17:\"patch-logging.sql\";}i:17;a:4:{i:0;s:8:\"addField\";i:1;s:4:\"user\";i:2;s:10:\"user_token\";i:3;s:20:\"patch-user_token.sql\";}i:18;a:4:{i:0;s:8:\"addField\";i:1;s:9:\"watchlist\";i:2;s:24:\"wl_notificationtimestamp\";i:3;s:28:\"patch-email-notification.sql\";}i:19;a:1:{i:0;s:17:\"doWatchlistUpdate\";}i:20;a:4:{i:0;s:9:\"dropField\";i:1;s:4:\"user\";i:2;s:33:\"user_emailauthenticationtimestamp\";i:3;s:30:\"patch-email-authentication.sql\";}i:21;a:1:{i:0;s:21:\"doSchemaRestructuring\";}i:22;a:4:{i:0;s:8:\"addField\";i:1;s:7:\"logging\";i:2;s:10:\"log_params\";i:3;s:20:\"patch-log_params.sql\";}i:23;a:4:{i:0;s:8:\"checkBin\";i:1;s:7:\"logging\";i:2;s:9:\"log_title\";i:3;s:23:\"patch-logging-title.sql\";}i:24;a:4:{i:0;s:8:\"addField\";i:1;s:7:\"archive\";i:2;s:9:\"ar_rev_id\";i:3;s:24:\"patch-archive-rev_id.sql\";}i:25;a:4:{i:0;s:8:\"addField\";i:1;s:4:\"page\";i:2;s:8:\"page_len\";i:3;s:18:\"patch-page_len.sql\";}i:26;a:4:{i:0;s:9:\"dropField\";i:1;s:8:\"revision\";i:2;s:17:\"inverse_timestamp\";i:3;s:27:\"patch-inverse_timestamp.sql\";}i:27;a:4:{i:0;s:8:\"addField\";i:1;s:8:\"revision\";i:2;s:11:\"rev_text_id\";i:3;s:21:\"patch-rev_text_id.sql\";}i:28;a:4:{i:0;s:8:\"addField\";i:1;s:8:\"revision\";i:2;s:11:\"rev_deleted\";i:3;s:21:\"patch-rev_deleted.sql\";}i:29;a:4:{i:0;s:8:\"addField\";i:1;s:5:\"image\";i:2;s:9:\"img_width\";i:3;s:19:\"patch-img_width.sql\";}i:30;a:4:{i:0;s:8:\"addField\";i:1;s:5:\"image\";i:2;s:12:\"img_metadata\";i:3;s:22:\"patch-img_metadata.sql\";}i:31;a:4:{i:0;s:8:\"addField\";i:1;s:4:\"user\";i:2;s:16:\"user_email_token\";i:3;s:26:\"patch-user_email_token.sql\";}i:32;a:4:{i:0;s:8:\"addField\";i:1;s:7:\"archive\";i:2;s:10:\"ar_text_id\";i:3;s:25:\"patch-archive-text_id.sql\";}i:33;a:1:{i:0;s:15:\"doNamespaceSize\";}i:34;a:4:{i:0;s:8:\"addField\";i:1;s:5:\"image\";i:2;s:14:\"img_media_type\";i:3;s:24:\"patch-img_media_type.sql\";}i:35;a:1:{i:0;s:17:\"doPagelinksUpdate\";}i:36;a:4:{i:0;s:9:\"dropField\";i:1;s:5:\"image\";i:2;s:8:\"img_type\";i:3;s:23:\"patch-drop_img_type.sql\";}i:37;a:1:{i:0;s:18:\"doUserUniqueUpdate\";}i:38;a:1:{i:0;s:18:\"doUserGroupsUpdate\";}i:39;a:4:{i:0;s:8:\"addField\";i:1;s:10:\"site_stats\";i:2;s:14:\"ss_total_pages\";i:3;s:27:\"patch-ss_total_articles.sql\";}i:40;a:3:{i:0;s:8:\"addTable\";i:1;s:12:\"user_newtalk\";i:2;s:22:\"patch-usernewtalk2.sql\";}i:41;a:3:{i:0;s:8:\"addTable\";i:1;s:10:\"transcache\";i:2;s:20:\"patch-transcache.sql\";}i:42;a:4:{i:0;s:8:\"addField\";i:1;s:9:\"interwiki\";i:2;s:8:\"iw_trans\";i:3;s:25:\"patch-interwiki-trans.sql\";}i:43;a:3:{i:0;s:8:\"addTable\";i:1;s:10:\"trackbacks\";i:2;s:20:\"patch-trackbacks.sql\";}i:44;a:1:{i:0;s:15:\"doWatchlistNull\";}i:45;a:4:{i:0;s:8:\"addIndex\";i:1;s:7:\"logging\";i:2;s:5:\"times\";i:3;s:29:\"patch-logging-times-index.sql\";}i:46;a:4:{i:0;s:8:\"addField\";i:1;s:8:\"ipblocks\";i:2;s:15:\"ipb_range_start\";i:3;s:25:\"patch-ipb_range_start.sql\";}i:47;a:1:{i:0;s:18:\"doPageRandomUpdate\";}i:48;a:4:{i:0;s:8:\"addField\";i:1;s:4:\"user\";i:2;s:17:\"user_registration\";i:3;s:27:\"patch-user_registration.sql\";}i:49;a:1:{i:0;s:21:\"doTemplatelinksUpdate\";}i:50;a:3:{i:0;s:8:\"addTable\";i:1;s:13:\"externallinks\";i:2;s:23:\"patch-externallinks.sql\";}i:51;a:3:{i:0;s:8:\"addTable\";i:1;s:3:\"job\";i:2;s:13:\"patch-job.sql\";}i:52;a:4:{i:0;s:8:\"addField\";i:1;s:10:\"site_stats\";i:2;s:9:\"ss_images\";i:3;s:19:\"patch-ss_images.sql\";}i:53;a:3:{i:0;s:8:\"addTable\";i:1;s:9:\"langlinks\";i:2;s:19:\"patch-langlinks.sql\";}i:54;a:3:{i:0;s:8:\"addTable\";i:1;s:15:\"querycache_info\";i:2;s:24:\"patch-querycacheinfo.sql\";}i:55;a:3:{i:0;s:8:\"addTable\";i:1;s:11:\"filearchive\";i:2;s:21:\"patch-filearchive.sql\";}i:56;a:4:{i:0;s:8:\"addField\";i:1;s:8:\"ipblocks\";i:2;s:13:\"ipb_anon_only\";i:3;s:23:\"patch-ipb_anon_only.sql\";}i:57;a:4:{i:0;s:8:\"addIndex\";i:1;s:13:\"recentchanges\";i:2;s:14:\"rc_ns_usertext\";i:3;s:31:\"patch-recentchanges-utindex.sql\";}i:58;a:4:{i:0;s:8:\"addIndex\";i:1;s:13:\"recentchanges\";i:2;s:12:\"rc_user_text\";i:3;s:28:\"patch-rc_user_text-index.sql\";}i:59;a:4:{i:0;s:8:\"addField\";i:1;s:4:\"user\";i:2;s:17:\"user_newpass_time\";i:3;s:27:\"patch-user_newpass_time.sql\";}i:60;a:3:{i:0;s:8:\"addTable\";i:1;s:8:\"redirect\";i:2;s:18:\"patch-redirect.sql\";}i:61;a:3:{i:0;s:8:\"addTable\";i:1;s:13:\"querycachetwo\";i:2;s:23:\"patch-querycachetwo.sql\";}i:62;a:4:{i:0;s:8:\"addField\";i:1;s:8:\"ipblocks\";i:2;s:20:\"ipb_enable_autoblock\";i:3;s:32:\"patch-ipb_optional_autoblock.sql\";}i:63;a:1:{i:0;s:26:\"doBacklinkingIndicesUpdate\";}i:64;a:4:{i:0;s:8:\"addField\";i:1;s:13:\"recentchanges\";i:2;s:10:\"rc_old_len\";i:3;s:16:\"patch-rc_len.sql\";}i:65;a:4:{i:0;s:8:\"addField\";i:1;s:4:\"user\";i:2;s:14:\"user_editcount\";i:3;s:24:\"patch-user_editcount.sql\";}i:66;a:1:{i:0;s:20:\"doRestrictionsUpdate\";}i:67;a:4:{i:0;s:8:\"addField\";i:1;s:7:\"logging\";i:2;s:6:\"log_id\";i:3;s:16:\"patch-log_id.sql\";}i:68;a:4:{i:0;s:8:\"addField\";i:1;s:8:\"revision\";i:2;s:13:\"rev_parent_id\";i:3;s:23:\"patch-rev_parent_id.sql\";}i:69;a:4:{i:0;s:8:\"addField\";i:1;s:17:\"page_restrictions\";i:2;s:5:\"pr_id\";i:3;s:35:\"patch-page_restrictions_sortkey.sql\";}i:70;a:4:{i:0;s:8:\"addField\";i:1;s:8:\"revision\";i:2;s:7:\"rev_len\";i:3;s:17:\"patch-rev_len.sql\";}i:71;a:4:{i:0;s:8:\"addField\";i:1;s:13:\"recentchanges\";i:2;s:10:\"rc_deleted\";i:3;s:20:\"patch-rc_deleted.sql\";}i:72;a:4:{i:0;s:8:\"addField\";i:1;s:7:\"logging\";i:2;s:11:\"log_deleted\";i:3;s:21:\"patch-log_deleted.sql\";}i:73;a:4:{i:0;s:8:\"addField\";i:1;s:7:\"archive\";i:2;s:10:\"ar_deleted\";i:3;s:20:\"patch-ar_deleted.sql\";}i:74;a:4:{i:0;s:8:\"addField\";i:1;s:8:\"ipblocks\";i:2;s:11:\"ipb_deleted\";i:3;s:21:\"patch-ipb_deleted.sql\";}i:75;a:4:{i:0;s:8:\"addField\";i:1;s:11:\"filearchive\";i:2;s:10:\"fa_deleted\";i:3;s:20:\"patch-fa_deleted.sql\";}i:76;a:4:{i:0;s:8:\"addField\";i:1;s:7:\"archive\";i:2;s:6:\"ar_len\";i:3;s:16:\"patch-ar_len.sql\";}i:77;a:4:{i:0;s:8:\"addField\";i:1;s:8:\"ipblocks\";i:2;s:15:\"ipb_block_email\";i:3;s:22:\"patch-ipb_emailban.sql\";}i:78;a:1:{i:0;s:28:\"doCategorylinksIndicesUpdate\";}i:79;a:4:{i:0;s:8:\"addField\";i:1;s:8:\"oldimage\";i:2;s:11:\"oi_metadata\";i:3;s:21:\"patch-oi_metadata.sql\";}i:80;a:4:{i:0;s:8:\"addIndex\";i:1;s:7:\"archive\";i:2;s:18:\"usertext_timestamp\";i:3;s:28:\"patch-archive-user-index.sql\";}i:81;a:4:{i:0;s:8:\"addIndex\";i:1;s:5:\"image\";i:2;s:22:\"img_usertext_timestamp\";i:3;s:26:\"patch-image-user-index.sql\";}i:82;a:4:{i:0;s:8:\"addIndex\";i:1;s:8:\"oldimage\";i:2;s:21:\"oi_usertext_timestamp\";i:3;s:29:\"patch-oldimage-user-index.sql\";}i:83;a:4:{i:0;s:8:\"addField\";i:1;s:7:\"archive\";i:2;s:10:\"ar_page_id\";i:3;s:25:\"patch-archive-page_id.sql\";}i:84;a:4:{i:0;s:8:\"addField\";i:1;s:5:\"image\";i:2;s:8:\"img_sha1\";i:3;s:18:\"patch-img_sha1.sql\";}i:85;a:3:{i:0;s:8:\"addTable\";i:1;s:16:\"protected_titles\";i:2;s:26:\"patch-protected_titles.sql\";}i:86;a:4:{i:0;s:8:\"addField\";i:1;s:8:\"ipblocks\";i:2;s:11:\"ipb_by_text\";i:3;s:21:\"patch-ipb_by_text.sql\";}i:87;a:3:{i:0;s:8:\"addTable\";i:1;s:10:\"page_props\";i:2;s:20:\"patch-page_props.sql\";}i:88;a:3:{i:0;s:8:\"addTable\";i:1;s:9:\"updatelog\";i:2;s:19:\"patch-updatelog.sql\";}i:89;a:3:{i:0;s:8:\"addTable\";i:1;s:8:\"category\";i:2;s:18:\"patch-category.sql\";}i:90;a:1:{i:0;s:20:\"doCategoryPopulation\";}i:91;a:4:{i:0;s:8:\"addField\";i:1;s:7:\"archive\";i:2;s:12:\"ar_parent_id\";i:3;s:22:\"patch-ar_parent_id.sql\";}i:92;a:4:{i:0;s:8:\"addField\";i:1;s:12:\"user_newtalk\";i:2;s:19:\"user_last_timestamp\";i:3;s:29:\"patch-user_last_timestamp.sql\";}i:93;a:1:{i:0;s:18:\"doPopulateParentId\";}i:94;a:4:{i:0;s:8:\"checkBin\";i:1;s:16:\"protected_titles\";i:2;s:8:\"pt_title\";i:3;s:27:\"patch-pt_title-encoding.sql\";}i:95;a:1:{i:0;s:28:\"doMaybeProfilingMemoryUpdate\";}i:96;a:1:{i:0;s:26:\"doFilearchiveIndicesUpdate\";}i:97;a:4:{i:0;s:8:\"addField\";i:1;s:10:\"site_stats\";i:2;s:15:\"ss_active_users\";i:3;s:25:\"patch-ss_active_users.sql\";}i:98;a:1:{i:0;s:17:\"doActiveUsersInit\";}i:99;a:4:{i:0;s:8:\"addField\";i:1;s:8:\"ipblocks\";i:2;s:18:\"ipb_allow_usertalk\";i:3;s:28:\"patch-ipb_allow_usertalk.sql\";}i:100;a:1:{i:0;s:14:\"doUniquePlTlIl\";}i:101;a:3:{i:0;s:8:\"addTable\";i:1;s:10:\"change_tag\";i:2;s:20:\"patch-change_tag.sql\";}i:102;a:3:{i:0;s:8:\"addTable\";i:1;s:11:\"tag_summary\";i:2;s:20:\"patch-change_tag.sql\";}i:103;a:3:{i:0;s:8:\"addTable\";i:1;s:9:\"valid_tag\";i:2;s:20:\"patch-change_tag.sql\";}i:104;a:3:{i:0;s:8:\"addTable\";i:1;s:15:\"user_properties\";i:2;s:25:\"patch-user_properties.sql\";}i:105;a:3:{i:0;s:8:\"addTable\";i:1;s:10:\"log_search\";i:2;s:20:\"patch-log_search.sql\";}i:106;a:1:{i:0;s:21:\"doLogSearchPopulation\";}i:107;a:4:{i:0;s:8:\"addField\";i:1;s:7:\"logging\";i:2;s:13:\"log_user_text\";i:3;s:23:\"patch-log_user_text.sql\";}i:108;a:3:{i:0;s:8:\"addTable\";i:1;s:10:\"l10n_cache\";i:2;s:20:\"patch-l10n_cache.sql\";}i:109;a:3:{i:0;s:8:\"addTable\";i:1;s:13:\"external_user\";i:2;s:23:\"patch-external_user.sql\";}i:110;a:4:{i:0;s:8:\"addIndex\";i:1;s:10:\"log_search\";i:2;s:12:\"ls_field_val\";i:3;s:33:\"patch-log_search-rename-index.sql\";}i:111;a:4:{i:0;s:8:\"addIndex\";i:1;s:10:\"change_tag\";i:2;s:17:\"change_tag_rc_tag\";i:3;s:28:\"patch-change_tag-indexes.sql\";}i:112;a:4:{i:0;s:8:\"addField\";i:1;s:8:\"redirect\";i:2;s:12:\"rd_interwiki\";i:3;s:22:\"patch-rd_interwiki.sql\";}i:113;a:1:{i:0;s:23:\"doUpdateTranscacheField\";}i:114;a:1:{i:0;s:14:\"renameEuWikiId\";}i:115;a:1:{i:0;s:22:\"doUpdateMimeMinorField\";}i:116;a:1:{i:0;s:16:\"doPopulateRevLen\";}i:117;a:3:{i:0;s:8:\"addTable\";i:1;s:7:\"iwlinks\";i:2;s:17:\"patch-iwlinks.sql\";}i:118;a:4:{i:0;s:8:\"addIndex\";i:1;s:7:\"iwlinks\";i:2;s:21:\"iwl_prefix_title_from\";i:3;s:27:\"patch-rename-iwl_prefix.sql\";}i:119;a:4:{i:0;s:8:\"addField\";i:1;s:9:\"updatelog\";i:2;s:8:\"ul_value\";i:3;s:18:\"patch-ul_value.sql\";}i:120;a:4:{i:0;s:8:\"addField\";i:1;s:9:\"interwiki\";i:2;s:6:\"iw_api\";i:3;s:27:\"patch-iw_api_and_wikiid.sql\";}i:121;a:4:{i:0;s:9:\"dropIndex\";i:1;s:7:\"iwlinks\";i:2;s:10:\"iwl_prefix\";i:3;s:25:\"patch-kill-iwl_prefix.sql\";}i:122;a:4:{i:0;s:9:\"dropIndex\";i:1;s:7:\"iwlinks\";i:2;s:21:\"iwl_prefix_from_title\";i:3;s:22:\"patch-kill-iwl_pft.sql\";}i:123;a:4:{i:0;s:8:\"addField\";i:1;s:13:\"categorylinks\";i:2;s:12:\"cl_collation\";i:3;s:40:\"patch-categorylinks-better-collation.sql\";}i:124;a:1:{i:0;s:16:\"doClFieldsUpdate\";}i:125;a:1:{i:0;s:17:\"doCollationUpdate\";}i:126;a:3:{i:0;s:8:\"addTable\";i:1;s:12:\"msg_resource\";i:2;s:22:\"patch-msg_resource.sql\";}i:127;a:3:{i:0;s:8:\"addTable\";i:1;s:11:\"module_deps\";i:2;s:21:\"patch-module_deps.sql\";}}');
-/*!40000 ALTER TABLE `mw_updatelog` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_user`
---
-
-DROP TABLE IF EXISTS `mw_user`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_user` (
-  `user_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
-  `user_name` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `user_real_name` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `user_password` tinyblob NOT NULL,
-  `user_newpassword` tinyblob NOT NULL,
-  `user_newpass_time` binary(14) DEFAULT NULL,
-  `user_email` tinytext NOT NULL,
-  `user_touched` binary(14) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
-  `user_token` binary(32) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
-  `user_email_authenticated` binary(14) DEFAULT NULL,
-  `user_email_token` binary(32) DEFAULT NULL,
-  `user_email_token_expires` binary(14) DEFAULT NULL,
-  `user_registration` binary(14) DEFAULT NULL,
-  `user_editcount` int(11) DEFAULT NULL,
-  PRIMARY KEY (`user_id`),
-  UNIQUE KEY `user_name` (`user_name`),
-  KEY `user_email_token` (`user_email_token`)
-) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_user`
---
-
-LOCK TABLES `mw_user` WRITE;
-/*!40000 ALTER TABLE `mw_user` DISABLE KEYS */;
-INSERT INTO `mw_user` VALUES (1,'WikiSysop','',':B:9c595470:df2c1237ae75896744457e7dfbeb7f90','',NULL,'','','20110110173136','5e3b582786fa8150118cfa78f18de0c5',NULL,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0',NULL,'20110107184113',1);
-/*!40000 ALTER TABLE `mw_user` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_user_groups`
---
-
-DROP TABLE IF EXISTS `mw_user_groups`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_user_groups` (
-  `ug_user` int(10) unsigned NOT NULL DEFAULT '0',
-  `ug_group` varbinary(16) NOT NULL DEFAULT '',
-  UNIQUE KEY `ug_user_group` (`ug_user`,`ug_group`),
-  KEY `ug_group` (`ug_group`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_user_groups`
---
-
-LOCK TABLES `mw_user_groups` WRITE;
-/*!40000 ALTER TABLE `mw_user_groups` DISABLE KEYS */;
-INSERT INTO `mw_user_groups` VALUES (1,'bureaucrat'),(1,'sysop');
-/*!40000 ALTER TABLE `mw_user_groups` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_user_newtalk`
---
-
-DROP TABLE IF EXISTS `mw_user_newtalk`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_user_newtalk` (
-  `user_id` int(11) NOT NULL DEFAULT '0',
-  `user_ip` varbinary(40) NOT NULL DEFAULT '',
-  `user_last_timestamp` binary(14) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
-  KEY `user_id` (`user_id`),
-  KEY `user_ip` (`user_ip`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_user_newtalk`
---
-
-LOCK TABLES `mw_user_newtalk` WRITE;
-/*!40000 ALTER TABLE `mw_user_newtalk` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_user_newtalk` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_user_properties`
---
-
-DROP TABLE IF EXISTS `mw_user_properties`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_user_properties` (
-  `up_user` int(11) NOT NULL,
-  `up_property` varbinary(32) NOT NULL,
-  `up_value` blob,
-  UNIQUE KEY `user_properties_user_property` (`up_user`,`up_property`),
-  KEY `user_properties_property` (`up_property`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_user_properties`
---
-
-LOCK TABLES `mw_user_properties` WRITE;
-/*!40000 ALTER TABLE `mw_user_properties` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_user_properties` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_valid_tag`
---
-
-DROP TABLE IF EXISTS `mw_valid_tag`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_valid_tag` (
-  `vt_tag` varchar(255) NOT NULL,
-  PRIMARY KEY (`vt_tag`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_valid_tag`
---
-
-LOCK TABLES `mw_valid_tag` WRITE;
-/*!40000 ALTER TABLE `mw_valid_tag` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_valid_tag` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_watchlist`
---
-
-DROP TABLE IF EXISTS `mw_watchlist`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_watchlist` (
-  `wl_user` int(10) unsigned NOT NULL,
-  `wl_namespace` int(11) NOT NULL DEFAULT '0',
-  `wl_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `wl_notificationtimestamp` varbinary(14) DEFAULT NULL,
-  UNIQUE KEY `wl_user` (`wl_user`,`wl_namespace`,`wl_title`),
-  KEY `namespace_title` (`wl_namespace`,`wl_title`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_watchlist`
---
-
-LOCK TABLES `mw_watchlist` WRITE;
-/*!40000 ALTER TABLE `mw_watchlist` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_watchlist` ENABLE KEYS */;
-UNLOCK TABLES;
-/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
-
-/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
-/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
-/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
-/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
-/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
-/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
-/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-
--- Dump completed on 2011-01-10  9:34:34
diff --git a/tests/selenium/data/SimpleSeleniumTestImages.zip b/tests/selenium/data/SimpleSeleniumTestImages.zip
deleted file mode 100644 (file)
index 0374a1f..0000000
Binary files a/tests/selenium/data/SimpleSeleniumTestImages.zip and /dev/null differ
diff --git a/tests/selenium/data/Wikipedia-logo-v2-de.png b/tests/selenium/data/Wikipedia-logo-v2-de.png
deleted file mode 100644 (file)
index 7038524..0000000
Binary files a/tests/selenium/data/Wikipedia-logo-v2-de.png and /dev/null differ
diff --git a/tests/selenium/data/mediawiki118_fresh_installation.sql b/tests/selenium/data/mediawiki118_fresh_installation.sql
deleted file mode 100644 (file)
index 7beb9e6..0000000
+++ /dev/null
@@ -1,1543 +0,0 @@
--- MySQL dump 10.13  Distrib 5.1.41, for Win32 (ia32)
---
--- Host: localhost    Database: test_wiki
--- ------------------------------------------------------
--- Server version      5.1.41
-
-/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
-/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
-/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
-/*!40101 SET NAMES utf8 */;
-/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
-/*!40103 SET TIME_ZONE='+00:00' */;
-/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
-/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
-/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
-/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
-
---
--- Table structure for table `mw_archive`
---
-
-DROP TABLE IF EXISTS `mw_archive`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_archive` (
-  `ar_namespace` int(11) NOT NULL DEFAULT '0',
-  `ar_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `ar_text` mediumblob NOT NULL,
-  `ar_comment` tinyblob NOT NULL,
-  `ar_user` int(10) unsigned NOT NULL DEFAULT '0',
-  `ar_user_text` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
-  `ar_timestamp` binary(14) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
-  `ar_minor_edit` tinyint(4) NOT NULL DEFAULT '0',
-  `ar_flags` tinyblob NOT NULL,
-  `ar_rev_id` int(10) unsigned DEFAULT NULL,
-  `ar_text_id` int(10) unsigned DEFAULT NULL,
-  `ar_deleted` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  `ar_len` int(10) unsigned DEFAULT NULL,
-  `ar_page_id` int(10) unsigned DEFAULT NULL,
-  `ar_parent_id` int(10) unsigned DEFAULT NULL,
-  KEY `name_title_timestamp` (`ar_namespace`,`ar_title`,`ar_timestamp`),
-  KEY `usertext_timestamp` (`ar_user_text`,`ar_timestamp`),
-  KEY `ar_page_revid` (`ar_namespace`,`ar_title`,`ar_rev_id`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_archive`
---
-
-LOCK TABLES `mw_archive` WRITE;
-/*!40000 ALTER TABLE `mw_archive` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_archive` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_category`
---
-
-DROP TABLE IF EXISTS `mw_category`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_category` (
-  `cat_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
-  `cat_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
-  `cat_pages` int(11) NOT NULL DEFAULT '0',
-  `cat_subcats` int(11) NOT NULL DEFAULT '0',
-  `cat_files` int(11) NOT NULL DEFAULT '0',
-  `cat_hidden` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  PRIMARY KEY (`cat_id`),
-  UNIQUE KEY `cat_title` (`cat_title`),
-  KEY `cat_pages` (`cat_pages`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_category`
---
-
-LOCK TABLES `mw_category` WRITE;
-/*!40000 ALTER TABLE `mw_category` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_category` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_categorylinks`
---
-
-DROP TABLE IF EXISTS `mw_categorylinks`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_categorylinks` (
-  `cl_from` int(10) unsigned NOT NULL DEFAULT '0',
-  `cl_to` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `cl_sortkey` varbinary(230) NOT NULL DEFAULT '',
-  `cl_sortkey_prefix` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `cl_timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-  `cl_collation` varbinary(32) NOT NULL DEFAULT '',
-  `cl_type` enum('page','subcat','file') NOT NULL DEFAULT 'page',
-  UNIQUE KEY `cl_from` (`cl_from`,`cl_to`),
-  KEY `cl_sortkey` (`cl_to`,`cl_type`,`cl_sortkey`,`cl_from`),
-  KEY `cl_timestamp` (`cl_to`,`cl_timestamp`),
-  KEY `cl_collation` (`cl_collation`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_categorylinks`
---
-
-LOCK TABLES `mw_categorylinks` WRITE;
-/*!40000 ALTER TABLE `mw_categorylinks` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_categorylinks` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_change_tag`
---
-
-DROP TABLE IF EXISTS `mw_change_tag`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_change_tag` (
-  `ct_rc_id` int(11) DEFAULT NULL,
-  `ct_log_id` int(11) DEFAULT NULL,
-  `ct_rev_id` int(11) DEFAULT NULL,
-  `ct_tag` varchar(255) NOT NULL,
-  `ct_params` blob,
-  UNIQUE KEY `change_tag_rc_tag` (`ct_rc_id`,`ct_tag`),
-  UNIQUE KEY `change_tag_log_tag` (`ct_log_id`,`ct_tag`),
-  UNIQUE KEY `change_tag_rev_tag` (`ct_rev_id`,`ct_tag`),
-  KEY `change_tag_tag_id` (`ct_tag`,`ct_rc_id`,`ct_rev_id`,`ct_log_id`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_change_tag`
---
-
-LOCK TABLES `mw_change_tag` WRITE;
-/*!40000 ALTER TABLE `mw_change_tag` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_change_tag` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_external_user`
---
-
-DROP TABLE IF EXISTS `mw_external_user`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_external_user` (
-  `eu_local_id` int(10) unsigned NOT NULL,
-  `eu_external_id` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
-  PRIMARY KEY (`eu_local_id`),
-  UNIQUE KEY `eu_external_id` (`eu_external_id`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_external_user`
---
-
-LOCK TABLES `mw_external_user` WRITE;
-/*!40000 ALTER TABLE `mw_external_user` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_external_user` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_externallinks`
---
-
-DROP TABLE IF EXISTS `mw_externallinks`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_externallinks` (
-  `el_from` int(10) unsigned NOT NULL DEFAULT '0',
-  `el_to` blob NOT NULL,
-  `el_index` blob NOT NULL,
-  KEY `el_from` (`el_from`,`el_to`(40)),
-  KEY `el_to` (`el_to`(60),`el_from`),
-  KEY `el_index` (`el_index`(60))
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_externallinks`
---
-
-LOCK TABLES `mw_externallinks` WRITE;
-/*!40000 ALTER TABLE `mw_externallinks` DISABLE KEYS */;
-INSERT INTO `mw_externallinks` VALUES (1,'http://meta.wikimedia.org/wiki/Help:Contents','http://org.wikimedia.meta./wiki/Help:Contents');
-INSERT INTO `mw_externallinks` VALUES (1,'http://www.mediawiki.org/wiki/Manual:Configuration_settings','http://org.mediawiki.www./wiki/Manual:Configuration_settings');
-INSERT INTO `mw_externallinks` VALUES (1,'http://www.mediawiki.org/wiki/Manual:FAQ','http://org.mediawiki.www./wiki/Manual:FAQ');
-INSERT INTO `mw_externallinks` VALUES (1,'https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce','https://org.wikimedia.lists./mailman/listinfo/mediawiki-announce');
-/*!40000 ALTER TABLE `mw_externallinks` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_filearchive`
---
-
-DROP TABLE IF EXISTS `mw_filearchive`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_filearchive` (
-  `fa_id` int(11) NOT NULL AUTO_INCREMENT,
-  `fa_name` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `fa_archive_name` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT '',
-  `fa_storage_group` varbinary(16) DEFAULT NULL,
-  `fa_storage_key` varbinary(64) DEFAULT '',
-  `fa_deleted_user` int(11) DEFAULT NULL,
-  `fa_deleted_timestamp` binary(14) DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
-  `fa_deleted_reason` text,
-  `fa_size` int(10) unsigned DEFAULT '0',
-  `fa_width` int(11) DEFAULT '0',
-  `fa_height` int(11) DEFAULT '0',
-  `fa_metadata` mediumblob,
-  `fa_bits` int(11) DEFAULT '0',
-  `fa_media_type` enum('UNKNOWN','BITMAP','DRAWING','AUDIO','VIDEO','MULTIMEDIA','OFFICE','TEXT','EXECUTABLE','ARCHIVE') DEFAULT NULL,
-  `fa_major_mime` enum('unknown','application','audio','image','text','video','message','model','multipart') DEFAULT 'unknown',
-  `fa_minor_mime` varbinary(100) DEFAULT 'unknown',
-  `fa_description` tinyblob,
-  `fa_user` int(10) unsigned DEFAULT '0',
-  `fa_user_text` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
-  `fa_timestamp` binary(14) DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
-  `fa_deleted` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  PRIMARY KEY (`fa_id`),
-  KEY `fa_name` (`fa_name`,`fa_timestamp`),
-  KEY `fa_storage_group` (`fa_storage_group`,`fa_storage_key`),
-  KEY `fa_deleted_timestamp` (`fa_deleted_timestamp`),
-  KEY `fa_user_timestamp` (`fa_user_text`,`fa_timestamp`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_filearchive`
---
-
-LOCK TABLES `mw_filearchive` WRITE;
-/*!40000 ALTER TABLE `mw_filearchive` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_filearchive` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_hitcounter`
---
-
-DROP TABLE IF EXISTS `mw_hitcounter`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_hitcounter` (
-  `hc_id` int(10) unsigned NOT NULL
-) ENGINE=MEMORY DEFAULT CHARSET=latin1 MAX_ROWS=25000;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_hitcounter`
---
-
-LOCK TABLES `mw_hitcounter` WRITE;
-/*!40000 ALTER TABLE `mw_hitcounter` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_hitcounter` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_image`
---
-
-DROP TABLE IF EXISTS `mw_image`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_image` (
-  `img_name` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `img_size` int(10) unsigned NOT NULL DEFAULT '0',
-  `img_width` int(11) NOT NULL DEFAULT '0',
-  `img_height` int(11) NOT NULL DEFAULT '0',
-  `img_metadata` mediumblob NOT NULL,
-  `img_bits` int(11) NOT NULL DEFAULT '0',
-  `img_media_type` enum('UNKNOWN','BITMAP','DRAWING','AUDIO','VIDEO','MULTIMEDIA','OFFICE','TEXT','EXECUTABLE','ARCHIVE') DEFAULT NULL,
-  `img_major_mime` enum('unknown','application','audio','image','text','video','message','model','multipart') NOT NULL DEFAULT 'unknown',
-  `img_minor_mime` varbinary(100) NOT NULL DEFAULT 'unknown',
-  `img_description` tinyblob NOT NULL,
-  `img_user` int(10) unsigned NOT NULL DEFAULT '0',
-  `img_user_text` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
-  `img_timestamp` varbinary(14) NOT NULL DEFAULT '',
-  `img_sha1` varbinary(32) NOT NULL DEFAULT '',
-  PRIMARY KEY (`img_name`),
-  KEY `img_usertext_timestamp` (`img_user_text`,`img_timestamp`),
-  KEY `img_size` (`img_size`),
-  KEY `img_timestamp` (`img_timestamp`),
-  KEY `img_sha1` (`img_sha1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_image`
---
-
-LOCK TABLES `mw_image` WRITE;
-/*!40000 ALTER TABLE `mw_image` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_image` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_imagelinks`
---
-
-DROP TABLE IF EXISTS `mw_imagelinks`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_imagelinks` (
-  `il_from` int(10) unsigned NOT NULL DEFAULT '0',
-  `il_to` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  UNIQUE KEY `il_from` (`il_from`,`il_to`),
-  UNIQUE KEY `il_to` (`il_to`,`il_from`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_imagelinks`
---
-
-LOCK TABLES `mw_imagelinks` WRITE;
-/*!40000 ALTER TABLE `mw_imagelinks` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_imagelinks` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_interwiki`
---
-
-DROP TABLE IF EXISTS `mw_interwiki`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_interwiki` (
-  `iw_prefix` varchar(32) NOT NULL,
-  `iw_url` blob NOT NULL,
-  `iw_api` blob NOT NULL,
-  `iw_wikiid` varchar(64) NOT NULL,
-  `iw_local` tinyint(1) NOT NULL,
-  `iw_trans` tinyint(4) NOT NULL DEFAULT '0',
-  UNIQUE KEY `iw_prefix` (`iw_prefix`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_interwiki`
---
-
-LOCK TABLES `mw_interwiki` WRITE;
-/*!40000 ALTER TABLE `mw_interwiki` DISABLE KEYS */;
-INSERT INTO `mw_interwiki` VALUES ('acronym','http://www.acronymfinder.com/af-query.asp?String=exact&Acronym=$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('advogato','http://www.advogato.org/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('annotationwiki','http://www.seedwiki.com/page.cfm?wikiid=368&doc=$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('arxiv','http://www.arxiv.org/abs/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('c2find','http://c2.com/cgi/wiki?FindPage&value=$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('cache','http://www.google.com/search?q=cache:$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('commons','http://commons.wikimedia.org/wiki/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('corpknowpedia','http://corpknowpedia.org/wiki/index.php/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('dictionary','http://www.dict.org/bin/Dict?Database=*&Form=Dict1&Strategy=*&Query=$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('disinfopedia','http://www.disinfopedia.org/wiki.phtml?title=$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('docbook','http://wiki.docbook.org/topic/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('doi','http://dx.doi.org/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('drumcorpswiki','http://www.drumcorpswiki.com/index.php/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('dwjwiki','http://www.suberic.net/cgi-bin/dwj/wiki.cgi?$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('elibre','http://enciclopedia.us.es/index.php/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('emacswiki','http://www.emacswiki.org/cgi-bin/wiki.pl?$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('foldoc','http://foldoc.org/?$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('foxwiki','http://fox.wikis.com/wc.dll?Wiki~$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('freebsdman','http://www.FreeBSD.org/cgi/man.cgi?apropos=1&query=$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('gej','http://www.esperanto.de/cgi-bin/aktivikio/wiki.pl?$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('gentoo-wiki','http://gentoo-wiki.com/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('google','http://www.google.com/search?q=$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('googlegroups','http://groups.google.com/groups?q=$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('hammondwiki','http://www.dairiki.org/HammondWiki/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('hewikisource','http://he.wikisource.org/wiki/$1','','',1,0);
-INSERT INTO `mw_interwiki` VALUES ('hrwiki','http://www.hrwiki.org/index.php/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('imdb','http://us.imdb.com/Title?$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('jargonfile','http://sunir.org/apps/meta.pl?wiki=JargonFile&redirect=$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('jspwiki','http://www.jspwiki.org/wiki/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('keiki','http://kei.ki/en/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('kmwiki','http://kmwiki.wikispaces.com/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('linuxwiki','http://linuxwiki.de/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('lojban','http://www.lojban.org/tiki/tiki-index.php?page=$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('lqwiki','http://wiki.linuxquestions.org/wiki/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('lugkr','http://lug-kr.sourceforge.net/cgi-bin/lugwiki.pl?$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('mathsongswiki','http://SeedWiki.com/page.cfm?wikiid=237&doc=$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('meatball','http://www.usemod.com/cgi-bin/mb.pl?$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('mediawikiwiki','http://www.mediawiki.org/wiki/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('mediazilla','https://bugzilla.wikimedia.org/$1','','',1,0);
-INSERT INTO `mw_interwiki` VALUES ('memoryalpha','http://www.memory-alpha.org/en/index.php/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('metawiki','http://sunir.org/apps/meta.pl?$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('metawikimedia','http://meta.wikimedia.org/wiki/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('moinmoin','http://purl.net/wiki/moin/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('mozillawiki','http://wiki.mozilla.org/index.php/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('mw','http://www.mediawiki.org/wiki/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('oeis','http://www.research.att.com/cgi-bin/access.cgi/as/njas/sequences/eisA.cgi?Anum=$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('openfacts','http://openfacts.berlios.de/index.phtml?title=$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('openwiki','http://openwiki.com/?$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('pmeg','http://www.bertilow.com/pmeg/$1.php','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('ppr','http://c2.com/cgi/wiki?$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('pythoninfo','http://wiki.python.org/moin/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('rfc','http://www.rfc-editor.org/rfc/rfc$1.txt','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('s23wiki','http://is-root.de/wiki/index.php/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('seattlewiki','http://seattle.wikia.com/wiki/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('seattlewireless','http://seattlewireless.net/?$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('senseislibrary','http://senseis.xmp.net/?$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('sourceforge','http://sourceforge.net/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('squeak','http://wiki.squeak.org/squeak/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('susning','http://www.susning.nu/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('svgwiki','http://wiki.svg.org/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('tavi','http://tavi.sourceforge.net/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('tejo','http://www.tejo.org/vikio/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('theopedia','http://www.theopedia.com/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('tmbw','http://www.tmbw.net/wiki/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('tmnet','http://www.technomanifestos.net/?$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('tmwiki','http://www.EasyTopicMaps.com/?page=$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('twiki','http://twiki.org/cgi-bin/view/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('uea','http://www.tejo.org/uea/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('unreal','http://wiki.beyondunreal.com/wiki/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('usemod','http://www.usemod.com/cgi-bin/wiki.pl?$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('vinismo','http://vinismo.com/en/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('webseitzwiki','http://webseitz.fluxent.com/wiki/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('why','http://clublet.com/c/c/why?$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('wiki','http://c2.com/cgi/wiki?$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('wikia','http://www.wikia.com/wiki/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('wikibooks','http://en.wikibooks.org/wiki/$1','','',1,0);
-INSERT INTO `mw_interwiki` VALUES ('wikicities','http://www.wikia.com/wiki/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('wikif1','http://www.wikif1.org/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('wikihow','http://www.wikihow.com/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('wikimedia','http://wikimediafoundation.org/wiki/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('wikinews','http://en.wikinews.org/wiki/$1','','',1,0);
-INSERT INTO `mw_interwiki` VALUES ('wikinfo','http://www.wikinfo.org/index.php/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('wikipedia','http://en.wikipedia.org/wiki/$1','','',1,0);
-INSERT INTO `mw_interwiki` VALUES ('wikiquote','http://en.wikiquote.org/wiki/$1','','',1,0);
-INSERT INTO `mw_interwiki` VALUES ('wikisource','http://wikisource.org/wiki/$1','','',1,0);
-INSERT INTO `mw_interwiki` VALUES ('wikispecies','http://species.wikimedia.org/wiki/$1','','',1,0);
-INSERT INTO `mw_interwiki` VALUES ('wikitravel','http://wikitravel.org/en/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('wikiversity','http://en.wikiversity.org/wiki/$1','','',1,0);
-INSERT INTO `mw_interwiki` VALUES ('wikt','http://en.wiktionary.org/wiki/$1','','',1,0);
-INSERT INTO `mw_interwiki` VALUES ('wiktionary','http://en.wiktionary.org/wiki/$1','','',1,0);
-INSERT INTO `mw_interwiki` VALUES ('wlug','http://www.wlug.org.nz/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('zwiki','http://zwiki.org/$1','','',0,0);
-INSERT INTO `mw_interwiki` VALUES ('zzz wiki','http://wiki.zzz.ee/index.php/$1','','',0,0);
-/*!40000 ALTER TABLE `mw_interwiki` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_ipblocks`
---
-
-DROP TABLE IF EXISTS `mw_ipblocks`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_ipblocks` (
-  `ipb_id` int(11) NOT NULL AUTO_INCREMENT,
-  `ipb_address` tinyblob NOT NULL,
-  `ipb_user` int(10) unsigned NOT NULL DEFAULT '0',
-  `ipb_by` int(10) unsigned NOT NULL DEFAULT '0',
-  `ipb_by_text` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `ipb_reason` tinyblob NOT NULL,
-  `ipb_timestamp` binary(14) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
-  `ipb_auto` tinyint(1) NOT NULL DEFAULT '0',
-  `ipb_anon_only` tinyint(1) NOT NULL DEFAULT '0',
-  `ipb_create_account` tinyint(1) NOT NULL DEFAULT '1',
-  `ipb_enable_autoblock` tinyint(1) NOT NULL DEFAULT '1',
-  `ipb_expiry` varbinary(14) NOT NULL DEFAULT '',
-  `ipb_range_start` tinyblob NOT NULL,
-  `ipb_range_end` tinyblob NOT NULL,
-  `ipb_deleted` tinyint(1) NOT NULL DEFAULT '0',
-  `ipb_block_email` tinyint(1) NOT NULL DEFAULT '0',
-  `ipb_allow_usertalk` tinyint(1) NOT NULL DEFAULT '0',
-  PRIMARY KEY (`ipb_id`),
-  UNIQUE KEY `ipb_address` (`ipb_address`(255),`ipb_user`,`ipb_auto`,`ipb_anon_only`),
-  KEY `ipb_user` (`ipb_user`),
-  KEY `ipb_range` (`ipb_range_start`(8),`ipb_range_end`(8)),
-  KEY `ipb_timestamp` (`ipb_timestamp`),
-  KEY `ipb_expiry` (`ipb_expiry`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_ipblocks`
---
-
-LOCK TABLES `mw_ipblocks` WRITE;
-/*!40000 ALTER TABLE `mw_ipblocks` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_ipblocks` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_iwlinks`
---
-
-DROP TABLE IF EXISTS `mw_iwlinks`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_iwlinks` (
-  `iwl_from` int(10) unsigned NOT NULL DEFAULT '0',
-  `iwl_prefix` varbinary(20) NOT NULL DEFAULT '',
-  `iwl_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  UNIQUE KEY `iwl_from` (`iwl_from`,`iwl_prefix`,`iwl_title`),
-  UNIQUE KEY `iwl_prefix_title_from` (`iwl_prefix`,`iwl_title`,`iwl_from`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_iwlinks`
---
-
-LOCK TABLES `mw_iwlinks` WRITE;
-/*!40000 ALTER TABLE `mw_iwlinks` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_iwlinks` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_job`
---
-
-DROP TABLE IF EXISTS `mw_job`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_job` (
-  `job_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
-  `job_cmd` varbinary(60) NOT NULL DEFAULT '',
-  `job_namespace` int(11) NOT NULL,
-  `job_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
-  `job_params` blob NOT NULL,
-  PRIMARY KEY (`job_id`),
-  KEY `job_cmd` (`job_cmd`,`job_namespace`,`job_title`,`job_params`(128))
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_job`
---
-
-LOCK TABLES `mw_job` WRITE;
-/*!40000 ALTER TABLE `mw_job` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_job` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_l10n_cache`
---
-
-DROP TABLE IF EXISTS `mw_l10n_cache`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_l10n_cache` (
-  `lc_lang` varbinary(32) NOT NULL,
-  `lc_key` varchar(255) NOT NULL,
-  `lc_value` mediumblob NOT NULL,
-  KEY `lc_lang_key` (`lc_lang`,`lc_key`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
-
-
---
--- Table structure for table `mw_langlinks`
---
-
-DROP TABLE IF EXISTS `mw_langlinks`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_langlinks` (
-  `ll_from` int(10) unsigned NOT NULL DEFAULT '0',
-  `ll_lang` varbinary(20) NOT NULL DEFAULT '',
-  `ll_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  UNIQUE KEY `ll_from` (`ll_from`,`ll_lang`),
-  KEY `ll_lang` (`ll_lang`,`ll_title`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_langlinks`
---
-
-LOCK TABLES `mw_langlinks` WRITE;
-/*!40000 ALTER TABLE `mw_langlinks` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_langlinks` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_log_search`
---
-
-DROP TABLE IF EXISTS `mw_log_search`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_log_search` (
-  `ls_field` varbinary(32) NOT NULL,
-  `ls_value` varchar(255) NOT NULL,
-  `ls_log_id` int(10) unsigned NOT NULL DEFAULT '0',
-  UNIQUE KEY `ls_field_val` (`ls_field`,`ls_value`,`ls_log_id`),
-  KEY `ls_log_id` (`ls_log_id`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_log_search`
---
-
-LOCK TABLES `mw_log_search` WRITE;
-/*!40000 ALTER TABLE `mw_log_search` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_log_search` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_logging`
---
-
-DROP TABLE IF EXISTS `mw_logging`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_logging` (
-  `log_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
-  `log_type` varbinary(32) NOT NULL DEFAULT '',
-  `log_action` varbinary(32) NOT NULL DEFAULT '',
-  `log_timestamp` binary(14) NOT NULL DEFAULT '19700101000000',
-  `log_user` int(10) unsigned NOT NULL DEFAULT '0',
-  `log_user_text` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `log_namespace` int(11) NOT NULL DEFAULT '0',
-  `log_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `log_page` int(10) unsigned DEFAULT NULL,
-  `log_comment` varchar(255) NOT NULL DEFAULT '',
-  `log_params` blob NOT NULL,
-  `log_deleted` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  PRIMARY KEY (`log_id`),
-  KEY `type_time` (`log_type`,`log_timestamp`),
-  KEY `user_time` (`log_user`,`log_timestamp`),
-  KEY `page_time` (`log_namespace`,`log_title`,`log_timestamp`),
-  KEY `times` (`log_timestamp`),
-  KEY `log_user_type_time` (`log_user`,`log_type`,`log_timestamp`),
-  KEY `log_page_id_time` (`log_page`,`log_timestamp`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_logging`
---
-
-LOCK TABLES `mw_logging` WRITE;
-/*!40000 ALTER TABLE `mw_logging` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_logging` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_math`
---
-
-DROP TABLE IF EXISTS `mw_math`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_math` (
-  `math_inputhash` varbinary(16) NOT NULL,
-  `math_outputhash` varbinary(16) NOT NULL,
-  `math_html_conservativeness` tinyint(4) NOT NULL,
-  `math_html` text,
-  `math_mathml` text,
-  UNIQUE KEY `math_inputhash` (`math_inputhash`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_math`
---
-
-LOCK TABLES `mw_math` WRITE;
-/*!40000 ALTER TABLE `mw_math` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_math` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_module_deps`
---
-
-DROP TABLE IF EXISTS `mw_module_deps`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_module_deps` (
-  `md_module` varbinary(255) NOT NULL,
-  `md_skin` varbinary(32) NOT NULL,
-  `md_deps` mediumblob NOT NULL,
-  UNIQUE KEY `md_module_skin` (`md_module`,`md_skin`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_module_deps`
---
-
-LOCK TABLES `mw_module_deps` WRITE;
-/*!40000 ALTER TABLE `mw_module_deps` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_module_deps` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_msg_resource`
---
-
-DROP TABLE IF EXISTS `mw_msg_resource`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_msg_resource` (
-  `mr_resource` varbinary(255) NOT NULL,
-  `mr_lang` varbinary(32) NOT NULL,
-  `mr_blob` mediumblob NOT NULL,
-  `mr_timestamp` binary(14) NOT NULL,
-  UNIQUE KEY `mr_resource_lang` (`mr_resource`,`mr_lang`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_msg_resource`
---
-
-LOCK TABLES `mw_msg_resource` WRITE;
-/*!40000 ALTER TABLE `mw_msg_resource` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_msg_resource` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_msg_resource_links`
---
-
-DROP TABLE IF EXISTS `mw_msg_resource_links`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_msg_resource_links` (
-  `mrl_resource` varbinary(255) NOT NULL,
-  `mrl_message` varbinary(255) NOT NULL,
-  UNIQUE KEY `mrl_message_resource` (`mrl_message`,`mrl_resource`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_msg_resource_links`
---
-
-LOCK TABLES `mw_msg_resource_links` WRITE;
-/*!40000 ALTER TABLE `mw_msg_resource_links` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_msg_resource_links` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_objectcache`
---
-
-DROP TABLE IF EXISTS `mw_objectcache`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_objectcache` (
-  `keyname` varbinary(255) NOT NULL DEFAULT '',
-  `value` mediumblob,
-  `exptime` datetime DEFAULT NULL,
-  PRIMARY KEY (`keyname`),
-  KEY `exptime` (`exptime`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_objectcache`
---
-
-LOCK TABLES `mw_objectcache` WRITE;
-/*!40000 ALTER TABLE `mw_objectcache` DISABLE KEYS */;
-INSERT INTO `mw_objectcache` VALUES ('test_wiki-mw_:messages:en','K�2��.�2�R\ns\r\n���S�δ2��\ 5\0','2010-12-31 13:16:31');
-INSERT INTO `mw_objectcache` VALUES ('test_wiki-mw_:pcache:idhash:1-0!*!*!!en!*','�V[o�F\14�g~��\ f��\12\ 6B��P��m\12)$TK�\ fU�\ 6�\0�����8$\e\7f�9�a\rI�l��X>��ܹ�q�\aSa,��ʕ�\vx��?[~ʃ|\ 6�.\18Z\1e��\ 3\1e$�8Y�\'�I�Y�K�\16�-\04�U����J�\'&�uB)�:I�\18��\10���E�m�\1csk`�`k\ 3�Q�v��a��\13�\rZ��t�0����+P%GE\a�ـ�JX;\n\10\12\18-\14s\ 4\19P�@\17�B�b\13���8~�첒\19$�\18�ea\10\12�υ��f��+���0[,�F\18�x��d�\1d\'�\14z�0��BJ���=���\17J��c�\\��:�\14�&B��T��\'��C��Fdÿ׆Fq����Gd����%8G�0��A\16�I�\ 2�;                Ԙ\1d`�7�5�LI\r\ 1��(���{�c�����\18g+��8Qr�&�ͦ��A)�V��ЕPT��\\UƧtn�\1e�Z�\ 3e�SfJZ\1f(V\ 1\ 1\ fP�}��\b��0��O�N     �=j�\\H�\v�y�\\�\1eU[h]T:�\f��bd��u��\10+�j%\'�6k��f:E�\1c;�@Y\18ך��\144���Ȁ�\b�q�\v��\7fZ�º6<b�3��TU(d�\17�,\n���Y|�e�\'\a�5��T�\ 1\13fU�8}�\"��\ 4m�\ 3��/\10���}Uk�\119o��;��\ 3��|*R?�n���   3d��g1��y�\\f8gk\1e�����w\ 2��=�\18\1c\16\ 4�:/Y7���ۋ�^<�Ō����\15v#���i����\ 6C�#��6\Z�.0�Ua$4\19\11�=\Z���;�\ 1�4����\ 1Y=���5��\ 6�:kpΐq��Ŧ4��X���C��q\1fYߵ-��Lj�����D�f��\e��\f�:�\1e��\19�(3t��14C��J�#����\ 5����\15��WXT���Δy:�^�6�v�7����I�U�Ee�\a�(�p0��ga�6\7fMj��Sc�,ѫ@��ޅ+R\ 5\ f����A��xХ\'6���utǷbۛ��\17`j�8ؚ�G�IC<KS��\ 65�|�krJ\ 6\ry�\\b3xP���\ 3��ua�@�\ f���$SS�`��tQ.gw\17W��\r\19@\'���w�� ��\bxZ(�>5\ 4{�\v\ f��\adw�>�=J)\r�6\15t ��X��\12��M��\b�B�\n�ŖT��\13��b>�qg���\12\v\ 47�\f�z�n\ e7��vwr�-%u�-Qi�iX1��Ne\13���A#�v��\15ӧ�3��?','2010-12-31 13:16:31');
-INSERT INTO `mw_objectcache` VALUES ('test_wiki-mw_:pcache:idoptions:1','E��\ e�@\fD��\1f`�\v\"v�ƣ��Wh��,�b�!�\18⭙7�L+�\13\1c|}�t\f��I�$�<��\ 1�F\rpSl�4����OJN`\r\Z���\f\f\17ծ���)�\a�PY��$�K�\ f���գ9�Vjp72��E���c�Wp�2��\acVxu7\1e��\e        ����\b\12p#�r=.���[>y)\ f\ f\1fZp��\ 5','2010-12-31 13:16:31');
-INSERT INTO `mw_objectcache` VALUES ('test_wiki-mw_:resourceloader:filter:minify-css:3832ee25d9c44988461f5f339b9b6a48','+�26�Rr�MM�LTH�ɩV\0�Z(��(3�\ 4(R�d\r\0','2038-01-19 03:14:07');
-INSERT INTO `mw_objectcache` VALUES ('test_wiki-mw_:resourceloader:filter:minify-css:aa0df16258ad99a1d249e796b5067ed9','+�2��Rr�MM�LTH�ɩN��K-�Q.,�L�NJ,R\0��s򋬔�\12\r���V�\Z\0','2038-01-19 03:14:07');
-INSERT INTO `mw_objectcache` VALUES ('test_wiki-mw_:resourceloader:filter:minify-js:22814eeadc9cf0a9ebcd844e14198e66','m��r�0\f��y\f��\19��r�&Qޡמ!\n�\18qQ�Xq;}���$��ވ� �c!]]].o5S�\n�)Fq\f\ e��L^\18\ e�?�s�F�\ 2!\1d�O\a�M\\�������\0���N��\18Ɂ���լ�\ e���:��-�j��F��{ۅ�G�\13\"i�\ e� \11\Z�6�K����!��Y]=�F[�\ f~竍\17\12��䶃\16\b\12���`��\a9N�Ǵ���@�K��\11\ f|z�?1�A��\1f@J#_ԁ�7\'�l\18�1)\vJ�͵�).�3\vz�f�T�A���H\ eњ�[#)�BzRA�7֌��\"T�*~SW�\a\11\1c�/P���B�Ŏ;\Z�ay�6\1c����+U��?.$�6��-u\1dT�v@h��s�&�����Nإb\e�fJ�~\ 5�]\ 36\19��p��/q)�\12>\ f�E�1�\ 4�͔A\ne�L�g\ZE�`cW�����`fJ�E�a\19��>��b\n�ӑd�.u�do�\e�[\e�\nt��b�+�\1f��l\1f\Z?X*��Y�\1f(�օ\10;\e�L�\1cJqť\ 6ɝ\10���d$\19�\"�WzG�-@b~\ f+�#�kǞَ�Ƃ~������P)B  ���\16�q�Җ2��\11�r�Rl�\15���\ 1`\1cz   �\ f4�����ÝX�m�;�X݁t;r.�sA�\15�R��\ 5y)�kA�\nR�JT��J�U��*�W��_ߟ�4@�vt��f���\7f>\15\ 6���x���\ 3','2038-01-19 03:14:07');
-INSERT INTO `mw_objectcache` VALUES ('test_wiki-mw_:resourceloader:filter:minify-js:dd9440c19c575629ac5ec90e489cf62e','+�21�R�\ 2��Ԕ�����L���Ĕ�\"��ĒT�j��̒T%+���ĔJ�ZMk.%k\0','2038-01-19 03:14:07');
-/*!40000 ALTER TABLE `mw_objectcache` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_oldimage`
---
-
-DROP TABLE IF EXISTS `mw_oldimage`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_oldimage` (
-  `oi_name` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `oi_archive_name` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `oi_size` int(10) unsigned NOT NULL DEFAULT '0',
-  `oi_width` int(11) NOT NULL DEFAULT '0',
-  `oi_height` int(11) NOT NULL DEFAULT '0',
-  `oi_bits` int(11) NOT NULL DEFAULT '0',
-  `oi_description` tinyblob NOT NULL,
-  `oi_user` int(10) unsigned NOT NULL DEFAULT '0',
-  `oi_user_text` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
-  `oi_timestamp` binary(14) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
-  `oi_metadata` mediumblob NOT NULL,
-  `oi_media_type` enum('UNKNOWN','BITMAP','DRAWING','AUDIO','VIDEO','MULTIMEDIA','OFFICE','TEXT','EXECUTABLE','ARCHIVE') DEFAULT NULL,
-  `oi_major_mime` enum('unknown','application','audio','image','text','video','message','model','multipart') NOT NULL DEFAULT 'unknown',
-  `oi_minor_mime` varbinary(100) NOT NULL DEFAULT 'unknown',
-  `oi_deleted` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  `oi_sha1` varbinary(32) NOT NULL DEFAULT '',
-  KEY `oi_usertext_timestamp` (`oi_user_text`,`oi_timestamp`),
-  KEY `oi_name_timestamp` (`oi_name`,`oi_timestamp`),
-  KEY `oi_name_archive_name` (`oi_name`,`oi_archive_name`(14)),
-  KEY `oi_sha1` (`oi_sha1`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_oldimage`
---
-
-LOCK TABLES `mw_oldimage` WRITE;
-/*!40000 ALTER TABLE `mw_oldimage` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_oldimage` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_page`
---
-
-DROP TABLE IF EXISTS `mw_page`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_page` (
-  `page_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
-  `page_namespace` int(11) NOT NULL,
-  `page_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
-  `page_restrictions` tinyblob NOT NULL,
-  `page_counter` bigint(20) unsigned NOT NULL DEFAULT '0',
-  `page_is_redirect` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  `page_is_new` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  `page_random` double unsigned NOT NULL,
-  `page_touched` binary(14) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
-  `page_latest` int(10) unsigned NOT NULL,
-  `page_len` int(10) unsigned NOT NULL,
-  PRIMARY KEY (`page_id`),
-  UNIQUE KEY `name_title` (`page_namespace`,`page_title`),
-  KEY `page_random` (`page_random`),
-  KEY `page_len` (`page_len`)
-) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_page`
---
-
-LOCK TABLES `mw_page` WRITE;
-/*!40000 ALTER TABLE `mw_page` DISABLE KEYS */;
-INSERT INTO `mw_page` VALUES (1,0,'Main_Page','',1,0,1,0.334989576352,'20101230131547',1,438);
-/*!40000 ALTER TABLE `mw_page` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_page_props`
---
-
-DROP TABLE IF EXISTS `mw_page_props`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_page_props` (
-  `pp_page` int(11) NOT NULL,
-  `pp_propname` varbinary(60) NOT NULL,
-  `pp_value` blob NOT NULL,
-  UNIQUE KEY `pp_page_propname` (`pp_page`,`pp_propname`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_page_props`
---
-
-LOCK TABLES `mw_page_props` WRITE;
-/*!40000 ALTER TABLE `mw_page_props` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_page_props` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_page_restrictions`
---
-
-DROP TABLE IF EXISTS `mw_page_restrictions`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_page_restrictions` (
-  `pr_page` int(11) NOT NULL,
-  `pr_type` varbinary(60) NOT NULL,
-  `pr_level` varbinary(60) NOT NULL,
-  `pr_cascade` tinyint(4) NOT NULL,
-  `pr_user` int(11) DEFAULT NULL,
-  `pr_expiry` varbinary(14) DEFAULT NULL,
-  `pr_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
-  PRIMARY KEY (`pr_id`),
-  UNIQUE KEY `pr_pagetype` (`pr_page`,`pr_type`),
-  KEY `pr_typelevel` (`pr_type`,`pr_level`),
-  KEY `pr_level` (`pr_level`),
-  KEY `pr_cascade` (`pr_cascade`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_page_restrictions`
---
-
-LOCK TABLES `mw_page_restrictions` WRITE;
-/*!40000 ALTER TABLE `mw_page_restrictions` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_page_restrictions` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_pagelinks`
---
-
-DROP TABLE IF EXISTS `mw_pagelinks`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_pagelinks` (
-  `pl_from` int(10) unsigned NOT NULL DEFAULT '0',
-  `pl_namespace` int(11) NOT NULL DEFAULT '0',
-  `pl_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  UNIQUE KEY `pl_from` (`pl_from`,`pl_namespace`,`pl_title`),
-  UNIQUE KEY `pl_namespace` (`pl_namespace`,`pl_title`,`pl_from`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_pagelinks`
---
-
-LOCK TABLES `mw_pagelinks` WRITE;
-/*!40000 ALTER TABLE `mw_pagelinks` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_pagelinks` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_protected_titles`
---
-
-DROP TABLE IF EXISTS `mw_protected_titles`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_protected_titles` (
-  `pt_namespace` int(11) NOT NULL,
-  `pt_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
-  `pt_user` int(10) unsigned NOT NULL,
-  `pt_reason` tinyblob,
-  `pt_timestamp` binary(14) NOT NULL,
-  `pt_expiry` varbinary(14) NOT NULL DEFAULT '',
-  `pt_create_perm` varbinary(60) NOT NULL,
-  UNIQUE KEY `pt_namespace_title` (`pt_namespace`,`pt_title`),
-  KEY `pt_timestamp` (`pt_timestamp`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_protected_titles`
---
-
-LOCK TABLES `mw_protected_titles` WRITE;
-/*!40000 ALTER TABLE `mw_protected_titles` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_protected_titles` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_querycache`
---
-
-DROP TABLE IF EXISTS `mw_querycache`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_querycache` (
-  `qc_type` varbinary(32) NOT NULL,
-  `qc_value` int(10) unsigned NOT NULL DEFAULT '0',
-  `qc_namespace` int(11) NOT NULL DEFAULT '0',
-  `qc_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  KEY `qc_type` (`qc_type`,`qc_value`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_querycache`
---
-
-LOCK TABLES `mw_querycache` WRITE;
-/*!40000 ALTER TABLE `mw_querycache` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_querycache` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_querycache_info`
---
-
-DROP TABLE IF EXISTS `mw_querycache_info`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_querycache_info` (
-  `qci_type` varbinary(32) NOT NULL DEFAULT '',
-  `qci_timestamp` binary(14) NOT NULL DEFAULT '19700101000000',
-  UNIQUE KEY `qci_type` (`qci_type`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_querycache_info`
---
-
-LOCK TABLES `mw_querycache_info` WRITE;
-/*!40000 ALTER TABLE `mw_querycache_info` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_querycache_info` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_querycachetwo`
---
-
-DROP TABLE IF EXISTS `mw_querycachetwo`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_querycachetwo` (
-  `qcc_type` varbinary(32) NOT NULL,
-  `qcc_value` int(10) unsigned NOT NULL DEFAULT '0',
-  `qcc_namespace` int(11) NOT NULL DEFAULT '0',
-  `qcc_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `qcc_namespacetwo` int(11) NOT NULL DEFAULT '0',
-  `qcc_titletwo` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  KEY `qcc_type` (`qcc_type`,`qcc_value`),
-  KEY `qcc_title` (`qcc_type`,`qcc_namespace`,`qcc_title`),
-  KEY `qcc_titletwo` (`qcc_type`,`qcc_namespacetwo`,`qcc_titletwo`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_querycachetwo`
---
-
-LOCK TABLES `mw_querycachetwo` WRITE;
-/*!40000 ALTER TABLE `mw_querycachetwo` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_querycachetwo` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_recentchanges`
---
-
-DROP TABLE IF EXISTS `mw_recentchanges`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_recentchanges` (
-  `rc_id` int(11) NOT NULL AUTO_INCREMENT,
-  `rc_timestamp` varbinary(14) NOT NULL DEFAULT '',
-  `rc_cur_time` varbinary(14) NOT NULL DEFAULT '',
-  `rc_user` int(10) unsigned NOT NULL DEFAULT '0',
-  `rc_user_text` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
-  `rc_namespace` int(11) NOT NULL DEFAULT '0',
-  `rc_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `rc_comment` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `rc_minor` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  `rc_bot` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  `rc_new` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  `rc_cur_id` int(10) unsigned NOT NULL DEFAULT '0',
-  `rc_this_oldid` int(10) unsigned NOT NULL DEFAULT '0',
-  `rc_last_oldid` int(10) unsigned NOT NULL DEFAULT '0',
-  `rc_type` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  `rc_moved_to_ns` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  `rc_moved_to_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `rc_patrolled` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  `rc_ip` varbinary(40) NOT NULL DEFAULT '',
-  `rc_old_len` int(11) DEFAULT NULL,
-  `rc_new_len` int(11) DEFAULT NULL,
-  `rc_deleted` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  `rc_logid` int(10) unsigned NOT NULL DEFAULT '0',
-  `rc_log_type` varbinary(255) DEFAULT NULL,
-  `rc_log_action` varbinary(255) DEFAULT NULL,
-  `rc_params` blob,
-  PRIMARY KEY (`rc_id`),
-  KEY `rc_timestamp` (`rc_timestamp`),
-  KEY `rc_namespace_title` (`rc_namespace`,`rc_title`),
-  KEY `rc_cur_id` (`rc_cur_id`),
-  KEY `new_name_timestamp` (`rc_new`,`rc_namespace`,`rc_timestamp`),
-  KEY `rc_ip` (`rc_ip`),
-  KEY `rc_ns_usertext` (`rc_namespace`,`rc_user_text`),
-  KEY `rc_user_text` (`rc_user_text`,`rc_timestamp`)
-) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_recentchanges`
---
-
-LOCK TABLES `mw_recentchanges` WRITE;
-/*!40000 ALTER TABLE `mw_recentchanges` DISABLE KEYS */;
-INSERT INTO `mw_recentchanges` VALUES (1,'20101230131547','20101230131547',0,'MediaWiki Default',0,'Main_Page','',0,0,1,1,1,0,1,0,'',0,'::1',0,438,0,0,NULL,'','');
-/*!40000 ALTER TABLE `mw_recentchanges` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_redirect`
---
-
-DROP TABLE IF EXISTS `mw_redirect`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_redirect` (
-  `rd_from` int(10) unsigned NOT NULL DEFAULT '0',
-  `rd_namespace` int(11) NOT NULL DEFAULT '0',
-  `rd_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `rd_interwiki` varchar(32) DEFAULT NULL,
-  `rd_fragment` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
-  PRIMARY KEY (`rd_from`),
-  KEY `rd_ns_title` (`rd_namespace`,`rd_title`,`rd_from`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_redirect`
---
-
-LOCK TABLES `mw_redirect` WRITE;
-/*!40000 ALTER TABLE `mw_redirect` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_redirect` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_revision`
---
-
-DROP TABLE IF EXISTS `mw_revision`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_revision` (
-  `rev_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
-  `rev_page` int(10) unsigned NOT NULL,
-  `rev_text_id` int(10) unsigned NOT NULL,
-  `rev_comment` tinyblob NOT NULL,
-  `rev_user` int(10) unsigned NOT NULL DEFAULT '0',
-  `rev_user_text` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `rev_timestamp` binary(14) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
-  `rev_minor_edit` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  `rev_deleted` tinyint(3) unsigned NOT NULL DEFAULT '0',
-  `rev_len` int(10) unsigned DEFAULT NULL,
-  `rev_parent_id` int(10) unsigned DEFAULT NULL,
-  PRIMARY KEY (`rev_id`),
-  UNIQUE KEY `rev_page_id` (`rev_page`,`rev_id`),
-  KEY `rev_timestamp` (`rev_timestamp`),
-  KEY `page_timestamp` (`rev_page`,`rev_timestamp`),
-  KEY `user_timestamp` (`rev_user`,`rev_timestamp`),
-  KEY `usertext_timestamp` (`rev_user_text`,`rev_timestamp`)
-) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 MAX_ROWS=10000000 AVG_ROW_LENGTH=1024;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_revision`
---
-
-LOCK TABLES `mw_revision` WRITE;
-/*!40000 ALTER TABLE `mw_revision` DISABLE KEYS */;
-INSERT INTO `mw_revision` VALUES (1,1,1,'',0,'MediaWiki Default','20101230131547',0,0,438,0);
-/*!40000 ALTER TABLE `mw_revision` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_searchindex`
---
-
-DROP TABLE IF EXISTS `mw_searchindex`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_searchindex` (
-  `si_page` int(10) unsigned NOT NULL,
-  `si_title` varchar(255) NOT NULL DEFAULT '',
-  `si_text` mediumtext NOT NULL,
-  UNIQUE KEY `si_page` (`si_page`),
-  FULLTEXT KEY `si_title` (`si_title`),
-  FULLTEXT KEY `si_text` (`si_text`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_searchindex`
---
-
-LOCK TABLES `mw_searchindex` WRITE;
-/*!40000 ALTER TABLE `mw_searchindex` DISABLE KEYS */;
-INSERT INTO `mw_searchindex` VALUES (1,'main page','  mediawiki hasu800 been successfully installed.  consult theu800 user user\'su800 guide foru800 information onu800 using theu800 wiki software. getting started getting started getting started configuration settings list mediawiki faqu800 mediawiki release mailing list ');
-/*!40000 ALTER TABLE `mw_searchindex` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_site_stats`
---
-
-DROP TABLE IF EXISTS `mw_site_stats`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_site_stats` (
-  `ss_row_id` int(10) unsigned NOT NULL,
-  `ss_total_views` bigint(20) unsigned DEFAULT '0',
-  `ss_total_edits` bigint(20) unsigned DEFAULT '0',
-  `ss_good_articles` bigint(20) unsigned DEFAULT '0',
-  `ss_total_pages` bigint(20) DEFAULT '-1',
-  `ss_users` bigint(20) DEFAULT '-1',
-  `ss_active_users` bigint(20) DEFAULT '-1',
-  `ss_admins` int(11) DEFAULT '-1',
-  `ss_images` int(11) DEFAULT '0',
-  UNIQUE KEY `ss_row_id` (`ss_row_id`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_site_stats`
---
-
-LOCK TABLES `mw_site_stats` WRITE;
-/*!40000 ALTER TABLE `mw_site_stats` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_site_stats` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_tag_summary`
---
-
-DROP TABLE IF EXISTS `mw_tag_summary`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_tag_summary` (
-  `ts_rc_id` int(11) DEFAULT NULL,
-  `ts_log_id` int(11) DEFAULT NULL,
-  `ts_rev_id` int(11) DEFAULT NULL,
-  `ts_tags` blob NOT NULL,
-  UNIQUE KEY `tag_summary_rc_id` (`ts_rc_id`),
-  UNIQUE KEY `tag_summary_log_id` (`ts_log_id`),
-  UNIQUE KEY `tag_summary_rev_id` (`ts_rev_id`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_tag_summary`
---
-
-LOCK TABLES `mw_tag_summary` WRITE;
-/*!40000 ALTER TABLE `mw_tag_summary` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_tag_summary` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_templatelinks`
---
-
-DROP TABLE IF EXISTS `mw_templatelinks`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_templatelinks` (
-  `tl_from` int(10) unsigned NOT NULL DEFAULT '0',
-  `tl_namespace` int(11) NOT NULL DEFAULT '0',
-  `tl_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  UNIQUE KEY `tl_from` (`tl_from`,`tl_namespace`,`tl_title`),
-  UNIQUE KEY `tl_namespace` (`tl_namespace`,`tl_title`,`tl_from`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_templatelinks`
---
-
-LOCK TABLES `mw_templatelinks` WRITE;
-/*!40000 ALTER TABLE `mw_templatelinks` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_templatelinks` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_text`
---
-
-DROP TABLE IF EXISTS `mw_text`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_text` (
-  `old_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
-  `old_text` mediumblob NOT NULL,
-  `old_flags` tinyblob NOT NULL,
-  PRIMARY KEY (`old_id`)
-) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 MAX_ROWS=10000000 AVG_ROW_LENGTH=10240;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_text`
---
-
-LOCK TABLES `mw_text` WRITE;
-/*!40000 ALTER TABLE `mw_text` DISABLE KEYS */;
-INSERT INTO `mw_text` VALUES (1,'\'\'\'MediaWiki has been successfully installed.\'\'\'\n\nConsult the [http://meta.wikimedia.org/wiki/Help:Contents User\'s Guide] for information on using the wiki software.\n\n== Getting started ==\n* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]\n* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]','utf-8');
-/*!40000 ALTER TABLE `mw_text` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_trackbacks`
---
-
-DROP TABLE IF EXISTS `mw_trackbacks`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_trackbacks` (
-  `tb_id` int(11) NOT NULL AUTO_INCREMENT,
-  `tb_page` int(11) DEFAULT NULL,
-  `tb_title` varchar(255) NOT NULL,
-  `tb_url` blob NOT NULL,
-  `tb_ex` text,
-  `tb_name` varchar(255) DEFAULT NULL,
-  PRIMARY KEY (`tb_id`),
-  KEY `tb_page` (`tb_page`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_trackbacks`
---
-
-LOCK TABLES `mw_trackbacks` WRITE;
-/*!40000 ALTER TABLE `mw_trackbacks` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_trackbacks` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_transcache`
---
-
-DROP TABLE IF EXISTS `mw_transcache`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_transcache` (
-  `tc_url` varbinary(255) NOT NULL,
-  `tc_contents` text,
-  `tc_time` binary(14) NOT NULL,
-  UNIQUE KEY `tc_url_idx` (`tc_url`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_transcache`
---
-
-LOCK TABLES `mw_transcache` WRITE;
-/*!40000 ALTER TABLE `mw_transcache` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_transcache` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_updatelog`
---
-
-DROP TABLE IF EXISTS `mw_updatelog`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_updatelog` (
-  `ul_key` varchar(255) NOT NULL,
-  `ul_value` blob,
-  PRIMARY KEY (`ul_key`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_updatelog`
---
-
-LOCK TABLES `mw_updatelog` WRITE;
-/*!40000 ALTER TABLE `mw_updatelog` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_updatelog` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_user`
---
-
-DROP TABLE IF EXISTS `mw_user`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_user` (
-  `user_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
-  `user_name` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `user_real_name` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `user_password` tinyblob NOT NULL,
-  `user_newpassword` tinyblob NOT NULL,
-  `user_newpass_time` binary(14) DEFAULT NULL,
-  `user_email` tinytext NOT NULL,
-  `user_touched` binary(14) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
-  `user_token` binary(32) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
-  `user_email_authenticated` binary(14) DEFAULT NULL,
-  `user_email_token` binary(32) DEFAULT NULL,
-  `user_email_token_expires` binary(14) DEFAULT NULL,
-  `user_registration` binary(14) DEFAULT NULL,
-  `user_editcount` int(11) DEFAULT NULL,
-  PRIMARY KEY (`user_id`),
-  UNIQUE KEY `user_name` (`user_name`),
-  KEY `user_email_token` (`user_email_token`)
-) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_user`
---
-
-LOCK TABLES `mw_user` WRITE;
-/*!40000 ALTER TABLE `mw_user` DISABLE KEYS */;
-INSERT INTO `mw_user` VALUES (1,'WikiSysop','',':B:b1373470:f7e87db0c9596055f39a1225b0c31508','',NULL,'','','20101230131552','de4ddde7c4eef6e3609f4287324a0a18',NULL,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0',NULL,'20101230131547',0);
-/*!40000 ALTER TABLE `mw_user` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_user_groups`
---
-
-DROP TABLE IF EXISTS `mw_user_groups`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_user_groups` (
-  `ug_user` int(10) unsigned NOT NULL DEFAULT '0',
-  `ug_group` varbinary(16) NOT NULL DEFAULT '',
-  UNIQUE KEY `ug_user_group` (`ug_user`,`ug_group`),
-  KEY `ug_group` (`ug_group`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_user_groups`
---
-
-LOCK TABLES `mw_user_groups` WRITE;
-/*!40000 ALTER TABLE `mw_user_groups` DISABLE KEYS */;
-INSERT INTO `mw_user_groups` VALUES (1,'bureaucrat');
-INSERT INTO `mw_user_groups` VALUES (1,'sysop');
-/*!40000 ALTER TABLE `mw_user_groups` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_user_newtalk`
---
-
-DROP TABLE IF EXISTS `mw_user_newtalk`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_user_newtalk` (
-  `user_id` int(11) NOT NULL DEFAULT '0',
-  `user_ip` varbinary(40) NOT NULL DEFAULT '',
-  `user_last_timestamp` binary(14) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
-  KEY `user_id` (`user_id`),
-  KEY `user_ip` (`user_ip`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_user_newtalk`
---
-
-LOCK TABLES `mw_user_newtalk` WRITE;
-/*!40000 ALTER TABLE `mw_user_newtalk` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_user_newtalk` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_user_properties`
---
-
-DROP TABLE IF EXISTS `mw_user_properties`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_user_properties` (
-  `up_user` int(11) NOT NULL,
-  `up_property` varbinary(32) NOT NULL,
-  `up_value` blob,
-  UNIQUE KEY `user_properties_user_property` (`up_user`,`up_property`),
-  KEY `user_properties_property` (`up_property`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_user_properties`
---
-
-LOCK TABLES `mw_user_properties` WRITE;
-/*!40000 ALTER TABLE `mw_user_properties` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_user_properties` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_valid_tag`
---
-
-DROP TABLE IF EXISTS `mw_valid_tag`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_valid_tag` (
-  `vt_tag` varchar(255) NOT NULL,
-  PRIMARY KEY (`vt_tag`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_valid_tag`
---
-
-LOCK TABLES `mw_valid_tag` WRITE;
-/*!40000 ALTER TABLE `mw_valid_tag` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_valid_tag` ENABLE KEYS */;
-UNLOCK TABLES;
-
---
--- Table structure for table `mw_watchlist`
---
-
-DROP TABLE IF EXISTS `mw_watchlist`;
-/*!40101 SET @saved_cs_client     = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `mw_watchlist` (
-  `wl_user` int(10) unsigned NOT NULL,
-  `wl_namespace` int(11) NOT NULL DEFAULT '0',
-  `wl_title` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
-  `wl_notificationtimestamp` varbinary(14) DEFAULT NULL,
-  UNIQUE KEY `wl_user` (`wl_user`,`wl_namespace`,`wl_title`),
-  KEY `namespace_title` (`wl_namespace`,`wl_title`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Dumping data for table `mw_watchlist`
---
-
-LOCK TABLES `mw_watchlist` WRITE;
-/*!40000 ALTER TABLE `mw_watchlist` DISABLE KEYS */;
-/*!40000 ALTER TABLE `mw_watchlist` ENABLE KEYS */;
-UNLOCK TABLES;
-/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
-
-/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
-/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
-/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
-/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
-/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
-/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
-/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-
--- Dump completed on 2010-12-31  1:20:11
diff --git a/tests/selenium/installer/MediaWikiButtonsAvailabilityTestCase.php b/tests/selenium/installer/MediaWikiButtonsAvailabilityTestCase.php
deleted file mode 100644 (file)
index 9c060fa..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-/**
- * MediaWikiButtonsAvailabilityTestCase
- *
- * @file
- * @ingroup Maintenance
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-require_once __DIR__ . '/MediaWikiInstallationCommonFunction.php';
-
-/**
- * Test Case ID   : 30 (http://www.mediawiki.org/wiki/New_installer/Test_plan)
- * Test Case Name :'Back' and 'Continue' button availability
- * Version        : MediaWiki 1.18alpha
- */
-class MediaWikiButtonsAvailabilityTestCase extends MediaWikiInstallationCommonFunction {
-       function setUp() {
-               parent::setUp();
-       }
-
-       // Verify only 'Continue' button available on 'Language' page
-       public function testOnlyContinueButtonAvailability() {
-               parent::navigateLanguagePage();
-
-               // Verify only 'Continue' button avaialble
-               $this->assertTrue( $this->isElementPresent( "submit-continue" ) );
-
-               // 'Back' button is not avaialble
-               $this->assertElementNotPresent( "submit-back" );
-       }
-
-       // Verify 'Continue' and 'Back' buttons availability
-       public function testBothButtonsAvailability() {
-               // Verify buttons availability on 'Welcome to MediaWiki' page
-               parent::navigateWelcometoMediaWikiPage();
-               $this->assertTrue( $this->isElementPresent( "submit-back" ) );
-               $this->assertTrue( $this->isElementPresent( "submit-continue" ) );
-               parent::restartInstallation();
-
-               // Verify buttons availability on 'Connect to Database' page
-               parent::navigateConnetToDatabasePage();
-               $this->assertTrue( $this->isElementPresent( "submit-back" ) );
-               $this->assertTrue( $this->isElementPresent( "submit-continue" ) );
-               parent::restartInstallation();
-
-               // Verify buttons availability on 'Database settings' page
-               $databaseName = DB_NAME_PREFIX . "_db_settings";
-               parent::navigateDatabaseSettingsPage( $databaseName );
-               $this->assertTrue( $this->isElementPresent( "submit-back" ) );
-               $this->assertTrue( $this->isElementPresent( "submit-continue" ) );
-               parent::restartInstallation();
-
-               // Verify buttons availability on 'Name' page
-               $databaseName = DB_NAME_PREFIX . "_name";
-               parent::navigateNamePage( $databaseName );
-               $this->assertTrue( $this->isElementPresent( "submit-back" ) );
-               $this->assertTrue( $this->isElementPresent( "submit-continue" ) );
-               parent::restartInstallation();
-
-               // Verify buttons availability on 'Options' page
-               $databaseName = DB_NAME_PREFIX . "_options";
-               parent::navigateOptionsPage( $databaseName );
-               $this->assertTrue( $this->isElementPresent( "submit-back" ) );
-               $this->assertTrue( $this->isElementPresent( "submit-continue" ) );
-               parent::restartInstallation();
-
-               // Verify buttons availability on 'Install' page
-               $databaseName = DB_NAME_PREFIX . "_install";
-               parent::navigateInstallPage( $databaseName );
-               $this->assertTrue( $this->isElementPresent( "submit-back" ) );
-               $this->assertTrue( $this->isElementPresent( "submit-continue" ) );
-       }
-}
diff --git a/tests/selenium/installer/MediaWikiDifferentDatabaseAccountTestCase.php b/tests/selenium/installer/MediaWikiDifferentDatabaseAccountTestCase.php
deleted file mode 100644 (file)
index 117e5c8..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-/**
- * MediaWikiDifferentDatabaseAccountTestCase
- *
- * @file
- * @ingroup Maintenance
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-require_once __DIR__ . '/MediaWikiInstallationCommonFunction.php';
-
-/**
- * Test Case ID   : 04 (http://www.mediawiki.org/wiki/New_installer/Test_plan)
- * Test Case Name : Install MediaWiki with different Database accounts for web access.
- * Version        : MediaWiki 1.18alpha
- */
-class MediaWikiDifferentDatabaseAccountTestCase extends MediaWikiInstallationCommonFunction {
-       function setUp() {
-               parent::setUp();
-       }
-
-       // Install Mediawiki using 'MySQL' database type.
-       public function testDifferentDatabaseAccount() {
-               $databaseName = DB_NAME_PREFIX . "_dif_accounts";
-
-               // Navigate to the 'Database settings' page
-               parent::navigateDatabaseSettingsPage( $databaseName );
-
-               // Click on the 'Use the same account as for installation' check box
-               $this->click( "mysql__SameAccount" );
-
-               // Change the 'Database username'
-               $this->type( "mysql_wgDBuser", DB_WEB_USER );
-
-               // Enter 'Database password:'
-               $this->type( "mysql_wgDBpassword", DB_WEB_USER_PASSWORD );
-
-               // Select 'Create the account if it does not already exist' check box
-               $this->click( "mysql__CreateDBAccount" );
-               parent::clickContinueButton();
-
-               // 'Name' page
-               parent::completeNamePage();
-
-               // 'Options' page
-               parent::clickContinueButton();
-
-               // 'Install' page
-               $this->assertEquals( "Creating database user... done",
-                       $this->getText( LINK_FORM . "ul/li[3]" ) );
-               parent::clickContinueButton();
-
-               // 'Complete' page
-               parent::completePageSuccessfull();
-               $this->chooseCancelOnNextConfirmation();
-       }
-}
diff --git a/tests/selenium/installer/MediaWikiDifferntDatabasePrefixTestCase.php b/tests/selenium/installer/MediaWikiDifferntDatabasePrefixTestCase.php
deleted file mode 100644 (file)
index ed08928..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-/**
- * MediaWikiDifferntDatabasePrefixTestCase
- *
- * @file
- * @ingroup Maintenance
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-require_once __DIR__ . '/MediaWikiInstallationCommonFunction.php';
-
-/**
- * Test Case ID   : 02 (http://www.mediawiki.org/wiki/New_installer/Test_plan)
- * Test Case Name : Install MediaWiki with the same database and the different
- *                  database prefixes(Share one database between multiple wikis).
- * Version        : MediaWiki 1.18alpha
- */
-class MediaWikiDifferntDatabasePrefixTestCase extends MediaWikiInstallationCommonFunction {
-       function setUp() {
-               parent::setUp();
-       }
-
-       // Install Mediawiki using 'MySQL' database type.
-       public function testDifferentDatabasePrefix() {
-               $databaseName = DB_NAME_PREFIX . "_db_prefix";
-               parent::navigateInstallPage( $databaseName );
-
-               // To 'Options' page
-               parent::clickBackButton();
-
-               // To 'Name' page
-               parent::clickBackButton();
-
-               // To 'Database settings' page
-               parent::clickBackButton();
-
-               // To 'Connect to database' page
-               parent::clickBackButton();
-
-               // From 'Connect to database' page without database prefix
-               parent::clickContinueButton();
-
-               // Verify upgrade existing message
-               $this->assertEquals( "Upgrade existing installation",
-                       $this->getText( LINK_DIV . "h2" ) );
-
-               // To 'Connect to database' page
-               parent::clickBackButton();
-
-               // Input the database prefix
-               $this->type( "mysql_wgDBprefix", DATABASE_PREFIX );
-
-               // From 'Connect to database' page with database prefix
-               parent::clickContinueButton();
-
-               // To 'Complete' page
-               parent::clickContinueButton();
-               parent::completeNamePage();
-               parent::clickContinueButton();
-
-               // Verify already installed warning message
-               $this->assertEquals( "Install",
-                       $this->getText( LINK_DIV . "h2" ) );
-               $this->assertEquals( "Warning: You seem to have already installed MediaWiki and are trying to install it again. Please proceed to the next page.",
-                       $this->getText( LINK_FORM . "div[1]" ) );
-
-               parent::clickContinueButton();
-               parent::completePageSuccessfull();
-               $this->chooseCancelOnNextConfirmation();
-               parent::restartInstallation();
-       }
-}
diff --git a/tests/selenium/installer/MediaWikiErrorsConnectToDatabasePageTestCase.php b/tests/selenium/installer/MediaWikiErrorsConnectToDatabasePageTestCase.php
deleted file mode 100644 (file)
index da10eec..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-<?php
-/**
- * MediaWikiErrorsConnectToDatabasePageTestCase
- *
- * @file
- * @ingroup Maintenance
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-
-require_once __DIR__ . '/MediaWikiInstallationCommonFunction.php';
-
-/**
- * Test Case ID   : 09 (http://www.mediawiki.org/wiki/New_installer/Test_plan)
- * Test Case Name : Invalid/ blank values for fields in 'Connect to database' page.
- * Version        : MediaWiki 1.18alpha
- */
-
-class MediaWikiErrorsConnectToDatabasePageTestCase extends MediaWikiInstallationCommonFunction {
-
-       function setUp() {
-               parent::setUp();
-       }
-
-       // Verify warning messages for the 'Connet to database' page
-       public function testErrorsConnectToDatabasePage() {
-               parent::navigateConnetToDatabasePage();
-
-               // Verify warning mesage for invalid database host
-               $this->type( "mysql_wgDBserver", INVALID_DB_HOST );
-               parent::clickContinueButton();
-               $this->assertEquals( "DB connection error: php_network_getaddresses: getaddrinfo failed: No such host is known. (" . INVALID_DB_HOST . ").",
-                       $this->getText( LINK_DIV . "div[2]/div[2]/p[1]" ) );
-               $this->assertEquals( "Check the host, username and password below and try again.",
-                       $this->getText( LINK_DIV . "div[2]/div[2]/p[2]" ) );
-               // Verify warning message for the blank database host
-               $this->type( "mysql_wgDBserver", "" );
-               parent::clickContinueButton();
-               $this->assertEquals( "MySQL 4.0.14 or later is required, you have .",
-                       $this->getText( LINK_DIV . "div[2]/div[2]" ) );
-
-               // Valid Database Host
-               $this->type( "mysql_wgDBserver", VALID_DB_HOST );
-
-               // Verify warning message for the invalid database name
-               $this->type( "mysql_wgDBname", INVALID_DB_NAME );
-               parent::clickContinueButton();
-               $this->assertEquals( "Invalid database name \"" . INVALID_DB_NAME . "\". Use only ASCII letters (a-z, A-Z), numbers (0-9) and underscores (_).",
-                       $this->getText( LINK_DIV . "div[2]/div[2]/p" ) );
-
-               // Verify warning message for the blank database name
-               $this->type( "mysql_wgDBname", "" );
-               parent::clickContinueButton();
-               $this->assertEquals( "You must enter a value for \"Database name\"",
-                       $this->getText( LINK_DIV . "div[2]/div[2]" ) );
-
-               // valid Database name
-               $this->type( "mysql_wgDBname", VALID_DB_NAME );
-
-               // Verify warning message for the invalid databaase prefix
-               $this->type( "mysql_wgDBprefix", INVALID_DB_PREFIX );
-               parent::clickContinueButton();
-               $this->assertEquals( "Invalid database prefix \"" . INVALID_DB_PREFIX . "\". Use only ASCII letters (a-z, A-Z), numbers (0-9) and underscores (_).",
-                       $this->getText( LINK_DIV . "div[2]/div[2]" ) );
-
-               // Valid Database prefix
-               $this->type( "mysql_wgDBprefix", VALID_DB_PREFIX );
-
-               // Verify warning message for the invalid database user name
-               $this->type( "mysql__InstallUser", INVALID_DB_USER_NAME );
-               parent::clickContinueButton();
-               $this->assertEquals( "DB connection error: Access denied for user '" . INVALID_DB_USER_NAME . "'@'localhost' (using password: NO) (localhost).",
-                       $this->getText( LINK_DIV . "div[2]/div[2]/p[1]" ) );
-               $this->assertEquals( "Check the host, username and password below and try again.",
-                       $this->getText( LINK_DIV . "div[2]/div[2]/p[2]" ) );
-
-               // Verify warning message for the blank database user name
-               $this->type( "mysql__InstallUser", "" );
-               parent::clickContinueButton();
-               $this->assertEquals( "DB connection error: Access denied for user 'SYSTEM'@'localhost' (using password: NO) (localhost).",
-                       $this->getText( LINK_DIV . "div[2]/div[2]/p[1]" ) );
-               $this->assertEquals( "Check the host, username and password below and try again.",
-                       $this->getText( LINK_DIV . "div[2]/div[2]/p[2]" ) );
-
-               // Valid Database username
-               $this->type( "mysql__InstallUser", VALID_DB_USER_NAME );
-
-               // Verify warning message for the invalid password
-               $this->type( "mysql__InstallPassword", INVALID_DB_PASSWORD );
-               parent::clickContinueButton();
-
-               $this->assertEquals( "DB connection error: Access denied for user 'root'@'localhost' (using password: YES) (localhost).",
-                       $this->getText( LINK_DIV . "div[2]/div[2]/p[1]" ) );
-               $this->assertEquals( "Check the host, username and password below and try again.",
-                       $this->getText( LINK_DIV . "div[2]/div[2]/p[2]" ) );
-
-               // Verify warning message for the invalid username and password
-               $this->type( "mysql__InstallUser", INVALID_DB_USER_NAME );
-               $this->type( "mysql__InstallPassword", INVALID_DB_PASSWORD );
-               parent::clickContinueButton();
-               $this->assertEquals( "DB connection error: Access denied for user '" . INVALID_DB_USER_NAME . "'@'localhost' (using password: YES) (localhost).",
-                       $this->getText( LINK_DIV . "div[2]/div[2]/p[1]" ) );
-               $this->assertEquals( "Check the host, username and password below and try again.",
-                       $this->getText( LINK_DIV . "div[2]/div[2]/p[2]" ) );
-
-               // Valid username and valid password
-               $this->type( "mysql__InstallUser", VALID_DB_USER_NAME );
-               $this->type( "mysql__InstallPassword", "" );
-               parent::clickContinueButton();
-
-               // successfully completes the 'Connect to database' page
-               $this->assertEquals( "Database settings",
-                       $this->getText( LINK_DIV . "h2" ) );
-       }
-}
diff --git a/tests/selenium/installer/MediaWikiErrorsNamepageTestCase.php b/tests/selenium/installer/MediaWikiErrorsNamepageTestCase.php
deleted file mode 100644 (file)
index 3b2f012..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-<?php
-/**
- * MediaWikiErrorsNamepageTestCase
- *
- * @file
- * @ingroup Maintenance
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-require_once __DIR__ . '/MediaWikiInstallationCommonFunction.php';
-
-/**
- * Test Case ID   : 10 (http://www.mediawiki.org/wiki/New_installer/Test_plan)
- * Test Case Name : Invalid/ blank values for fields in 'Name' page.
- * Version        : MediaWiki 1.18alpha
- */
-class MediaWikiErrorsNamepageTestCase extends MediaWikiInstallationCommonFunction {
-       function setUp() {
-               parent::setUp();
-       }
-
-       // Verify warning message for the 'Name' page
-       public function testErrorsNamePage() {
-
-               $databaseName = DB_NAME_PREFIX . "_error_name";
-
-               parent::navigateNamePage( $databaseName );
-
-               // Verify warning message for all blank fields
-               parent::clickContinueButton();
-               $this->assertEquals( "Enter a site name.",
-                       $this->getText( LINK_DIV . "div[2]/div[2]" ) );
-               $this->assertEquals( "Enter an administrator username.",
-                       $this->getText( LINK_DIV . "div[3]/div[2]" ) );
-               $this->assertEquals( "Enter a password for the administrator account.",
-                       $this->getText( LINK_DIV . "div[4]/div[2]" ) );
-
-               // Verify warning message for the blank 'Site name'
-               $this->type( "config__AdminName", VALID_YOUR_NAME );
-               $this->type( "config__AdminPassword", VALID_PASSWORD );
-               $this->type( "config__AdminPassword2", VALID_PASSWORD_AGAIN );
-               parent::clickContinueButton();
-               $this->assertEquals( "Enter a site name.",
-                       $this->getText( LINK_DIV . "div[2]/div[2]" ) );
-
-               // Input valid 'Site name'
-               $this->type( "config_wgSitename", VALID_WIKI_NAME );
-
-               // Verify warning message for the invalid "Project namespace'
-               $this->click( "config__NamespaceType_other" );
-               $this->type( "config_wgMetaNamespace", INVALID_NAMESPACE );
-               parent::clickContinueButton();
-               $this->assertEquals( "The specified namespace \"\" is invalid. Specify a different project namespace.",
-                       $this->getText( LINK_DIV . "div[2]/div[2]" ) );
-
-               // Verify warning message for the blank 'Project namespace'
-               $this->type( "config_wgSitename", VALID_WIKI_NAME );
-               $this->click( "config__NamespaceType_other" );
-               $this->type( "config_wgMetaNamespace", "" );
-               parent::clickContinueButton();
-               $this->assertEquals( "The specified namespace \"\" is invalid. Specify a different project namespace.",
-                       $this->getText( LINK_DIV . "div[2]/div[2]" ) );
-
-               // Valid 'Project namespace'
-               $this->click( "config__NamespaceType_other" );
-               $this->type( "config_wgMetaNamespace", VALID_NAMESPACE );
-               parent::clickContinueButton();
-
-               // Valid 'Site name'
-               $this->click( "config__NamespaceType_site-name" );
-               $this->type( "config_wgSitename", VALID_WIKI_NAME );
-
-               // Verify warning message for blank 'Your name'
-               $this->type( "config__AdminName", " " );
-               parent::clickContinueButton();
-               $this->assertEquals( "Enter an administrator username.",
-                       $this->getText( LINK_DIV . "div[2]/div[2]" ) );
-
-               $this->type( "config_wgSitename", VALID_WIKI_NAME );
-               // Verify warning message for blank 'Password'
-               $this->type( "config__AdminName", VALID_YOUR_NAME );
-               $this->type( "config__AdminPassword", " " );
-               parent::clickContinueButton();
-               $this->assertEquals( "Enter a password for the administrator account.",
-                       $this->getText( LINK_DIV . "div[2]/div[2]" ) );
-
-               // Verify warning message for the blank 'Password again'
-               $this->type( "config_wgSitename", VALID_WIKI_NAME );
-               $this->type( "config__AdminPassword", VALID_PASSWORD );
-               $this->type( "config__AdminPassword2", " " );
-               parent::clickContinueButton();
-               $this->assertEquals( "The two passwords you entered do not match.",
-                       $this->getText( LINK_DIV . "div[2]/div[2]" ) );
-
-               // Verify warning message for the different'Password' and 'Password again'
-               $this->type( "config_wgSitename", VALID_WIKI_NAME );
-               $this->type( "config__AdminPassword", VALID_PASSWORD );
-               $this->type( "config__AdminPassword2", INVALID_PASSWORD_AGAIN );
-               parent::clickContinueButton();
-               $this->assertEquals( "The two passwords you entered do not match.",
-                       $this->getText( LINK_DIV . "div[2]/div[2]" ) );
-       }
-}
diff --git a/tests/selenium/installer/MediaWikiHelpFieldHintTestCase.php b/tests/selenium/installer/MediaWikiHelpFieldHintTestCase.php
deleted file mode 100644 (file)
index f7f5910..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-<?php
-/**
- * MediaWikiHelpFieldHintTestCase
- *
- * @file
- * @ingroup Maintenance
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-require_once __DIR__ . '/MediaWikiInstallationCommonFunction.php';
-
-/**
- * Test Case ID   : 29 (http://www.mediawiki.org/wiki/New_installer/Test_plan)
- * Test Case Name : Help field hint availability for the fields.
- * Version        : MediaWiki 1.18alpha
- */
-class MediaWikiHelpFieldHintTestCase extends MediaWikiInstallationCommonFunction {
-       function setUp() {
-               parent::setUp();
-       }
-
-       // Verify help field availability for the fields
-       public function testMySQLConnectToDatabaseFieldHint() {
-
-               parent::navigateConnetToDatabasePage();
-
-               // Verify help field for 'Database host'
-               $this->click( "//div[@id='DB_wrapper_mysql']/div/div[1]/div/span[1]" );
-               $this->assertEquals( MYSQL_DATABASE_HOST_HELP,
-                       $this->getText( "//div[@id='DB_wrapper_mysql']/div/div[1]/div/span[2]" ) );
-
-               // Verify help field for 'Database name'
-               $this->click( "//div[@id='DB_wrapper_mysql']/fieldset[1]/div[1]/div[1]/div/span[1]" );
-               $this->assertEquals( MYSQL_DATABASE_NAME_HELP,
-                       $this->getText( "//div[@id='DB_wrapper_mysql']/fieldset[1]/div[1]/div[1]/div/span[2]" ) );
-
-
-               // Verify help field for 'Database table prefix'
-               $this->click( "//div[@id='DB_wrapper_mysql']/fieldset[1]/div[2]/div[1]/div/span[1]" );
-               $this->assertEquals( MYSQL_DATABASE_TABLE_PREFIX_HELP,
-                       $this->getText( "//div[@id='DB_wrapper_mysql']/fieldset[1]/div[1]/div[1]/div/span[2]/p[1]" ) );
-
-               // Verify help field for 'Database username'
-               $this->click( "//div[@id='DB_wrapper_mysql']/fieldset[2]/div[1]/div[1]/div/span[1]" );
-               $this->assertEquals( MYSQL_DATBASE_USERNAME_HELP,
-                       $this->getText( "//div[@id='DB_wrapper_mysql']/fieldset[2]/div[1]/div[1]/div/span[2]" ) );
-
-               // Verify help field for 'Database password'
-               $this->click( "//div[@id='DB_wrapper_mysql']/fieldset[2]/div[2]/div[1]/div/span[1]" );
-               $this->assertEquals( MYSQL_DATABASE_PASSWORD_HELP,
-                       $this->getText( "//div[@id='DB_wrapper_mysql']/fieldset[2]/div[2]/div[1]/div/span[2]/p" ) );
-       }
-
-       public function testSQLiteConnectToDatabaseFieldHint() {
-               parent::navigateConnetToDatabasePage();
-               $this->click( "DBType_sqlite" );
-
-               //  Verify help field for 'SQLite data directory'
-               $this->click( "//div[@id='DB_wrapper_sqlite']/div[1]/div[1]/div/span[1]" );
-               $this->assertEquals( SQLITE_DATA_DIRECTORY_HELP,
-                       $this->getText( "//div[@id='DB_wrapper_sqlite']/div[1]/div[1]/div/span[2]" ) );
-
-               // Verify help field for 'Database name'
-               $this->click( "//div[@id='DB_wrapper_sqlite']/div[2]/div[1]/div/span[1]" );
-               $this->assertEquals( SQLITE_DATABASE_NAME_HELP, $this->getText( "//div[@id='DB_wrapper_sqlite']/div[2]/div[1]/div/span[2]/p" ) );
-       }
-
-       public function testDatabaseSettingsFieldHint() {
-
-               $databaseName = DB_NAME_PREFIX . "_db_field";
-               parent::navigateDatabaseSettingsPage( $databaseName );
-
-               // Verify help field for 'Search engine'
-               $this->click( LINK_FORM . "div[2]/span[1]" );
-               $this->assertEquals( SEARCH_ENGINE_HELP,
-                       $this->getText( LINK_FORM . "div[2]/span[2]" ) );
-
-               // Verify help field for 'Database character set'
-               $this->click( LINK_FORM . "div[4]/span[1]" );
-               $this->assertEquals( DATABASE_CHARACTER_SET_HELP,
-                       $this->getText( LINK_FORM . "div[4]/span[2]" ) );
-               parent::restartInstallation();
-       }
-
-       public function testNameFieldHint() {
-               $databaseName = DB_NAME_PREFIX . "_name_field";
-               parent::navigateNamePage( $databaseName );
-
-               // Verify help field for 'Name of Wiki'
-               $this->click( LINK_FORM . "div[1]/div[1]/div/span[1]" );
-               $this->assertEquals( NAME_OF_WIKI_HELP,
-                       $this->getText( LINK_FORM . "div[1]/div[1]/div/span[2]/p" ) );
-
-               // Verify help field for 'Project namespace'
-               $this->click( LINK_FORM . "div[2]/div[1]/div/span[1]" );
-               $this->assertEquals( PROJECT_NAMESPACE_HELP,
-                       $this->getText( LINK_FORM . "div[2]/div[1]/div/span[2]/p" ) );
-
-               // Verify help field for 'Your Name'
-               $this->click( LINK_FORM . "fieldset/div[1]/div[1]/div/span[1]" );
-               $this->assertEquals( USER_NAME_HELP,
-                       $this->getText( LINK_FORM . "fieldset/div[1]/div[1]/div/span[2]/p" ) );
-
-               // Verify help field for 'E mail address'
-               $this->click( LINK_FORM . "fieldset/div[4]/div[1]/div/span[1]" );
-               $this->assertEquals( EMAIL_ADDRESS_HELP,
-                       $this->getText( LINK_FORM . "fieldset/div[4]/div[1]/div/span[2]/p" ) );
-
-               parent::restartInstallation();
-       }
-}
-
diff --git a/tests/selenium/installer/MediaWikiInstallationCommonFunction.php b/tests/selenium/installer/MediaWikiInstallationCommonFunction.php
deleted file mode 100644 (file)
index 472d2ed..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-<?php
-/**
- * MediaWikiInstallationCommonFunction
- *
- * @file
- * @ingroup Maintenance
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-require_once 'PHPUnit/Extensions/SeleniumTestCase.php';
-require_once __DIR__ . '/MediaWikiInstallationConfig.php';
-require_once __DIR__ . '/MediaWikiInstallationMessage.php';
-require_once __DIR__ . '/MediaWikiInstallationVariables.php';
-
-class MediaWikiInstallationCommonFunction extends PHPUnit_Extensions_SeleniumTestCase {
-       function setUp() {
-               $this->setBrowser( TEST_BROWSER );
-               $this->setBrowserUrl( "http://" . HOST_NAME . ":" . PORT . "/" . DIRECTORY_NAME . "/" );
-       }
-
-       public function navigateInitialpage() {
-               $this->open( "http://" . HOST_NAME . ":" . PORT . "/" . DIRECTORY_NAME . "/" );
-       }
-
-       // Navigate to the 'Language' page
-       public function navigateLanguagePage() {
-               $this->open( "http://" . HOST_NAME . ":" . PORT . "/" . DIRECTORY_NAME . "/config/index.php" );
-       }
-
-       // Navigate to the 'Welcome to MediaWiki' page
-       public function navigateWelcometoMediaWikiPage() {
-               $this->open( "http://" . HOST_NAME . ":" . PORT . "/" . DIRECTORY_NAME . "/config/index.php" );
-               $this->click( "submit-continue " );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-       }
-
-       // Navigate yo 'Connect to Database' page
-       public function navigateConnetToDatabasePage() {
-               $this->open( "http://" . HOST_NAME . ":" . PORT . "/" . DIRECTORY_NAME . "/config/index.php" );
-
-               // 'Welcome to MediaWiki!' page
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-
-               // 'Connect to Database' page
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-       }
-
-       // Navigate to the 'Database Settings' page
-       public function navigateDatabaseSettingsPage( $databaseName ) {
-               $this->open( "http://" . HOST_NAME . ":" . PORT . "/" . DIRECTORY_NAME . "/config/index.php" );
-
-               // 'Welcome to MediaWiki!' page
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-
-               // 'Connect to Database' page
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-
-               $this->type( "mysql_wgDBname", $databaseName );
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-       }
-
-       // Navigate to the 'Name' page
-       public function navigateNamePage( $databaseName ) {
-               $this->open( "http://" . HOST_NAME . ":" . PORT . "/" . DIRECTORY_NAME . "/config/index.php" );
-
-               // 'Welcome to MediaWiki!' page
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-
-               // 'Connect to Database' page
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-
-               $this->type( "mysql_wgDBname", $databaseName );
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-
-               // Database settings
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-       }
-
-       // Navigate 'Options' page
-       public function navigateOptionsPage( $databaseName ) {
-               $this->open( "http://" . HOST_NAME . ":" . PORT . "/" . DIRECTORY_NAME . "/config/index.php" );
-
-               // 'Welcome to MediaWiki!' page
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-
-               // 'Connect to Database' page
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-
-               $this->type( "mysql_wgDBname", $databaseName );
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-
-               // Database settings
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-
-               // Name
-               $this->type( "config_wgSitename", NAME_OF_WIKI );
-               $this->type( "config__AdminName", ADMIN_USER_NAME );
-               $this->type( "config__AdminPassword", ADMIN_PASSWORD );
-               $this->type( "config__AdminPassword2", ADMIN_RETYPE_PASSWORD );
-               $this->type( "config__AdminEmail", ADMIN_EMAIL_ADDRESS );
-
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-       }
-
-       // Navigate 'Install' page
-       public function navigateInstallPage( $databaseName ) {
-               $this->open( "http://" . HOST_NAME . ":" . PORT . "/" . DIRECTORY_NAME . "/config/index.php" );
-
-               // 'Welcome to MediaWiki!' page
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-
-               // 'Connect to Database' page
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-
-               $this->type( "mysql_wgDBname", $databaseName );
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-
-               // Database settings
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-
-               // Name
-               $this->type( "config_wgSitename", NAME_OF_WIKI );
-               $this->type( "config__AdminName", ADMIN_USER_NAME );
-               $this->type( "config__AdminPassword", ADMIN_PASSWORD );
-               $this->type( "config__AdminPassword2", ADMIN_RETYPE_PASSWORD );
-               $this->type( "config__AdminEmail", ADMIN_EMAIL_ADDRESS );
-
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-
-               // Options page
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-       }
-
-       // Navigate to 'Complete' page
-       public function navigateCompletePage( $databaseName ) {
-               $this->open( "http://" . HOST_NAME . ":" . PORT . "/" . DIRECTORY_NAME . "/config/index.php" );
-
-               // 'Welcome to MediaWiki!' page
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-
-               // 'Connect to Database' page
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-
-               $this->type( "mysql_wgDBname", $databaseName );
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-
-               // Database settings
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-
-               // Name
-               $this->type( "config_wgSitename", NAME_OF_WIKI );
-               $this->type( "config__AdminName", ADMIN_USER_NAME );
-               $this->type( "config__AdminPassword", ADMIN_PASSWORD );
-               $this->type( "config__AdminPassword2", ADMIN_RETYPE_PASSWORD );
-               $this->type( "config__AdminEmail", ADMIN_EMAIL_ADDRESS );
-
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-
-               // Options page
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-
-               // Install page
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-               $this->chooseCancelOnNextConfirmation();
-       }
-
-       // Complete the Name page fields
-       public function completeNamePage() {
-               $this->type( "config_wgSitename", NAME_OF_WIKI );
-               $this->type( "config__AdminName", ADMIN_USER_NAME );
-               $this->type( "config__AdminPassword", ADMIN_PASSWORD );
-               $this->type( "config__AdminPassword2", ADMIN_RETYPE_PASSWORD );
-               $this->type( "config__AdminEmail", ADMIN_EMAIL_ADDRESS );
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-       }
-
-       // Clicking on the 'Continue' button in any MediaWiki page
-       public function clickContinueButton() {
-               $this->click( "submit-continue" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-       }
-
-       // Clicking on the 'Back' button in any MediaWiki page
-       public function clickBackButton() {
-               $this->click( "submit-back" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-       }
-
-       // Restarting the installation
-       public function restartInstallation() {
-               $this->click( "link=Restart installation" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-               $this->click( "submit-restart" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-       }
-
-       // Verify 'MediaWiki' logo available in the initial screen
-       public function mediaWikiLogoPresentInitialScreen() {
-               $this->assertTrue( $this->isElementPresent( "//img[@alt='The MediaWiki logo']" ) );
-       }
-
-       // Verify 'MediaWiki' logo available
-       public function mediaWikiLogoPresent() {
-               $this->assertTrue( $this->isElementPresent( "//div[@id='p-logo']/a" ) );
-       }
-
-       public function completePageSuccessfull() {
-               $this->assertEquals( "Complete!",
-                       $this->getText( "//div[@id='bodyContent']/div/div/h2" ) );
-
-               // 'Congratulations!' text should be available in the 'Complete!' page.
-               $this->assertEquals( "Congratulations!",
-                       $this->getText( "//div[@id='bodyContent']/div/div/div[2]/form/div[1]/div[2]/p[1]/b" ) );
-       }
-}
diff --git a/tests/selenium/installer/MediaWikiInstallationConfig.php b/tests/selenium/installer/MediaWikiInstallationConfig.php
deleted file mode 100644 (file)
index 86a4624..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-/**
- * MediaWikiInstallationConfig
- *
- * @file
- * @ingroup Maintenance
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-
-/**
- * MediaWikiInstallerTestSuite.php can be run one time successfully
- * with current value of the 'DB_NAME_PREFIX'.
- * If you wish to run the suite more than one time, you need to change
- * the value of the 'DB_NAME_PREFIX'.
- */
-define( 'DB_NAME_PREFIX', "database_name" );
-define( 'DIRECTORY_NAME', "mediawiki" );
-define( 'PORT', "8080" );
-define( 'HOST_NAME', "localhost" );
-
-/**
- *  Use the followings to run the test suite in different browsers.
- *  Firefox : *firefox
- *  IE :  *iexplore
- *  Google chrome : *googlechrome
- *  Opera :  *opera
- */
-define ( 'TEST_BROWSER', "*firefox" );
diff --git a/tests/selenium/installer/MediaWikiInstallationMessage.php b/tests/selenium/installer/MediaWikiInstallationMessage.php
deleted file mode 100644 (file)
index 2b7d48e..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-/**
- * MediaWikiInstallationConfig
- *
- * @file
- * @ingroup Maintenance
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-
-// 'MySQL' database type help field hint
-define( 'MYSQL_DATABASE_HOST_HELP', "If your database server is on different server, enter the host name or IP address here. \nIf you are using shared web hosting, your hosting provider should give you the correct host name in their documentation. \nIf you are installing on a Windows server and using MySQL, using \"localhost\" may not work for the server name. If it does not, try \"127.0.0.1\" for the local IP address." );
-define( 'MYSQL_DATABASE_NAME_HELP', "Choose a name that identifies your wiki. It should not contain spaces or hyphens. \nIf you are using shared web hosting, your hosting provider will either give you a specific database name to use or let you create databases via a control panel." );
-define( 'MYSQL_DATABASE_TABLE_PREFIX_HELP', "Choose a name that identifies your wiki. It should not contain spaces or hyphens." );
-define( 'MYSQL_DATBASE_USERNAME_HELP', "Enter the username that will be used to connect to the database during the installation process. This is not the username of the MediaWiki account; this is the username for your database." );
-define( 'MYSQL_DATABASE_PASSWORD_HELP', "Enter the password that will be used to connect to the database during the installation process. This is not the password for the MediaWiki account; this is the password for your database." );
-
-
-// 'SQLite' database type help field hint
-define( 'SQLITE_DATA_DIRECTORY_HELP', "SQLite stores all data in a single file. \nThe directory you provide must be writable by the webserver during installation. \nIt should not be accessible via the web, this is why we're not putting it where your PHP files are. \nThe installer will write a .htaccess file along with it, but if that fails someone can gain access to your raw database. That includes raw user data (e-mail addresses, hashed passwords) as well as deleted revisions and other restricted data on the wiki. \nConsider putting the database somewhere else altogether, for example in /var/lib/mediawiki/yourwiki." );
-define( 'SQLITE_DATABASE_NAME_HELP', "Choose a name that identifies your wiki. Do not use spaces or hyphens. This will be used for the SQLite data file name." );
-
-
-// 'Database settings' page hel0p field hint
-define( 'SEARCH_ENGINE_HELP', "InnoDB is almost always the best option, since it has good concurrency support. \nMyISAM may be faster in single-user or read-only installations. MyISAM databases tend to get corrupted more often than InnoDB databases." );
-define( 'DATABASE_CHARACTER_SET_HELP', "In binary mode, MediaWiki stores UTF-8 text to the database in binary fields. This is more efficient than MySQL's UTF-8 mode, and allows you to use the full range of Unicode characters. \nIn UTF-8 mode, MySQL will know what character set your data is in, and can present and convert it appropriately, but it will not let you store characters above the Basic Multilingual Plane." );
-
-
-// 'Name' page help field hint
-define( 'NAME_OF_WIKI_HELP', "This will appear in the title bar of the browser and in various other places." );
-define( 'PROJECT_NAMESPACE_HELP', "Following Wikipedia's example, many wikis keep their policy pages separate from their content pages, in a \"project namespace\". All page titles in this namespace start with a certain prefix, which you can specify here. Traditionally, this prefix is derived from the name of the wiki, but it cannot contain punctuation characters such as \"#\" or \":\"." );
-define( 'USER_NAME_HELP', "Enter your preferred username here, for example \"Joe Bloggs\". This is the name you will use to log in to the wiki." );
-define( 'EMAIL_ADDRESS_HELP', "Enter an e-mail address here to allow you to receive e-mail from other users on the wiki, reset your password, and be notified of changes to pages on your watchlist." );
-define( 'SUBSCRIBE_MAILING_LIST_HELP', "This is a low-volume mailing list used for release announcements, including important security announcements. You should subscribe to it and update your MediaWiki installation when new versions come out." );
-
-
-
diff --git a/tests/selenium/installer/MediaWikiInstallationVariables.php b/tests/selenium/installer/MediaWikiInstallationVariables.php
deleted file mode 100644 (file)
index 3d7996b..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-/**
- * MediaWikiInstallationConfig
- *
- * @file
- * @ingroup Maintenance
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-
-// Common variables
-define( 'PAGE_LOAD_TIME', "80000" );
-
-// Common links
-define( 'LINK_DIV', "//div[@id='bodyContent']/div/div/" );
-define( 'LINK_FORM', "//div[@id='bodyContent']/div/div/div[2]/form/" );
-define( 'LINK_RIGHT_FRAMEWORK', "//div[@id='bodyContent']/div/div/div[1]/ul[1]/" );
-
-// 'Name' page input values
-define( 'NAME_OF_WIKI', "Site Name" );
-define( 'ADMIN_USER_NAME', "My Name" );
-define( 'ADMIN_PASSWORD', "12345" );
-define ( 'ADMIN_RETYPE_PASSWORD', "12345" );
-define ( 'ADMIN_EMAIL_ADDRESS', "admin@example.com" );
-
-
-// 'Name' page input values for warning messages
-define( 'VALID_WIKI_NAME', "MyWiki" );
-define( 'VALID_YOUR_NAME', "FirstName LastName" );
-define( 'VALID_PASSWORD', "12345" );
-define( 'VALID_PASSWORD_AGAIN', "12345" );
-define( 'INVALID_PASSWORD_AGAIN', "123" );
-define( 'VALID_NAMESPACE', "Mynamespace" );
-define( 'INVALID_NAMESPACE', "##..##" );
-
-
-// 'Database settings' page input values
-define( 'DB_WEB_USER', "different" );
-define( 'DB_WEB_USER_PASSWORD', "12345" );
-
-
-// 'Connet to database' page input values
-define( 'DATABASE_PREFIX', "databaseprefix" );
-
-
-// 'Connet to database' page input values for warning messages
-define( 'VALID_DB_HOST', "localhost" );
-define( 'INVALID_DB_HOST', "local" );
-define( 'INVALID_DB_NAME', "my-wiki" );
-define( 'VALID_DB_NAME', "my_wiki1" );
-define( 'INVALID_DB_PREFIX', "database prefix" );
-define( 'VALID_DB_PREFIX', "database_prefix" );
-define( 'INVALID_DB_USER_NAME', "roots" );
-define( 'VALID_DB_USER_NAME', "root" );
-define( 'INVALID_DB_PASSWORD', "12345" );
-
-
diff --git a/tests/selenium/installer/MediaWikiInstallerTestSuite.php b/tests/selenium/installer/MediaWikiInstallerTestSuite.php
deleted file mode 100644 (file)
index e32a9e6..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-/**
- * MediaWikiInstallerTestSuite
- *
- * @file
- * @ingroup Maintenance
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-if ( PHP_SAPI != 'cli' ) {
-       die( "Run me from the command line please.\n" );
-}
-
-require_once 'PHPUnit/Framework/TestSuite.php';
-
-require_once __DIR__ . '/MediaWikiUserInterfaceTestCase.php';
-require_once __DIR__ . '/MediaWikiButtonsAvailabilityTestCase.php';
-require_once __DIR__ . '/MediaWikiHelpFieldHintTestCase.php';
-require_once __DIR__ . '/MediaWikiRightFrameworkLinksTestCase.php';
-require_once __DIR__ . '/MediaWikiRestartInstallationTestCase.php';
-require_once __DIR__ . '/MediaWikiErrorsConnectToDatabasePageTestCase.php';
-require_once __DIR__ . '/MediaWikiErrorsNamepageTestCase.php';
-require_once __DIR__ . '/MediaWikiMySQLDataBaseTestCase.php';
-require_once __DIR__ . '/MediaWikiMySQLiteDataBaseTestCase.php';
-require_once __DIR__ . '/MediaWikiUpgradeExistingDatabaseTestCase.php';
-require_once __DIR__ . '/MediaWikiDifferntDatabasePrefixTestCase.php';
-require_once __DIR__ . '/MediaWikiDifferentDatabaseAccountTestCase.php';
-require_once __DIR__ . '/MediaWikiOnAlreadyInstalledTestCase.php';
-
-$suite = new PHPUnit_Framework_TestSuite( 'ArrayTest' );
-$result = new PHPUnit_Framework_TestResult;
-
-$suite->run( $result );
diff --git a/tests/selenium/installer/MediaWikiMySQLDataBaseTestCase.php b/tests/selenium/installer/MediaWikiMySQLDataBaseTestCase.php
deleted file mode 100644 (file)
index 823bb8c..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-/**
- * MediaWikiOnAlreadyInstalledTestCase
- *
- * @file
- * @ingroup Maintenance
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-require_once __DIR__ . '/MediaWikiInstallationCommonFunction.php';
-
-/**
- * Test Case ID   : 01 (http://www.mediawiki.org/wiki/New_installer/Test_plan)
- * Test Case Name : Install Mediawiki using 'MySQL' database type successfully
- * Version        : MediaWiki 1.18alpha
- */
-
-class MediaWikiMySQLDataBaseTestCase extends MediaWikiInstallationCommonFunction {
-       function setUp() {
-               parent::setUp();
-       }
-
-       // Verify  MediaWiki installation using 'MySQL' database type
-       public function testMySQLDatabaseSuccess() {
-               $databaseName = DB_NAME_PREFIX . "_sql_db";
-
-               parent::navigateConnetToDatabasePage();
-
-               // Verify 'MySQL" is selected as the default database type
-               $this->assertEquals( "MySQL settings", $this->getText( "//div[@id='DB_wrapper_mysql']/h3" ) );
-
-               // Change 'Database name'
-               $defaultDbName = $this->getText( "mysql_wgDBname" );
-               $this->type( "mysql_wgDBname", " " );
-               $this->type( "mysql_wgDBname", $databaseName );
-               $this->assertNotEquals( $defaultDbName, $databaseName );
-
-               // 'Database settings' page
-               parent::clickContinueButton();
-
-               // 'Name' page
-               parent::clickContinueButton();
-               parent::completeNamePage();
-
-               // 'Options page
-               parent::clickContinueButton();
-
-               // 'Install' page
-               parent::clickContinueButton();
-
-               // 'Complete' page
-               parent::completePageSuccessfull();
-               parent::restartInstallation();
-       }
-}
diff --git a/tests/selenium/installer/MediaWikiMySQLiteDataBaseTestCase.php b/tests/selenium/installer/MediaWikiMySQLiteDataBaseTestCase.php
deleted file mode 100644 (file)
index 11d0437..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-/**
- * MediaWikiMySQLiteataBaseTestCase
- *
- * @file
- * @ingroup Maintenance
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-
-require_once __DIR__ . '/MediaWikiInstallationCommonFunction.php';
-
-/**
- * Test Case ID   : 06 (http://www.mediawiki.org/wiki/New_installer/Test_plan)
- * Test Case Name : Install Mediawiki using 'MySQL' database type successfully
- * Version        : MediaWiki 1.18alpha
- */
-
-class MediaWikiMySQLiteDataBaseTestCase extends MediaWikiInstallationCommonFunction {
-       function setUp() {
-               parent::setUp();
-       }
-
-       // Verify  MediaWiki installation using 'MySQL' database type
-       public function testMySQLDatabaseSuccess() {
-               $databaseName = DB_NAME_PREFIX . "_sqlite_db";
-
-               parent::navigateConnetToDatabasePage();
-               $this->click( "DBType_sqlite" );
-
-               // Select 'SQLite' database type
-               $this->assertEquals( "SQLite settings", $this->getText( "//div[@id='DB_wrapper_sqlite']/h3" ) );
-
-               // Change database name
-               $defaultDbName = $this->getText( "sqlite_wgDBname" );
-               $this->type( "sqlite_wgDBname", " " );
-               $this->type( "sqlite_wgDBname", $databaseName );
-               $this->assertNotEquals( $defaultDbName, $databaseName );
-
-               // 'Database settings' page
-               parent::clickContinueButton();
-
-               // 'Name' page
-               parent::clickContinueButton();
-               parent::completeNamePage();
-
-               // 'Options page
-               parent::clickContinueButton();
-
-               // 'Install' page
-               parent::clickContinueButton();
-
-               // 'Complete' page
-               parent::completePageSuccessfull();
-               parent::restartInstallation();
-       }
-}
diff --git a/tests/selenium/installer/MediaWikiOnAlreadyInstalledTestCase.php b/tests/selenium/installer/MediaWikiOnAlreadyInstalledTestCase.php
deleted file mode 100644 (file)
index 6c77dee..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-/**
- * Selenium server manager
- *
- * @file
- * @ingroup Maintenance
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-
-require_once __DIR__ . '/MediaWikiInstallationCommonFunction.php';
-
-
-/**
- * Test Case ID   : 03 (http://www.mediawiki.org/wiki/New_installer/Test_plan)
- * Test Case Name : Install mediawiki on a already installed Mediawiki.]
- * Version        : MediaWiki 1.18alpha
- */
-
-class MediaWikiOnAlreadyInstalledTestCase extends MediaWikiInstallationCommonFunction {
-       function setUp() {
-               parent::setUp();
-       }
-
-       // Install Mediawiki using 'MySQL' database type.
-       public function testInstallOnAlreadyInstalled() {
-               $databaseName = DB_NAME_PREFIX . "_already_installed";
-               parent::navigateInstallPage( $databaseName );
-
-               // 'Options' page
-               parent::clickBackButton();
-
-               // Install page
-               parent::clickContinueButton();
-
-               // 'Install' page should display after the 'Option' page
-               $this->assertEquals( "Install", $this->getText( LINK_DIV . "h2" ) );
-
-               // Verify warning text displayed
-               $this->assertEquals( "Warning: You seem to have already installed MediaWiki and are trying to install it again. Please proceed to the next page.",
-                       $this->getText( LINK_FORM . "div[1]/div[2]" ) );
-
-               // Complete page
-               parent::clickContinueButton();
-               parent::completePageSuccessfull();
-               $this->chooseCancelOnNextConfirmation();
-               parent::restartInstallation();
-       }
-}
diff --git a/tests/selenium/installer/MediaWikiRestartInstallationTestCase.php b/tests/selenium/installer/MediaWikiRestartInstallationTestCase.php
deleted file mode 100644 (file)
index 1a026f1..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-<?php
-/**
- * MediaWikiRestartInstallationTestCase
- *
- * @file
- * @ingroup Maintenance
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-require_once __DIR__ . '/MediaWikiInstallationCommonFunction.php';
-
-/**
- * Test Case ID   : 11, 12 (http://www.mediawiki.org/wiki/New_installer/Test_plan)
- * Test Case Name : Install mediawiki on a already installed Mediawiki.
- * Version        : MediaWiki 1.18alpha
- */
-class MediaWikiRestartInstallationTestCase extends MediaWikiInstallationCommonFunction {
-       function setUp() {
-               parent::setUp();
-       }
-
-       // Verify restarting the installation
-       public function testSuccessRestartInstallation() {
-               $dbNameBeforeRestart = DB_NAME_PREFIX . "_db_before";
-               parent::navigateDatabaseSettingsPage( $dbNameBeforeRestart );
-
-               // Verify 'Restart installation' link available
-               $this->assertTrue( $this->isElementPresent( "link=Restart installation" ) );
-
-               // Click 'Restart installation'
-               $this->click( "link=Restart installation " );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-
-               // 'Restart Installation' page displayed
-               $this->assertEquals( "Restart installation", $this->getText( LINK_DIV . "h2" ) );
-
-               // Restart warning message displayed
-               $this->assertTrue( $this->isTextPresent( "exact:Do you want to clear all saved data that you have entered and restart the installation process?" ) );
-
-               // Click on the 'Yes, restart' button
-               $this->click( "submit-restart" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-
-               // Navigate to the initial installation page(Language).
-               $this->assertEquals( "Language", $this->getText( LINK_DIV . "h2" ) );
-
-               // 'Welcome to MediaWiki!' page
-               parent::clickContinueButton();
-
-               // 'Connect to database' page
-               parent::clickContinueButton();
-
-               // saved data should be deleted
-               $dbNameAfterRestart = $this->getValue( "mysql_wgDBname" );
-               $this->assertNotEquals( $dbNameBeforeRestart, $dbNameAfterRestart );
-       }
-
-       // Verify cancelling restart
-       public function testCancelRestartInstallation() {
-               $dbNameBeforeRestart = DB_NAME_PREFIX . "_cancel_restart";
-
-               parent::navigateDatabaseSettingsPage( $dbNameBeforeRestart );
-               // Verify 'Restart installation' link available
-               $this->assertTrue( $this->isElementPresent( "link=Restart installation" ) );
-
-               $this->click( "link=Restart installation" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-
-               // 'Restart Installation' page displayed
-               $this->assertEquals( "Restart installation", $this->getText( LINK_DIV . "h2" ) );
-
-               // Restart warning message displayed
-               $this->assertTrue( $this->isTextPresent( "Do you want to clear all saved data that you have entered and restart the installation process?" ) );
-
-               // Click on the 'Back' button
-               parent::clickBackButton();
-
-               // Navigates to the previous page
-               $this->assertEquals( "Database settings", $this->getText( LINK_DIV . "h2" ) );
-
-               // 'Connect to database' page
-               parent::clickBackButton();
-
-               // Saved data remain on the page.
-               $dbNameAfterRestart = $this->getValue( "mysql_wgDBname" );
-               $this->assertEquals( $dbNameBeforeRestart, $dbNameAfterRestart );
-       }
-}
diff --git a/tests/selenium/installer/MediaWikiRightFrameworkLinksTestCase.php b/tests/selenium/installer/MediaWikiRightFrameworkLinksTestCase.php
deleted file mode 100644 (file)
index 709085f..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-/**
- * MediaWikiRightFrameworkLinksTestCase
- *
- * @file
- * @ingroup Maintenance
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-require_once __DIR__ . '/MediaWikiInstallationCommonFunction.php';
-
-/**
- * Test Case ID   : 14, 15, 16, 17 (http://www.mediawiki.org/wiki/New_installer/Test_plan)
- * Test Case Name : User selects 'Read me' link.
- *                  User selects 'Release notes' link.
- *                  User selects 'Copying' link.
- *                  User selects 'Upgrading' link.
- * Version        : MediaWiki 1.18alpha
- */
-class MediaWikiRightFrameworkLinksTestCase extends MediaWikiInstallationCommonFunction {
-       function setUp() {
-               parent::setUp();
-       }
-
-       public function testLinksAvailability() {
-               $this->open( "http://" . HOST_NAME . ":" . PORT . "/" . DIRECTORY_NAME . "/config/index.php" );
-
-               // Verify 'Read me' link availability
-               $this->assertTrue( $this->isElementPresent( "link=Read me" ) );
-
-               // Verify 'Release notes' link availability
-               $this->assertTrue( $this->isElementPresent( "link=Release notes" ) );
-
-               //  Verify 'Copying' link availability
-               $this->assertTrue( $this->isElementPresent( "link=Copying" ) );
-       }
-
-       public function testPageNavigation() {
-               $this->open( "http://" . HOST_NAME . ":" . PORT . "/" . DIRECTORY_NAME . "/config/index.php" );
-
-               // Navigate to the 'Read me' page
-               $this->click( "link=Read me" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-               $this->assertEquals( "Read me", $this->getText( LINK_DIV . "h2[1]" ) );
-               $this->assertTrue( $this->isElementPresent( "submit-back" ) );
-               parent::clickBackButton();
-
-               // Navigate to the 'Release notes' page
-               $this->click( "link=Release notes" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-               $this->assertEquals( "Release notes", $this->getText( LINK_DIV . "h2[1]" ) );
-               $this->assertTrue( $this->isElementPresent( "submit-back" ) );
-               parent::clickBackButton();
-
-               // Navigate to the 'Copying' page
-               $this->click( "link=Copying" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-               $this->assertEquals( "Copying", $this->getText( LINK_DIV . "h2[1]" ) );
-               $this->assertTrue( $this->isElementPresent( "submit-back" ) );
-               parent::clickBackButton();
-
-               // Navigate to the 'Upgrading' page
-               $this->click( "link=Upgrading" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-               $this->assertEquals( "Upgrading", $this->getText( LINK_DIV . "h2[1]" ) );
-       }
-}
diff --git a/tests/selenium/installer/MediaWikiUpgradeExistingDatabaseTestCase.php b/tests/selenium/installer/MediaWikiUpgradeExistingDatabaseTestCase.php
deleted file mode 100644 (file)
index 0f969b7..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-<?php
-/**
- * MediaWikiUpgradeExistingDatabaseTestCase
- *
- * @file
- * @ingroup Maintenance
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-require_once __DIR__ . '/MediaWikiInstallationCommonFunction.php';
-
-/**
- * Test Case ID   : 05 (http://www.mediawiki.org/wiki/New_installer/Test_plan)
- * Test Case Name : Install Mediawiki by updating the existing database.
- * Version        : MediaWiki 1.18alpha
- */
-class MediaWikiUpgradeExistingDatabaseTestCase extends MediaWikiInstallationCommonFunction {
-       function setUp() {
-               parent::setUp();
-       }
-
-       // Install Mediawiki using 'MySQL' database type.
-       public function testUpgradeExistingDatabase() {
-
-               $databaseName = DB_NAME_PREFIX . "_upgrade_existing";
-               parent::navigateInstallPage( $databaseName );
-
-               $this->open( "http://localhost:" . PORT . "/" . DIRECTORY_NAME . "/config/index.php" );
-               $this->assertEquals( "Install", $this->getText( LINK_DIV . "h2" ) );
-               $this->assertEquals(
-                       "Warning: You seem to have already installed MediaWiki and are trying to install it again. Please proceed to the next page.",
-                       $this->getText( LINK_DIV . "div[2]/form/div[1]/div[2]" )
-               );
-
-               // 'Optionis' page
-               parent::clickBackButton();
-
-               // 'Name' page
-               parent::clickBackButton();
-
-               // 'Database settings' page
-               parent::clickBackButton();
-
-               // 'Connect to database' page
-               parent::clickBackButton();
-               $this->type( "mysql_wgDBname", $databaseName );
-               parent::clickContinueButton();
-
-               // 'Upgrade existing installation' page  displayed next to the 'Connect to database' page.
-               $this->assertEquals( "Upgrade existing installation", $this->getText( LINK_DIV . "h2" ) );
-
-               // Warning message displayed.
-               $this->assertEquals( "There are MediaWiki tables in this database. To upgrade them to MediaWiki 1.18alpha, click Continue.",
-                       $this->getText( LINK_DIV . "div[2]/form/div[1]/div[2]" ) );
-
-               parent::clickContinueButton();
-               $this->assertEquals( "Upgrade existing installation",
-                       $this->getText( LINK_DIV . "h2" ) );
-
-               // 'Upgrade complete.' text display
-               $this->assertEquals( "Upgrade complete.",
-                       $this->getText( "//div[@id='bodyContent']/div/div[1]/div[4]/form/div[1]/div[2]/p[1]" ) );
-
-               $this->assertEquals( "You can now Folder/index.php start using your wiki.",
-                       $this->getText( "//div[@id='bodyContent']/div/div[1]/div[4]/form/div[1]/div[2]/p[2]" ) );
-
-               $this->assertEquals( "Folder/index.php start using your wiki",
-                       $this->getText( "link=Folder/index.php start using your wiki" ) );
-
-               $this->assertTrue( $this->isElementPresent( "submit-regenerate" ) );
-               $this->click( "submit-regenerate" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-               $this->assertEquals( "Database settings",
-                       $this->getText( LINK_DIV . "h2" ) );
-
-               // 'Database settings' page
-               parent::clickContinueButton();
-
-               // Name page
-               parent::completeNamePage();
-
-               // Options page
-               parent::clickContinueButton();
-
-               // Install page
-               $this->assertEquals( "Warning: You seem to have already installed MediaWiki and are trying to install it again. Please proceed to the next page.",
-                       $this->getText( LINK_FORM . "div[1]/div[2]" ) );
-               parent::clickContinueButton();
-
-               // complete
-               parent::completePageSuccessfull();
-               $this->chooseCancelOnNextConfirmation();
-               parent::restartInstallation();
-       }
-}
diff --git a/tests/selenium/installer/MediaWikiUserInterfaceTestCase.php b/tests/selenium/installer/MediaWikiUserInterfaceTestCase.php
deleted file mode 100644 (file)
index 71ef684..0000000
+++ /dev/null
@@ -1,494 +0,0 @@
-<?php
-/**
- * MediaWikiUserInterfaceTestCase
- *
- * @file
- * @ingroup Maintenance
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-require_once __DIR__ . '/MediaWikiInstallationCommonFunction.php';
-
-/**
- * Test Case ID   : 18 - 27 (http://www.mediawiki.org/wiki/New_installer/Test_plan)
- * Test Case Name : UI of MediaWiki initial/ Language/ Welcome to MediaWiki!/ Connect to database/
- * Database settings/ Name/ Options/ Install/ Complete/ Restart Inslation pages
- * Version        : MediaWiki 1.18alpha
- */
-class MediaWikiUserInterfaceTestCase extends MediaWikiInstallationCommonFunction {
-       function setUp() {
-               parent::setUp();
-       }
-
-       public function testInitialPageUI() {
-
-               parent::navigateInitialpage();
-
-               // MediaWiki logo available
-               $this->assertTrue( $this->isElementPresent( "//img[@alt='The MediaWiki logo']" ) );
-
-               // 'MediaWiki 1.18alpha' text available
-               $this->assertEquals( "MediaWiki 1.18alpha", $this->getText( "//h1" ) );
-
-               // 'LocalSettings.php not found.' text available
-               $this->assertEquals( "LocalSettings.php not found.", $this->getText( "//p[1]" ) );
-
-               // 'Please set up the wiki first' text available
-               $this->assertEquals( "Please set up the wiki first.", $this->getText( "//p[2]" ) );
-
-               // 'set up the wiki' link available
-               $this->assertTrue( $this->isElementPresent( "link=set up the wiki" ) );
-       }
-
-       public function testlanguagePageUI() {
-               parent::navigateLanguagePage();
-
-               // Verify 'Language' heading
-               $this->assertEquals( "Language", $this->getText( LINK_DIV . "h2" ) );
-
-               // 'Your language' label available
-               $this->assertEquals( "Your language:",
-                       $this->getText( LINK_FORM . "div[1]/div[1]/label" ) );
-
-               // 'Your language' dropdown available
-               $this->assertTrue( $this->isElementPresent( "UserLang" ) );
-
-               // 'Wiki language' label available
-               $this->assertEquals( "Wiki language:",
-                       $this->getText( LINK_FORM . "div[2]/div[1]/label" ) );
-
-               // 'Wiki language' dropdown available
-               $this->assertTrue( $this->isElementPresent( "ContLang" ) );
-       }
-
-       public function testWelcometoMediaWikiUI() {
-               parent::navigateWelcometoMediaWikiPage();
-
-               // Verify 'Welcome to MediaWiki!' heading
-               $this->assertEquals( "Welcome to MediaWiki!",
-                       $this->getText( LINK_DIV . "h2" ) );
-
-               // Verify environment ok text displayed.
-               $this->assertEquals( "The environment has been checked.You can install MediaWiki.",
-                       $this->getText( LINK_DIV . "div[6]/span" ) );
-       }
-
-       public function testConnectToDatabaseUI() {
-               parent::navigateConnetToDatabasePage();
-
-               //  'MYSQL radio button available
-               $this->assertEquals( "MySQL",
-                       $this->getText( LINK_FORM . "div[2]/div[2]/ul/li[1]/label" ) );
-               $this->assertTrue( $this->isElementPresent( LINK_FORM . "div[2]/div[2]/ul/li[1]" ) );
-
-               // 'SQLite' radio button available
-               $this->assertTrue( $this->isElementPresent( LINK_FORM . "div[2]/div[2]/ul/li[2]" ) );
-               $this->assertEquals( "SQLite", $this->getText( LINK_FORM . "div[2]/div[2]/ul/li[2]/label " ) );
-
-               // 'Database host' label available
-               $this->assertEquals( "Database host:", $this->getText( "//div[@id='DB_wrapper_mysql']/div/div[1]/label" ) );
-
-               // 'Database host' text box default to 'localhost'
-               $this->assertEquals( "localhost", $this->getValue( "mysql_wgDBserver" ) );
-
-               // 'Identify this wiki' section available
-               $this->assertTrue( $this->isElementPresent( "//div[@id='DB_wrapper_mysql']/fieldset[1]/legend" ) );
-
-               // 'Identify this wiki' label available
-               $this->assertEquals( "Identify this wiki", $this->getText( "//div[@id='DB_wrapper_mysql']/fieldset[1]/legend" ) );
-
-               // 'Database name' lable available
-               $this->assertEquals( "Database name:",
-                       $this->getText( "//div[@id='DB_wrapper_mysql']/fieldset[1]/div[1]/div[1]/label" ) );
-
-               // Verify 'Database name:' text box is default to 'my_wiki'
-               $this->assertEquals( "my_wiki", $this->getValue( "mysql_wgDBname" ) );
-
-               // Verify 'Database table prefix:' label available
-               $this->assertEquals( "Database table prefix:",
-                       $this->getText( "//div[@id='DB_wrapper_mysql']/fieldset[1]/div[2]/div[1]/label" ) );
-
-               // 'User account for installation' section available
-               $this->assertTrue( $this->isElementPresent( "//div[@id='DB_wrapper_mysql']/fieldset[2]/legend" ) );
-
-               // 'User account for installation' label available
-               $this->assertEquals( "User account for installation", $this->getText( "//div[@id='DB_wrapper_mysql']/fieldset[2]/legend" ) );
-
-               // 'Database username' label available
-               $this->assertEquals( "Database username:",
-                       $this->getText( "//div[@id='DB_wrapper_mysql']/fieldset[2]/div[1]/div[1]/label" ) );
-
-               // 'Database username' text box defaults to 'root'
-               $this->assertEquals( "root", $this->getValue( "mysql__InstallUser" ) );
-
-               // 'Database password' label available
-               $this->assertEquals( "Database password:",
-                       $this->getText( "//div[@id='DB_wrapper_mysql']/fieldset[2]/div[2]/div[1]/label" ) );
-       }
-
-       public function testDatabaseSettingsUI() {
-               $databaseName = DB_NAME_PREFIX . "_db_settings_UI";
-               parent::navigateDatabaseSettingsPage( $databaseName );
-
-               // 'Database settings' text available.
-               $this->assertEquals( "Database settings", $this->getText( LINK_DIV . "h2" ) );
-
-               // 'Database account for web access' section available
-               $this->assertTrue( $this->isElementPresent( LINK_FORM . "fieldset" ) );
-
-               // 'Database account for web access' label available
-               $this->assertEquals( "Database account for web access", $this->getText( LINK_FORM . "fieldset/legend" ) );
-
-               // 'Use the same account as for installation' check box available
-               $this->assertEquals( "Use the same account as for installation", $this->getText( LINK_FORM . "fieldset/div[1]/label" ) );
-
-               // 'Use the same account as for installation' check box is selected by default
-               $this->assertEquals( "on", $this->getValue( "mysql__SameAccount" ) );
-
-               // 'Use the same account as for installation' check box deselected
-               $this->click( "mysql__SameAccount" );
-
-               // verify 'Use the same account as for installation' check box is not selected
-               $this->assertEquals( "off", $this->getValue( "mysql__SameAccount" ) );
-
-               // 'Database username' label available
-               $this->assertEquals( "Database username:", $this->getText( "//div[@id='dbOtherAccount']/div[1]/div[1]/label" ) );
-
-               // 'Database username' text box is default to the 'wikiuser'
-               $this->assertEquals( "wikiuser", $this->getValue( "mysql_wgDBuser" ) );
-
-               // 'Database password' label available
-               $this->assertEquals( "Database password:", $this->getText( "//div[@id='dbOtherAccount']/div[2]/div[1]/label" ) );
-
-               // 'Create the account if it does not already exist' label available
-               $this->assertEquals( "Create the account if it does not already exist", $this->getText( "//div[@id='dbOtherAccount']/div[4]/label" ) );
-
-               // 'Create the account if it does not already exist' check box is not selected by default
-               $this->assertEquals( "off", $this->getValue( "mysql__CreateDBAccount" ) );
-
-               //  'Create the account if it does not already exist' check box selected
-               $this->click( "mysql__CreateDBAccount" );
-
-               // Verify  'Create the account if it does not already exist' check box is selected
-               $this->assertEquals( "on", $this->getValue( "mysql__CreateDBAccount" ) );
-               $this->click( "mysql__SameAccount" );
-               $this->assertEquals( "on", $this->getValue( "mysql__SameAccount" ) );
-
-               // 'Storage engine' label available
-               $this->assertEquals( "Storage engine:",
-                       $this->getText( LINK_FORM . "div[1]/div[1]/label" ) );
-
-               // 'InnoDB' label available
-               $this->assertEquals( "InnoDB",
-                       $this->getText( LINK_FORM . "div[1]/div[2]/ul/li[1]/label" ) );
-
-               // 'InnoDB' radio button available
-               $this->assertTrue( $this->isElementPresent( "mysql__MysqlEngine_InnoDB" ) );
-
-               // 'MyISAM' label available
-               $this->assertEquals( "MyISAM", $this->getText( LINK_FORM . "div[1]/div[2]/ul/li[2]/label" ) );
-
-               // 'MyISAM' radio button available
-               $this->assertTrue( $this->isElementPresent( "mysql__MysqlEngine_MyISAM" ) );
-
-               // 'Database character set' label available
-               $this->assertEquals( "Database character set:",
-                       $this->getText( LINK_FORM . "div[3]/div[1]/label" ) );
-
-               // 'Binary' radio button available
-               $this->assertTrue( $this->isElementPresent( "mysql__MysqlCharset_binary" ) );
-
-               // 'Binary' radio button available
-               $this->assertEquals( "Binary", $this->getText( LINK_FORM . "div[3]/div[2]/ul/li[1]/label" ) );
-
-               // 'UTF-8' radio button available
-               $this->assertTrue( $this->isElementPresent( "mysql__MysqlCharset_utf8" ) );
-
-               // 'UTF-8' label available
-               $this->assertEquals( "UTF-8", $this->getText( LINK_FORM . "div[3]/div[2]/ul/li[2]/label" ) );
-
-               // 'Binary' radio button is selected
-               $this->assertEquals( "on", $this->getValue( "mysql__MysqlCharset_binary" ) );
-       }
-
-       public function testNamePageUI() {
-               $databaseName = DB_NAME_PREFIX . "_name_UI";
-               parent::navigateNamePage( $databaseName );
-
-               // 'Name of wiki' text box available
-               $this->assertEquals( "Name of wiki:",
-                       $this->getText( LINK_FORM . "div[1]/div[1]/label" ) );
-
-               $this->assertTrue( $this->isElementPresent( "config_wgSitename" ) );
-
-               // 'Project namespace' label available
-               $this->assertEquals( "Project namespace:",
-                       $this->getText( LINK_FORM . "div[2]/div[1]/label" ) );
-
-               // 'Same as the wiki name' radio button available
-               $this->assertTrue( $this->isElementPresent( "config__NamespaceType_site-name" ) );
-
-               // 'Project' radio button available
-               $this->assertTrue( $this->isElementPresent( "config__NamespaceType_generic" ) );
-
-               // 'Project' radio button available
-               $this->assertTrue( $this->isElementPresent( "config__NamespaceType_other" ) );
-
-               // 'Same as the wiki name' label available
-               $this->assertEquals( "Same as the wiki name:",
-                       $this->getText( LINK_FORM . "div[2]/div[2]/ul/li[1]/label" ) );
-
-               // 'Project' label available
-               $this->assertEquals( "Project",
-                       $this->getText( LINK_FORM . "div[2]/div[2]/ul/li[2]/label" ) );
-
-               // 'Project' label available
-               $this->assertEquals( "Other (specify)",
-                       $this->getText( LINK_FORM . "div[2]/div[2]/ul/li[3]/label" ) );
-
-               //  'Same as the wiki name' radio button selected by default
-               $this->assertEquals( "on", $this->getValue( "config__NamespaceType_site-name" ) );
-
-               // 'Administrator account' section available
-               $this->assertTrue( $this->isElementPresent( LINK_FORM . "fieldset" ) );
-
-               // 'Administrator account' label available
-               $this->assertEquals( "Administrator account",
-                       $this->getText( LINK_FORM . "fieldset/legend" ) );
-
-               // 'Your Name' label available
-               $this->assertEquals( "Your name:",
-                       $this->getText( LINK_FORM . "fieldset/div[1]/div[1]/label" ) );
-
-               // 'Your Name' text box available
-               $this->assertTrue( $this->isElementPresent( "config__AdminName" ) );
-
-               // 'Password' label available
-               $this->assertEquals( "Password:",
-                       $this->getText( LINK_FORM . "fieldset/div[2]/div[1]/label" ) );
-
-               // 'Password' text box available
-               $this->assertTrue( $this->isElementPresent( "config__AdminPassword" ) );
-
-               // 'Password again' label available
-               $this->assertEquals( "Password again:",
-                       $this->getText( LINK_FORM . "fieldset/div[3]/div[1]/label" ) );
-
-               // 'Password again' text box available
-               $this->assertTrue( $this->isElementPresent( "config__AdminPassword2" ) );
-
-               // 'Email address' label avaialble
-               $this->assertEquals( "E-mail address:",
-                       $this->getText( LINK_FORM . "fieldset/div[4]/div[1]/label" ) );
-
-               // 'Email address' text box available
-               $this->assertTrue( $this->isElementPresent( "config__AdminEmail" ) );
-
-               // Message displayed
-               $this->assertEquals( "You are almost done! You can now skip the remaining configuration and install the wiki right now.",
-                       $this->getText( LINK_FORM . "/div[4]/div[2]/p" ) );
-
-               // 'Ask me more questions.' radio button available
-               $this->assertTrue( $this->isElementPresent( "config__SkipOptional_continue" ) );
-
-               // 'Ask me more questions.' label available
-               $this->assertEquals( "Ask me more questions.",
-                       $this->getText( LINK_FORM . "div[5]/div[2]/ul/li[1]/label" ) );
-
-               // 'I'm bored already, just install the wiki' radio button is avaiable
-               $this->assertTrue( $this->isElementPresent( "config__SkipOptional_skip" ) );
-
-               // 'I'm bored already, just install the wiki' label available
-               $this->assertEquals( "I'm bored already, just install the wiki.",
-                       $this->getText( LINK_FORM . "div[5]/div[2]/ul/li[2]/label" ) );
-
-               //  'Ask me more questions.' radio button is default selected
-               $this->assertEquals( "on", $this->getValue( "config__SkipOptional_continue" ) );
-       }
-
-       public function testOptionPageUI() {
-               $databaseName = DB_NAME_PREFIX . "_options_UI";
-               parent::navigateOptionsPage( $databaseName );
-
-               // 'Options' label available
-               $this->assertEquals( "Options", $this->getText( LINK_DIV . "h2" ) );
-
-               // 'Return e-mail address' label available
-               $this->assertEquals( "Return e-mail address:", $this->getText( "//div[@id='emailwrapper']/div[1]/div[1]/label" ) );
-
-               //    'Return e-mail address' text box available
-               $this->assertTrue( $this->isElementPresent( "config_wgPasswordSender" ) );
-
-               // Text 'apache@localhost' is default value of the 'Return e-mail address' text box
-               $this->assertEquals( "apache@localhost", $this->getValue( "config_wgPasswordSender" ) );
-
-               // 'Logo URL' label available
-               $this->assertEquals( "Logo URL:", $this->getText( LINK_FORM . "fieldset[2]/div[3]/div[1]/label" ) );
-
-               // 'Logo URL' text box available
-               $this->assertTrue( $this->isElementPresent( "config_wgLogo" ) );
-
-               // Correct path available in the 'Logo URL' text box
-               $this->assertEquals( "/wiki/skins/common/images/wiki.png", $this->getValue( "config_wgLogo" ) );
-
-               // 'Enable file uploads' radio button available
-               $this->assertTrue( $this->isElementPresent( "config_wgEnableUploads" ) );
-
-               // 'Enable file uploads' label available
-               $this->assertEquals( "Enable file uploads",
-                       $this->getText( LINK_FORM . "fieldset[2]/div[1]/label" ) );
-
-               // 'Enable file uploads' check box is not selected
-               $this->assertEquals( "off", $this->getValue( "config_wgEnableUploads" ) );
-
-               $this->click( "config_wgEnableUploads" );
-
-               // 'Directory for deleted files' label available
-               $this->assertEquals( "Directory for deleted files:",
-                       $this->getText( "//div[@id='uploadwrapper']/div/div[1]/label" ) );
-
-               // 'Directory for deleted files' text box available
-               $this->assertTrue( $this->isElementPresent( "config_wgDeletedDirectory" ) );
-
-               // Correct path available in the 'Directory for deleted files' text box
-               $this->assertEquals( "C:\\wamp\\www\\" . DIRECTORY_NAME . "/images/deleted",
-                       $this->getValue( "config_wgDeletedDirectory" ) );
-       }
-
-       public function testInstallPageUI() {
-               $databaseName = DB_NAME_PREFIX . "_install_UI";
-               parent::navigateInstallPage( $databaseName );
-
-               // Verify installation done messages display
-               $this->assertEquals( "Setting up database... done",
-                       $this->getText( LINK_FORM . "ul/li[1]" ) );
-               $this->assertEquals( "Creating tables... done",
-                       $this->getText( LINK_FORM . "ul/li[2]" ) );
-               $this->assertEquals( "Creating database user... done",
-                       $this->getText( LINK_FORM . "ul/li[3]" ) );
-               $this->assertEquals( "Populating default interwiki table... done",
-                       $this->getText( LINK_FORM . "ul/li[4]" ) );
-               $this->assertEquals( "Generating secret key... done",
-                       $this->getText( LINK_FORM . "ul/li[5]" ) );
-               $this->assertEquals( "Generating default upgrade key... done",
-                       $this->getText( LINK_FORM . "ul/li[6]" ) );
-               $this->assertEquals( "Creating administrator user account... done",
-                       $this->getText( LINK_FORM . "ul/li[7]" ) );
-               $this->assertEquals( "Creating main page with default content... done",
-                       $this->getText( LINK_FORM . "ul/li[8]" ) );
-       }
-
-       public function testCompletePageUI() {
-               $databaseName = DB_NAME_PREFIX . "_complete_UI";
-               parent::navigateCompletePage( $databaseName );
-
-               // 'Congratulations!' text display
-               $this->assertEquals( "Congratulations!",
-                       $this->getText( LINK_FORM . "div[1]/div[2]/p[1]/b" ) );
-               // 'LocalSettings.php' generated message display
-               $this->assertEquals( "The installer has generated a LocalSettings.php file. It contains all your configuration.",
-                       $this->getText( LINK_FORM . "div[1]/div[2]/p[2]" ) );
-
-               // 'Download LocalSettings.php'' link available
-               $this->assertTrue( $this->isElementPresent( "link=Download LocalSettings.php" ) );
-
-               // 'enter your wiki' link available
-               $this->assertTrue( $this->isElementPresent( "link=Folder/index.php enter your wiki" ) );
-       }
-
-       public function testRestartInstallation() {
-               parent::navigateConnetToDatabasePage();
-               $this->click( "link=Restart installation" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-
-               // Restart installation' label should be available.
-               $this->assertEquals( "Restart installation", $this->getText( LINK_DIV . "h2" ) );
-
-               //'Do you want to clear all saved data that you have entered and restart the installation process?' label available
-               $this->assertEquals( "Do you want to clear all saved data that you have entered and restart the installation process?",
-                       $this->getText( "//*[@id='bodyContent']/div/div/div[2]/form/div[1]/div[2]" ) );
-               // 'Back' button available
-               $this->assertTrue( $this->isElementPresent( "submit-back" ) );
-
-               // 'Restart' button available
-               $this->assertTrue( $this->isElementPresent( "submit-restart" ) );
-       }
-
-       public function testMediaWikiLogoAvailability() {
-               $databaseName = DB_NAME_PREFIX . "_mediawiki_logo";
-               parent::navigateInitialpage();
-               parent::mediaWikiLogoPresentInitialScreen();
-               $this->click( "link=set up the wiki" );
-               $this->waitForPageToLoad( PAGE_LOAD_TIME );
-
-               // 'Language' page
-               parent::mediaWikiLogoPresent();
-               parent::clickContinueButton();
-
-               // 'Welcome to MediaWiki' page
-               parent::mediaWikiLogoPresent();
-               parent::clickContinueButton();
-
-               // 'Connet to database' page
-               parent::mediaWikiLogoPresent();
-               $this->type( "mysql_wgDBname", $databaseName );
-               parent::clickContinueButton();
-
-               // 'Database setting' page
-               parent::mediaWikiLogoPresent();
-               parent::clickContinueButton();
-
-               // 'Name' page
-               parent::mediaWikiLogoPresent();
-               parent::completeNamePage();
-               parent::clickContinueButton();
-
-               // 'Options' page
-               parent::mediaWikiLogoPresent();
-               parent::clickContinueButton();
-
-               // 'Install' page
-               parent::mediaWikiLogoPresent();
-       }
-
-       public function testRightFramework() {
-               parent::navigateLanguagePage();
-               // Verfy right framework texts display
-               $this->assertEquals( "Language",
-                       $this->getText( LINK_RIGHT_FRAMEWORK . "li[1]" ) );
-               $this->assertEquals( "Existing wiki",
-                       $this->getText( LINK_RIGHT_FRAMEWORK . "li[2]" ) );
-               $this->assertEquals( "Welcome to MediaWiki!",
-                       $this->getText( LINK_RIGHT_FRAMEWORK . "li[3]" ) );
-               $this->assertEquals( "Connect to database",
-                       $this->getText( LINK_RIGHT_FRAMEWORK . "li[4]" ) );
-               $this->assertEquals( "Upgrade existing installation",
-                       $this->getText( LINK_RIGHT_FRAMEWORK . "li[5]" ) );
-               $this->assertEquals( "Database settings",
-                       $this->getText( LINK_RIGHT_FRAMEWORK . "li[6]" ) );
-               $this->assertEquals( "Name",
-                       $this->getText( LINK_RIGHT_FRAMEWORK . "li[7]" ) );
-               $this->assertEquals( "Options",
-                       $this->getText( LINK_RIGHT_FRAMEWORK . "li[8]" ) );
-               $this->assertEquals( "Install",
-                       $this->getText( LINK_RIGHT_FRAMEWORK . "li[9]" ) );
-               $this->assertEquals( "Complete!",
-                       $this->getText( LINK_RIGHT_FRAMEWORK . "li[10]/span" ) );
-       }
-}
diff --git a/tests/selenium/installer/README.txt b/tests/selenium/installer/README.txt
deleted file mode 100644 (file)
index bc880a8..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-== Details==
-
-Automated Selenium test scripts written for MediaWiki Installer is available at https://gerrit.wikimedia.org/r/gitweb?p=mediawiki/core.git;a=tree;f=tests/selenium/installer;hb=HEAD.
-Detailed test cases available at http://www.mediawiki.org/wiki/New_installer/Test_plan.
-
-Version : MediaWiki 1.18alpha
-Date   : 27/12/2010
-
-== Running tests ==
-
-Test cases can be run independently or can run all the test cases using MediaWikiInstallerTestSuite.php within PHPUnit/Selenium.
-
-
-== Dependencies == 
-
-MediaWikiInstallationConfig.php
-
-Value of the 'DB_NAME_PREFIX' should be replace with the database name prefix. Several DB instances will get created to cover different installation scenarios starting with the above prefix.
-You need to change the value of the 'DB_NAME_PREFIX' in MediaWikiInstallationConfig everytime you planned to
-run the tests.
-'DIRECTORY_NAME', 'PORT' and the 'HOST_NAME' should be replaced with your local values.
-You may specify the test browser you wish to run the test using 'TEST_BROWSER'.  Default browser is Firefox.
-
-Note : MediaWikiInstallerTestSuite.php has no dependency on 'Selenium' test framework.
-
-
-== Known problems ==
-
-If you run the MediaWikiInstallerTestSuite.php twice without changing the name of the database, the second run should be falied.
-(Please read the more information on how to change the database name which is avaialable under 'Dependencies' section)
-
-
diff --git a/tests/selenium/selenium_settings.ini.sample b/tests/selenium/selenium_settings.ini.sample
deleted file mode 100644 (file)
index b1d8819..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-[SeleniumSettings]
-
-; Set up the available browsers that Selenium can control.
-browsers[firefox]      = "*firefox"
-browsers[iexplorer] = "*iexploreproxy"
-browsers[chrome]       = "*chrome"
-
-; The simple configurations above usually work on Linux, but Windows and
-; Mac OS X hosts may need to specify a full path:
-;browsers[firefox] = "*firefox /Applications/Firefox.app/Contents/MacOS/firefox-bin"
-;browsers[firefox] = "*firefox C:\Program Files\Mozilla Firefox\firefox.exe"
-
-host                           = "localhost"
-port                           = "4444"
-wikiUrl                        = "http://localhost/deployment"
-username                       = "wikiuser"
-userPassword           = "wikipass"
-testBrowser            = "firefox"
-startserver                    =
-stopserver                     =
-jUnitLogFile           =
-runAgainstGrid         = false
-
-; To let the test runner start and stop the selenium server, it needs the full
-; path to selenium-server.jar from the selenium-remote-control package.
-seleniumserverexecpath = "/opt/local/selenium-remote-control-1.0.3/selenium-server-1.0.3/selenium-server.jar"
-
-[SeleniumTests]
-
-testSuite[SimpleSeleniumTestSuite] = "tests/selenium/suites/SimpleSeleniumTestSuite.php"
-testSuite[WikiEditorTestSuite] = "extensions/WikiEditor/selenium/WikiEditorTestSuite.php"
-
diff --git a/tests/selenium/selenium_settings_grid.ini.sample b/tests/selenium/selenium_settings_grid.ini.sample
deleted file mode 100644 (file)
index 3bbd534..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-[SeleniumSettings]
-
-host                   = "grid.tesla.usability.wikimedia.org"
-port                   = "4444"
-wikiUrl                        = "http://208.80.152.253:5001"
-username               = "wikiuser"
-userPassword   = "wikipass"
-testBrowser            = "Safari on OS X Snow Leopard"
-jUnitLogFile   =
-runAgainstGrid = true
-startserver = false
-stopserver = false
-
-[SeleniumTests]
-
-testSuite[SimpleSeleniumTestSuite]     = "tests/selenium/suites/SimpleSeleniumTestSuite.php"
diff --git a/tests/selenium/suites/AddContentToNewPageTestCase.php b/tests/selenium/suites/AddContentToNewPageTestCase.php
deleted file mode 100644 (file)
index 1237bb5..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-<?php
-/**
- * Selenium server manager
- *
- * @file
- * @ingroup Testing
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-class AddContentToNewPageTestCase extends SeleniumTestCase {
-       // Add bold text and verify output
-       public function testAddBoldText() {
-               $this->getExistingPage();
-               $this->clickEditLink();
-               $this->loadWikiEditor();
-               $this->clearWikiEditor();
-               $this->click( "//*[@id='mw-editbutton-bold']" );
-               $this->clickShowPreviewBtn();
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify bold text displayed on mediawiki preview
-               $this->assertTrue( $this->isElementPresent( "//div[@id='wikiPreview']/p/b" ) );
-               $this->assertTrue( $this->isTextPresent( "Bold text" ) );
-       }
-
-       // Add italic text and verify output
-       public function testAddItalicText() {
-               $this->getExistingPage();
-               $this->clickEditLink();
-               $this->loadWikiEditor();
-               $this->clearWikiEditor();
-               $this->click( "//*[@id='mw-editbutton-italic']" );
-               $this->clickShowPreviewBtn();
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify italic text displayed on mediawiki preview
-               $this->assertTrue( $this->isElementPresent( "//div[@id='wikiPreview']/p/i" ) );
-               $this->assertTrue( $this->isTextPresent( "Italic text" ) );
-       }
-
-       // Add internal link for a new page and verify output in the preview
-       public function testAddInternalLinkNewPage() {
-               $this->getExistingPage();
-               $this->clickEditLink();
-               $this->loadWikiEditor();
-               $this->clearWikiEditor();
-               $this->click( "//*[@id='mw-editbutton-link']" );
-               $this->clickShowPreviewBtn();
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify internal link displayed on mediawiki preview
-               $source = $this->getText( "//*[@id='wikiPreview']/p/a" );
-               $correct = strstr( $source, "Link title" );
-               $this->assertEquals( $correct, true );
-
-               $this->click( SeleniumTestConstants::LINK_START . "Link title" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify internal link open as a new page - editing mode
-               $source = $this->getText( "firstHeading" );
-               $correct = strstr( $source, "Editing Link title" );
-               $this->assertEquals( $correct, true );
-       }
-
-       // Add external link and verify output in the preview
-       public function testAddExternalLink() {
-               $this->getExistingPage();
-               $this->clickEditLink();
-               $this->loadWikiEditor();
-               $this->clearWikiEditor();
-               $this->click( "//*[@id='mw-editbutton-extlink']" );
-               $this->type( SeleniumTestConstants::TEXT_EDITOR, "[http://www.google.com Google]" );
-               $this->clickShowPreviewBtn();
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify external links displayed on mediawiki preview
-               $source = $this->getText( "//*[@id='wikiPreview']/p/a" );
-               $correct = strstr( $source, "Google" );
-               $this->assertEquals( $correct, true );
-
-               $this->click( SeleniumTestConstants::LINK_START . "Google" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify external link opens
-               $source = $this->getTitle();
-               $correct = strstr( $source, "Google" );
-               $this->assertEquals( $correct, true );
-       }
-
-       // Add level 2 headline and verify output in the preview
-       public function testAddLevel2HeadLine() {
-               $this->getExistingPage();
-               $this->clickEditLink();
-               $this->loadWikiEditor();
-               $this->clearWikiEditor();
-               $this->click( "mw-editbutton-headline" );
-               $this->clickShowPreviewBtn();
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-               $this->assertTrue( $this->isElementPresent( "//div[@id='wikiPreview']/h2" ) );
-
-               // Verify level 2 headline displayed on mediawiki preview
-               $source = $this->getText( "//*[@id='Headline_text']" );
-               $correct = strstr( $source, "Headline text" );
-               $this->assertEquals( $correct, true );
-       }
-
-       // Add text with ignore wiki format and verify output the preview
-       public function testAddNoWikiFormat() {
-               $this->getExistingPage();
-               $this->clickEditLink();
-               $this->loadWikiEditor();
-               $this->clearWikiEditor();
-               $this->click( "//*[@id='mw-editbutton-nowiki']" );
-               $this->clickShowPreviewBtn();
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify ignore wiki format text displayed on mediawiki preview
-               $source = $this->getText( "//div[@id='wikiPreview']/p" );
-               $correct = strstr( $source, "Insert non-formatted text here" );
-               $this->assertEquals( $correct, true );
-       }
-
-       // Add signature and verify output in the preview
-       public function testAddUserSignature() {
-               $this->getExistingPage();
-               $this->clickEditLink();
-               $this->loadWikiEditor();
-               $this->clearWikiEditor();
-               $this->click( "mw-editbutton-signature" );
-               $this->clickShowPreviewBtn();
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify signature displayed on mediawiki preview
-               $source = $this->getText( "//*[@id='wikiPreview']/p/a" );
-               $username = $this->getText( "//*[@id='pt-userpage']/a" );
-               $correct = strstr( $source, $username );
-               $this->assertEquals( $correct, true );
-       }
-
-       // Add horizontal line and verify output in the preview
-       public function testHorizontalLine() {
-               $this->getExistingPage();
-               $this->clickEditLink();
-               $this->loadWikiEditor();
-               $this->clearWikiEditor();
-               $this->click( "mw-editbutton-hr" );
-
-               $this->clickShowPreviewBtn();
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify horizontal line displayed on mediawiki preview
-               $this->assertTrue( $this->isElementPresent( "//div[@id='wikiPreview']/hr" ) );
-               $this->deletePage( "new" );
-       }
-}
diff --git a/tests/selenium/suites/AddNewPageTestCase.php b/tests/selenium/suites/AddNewPageTestCase.php
deleted file mode 100644 (file)
index c70af33..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-/**
- * Selenium server manager
- *
- * @file
- * @ingroup Testing
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-class AddNewPageTestCase extends SeleniumTestCase {
-       // Verify adding a new page
-       public function testAddNewPage() {
-               $newPage = "new";
-               $displayName = "New";
-               $this->open( $this->getUrl() .
-                       '/index.php?title=Main_Page&action=edit' );
-               $this->type( "searchInput", $newPage );
-               $this->click( "searchGoButton" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify 'Search results' text available
-               $source = $this->gettext( "firstHeading" );
-               $correct = strstr( $source, "Search results" );
-               $this->assertEquals( $correct, true );
-
-               // Verify  'Create the page "<page name>" on this wiki' text available
-               $source = $this->gettext( "//div[@id='bodyContent']/div[4]/p/b" );
-               $correct = strstr( $source, "Create the page \"New\" on this wiki!" );
-               $this->assertEquals( $correct, true );
-
-               $this->click( SeleniumTestConstants::LINK_START . $displayName );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               $this->assertTrue( $this->isElementPresent( SeleniumTestConstants::LINK_START . "Create" ) );
-               $this->type( "wpTextbox1", "add new test page" );
-               $this->click( SeleniumTestConstants::BUTTON_SAVE );
-
-               // Verify new page added
-               $source = $this->gettext( "firstHeading" );
-               $correct = strstr( $source, $displayName );
-               $this->assertEquals( $correct, true );
-       }
-}
diff --git a/tests/selenium/suites/CreateAccountTestCase.php b/tests/selenium/suites/CreateAccountTestCase.php
deleted file mode 100644 (file)
index a603f99..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-<?php
-/**
- * Selenium server manager
- *
- * @file
- * @ingroup Testing
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-Class CreateAccountTestCase extends SeleniumTestCase {
-       // Change these values before run the test
-       private $userName = "yourname4000";
-       private $password = "yourpass4000";
-
-       // Verify 'Log in/create account' link existance in Main page.
-       public function testMainPageLink() {
-
-               $this->click( "link=Log out" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               $this->open( $this->getUrl() . '/index.php?title=Main_Page' );
-               $this->assertTrue( $this->isElementPresent( "link=Log in / create account" ) );
-       }
-
-       // Verify 'Create an account' link existance in 'Log in / create account' Page.
-       public function testCreateAccountPageLink() {
-
-               $this->click( "link=Log out" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               $this->open( $this->getUrl() . '/index.php?title=Main_Page' );
-
-               // click Log in / create account link to open Log in / create account' page
-               $this->click( "link=Log in / create account" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-               $this->assertTrue( $this->isElementPresent( "link=Create an account" ) );
-       }
-
-       // Verify Create account
-       public function testCreateAccount() {
-
-               $this->click( "link=Log out" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               $this->open( $this->getUrl() . '/index.php?title=Main_Page' );
-
-               $this->click( "link=Log in / create account" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               $this->click( "link=Create an account" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify for blank user name
-               $this->type( "wpName2", "" );
-               $this->click( "wpCreateaccount" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-               $this->assertEquals( "Login error\n You have not specified a valid user name.",
-                       $this->getText( "//div[@id='bodyContent']/div[4]" ) );
-
-               // Verify for invalid user name
-               $this->type( "wpName2", "@" );
-               $this->click( "wpCreateaccount" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-               $this->assertEquals( "Login error\n You have not specified a valid user name.",
-                       $this->getText( "//div[@id='bodyContent']/div[4]" ) );
-
-               // start of test for blank password
-               $this->type( "wpName2", $this->userName );
-               $this->type( "wpPassword2", "" );
-               $this->click( "wpCreateaccount" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-               $this->assertEquals( "Login error\n Passwords must be at least 1 character.",
-                       $this->getText( "//div[@id='bodyContent']/div[4]" ) );
-
-               $this->type( "wpName2", $this->userName );
-               $this->type( "wpPassword2", $this->password );
-               $this->click( "wpCreateaccount" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-               $this->assertEquals( "Login error\n The passwords you entered do not match.",
-                       $this->getText( "//div[@id='bodyContent']/div[4]" ) );
-
-               $this->type( "wpName2", $this->userName );
-               $this->type( "wpPassword2", $this->password );
-               $this->type( "wpRetype", $this->password );
-               $this->click( "wpCreateaccount" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify successful account creation for valid combination of 'Username', 'Password', 'Retype password'
-               $this->assertEquals( "Welcome, " . ucfirst( $this->userName ) . "!",
-                       $this->getText( "Welcome,_" . ucfirst( $this->userName ) . "!" ) );
-       }
-}
-
diff --git a/tests/selenium/suites/DeletePageAdminTestCase.php b/tests/selenium/suites/DeletePageAdminTestCase.php
deleted file mode 100644 (file)
index f0005cd..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-/**
- * Selenium server manager
- *
- * @file
- * @ingroup Testing
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-class DeletePageAdminTestCase extends SeleniumTestCase {
-       // Verify adding a new page
-       public function testDeletePage() {
-
-               $newPage = "new";
-               $displayName = "New";
-
-               $this->open( $this->getUrl() . '/index.php?title=Main_Page' );
-
-               $this->type( "searchInput", $newPage );
-               $this->click( "searchGoButton" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-               $this->click( SeleniumTestConstants::LINK_START . $displayName );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-               $this->type( SeleniumTestConstants::TEXT_EDITOR, $newPage . " text" );
-               $this->click( SeleniumTestConstants::BUTTON_SAVE );
-
-               $this->open( $this->getUrl() .
-                       '/index.php?title=Main_Page&action=edit' );
-               $this->click( SeleniumTestConstants::LINK_START . "Log out" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-               $this->click( SeleniumTestConstants::LINK_START . "Log in / create account" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               $this->type( "wpName1", $this->selenium->getUser() );
-               $this->type( "wpPassword1", $this->selenium->getPass() );
-               $this->click( "wpLoginAttempt" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-               $this->type( "searchInput", "new" );
-               $this->click( "searchGoButton" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify  'Delete' link displayed
-               $source = $this->gettext( SeleniumTestConstants::LINK_START . "Delete" );
-               $correct = strstr( $source, "Delete" );
-               $this->assertEquals( $correct, true );
-
-               $this->click( SeleniumTestConstants::LINK_START . "Delete" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify 'Delete' button available
-               $this->assertTrue( $this->isElementPresent( "wpConfirmB" ) );
-
-               $this->click( "wpConfirmB" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify  'Action complete' text displayed
-               $source = $this->gettext( "firstHeading" );
-               $correct = strstr( $source, "Action complete" );
-               $this->assertEquals( $correct, true );
-
-               // Verify  '<Page Name> has been deleted. See deletion log for a record of recent deletions.' text displayed
-               $source = $this->gettext( "//div[@id='bodyContent']/p[1]" );
-               $correct = strstr( $source, "\"New\" has been deleted. See deletion log for a record of recent deletions." );
-               $this->assertEquals( $correct, true );
-       }
-}
diff --git a/tests/selenium/suites/EmailPasswordTestCase.php b/tests/selenium/suites/EmailPasswordTestCase.php
deleted file mode 100644 (file)
index 77282e4..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-/**
- * Selenium server manager
- *
- * @file
- * @ingroup Testing
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-class EmailPasswordTestCase extends SeleniumTestCase {
-       // change user name for each and every test (with in 24 hours)
-       private $userName = "test1";
-
-       public function testEmailPasswordButton() {
-               $this->click( SeleniumTestConstants::LINK_START . "Log out" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               $this->open( $this->getUrl() . '/index.php?title=Main_Page' );
-
-               // click Log in / create account link to open Log in / create account' page
-               $this->click( SeleniumTestConstants::LINK_START . "Log in / create account" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-               $this->assertTrue( $this->isElementPresent( "wpMailmypassword" ) );
-       }
-
-       // Verify Email password functionality
-       public function testEmailPasswordMessages() {
-               $this->click( SeleniumTestConstants::LINK_START . "Log out" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               $this->open( $this->getUrl() . '/index.php?title=Main_Page' );
-
-               // click Log in / create account link to open Log in / create account' page
-               $this->click( SeleniumTestConstants::LINK_START . "Log in / create account" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               $this->type( "wpName1", "" );
-               $this->click( "wpMailmypassword" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-               $this->assertEquals( "Login error\n You have not specified a valid user name.",
-                       $this->getText( "//div[@id='bodyContent']/div[4]" ) );
-
-               $this->type( "wpName1", $this->userName );
-               $this->click( "wpMailmypassword" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               //  Can not run on localhost
-               $this->assertEquals( "A new password has been sent to the e-mail address registered for " . ucfirst( $this->userName ) . ". Please log in again after you receive it.",
-                       $this->getText( "//div[@id='bodyContent']/div[4]" ) );
-
-               $this->type( "wpName1", $this->userName );
-               $this->click( "wpMailmypassword" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-               $this->assertEquals( "Login error\n A password reminder has already been sent, within the last 24 hours. To prevent abuse, only one password reminder will be sent per 24 hours.",
-                       $this->getText( "//div[@id='bodyContent']/div[4]" ) );
-       }
-}
-
diff --git a/tests/selenium/suites/MediaWikiEditorConfig.php b/tests/selenium/suites/MediaWikiEditorConfig.php
deleted file mode 100644 (file)
index 7fd8e07..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-/**
- * Selenium server manager
- *
- * @file
- * @ingroup Testing
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-class MediaWikiEditorConfig {
-       public static function getSettings( &$includeFiles, &$globalConfigs ) {
-               $includes = array(
-                       //files that needed to be included would go here
-                       //commenting out because this does not exist
-                       //'tests/selenium/suites/MediaWikiCommonFunction.php'
-               );
-               $configs = array(
-                       'wgPageLoadTime' => "600000"
-               );
-               $includeFiles = array_merge( $includeFiles, $includes );
-               $globalConfigs = array_merge( $globalConfigs, $configs );
-               return true;
-       }
-}
-
diff --git a/tests/selenium/suites/MediaWikiEditorTestSuite.php b/tests/selenium/suites/MediaWikiEditorTestSuite.php
deleted file mode 100644 (file)
index f9cfb7f..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-class MediaWikiEditorTestSuite extends SeleniumTestSuite {
-       public function setUp() {
-               $this->setLoginBeforeTests( true );
-               parent::setUp();
-       }
-
-       public function addTests() {
-               $testFiles = array(
-                       'tests/selenium/suites/AddNewPageTestCase.php',
-                       'tests/selenium/suites/AddContentToNewPageTestCase.php',
-                       'tests/selenium/suites/PreviewPageTestCase.php',
-                       'tests/selenium/suites/SavePageTestCase.php',
-               );
-               parent::addTestFiles( $testFiles );
-       }
-}
-
diff --git a/tests/selenium/suites/MediaWikiExtraTestSuite.php b/tests/selenium/suites/MediaWikiExtraTestSuite.php
deleted file mode 100644 (file)
index 8993907..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-class MediaWikiExtraTestSuite extends SeleniumTestSuite {
-       public function setUp() {
-               $this->setLoginBeforeTests( true );
-               parent::setUp();
-       }
-
-       public function addTests() {
-               $testFiles = array(
-                       'tests/selenium/suites/MyContributionsTestCase.php',
-                       'tests/selenium/suites/MyWatchListTestCase.php',
-                       'tests/selenium/suites/UserPreferencesTestCase.php',
-                       'tests/selenium/suites/MovePageTestCase.php',
-                       'tests/selenium/suites/PageSearchTestCase.php',
-                       'tests/selenium/suites/EmailPasswordTestCase.php',
-                       'tests/selenium/suites/CreateAccountTestCase.php'
-               );
-               parent::addTestFiles( $testFiles );
-       }
-}
diff --git a/tests/selenium/suites/MediawikiCoreSmokeTestCase.php b/tests/selenium/suites/MediawikiCoreSmokeTestCase.php
deleted file mode 100644 (file)
index 4491afd..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-/*
- * Stub of tests be need as part of the hack-a-ton
- */
-class MediawikiCoreSmokeTestCase extends SeleniumTestCase {
-       public function testUserLogin() {
-
-       }
-
-       public function testChangeUserPreference() {
-
-       }
-
-       /**
-        * TODO: generalize this test to be reusable for different skins
-        */
-       public function testCreateNewPageVector() {
-
-       }
-
-       /**
-        * TODO: generalize this test to be reusable for different skins
-        */
-       public function testEditExistingPageVector() {
-
-       }
-
-       /**
-        * TODO: generalize this test to be reusable for different skins
-        */
-       public function testCreateNewPageMonobook() {
-
-       }
-
-       /**
-        * TODO: generalize this test to be reusable for different skins
-        */
-       public function testEditExistingPageMonobook() {
-
-       }
-
-       public function testImageUpload() {
-               $this->login();
-               $this->open( $this->getUrl() .
-                       '/index.php?title=Special:Upload' );
-               $this->type( 'wpUploadFile', __DIR__ .
-                       "\\..\\data\\Wikipedia-logo-v2-de.png" );
-               $this->check( 'wpIgnoreWarning' );
-               $this->click( 'wpUpload' );
-               $this->waitForPageToLoad( 30000 );
-
-               $this->assertSeleniumHTMLContains(
-                       '//h1[@class="firstHeading"]', "Wikipedia-logo-v2-de.png"
-               );
-
-               /*
-               $this->open( $this->getUrl() . '/index.php?title=Image:'
-                       . ucfirst( $this->filename ) . '&action=delete' );
-               $this->type( 'wpReason', 'Remove test file' );
-               $this->click( 'mw-filedelete-submit' );
-               $this->waitForPageToLoad( 10000 );
-
-               // Todo: This message is localized
-               $this->assertSeleniumHTMLContains( '//div[@id="bodyContent"]/p',
-                       ucfirst( $this->filename ) . '.*has been deleted.' );
-                */
-       }
-
-
-}
diff --git a/tests/selenium/suites/MediawikiCoreSmokeTestSuite.php b/tests/selenium/suites/MediawikiCoreSmokeTestSuite.php
deleted file mode 100644 (file)
index fc69e3c..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-/**
- * Stubs for now. We're going to start populating this test.
- */
-class MediawikiCoreSmokeTestSuite extends SeleniumTestSuite {
-       public function setUp() {
-               $this->setLoginBeforeTests( false );
-               parent::setUp();
-       }
-
-       public function addTests() {
-               $testFiles = array(
-                       'tests/selenium/suites/MediawikiCoreSmokeTestCase.php'
-               );
-               parent::addTestFiles( $testFiles );
-       }
-
-
-}
diff --git a/tests/selenium/suites/MovePageTestCase.php b/tests/selenium/suites/MovePageTestCase.php
deleted file mode 100644 (file)
index d2eaa40..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-<?php
-/**
- * Selenium server manager
- *
- * @file
- * @ingroup Testing
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-class MovePageTestCase extends SeleniumTestCase {
-       // Verify move(rename) wiki page
-       public function testMovePage() {
-               $newPage = "mypage99";
-               $displayName = "Mypage99";
-
-               $this->open( $this->getUrl() .
-                       '/index.php?title=Main_Page&action=edit' );
-               $this->type( "searchInput", $newPage );
-               $this->click( "searchGoButton" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-               $this->click( "link=" . $displayName );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-               $this->type( SeleniumTestConstants::TEXT_EDITOR, $newPage . " text" );
-               $this->click( SeleniumTestConstants::BUTTON_SAVE );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify link 'Move' available
-               $this->assertTrue( $this->isElementPresent( "link=Move" ) );
-
-               $this->click( "link=Move" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify correct page name displayed under 'Move Page' field
-               $this->assertEquals( $displayName,
-                       $this->getText( "//table[@id='mw-movepage-table']/tbody/tr[1]/td[2]/strong/a" ) );
-               $movePageName = $this->getText( "//table[@id='mw-movepage-table']/tbody/tr[1]/td[2]/strong/a" );
-
-               // Verify 'To new title' field has current page name as the default name
-               $newTitle = $this->getValue( "wpNewTitle" );
-               $correct = strstr( $movePageName, $newTitle );
-               $this->assertEquals( $correct, true );
-
-               $this->type( "wpNewTitle", $displayName );
-               $this->click( "wpMove" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify warning message for the same source and destination titles
-               $this->assertEquals( "Source and destination titles are the same; cannot move a page over itself.",
-                       $this->getText( "//div[@id='bodyContent']/p[4]/strong" ) );
-
-               // Verify warning message for the blank title
-               $this->type( "wpNewTitle", "" );
-               $this->click( "wpMove" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify warning message for the blank title
-               $this->assertEquals( "The requested page title was invalid, empty, or an incorrectly linked inter-language or inter-wiki title. It may contain one or more characters which cannot be used in titles.",
-                       $this->getText( "//div[@id='bodyContent']/p[4]/strong" ) );
-
-               //  Verify warning messages for the invalid titles
-               $this->type( "wpNewTitle", "# < > [ ] | { }" );
-               $this->click( "wpMove" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-               $this->assertEquals( "The requested page title was invalid, empty, or an incorrectly linked inter-language or inter-wiki title. It may contain one or more characters which cannot be used in titles.",
-                       $this->getText( "//div[@id='bodyContent']/p[4]/strong" ) );
-
-               $this->type( "wpNewTitle", $displayName . "move" );
-               $this->click( "wpMove" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify move success message displayed correctly
-               $this->assertEquals( "\"" . $displayName . "\" has been moved to \"" . $displayName . "move" . "\"",
-                       $this->getText( "//div[@id='bodyContent']/p[1]/b" ) );
-
-               $this->type( "searchInput", $newPage . "move" );
-               $this->click( "searchGoButton" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify search using new page name
-               $this->assertEquals( $displayName . "move", $this->getText( "firstHeading" ) );
-
-               $this->type( "searchInput", $newPage );
-               $this->click( "searchGoButton" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify search using old page name
-               $redirectPageName = $this->getText( "//*[@id='contentSub']" );
-               $this->assertEquals( "(Redirected from " . $displayName . ")", $redirectPageName );
-
-               // newpage delete
-               $this->deletePage( $newPage . "move" );
-               $this->deletePage( $newPage );
-       }
-}
-
diff --git a/tests/selenium/suites/MyContributionsTestCase.php b/tests/selenium/suites/MyContributionsTestCase.php
deleted file mode 100644 (file)
index 81e3a4d..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-/**
- * Selenium server manager
- *
- * @file
- * @ingroup Testing
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-require_once dirname( __DIR__ ) . '/SeleniumTestConstants.php';
-
-class MyContributionsTestCase extends SeleniumTestCase {
-       // Verify user contributions
-       public function testRecentChangesAvailability() {
-               $newPage = $this->createNewTestPage( "MyContributionsTest" );
-
-               // Verify My contributions Link available
-               $this->assertTrue( $this->isElementPresent( "link=Contributions" ) );
-
-
-               $this->click( "link=Contributions" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify recent page adding available on My Contributions list
-               $this->assertEquals( $newPage, $this->getText( "link=" . $newPage ) );
-
-               $this->type( SeleniumTestConstants::INPUT_SEARCH_BOX, $newPage );
-               $this->click( SeleniumTestConstants::BUTTON_SEARCH );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               $this->click( SeleniumTestConstants::LINK_EDIT );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-               $this->type( SeleniumTestConstants::TEXT_EDITOR, $newPage . " text changed" );
-               $this->click( SeleniumTestConstants::BUTTON_SAVE );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-               $this->click( "link=Contributions" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify recent page changes available on My Contributions
-               $this->assertTrue( $this->isTextPresent( $newPage ) );
-       }
-}
-
diff --git a/tests/selenium/suites/MyWatchListTestCase.php b/tests/selenium/suites/MyWatchListTestCase.php
deleted file mode 100644 (file)
index 842108f..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-/**
- * Selenium server manager
- *
- * @file
- * @ingroup Testing
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-require_once dirname( __DIR__ ) . '/SeleniumTestConstants.php';
-
-class MyWatchListTestCase extends SeleniumTestCase {
-       // Verify user watchlist
-       public function testMyWatchlist() {
-               $pageName = $this->createNewTestPage( "MyWatchListTest", true );
-               // Verify link 'My Watchlist' available
-               $this->assertTrue( $this->isElementPresent( SeleniumTestConstants::LINK_START . "Watchlist" ) );
-
-               $this->click( SeleniumTestConstants::LINK_START . "Watchlist" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify newly added page to the watchlist is available
-               $this->assertEquals( $pageName, $this->getText( SeleniumTestConstants::LINK_START . $pageName ) );
-
-               $this->click( SeleniumTestConstants::LINK_START . $pageName );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-               $this->click( SeleniumTestConstants::LINK_EDIT );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-               $this->click( "wpWatchthis" );
-               $this->click( SeleniumTestConstants::BUTTON_SAVE );
-               $this->assertFalse( $this->isElementPresent( SeleniumTestConstants::LINK_START . $pageName ) );
-               //todo watch using the dropdown menu
-       }
-}
-
diff --git a/tests/selenium/suites/PageDeleteTestSuite.php b/tests/selenium/suites/PageDeleteTestSuite.php
deleted file mode 100644 (file)
index e43ffa8..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-class PageDeleteTestSuite extends SeleniumTestSuite {
-       public function setUp() {
-               $this->setLoginBeforeTests( true );
-               parent::setUp();
-       }
-
-       public function addTests() {
-               $testFiles = array(
-                       'tests/selenium/suites/DeletePageAdminTestCase.php'
-               );
-               parent::addTestFiles( $testFiles );
-       }
-}
diff --git a/tests/selenium/suites/PageSearchTestCase.php b/tests/selenium/suites/PageSearchTestCase.php
deleted file mode 100644 (file)
index 5fdc5c8..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-/**
- * Selenium server manager
- *
- * @file
- * @ingroup Testing
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-class PageSearchTestCase extends SeleniumTestCase {
-       // Verify the functionality of the 'Go' button
-       public function testPageSearchBtnGo() {
-
-               $this->open( $this->getUrl() .
-                       '/index.php?title=Main_Page&action=edit' );
-               $this->type( SeleniumTestConstants::INPUT_SEARCH_BOX, "calcey qa" );
-               $this->click( "searchGoButton" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify  no page matched with the entered search text
-               $source = $this->gettext( "//div[@id='bodyContent']/div[4]/p/b" );
-               $correct = strstr( $source, "Create the page \"Calcey qa\" on this wiki!" );
-               $this->assertEquals( $correct, true );
-
-               $this->click( "link=Calcey qa" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               $this->type( SeleniumTestConstants::TEXT_EDITOR, "Calcey QA team" );
-               $this->click( "wpSave" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-       }
-
-       // Verify the functionality of the 'Search' button
-       public function testPageSearchBtnSearch() {
-               $this->open( $this->getUrl() .
-                       '/index.php?title=Main_Page&action=edit' );
-               $this->type( SeleniumTestConstants::INPUT_SEARCH_BOX, "Calcey web" );
-               $this->click( SeleniumTestConstants::BUTTON_SEARCH );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify  no page is available as the search text
-               $source = $this->gettext( "//div[@id='bodyContent']/div[4]/p[2]/b" );
-               $correct = strstr( $source, "Create the page \"Calcey web\" on this wiki!" );
-               $this->assertEquals( $correct, true );
-
-               $this->click( "link=Calcey web" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               $this->type( SeleniumTestConstants::TEXT_EDITOR, "Calcey web team" );
-               $this->click( SeleniumTestConstants::BUTTON_SAVE );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify saved page is opened  when the exact page name is given
-               $this->type( SeleniumTestConstants::INPUT_SEARCH_BOX, "Calcey web" );
-               $this->click( SeleniumTestConstants::BUTTON_SEARCH );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify exact page matched with the entered search text using 'Search' button
-               $source = $this->getText( "//*[@id='bodyContent']/div[4]/p/b" );
-               $correct = strstr( $source, "There is a page named \"Calcey web\" on this wiki." );
-               $this->assertEquals( $correct, true );
-
-               // Verify resutls available when partial page name is entered as the search text
-               $this->type( SeleniumTestConstants::INPUT_SEARCH_BOX, "Calcey" );
-               $this->click( SeleniumTestConstants::BUTTON_SEARCH );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               //  Verify text avaialble in the search result under the page titles
-               if ( $this->isElementPresent( "Page_title_matches" ) ) {
-                       $textPageTitle = $this->getText( "//*[@id='bodyContent']/div[4]/ul[1]/li[1]/div[1]/a" );
-                       $this->assertContains( 'Calcey', $textPageTitle );
-               }
-
-               //  Verify text avaialble in the search result under the page text
-               if ( $this->isElementPresent( "Page_text_matches" ) ) {
-                       $textPageText = $this->getText( "//*[@id='bodyContent']/div[4]/ul[2]/li[2]/div[2]/span" );
-                       $this->assertContains( 'Calcey', $textPageText );
-               }
-               $this->deletePage( "Calcey QA" );
-               $this->deletePage( "Calcey web" );
-       }
-}
diff --git a/tests/selenium/suites/PreviewPageTestCase.php b/tests/selenium/suites/PreviewPageTestCase.php
deleted file mode 100644 (file)
index 036201f..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-/**
- * Selenium server manager
- *
- * @file
- * @ingroup Testing
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-class PreviewPageTestCase extends SeleniumTestCase {
-       // Verify adding a new page
-       public function testPreviewPage() {
-               $wikiText = "Adding this page to test the \n Preview button functionality";
-               $newPage = "Test Preview Page";
-               $this->open( $this->getUrl() .
-                       '/index.php?title=Main_Page&action=edit' );
-               $this->getNewPage( $newPage );
-               $this->type( SeleniumTestConstants::TEXT_EDITOR, $wikiText . "" );
-               $this->assertTrue( $this->isElementPresent( "//*[@id='wpPreview']" ) );
-
-               $this->click( "wpPreview" );
-
-               // Verify saved page available
-               $source = $this->gettext( "firstHeading" );
-               $correct = strstr( $source, "Test Preview Page" );
-               $this->assertEquals( $correct, true );
-
-               // Verify page content previewed succesfully
-               $contentOfPreviewPage = $this->getText( "//*[@id='content']" );
-               $this->assertContains( $wikiText, $contentOfPreviewPage );
-       }
-}
diff --git a/tests/selenium/suites/SavePageTestCase.php b/tests/selenium/suites/SavePageTestCase.php
deleted file mode 100644 (file)
index 1e4cc2d..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-/**
- * Selenium server manager
- *
- * @file
- * @ingroup Testing
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-class SavePageTestCase extends SeleniumTestCase {
-       // Verify adding a new page
-       public function testSavePage() {
-               $wikiText = "Adding this page to test the Save button functionality";
-               $newPage = "Test Save Page";
-
-               $this->open( $this->getUrl() .
-                       '/index.php?title=Main_Page&action=edit' );
-               $this->getNewPage( $newPage );
-               $this->type( SeleniumTestConstants::TEXT_EDITOR, $wikiText );
-
-               // verify 'Save' button available
-               $this->assertTrue( $this->isElementPresent( SeleniumTestConstants::BUTTON_SAVE ) );
-               $this->click( SeleniumTestConstants::BUTTON_SAVE );
-
-               // Verify saved page available
-               $source = $this->gettext( "firstHeading" );
-               $correct = strstr( $source, "Test Save Page" );
-
-               // Verify Saved page name displayed correctly
-               $this->assertEquals( $correct, true );
-
-               // Verify page content saved succesfully
-               $contentOfSavedPage = $this->getText( "//*[@id='content']" );
-               $this->assertContains( $wikiText, $contentOfSavedPage );
-               $this->deletePage( $newPage );
-       }
-}
diff --git a/tests/selenium/suites/SimpleSeleniumConfig.php b/tests/selenium/suites/SimpleSeleniumConfig.php
deleted file mode 100644 (file)
index a693511..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-class SimpleSeleniumConfig {
-
-       public static function getSettings( &$includeFiles, &$globalConfigs, &$resourceFiles ) {
-               global $IP;
-               $includes = array(
-                       //files that needed to be included would go here
-               );
-               $configs = array(
-                       'wgDBprefix' => 'mw_',
-                       'wgDBTableOptions' => 'ENGINE=InnoDB, DEFAULT CHARSET=binary',
-                       'wgDBmysql5' => 'false',
-                       'wgMainCacheType' => 'CACHE_NONE',
-                       'wgParserCacheType' => 'CACHE_NONE',
-                       'wgMemCachedServers' => array(),
-                       'wgLanguageCode' => 'en',
-                       'wgSitename' => 'test_wiki',
-                       'wgDefaultSkin' => 'chick'
-               );
-               $resources = array(
-                       'db' => "$IP/tests/selenium/data/SimpleSeleniumTestDB.sql",
-                       'images' => "$IP/tests/selenium/data/SimpleSeleniumTestImages.zip"
-               );
-
-               $includeFiles = array_merge( $includeFiles, $includes );
-               $globalConfigs = array_merge( $globalConfigs, $configs );
-               $resourceFiles = array_merge( $resourceFiles, $resources );
-               return true;
-       }
-}
diff --git a/tests/selenium/suites/SimpleSeleniumTestCase.php b/tests/selenium/suites/SimpleSeleniumTestCase.php
deleted file mode 100644 (file)
index 14c9e6b..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-/*
- * This test case is part of the SimpleSeleniumTestSuite.
- * Configuration for these tests are documented as part of SimpleSeleniumTestSuite.php
- */
-class SimpleSeleniumTestCase extends SeleniumTestCase {
-       public function testBasic() {
-               $this->open( $this->getUrl() .
-                       '/index.php?title=Selenium&action=edit' );
-               $this->type( "wpTextbox1", "This is a basic test" );
-               $this->click( "wpPreview" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // check result
-               $source = $this->getText( "//div[@id='wikiPreview']/p" );
-               $correct = strstr( $source, "This is a basic test" );
-               $this->assertEquals( $correct, true );
-       }
-
-       /**
-        * All this test really does is verify that a global var was set.
-        * It depends on $wgDefaultSkin = 'chick'; being set
-        */
-       public function testGlobalVariableForDefaultSkin() {
-               $this->open( $this->getUrl() . '/index.php' );
-               $bodyClass = $this->getAttribute( "//body/@class" );
-               $this->assertContains( 'skin-chick', $bodyClass, 'Chick skin not set' );
-       }
-
-       /**
-        * Just verify that the test db was loaded correctly
-        */
-       public function testDatabaseResourceLoadedCorrectly() {
-               $this->open( $this->getUrl() . '/index.php/TestResources?action=purge' );
-               $testString = $this->gettext( "//body//*[@id='firstHeading']" );
-               $this->assertEquals( 'TestResources', $testString, 'Article that should be present in the test db was not found.' );
-       }
-
-}
diff --git a/tests/selenium/suites/SimpleSeleniumTestSuite.php b/tests/selenium/suites/SimpleSeleniumTestSuite.php
deleted file mode 100644 (file)
index 9fe6fb8..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-/**
- * Sample test suite.
- * Two ways to configure MW for these tests
- * 1) If you are running multiple test suites, add the following in LocalSettings.php
- * require_once "tests/selenium/SimpleSeleniumConfig.php";
- * $wgSeleniumTestConfigs['SimpleSeleniumTestSuite'] = 'SimpleSeleniumConfig::getSettings';
- * OR
- * 2) Add the following to your Localsettings.php
- * $wgDefaultSkin = 'chick';
- */
-class SimpleSeleniumTestSuite extends SeleniumTestSuite {
-       public function setUp() {
-               $this->setLoginBeforeTests( false );
-               parent::setUp();
-       }
-
-       public function addTests() {
-               $testFiles = array(
-                       'selenium/suites/SimpleSeleniumTestCase.php'
-               );
-               parent::addTestFiles( $testFiles );
-       }
-
-
-}
diff --git a/tests/selenium/suites/UserPreferencesTestCase.php b/tests/selenium/suites/UserPreferencesTestCase.php
deleted file mode 100644 (file)
index c70e38f..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-<?php
-/**
- * Selenium server manager
- *
- * @file
- * @ingroup Testing
- * Copyright (C) 2010 Nadeesha Weerasinghe <nadeesha@calcey.com>
- * http://www.calcey.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * http://www.gnu.org/copyleft/gpl.html
- */
-
-class UserPreferencesTestCase extends SeleniumTestCase {
-       // Verify user information
-       public function testUserInfoDisplay() {
-
-               $this->open( $this->getUrl() .
-                       '/index.php?title=Main_Page&action=edit' );
-               $this->click( SeleniumTestConstants::LINK_START . "My preferences" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify correct username displayed in User Preferences
-               $this->assertEquals( $this->getText( "//li[@id='pt-userpage']/a" ),
-                       $this->getText( "//table[@id='mw-htmlform-info']/tbody/tr[1]/td[2]" ) );
-
-               // Verify existing Signature Displayed correctly
-               $this->assertEquals( $this->selenium->getUser(),
-                       $this->getTable( "mw-htmlform-signature.0.1" ) );
-       }
-
-       // Verify change password
-       public function testChangePassword() {
-
-               $this->open( $this->getUrl() .
-                       '/index.php?title=Main_Page&action=edit' );
-               $this->click( SeleniumTestConstants::LINK_START . "My preferences" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               $this->click( SeleniumTestConstants::LINK_START . "Change password" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               $this->type( "wpPassword", "12345" );
-               $this->type( "wpNewPassword", "54321" );
-               $this->type( "wpRetype", "54321" );
-               $this->click( "//input[@value='Change password']" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               $this->assertEquals( "Preferences", $this->getText( "firstHeading" ) );
-
-               $this->click( SeleniumTestConstants::LINK_START . "Change password" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               $this->type( "wpPassword", "54321" );
-               $this->type( "wpNewPassword", "12345" );
-               $this->type( "wpRetype", "12345" );
-               $this->click( "//input[@value='Change password']" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-               $this->assertEquals( "Preferences", $this->getText( "firstHeading" ) );
-
-               $this->click( SeleniumTestConstants::LINK_START . "Change password" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               $this->type( "wpPassword", "54321" );
-               $this->type( "wpNewPassword", "12345" );
-               $this->type( "wpRetype", "12345" );
-               $this->click( "//input[@value='Change password']" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-       }
-
-       // Verify successful preferences save
-       public function testSuccessfullSave() {
-
-               $this->open( $this->getUrl() .
-                       '/index.php?title=Main_Page&action=edit' );
-               $this->click( SeleniumTestConstants::LINK_START . "My preferences" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               $this->type( "mw-input-realname", "Test User" );
-               $this->click( "prefcontrol" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify  "Your preferences have been saved." message
-               $this->assertEquals( "Your preferences have been saved.",
-                       $this->getText( "//div[@id='bodyContent']/div[4]/strong/p" ) );
-               $this->type( "mw-input-realname", "" );
-               $this->click( "prefcontrol" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-       }
-
-       // Verify change signature
-       public function testChangeSignature() {
-               $this->open( $this->getUrl() .
-                       '/index.php?title=Main_Page&action=edit' );
-               $this->click( SeleniumTestConstants::LINK_START . "My preferences" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               $this->type( "mw-input-nickname", "TestSignature" );
-               $this->click( "prefcontrol" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify change user signature
-               $this->assertEquals( "TestSignature", $this->getText( SeleniumTestConstants::LINK_START . "TestSignature" ) );
-               $this->type( "mw-input-nickname", "Test" );
-               $this->click( "prefcontrol" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-       }
-
-       // Verify change date format
-       public function testChangeDateFormatTimeZone() {
-               $this->open( $this->getUrl() .
-                       '/index.php?title=Main_Page&action=edit' );
-
-               $this->click( SeleniumTestConstants::LINK_START . "My preferences" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-               $this->click( SeleniumTestConstants::LINK_START . "Date and time" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               $this->click( "mw-input-date-dmy" );
-               $this->select( "mw-input-timecorrection", "label=Asia/Colombo" );
-               $this->click( "prefcontrol" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify Date format and time zome saved
-               $this->assertEquals( "Your preferences have been saved.",
-                       $this->getText( "//div[@id='bodyContent']/div[4]/strong/p" ) );
-       }
-
-       // Verify restoring all default settings
-       public function testSetAllDefault() {
-               $this->open( $this->getUrl() .
-                       '/index.php?title=Main_Page&action=edit' );
-               $this->click( SeleniumTestConstants::LINK_START . "My preferences" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify restoring all default settings
-               $this->assertEquals( "Restore all default settings",
-                       $this->getText( SeleniumTestConstants::LINK_START . "Restore all default settings" ) );
-
-               $this->click( "//*[@id='preferences']/div/a" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify 'This can not be undone' warning message displayed
-               $this->assertTrue( $this->isElementPresent( "//input[@value='Restore all default settings']" ) );
-
-               // Verify 'Restore all default settings' button available
-               $this->assertEquals( "You can use this page to reset your preferences to the site defaults. This cannot be undone.",
-                       $this->getText( "//div[@id='bodyContent']/p" ) );
-
-               $this->click( "//input[@value='Restore all default settings']" );
-               $this->waitForPageToLoad( SeleniumTestConstants::WIKI_TEST_WAIT_TIME );
-
-               // Verify preferences saved successfully
-               $this->assertEquals( "Your preferences have been saved.",
-                       $this->getText( "//div[@id='bodyContent']/div[4]/strong/p" ) );
-       }
-}
-